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

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

▶ バイトダンス インコーポレイテッドの特許一覧

特許7359878変換スキップモードにおける量子化パタメータの修正技術
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】変換スキップモードにおける量子化パタメータの修正技術
(51)【国際特許分類】
   H04N 19/126 20140101AFI20231003BHJP
   H04N 19/157 20140101ALI20231003BHJP
   H04N 19/176 20140101ALI20231003BHJP
   H04N 19/196 20140101ALI20231003BHJP
【FI】
H04N19/126
H04N19/157
H04N19/176
H04N19/196
【請求項の数】 9
(21)【出願番号】P 2021578161
(86)(22)【出願日】2020-06-28
(65)【公表番号】
(43)【公表日】2022-09-05
(86)【国際出願番号】 US2020040028
(87)【国際公開番号】W WO2020264457
(87)【国際公開日】2020-12-30
【審査請求日】2021-12-28
(31)【優先権主張番号】PCT/CN2019/093852
(32)【優先日】2019-06-28
(33)【優先権主張国・地域又は機関】CN
(31)【優先権主張番号】PCT/CN2019/094593
(32)【優先日】2019-07-03
(33)【優先権主張国・地域又は機関】CN
(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)【発明者】
【氏名】シュー ジジョン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2018-532319(JP,A)
【文献】米国特許出願公開第2017/0085891(US,A1)
【文献】Man-Shu Chiang, et.al.,CE8-related: Intra prediction mode for BDPCM,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3-12 July 2019,JVET-O0296-v1,2019年06月25日
【文献】Tung Nguyen, et.al.,Non-CE8: Minimum Allowed QP for Transform Skip Mode,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 15th Meeting: Gothenburg, SE, 3-12 Jul. 2019,JVET-O0405-v1,2019年06月25日
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像データ処理方法であって、
映像の現在の映像ブロックと前記映像のビットストリームとの間の変換のために、変換および逆変換処理がスキップされる変換スキップモードでコーディングされた前記現在の映像ブロックの構文フィールドによって示される量子化パラメータをクリッピングすることを決定することと、
前記量子化パラメータの値を、前記変換スキップモードの最小許容量子化パラメータを示す変数に基づいてクリッピングすることと、
前記クリッピングに基づき前記変換を行うことと、
を含み、
前記変数の値は、4以上であり、
前記変数の値は、(4+X)に等しく、Xは0以上の予め定められた値であり、
X=6*Yであり、Yは前記ビットストリームに含まれる少なくとも1つの構文要素に基づいて決定される、
方法。
【請求項2】
前記クリッピングにおいて、前記量子化パラメータの値が前記変数の値より小さい場合、前記量子化パラメータの値を前記変数の値に設定する、
請求項1に記載の方法。
【請求項3】
Y=bd-bdiであり、bdは映像をコーディングする内部ビット深度であり、bdiは映像の入力ビット深度である、
請求項に記載の方法。
【請求項4】
前記現在の映像ブロックは、差動コーディングモードに基づいてコーディングされ、
前記差動コーディングモードにおいて、前記現在の映像ブロックのイントラ予測モードで導出された量子化残差と量子化残差の予測との差分は、前記ビットストリームに含まれる、
請求項1~のいずれか1項に記載の方法。
【請求項5】
前記変換は、前記現在の映像ブロックを前記ビットストリームに符号化することを含む、
請求項1~のいずれか1項に記載の方法。
【請求項6】
前記変換は、前記ビットストリームから前記現在の映像ブロックを復号化することを含む、
請求項1~のいずれか1項に記載の方法。
【請求項7】
処理装置と、命令を有する非一時的なメモリと、を備える映像データ処理装置であって、
前記命令は、前記処理装置による実行時に、前記処理装置に、
映像の現在の映像ブロックと前記映像のビットストリームとの間の変換のために、変換および逆変換処理がスキップされる変換スキップモードでコーディングされた前記現在の映像ブロックの構文フィールドによって示される量子化パラメータをクリッピングすることを決定することと、
前記量子化パラメータの値を、前記変換スキップモードの最小許容量子化パラメータを示す変数に基づいてクリッピングすることと、
前記クリッピングに基づき前記変換を行うことと、を実行させ、
前記変数の値は、4以上であり、
前記変数の値は、(4+X)に等しく、Xは0以上の予め定められた値であり、
X=6*Yであり、Yは前記ビットストリームに含まれる少なくとも1つの構文要素に基づいて決定される、
装置。
【請求項8】
命令を格納した非一時的なコンピュータ可読記憶媒体であって、
前記命令は、処理装置に、
映像の現在の映像ブロックと前記映像のビットストリームとの間の変換のために、変換および逆変換処理がスキップされる変換スキップモードでコーディングされた前記現在の映像ブロックの構文フィールドによって示される量子化パラメータをクリッピングすることを決定することと、
前記量子化パラメータの値を、前記変換スキップモードの最小許容量子化パラメータを示す変数に基づいてクリッピングすることと、
前記クリッピングに基づき前記変換を行うことと、を実行させ、
前記変数の値は、4以上であり、
前記変数の値は、(4+X)に等しく、Xは0以上の予め定められた値であり、
X=6*Yであり、Yは前記ビットストリームに含まれる少なくとも1つの構文要素に基づいて決定される、
記憶媒体。
【請求項9】
像のビットストリームを格納する方法であって、
像の現在の映像ブロックのために、変換および逆変換処理がスキップされる変換スキップモードでコーディングされた前記現在の映像ブロックの構文フィールドによって示される量子化パラメータをクリッピングすることを決定することと、
前記量子化パラメータの値を、前記変換スキップモードの最小許容量子化パラメータを示す変数に基づいてクリッピングすることと、
前記クリッピングに基づき前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体に格納することと、
を含み、
前記変数の値は、4以上であり、
前記変数の値は、(4+X)に等しく、Xは0以上の予め定められた値であり、
X=6*Yであり、Yは前記ビットストリームに含まれる少なくとも1つの構文要素に基づいて決定される、
方法
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2020年6月28日出願の国際特許出願PCT/US2020/040028号の国内段階であり、2019年6月28日出願の国際特許出願PCT/CN2019/093852号、2019年7月3日出願の国際特許出願PCT/CN2019/094593号の優先権および利益を主張する。法に基づくすべての目的のために、上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
本明細書は、映像および画像符号化、復号化技術に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信及び表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
開示された技術は、映像を符号化または復号化するためにパレット符号化モードを用いる映像または画像デコーダまたはエンコーダの実施形態によって使用してもよい。
【0005】
1つの例示的な態様において、映像処理方法が開示される。この方法は、規則に従って、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、前記規則は、前記現在の映像ブロックを前記符号化表現に表すための恒等変換符号化ツールの使用により、前記現在の映像ブロックを復号化するために使用される量子化パラメータを示す構文フィールドが、前記量子化パラメータの値が規則に従って修正されるように含まれることを規定しており、前記恒等変換符号化ツールにより、前記現在のブロックの変換ドメインでの係数値が、前記現在の映像ブロックの残差ブロックの値と同じになることを可能にする。
【0006】
別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、前記符号化表現は、前記符号化表現に含まれる量子化パラメータに基づく恒等変換を用いた符号化ツールの使用を示す構文要素を選択的に含めることを規定するフォーマット規則に準拠する。
【0007】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、符号化表現は、映像の入力ビット深度を示す構文要素が符号化表現に含まれることを規定するフォーマット規則に準拠する。
【0008】
さらに別の例示的な態様において、別の映像処理方法が開示される。この方法は、映像の映像ユニットの映像ブロックと映像の符号化表現との変換のため、映像ブロックまたは映像ユニットに関連付けられた量子化パラメータに基づいて映像ブロックに対して前処理演算を行うか、後処理演算を行うかを決定することと、前記決定に基づいて変換を行うことと、を含む。
【0009】
別の例示的な態様において、上述された方法は、処理装置を含む映像デコーダによって実装されてもよい。
【0010】
別の例示的な態様において、上述された方法は、処理装置を含む映像エンコーダによって実装されてもよい。
【0011】
さらに別の例示的な態様において、これらの方法は、処理装置実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
【0012】
これらの、および他の態様は、本明細書でさらに説明される。
【図面の簡単な説明】
【0013】
図1】イントラブロックコピーの説明図を示す。
図2】空間的に近傍の候補の例を示す。
図3】パレットモードで符号化されたブロックの例を示す。
図4】パレットエントリを信号通知するためのパレット予測子の使用例を示す。
図5】水平方向および垂直方向の横断走査の例を示す。
図6】パレットインデックスの符号化の例を示す。
図7】マルチタイプのツリー分割モードの例を示す。
図8】フィルタのオン/オフ決定および強/弱フィルタの選択に関与する画素の例を示す。
図9】イントラ予測を組み合わせたパレットモードの方法の実装の例を示す。
図10】複合パレットモードの例示的な実装の例を示す。
図11】67個のイントラ予測モード(方向)の例を示す。
図12】現在の映像ブロックの左上の近傍の例を示す。
図13】クロマブロックに対応する輝度範囲を例示している。
図14】三角形パーティションに基づくインター予測の例を示す。
図15】単一予測候補リストを構築するために用いられる空間的及び時間的な近傍のブロックの例を示す。
図16】ブレンド処理に用いられる重みの例を示す。
図17A】映像処理装置の例を示すブロック図である。
図17B】映像処理装置の例を示すブロック図である。
図18A】映像処理方法の例を示すフローチャートである。
図18B】映像処理方法の例を示すフローチャートである。
図19】適応ループフィルタALF(クロマ:5×5ダイヤモンド、輝度:7×7ダイヤモンド)の形状例を示す。
図20】(a)垂直方向勾配用のサブサンプリング位置(左上)、(b)水平方向勾配用のサブサンプリング位置(右上)、(c)対角勾配用のサブサンプリング位置(左下)、および(d)対角勾配用のサブサンプリング位置を示す(右下)。
図21】仮想境界における修正された区分の例を示す。
図22】仮想境界における輝度成分のための修正されたALFフィルタリングの例を示す。
図23】pi、kとqi、kのサンプル位置の例を示す。
図24】クロマスケーリングアーキテクチャを用いた輝度マッピングの例を示す。
【発明を実施するための形態】
【0014】
本明細書は、伸張または復号化されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用される。さらに、映像エンコーダは、さらなる符号化に使用される復号化されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
【0015】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。このように、ある章の実施形態は、他の章の実施形態と組み合わせることができる。
【0016】
1. 発明の概要
【0017】
本明細書は、映像符号化技術に関する。具体的には、映像符号化におけるパレットモードに関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0018】
2. 初期の協議
【0019】
映像符号化規格は、主に周知の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)[3,4]と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0020】
VVCドラフトの最新バージョン、即ち、Versatile Video Coding(ドラフト4)は、以下を参照することができる。
【0021】
phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=5755
【0022】
VTMと呼ばれるVVCの最新の参照ソフトウェアは、以下で確認することができる。
【0023】
vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
【0024】
2.1 イントラブロックコピー
【0025】
イントラブロックコピー(IBC)、別名、現在のピクチャの参照(CPR)は、HEVCスクリーンコンテンツ符号化拡張機能(HEVC-SCC)と現在のVVCテストモデル(VTM-4.0)に採用されている。IBCは、動き補償の概念をインターフレーム符号化からイントラフレーム符号化に拡張する。図1に示すように、現在のブロックは、IBCが適用される場合、同じピクチャ内の1つの参照ブロックによって予測される。現在のブロックを符号化または復号化する前に、参照ブロックにおけるサンプルは既に再構成されていなければならない。IBCは、カメラでキャプチャされたほとんどのシーケンスに対してそれほど効率的ではないが、スクリーンコンテンツに対しては、有意な符号化利得を示す。その理由は、スクリーンコンテンツピクチャにおいて、アイコン、文字等の繰り返しパターンが多いためである。IBCは、これらの繰り返しパターン間の冗長性を有効に除去することができる。HEVC-SCCにおいて、インター符号化ユニット(CU)は、現在のピクチャをその参照ピクチャとして選択する場合、IBCを適用することができる。この場合、動きベクトル(MV)をブロックベクトル(BV)と改称し、BVは常に整数画素精度を有する。メインプロファイルHEVCに適合するように、現在のピクチャは、復号化ピクチャバッファ(DPB)における「長期」参照ピクチャとしてマークされる。なお、同様に、複数のビュー/3D映像符号化規格において、ビュー間の参照ピクチャも「長期」参照ピクチャとしてマークされる。
【0026】
BVがその参照ブロックを見つけた後、この参照ブロックをコピーすることで予測を生成することができる。残差は、元の信号から参照画素を減算することによって得ることができる。そして、他の符号化モードと同様に、変換および量子化を適用することができる。
【0027】
図1は、イントラブロックコピーの説明図を示す。
【0028】
しかしながら、参照ブロックがピクチャの外にある場合、または現在のブロックと重複する場合、または再構成された領域の外にある場合、或いは何らかの制約によって制限された有効領域の外にある場合、画素値の一部または全部は規定されない。基本的に、このような問題に対処するために2つの解決策がある。1つは、このような状況、例えばビットストリーム適合性を許可しないことである。もう1つは、これらの未定義の画素値にパディングを適用することである。以下のサブセッションでは、解決策を詳細に説明する。
【0029】
2.2 HEVCスクリーンコンテンツ符号化拡張機能におけるIBC
【0030】
HEVCのスクリーンコンテンツ符号化拡張機能において、1つのブロックが現在のピクチャを参照として使用する場合、以下の仕様のテキストに示すように、参照ブロック全体が利用可能な再構成された領域内にあることを保証すべきである。
【0031】
変数offsetXおよびoffsetYは、以下のように導出される。
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0×7?2:0) (2-1)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0×7?2:0) (2-2)
【0032】
参照ピクチャが現在のピクチャである場合、輝度動きベクトルmvLXは、以下の制約に従うべきであることが、ビットストリーム適合性の要件である。
-6.4.1項で規定されたようなz走査順序ブロックの可用性に対する導出処理が、(xCb,yCb)と等しく設定された(xCurr,yCurr)と、(xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)に等しく設定された近傍の輝度位置(xNbY,yNbY)と、が入力として呼び出されると、出力はTRUEとなる。
-6.4.1項で規定されたようなz走査順序ブロックの可用性に対する導出処理が、(xCb.yCb)と等しく設定された(xCurr,yCurr)、(xPb+(mvLX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2)+nPbH-1+offsetY)に等しく設定された近傍の輝度位置(xNbY,yNbY)を入力として呼び出されると、出力はTRUEとなる。
-以下の条件の一方または両方がTRUEであること。
-(mvLX[0]>>2)+nPbW+xB1+offsetXの値が0以下である。
-(mvLX[1]>>2)の値+nPbH+yB1+offsetYが0以下である。
-以下の条件がTRUEとなること。
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=
yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (2-3)
【0033】
このように、参照ブロックが現在のブロックと重複するケース、または参照ブロックがピクチャの外にあるケースは発生しない。参照ブロックまたは予測ブロックを埋める必要がない。
【0034】
2.3. VVC試験モデルにおけるIBC
【0035】
現在のVVC試験モデル、すなわち、VTM-4.0設計において、参照ブロック全体は現在の符号化ツリーユニット(CTU)を有するべきであり、現在のブロックと重複しない。よって、参照または予測ブロックをパディングする必要がない。IBCフラグは、現在のCUの予測モードとして符号化される。このように、各CUに対して、MODE_INTRA、MODE_INTER、およびMODE_IBCという全部で3つの予測モードが存在する。
【0036】
2.3.1 IBCマージモード
【0037】
IBCマージモードにおいて、IBCマージ候補リストにおけるエントリを指すインデックスをビットストリームから構文解析する。このIBCマージリストの構築は、以下のステップのシーケンスに従ってまとめることができる。
● ステップ1:空間的候補の導出
● ステップ2:HMVP候補の挿入
● ステップ3:対の平均候補の挿入
【0038】
空間的マージ候補の導出において、位置A、B、B、AおよびBにある候補の中から、最大4つのマージ候補を選択する。導出の順序はA、B、B、A、Bである。位置A、B、B、AのいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはIBCモードで符号化されていない場合にのみ、位置Bが考慮される。位置Aの候補を加えた後、残りの候補を挿入すると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。
【0039】
空間的候補を挿入した後、IBCマージリストサイズが依然として最大IBCマージリストサイズより小さい場合、HMVPテーブルからのIBC候補を挿入することができる。HMVP候補の挿入にあたり、冗長性チェックを行う。
【0040】
最後に、対の平均候補をIBCマージリストに挿入する。
【0041】
マージ候補によって特定される参照ブロックがピクチャの外にある場合、または現在のブロックと重複する場合、または再構成された領域の外にある場合、或いは何らかの制約によって制限された有効領域の外にある場合、マージ候補は無効なマージ候補と呼ばれる。
【0042】
なお、IBCマージリストに無効なマージ候補を挿入してもよい。
【0043】
VVCにはJVET-N0843が採用されている。JVET-N0843では、IBCのマージモードとAMVPモードのBV予測子は、次の要素で構成される共通の予測子リストを共有する。
● 2つの空間的近傍位置(図2のようにA、B
● 5 HMVPのエントリ
● デフォルトでゼロベクトル
【0044】
マージモードの場合、このリストの最初の6つまでのエントリが使用され、AMVPモードの場合、このリストの最初の2つのエントリが使用される。また、リストは共有マージリスト領域の要件に準拠している(SMR内で同じリストを共有)。
【0045】
上述のBV予測子候補リストに加え、JVET-N0843は、HMVP候補と既存のマージ候補(A,B)との間のプルーニング操作を簡素化することも提案している。簡素化した場合、第1のHMVP候補と空間的マージ候補とを比較するだけであるため、最大2回までのプルーニング操作でよい。
【0046】
最近のVVC及びVTM5において、前回のVTM及びVVCバージョンにおいて、現在のビットストリーム制約に加え、128×128のIBCモードを無効化するための構文制約を明示的に使用することが提案され、これにより、IBCフラグの存在がCUのサイズ<128×128に依存するようになる。
【0047】
2.3.2 IBC AMVPモード
【0048】
IBC AMVPモードでは、IBC AMVPリストにおけるエントリを指すAMVPインデックスが、ビットストリームから構文解析される。このIBC AMVPリストの構築は、以下のステップのシーケンスに従ってまとめることができる。
● ステップ1:空間的候補の導出
○利用可能な候補が見つかるまで、A,Aをチェックする。
○利用可能な候補が見つかるまで、B、B、Bをチェックする。
● ステップ2:HMVP候補の挿入
● ステップ3:ゼロ候補の挿入
【0049】
空間的候補を挿入した後、IBC AMVPリストサイズが依然として最大IBC AMVPリストサイズより小さい場合、HMVPテーブルからのIBC候補を挿入することができる。
【0050】
最後に、IBC AMVPリストにゼロ候補を挿入する。
【0051】
2.3.3 クロマIBCモード
【0052】
現在のVVCにおいて、クロマIBCモードにおける動き補償は、サブブロックレベルで行われる。クロマブロックは、複数のサブブロックに分割される。各サブブロックは、対応する輝度ブロックが1つのブロックベクトルを有するかどうかを判定し、存在する場合、有効性を判定する。現在のVTMにはエンコーダ制約があり、現在のクロマCUにおけるすべてのサブブロックが有効な輝度ブロックベクトルを有するかどうかについて、クロマIBCモードをテストする。例えば、YUV420映像において、クロマブロックはN×Mであり、そして、コロケーション輝度領域は2N×2Mである。クロマブロックのサブブロックサイズは2×2である。クロマmv導出、次にブロックコピー処理を実行するには、いくつかのステップがある。
1) クロマブロックは、まず、(N>>1)*(M>>1)個のサブブロックに分割される。
2) 左上のサンプルが(x,y)に配置されている各サブブロックは、(2x,2y)に配置されている同じ左上のサンプルを含んだ対応する輝度ブロックをフェッチする。
3) エンコーダは、フェッチした輝度ブロックのブロックベクトル(bv)をチェックする。以下の条件の1つを満たす場合、bvは無効であると見なされる。
a.対応する輝度ブロックのbvは存在しない。
b.bvによって識別される予測ブロックは、まだ再構成されていない。
c.bvで識別される予測ブロックは、現在のブロックと部分的にまたは完全に重複している。
4) サブブロックのクロマ動きベクトルは、対応する輝度サブブロックの動きベクトルに設定される。
【0053】
すべてのサブブロックが有効なbvを見つけた場合、エンコーダにおいてIBCモードが許可される。
【0054】
IBCブロックの復号処理を以下に示す。IBCモードでのクロマmvの導出に関する部分は、グレーで強調表示されている。
【0055】
8.6.1 IBC予測において符号化されたユニットを符号化するための一般的な復号処理
【0056】
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight、
-単一ツリーを使用するか二重ツリーを使用するかを指定する変数ツリータイプ、および二重ツリーを使用する場合、現在のツリーが輝度成分に対応するか色度成分に対応するかを指定する。
【0057】
この処理の出力は、インループ・フィルタリング前の修正された再構成画像である。
【0058】
輝度位置(xCb,yCb)、輝度サンプルcbWidthにおける現在の符号化ブロックの幅、輝度サンプルcbHeightにおける現在の符号化ブロックの高さ、及び変数ツリータイプを入力として、8.7.1項に規定される量子化パラメータの導出処理を呼び出す。
【0059】
ibc予測モードで符号化されたユニットを符号化するための復号プロセスは、以下の順序付けられたステップからなる。
【0060】
1.現在の符号化ユニットの動きベクトル成分は、以下のように導出される。
1.ツリータイプがSINGLE_TREEまたはDUAL_TREE_LUMAに等しい場合、以下が適用される。
-輝度符号化ブロックの位置(xCb,yCb)、輝度符号化ブロックの幅cbWidth、輝度符号化ブロックをと、高さcbHeightを入力とし、輝度動きベクトルmvL[0][0]を出力として、項目8.6.2.1に規定された動きベクトル成分の導出処理が呼び出される。
-ツリータイプがSINGLE_TREEに等しい場合、8.6.2.9項のクロマ動きベクトルの導出処理が、入力として輝度動きベクトルmvL[0][0]、出力としてクロマ動きベクトルmvC[0][0]を用いて実行される。
-水平方向numSbX及び垂直方向numSbYにおける輝度符号化サブブロックの数は、いずれも1に設定される。
1.そうでない場合、もしツリータイプがDUAL_TREE_CHROMAに等しい場合、以下が適用される。
-水平方向NUMSBX及び垂直方向NUMBYにおけるLUMA符号化サブブロックの数は、次のように導出される。
numSbX=(cbWidth>>2) (8-886)
numSbY=(cbHeight>>2) (8-887)
-クロマ動きベクトルmvC[xSbIdx][ySbIdx]は、xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1の場合、次のように導出される。:
-輝度動きベクトルmvL[xSbIdx][ySbIdx]は、以下のように導出される。
-並置されたLUMA符号化ユニットの位置(xCuY,yCuY)は、次のように導出される。
xCuY=xCb+xSbIdx*4 (8-888)
yCuY=yCb+ySbIdx*4 (8-889)
-CuPredMode[xCuY][yCuY]がMODE_INTRAに等しい場合、次のようになる。
mvL[xSbIdx][ySbIdx][0]=0 (8-890)
mvL[xSbIdx][ySbIdx][1]=0 (8-891)
predFlagL0[xSbIdx][ySbIdx]=0 (8-892)
- predFlagL1[xSbIdx][ySbIdx]=0 (8-893)
-その他の場合(CuPredMode[xCuY][yCuY]がMODE_IBCに等しい)、次のことが該当する。
- mvL[xSbIdx][ySbIdx][0]=MvL0[xCuY][yCuY][0] (8-894)
- mvL[xSbIdx][ySbIdx][1]=MvL0[xCuY][yCuY][1] (8-895)
- predFlagL0[xSbIdx][ySbIdx]=1 (8-896)
- predFlagL1[xSbIdx][ySbIdx]=0 (8-897)
-8.6.2.9項のクロマ動きベクトルの導出処理は、mvL[xSbIdx][ySbIdx]を入力とし、mvC[xSbIdx][ySbIdx]を出力として呼び出される。
-クロマ動きベクトルmvC[xSbIdx][ySbIdx]が以下の制約に従うことは、ビットストリーム適合性の要件である。
- 6.4.X項で規定されているブロック利用可能性の導出プロセス[ED.(BB):隣接ブロック利用可能性チェックプロセスTBD]が、現在のクロマ位置(xCurr,yCurr)を(xCb/SubWidthC,yCb/SubHeightC)に等しく、隣接するクロ位置(xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5),yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5))を入力として呼び出されると、出力はTRUEとなる。
- 6.4.X項で規定されているブロック利用可能性の導出プロセス[ED.(BB):隣接ブロック利用可能性チェックプロセスTBD]が、現在のクロマ位置(xCurr,yCurr)を(xCb/SubWidthC,yCb/SubHeightC)に等しく、隣接するクロ位置(xCb/SubWidthC+(mvC[xSbIdx][ySbIdx][0]>>5)+cbWidth/SubWidthC-1,yCb/SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5)+cbHeight/SubHeightC-1)を入力として呼び出されると、出力はTRUEとなる。
-次の条件の一方または両方がtrueであること。
- (mvC[xSbIdx][ySbIdx][0]>>5)+xSbIdx*2+2 は、0より小さい又は等しい。
- (mvC[xSbIdx][ySbIdx][1]>>5)+ySbIdx*2+2 は、0より小さい又は等しい。
【0061】
2.現在の符号化ユニットの予測サンプルは、以下のように導出される。
-ツリータイプがSINGLE_TREEまたはDUAL_TREE_LUMAに等しい場合、現在のCODING UNITの予測サンプルは以下のように導出される。
● 8.6.3.1項に規定されるibcブロックの復号処理は、輝度符号化ブロックの位置(xCb,yCb)、輝度符号化ブロックの幅cbWidth、輝度符号化ブロックの高さcbHeight、水平方向numSbX、垂直方向numSbYにおける輝度符号化サブブロックの数、輝度動きベクトルmvL[xSbIdx][ySbIdx]xSbIdx=0..numSbX-1、およびSbIdx=0..numSbY-1、および変数cIdxを0に等しく入力として設定し、予測輝度サンプルの(cbWidth)×(cbHeight)配列predSamplesLであるibc予測サンプル(predSamples)を出力として呼び出される。
-あるいは、ツリータイプがSINGLE_TREEまたはDUAL_TREE_CHROMAに等しい場合、現在の符号化ユニットの予測サンプルは、以下のように導出される。
● 8.6.3.1項に規定されるibcブロックの復号処理は、輝度符号化ブロックの位置(xCb,yCb)、輝度符号化ブロックの幅cbWidth、輝度符号化ブロックの高さcbHeight、水平方向numSbX、垂直方向numSbYにおける輝度符号化サブブロックの数、xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1を有するクロマ動きベクトルmvC[xSbIdx]、ySbIdx=0..numSbY-1、および変数cIdxを1に等しく入力として設定し、ibc予測サンプル(predSamples)は、クロマ成分Cbに対する予測クロマサンプルの(cbWidth/2)×(cbHeight/2)配列predSamplesCbであるibc予測サンプル(predSamples)を出力として呼び出される。
●8.6.3.1項に規定されるibcブロックの復号処理は、輝度符号化ブロックの位置(xCb,yCb)、輝度符号化ブロックの幅cbWidth、輝度符号化ブロックの高さcbHeight、水平方向numSbX、垂直方向numSbYにおける輝度符号化サブブロックの数、xSbIdx=0..numSbX-1、ySbIdx=0..numSbY-1を有するクロマ動きベクトルmvC[xSbIdx]、ySbIdx=0..numSbY-1、および変数cIdxを2に等しく入力として設定し、ibc予測サンプル(predSamples)は、クロマ成分Crに対する予測クロマサンプルの(cbWidth/2)×(cbHeight/2)配列predSamplesCrであるibc予測サンプル(predSamples)を出力として呼び出される。
【0062】
3.変数NumSbX[xCb][yCb]およびNumSbY[xCb][yCb]は、それぞれnumSbXおよびnumSbYに等しく設定される。
【0063】
4.現在の符号化ユニットの残差サンプルは、以下のように導出される。
-ツリータイプがSINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_LUMAに等しい場合、8.5.8項に規定されるインター予測モードで符号化された符号化ブロックの残差信号の復号処理は、位置(xTb0,yTb0)を輝度位置(xCb,yCb)、幅nTbWを輝度符号化ブロック幅cbWidth、高さnTbHを輝度符号化ブロック高さcbHeightに等しく、変数cldxsetを0に等しく入力として設定し、配列resSamplesLを出力として、呼び出される。
-ツリータイプがSINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_CHROMAに等しい場合、8.5.8項に規定されるインター予測モードで符号化された符号化ブロックの残差信号の復号処理は、位置(xTb0,yTb0)をクロマ位置(xCb/2,yCb/2)、幅nTbWをクロマ符号化ブロック幅cbWidth/2、高さnTbHをクロマ符号化ブロック高さcbHeight/2に等しく、変数cldxsetを1に等しく入力として設定し、配列resSamplesCbを出力として、呼び出される。
-ツリータイプがSINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_CHROMAに等しい場合、8.5.8項に規定されるインター予測モードで符号化された符号化ブロックの残差信号の復号処理は、位置(xTb0,yTb0)をクロマ位置(xCb/2,yCb/2)、幅nTbWをクロマ符号化ブロック幅cbWidth/2、高さnTbHをクロマ符号化ブロック高さcbHeight/2に等しく、変数cldxsetを2に等しく入力として設定し、配列resSamplesCrを出力として、呼び出される。
【0064】
5.現在の符号化ユニットの再構成されたサンプルは、以下のように導出される。
-ツリータイプが、SINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_LUMAに等しい場合、8.7.5項で規定されている色成分の画像再構成処理がブロック位置(xB,yB)を(xCb,yCb)、ブロック幅bWidthをcbWidth、ブロック高さbHeightをcbHeight、変数cIdxを0、(cbWidth)×(cbHeight)配列predSamplesをpredSamplesL、(cbWidth)×(cbHeight)配列resSamplesをresSamplesLに等しく、入力設定して起動され、出力はループ内フィルタリング前の修正再構成画像となる。
-ツリータイプがSINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_CHROMAに等しい場合、8.7.5項で規定されている色成分の画像再構成処理がブロック位置(xB,yB)を(xCb/2,yCb/2)、ブロック幅bWidthをcbWidth/2、ブロック高さbHeightをcbHeight/2、変数cIdxを1、(cbWidth/2)×(cbHeight/2)配列predSamplesをpredSamplesCb、(cbWidth/2)×(cbHeight/2)配列resSamplesをresSamplesCbに等しく、入力設定して起動され、出力はループ内フィルタリング前の修正再構成画像となる。
-ツリータイプがSINGLE_TREEに等しい場合またはツリータイプがDUAL_TREE_CHROMAに等しい場合、8.7.5項で規定されている色成分の画像再構成処理がブロック位置(xB,yB)を(xCb/2,yCb/2)、ブロック幅bWidthをcbWidth/2、ブロック高さbHeightをcbHeight/2、変数cIdxを2、(cbWidth/2)×(cbHeight/2)配列predSamplesをpredSamplesCr、(cbWidth/2)×(cbHeight/2)配列resSamplesをresSamplesCrに等しく、入力設定して起動され、出力はループ内フィルタリング前の修正再構成画像となる。
【0065】
2.4 適応型動きベクトル解像度(AMVR)
【0066】
HEVCにおいて、use_integer_mv_flagがスライスヘッダにおいて0であるとき、1/4輝度サンプルの単位で動きベクトル差分(MVD:Motion Vector Difference)(動きベクトルとCUの予測動きベクトルとの差)が信号通知される。VVCにおいて、CUレベルの適応型動きベクトル解像度(AMVR)スキームが導入される。AMVRは、CUのMVDを異なる精度で符号化することを可能にする。現在のCUのモード(通常のAMVPモードまたはアフィンAVMPモード)に基づいて、現在のCUのMVDは、以下のように適応的に選択できる。
-通常AMVPモード:1/4輝度サンプル、整数輝度サンプルまたは4輝度サンプル。
-アフィンAMVPモード:1/4輝度サンプル、整数輝度サンプルまたは1/16輝度サンプル。
【0067】
現在のCUが少なくとも1つの非ゼロMVDコンポーネントを有する場合、CUレベルMVD解像度指示が条件付きで信号通知される。すべてのMVDコンポーネント(すなわち、参照リストL0及び参照リストL1の水平及び垂直MVDの両方)がゼロである場合、1/4輝度サンプルMVD解像度が推測される。
【0068】
少なくとも1つの非ゼロMVDコンポーネントの構成要素を有するCUの場合、1/4輝度サンプルMVD精度がCUにおいて使用されるかどうかを示すために、第1のフラグが信号通知される。第1のフラグが0である場合、さらなる信号伝達は必要とされず、現在のCUのために1/4輝度サンプルMVD精度が使用される。そうでない場合、通常のAMVP CUのために整数輝度サンプルまたは4輝度サンプルのMVD精度が使用されるかどうかを示すために、第2のフラグが信号通知される。同じ第2のフラグは、整数輝度サンプルまたは1/16輝度サンプルのMVD精度がアフィンAMVP CUに使用されるかどうかを示すために使用される。再構成されたMVが意図された精度(1/4輝度サンプル、1/4輝度サンプル、または4輝度サンプル)を有することを保証するために、CUの動きベクトル予測子は、MVDと加算される前に、MVDと同じ精度に丸められる。動きベクトル予測子をゼロに向かって丸める(すなわち、負の動きベクトル予測子を正の無限大に向かって丸め、正の動きベクトル予測子を負の無限大に向かって丸める)。
【0069】
エンコーダは、RDチェックを使用して、現在のCUの動きベクトルの解像度を決定する。各MVD解像度に対してCUレベルのRDチェックを常に3回実行することを回避するために、VTM4では、1/4ルマサンプル以外のMVD精度のRDチェックは、条件付きでのみ呼び出される。通常のAVMPモードの場合、まず、1/4輝度サンプルMVD精度及び整数輝度サンプルMV精度のRDコストを計算する。次に、整数輝度サンプルMVD精度のRDコストと1/4輝度サンプルMVD精度のRDコストを比較し、4輝度サンプルMVD精度のRDコストをさらにチェックする必要があるかどうかを決定する。1/4輝度サンプルMVD精度のRDコストが整数輝度サンプルMVD精度のRDコストよりもずっと小さい場合、4輝度サンプルMVD精度のRDチェックは省略される。アフィンAMVPモードにおいて、アフィンマージ/スキップモード、マージ/スキップモード、1/4輝度サンプリングMVD精度通常AMVPモード、1/4輝度サンプリングMVD精度アフィンAMVPモードのレート-歪みコストをチェックした後、アフィンインターモードを選択しなかった場合、1/16ルマサンプリングMV精度、1-pel MV精度アフィンインターモードはチェックされない。また、1/16輝度サンプル及び1/4輝度サンプルMV精度アフィンインターモードにおける探索開始点として、1/4輝度サンプルMV精度アフィンインターモードで得られたアフィンパラメータを用いる。
【0070】
2.5 HEVCスクリーンコンテンツ符号化拡張機能におけるパレットモード(HEVC-SCC)
【0071】
パレットモードの背景にある基本的な考えは、CUにおけるサンプルを代表的な色値の小さな集合で表現することである。この集合をパレットと呼ぶ。また、エスケープシンボルの後に(場合によっては量子化された)成分値を信号通知することによって、パレットの外側にあるサンプルを示すこともできる。これを図3に示す。
【0072】
HEVC-SCCにおけるパレットモードでは、パレットおよびインデックスマップを符号化するために予測方式が用いられる。
【0073】
2.5.1 パレットエントリの符号化
【0074】
パレットエントリを符号化するために、パレット予測子が維持される。SPSにおいて、パレットの最大サイズおよびパレット予測子が信号通知される。HEVC-SCCにおいて、palette_predictor_initializer_present_flagがPPSに導入される。このフラグが1である場合、ビットストリームにおいて、パレット予測子を初期化するためのエントリが信号通知される。パレット予測子は、各CTU行、各スライス、および各タイルの始めに初期化される。palette_predictor_initializer_present_flagの値によって、palette_predictorを0にリセットするか、またはPPSに信号通知されたパレット予測子の初期化エントリを使用してパレット予測子を初期化する。HEVC-SCCでは、PPSレベルでパレット予測子の初期化を明確に無効にするために、サイズ0のパレット予測子初期化子を有効化した。
【0075】
パレット予測子のエントリごとに、再利用フラグが信号通知され、現在のパレットの一部であるかどうかが示される。これを図4に示す。再利用フラグは、ゼロのランレングス符号化を使用して送信される。この後、新しいパレットエントリの数は、次数0の指数ゴロンブコードを使用して信号通知される。最後に、新しいパレットエントリのコンポーネント値が信号通知される。
【0076】
2.5.2 パレットインデックスの符号化
【0077】
パレットインデックスは、図5に示すように、水平方向および垂直方向の横断走査を使用して符号化される。palette_transpose_flagを使用して、ビットストリームにおける走査順序を明確に信号通知する。以下のサブセクションでは、走査が水平であると仮定する。
【0078】
パレットインデックスは、2つのメインパレットサンプルモード、すなわち‘INDEX’および‘COPY_ABOVE’を使用して符号化される。前述のように、エスケープシンボルも「INDEX」モードとして信号通知され、最大パレットサイズに等しいインデックスが割り当てられる。モードは、一番上の行を除いて、または前のモードが「COPY_ABOVE」であった場合を除いて、フラグを使用して通知される。「COPY_ABOVE」モードでは、上の行のサンプルのパレットインデックスをコピーする。「INDEX」モードにおいて、パレットインデックスは明確に信号通知される。「INDEX」モードと「COPY_ABOVE」モードの両方の場合、同じモードを使用して符号化される後続のサンプルの数を規定する実行値を信号通知する。エスケープシンボルが「INDEX」または「COPY_ABOVE」モードにおける実行の一部である場合、エスケープシンボルごとにエスケープ成分値が信号通知される。パレットインデックスの符号化を図6に示す。
【0079】
この構文順序は、以下のようにして実行される。まず、CUのためのインデックス値の数が信号通知される。これに続いて、トランケーテッドバイナリ符号化(truncated binary coding)を使用して、CU全体の実際のインデックス値を信号通知する。バイパスモードでは、インデックスの数およびインデックス値の両方が符号化される。これにより、インデックス関連バイパスビンがグループ化される。次に、パレットサンプルモード(必要な場合)および実行は、インターリーブ方式で信号通知される。最後に、CU全体のためのエスケープサンプルに対応する成分エスケープ値をグループ化し、バイパスモードで符号化する。
【0080】
インデックス値を信号通知した後、追加の構文要素last_run_type_flagを信号通知する。この構文要素は、インデックスの数と連動して、ブロックにおける最後の実行に対応する実行値を信号通知する必要をなくす。
【0081】
HEVC-SCCでは、パレットモードは、4:2:2、4:2:0、およびモノクロのクロマフォーマットに対しても有効になる。パレットエントリおよびパレットインデックスの信号通知は、すべてのクロマフォーマットに対してほぼ同じである。非モノクロフォーマットの場合、各パレットエントリは、3つの成分からなる。モノクロフォーマットの場合、各パレットエントリは単一の成分からなる。サブサンプリングされたクロマ方向の場合、クロマサンプルは、2で割り切れる輝度サンプル指数に関連付けられる。CUのパレットインデックスを再構成した後、1つのサンプルに単一の成分しか関連付けられていない場合、パレットエントリの第1の成分のみが使用される。信号通知における唯一の違いは、エスケープ成分値である。エスケープサンプルごとに、信号通知されるエスケープ成分値の数は、そのサンプルに関連付けられた成分の数によって異なってもよい。
【0082】
2.6 変換スキップモードにおける係数符号化
【0083】
JVET-M0464号及びJVET-N0280号において、残差符号化を変換スキップレベルの統計及び信号特性に適応させるために、TS(Transform Skip)モードにおける係数符号化についていくつかの改良が提案されている。
【0084】
提案された変形例を以下に示す。
【0085】
前回の有意な走査位置なし:
残差信号は予測後の空間残差を反映しており、TSに対して変換によるエネルギー圧縮は行われないので、変換ブロックの右下隅の末尾にゼロまたは有意でないレベルがより高い確率で後続することはもはやなくなる。従って、この場合、最後の重要な走査位置信号送信は省略される。
【0086】
サブブロックCBF:
最後の重要な走査位置信号がない場合、TSのcoded_sub_block_flagを有するサブブロックCBF信号は、次のように変更されることが必要である。
● 量子化のために、前述の有意でないシーケンスは、依然として変換ブロック内でローカルに発生し得る。したがって、前記のように最後の有意な走査位置が削除され、最後を除くすべてのCGがゼロ係数を持つ場合を除いて、すべてのサブブロックに対してcoded_sub_block_flagが符号化されるため、最後のCGに対してcoded_sub_block_flagを符号化する必要がない。
● DC周波数位置をカバーするサブブロック(左上のサブブロック)のcoded_sub_block_flagは、特殊な場合を提示する。VVC草案3において、このサブブロックのcoded_sub_block_flagは決して信号通知されず、常に1に等しいと推測される。最後の有意な走査位置が別のサブブロックに位置する場合、それは、DCサブブロックの外側に少なくとも1つの有意なレベルがあることを意味する。その結果、DCサブブロックは、このサブブロックのcoded_subblock_flagが1に等しいと推測されるが、ゼロ/非有意レベルのみを含んでもよい。TSに最後の走査位置情報がない場合、各サブブロックのcoded_sub_block_flagが通知される。これは、他のcoded_sub_block_flag構文要素が既に0に等しい場合を除き、DCサブブロックのcoded_sub_block_flagをも含む。この場合、DC coded_sub_block_flagは1に等しいと推測される(inferDcSbCbf=1)。このDCサブブロックには少なくとも1つの有意なレベルがなければならないので、このDCサブブロックにおける他のすべてのsig_coeff_flag構文要素が0に等しい場合、(0,0)における第1の位置のsig_coeff_flag構文要素は信号通知されず、1に等しくなるように導出される(inferSbDcSigCoefflag=1)。
● coded_sub_block_flagのコンテクストモデリングを変更する。コンテクストモデルインデックスは、coded_sub_block_flagの左側と、現在のサブブロック上のcoded_sub_block_flagとの合計として、両方の論理和の代わりに計算される。
【0087】
sig_coeff_flagコンテクストモデリング:
sig_coeff_flagコンテクストモデルにおけるローカルテンプレートは、現在地の走査位置の左側(NB0)及び上側(NB1)の近傍のみを含むように修正される。コンテクストモデルオフセットは、重要な近傍位置sig_coeff_flag[NB0]+sig_coeff_flag[NB1]の個数に過ぎない。そこで、今回の変換区間における対角dに応じて異なるコンテクスト集合を選択することを排除する。その結果、sig_coeff_flagを符号化するための3つのコンテクストモデル及び1つのコンテクストモデル集合が得られる。
【0088】
abs_level_gt1_flag and par_level_flag context modelling:
abs_level_gt1_flag及びpar_level_flagには1つのコンテクストモデルを用いる。
【0089】
abs_remainder符号化:
変換スキップ残差絶対レベルの経験的分布は、典型的には、依然としてラプラシアンまたは幾何学的分布に適応するが、変換係数絶対レベルよりも大きい不安定性が存在する。具体的には、残留絶対値レベルの場合、連続して実現する窓内の分散が高くなる。これは、abs_remainderシンタックスの二値化及びコンテクストモデリングを以下のように修正する動機となる。
● 2値化においてより高いカットオフ値、即ち、sig_coeff_flag、abs_level_gt1_flag、par_level_flag、及びabs_level_gt3を用いた符号化からabs_remainderのRice符号への移行点と、各ビンの位置に専用のコンテクストモデルを用いることで、より高い圧縮効率が得られる。カットオフを大きくすると、より多くの「Xより大きい」フラグがもたらされ、例えば、カットオフに達するまで、abs_level_gt5_flag、abs_level_gt7_flag等を導入していく。カットオフ自体は5に固定される(numGtFlags=5)。
● ライスパラメータ導出のためのテンプレートを修正し、すなわち、現在の走査位置の左側の近傍及び上側の近傍のみを、sig_coeff_flagコンテクストモデリングのためのローカルテンプレートに類似していると見なす。
【0090】
coeff_sign_flagコンテクストモデリング:
符号のシーケンス内の不安定性及び予測残差がしばしば偏っていることに起因して、全体的な経験的分布がほぼ均一に分布している場合であっても、符号はコンテクストモデルを使用して符号化され得る。符号の符号化には1つの専用コンテクストモデルが使用され、符号はsig_coeff_flagの後に構文解析されて、すべてのコンテクスト符号化ビンが一緒にまとめられる。
【0091】
2.7 量子化残差ブロック差動パルスコード変調(QR-BDPCM)
【0092】
JVET-M0413において、量子化残差ブロック差動パルスコード変調(QR-BDPCM)が、スクリーンコンテンツを効率的に符号化するために提案されている。
【0093】
QR-BDPCMで使用される予測方向は、垂直予測モードおよび水平予測モードであり得る。イントラ予測は、イントラ予測と同様に、予測方向(水平または垂直予測)にサンプルコピーすることで、ブロック全体で予測する。残差を量子化し、量子化残差とその予測子(水平または垂直)量子化値との間のデルタを符号化する。これは、以下のように説明することができる。サイズM(行)×N(列)のブロックについて、ri,j,0≦i≦M-1、0≦j≦N-1を、上または左ブロックの境界サンプルからのフィルタリングされていないサンプルを使用して、水平方向(予測ブロックに対して左隣の画素値を1ラインずつコピーする)または垂直方向(予測ブロックにおける各ラインに上隣のラインをコピーする)にイントラ予測を行った後の予測残差とする。Q(ri,j)、0≦i≦M-1、0≦j≦N-1は、残差ri,jの量子化バージョンを表し、この場合、残差は、元のブロックと予測ブロック値との間の差である。次に、ブロックDPCMが量子化残差サンプルに適用され、その結果、要素r~i,jを有する修正されたM×N個の配列R~が得られる。垂直BDPCMが信号通知されると、以下のようになる。
【0094】
【数1】
【0095】
水平予測の場合、類似した規則が適用され、残差量子化サンプルは、以下の式によって得られる。
【0096】
【数2】
【0097】
残差量子化サンプルr~i,jはデコーダに送られる。
【0098】
デコーダ側では、上記の計算を逆にして、Q(ri,j)、0≦i≦M-1、0≦j≦N-1を生成する。垂直予測の場合、以下である。
【0099】
【数3】
【0100】
水平方向の場合、以下である。
【0101】
【数4】
【0102】
逆量子化された残差Q-1(Q(ri,j))をイントラブロック予測値に加算し、再構成されたサンプル値を生成する。
【0103】
このスキームの主な利点は、逆方向のDPCMを、係数の構文解析中にオンザフライで行うことができ、係数の構文解析中に予測子を追加するだけで済むこと、または、構文解析後に行うことができることである。
【0104】
QR-BDPCMの本文変更案を以下に示す。
【0105】
【表1】
【表2】
【0106】
bdpcm_flag[x0][y0]が1の場合、位置(x0,y0)の輝度符号化ブロックを含む符号化ユニットにbdpcm_dir_flagが存在することを指定する。
bdpcm_dir_flag[x0][y0]=0は、bdpcmブロックで使用される予測方向が水平であることを指定し、そうでない場合、垂直である。
【0107】
2.8 パーティション構造
【0108】
HEVCにおいて、CTUは、様々な局所的特徴に適応するように、符号化ツリーと呼ばれる四分木構造を用いてCUに分割される。インターピクチャ(時間的)予測またはイントラピクチャ(空間的)予測を使用する、ピクチャ領域を符号化するかどうかの決定は、リーフCUレベルで行われる。各リーフCUは、PU分割タイプに応じて1つ、2つまたは4つのPUに更に分割することができる。1つのPUの内部では、同じ予測処理が適用され、PU単位で関連情報がデコーダに送信される。PU分割タイプに基づく予測処理を適用して残差ブロックを得た後、CUのためのコーディングツリー符号化ツリーに類似した別の四分木構造に基づいて、リーフCUを変換ユニット(TU)に分割することができる。HEVC構造の重要な特徴の1つは、CU、PU、TUを含む複数のパーティション概念を有することである。
【0109】
VVCにおいて、2値及び3値分割セグメンテーション構造を使用するネストされたマルチタイプツリーを有する四分木は、複数の区分ユニットタイプの概念に取って代わる。即ち、それは、最大変換長さに対して大き過ぎるサイズを有するCUに必要な場合を除き、CU、PU、及びTU概念の分離を排除し、且つCU区分形状のためのより多くの柔軟性をサポートする。符号化ツリー構造において、CUは正方形または長方形のいずれかを有することができる。まず、符号化ツリーユニット(CTU)を四分木構造で分割する。そして、四分木のリーフのノードは、マルチタイプのツリー構造によってさらに区分され得る。図7に示すとおり、マルチタイプツリー構造の分岐タイプには、垂直二分岐(SPLIT_BT_VER)、水平二分岐(SPLIT_BT_HOR)、垂直三分岐(SPLIT_TT_VER)、水平三分岐(SPLIT_TT_HOR)の4つがある。マルチタイプツリーのリーフのノードは、符号化ユニット(CU)と呼ばれ、CUが大き過ぎて最大変換長にならない限り、このセグメント化は、それ以上の分割なしに、予測及び変換処理に使用される。これは、ほとんどの場合、CU、PU、及びTUが、ネストされたマルチタイプのツリー符号化ブロック構造を有する四分木において、同じブロックサイズを有することを意味する。サポートされる最大変換長がCUの色成分の幅または高さよりも小さい場合、この例外が生じる。また、輝度及びクロマ成分は、Iタイル上に別個の区分構造を有する。さらに、JVET-K0353およびJVET-K0354は、CTU/CUレベルで別個のパーティション構造を使用するかどうかを判定するためにフラグを信号化通知することを提案している。
【0110】
2.9 VTM-4.0における非ブロック化スキーム
【0111】
なお、以下の説明において、pNMは、垂直エッジに対してM行目の左側のN番目のサンプル、または水平エッジに対してM列目の上側のN番目のサンプルを表し、qNMは、垂直エッジに対してM行目の右側のN番目のサンプル、または水平エッジに対して、M列目の下側のN番目のサンプルを表す。pNおよびqNの例を図8に示す。
【0112】
なお、以下の説明において、pNは、垂直エッジに対して行の左側のN番目のサンプル、または、水平エッジに対して列の上側のN番目のサンプルを表し、qNは、垂直エッジに対して行の右側のN番目のサンプル、または水平エッジに対して、列の下側のN番目のサンプルを表す。
【0113】
1つの単位として4行に対してフィルタのオン/オフの決定を行う。図8は、フィルタのオン/オフ決定に関与する画素を示す。最初の4行のための2つの赤いボックスにおける6つの画素は、4行のためのフィルタのオン/オフを判定するために用いられる。2番目の4行のための2つの赤いボックス内の6つの画素は、第2の4行のためのフィルタのオン/オフを判定するために用いられる。
【0114】
現在のVTM、つまりVTM-4.0では、JVET-M0471で説明されている非ブロック化スキームが使用される。まずピクチャの垂直エッジを選別する。そして、垂直エッジフィルタリング処理で修正されたサンプルを入力として、ピクチャの水平エッジをフィルタリングする。各CTUのCTBにおける垂直および水平エッジは、符号化ユニットごとに別個に処理される。符号化ユニットにおける符号化ブロックの垂直エッジは、符号化ブロックの左側のエッジから始まり、符号化ブロックの右側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。符号化ユニットにおける符号化ブロックの水平エッジは、符号化ブロックの上側のエッジから始まり、符号化ブロックの下側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。
【0115】
2.9.1 境界の決定
【0116】
8×8のブロック境界にフィルタリングを適用する。さらに、それは、(例えば、アフィン動き予測、ATMVPを使用しているため)変換ブロックの境界または符号化サブブロックの境界でなければならない。そのような境界でない場合、フィルタは無効にされる。
【0117】
2.9.2 境界強度計算
【0118】
変換ブロックの境界/符号化サブブロックの境界の場合、それが8×8グリッドに位置する場合、それをフィルタリングしてもよくジのためのbS[xD][yD]([xD][yD]は座標を表す)の設定は、以下のように定義される。
- bS[xD][yD]は、2に等しく設定され、この場合、サンプルpまたはqは、イントラ予測モードで符号化された符号化ユニットの符号化ブロックにある。
- あるいは、ブロックエッジが変換ブロックエッジでもあり、サンプルpまたはqが、1つ以上の非ゼロ変換係数レベルを含む変換イントラブロックにある場合、bS[xD][yD]は、1に等しく設定される。
・- あるいは、サンプルpを含む符号化サブブロックの予測モードが、サンプルqを含む符号化サブブロックの予測モードと異なる場合、bS[xD][yD]は、1に等しく設定される。
・- あるいは、以下の条件の1つ以上がTRUEである場合、bS[xD][yD]を1に等しく設定する。
- サンプルpを含む符号化サブブロックおよびサンプルqを含む符号化サブブロックは、いずれもIBC予測モードで符号化され、2つの符号化サブブロックの予測に用いられる動きベクトルの水平または垂直成分の絶対差は、1/4輝度サンプル単位で4以上である。
- サンプルpを含む符号化サブブロックの予測のために、サンプルqを含む符号化サブブロックの予測とは異なる参照ピクチャまたは異なる数の動きベクトルが使用される。
注1-2つの符号化サブロックに使用される参照ピクチャが同じであるかまたは異なるかは、予測を形成するのに参照ピクチャリスト0へのインデックスを使用するか、または参照ピクチャリスト1へのインデックスを使用して形成するかに関わらず、且つ参照ピクチャリスト内のインデックス位置が異なるかどうかに関わらず、どのピクチャが参照されるかによってのみに基づいて判定される。
注2-(xSb,ySb)を含む左上のサンプルを有する符号化サブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
- 1つの動きベクトルは、サンプルpを含む符号化サブブロックを予測するために使用され、1つの動きベクトルは、サンプルqを含む符号化サブブロックを予測するために使用され、使用される動きベクトルの水平または垂直成分の絶対差は、1/4輝度サンプル単位で4以上である。
- 2つの動きベクトルおよび2つの異なる参照ピクチャを使用して、サンプルpを含む符号化サブブロックを予測し、同じ2つの参照ピクチャの2つの動きベクトルを使用して、サンプルqを含む符号化サブブロックを予測し、同じ参照ピクチャの2つの符号化サブブロックの予測に使用される2つの動きベクトルの水平または垂直成分の絶対差は、1/4輝度サンプル単位で4以上である。
- 同じ参照ピクチャの2つの動きベクトルを使用して、サンプルpを含む符号化サブブロックを予測し、同じ参照ピクチャの2つの動きベクトルを使用して、サンプルqを含む符号化サブブロックを予測し、以下の条件の両方が成り立つ。
- 2つの符号化サブブロックの予測に使用されるリスト0の動きベクトルの水平または垂直成分の間の絶対差は、1/4輝度サンプルにおいて4以上である、または2つの符号化サブブロックの予測に使用されるリスト1の動きベクトルの水平または垂直成分の間の絶対差は、4分の1輝度サンプル単位で4以上である。
- サンプルpを含む符号化サブブロックの予測に使用されるリスト0動きベクトルの水平または垂直成分と、サンプルqを含む符号化サブブロックの予測に使用されるリスト1動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上であるか、またはサンプルpを含む符号化サブブロックの予測に使用されるリスト1動きベクトルの水平または垂直成分と、サンプルqを含む符号化サブブロックの予測に使用されるリスト0動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上である。
- あるいは、変数bS[xD][yD]を0に設定する。
【0119】
表1及び表2にBSの算出規則をまとめる。
【0120】
【表3】
【0121】
【表4】
【0122】
2.9.3 輝度成分の非ブロック化決定
【0123】
非ブロック化決定処理は、このサブセクションで説明する。
【0124】
より広く、強い輝度フィルタは、条件1、条件2、および条件3の全てがTRUEである場合にのみ使用されるフィルタである。
【0125】
条件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
【0126】
bSidePisLargeBlkおよびbSideQisLargeBlkに基づいて、条件1を以下のように定義する。
Condition1=(bSidePisLargeBlk || bSidePisLargeBlk) ?TRUE:FALSE
【0127】
次に、条件1がTRUEである場合、さらに条件2をチェックする。まず、以下の変数を導出する。
- dp0,dp3,dq0,dq3をまずHEVCとして導出する
- もし(p側が32以上)なら、
dp0=(dp0+Abs(p5-2*p4+p3)+1)>>1
dp3=(dp3+Abs(p5-2*p4+p3)+1)>>1
- もし(q側が32以上)なら、
dq0=(dq0+Abs(q5-2*q4+q3)+1)>>1
dq3=(dq3+Abs(q5-2*q4+q3)+1)>>1
条件2=(d<β)?TRUE:FALSE
章2.2.4に示すとおり、式中、d= dp0+dq0+dp3+dq3である。
【0128】
条件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
【0129】
最後に、条件1および条件2の両方が有効である場合、提案された非ブロック化方法は、以下のように定義される条件3(大ブロックの強いフィルタ条件)をチェックする。
条件3のStrongFilterConditionにおいて、以下の変数を導出する。
dpqはHEVCと同様に導出される。
sp=Abs(p-p)、HEVCと同様に導出される
もし(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と同様に導出される
もし(q側が32以上)なら、
If(Sq==5)
sq=(sq+Abs(q-q)+1)>>1
else
sq=(sq+Abs(q-q)+1)>>1
【0130】
HEVCと同様に、StrongFilterCondition=(dpqは(β>>2)未満、sp+sqは(3*β>>5)未満、およびAbs(p-q)は(5*tC+1)>>1)?TRUE:FALSE.
【0131】
2.9.4 輝度のためのより強い非ブロック化フィルタ(より大きいブロックのために設計される)
【0132】
バイリニアフィルタは、境界の両側のサンプルが1つの大ブロックに属する場合に用いられる。1つの大ブロックに属する1つのサンプルは、垂直エッジの場合、幅≧32であり、水平エッジの場合、高さ≧32であるときとして定義される。
【0133】
バイリニアフィルタを以下に示す。
【0134】
次に、上述のHEVC非ブロック化において、i=0~Sp-1でのブロックの境界サンプルp及びj=0~Sq-1のブロックの境界サンプルqi(p、qiは、垂直エッジをフィルタリングする行内のi番目のサンプル、または水平エッジをフィルタリングする列内のi番目のサンプル)を、以下のように線形補間によって置き換える。
【0135】
【数5】
【0136】
tcPDiおよびcPDj項は、章2.9.7に記載の位置依存クリッピングであり、gj,fi,Middles,t,PsおよびQsは、表3に示される。
【0137】
【表5】
【表6】
【0138】
2.9.5 クロマの非ブロック化制御
【0139】
クロマの強いフィルタは、ブロックの境界の両側に用いられる。ここで、クロマフィルタは、クロマエッジの両側が8(クロマ位置)以上である場合に選択され、のための3つの条件付きで、1番目のものが、境界強度ならびに大ブロックのためのものである、という決定が満たされる。提案されたフィルタは、クロマサンプルドメインにおいて、ブロックのエッジに直交するブロックの幅または高さが8以上である場合に適用できる。第2および第3のものは、基本的にはHEVC輝度の非ブロック化の決定と同じであり、それぞれオン/オフ決定および強いフィルタの決定となっている。
第1の決定において、表2に示すように、クロマフィルタリングのために境界強度(bS)が修正される。表2の条件を順次チェックする。条件が満たされている場合、残りの優先順位の低い条件はスキップされる。
【0140】
大ブロックの境界が検出された場合、bSが2に等しいか、またはbSが1に等しいとき、クロマ非ブロック化が行われる。
【0141】
第2および第3の条件は、基本的には、以下のように、HEVC輝度の強いフィルタの決定と同様である。
【0142】
第2の条件において、
その後、HEVC輝度非ブロック化と同様にdを導出する。
第2の条件は、dがβより小さい場合、TRUEとなる。
【0143】
第3の条件において、StrongFilterConditionは、以下のように導出される。
dpqはHEVCと同様に導出される。
sp=Abs(p-p)、HEVCと同様に導出される
sq=Abs(q-q)は、HEVCと同様に導出される
【0144】
HEVC設計におけるように、StrongFilterCondition=(dpqが(β>>2)未満であり、sp+sqが(β>>3)未満であり、Abs(p_q)が(5*tC+1)>>1未満である。)
【0145】
2.9.6 クロマ用の強い非ブロック化フィルタ
【0146】
以下のようなクロマ用の強い非ブロック化フィルタが定義される。
’=(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
【0147】
提案されたクロマフィルタは、4×4クロマサンプルグリッドに対して非ブロック化を行う。
【0148】
2.9.7 位置依存クリッピング
【0149】
位置依存クリッピングtcPDは、境界で7個、5個、および3個のサンプルを修正する強く長いフィルタを含む輝度フィルタリング処理の出力サンプルに適用される。量子化誤差分布を仮定して、より高い量子化ノイズを有すると予想されるサンプルに対して、クリッピング値を増加させることが提案され、よって、再構成されたサンプル値のTRUEのサンプル値からのより高い偏差を有することが予想される。
【0150】
非対称フィルタでフィルタリングされた各PまたはQ境界について、章2.9.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;
【0151】
短い対称フィルタでフィルタリングされるPまたはQ境界に対しては、より小さい位置依存閾値が適用される。
Tc3={3,2,1};
【0152】
閾値を定義した後、tcPおよびtcQクリッピング値に従って、フィルタリングされたp’およびq’サンプル値をクリッピングする。
p’’=Clip3(p’+tcP,p’-tcP,p’);
q’’=Clip3(q’+tcQ,q’-tcQ,q’);
ここで、p’およびq’はフィルタリングされたサンプル値であり、p’’およびq’’はクリッピング後の出力サンプル値であり、tcP tcPはVVC tcパラメータ、tcPDおよびtcQDから導出されるクリッピング閾値である。関数Clip3は、VVCに規定されているような、クリッピング関数である。
【0153】
2.9.8 サブブロックの非ブロック化調整
【0154】
両方のロングフィルタを使用する並列フレンドリな非ブロック化およびサブブロック非ブロック化を可能にするために、ロングフィルタは、ロングフィルタのための輝度制御に示すように、サブブロック非ブロック化(AFFINE、ATMVP、またはDMVR)を使用する側でのサンプルの修正が、最大で5つまでに制限される。さらに、サブブロックの非ブロック化は、CUまたは暗黙のTU境界に近い8×8グリッド上のサブブロック境界の修正が、各側において最大2つまでのサンプルに制限されるように調整される。
【0155】
以下は、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
【0156】
この場合、0に等しいエッジはCU境界に対応し、2に等しいかまたは直交長さ-2に等しいエッジは、CU境界からのサブブロックの境界8サンプルに対応する。ここで、TUの暗黙的分割が使用される場合、暗黙的TUはTRUEである。
【0157】
2.9.9 輝度/クロマ用の4CTU/2CTU行バッファへの制限
【0158】
水平エッジがCTU境界と整列している場合、水平エッジのフィルタリングは、輝度の場合、Sp=3、クロマの場合、Sp=1、Sq=1に制限する。
【0159】
2.10 イントラ予測モードと組み合わせたパレットモード(PCIP)
【0160】
JVET-M0051では、イントラ予測と組み合わせたパレットモードが提案されている。このスキームでは、デコーダは最初にイントラ予測方法に基づいて予測ブロックを導出する。次に、デコーダはパレットとインデックスマップを復号化する。デコーダは、復号化パレット情報を使用して、予測ブロックを微調整し、ブロックを再構成する。
【0161】
図9にパレット情報とイントラ予測情報を組み合わせた例を示す。最初に、デコーダは予測ブロックを生成する(画素値A0~A15)。そして、デコーダはパレットモードでインデックスマップを復号化する。ブロックを再構成するために、復号化されたインデックスが「0」である場合、図6に示すように、対応する画素は「P」としてマークされる。「P」とマークされた画素は、イントラ予測ブロックの画素値によって再構成される。それ以外の場合は、C0、C1などのパレットカラーで画素が再構成される。
【0162】
2.11 複合パレットモード(CPM)
【0163】
JVET-N0259と同様に、複合パレットモードのサンプルは、現在のインデックスが0のときにIBC予測で同一位置に配置されたサンプルをコピーすることで再構成できる。それ以外の場合、現在のサンプルはパレットの色によって再構成される。図10は、提案されたパレットモードを示している。
【0164】
複合パレットモードでは、輝度ブロックで、最初に利用可能なマージ候補を使用してIBC予測が生成されるため、IBC予測の動き情報を信号通知する必要はない。クロマブロックでは、CPMの動き補償はVTM4の動き補償と同じである。
【0165】
さらに、エスケープ画素の符号化も修正される。元のサンプルと同一位置に配置されたIBC予測サンプルの間の量子化残差が信号通知される。デコーダでは、提案されたパレットモードのすべてのエスケープ画素が、復号化された残差とIBC予測を組み合わせて再構成される。
【0166】
2.12 JVET-N0185における67個のイントラ予測モードを有するイントラモード符号化
【0167】
自然映像に表される任意のエッジ方向をキャプチャするために、VTM4における指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。HEVCにない新しい指向性モードは、図11に赤い点線の矢印で示されており、平面モードと直流モードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度およびクロマイントラ予測の両方に適用される。
【0168】
MRL符号化ツールおよびISP符号化ツールの適用の有無にかかわらず、イントラブロックに対して統一された6-MPMリストが提案される。MPMリストは、図12に示すように、VTM4.0などの場合、左上の近傍のブロックのイントラモードに基づいて構成される。
【0169】
ここで、左側のモードをLeftとし、上記ブロックのモードをAboveとすると、統合MPMリストは、以下のステップで順に構成される。
- 近傍のブロックのイントラ予測モードが無効である場合、そのイントラモードはデフォルトで平面に設定される。
- LeftとAboveが同じかつ両方ともに角度がある場合、
o MPMリスト→{Planar、Left、Left-1、Left+1、DC、Left-2}
- LeftとAboveが異なりかつ両方ともに角度がある場合、
o MaxモードをLeft and Aboveでより大きいモードに設定する。
o LeftモードとAboveモードとの差が2~62の範囲内にある場合
■ MPM list→{Planar,Left,Above,DC,Max-1,Max+1}
o あるいは、
■ MPMリスト→{Planar、Left、Above、DC、Max-2、Max+2}
- LeftとAboveが異なり、LeftおよびAboveの一方が角度モードであり、他方が非角度モードである場合、
o MaxモードをLeft and Aboveでより大きいモードに設定する。
o MPMリスト→{Planar、Max、DC、Max-1、Max+1、Max-2}
-モードLeftおよびAboveの両方が非角度モードである場合、
o MPMリスト→{Planar、DC、V、H、V-4、V+4}
【0170】
なお、モードインデックス(例えば、Max+2)が範囲[0、66]を超えた場合、他の有効なモードインデックスに置き換えられてもよい。
【0171】
第1のMPM候補、すなわち、Planarモードは、残りのMPM候補とは別個に信号通知される。
【0172】
より詳細な構文、意味論、及び復号化処理を以下に説明する。:
【0173】
【表7】
【表8】
【表9】
【0174】
構文要素intra_luma_mpm_flag[x0][y0]、intra_luma_not_planar_flag[x0][y0]、intra_luma_mpm_idx[x0][y0]およびintra_luma_mpm_remainder[x0][y0]は、輝度サンプルのイントラ予測モードを指定する。配列インデックスx0,y0は、ピクチャの左上輝度サンプルに対する、考慮される符号化ブロックの左上輝度サンプルの位置(x0,y0)を指定する。intra_luma_mpm_flag[x0][y0]が1に等しい場合、第8.4.2項に従って、隣接するイントラ予測符号化ユニットから前記イントラ予測モードを推論する。
【0175】
intra_luma_mpm_flag[x0][y0]が存在しない(例えば、ISPが有効化されている、またはMRLが有効化されている(参照インデックス>0を有する))場合、それは1に等しいと推論される。
【0176】
intra_luma_not_planar_flag[x0][y0]が存在しない場合(例えば、MRLが使用可能)、それは1に等しいと推測される。
【0177】
8.4.2 輝度イントラ予測モードのための導出処理
【0178】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
【0179】
この処理において、輝度イントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
表8-1に、イントラ予測モードIntraPredModeY[xCb][yCb]の値とその関連名称を示す。
【0180】
【表10】
【0181】
注-:イントラ予測モードINTRA_LT_CCLM、INTRA_L_CCLM、INTRA_T_CCLMは、クロマ成分にのみ適用可能である。
【0182】
IntraPredModeY[xCb][yCb]は、以下のように導出される。
【0183】
- intra_luma_not_planar_flag[xCb][yCb]が1に等しい場合、以下の順序付けられたステップである。
【0184】
1.近傍位置(xNbA、yNbA)および(xNbB、yNbB)は、それぞれ、(xCb-1,yCb+cbHeight-1)および(xCb+cbWidth-1,yCb-1)に等しく設定される。
【0185】
2.XをAまたはBのいずれかに置き換える場合、変数candIntraPredModeXは、以下のように導出される。
- 6.4.X項[Ed.(BB):近傍ブロックの可用性導出処理tbd]で規定されるブロックの可用性導出処理は、入力として、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)と、(xNbX,yNbX)に等しく設定した近傍位置(xNbY,yNbY)で呼び出され、出力をavailableXに割り当てる。
- 候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
- 以下の条件の1つ以上がTRUEである場合、candIntraPredModeXをINTRA_PLANARに等しく設定する。
- 変数availableXはFALSEに等しい。
- CuPredMode[xNbX][yNbX]はMODE_INTRAに等しくなく、かつciip_flag[xNbX][yNbX]は1に等しくない。
- pcm_flag[xNbX][yNbX]は1に等しい。
- XがBに等しく、yCb_1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
- そうでない場合、candIntraPredModeXをIntraPredModeY[xNbX][yNbX]に等しく設定する。
【0186】
3.x=0..4の場合のcandModeList[x]は、以下のように導出される。
- candIntraPredModeBがcandIntraPredModeAに等しく、candIntraPredModeAがINTRA_DCよりも大きい場合、candModeList[x](x=0..4)は、以下のように導出される。
candModeList[0]=candIntraPredModeA (8-10)
candModeList[1]=2+((candIntraPredModeA+61)%64) (8-12)
candModeList[2]=2+((candIntraPredModeA-1)%64) (8-13)
candModeList[3]=INTRA_DC (8-11)
candModeList[4]=2+((candIntraPredModeA+60) %64) (8-14)
- candIntraPredModeBがcandIntraPredModeAに等しくなく、candIntraPredModeAまたはcandIntraPredModeBがINTRA_DCよりも大きい場合、以下が適用される。
- 変数minABおよびmaxABは、以下のように導出される。
minAB=Min(candIntraPredModeA,candIntraPredModeB) (8-24)
maxAB=Max(candIntraPredModeA,candIntraPredModeB) (8-25)
- candIntraPredModeA及びcandIntraPredModeBの両方がINTRA_DCよりも大きい場合、x=0..4の場合のcandModeList[x]は、以下のように導出される。
candModeList[0]=candIntraPredModeA (8-27)
candModeList[1]=candIntraPredModeB (8-29)
candModeList[2]=INTRA_DC (8-29)
- maxAB-minABが2~62の範囲内にある場合、以下が適用される。
candModeList[3]=2+((maxAB+61)%64) (8-30)
candModeList[4]=2+((maxAB-1)%64) (8-31)
- そうでない場合、以下が適用される。
candModeList[3]=2+((maxAB+60)%64) (8-32)
candModeList[4]=2+((maxAB)%64) (8-33)
- そうでない場合(candIntraPredModeAまたはcandIntraPredModeB>INTRA_DC)、x=0..4のcandModeList[x]は、以下のように導出される。
candModeList[0]=maxAB (8-65)candModeList[1]=INTRA_DC (8-66)
candModeList[2]=2+((maxAB+61)%64) (8-66)
candModeList[3]=2+((maxAB-1)%64) (8-67)
candModeList[4]=2+((maxAB+60)%64) (8-68)
- そうでない場合、以下が適用される。
candModeList[0]=INTRA_DC (8-71)
candModeList[1]=INTRA_ANGULAR50 (8-72)
candModeList[2]=INTRA_ANGULAR18 (8-73)
candModeList[3]=INTRA_ANGULAR46 (8-74)
candModeList[4]=INTRA_ANGULAR54 (8-75)
【0187】
4.IntraPredModeY[xCb][yCb]は、以下の順のステップを適用することによって導出される。
- intra_luma_mpm_flag[xCb][yCb]が1に等しい場合、IntraPredModeY[xCb][yCb]は、candModeList[intra_luma_mpm_idx[xCb][yCb]]と等しく設定される。
- そうでない場合、IntraPredModeY[xCb][yCb]は以下の順のステップを適用することにより、導出される。
1.candModeList[i]がcandModeList[j]よりも大きい(i=0..3、各i,j=(i+1)..4)場合、両方の値は、以下のようにスワップされる。(candModeList[i],candModeList[j])=Swap(candModeList[i],candModeList[j]) (8-94)
2.IntraPredModeY[xCb][yCb]は以下の順のステップで導出される。
i.IntraPredModeY[xCb][yCb]はintra_luma_mpm_remainder[xCb][yCb]と等しく設定される。
ii.IntraPredModeY[xCb][yCb]の値が1増加する。
iii.i=0~4の場合、IntraPredModeY[xCb][yCb]がcandModeList[i]以上である場合、IntraPredModeY[xCb][yCb]の値が1増加する。
【0188】
- そうでない場合(intra_luma_not_planar_flag[xCb][yCb]は0と等しい)、IntraPredModeY[xCb][yCb]はINTRA_PLANARと等しく設定される。
【0189】
x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1の場合、変数IntraPredModeY[x][y]は、IntraPredModeY[xCb][yCb]と等しく設定される。
【0190】
クロマイントラモード符号化の場合、クロマイントラモード符号化の場合、合計8つのイントラモードが許可される。これらのモードには、5つの伝統的なイントラモードと6つの構成要素共通の線形モデルモードが含まれる(CCLM、LM_AおよびLM_L)。クロマモード信号通知および導出処理を表3に示す。クロマモード符号化は、対応する輝度ブロックのイントラ予測モードに直接依存する。Iスライスにおいて、輝度成分とクロマ成分に対するブロック分割構造の分離が有効化されているため、1つのクロマブロックは複数の輝度ブロックに対応してもよい。よって、クロマDMモードの場合、現在のクロマブロックの中心位置を含む、対応する輝度ブロックのイントラ予測モードは直接継承される。
【0191】
【表11】
【0192】
2.13 履歴に基づくマージ候補の導出
【0193】
履歴に基づくMVP(HMVP)マージ候補は、空間MVPおよびTMVPの後にマージリストに追加される。この方法では、あらかじめ符号化されたブロックの動き情報がテーブルに保存され、現在のCUのMVPとして使用される。符号化/復号化処理中、複数のHMVP候補を有するテーブルが維持される。新しいCTU行が検出されると、テーブルはリセット(空)される。非サブブロックインター符号化CUがある場合は常に、関する動き情報が新しいHMVP候補としてテーブルの最後のエントリに追加される。
【0194】
VTM5では、HMVPテーブルサイズSは5に設定されている。これは、最大5つの履歴に基づくMVP(HMVP)候補をテーブルに追加できることを示している。新しい動き候補をテーブルに挿入する際には、制約付き先入れ先出し(FIFO)規則が使用され、この規則では、冗長性チェックが最初に適用され、テーブルに同一のHMVPがあるかどうかが確認される。見つかった場合、同一のHMVPがテーブルから削除され、その後、すべてのHMVP候補が前方に移動され、HMVP候補は、マージ候補リスト構築処理において使用され得る。表内の最新のいくつかのHMVP候補が順番にチェックされ、TMVP候補の後に候補リストに挿入される。冗長性チェックは、HMVP候補から空間的マージ候補に適用される。
【0195】
2.14 スケーリングリスト
【0196】
スケーリングリスト(c.f.量子化行列)は、(逆)量子化処理中に適用できる。HEVCでは、ユーザ定義のスケーリング値がPPSで信号通知され、可能なTBサイズ、色成分、予測タイプ(イントラ/インター)ごとに、独自のスケーリングリストを持つことができる。ただし、4:4:4 RExtクロマフォーマットにのみ使用される32×32クロマブロックは除かれる。16×16および32×32スケーリングリストの場合、スケーリングリストは、DC周波数位置に対応するエントリに使用される値とともに、必要なサイズに値が繰り返される8×8グリッドの値で指定される。
【0197】
2.15 インター予測のための三角形分割モード(TPM)
【0198】
VTM4において、インター予測のために三角形分割モードがサポートされる。三角形分割モードは、8×8以上であり、スキップまたはマージモードで符号化されるCUにのみ適用され、MMVDまたはCIIPモードでは適用されない。これらの条件を満たすCUの場合、CUレベルフラグを信号通知し、三角形分割モードが適用されるかどうかを示す。
【0199】
このモードを使用する場合(図14)、対角分割または逆対角分割のいずれかを使用して、1つのCUを2つの三角形のパーティションに等分する。CUにおける各三角形のパーティションは、それ自体の動きを使用してインター予測され、各パーティションに対して単一予測のみが許可される。すなわち、各パーティションは、1つの動きベクトル及び1つの参照インデックスを有する。従来の双予測と同様にCUごとに2つの動き補償予測しか必要としないようにするために、単一予測動き制約を適用する。3.4.10.1の処理を用いて構築された単一予測候補リストから、各パーティションの単一予測の動きを導出する。
【0200】
CUレベルフラグが、現在のCUが三角形分割モードで符号化されていることを示す場合。三角形分割モードを使用する場合、三角形パーティションの方向(対角または逆対角)を示すフラグ、及び2つのマージインデックス(各パーティションに1つ)をさらに信号通知する。各三角形パーティションの各々を予測した後、適応重み付きブレンド処理を使用して、対角または逆対角の縁部に沿ったサンプル値を調整する。これがCU全体の予測信号であり、他の予測モードと同様に、CU全体に対して変換及び量子化処理を適用する。最後に、2.16.3で示すように、三角形分割モードを使用して予測されたCUの動きフィールドを4×4ユニットで記憶する。
【0201】
2.15.1 単一予測候補リスト構築
【0202】
この単一予測候補リストは、5つの単一予測動きベクトル候補からなる。それは、5つの空間的に近傍のブロック(図15において1~5とラベル付けされる)と、2つの時間的に同一位置にあるブロック(図15において6~7とラベル付けされる)とを含む7つの近傍のブロックから導出される。7つの近傍のブロックを収集し、下記の順に従って、単一予測候補リストに入れる。まず、単一予測された近傍のブロックの動きベクトルを収集し、単一予測候補リストに入れる。次に、単一予測された近傍のブロックの動きベクトルを収集し、次に、双予測された近傍のブロックについて、L0動きベクトル(すなわち、双予測MVのL0動きベクトル部分)、L1動きベクトル(すなわち、双予測MVのL1動きベクトル部分)、及び双予測MVのL0、L1動きベクトルの平均化された動きベクトルを収集する。候補の数が5未満である場合、リストの末端にゼロの動きベクトルを加える。
【0203】
2.15.2 三角形の分割エッジに沿ったブレンド
【0204】
各三角形パーティションをそれ自身の動きで予測した後、2つの予測信号にブレンドを適用し、対角線または逆対角の縁部付近のサンプルを導出する。ブレンド処理において、以下の重みを用いる。
【0205】
図16の例に示すように、輝度に関しては○7/8,6/8,5/8,4/8,3/8,2/8,1/8}、クロマに関しては{6/8,4/8,2/8}である。
【0206】
2.15.3 動きフィールド記憶域
【0207】
三角形分割モードで符号化されたCUの動きベクトルは、4×4単位で記憶される。各4×4ユニットの位置に基づいて、1つの予測動きベクトルまたは2つの予測動きベクトルのいずれかが記憶される。Mv1及びMv2をそれぞれパーティション1及びパーティション2の単一予測動きベクトルとする。図16に示されるように、非重み付け領域に4×4個のユニットが位置する場合、その4×4個のユニットに対してMv1またはMv2のいずれかを記憶する。そうではなく、4×4ユニットが重み付け領域に位置する場合、双予測動きベクトルを記憶する。以下の処理に従って、Mv1及びMv2から双予測動きベクトルを導出する。
【0208】
1) Mv1及びMv2が異なる参照ピクチャリストから(一方はL0から、他方はL1から)のものである場合、Mv1及びMv2を単に組み合わせて双予測動きベクトルを形成する。
【0209】
2) そうでない場合、Mv1とMv2が同じリストに由来し、一般性を損なわない場合、両方ともL0に由来すると仮定する。この場合、以下である。
【0210】
a) Mv2(またはMv1)のいずれかの参照ピクチャがL1に現れる場合、そのMv2(またはMv1)は、L1におけるその参照ピクチャを使用してL1動きベクトルに変換される。次に、2つの動きベクトルを組み合わせ、双予測動きベクトルを形成する。
【0211】
b) そうでない場合、双予測動きの代わりに、単一予測動きMv1のみが記憶される。
【0212】
2.16 インループフィルタ
【0213】
VTM5には全部で3つのインループフィルタがある。非ブロック化フィルタとSAO(HEVCの2つのループフィルタ)に加えて、適応ループフィルタ(ALF)がVTM5に適用される。VTM5でのフィルタリングプロセスの順序は、非ブロック化フィルタ、SAO、ALFである。
【0214】
VTM5では、SAOおよび非ブロック化フィルタリングプロセスはHEVCのプロセスとほぼ同じである。
【0215】
VTM5では、クロマスケーリングを伴う輝度マッピングと呼ばれる新しいプロセスが追加された(このプロセスは、以前は適応インループリシェーパーと呼ばれていた)。この新しい処理は、非ブロック化の前に行われる。
【0216】
2.16.1 適応ループフィルタ
【0217】
VTM5において、ブロックに基づくフィルタ適応を伴う適応ループフィルタ(ALF)が適用される。輝度成分は、局所勾配の方向および働きに基づいて、4×4ブロックごとに25個のフィルタのうち1つを選択する。
【0218】
2.16.1.1 フィルタ形状
【0219】
VTM5において、2つの菱形フィルタ形状(図19に示す)が使用される。輝度成分には7×7菱形を適用し、クロマ成分には5×5菱形を適用する。
【0220】
2.16.1.2 ブロック区分
【0221】
輝度成分の場合、各4×4ブロックを25個のクラスのうちの1つに分類する。分類インデックスCは、その方向性DおよびアクティビティA^の量子化値に基づいて、以下のように導出される。
【0222】
【数6】
【0223】
DおよびA^を計算するために、まず、1-Dラプラシアンを使用して、水平、垂直および2つの対角線方向の勾配を計算する。
【0224】
【数7】
【0225】
この場合、iおよびjは、4×4イントラブロックの左上のサンプルの座標を表し、R(i,j)は、座標(i,j)において再構成されたサンプルを示す。
【0226】
ブロック区分の複雑性を低減するために、サブサンプリングされた1-Dラプラシアン計算が適用される。図20に示すように、すべての方向の勾配計算に同じサブサンプリング位置を用いる。
【0227】
そして、水平方向および垂直方向の勾配のD最大値およびD最小値を以下のように設定する。
【0228】
【数8】
【0229】
2つの対角線方向の勾配の最大値および最小値は、以下のように設定される。
【0230】
【数9】
【0231】
指向性Dの値を導出するために、これらの値を互いに且つ2つの閾値t1およびt2と比較する。
【0232】
【数10】
【0233】
アクティビティ値Aは、以下のように計算される。
【0234】
【数11】
【0235】
Aをさらに0~4の範囲に量子化し、量子化された値をA^とする。
【0236】
ピクチャにおけるクロマ成分に対して、分類方法は適用されず、即ち、単一のALF係数のセットが各クロマ成分に対して適用される。
【0237】
2.16.1.3 フィルタ係数およびクリッピング値の幾何学的変換
【0238】
各4×4輝度ブロックをフィルタリングする前に、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に対して、回転または対角線および垂直方向の反転等の幾何学的変換を施す。これは、これらの変換をフィルタ支持領域内のサンプルに適用することに等しい。その考えは、ALFが適用される異なるブロックを、それらの方向性を揃えることによって、より類似させることである。
【0239】
対角線、垂直方向の反転および回転を含む3つの幾何学的変換を紹介する。
【0240】
【数12】
【0241】
この場合、Kはフィルタのサイズであり、0≦k,l≦K-1が係数座標であり、位置(0,0)は左上隅にあり、位置(K-1,K-1)は右下隅にある。この変換は、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)およびクリッピング値c(k,l)に適用される。変換と4方向の4つの勾配との関係を以下の表にまとめる。
【0242】
【表12】
【0243】
2.16.1.4 フィルタパラメータ信号通知
【0244】
VTM5において、ALFフィルタパラメータは、適応パラメータセット(APS)において信号通知される。1つのAPSにおいて、最大25組の輝度フィルタ係数およびクリッピング値インデックス、並びに最大1組のクロマフィルタ係数およびクリッピング値インデックスを信号通知することができる。ビットオーバーヘッドを低減するために、異なる分類のフィルタ係数をマージすることができる。スライスヘッダにおいて、現在のスライスに使用されるAPSのインデックスが信号通知される。
【0245】
APSから復号化されたクリッピング値インデックスは、クリッピング値の輝度テーブル(Luma table)およびクリッピング値のクロマテーブル(Chroma table)を使用してクリッピング値を判定することができるようになる。これらのクリッピング値は、内部ビット深度に依存する。具体的には、クリッピング値の輝度テーブルおよびクロマテーブルは、以下の式によって得られる。
【0246】
【数13】
【0247】
ここで、Bは内部ビット深度に等しく、NはVTM5.0における許容されるクリッピング値の数である4に等しい。
【0248】
フィルタリング処理はCTBレベルで制御されてもよい。ALFが輝度CTBに適用されるかどうかを示すために、常に1つのフラグが信号通知される。1つの輝度CTBは、16個の固定フィルタセットのうち1つのフィルタセットを選択し、複数のAPSから1つのフィルタセットを選択することができる。どのフィルタセットが適用されるかを示すように、輝度CTBのためにフィルタセットインデックスが信号通知される。エンコーダおよびデコーダの両方において、16個の固定フィルタセットを予め規定し、ハードコードする。
【0249】
フィルタ係数は、128に等しいノルムで量子化される。乗算の複雑性を抑えるために、非中心位置の係数値が-27~27-1の範囲内に含まれるように、ビットストリーム適合性が適用される。中心位置係数はビットストリームにおいて信号通知されず、128に等しいと見なされる。
【0250】
2.16.1.5 フィルタリング処理
【0251】
デコーダ側において、CTBのためにALFが有効化されると、CU内の各サンプルR(i,j)がフィルタリングされ、その結果、以下に示すように、サンプル値R’(i,j)が得られる。
【0252】
【数14】
【0253】
この場合、f(k,l)は復号化されたフィルタ係数を表し、K(x,y)はクリッピング関数であり、c(k,l)は復号化されたクリッピングパラメータを表す。変数kおよびlは、-L2とL2との間で変化し、ここで、Lはフィルタ長を表す。関数Clip3(-y,y,x)に対応するクリッピング関数K(x,y)=min(y,max(-y,x))である。
【0254】
2.16.1.6 行バッファ削減のための仮想境界フィルタリング処理
【0255】
VTM5において、ALFの行バッファ要件を低減するために、水平CTU境界付近のサンプルに対して修正されたブロック区分およびフィルタリングが用いられる。そのために、図22に示すように、水平方向CTU境界を「N」個のサンプルで移動させることによって、仮想境界を行として定義し、Nは、輝度成分に対しては4に等しく、クロマ成分に対しては2に等しい。
【0256】
図21に示すように、輝度成分に対して修正されたブロック区分を適用する。仮想境界より上の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より上のサンプルのみを使用する。同様に、仮想境界より下の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より下のサンプルのみを使用する。従って、1Dラプラシアン勾配計算に使用されるサンプルの低減された数を考慮に入れることで、アクティビティ値Aの量子化を拡大縮小する。
【0257】
フィルタリング処理のために、仮想境界における対称パディング演算が、輝度成分およびクロマ成分の両方に使用される。図22に示すように、フィルタリングされる試料が仮想境界の下に位置する場合、仮想境界の上に位置する近傍のサンプルにパディングを行う。一方、他方の側の対応するサンプルもまた、対称的にパディングされる。
【0258】
2.16.2 ロングタップ非ブロック化フィルタ
【0259】
VTM5では、非ブロック化フィルタリングプロセスはHEVCのプロセスとほとんど同じである。ただし、以下の修正が追加されている。
a)再構成されたサンプルの平均輝度レベルに依存する非ブロック化フィルタのフィルタ強度。
b)tCテーブル拡張の非ブロック化
c)輝度用のより強力な非ブロック化フィルタ
d)クロマ用のより強力な非ブロック化フィルタ
【0260】
2.16.2.1再構成された平均輝度レベルに依存するフィルタ強度
【0261】
HEVCでは、非ブロック化フィルタのフィルタ強度は、平均化された量子化パラメータqPから導出される変数βおよびtCによって制御される。VTM5では、非ブロック化フィルタは、再構成されたサンプルの輝度レベルに応じてqPにオフセットを追加することにより、非ブロック化フィルタの強度を制御する。再構築された輝度レベルLLは、次のように導出される。
LL=((p0,0+p0,3+q0,0+q0,3)>>2)/(1<<bitDepth) (3-15)
【0262】
ここで、サンプル値pi、kおよびqi、k(i=0..3およびk=0および3)は、図23に示すように導出される。
【0263】
変数qPは、以下のように導出される。
qP=((Qp+Qp+1)>>1)+qpOffset (3-16)
【0264】
ここで、QpとQpは、それぞれサンプルq0,0とp0,0を含む符号化ユニットの量子化パラメータを示す。オフセットqpOffsetは伝達関数に依存し、値はSPSにおいて信号通知される。
【0265】
2.16.2.2 tCテーブル拡張の非ブロック化
【0266】
VTM5では、最大QPが51から63に変更され、ブロックQPに基づいて非ブロック化パラメータtCの値を導出する非ブロック化テーブルに対応する変更を反映することが望まれる。以下は、QP範囲の拡張に対応するために更新されたtC表である。
【0267】
tC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,25,28,31,35,39,44,50,56,63,70,79,88,99]
【0268】
2.16.2.3輝度用のより強力な非ブロック化フィルタ
【0269】
境界のいずれかの側のサンプルが大ブロックに属する場合、バイリニアフィルタ(より強力な非ブロック化フィルタ)が使用される。大ブロックに属するサンプルは、垂直エッジに対して幅が32以上の場合、水平エッジに対して高さが32以上の場合として定義される。次に、i=0からSp-1に対するブロック境界サンプルpi、およびj=0からSq-1に対するブロック境界サンプルqiは、線形補間によって次のように置き換えられる。
【0270】
【数15】
【0271】
ここで、tcPDiおよびtcPDjtermは位置依存クリッピングであり、gj、fi、Middles、t、Ps、およびQsは以下のとおりである。
【0272】
【表13】
【0273】
上記のより強力な輝度フィルタは、条件1、条件2、および条件3のすべてがTRUEの場合にのみ使用される。条件1は、「大ブロック条件」である。この条件は、P側とQ側のサンプルが大ブロックに属しているかどうかを検出する。条件2と条件3は、次の要素によって決定される。
条件2=(d<β)? TRUE:FALSE
条件3=StrongFilterCondition=(dpq is less than(β>>2),sp+sq3 is less than(3*β>>5),and Abs(p-q)is less than(5*tC+1)>>1)? TRUE:FALSE
【0274】
2.16.2.4 クロマ用の強い非ブロック化フィルタ
【0275】
以下のようなクロマ用の強い非ブロック化フィルタが定義される。
’=(3*p+2*p+p+p+q+4)>>3 (3-19)
’=(2*p+p+2*p+p+q+q+4)>>3 (3-20)
’=(p+p+p+2*p+q+q+q+4)>>3 (3-21)
【0276】
上記クロマフィルタは、8×8クロマサンプルグリッドに対して非ブロック化を行う。クロマの強いフィルタは、ブロックの境界の両側に用いられる。ここで、クロマフィルタは、クロマエッジの両側が8(クロマサンプル単位)以上である場合に選択され、3つの条件付きの次の決定が満たされる。第1のものは、境界強度と大ブロックの決定のためである。第2および第3のものは、基本的にはHEVC輝度のための決定と同じであり、それぞれオン/オフ決定および強いフィルタの決定となっている。第1の決定において、表1に示すように、クロマフィルタリングのために境界強度(bS)が修正される。表3-12の条件を順次チェックする。条件が満たされている場合、残りの優先順位の低い条件はスキップされる。
【0277】
【表14】
【0278】
大ブロックの境界が検出された場合、bSが2であるか、またはbSが1であるとき、クロマ非ブロック化が行われる。第2および第3の条件は、基本的には、HEVC輝度の強いフィルタの決定と同様である。
【0279】
2.16.2.5サブブロック境界用の非ブロック化フィルタ
【0280】
VTM5では、非ブロック化フィルタはHEVCとして8×8グリッドで有効になっている。非ブロック化フィルタリングプロセスは、CU境界と、8×8グリッドに配置されるサブブロック境界に適用される。サブブロック境界には、STMVPモードとアフィンモードによって導入された予測ユニット境界と、SBTモードとISPモードによって導入された変換ユニット境界が含まれる。
8×8グリッド上のSBTおよびISPサブブロックの場合、HEVC非ブロック化フィルタのTUの同じロジックが適用される。エッジにわたりいずれかのサブブロックに非ゼロ係数がある場合、非ブロック化フィルタは8×8グリッドのTU境界に適用される。
【0281】
8×8グリッド上のSbTMVPおよびアフィンサブブロックの場合、HEVC非ブロック化フィルタのPUの同じロジックが適用される。PU境界の場合、非ブロック化フィルタは、動きベクトルと近傍のサブブロックの参照ピクチャとの違いを考慮して、8×8グリッドに適用される。
【0282】
2.16.3 クロマスケーリングを伴う輝度マッピング(LMCS)
【0283】
VTM5において、ループフィルタの前に新しい処理ブロックとしてクロマスケーリングによる輝度マッピング(LMCS)と呼ばれる符号化ツールが、追加される。LMCSは、2つの主な成分を有する。1)適応型区分線形モデルに基づく輝度成分のインループマッピング、および、2)クロマ成分のために、輝度依存クロマ残差スケーリングを適用する。図24は、デコーダの観点から見たLMCSアーキテクチャを示す。図24中の薄い青色の影が付けられたブロックは、マッピングされたドメインにおいて処理が適用される場所を示し、これらは、逆量子化、逆変換、輝度イントラ予測、および輝度予測と輝度残差との加算を含む。図24中の影が付けられていないブロックは、元の(即ち、マッピングされていない)ドメインにおいて処理が適用される場所を示し、これらは、非ブロック化、ALF、SAO等のループフィルタ、動き補償予測、クロマイントラ予測、クロマ残差とともにクロマ予測を加算し、復号化されたピクチャを参照ピクチャとして記憶することを含む。図24における淡黄色の陰影付きブロックは、輝度信号の前方および後方マッピング並びに輝度依存性クロマスケーリング処理を含む、新しいLMCS機能ブロックである。VVCにおける他のほとんどのツールと同様に、LMCSは、SPSフラグを使用して、シーケンスレベルで有効/無効にすることができる。
【0284】
2.16.3.1区分的線形モデルを使用した輝度マッピング
【0285】
輝度コンポーネントのインループマッピングは、ダイナミックレンジ全体にコード名を再配布して圧縮効率を向上させることにより、入力信号のダイナミックレンジを調整する。輝度マッピングは、順方向マッピング関数FwdMapと、対応する逆方向マッピング関数InvMapを利用する。FwdMap関数は、16個の等しい区分を持つ区分的線形モデルを使用して信号通知される。InvMap関数は信号通知する必要はなく、代わりにFwdMap関数から派生する。
【0286】
輝度マッピングモデルは、タイルグループレベルで信号通知される。プレゼンスフラグが最初に信号通知される。現在のタイルグループに輝度マッピングモデルが存在する場合、対応する区分的線形モデルパラメータが信号通知される。区分的線形モデルは、入力信号のダイナミックレンジを16の等しい部分に分割し、各部分について、その線形マッピングパラメータが、その部分に割り当てられたコード名の数を使用して表される。例として10ビット入力を取り上げる。16個のピースのそれぞれには、デフォルトで64個のコード名が割り当てられる。信号通知されたコード名の数は、スケーリング係数を計算し、それに応じてその部分に応じてマッピング関数を調整するために使用される。タイルグループレベルでは、別のLMCS有効化フラグが信号通知され、図24に示されているLMCSプロセスが現在のタイルグループに適用されているかどうかが示される。
【0287】
FwdMap区分的線形モデルの各i番目のピースi=0…15は、2つの入力ピボットポイントInputPivot[]と2つの出力(マップされた)ピボットポイントMappedPivot[]によって定義される。
【0288】
InputPivot[]とMappedPivot[]は、次のように計算される(10ビットの映像を想定)。
1) OrgCW=64
2) For i=0:16,InputPivot[i]=i*OrgCW3)For i=0:16,MappedPivot[i]は以下のように計算される:
MappedPivot[0]=0;
for(i=0;i<16;i++)
MappedPivot[i+1]=MappedPivot[i]+SignalledCW[i]
ここで、SignalledCW[i]は、i番目のピースに対して信号通知されたコード名の数である。
【0289】
図24に示すように、インター符号化ブロックの場合、動き補償予測はマップされたドメインで行われる。言い換えると、動き補償予測ブロックYpredがDPBの参照信号に基づいて計算された後、FwdMap関数は、元のドメインの輝度予測ブロックがマップされたドメインY’pred=FwdMap (Ypred)に適用される。イントラ符号化ブロックの場合、イントラ予測はマップされたドメインで行われるため、FwdMap関数は適用されない。再構築されたブロックYrが計算された後、InvMap関数が適用され、マップされたドメインの再構築された輝度値が元のドメインの再構築された輝度値に変換される(Y^i=InvMap(Yr))。InvMap関数は、イントラ符号化輝度ブロックおよびインター符号化輝度ブロックの両方に適用される。
【0290】
輝度マッピングプロセス(順方向および/または逆方向のマッピング)は、ルックアップテーブル(LUT)またはオンザフライ計算のいずれかを使用して実装できる。LUTを使用する場合、FwdMapLUTおよびInvMapLUTは、タイルグループレベルで使用するために事前に計算および保存でき、順方向および逆方向のマッピングは、それぞれFwdMap(Ypred)=FwdMapLUT[Ypred]およびInvMap(Yr)=InvMapLUT[Yr]として簡単に実装できる。あるいは、オンザフライ計算を使用することもできる。例として、フォワードマッピング関数FwdMapを取り上げる。輝度サンプルが属するピースを把握するために、サンプル値は6ビットだけ右シフトされる(これは16個の等しいピースに対応する)。次に、そのピースの線形モデルパラメータが取得され、オンザフライで適用されて、マップされた輝度値が計算される。iをピースインデックス、a1、a2をそれぞれInputPivot[i]およびInputPivot[i+1]、b1、b2をそれぞれMappedPivot[i]およびMappedPivot[i+1]とする。FwdMap関数は次のように評価される。
【0291】
【数16】
【0292】
InvMap関数は、同様の方法でオンザフライで計算できるが、サンプル値が属するピースを特定するときに、単純な右ビットシフトの代わりに条件付きチェックを適用する必要がある点が異なる。ドメインは同じサイズではないからである。
【0293】
2.16.3.2 輝度依存クロマ残差スケーリング
【0294】
クロマ残差スケーリングは、輝度信号とそれに対応するクロマ信号間の相互作用を補正するように設計されている。クロマ残差スケーリングが有効かどうかは、タイルグループレベルでも信号通知される。輝度マッピングが有効で、二重ツリーパーティション(個別のクロマツリーとも呼ばれる)が現在のタイルグループに適用されていない場合、輝度依存のクロマ残差スケーリングが有効かどうかを示す追加のフラグが信号通知される。輝度マッピングが使用されていない場合、または現在のタイルグループで二重ツリーパーティションが使用されている場合、輝度に依存するクロマ残差スケーリングは無効化される。さらに、輝度に依存するクロマ残差スケーリングは、面積が4以下のクロマブロックでは常に無効化される。
【0295】
クロマ残差スケーリングは、対応する輝度予測ブロックの平均値に依存する(イントラ符号化輝度ブロックおよびインター符号化輝度ブロックの両方)。輝度予測ブロックの平均としてavgY’を示す。CScaleInvの値は、次の手順で計算される。
1)InvMap関数に基づいて、avgY’が属する区分的線形モデルのインデックスYIdxを見つける。
2)CScaleInv=cScaleInv[YIdx]、式中、cScaleInv[]は事前に計算された16ピースのLUTである。
【0296】
現在のブロックがイントラ、CIIP、またはイントラブロックコピー(IBC、別名現在のピクチャ参照またはCPR)モードとして符号化されている場合、avgY’は、イントラ、CIIP、またはIBCで予測された輝度値の平均として計算される。それ以外の場合、avgY’は、前方にマッピングされた相互予測輝度値の平均として計算される(図24のY’pred)。サンプルベースで行われる輝度マッピングとは異なり、CScaleInvはクロマブロック全体の定数値である。CScaleInvでは、クロマ残差スケーリングは次のように適用される。
【0297】
【数17】
【0298】
2.16.3.3エンコーダ側のLMCSパラメータ推定
【0299】
LMCSモデルパラメータを推定するために、非規範的な参照実装形態がVTM5.0エンコーダで提供されている。VTMアンカーはSDRとHDRの処理が異なるため、VTM5.0の参照アルゴリズムはSDRシーケンスとHDRシーケンスに対して異なる方法で設計されている。SDRの場合、エンコーダアルゴリズムは局所的な輝度変形に基づいており、PSNRメトリック用に最適化されている。HDR PQシーケンスの場合、エンコーダアルゴリズムは輝度値に基づいており、wPSNR(重み付きPSNR)メトリック用に最適化されている。
【0300】
2.16.3.3.1 SDR用のLMCSパラメータ推定
【0301】
SDR用のVTM5.0参照実装形態の基本的な考え方は、より多くのコード名を持つピースを平均変形よりも低いそれらのダイナミックレンジセグメントに割り当て、より少ないコード名を平均変形よりも高いそれらのダイナミックレンジセグメントに割り当てることである。このようにして、ピクチャの滑らかな領域は平均よりも多くのコード名で符号化され、その逆も同様である。
【0302】
SDRテストシーケンスの場合、参照アルゴリズムは次の信号分析を行う。
1)入力映像の統計は、10ビットの内部符号化ビット深度が使用されていると仮定して収集および分析される。内部符号化のビット深度が10ビットでない場合、ビット深度は最初に10ビットに正規化される。
2)[0,1023]のダイナミックレンジを32個の等しいピースに分ける。
3)ピクチャ内の各輝度サンプルの位置について、輝度サンプル値の局所的な空間変形は、現在の位置を中心とする5×5の近傍を使用して計算される。現在の輝度サンプル値が属する特定のピース(32個のうち)をpとして示す。したがって、この局所変形はp番目のピースに関連付けられる。
4)32個のピースのそれぞれについて、平均局所空間変形(bin_var)を計算する。
5)ソートされたbin_var統計と累積分布関数に基づいて、2つのしきい値Thr1、Thr2を設定する。
6)bin_var統計に応じて、4つの可能な数のコード名のうち1つを各ピースに割り当てる。
a. bin_var=0の場合、ピースに0コード名を割り当てる
b. bin_var<Thr1の場合、統計に応じて36、38、または40のコード名を割り当てる
c. bin_var>Thr2の場合、統計に応じて28または32のコード名を割り当てる
d. それ以外の場合は、デフォルトの32コード名を割り当てる
7)割り当てられたコード名の総数が1023を超える場合は、コード名の総数が1023になるように調整する。
8)内部ビット深度が10ビットでない場合は、実際の内部ビット深度に基づいて、ピースごとにコード名数を正規化する。
9)32ピースの割り当てで2つの隣接するピースに割り当てられたコード名の数を組み合わせて、16個の等しいピースSignalledCW[i],i=0…15に対するコード名の数を計算する。たとえば、0番目のピースと1番目のピースが結合され、2番目のピースと3番目のピースが結合される。
10)SignalledCW[i]値は、タイルグループレベルで信号通知される。
【0303】
LMCSが適用される場合、SSEはイントラ(I)タイルグループの輝度に対して使用され、重み付きSSEはインター(PまたはB)タイルグループの輝度に対して使用される。重みw_lmcs(k)は、区分的線形モデルのk番目のピースのコード名割り当てに基づいて次のように導出される。
w_lmcs[k]=(SignalledCW[k]/OrgCW)^2 (3-23)
【0304】
SSEは常にクロマモードの決定のために使用される。
【0305】
LMCSを有効にするかどうかのピクチャレベルの決定に関しては、さまざまな符号化構成に対してさまざまな考慮事項が与えられる。ランダムアクセス(RA)テスト条件では、上記で説明したように、IRAPピクチャごとにピクチャ分析を実行してbin_var値を取得する。次に、すべてのbin_var値が低い(つまり、しきい値を下回っている)と見なされると、IRAPピクチャに対してLMCSが無効化される。同じIRAP期間内の他のインター符号化ピクチャの場合、すべてのbin_var値が狭い範囲内にあるかどうか(つまり、最大bin_var値と最小bin_var値との差が比較的小さいかどうか)が判断される。bin_varの範囲が狭い場合、LMCSは、時間レイヤーIDが0のピクチャに対してのみ有効化される。それ以外の場合、bin_varの範囲が狭くない場合は、インター符号化ピクチャのすべてに対してLMCSが有効化される。
【0306】
すべてのイントラ(AI)および低遅延(LD)のテスト条件では、LMCSがすべてのピクチャに対して有効化される。AIの場合、LCMSパラメータ推定はすべてのピクチャに対して実行され、モデルパラメータはすべてのピクチャに対して送信される。LDの場合、LCMSパラメータは1秒間隔で推定され、モデルパラメータはそれらのピクチャのタイルグループで送信される。
【0307】
2.16.3.3.2 HDR用のLMCSパラメータ推定
【0308】
JVET HDR CTCには、次の2種類のHDRシーケンスが含まれている。PQおよびHLG。これらの2種類のシーケンスは、VTMリファレンスエンコーダでは異なる方法で処理される。PQシーケンスの場合、VTMリファレンスエンコーダは輝度ベースのQP適応を適用し、QP値を空間的に変化させることができる。HLGシーケンスの場合、静的量子化が使用される。同様に、LMCSは、これら2つのタイプのシーケンスにも異なる方法で適用される。PQの場合、LMCSは、以下で説明するように計算されたデフォルトのLMCSマッピング機能を使用して適用される。HLGの場合、LMCSは無効化されている。
【0309】
VTMリファレンスエンコーダは、HDR CTCの客観的な品質メトリックとして、従来のPSNRの代わりにwPSNR(重み付きPSNR)を使用する。デフォルトのHDRL MCS曲線は、wPSNRメトリックを最大化するためにdQP関数と一致するように計算される。
【0310】
輝度ベースのQP適応は、輝度サンプル値の平均に基づいて、CTUごとのローカルデルタQP(dQP)値を導出する。
dQP(Y)=max(-3,min(6,0.015*Y-1.5-6)) (3-24)
【0311】
式中、Yは平均輝度値であり、10ビット映像に対して、maxY=1023である。wPSNR計算で使用される重み(W_SSE)は、dQP値に基づいて導出される。
W_SSE(Y)=2^(dQP(Y)/3) (3-25)
【0312】
デフォルトのLMCS曲線は、次のように輝度サンプル値に基づいて計算される。
1)再形成曲線の傾きを計算する:slope[Y]=sqrt(W_SSE(Y))=2^(dQP(Y)/6)。
2)信号が狭い範囲(標準範囲とも呼ばれる)にある場合は、Y∈[0,64)またはY∈(940,1023)に対してslope[Y]=0を設定する。
3)勾配[Y]、F[Y+1]=F[Y]+slope[Y]、Y=0・・・maxY-1を積分してF[Y]を計算する。
4)FwdLUT[Y]は、F[Y]を[0maxY]、FwdLUT[Y]=clip3(0、maxY、round(F[Y]*maxY/F[maxY]))に正規化することによって計算される。
5)次のように、16個の等しいピースSignalledCW[i]、i=0・・・15に対するコード名数を計算する。
SignalledCW[15]=FwdLUT[1023]-FwdLUT[960];
for(i=14;i>=0;i--)
SignalledCW[i]=FwdLUT[(i+1)*OrgCW]-FwdLUT[i*OrgCW];
【0313】
エンコーダでのレート歪み最適化モードの決定に関して、LMCSが適用される場合、イントラ(I)タイルグループでは、SSEが輝度に対して使用され、重み付きSSEがクロマに対して歪み測定として使用される。インター(PまたはB)タイルグループの場合、重み付きSSEが輝度とクロマの両方に使用される。LCMSはすべてのタイルグループに適用される。
【0314】
3 従来技術の技術的制約の例
【0315】
パレットモードまたはその変形例(PCIPやCPMなど)で符号化されたブロックでは、いくつかの問題が発生する。
1.パレットモードは、非ブロック化処理で特別に処理する必要がある場合がある。
2.CPMおよび/またはPCIPは、符号化効率を高めるためのイントラ予測モードとして扱ってもよい。
3.CPMで符号化されたブロックのMV/BVは、符号化効率を高めるために、連続するブロックのMV/BV予測として使用してもよい。
4.PCIPで符号化されたブロックのイントラ予測方向は、符号化効率のための連続するブロックのイントラモード予測として使用してもよい。
5.VTMと同様に、クロマCPMはサブブロックレベルで動きベクトルの導出を行う必要があるため、複雑さは増加する。
6.クロマPCIPの信号通知は、クロマIBCモードの可用性を考慮していない。
7.非変換モード(すなわち、1つのブロックが変換で符号化されていない、または恒等変換で符号化されている)、例えば、変換スキップ、bdpcmモードが使用される場合、いくつかのQPは非効率的でもよい。
8.モードを導出するために使用される対応する輝度ブロックがIBCで符号化される場合、クロマのためにDMモードをどのように扱うかは、不明瞭である。
【0316】
4 例示的な実施形態
【0317】
以下に列記される実施形態は、一般的な概念を説明するための例であると考えられるべきである。これらの実施形態は狭い意味で解釈されるべきではない。さらに、列挙された技術は、任意の形で組み合わせることができ、例えば、符号化効率を改善し、復号化または符号化の複雑さを低減する。
【0318】
以下に説明する方法は、現在のパレットモード、PCIP、CPM、または残差符号化のためにパレットに依存する可能性のある他の符号化方法に適用され得る。
【0319】
1.パレットモードは、非ブロック化処理で既存の符号化モード(たとえば、イントラ、インター、IBC)に加えて、別個のモード(たとえば、MODE_PLT)として扱われ得る。
a.一例として、P側およびQ側のブロックが両方ともパレットモードで符号化されている場合、境界強度を0に設定してもよい。
b.一例として、一方の側のブロックAがパレットモードで符号化され、他方の側のブロックBがパレットモードで符号化されていない場合、境界強度は、ブロックBの情報にのみ依存してもよい。
i.一例として、ブロックBはイントラモードで符号化されている。このような場合、境界強度を2に設定してもよい。
ii.一例において、ブロックBはIBCモードで符号化されている。このような場合、ブロックBが少なくとも1つの非ゼロ係数を有する場合、境界強度は1に設定してもよい。
iii.一例において、ブロックBはIBCモードで符号化されている。このような場合、ブロックBのすべての係数が0であれば、境界強度を0に設定してもよい。
c.一例として、上記の方法は、PCIP、CPMまたは他のパレット関連の方法にも適用されてもよい。
【0320】
2.CPMは、非ブロック化処理において(たとえば、境界強度の導出など)、IBCモードと同様に扱ってもよい。
a.あるいは、CPMは、非ブロック化処理において(たとえば、境界強度の導出など)、パレットモードと同様に扱ってもよい。
b.あるいは、CPMは、非ブロック化処理において(たとえば、境界強度の導出など)、イントラモードと同様に扱ってもよい。
c.あるいは、非ブロック化フィルタを適用する方法は、CPMの使用法に依存してもよい。
【0321】
3.PCIPは、非ブロック化処理において(たとえば、境界強度の導出など)、イントラモードと同様に扱ってもよい。
a.あるいは、PCIPは、非ブロック化処理において(たとえば、境界強度の導出など)、パレットモードと同様に扱ってもよい。
b.あるいは、非ブロック化フィルタを適用する方法は、PCIPの使用法に依存してもよい。
【0322】
4.パレット符号化ブロック/CPM/PCIPの符号化ブロックフラグは、固定値に設定しても、ブロック内のエスケープ画素の存在に依存してもよい。
a.一例として、符号化されたブロックフラグを0に設定してもよい。
b.一例として、符号化されたブロックフラグを1に設定してもよい。
c.一例として、現在のブロックにエスケープ画素がない場合、符号化されたブロックフラグを0に設定してもよい。
d.一例として、現在のブロックに少なくとも1つのエスケープ画素がある場合、符号化されたブロックフラグを1に設定してもよい。
【0323】
5.パレットモード、および/またはCPMおよび/またはPCIPで符号化されたサンプルはブロック解除されない場合がある。
a.一例として、P側またはQ側のブロックがCPMおよび/またはPCIPで符号化されている場合、P側および/またはQ側のサンプルはブロック解除されない可能性がある。
b.一例として、P側のブロックがCPMおよび/またはPCIPで符号化され、Q側のブロックがこれらのモードで符号化されていない場合、P側のサンプルはブロック解除されない可能性があり、逆もまた同様である。
c.一例として、CPMモードの場合、非ブロック化フィルタは、IBC予測からコピーされたサンプルに対してのみ行われ得る。パレットエントリの他のサンプルはブロック解除されない場合がある。
d.一例として、PCIPモードの場合、非ブロック化フィルタは、イントラ予測からコピーされたサンプルに対してのみ行われ得る。パレットエントリの他のサンプルはブロック解除されない場合がある。
【0324】
6.変換ユニット/予測ユニット/符号化ブロック/領域に対するCPMの使用の指示は、イントラモード、インターモード、IBCモードおよびパレットモードを含み得る既存の予測モードとは別に符号化され得る。
a.一例として、予測モードに関する構文要素(例えば、cu_skip_flag、pred_mode_flag、pred_mode_ibc_flag、およびcu_palette_flag)は、CPMの使用の指示の前に符号化することができる。
i.代替的に、さらに、CPMの使用の指示は、予測モードに基づいて条件付きで信号通知されてもよい。
1.一例では、CPMモードがブロック内コピーモード(すなわち、MODE_IBC)である場合、CPMモードの使用の指示の信号通知はスキップされ得る。さらに、現在の予測モードがMODE_IBCである場合、CPMの使用の指示がFALSEであると推測されてもよい。
【0325】
7.色成分の信号CPMおよび/またはPCIP関連の構文を通知するかどうかは、パーティション構造および/またはカラーフォーマットおよび/または別個のプレーン符号化に依存してもよい。
a.一例として、クロマ成分の場合、単一のツリーが適用されると、CPMおよび/またはPCIP関連の構文の信号通知がスキップされてもよい。
b.あるいは、クロマ成分の場合、デュアルツリーが適用されている場合、CPMおよび/またはPCIP関連の構文が通知されてもよい。
c.あるいは、カラーフォーマットが4:0:0の場合、クロマブロックのCPMおよび/またはPCIP関連の構文の信号通知をスキップできる。
i.あるいは、さらに、それらは依然として信号通知されてもよいが、復号化プロセスでは使用されない。
【0326】
8.クロマブロックのCPMモードの使用の指示の信号通知は、対応する輝度ブロック内の1つ以上の選択されたブロックの符号化された情報(例えば、予測モード)に基づくことができる。
a.一例として、選択された輝度ブロックの少なくとも1つがIBCモードで符号化されている場合、クロマブロックのCPMの指示が信号通知されてもよい。
i.あるいは、選択されたすべての輝度ブロックがIBCモードで符号化されている場合、クロマブロックのCPMの指示が信号通知されてもよい。
ii.あるいは、選択されたブロックがイントラブロックコピーモードで符号化されていない(すなわち、MODE_IBCである)場合、クロマCPMの使用の指示は、信号通知されなくてもよく、さらに、選択されたブロックの予測モードがMODE_IBCでない場合、CPMの使用の指示は、デフォルト値(例えば、false)であると推測されてもよい。
iii.あるいは、選択されたすべてのブロックがイントラブロックコピーモード(すなわち、MODE_IBC)で符号化されていない場合、クロマCPMの使用の指示が信号通知されない場合がある。さらに、選択されたすべてのブロックがIBCモードで符号化されていない場合、CPMの使用の指示がデフォルト値(たとえば、false)であると推測されてもよい。
b.一例において、選択された輝度ブロックのサイズは、最小のCU/PU/TUサイズまたはモーション/モードストレージ用のユニット(4×4など)であり得る。
c.一例として、選択された輝度ブロックは、対応する輝度領域の中央、左上、右上、左下、または右下の位置を含むCU/PU/TUであってもよい。対応する輝度領域の例を図4-1に示す。
i.一例において、現在のクロマブロックの左上の座標が(x0、y0)であり、現在のクロマブロックの幅と高さがそれぞれw0とh0であると仮定する。対応する輝度領域の左上のサンプルの座標、対応する輝度領域の幅と高さは、カラーフォーマットに従ってスケーリングしてもよい。
a)4:2:0カラーフォーマットの場合、同一位置に配置された輝度領域の左上の座標は(2*x0、2*y0)であり、その幅と高さはそれぞれ2*w0と2*h0である。
b)4:4:4カラーフォーマットの場合、同一位置に配置された輝度領域の左上の座標は(x0、y0)であり、その幅と高さはそれぞれw0とh0である。
ii.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、中心位置の座標は次のようになり得る。
a) (x+W/2,y+H/2)
b) (x+W/2-1,y+H/2-1)
c) (x+W/2,y+H/2-1)
d) (x+W/2-1,y+H/2)
iii.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、左上の位置の座標は(x、y)になり得る。
iv.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、右上の位置の座標は次のようになり得る。
a) (x+W,y)
b) (x+W-1,y)
v.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、左下の位置の座標は次のようになる。
a) (x,y+H)
b) (x,y+H-1)
vi.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、右下の位置の座標は次のようになり得る。
a) (x+W,y+H)
b) (x+W,y+H-1)
c) (x+W-1,y+H)
d) (x+W-1,y+H-1)
【0327】
図13は、対応する輝度領域の例を示している。
【0328】
9.クロマPCIPモードの使用の信号通知は、1つ以上の選択された輝度ブロックの符号化された情報に依存してもよい。
a.一例として、対応する輝度ブロック内の選択されたブロックがイントラブロックコピーモード(すなわち、MODE_IBC)で符号化されている場合、クロマPCIPの使用の指示が信号通知されない場合がある。さらに、対応する輝度ブロックの選択されたブロックの予測モードがMODE_IBCである場合、PCIPの使用の指示はfalseであると推測され得る。
i.あるいは、選択されたすべての輝度ブロックがIBCモードで符号化されている場合、クロマブロックのPCIPの指示が信号通知されない場合がある。
ii.あるいは、対応する輝度領域内のすべてのサンプルがIBCモードで符号化されている場合、クロマブロックのPCIPの指示が信号通知されない場合がある。
b.一例において、選択された輝度ブロックのサイズは、最小のCU/PU/TUサイズまたはモーション/モードストレージ用のユニット(4×4など)であり得る。
c.一例として、選択された輝度ブロックは、図4-1に示されるように、対応する輝度領域の中央、左上、右上、左下、または右下の位置を含むCU/PU/TUであってもよい。
i.一例において、現在のクロマブロックの左上の座標が(x0、y0)であり、現在のクロマブロックの幅と高さがそれぞれw0とh0であると仮定する。対応する輝度領域の左上のサンプルの座標、対応する輝度領域の幅と高さは、カラーフォーマットに従ってスケーリングしてもよい。
a)4:2:0カラーフォーマットの場合、同一位置に配置された輝度領域の左上の座標は(2*x0、2*y0)であり、その幅と高さはそれぞれ2*w0と2*h0である。
b)4:4:4カラーフォーマットの場合、同一位置に配置された輝度領域の左上の座標は(x0、y0)であり、その幅と高さはそれぞれw0とh0である。
ii.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、中心位置の座標は次のようになり得る。
a) (x+W/2,y+H/2)
b) (x+W/2-1,y+H/2-1)
c) (x+W/2,y+H/2-1)
d) (x+W/2-1,y+H/2)
iii.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、左上の位置の座標は(x、y)になり得る。
iv.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、右上の位置の座標は次のようになり得る。
a) (x+W,y)
b) (x+W-1,y)
v.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、左下の位置の座標は次のようになる。
a) (x,y+H)
b) (x,y+H-1)
vi.同一位置に配置された輝度領域の左上の座標が(x、y)であり、その幅と高さがWとHであるとすると、右下の位置の座標は次のようになり得る。
a) (x+W,y+H)
b) (x+W,y+H-1)
c) (x+W-1,y+H)
d) (x+W-1,y+H-1)
【0329】
10.CPMモードを、既存の予測モードに加えて、別個の予測モード(たとえば、MODE_PLT_IBCで示される)として扱うことを提案する。
a.一例において、予測モードは、イントラスライス/Iピクチャ/イントラタイルグループのためのイントラ、イントラブロックコピー、パレットモード、およびCPMモードを含んでもよい。
b.代替的に、予測モードは、イントラスライス/Iピクチャ/イントラタイルグループのためのイントラ、パレットモード、およびCPMモードを含んでもよい。
c.一例において、予測モードは、スライス間/および/またはBピクチャ/タイルグループのためのイントラ、インター、イントラブロックコピー、パレットモード、およびCPMモードを含んでもよい。
d.代替的に、予測モードは、イントラ、インター、イントラブロックコピー、パレットモード、およびCPMモードのうちの少なくとも2つを含んでもよい。
e.一例において、予測モードがインターモード(すなわち、MODE_INTER)である場合、CPMモードの使用の指示の信号通知はスキップされてもよい。さらに、現在の予測モードがMODE_INTERである場合、CPMモードの使用の指示がFALSEであると推測されてもよい。
【0330】
11.CPMは、既存の予測モードの特殊なケースとして扱われてもよい。この場合、CPMモードに関する構文は、既存の予測モードの特定の使用条件下でさらに信号通知されてもよい。
a.一例として、予測モードがイントラモード(すなわち、MODE_INTRA)である場合、CPM関連の構文の信号通知はスキップされ得る。さらに、現在の予測モードがMODE_INTRAである場合、CPMモードの使用の指示がFALSEであると推測されてもよい。
b.一例として、予測モードがスキップモードである場合(すなわち、スキップフラグが1である場合)、CPM関連構文の信号通知をスキップすることができる。さらに、現在のCUでスキップモードが採用されている場合、CPMの使用状況の指示は誤っていると推測されてもよい。
c.一例として、予測モードがパレットモード(例えば、MODE_PLT)である場合、CPMおよびCPM関連の構文の使用の指示が信号通知されてもよい。
d.あるいは、予測モードがイントラモード、インターモード、またはイントラブロックコピーモードである場合、CPM関連の構文をスキップすることができる。
e.あるいは、予測モードがパルス符号変調(PCM)モードではなくイントラモードである場合、CPM関連の構文が信号通知されてもよい。
f.一例として、予測モードがパレットモード(例えば、MODE_PLT)である場合、CPMおよびCPM関連構文の使用の指示は、PCMモードの使用の指示の前または後に信号通知されてもよい。一例として、CPMモードが適用される場合、CPM関連の構文の信号通知が行われてもよい。
g. 予測モードがイントラモード、インターモード、またはイントラブロックコピーモードの場合、CPM関連の構文の信号通知がスキップされてもよい。
h.あるいは、予測モードがパルス符号変調(PCM)モードではなくイントラモードである場合、CPM関連の構文が信号通知されてもよい。
i.一例として、予測モードがイントラブロックコピーモードである場合、CPM関連の構文が信号通知されてもよい。
j.あるいは、予測モードがパレットモード、インターモード、またはイントラモードである場合、CPM関連の構文の信号通知をスキップされてもよい。
k.上記の方法は、PCIPまたは他のパレット関連の方法にも適用できる。
【0331】
12.CPMで符号化されたブロックのMVは、後続のブロックのMV予測としても使用されてもよい。
a.一例として、CPMで符号化されたブロックのMVは、他のブロックのマージ候補として使用されてもよい。
b.一例として、CPMで符号化されたブロックのMVは、他のブロックのHMVP候補として使用されてもよい。
i.あるいは、さらに、CPMで符号化されたブロックを符号化した後に、HMVPテーブルを更新してもよい。
c.一例として、CPMで符号化されたブロックのMVは、他のブロックのAMVP候補として使用されてもよい。
d.あるいは、1つのCPM符号化ブロックを符号化した後、HMVPテーブル更新プロセスは許可されない。
e.あるいは、CPMで符号化されたブロックのBVを、後続のブロックの動きベクトル予測子として使用することを許可しない場合がある。
【0332】
13.PCIPで符号化されたブロックのイントラ予測方向は、後続のブロックのイントラモード予測子としても使用されてもよい。
a.一例として、PCIPで符号化されたブロックのイントラ予測方向は、後続のブロックのMPMモードとして使用してもよい。
i.一例として、PCIPで符号化されたブロックが水平方向を選択する場合、イントラモードはVER_IDXに設定されてもよく、後続のブロックのためのMPMモードとして使用してもよい。
ii.一例として、PCIPで符号化されたブロックが垂直方向を選択する場合、イントラモードはHOR_IDXに設定されてもよく、後続のブロックのためのMPMモードとして使用してもよい。
b.あるいは、CPM符号化ブロックのイントラ予測方向を後続のブロックのMPMとして使用することを許可しない場合がある。
【0333】
14.使用するパレットの最大エントリ数は、1つの映像ユニット(CTB、CU、PU、TUなど)から別の映像ユニットに変更できる。二値化は、使用するパレットの最大エントリ数に応じて変更され得る。
a.一例として、それは符号化された情報に依存してもよい。
i.一例として、それはブロックの寸法に依存してもよい。
a)一例として、パレットモードで符号化されたより大きなブロックのサイズは、より大きい最大エントリ数を有する可能性があり、一方、パレットモードで符号化されたより小さなブロックのサイズは、より小さい最大エントリ数を有する可能性がある。
b)1つの例では、4×4ブロックの場合、N0パレットエントリのみが許可される。
c)一例として、8×4ブロックおよび/または4×8ブロックの場合、N1パレットエントリのみが許可され得る。
d)一例として、8×8ブロックの場合、N2パレットエントリのみが許可される。
e)一例として、16×16ブロックの場合、N3パレットエントリのみが許可される。
f)一例として、N0、N1、N2およびN3は固定数(例えば、3、7または15)であり、それらは同じであっても異なっていてもよい。
g)一例として、パレットエントリの最大値とブロック寸法の関係を次のように表にしている。ここで、WとHはそれぞれ現在のブロック幅とブロック高さを示し、Maxは2つの入力間で大きい方を取得する操作である。
【0334】
【表15】
【0335】
h)一例として、パレットエントリの最大値とブロック寸法の関係を次のように表にしている。ここで、WとHはそれぞれ現在のブロック幅とブロック高さを示し、Maxは2つの入力間で大きい方を取得する操作である。
【0336】
【表16】
【0337】
b.一例において、それは、色成分に依存してもよい。
i.一例として、パレットモードで符号化された輝度ブロックは、最大エントリ数が大きい可能性があり、パレットモードで符号化されたクロマブロックは、最大エントリ数が小さい可能性がある。
a)一例として、輝度ブロックの最大エントリ数はNであり得、したがって、クロマブロックの最大エントリ数はMであり得る。
i.一例として、Mは固定数(例えば、3、7または15)であり、MはNより小さい場合がある。
c.一例として、それは、デュアルツリーまたはシングルツリーなどの分割構造に依存してもよい。
【0338】
15.パレット/CPM/PCIP符号化ブロックのスケーリング行列(ユーザー定義のスケーリング行列など)を禁止することを提案している。
a.あるいは、スケーリング行列をパレット/CPM/PCIP符号化ブロックに適用することもできる。
b.一例として、パレット/CPM/PCIP符号化ブロックのスケーリング行列を選択する方法は、変換スキップ符号化ブロックと同じ方法で行われ得る。
【0339】
16.IBCモードの使用を符号化するためのコンテクストモデリング(例えば、cu_skip_flagおよび/またはpred_mode_ibc_flag)は、現在のブロックの符号化された情報、例えば、ブロックの寸法/ブロックの形状/分割ツリーの深さ(例えば、QT/BT/TT/MTTの深さ)および/またはスライスタイプに依存してもよい。
a.一例において、IBCフラグの指示を符号化するためのコンテクストは、ブロックサイズに基づいて導出されてもよい。
i.一例において、異なるブロックサイズの下でのIBCモードの使用の指示は、異なるコンテクストを使用することによって信号通知されてもよい。
ii.あるいは、Tより小さいまたはTより大きくないブロックサイズを有するブロックのIBCモードの使用の指示は、1つのコンテクストを使用することができる。他のブロックサイズのブロックは、他のコンテクスト(例えば、1つのみ)を使用してもよい。
iii.あるいは、Tより大きいまたはTより小さくないブロックサイズを有するブロックのIBCモードの使用の指示は、1つのコンテクストを使用することができる。他のブロックサイズのブロックは、他のコンテクスト(例えば、1つのみ)を使用してもよい。
iv.一例において、Tは、以下に基づいてもよい。
1.映像コンテンツ(例えば、スクリーンコンテンツまたは自然コンテンツ)
2.DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUにおいて信号通知されるメッセージ
3.カラーフォーマットの表示(例えば、4:2:0、4:4:4)
4.符号化ツリー構造
5.スライス/タイルグループのタイプおよび/またはピクチャのタイプ
6.色成分(例えば、クロマ成分または輝度成分にのみ適用されてもよい)
7.時間層ID
8.標準のプロファイル/レベル/層
9.デコーダに信号が送信される。
b.一例において、IBCモードの使用を符号化するためのコンテクストモデリングは、ブロック形状(例えば、正方形または非正方形、幅と高さの比)に基づいて導出されてもよい。
i.あるいは、異なるブロック形状の下でのIBCフラグの指示は、異なるコンテクストを使用することによって信号通知されてもよい。
c.一例において、Iスライスのためのcu_skip_flagのコンテクストモデリングは、P/Bスライスのためのコンテクストモデリングとは異なってもよい。
i.一例において、cu_skip_flagのコンテクストモデリングは、近傍のブロックのcu_skip_flag情報に依存していてもよい。PBスライスの場合、cu_skip_flagの符号化には1つのコンテクストのみを用いることができる。またはその逆である。
d.一例において、1つのコンテクストのみが、IBCモードの使用を符号化するために利用されてもよい。
e.上記方法は、特定のスライス/ピクチャタイプに使用されるものにのみ適用されてもよい。
【0340】
17.cu_skip_flagのコンテクストモデリングは、近傍のブロックがIBCモードで符号化されているか否かに依存してもよい。
a.一例において、近傍のブロックのうちの少なくとも1つまたは両方がIBCモードで符号化される場合、1つのコンテクストを使用してもよい。
【0341】
18.第1の構文要素に関連付けられたビンのコンテクスト符号化は、近傍のブロック(隣接または非隣接)に関連付けられた第2の構文要素の値に依存してもよい。
a.一例において、第1の構文要素は、イントラ-インター予測モード/三角形予測モードを組み合わせたことを示すためのものであってもよい。
b.一例において、第2の構文要素は、IBCの使用に関するものであってもよいし、または第1の構文要素に関連付けられたビンのコンテクスト符号化は、近傍のブロックのIBCモードの使用に依存してもよい。
c.あるいは、このメッセージは、現在のスライス/タイル/シーケンスがスクリーンコンテンツであるかどうかを示してもよい。
【0342】
19.符号化ブロックフラグ(cbf)は、信号通知される代わりに、QR-BDPCMモードで符号化されたブロックについて推測されてもよい。
a.あるいは、一例において、cbfは、QR-BDPCMモードで符号化されたブロックにおいて、1と推測されてもよい。
b.上記方法は、輝度cbfおよび/またはクロマcbfに適用される。
【0343】
20.現在のクロマブロックの中心位置を覆い、且つ/またはDMモードを導出するために使用される対応する輝度ブロックがイントラモード(例えば、MODE_INTRA)で符号化されていない場合、クロマDMモードは許可されないことがある。Aを、DMモード導出処理に用いられる対応する輝度ブロック(例えば、現在のクロマブロックの対応する中心位置を覆うもの)とする。
a.一例において、AがIBCおよび/またはIBCモードの変形で符号化される場合、クロマDMモードは許可されなくてもよい。
b.一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、クロマDMモードは許可されなくてもよい。
c.一例において、AがPCMおよび/またはPCMモードの変形で符号化される場合、クロマDMモードは許可されなくてもよい。
d.上記例において、クロマDMモードが許可されない場合(例えば、対応する輝度ブロックの予測モードが特定のモードであることに起因して)、クロマDMモードの指示は、通知されてもよいし、または信号通知されなくてもよい。
i.あるいは、クロマDMモードの指示が信号通知されてもよい。しかしながら、適合ビットストリームは、クロマDMモードが許可されない場合(例えば、対応する輝度ブロックの予測モードが特定のモードであるため)、復号化されたintra_chroma_pred_modeが特定の値でない(例えば、CCLMがオフである場合は4、CCLMがオンである場合は7)ことを満たすべきである。
e.一例において、AがQR-BDPCMモードで符号化されている場合、クロマDMモードにおけるイントラ予測モードは、Aのイントラ予測方向(例えば、bdpcm_dir_flag)に基づいて導出されてもよい。
i.一例において、Aのイントラ予測方向が垂直である(例えば、bdpcm_dir_flagが1である)場合、クロマDMモードにおけるイントラ予測モードは、垂直モード(例えば、VER_IDX)でもよい。
ii.一例において、Aのイントラ予測方向が水平である(例えば、bdpcm_dir_flagが0である)場合、クロマDMモードにおけるイントラ予測モードは、水平モード(例えば、HOR_IDX)でもよい。
f.一例において、クロマDMモードにおけるイントラ予測モードは、複合IBC及びパレットモードの使用に基づいて導出されてもよい。
i.一例において、DMは、平面または水平/垂直予測モードに設定してもよい。
【0344】
21.現在のクロマブロックの中心位置を含み、且つ/またはDMモードを導出するために用いられる対応する輝度ブロックがイントラモード(例えば、MODE_INTRA)で符号化されていない場合、イントラ予測方法で生成された予測ブロックによって、DMモードを有するクロマブロックの予測ブロックを埋めてもよい。Aを、DMモード導出処理に用いられる対応する輝度ブロック(例えば、現在のクロマブロックの対応する中心位置を覆うもの)とする。
a.一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、イントラ予測方法は、垂直イントラ予測に使用される方法でもよい。
i.あるいは、一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、クロマDMモードの予測は、水平予測によって埋めてもよい。
ii.あるいは、一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、クロマDMモードの予測は、平面予測によって埋めてもよい。
iii.あるいは、一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、クロマDMモードの予測は、DC予測によって埋めてもよい。
iv.あるいは、一例において、Aがパレットおよび/またはパレットモードの変形で符号化される場合、クロマDMモードの予測は、任意のイントラ予測モードによって埋めてもよい。
b.一例において、クロマブロックの予測は、現在の色成分または他の色成分における近傍(隣接または非隣接)輝度ブロックのイントラ予測モードおよび/または近傍(隣接または非隣接)のクロマブロックのイントラ予測モードに基づいて生成されてもよい。
c.一例において、イントラ予測方法は、MPMリスト構築時にPCMブロックに割り当てられるイントラ予測モードに対応していてもよい。
d.一例において、イントラ予測方法は、輝度PCMブロックに割り当てられたイントラ予測モードに対応していてもよい。
e.一例において、イントラ予測方法は、クロマPCMブロックに割り当てられたイントラ予測モードに対応していてもよい。
f.いくつかの実装形態において、イントラ予測方法は、AのMPM一覧における第1のイントラ予測方式に対応していてもよい。
g.上記方法は、AがIBCおよび/またはIBCモードの変形で符号化される場合に
i.あるいは、上記方法は、AがPCMおよび/またはPCMモードの変形で符号化される場合に適用されてもよい。
ii.あるいは、上記方法は、AがQR-BDPCMおよび/またはQR-BDPCMモードの変形で符号化される場合に適用されてもよい。
【0345】
22.無効なブロックベクトルを有するクロマブロックを処理する方法に従って、DMモードを有するクロマブロックの予測ブロックを導出してもよい。
a.一例において、DMモードを有するクロマブロックの予測ブロックは、デフォルト値で埋めてもよい。
i.あるいは、デフォルト値はMに固定されてもよい。
ii.あるいは、デフォルト値は、入力および/または内部ビット深度に依存してもよい。
b.一例において、上記方法は、対応する輝度ブロックの予測モードがイントラモードでない場合に、適用されてもよい。
i.一例において、上記方法は、対応する輝度ブロックの予測モードがIBCモードおよび/またはIBCモードの変形である場合に、適用されてもよい。
ii.一例において、上記方法は、対応する輝度ブロックの予測モードがパレットモードおよび/またはパレットモードの変形である場合に、適用されてもよい。
【0346】
23.1つのブロックは、デフォルトのイントラモードを有してもよい。
a.一例において、デフォルトモードは、DC/PLANAR/VER/HORモードであってもよい。
b.一例において、デフォルトモードは、任意のイントラモードであってもよい。
c.一例において、デフォルトモードは、イントラモード符号化処理における最大確率モード(MPM)として用いられてもよい。
i.あるいは、一例において、近傍のブロックからイントラモードをフェッチするとき、このブロックと現在のブロックとが異なる映像符号化ユニット(例えば、タイル、スライス、ブリック)にある場合、近傍のブロックのデフォルトモードが使用される。
d.一例において、クロマDMモードにおいて、対応するルミナンスブロックのデフォルトモードは、DMモードを導出するために使用されてもよい。
e.ブロックがイントラモードで符号化されていない場合、上記方法が使用されてもよい。
i.あるいは、上記方法は、ブロックがIBC/インター/QRDPCM/PCM/パレットモードで符号化される場合に使用されてもよい。
ii.あるいは、現在のブロックのイントラモードを復号化しない場合、上記方法が使用されてもよい。
【0347】
24.MPMリスト構築中、近傍のブロックがPCMモードで符号化される場合、それをDC予測モードと見なしてもよい。
【0348】
25.TPMおよび/またはTPMブレンド処理および/または動き情報の記憶をどのように適用するかは、近傍のブロックの符号化された情報に基づいて決定されてもよい。
a.一例において、その近傍のブロック(例えば、図12における左側及び上側の近傍のブロック)がIBC/パレット/TS/QR-BDPCMモードで符号化される場合、TPMブレンド処理は、現在のブロックに対して無効化されてもよい。
b.一例において、その近傍のブロック(例えば、図12における左側及び上側の近傍のブロック)がIBC/パレット/TS/QR-BDPCMモードで符号化される場合、現在のブロックに対して別のブレンド処理/動き記憶処理を適用してもよい。
【0349】
恒等変換を用いて符号化されたブロックのための量子化パラメータ(例えば、変換スキップモード、QR-BDPCM等)
【0350】
26.恒等変換を使用する符号化ツールの指示の信号通知は、ビットストリームからの復号化された量子化パラメータに依存してもよい。
a.一例において、transform_skip_flagは、いくつかのQPに信号通知されなくてもよく、この場合、このフラグは0であると推測される。
i.一例において、QPが(4+QpBdOffsetY)より小さい場合、transform_skip_flagは通知されなくてもよい。
b.intra_bdpcm_flagは、いくつかのQPに信号通知されなくてもよく、この場合、このフラグは0であると推測される。
i.一例において、QPが(4+QpBdOffsetY)より小さい場合、intra_bdpcm_flagは信号通知されなくてもよい。
【0351】
27.恒等変換符号化されたブロックのビットストリームから復号化された量子化パラメータは、輝度/クロマ量子化パラメータの範囲のオフセット(QpBdOffsetY,QpBdOffsetC)に基づいて変更されてもよい。
a.一例において、transform_skip_flagが1である場合、QPクリッピングが適用してもよい。
i.一例において、transform_skip_flagが1である場合、QP値が(4+QpBdOffsetY)より小さい場合、QP値を(4+QpBdOffsetY)に設定してもよい。
ii.一例において、transform_skip_flagが1である場合、QP値は、QTより小さい場合、ある値QTに設定してもよい。
b.transform_skip_flagが1である場合、復号化されたQP値にオフセットを加えることができ、これをQPdecとする。
i.一例において、QPdecの代わりにQPdec+4+QpBdOffsetYをtransform_skip_flagが1であるブロックに適用してもよい。
c.上記方法は、例えば、intra_bdpcm_flagが1である場合、QR-DPCM符号化ブロックにも適用可能であってもよい。
d.一例において、修正された量子化パラメータは、後続のブロックのデルタQP信号通知の量子化/逆量子化/フィルタリング/予測に使用されてもよい。
【0352】
28.固定オフセットに基づいて、恒等変換符号化されたブロックのビットストリームから復号化された量子化パラメータを変更してもよい。
a.一例において、transform_skip_flagが1である場合、QPクリッピングが適用してもよい。
i.一例において、transform_skip_flagが1である場合、QP値が4より小さい場合、QP値を4に設定してもよい。
ii.一例において、transform_skip_flagが1である場合、QP値は、QTより小さい場合、ある値QTに設定してもよい。
b.transform_skip_flagが1である場合、復号化されたQP値にオフセットを加えることができ、これをQPdecとする。
i.一例において、QPdecの代わりにQPdec+4を、transform_skip_flagが1であるブロックに適用されてもよい。
c.上記方法は、例えば、intra_bdpcm_flagが1である場合、QR-DPCM符号化ブロックにも適用可能であってもよい。
d.一例において、修正された量子化パラメータは、後続のブロックのデルタQP信号通知の量子化/逆量子化/フィルタリング/予測に使用されてもよい。
【0353】
29.恒等変換で符号化されたブロックのためのビットストリームからの復号化された量子化パラメータは、入力ビット深度に基づいて修正されてもよく、bdiと表される。
a.一例において、transform_skip_flagが1である場合、QPクリッピングが適用してもよい。
i.一例において、transform_skip_flagが1である場合、QP値が(4+6*(bdi-8))より小さい場合には、QP値を(4+6*(bdi-8))に設定してもよい。
b.transform_skip_flagが1である場合、復号化されたQP値にオフセットを加えることができ、これをQPdecとする。
i.一例において、QPdecの代わりにQPdec+(4+6*(bdi-8))をtransform_skip_flagが1であるブロックに適用してもよい。
c.上記方法は、例えば、intra_bdpcm_flagが1である場合、QR-DPCM符号化ブロックにも適用可能であってもよい。
d.一例において、修正された量子化パラメータは、後続のブロックのデルタQP信号通知の量子化/逆量子化/フィルタリング/予測に使用されてもよい。
【0354】
30.恒等変換で符号化されたブロックのためのビットストリームからの復号化された量子化パラメータは、内部ビット深度(bd)および入力ビット深度に基づいて修正されてもよく、bdiと表される。
a.一例において、transform_skip_flagが1である場合、QPクリッピングが適用してもよい。
i.一例において、transform_skip_flagが1である場合、QP値が(4+6*(bd-bdi))より小さい場合、QP値を(4+6*(bd-bdi))に設定されてもよい。
b.transform_skip_flagが1である場合、復号化されたQP値にオフセットを加えることができ、これをQPdecとする。
i.一例において、QPdecの代わりにQPdec+(4+6*(bd-bdi))をtransform_skip_flagが1であるブロックに適用してもよい。
c.上記方法は、例えば、intra_bdpcm_flagが1である場合、QR-DPCM符号化ブロックにも適用可能であってもよい。
d.一例において、修正された量子化パラメータは、後続のブロックのデルタQP信号通知の量子化/逆量子化/フィルタリング/予測に使用されてもよい。
【0355】
31.ブロックの前処理(例えば、LMCS)および/または後処理(例えば、ブロックの再構築後のフィルタ)を有効にするか無効にするかは、ブロックまたはブロックを含む映像ユニットに関連する量子化パラメータに依存してもよい。
a.一例では、デコードされたQPが閾値よりも小さい場合、前処理および/または後処理が許可されない場合がある。
i.一例では、閾値は事前に定義してもよい。
ii.あるいは、さらに、デコードされたQPが上記の方法によるQP修正につながる閾値よりも小さい場合、前処理および/または後処理が許可されない場合がある。
b.一例では、QP<(4+6*(bd-bd))の場合、非ブロック化が許可されない場合がある。
i.あるいは、ビットストリーム制約を設定して、非ブロック化をバイパスしてもよい。
c.一例では、QP<(4+6*(bd-bd))の場合、適応ループフィルタが許可されない場合がある。
i.あるいは、ビットストリーム制約を設定して、適応ループフィルタをバイパスしてもよい。
d.一例では、QP<(4+6*(bd-bd))の場合、サンプル適応オフセットは許可されない場合がある。
i.あるいは、サンプル適応オフセットをバイパスするようにビットストリーム制約を設定してもよい。
e.一例では、QP<(4+6*(bd-bd))の場合、LMCSは許可されない場合がある。
i.あるいは、LMCSをバイパスするようにビットストリーム制約を設定してもよい。
【0356】
32.上述した復号化された量子化パラメータは、内部ビット深度QPオフセットを考慮しない(例えば、QpBdOffsetYを付加しない)量子化パラメータであってもよい。
a.あるいは、上記復号化された量子化パラメータは、内部ビット深度QPオフセットを考慮した量子化パラメータであってもよい。
【0357】
33.ビットストリームにおける入力ビット深度を示すことが提案される。
a.一例において、SPS/VPSにおいて、入力映像のビット深度を示すために、(input_bitdepth_8)である構文要素input_bitdepth_minus8を信号通知してもよい。
i.一例において、構文要素は、0..dQPの範囲を有し、ここで、dQPは固定値である。
b.一例において、SPS/VPSにおいて、(internal_bitdepth-input_bitdepth)である構文要素bitdepth_minus_input_bitdepthを信号通知し、入力映像のビット深度を示すことができる。
i.一例において、構文要素は、0..dQPの範囲を有し、ここで、dQPは固定値である。
【0358】
34.上記方法を適用するかどうか、および/またはどのように適用するかは、以下に基づいてもよい。
a.映像コンテンツ(例えば、スクリーンコンテンツまたは自然コンテンツ)
b.DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにおいて信号通知されるメッセージ
c.CU/PU/TU/ブロック/映像符号化ユニットの位置
d.現在のブロックおよび/またはその近傍のブロックのブロック寸法
i.一例において、上記方法は、現在のブロックの幅及び高さの両方がTより小さい(例えば、32または64)場合にのみ適用してもよい。
e.現在のブロックおよび/またはその近傍のブロックのブロック形状
f.現在のブロックおよび/またはその近傍のブロックの予測モード(例えば、pred_mode_ibc_flag)
g.現在のブロック及び/またはその近傍のブロックのイントラモード
h.現在のブロックおよび/またはその近傍のブロックの動き/ブロックベクトル
i.カラーフォーマットの表示(例えば、4:2:0、4:4:4)
j.符号化ツリー構造
k.スライス/タイルグループのタイプおよび/またはピクチャのタイプ
l.色成分(例えば、クロマ成分または輝度成分にのみ適用されてもよい)。
m.時間層ID
n.標準のプロファイル/レベル/層
【0359】
5 JVET-N1001-v6に加えた実施例
【0360】
JVET-N1001-v6によって提供されたドラフト上の以下の変更は、太字のイタリック体で強調表示されている。削除されたテキストには二重括弧で囲んだ印が付けられている(例えば、[[a]]は文字「a」の削除を意味する)。
【0361】
シーケンスパラメータセットRBSP構文
【0362】
【表17】
【0363】
符号化ユニット構文
【0364】
【表18】
【表19】
【0365】
予測モード構文
以降の全文と表は、VVCの現在のバージョンに新たに追加されるものとして提案されている。
【0366】
【表20】
【0367】
パレット構文
以降の全文と表は、現在のバージョンに新たに追加されるものとして提案されている。
【0368】
【表21】
【表22】
【表23】
【表24】
【0369】
パレット意味論
【0370】
以下の意味論において、配列インデックスx0,y0は、ピクチャの左上輝度サンプルに対する、考慮される符号化ブロックの左上輝度サンプルの位置(x0,y0)を指定する。
【0371】
cu_palette_flagは、現在の符号化ユニットでのパレットモードの使用を指定する。cu_palette_flag==1は、パレットモードが現在の符号化ユニットに適用されていることを示す。cu_palette_flag==0は、現在の符号化ユニットにパレットモードが適用されていないことを示す。
【0372】
palette_predictor_runは、配列PalettePredictorEntryReuseFlagsの非ゼロエントリの前にあるゼロの数を判定するために使用される。
palette_predictor_runの値が、0~(PredictorPaletteSize-predictorEntryIdx)の範囲であることがビットストリームの適合性の要件であり、predictorEntryIdxは配列PalettePredictorEntryReuseFlagsの現在の位置に対応するものである。変数NumPredictedPaletteEntriesは、予測パレットから再利用される現在のパレットのエントリの数を指定する。NumPredictedPaletteEntriesの値は、0からpalette_max_sizeまでの範囲内にあるべきである。
【0373】
num_signalled_palette_entries[startComp]は、現在のパレットテーブルstartCompの最初の色成分に対して明示的に通知される現在のパレットのエントリの数を指定する。
num_signalled_palette_entries[startComp]が存在しない場合、0であると推測される。
変数CurrentPaletteSizeは、現在のパレットのサイズを指定し、以下のように導出される。
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries[startComp]+num_signalled_palette_entries[startComp](XX)
CurrentPaletteSize[startComp]の値は、0からpalette_max_sizeまでの範囲内にあるべきである。
【0374】
new_palette_entries[cIdx][i]は、色成分cIdxのi番目の信号通知パレットエントリの値を指定する。
変数PredictorPaletteEntries[cIdx][i]は、色成分cIdxのための予測子パレットにおけるi番目の要素を指定する。変数CurrentPaletteEntries[cIdx][i]は、色成分cIdxの現在のパレットのi番目の要素を指定し、次のように導出される。
【0375】
numPredictedPaletteEntries=0
for(i=0;i<PredictorPaletteSize[startComp];i++)
if(PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries]=
PredictorPaletteEntries[cIdx][i]
numPredictedPaletteEntries++

