(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-07
(45)【発行日】2023-02-15
(54)【発明の名称】パレットモードの使用の指示の共同符号化
(51)【国際特許分類】
H04N 19/70 20140101AFI20230208BHJP
H04N 19/107 20140101ALI20230208BHJP
H04N 19/186 20140101ALI20230208BHJP
H04N 19/176 20140101ALI20230208BHJP
【FI】
H04N19/70
H04N19/107
H04N19/186
H04N19/176
(21)【出願番号】P 2021551973
(86)(22)【出願日】2020-02-24
(86)【国際出願番号】 CN2020076368
(87)【国際公開番号】W WO2020169104
(87)【国際公開日】2020-08-27
【審査請求日】2021-09-01
(31)【優先権主張番号】PCT/CN2019/077454
(32)【優先日】2019-03-08
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】520476341
【氏名又は名称】北京字節跳動網絡技術有限公司
【氏名又は名称原語表記】Beijing Bytedance Network Technology Co., Ltd.
【住所又は居所原語表記】Room B-0035, 2/F, No.3 Building, No.30, Shixing Road, Shijingshan District Beijing 100041 China
(73)【特許権者】
【識別番号】520477474
【氏名又は名称】バイトダンス インコーポレイテッド
【氏名又は名称原語表記】BYTEDANCE INC.
【住所又は居所原語表記】12655 West Jefferson Boulevard, Sixth Floor, Suite No. 137 Los Angeles, California 90066 United States of America
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】ジュ ウェイジャ
(72)【発明者】
【氏名】ジャン リー
(72)【発明者】
【氏名】シュー ジジョン
(72)【発明者】
【氏名】ジャン カイ
(72)【発明者】
【氏名】リウ ホンビン
(72)【発明者】
【氏名】ワン ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/169104(WO,A1)
【文献】国際公開第2020/169103(WO,A1)
【文献】国際公開第2016/115343(WO,A2)
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 6),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O2001-vE (version 14),15th Meeting: Gothenburg, SE,2019年07月31日,pp.62-70, 137-146
【文献】Weijia Zhu, et al.,CE8-related: Palette Mode Coding,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0258-v1,14th Meeting: Geneva, CH,2019年03月,pp.1-6
【文献】Rajan Joshi, et al.,High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 6,Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JCTVC-W1005-v4,23rd Meeting: San Diego, USA,2016年06月,pp.52-53,62-64,106-108,113-115
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
映像の現在の映像ブロックと前記映像のビットストリームとの間での変換のために、前記ビットストリーム内に第1の予測フラグが含まれることを判定することであって、前記現在の映像ブロックはスキップされず、前記第1の予測フラグは、インター予測モードが適用されるか、またはイントラ予測モードが適用されるかを示す、判定することと、
第2の予測フラグまたは第3の予測フラグが、前記第1の予測フラグの値に少なくとも基づいて前記ビットストリームにさらに含まれることを判定することであって、前記第2の予測フラグは、第1の予測モードが適用されるかどうかを示し、前記第1の予測モードにおいて、前記現在の映像ブロックを含む同じピクチャの再構成されたサンプル値から予測サンプルを導出し、前記第3の予測フラグは、第2の予測モードが適用されるかどうかを示し、前記第2の予測モードにおいて、再構成されたサンプルは、代表的な色値のセットにより表現され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープされたサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含む、判定することと、
前記現在の映像ブロックと前記ビットストリームとの間での前記変換を行うことと、
を含む映像データを処理する方法。
【請求項2】
前記インター予測モードを示す前記第1の予測フラグが適用される場合に、前記第2の予測フラグが前記ビットストリームにさらに含まれる、
請求項1に記載の方法。
【請求項3】
前記イントラ予測モードを示す前記第1の予測フラグが適用される場合に、前記第3の予測フラグが前記ビットストリームにさらに含まれる、
請求項1または2に記載の方法。
【請求項4】
前記第3の予測フラグは、単一のコンテキストでコンテキストコーディングされる、
請求項1~3のいずれか1項に記載の方法。
【請求項5】
前記第2の予測フラグおよび前記第3の予測フラグが前記ビットストリームに含まれるかどうかは、前記現在の映像ブロックのサイズに基づく、
請求項1~4のいずれか1項に記載の方法。
【請求項6】
前記第2の予測フラグが前記ビットストリームに含まれるかどうかは、より高いレベルの前記第1の予測モードに関するイネーブルフラグにさらに基づいており、前記第3の予測フラグが前記ビットストリームに含まれるかどうかは、より高いレベルの前記第2の予測モードに関連するイネーブルフラグにさらに基づいており、
前記より高いレベルは、シーケンスレベル、ピクチャレベル、タイルグループレベル、またはタイルグループを含む、
請求項1~5のいずれか1項に記載の方法。
【請求項7】
第1のビンおよび第2のビンは、前記イントラ予測モード、前記インター予測モード、前記第1の予測モード、および前記第2の予測モードのうちのいずれのモードが前記現在の映像ブロックに適用されるかを示すために使用され、
Mは前記第1のビンの値に等しく、Nは前記第2のビンの値に等しく、
(M,N)=(0,0)の場合に、前記インター予測モードが前記現在の映像ブロックに適用される、
請求項1~6のいずれか1項に記載の方法。
【請求項8】
(M,N)=(0,1)の場合に、前記第1の予測モードは、前記現在の映像ブロックに適用される、
請求項7に記載の方法。
【請求項9】
(M,N)=(0,0)または(0,1)の場合に、前記第1のビンは前記第1の予測フラグに対応しており、前記第2のビンは前記第2の予測フラグに対応しており、前記第3の予測フラグは前記ビットストリームに含まれない、
請求項7または8に記載の方法。
【請求項10】
(M,N)=(1,0)の場合に、前記イントラ予測モードは前記現在の映像ブロックに適用される、
請求項7~9のいずれか1項に記載の方法。
【請求項11】
(M,N)=(1,1)の場合に、前記第2の予測モードは前記現在の映像ブロックに適用される、
請求項7~10のいずれか1項に記載の方法。
【請求項12】
(M,N)=(1,0)または(1,1)の場合に、前記第1のビンは前記第1の予測フラグに対応しており、前記第2のビンは前記第3の予測フラグに対応しており、前記第2の予測フラグは前記ビットストリームに含まれない、
請求項7~11のいずれか1項に記載の方法。
【請求項13】
(M,N)=(0,0)、(0,1)または(1,1)の場合に、第3の予測モードを適用するかどうかを示す第3のビンが、前記ビットストリームから除外され、前記第3の予測モードにおいて、量子化された残差と、前記量子化された残差の予測との間の差が、パルスコーディング変調表現を使用して前記ビットストリームに表現される、
請求項7~12のいずれか1項に記載の方法。
【請求項14】
(M,N)=(1,0)の場合に、第3の予測モードを適用するかどうかを示す第3のビンが、前記ビットストリームに含まれ、前記第3の予測モードにおいて、量子化された残差と、前記量子化された残差の予測との間の差が、パルスコーディング変調表現を使用して前記ビットストリームに表現される、
請求項7~13のいずれか1項に記載の方法。
【請求項15】
前記変換は、前記現在の映像ブロックを前記ビットストリームに符号化することを含む、
請求項1~14のいずれか1項に記載の方法。
【請求項16】
前記変換は、前記現在の映像ブロックを前記ビットストリームから復号化することを含む、
請求項1~14のいずれか1項に記載の方法。
【請求項17】
処理装置と、命令を含む非一時的なメモリとを備える映像データを処理するための装置であって、前記処理装置による実行時に、前記命令は、前記処理装置に、
映像の現在の映像ブロックと前記映像のビットストリームとの間での変換のために、前記ビットストリーム内に第1の予測フラグが含まれることを判定することであって、前記現在の映像ブロックがスキップされず、前記第1の予測フラグは、インター予測モードが適用されるか、またはイントラ予測モードが適用されるかを示す、判定することと、
第2の予測フラグまたは第3の予測フラグが、前記第1の予測フラグの値に少なくとも基づいて前記ビットストリームにさらに含まれることを判定することであって、前記第2の予測フラグは、第1の予測モードが適用されるかどうかを示し、前記第1の予測モードにおいて、前記現在の映像ブロックを含む同じピクチャの再構成されたサンプル値から予測サンプルを導出し、前記第3の予測フラグは、第2の予測モードが適用されるかどうかを示し、前記第2の予測モードにおいて、再構成されたサンプルは、代表的な色値のセットにより表現され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープされたサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含む、判定することと、
前記現在の映像ブロックと前記ビットストリームとの間での前記変換を行うことと、
を行わせる映像データを処理するための装置。
【請求項18】
処理装置に、
映像の現在の映像ブロックと前記映像のビットストリームとの間での変換のために、前記ビットストリーム内に第1の予測フラグが含まれることを判定することであって、前記現在の映像ブロックがスキップされず、前記第1の予測フラグは、インター予測モードが適用されるか、またはイントラ予測モードが適用されるかを示す、判定することと、
第2の予測フラグまたは第3の予測フラグが、前記第1の予測フラグの値に少なくとも基づいて前記ビットストリームにさらに含まれることを判定することであって、前記第2の予測フラグは、第1の予測モードが適用されるかどうかを示し、前記第1の予測モードにおいて、前記現在の映像ブロックを含む同じピクチャの再構成されたサンプル値から予測サンプルを導出し、前記第3の予測フラグは、第2の予測モードが適用されるかどうかを示し、前記第2の予測モードにおいて、再構成されたサンプルは、代表的な色値のセットにより表現され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープされたサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含む、判定することと、
前記現在の映像ブロックと前記ビットストリームとの間での前記変換を行うことと、
を行わせる命令を記憶する非一時的なコンピュータ可読記憶媒体。
【請求項19】
映像のビットストリームを記憶す
る方法
であって、
前記映像の現在の映像ブロックに対して、前記ビットストリーム内に第1の予測フラグが含まれることを判定することであって、前記現在の映像ブロックがスキップされず、前記第1の予測フラグは、インター予測モードが適用されるか、またはイントラ予測モードが適用されるかを示す、判定することと、
第2の予測フラグまたは第3の予測フラグが、前記第1の予測フラグの値に少なくとも基づいて前記ビットストリームにさらに含まれることを判定することであって、前記第2の予測フラグは、第1の予測モードが適用されるかどうかを示し、前記第1の予測モードにおいて、前記現在の映像ブロックを含む同じピクチャの再構成されたサンプル値から予測サンプルを導出し、前記第3の予測フラグは、第2の予測モードが適用されるかどうかを示し、前記第2の予測モードにおいて、再構成されたサンプルは、代表的な色値のセットにより表現され、前記代表的な色値のセットは、1)パレット予測子、2)エスケープされたサンプル、または3)前記ビットストリームに含まれるパレット情報のうちの少なくとも1つを含む、判定することと、
前記現在の映像ブロックのために前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ可読記録媒体
に記憶することと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本願は、2019年3月8日出願の国際特許出願第PCT/CN2019/077454号の優先権と利益を主張する、2020年2月24日出願の国際特許出願第PCT/CN2020/076368号に基づく。前述の特許出願はすべて、参照によりその全体が本明細書に組み込まれる。
【0002】
本明細書は、映像および画像符号化技術に関する。
【背景技術】
【0003】
デジタル映像は、インターネット及び他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像の受信及び表示が可能な接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
開示された技術は、パレットモード符号化が使用される映像または画像デコーダまたはエンコーダの実施形態によって使用してもよい。
【0005】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像領域のブロックと映像のビットストリーム表現との間で変換を行うことを含む。このビットストリーム表現は、このブロックのためにパレットモードの使用の第1の指示が信号通知されるかどうかを規定する第1のフォーマット規則と、このブロックのために予測モードの使用の第2の指示に関連するこの第1の指示の位置を規定する第2のフォーマット規則とに従って処理される。
【0006】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像における映像領域のブロックと映像のビットストリーム表現との間での変換のために、このブロックの少なくとも1つのパレットモードを含む1つ以上の許容予測モードに基づいて、予測モードを判定することを含む。予測モードに従って、パレットモードの使用の指示を判定する。この方法は、また、1つ以上の許容予測モードに基づいてこの変換を行うことを含む。
【0007】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックと映像のビットストリーム表現との間で変換を行うことを含む。ビットストリーム表現は、パレットモードの使用の第1の指示とイントラブロックコピー(IBC)モードの使用の第2の指示とを互いに依存して信号通知することを規定するフォーマット規則に従って処理される。
【0008】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロック寸法に基づいて、このビットストリーム表現におけるパレットモードの使用の指示の存在を判定することと、この判定に基づいてこの変換を行うことと、を含む。
【0009】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このビットストリーム表現におけるイントラブロックコピー(IBC)モードの使用の指示の存在を、このブロックの寸法に基づいて判定することと、この判定に基づいてこの変換を行うこととを含む。
【0010】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロックを含む映像領域の第2の指示に基づいて、このブロックに対してパレットモードが許可されているかどうかを判定することと、この判定に基づいてこの変換を行うこととを含む。
【0011】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロックを含む映像領域の第2の指示に基づいて、このブロックに対してイントラブロックコピー(IBC)モードが許可されているかどうかを判定することと、この判定に基づいてこの変換を行うこととを含む。
【0012】
別の例示的な態様において、映像処理の方法が開示される。この方法は、パレットモードを使用して、予測モードとは別個に符号化されたパレットモードの変換ユニット、符号化ブロック、または領域を処理することを判定することと、このパレットモードを使用して、この変換ユニット、符号化ブロック、または領域に対してさらに処理を行うことを含む。
【0013】
別の例示的な態様において、映像処理の方法が開示される。この方法は、現在の映像ブロックに対して、パレットモードの1つのパレットエントリに関連付けられたサンプルが、現在の映像ブロックに関連付けられた第2のビット深度とは異なる第1のビット深度を有することを判定することと、この少なくとも1つのパレットエントリに基づいて、現在の映像ブロックのさらなる処理を行うこととを含む。
【0014】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像のピクチャの現在の映像ブロックと、この映像のビットストリーム表現との間での変換を行うことであって、ビットストリーム表現において、イントラブロックコピーモードがこの変換において使用されるか否かに関する情報が信号通知される、またはこの現在の映像ブロックの符号化条件に基づいて導出される、変換を行うことを含み、このイントラブロックコピーモードは、このピクチャにおける別の映像ブロックからこの現在の映像ブロックを符号化することを含む。
【0015】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像のピクチャの現在の映像ブロックを変換する間に非ブロック化フィルタを適用するか否かを判定することを含み、ここで、現在の映像ブロックは、現在の映像ブロックの全画素より小さい代表的なサンプル値を使用して現在の映像ブロックを表すパレットモード符号化を使用して符号化され、非ブロック化フィルタを適用すると判定した場合に非ブロック化フィルタが適用されるように変換を行うことを含む。
【0016】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、ある映像のピクチャの現在の映像ブロックとこの映像のビットストリーム表現との間での変換中に使用するために、量子化または逆量子化処理を判定することを含み、ここで、現在の映像ブロックは、現在の映像ブロックの合計画素よりも少ない代表的なサンプル値を使用して現在の映像ブロックを表すパレットモード符号化を使用して符号化され、この量子化または逆量子化処理の判定に基づいてこの変換を行うことを含む。
【0017】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックをイントラ符号化されたブロックであると考えることで、最大確率モードのリスト構築処理を行うことと、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化される。
【0018】
さらに別の例示的な態様において、映像処理の別の方法が開示される。
【0019】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックを非イントラ符号化されたブロックであると考えることで、最大確率モードのリスト構築処理を実行し、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化される。
【0020】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックを利用不可能なブロックであると考えることで、リスト構築処理を行うことと、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化される。
【0021】
さらに別の例示的な態様において、映像処理の別の方法が開示される。この方法は、現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換中に、この現在の映像ブロックがパレット符号化ブロックであることを判定することと、現在の映像ブロックがパレット符号化ブロックであることに基づいて、この変換に使用されるコンテキスト符号化ビンの範囲を判定することと、このコンテキスト符号化ビンの範囲に基づいてこの変換を行うこととを含む。
【0022】
さらに別の例示的な態様において、上述された方法は、処理装置を含む映像エンコーダによって実装されてもよい。
【0023】
さらに別の例示的な態様において、これらの方法は、処理装置実行可能命令の形式で実施されてもよく、コンピュータ可読プログラム媒体に記憶されてもよい。
【0024】
これらの、および他の態様は、本明細書でさらに説明される。
【図面の簡単な説明】
【0025】
【
図2】パレットモードで符号化されたブロックの例を示す。
【
図3】パレットエントリを信号通知するためにパレット予測子を使用する例を示す。
【
図4】水平方向および垂直方向の横断走査の例を示す。
【
図7】映像エンコーダの実装形態の例を示すブロック図である。
【
図8】映像処理方法の例を示すフローチャートである。
【
図9】フィルタのオン/オフ決定および強/弱フィルタの選択に関与する画素の例を示す。
【
図12】67個のイントラモード予測方向の例を示す。
【
図14】ALFフィルタの形状の例を示す(クロマ:5×5菱形、輝度:7×7菱形)。
【
図15】(a)は垂直方向勾配のサブサンプリングされたラプラシアン計算の例を示す。(b)は水平勾配のためのサブサンプリングされたラプラシアン計算の例を示す。(c)は対角勾配のためのサブサンプリングされたラプラシアン計算の例を示す。(d)は対角勾配のためのサブサンプリングされたラプラシアン計算の例を示す。
【
図16】仮想境界における修正された区分の例を示す。
【
図17】仮想境界における輝度要素のための修正されたALFフィルタリングの例を示す。
【
図18】EOにおける画素分類の4つの1-D3画素パターンの例を示す。
【
図19】4つのバンドをグループ化してその開始バンド位置で表現することの例を示す。
【
図20】CIIP重み導出に用いられる左上近傍のブロックの例を示す。
【
図21】クロマスケーリングアーキテクチャを用いた輝度マッピングの例を示す。
【
図23】4×4ブロックのための走査順序の別の例を示す。
【
図24】開示された技術を実装することができる例示的な映像処理システムを示すブロック図である。
【
図25】本技術にしたがった映像処理方法を示すフローチャートである。
【
図26】本技術にしたがった別の映像処理方法を示すフローチャートである。
【
図27】本技術にしたがった別の映像処理方法を示す別のフローチャートである。
【
図28】本技術にしたがった別の映像処理方法を示す別のフローチャートである。
【
図29】本技術にしたがった別の映像処理方法を示す別のフローチャートである。
【
図30】本技術にしたがった別の映像処理方法を示す別のフローチャートである。
【
図31】本技術にしたがったさらに別の映像処理方法を示す別のフローチャートである。
【発明を実施するための形態】
【0026】
本明細書は、伸張または復号化されたデジタル映像または画像の品質を向上させるために、画像または映像ビットストリームのデコーダによって使用できる様々な技術を提供する。簡潔にするために、本明細書では、用語「映像」は、一連のピクチャ(従来から映像と呼ばれる)および個々の画像の両方を含むように使用される。さらに、映像エンコーダは、さらなる符号化に使用される復号化されたフレームを再構成するために、符号化の処理中にこれらの技術を実装してもよい。
【0027】
本明細書では、理解を容易にするために章の見出しを使用しており、1つの章に開示された実施形態をその章にのみ限定するものではない。このように、ある章の実施形態は、他の章の実施形態と組み合わせることができる。
【0028】
1.発明の概要
【0029】
本明細書は、映像符号化技術に関する。具体的には、本発明は、映像符号化において基本色に基づく表現を用いるパレット符号化に関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0030】
2.初期の協議
【0031】
映像符号化規格は、主に周知の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 Model)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0032】
図7は映像エンコーダの実装形態の例のブロック図である。
図7は、エンコーダの実装が、映像エンコーダが映像復号化機能も実行する(次の映像データの符号化に使用するために映像データの圧縮表現を再構成する)フィードバック経路を組み込んでいることを示す。
【0033】
2.1 イントラブロックコピー
【0034】
イントラブロックコピー(IBC)、別名、現在のピクチャの参照は、HEVCスクリーンコンテンツ符号化拡張機能(HEVC-SCC)と現在のVVCテストモデル(VTM-4.0)に採用されている。IBCは、動き補償の概念をインターフレーム符号化からイントラフレーム符号化に拡張する。
図1に示すように、現在のブロックは、IBCが適用される場合、同じピクチャ内の1つの参照ブロックによって予測される。現在のブロックを符号化または復号化する前に、参照ブロックにおけるサンプルは既に再構成されていなければならない。IBCは、カメラでキャプチャされたほとんどのシーケンスに対してそれほど効率的ではないが、スクリーンコンテンツに対しては、有意な符号化利得を示す。その理由は、スクリーンコンテンツピクチャにおいて、アイコン、文字等の繰り返しパターンが多いためである。IBCは、これらの繰り返しパターン間の冗長性を有効に除去することができる。HEVC-SCCにおいて、インター符号化ユニット(CU)は、現在のピクチャをその参照ピクチャとして選択する場合、IBCを適用することができる。この場合、MVをブロックベクトル(BV)と改称し、BVは常に整数画素精度を有する。メインプロファイルHEVCに適合するように、現在のピクチャは、復号化ピクチャバッファ(DPB)における「長期」参照ピクチャとしてマークされる。なお、同様に、複数のビュー/3D映像符号化規格において、ビュー間の参照ピクチャも「長期」参照ピクチャとしてマークされる。
【0035】
BVがその参照ブロックを見つけた後、この参照ブロックをコピーすることで予測を生成することができる。残差は、元の信号から参照画素を減算することによって得ることができる。そして、他の符号化モードと同様に、変換および量子化を適用することができる。
【0036】
しかしながら、参照ブロックがピクチャの外にある場合、または現在のブロックと重複する場合、または再構成された領域の外にある場合、或いは何らかの制約によって制限された有効領域の外にある場合、画素値の一部または全部は規定されない。基本的に、このような問題に対処するために2つの解決策がある。1つは、このような状況、例えばビットストリーム適合性を許可しないことである。もう1つは、これらの未定義の画素値にパディングを適用することである。以下のサブセッションでは、解決策を詳細に説明する。
【0037】
2.2 HEVCスクリーンコンテンツ符号化拡張機能におけるIBC
【0038】
HEVCのスクリーンコンテンツ符号化拡張機能において、1つのブロックが現在のピクチャを参照として使用する場合、以下の仕様のテキストに示すように、参照ブロック全体が利用可能な再構成された領域内にあることを保証すべきである。
【0039】
変数offsetXおよびoffsetYは、以下のように導出される。
【0040】
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x7?2:0) (8-106)
【0041】
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-107)
【0042】
参照ピクチャが現在のピクチャである場合、輝度動きベクトルmvLXは、以下の制約に従うべきであることが、ビットストリーム適合性の要件である。
【0043】
-6.4.1項で規定されたようなz走査順序ブロックの可用性に対する導出処理が、(xCb,yCb)と等しく設定された(xCurr,yCurr)、(xPb+(mvLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offsetY)に等しく設定された近傍の輝度位置(xNbY,yNbY)を入力として呼び出されると、出力はTRUEとなる。
【0044】
-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となる。
【0045】
-次の条件の一方または両方が真であること。
【0046】
-(mvLX[0]>>2)+nPbW+xB1+offsetXの値が0以下である。
【0047】
-(mvLX[1]>>2)+nPbH+yB1+offsetYの値が0以下である。
【0048】
-次の条件が真となること。
【0049】
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (8-108)
【0050】
このように、参照ブロックが現在のブロックと重複するケース、または参照ブロックがピクチャの外にあるケースは発生しない。参照ブロックまたは予測ブロックを埋める必要がない。
【0051】
このように、参照ブロックが現在のブロックと重複するケース、または参照ブロックがピクチャの外にあるケースは発生しない。参照ブロックまたは予測ブロックを埋める必要がない。
【0052】
2.3 VVC試験モデルにおけるIBC
【0053】
現在のVVC試験モデル、例えば、VTM-4.0設計において、参照ブロック全体は現在の符号化ツリーユニット(CTU)を有するべきであり、現在のブロックと重複しない。よって、参照または予測ブロックをパディングする必要がない。IBCフラグは、現在のCUの予測モードとして符号化される。このように、各CUに対して、MODE_INTRA、MODE_INTER、およびMODE_IBCという全部で3つの予測モードが存在する。
【0054】
2.3.1 IBCマージモード
【0055】
IBCマージモードにおいて、IBCマージ候補リストにおけるエントリを指すインデックスをビットストリームから構文解析する。このIBCマージリストの構築は、以下のステップのシーケンスに従ってまとめることができる。
【0056】
ステップ1:空間的候補の導出
【0057】
ステップ2:HMVP候補の挿入
【0058】
ステップ3:対の平均候補の挿入
【0059】
空間的マージ候補の導出において、図面に示す位置にある候補の中から、最大4つのマージ候補が選択されている。導出の順序はA1、B1、B0、A0、B2である。位置A1、B1、B0、A0のいずれかのPUが利用可能でない場合(例えば、別のスライスまたはタイルに属しているため)、またはIBCモードで符号化されていない場合にのみ、位置B2が考慮される。位置A1の候補を加えた後、残りの候補を挿入すると、冗長性チェックを受け、それにより、同じ動き情報を有する候補を確実にリストから排除でき、符号化効率を向上させることができる。計算の複雑性を低減するために、前述の冗長性チェックにおいて、考えられる候補対のすべてを考慮することはしない。代わりに、図面に示された矢印でリンクされた対のみを考慮し、冗長性チェックに使用される対応する候補が同じ動き情報を有していない場合にのみ、その候補をリストに加える。
【0060】
空間的候補を挿入した後、IBCマージリストサイズが依然として最大IBCマージリストサイズより小さい場合、HMVPテーブルからのIBC候補を挿入することができる。HMVP候補の挿入にあたり、冗長性チェックを行う。
【0061】
最後に、対の平均候補をIBCマージリストに挿入する。
【0062】
マージ候補によって特定される参照ブロックがピクチャの外にある場合、または現在のブロックと重複する場合、または再構成された領域の外にある場合、或いは何らかの制約によって制限された有効領域の外にある場合、マージ候補は無効なマージ候補と呼ばれる。
【0063】
なお、IBCマージリストに無効なマージ候補を挿入してもよい。
【0064】
2.3.2 IBC AMVPモード
【0065】
IBC AMVPモードでは、IBC AMVPリストにおけるエントリを指すAMVPインデックスが、ビットストリームから構文解析される。このIBC AMVPリストの構築は、以下のステップのシーケンスに従ってまとめることができる。
【0066】
ステップ1:空間的候補の導出
【0067】
利用可能な候補が見つかるまで、A0,A1をチェックする。
【0068】
利用可能な候補が見つかるまで、B0、B1、B2をチェックする。
【0069】
ステップ2:HMVP候補の挿入
【0070】
ステップ3:ゼロ候補の挿入
【0071】
空間的候補を挿入した後、IBC AMVPリストサイズが依然として最大IBC AMVPリストサイズより小さい場合、HMVPテーブルからのIBC候補を挿入することができる。
【0072】
最後に、IBC AMVPリストにゼロ候補を挿入する。
【0073】
2.4 パレットモード
【0074】
パレットモードの背景にある基本的な考えは、CUにおけるサンプルを代表的な色値の小さな集合で表現することである。この集合をパレットと呼ぶ。また、エスケープシンボルの後に(場合によっては量子化された)要素値を信号通知することによって、パレットの外側にあるサンプルを示すこともできる。これを
図2に示す。
【0075】
2.5 HEVCスクリーンコンテンツ符号化拡張機能におけるパレットモード(HEVC-SCC)
【0076】
HEVC-SCCにおけるパレットモードでは、パレットおよびインデックスマップを符号化するために予測方式が用いられる。
【0077】
2.5.1 パレットエントリの符号化
【0078】
パレットエントリを符号化するために、パレット予測子が維持される。SPSにおいて、パレットの最大サイズおよびパレット予測子が信号通知される。HEVC-SCCにおいて、palette_predictor_initializer_present_flagがPPSに導入される。このフラグが1である場合、ビットストリームにおいて、パレット予測子を初期化するためのエントリが信号通知される。パレット予測子は、各CTU行、各スライス、および各タイルの始めに初期化される。palette_predictor_initializer_present_flagの値によって、palette_predictorを0にリセットするか、またはPPSに信号通知されたパレット予測子の初期化エントリを使用してパレット予測子を初期化する。HEVC-SCCでは、PPSレベルでパレット予測子の初期化を明確に無効にするために、サイズ0のパレット予測子初期化モジュールを有効化した。
【0079】
パレット予測子におけるエントリごとに、それが現在のパレットの一部であるかどうかを示すように、再利用フラグが信号通知される。これを
図3に示す。再利用フラグは、ゼロのランレングス符号化を使用して送信される。この後、新しいパレットエントリの数は、次数0の指数ゴロムコードを使用して信号通知される。最後に、新しいパレットエントリのための要素値が信号通知される。
【0080】
2.5.2 パレットインデックスの符号化
【0081】
パレットインデックスは、
図4に示すように、水平方向および垂直方向の横断走査を使用して符号化される。palette_transpose_flagを使用して、ビットストリームにおける走査順序を明確に信号通知する。以下のサブセクションでは、走査が水平であると仮定する。
【0082】
パレットインデックスは、「INDEX」および「COPY_ABOVE」の2つのメインパレットサンプルモードを使用して符号化される。前述のように、エスケープシンボルも「INDEX」モードとして信号送信され、最大パレットサイズに等しいインデックスが割り当てられる。このモードは、最上行を除くフラグを使用して、または前回のモードが「COPY_ABOVE」であった場合に信号通知される。「COPY_ABOVE」モードでは、上の行のサンプルのパレットインデックスをコピーする。「INDEX」モードにおいて、パレットインデックスは明確に信号通知される。「INDEX」モードと「COPY_ABOVE」モードの両方の場合、同じモードを使用して符号化される後続のサンプルの数を規定する実行値を信号通知する。エスケープシンボルが「INDEX」または「COPY_ABOVE」モードにおける実行の一部である場合、エスケープシンボルごとにエスケープ要素値が信号通知される。パレットインデックスの符号化を
図5に示す。
【0083】
この構文順序は、以下のようにして実行される。まず、CUのためのインデックス値の数が信号通知される。これに続いて、トランケーテッドバイナリ符号化(truncated binary coding)を使用して、CU全体の実際のインデックス値を信号通知する。バイパスモードでは、インデックスの数およびインデックス値の両方が符号化される。これにより、インデックス関連バイパスビンがグループ化される。次に、パレットサンプルモード(必要な場合)および実行は、インターリーブ方式で信号通知される。最後に、CU全体のためのエスケープサンプルに対応する要素エスケープ値をグループ化し、バイパスモードで符号化する。
【0084】
インデックス値を信号通知した後、追加の構文要素last_run_type_flagを信号通知する。この構文要素は、インデックスの数と連動して、ブロックにおける最後の実行に対応する実行値を信号通知する必要をなくす。
【0085】
HEVC-SCCでは、パレットモードは、4:2:2、4:2:0、およびモノクロのクロマフォーマットに対しても有効になる。パレットエントリおよびパレットインデックスの信号通知は、すべてのクロマフォーマットに対してほぼ同じである。非モノクロフォーマットの場合、各パレットエントリは、3つの要素からなる。モノクロフォーマットの場合、各パレットエントリは単一の要素からなる。サブサンプリングされたクロマ方向の場合、クロマサンプルは、2で割り切れる輝度サンプル指数に関連付けられる。CUのパレットインデックスを再構成した後、1つのサンプルに単一の要素しか関連付けられていない場合、パレットエントリの第1の要素のみが使用される。信号通知における唯一の違いは、エスケープ要素値である。エスケープサンプルごとに、信号通知されるエスケープ要素値の数は、そのサンプルに関連付けられた要素の数によって異なってもよい。
【0086】
VVCにおいて、イントラスライスの符号化にデュアルツリー符号化構造が用いられるので、輝度要素および2つのクロマ要素は、異なるパレットおよびパレットインデックスを有してもよい。また、2つのクロマ要素は、同じパレットおよびパレットインデックスを共有する。
【0087】
2.6 VVCにおける非ブロック化スキーム
【0088】
なお、以下の説明において、pN
Mは、垂直エッジに対してM行目の左側のN番目のサンプル、または水平エッジに対してM列目の上側のN番目のサンプルを表し、qN
Mは、垂直エッジに対してM行目の右側のN番目のサンプル、または水平エッジに対して、M列目の下側のN番目のサンプルを表す。pN
MおよびqN
Mの例を
図9に示す。
【0089】
なお、以下の説明において、pNは、垂直エッジに対して行の左側のN番目のサンプル、または、水平エッジに対して列の上側のN番目のサンプルを表し、qNは、垂直エッジに対して行の右側のN番目のサンプル、又は水平エッジに対して、列の下側のN番目のサンプルを表す。
【0090】
1つの単位として4行に対してフィルタのオン/オフの決定を行う。
図9は、フィルタのオン/オフ決定に関与する画素を示す。最初の4行のための2つの赤いボックスにおける6つの画素は、4行のためのフィルタのオン/オフを判定するために用いられる。2番目の4行のための2つの赤いボックス内の6つの画素は、第2の4行のためのフィルタのオン/オフを判定するために用いられる。
【0091】
いくつかの実施形態において、まずピクチャの垂直エッジを選別する。そして、垂直エッジフィルタリング処理で修正されたサンプルを入力として、ピクチャの水平エッジをフィルタリングする。各CTUのCTBにおける垂直および水平エッジは、符号化ユニットごとに別個に処理される。符号化ユニットにおける符号化ブロックの垂直エッジは、符号化ブロックの左側のエッジから始まり、符号化ブロックの右側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。符号化ユニットにおける符号化ブロックの水平エッジは、符号化ブロックの上側のエッジから始まり、符号化ブロックの下側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。
【0092】
2.6.1 境界の決定
【0093】
8×8のブロック境界にフィルタリングを適用する。さらに、それは、(例えば、アフィン動き予測、ATMVPを使用しているため)変換ブロックの境界または符号化サブブロックの境界でなければならない。そのような境界でない場合、フィルタは無効にされる。
【0094】
2.6.2 境界強度計算
【0095】
変換ブロックの境界/符号化サブブロックの境界について、それが8×8グリッドに位置する場合、それをフィルタリングしてもよく、このエッジのためのbS[xDi][yDj]([xDi][yDj]は座標を表す)の設定は、以下のように定義される。
- サンプルp0またはq0がイントラ予測モードで符号化された符号化ユニットの符号化ブロックにある場合、bS[xDi][yDj]は、2に等しく設定される。
- あるいは、ブロックエッジが変換ブロックエッジでもあり、サンプルp0またはq0が、1つ以上の非ゼロ変換係数レベルを含む変換イントラブロックにある場合、bS[xDi][yDj]は、1に等しく設定される。
- あるいは、サンプルp0を含む符号化サブブロックの予測モードが、サンプルq0を含む符号化サブブロックの予測モードと異なる場合、bS[xDi][yDj]は、1に等しく設定される。
- あるいは、以下の条件の1つ以上が真である場合、bS[xDi][yDj]を1に等しく設定する。
- サンプルp0を含む符号化サブブロックおよびサンプルq0を含む符号化サブブロックは、いずれもIBC予測モードで符号化され、2つの符号化サブブロックの予測に用いられる動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
- サンプルp0を含む符号化サブブロックの予測のために、サンプルq0を含む符号化サブブロックの予測とは異なる参照ピクチャまたは異なる数の動きベクトルが使用される。
注1 - 2つの符号化サブロックに使用される参照ピクチャが同じであるかまたは異なるかは、予測を形成するのに参照ピクチャリスト0へのインデックスを使用するか、または参照ピクチャリスト1へのインデックスを使用して形成するかに関わらず、且つ参照ピクチャリスト内のインデックス位置が異なるかどうかに関わらず、どのピクチャが参照されるかによってのみに基づいて判定される。
注2 - (xSb,ySb)を含む左上のサンプルを有する符号化サブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
- 1つの動きベクトルは、サンプルp0を含む符号化サブブロックを予測するために使用され、1つの動きベクトルは、サンプルq0を含む符号化サブブロックを予測するために使用され、使用される動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
- 2つの動きベクトルおよび2つの異なる参照ピクチャを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ2つの参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの符号化サブブロックの予測に使用される2つの動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
- 同じ参照ピクチャの2つの動きベクトルを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、以下の条件の両方が成り立つ。
- 2つの符号化サブブロックの予測に使用されるリスト0の動きベクトルの水平または垂直要素の間の絶対差は、4分の1輝度サンプルにおいて4以上である、または2つの符号化サブブロックの予測に使用されるリスト1の動きベクトルの水平または垂直要素の間の絶対差は、1/4輝度サンプル単位で4以上である。
- サンプルp0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上であるか、またはサンプルp0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上である。
あるいは、変数bS[xDi][yDj]を0に設定する。
表2-1、表2-2にBSの計算規則をまとめる。
【0096】
【0097】
【0098】
2.6.3 輝度要素の非ブロック化決定
【0099】
非ブロック化決定処理は、このサブセクションで説明する。
【0100】
より広く、強い輝度フィルタは、条件1、条件2、および条件3の全てがTRUEである場合にのみ使用されるフィルタである。
【0101】
条件1は、「大ブロック条件」である。この条件は、P側およびQ側のサンプルが、それぞれ変数bSidePisLargeBlkおよびbSideQisLargeBlkによって表現される大ブロックに属するかどうかを検出する。bSidePisLargeBlkおよびbSideQisLargeBlkは、以下のように定義される。
bSidePisLargeBlk=((edge type is vertical and p0 belongs to CU with width>=32)||(edge type is horizontal and p0 belongs to CU with height>=32))? TRUE:FALSE
bSideQisLargeBlk=((edge type is vertical and q0 belongs to CU with width>=32)||(edge type is horizontal and q0 belongs to CU with height>=32))?TRUE:FALSE
【0102】
bSidePisLargeBlkおよびbSideQisLargeBlkに基づいて、条件1を以下のように定義する。
Condition1=(bSidePisLargeBlk||bSidePisLargeBlk)?TRUE:FALSE次に、条件1が真である場合、さらに条件2をチェックする。まず、以下の変数を導出する。
- dp0,dp3,dq0,dq3をまずHEVCとして導出する。
- (p側が32以上である場合)
dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1
dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1
- (q側が32以上の場合)
dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1
dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1
Condition2=(d<β)?TRUE:FALSE
章2.2.4に示すとおり、式中、d=dp0+dq0+dp3+dq3である。
条件1および条件2が有効である場合、いずれかのブロックがサブブロックを使用するかどうかをさらにチェックする。
If(bSidePisLargeBlk)
If(mode block P==SUBBLOCKMODE)
Sp=5
else
Sp=7
else
Sp=3
If(bSideQisLargeBlk)
If(mode block Q==SUBBLOCKMODE)
Sq=5
else
Sq=7
else
Sq=3
最後に、条件1および条件2の両方が有効である場合、提案された非ブロック化方法は、以下のように定義される条件3(大ブロックの強いフィルタ条件)をチェックする。
条件3のStrongFilterConditionにおいて、以下の変数を導出する。
dpqはHEVCと同様に導出される。
sp3=Abs(p3-p0)、HEVCと同様に導出される。
if(p側が32以上である場合)
if(Sp==5)
sp3=(sp3+Abs(p5-p3)+1)>>1
else
sp3=(sp3+Abs(p7-p3)+1)>>1
sq3=Abs(q0-q3)はHEVCと同様に導出される
if(q側が32以上である場合)
If(Sq==5)
sq3=(sq3+Abs(q5-q3)+1)>>1
else
sq3=(sq3+Abs(q7-q3)+1)>>1
【0103】
HEVCと同様に、StrongFilterCondition=(dpq is less than(β>>2),sp3+sq3 is less than(3*β>>5),and Abs(p0-q0)is less than(5*tC+1)>>1)?TRUE:FALSE.
【0104】
2.6.4 輝度のためのより強い非ブロック化フィルタ(より大きいブロックのために設計される)
【0105】
バイリニアフィルタは、境界の両側のサンプルが1つの大ブロックに属する場合に用いられる。1つの大ブロックに属する1つのサンプルは、垂直エッジの場合、幅≧32であり、水平エッジの場合、高さ≧32であるときとして定義される。
【0106】
バイリニアフィルタを以下に示す。
【0107】
次に、上述のHEVC非ブロック化において、ブロックの境界サンプルである、i=0~Sp-1におけるpi、及び、j=0~Sq-1におけるqi(pi及びqiは、垂直エッジをフィルタリングする行内のi番目のサンプル、または水平エッジをフィルタリングする列内のi番目のサンプル)を、以下のように線形補間によって置き換える。
【0108】
【0109】
ここで、tcPDiおよびtcPDj項は、章2.3.6に記載の位置依存クリッピングであり、gj,fi,Middles,t,PsおよびQsは、表2-3に示される。
【0110】
【0111】
2.6.5 クロマの非ブロック化制御
【0112】
クロマの強いフィルタは、ブロックの境界の両側に用いられる。ここで、クロマフィルタは、クロマエッジの両側が8(クロマ位置)以上である場合に選択され、3つの条件付きで、次の決定が満たされる。すなわち、1番目のものは、大ブロックと同様に、境界強度を決定するためのものである。提案されたフィルタは、クロマサンプルドメインにおいて、ブロックのエッジに直交するブロックの幅または高さが8以上である場合に適用できる。第2および第3のものは、基本的にはHEVC輝度の非ブロック化の決定と同じであり、それぞれオン/オフ決定および強いフィルタの決定となっている。
【0113】
第1の決定において、表2-2に示すように、クロマフィルタリングのために境界強度(bS)が修正される。表2-2の条件を順次チェックする。条件が満たされている場合、残りの優先順位の低い条件はスキップされる。
【0114】
大ブロックの境界が検出された場合、bSが2に等しいか、またはbSが1に等しいとき、クロマ非ブロック化が行われる。
【0115】
第2および第3の条件は、基本的には、以下のように、HEVC輝度の強いフィルタの決定と同様である。
【0116】
第2の条件において、その後、HEVC輝度非ブロック化と同様にdを導出する。
第2の条件は、dがβより小さい場合、TRUEとなる。
【0117】
第3の条件において、StrongFilterConditionは、以下のように導出される。
dpqはHEVCと同様に導出される。
sp3=Abs(p3-p0)、HEVCと同様に導出される。
sq3=Abs(q0-q3)はHEVCと同様に導出される。
【0118】
HEVC設計におけるように、StrongFilterCondition=(dpq is less than(β>>2),sp3+sq3 is less than(β>>3),and Abs(p0_q0)is less than(5*tC+1)>>1)
【0119】
2.6.6 クロマ用の強い非ブロック化フィルタ
【0120】
以下のようなクロマ用の強い非ブロック化フィルタが定義される。
p2’=(3*p3+2*p2+p1+p0+q0+4)>>3
p1’=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0’=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
【0121】
提案されたクロマフィルタは、4×4クロマサンプルグリッドに対して非ブロック化を行う。
【0122】
2.6.7 位置依存クリッピング
【0123】
位置依存クリッピングtcPDは、境界で7個、5個、および3個のサンプルを修正する強く長いフィルタを含む輝度フィルタリング処理の出力サンプルに適用される。量子化誤差分布を仮定して、より高い量子化ノイズを有すると予想されるサンプルに対して、クリッピング値を増加させることが提案され、よって、再構成されたサンプル値の真のサンプル値からのより高い偏差を有することが予想される。
【0124】
非対称フィルタでフィルタリングされた各PまたはQ境界について、章2.3.3における意思決定処理の結果に基づいて、位置依存閾値テーブルが、副情報としてデコーダに提供される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;
【0125】
短い対称フィルタでフィルタリングされるPまたはQ境界に対しては、より小さい位置依存閾値が適用される。
Tc3={3,2,1};
【0126】
閾値を定義した後、tcPおよびtcQクリッピング値に従って、フィルタリングされたp’iおよびq’iサンプル値をクリッピングする。
p’’i=Clip3(p’i+tcPi,p’i-tcPi,p’i);
q’’j=Clip3(q’j+tcQj,q’j-tcQj,q’j);
【0127】
ここで、p’i、q’iはフィルタリングされたサンプル値であり、p’’i、q’’jはクリッピング後の出力サンプル値であり、tcPi、tcPiはVVC tcパラメータ、tcPD、tcQDから導出されるクリッピング閾値である。関数Clip3は、VVCに規定されているような、クリッピング関数である。
【0128】
2.6.8 サブブロックの非ブロック化調整
【0129】
両方のロングフィルタを使用する並列フレンドリな非ブロック化およびサブブロック非ブロック化を可能にするために、ロングフィルタは、ロングフィルタのための輝度制御に示すように、サブブロック非ブロック化(AFFINE、ATMVP、またはDMVR)を使用する側でのサンプルの修正が、最大で5つまでに制限される。さらに、サブブロックの非ブロック化は、CUまたは暗黙のTU境界に近い8×8グリッド上のサブブロック境界の修正が、各側において最大2つまでのサンプルに制限されるように調整される。
【0130】
以下は、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
}
【0131】
この場合、0に等しいエッジはCU境界に対応し、2に等しいかまたは直交長さ-2に等しいエッジは、CU境界からのサブブロックの境界8サンプルに対応する。ここで、TUの暗黙的分割が使用される場合、暗黙的TUは真である。
【0132】
2.6.9 輝度/クロマ用の4CTU/2CTU行バッファへの制限
【0133】
水平エッジがCTU境界と整列している場合、水平エッジのフィルタリングは、輝度の場合、Sp=3、クロマの場合、Sp=1、Sq=1に制限する。
【0134】
2.7 VVCにおけるイントラモード符号化
【0135】
自然映像に表される任意のエッジ方向をキャプチャするために、VTM5における指向性イントラモードの数は、HEVCで使用されるように、33から65に拡張される。HEVCにない新しい指向性モードは、
図12に赤い点線の矢印で示されており、平面モードと直流モードは同じままである。これらのより密度の高い指向性イントラ予測モードは、すべてのブロックサイズ、および輝度および彩度イントラ予測の両方に適用される。
【0136】
VTM5において、いくつかの従来の角度イントラ予測モードは、非正方形のブロックのために、広角イントラ予測モードに適応的に置き換えられる。広角イントラ予測については、章3.3.1.2を参照されたい。
【0137】
HEVCにおいて、すべてのイントラ符号化されたブロックは正方形の形状を有し、その辺の各々の長さは2の累乗である。このように、DCモードを使用してイントラ予測子を生成するのに、除算演算を必要としない。VTM5において、ブロックは長方形であってもよく、一般的な場合、ブロックごとに除算演算を使用することが必要である。DC予測のための除算演算を回避するために、長辺のみを使用して非正方形のブロックの平均を計算する。
【0138】
最大確率モード(MPM)リスト生成の複雑性を低く維持するために、2つの利用可能な近傍のイントラモードを考慮することによって、6個のMPMを有するイントラモード符号化方法が使用される。MPMリストを構築するために、以下の3つの態様を考える。
i. デフォルトのイントラモード
ii. 近傍イントラモード
iii. 導出イントラモード
【0139】
MRL符号化ツールおよびISP符号化ツールの適用の有無にかかわらず、イントラブロックに対して統一された6-MPMリストが使用される。MPMリストは、左上の近傍のブロックのイントラモードに基づいて構成される。ここで、左側のブロックのモードをLeftとし、上記ブロックのモードをAboveとすると、統合MPMリストは、以下のように構成される(左側および上側のブロックを
図13で示す。
- 近傍のブロックが利用可能でない場合、そのイントラモードはデフォルトでPlanarに設定される。
- モードLeftおよびAboveの両方が非角度モードである場合、次のようになる。
○ MPM list→{Planar,DC,V,H,V-4,V+4}
- モードLeftおよびAboveの一方が角度モードであり、他方が非角度モードである場合、次のようになる。
○ MaxモードをLeft and Above でより大きいモードに設定する。
○ MPM list→{Planar,Max,DC,Max-1,Max+1,Max-2}
- LeftとAboveが共に角度があり、かつそれらが異なる場合、以下のようになる。
○ MaxモードをLeft and Above でより大きいモードに設定する。
○ LeftモードとAboveモードとの差が2~62の範囲内にある場合
■ MPM list→{Planar,Left,Above,DC,Max-1,Max+1}
○ あるいは、
■ MPM list→{Planar,Left,Above,DC,Max-2,Max+2}
- LeftとAboveが両方ともに角度があり、かつ同じである場合、以下のようになる。
○ MPM list→{Planar,Left,Left-1,Left+1,DC,Left-2}
【0140】
また、mpmインデックスコード名の第1のビンは、CABACコンテキスト符号化される。現在のイントラブロックがMRL対応であるか、ISP対応であるか、または通常のイントラブロックであるかに対応して、合計3つのコンテキストが使用される。
【0141】
6つのMPMリストの生成処理中、プルーニングを使用して重複したモードを除去し、唯一のモードをMPMリストに含めることができるようにする。61個の非MPMモードのエントロピー符号化のために、トランケーテッドバイナリコード(TBC)が使用される。
【0142】
クロマイントラモード符号化の場合、クロマイントラモード符号化の場合、合計8つのイントラモードが許可される。これらのモードには、5つの伝統的なイントラモードと3つの構成要素共通の線形モデルモードが含まれる(CCLM、LM_AおよびLM_L)。クロマモード信号通知および導出処理を表2-4に示す。クロマモード符号化は、対応する輝度ブロックのイントラ予測モードに直接依存する。Iスライスにおいて、輝度要素とクロマ要素に対するブロック分割構造の分離が有効化されているため、1つのクロマブロックは複数の輝度ブロックに対応してもよい。よって、クロマDMモードの場合、現在のクロマブロックの中心位置を含む、対応する輝度ブロックのイントラ予測モードは直接継承される。
【0143】
【0144】
2.8 量子化残差ブロック差動パルスコード変調(QR-BDPCM)
【0145】
JVET-M0413において、量子化された残差ブロック差動パルスコード変調(QR-BDPCM)が、スクリーンコンテンツを効率的に符号化するために提案されている。
【0146】
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が量子化された残差サンプルに適用され、その結果、要素ri,jを有する修正されたM×N個の配列R~が得られる。垂直BDPCMが信号通知されると、以下のようになる。
【0147】
【0148】
水平予測の場合、類似した規則が適用され、残差量子化サンプルは、以下の式によって得られる。
【0149】
【0150】
残差量子化サンプルr~
i,jはデコーダに送られる。
【0151】
デコーダ側では、上記の計算を逆にして、Q(ri,j)、0≦i≦M-1、0≦j≦N-1を生成する。垂直予測の場合、
【0152】
【0153】
水平方向の場合、
【0154】
【0155】
逆量子化された残差Q-1(Q(ri,j))をイントラブロック予測値に加算し、再構成されたサンプル値を生成する。
【0156】
このスキームの主な利点は、逆方向のDPCMを、係数の構文解析中にオンザフライで行うことができ、係数の構文解析中に予測子を追加するだけで済むこと、または、構文解析後に行うことができることである。
【0157】
2.9 適応ループフィルタ
【0158】
VTM5において、ブロックに基づくフィルタ適応を伴う適応ループフィルタ(ALF)が適用される。輝度要素は、局所勾配の方向および働きに基づいて、4×4ブロックごとに25個のフィルタのうち1つを選択する。
【0159】
2.9.1 フィルタ形状
【0160】
VTM5において、2つの菱形フィルタ形状(
図14に示す)が使用される。輝度要素には7×7菱形を適用し、クロマ要素には5×5菱形を適用する。
【0161】
2.9.2 ブロック区分
【0162】
輝度要素の場合、各4×4ブロックを25個のクラスのうちの1つに分類する。分類インデックスCは、その方向性DおよびアクティビティA^の量子化値に基づいて、以下のように導出される。
【0163】
【0164】
DおよびA^を計算するために、まず、1-Dラプラシアンを使用して、水平、垂直および2つの対角線方向の勾配を計算する。
【0165】
【0166】
この場合、iおよびjは、4×4イントラブロックの左上のサンプルの座標を表し、R(i,j)は、座標(i,j)において再構成されたサンプルを示す。
【0167】
ブロック区分の複雑性を低減するために、サブサンプリングされた1-Dラプラシアン計算が適用される。
図15(a)~(d)に示すように、すべての方向の勾配計算に同じサブサンプリング位置を用いる。
【0168】
そして、水平方向および垂直方向の勾配のD最大値およびD最小値を以下のように設定する。
【0169】
【0170】
2つの対角線方向の勾配の最大値および最小値は、以下のように設定される。
【0171】
【0172】
指向性Dの値を導出するために、これらの値を互いに且つ2つの閾値t1およびt2と比較する。
【0173】
【0174】
アクティビティ値Aは、以下のように計算される。
【0175】
【0176】
Aをさらに0~4の範囲に量子化し、量子化された値をA^とする。
【0177】
ピクチャにおけるクロマ要素に対して、分類方法は適用されず、即ち、単一のALF係数のセットが各クロマ要素に対して適用される。
【0178】
2.9.3 フィルタ係数およびクリッピング値の幾何学的変換
【0179】
各4×4輝度ブロックをフィルタリングする前に、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)および対応するフィルタクリッピング値c(k,l)に対して、回転または対角線および垂直方向の反転等の幾何学的変換を施す。これは、これらの変換をフィルタ支持領域内のサンプルに適用することに等しい。その考えは、ALFが適用される異なるブロックを、それらの方向性を揃えることによって、より類似させることである。
【0180】
対角線、垂直方向の反転および回転を含む3つの幾何学的変換を紹介する。
Diagonal:fD(k,l)=f(l,k),cD(k,l)=c(l,k), (2-9-9)
Vertical flip:fV(k,l)=f(k,K-l-1),cV(k,l)=c(k,K-l-1) (2-9-10)Rotation:fR(k,l)=f(K-l-1,k),cR(k,l)=c(K-l-1,k) (2-9-11)
【0181】
この場合、Kはフィルタのサイズであり、0≦k,l≦K-1が係数座標であり、位置(0,0)は左上隅にあり、位置(K-1,K-1)は右下隅にある。この変換は、そのブロックに対して計算された勾配値に基づいて、フィルタ係数f(k,l)およびクリッピング値c(k,l)に適用される。変換と4方向の4つの勾配との関係を以下の表にまとめる。
【0182】
【0183】
2.9.4 フィルタパラメータ信号通知
【0184】
VTM5において、ALFフィルタパラメータは、適応パラメータセット(APS)において信号通知される。1つのAPSにおいて、最大25組の輝度フィルタ係数およびクリッピング値インデックス、並びに最大1組のクロマフィルタ係数およびクリッピング値インデックスを信号通知することができる。ビットオーバーヘッドを低減するために、異なる分類のフィルタ係数をマージすることができる。スライスヘッダにおいて、現在のスライスに使用されるAPSのインデックスが信号通知される。
【0185】
APSから復号化されたクリッピング値インデックスは、クリッピング値の輝度テーブル(Luma table)およびクリッピング値のクロマテーブル(Chroma table)を使用してクリッピング値を判定することができるようになる。これらのクリッピング値は、内部ビット深度に依存する。具体的には、クリッピング値の輝度テーブルおよびクロマテーブルは、以下の式によって得られる。
【0186】
【0187】
ここで、Bは内部ビット深度に等しく、NはVTM5.0における許容されるクリッピング値の数である4に等しい。
【0188】
フィルタリング処理はCTBレベルで制御されてもよい。ALFが輝度CTBに適用されるかどうかを示すために、常に1つのフラグが信号通知される。1つの輝度CTBは、16個の固定フィルタセットのうち1つのフィルタセットを選択し、複数のAPSから1つのフィルタセットを選択することができる。どのフィルタセットが適用されるかを示すように、輝度CTBのためにフィルタセットインデックスが信号通知される。エンコーダおよびデコーダの両方において、16個の固定フィルタセットを予め規定し、ハードコードする。
【0189】
フィルタ係数は、128に等しいノルムで量子化される。乗算の複雑性を抑えるために、非中心位置の係数値が-27~27-1の範囲内に含まれるように、ビットストリーム適合性が適用される。中心位置係数はビットストリームにおいて信号通知されず、128に等しいと見なされる。
【0190】
2.9.5 フィルタリング処理
【0191】
デコーダ側において、CTBのためにALFが有効化されると、CU内の各サンプルR(i,j)がフィルタリングされ、その結果、以下に示すように、サンプル値R’(i,j)が得られる。
【0192】
【0193】
ここで、f(k,l)は復号化されたフィルタ係数を表し、K(x,y)はクリッピング関数であり、c(k,l)は復号化されたクリッピングパラメータを表す。変数kおよびlは、-L/2とL/2との間で変化し、ここで、Lはフィルタ長を表す。クリッピング関数K(x,y)=min(y,max(-y,x))であり、これは関数Clip3(-y,y,x)に対応する。
【0194】
2.9.6 行バッファ削減のための仮想境界フィルタリング処理
【0195】
VTM5において、ALFの行バッファ要件を低減するために、水平CTU境界付近のサンプルに対して修正されたブロック区分およびフィルタリングが用いられる。そのために、
図16に示すように、水平方向CTU境界を「N」個のサンプルで移動させることによって、仮想境界を行として定義し、Nは、輝度要素に対しては4に等しく、クロマ要素に対しては2に等しい。
【0196】
図2-11に示すように、輝度要素に対して修正されたブロック区分を適用する。仮想境界より上の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より上のサンプルのみを使用する。同様に、仮想境界より下の4×4ブロックの1Dラプラシアン勾配計算のために、仮想境界より下のサンプルのみを使用する。従って、1Dラプラシアン勾配計算に使用されるサンプルの低減された数を考慮に入れることで、アクティビティ値Aの量子化を拡大縮小する。
【0197】
フィルタリング処理のために、仮想境界における対称パディング演算が、輝度要素およびクロマ要素の両方に使用される。
図17に示すように、フィルタリングされる試料が仮想境界の下に位置する場合、仮想境界の上に位置する近傍のサンプルにパディングを行う。一方、他方の側の対応するサンプルもまた、対称的にパディングされる。
【0198】
2.10 サンプル適応オフセット(Sample Adaptive Offset:SAO)
【0199】
エンコーダがCTBごとに規定したオフセットを使用して、非ブロック化フィルタ後の再構成された信号にサンプル適応オフセット(SAO)を適用する。HMエンコーダは、まず、現在のスライスに対してSAO処理を行うか否かを決定する。スライスにSAOを適用した場合、各CTBは、表2-6に示すように、5つのSAOタイプの1つに分類される。SAOの概念は、画素をカテゴリに分類し、各カテゴリの画素にオフセットを加えることで歪みを低減することである。SAO演算は、SAOタイプ1-4における画素分類のためにエッジ特性を使用するエッジオフセット(EO)と、SAOタイプ5における画素分類のために画素強度を使用するバンドオフセット(BO)とを含む。適用可能なCTBは、それぞれ、sao_merge_left_flag、sao_merge_up_flag、SAOタイプ、および4つのオフセットを含むSAOパラメータを有する。sao_merge_left_flagが1に等しい場合、現在のCTBは、SAOタイプおよびCTBのオフセットを左に再利用する。sao_merge_up_flagが1に等しい場合、現在のCTBは、SAOタイプおよび上記CTBのオフセットを再利用する。
【0200】
【0201】
2.10.1 各SAOタイプの動作
【0202】
図18に示すように、エッジオフセットは、4つの1-D3画素パターンを使用して、エッジの方向情報を考慮して現在の画素pを分類する。左から右へ、0°、90°、135°、45°次のようになる。
【0203】
表2-7に従って、各CTBを5つのカテゴリに分類する。
【0204】
【0205】
バンドオフセット(Band Offset、BO)は、画素値の上位5ビットをバンドインデックスとして使用し、1つのCTB領域におけるすべての画素を32個の均一なバンドに分類する。換言すると、画素強度範囲は、ゼロから最大強度値までの32個の等分したセグメントに分割される(例えば、8ビット画素の場合、255)。
図19に示すように、隣り合う4つのバンドをまとめ、それぞれのグループをその最も左側の位置で示す。エンコーダは、各帯域のオフセットを補償することで、すべての位置を探索し、歪みが最大に低減されたグループを得る。
【0206】
2.11 統合されたインター予測およびイントラ予測(CIIP)
【0207】
VTM5において、CUがマージモードで符号化される場合、CUが少なくとも64個の輝度サンプルを含む(すなわち、CU幅×CU高さが64以上である)場合、およびCU幅およびCU高さの両方が128個の輝度サンプル未満である場合、現在のCUにインター/イントラ予測(CIIP)複合モードが適用されるかどうかを示すために、追加のフラグが信号通知される。その名称が示すように、CIIP予測は、インター予測信号とイントラ予測信号とを合成する。通常のマージモードに適用されるのと同じインター予測処理を使用して、CIIPモードP
interにおけるインター予測信号を導出し、平面モードによる通常のイントラ予測処理の後、イントラ予測信号P
intraを導出する。
そして、重み付け平均を使用してイントラ予測信号とインター予測信号とを合成し、この場合、左上の近傍のブロック(
図20に示す)の符号化モードによって、重み値を以下のように算出する。
- 上隣が利用可能であり、イントラ符号化されている場合、isIntraTopを1に設定し、あるいは、isIntraTopを0に設定する。
- 左隣が利用可能であり、イントラ符号化されている場合、isIntraLeftを1に設定し、あるいは、isIntraLeftを0に設定する。
-(isIntraLeft+isIntraLeft)が2に等しい場合、wtは3に設定される。
- あるいは、(isIntraLeft+isIntraLeft)が1に等しい場合、wtは2に設定される。
- あるいは、wtを1に設定する。
CIIP予測は、以下のように形成される。
P
CIIP=((4-wt)*P
inter+wt*P
intra+2)>>2 (3-1)
【0208】
2.12 クロマスケーリングを伴う輝度マッピング(LMCS)
【0209】
VTM5において、ループフィルタの前に新しい処理ブロックとして、クロマスケーリングによる輝度マッピング(LMCS)と呼ばれる符号化ツールが追加される。LMCSは、2つの主な要素を有する。1) 適応型区分線形モデルに基づく輝度要素のインループマッピング、および、2)クロマ要素のために、輝度依存クロマ残差スケーリングを適用する。
図21は、デコーダの観点から見たLMCSアーキテクチャを示す。
図21中の薄い青色の影が付けられたブロックは、マッピングされたドメインにおいて処理が適用される場所を示し、これらは、逆量子化、逆変換、輝度イントラ予測、および輝度予測と輝度残差との加算を含む。
図21中の影が付けられていないブロックは、元の(即ち、マッピングされていない)ドメインにおいて処理が適用される場所を示し、これらは、非ブロック化、ALF、SAO等のループフィルタ、動き補償予測、クロマイントラ予測、クロマ残差とともにクロマ予測を加算し、復号化されたピクチャを参照ピクチャとして記憶することを含む。
図21における淡黄色の陰影付きブロックは、輝度信号の前方および後方マッピング並びに輝度依存性クロマスケーリング処理を含む、新しいLMCS機能ブロックである。VVCにおける他のほとんどのツールと同様に、LMCSは、SPSフラグを使用して、シーケンスレベルで有効/無効にすることができる。
【0210】
3. 実施形態が解決しようとする課題の例
【0211】
1つのパレットフラグは、通常、そのエントロピー符号化において異なる制限および分散を有することができる、現在のCUにおいてパレットモードが採用されているかどうかを示すために用いられる。しかしながら、前の映像符号化規格において、どのようにしてパレットフラグをより良好に符号化するかについては、まだ十分に検討されていない。
【0212】
パレットサンプルは、ポストループフィルタ処理によって処理される場合、視覚的アーチファクトを有する可能性がある。
【0213】
非正方形のブロックの場合、パレットの走査順序を改善することができる。
【0214】
4. 実施形態の例
【0215】
以下の詳細な発明は、一般的な概念を説明するための例であると考えられるべきである。これらの発明は狭い意味で解釈されるべきではない。さらに、これらの発明は、任意の方法で組み合わせることができる。
1. 変換ユニット/予測ユニット/符号化ブロック/領域のためのパレットモードの使用の指示は、予測モードとは別個に符号化されてもよい。
a. 一例において、予測モードは、パレットの使用の指示の前に符号化されてもよい。
i. 代替的に、さらに、パレットの使用の指示は、予測モードに基づいて条件付きで信号通知されてもよい。
1. 一例において、予測モードがイントラブロックコピーモードである場合(すなわち、MODE_IBC)、パレットモードの使用の指示の信号通知はスキップされてもよい。代替的に、さらに、現在の予測モードがMODE_IBCである場合、パレットの使用の指示が偽であると推測されてもよい。
2. 一例において、予測モードがインターモード(すなわち、MODE_INTER)である場合、パレットモードの使用の指示の信号通知はスキップされてもよい。代替的に、さらに、現在の予測モードがMODE_INTERである場合、パレットモードの使用の指示が偽であると推測されてもよい。
3. 一例において、予測モードがイントラモード(すなわち、MODE_INTRA)である場合、パレットモードの使用の指示の信号通知はスキップされてもよい。代替的に、さらに、現在の予測モードがMODE_INTRAである場合、パレットモードの使用の指示が偽であると推測されてもよい。
4. 一例において、予測モードがスキップモードである(すなわち、スキップフラグが1に等しい)場合、パレットモードの使用の指示の信号通知はスキップされてもよい。代替的に、さらに、現在のCUにおいてスキップモードが採用されている場合、パレットモードの使用の指示が偽であると推測されてもよい。
5. 一例において、予測モードがイントラモード(例えば、MODE_INTRA)である場合、パレットモードの使用の指示が信号通知されてもよい。代替的に、さらに、予測モードがインターモードまたはイントラブロックコピーモードである場合、パレットモードの使用の指示の信号通知はスキップされてもよい。
a) 代替的に、さらに、予測モードがイントラモードであり、パルス符号変調(PCM)モードでない場合、パレットモードの使用の指示を信号通知されてもよい。
b) 代替的に、さらに、予測モードがイントラモードである場合、パレットモードの使用の指示は、PCMモードの使用の指示の前に信号通知されてもよい。一例において、パレットモードが適用される場合、PCMモードの使用の信号通知はスキップされてもよい。
c) 代替的に、さらに、予測モードがインターモードまたはイントラブロックコピーモードである場合、パレットモードの使用の指示の信号通知はスキップされてもよい。
6. 一例において、予測モードがインターモード(例えば、MODE_INTER)である場合、パレットモードの使用の指示が信号通知されてもよい。
a) 代替的に、予測モードがイントラモードである場合、パレットモードの使用の指示の信号通知はスキップされてもよい。
7. 一例において、予測モードがイントラブロックコピーモードである場合、パレットモードの使用の指示が信号通知されてもよい。代替的に、さらに、予測モードがインターモードまたはイントラモードである場合、パレットモードの使用の指示の信号通知をスキップしてもよい。
ii. 代替的に、さらに、ピクチャ/スライス/タイルグループのタイプに基づいて、パレットモードの使用の指示を条件付きで信号通知されてもよい。
b. 一例において、予測モードは、パレットモードの使用の指示の後に符号化されてもよい。
c. 一例において、予測モードがINTRAモードまたはINTER_MODEである場合、パレットモードの使用の指示が信号通知されてもよい。
i. 一例において、パレットモードの使用の指示は、スキップフラグ、予測モード、およびPCMモードのフラグの後に符号化されてもよい。
ii. 一例において、パレットモードの使用の指示は、スキップフラグ、予測モードの後、PCMモードのフラグの前に符号化されてもよい。
iii. 一例において、現在のブロックがイントラモードで符号化される場合、パレットモードおよびIBCモードの指示がさらに信号通知されてもよい。
1. 一例において、1つのビットフラグは、パレットまたはIBCモードのいずれが信号通知されるかどうかを示すように信号通知されてもよい。
2. 一例において、ビットフラグの信号通知は、ブロック寸法、1つのタイル/タイルグループ/スライス/ピクチャ/シーケンスに対してIBCまたはパレットモードが有効化されるかどうか等の特定の条件下でスキップされてもよい。
d. 一例において、予測モード(例えば、それがイントラモードであるかまたはインターモードであるか)は、まず符号化され、続いて、それがパレットモードであるかどうかの条件付き信号通知が行われる。
i. 一例において、予測モードがイントラモードである場合、それがパレットモードであるかどうかを示すように、別のフラグをさらに信号通知されてもよい。
1. 一例において、1つの映像データユニット(例えば、シーケンス/ピクチャ/タイルグループ/タイル)に対してパレットモードが有効化される場合、「別のフラグ」が信号通知されてもよい。
2. 一例において、「別のフラグ」は、ブロック寸法の条件下で信号通知されてもよい。
3. 代替的に、さらに、それがパレットモードでない場合、それがPCMモードであるかどうかを示すように、1つのフラグをさらに信号通知されてもよい。
4. 一例において、「別のフラグ」は近傍のブロックの情報に従ってコンテキスト符号化されてもよい。代替的に、「別のフラグ」は、1つのコンテキストのみで符号化されたコンテキストでもよい。代替的に、「別のフラグ」は、バイパス符号化されても、すなわちコンテキストなしであってもよい。
ii. 代替的に、予測モードがインターモードである場合、IBCモードであるかどうかを示すように、別のフラグをさらに信号通知されてもよい。
1. 一例において、1つの映像データユニット(例えば、シーケンス/ピクチャ/タイルグループ/タイル)に対してIBCモードが有効化されるとき、「別のフラグ」が信号通知されてもよい。
2. 一例において、「別のフラグ」は、ブロック寸法の条件下で信号通知されてもよい。
2. パレットモードを予測モードの追加候補として追加することが提案される。パレットモードの使用の指示は、例えば、上記の例示的な実施形態1で説明したように、予測モードに基づいて判定/信号通知することができる。いくつかの実施形態において、パレットモードの使用の指示を予測モードとは別個に信号通知する必要がない。
a. 一例において、予測モードは、イントラスライス/Iピクチャ/イントラタイルグループのためのイントラ、イントラブロックコピー、およびパレットモードを含んでもよい。
b. 代替的に、予測モードは、イントラスライス/Iピクチャ/イントラタイルグループのためのイントラ、パレットモードを含んでもよい。
c. 一例において、予測モードは、4×4ブロックのためのイントラ、イントラブロックコピー、およびパレットモードを含んでもよい。
d. 一例において、予測モードは、スライス間/および/またはBピクチャ/タイルグループのためのイントラ、インター、イントラブロックコピー、およびパレットモードを含んでもよい。
e. 一例において、予測モードは、スライス間/Pおよび/またはBピクチャ/タイルグループのためのイントラ、インター、イントラブロックコピーモードを含んでもよい。
f. 代替的に、予測モードは、イントラ、インター、イントラブロックコピー、およびパレットモードのうちの少なくとも2つを含んでもよい。
g. 一例において、インターモードは、4×4ブロックの予測モードに含まれなくてもよい。
h. 一例において、ブロックがスキップモードとして符号化されない場合(これはインターモードの特殊な場合である)、予測モードインデックスは、異なるビンを使用してコンテキストベースで符号化されてもよい。いくつかの実施形態において、1つ以上のビンの信号通知は、ブロック寸法(例えば、4×4)または予測モードが無効にされる(例えば、IBCモードが無効にされ、対応するビンがスキップされる)等の条件によってスキップされてもよい。
i. 一例において、4つのモードの2値化は、イントラ(1)、インター(00)、IBC(010)、およびパレット(011)として定義される。ここで、3つのビンが使用され、各ビットは1つのビン値に対応する。
ii. 一例において、4つのモードの2値化は、
図10に示すように、イントラ(10)、インター(00)、IBC(01)、およびパレット(11)として定義される。ここで、2つのビンが使用され、各ビットは1つのビン値に対応する。
iii. 一例において、現在のスライスがイントラスライスであり、SPSにおいてIBCが有効化されていない場合、パレットおよびイントラモードの2値化は、パレット(1)およびイントラ(0)のように定義される。ここで、1つのビンが使用される。
iv. 一例において、現在のスライスがイントラスライスでなく、SPSにおいてIBCが有効化されていない場合、パレット、インターおよびイントラモードの2値化は、intra(1)、inter(00)、およびPalette(01)として定義される。ここで、2つのビンが使用され、各ビットは1つのビン値に対応する。
v. 一例において、現在のスライスがイントラスライスであり、SPSにおいてIBCが有効化されている場合、パレットおよびイントラモードの2値化は、IBC(1)、パレット(01)、イントラ(00)のように定義される。ここで、2つのビンが使用され、各ビットは1つのビン値に対応する。
vi. 一例において、4つのモードの2値化は、インター(1)、イントラ(01)、IBC(001)、およびパレット(000)として定義される。ここで、3つのビンが使用され、各ビットは1つのビン値に対応する。
vii. 一例において、4つのモードの2値化は、イントラ(1)、インター(01)、IBC(001)、およびパレット(000)として定義される。ここで、3つのビンが使用され、各ビットは1つのビン値に対応する。
viii. 一例において、4つのモードの2値化は、
図11に示すように、インター(0)、イントラ(10)、IBC(111)、およびパレット(110)として定義される。ここで、3つのビンが使用され、各ビットは1つのビン値に対応する。
3. パレット/IBCモードの使用の指示の信号通知は、他のモードの情報に依存してもよい。
a. 一例において、現在の予測モードがイントラモードであり、IBCモードでない場合、パレットモードの使用の指示が信号通知されてもよい。
b. 一例において、現在の予測モードがイントラモードであり、パレットモードでない場合、IBCモードの使用の指示は、信号通知されてもよい。
4. モード情報をどのように信号通知するかは、スライス/ピクチャ/タイルグループのタイプに依存してもよい。
a. 一例において、それがIスライスイントラタイルグループである場合、それがIBCモードであるかどうかを示すように、1つのフラグを信号通知されてもよい。IBCモードでない場合、パレットモードであるかイントラモードであるかどうかを示すように、別のフラグをさらに信号通知されてもよい。
b. 一例において、それがI-スライス/イントラタイルグループである場合、それがイントラモードであるかどうかを示すように、1つのフラグを信号通知されてもよい。
イントラモードでない場合、パレットモードであるかIBCモードであるかどうかを示すように、別のフラグをさらに信号通知されてもよい。
5. パレットモードの使用の指示は、以下の条件に基づいて信号通知および/または導出されてもよい。
a. 現在のブロックのブロック寸法
i. 一例において、パレットモードの使用の指示は、幅*高さが閾値以下(例えば、64*64)のブロックに対してのみ信号通知されてもよい。
ii. 一例において、パレットモードの使用の指示は、幅および高さの両方が閾値(例えば、64)以上であるブロックに対してのみ信号通知されてもよい。
iii. 一例において、パレットモードの使用の指示は、以下のすべての条件が真であるブロックに対してのみ信号通知されてもよい。
1.幅および/または高さが閾値、例えば16以上である。
2.幅および/または高さが閾値以下(例えば、32または64)
iv. 一例において、パレットモードの使用の指示は、幅が高さに等しいブロック
(即ち、正方形のブロック)に対してのみ信号通知されてもよい。
b. 現在のブロックの予測モード
c. 現在のブロックの量子化パラメータ
d. 近傍のブロックのパレットフラグ
e. 近傍のブロックのイントラブロックコピーフラグ
f. カラーフォーマットの指示(例えば、4:2:0、4:4:4)
g. 分離/二重符号化ツリー構造
h. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
6. IBCモードの使用の指示は、以下の条件に基づいて信号通知および/または導出されてもよい。
a. 現在のブロックのブロック寸法
i. 一例において、IBCモードの使用の指示は、幅または高さの両方が128より小さいブロックに対してのみ信号通知されてもよい。
b. 現在のブロックの予測モード
c. 現在のブロックの量子化パラメータ
d. 近傍のブロックのパレットフラグ
e. 近傍のブロックのイントラブロックコピーフラグ
f. カラーフォーマットの指示(例えば、4:2:0、4:4:4)
g. 分離/二重符号化ツリー構造
h. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
7. パレットモードは、非ブロック化決定処理においてイントラモード(例えば、MODE_INTRA)として取り扱われてもよい。
a. 一例において、p側またはq側のサンプルがパレットモードで符号化される場合、境界強度は2に設定される。
b. 一例において、p側およびq側の両方のサンプルがパレットモードで符号化される場合、境界強度は2に設定される。
c. 代替的に、パレットモードは、非ブロック化決定処理においてインターモード(例えば、MODE_INTER)として扱われてもよい。
8. パレットモードは、非ブロック化決定処理において、別個のモード(例えば、MODE_PLT)として取り扱われてもよい。
a. 一例において、p側およびq側のサンプルがパレットモードで符号化される場合、境界強度は0に設定される。
i. 代替的に、片側のサンプルがパレットモードで符号化される場合、境界強度は0に設定される。
b. 一例において、p側のサンプルがIBCモードで符号化され、q側のサンプルがパレットモードで符号化される場合、境界強度は1に設定され、逆もまた同様である。
c. 一例において、p側のサンプルがイントラモードで符号化され、q側のサンプルがパレットモードで符号化される場合、境界強度は2に設定され、逆もまた同様である。
9. パレットモードは、非ブロック化処理において変換スキップブロックとして扱われてもよい。
a. 代替的に、パレットモードは、非ブロック化処理において、BDPCMブロックとして扱われてもよい。
10. スライス/タイルグループ/ピクチャレベルフラグに基づいて、1つのブロックに対するパレットモードの使用の指示を信号通知および/または導出してもよい。
a. 一例において、このフラグは、動きベクトル差(MMVD、別名、UMVE)および/または適応型動きベクトル解像度(AMVR)モード(例えば、slice_fracmmvd_flag)とのマージにおいて、わずかな動きベクトル差(MVD)が許可されるかどうかを示す。代替的に、さらに、slice_fracmmvd_flagがわずかなMVDが有効化されていることを示す場合、パレットモードの使用の指示の信号通知はスキップされ、パレットモードは無効化されていると推測される。
b. 一例において、このフラグは、スライス/タイルグループ/ピクチャに対してパレットモードが有効化されているかどうかを示す。代替的に、さらに、このようなフラグが、パレットモードが無効であることを示す場合、1つのブロックについてのパレットモードの使用の信号通知をスキップし、パレットモードが無効であると推測する。
11. スライス/タイルグループ/ピクチャレベルフラグに基づいて、1つのブロックに対するイントラブロックコピーモード(IBC)の使用の指示を信号通知および/または導出されてもよい。
a. 一例において、このフラグは、動きベクトル差(MMVD、別名、UMVE)および/または適応型動きベクトル解像度(AMVR)モード(例えば、slice_fracmmvd_flag)とのマージにおいて、わずかな動きベクトル差(MVD)が許可されるかどうかを示す。代替的に、さらに、slice_fracmmvd_flagがわずかなMVDが有効であることを示す場合、IBCモードの使用の指示の信号通知はスキップされ、IBCモードは無効であると推測される。
b. 一例において、このフラグは、スライス/タイルグループ/ピクチャに対してIBCモードが有効化されているかどうかを示す。代替的に、さらに、このようなフラグが、IBCモードが無効であることを示す場合、1つのブロックに対してIBCモードを使用する信号通知をスキップし、IBCモードが無効であると推測する。
12. 1つのパレットエントリに関連付けられたサンプルは、元の/再構成されたサンプルの内部ビット深度および/またはビット深度とは異なるビット深度を有してもよい。
a. 一例において、1に関連付けられたサンプルがNに等しいビット深度を有し得ることを示すと、以下が適用されてもよい。
i. 一例において、Nは整数(例えば、8)であってもよい。
ii. 一例において、Nは、元の/再構成されたサンプルの内部ビット深度および/またはビット深度よりも大きくてもよい。
iii. 一例において、Nは、元の/再構成されたサンプルの内部ビット深度および/またはビット深度より小さくてもよい。
iv. 一例において、Nは、以下に依存してもよい。
1. 現在のブロックのブロック寸法
2. 現在のブロックの量子化パラメータ
3. カラーフォーマットの指示(例えば、4:2:0、4:4:4)
4. 分離/二重符号化ツリー構造
5. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
6. パレットエントリ
7. 予測パレットエントリ
8. 色要素のインデックス
b. 一例において、複数のパレットエントリに関連付けられたサンプルは、異なるビット深度を有してもよい。
i. 一例において、C0、C1は、現在のパレットにおける2つのパレットエントリであり、それぞれb0およびb1に等しいビット深度を有してもよい。b0はb1に等しくなくてもよい。
1. 一例において、b0は、元の/再構成されたサンプルの内部ビット深度および/またはビット深度よりも大きくても/小さくてもよく、且つ/またはb1は、元の/再構成されたサンプルの内部ビット深度および/またはビット深度より大きくても/小さくてもよい。
c. 一例において、パレットモードにおいて、サンプルは、パレットエントリに関連付けられたサンプルのシフトされた値に従って再構成されてもよい。
i. 一例において、サンプルは、パレットエントリにおけるサンプルをMビットだけ左シフトすることによって再構成されてもよい。
ii. 一例において、再構成された値は、(C<<<M)+(1<(M-1))であり、この場合、Cはパレットエントリである。
iii. 一例において、サンプルは、パレットエントリにおけるサンプルをMビット右シフトすることによって再構成されてもよい。
iv. 一例において、再構成された値は、clip((C+(1<<(M-1)))>>M,0,(1<<N)-1)であってもよく、この場合、Cはパレットエントリであり、Nは再構成のビット深度である。
v. 代替的に、さらに、一例において、Mは、パレットエントリに関連付けられたサンプル間のビット深度の差と、再構成されたサンプル/元のサンプルの内部ビット深度とに依存してもよい。
1. 一例において、Mは、内部ビット深度からパレットエントリにおけるサンプルのビット深度を引いたものに等しくてもよい。
2. 一例において、Mは、パレットエントリにおけるサンプルのビット深度から内部ビット深度を引いたものに等しくてもよい。
3. 一例において、Mは、元のサンプルのビット深度からパレットエントリにおけるサンプルのビット深度を引いたものに等しくてもよい。
4. 一例において、Mは、パレットエントリにおけるサンプルのビット深度から元のサンプルのビット深度を引いたものに等しくてもよい。
5. 一例において、Mは、再構成されたサンプルのビット深度からパレットエントリにおけるサンプルのビット深度を引いたものに等しくてもよい。
6. 一例において、Mは、パレットエントリにおけるサンプルのビット深度から再構成されたサンプルのビット深度を引いたものに等しくてもよい。
vi. 一例において、Mは、整数(例えば、2)であってもよい。
vii. 代替的に、さらに、一例において、Mは、に依存してもよい。
1. 現在のブロックのブロック寸法
2. 現在のブロックの量子化パラメータ
3. カラーフォーマットの指示(例えば、4:2:0、4:4:4)
4. 分離/二重符号化ツリー構造
5. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
6. パレットエントリ
7. 予測パレットエントリ
8. ブロック/ピクチャ/スライス/タイルにおけるサンプル位置
9. 色要素のインデックス
viii. 一例において、パレットエントリにおけるサンプルに基づくルックアップ動作は、サンプルの再構成中に使用してもよい。
1. 一例において、ルックアップテーブルにおける値は、LCUのSPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU行/グループにおいて信号通知されてもよい。
2. 一例において、ルックアップテーブルにおける値は、LCUのSPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU行/グループにおいて推測されてもよい。
13. パレット符号化ブロックの信号通知された/導出された量子化パラメータ(QP)は、クリップされるなど、エスケープ画素/サンプルの導出に使用される前に、最初に修正されてもよい。
a. 一例において、パレット符号化ブロックに適用されるQP範囲は、変換スキップモードおよび/またはBDPCMモードと同様に扱われてもよい。
b. 一例において、パレット符号化ブロックに適用されるQPは、max(Qp,4+T)に修正されてもよく、この場合、Tは、整数値であり、Qpは、このブロックのための信号通知されたまたは導出された量子化パラメータである。
i. 一例において、Tは、予め規定された閾値であってもよい。
ii. 一例において、Tは、(4+min_qp_prime_ts_ minus4)に等しくてもよく、min_qp_prime_ts_ minus4が信号通知されてもよい。
14. エスケープサンプル/シンボルをどのように符号化するかは、量子交換バイパスが有効化されるかどうかにかかわらず、統一されてもよい。
a. 一例において、エスケープサンプルは、固定長で信号通知されてもよい。
b. 一例において、エスケープサンプルは、Nビットを使用して固定長で信号通知されてもよい。
i. 一例において、Nは、整数(例えば、8または10)であってもよく、下記に依存してもよい。
1. LCUのSPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU行/グループにおいて信号通知されるメッセージ
2. 内部ビット深度
3. 入力ビット深度
4. 現在のブロックのブロック寸法
5. 現在のブロックの量子化パラメータ
6. カラーフォーマットの指示(例えば、4:2:0、4:4:4)
7. 分離/二重符号化ツリー構造
8. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
c. 一例において、1つのエスケープ画素/サンプルを信号通知するための符号長は、内部ビット深度に依存してもよい。
i. 代替的に、1つのエスケープ画素/サンプルを信号通知するためのコード長は、入力ビット深度に依存してもよい。
d. 一例において、1つのエスケープ画素/サンプルを信号通知するための符号長は、量子化パラメータに依存してもよい。
i. 一例において、1つのエスケープ画素/サンプルを信号通知するためのコード長は、f(Qp)でもよい。
1. 一例において、関数fは、(内部ビット深度-(Qp-4)/6)として定義されてもよい。
15. パレット符号化ブロックおよび非パレット符号化ブロックのための量子化および/または逆量子化処理は、異なる方法で定義されてもよい。
a. 一例において、変換係数または残差のための量子化処理を使用する代わりに、右ビットシフトを使用して、エスケープサンプルを量子化してもよい。
b. 一例において、変換係数または残差のための逆量子化処理を使用する代わりに、左ビットシフトを使用して、エスケープサンプルを逆量子化してもよい。
c. エンコーダ側において、以下を適用してもよい。
i. 一例において、エスケープ画素/サンプル値は、f(p,Qp)として信号通知されてもよく、この場合、pは、画素/サンプル値である。
ii. 一例において、関数fは、p>>(((Qp-4)/6)として定義されてもよく、この場合、pは、画素/サンプル値であり、Qpは、量子化パラメータである。
iii. 一例において、エスケープ画素/サンプル値は、p>>Nとして信号通知されてもよく、この場合、pは、画素/サンプル値である。
1. 一例において、Nは、整数(例えば、2)であってもよく、以下に依存してもよい。
a) LCUのSPS/VPS/PPS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/LCU行/グループにおいて信号通知されるメッセージ
b) 内部ビット深度
c) 入力ビット深度
d) 現在のブロックのブロック寸法
e) 現在のブロックの量子化パラメータ
f) カラーフォーマットの指示(例えば、4:2:0、4:4:4)
g) 分離/二重符号化ツリー構造
h) スライス/タイルグループのタイプおよび/またはピクチャのタイプ
d. デコーダ側において、以下を適用してもよい。
i. 一例において、エスケープ画素/サンプル値は、f(bd,p,Qp)として信号通知されてもよい。
1. 一例において、関数fは、clip(0,(1<<(bd-(Qp-4)/6))-1,(p+(1<<(bd-1)))>>((Qp-4)/6))として定義されてもよい。
ii. 一例において、エスケープ画素/サンプル値は、f(p,Qp)として再構成されてもよく、この場合、pは、復号化されたエスケープ画素/サンプル値である。
1. 一例において、fは、p<((Qp-4)/6)として定義されてもよい。
iii. 一例において、エスケープ画素/サンプル値は、f(bd,p,Qp)として再構成されてもよく、この場合、pは、復号化されたエスケープ画素/サンプル値である。
1. 一例において、関数clipは、clip(0,(1<<bd)-1,p<
<((Qp-4)/6))として定義されてもよい。
iv. 上記の例において、クリップ関数clip(a,i,b)は、(i<a?a:(i>b?b:i))として定義されてもよい。
v. 上記の例において、クリップ関数clip(a,i,b)は、(i<=a?a:(i>=b?b:i))として定義されてもよい。
vi. 上記例において、pは画素/サンプル値であり、bdは内部ビット深度または入力ビット深度であり、Qpは量子化パラメータである。
16. パレット符号化ブロックは、最大確率モード(MPM)のリスト構築処理中、1つのイントラブロック(例えば、MODE_INTRA)として扱われてもよい。
a. 一例において、MPMリストの構築中に近傍(隣接または非隣接)ブロックのイントラモードをフェッチするとき、近傍のブロック(例えば、左および/または上)がパレットモードで符号化されている場合、それをデフォルトモードの従来のイントラ符号化されたブロック(例えば、MODE_INTRA)として扱ってもよい。
i. 一例において、デフォルトモードは、DC/PLANAR/VER/HORモードであってもよい。
ii. 一例において、デフォルトモードは、1つのイントラ予測モードであってもよい。
iii. 一例において、デフォルトモードは、DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにおいて信号通知されてもよい。
17. パレット符号化ブロックは、最大確率モード(MPM)のリスト構築処理中、非イントラブロックとして扱われてもよい(例えば、MODE_PLTに等しい予測モードを有するブロックとして扱われてもよい)。
a. 一例において、MPMリストの構築中に近傍のブロックのイントラモードをフェッチするとき、1つの近傍のブロック(例えば、左および/または上)がパレットモードで符号化されている場合、それは、インターモードで符号化されたものと同様にまたは類似した方法で取り扱われてもよい。
b. 一例において、MPMリストの構築中に近傍のブロックのイントラモードをフェッチするとき、1つの近傍のブロック(例えば、左および/または上)がパレットモードで符号化されている場合、それをIBCモードで符号化されたものと同様にまたは類似した方法で取り扱われてもよい。
18. DMモードで符号化されたクロマブロックに対応するパレットモードで符号化された輝度ブロックは、デフォルトのイントラ予測モードを有すると解釈されてもよい。
a. 一例において、パレットモードで符号化された対応する輝度ブロックは、クロマブロックがDMモードで符号化される場合、イントラブロック(例えば、MODE_INTRA)またはパレットブロック(例えば、MODE_PLT)として扱われてもよい。
b. 一例において、デフォルト予測モードは、DC/PLANAR/VER/HORモードであってもよい。
c. 一例において、デフォルト予測モードは、1つのイントラ予測モードであってもよい。
d. 一例において、デフォルト予測モードは、DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにおいて信号通知されてもよい。
19. パレット符号化ブロックは、履歴に基づく動きベクトル予測(HMVP)、マージ(MERGE)および/または高度動きベクトル予測(AMVP)モードのリスト構築中、利用不可能なブロックとして扱われてもよい。
a. 一例において、利用不可能なブロックは、動き情報を有さないブロックを意味してもよく、またはその動き情報を他のブロックの予測として使用することができない。
b. 一例において、パレットモードで符号化されたブロックは、HMVP、MERGEおよび/またはAMVPモードにおけるリスト構築の過程において、イントラブロック(例えば、MODE_INTRA)またはパレットブロック(例えば、MODE_PLT)として扱われてもよい。
i. 代替的に、一例において、HMVP、MERGEおよび/またはAMVPリストの構築中に近傍のブロックの動き情報をフェッチする場合、パレットモードで符号化された近傍のブロックを無効な参照インデックスを有するブロックとして扱われてもよい。
ii. 代替的に、一例において、HMVP、MERGEおよび/またはAMVPリストの構築中に近傍のブロックの動き情報をフェッチする場合、パレットモードで符号化された近傍のブロックを、参照インデックスが0であるインターブロックとして扱われてもよい。
iii. 代替的に、一例において、HMVP、MERGEおよび/またはAMVPモードのリスト構築中に、近傍のブロックの動き情報をフェッチする場合、パレットモードで符号化された近傍のブロックを、動きベクトルがゼロのインターブロックとして扱ってもよい。
20. パレットモードで符号化されたブロックをどのように処理するか(例えば、上述した方法を適用するか否か、および/またはどのように適用するか)は、以下に基づいてもよい。
a. 映像コンテンツ(例えば、スクリーンコンテンツまたは自然コンテンツ)
b. 一例において、デフォルトモードは、DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにおいて信号通知されてもよい。
c. CU/PU/TU/ブロック/映像符号化ユニットの位置
d. 現在のブロックおよび/またはその近傍のブロックのブロック寸法
e. 現在のブロックおよび/またはその近傍のブロックのブロック形状
f. カラーフォーマットの指示(例えば、4:2:0、4:4:4、RGB、YUV等)
g. 符号化木構造(例えば、デュアルツリーまたはシングルツリー)
h. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
i. 色要素(例えば、輝度要素および/またはクロマ要素にのみ適用されてもよい)。
j. 時間層ID
k. 標準のプロファイル/レベル/層
21. パレット符号化ブロックのためのコンテキスト符号化ビンは、ある範囲内に含まれるように制限されてもよい。
a. 一例において、カウンタは、コンテキスト符号化されたビンの数を記録するように、1つのブロックに割り当てられる。カウンタが閾値を超える場合、コンテキスト符号化を使用する代わりにバイパス符号化が適用される。
i. 代替的に、NumColorCompカウンタを割り当てて、各色要素に対してコンテキスト符号化されたビンの数を記録してもよい。NumColorCompは、1つのブロックに符号化される色要素の数である(例えば、YUVフォーマットの1つのCUの場合、NumColorCompは3に設定される)。
ii. 代替的に、カウンタをゼロに初期化してもよく、コンテキストで1つのビンを符号化した後、カウンタを1だけ増加させる。
b. 代替的に、カウンタは、ゼロよりも大きいある値(例えば、W*H*K)で初期化されてもよく、コンテキストで1つのビンを符号化した後、カウンタは、1だけ減算される。カウンタがT以下である場合、コンテキスト符号化を使用する代わりにバイパス符号化が適用される。
i. 一例において、Tは、0または1に設定される。
ii. 一例において、Tは、復号化された情報または符号化パスの数等に従って設定される。
c. 一例において、パレット符号化ブロックは、コンテキスト符号化ビンの観点から、TS符号化ブロックまたは非TS符号化ブロックと比較して、同じまたは異なる閾値を有してもよい。
i. 一例において、パレット符号化ブロックのためのコンテキスト符号化ビンの数は、(W*H*T)に設定されてもよく、この場合、WおよびHは、それぞれ1つのブロックの幅および高さであり、Tは整数である。一例において、Tは、TS符号化ブロックに使用されるものと同じであるように設定され、例えば、1.75または2である。
ii. 一例において、パレット符号化ブロックのコンテキスト符号化ビンの数は、(W*H*NumColorComp*T)に設定されてもよく、この場合、WおよびHは、それぞれ1つのブロックの幅および高さであり、NumColorCompは、1つのブロックでコード化される色要素の数(例えば、YUVフォーマットの1つのCUであり、NumColorCompは3に設定される)であり、Tは、整数である。一例において、Tは、TS符号化ブロックに使用されるものと同じであるように設定され、例えば、1.75または2である。
d. 一例において、パレット符号化ブロックの閾値は、コンテキスト符号化ビンの観点から、TS符号化ブロックまたは非TS符号化ブロックよりも小さくてもよい。
e. 一例において、パレット符号化ブロックの閾値は、コンテキスト符号化ビン(context coded bin)の観点から、TS符号化ブロックまたは非TS符号化ブロックよりも大きくてもよい。
22. パレット符号化ブロックは、CIIPモードにおいて近傍のイントラブロックを統計する過程において、非イントラブロックとして扱われる(例えば、MODE_PLTに等しい予測モードを有するブロックとして扱われる)。
a. 一例において、CIIPモードにおいて近傍のイントラブロックを数える間に近傍のブロックのイントラモードをフェッチするとき、1つの近傍のブロック(例えば、左および/または上)がパレットモードで符号化されている場合、それはインターモードで符号化されたものと同様にまたは類似した方法で取り扱われてもよい。
b. 一例において、CIIPモードにおいて近傍のイントラブロックを数える間に近傍のブロックのイントラモードをフェッチするとき、1つの近傍のブロック(例えば、左および/または上)がパレットモードで符号化されている場合、それはIBCモードで符号化されたものと同様にまたは類似した方法で取り扱われてもよい。
c. 代替的に、パレット符号化ブロックは、CIIPモードにおいて近傍のイントラブロックを統計する過程において、イントラブロックとして扱われてもよい。
23. パレット符号化サンプルのための前置および/または後置フィルタリング処理をスキップすることが提案される。
a. 一例において、パレット符号化サンプルはデブロックされなくてもよい。
b. 一例において、パレット符号化サンプルは、SAO処理においてオフセットを補償されなくてもよい。
c. 一例において、パレット符号化サンプルは、ALF処理においてフィルタリングされなくてもよい。
i. 一例において、ALF処理における分類は、パレット符号化サンプルをスキップしてもよい。
d. 一例において、LMCSは、パレット符号化サンプルのために無効化されてもよい。
24. パレットモードにおいて、より多くの走査順序を追加することが提案される。
a. 一例において、次のように定義される逆水平横断走査順序を使用してもよい。
i. 一例において、奇数行の走査方向は、左から右であってもよい。
ii. 一例において、偶数行の走査方向は、右から左であってもよい。
iii. 一例において、4×4ブロックの走査順序は、
図22に示すとおりであってもよい。
b. 一例において、以下のように定義される逆垂直横断走査順序を使用してもよい。
i. 一例において、奇数行の走査方向は、上から下へ延びてもよい。
ii. 一例において、偶数行の走査方向は、下から上であってもよい。
iii. 一例において、4×4ブロックの走査順序は、
図23に示すとおりであってもよい。
25. 許容される走査順序の組み合わせは、ブロックの形状に依存してもよい。
a. 一例において、1つのブロックの幅と高さとの間の比が閾値よりも大きい場合、水平トラバース走査順序および逆水平横断走査順序のみを適用してもよい。
i. 一例において、閾値は1に等しい。
ii. 一例において、閾値は4に等しい。
b. 一例において、1つのブロックの高さと幅との間の比が閾値よりも大きい場合、垂直横断および逆垂直横断走査順序のみを適用してもよい。
i. 一例において、閾値は1に等しい。
ii. 一例において、閾値は4に等しい。
26. QR-BDPCM処理において、1つのイントラ予測方向および/または1つの走査方向のみを許可することが提案される。
a. 一例において、高さより大きい幅を有するブロックでは、垂直方向のみが許容される。
b. 一例において、幅が高さより小さいブロックでは、水平方向のみが許容される。
c. 一例において、QR-BDPCMの方向の指示は、非正方形ブロックについて推測してもよい。
i. 一例において、さらに、QR-BDPCMの方向の指示は、幅が高さよりも大きいブロックの場合、垂直方向に推測されてもよい。
ii. 一例において、さらに、QR-BDPCMの方向の指示は、幅が高さより小さいブロックの場合、水平方向に推測されてもよい。
27. ブレット24、25、および26における方法は、w*Th≧hまたはh*Th≧wを有するブロックにのみ適用されてもよく、この場合、wおよびhは、それぞれブロックの幅および高さであり、Thは閾値である。
a. 一例において、Thは整数(例えば、4または8)であり、以下に基づいてもよい。
i. 映像コンテンツ(例えば、スクリーンコンテンツまたは自然コンテンツ)
ii. 一例において、デフォルトモードは、DPS/SPS/VPS/PPS/APS/ピクチャヘッダ/スライスヘッダ/タイルグループヘッダ/最大符号化ユニット(LCU)/符号化ユニット(CU)/LCU行/LCUグループ/TU/PUブロック/映像符号化ユニットにおいて信号通知されてもよい。
iii. CU/PU/TU/ブロック/映像符号化ユニットの位置
iv. 現在のブロックおよび/またはその近傍のブロックのブロック寸法
v. 現在のブロックおよび/またはその近傍のブロックのブロック形状
vi. カラーフォーマットの指示(例えば、4:2:0、4:4:4、RGB、YUV等)
vii. 符号化木構造(例えば、デュアルツリーまたはシングルツリー)
viii. スライス/タイルグループのタイプおよび/またはピクチャのタイプ
ix. 色要素(例えば、輝度要素および/またはクロマ要素にのみ適用されてもよい)。
x. 時間層ID
xi. 標準のプロファイル/レベル/層
【0216】
5. 追加の実施形態
【0217】
5.1 実施形態1
【0218】
この章は、映像のビットストリーム表現がベースラインビットストリーム構文と比較して変更され得る例示的な実施形態を示す。この変更は、太字のイタリック体のテキスト入力項目を使用して強調表示されている。
【0219】
【0220】
sps_plt_enabled_flag=1は、CVSにおけるピクチャの復号化にパレットモードを使用してもよいことを規定する。sps_plt_enabled_flag=0は、パレットモードがCVSにおいて使用されないことを規定する。sps_plt_enabled_flagが存在しない場合、0に等しいと推測される。
【0221】
【0222】
1に等しいpred_mode_scc_flagは、現在の符号化ユニットがスクリーンコンテンツ符号化モードで符号化されることを規定する。pred_mode_scc_flagが0に等しいことは、現在の符号化ユニットがスクリーンコンテンツ符号化モードで符号化されていないことを規定する。
pred_mode_scc_flagが存在しない場合、それは0に等しいと推測される。
pred_mode_plt_flag=1は、現在の符号化ユニットがパレットモードで符号化されていることを規定する。pred_mode_plt_flag=0は、現在の符号化ユニットがパレットモードで符号化されていないことを規定する。
pred_mode_plt_flagが存在しない場合、Iタイルグループをデコードするとき、sps_plt_enabled_flagの値に等しいと推測され、PまたはBタイルグループを復号化するとき、それぞれ0であると推測される。
pred_mode_scc_flagが1と等しく、sps_ibc_enabled_flagが0と等しいとき、pred_mode_plt_flagは1であると推測される。
pred_mode_ibc_flag=1のとき、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対してMODE_PLTと等しくなるように設定される。
【0223】
【0224】
【0225】
pred_mode_plt_flag=1は、現在の符号化ユニットがパレットモードで符号化されていることを規定する。pred_mode_plt_flag=0は、現在の符号化ユニットがパレットモードで符号化されていないことを規定する。
pred_mode_plt_flagが存在しない場合、Iタイルグループをデコードするとき、sps_plt_enabled_flagの値に等しいと推測され、PまたはBタイルグループを復号化するとき、それぞれ0であると推測される。
pred_mode_ibc_flag=1のとき、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対してMODE_PLTと等しくなるように設定される。
【0226】
【0227】
pred_mode_plt_flag=1は、現在の符号化ユニットがパレットモードで符号化されていることを規定する。pred_mode_plt_flag=0は、現在の符号化ユニットがパレットモードで符号化されていないことを規定する。
pred_mode_plt_flagが存在しない場合、Iタイルグループをデコードするとき、sps_plt_enabled_flagの値に等しいと推測され、PまたはBタイルグループを復号化するとき、それぞれ0であると推測される。
pred_mode_ibc_flag=1のとき、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1および y=y0..y0+cbHeight-1に対してMODE_PLTと等しくなるように設定される。
【0228】
【0229】
【0230】
【0231】
【0232】
【0233】
plt_mode_flag=1は、現在の符号化ユニットがパレットモードで符号化されることを規定する。intra_mode_plt_flag=0は、現在の符号化ユニットがパレットモードで符号化されることを規定する。
plt_mode_flagが存在しないとき、偽に等しいと推測される。
pred_mode_scc_flag=1のとき、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1および y=y0..y0+cbHeight-1に対してMODE_PLTと等しくなるように設定される。
【0234】
pred_mode_flagが0に等しい場合、現在の符号化ユニットがインター予測モードまたはIBC予測モードで符号化されることを規定する。pred_mode_flagが1に等しい場合、現在の符号化ユニットがイントラ予測モードまたはPLTモードで符号化されることを規定する。変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1 and y=y0..y0+cbHeight-1に対しては以下のように導出される。
- pred_mode_flagが0に等しい場合、CuPredMode[x][y]は、MODE_INTERに等しく設定される。
- あるいは、(pred_mode_flagが1に等しい場合)、CuPredMode[x][y]をMODE_INTRAに等しく設定する。
pred_mode_flagが存在しない場合、Iタイルグループをデコードするとき、1に等しいと推測され、PまたはBタイルグループを復号化するとき、それぞれ0に等しいと推測される。
【0235】
【0236】
【0237】
5.2 実施形態♯2
【0238】
本実施形態では、modeTypeについて説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
【0239】
変数modeTypeは、符号化ツリーノード内の符号化ユニットに対して、イントラ、IBC、パレット、インターの各符号化モードを使用できるか(MODE_TYPE_ALL)、イントラ、パレット、IBCの各符号化モードのみを使用できるか(MODE_TYPE_INTRA)、インターの各符号化モードのみを使用できるか(MODE_TYPE_INTER)を規定する。
【0240】
5.3 実施形態#3
【0241】
本実施形態では、符号化ユニットの構文について説明する。本実施形態において、pred_mode_plt_flagは、pred_mode_ibc_flagの後に信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0242】
【0243】
5.4 実施形態#4
【0244】
本実施形態では、符号化ユニットの構文について説明する。本実施形態では、pred_mode_ibc_flagの後にpred_mode_plt_flagが信号通知され、現在の予測モードがMODE_INTRAの場合にのみpred_mode_plt_flagが信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0245】
【0246】
5.5 実施形態#5
【0247】
本実施形態では、符号化ユニットの構文について説明する。本実施形態では、pred_mode_ibc_flagは、pred_mode_plt_flagの後に信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0248】
【0249】
5.6 実施形態#6
【0250】
本実施形態では、符号化ユニットの構文について説明する。本実施形態では、pred_mode_plt_flagの後にpred_mode_ibc_flagが信号通知され、現在の予測モードがMODE_INTRAの場合にのみpred_mode_plt_flagが信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0251】
【0252】
5.7 実施形態#7
【0253】
本実施形態では、符号化ユニットの構文について説明する。本実施形態では、予測モードがMODE_INTRAであるとき、pred_mode_plt_flagおよびpred_mode_ibc_flagが信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0254】
【0255】
5.8 実施形態#8
【0256】
本実施形態では、符号化ユニットの構文について説明する。本実施形態において、pred_mode_plt_flagおよびpred_mode_ibc_flagは、予測モードがMODE_INTRAでない場合に信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0257】
【0258】
5.9 実施形態#9
【0259】
本実施形態では、符号化ユニットの構文について説明する。本実施形態において、予測モードがMODE_INTERであるとき、pred_mode_plt_flagおよびpred_mode_ibc_flagが信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0260】
【0261】
5.10 実施形態#10
【0262】
本実施形態では、pred_mode_plt_flagの意味を説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
pred_mode_plt_flagは、現在の符号化ユニットにおけるパレットモードの使用を規定する。pred_mode_plt_flag==1は、現在の符号化ユニットにおいてパレットモードが適用されていることを示す。pred_mode_plt_flag==0は、現在の符号化ユニットに対してパレットモードが適用されないことを示す。pred_mode_plt_flagが存在しない場合、pred_mode_plt_flagは0に等しいと推測される。
【0263】
5.11 実施形態#11
【0264】
本実施形態では、pred_mode_plt_flagの意味を説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
pred_mode_plt_flagは、現在の符号化ユニットにおけるパレットモードの使用を規定する。pred_mode_plt_flag==1は、現在の符号化ユニットにおいてパレットモードが適用されていることを示す。pred_mode_plt_flag==0は、現在の符号化ユニットに対してパレットモードが適用されないことを示す。pred_mode_plt_flagが存在しない場合、pred_mode_plt_flagは0に等しいと推測される。
pred_mode_plt_flag=1のとき、変数CuPredMode[x][y]は、x=x0..x0+cbWidth-1およびy=y0..y0+cbHeight-1に対してMODE_PLTと等しくなるように設定される。
【0265】
5.12 実施形態#12
【0266】
本実施形態では、境界強度の導出について説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
【0267】
8.8.3.5 境界フィルタリング強度の導出処理
この処理への入力は以下の通りである。
1つのピクチャサンプルアレイrecPicture、
現在のピクチャの左上のサンプルに対する現在の符号化ブロックの左上のサンプルを規定する位置(xCb,yCb)、
現在の符号化ブロックの幅を規定する変数nCbW、
現在の符号化ブロックの高さを規定する変数nCbH、
垂直(EDGE_VER)エッジまたは水平(EDGE_HOR)エッジのいずれをフィルタリングするかを規定する変数edgeType、
現在の符号化ブロックの色要素を規定する変数cIdx、
2次元(nCbW)x(nCbH)配列のedgeFlags。
この処理の出力は、境界フィルタリング強度を規定する2次元(nCbW)×(nCbH)アレイbSである。
...
変数bS[xDi][yDj]は、次のように導出される。
cIdxが0に等しく、サンプルp0およびq0の両方が、intra_bdpcm_flagが1に等しい符号化ブロックに含まれている場合、bS[xDi][yDj]は、0に等しく設定される。
あるいは、サンプルp0またはq0が、イントラ予測モードで符号化された符号化ユニットの符号化ブロックにある場合には、bS[xDi][yDj]は、2に等しく設定される。
あるいは、ブロックエッジも変換ブロックエッジであり、サンプルp0またはq0が、ciip_flagが1に等しい符号化ブロックにある場合、bS[xDi][yDj]は、2に等しく設定される。
あるいは、ブロックエッジが変換ブロックエッジでもあり、サンプルp0またはq0が、1つ以上の非ゼロ変換係数レベルを含む変換イントラブロックにある場合、bS[xDi][yDj]は、1に等しく設定される。
あるいは、ブロックエッジも変換ブロックエッジであり、サンプルp0およびq0が、pred_mode_plt_flagが1に等しい2つの符号化ブロックに含まれている場合、bS[xDi][yDj]は0に等しく設定される。
あるいは、サンプルp0を含む符号化サブブロックの予測モードが、サンプルq0を含む符号化サブブロックの予測モードと異なる場合、bS[xDi][yDj]は、1に等しく設定される。
あるいは、cIdxが0であり、且つ、以下の条件の1つ以上が真である場合、bS[xDi][yDj]は、1に等しく設定される。
サンプルp0を含む符号化サブブロックおよびサンプルq0を含む符号化サブブロックは、いずれもIBC予測モードで符号化され、2つの符号化サブブロックの予測に用いられる動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
サンプルp0を含む符号化サブブロックの予測のために、サンプルq0を含む符号化サブブロックの予測とは異なる参照ピクチャまたは異なる数の動きベクトルが使用される。
注1 - 2つの符号化サブロックに使用される参照ピクチャが同じであるかまたは異なるかは、予測を形成するのに参照ピクチャリスト0へのインデックスを使用するか、または参照ピクチャリスト1へのインデックスを使用して形成するかに関わらず、且つ参照ピクチャリスト内のインデックス位置が異なるかどうかに関わらず、どのピクチャが参照されるかによってのみに基づいて判定される。
注2 - (xSb,ySb)を含む左上のサンプルを有する符号化サブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
1つの動きベクトルは、サンプルp0を含む符号化サブブロックを予測するために使用され、1つの動きベクトルは、サンプルq0を含む符号化サブブロックを予測するために使用され、使用される動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
2つの動きベクトルおよび2つの異なる参照ピクチャを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ2つの参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの符号化サブブロックの予測に使用される2つの動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
同じ参照ピクチャの2つの動きベクトルを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、以下の条件の両方が成り立つ。
2つの符号化サブブロックの予測に使用されるリスト0の動きベクトルの水平または垂直要素の間の絶対差は、1/4輝度サンプルにおいて4以上である、または2つの符号化サブブロックの予測に使用されるリスト1の動きベクトルの水平または垂直要素の間の絶対差は、4分の1輝度サンプル単位で4以上である。
サンプルp0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上であるか、またはサンプルp0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上である。
あるいは、変数bS[xDi][yDj]を0に設定する。
【0268】
5.13a 実施形態#13a
【0269】
本実施形態では、境界強度の導出について説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
【0270】
8.8.3.5 境界フィルタリング強度の導出処理
この処理への入力は以下の通りである。
1つのピクチャサンプルアレイrecPicture、
現在のピクチャの左上のサンプルに対する現在の符号化ブロックの左上のサンプルを規定する位置(xCb,yCb)現在の符号化ブロックの幅を規定する変数nCbW、
現在の符号化ブロックの高さを規定する変数nCbH、
垂直(EDGE_VER)エッジまたは水平(EDGE_HOR)エッジのいずれをフィルタリングするかを規定する変数edgeType、
- 現在の符号化ブロックの色要素を規定する変数cIdx、
2次元(nCbW)×(nCbH)配列のedgeFlags。
この処理の出力は、境界フィルタリング強度を規定する2次元(nCbW)×(nCbH)アレイbSである。
...
変数bS[xDi][yDj]は、次のように導出される。
cIdxが0に等しく、サンプルp0およびq0の両方が、intra_bdpcm_flagが1に等しい符号化ブロックに含まれている場合、bS[xDi][yDj]は、0に等しく設定される。
あるいは、サンプルp0またはq0が、イントラ予測モードで符号化された符号化ユニットの符号化ブロックにある場合には、bS[xDi][yDj]は、2に等しく設定される。
あるいは、ブロックエッジも変換ブロックエッジであり、サンプルp0またはq0が、ciip_flagが1に等しい符号化ブロックにある場合、bS[xDi][yDj]は、2に等しく設定される。
あるいは、ブロックエッジが変換ブロックエッジでもあり、サンプルp0またはq0が、1つ以上の非ゼロ変換係数レベルを含む変換イントラブロックにある場合、bS[xDi][yDj]は、1に等しく設定される。
あるいは、ブロックエッジも変換ブロックエッジであり、サンプルp0またはq0が、pred_mode_plt_flagが1に等しい符号化ブロックに含まれている場合には、bS[xDi][yDj]は、0に等しく設定される。
あるいは、サンプルp0を含む符号化サブブロックの予測モードが、サンプルq0を含む符号化サブブロックの予測モードと異なる場合、bS[xDi][yDj]は、1に等しく設定される。
あるいは、cIdxが0であり、且つ、以下の条件の1つ以上が真である場合、bS[xDi][yDj]は、1に等しく設定される。
サンプルp0を含む符号化サブブロックおよびサンプルq0を含む符号化サブブロックは、いずれもIBC予測モードで符号化され、2つの符号化サブブロックの予測に用いられる動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
サンプルp0を含む符号化サブブロックの予測のために、サンプルq0を含む符号化サブブロックの予測とは異なる参照ピクチャまたは異なる数の動きベクトルが使用される。
注1 - 2つの符号化サブロックに使用される参照ピクチャが同じであるかまたは異なるかは、予測を形成するのに参照ピクチャリスト0へのインデックスを使用するか、または参照ピクチャリスト1へのインデックスを使用して形成するかに関わらず、且つ参照ピクチャリスト内のインデックス位置が異なるかどうかに関わらず、どのピクチャが参照されるかによってのみに基づいて判定される。
注2 - (xSb,ySb)を含む左上のサンプルを有する符号化サブブロックの予測に使用される動きベクトルの数は、PredFlagL0[xSb][ySb]+PredFlagL1[xSb][ySb]に等しい。
1つの動きベクトルは、サンプルp0を含む符号化サブブロックを予測するために使用され、1つの動きベクトルは、サンプルq0を含む符号化サブブロックを予測するために使用され、使用される動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
2つの動きベクトルおよび2つの異なる参照ピクチャを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ2つの参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの符号化サブブロックの予測に使用される2つの動きベクトルの水平または垂直要素の絶対差は、1/4輝度サンプル単位で4以上である。
同じ参照ピクチャの2つの動きベクトルを使用して、サンプルp0を含む符号化サブブロックを予測し、同じ参照ピクチャの2つの動きベクトルを使用して、サンプルq0を含む符号化サブブロックを予測し、以下の条件の両方が成り立つ。
2つの符号化サブブロックの予測に使用されるリスト0の動きベクトルの水平または垂直要素の間の絶対差は、1/4輝度サンプルにおいて4以上である、または2つの符号化サブブロックの予測に使用されるリスト1の動きベクトルの水平または垂直要素の間の絶対差は、4分の1輝度サンプル単位で4以上である。
サンプルp0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上であるか、またはサンプルp0を含む符号化サブブロックの予測に使用されるリスト1動きベクトルの水平または垂直要素と、サンプルq0を含む符号化サブブロックの予測に使用されるリスト0動きベクトルとの間の絶対差は、1/4輝度サンプル単位で4以上である。
あるいは、変数bS[xDi][yDj]を0に設定する。
【0271】
5.13b 実施形態#13b
【0272】
本実施形態では、エスケープサンプルの符号化および再構成について説明する。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0273】
【0274】
パレットモードの復号化処理
この処理への入力は以下の通りである。
現在のピクチャの左上の輝度サンプルに対する現在のブロックの左上のサンプルを規定する位置(xCb,yCb)、
変数startCompは、パレットテーブルの最初の色要素を規定し、
現在のブロックの色要素を規定する変数cIdx、
現在のブロックの幅および高さをそれぞれ規定する2つの変数nCbWおよびnCbH。
この処理の出力は、配列recSamples[x][y]であり、x=0..nCbW-1,y=0..nCbH-1は、ブロックの再構成サンプル値を規定する。
cIdxの値に基づいて、変数nSubWidthおよびnSubHeightは、以下のように導出される。
cIdxが0に等しい場合、nSubWidthは1に設定され、nSubHeightは1に設定される。
あるいは、nSubWidthをSubWidthCに設定し、nSubHeightをSubHeightCに設定する。
位置(xCb,yCb)にある再構成サンプル配列recSamplesの(nCbW×nCbH)ブロックは、x=0..nCTbW-1およびy=0..nCbH-1であるrecSamples[x][y]で表され、0~nCbW-1の範囲の各xと0~nCbH-1の範囲の各yに対するrecSamples[x][y]の値は、以下のように導出される。
変数xLおよびyLは、以下のように導出される。
xL=palette_transpose_flag ? x*nSubHeight:x*nSubWidth(8-69)
yL=palette_transpose_flag ? y*nSubWidth:y*nSubHeight(8-70)
変数bIsEscapeSampleは、以下のように導出される。
PaletteIndexMap[xCb+xL][yCb+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1に設定される。
あるいは、bIsEscapeSampleを0に設定する。
bIsEscapeSampleが0に等しい場合、以下が適用される。
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (8-71)
あるいは、cu_transquant_bypass_flagが1に等しい場合には、以下が適用される。
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL] (8-72)
あるいは、(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい場合)、以下の順序付けられたステップが適用される。
第8.7.1項で規定される量子化パラメータの導出処理は、現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを規定する位置(xCb,yCb)を使用して呼び出される。
量子化パラメータqPは、以下のように導出される。
cIdxが0に等しい場合
qP=Max(0,Qp’Y) (8-73)
あるいは、cIdxが1に等しい場合、
qP=Max(0,Qp’Cb) (8-74)
あるいは、(cIdxが2に等しい場合)、
qP=Max(0,Qp’Cr) (8-75)
変数bitDepthは、以下のように導出される。
bitDepth=(cIdx==0) ?BitDepthY :BitDepthC (8-76)
[[The list levelScale[]は、k=0..5.]]でlevelScale[k]={40,45,51,57,64,72}、として規定される。
以下が適用される
[[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6(8-77)
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (8-78)]
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]) (8-78)
以下の条件の1つが真であるとき、
cIdxが0に等しく、numCompsが1に等しい
cIdxが3に等しい
変数PredictorPaletteSize[startComp]および配列PredictorPaletteEntriesは、以下のように導出または修正される。
for(i=0;i)CurrentPaletteSize[startComp];i++)
for(cIdx=startComp;cIdx)(startComp+numComps);cIdx++)
newPredictorPaletteEntries[cIdx][i]=CurrentPaletteEntries[cIdx][i]newPredictorPaletteSize=CurrentPaletteSize[startComp]for(i=0;i)PredictorPaletteSize && newPredictorPaletteSize)PaletteMaxPredictorSize;i++)
if(!PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx)(startComp+numComps);cIdx++) (8-79)
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[startComp]=newPredictorPaletteSizePredictorPaletteSize[startComp]の値が0からPaletteMaxPredictorSizeまでの範囲内にあることが、ビットストリーム適合性の要件である。
【0275】
5.14 実施形態#14
【0276】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0277】
8.4.5.3 パレットモードの復号化処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在のブロックの左上のサンプルを規定する位置(xCb,yCb)、
- 変数startCompは、パレットテーブルの最初の色要素を規定し、
- 現在のブロックの色要素を規定する変数cIdx、
- 現在のブロックの幅および高さをそれぞれ規定する2つの変数nCbWおよびnCbH。
この処理の出力は、配列recSamples[x][y]であり、x=0..nCbW-1,y=0..nCbH-1は、ブロックの再構成サンプル値を規定する。
cIdxの値に基づいて、変数nSubWidthおよびnSubHeightは、以下のように導出される。
- cIdxが0に等しい場合、nSubWidthは1に設定され、nSubHeightは1に設定される。
- あるいは、nSubWidthをSubWidthCに設定し、nSubHeightをSubHeightCに設定する。
位置(xCb,yCb)にある再構成サンプル配列recSamplesの(nCbWxnCbH)ブロックは、x=0..nCTbW-1およびy=0..nCbH-1であるrecSamples[x][y]で表され、0~nCbW-1の範囲の各xと0~nCbH-1の範囲の各yに対するrecSamples[x][y]の値は、以下のように導出される。
- 変数xLおよびyLは、以下のように導出される。
xL=palette_transpose_flag ? x*nSubHeight:x*nSubWidth (8-234)
yL=palette_transpose_flag ? y*nSubWidth:y*nSubHeight (8-235)- 変数bIsEscapeSampleは、以下のように導出される。
- PaletteIndexMap[xCb+xL][yCb+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1 に設定される。
- あるいは、bIsEscapeSampleを0に設定する。
- bIsEscapeSampleが0に等しい場合、以下が適用される。
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (8-236)
- あるいは、cu_transquant_bypass_flagが1に等しい場合、以下が適用される。
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL](8-237)
- あるいは、(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい場合)、以下の順序付けられたステップが適用される。
1. 第8.7.1項で規定される量子化パラメータの導出処理は、現在のピクチャの左上サンプルに対する現在のブロックの左上サンプルを規定する位置(xCb,yCb)を使用して呼び出される。
[Ed.(BB):QPは、イントラCU復号化処理の最初に既に導出されているので、この従属項内でそれらを再び導出する必要はない。これはHEVC v4 SCCにあるように思われるが、このような冗長性は排除できる。ご確認のこと。]
2. 量子化パラメータqPは、以下のように導出される。
- cIdxが0に等しい場合
qP=Max(QpPrimeTsMin,Qp’Y) (8-238)
- あるいは、cIdxが1に等しい場合、
qP=Max(QpPrimeTsMin,Qp’Cb) (8-239)
- あるいは、(cIdxが2に等しい場合)、
qP=Max(QpPrimeTsMin,Qp’Cr) (8-240)
ここで、min_qp_prime_ts_minus4は、変換スキップモードにおける最小許容量子化パラメータを以下のように規定する。
QpPrimeTsMin=4+min_qp_prime_ts_minus4
3. 変数bitDepthは、以下のように導出される。
bitDepth=(cIdx==0)?BitDepthY:BitDepthC (8-241)
4. list levelScale[]は、k=0..5の時、levelScale[k]={40,45,51,57,64,72}として規定される
[Ed.(BB):非パレットCUの場合、levelScaleはrectNonTsFlagに依存する。ここでも適用されますか?]
5. 以下が適用される
tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-242)
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal)(8-243)
以下の条件の1つが真であるとき、
- cIdx is equal to 0 and numComps is equal to 1;- cIdxが3に等しい
変数PredictorPaletteSize[startComp]および配列PredictorPaletteEntriesは、以下のように導出または修正される。
for(i=0;i)CurrentPaletteSize[startComp];i++)
for(cIdx=startComp;cIdx)(startComp+numComps);cIdx++)
newPredictorPaletteEntries[cIdx][i]=CurrentPaletteEntries[cIdx][i]newPredictorPaletteSize=CurrentPaletteSize[startComp]for(i=0;i)PredictorPaletteSize && newPredictorPaletteSize)PaletteMaxPredictorSize;i++)
if(!PalettePredictorEntryReuseFlags[i]){
for(cIdx=startComp;cIdx)(startComp+numComps);cIdx++)(8-244)
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[startComp]=newPredictorPaletteSizePredictorPaletteSize[startComp]の値が0からPaletteMaxPredictorSizeまでの範囲内にあることが、ビットストリーム適合性の要件である。
【0278】
5.15 実施形態#15
【0279】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“
[[]]”の印が付けられる。
【0280】
8.4.2 輝度イントラ予測モードのための導出処理
...
- あるいは、(skip_intra_flag[xPb][yPb]およびDimFlag[xPb][yPb]はいずれも0に等しい場合)、IntraPredModeY[xPb][yPb]は、以下の順序ステップによって導出される。
1. 近傍位置(xNbA、yNbA)および(xNbB、yNbB)は、それぞれ、(xPb-1,yPb) および(xPb,yPb-1)に等しく設定される。
2. XをAまたはBのいずれかに置き換える場合、変数candIntraPredModeXは、以下のように導出される。
-6.4.1項で規定されるz走査順序のブロックの可用性導出処理は、入力として位置(xCurr,yCurr)を(xPb,yPb)に等しく、近傍位置(xNbY,yNbY)を(xNbX,yNbX)に等しく設定して呼び出され、その出力はavailableXに割り当てられる。
-候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
-availableXがFALSEに等しい場合、candIntraPredModeXはINTRA_DCに等しく設定される。
[[-あるいは、CuPredMode[xNbX][yNbX]がMODE_INTRAまたはpcm_flag[xNbX][yNbX]が1に等しい、またはcandIntraPredModeXがINTRA_DC,]に等しく設定される]
-あるいは、CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、pcm_flag[xNbX][yNbX]が1に等しいか、またはpalette_mode_flagが1に等しい場合、candIntraPredModeXはINTRA_DCと等しく設定される。
-あるいは、XがBに等しく、yPb_1が((yPb>CtbLog2SizeY))CtbLog2SizeY)未満である場合、candIntraPredModeBはINTRA_DCに等しく設定される。
-あるいは、IntraPredModeY[xNbX][yNbX]が34より大きい場合、candIntraPredModeXはINTRA_DCに等しく設定される。
...
【0281】
5.16 実施形態#16
【0282】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0283】
8.4.2 輝度イントラ予測モードのための導出処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeightこの処理において、輝度イントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
1. XをAまたはBのいずれかに置き換える場合、変数candIntraPredModeXは、以下のように導出される。
- 6.4.X項[Ed.(BB):近傍ブロックの可用性チェック処理tbd]で規定されるブロックの可用性導出処理は、入力として、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)と、(xNbX,yNbX)に等しく設定した近傍位置(xNbY,yNbY)で呼び出され、出力をavailableXに割り当てる。
- 候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
- 以下の条件の1つ以上が真である場合、candIntraPredModeXをINTRA_PLANARに等しく設定する。
- 変数availableXはFALSEに等しい。
- CuPredMode[xNbX][yNbX]は、MODE_INTRAと等しくない。
- pred_mode_plt_flagは1に等しい。
- intra_mip_flag[xNbX][yNbX]は1に等しい。
- XがBに等しく、yCb_1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
- あるいは、candIntraPredModeXをIntraPredModeY[xNbX][yNbX]に等しく設定する。
...
(x=xCb..xCb+cbWidth-1、y=yCb..yCb+cbHeight-1の場合、変数IntraPredModeY[x][y])は、IntraPredModeY[xCb][yCb]と等しく設定される。
【0284】
5.17 実施形態#17
【0285】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0286】
8.4.3 輝度イントラ予測モードのための導出処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
この処理において、輝度イントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
2. XをAまたはBのいずれかに置き換える場合、変数candIntraPredModeXは、以下のように導出される。
- 6.4.X項[Ed.(BB):近傍ブロックの可用性導出処理tbd]で規定されたブロックの可用性導出処理は、入力として、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)と、(xNbX,yNbX)に等しく設定した近傍位置(xNbY,yNbY)で呼び出され、出力をavailableXに割り当てる。
- 候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
- 以下の条件の1つ以上が真である場合、candIntraPredModeXを[[INTRA_PLANAR]]INTRA_DCに等しく設定する。
- 変数availableXはFALSEに等しい。
- CuPredMode[xNbX][yNbX]は、MODE_INTRAと等しくない。
- intra_mip_flag[xNbX][yNbX]は1に等しい。
- XがBに等しく、yCb_1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
- あるいは、candIntraPredModeXをIntraPredModeY[xNbX][yNbX]に等しく設定する。
...
(x=xCb..xCb+cbWidth-1、y=yCb..yCb+cbHeight-1の場合、変数IntraPredModeY[x][y])は、IntraPredModeY[xCb][yCb]と等しく設定される。
【0287】
5.18 実施形態#18
【0288】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“
[[]]”の印が付けられる。
【0289】
8.4.3 輝度イントラ予測モードのための導出処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
この処理において、輝度イントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
3. XをAまたはBのいずれかに置き換える場合、変数candIntraPredModeXは、以下のように導出される。
- 6.4.X項[Ed.(BB):近傍ブロックの可用性導出処理tbd]で規定されるブロックの可用性導出処理は、入力として、(xCb,yCb)に等しく設定された位置(xCurr,yCurr)と、(xNbX,yNbX)に等しく設定した近傍位置(xNbY,yNbY)で呼び出され、出力をavailableXに割り当てる。
- 候補イントラ予測モードcandIntraPredModeXは、以下のように導出される。
- 以下の条件の1つ以上が真である場合、candIntraPredModeXを[[INTRA_PLANAR]]INTRA_DCに等しく設定する。
- 変数availableXはFALSEに等しい。
- CuPredMode[xNbX][yNbX]は、MODE_INTRAと等しくない。
- intra_mip_flag[xNbX][yNbX]は1に等しい。
- pred_mode_plt_flagは1に等しい。
- XがBに等しく、yCb_1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
- あるいは、candIntraPredModeXをIntraPredModeY[xNbX][yNbX]に等しく設定する。
...
(x=xCb..xCb+cbWidth-1、y=yCb..yCb+cbHeight-1の場合、変数IntraPredModeY[x][y])は、IntraPredModeY[xCb][yCb]と等しく設定される。
【0290】
5.19 実施形態#19
【0291】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0292】
【0293】
5.20 実施形態#20
【0294】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0295】
【0296】
5.21 実施形態#21
【0297】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0298】
【0299】
5.22 実施形態#22
【0300】
本実施形態では、符号化ユニットの構文について説明する。本実施形態において、pred_mode_plt_flagは、pred_mode_ibc_flagの後に信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0301】
【0302】
5.23 実施形態#23
【0303】
新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0304】
【0305】
5.24 実施形態#24
【0306】
本実施形態では、符号化ユニットの構文について説明する。本実施形態において、pred_mode_plt_flagは、pred_mode_ibc_flagの後に信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0307】
【0308】
5.25 実施形態#25
【0309】
本実施形態では、符号化ユニットの構文について説明する。本実施形態では、現在の予測モードがMODE_PLTであるとき、パレット構文が信号通知される。新規に追加されたテキストは太字のイタリック体で表され、削除されたテキストには“[[]]”の印が付けられる。
【0310】
【0311】
5.26 実施形態#26
【0312】
本実施形態では、クロマイントラ予測モードの導出処理について説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
【0313】
クロマイントラ予測モードのための導出処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在のクロマ符号化ブロックの左上のサンプルを規定する輝度位置(xCb,yCb)、
- 輝度サンプルにおける現在の符号化ブロックの幅を規定する変数cbWidth、
- 輝度サンプルにおける現在の符号化ブロックの高さを規定する変数cbHeight。
この処理において、クロマイントラ予測モードIntraPredModeC[xCb][yCb]が導出される。
対応する輝度イントラ予測モードlumaIntraPredModeは、以下のように導出される。
- intra_mip_flag[xCb][yCb]が1に等しい場合、lumaIntraPredModeはINTRA_PLANARに等しく設定される。
- あるいは、CuPredMode[0][xCb][yCb]がMODE_IBCまたはMODE_PLTに等しい場合、lumaIntraPredModeはINTRA_DCに等しく設定される。
- あるいは、lumaIntraPredModeは、IntraPredModeY[xCb+cbWidth/2][yCb+cbHeight/2]に等しく設定される。
...
【0314】
5.27 実施形態#27
【0315】
本実施形態では、輝度サンプルのマッピング処理を行うピクチャ再構成処理について説明する。新規に追加されたテキストは、太字のイタリック体で示されている。
【0316】
輝度サンプルのためのマッピング処理を伴うピクチャ再構成。この処理への入力は以下の通りである。
- 現在のピクチャの左上のサンプルに対する現在のブロックの左上のサンプルの位置(xCurr,yCurr)、
- ブロック幅を規定する変数nCurrSw、
- ブロックの高さを規定する変数nCurrSh、
- 現在のブロックの輝度予測サンプルを規定するan(nCurrSw)×(nCurrSh)array predSamples、
- 現在のブロックの輝度残差サンプルを規定するan(nCurrSw)×(nCurrSh)array resSamples。
この処理の出力は、再構成された輝度ピクチャサンプルアレイrecSamplesである。
マッピングされた予測輝度サンプルpredMapSamplesの(nCurrSw)x(nCurrSh)アレイは、以下のように導出される。
- 以下の条件の1つが真である場合、predMapSamples[i][j]は、i=0..nCurrSw_1,j=0..nCurrSh_1の場合、predSamples[i][j]に等しく設定される。
- CuPredMode[0][xCurr][yCurr]は、MODE_INTRAに等しい。
- CuPredMode[0][xCurr][yCurr]は、MODE_IBCに等しい。
- CuPredMode[0][xCurr][yCurr]は、MODE_PLTに等しい。
- CuPredMode[0][xCurr][yCurr]はMODE_INTERに等しく、ciip_flag[xCurr][yCurr]は1に等しい。
- あるいは、(CuPredMode[0][xCurr][yCurr]はMODE_INTERに等しく、ciip_flag[xCurr][yCurr]は0に等しい場合)、以下が適用される。
...
【0317】
5.28 実施形態#28
【0318】
本実施形態では、第4章の実施例24に対応する走査順序を説明する。
この処理には、ブロック幅blkWidthおよびブロック高さblkHeightが入力される。
この処理の出力は、アレイhReverScan[sPos][sComp]およびvReverScan[sPos][sComp]である。アレイhReverScanは、水平方向の逆走査順序を表し、アレイvReverScanは、垂直方向の走査順序を表す。配列インデックスsPosは、0から(blkWidth*blkHeight)-1までの範囲の走査位置を規定する。配列インデックスsCompが0である場合、水平要素が規定され、配列インデックスsCompが1である場合、垂直要素が規定される。blkWidthおよびblkHeightの値に基づいて、配列hTravScan fd vTravScanは、以下のように導出される。
i=0
for(y=0;y)blkHeight;y++)
{
if(y%2!=0){
for(x=0;x)blkWidth;x++){
hReverScan[i][0]=x
hReverScan[i][1]=y
i++
}
}
else
{
for(x=blkWidth-1;x>=0;x--){
hReverScan[i][0]=x
hReverScan[i][1]=y
i++
}
}
}
i=0
for(x=0;x)blkWidth;x++)
{
if(x%2!=0)
{
for(y=0;y)blkHeight;y++){
vReverScan[i][0]=x
vReverScan[i][1]=y
i++
}
}
else
{
for(y=blkHeight-1;y>=0;y--){
vReverScan[i][0]=x
vReverScan[i][1]=y
i++
}
}
}
【0319】
図6は、映像処理装置600のブロック図である。装置600は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置600は、スマートフォン、タブレット、コンピュータ、IoT(モノのインターネット)受信機等により実施されてもよい。装置600は、1つ以上の処理装置602と、1つ以上のメモリ604と、映像処理ハードウェア606と、を含んでもよい。処理装置(単数または複数)602は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(単数または複数)604は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア606は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0320】
図8は、映像を処理する方法800のフローチャートである。この方法800は、パレットモードを使用して、予測モードとは別個に符号化されたパレットモードの変換ユニット、符号化ブロック、又は領域を処理することを判定すること(805)と、このパレットモードを使用して、この変換ユニット、符号化ブロック、又は領域に対してさらに処理を行うこと(810)を含む。
【0321】
方法800を参照し、パレットモード符号化のいくつかの例およびその使用について、本明細書の第4章に記載する。
【0322】
方法800を参照すると、映像ブロックは、パレットモード符号化に関するビットストリーム生成規則を使用することによってビット効率を達成し得る映像ビットストリームにおいて符号化されてもよい。
【0323】
この方法は、パレットモードの使用を指示する前に、予測モードを符号化することを含むことができる。
【0324】
この方法は、予測モードに基づいてパレットモードの使用を条件付きで信号通知することを含むことができる。
【0325】
この方法は、予測モードがイントラブロックコピーモードであり、パレットモードの使用指示の信号通知をスキップすることを含むことができる。
【0326】
この方法は、現在の予測モードがイントラブロックコピーモードであることに基づいて、パレットモードの使用指示が偽であると判定されることを含むことができる。
【0327】
この方法は、予測モードがインターモードであり、パレットモードの使用指示の信号通知がスキップされることを含むことができる。
【0328】
この方法は、現在の予測モードがインターモードであることに基づいて、パレットモードの使用指示が偽であると判定されることを含むことができる。
【0329】
この方法は、予測モードがイントラモードであり、パレットモードの使用指示の信号通知がスキップされることを含むことができる。
【0330】
この方法は、現在の予測モードがイントラモードであることに基づいて、パレットモードの使用指示が偽であると判定されることを含むことができる。
【0331】
この方法は、予測モードがイントラモードであり、パレットモードの使用指示の信号通知がスキップされることを含むことができる。
【0332】
この方法は、予測モードがイントラブロックコピーモードであり、パレットモードの使用指示の信号通知を行うことを含むことができる。
【0333】
この方法は、ピクチャ、スライス、またはタイルグループのタイプに基づいて、パレットモードの使用指示を信号通知することを含むことができる。
【0334】
この方法は、パレットモードを予測モードの候補として追加することを含むことができる。
【0335】
この方法は、予測モードが、イントラモード、イントラブロックコピーモード、イントラスライス用パレットモードまたは、インタースライス、Iピクチャ、Pピクチャ、Bピクチャ、またはイントラタイルグループのうちの1つ以上を含むことができる。
【0336】
この方法は、予測モードが、イントラモード、インターモード、イントラブロックコピーモード、またはパレットモードのうちの2つ以上を含むことを含むことができる。
【0337】
この方法は、パレットモードの使用が信号通知によって示されるか、または条件に基づいて導出されることを含むことができる。
【0338】
この方法は、現在のブロックのブロック寸法、現在のブロックの予測モード、現在のブロックの量子化パラメータ(QP)、近傍のブロックのパレットフラグ、近傍のブロックのイントラブロックコピーフラグ、カラーフォーマットの指示、別個のまたはデュアル符号化ツリー構造、またはスライスタイプ、グループタイプまたはピクチャタイプのうちの1つ以上を含むことができる。
【0339】
この方法は、スライスレベルフラグ、タイルグループレベルフラグ、またはピクチャレベルフラグに基づいて、パレットモードの使用を信号通知または導出することを含むことができる。
【0340】
この方法は、スライスレベルフラグ、タイルグループレベルフラグ、またはピクチャレベルフラグに基づいて、イントラブロックコピーモードの使用の指示を信号通知または導出することを含むことができる。
【0341】
前の章で開示した項目6~9を参照し、いくつかの実施形態において、以下の解決策を用いることが好ましい。
【0342】
1つの解決策は、映像のピクチャの現在の映像ブロックと、この映像のビットストリーム表現との間での変換を行うことを含み、イントラブロックコピーモードがこの変換において使用されるか否かに関する情報が、ビットストリーム表現において信号通知される、または、この現在の映像ブロックの符号化条件に基づいて導出され、ここで、このイントラブロックコピーモードは、このピクチャにおける別の映像ブロックからのこの現在の映像ブロックを符号化することを含む、映像処理方法を含んでもよい。様々な実施形態において以下の特徴を実装することができる。
【0343】
- 符号化条件は、現在の映像ブロックのブロック寸法を含む。
【0344】
- 符号化条件は、現在の映像ブロックの予測モードまたは前記現在の映像ブロックの変換に用いられる量子化パラメータを含む。
【0345】
前章で開示した項目13~15を参照し、いくつかの実施形態において、以下の解決策を実装することが好ましい。
【0346】
1つの解決策は、映像のピクチャの現在の映像ブロックを変換する間に非ブロック化フィルタを適用するか否かを判定することと、ここで、現在の映像ブロックは、現在の映像ブロックの全画素より小さい代表的なサンプル値を使用して現在の映像ブロックを表すパレットモード符号化を使用して符号化され、非ブロック化フィルタを適用すると判定した場合に非ブロック化フィルタが適用されるように変換を行うこととについての方法を含んでもよい。
【0347】
別の解決策は、ある映像のピクチャの現在の映像ブロックとこの映像のビットストリーム表現との間での変換中に使用するために、量子化または逆量子化処理を判定することと、ここで、現在の映像ブロックは、現在の映像ブロックの合計画素よりも少ない代表的なサンプル値を使用して現在の映像ブロックを表すパレットモード符号化を使用して符号化され、この量子化または逆量子化処理の判定に基づいて、この変換を行うことと、を含む映像処理方法を含んでもよい。追加の特徴は、以下を含んでもよい。
【0348】
- 現在の映像ブロックに対して判定された量子化または逆量子化処理は、パレット符号化モードとは異なるように符号化された別の映像ブロックに適用される別の量子化または別の逆量子化処理とは異なる。
【0349】
- この変換は、現在の映像ブロックをビットストリーム表現に符号化することを含む。
【0350】
- この変換は、ビットストリーム表現を復号化して映像の現在の映像ブロックを生成することを含む。
【0351】
- この判定は、イントラ符号化された他の映像ブロックの変換に用いられる別の決定処理と同じ決定処理を用いる。
【0352】
開示された技術は、向上した符号化ツリー構造を使用して圧縮効率を向上させるために、映像エンコーダまたはデコーダにおいて実施され得ることが理解される。
【0353】
前の章の項目16~21を参照し、いくつかの解決策は以下の通りである。
【0354】
複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックをイントラ符号化されたブロックであると考えることで、最大確率モードのリスト構築処理を行うことと、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化されることを含む、映像処理方法。
【0355】
上記方法において、リスト構築処理は、近傍のパレット符号化ブロックをデフォルトモードのイントラブロックとして扱う。
【0356】
複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックを非イントラ符号化されたブロックであると考えることで、最大確率モードのリスト構築処理を実行し、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化される、映像処理方法。
【0357】
上記方法において、前記リスト構築処理は、近傍のパレット符号化ブロックのイントラモードをフェッチする場合、近傍のパレット符号化ブロックをインター符号化ブロックとして扱う。
【0358】
複数の映像ブロックを含む映像の現在の映像ブロックとこの映像のビットストリーム表現との間での変換のために、現在の映像ブロックがパレット符号化ブロックであることを判定することと、この判定に基づいて、現在の映像ブロックを利用不可能なブロックであると考えることで、リスト構築処理を行うことと、このリスト構築処理の結果に基づいてこの変換を行うことと、を含み、このパレット符号化ブロックは、パレットまたは表現サンプル値を使用して符号化または復号化される、映像処理方法。
【0359】
上記方法において、前記リスト構築処理は、履歴に基づく動きベクトル予測である。
【0360】
上記方法において、前記リスト構築処理は、MERGEまたは高度動きベクトル予測モードである。
【0361】
上記方法において、前記判定することは、前記映像のコンテンツに基づいて判定することをさらに含む。
【0362】
上記方法において、前記判定は、ビットストリーム表現におけるフィールドに対応する。
【0363】
現在の映像ブロックと現在の映像ブロックのビットストリーム表現との間での変換中に、この現在の映像ブロックがパレット符号化ブロックであることを判定することと、現在の映像ブロックがパレット符号化ブロックであることに基づいて、この変換に使用されるコンテキスト符号化ビンの範囲を判定することと、このコンテキスト符号化ビンの範囲に基づいてこの変換を行うこととを含む、映像処理方法。
【0364】
上記方法において、現在の映像ブロックのうち、範囲外にあるビンを、バイパス符号化技術を使用して符号化するか、または変換中にバイパス復号化技術を使用して復号化する。
【0365】
前記変換は、前記ビデオを前記ビットストリーム表現に符号化することを含む、上記記載の方法。
【0366】
上記方法において、前記変換は、前記ビットストリーム表現を復号化して前記映像を生成することを含む。
【0367】
図24は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム2400を示すブロック図である。様々な実装形態は、システム2400のモジュールの一部又は全部を含んでもよい。システム2400は、映像コンテンツを受信するための入力ユニット2402を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチモジュール画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット1902は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0368】
システム2400は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化モジュール2404を含んでもよい。符号化モジュール2404は、入力ユニット2402からの映像の平均ビットレートを符号化モジュール2404の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化モジュール2404の出力は、モジュール2406によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット2402において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、モジュール2408によって使用されて、表示インターフェースユニット2410に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダ及びそれに対応する、復号化の結果を逆にする復号化ツール又は動作が、デコーダによって行われることが理解されよう。
【0369】
周辺バスインターフェースユニットまたは表示インターフェースユニットの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理及び/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0370】
図25は、本技術にしたがった映像処理方法2500を示すフローチャートである。この方法2500は、動作2510において、映像の映像領域のブロックと映像のビットストリーム表現との間で変換を行うことを含む。このビットストリーム表現は、このブロックのためにパレットモードの使用の第1の指示が信号通知されるかどうかを規定する第1のフォーマット規則と、このブロックのために予測モードの使用の第2の指示に関連するこの第1の指示の位置を規定する第2のフォーマット規則とに従って処理される。
【0371】
いくつかの実施形態において、映像領域は、映像の変換ユニット、符号化ユニット、予測ユニット、または領域を含む。いくつかの実施形態において、予測モードの使用の第2の指示は、ビットストリーム表現におけるパレットモードの使用の第1の指示の前に位置決めされる。
【0372】
いくつかの実施形態において、パレットモードの使用の第1の指示は、予測モードの使用の第2の指示に基づいて、ビットストリーム表現において条件付きで含まれる。いくつかの実施形態において、予測モードの使用の第2の指示がイントラブロックコピー(IBC)予測モードを示す場合、ビットストリーム表現においてパレットモードの使用の第1の指示をスキップする。いくつかの実施形態において、予測モードの使用の第2の指示がインター予測モードを示す場合、ビットストリーム表現においてパレットモードの使用の第1の指示をスキップする。いくつかの実施形態において、予測モードの使用の第2の指示がイントラ予測モードを示す場合、ビットストリーム表現においてパレットモードの使用の第1の指示をスキップする。いくつかの実施形態において、予測モードの使用の第2の指示がスキップモードを示す場合、ビットストリーム表現においてパレットモードの使用の第1の指示をスキップする。いくつかの実施形態において、ビットストリーム表現におけるパレットモードの使用の第1の指示をスキップすることは、パレットモードが使用されていないことを示す。
【0373】
いくつかの実施形態において、パレットモードの使用の第1の指示は、予測モードの使用の第2の指示がIBC予測モードを示す場合、ビットストリームにおいて符号化される。いくつかの実施形態において、パレットモードの使用の第1の指示は、予測モードの使用の第2の指示がイントラ予測モードを示す場合、ビットストリームにおいて符号化される。いくつかの実施形態において、予測モードは、パルス符号変調(PCM)モードではない。いくつかの実施形態において、パレットモードの使用の第1の指示は、ビットストリーム表現におけるPCMモードの使用の指示の前に符号化される。いくつかの実施形態において、ビットストリーム表現において、PCMモードの使用の指示をスキップする。いくつかの実施形態において、IBCモードの指示はビットストリーム表現に符号化される。いくつかの実施形態において、イントラ予測モードが使用される場合、ビットストリーム表現におけるフラグは、パレットモードまたはIBCモードがビットストリーム表現において信号通知されるかどうかを示す。いくつかの実施形態において、フラグはブロックの状態に基づいてスキップされ、この状態は、ブロック寸法、ブロックに関連付けられた領域に対してIBCモードが有効化されるかどうか、或いはブロックに関連づけられた領域に対してパレットモードが有効化されるかどうかを含む。
【0374】
いくつかの実施形態において、パレットモードの使用の第1の指示は、予測モードの使用の第2の指示がインター予測モードを示す場合、ビットストリームにおいて符号化される。いくつかの実施形態において、パレットモードの使用の第1の指示は、スキップモードの指示、予測モードの指示、またはPCMモードの使用の指示のうちの少なくとも1つの後に符号化される。いくつかの実施形態において、パレットモードの使用の第1の指示は、スキップモードまたは予測モードの指示の後に符号化され、PCMモードの使用の指示の前に符号化される。
【0375】
いくつかの実施形態において、パレットモードの使用の第1の指示は、ビットストリーム表現における予測モードの使用の第2の指示の前に位置決めされる。いくつかの実施形態において、パレットモードの使用の第1の指示は、予測モードの使用の第2の指示の後に位置決めされ、予測モードの使用の第2の指示は、ビットストリーム表現におけるイントラ予測モードまたはインター予測モードを示す。いくつかの実施形態において、パレットモードの使用の第1の指示は、ピクチャ、スライス、またはタイルグループタイプに基づいて信号通知される。いくつかの実施形態において、パレットモードの使用の第1の指示は、ブロックに対して前記パレットモードが有効化されることを示す第1のフラグを含むことができる。いくつかの実施形態において、パレットモードの使用の第1の指示は、パレットモードがシーケンスレベル、ピクチャレベル、タイルグループレベル、またはタイルレベルで有効であることを示す第1のフラグに基づいて、条件付きでビットストリーム表現に含まれる。いくつかの実施形態において、ブロックに対してパレットモードが無効化されるとき、ブロックのPCMモードを示す別のフラグがビットストリーム表現に含まれる。いくつかの実施形態において、第1のフラグは現在のブロックの1つ以上の近傍ブロックの情報に基づいてコンテキスト符号化される。いくつかの実施形態において、第1のフラグは現在のブロックの1つ以上の近傍ブロックからのコンテキスト情報なしに符号化される。
【0376】
いくつかの実施形態において、予測モードの使用の第2の指示は、予測モードを示す第2のフラグを含む。いくつかの実施形態において、ビットストリーム表現における第2のフラグが、予測モードがインターモードであることを示す場合、ビットストリーム表現は、イントラブロックコピーモードが有効化されるかどうかを示す第3のフラグをさらに含む。いくつかの実施形態において、ビットストリーム表現における第2のフラグが、予測モードがイントラモードであることを示す場合、ビットストリーム表現は、イントラブロックコピーモードが有効化されるかどうかを示す第3のフラグをさらに含む。いくつかの実施形態において、第3のフラグは、ブロック寸法に基づいてビットストリーム表現に条件付きで含まれる。
【0377】
いくつかの実施形態において、ブロックは符号化ユニットであり、ビットストリーム表現における第2のフラグは予測モードがイントラモードであることを示す。いくつかの実施形態において、第1のフラグは、ブロック寸法に基づいてビットストリーム表現に条件付きで含まれる。
【0378】
図26は、本技術にしたがった映像処理方法2600を示すフローチャートである。この方法2600は、動作2610において、映像における映像領域のブロックと映像のビットストリーム表現との間での変換のために、このブロックの少なくとも1つのパレットモードを含む1つ以上の許容予測モードに基づいて、予測モードを判定することを含む。予測モードに従って、パレットモードの使用の指示を判定する。方法2600は、動作2620において、その判定に基づいて変換を行うことを含む。
【0379】
いくつかの実施形態において、1つ以上の許容予測モードは、イントラモードを含む。いくつかの実施形態において、1つ以上の許容予測モードは1つのイントラブロックコピー(IBC)モードを含む。いくつかの実施形態において、1つ以上の許容予測モードは、インターモードを含む。
【0380】
いくつかの実施形態において、映像領域は、イントラスライス、イントラピクチャまたはイントラタイルグループを含む。いくつかの実施形態において、1つ以上の許容予測モードは、イントラモード、イントラブロックコピーモードおよびパレットモードを含む。
【0381】
いくつかの実施形態において、映像領域は、インタースライス、インターピクチャ、インタータイルグループ、Pスライス、Bスライス、PピクチャまたはBピクチャを含む。いくつかの実施形態において、1つ以上の許容予測モードは、イントラモード、イントラブロックコピーモード、パレットモードおよびインターモードを含む。
【0382】
いくつかの実施形態において、ブロック寸法は4×4であってもよい。いくつかの実施形態において、1つ以上の許容予測モードは、ブロック寸法が4×4である場合、インターモードを除外する。
【0383】
いくつかの実施形態において、ビットストリーム表現は、ブロックがスキップモードで符号化されていない場合、1つ以上の許容予測モードを表す少なくとも1つの予測モードインデックスを含み、予測モードインデックスは、1つ以上のバイナリビンを使用して表される。
【0384】
いくつかの実施形態において、予測モードインデックスは、3つのバイナリビンを使用して表され、第1のビン値「1」は、イントラモードを示し、第1のビン値「0」および第2のビン値「0」は、インターモードを示し、第1のビン値「0」、第2のビン値「1」および第3のビン値「0」は、IBCモードを示し、第1のビン値「0」、第2の値「1」および第3のビン値「1」は、パレットモードを示す。
【0385】
いくつかの実施形態において、予測モードインデックスは、2つのバイナリビンを使用して表され、第1のビン値「1」および第2のビン値「0」は、イントラモードを示し、第1のビン値「0」および第2のビン値「0」は、インターモードを示し、第1のビン値「0」および第2のビン値「1」は、IBCモードを示し、第1のビン値「1」および第2のビン値「1」は、パレットモードを示す。
【0386】
いくつかの実施形態において、予測モードインデックスは、映像の現在のスライスがイントラスライスであり、IBCモードが無効である場合、1つのバイナリビンを使用して表され、第1のビン値「0」はイントラモードを表し、第2のビン値「1」はパレットモードを表す。
【0387】
いくつかの実施形態において、予測モードインデックスは、映像の現在のスライスがイントラスライスでなく、IBCモードが無効である場合、2つのバイナリビンを使用して表され、第1のビン値「1」はイントラモードを表し、第1のビン値「0」および第2のビン値「0」はインターモードを表し、第1のビン値「0」および第2のビン値「1」はパレットモードを示す。いくつかの実施形態において、予測モードインデックスは、映像の現在のスライスがイントラスライスであり、IBCモードが有効化される場合、2つのバイナリビンを使用して表され、第1のビン値「1」はIBCモードを表し、第1のビン値「0」および第2のビン値「1」はパレットモードを表し、第1のビン値「0」および第2のビン値「0」はイントラモードを示す。いくつかの実施形態において、IBCモードの使用指示は、ビットストリーム表現のシーケンスパラメータセット(SPS)において信号通知される。
【0388】
いくつかの実施形態において、予測モードインデックスは、3つのバイナリビンを使用して表され、ここで、第1のビン値「1」はインターモードを表し、第1のビン値「0」および第2のビン値「1」はイントラモードを表し、第1のビン値「0」、第2のビン値「0」および第3のビン値「1」はIBCモードを表し、第1のビン値「0」、第2のビン値「0」および第3のビン値「0」はパレットモードを示す。
【0389】
いくつかの実施形態において、予測モードインデックスは、3つのバイナリビンを使用して表され、ここで、第1のビン値「1」はイントラモードを表し、第1のビン値「0」および第2のビン値「1」はインターモードを表し、第1のビン値「0」、第2のビン値「0」および第3のビン値「1」はIBCモードを表し、第1のビン値「0」、第2のビン値「0」および第3のビン値「0」はパレットモードを示す。
【0390】
いくつかの実施形態において、予測モードインデックスは、3つのバイナリビンを使用して表され、ここで、第1のビン値「0」は、インターモードを示し、第1のビン値「1」および第2のビン値「0」は、イントラモードを示し、第1のビン値「1」、第2のビン値「1」および第3のビン値「1」は、IBCモードを示し、第1のビン値「1」、第2のビン値「1」および第3のビン値「0」は、パレットモードを示す。
【0391】
いくつかの実施形態において、1つの条件が満たされた場合、1つ以上のバイナリビンの信号通知はビットストリーム表現においてスキップされる。いくつかの実施形態において、条件はブロック寸法を含む。いくつかの実施形態において、この条件は、無効にされている予測モードを含み、ビットストリーム表現において、この予測モードに対応するバイナリビンをスキップする。
【0392】
図27は、本技術にしたがった映像処理方法2700を示すフローチャートである。この方法2700は、動作2710において、映像のブロックと映像のビットストリーム表現との間で変換を行うことを含む。ビットストリーム表現は、パレットモードの使用の第1の指示とイントラブロックコピー(IBC)モードの使用の第2の指示とを互いに依存して信号通知することを規定するフォーマット規則に従って処理される。
【0393】
いくつかの実施形態において、このフォーマット規則は、ブロックの予測モードがIBCモードでない第1の予測モードに等しい場合、第1の指示がビットストリーム表現で信号通知されることを規定する。いくつかの実施形態において、このフォーマット規則は、ブロックの予測モードがパレットモードでない第1の予測モードに等しい場合、第2の指示がビットストリーム表現で信号通知されることを規定する。いくつかの実施形態において、第1の予測モードはイントラモードである。
【0394】
図28は、本技術にしたがった映像処理方法2800を示すフローチャートである。この方法2800は、動作2810において、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロックの寸法に基づいて、このビットストリーム表現におけるパレットモードの使用の指示の存在を判定することを含む。方法2800は、動作2820において、その判定に基づいて変換を行うことを含む。
【0395】
図29は、本技術にしたがった映像処理方法2900を示すフローチャートである。この方法2900は、動作2910において、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このビットストリーム表現におけるイントラブロックコピー(IBC)モードの使用の指示の存在を、このブロックの寸法に基づいて判定することを含む。方法2900は、動作2920において、その判定に基づいて変換を行うことを含む。いくつかの実施形態において、ブロック寸法は、ブロックにおけるサンプルの数量、ブロックの幅またはブロックの高さのうち少なくとも1つを含むことができる。
【0396】
いくつかの実施形態において、ブロックの幅が閾値以下である場合、この指示はビットストリーム表現で信号通知される。いくつかの実施形態において、ブロックの高さが閾値以下である場合、この指示はビットストリーム表現で信号通知される。いくつかの実施形態において、閾値は64であってもよい。
【0397】
いくつかの実施形態において、ブロックの幅および高さが閾値よりも大きい場合、この指示はビットストリーム表現で信号通知される。いくつかの実施形態において、閾値は4であってもよい。いくつかの実施形態において、ブロックにおけるサンプルの数が閾値よりも大きい場合、この指示はビットストリーム表現で信号通知される。いくつかの実施形態において、閾値は16であってもよい。いくつかの実施形態において、ブロックの幅がブロックの高さに等しい場合、この指示はビットストリーム表現で信号通知される。
【0398】
いくつかの実施形態において、(1)ブロックの幅が第1の閾値よりも大きい、(2)ブロックの高さが第2の閾値よりも大きい、または(3)ブロックにおけるサンプルの数が第3の閾値以下である場合、この指示はビットストリーム表現に含まれていない。いくつかの実施形態において、第1の閾値および第2の閾値は64である。いくつかの実施形態において、第3閾値は16であってもよい。
【0399】
いくつかの実施形態において、この判定は、このブロックに関連付けられた特徴にさらに基づいて行われる。いくつかの実施形態において、特徴はブロックの予測モードを含む。いくつかの実施形態において、特徴はブロックの量子化パラメータを含む。いくつかの実施形態において、特徴はブロックの近傍のブロックのパレットフラグを含む。いくつかの実施形態において、特徴はブロックの近傍のブロックのIBCフラグを含む。いくつかの実施形態において、特徴はブロックのカラーフォーマットの指示を含む。いくつかの実施形態において、特徴はブロックの符号化木構造を含む。いくつかの実施形態において、特徴はブロックのスライスグループタイプ、タイルグループタイプまたはピクチャタイプを含む。
【0400】
図30は、本技術にしたがった映像処理方法3000を示すフローチャートである。方法3000は、動作3010において、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロックを含む映像領域の第2の指示に基づいて、このブロックに対してパレットモードが許可されているかどうかを判定することを含む。方法3000は、また、動作3020において、その判定に基づいて変換を行うことを含む。
【0401】
いくつかの実施形態において、映像領域は、スライス、タイルグループまたはピクチャを含むことができる。いくつかの実施形態において、ビットストリーム表現は、第2の指示がわずかな動きベクトル差が有効化されることを示す場合、パレットモードが許可されるかどうかの明確な指示を除外する。いくつかの実施形態において、第2の指示は、ビットストリーム表現に存在するフラグとして表される。いくつかの実施形態において、第2の指示は映像領域に対してパレットモードが有効化されるかどうかを示す。いくつかの実施形態において、ビットストリーム表現は、第2の指示が映像領域に対してパレットモードが無効化されていることを示す場合、パレットモードが許可されているかどうかを明確に示すことを含まない。いくつかの実施形態において、ビットストリーム表現がパレットモードを許可するかどうかを明確に示すものを含まない場合、ブロックに対してパレットモードは許可されない。
【0402】
図31は、本技術に従った映像処理の方法3100を示すフローチャートである。方法3100は、動作3110において、映像のブロックとこの映像のビットストリーム表現との間での変換のために、このブロックを含む映像領域の第2の指示に基づいて、このブロックに対してイントラブロックコピー(IBC)モードが許可されているかどうかを判定することを含む。方法3100は、また、動作3120において、その判定に基づいて変換を行うことを含む。
【0403】
いくつかの実施形態において、映像領域は、スライス、タイルグループまたはピクチャを含むことができる。いくつかの実施形態において、ビットストリーム表現は、第2の指示がわずかな動きベクトル差が有効化されることを示す場合、IBCモードが許可されるかどうかの明確な指示を除外する。いくつかの実施形態において、第2の指示は、ビットストリーム表現に存在するフラグとして表される。いくつかの実施形態において、第2の指示は映像領域に対してIBCモードが有効化されるかどうかを示す。いくつかの実施形態において、ビットストリーム表現は、第2の指示が映像領域に対してIBCモードが無効化されていることを示す場合、IBCモードが許可されているかどうかを明確に示すことを含まない。いくつかの実施形態において、ビットストリーム表現がIBCモードを許可するかどうかを明確に示すものを含まない場合、ブロックに対してIBCモードは許可されない。
【0404】
いくつかの実施形態において、変換はビットストリーム表現から現在のブロックを生成する。いくつかの実施形態において、変換は現在のブロックからビットストリーム表現を生成する。
【0405】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0406】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0407】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0408】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、要素、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0409】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0410】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュ記憶装置、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0411】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0412】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0413】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。