for(i=0;i<num_signalled_palette_entries[startComp];i++)
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
CurrentPaletteEntries[cIdx][numPredictedPaletteEntries+i]=
new_palette_entries[cIdx][i] (XX)
【0376】
palette_escape_val_present_flagが1のとき、現在の符号化ユニットに少なくとも1つのエスケープ符号化されたサンプルが含まれていることを指定する。escape_val_present_flagが0の場合、現在の符号化ユニットにエスケープ符号化されたサンプルがないことを指定する。存在しない場合、palette_escape_val_present_flagの値は1と推測される。
変数MaxPaletteIndexは、現在の符号化ユニットのパレットインデックスの可能な最大値を指定する。MaxPaletteIndexの値は、cu_palette_ibc_modeが0の場合、CurrentPaletteSize+palette_escape_val_present_flagに設定される。そうではなく、cu_palette_ibc_modeが1である場合、MaxPaletteIndexは、CurrentPaletteSize+palette_escape_val_present_flag+1に設定される。
【0377】
num_palette_indices_minus1 plus1は、現在のブロックに対して明示的に信号通知されたか、推測されたパレットインデックスの数である。
num_palette_indices_minus1が存在しない場合、0に等しいと推測される。
【0378】
palette_index_idcは、CurrentPaletteEntriesによって表現されるアレイへのインデックスを示すものである。palette_index_idcの値は、ブロックの第1のインデックスについては、0~MaxPaletteIndexの範囲内にあり、ブロックの残りのインデックスについては、0~(MaxPaletteIndex-1)の範囲内にあるものとする。
palette_index_idcが存在しない場合、それは0に等しいと推論される。
変数PaletteIndexIdc[i]は、i番目のパレット_index_idcを明示的に信号通知または推測して記憶する。配列PaletteIndexIdc[i]のすべての要素を0に初期化する。
【0379】
copy_above_indices_for_final_run_flagが1の場合、水平トラバーススキャンが使用されている場合は上の行のパレットインデックスから、垂直トラバーススキャンが使用されている場合は左側の列のパレットインデックスから、符号化ユニットの最後の位置のパレットインデックスがコピーされることを指定する。
copy_above_indices_for_final_run_flagが0の場合、符号化ユニットの最後の位置のパレットインデックスがPaletteIndexIdc[num_palette_indices_minus1]からコピーされることを指定する。
copy_above_indices_for_final_run_flagが存在しない場合、0と推測される。
【0380】
palette_transpose_flagが1の場合、現在の符号化ユニットの画素のインデックスをスキャンするために垂直方向横断走査が適用されることを指定する。palette_transpose_flagが0の場合、現在の符号化ユニットの画素のインデックスをスキャンするために水平方向横断走査が適用されることを指定する。
【0381】
copy_above_palette_indices_flagが1の場合、パレットインデックスは、水平方向横断走査が使用されている場合は上の行の同じ場所、垂直方向横断走査が使用されている場合は左側の列の同じ場所のパレットインデックスと等しいことを指定する。copy_above_palette_indices_flagが0の場合、サンプルのパレットインデックスの指示がビットストリームに符号化されているか、推測されているかを示す。
変数CopyAboveIndicesFlag[xC][yC]が1の場合、パレットインデックスが上の行(水平スキャン)または左側の列(垂直スキャン)のパレットインデックスからコピーされることを指定する。CopyAboveIndicesFlag[xC][yC]が0の場合、パレットインデックスがビットストリームで明示的に符号化されているか、推測されていることを示す。配列インデックスxC、yCは、ピクチャの左上の輝度サンプルに対するサンプルの位置(xC、yC)を指定する。
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesで表される配列へのインデックスであるパレットインデックスを指定する。配列インデックスxC、yCは、ピクチャの左上の輝度サンプルに対するサンプルの位置(xC、yC)を指定する。PaletteIndexMap[xC][yC]の値は、0からMaxPaletteIndexまでの範囲でなければならない。
変数PaletteRunは、CopyAboveIndicesFlag[xC][yC]が1の場合、上の行(水平走査)または左側の列(垂直走査)の位置と同じパレットインデックスで、連続する位置の数から1を引いた数を指定し、CopyAboveIndicesFlag[xC][yC]が0の場合、同じパレットインデックスで、連続する位置の数から1を引いた数を指定する。
変数PaletteMaxRunは、PaletteRunの可能な最大値を表す。PaletteMaxRunの値が0以上であることがビットストリーム適合性の要件である。
【0382】
palette_run_prefixは、PaletteRunの2値化のプレフィックス部分を指定する。
【0383】
palette_run_suffixは、PaletteRunの2値化のサフィックス部分を指定する。palette_run_suffixが存在しない場合、palet_run_suffixの値は0であると推測される。
PaletteRunの値は次のように導き出される。
-palette_run_prefixが2未満の場合、以下が適用される。
PaletteRun=palette_run_prefix(XX)
-それ以外の場合(palette_run_prefixが2以上)、以下が適用される。
PrefixOffset=1<<(palette_run_prefix-1)
PaletteRun=PrefixOffset+palette_run_suffix (XX)
【0384】
palette_escape_valは、コンポーネントの量子化されたエスケープ符号化されたサンプル値を指定する。
変数PaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]が(MaxPaletteIndex-1)であり、palet_escape_val_present_flagが1であるサンプルのエスケープ値を指定する。配列インデックスcIdxは、色成分を指定する。配列インデックスxC、yCは、ピクチャの左上の輝度サンプルに対するサンプルの位置(xC、yC)を指定する。
cldxが0の場合、PaletteEscapeVal[cIdx][xC][yC]0から(1<<((1<<(BitDepth+1))-1の範囲内であり、cIdxが0でない場合、0から(1<<(BitDepth+1))-1までの範囲内であることが、ビットストリーム適合性の要件である。
【0385】
イントラ予測モードで符号化されたユニットを符号化するための一般的な復号処理
【0386】
この処理への入力は以下の通りである。
-現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
-輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
-輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight
-単一ツリーを使用するか二重ツリーを使用するかを指定する変数ツリータイプ、および二重ツリーを使用する場合、現在のツリーが輝度成分に対応するか色度成分に対応するかを指定する。
【0387】
この処理の出力は、インループ・フィルタリング前の修正された再構成画像である。
輝度位置(xCb,yCb)、輝度サンプルcbWidthにおける現在の符号化ブロックの幅、輝度サンプルcbHeightにおける現在の符号化ブロックの高さ、及び変数ツリータイプを入力として、8.4.1項に規定される量子化パラメータの導出処理を呼び出す。
【0388】
treeTypeがSINGLE_TREEに等しい場合、またはtreeTypeがDUAL_TREE_LUMAに等しい場合、輝度サンプルの復号化処理は次のように指定される。
【0389】
- pcm_flag[xCb][yCb]が1である場合、再構成画像は以下のように修正される。
SL[xCb+i][yCb+j]=
pcm_sample_luma[(cbHeight*j)+i]<<(BitDepth-PcmBitDepth),(8-1)
with i=0..cbWidth-1,j=0..cbHeight-1
【0390】
- そうでない場合、cu_palette_flag[xCb][yCb]が1と等しい場合、以下が適用される。
-ツリータイプがSINGLE_TREEに等しい場合、以下が適用される。
1.XXX項で指定されているパレットブロックの一般的な復号化プロセスは、輝度位置(xCb、yCb)、変数startCompを0、変数cIdxを0、変数nTbWをcbWidth、変数nTbHをcbHeightに設定して呼び出される。
- そうでない場合、以下が適用される。
1. XXX項で指定されているパレットブロックの一般的な復号化プロセスは、輝度位置(xCb、yCb)、変数startCompを0、変数cIdxを0、変数nTbWをcbWidth、変数nTbHをcbHeightに設定して呼び出される。
2. 8.X.X項で指定されているパレットブロックの一般的なパレット予測子更新処理は、輝度位置(xCb、yCb)、変数startCompを0、変数numCompsを1に設定して呼び出される。
【0391】
- そうでない場合、以下が適用される。
1. 8.2.2項で指定されている輝度イントラ予測モードの導出処理は、輝度位置(xCb、yCb)、輝度サンプルの現在の符号化ブロックの幅cbWidth、および輝度サンプルの現在の符号化ブロックの高さcbHeightを入力として使用して呼び出される。
2. 8.2.4.1項で指定されているイントラブロックの一般的な復号化処理は、輝度位置(xCb、yCb)、ツリータイプはtreeType、変数nTbWはcbWidthに等しく、変数nTbHはcbHeightに等しく、変数predModeIntraはIntraPredModeY[xCb][yCb]に等しく、変数cIdxは0に等しく、入力設定して呼び出され、出力はループ内フィルタリングの前の修正された再構成ピクチャである。
treeTypeがSINGLE_TREEに等しい場合、またはtreeTypeがDUAL_TREE_CHROMAに等しい場合、クロマサンプルの復号化処理は次のように指定される。
【0392】
- pcm_flag[xCb][yCb]が1に等しい場合、再構成されたピクチャは次のように修正される。
SCb[xCb/SubWidthC+i][yCb/SubHeightC+j]=pcm_sample_chroma[(cbHeight/SubWidthC*j)+i]<<(BitDepth-PcmBitDepth),
with i=0..cbWidth/SubWidthC-1 and j=0..cbHeight/SubHeightC-1 (8-2)
SCr[xCb/SubWidthC+i][yCb/SubHeightC+j]=pcm_sample_chroma[(cbHeight/SubWidthC*(j+cbHeight/SubHeightC))+i]<<
(BitDepth-PcmBitDepth),
with i=0..cbWidth/SubWidthC-1 and j=0..cbHeight/SubHeightC-1 (8-3)
【0393】
- そうでない場合、cu_palette_flag[xCb][yCb]が0と等しい場合、以下が適用される。
- ツリータイプがSINGLE_TREEに等しい場合、以下が適用される。
1. XXX項で指定されているパレットブロックの一般的な復号化処理は、輝度位置(xCb、yCb)、変数startCompを0、変数cIdxを1、変数nTbWを(cbWidth/2)、変数(cbHeight/2)をcbHeightと設定して呼び出される。
2. XXX項で指定されているパレットブロックの一般的な復号化処理は、輝度位置(xCb、yCb)、変数startCompを0、変数cIdxを2、変数nTbWを(cbWidth/2)、変数(cbHeight/2)をcbHeightと設定して呼び出される。
3. 8.X.X項で指定されているパレットブロックの一般的なパレット予測子更新プロセスは、輝度位置(xCb、yCb)、変数startCompを0、変数numCompsを3に設定して呼び出される。
- そうでない場合、以下が適用される。
1. XXX項で指定されているパレットブロックの一般的な復号化処理は、輝度位置(xCb、yCb)、変数startCompを1、変数cIdxを1、変数nTbWを(cbWidth/2)、変数(cbHeight/2)をcbHeightと設定して呼び出される。
2. XXX項で指定されているパレットブロックの一般的な復号化処理は、輝度位置(xCb、yCb)、変数startCompを1、変数cIdxを2、変数nTbWを(cbWidth/2)、変数(cbHeight/2)をcbHeightと設定して呼び出される。
3. XXX項で指定されているパレットブロックの一般的なパレット予測子更新プロセスは、輝度位置(xCb、yCb)、変数startCompを1、変数numCompsを2と設定して呼び出される。
【0394】
- そうでない場合、以下が適用される。
1. 8.2.3項で指定されているクロマイントラ予測モードの導出処理は、輝度位置(xCb、yCb)、輝度サンプルの現在の符号化ブロックの幅cbWidth、および輝度サンプルの現在の符号化ブロックの高さcbHeightを入力として呼び出される。
2. 8.2.4.1項で指定されているイントラブロックの一般的な復号化処理は、クロマ位置(xCb/2、yCb/2)、ツリータイプはtreeType、変数nTbWは(cbWidth/2)に等しく、変数nTbHは(cbHeight/2)に等しく、変数predModeIntraがIntraPredModeC[xCb][yCb]に等しく、変数cIdxは1に等しく設定して呼び出され、出力はループ内フィルタリングの前に修正された再構成ピクチャである。
3. 8.2.4.1項で指定されているイントラブロックの一般的な復号化処理は、クロマ位置(xCb/2、yCb/2)、ツリータイプはtreeType、変数nTbWは(cbWidth/2)に等しく、変数nTbHは (cbHeight/2)に等しく、変数predModeIntraがIntraPredModeC[xCb][yCb]に等しく、変数cIdxは2に等しく設定して呼び出され、出力は、ループ内フィルタリングの前に修正された再構成ピクチャである。
【0395】
パレットモードの復号化処理
【0396】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在のブロックの左上のサンプルを規定する位置(xCb,yCb)
- 変数startCompは、パレットテーブルの最初の色成分を規定し、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在のブロックの幅と高さをそれぞれ指定する2つの変数nTbWとnTbH。
【0397】
このプロセスの出力は、配列recSamples[x][y]であり、x=0..nTbW-1、y=0..nTbH-1は、ブロックの再構築されたサンプル値を指定する。
cIdxの値に基づいて、変数nSubWidthおよびnSubHeightは、以下のように導出される。
【0398】
- cIdxが0に等しい場合、nSubWidthは1に設定され、nSubHeightは1に設定される。
- startCompが1に等しく、cIdx>1の場合、nSubWidthは1に設定され、nSubHeightは1に設定される。
- あるいは、nSubWidthをSubWidthCに設定し、nSubHeightをSubHeightCに設定する。
- cu_palette_ibc_mode[xCb][yCb]が1に等しい場合、以下が適用される。
- 8.6.2項に規定される動きベクトルの導出処理は、現在の画像の左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルの輝度位置(xCb,yCb)、輝度サンプルにおける現在の符号化ブロックの幅を指定する変数cbWidth、及び輝度サンプルにおける現在の符号化ブロックの高さを指定する変数cbHeightによって呼び出される。出力は、-1/16分数サンプル精度mvLにおける輝度動きベクトルである。
- 8.6.3項で指定されている一般的なIBC予測プロセスは、現在のピクチャの左上の輝度サンプルに対する現在の符号化ブロックの左上のサンプルを指定する輝度位置(xCb、yCb)、輝度サンプルの現在の符号化ブロックの幅を指定する変数cbWidth、輝度サンプルの現在の符号化ブロックの高さを指定する変数cbHeight、水平および垂直方向の輝度符号化サブブロックの数を指定する変数numSbXおよびnumSbY、動きベクトルmv[xSbIdx][ySbIdx]、xSbIdx=0..numSbX-1、およびySbIdx=0..numSbY-1、現在のブロックの色成分インデックスを指定する変数cIdxで、呼び出される。出力は、予測サンプル predSamples[x][y]の配列である。
【0399】
位置(xCb、yCb)にある再構成されたサンプル配列recSamplesの(nTbW xnTbH)ブロックは、x=0..nTbW-1、y=0..nTbH-1のrecSamples[x][y]で表され、0からnTbW-1までの範囲の各xと、0からnTbH-1までの範囲の各yに対するrecSamples[x][y]の値は、次のように導出される。
【0400】
-変数xLおよびyLは、以下のように導出される。
xL=palette_transpose_flag ? x*nSubHeight:x*nSubWidth (5-4)
yL=palette_transpose_flag ? y*nSubWidth:y*nSubHeight (5-5)
-変数bIsEscapeSampleは、以下のように導出される。
-PaletteIndexMap[xCb+xL][yCb+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1に設定される。
-あるいは、bIsEscapeSampleを0に設定する。
-bIsEscapeSampleが0に等しい場合、以下が適用される。
-cu_palette_ibc_mode [xCb] [yCb]が1に等しい場合、以下が適用される。
-PaletteIndexMap[xCb+xL][yCb+yL]が0に等しい場合、以下が適用される。
recSamples[x][y]=predSamples[x][y]
-そうでない場合、以下が適用される。
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]-1] (5-6)
-そうでない場合、以下が適用される。
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (5-7)
-あるいは、cu_transquant_bypass_flagが1に等しい場合には、以下が適用される。
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL] (5-8)
-あるいは、(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい場合)、以下の順序付けられたステップが適用される。
1.量子化パラメータの導出処理は、現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを規定する位置(xCb,yCb)を使用して呼び出される。
2.量子化パラメータqPは、以下のように導出される。
- cIdxが0に等しい場合
qP=Max(0,Qp’Y) (5-9)’
- あるいは、cIdxが1に等しい場合、
qP=Max(0,Qp’Cb) (5-10)
-あるいは、(cIdxが2に等しい場合)、
qP=Max(0,Qp’Cr) (5-11)
3.変数bitDepthは、以下のように導出される。
bitDepth=(cIdx==0 ) ?BitDepth:BitDepth (5-12)
4.list levelScale[]は、k=0..5の時、levelScale[k]={40,45,51,57,64,72}として規定される。
5. 以下が適用される
tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*
levelScale[qP%6])<<(qP/6)+32)>>6 (5-13)
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (5-14)
【0401】
パレットモードのパレット予測子更新プロセス
【0402】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在のブロックの左上のサンプルを規定する位置(xCb,yCb)
- 変数startCompは、パレットテーブルの最初の色成分を規定し、
- 変数numCompsは、パレットテーブル内の色成分の数を指定する。
【0403】
この処理の出力は、更新されたパレット予測子のサイズを指定する変数PredictorPaletteSize[startComp]であり、cIdx=startComp、…、startComp+numComps-1、i=0の配列PredictorPaletteEntries[cIdx][i]である。PredictorPaletteSize-1は、次のブロックの更新されたパレット予測子を指定する。
【0404】
変数PredictorPaletteSizeおよび配列PredictorPaletteEntriesは、以下のように導出または修正される。
【0405】
for(i=0;i<CurrentPaletteSize;i++)
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
newPredictorPaletteEntries[cIdx][i]=CurrentPaletteEntries[cIdx][i]
newPredictorPaletteSize=CurrentPaletteSize
for(i=0;i<PredictorPaletteSize && newPredictorPaletteSize<PaletteMaxPredictorSize;i++)
if(!PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++) (5-15)
newPredictorPaletteEntries[cIdx][newPredictorPaletteSize]=
PredictorPaletteEntries[cIdx][i]
newPredictorPaletteSize++

for(cIdx=startComp;cIdx<(startComp+numComps);cIdx++)
for(i=0;i<newPredictorPaletteSize;i++)
PredictorPaletteEntries[cIdx][i]=newPredictorPaletteEntries[cIdx][i]
PredictorPaletteSize=newPredictorPaletteSize
【0406】
PredictorPaletteSizeの値が0からPaletteMaxPredictorSizeまでの範囲内にあることが、ビットストリーム適合性の要件である。
【0407】
5.1 実施形態#2
【0408】
5.1.1 変換係数のスケーリング処理
【0409】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度変換ブロックの左上のサンプルを規定する輝度位置(xTbY,yTbY)、
- 変換ブロックの幅を指定する変数nTbW、
- 変換ブロックの高さを指定する変数nTbH、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在の色成分のビット深度を指定する変数bitDepth。
【0410】
この処理の出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)配列dである。量子化パラメータqPは、以下のように導出される。
-cIdxが0に等しい場合、以下が適用される。
- transform_skip_flag[xTbY][yTbY]が1である、またはintra_bdpcm_flag[xTbY][yTbY]が1である場合、以下が適用される。
qP=Max(4+QpBdOffsetY,Qp’) (8-954)’
- そうでない場合、
qP=Qp’ (8-954)
- そうでない場合、cIdxが1に等しく、tu_joint_cbcr_residual[xTbY][yTbY]が1である場合、以下が適用される。
qP=Qp’CbCr (8-955)
- そうでない場合、cIdxが1である場合、以下が適用される。
qP=Qp’Cb (8-956)
- そうでない場合(cIdx=2)、以下が適用される。
qP=Qp’Cr
【0411】
一例において、強調表示された条件は、以下のようにさらに変更されてもよい。
transform_skip_flag[xTbY][yTbY]が1である場合、以下が適用される。
【0412】
5.2 実施形態#3
【0413】
5.2.1 変換係数のスケーリング処理
【0414】
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度変換ブロックの左上のサンプルを規定する輝度位置(xTbY,yTbY)、
- 変換ブロックの幅を指定する変数nTbW、
- 変換ブロックの高さを指定する変数nTbH、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在の色成分のビット深度を指定する変数bitDepth。
【0415】
この処理の出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)配列dである。量子化パラメータqPは、以下のように導出される。
-cIdxが0に等しい場合、以下が適用される。
- transform_skip_flag[xTbY][yTbY]が1である、またはintra_bdpcm_flag[ xTbY][yTbY]が1である場合、以下が適用される。
qP=Max(4+(6*(input_bit_depth-8)),Qp’) (8-954)
- そうでない場合、
qP=Qp’ (8-954)
- そうでない場合、cIdxが1に等しく、tu_joint_cbcr_residual[xTbY][yTbY]が1である場合、以下が適用される。
qP=Qp’CbCr (8-955)
- そうでない場合、cIdxが1である場合、以下が適用される。
qP=Qp’Cb (8-956)
- そうでない場合(cIdx=2)、以下が適用される。
qP=Qp’Cr
【0416】
一例において、強調表示された条件は、以下のようにさらに変更されてもよい。
transform_skip_flag[xTbY][yTbY]が1である場合、以下が適用される。
【0417】
5.3 実施形態#4
【0418】
5.3.1 変換係数のスケーリング処理この処理への入力は以下の通りである。
【0419】
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度変換ブロックの左上のサンプルを規定する輝度位置(xTbY,yTbY)、
- 変換ブロックの幅を指定する変数nTbW、
- 変換ブロックの高さを指定する変数nTbH、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在の色成分のビット深度を指定する変数bitDepth。
【0420】
この処理の出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)配列dである。量子化パラメータqPは、以下のように導出される。
-cIdxが0に等しい場合、以下が適用される。
- transform_skip_flag[xTbY][yTbY]が1である、またはintra_bdpcm_flag[xTbY][yTbY]が1である場合、以下が適用される。
qP=Max(4,Qp’Y) (8-954)
- そうでない場合、
qP=Qp’Y (8-954)
- そうでない場合、cIdxが1に等しく、tu_joint_cbcr_residual[xTbY][yTbY]が1である場合、以下が適用される。
qP=Qp’CbCr (8-955)
- そうでない場合、cIdxが1である場合、以下が適用される。
qP=Qp’Cb (8-956)
- そうでない場合(cIdx=2)、以下が適用される。
qP=Qp’Cr
【0421】
一例において、強調表示された条件は、以下のようにさらに変更されてもよい。
transform_skip_flag[xTbY][yTbY]が1である場合、以下が適用される。
【0422】
図17Aは、映像処理装置1700のブロック図である。装置1700は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置1700は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機等に実施されてもよい。装置1700は、1つ以上の処理装置1702と、1つ以上のメモリ1704と、映像処理ハードウェア1706と、を含んでもよい。1つまたは複数の処理装置1702は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(複数可)1704は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1706は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。映像処理ハードウェア1706は、専用ハードウェア、またはグラフィカル処理装置ユニット(GPU)若しくは専用信号処理ブロックの形式で、処理装置1702内に部分的にまたは完全に含まれてもよい。
【0423】
図17Bは、開示された技術を実装することができる例示的な映像処理システムを示すブロック図の別の例である。図17Bは、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム1710を示すブロック図である。様々な実装形態は、システム1710のコンポーネントの一部または全部を含んでもよい。システム1710は、映像コンテンツを受信するための入力ユニット1712を含んでもよい。映像コンテンツは、未加工または非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてもよく、または圧縮または符号化フォーマットで受信されてもよい。入力ユニット1712は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0424】
システム1710は、本明細書に記載される様々な符号化または符号化方法を実装することができる符号化コンポーネント1714を含んでもよい。符号化コンポーネント1714は、入力ユニット1712から符号化コンポーネント1714の出力への映像の平均ビットレートを低減して、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化コンポーネント1714の出力は、コンポーネント1716によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット1712において受信された、記憶されたまたは通信された映像のビットストリーム(または符号化)表現は、コンポーネント1718によって使用されて、表示インターフェースユニット1720に送信される画素値または表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作またはツールと呼ぶが、符号化ツールまたは動作は、エンコーダで使用され、対応する復号化ツール又は動作であり符号化の結果を逆にするものは、デコーダによって行われることが理解されよう。
【0425】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、またはデジタルデータ処理及び/または映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0426】
図18Aは、映像処理のための例示的な方法1810を示す。この方法1810は、ステップ1812において、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との間で変換を行うことを含む。いくつかの実装形態において、前記変換は規則に従って行われ、前記規則は、前記現在の映像ブロックを前記符号化表現に表すための恒等変換符号化ツールの使用により、前記現在の映像ブロックを復号化するために使用される量子化パラメータを示す構文フィールドが、前記量子化パラメータの値が規則に従って修正されるように含まれることを規定しており、前記恒等変換符号化ツールにより、前記現在のブロックの変換ドメインでの係数値が、前記現在の映像ブロックの残差ブロックの値と同じになることを可能にする。いくつかの実装形態において、前記符号化表現は、前記符号化表現に含まれる量子化パラメータに基づく恒等変換を用いた符号化ツールの使用を示す構文要素を選択的に含めることを規定するフォーマット規則に適合する。いくつかの実装形態では、前記符号化表現は、映像の入力ビット深度を示す構文要素が符号化表現に含まれることを規定するフォーマット規則に準拠している。
【0427】
図18Bは、映像処理のための例示的な方法1820を示す。方法1820は、ステップ1822において、映像の映像ユニットの映像ブロックと映像の符号化表現との変換のため、映像ブロックまたは映像ユニットに関連付けられた量子化パラメータに基づいて映像ブロックに対して前処理演算を行うか、後処理演算を行うかを決定することを含む。方法1820は、ステップ1824において、決定に基づいて変換を行うことを含む。
【0428】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0429】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて無効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0430】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つのマクロブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。
【0431】
以下の項目は、いくつかの実施形態及び技術を説明する。第1組の項目では、前章で開示された技術の特定の特徴及び態様を説明する。
【0432】
1.映像符号化方法であって、映像の映像領域と映像領域のビットストリーム表現との変換中に、映像領域に関するパレット符号化モード条件に基づいて、映像領域の非ブロック化処理のパラメータを判定することと、選択されたパラメータを使用して、変換中に非ブロック化処理を使用することと、を含む、方法。
【0433】
2.非ブロック化処理のパラメータが、イントラ符号化モードまたはインター符号化モードまたはイントラブロックコピー符号化モードで符号化された別の映像領域の変換に使用されるパラメータとは異なる、項目1に記載の方法。
【0434】
3.パラメータが、P側およびQ側の映像領域の近傍の映像領域がパレットモード符号化を使用して符号化されるかどうかに基づいて決定される境界強度値を含む、項目1~2のいずれかに記載の方法。
【0435】
4.パレットモードで符号化されているP側およびQ側の両方の映像領域のために、境界強度がゼロである、項目3の方法。
【0436】
5.パレットモードが、イントラ予測モードと組み合わせたパレットモード(PCIP)または複合パレットモード(CPM)と組み合わせたパレットモードに対応する、項目1~4のいずれかに記載の方法。
【0437】
セクション4の項目1は、上記の方法の追加の例および実施形態を提供する。
【0438】
6.映像処理方法であって、映像ピクチャと映像ピクチャのビットストリーム表現との変換中に、割り当て規則に従って、近傍の映像の符号化モードに基づいて映像ピクチャの映像ブロックに非ブロック化処理を適用するための非ブロック化フィルタパラメータを選択することと、割り当て規則に従って、非ブロック化処理を適用することにより、変換を行うことと、を含み、割り当て規則は、近傍のブロックが複合パレットモードで符号化されている場合、または別の符号化モードで符号化されている場合に、同じパラメータを使用するように指定する、方法。
【0439】
7.別の符号化モードがイントラブロックコピーモードに対応する、項目6に記載の方法。
【0440】
8.別の符号化モードがパレット符号化モードに対応する、項目6に記載の方法。
【0441】
セクション4の項目2は、上記の方法の追加の例および実施形態を提供する。
【0442】
9.映像処理方法であって、映像ピクチャと映像ピクチャのビットストリーム表現との変換中に、割り当て規則に従って、近傍の映像の符号化モードに基づいて映像ピクチャの映像ブロックに非ブロック化処理を適用するための非ブロック化フィルタパラメータを選択することと、割り当て規則に従って、非ブロック化処理を適用することにより、変換を行うことと、を含み、割り当て規則は、近傍のブロックがイントラ予測モードと組み合わせたパレット(PCIP)モードで符号化されている場合または別の符号化モードで符号化されている場合に同じパラメータを使用するように指定する、方法。
【0443】
10.別の符号化モードがイントラブロックコピーモードに対応する、項目9に記載の方法。
【0444】
11.別の符号化モードがパレット符号化モードに対応する、項目9に記載の方法。
【0445】
セクション4の項目3は、上記の方法の追加の例および実施形態を提供する。
【0446】
12.映像処理方法であって、コンポーネント値のパレットを対応する映像ブロックの画素を符号化するために使用するパレット符号化モードを使用して映像ピクチャの映像ブロックと映像ブロックのビットストリーム表現との変換を行うことを含み、ビットストリーム表現中のフラグは、対応する映像ブロックにおける非ゼロ係数が存在していることを指示し、このフラグは、パレット符号化モード、イントラ予測モードと組み合わせたパレットモード(PCIP)、または複合パレットモード(CPM)、で符号化された映像ブロックを信号通知するために使用される、方法。
【0447】
13.フラグの値は、対応するブロックがエスケープ画素を有するかどうかに依存する、項目12に記載の方法。
【0448】
セクション4の項目4は、上記の方法の追加の例および実施形態を提供する。
【0449】
14.映像処理方法であって、複数の映像ブロックを含む映像ピクチャと映像ピクチャのビットストリーム表現との変換中に、複数の映像ブロックの各々に関連したパレット復号化モード条件に基づいて複数の映像ブロックの各々に対する非ブロック化処理の適用可能性を判定することと、その適用可能性に基づいて、変換中に複数のブロックに非ブロック化処理を選択的に使用することと、を含む、方法。
【0450】
15.適用可能性の判定は、非ブロック化処理が、パレットモードまたはイントラ予測モードと組み合わせたパレットモード(PCIP)、または複合パレットモード(CPM)で符号化されたブロックには適用できないことを判定する、項目14に記載の方法。
【0451】
16.適用可能性の判定は、P側ブロックまたはQ側ブロックがそれぞれパレットモードまたはPCIPモードまたはCPMモードで符号化されている場合に、P側サンプルまたはQ側サンプルが適用不可能であると判定することを含む、項目14に記載の方法。
【0452】
セクション4の項目5は、上記の方法の追加の例および実施形態を提供する。
【0453】
17.映像処理方法であって、複数の映像ブロックを含む映像フレームと、複合パレットモード(CPM)で符号化された映像フレームのビットストリーム表現との変換を行うことを含み、ビットストリーム表現は、映像領域に適用可能なイントラモード、インターモード、イントラブロックコピーモード、またはパレットモードの指示とは別の、映像領域レベルでのCPMモードの指示を含む、方法。
【0454】
18.映像領域が、変換ユニットまたは予測ユニットまたは符号化ブロックユニットに対応する、項目17に記載の方法。
【0455】
19.ビットストリーム表現が、映像領域に適用可能なイントラモード、インターモード、イントラブロックコピーモードまたはパレットモードの指示の後に、CPMモードの指示を含む、項目17~18のいずれかに記載の方法。
【0456】
セクション4の項目6は、上記の方法の追加の例および実施形態を提供する。
【0457】
20.映像処理方法であって、コンポーネント値のパレットを対応する映像ブロックの画素を符号化するために使用する符号化モードを使用して、映像ピクチャの映像ブロックと映像ブロックのビットストリーム表現との変換を行うことを含み、パレット符号化モードに関する構文要素が、所与の映像ブロックが属する色成分の特性に基づいて、所与の映像ブロックのビットストリーム表現に選択的に含まれ、符号化モードは、パレット符号化モード、イントラ予測と組み合わせた(PCIP)モードまたは複合パレットモード(CPM)を含む、方法。
【0458】
21.映像処理方法であって、パレット符号化モードに関する構文要素が、所与の映像ブロックに使用されるパーティション構造または平面符号化に基づいてさらに選択的に含まれる、映像処理方法。
【0459】
22.構文要素が二重ツリーパーティション構造に対してのみ含まれる、項目20~21のいずれかに記載の方法
【0460】
23.映像ピクチャが4:0:0フォーマットであり、所与の映像ブロックがクロマブロックであることに起因して、構文要素がスキップされる、項目20~21のいずれかに記載の方法。
【0461】
セクション4の項目7は、上記の方法の追加の例および実施形態を提供する。
【0462】
24.所与の映像ブロックはクロマ成分に対応し、パレット符号化モードに関する構文要素は、所与の映像に対応する輝度ブロックの1つ以上の選択されたブロックの符号化された情報に基づいて選択的に含まれる、項目20に記載の方法。
【0463】
25.輝度ブロックの1つ以上の選択されたブロックが、最小の符号化ユニットまたは最小の予測ユニットまたは最小の変換ユニットサイズに対応する、項目24に記載の方法。
【0464】
セクション4の項目8は、上記の方法の追加の例および実施形態を提供する。
【0465】
26.符号化モードがPCIPモードである、項目20~25のいずれかに記載の方法。
【0466】
セクション4の項目9は、上記の方法の追加の例および実施形態を提供する。
【0467】
27.複数の映像ブロックを含む映像ピクチャと、複数のブロックの少なくとも一部が予測符号化モードで符号化されている映像ピクチャのビットストリーム表現との変換を行い、映像ブロックは、映像ピクチャの他の映像ブロックを符号化するために使用される他の予測符号化モードとは別のまたはその特別な事例として識別される複合パレットモード(CPM)で符号化される、映像処理方法。
【0468】
28.他の予測符号化モードは、イントラモード、イントラブロックコピー、パレットモード、イントラスライスまたはIピクチャまたはイントラタイルグループのCPMモードを含む、項目27に記載の方法。
【0469】
セクション4の項目10は、上記の方法の追加の例および実施形態を提供する。
【0470】
29.CPMはビットストリーム表現における他の予測符号化モードの特殊なケースとして識別され、CPMを信号通知する構文要素は、CPMが特殊なケースである他の予測モードのタイプに基づいて選択的に信号通知される、項目27の方法。
【0471】
30A.他の予測モードのタイプがイントラモードであり、CPMの構文要素の信号通知がスキップされる、項目29に記載の方法。
【0472】
30B.他の予測モードのタイプがスキップモードであり、CPMの構文要素の信号通知がスキップされる、項目29に記載の方法。
【0473】
セクション4の項目11は、上記の方法の追加の例および実施形態を提供する。
【0474】
31.映像処理方法であって、現在の映像ブロックと、現在の映像ブロックが複合パレットモード(CPM)を用いて符号化された現在の映像ブロックの第1のビットストリーム表現と、の第1の変換を行い、現在の映像ブロックは現在の映像ブロックに関連付けられた動きベクトルを有し、そして、次の映像ブロックと、次の映像ブロックの第2のビットストリーム表現と、の第2の変換を行い、現在の映像ブロックに関連付けられた動きベクトルを用いた動き予測が第2の変換中に使用される、方法。
【0475】
32.動き予測が第2の変換のマージ候補として使用される、項目31に記載の方法。
【0476】
33.動き予測が、第2の変換中に履歴に基づく動きベクトル予測器として使用される、項目31または32に記載の方法。
【0477】
セクション4の項目12は、上記の方法の追加の例および実施形態を提供する。
【0478】
34.映像処理方法であって、現在の映像ブロックと、現在の映像ブロックがイントラ予測と組み合わせた(PCIP)モードで符号化されている現在の映像ブロックの第1のビットストリーム表現と、の第1の変換を行い、現在の映像ブロックは、現在の映像ブロックに関連付けられたイントラ予測方向を有し、そして、次の映像ブロックと次の映像ブロックの第2のビットストリーム表現と、の第2の変換を行い、現在の映像ブロックに関連付けられたイントラ予測方向に基づくイントラモード予測子が第2の変換中に使用される、方法。
【0479】
35.現在の映像ブロックに関連付けられたイントラ予測方向が、第2の変換中に最大確率モード候補として使用される、項目34に記載の方法。
【0480】
セクション4の項目13は、上記の方法の追加の例および実施形態を提供する。
【0481】
36.映像処理方法であって、映像の現在の映像ブロックと映像のビットストリーム表現との変換中に使用されるパレットの最大エントリ数を判定することと、最大数を使用して変換を行うことと、を含み、ビットストリーム表現内のフィールドが、映像ユニット全体で最大数の変化を信号通知する、方法。
【0482】
37.映像ユニットが、符号化ツリーブロックまたは符号化ユニットまたは予測ユニットまたは変換ユニットに対応する、項目36に記載の方法。
【0483】
38.最大数が現在の映像ブロックの符号化された情報に基づく、項目36~37の方法。
【0484】
セクション4の項目14は、上記の方法の追加の例および実施形態を提供する。
【0485】
39.映像処理方法であって、1つ以上の映像ブロックを含む映像ピクチャと映像ピクチャのビットストリーム表現との変換中に、パレット符号化モードを使用することに起因して、スケーリング行列の使用が無効であると判定することと、スケーリング行列の使用が無効であると判定したことに基づいて変換を行うことと、を含む、方法。
【0486】
40.映像処理方法であって、1つ以上の映像ブロックを含む映像ピクチャと映像ピクチャのビットストリーム表現との変換中に、パレット符号化モードを使用することに起因して、スケーリング行列の使用が許可されていることを判定することと、スケーリング行列の使用が許可されているという判定に基づいて変換を行うことと、を含む、方法。
【0487】
セクション4の項目15は、上記の方法の追加の例および実施形態を提供する。
【0488】
41.変換が行われている映像の特性を判定する際にこの方法が適用される、項目1から40のいずれかに記載の方法。
【0489】
42.映像の特性が映像のコンテンツタイプを含む、項目41に記載の方法。
【0490】
43.映像の特性が、変換に使用されるブロック寸法を含む、項目41に記載の方法。
【0491】
44.映像の特性が、変換に使用されるパーティションツリー構造を含む、項目41に記載の方法。
【0492】
セクション4の項目25は、上記の方法の追加の例および実施形態を提供する。
【0493】
46.映像処理方法であって、現在の映像ブロックの1つ以上の特徴に基づいて、この現在の映像ブロックにおけるイントラブロックコピー(IBC)モードの使用を符号化するコンテクストを構成することと、この構成に基づいて、この現在の映像ブロックとこの現在の映像ブロックのビットストリーム表現とを変換することと、を含む方法。
【0494】
47.前記1つ以上の特徴は、前記現在の映像ブロックのブロックサイズを含む、項目46に記載の方法。
【0495】
48.前記1つ以上の特徴は、前記現在の映像ブロックの形状を含む、項目46に記載の方法。
【0496】
49.前記形状は、正方形または非正方形である、項目48に記載の方法。
【0497】
セクション4の項目16は、上記の方法の追加の例および実施形態を提供する。
【0498】
50.前記構成は、現在の映像ブロックの近傍のブロックの符号化モードにさらに基づく、項目46に記載の方法。
【0499】
セクション4の項目17は、上記の方法の追加の例および実施形態を提供する。
【0500】
51.前記コンテクストは、第1の構文要素を含み、前記構成は、現在の映像ブロックの近傍のブロックに関連付けられた第2の構文要素にさらに基づく、項目46に記載の方法。
【0501】
セクション4の項目18は、上記の方法の追加の例および実施形態を提供する。
【0502】
52.映像処理方法であって、現在の映像ブロックのビットストリーム表現における符号化モードの指示を選択的に含めることに関して、現在の映像ブロックに対して、恒等変換を使用する符号化モードを決定することと、この決定に基づいて、現在の映像ブロックとビットストリーム表現との変換を行うことと、を含む方法。
【0503】
53.前記符号化モードは、変換スキップモードまたはブロック差動パルス符号変調(QR-BDPCM)である、項目52に記載の方法。
【0504】
セクション4の項目23は、上記の方法の追加の例および実施形態を提供する。
【0505】
54.現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間の変換のために前処理演算を使用するかどうかに関する第1の決定を行うことと、前記変換に対して後処理演算を使用するかどうかに関する第2の決定を行うことと、第1の決定および第2の決定と一致する変換を行うことと、を含み、前記第1の決定および/または前記第2の決定は、前記現在の映像ブロックを含む前記現在の映像ブロックまたは映像領域の量子化パラメータを使用する。
【0506】
55.前記量子化パラメータが閾値未満である場合に、前記第1の決定または前記第2の決定が前処理演算または後処理演算を許可しない、項目54に記載の方法。
【0507】
56.前記閾値は、前記現在の映像ブロックのビット深度の関数である、項目55に記載の方法。
【0508】
57.前記前処理演算は、クロマスケーリングを伴う輝度マッピングを含む、項目54~56のいずれか1つに記載の方法。
【0509】
58.前記後処理演算は、フィルタリング演算を含む、項目54~57のいずれか1項に記載の方法。
【0510】
前セクションの項目31は、項目54~58に記載された技術の更なる変形を提供する。
【0511】
59.変換が、ビットストリーム表現から映像領域の画素値を生成することを含む、項目1~58のいずれかに記載の方法。
【0512】
60.変換が、映像領域の画素値からビットストリーム表現を生成することを含む、項目1~58のいずれかに記載の方法。
【0513】
61.項目1~58のいずれか1項以上に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0514】
62.実行されると、項目1~58のいずれか1つ以上に記載の方法を処理装置に実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0515】
第2組の項目は、前のセクションで開示された手法の特定の機能と側面、たとえば、実装例26から33について説明している。
【0516】
1.映像処理方法であって、規則に従って、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、前記規則は、前記現在の映像ブロックを前記符号化表現に表すための恒等変換符号化ツールの使用により、前記現在の映像ブロックを復号化するために使用される量子化パラメータを示す構文フィールドが、前記量子化パラメータの値が規則に従って修正されるように含まれることを規定しており、前記恒等変換符号化ツールにより、前記現在のブロックの変換ドメインでの係数値が、前記現在の映像ブロックの残差ブロックの値と同じになることを可能にする、方法。
【0517】
2.輝度量子化パラメータ範囲オフセット(QpBdOffsety)および/またはクロマ量子化パラメータ範囲オフセット(QpBdOffsetc)に基づいて、前記量子化パラメータの値は修正される、項目1に記載の方法。
【0518】
3.固定オフセットに基づいて量子化パラメータの値を修正する、項目1に記載の方法。
【0519】
4.前記量子化パラメータの値は、入力ビット深度に基づいて修正される、項目1に記載の方法。
【0520】
5.内部ビット深度および入力ビット深度に基づいて、前記量子化パラメータの値は修正される、項目1に記載の方法。
【0521】
6.前記恒等変換符号化ツールは、変換および逆変換プロセスをスキップする変換スキップモードに対応する、項目1~5のいずれか1項に記載の方法。
【0522】
7.前記恒等変換符号化ツールは、現在の映像ブロックに対応する量子化残差ブロックにブロック差動パルス符号変調を適用する量子化残差ブロック差動パルス符号変調(QP-BDPCM)モードに対応する、項目1~5のいずれか1項に記載の方法。
【0523】
8.前記規則は、構文要素が1である場合、前記量子化パラメータにクリッピングプロセスを適用することを規定する、項目1~7のいずれか1項に記載の方法。
【0524】
9.前記量子化パラメータは、前記量子化パラメータが前記輝度量子化パラメータ範囲オフセット(QpBdOffsety)よりも小さい場合、4と前記輝度量子化パラメータ範囲オフセット(QpBdOffsety)の和である値に設定される、項目8に記載の方法。
【0525】
10.前記量子化パラメータが前記一定の値よりも小さい場合、前記量子化パラメータを一定の値に設定する、項目8に記載の方法。
【0526】
11.前記量子化パラメータが(4+6*(bd-bdi))よりも小さい場合、前記量子化パラメータを(4+6*(bd-bdi))に設定し、式中、bdは内部ビット深度を表し、bdiは入力ビット深度を表す、項目8に記載の方法。
【0527】
12.前記規則は、構文要素が1であるとき、量子化パラメータ(QPdec)にオフセットを加えて修正量子化パラメータを得ることを規定する、項目1~7のいずれかに記載の方法。
【0528】
13.前記修正された量子化パラメータは、QPdec、4と輝度量子化パラメータレンジオフセット(QpBdOffsety)の和またはQPdecと4の和に相当する、項目1~7のいずれか1項に記載の方法。
【0529】
14.前記修正された量子化パラメータは、入力ビット深度を示す式QPdec+(4+6*(bdi-8))によって得られる数値に相当し、bdiは前記入力ビット深度である、項目4~12に記載の方法。
【0530】
15.前記修正された量子化パラメータは、映像の後続のブロックを処理するために使用され、後続のブロックの処理は、量子化、逆量子化、フィルタリング、または予測演算のためのデルタ量子化パラメータを含む複数のパラメータのうちの少なくとも1つを使用することを含む、項目1~14のいずれか1項に記載の方法。
【0531】
16.前記量子化パラメータの値は、内部ビット深度QPオフセットとは独立して取得される、項目1~15のいずれかに記載の方法。
【0532】
17.前記量子化パラメータの値は、輝度量子化パラメータの範囲オフセット(QpBdOffsety)を加えずに得られる、項目1~15のいずれか1項に記載の方法。
【0533】
18.前記量子化パラメータの値は、内部ビット深度QPオフセットを使用して取得される、項目1~15のいずれかに記載の方法。
【0534】
19.映像処理方法であって、映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、前記符号化表現は、前記符号化表現に含まれる量子化パラメータに基づく恒等変換を用いた符号化ツールの使用を示す構文要素を選択的に含めることを規定するフォーマット規則に適合する、方法。
【0535】
20.前記符号化ツールは、変換および逆変換プロセスをスキップする変換スキップモードに対応し、または現在の映像ブロックに対応する量子化残差ブロックにブロック差動パルス符号変調を適用する量子化残差ブロック差動パルス符号変調(QP-BDPCM)モードに対応する、項目19に記載の方法。
【0536】
21.前記フォーマット規則は、前記量子化パラメータの値に基づいて、前記構文要素を含まないように規定する、項目19に記載の方法。
【0537】
22.前記フォーマット規則は、前記量子化パラメータの値が4よりも小さい、または4と輝度量子化パラメータの範囲オフセットとの和よりも小さい場合、前記構文要素を含まないことを規定する、項目21に記載の方法。
【0538】
23.前記構文要素は、transform_skip_flagおよび/またはintra_bdpcm_flagを含む、項目19~22のいずれかに記載の方法。
【0539】
24.映像の現在の映像ブロックと現在の映像ブロックの符号化表現との変換を行うことを含み、符号化表現は、映像の入力ビット深度を示す構文要素が符号化表現に含まれることを規定するフォーマット規則に準拠する、映像処理方法。
【0540】
25.前記構文要素(input_bitdepth_8)は、シーケンスパラメータセット(SPS)または映像パラメータ集合(VPS)に含まれ、入力ビット深度を表し、該入力ビット深度から8を減算した値を有する、項目24に記載の方法。
【0541】
26.前記構文要素(internal_bitdepth_input_bitdepth)は、シーケンスパラメータセット(SPS)または映像パラメータ集合(VPS)に含まれ、入力ビット深度を表し、内部ビット深度から入力ビット深度を減算した値を有する、項目24に記載の方法。
【0542】
27.前記構文要素は、0とdQPと間の範囲を有し、dQPは固定値である、項目25または26に記載の方法。
【0543】
28.映像処理方法であって、映像の映像ユニットの映像ブロックと映像の符号化表現との変換のため、映像ブロックまたは映像ユニットに関連付けられた量子化パラメータに基づいて映像ブロックに対して前処理演算を行うか、後処理演算を行うかを決定することと、前記決定に基づいて変換を行うことと、を含む、方法。
【0544】
29.前記前処理演算は、現在の映像ブロックの輝度サンプルを第1のドメインと第2のドメインとの間で再形成し、クロマ残差を輝度依存的にスケーリングする、クロマスケーリング(LMCS)演算を伴う輝度マッピングに対応する、項目28に記載の方法。
【0545】
30.前記後処理演算は、前記現在の映像ブロックを再構成した後に行われるフィルタリング演算に対応する、項目28に記載の方法。
【0546】
31.前記量子化パラメータが閾値よりも小さい場合、前記前処理および/または前記後処理は許可されない、項目28に記載の方法。
【0547】
32.前記閾値は予め定義されている、項目31に記載の方法。
【0548】
33.前記量子化パラメータは、規則に従って修正される、項目31に記載の方法。
【0549】
34.前記量子化パラメータ(QP)が(4+6*(bd-bdi))よりも小さい場合、非ブロック化演算は行われず、前記bdは、内部ビット深度であり、前記bdiは、入力ビット深度を示す、項目28に記載の方法。
【0550】
35.前記量子化パラメータ(QP)が(4+6*(bd-bdi))よりも小さい場合、適応ループフィルタリング演算は行われず、前記bdは、内部ビット深度を示し、前記bdiは、入力ビット深度を示す、項目28に記載の方法。
【0551】
36.前記量子化パラメータ(QP)が(4+6*(bd-bdi))よりも小さい場合、サンプル適応オフセット演算は行われず、前記bdは、内部ビット深度を示し、前記bdiは、入力ビット深度を示す、項目28に記載の方法。
【0552】
37.前記量子化パラメータ(QP)が(4+6*(bd-bdi))よりも小さい場合、クロマスケーリング(LMCS)演算での輝度マッピングは行われず、前記bdは、内部ビット深度を示し、前記bdiは、入力ビット深度を示す、項目28に記載の方法。
【0553】
38.前記変換を行うことは、前記映像から前記符号化表現を生成するステップを含む、項目1~37のいずれかに記載の方法。
【0554】
39.前記変換を行うことは、前記符号化表現から前記映像を生成することを含む、項目1~37のいずれかに記載の方法。
【0555】
40.項目1~39のいずれか1つ以上に記載の方法を実装するように構成された処理装置を備える映像処理装置。
【0556】
41.実行されると、項目1~39のいずれか1つ以上に記載の方法を処理装置に実装させるプログラムコードを記憶するコンピュータ可読媒体。
【0557】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0558】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、成分、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0559】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0560】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0561】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテクストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテクストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0562】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0563】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。少数の実施例と例のみが記載されており、本願文書に記載され図示されたものに基づいて、他の実施、拡張および変形がなされ得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17A
図17B
図18A
図18B
図19
図20
図21
図22
図23
図24