(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-04
(45)【発行日】2023-12-12
(54)【発明の名称】位置に基づく係数のスケーリング
(51)【国際特許分類】
H04N 19/124 20140101AFI20231205BHJP
H04N 19/12 20140101ALI20231205BHJP
H04N 19/176 20140101ALI20231205BHJP
H04N 19/70 20140101ALI20231205BHJP
【FI】
H04N19/124
H04N19/12
H04N19/176
H04N19/70
(21)【出願番号】P 2022511034
(86)(22)【出願日】2020-08-20
(86)【国際出願番号】 CN2020110229
(87)【国際公開番号】W WO2021032158
(87)【国際公開日】2021-02-25
【審査請求日】2022-03-04
(31)【優先権主張番号】PCT/CN2019/101555
(32)【優先日】2019-08-20
(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)【発明者】
【氏名】ワン ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/218564(WO,A1)
【文献】国際公開第2019/022099(WO,A1)
【文献】国際公開第2017/195666(WO,A1)
【文献】Olena Chubach, et al.,CE7-related: Support of quantization matrices for VVC,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-N0847-v1,14th Meeting: Geneva, CH,2019年03月,pp.1-4
【文献】Seethal Paluri, Jie Zhao, Jaehyun Lim, and Seung Hwan Kim,AHG17: APS support for default and user defined scaling matrices,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0299_r1,15th Meeting: Gothenburg, SE,2019年07月,pp.1-5
【文献】Tomonori Hashimoto, Eiichi Sasaki, Takeshi Chujoh, and Tomohiro Ikai,Non-CE7: Harmonization of scaling matrix and LFNST,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-O0383-v2,15th Meeting: Gothenburg, SE,2019年07月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
K×L変換ブロックサイズを有する映像の映像変換ブロックと前記映像のビットストリームとの変換中に、
32×32以上の位置を含む前記K×L映像変換ブロックに呼応して、前記K×L映像変換ブロックの左上32×32領域内のスケーリング行列の行列要素のみが保持され、前記スケーリング行列の残りの行列要素はゼロで埋められることを決定することと、前記スケーリング行列は、前記映像変換ブロックの少なくともいくつかの係数をスケーリングするために使用され、
セカンダリ変換行列が前記映像変換ブロックのS×T左上部分に適用される場合に、前記スケーリング行列が前記映像変換ブロックに適用されることが許容されると決定することと、S,T,KおよびLは整数であり、KはS以上であり、LはT以上であり、
前記スケーリング行列を使用して前記変換を行うことと、を含
む、
映像データを処理する方法。
【請求項2】
前記スケーリング行列は、前記映像変換ブロックのS×T左上部分にのみ有効に適用される、
請求項1に記載の方法。
【請求項3】
前記スケーリング行列は、デフォルト
スケーリング行列又は前記ビットストリームに明示的に含まれる
スケーリング行列を含む、
請求項1
又は2に記載の方法。
【請求項4】
前記デフォルト
スケーリング行列の行列要素は一律であり、値が16に等しい、
請求項
3に記載の方法。
【請求項5】
Kが64に等しい場合、前記スケーリング行列の左32列の行列要素のみが保持され、Lが64に等しい場合、前記スケーリング行列の上32行の行列要素のみが保持され、残りの行列要素はゼロで埋められる、
請求項1~
4のいずれか1項に記載の方法。
【請求項6】
前記変換は、前記映像変換ブロックを前記ビットストリームに符号化することを含む、
請求項1~
5のいずれか1項に記載の方法。
【請求項7】
前記変換は、前記ビットストリームから前記映像変換ブロックを復号化することを含む、
請求項1~
5のいずれか1項に記載の方法。
【請求項8】
処理装置と、命令を備えた非一時的メモリとを備えた映像データを処理するための装置であって、処理装置による実行時に、前記命令は、前記処理装置に、
K×L変換ブロックサイズを有する映像の映像変換ブロックと前記映像のビットストリームとの変換中に、
32×32以上の位置を含む前記K×L映像変換ブロックに呼応して、前記K×L映像変換ブロックの左上32×32領域内のスケーリング行列の行列要素のみが保持され、前記スケーリング行列の残りの行列要素はゼロで埋められることを決定することと、
前記スケーリング行列
は、前記映像変換ブロックの少なくともいくつかの係数をスケーリング
するために使用され、
セカンダリ変換行列が前記映像変換ブロックのS×T左上部分に適用される場合に、前記スケーリング行列が前記映像変換ブロックに適用されることが許容されると決定することと、S,T,KおよびLは整数であり、KはS以上であり、LはT以上であり、
前記スケーリング行列を使用して前記変換を行うことと、を行わせ
る、
装置。
【請求項9】
命令を記憶した非一時的なコンピュータ可読記憶媒体であって、前記命令は、処理装置に、
K×L変換ブロックサイズを有する映像の映像変換ブロックと前記映像のビットストリームとの変換中
に、
32×32以上の位置を含む前記K×L映像変換ブロックに呼応して、前記K×L映像変換ブロックの左上32×32領域内のスケーリング行列の行列要素のみが保持され、前記スケーリング行列の残りの行列要素はゼロで埋められることを決定することと、前記スケーリング行列は、前記映像変換ブロックの少なくともいくつかの係数をスケーリングするために使用され、
セカンダリ変換行列が前記映像変換ブロックのS×T左上部分に適用される場合に、前記スケーリング行列が前記映像変換ブロックに適用されることが許容されると決定することと、S,T,KおよびLは整数であり、KはS以上であり、LはT以上であり、
前記スケーリング行列を使用して前記変換を行うことと、を行わせ
る、
非一時的なコンピュータ可読記憶媒体。
【請求項10】
映像のビットストリームを記憶する方法であって、前記方法は、
K×L映像変換ブロックサイズを有する前記映像の映像変換ブロックのために、32×32以上の位置を含む前記K×L映像変換ブロックに呼応して、前記K×L映像変換ブロックの左上32×32領域内のスケーリング行列の行列要素のみが保持され、前記スケーリング行列の残りの行列要素はゼロで埋められることを決定することと、前記スケーリング行列は、前記映像変換ブロックの少なくともいくつかの係数をスケーリングするために使用され、
セカンダリ変換行列が前記映像変換ブロックのS×T左上部分に適用される場合に、前記スケーリング行列が前記映像変換ブロックに適用されることが許容されると決定することと、S,T,KおよびLは整数であり、KはS以上であり、LはT以上であり、
前記スケーリング行列を使用して前記ビットストリームを生成することと、
前記ビットストリームを非一時的なコンピュータ記録媒体に記憶することと、を含
む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2019年8月20日出願の国際特許出願第PCT/CN2019/101555号の優先権と利益を主張する、2020年8月20日出願の国際特許出願第PCT/CN2020/110229号の国内段階である。上記出願の開示全体は、本明細書の開示の一部として参照により援用される。
【0002】
この特許文献は、映像符号化技術、デバイスおよびシステムに関する。
【背景技術】
【0003】
映像圧縮の進歩にもかかわらず、デジタル映像は、依然として、インターネットおよび他のデジタル通信ネットワークにおいて最大の帯域幅の使用量を占めている。映像を受信および表示することが可能である接続されたユーザ機器の数が増加するにつれ、デジタル映像の使用に対する帯域幅需要は増大し続けることが予測される。
【発明の概要】
【0004】
デジタル映像符号化に関し、具体的には、スケーリング行列および/または変換行列を使用する映像符号化および復号化に関するデバイス、システム、および方法である。
【0005】
1つの例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと映像の符号化表現との変換を行うことを含み、前記符号化表現は、フォーマット規則に準拠しており、前記フォーマット規則は、前記映像ブロックへの変換スキップモードの適用可能性が前記映像ブロックの符号化条件によって判定されることを規定し、前記フォーマット規則は、前記変換スキップモードの利用可能性を表す構文要素が前記符号化表現から省略されており、前記変換スキップモードは、前記符号化表現に符号化する前に順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現から復号化する前に逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、を含む。
【0006】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の2つの隣接する映像ブロックと前記映像の符号化表現との変換のために、順方向変換と逆方向変換のどちらを変換に使用するかによって、インループフィルタと再構成後フィルタのどちらを変換に使用するかを判定することを含み、前記順方向変換は、前記符号化表現に符号化する前に前記順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現から復号化する前に前記逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、前記インループフィルタまたは再構成後フィルタの使用に基づいて前記変換を行うことと、を含む。
【0007】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックとこの映像の符号化表現との変換のために、前記映像ブロックの符号化モードに基づいてスケーリングツールの倍数を判定することと、スケーリングツールを使用して変換を行うことと、を含み、前記スケーリングツールの使用は、符号化時にこの映像ブロックを表す少なくともいくつかの係数をスケーリングすること、または復号化時にこの符号化表現から少なくともいくつかの係数をデスケーリングすることを含む。
【0008】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと映像の符号化表現との変換のために、前記映像ブロックの前記変換のためのブロック差分パルス符号変調(BDPCM)符号化ツールまたは量子化残差BDPCM(QRーBDPCM)符号化ツールに起因して、スケーリングツールの使用を無効化すると判定することと、スケーリングツールを使用せずに変換を行うこととを含み、前記スケーリングツールの使用は、符号化時に映像ブロックを表す少なくともいくつかの係数をスケーリングすること、または復号化時に符号化表現から少なくともいくつかの係数をデスケーリングすることを含む。
【0009】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと映像の符号化表現との変換のために、前記変換のために選択された変換行列に基づいてスケーリング行列を選択することであって、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数を変換するために使用される、選択することと、スケーリング行列を使用して変換を行うことと、を含む。
【0010】
別の例示的な態様において、映像処理の方法が開示される。この方法は、規則に従って、映像の映像ブロックの一部にセカンダリ変換行列が適用されているかどうかに基づいて、スケーリング行列を適用するかどうかを判定することであって、スケーリング行列は、映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、セカンダリ変換行列は、変換時に映像ブロックの部分の少なくともいくつかの残差係数を変換するために使用される、判定することと、選択されたスケーリング行列を使用して、映像の映像ブロックと映像のビットストリーム表現との変換を行うことと、を含む。
【0011】
別の例示的な態様において、映像処理の方法が開示される。この方法は、非正方形の形状を有する映像ブロックに対して、映像の前記映像ブロックと前記映像の符号化表現との変換に使用するためのスケーリング行列を判定することであって、前記符号化表現における構文要素が、前記スケーリング行列を信号通知し、前記スケーリング行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される、判定することと、
前記スケーリング行列に基づいて前記変換を行うことと、を含む。
【0012】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換を行うことを含む映像処理方法であって、
前記映像ブロックは、規則に基づいて、前記変換時に前記スケーリング行列が適用される第1の数の位置と、前記変換時にスケーリング行列が適用されない第2の数の位置とを含む。
【0013】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換時にスケーリング行列が適用されることを判定することと、
前記スケーリング行列に基づいて、前記変換を行うことと、を含む方法であって、
前記符号化表現は前記スケーリング行列の要素の数を示し、前記数は、ゼロ化する係数を前記映像ブロックの係数に適用するかどうかに依存する。
【0014】
別の例示的な態様において、映像処理の方法が開示される。この方法は、規則に従って、映像の映像ブロックと前記映像の符号化表現との変換を行うことを含む映像処理方法であって、
前記映像ブロックは、前記映像ブロックの係数を変換すべくK×L変換行列を適用した後に、左上のM×N変換係数を除いたすべての変換係数をゼロ化した後の前記符号化表現で表現され、
前記符号化表現は、前記ゼロ化したことに対応する位置にあるスケーリング行列の要素の信号通知を排除するように構成され、
前記スケーリング行列は、前記変換係数をスケーリングするために使用される。
【0015】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換時に、前記映像ブロックのサイズに基づいて単一の量子化行列を使用するかどうかを、規則に基づいて判定することであって、前記サイズを有するすべての映像ブロックが前記単一の量子化行列を使用する、判定することと、
前記量子化行列を使用して前記変換を行うことと、を含む。
【0016】
別の例示的な態様において、映像処理の方法が開示される。この方法は、映像の映像ブロックの符号化表現と前記映像ブロックとの変換のために、符号化モード情報に基づいて、変換スキップモードが前記変換に対して有効化されているかどうかを判定することと、この判定することに基づいて、この変換を行うことと、を含み、前記変換スキップモードにおいて、前記変換時に、前記映像ブロックを表す少なくともいくつかの係数に変換を適用することをスキップする。
【0017】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、前記変換のためのブロック差分パルス符号変調(BDPCM)または量子化残差BDPCM(QR-BDPCM)モードの使用に起因して、映像ブロックの符号化表現と映像ブロックとの変換のためにスケーリング行列を使用すると判定することと、前記スケーリング行列を使用して前記変換を行うこととを含み、スケーリング行列は、変換時にこの映像ブロックを表す少なくともいくつかの係数をスケーリングするために使用される。
【0018】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、前記変換のためのブロック差分パルス符号変調(BDPCM)または量子化残差BDPCM(QR-BDPCM)モードの使用に起因して、映像ブロックの符号化表現と映像ブロックとの変換のためのスケーリング行列の使用を無効化すると判定することと、前記スケーリング行列を使用して前記変換を行うこととを含み、スケーリング行列は、変換時に映像ブロックを表す少なくともいくつかの係数をスケーリングするために使用される。
【0019】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像の映像ブロックの符号化表現と前記映像ブロックとの変換のために、変換スキップモードが前記変換に対して有効化されているかどうかによってインループフィルタの適用可能性を判定することと、この前記インループフィルタの適用可能性に基づいて、この変換を行うことと、を含み、前記変換スキップモードにおいて、前記変換時に、前記映像ブロックを表す少なくともいくつかの係数に変換を適用することをスキップする。
【0020】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像の映像ブロックとこの映像ブロックの符号化表現との変換のために、スケーリング行列を、インター符号化およびイントラブロックコピー符号化に基づく変換のために同じスケーリング行列が選択されるように選択することと、前記選択されたケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される。
【0021】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換のために、前記変換のために選択された変換行列に基づいて、スケーリング行列を選択することと、前記選択されたスケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数を変換するために使用される、選択する。
【0022】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換のために、前記変換のために選択されたセカンダリ変換行列に基づいて、スケーリング行列を選択することと、前記選択されたケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記セカンダリ変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの残差係数を変換するために使用される。
【0023】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、非正方形の形状を有する映像ブロックのために、前記映像ブロックとこの映像ブロックの符号化表現との変換に使用されるスケーリング行列を判定することであって、前記符号化表現における構文要素が前記スケーリング行列を信号通知する、判定することと、前記スケーリング行列に基づいて前記変換を行うことと、を含み、前記スケーリング行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される。
【0024】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像ブロックの符号化表現と映像ブロックとの変換時に、スケーリング行列を部分的に適用することを判定することと、前記ビデオブロックにおいて、第1の位置の集合に前記スケーリング行列を適用し、残りの位置では前記スケーリング行列を無効にするように、前記スケーリング行列を部分的に適用することにより、変換を行うこととを含む。
【0025】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像ブロックの符号化表現と前記映像ブロックとの変換時にスケーリング行列が適用されることを判定することと、
前記スケーリング行列に基づいて、前記変換を行うことと、を含む方法であって、
前記符号化表現は前記スケーリング行列の要素の数を信号通知し、前記数は、前記変換においてゼロ化する係数の適用に依存する。
【0026】
別の例示的な態様において、映像処理の別の方法が開示される。この方法は、映像の映像ブロックと前記映像の符号化表現との変換時に、特定のタイプの前記映像ブロックのサイズに基づいて、使用する単一の量子化行列を判定することと、前記量子化行列を使用して前記変換を行うことと、を含む。
【0027】
さらに別の代表的な態様において、上記方法は、処理装置が実行可能なコードの形式で実施され、コンピュータ可読プログラム媒体に記憶される。
【0028】
さらに別の代表的な態様において、上述した方法を行うように構成された、または動作可能なデバイスが開示される。この装置は、この方法を実装するようにプログラムされた処理装置を含んでもよい。
【0029】
さらに別の代表的な態様において、映像デコーダ装置は、本明細書で説明されるような方法を実装してもよい。
【0030】
開示される技術の上記および他の態様および特徴は、図面、説明および特許請求の範囲でより詳細に説明される
【図面の簡単な説明】
【0031】
【
図1】映像エンコーダの実装形態の例のブロック図である。
【
図3】縮小セカンダリ変換(RST)を例示している。
【
図4】提案された従属量子化方法に使用される2つのスカラー量子化モジュールを示す図である。
【
図5】提案された従属量子化のためのステートトランジションおよび量子化モジュールの選択を例示する。
【
図7】QM信号通知(32×32変換の大きさ)のために選択された位置の例を示す。
【
図8】QM信号通知(64×64変換規模)のために選択された位置の例を示す。
【
図10】破線領域(例えば、M×N領域)における選択された要素のみが信号通知される例を示す。
【
図11】映像処理ハードウェアプラットフォームの例を示すブロック図である。
【
図12】映像処理の方法の一例を示すフローチャートである。
【
図13】映像デコーダを例示するブロック図である。
【
図14】本明細書で開示される様々な技術が実装され得る例示的な映像処理システムを示すブロック図である。
【
図15】本開示の技法を利用し得る例示的な映像符号化システムを示すブロック図である。
【
図16】映像エンコーダを例示するブロック図である。
【
図17】映像処理の方法の一例を示すフローチャートである。
【
図18】映像処理の方法の一例を示すフローチャートである。
【
図19】映像処理の方法の一例を示すフローチャートである。
【
図20】映像処理の方法の一例を示すフローチャートである。
【
図21】映像処理の方法の一例を示すフローチャートである。
【
図22】映像処理の方法の一例を示すフローチャートである。
【
図23】映像処理の方法の一例を示すフローチャートである。
【
図24】映像処理の方法の一例を示すフローチャートである。
【
図25】映像処理の方法の一例を示すフローチャートである。
【
図26】映像処理の方法の一例を示すフローチャートである。
【
図27】映像処理の方法の一例を示すフローチャートである。
【発明を実施するための形態】
【0032】
開示される技術の実施形態は、圧縮性能を向上させるために、既存の映像符号化規格(例えば、HEVC、H.265)および将来の規格に適用されてもよい。本明細書では、説明の可読性を向上させるために章の見出しを使用しており、説明または実施形態(および/または実装形態)をそれぞれの章のみに限定するものではない。
【0033】
1.発明の概要
本明細書は、画像/映像符号化技術に関する。具体的には、画像/映像符号化における量子化マトリックスに関する。HEVCのような既存の映像符号化規格に適用してもよいし、規格(Versatile Video Coding)を確定させるために適用してもよい。本発明は、将来の映像符号化規格または映像コーデックにも適用可能である。
【0034】
2.背景技術
映像符号化規格は、主に周知のITU-TおよびISO/IEC規格の開発によって発展してきた。ITU-TはH.261とH.263を作り、ISO/IECはMPEG-1とMPEG-4 Visualを作り、両団体はH.262/MPEG-2 VideoとH.264/MPEG-4 AVC(Advanced Video Coding)とH.265/HEVC規格を共同で作った。H.262以来、映像符号化規格は、時間予測と変換符号化が利用されるハイブリッド映像符号化構造に基づく。HEVCを超えた将来の映像符号化技術を探索するため、2015年には、VCEGとMPEGが共同でJVET(Joint Video Exploration Team)を設立した。それ以来、多くの新しい方法がJVETによって採用され、JEM(Joint Exploration Mode)と呼ばれる参照ソフトウェアに組み込まれてきた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間にJoint Video Expert Team(JVET)が発足し、HEVCと比較して50%のビットレート削減を目標にVVC規格の策定に取り組んでいる。
【0035】
VVCドラフトの最新バージョン、即ち、Versatile Video Coding(ドラフト5)は、以下を参照することができる。
【0036】
http://phenix.it-sudparis.eu/jvet/doc_end_user/current_document.php?id=6640
【0037】
VTMと呼ばれるVVCの最新の参照ソフトウェアは、以下で確認することができる。
【0038】
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-4.0
【0039】
2.1.色空間およびクロマサブサンプリング
色空間は、カラーモデル(又はカラーシステム)としても知られ、色の範囲を数字のタプル(tuple)として簡単に記述する抽象的な数学モデルであり、典型的には3又は4つの値又は色成分(例えばRGB)である。基本的には、色空間は座標系とサブ空間とを合成したものである。
【0040】
映像圧縮の場合、最も頻繁に使用される色空間は、YCbCrおよびRGBである。
【0041】
YCbCr、Y’CbCr、またはY Pb/Cb Pr/Crは、YCBCRまたはY’CBCRとも呼ばれ、映像およびデジタル写真システムのカラー画像パイプラインの一部として使用される色空間のファミリーである。Y’は輝度成分であり、CBおよびCRは青色差および赤色差クロマ成分である。Y’(素数を有する)はYとは区別され、Yは輝度であり、ガンマ補正されたRGB原色に基づいて光強度が非線形に符号化されることを意味する。
【0042】
クロマサブサンプリングは、人間の視覚システムが、輝度よりも色差の方が知覚が低いことを利用して、輝度情報よりもクロマ情報の方が解像度が低くなるように実装して画像を符号化する方法である。
【0043】
2.1.1. 4:4:4
3つのY’CbCr成分の各々は、同じサンプルレートを有し、従って、クロマサブサンプリングは存在しない。この方式は、ハイエンドフィルムスキャナおよび映画のポストプロダクションに用いられることがある。
【0044】
2.1.2. 4:2:2
2つのクロマ成分は、輝度のサンプルレートの半分でサンプリングされ、水平クロマ解像度は半分にされる。これにより、視覚的にほとんど又は全く差がなく、非圧縮の映像信号の帯域幅を1/3に縮小する。
【0045】
2.1.3. 4:2:0
4:2:0では、水平サンプリングは4:1:1に比べて2倍になるが、このスキームではCbおよびCrチャネルを各1行おきのラインでのみサンプリングするので、垂直解像度は半分になる。従って、データレートは同じである。CbおよびCrはそれぞれ水平および垂直方向の両方に2倍ずつサブサンプリングされる。異なる水平および垂直位置を有する4:2:0スキームの3つの変形がある。
● MPEG-2において、CbおよびCrは水平方向に共座している。Cb、Crは垂直方向の画素間に位置する(格子間に位置する)。
● JPEG/JFIFにおいて、H.261、およびMPEG-1、Cb、およびCrは、交互の輝度サンプルの中間の格子間に位置する。
● 4:2:0 DVにおいて、CbおよびCrは、水平方向に共座している。垂直方向には、それらは交互に共座している。
【0046】
2.2.典型的な映像コーデックの符号化フロー
図1は、3つのインループフィルタリングブロック、すなわち非ブロック化フィルタ(DF)、サンプル適応オフセット(SAO)およびALFを含むVVCのエンコーダブロック図の例を示す。DF(予め定義されたフィルタを使用する)とは異なり、SAOおよびALFは、現在のピクチャのオリジナルサンプルを利用し、それぞれ、オフセットを追加することにより、および、有限インパルス応答(FIR)フィルタを適用することにより、オフセットおよびフィルタ係数を信号通知する符号化側情報を用いて、元のサンプルと再構成サンプルとの間の平均二乗誤差を低減する。ALFは、各ピクチャの最後の処理ステージに位置し、前のステージで生成されたアーチファクトを捕捉し、修正しようとするツールと見なすことができる。
【0047】
2.3.量子化ユニット
人間の視覚システム(HVS)の周知の空間周波数感度は、JPEG、MPEG2、H.264/AVC High Profile、およびHEVCを含む、現代の画像および映像符号化アルゴリズムおよび規格の設計の多くの態様の後ろで重要な要因となっている。
【0048】
MPEG2に用いられる量子化行列は、8×8行列である。H.264/AVCにおいて、量子化行列のブロックサイズは、4×4および8×8の両方を含む。これらのQMは、SPS(シーケンスパラメータ集合)およびPPS(ピクチャパラメータ集合)に符号化される。H.264/AVCにおけるQM信号通知のための圧縮方法は、差分パルス符号変調(DPCM)である。
【0049】
H.264/AVC High Profileでは、4×4のブロックサイズおよび8×8のブロックサイズが用いられる。4×4ブロックサイズのための6つのQM(すなわち、イントラ/インター符号化のための別個の行列およびY/Cb/Cr成分)および8×8ブロックサイズのための2つのQM(すなわち、イントラ/インターY成分のための別個の行列)に対し、8つの量子化行列のみをビットストリームに符号化する必要がある。
【0050】
2.4.VVCにおける変換および量子化設計
2.4.1.変換
HEVCは、離散コサイン変換(DCT)の有限精度近似である、4×4~32×32の様々なサイズの2次元変換を規定する。また、HEVCは、4×4輝度イントラ予測残差ブロックに使用するために、離散正弦変換(DST)に基づいて代替の4×4整数変換を規定する。これに加え、特定のブロックサイズの場合、変換スキップを許可してもよい。
【0051】
nS=4,8,16,32,DCT-IIの変換行列cij(i,j=0.nS-1)は、以下のように定義される。
nS=4
{64,64,64,64}
{83,36,-36,-83}
{64,-64,-64,64}
{36,-83,83,-36}
nS=8
{64,64,64,64,64,64,64,64}
{89,75,50,18,-18,-50,-75,-89}
{83,36,-36,-83,-83,-36,36,83}
{75,-18,-89,-50,50,89,18,-75}
{64,-64,-64,64,64,-64,-64,64}
{50,-89,18,75,-75,-18,89,-50}
{36,-83,83,-36,-36,83,-83,36}
{18,-50,75,-89,89,-75,50,-18}
nS=16
{64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64}
{90,87,80,70,57,43,25,9,-9-25-43-57-70-80-87-90}
{89,75,50,18-18-50-75-89-89-75-50-18,18,50,75,89}
{87,57,9-43-80-90-70-25,25,70,90,80,43,-9-57-87}
{83,36-36-83-83-36,36,83,83,36-36-83-83-36,36,83}
{80,9-70-87-25,57,90,43-43-90-57,25,87,70,-9-80}
{75-18-89-50,50,89,18-75-75,18,89,50-50-89-18,75}
{70-43-87,9,90,25-80-57,57,80-25-90,-9,87,43-70}
{64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64}
{57-80-25,90,-9-87,43,70-70-43,87,9-90,25,80-57}
{50-89,18,75-75-18,89-50-50,89-18-75,75,18-89,50}
{43-90,57,25-87,70,9-80,80,-9-70,87-25-57,90-43}
{36-83,83-36-36,83-83,36,36-83,83-36-36,83-83,36}
{25-70,90-80,43,9-57,87-87,57,-9-43,80-90,70-25}
{18-50,75-89,89-75,50-18-18,50-75,89-89,75-50,18}
{9-25,43-57,70-80,87-90,90-87,80-70,57-43,25,-9}
nS=32
{64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64}
{90,90,88,85,82,78,73,67,61,54,46,38,31,22,13,4,-4-13-22-31-38-46-54-61-67-73-78-82-85-88-90-90}
{90,87,80,70,57,43,25,9,-9-25-43-57-70-80-87-90-90-87-80-70-57-43-25,-9,9,25,43,57,70,80,87,90}
{90,82,67,46,22,-4-31-54-73-85-90-88-78-61-38-13,13,38,61,78,88,90,85,73,54,31,4-22-46-67-82-90}
{89,75,50,18-18-50-75-89-89-75-50-18,18,50,75,89,89,75,50,18-18-50-75-89-89-75-50-18,18,50,75,89}
{88,67,31-13-54-82-90-78-46,-4,38,73,90,85,61,22-22-61-85-90-73-38,4,46,78,90,82,54,13-31-67-88}
{87,57,9-43-80-90-70-25,25,70,90,80,43,-9-57-87-87-57,-9,43,80,90,70,25-25-70-90-80-43,9,57,87}
{85,46-13-67-90-73-22,38,82,88,54,-4-61-90-78-31,31,78,90,61,4-54-88-82-38,22,73,90,67,13-46-85}
{83,36-36-83-83-36,36,83,83,36-36-83-83-36,36,83,83,36-36-83-83-36,36,83,83,36-36-83-83-36,36,83}
{82,22-54-90-61,13,78,85,31-46-90-67,4,73,88,38-38-88-73,-4,67,90,46-31-85-78-13,61,90,54-22-82}
{80,9-70-87-25,57,90,43-43-90-57,25,87,70,-9-80-80,-9,70,87,25-57-90-43,43,90,57-25-87-70,9,80}
{78,-4-82-73,13,85,67-22-88-61,31,90,54-38-90-46,46,90,38-54-90-31,61,88,22-67-85-13,73,82,4-78}
{75-18-89-50,50,89,18-75-75,18,89,50-50-89-18,75,75-18-89-50,50,89,18-75-75,18,89,50-50-89-18,75}
{73-31-90-22,78,67-38-90-13,82,61-46-88,-4,85,54-54-85,4,88,46-61-82,13,90,38-67-78,22,90,31-73}
{70-43-87,9,90,25-80-57,57,80-25-90,-9,87,43-70-70,43,87,-9-90-25,80,57-57-80,25,90,9-87-43,70}
{67-54-78,38,85-22-90,4,90,13-88-31,82,46-73-61,61,73-46-82,31,88-13-90,-4,90,22-85-38,78,54-67}
{64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64,64-64-64,64}
{61-73-46,82,31-88-13,90,-4-90,22,85-38-78,54,67-67-54,78,38-85-22,90,4-90,13,88-31-82,46,73-61}
{57-80-25,90,-9-87,43,70-70-43,87,9-90,25,80-57-57,80,25-90,9,87-43-70,70,43-87,-9,90-25-80,57}
{54-85,-4,88-46-61,82,13-90,38,67-78-22,90-31-73,73,31-90,22,78-67-38,90-13-82,61,46-88,4,85-54}
{50-89,18,75-75-18,89-50-50,89-18-75,75,18-89,50,50-89,18,75-75-18,89-50-50,89-18-75,75,18-89,50}
{46-90,38,54-90,31,61-88,22,67-85,13,73-82,4,78-78,-4,82-73-13,85-67-22,88-61-31,90-54-38,90-46}
{43-90,57,25-87,70,9-80,80,-9-70,87-25-57,90-43-43,90-57-25,87-70,-9,80-80,9,70-87,25,57-90,43}
{38-88,73,-4-67,90-46-31,85-78,13,61-90,54,22-82,82-22-54,90-61-13,78-85,31,46-90,67,4-73,88-38}
{36-83,83-36-36,83-83,36,36-83,83-36-36,83-83,36,36-83,83-36-36,83-83,36,36-83,83-36-36,83-83,36}
{31-78,90-61,4,54-88,82-38-22,73-90,67-13-46,85-85,46,13-67,90-73,22,38-82,88-54,-4,61-90,78-31}
{25-70,90-80,43,9-57,87-87,57,-9-43,80-90,70-25-25,70-90,80-43,-9,57-87,87-57,9,43-80,90-70,25}
{22-61,85-90,73-38,-4,46-78,90-82,54-13-31,67-88,88-67,31,13-54,82-90,78-46,4,38-73,90-85,61-22}
{18-50,75-89,89-75,50-18-18,50-75,89-89,75-50,18,18-50,75-89,89-75,50-18-18,50-75,89-89,75-50,18}
{13-38,61-78,88-90,85-73,54-31,4,22-46,67-82,90-90,82-67,46-22,-4,31-54,73-85,90-88,78-61,38-13}
{9-25,43-57,70-80,87-90,90-87,80-70,57-43,25,-9,-9,25-43,57-70,80-87,90-90,87-80,70-57,43-25,9}
{4-13,22-31,38-46,54-61,67-73,78-82,85-88,90-90,90-90,88-85,82-78,73-67,61-54,46-38,31-22,13,-4}
【0052】
2.4.2.量子化
HEVC量子化器の設計は、H.264/AVCの設計に類似しており、ここで、0~51(8ビットの映像シーケンスの場合)の範囲の量子化パラメータ(QP)を、QP値が6だけ増加する度に2倍になる量子化ステップサイズにマッピングする。しかしながら、重要な違いは、HEVCにおいて、H.264/AVCのデスケーリング行列に組み込まれる変換基本ノルム補正係数がもはや必要とされず、量子化器の設計を簡単にすることである。レート制御および知覚量子化のために、8×8サンプルという小さな量子化グループに対してQP値を(デルタQPの形式で)送信することができる。デルタQPを算出するためのQP予測モジュールは、左、上、前回のQP値の組み合わせを用いる。HEVCはまた、すべての変換ブロックサイズに対して量子化行列を使用することによって、周波数依存量子化をサポートする。詳細は2.4.3項で説明する。
【0053】
量子化変換係数qij(i,j=0..nS-1)は、変換係数dij(i,j=0..nS-1)から以下のように導出される。
qij=(dij*f[QP%6]+offset)>>(29+QP/6-nS-BitDepth),with i,j=0,...,nS-1
ここで
f[x]={26214,23302,20560,18396,16384,14564},x=0,…,5
228+QP/6-nS-BitDepth<offset<229+QP/6-nS-BitDepth
【0054】
QPは1つの変換ユニットのための量子化パラメータを表し、BitDepthは現在の色成分に関連付けられたビット深度を表す。
【0055】
HEVCにおいて、QPの範囲は[0,51]である。
【0056】
2.4.3.量子化ユニット
量子化行列(QM)は、JPEG、JPEG-2000等の画像符号化規格、およびMPEG2、MPEG4、H.264/AVC等の映像規格に採用されている。QMは、異なる周波数係数に対する周波数重み付けによって、主観的品質を改善することができる。HEVC規格において、量子化ブロックのサイズは、32×32まで拡大することができる。ビットストリームにおいて、4×4、8×8、16×16、32×32のサイズのQMを符号化してもよい。各ブロックサイズに対して、イントラ/インター予測タイプおよびY/Cb/Cr色成分は、異なる量子化行列を必要とする。合計24個の量子化行列(4×4、8×8、16×16、および32×32個の4つのブロックサイズ、イントラ/インターおよびY,U,V成分のための別個の行列)が、符号化されるべきである。
【0057】
量子化行列のためのパラメータは、参照量子化行列から直接コピーされてもよく、または明確に信号通知されてもよい。明確に信号通知される場合、第1のパラメータ(行列の(0,0)成分の値)を直接符号化する。そして、行列のラスタスキャンによる予測符号化で残りのパラメータを符号化する。
【0058】
HEVCにおけるスケーリング行列の符号化および信号通知は、以下の3つのモードを意味する:OFF、DEFAULT、およびUSER_DEFINED。なお、8×8よりも大きい変換単位サイズ(即ち、16×16、32×32)に対して、スケーリング行列は、8×8スケーリング行列から、より大きいサイズにアップサンプリングすることによって得られる(要素の複製)。8×8よりも大きいTBのスケーリング行列のために、追加のDC値を信号通知しなければならない。
【0059】
HEVCにおける1つのスケーリング行列のための符号化値の最大数は、64である。
【0060】
DEFAULTモードのDC値は、すべてのTBサイズに対して16である。
【0061】
2.4.3.1.構文および意味論
7.3.2.2 シーケンスパラメータセットRBSP構文
7.3.2.2.1 一般シーケンスパラメータセットRBSP構文
【0062】
【0063】
7.3.2.3 ピクチャパラメータセットRBSP構文
7.3.2.3.1 一般ピクチャパラメータセットRBSP構文
【0064】
【0065】
7.3.4 スケーリングリストデータ構文
【0066】
【0067】
scaling_list_enabled_flagが1の場合、変換係数のスケーリング処理にスケーリングリストを使用することを規定する。scaling_list_enabled_flagが0の場合、変換係数のスケーリング処理に対してスケーリングリストを使用しないことを規定する。
sps_scaling_list_data_present_flagが1の場合、scaling_list_data()構文構造がSPSに存在することを規定する。sps_scaling_list_data_present_flagが0の場合、scaling_list_data()構文構造がSPSに存在しないことを規定する。存在しない場合、sps_scaling_list_data_present_flagの値は0と推測される。
pps_scaling_list_data_present_flagが1である場合、アクティブSPSで規定されたスケーリングリストと、PPSで規定されたスケーリングリストとに基づいて、PPSを参照するピクチャに使用されるスケーリングリストデータを導出することを規定する。pps_scaling_list_data_present_flagが0である場合、PPSを参照するピクチャに使用されるスケーリングリストデータが、アクティブSPSで規定されたスケーリングリストデータと等しいと推論される。scaling_list_enabled_flagが0であるとき、pps_scaling_list_data_present_flagの値は0である。scaling_list_enabled_flagが1であるとき、sps_scaling_list_data_present_flagは0であり、pps_scaling_list_data_present_flagが0であるとき、デフォルトのスケーリングリストデータは、項目7.4.5に規定したスケーリングリストデータ意味論に説明したような配列ScalingFactorを導出するのに使用される。
【0068】
7.4.5 スケーリングリストデータの意味論
scaling_list_pred_mode_flag[sizeId][matrixId]が0である場合、スケーリングリストの値が参照スケーリングリストの値と同じであることを規定する。参照スケーリングリストは、scaling_list_pred_matrix_id_delta[sizeId][matrixId]により規定される。
scaling_list_pred_mode_flag[sizeId][matrixId]が1である場合、スケーリングリストの値は明示的に信号通知されることを規定する。
scaling_list_pred_matrix_id_delta[sizeId][matrixId]は、ScalingList[sizeId][matrixId]を導出するための参照スケーリングリストを以下のように規定する。
- scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0である場合、i=0..Min(63,(1<<(4+(sizeId<<1)))-1)に対して表7-5および表7-6に規定するように、デフォルトのスケーリングリストScalingList[sizeId][matrixId][i]から推論される。
- そうでない場合、スケーリングリストは、参照スケーリングリストから以下のように推論される。
refMatrixId=matrixId-
scaling_list_pred_matrix_id_delta[sizeId][matrixId]*(sizeId==3?3:1) (7-42)
ScalingList[sizeId][matrixId][i]=ScalingList[sizeId][refMatrixId][i]
with i=0..Min(63,(1<<(4+(sizeId<<1)))-1) (7-43)
sizeIdが2以下である場合、scaling_list_pred_matrix_id_delta[sizeId][matrixId]の値は、0からmatrixIdまでの範囲内にあるべきである。そうでない場合(sizeIdが3である)、scaling_list_pred_matrix_id_delta[sizeId][matrixId]の値は、0からmatrixId/3までの範囲内にあるべきである。
表7-3 - sizeIdの仕様
【0069】
【0070】
表7-4 - sizeId、予測モード、および色成分に基づくmatrixIdの仕様
【0071】
【0072】
scaling_list_dc_coef_minus8[sizeId-2][matrixId]+8 sizeIdが2である場合、16×16サイズのスケーリングリストの変数ScalingFactor[2][matrixId][0][0]の値を規定し、sizeIdが3である場合、32×32サイズのスケーリングリストのScalingFactor[3][matrixId][0][0]の値を規定する。scaling_list_dc_coef_minus8[sizeId-2][matrixId]の値は、-7~247の範囲内にあるべきである。
scaling_list_pred_mode_flag[sizeId][matrixId]が0、scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0、sizeIdが1より大きい場合、scaling_list_dc_coef_minus8[sizeId-2][matrixId]の値は、8になると推論される。
scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0でなく、sizeIdが1より大きい場合、scaling_list_dc_coef_minus8[sizeId-2][matrixId]の値は、scaling_list_dc_coef_minus8[sizeId-2][refMatrixId]であると推論される。ここで、refMatrixIdの値は数式7-42によって与えられる。
scaling_list_delta_coefは、scaling_list_pred_mode_flag[sizeId][matrixId][i]が1である場合、現在の行列係数ScalingList[sizeId][matrixId][i]と前回の行列係数ScalingList[sizeId][matrixId][i-1]との差を規定する。scaling_list_delta_coefの値は、-128以上127以下とする。ScalingList[sizeId][matrixId][i]の値は、0よりも大きい。
表7-5 - i=0..15の場合のScalingList[0][matrixId][i]のデフォルト値の仕様
【0073】
【0074】
表7-6 - i=0..63の場合のScalingList[1..3][matrixId][i]のデフォルト値の仕様
【0075】
【0076】
4次元配列ScalingFactor[sizeId][matrixId][x][y],with x,y=0..(1<<(2+sizeId))-1は、表7-3に規定された変数sizeIdおよび表7-4に規定されたmatrixIdに従って、倍率の配列を規定する。
サイズ4×4の量子化行列の要素であるScalingFactor[0][matrixId][][]は、以下のように導出される。
ScalingFactor[0][matrixId][x][y]=ScalingList[0][matrixId][i] (7-44)
with i=0..15,matrixId=0..5,x=ScanOrder[2][0][i][0],and y=ScanOrder[2][0][i][1]
サイズ8×8の量子化行列の要素であるScalingFactor[1][matrixId][][]は、以下のように導出される。
ScalingFactor[1][matrixId][x][y]=ScalingList[1][matrixId][i] (7-45)
with i=0..63,matrixId=0..5,x=ScanOrder[3][0][i][0],and y=ScanOrder[3][0][i][1]
サイズ16×16の量子化行列の要素であるScalingFactor[2][matrixId][][]は、以下のように導出される。
ScalingFactor[2][matrixId][x*2+k][y*2+j]=ScalingList[2][matrixId][i] (7-46)
with i=0..63,j=0..1,k=0..1,matrixId=0..5,x=ScanOrder[3][0][i][0],and y=ScanOrder[3][0][i][1]
ScalingFactor[2][matrixId][0][0]=scaling_list_dc_coef_minus8[0][matrixId]+8 (7-47)
with matrixId=0..5
サイズ32×32の量子化行列の要素であるScalingFactor[3][matrixId][][]は、以下のように導出される。
ScalingFactor[3][matrixId][x*4+k][y*4+j]=ScalingList[3][matrixId][i] (7-48)
with i=0..63,j=0..3,k=0..3,matrixId=0,3,x=ScanOrder[3][0][i][0],and y=ScanOrder[3][0][i][1]
ScalingFactor[3][matrixId][0][0]=scaling_list_dc_coef_minus8[1][matrixId]+8 (7-49)
with matrixId=0,3
ChromaArrayTypeが3である場合、matrixId=1,2,4,5の場合、サイズ32×32のクロマ量子化行列の要素ScalingFactor[3][matrixId][][]は、以下のように導出される。
ScalingFactor[3][matrixId][x*4+k][y*4+j]=ScalingList[2][matrixId][i] (7-50)
with i=0..63,j=0..3,k=0..3,x=ScanOrder[3][0][i][0],and y=ScanOrder[3][0][i][1]
ScalingFactor[3][matrixId][0][0]=scaling_list_dc_coef_minus8[0][matrixId]+8 (7-51)
【0077】
2.5.VVCにおける変換および量子化設計
2.5.1.MTS(多重変換選択)
離散正弦関数変換ファミリーは、周知の離散フーリエ、コサイン、サイン、およびカルーネン-レーベ(1次マルコフ条件下)変換を含む。すべてのメンバーの中で、コサイン関数に基づく8つのタイプの変換、およびサイン関数に基づく8つのタイプの変換、すなわち、それぞれ、DCT-I、II、・・、VIII、およびDST-I、II、・・・、VIIIがある。これらの離散コサイン変換およびサイン変換の変形は、それらに対応する対称-周期的シーケンスの異なる対称性に由来する。提案される方法に利用されるような、選択されたタイプのDCTおよびDSTの変換基底関数を、以下の表1にまとめる。
表1.N点入力用DCT-II/V/VIII、DST-I/VIIの変換ベースの関数
【0078】
【0079】
1つのブロックに対して、変換スキップまたはDCT2/DST7/DCT8のいずれかを選択することができる。このような方法は、多重変換選択(Multiple Transform Selection、MTS)と呼ばれる。
【0080】
MTSスキームを制御するために、SPSレベルにおいて、イントラおよびインターに対してそれぞれ別個の有効化フラグを規定する。SPSにおいてMTSが有効化されると、MTSが適用されているかどうかを示すように、CUレベルフラグが信号通知される。ここで、MTSは輝度に対してのみ適用される。MTS CUレベルフラグは、以下の条件が満たされる場合に信号通知される。
- 幅および高さが共に32以下
- CBF フラグが1である
【0081】
MTS CUフラグがゼロである場合、DCT2が両方向に適用される。しかしながら、MTS CUフラグが1である場合、2つの他のフラグが追加的に信号通知され、それぞれ水平方向および垂直方向の変換タイプを示す。以下の表に示すように、マッピングテーブルを変換し、信号通知する。行列精度を変換する場合、8ビットのプライマリ変換コアを使用する。そのため、HEVCで使用されるすべての変換コアは、4ポイントDCT-2、DST-7、8ポイント、16ポイント、32ポイントDCT-2など、同じに保たれる。また、64ポイントDCT-2、4ポイントDCT-8、8ポイント、16ポイント、32ポイントDST-7、DCT-8などの他の変換コアは、8ビットのプライマリ変換コアを使用する。
表6.N点入力用DCT-II/V/VIII、DST-I/VIIの変換ベースの関数
【0082】
【0083】
HEVCにおけるように、ブロックの残差は、変換スキップモードで符号化してもよい。構文符号化の冗長性を回避するために、CUレベルMTS_CU_flagがゼロでない場合、変換スキップフラグは信号通知されない。変換スキップのブロックサイズの制限は、JEM4におけるMTSの場合と同じであり、ブロックの幅および高さが両方とも32以下である場合、変換スキップがCUに適用可能であることを示す。
【0084】
2.5.1.1.高周波数のゼロ化
VTM4において、サイズが64×64までの大きなブロックサイズの変換が有効化され、これは、主に高解像度映像、例えば、1080pおよび4Kシーケンスに有用である。サイズ(幅または高さ、または幅と高さの両方)が64である変換ブロックに対して、高周波数変換係数をゼロにし、低周波数係数のみを保持する。例えば、M×N変換ブロックの場合、ブロック幅をM、ブロック高さをNとすると、Mが64である場合、左32列の変換係数のみが保持される。同様に、Nが64である場合、変換係数の上位32行のみが保持される。大きなブロックに対して変換スキップモードを使用する場合、値をゼロ化することなくブロック全体を使用する。
【0085】
大きなサイズのDST-7およびDCT-8の複雑性を低減するために、サイズ(幅または高さ、または幅と高さの両方)が32であるDST-7およびDCT-8ブロックに対して、高周波数変換係数をゼロ化する。16×16個の低周波数領域内の係数のみが保持される。
【0086】
2.5.2.縮小セカンダリ変換
JEMにおいて、セカンダリ変換は、順方向プライマリ変換と量子化(エンコーダにおいて)の間、および逆量子化と逆方向プライマリ変換(デコーダ側において)の間に適用される。
図2に示すように、ブロックサイズにより4×4(または8×8)個のセカンダリ変換を行う。例えば、4×4のセカンダリ変換は、小さなブロック(すなわち、min(幅、高さ)<8)に適用され、8×8のセカンダリ変換は、8×8ブロック当たりより大きなブロック(すなわち、min(幅、高さ)>4)に適用される。
【0087】
セカンダリ変換には、非可分変換が適用されるので、これは非可分二次変換(Non-Separable Secondary Transform、NSST)とも呼ばれている。全体で35個の変換セットがあり、1つの変換セット当たり3つの非可分変換行列(カーネル、それぞれ16×16行列を有する)が使用される。
【0088】
イントラ予測方向に従って、JVET-K0099では縮小セカンダリ変換(RST)が導入され、JVET-L0133では4つの変換セット(35の変換セットの代わりに)マッピングが導入された。この寄与において、、8×8ブロックおよび4×4ブロックのために、それぞれ16×48および16×16行列が使用される。表記の便宜上、16×48変換をRST8×8として、16×16変換をRST4×4として表す。このような方法は、近年、VVCによって採用されている。
【0089】
図3は、縮小セカンダリ変換(RST)を例示している。
【0090】
セカンダリの順方向および逆方向変換は、プライマリ変換の処理ステップとは別個の処理ステップである。
【0091】
エンコーダの場合、まずプライマリ順方向変換を行い、次にセカンダリ順方向変換および量子化、並びにCABACビット符号化を行う。デコーダ、CABACビット復号化、および逆量子化の場合、まずセカンダリ逆変換を実行し、次にプライマリ逆変換を行う。
【0092】
RSTは、イントラ符号化TUsにのみ適用される。
【0093】
2.5.3.量子化
VTM4において、最大QPは51から63に拡大し、そして最初のQPの信号通知はそれに応じて変化した。slice_qp_deltaの非ゼロ値を符号化する場合、SliceQpYの初期値はスライスセグメント層で変更される。具体的には、init_qp_minus26の値を、-(26+QpBdOffsetY)~+37の範囲に修正する。
【0094】
また、同じHEVCスカラー量子化が、従属スカラー量子化と呼ばれる新しい概念とともに使用される。従属スカラー量子化は、変換係数のための許容可能な再構成値の集合が、再構成順に現在の変換係数レベルに先行する変換係数レベルの値に依存するアプローチを指す。このアプローチの主な効果は、HEVCで使用されるような従来の独立したスカラー量子化に比べ、許容可能な再構成ベクトルがN次元ベクトル空間においてより密にパックされる(Nは変換ブロックにおける変換係数の数を表す)ことである。これは、N次元単位体積当たりの許容可能な再構成ベクトルの所与の平均数に対して、入力ベクトルと最も近い再構成ベクトルとの平均歪みが低減されることを意味する。従属スカラー量子化のアプローチは、(a)異なる再構成レベルを有する2つのスカラー量子化モジュールを規定すること、および(b)2つのスカラー量子化モジュールを切り替えるプロセスを規定することによって実現される。
【0095】
図4は、提案された従属量子化方法に使用される2つのスカラー量子化モジュールを示す図である。
【0096】
Q0およびQ1で表される、使用される2つのスカラー量子化モジュールを
図4に示す。利用可能な再構成レベルの位置は、量子化ステップサイズΔによって一意に規定される。使用されるスカラー量子化モジュール(Q0またはQ1)は、ビットストリームにおいて明確に信号通知されない。その代わりに、現在の変換係数に使用される量子化モジュールは、符号化/再構成順に現在の変換係数に先行する変換係数レベルのパリティによって判定される。
【0097】
図5に示すように、2つのスカラー量子化モジュール(Q0およびQ1)の切り替えは、4つの状態を有するステートマシンによって実現される。この状態は、4つの異なる値をとることができる。0,1,2,3.これは、符号化/再構成順に現在の変換係数に先行する変換係数レベルのパリティによって一意に判定される。変換ブロックの逆量子化の開始時に、状態を0に等しく設定する。変換係数は、走査順に(即ち、それらがエントロピー復号化されるのと同じ順に)再構成される。今回の変換係数を再構成した後、
図5に示すように、変換係数レベルの値をkとすると、次のように更新される。
2.5.4.JVET-N0847におけるユーザ定義量子化行列
【0098】
この寄与において、VTM4.0の上にデフォルトおよびユーザ定義のスケーリング行列を信号通知するためのサポートを追加することが提案される。この提案は、ブロックのより大きいサイズ範囲(輝度の場合、4×4~64×64、クロマの場合、2×2~32×32)、矩形TB、従属量子化、多重変換選択(MTS)、ゼロ化(zeroing-out)高周波数係数を用いた大きな変換(TBの場合、スケーリング行列のワンステップ定義手順に整列される)、イントラサブブロック分割(ISP)、およびイントラブロックコピー(IBC、現在のピクチャの参照CPRとしても知られる)に準拠する。
【0099】
以下に準拠するように、VTM4.0の上にデフォルトおよびユーザ定義のスケーリング行列の信号通知をサポートするために構文を追加することが提案される。
- スケーリング行列の3つのモードOFF、DEFAULT、およびUSER_DEFINED
- ブロックのより大きいサイズ範囲(輝度に対して4×4~64×64、クロマに対して2×2~32×32)
- 矩形変換ブロック(TBs)
- 従属量子化
- 多重変換選択(MTS)
- ゼロ化した高周波数係数を有する大きな変換
- イントラサブブロック分割(ISP)
- イントラブロックコピー(IBC、現在のピクチャの参照CPRとしても知られる)は、イントラ符号化ブロックと同じQMを共有する。
- DEFAULTスケーリング行列は、すべてのTBサイズに対してフラットであり、デフォルト値は16である。
- スケーリング行列は、以下のために適用されてはならない。
○ すべてのTBサイズに対するTS
○ セカンダリ変換(別名RST)
【0100】
2.5.4.1.二乗変換サイズのためのQMの信号通知
2.5.4.1.1.スケーリング行列における要素の走査順序
これらの素子は、係数符号化に使用されるのと同じ走査順に、即ち対角走査順に符号化される。対角走査順序の一例を
図6A-6Bに示す。
【0101】
図6A-
図6Bは、対角走査順序の例を示す。
図6Aは、スキャン方向の例を示す。
図6Bは、個々の要素の座標および走査順序インデックスを示す。
【0102】
この順序に対応する仕様を以下のように定義する。
6.5.2 右上対角走査順序配列初期化処理
この処理には、ブロック幅blkWidthおよびブロックサイズ高さblkHeightが入力される。
【0103】
このプロセスの出力は、array diagScan[sPos][sComp]である。配列インデックスsPosは、0から(blkWidth*blkHeight)-1までの範囲の走査位置を規定する。配列インデックスsCompが0である場合、水平成分が規定され、配列インデックスsCompが1である場合、垂直成分が規定される。blkWidthおよびblkHeightの値に基づいて、配列diagScanは、以下のように導出される。
i=0
x=0
y=0
stopLoop=FALSE
while(!stopLoop){
while(y>=0){
if(x<blkWidth&&y<blkHeight){(6-11)
diagScan[i][0]=x
diagScan[i][1]=y
i++
}
y--
x++
}
y=x
x=0
if(i>=blkWidth*blkHeight)
stopLoop=TRUE
}
【0104】
2.5.4.1.2.選択要素の符号化
DC値(すなわち、行列の左上の0である走査インデックスに位置する要素)は、以下のスケーリング行列、16×16、32×32および64×64のために別個に符号化される。
8×8(N<=8)以下のサイズのTB(N×N)の場合
8×8以下のサイズのTBの場合、1つのスケーリング行列におけるすべての要素が信号通知される。
8×8(N>8)より大きいサイズのTB(N×N)の場合
【0105】
TBのサイズが8×8よりも大きい場合、1つの8×8スケーリング行列における64個の要素のみが、基本スケーリング行列として信号通知される。64個の要素は、座標(m*X,m*Y)に対応し、ここで、m=N/8であり、X、Yは、[0…7]である。すなわち、1つのN×N個のブロックを複数のm×m個の非重複領域に分割し、領域ごとに同じ要素を共有し、この共有された要素が信号通知される。
【0106】
8×8より大きいサイズの正方行列を得るために、8×8基本スケーリング行列を、対応する正方形のサイズ(すなわち、16×16、32×32、64×64)にアップサンプリングする(要素の複製による)。
【0107】
32×32および64×64を例として、信号通知されるべき素子の選択された位置に丸印を付ける。各正方形は1つの要素を表す。
【0108】
図7は、QM信号通知(32×32変換サイズ)のために選択された位置の例を示す。
【0109】
図8は、QM信号通知(64×64変換サイズ)のために選択された位置の例を示す。
2.5.4.2.非二乗変換サイズに対するQMの導出
【0110】
非二乗変換サイズのためのQMの追加の信号通知はない。その代わりに、非二乗変換サイズのQMは、二乗変換サイズのQMから導出される。例を
図7に示す。
【0111】
具体的には、矩形TBのためのスケーリング行列を生成する場合、以下の2つの場合を考える。
1.矩形行列Hの高さは、幅Wより大きく、次に、サイズW×Hの矩形TBのためのScalingMatrixは、次のようなサイズbaseL×baseLから定義され、baseLはmin(log2(H),3)である。
【0112】
【0113】
2.矩形行列Hの高さは、幅Wより小さく、次に、サイズW×Hの矩形TBのためのスケーリング行列を、サイズbaseL×baseLの参照スケーリング行列から次のように定義する。式中、baseLはmin(log2(W),3)である。
【0114】
【0115】
ここで、int(x)は、端数部分を切り捨ててxの値を変更する。
【0116】
図8は、正方形ブロックからの非正方形ブロックのQM導出の例を示し、(a)8×8ブロックから導出された2×8ブロックのQM、(b)その8×8ブロックから導出された8×2ブロックのQMである。
【0117】
2.5.4.3.ゼロ化した変換ブロックのためのQMの信号通知
また、64点変換のために高周波数係数のゼロ化を適用する場合、対応するスケーリング行列の高周波数もゼロ化される。すなわち、TBの巾または高さが32以上である場合、
図9に示すように、係数の左側または上側半分のみを維持し、残りの係数に0を割り当てる。そのため、式(1)、(2)に従って矩形行列を得る場合はチェックを行って、ScalingMatrix(i,j)の対応する要素に0を割り当てる。
2.5.4.4.量子化行列の構文、意味論
【0118】
SPSおよびPPSには、HEVCと同じ構文要素が付加されている。しかしながら、スケーリングリストデータ構文の信号通知が以下のように変更される。
7.3.2.11 スケーリングリストデータ構文
【0119】
【0120】
7.4.3.11 スケーリングリストデータの意味論
scaling_list_pred_mode_flag[sizeId][matrixId]が0である場合、スケーリングリストの値が参照スケーリングリストの値と同じであることを規定する。参照スケーリングリストは、scaling_list_pred_matrix_id_delta[sizeId][matrixId]により規定される。
scaling_list_pred_mode_flag[sizeId][matrixId]が1である場合、スケーリングリストの値は明示的に信号通知されることを規定する。
scaling_list_pred_matrix_id_delta[sizeId][matrixId]は、ScalingList[sizeId][matrixId]を導出するために使用される参照スケーリングリストを規定し、ScalingList[sizeId][matrixId]の導出は、以下のように、scaling_list_pred_matrix_id_delta[sizeId][matrixId]に基づく。
-scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0である場合、スケーリングリストは、i=0..Min(63,(1<<(sizeId<<1))-1)について表7-15、表7-16、表7-17、表7-18に規定されるように、デフォルトのスケーリングリストScalingList[sizeId][matrixId][i]から推論される。
-そうでない場合、スケーリングリストは、参照スケーリングリストから以下のように推論される。
sizeId=1…6の場合、
refMatrixId=matrixId-scaling_list_pred_matrix_id_delta[sizeId][matrixId]*(sizeId==6 ?3:1) (7-XX)
sizeIdが1である場合、refMatrixIdの値は0または3でない。あるいは、sizeIdが5以下である場合、scaling_list_pred_matrix_id_delta[sizeId][matrixId]の値は、0からmatrixIdまでの範囲内にあるべきである。そうでない場合(sizeIdが6である)、scaling_list_pred_matrix_id_delta[sizeId][matrixId]の値は、0からmatrixId/3までの範囲内にあるべきである。
表7-13 - sizeIdの仕様
【0121】
【0122】
表7-14 - sizeId、予測モードおよび色成分に基づくmatrixIdの仕様
【0123】
【0124】
scaling_list_dc_coef_minus8[sizeId][matrixId]+8sizeIdが4である場合、16×16サイズのスケーリングリストの変数ScalingFactor[4][matrixId][0][0]の値を規定し、sizeIdが5である場合、32×32サイズのスケーリングリストのScalingFactor[5][matrixId][0][0]の値を規定し、sizeIdが6の場合に64x64サイズに対するスケーリングリストのScalingFactor[6][matrixId][0][0]の値を規定する。scaling_list_dc_coef_minus8[sizeId][matrixId]の値は、-7~247の範囲内にあるべきである。
scaling_list_pred_mode_flag[sizeId][matrixId]が0、scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0、sizeIdが3より大きい場合、scaling_list_dc_coef_minus8[sizeId][matrixId]の値は、8になると推論される。
scaling_list_pred_matrix_id_delta[sizeId][matrixId]が0でなく、sizeIdが3より大きい場合、scaling_list_dc_coef_minus8[sizeId][matrixId]の値は、scaling_list_dc_coef_minus8[sizeId][refMatrixId]であると推論され、ここで、refMatrixIdの値は数式7-XXによって与えられる。
scaling_list_delta_coefは、scaling_list_pred_mode_flag[sizeId][matrixId][i]が1である場合、現在の行列係数ScalingList[sizeId][matrixId][i]と前回の行列係数ScalingList[sizeId][matrixId][i-1]との差を規定する。scaling_list_delta_coefの値は、-128以上127以下とする。ScalingList[sizeId][matrixId][i]の値は、0よりも大きい。When scaling_list_pred_mode_flag[sizeId][matrixId]が1の場合、かつscaling_list_delta_coefが存在しない場合、ScalingList[sizeId][matrixId][i]の値は、0であると推論される。
表7-15 - ScalingList[1][matrixId][i]のデフォルト値の仕様(i=0..3)
【0125】
【0126】
表7-16 - i=0..15の場合のScalingList[2][matrixId][i]のデフォルト値の仕様
【0127】
【0128】
表7-17 - i=0..63の場合のScalingList[3...6][matrixId][i]のデフォルト値の仕様
【0129】
【0130】
表7-18 - ScalingList[6][matrixId][i]のデフォルト値の仕様(i=0..63)
【0131】
【0132】
5次元配列ScalingFactor[sizeId][sizeId][matrixId][x][y](x,y=0..(1<<sizeId)-1)は、表7-13に規定する変数sizeIdおよび表7-14に規定するmatrixIdに従って、倍率の配列を規定する。
サイズ2×2の量子化行列の要素であるScalingFactor[1][matrixId][][]は、以下のように導出される。
ScalingFactor[1][1][matrixId][x][y]=ScalingList[1][matrixId][i] (7-XX)
with i=0..3,matrixId=1,2,4,5,x=DiagScanOrder[1][1][i][0],and y=DiagScanOrder[1][1][i][1]
サイズ4×4の量子化行列の要素であるScalingFactor[2][matrixId][][]は、以下のように導出される。
ScalingFactor[2][2][matrixId][x][y]=ScalingList[2][matrixId][i] (7-XX)
with i=0..15,matrixId=0..5,x=DiagScanOrder[2][2][i][0],and y=DiagScanOrder[2][2][i][1]
サイズ8×8の量子化行列の要素であるScalingFactor[3][matrixId][][]は、以下のように導出される。
ScalingFactor[3][3][matrixId][x][y]=ScalingList[3][matrixId][i] (7-XX)
with i=0..63,matrixId=0..5,x=DiagScanOrder[3][3][i][0],and y=DiagScanOrder[3][3][i][1]
サイズ16×16の量子化行列の要素であるScalingFactor[4][matrixId][]は、以下のように導出される。
ScalingFactor[4][4][matrixId][x*2+k][y*2+j]=ScalingList[4][matrixId][i](7-XX)
with i=0..63,j=0..1,k=0..1,matrixId=0..5,x=DiagScanOrder[3][3][i][0],and y=DiagScanOrder[3][3][i][1]
ScalingFactor[4][4][matrixId][0][0]=scaling_list_dc_coef_minus8[0][matrixId]+8 (7-XX)
with matrixId=0..5
サイズ32×32の量子化行列の要素ScalingFactor[5][matrixId][][]は、以下のように導出される。
ScalingFactor[5][5][matrixId][x*4+k][y*4+j]=ScalingList[5][matrixId][i] (7-XX)
with i=0..63,j=0..3,k=0..3,matrixId=0..5,x=DiagScanOrder[3][3][i][0],and y=DiagScanOrder[3][3][i][1]
ScalingFactor[5][5][matrixId][0][0]=scaling_list_dc_coef_minus8[1][matrixId]+8 (7-XX)
with matrixId=0..5
サイズ64×64の量子化行列の要素であるScalingFactor[6][matrixId][][]は、以下のように導出される。
ScalingFactor[6][6][matrixId][x*8+k][y*8+j]=ScalingList[6][matrixId][i] (7-XX)
with i=0..63,j=0..7,k=0..7,matrixId=0,3,x=DiagScanOrder[3][3][i][0],and y=DiagScanOrder[3][3][i][1]
ScalingFactor[6][6][matrixId][0][0]=scaling_list_dc_coef_minus8[2][matrixId]+8 (7-XX)
with matrixId=0,3
ChromaArrayTypeが3である場合、matrixId=1,2,4,5であるなら、サイズ64×64のクロマ量子化行列の要素ScalingFactor[6][6][matrixId][][]は、以下のように導出される。
ScalingFactor[6][6][matrixId][x*8+k][y*8+j]=ScalingList[5][matrixId][i] (7-XX)
with i=0..63,j=0..7,k=0..7,x=DiagScanOrder[3][3][i][0],and y=DiagScanOrder[3][3][i][1]
ScalingFactor[6][6][matrixId][0][0]=scaling_list_dc_coef_minus8[1][matrixId]+8 (7-XX)
//非正方形の場合
長方形のサイズを有する量子化行列の場合、
x=0..(1<<sizeIdW)-1,y=0..(1<<sizeIdH)-1,sizeIdW!=sizeIdHの場合の5次元配列ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y]は、表7-19に規定された変数sizeIdW、sizeIdHに従って、倍率の配列を規定するとともに、次のように導出される。
ScalingList[sizeLid][matrixId][i]により、ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y]を生成することができる。
ただし、sizeLId=max(sizeIdW,sizeIdH),sizeIdW=0,1..6,sizeIdH=0,1..6,matrixId=0..5,x=0..(1<<sizeIdW)-1,y=0..(1<<sizeIdH)-1,,x=DiagScanOrder[k][k][i][0],およびy=DiagScanOrder[k][k][i][1],k=min(sizeLId,3),
およびratioW=(1<<sizeIdW)/(1<<k),ratioH=(1<<sizeIdH)/(1<<k),and ratioWH=(1<<abs(sizeIdW-sizeIdH))。下記の規則を参照:
- (sizeIdW>sizeIdH)の場合、
ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y]
=ScalingList[sizeLId][matrixId][Raster2Diag[(1<<k)*((y*ratioWH)/ratioW)+x/ratioW]]
- その他
ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y]
=ScalingList[sizeLId][matrixId][Raster2Diag[(1<<k)*(y/ratioH)+(x*ratioWH)/ratioH]],
ここで、Raster2Diag[]は、1つの8×8ブロックにおけるラスタ走査位置を対角走査位置に変換する関数である。
//ゼロ化する場合
以下の条件を満たすサンプルに対して、矩形サイズを有する量子化行列をゼロ化する。
- x>32
- y>32
- 復号化されたtuはデフォルトの変換モードで符号化されない(1<<sizeIdW)==32、x>16
- 復号化されたtuはデフォルトの変換モードで符号化されない(1<<sizeIdH)==32、y>16
表7-19 - sizeIdWおよびsizeIdHの仕様
【0133】
【0134】
2.6 量子化残差ブロック差動パルスコード変調
JVET-M0413において、量子化された残差ブロック差動パルスコード変調(QR-BDPCM)が、スクリーンコンテンツを効率的に符号化するために提案されている。
【0135】
QR-BDPCMで使用される予測方向は、垂直予測モードおよび水平予測モードであり得る。イントラ予測は、イントラ予測と同様に、予測方向(水平または垂直予測)にサンプルコピーすることで、ブロック全体で予測する。残差を量子化し、量子化された残差とその予測子(水平または垂直)量子化値との間のデルタを符号化する。これは、以下のように説明することができる。サイズM(行)×N(列)のブロックについて、ri,j,0≦i≦M-1、0≦j≦N-1を、上または左ブロックの境界サンプルからのフィルタリングされていないサンプルを使用して、水平方向(予測ブロックに対して左隣の画素値を1ラインずつコピーする)または垂直方向(予測ブロックにおける各ラインに上隣のラインをコピーする)にイントラ予測を行った後の予測残差とする。Q(ri,j)、0≦i≦M-1、0≦j≦N-1は、残差ri,jの量子化バージョンを表し、この場合、残差は、元のブロックと予測ブロック値との間の差である。次に、ブロックDPCMが量子化された残差サンプルに適用され、その結果、要素r~i,jを有する修正されたM×N個の配列R~が得られる。垂直BDPCMが信号通知されると、以下のようになる。
【0136】
【0137】
水平予測の場合、類似した規則が適用され、残差量子化サンプルは、以下の式によって得られる。
【0138】
【0139】
残差量子化サンプルr~i,jはデコーダに送られる。
【0140】
デコーダ側では、上記の計算を逆にして、Q(ri,j)、0≦i≦M-1、0≦j≦N-1を生成する。垂直予測の場合、
【0141】
【0142】
水平方向の場合、
【0143】
【0144】
逆量子化された残差Q-1(Q(ri,j))をイントラブロック予測値に加算し、再構成されたサンプル値を生成する。
【0145】
このスキームの主な利点は、逆方向のDPCMを、係数の構文解析中にオンザフライで行うことができ、係数の構文解析中に予測子を追加するだけで済むこと、または、構文解析後に行うことができることである。
【0146】
QR-BDPCMの本文変更案を以下に示す。
7.3.6.5 符号化ユニット構文
【0147】
【0148】
dbpcm_flag[x0][y0]が1の場合、位置(x0,y0)の輝度符号化ブロックを含む符号化ユニットにbdpcm_dir_flagが存在することを指定する。
bdpcm_dir_flag[x0][y0]=0は、bdpcmブロックで使用される予測方向が水平であることを指定し、そうでない場合、垂直である。
【0149】
3. 実施形態および技術が解決しようとする技術的課題の例
現在のVVC設計において、量子化行列の観点から以下のような問題が存在する。
1.QR-BDPCMおよびBDPCM-blocksの場合、変換は適用されない。そのため、このようなブロックに対して、他の変換適用ブロックと同様にスケーリング行列を適用することは、最適ではない。
2.IBCおよびイントラ符号化モードは、同じスケーリング行列を共有する。しかしながら、IBCはインター符号化ツールである可能性が高い。そのような設計は妥当でないと思われる。
3.ゼロ化大きなブロックの場合、いくつかの要素が信号通知されるが、ビットを浪費する復号化処理においてゼロにリセットされる。
4.いくつかのフレームワークにおいて、量子化は、常に量子化行列を適用するように行われる。このように、小さなブロックのための量子化行列は、頻繁に行列を変更させる可能性がある。
【0150】
4. 実施形態および技術のリスト化
以下の詳細な発明は、一般的な概念を説明するための例であると考えられるべきである。これらの発明は狭い意味で解釈されるべきではない。さらに、これらの発明は、任意の方法で組み合わせることができる。
1.TS(Transform Skip)フラグがビットストリームにおいて信号通知されない場合、このフラグの値をどのように設定するかは、符号化モード情報に依存し得る。
a.一例において、BDPCM/QR-BDPCM符号化ブロックの場合、TSフラグは1であると推論される。
b.一例において、非BDPCM/QR-BDPCM符号化ブロックの場合、TSフラグは0であると推論される。
2.BDPCM/QR-BDPCM符号化ブロックにスケーリング行列を適用することができることが提案される。
a.代替的に、BDPCM/QR-BDPCM符号化ブロックのためのスケーリング行列を許可しないことが提案される。
b.一例として、BDPCM/QR-BDPCM符号化ブロックのスケーリング行列を選択する方法は、変換スキップ符号化ブロックと同じ方法で行われ得る。
c.一例において、BDPCM/QR-BDPCM符号化ブロックのためのスケーリング行列をどのように選択するかは、1つまたは複数の変換がブロックに適用されるかに依存し得る。
i.一例において、1つのBDPCM/QR-BDPCM符号化ブロックに1つ以上の変換を適用する場合、スケーリング行列は許可され得る。
ii.一例において、1つまたは複数の変換がBDPCM/QR-BDPCM符号化ブロックに適用される場合、BDPCM/QR-BDPCM符号化ブロックのためのスケーリング行列をどのように選択するかは、1つのイントラ符号化ブロックと同様にして行われ得る。
3.インループフィルタ(非ブロック化フィルタ)および/または他の再構成後フィルタにおいて、2つの隣接するブロック間のサンプル/エッジをフィルタリングするかどうか、および/またはどのようにフィルタリングするかは、2つの隣接するブロックのいずれかまたは両方が変換スキップ(TS)モードで符号化されるかどうかに依存し得る。
a.インループフィルタ(非ブロック化フィルタ)および/または他の再構成後フィルタにおいて、2つの隣接するブロック間のサンプル/エッジをフィルタリングするかどうか、および/またはどのようにフィルタリングするかは、2つの隣接するブロックがTS、BDPCM、QR-BDPCM、パレットモードで符号化されるかどうかに依存し得る。
b.一例において、境界フィルタリング強度の導出は、2つの隣接するブロックの一方または両方のTSモードフラグに依存し得る。
c.一例において、TS符号化ブロックに位置するサンプルの場合、非ブロック化フィルタ/サンプル適応オフセット/適応ループフィルタ/他の種類のインループフィルタ/他の再構成後フィルタは、無効化されてもよい。
i.一例において、2つの隣接するブロックが両方とも変換スキップモードで符号化される場合、これらの2つの間でこのようなエッジをフィルタリングする必要がない。
ii.一例において、2つの隣接するブロックのうちの一方が変換スキップモードで符号化され、他の一方が符号化されていない場合、TS符号化ブロックに位置するサンプルをフィルタリングする必要がない。
d.代替的に、TS符号化ブロックに位置するサンプルに対して、異なるフィルタ(例えば、より平滑なフィルタ)を許可してもよい。
e.インループフィルタ(例えば、非ブロック化フィルタ)および/または他の再構成後フィルタ(例えば、双方向フィルタ、拡散フィルタ)の処理中、PCM/BDPCM/QR-BDPCMで符号化されたブロック、および/または変換が適用されない他の種類のモードは、上述したように、TSモードで符号化されたものと同様に処理されてもよい。
4.IBCおよびインター符号化モードで符号化されたブロックは、同じスケーリング行列を共有してもよい。
5.スケーリング行列の選択は、変換行列のタイプに依存し得る。
a.一例において、スケーリング行列の選択は、ブロックがDCT2などのデフォルト変換を使用するかどうかに依存し得る。
b.一例において、スケーリング行列は、複数の変換行列タイプに対して別々に信号通知されてもよい。
6.スケーリング行列の選択は、1つのブロックの動き情報に依存し得る。
a.一例において、スケーリング行列の選択は、ブロックがサブブロック符号化モード(例えば、アフィンモード)で符号化されているかどうかに依存し得る。
b.一例において、アフィンモードと非アフィンモードとで別々にスケーリング行列を信号通知してもよい。
c.一例において、スケーリング行列の選択は、ブロックがアフィンイントラ予測モードで符号化されるかどうかに依存し得る。
7.セカンダリ変換符号化ブロックのためにスケーリング行列を無効化する代わりに、スケーリング行列を有効にすることが提案される。仮に変換ブロックのサイズをK×Lで表すとしたら、左上のM×Nブロックに対してセカンダリ変換を行う。
a.セカンダリ変換および/または低減されたセカンダリ変換および/または回転変換に対して、タイルグループヘッダ/スライスヘッダ/PPS/VPS/SPSにおいてスケーリング行列を信号通知することができる。
b.一例において、セカンダリ変換が適用されるか否かに従って、スケーリング行列を選択してもよい。
i.一例において、左上のM×Nブロックのためのスケーリング行列の要素は、セカンダリ変換が適用されるか否かについて別個に信号通知されてもよい。
c.代替的に、スケーリング行列は、セカンダリ変換が適用されない領域にのみ適用可能であってもよい。
d.一例において、左上のM×N領域を除く残りの部分は、依然としてスケーリング行列を適用してもよい。
e.代替的に、スケーリング行列は、セカンダリ変換が適用される領域にのみ適用可能であってもよい。
8.正方形ブロックから非正方形ブロックのためのスケーリング行列を導出する代わりに、非正方形ブロックのためのスケーリング行列を信号通知することが提案される。
a.一例において、非正方形ブロックのためのスケーリング行列は、正方形ブロックからの予測で符号化されてもよく、スケーリング行列は有効化されてもよい。
9.いくつかの位置に対するスケーリング行列の使用を無効化し、ブロック内の残りの位置に対するスケーリング行列を有効化することが提案される。
a.例えば、1つのブロックがM*N個よりも多い位置を含む場合、左上のM*N個の領域のみがスケーリング行列を使用してもよい。
b.例えば、1つのブロックがM*N個よりも多い位置を含む場合、上位M*N個の位置のみがスケーリング行列を使用してもよい。
c.例えば、1つのブロックがM*N個よりも多い位置を含む場合、左側のM*N個の位置のみがスケーリング行列を使用してもよい。
10.スケーリング行列に信号通知されるべき要素が何個あるかは、ゼロ化が適用されるかどうかに依存し得る。
a.一例において、64×64変換の場合、左上のM×N個の変換係数のみが保持され、残りの係数はすべてゼロ化されると仮定する。そして、信号通知されるべき要素の数は、M/8*N/8として導出されてもよい。
11.ゼロ化のある変換の場合、ゼロ化領域に位置するスケーリング行列における要素の信号通知を無効化することが提案される。K×L変換の場合を仮定すると、左上のM×N個の変換係数のみが保持され、残りの係数はすべてゼロ化している。
a.一例において、K=L=64、M=N=32である。
b.一例において、左上のM×N領域の外側の位置に対応するスケーリング行列において要素の信号通知は、省略される。
図10は、破線領域(例えば、M×N領域)における選択された要素のみが信号通知される例を示す。
c.一例において、スケーリング行列において要素を選択するためのサブサンプリング比は、Kおよび/またはLによって判定されてもよい。
i.例えば、変換ブロックを複数のサブ領域に分割し、各サブ領域のサイズをUw*Uhとする。左上のM×N領域の各サブ領域内に位置する1つの要素を信号通知することができる。
ii.代替的に、符号化されるべき要素の数は、Mおよび/またはNに依存し得る。
1)一例において、このようなゼロ化のあるK×L変換に対して何個の要素が符号化されるべきかは、ゼロ化のないM×N変換ブロックに対するものとは異なる。
d.一例において、スケーリング行列において要素を選択するためのサブサンプリング比は、KおよびLの代わりにMおよび/またはNによって判定されてもよい。
i.例えば、M×N領域は、複数のサブ領域に分割される。各(M/Uw,N/Uh)領域内の1つの要素が信号通知されてもよい。
ii.代替的に、さらに、このようなゼロ化のあるK×L変換に対して何個の要素が符号化されるべきかは、ゼロ化のないM×N変換ブロックに対するものと同じである。
e.一例において、K=L=64,M=N=32,Uw=Uh=8である。
12.小さなサイズのブロックのような、あるブロックサイズに対して、1つの量子化行列のみを使用することが提案される。
a.一例において、W×Hより小さいすべてのブロックは、ブロックのタイプにかかわらず、2つ以上の量子化行列を使用することが許可されないことがある。
b.一例において、閾値より小さい幅を有するすべてのブロックは、2つ以上の量子化行列を使用することが許可されない場合がある。
c.一例において、高さが閾値よりも小さいすべてのブロックは、2つ以上の量子化行列を使用することが許可されないことがある。
d.一例において、量子化行列は、小さなサイズのブロックに適用されなくてもよい。
13.上記の黒点は、変換を適用しない(またはアイデンティティ変換を適用しない)他の符号化方法にも適用可能である。
a.一例において、上記の黒点は、「TS/BDPCM/QR-BDPCM」を「Palette」に置き換えることによって、パレットモードで符号化されたブロックに適用可能である。
【0151】
5. 実施形態
5.1. 非ブロック化フィルタについての実施形態#1
【化1】
【0152】
8.8.2 非ブロック化フィルタ処理
8.8.2.1 一般
この処理への入力は、非ブロック化前の再構成ピクチャ、即ち配列recPictureLであり、且つChromaArrayTypeが0でない場合、配列recPictureCbおよびrecPictureCrである。
この処理の出力は、非ブロック化後の修正された再構成ピクチャ、即ち配列recPictureLであり、ChromaArrayTypeが0でない場合、配列recPictureCbおよびrecPictureCrである。
まずピクチャの垂直エッジを選別する。そして、垂直エッジフィルタリング処理で修正されたサンプルを入力として、ピクチャの水平エッジをフィルタリングする。各CTUのCTBにおける垂直および水平エッジは、符号化ユニットごとに別個に処理される。符号化ユニットにおける符号化ブロックの垂直エッジは、符号化ブロックの左側のエッジから始まり、符号化ブロックの右側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。符号化ユニットにおける符号化ブロックの水平エッジは、符号化ブロックの上側のエッジから始まり、符号化ブロックの下側に向かってそれらの幾何学的順にエッジを通って進むようにフィルタリングされる。
注 - 本願明細書において、フィルタリング処理はピクチャ単位で述べられているが、同じ出力値を生成するように、デコーダが処理の従属順序を適切に考慮すれば、フィルタリング処理は等価な結果を有する符号化単位で実施されてもよい。
非ブロック化フィルタ処理は、以下のタイプのエッジを除き、ピクチャのすべての符号化サブブロックのエッジおよび変換ブロックのエッジに適用される。
- ピクチャの境界にあるエッジ、
- pps_loop_filter_across_virtual_boundaries_disabled_flagが1である場合、ピクチャの仮想境界に合致するエッジ
- loop_filter_across_bricks_enabled_flagが0である場合、ブリックの境界に合致するエッジ
- slice_loop_filter_across_slices_enabled_flagが0である、またはslice_deblocking_filter_disabled_flagが1である場合、スライスの上または左の境界に一致するエッジ
- slice_deblocking_filter_disabled_flagが1であるスライス内のエッジ
- 考慮される成分の8×8個のサンプルグリッド境界に対応しないエッジ
- エッジの両側がインター予測を用いるクロマ成分内のエッジ
- 関連付けられた変換ユニットのエッジでないクロマ変換ブロックのエッジ
- IntraSubPartitionsSplit値がISP_NO_SPLITでない符号化ユニットの輝度変換ブロック全体のエッジ
【化2】
【0153】
5.2. スケーリング行列に関する実施形態#2
この章は、章4の黒点11.dの例を提供する。
【0154】
【化3】
サイズ64×64の量子化行列の要素であるScalingFactor[6][matrixId][][]は、以下のように導出される。
【化4】
また、
【化5】
ScalingFactor[6][6][matrixId][0][0]=scaling_list_dc_coef_minus8[2][matrixId]+8 (7-XX)
with matrixId=0,3
//ゼロ化する場合
以下の条件を満たすサンプルに対して、矩形サイズを有する量子化行列をゼロ化する。
【化6】
- 復号化されたtuはデフォルトの変換モードにより符号化されない(1<<sizeIdW)==32、x>16
- 復号化されたtuはデフォルトの変換モードでは符号化されない(1<<sizeIdH)==32、y>16
【0155】
5.3. スケーリング行列に関する実施形態#3
この章では、章4の黒点9、11.cの例を示す。
【化7】
7.3.2.11 スケーリングリストデータ構文
【0156】
【0157】
サイズ64×64の量子化行列の要素であるScalingFactor[6][matrixId][][]は、以下のように導出される。
【化8】
また、
【化9】
ScalingFactor[6][6][matrixId][0][0]=scaling_list_dc_coef_minus8[2][matrixId]+8 (7-XX)
with matrixId=0,3
//ゼロ化する場合
以下の条件を満たすサンプルに対して、矩形サイズを有する量子化行列をゼロ化する。
【化10】
- 復号化されたtuはデフォルトの変換モードにより符号化されない(1<<sizeIdW)==32、x>16
- 復号化されたtuはデフォルトの変換モードでは符号化されない(1<<sizeIdH)==32、y>16
【0158】
5.4. スケーリング行列に関する実施形態#4
本章は、QR-BDPCM符号化ブロックのためのスケーリング行列を許可しない例を提供する。
【化11】
8.7.3 変換係数のスケーリング処理
この処理への入力は以下の通りである。
- 現在のピクチャの左上の輝度サンプルに対する現在の輝度変換ブロックの左上のサンプルを規定する輝度位置(xTbY,yTbY)
- 変換ブロックの幅を指定する変数nTbW、
- 変換ブロックの高さを指定する変数nTbH、
- 現在のブロックの色成分を規定する変数cIdx、
- 現在の色成分のビット深度を指定する変数bitDepth。
この処理の出力は、要素d[x][y]を有するスケーリングされた変換係数の(nTbW)×(nTbH)配列dである。
量子化パラメータqPは、以下のように導出される。
- cIdxが0に等しい場合、以下が適用される。
qP=Qp’Y (8-1019)
- そうでない場合、cIdxが1である場合、以下が適用される。
qP=Qp’Cb (8-1020)
- そうでない場合(cIdx=2)、以下が適用される。
qP=Qp’Cr (8-1021)
変数rectNonTsFlagは、以下のように導出される。
rectNonTsFlag=(((Log2(nTbW)+Log2(nTbH))&1)==1 && (8-1022)
transform_skip_flag[xTbY][yTbY]==0)
変数bdShift、rectNorm、およびbdOffsetは、以下のように導出される。
bdShift=bitDepth+((rectNonTsFlag?8:0)+ (8-1023)
(Log2(nTbW)+Log2(nTbH))/2)-5+dep_quant_enabled_flag
rectNorm=rectNonTsFlag ? 181:1 (8-1024)
bdOffset=(1<<bdShift)>>1 (8-1025)
list levelScale[]は、k=0..5の時、levelScale[k]={40,45,51,57,64,72}として規定される。
x=0..nTbW-1,y=0..nTbH-1である場合、スケーリングされた変換係数d[x][y]を導出するために、以下が適用される。
- 中間倍率m[x][y]は、以下のように導出される。
- 以下の条件の1つ以上が真である場合、m[x][y]は、16に等しく設定される。
- scaling_list_enabled_flagは0と等しい。
- transform_skip_flag[xTbY][yTbY]は、1である。
【化12】
- そうでない場合、以下が適用される。
- m[x][y]=ScalingFactor[sizeIdW][sizeIdH][matrixId][x][y] (8-XXX)
sizeIdWをLog2(nTbW)に設定する場合、sizeIdHをLog2(nTbH)に等しく設定し、matrixIdを表7-14に規定する。
- 倍率ls[x][y]は、以下のように導出される。
- dep_quant_enabled_flagが1である場合、以下が適用される。
ls[x][y]=(m[x][y]*levelScale[(qP+1)%6])<<((qP+1)/6) (8-1026)
- そうでない場合(dep_quant_enabled_flagが0に等しい)、以下が適用される。
ls[x][y]=(m[x][y]*levelScale[qP%6])<<(qP/6) (8-1027)
- 値dnc[x][y]は、以下のように導出される。
dnc[x][y]= (8-1028)
(TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*ls[x][y]*rectNorm+bdOffset)>>bdShift
- スケーリングされた変換係数d[x][y]は、以下のように導出される。
d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y]) (8-1029)
【0159】
5.5. 変換スキップフラグの意味論に関する実施形態#5
transform_skip_flag[x0][y0]は、輝度変換ブロックに対して変換を適用するかどうかを指定する。配列インデックスx0,y0は、ピクチャの左上輝度サンプルに対する、考慮される符号化ブロックの左上輝度サンプルの位置(x0,y0)を指定する。transform_skip_flag[x0][y0]=1は、輝度変換ブロックに変換を適用しないことを指定する。transform_skip_flag[x0][y0]=0は、輝度変換ブロックに変換を適用するかどうかの決定が他の構文要素に依存することを指定する。
【化13】
【0160】
図11は、映像処理装置1100のブロック図である。装置1100は、本明細書に記載の方法の1つ以上を実装するために使用してもよい。装置1100は、スマートフォン、タブレット、コンピュータ、IoT(モノのインターネット)受信機等により実施されてもよい。装置1100は、1つ以上の処理装1102と、1つ以上のメモリ1104と、映像処理ハードウェア1106と、を含んでもよい。処理装置(単数または複数)1102は、本明細書に記載される1つ以上の方法を実装するように構成されてもよい。メモリ(単数または複数)1104は、本明細書で説明される方法および技術を実装するために使用されるデータおよびコードを記憶するために使用してもよい。映像処理ハードウェア1106は、本明細書に記載される技術をハードウェア回路にて実装するために使用してもよい。
【0161】
本発明の実施形態において、次の解決策を好適な解決策として実施することができる。
【0162】
以下の解決策は、前章に記載された項目(例えば、項目1)に記載された追加の技術とともに実施されてもよい。
【0163】
1.映像の映像ブロックの符号化表現と前記映像ブロックとの変換のために、符号化モード情報に基づいて、変換スキップモードが前記変換に対して有効化されているかどうかを判定すること(1202)と、判定することに基づいて、この変換を行う(1204)ことと、を含み、前記変換スキップモードにおいて、前記変換時に、前記映像ブロックを表す少なくともいくつかの係数に変換を適用することをスキップする、映像処理方法(例えば、
図12に示す方法1200)。
【0164】
2.ブロック差分パルス符号変調(BDPCM)または量子化残差BDPCM(QR-BDPCM)モードを示す符号化モード情報に起因して、変換スキップモードを有効にすると判定される、解決策1に記載の方法。
【0165】
3.前記変換スキップモードを示す前記符号化表現におけるフラグは、構文解析されない、解決策1に記載の方法。
【0166】
4.符号化表現における変換スキップモードを示すフラグは、構文解析から省略される、解決策1に記載の方法。
【0167】
以下の解決策は、前章に記載された項目(例えば、項目2)に記載された追加の技術とともに実施されてもよい。
【0168】
5.ブロック差分パルス符号変調(BDPCM)又は量子化残差BDPCM(QR-BDPCM)モードを変換に使用することによって、映像ブロックの符号化表現と映像ブロックとの変換のためにスケーリング行列を使用することを判定することと、前記スケーリング行列を使用して前記変換を行うこととを含み、このスケーリング行列は、この変換時にこの映像ブロックを表す少なくともいくつかの係数をスケーリングするために使用される、映像処理方法。
【0169】
6.前記変換は、前記変換時に前記係数に適用される変換の数に依存する1つのモードに基づいて、前記スケーリング行列を適用することを含む、解決策5に記載の方法。
【0170】
7.変換のためのブロック差分パルス符号変調(BDPCM)又は量子化残差BDPCM(QR-BDPCM)モードの使用に起因して、映像ブロックの符号化表現と映像ブロックとの変換のためにスケーリング行列の使用を無効化すると判定することと、前記スケーリング行列を使用して前記変換を行うこととを含み、スケーリング行列は、変換時に映像ブロックを表す少なくともいくつかの係数をスケーリングするために使用される、映像処理方法。
【0171】
以下の解決策は、前章に記載された項目(例えば、項目3)に記載された追加の技術とともに実施されてもよい。
【0172】
8.映像の映像ブロックの符号化表現と前記映像ブロックとの変換のために、変換スキップモードが前記変換に対して有効化されているかどうかによってインループフィルタの適用可能性を判定することと、この前記インループフィルタの適用可能性に基づいて、この変換を行うことと、を含み、前記変換スキップモードにおいて、前記変換時に、前記映像ブロックを表す少なくともいくつかの係数に変換を適用することをスキップする、映像処理方法。
【0173】
9.前記インループフィルタは、非ブロック化フィルタを備える、解決策8に記載の方法。
【0174】
10.映像ブロックの変換スキップモードおよび隣接ブロックの別の変換スキップモードに基づいて、インループフィルタの強度を判定することをさらに含む、解決策8~9のいずれかに記載の方法。
【0175】
11.前記判定することは、前記映像ブロックのために前記変換スキップモードが無効化されているために、前記インループフィルタが適用可能でないことを判定することを含む、解決策8~9のいずれかに記載の方法。
【0176】
以下の解決策は、前章に記載された項目(例えば、項目4および5)に記載された追加の技術とともに実施されてもよい。
【0177】
12.映像の映像ブロックとこの映像ブロックの符号化表現との変換のために、インター符号化およびイントラブロックコピー符号化に基づく変換のために同じスケーリング行列が選択されるように、スケーリング行列を選択することと、前記選択されたスケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される、映像処理方法。
【0178】
以下の解決策は、前章に記載された項目(例えば、項目6)に記載された追加の技術とともに実施されてもよい。
【0179】
13.映像の映像ブロックと前記映像の符号化表現との変換のために、前記変換のために選択された変換行列に基づいて、スケーリング行列を選択することと、前記選択されたスケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数を変換するために使用される、映像処理装置。
【0180】
14.前記スケーリング行列を選択することは、前記映像ブロックの変換がサブブロック符号化モードを使用するかどうかに基づいている、解決策13に記載の方法。
【0181】
15.前記サブブロック符号化モードは、アフィン符号化モードである、解決策14に記載の方法。
【0182】
16.アフィン符号化モードのためのスケーリング行列は、アフィン符号化モードを使用しない別の映像ブロックのための別のスケーリング行列とは異なる、解決策15に記載の方法。
【0183】
以下の解決策は、前章に記載された項目(例えば、項目7)に記載された追加の技術とともに実施されてもよい。
【0184】
17.映像の映像ブロックと前記映像ブロックの符号化表現との変換のために、前記変換のために選択されたセカンダリ変換行列に基づいて、スケーリング行列を選択することと、前記選択されたスケーリング行列を使用して前記変換を行うこととを含み、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記セカンダリ変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの残差係数を変換するために使用される、映像処理方法。
【0185】
18.前記セカンダリ変換行列は、前記映像ブロックのM×N左上部分に適用され、前記スケーリング行列は、前記映像ブロックのM×N左上部分よりも大きい部分に適用される、解決策17に記載の方法。
【0186】
19.前記セカンダリ変換行列は、前記映像ブロックのM×N左上部分に適用され、前記スケーリング行列は、前記映像ブロックのM×N左上部分のみに適用される、解決策17に記載の方法。
【0187】
20.前記符号化表現における構文要素は、前記スケーリング行列を示す、解決策17~19のいずれかに記載の方法。
【0188】
以下の解決策は、前章に記載された項目(例えば、項目8)に記載された追加の技術とともに実施されてもよい。
【0189】
21.非正方形の形状を有する映像ブロックに対して、映像ブロックと映像ブロックの符号化表現との変換で用いるスケーリング行列を判定することであって、前記符号化表現における構文要素が前記スケーリング行列を信号通知する、判定することと、前記スケーリング行列に基づいて前記変換を行うことと、を含み、前記スケーリング行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される、映像処理方法。
【0190】
22.前記構文要素は、前の正方形ブロックのスケーリング行列から前記スケーリング行列を予測符号化する、解決策21に記載の方法。
【0191】
以下の解決策は、前章に記載された項目(例えば、項目9)に記載された追加の技術とともに実施されてもよい。
【0192】
23.映像ブロックの符号化表現と映像ブロックとの変換時に、スケーリング行列を部分的に適用することを判定することと、前記映像ブロックにおいて、第1の位置の集合に前記スケーリング行列を適用し、残りの位置では前記スケーリング行列を無効にするように、前記スケーリング行列を部分的に適用することにより、変換を行うこととを含む、映像処理方法。
【0193】
24.前記第1の位置の集合は、前記映像ブロックの左上のM*N個の位置を含む、解決策23に記載の方法。
【0194】
25.前記第1の位置の集合は、前記映像ブロックの上部のM*N個の位置を含む、解決策23に記載の方法。
【0195】
26.前記第1の位置の集合は、前記映像ブロックの左のM*N個の位置を含む、解決策23に記載の方法。
【0196】
以下の解決策は、前章に記載された項目(例えば、項目10および11)に記載された追加の技術とともに実施されてもよい。
【0197】
27.映像ブロックの符号化表現と前記映像ブロックとの変換時にスケーリング行列が適用されることを判定することと、
前記スケーリング行列に基づいて、前記変換を行うことと、を含む方法であって、
前記符号化表現は前記スケーリング行列の要素の数を信号通知し、前記数は、前記変換においてゼロ化する係数の適用に依存する、映像処理方法。
【0198】
28.前記変換は、前記映像ブロックの左上M×N個の位置を除くすべての位置をゼロ化することを含み、数がM/8*N/8である、解決策27に記載の方法。
【0199】
以下の解決策は、前章に記載された項目(例えば、項目11)に記載された追加の技術とともに実施されてもよい。
【0200】
29.前記数は、変換時に使用される変換行列に依存する、解決策27~28に記載の方法。
【0201】
30.前記変換行列は、サイズK×Lであり、上位M×N個の係数のみがゼロ化されない、解決策29に記載の方法。
【0202】
31.前記スケーリング行列は、KまたはLから判定される倍数でサブサンプリングすることによって適用される、解決策27~30のいずれかに記載の方法。
【0203】
以下の解決策は、前章に記載された項目(例えば、項目12)に記載された追加の技術とともに実施されてもよい。
【0204】
32.映像ブロックと前記映像ブロックの符号化表現との変換時に、特定のタイプの映像ブロックのサイズに基づいて使用する単一の量子化行列を判定することと、この量子化行列を使用して変換を行うこととを含む、映像処理方法。
【0205】
33.前記映像ブロックのサイズは、W×Hよりも小さく、WおよびHは整数である、解決策32に記載の方法。
【0206】
34.前記映像ブロックの幅が閾値よりも小さい、解決策32~33のいずれかに記載の方法。
【0207】
35.前記映像ブロックの高さが閾値よりも小さい、解決策32~33のいずれかに記載の方法。
【0208】
36.前記量子化行列は、量子化値に影響を及ぼさない恒等量子化行列である、解決策32に記載の方法。
【0209】
37.前記変換は、前記映像を前記符号化表現に符号化することを含む、解決策1~36のいずれかに記載の方法。
【0210】
38.前記変換は、前記映像の画素値を生成すべく前記符号化表現を復号化することを含む、解決策1~36のいずれかに記載の方法。
【0211】
39.解決策1~38の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0212】
40.解決策1~38の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像符号化装置。
【0213】
41.コンピュータコードが記憶されたコンピュータプログラム製品であって、前記コードは、処理装置により実行されると、前記処理装置に、解決策1~38のいずれかに記載の方法を実装させるコンピュータプログラム製品。
【0214】
42.本明細書に記載の方法、装置またはシステム。
【0215】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを有効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが有効化される場合、エンコーダは、1つの映像ブロックを処理する際にこのツールまたはモードを使用するまたは実装するが、このツールまたはモードの使用に基づいて、結果として得られるビットストリームを必ずしも修正しなくてもよい。すなわち、映像のブロックから映像のビットストリーム表現への変換は、決定または判定に基づいて映像処理ツールまたはモードが有効化される場合に、この映像処理ツールまたはモードを使用する。別の例において、映像処理ツールまたはモードが有効化される場合、デコーダは、ビットストリームが映像処理ツールまたはモードに基づいて修正されたことを知って、ビットストリームを処理する。すなわち、決定または判定に基づいて有効化された映像処理ツールまたはモードを使用して、映像のビットストリーム表現から映像のブロックへの変換を行う。
【0216】
開示される技術のいくつかの実施形態は、映像処理ツールまたはモードを無効化するように決定または判定することを含む。一例において、映像処理ツールまたはモードが無効にされている場合、エンコーダは、映像のブロックを映像のビットストリーム表現に変換する際に、このツールまたはモードを使用しない。別の例において、映像処理ツールまたはモードが無効にされている場合、デコーダは、決定または判定に基づいて無効化された映像処理ツールまたはモードを使用してビットストリームが修正されていないことを知って、ビットストリームを処理する。
【0217】
図15は、本開示の技法を利用し得る例示的な映像符号化システム100を示すブロック図である。
図15に示すように、映像符号化システム100は、送信元デバイス110と、送信先デバイス120と、を備えてもよい。送信元デバイス110は、映像符号化機器とも称され得る符号化映像データを生成する。送信先デバイス120は、送信元デバイス110によって生成された、映像復号化デバイスと呼ばれ得る符号化映像データを復号し得る。送信元デバイス110は、映像ソース112と、映像エンコーダ114と、入出力(I/O)インターフェース116と、を備えてもよい。
【0218】
映像ソース112は、映像キャプチャデバイスなどのソース、映像コンテンツプロバイダからの映像データを受信するためのインターフェース、および/または映像データを生成するためのコンピュータグラフィックスシステム、またはこれらのソースの組み合わせを含んでもよい。映像データは、1つ以上のピクチャを含んでもよい。映像エンコーダ114は、映像ソース112からの映像データを符号化し、ビットストリームを生成する。ビットストリームは、映像データの符号化表現を形成するビットシーケンスを含んでもよい。ビットストリームは、符号化ピクチャおよび関連付けられたデータを含んでもよい。符号化ピクチャは、ピクチャの符号化表現である。関連付けられたデータは、シーケンスパラメータセット、ピクチャパラメータセット、および他の構文構造を含んでもよい。I/Oインターフェース116は、変復調器(モデム)および/または送信機を含んでもよい。符号化された映像データは、ネットワーク130aを介して、I/Oインターフェース116を介して直接送信先デバイス120に送信されることができる。符号化された映像データは、送信先デバイス120がアクセスするために、記憶媒体/サーバ130bに記憶してもよい。
【0219】
送信先デバイス120は、I/Oインターフェース126、映像デコーダ124、および表示デバイス122を含んでもよい。
【0220】
I/Oインターフェース126は、受信機および/またはモデムを含んでもよい。I/Oインターフェース126は、送信元デバイス110または記憶媒体/サーバ130bから符号化映像データを取得してもよい。映像デコーダ124は、符号化された映像データを復号化してもよい。表示デバイス122は、復号化した映像データをユーザに表示してもよい。表示デバイス122は、送信先デバイス120と一体化されてもよく、または外部表示デバイスとインターフェースするように構成される送信先デバイス120の外部にあってもよい。
【0221】
映像エンコーダ114および映像デコーダ124は、高効率映像符号化(HEVC)規格、汎用映像符号化(VVVM)規格、および他の現在のおよび/またはさらなる規格等の映像圧縮規格に従って動作してもよい。
【0222】
図16は、映像エンコーダ200の一例を示すブロック図であり、この映像エンコーダ200は、
図15に示されるシステム100における映像エンコーダ114であってもよい。
【0223】
映像エンコーダ200は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図16の実施例において、映像エンコーダ200は、複数の機能モジュールを備える。本開示で説明される技法は、映像エンコーダ200の様々なコンポーネント間で共有され得る。いくつかの例では、処理装置は、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0224】
映像エンコーダ200の機能モジュールは、分割ユニット201と、モード選択ユニット203、動き推定ユニット204、動き補償ユニット205およびイントラ予測ユニット206を含んでもよい予測ユニット202と、残差生成ユニット207と、変換ユニット208と、量子化ユニット209と、逆量子化ユニット210と、逆変換ユニット211と、再構成ユニット212と、バッファ213と、エントロピー符号化ユニット214とを含んでもよい。
【0225】
他の例において、映像エンコーダ200は、より多くの、より少ない、又は異なる機能コンポーネントを含んでもよい。一例において、予測ユニット202は、イントラブロックコピー(IBC)ユニットを含んでもよい。IBCユニットは、少なくとも1つの参照ピクチャが現在の映像ブロックが位置するピクチャであるIBCモードにおいて予測(predication)を行うことができる。
【0226】
さらに、動き推定ユニット204および動き補償ユニット205などのいくつかのコンポーネントは、高度に統合されてもよいが、説明のために、
図16の例においては別々に表されている。
【0227】
分割ユニット201は、1つのピクチャを1つ以上の映像ブロックに分割することができる。映像エンコーダ200および映像デコーダ300は、様々な映像ブロックサイズをサポートしてもよい。
【0228】
モード選択ユニット203は、例えば、エラー結果に基づいて、イントラ又はインターのいずれかの符号化モードの1つを選択し、得られたイントラ又はインター符号化ブロックを、残差生成ユニット207に供給して残差ブロックデータを生成し、また再構成ユニット212に供給して参照ピクチャとして符号化ブロックを再構成してもよい。本発明の実施例において、モード選択ユニット203は、インター予測信号およびイントラ予測信号に基づいて予測を行うイントラおよびインター予測(CIIP)モードの組み合わせを選択してもよい。また、モード選択ユニット203は、インター予測の場合、ブロックのために動きベクトルの解像度(例えば、サブピクセル又は整数ピクセル精度)を選択してもよい。
【0229】
現在の映像ブロックに対してインター予測を実行するために、動き推定ユニット204は、バッファ213からの1つ以上の参照フレームと現在の映像ブロックとを比較することで、現在の映像ブロックのために動き情報を生成してもよい。動き補償ユニット205は、現在の映像ブロックに関連付けられたピクチャ以外のバッファ213からのピクチャの動き情報および復号化サンプルに基づいて、現在の映像ブロックのために予測映像ブロックを判定してもよい。
【0230】
動き推定ユニット204および動き補償ユニット205は、例えば、現在の映像ブロックがIスライスであるか、Pスライスであるか、又はBスライスであるかに基づいて、現在の映像ブロックに対して異なる演算を実行してもよい。
【0231】
いくつかの例において、動き推定ユニット204は、現在の映像ブロックに対して単方向予測を実行し、動き推定ユニット204は、現在の映像ブロックに対して、リスト0又はリスト1の参照ピクチャを検索して、参照映像ブロックを求めてもよい。そして、動き推定ユニット204は、参照映像ブロックと、現在の映像ブロックと参照映像ブロックとの間の空間的変位を示す動きベクトルとを含む、リスト0またはリスト1における参照ピクチャを示す参照インデックスを生成してもよい。動き推定ユニット204は、参照インデックス、予測方向インジケータ、および動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在のブロックの予測映像ブロックを生成してもよい。
【0232】
他の例において、動き推定ユニット204は、現在の映像ブロックを双方向予測してもよく、動き推定ユニット204は、リスト0における参照ピクチャの中から現在の映像ブロックために参照映像ブロックを検索してもよく、また、リスト1における参照ピクチャの中から現在の映像ブロックのために別の参照映像ブロックを検索してもよい。そして、動き推定ユニット204は、参照映像ブロックを含むリスト0およびリスト1における参照ピクチャを示す参照インデックスと、参照映像ブロックと現在の映像ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定ユニット204は、現在の映像ブロックの参照インデックスおよび動きベクトルを、現在の映像ブロックの動き情報として出力してもよい。動き補償ユニット205は、現在の映像ブロックの動き情報が示す参照映像ブロックに基づいて、現在の映像ブロックの予測映像ブロックを生成してもよい。
【0233】
いくつかの例において、動き推定ユニット204は、デコーダの復号化処理のために、動き情報のフルセットを出力してもよい。
【0234】
いくつかの例では、動き推定ユニット204は、現在の映像のために動き情報のフルセットを出力しなくてもよい。むしろ、動き推定ユニット204は、別の映像ブロックの動き情報を参照して、現在の映像ブロックの動き情報を信号通知してもよい。例えば、動き推定ユニット204は、現在の映像ブロックの動き情報が近傍の映像ブロックの動き情報に十分に類似していると判定してもよい。
【0235】
一例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、現在の映像ブロックが別の映像ブロックと同じ動き情報を有することを映像デコーダ300に示す値を示してもよい。
【0236】
別の例において、動き推定ユニット204は、現在の映像ブロックに関連付けられた構文構造において、別の映像ブロックと、動きベクトル差(MVD)とを識別してもよい。動きベクトルの差分は、現在の映像ブロックの動きベクトルと、示された映像ブロックの動きベクトルとの差分を示す。映像デコーダ300は、指示された映像ブロックの動きベクトルと、動きベクトルの差分を用いて、現在の映像ブロックの動きベクトルを判定してもよい。
【0237】
上述したように、映像エンコーダ200は、動きベクトルを予測的に信号通知してもよい。映像エンコーダ200によって実装され得る予測信号通知技法の2つの例は、高度動きベクトル予測(AMVP)およびマージモード信号通知を含む。
【0238】
イントラ予測ユニット206は、現在の映像ブロックに対してイントラ予測を行ってもよい。イントラ予測ユニット206が現在の映像ブロックをイントラ予測する場合、イントラ予測ユニット206は、同じピクチャにおける他の映像ブロックの復号化されたサンプルに基づいて、現在の映像ブロックのための予測データを生成してもよい。現在の映像ブロックのための予測データは、予測された映像ブロックおよび様々な構文要素を含んでもよい。
【0239】
残差生成ユニット207は、現在の映像ブロックから現在の映像ブロックの予測された映像ブロックを減算することによって(例えば、マイナス符号によって示されている)、現在の映像ブロックのために残差データを生成してもよい。現在の映像ブロックの残差データは、現在の映像ブロックにおけるサンプルの異なるサンプル成分に対応する残差映像ブロックを含んでもよい。
【0240】
他の例において、例えば、スキップモードにおいて、現在の映像ブロックのための残差データがなくてもよく、残差生成ユニット207は、減算演算を実行しなくてもよい。
【0241】
変換処理ユニット208は、現在の映像ブロックに関連付けられた残差映像ブロックに1つ以上の変換を適用することによって、現在の映像ブロックのために1つ以上の変換係数映像ブロックを生成してもよい。
【0242】
変換処理ユニット208が現在の映像ブロックに関連付けられた変換係数映像ブロックを生成した後、量子化ユニット209は、現在の映像ブロックに関連付けられた1つ以上の量子化パラメータ(QP)値に基づいて、現在の映像ブロックに関連付けられた変換係数映像ブロックを量子化してもよい。
【0243】
逆量子化ユニット210および逆変換ユニット211は、変換係数映像ブロックに逆量子化および逆変換をそれぞれ適用し、変換係数映像ブロックから残差映像ブロックを再構成してもよい。再構成ユニット212は、予測ユニット202が生成した1つ以上の予測映像ブロックから対応するサンプルに再構成された残差映像ブロックを加え、現在のブロックに関連付けられた再構成映像ブロックを生成し、バッファ213に記憶することができる。
【0244】
再構成ユニット212が映像ブロックを再構成した後、映像ブロックにおける映像ブロッキングアーチファクトを縮小するために、ループフィルタリング動作を行ってもよい。
【0245】
エントロピー符号化ユニット214は、映像エンコーダ200の他の機能コンポーネントからデータを受信してもよい。エントロピー符号化ユニット214は、データを受信すると、1つ以上のエントロピー符号化演算を行い、エントロピー符号化データを生成し、エントロピー符号化データを含むビットストリームを出力してもよい。
【0246】
図13は、映像デコーダ300の一例を示すブロック図であり、この映像デコーダ300は、
図15に示されるシステム100における映像デコーダ114であってもよい。
【0247】
映像デコーダ300は、本開示の技術のいずれか又は全部を実行するように構成されてもよい。
図13の実施例において、映像デコーダ300は、複数の機能モジュールを備える。本開示で説明される技法は、映像デコーダ300の様々なモジュール間で共有されてもよい。いくつかの例では、処理装置は、本開示で説明される技術のいずれかまたはすべてを行うように構成してもよい。
【0248】
図13の実施例において、映像デコーダ300は、エントロピー復号化ユニット301、動き補償ユニット302、イントラ予測ユニット303、逆量子化ユニット304、逆変換ユニット305、および再構成ユニット306、並びにバッファ307を備える。映像デコーダ300は、いくつかの例では、映像エンコーダ200(
図16)に関して説明した符号化パスとほぼ逆の復号化パスを行ってもよい。
【0249】
エントロピー復号化ユニット301は、符号化ビットストリームを取り出す。符号化ビットストリームは、エントロピー符号化された映像データ(例えば、映像データの符号化ブロック)を含んでもよい。エントロピー復号化ユニット301は、エントロピー符号化された映像データを復号化し、エントロピー復号された映像データから、動き補償ユニット302は、動きベクトル、動きベクトル精度、参照ピクチャリストインデックス、および他の動き情報を含む動き情報を決定してもよい。動き補償ユニット302は、例えば、AMVPおよびマージモードを実行することで、このような情報を判定してもよい。
【0250】
動き補償ユニット302は、動き補償されたブロックを生成してもよく、場合によっては、補間フィルタに基づいて補間を実行する。構文要素には、サブピクセルの精度で使用される補間フィルタのための識別子が含まれてもよい。
【0251】
動き補償ユニット302は、映像ブロックの符号化中に映像エンコーダ20によって使用されるような補間フィルタを使用して、参照ブロックのサブ整数ピクセルのための補間値を計算してもよい。動き補償ユニット302は、受信した構文情報に基づいて、映像エンコーダ200が使用する補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0252】
動き補償ユニット302は、構文情報の一部を用いて、符号化された映像シーケンスのフレーム(複数可)および/またはスライス(複数可)を符号化するために使用されるブロックのサイズ、符号化された映像シーケンスのピクチャの各マクロブロックがどのように分割されるかを記述する分割情報、各分割がどのように符号化されるかを示すモード、インター符号化ブロック間の各1つ以上の参照フレーム(および参照フレームリスト)、および符号化された映像シーケンスを復号化するための他の情報を決定してもよい。
【0253】
イントラ予測ユニット303は、例えば、ビットストリームにおいて受信したイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化ユニット303は、ビットストリームに提供され、エントロピー復号化ユニット301によって復号された量子化された映像ブロック係数を逆量子化(すなわち、逆量子化)する。逆変換ユニット303は、逆変換を適用する。
【0254】
再構成ユニット306は、残差ブロックと、動き補償ユニット202又はイントラ予測ユニット303によって生成された対応する予測ブロックとを合計し、復号化されたブロックを形成してもよい。所望であれば、ブロックアーチファクトを除去するために、復号化されたブロックをフィルタリングするために非ブロック化フィルタを適用してもよい。復号化された映像ブロックは、バッファ307に記憶され、バッファ307は、後続の動き補償/イントラ予測のために参照ブロックを提供し、且つ表示装置に表示するために復号化された映像を生成する。
【0255】
本明細書では、「映像処理」という用語は、映像符号化、映像復号化、映像圧縮、または映像展開を指すことができる。例えば、映像圧縮アルゴリズムは、映像の画素表現から対応するビットストリーム表現への変換、またはその逆の変換中に適用されてもよい。現在の映像ブロックのビットストリーム表現は、例えば、構文によって規定されるように、ビットストリーム内の同じ場所または異なる場所に拡散されるビットに対応していてもよい。例えば、1つの映像ブロックは、変換および符号化された誤り残差値の観点から、且つビットストリームにおけるヘッダおよび他のフィールドにおけるビットを使用して符号化されてもよい。さらに、変換中、デコーダは、上記解決策で説明されているように、判定に基づいて、いくつかのフィールドが存在しても存在しなくてもよいという知識を持って、ビットストリームを構文解析してもよい。同様に、エンコーダは、特定の構文フィールドが含まれるべきであるか、または含まれないべきであるかを判定し、構文フィールドを符号化表現に含めるか、または符号化表現から除外することによって、それに応じて符号化表現を生成してもよい。
【0256】
図14は、本明細書で開示される様々な技術が実装され得る例示的な映像処理システム2000を示すブロック図である。様々な実装形態は、システム2000のモジュールの一部又は全部を含んでもよい。システム2000は、映像コンテンツを受信するための入力ユニット2002を含んでもよい。映像コンテンツは、未加工又は非圧縮フォーマット、例えば、8又は10ビットのマルチコンポーネント画素値で受信されてもよく、又は圧縮又は符号化フォーマットで受信されてもよい。入力ユニット2002は、ネットワークインターフェース、周辺バスインターフェース、又は記憶インターフェースを表してもよい。ネットワークインターフェースの例は、イーサネット(登録商標)、パッシブ光ネットワーク(PON)等の有線インターフェース、およびWi-Fi(登録商標)またはセルラーインターフェース等の無線インターフェースを含む。
【0257】
システム2000は、本明細書に記載される様々な符号化又は符号化方法を実装することができる符号化コンポーネント2004を含んでもよい。符号化コンポーネント2004は、入力ユニット2002からの映像の平均ビットレートを符号化コンポーネント2004の出力に低減し、映像の符号化表現を生成してもよい。従って、この符号化技術は、映像圧縮または映像コード変換技術と呼ばれることがある。符号化コンポーネント2004の出力は、コンポーネント2006によって表されるように、記憶されてもよいし、接続された通信を介して送信されてもよい。入力ユニット2002において受信された、記憶された又は通信された映像のビットストリーム(又は符号化)表現は、コンポーネント2008によって使用されて、表示インターフェース2010に送信される画素値又は表示可能な映像を生成してもよい。ビットストリーム表現からユーザが見ることができる映像を生成する処理は、映像伸張(映像展開)と呼ばれることがある。さらに、特定の映像処理動作を「符号化」動作又はツールと呼ぶが、符号化ツール又は動作は、エンコーダおよびそれに対応する、復号化の結果を逆にする復号化ツール又は動作が、デコーダによって行われることが理解されよう。
【0258】
周辺バスインターフェースまたは表示インターフェースの例は、ユニバーサルシリアルバス(USB)または高精細マルチメディアインターフェース(HDMI(登録商標))またはディスプレイポート等を含んでもよい。ストレージインターフェースの例は、シリアルアドバンスドテクノロジーアタッチメント(SATA)、PCI、IDEインターフェース等を含む。本明細書に記載される技術は、携帯電話、ノートパソコン、スマートフォン、又はデジタルデータ処理および/又は映像表示を実施可能な他のデバイス等の様々な電子デバイスに実施されてもよい。
【0259】
図17は、映像処理の方法の一例1700を示すフローチャートである。この方法1700は、映像の映像ブロックと映像の符号化表現との変換を行うこと(1702)を含み、前記符号化表現は、フォーマット規則に準拠しており、前記フォーマット規則が、前記映像ブロックへの変換スキップモードの適用可能性が前記映像ブロックの符号化条件によって判定されることを規定し、前記フォーマット規則は、前記変換スキップモードの利用可能性を表す構文要素が前記符号化表現から省略されており、前記変換スキップモードが、前記符号化表現への符号化前に順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現からの復号化前に逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、を含む。
【0260】
図18は、映像処理の方法の一例1800を示すフローチャートである。この方法1800は、映像の2つの隣接する映像ブロックと前記映像の符号化表現との変換のために、順方向変換と逆方向変換のどちらを変換に使用するかによって、インループフィルタと再構成後フィルタのどちらを変換に使用するかを判定すること(1802)を含み、前記順方向変換は、前記符号化表現に符号化する前に前記順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現から復号化する前に前記逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、前記インループフィルタ又は再構成後フィルタの使用に基づいて前記変換を行うこと(1804)と、を含む。
【0261】
図19は、映像処理の方法の一例1900を示すフローチャートである。この方法1900は、映像の映像ブロックと映像の符号化表現との変換のために、前記映像ブロックの前記変換に使用されているブロック差分パルス符号変調(BDPCM)符号化ツールまたは量子化残差BDPCM(QRーBDPCM)符号化ツールによりスケーリングツールを使用して行うことを判定すること(1902)と、スケーリングツールを使用して変換を行うこと(1904)と、を含み、前記符号化表現における構文要素は、前記スケーリングツールの使用を示し、前記スケーリングツールの使用は、符号化時に映像ブロックを表す少なくともいくつかの係数をスケーリングすること、又は復号化時に符号化表現から少なくともいくつかの係数をデスケーリングすることを含む。
【0262】
図20は、映像処理の方法の一例2000を示すフローチャートである。この方法2000は、映像の映像ブロックと映像の符号化表現との変換のために、映像ブロックの変換のためのブロック差分パルス符号変調(BDPCM)符号化ツールまたは量子化残差BDPCM(QRーBDPCM)符号化ツールに起因して、スケーリングツールの使用を無効化すると判定すること(2002)と、スケーリングツールを使用せずに変換を行うこと(2004)とを含み、前記スケーリングツールの使用は、符号化時に映像ブロックを表す少なくともいくつかの係数をスケーリングすること、又は復号化時に符号化表現から少なくともいくつかの係数をデスケーリングすることを含む。
【0263】
図21は、映像処理の方法の一例2100を示すフローチャートである。この方法2100は、映像の映像ブロックと映像の符号化表現との変換のために、前記変換のために選択された変換行列に基づいてスケーリング行列を選択すること(2102)であって、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数を変換するために使用される、選択することと、スケーリング行列を使用して変換を行うこと(2104)と、を含む。
【0264】
図22は、映像処理の方法の一例2200を示すフローチャートである。この方法2200は、規則に従って、映像の映像ブロックの一部にセカンダリ変換行列が適用されているかどうかに基づいて、スケーリング行列を適用するかどうかを判定すること(2202)であって、スケーリング行列は、映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、セカンダリ変換行列は、変換時に映像ブロックの部分の少なくともいくつかの残差係数を変換するために使用される、判定することと、選択されたスケーリング行列を使用して、映像の映像ブロックと映像のビットストリーム表現との変換を行うこと(2204)と、を含む。
【0265】
図23は、映像処理の方法の一例2300を示すフローチャートである。この方法2300は、非正方形の形状を有する映像ブロックに対して、映像の前記映像ブロックと前記映像の符号化表現との変換に使用するためのスケーリング行列を判定すること(2302)であって、前記符号化表現における構文要素が、前記スケーリング行列を信号通知し、前記スケーリング行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される、判定することと、
前記スケーリング行列に基づいて前記変換を行うこと(2304)と、を含む。
【0266】
図24は、映像処理の方法の一例2400を示すフローチャートである。この方法2400は、映像の映像ブロックと前記映像の符号化表現との変換を行うこと(2402)を含む映像処理方法であって、
前記映像ブロックは、規則に基づいて、前記変換時に前記スケーリング行列が適用される第1の数の位置と、前記変換時にスケーリング行列が適用されない第2の数の位置とを含む。
【0267】
図25は、映像処理の方法の一例2500を示すフローチャートである。この方法2500は、映像の映像ブロックと前記映像の符号化表現との変換時にスケーリング行列が適用されることを判定すること(2502)と、
前記スケーリング行列に基づいて、前記変換を行うことと、を含む方法であって、
前記符号化表現は前記スケーリング行列の要素の数を示し、前記数は、ゼロ化する係数を前記映像ブロックの係数に適用するかどうかに依存する。
【0268】
図26は、映像処理の方法の一例2600を示すフローチャートである。この方法2600は、規則に従って、映像の映像ブロックと前記映像の符号化表現との変換を行うこと(2602)を含む映像処理方法であって、
前記映像ブロックは、前記映像ブロックの係数を変換すべくK×L変換行列を適用した後に、左上のM×N変換係数を除いたすべての変換係数をゼロ化した後の前記符号化表現で表現され、
前記符号化表現は、前記ゼロ化したことに対応する位置にあるスケーリング行列の要素の信号通知を排除するように構成され、
前記スケーリング行列は、前記変換係数をスケーリングするために使用される。
【0269】
図27は、映像処理の方法の一例2700を示すフローチャートである。この方法2700は、映像の映像ブロックと前記映像の符号化表現との変換時に、前記映像ブロックのサイズに基づいて単一の量子化行列を使用するかどうかを、規則に基づいて判定すること(2702)であって、前記サイズを有するすべての映像ブロックが前記単一の量子化行列を使用する、判定することと、
前記量子化行列を使用して前記変換を行うことと、を含む。
【0270】
以下の3つのセクションは、番号が付けられた例示的な映像処理技術を説明する。
【0271】
セクションA:
【0272】
1.映像の映像ブロックとこの映像の符号化表現との変換を行うことを含み、前記符号化表現は、フォーマット規則に準拠しており、前記フォーマット規則が、前記映像ブロックへの変換スキップモードの適用可能性が前記映像ブロックの符号化条件によって判定されることを規定し、前記フォーマット規則は、前記変換スキップモードの利用可能性を表す構文要素が前記符号化表現から省略されており、前記変換スキップモードが、前記符号化表現に符号化する前に順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現から復号化する前に逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、を含む映像処理方法。
【0273】
2.ブロック差分パルス符号変調(BDPCM)または量子化残差BDPCM(QR-BDPCM)が、映像ブロックに対して使用されていることを示す映像ブロックの符号化条件に起因して、変換スキップモードを有効化すると判定される、実施例1の方法。
【0274】
3.非ブロック差分パルス符号変調(非BDPCM)または非量子化残差BDPCM(非QR-BDPCM)が、映像ブロックに対して使用されていることを示す映像ブロックの符号化条件に起因して、変換スキップモードを無効化すると判定される、実施例1の方法。
【0275】
4.映像の2つの隣接する映像ブロックと前記映像の符号化表現との変換のために、順方向変換と逆変換のどちらを変換に使用するかによって、インループフィルタと再構成後フィルタのどちらを変換に使用するかを判定することを含み、前記順方向変換は、前記符号化表現に符号化する前に前記順方向変換を少なくともいくつかの係数に適用することをスキップすることと、復号化時に、前記符号化表現から復号化する前に前記逆方向変換を少なくともいくつかの係数に適用することをスキップすることと、前記インループフィルタ又は再構成後フィルタの使用に基づいて前記変換を行うことと、を含む、映像処理方法。
【0276】
5.前記順方向変換または逆方向変換は、変換スキップモード、またはブロック差分パルス符号変調(BDPCM)、または量子化残差BDPCM(QR-BDPCM)、またはパレットモードを含み、前記2つの隣接する映像ブロックへのインループフィルタまたは再構成後フィルタの使用は、前記2つの隣接する映像ブロックに対して、変換スキップモード、またはブロック差分パルス符号変調(BDPCM)、または量子化残差BDPCM(QR-BDPCM)、またはパレットモードが使用されるかに基づく、実施例4に記載の方法。
【0277】
6.前記順方向変換または逆方向変換は、変換スキップモードを含み、境界フィルタリング強度の導出は、2つの隣接する映像ブロックの一方または両方に対して前記変換スキップモードが有効化されるかどうかを示す1つ以上の構文要素に依存する、実施例4に記載の方法。
【0278】
7.前記順方向変換または逆方向変換は、変換スキップモードを含み、2つの隣接する映像ブロックに位置するサンプルが前記変換スキップモードで符号化されることに応答して、非ブロック化フィルタ、サンプル適応オフセット、適応ループフィルタ、または前記再構成後フィルタを無効化する、実施例4に記載の方法。
【0279】
8.前記順方向変換または逆方向変換は、変換スキップモードを含み、2つの隣接する映像ブロックに対して前記変換スキップモードが有効化されることに応答して、前記インループフィルタおよび前記再構成後フィルタは、2つの隣接する映像ブロック間のエッジに適用されない、実施例7に記載の方法。
【0280】
9.前記順方向変換または逆方向変換は、変換スキップモードを含み、2つの隣接する映像ブロックのうちの1つに対して前記変換スキップモードが有効化されることに応答して、前記インループフィルタおよび前記再構成後フィルタは、2つの隣接する映像ブロック間のサンプルに適用されない、実施例7に記載の方法。
【0281】
10.前記順方向変換または逆方向変換は、変換スキップモードを含み、2つの隣接する映像ブロックに対して前記変換スキップモードが有効化されることに応答して、インループフィルタまたは再構成後フィルタ以外のフィルタを使用して前記サンプルをフィルタリングする、実施例4に記載の方法。
【0282】
11.前記フィルタは、より平滑なフィルタを備える、実施例10に記載の方法。
【0283】
12.前記映像は、パルス符号変調(PCM)またはブロック差分パルス符号変調(BDPCM)若しくは量子化残差BDPCM(QR-BDPCM)で符号化された映像ブロック、あるいは映像ブロックに順方向変換または逆変換を適用しない別のタイプのモードで符号化される映像ブロックを備え、前記インループフィルタまたは再構成後フィルタを映像ブロックの変換に使用するかどうかは、前記2つの隣接する映像ブロックに対して変換スキップモードを有効化する時に、前記2つの隣接する映像ブロックに対するものと同様にして判定される、実施例4に記載の方法。
【0284】
13.前記インループフィルタは、非ブロック化フィルタを備える、実施例4~12のいずれかに記載の方法。
【0285】
14.前記再構成後フィルタは、双方向フィルタまたは拡散フィルタを備える、実施例4~12のいずれかに記載の方法。
【0286】
15.前記変換は、前記映像ブロックを前記符号化表現に符号化することを含む、実施例1~14のいずれかに記載の方法。
【0287】
16.前記変換は、前記映像ブロックの画素値を生成すべく前記符号化表現を復号化することを含む、実施例1~14のいずれかに記載の方法。
【0288】
17.実施例1~16の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0289】
18.コンピュータコードが記憶されたコンピュータプログラム製品において、前記コードが処理装置により実行されると、前記処理装置は、実施例1~17のいずれかに記載の方法を実装する。
【0290】
セクションB:
【0291】
1.映像の映像ブロックと映像の符号化表現との変換のために、前記映像ブロックの符号化モードに基づいてスケーリングツールの倍数を判定することと、スケーリングツールを使用して変換を行うことと、を含み、前記スケーリングツールの使用は、符号化時にこの映像ブロックを表す少なくともいくつかの係数をスケーリングすること、又は復号化時にこの符号化表現から少なくともいくつかの係数をデスケーリングすることを含む、映像処理方法。
【0292】
2.映像ブロックの変換のために使用されているブロック差分パルス符号変調(BDPCM)符号化ツールまたは量子化残差BDPCM(QR-BDPCM)符号化ツールに応答して、予め定義された値に基づいてスケーリングツールの倍数を判定することをさらに含む、実施例1に記載の方法。
【0293】
3.BDPCM符号化ツールまたはQR-BDPCM符号化ツールが適用される映像ブロックに使用されるスケーリングツールの倍数は、変換スキップモードが適用される映像ブロックに使用されるものと同じであり、変換スキップモードは、符号化表現への符号化前に少なくともいくつかの係数に順方向変換を適用することをスキップすること、または復号化時に、符号化表現からの復号化前に少なくともいくつかの係数に逆方向変換を適用することをスキップすることを含む、実施例2に記載の方法。
【0294】
4.前記変換は、前記変換時に前記映像ブロックの少なくともいくつかの係数に適用される1つ以上の変換に基づいて、前記スケーリングツールの倍数を判定することを含む、実施例2に記載の方法。
【0295】
5.前記映像ブロックの前記少なくともいくつかの係数に適用される前記1つ以上の変換に応答して、前記変換に対して前記スケーリングツールを許可する、実施例4に記載の方法。
【0296】
6.映像ブロックの少なくともいくつかの係数に適用される1つ以上の変換に応答して、スケーリングツールの倍数を判定するための技法が、イントラ符号化ブロックに使用される技法と同じである、実施例4に記載の方法。
【0297】
7.イントラブロックコピーモードおよびインターモードを使用して符号化される映像の映像ブロックに対して、同じ方法でスケーリング行列の倍数を判定する、実施例1に記載の方法。
【0298】
8.映像の映像ブロックと映像の符号化表現との変換のために、前記映像ブロックの前記変換のためのブロック差分パルス符号変調(BDPCM)符号化ツールまたは量子化残差BDPCM(QRーBDPCM)符号化ツールに起因して、スケーリングツールの使用を無効化すると判定することと、スケーリングツールを使用せずに変換を行うこととを含み、前記スケーリングツールの使用は、符号化時に映像ブロックを表す少なくともいくつかの係数をスケーリングすること、又は復号化時に符号化表現から少なくともいくつかの係数をデスケーリングすることを含む、映像処理方法。
【0299】
9.映像の映像ブロックと映像の符号化表現との変換のために、前記変換のために選択された変換行列に基づいてスケーリング行列を選択することであって、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記変換行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数を変換するために使用される、選択することと、スケーリング行列を使用して変換を行うことと、を含む、映像処理方法。
【0300】
10.前記スケーリング行列を選択することは、前記映像ブロックの変換がデフォルト変換モードを使用するかどうかに基づいている、実施例9に記載の方法。
【0301】
11.前記デフォルト変換モードは、離散コサイン変換2(DCT2)を含む、実施例10に記載の方法。
【0302】
12.前記スケーリング行列は、複数の変換行列に対して別個に信号通知される、実施例9に記載の方法。
【0303】
13.前記スケーリング行列を選択することは、前記映像ブロックの動き情報に基づく、実施例9に記載の方法。
【0304】
15.前記スケーリング行列を選択することは、前記映像ブロックの変換がサブブロック符号化モードを使用するかどうかに基づいている、実施例13に記載の方法。
【0305】
15.前記サブブロック符号化モードは、アフィン符号化モードを含む、実施例14に記載の方法。
【0306】
16.アフィン符号化モードのためのスケーリング行列が、非アフィン符号化モードを使用する変換を行う別の映像ブロックのためのスケーリング行列とは異なるように信号通知される、実施例15に記載の方法。
【0307】
17.前記スケーリング行列を選択することは、前記映像ブロックがアフィンイントラ予測モードで符号化されているかどうかに基づいている、実施例13に記載の方法。
【0308】
18.前記変換は、前記映像ブロックまたは前記映像ブロックを前記符号化表現に符号化することを含む、実施例1~17のいずれかに記載の方法。
【0309】
19.前記変換は、前記符号化表現を復号化して、前記映像ブロックまたは前記映像ブロックの画素値を生成することを含む、実施例1~17のいずれかに記載の方法。
【0310】
20.実施例1~19の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0311】
21.実施例1~19の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像符号化装置。
【0312】
22.コンピュータコードが記憶されたコンピュータプログラム製品において、前記コードが処理装置により実行されると、前記処理装置は、実施例1~19のいずれかに記載の方法を実装する。
【0313】
セクションC:
【0314】
1.規則に従って、映像の映像ブロックの一部にセカンダリ変換行列が適用されているかどうかに基づいて、スケーリング行列を適用するかどうかを判定することであって、前記スケーリング行列は、前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用され、前記セカンダリ変換行列は、変換時に前記映像ブロックの前記部分の少なくともいくつかの残差係数を変換するために使用される、判定することと、
選択された前記スケーリング行列を使用して、前記映像の前記映像ブロックと前記映像のビットストリーム表現との変換を行うことと、を含む映像処理方法。
【0315】
2.前記規則は、K×L変換ブロックサイズを含む前記映像ブロックのM×Nの左上部分に適用された前記セカンダリ変換行列に呼応して、前記スケーリング行列が前記映像ブロックの前記M×Nの左上部分に適用されることを規定する、実施例1に記載の方法。
【0316】
3.前記スケーリング行列は、前記ビットストリーム表現で信号通知される、実施例1に記載の方法。
【0317】
4.前記スケーリング行列は、前記セカンダリ変換行列に対して、または縮小セカンダリ変換に対して、または回転変換に対して、タイルグループヘッダ、スライドヘッダ、ピクチャパラメータセット(PPS)、映像パラメータセット(VPS)、シーケンスパラメータセット(SPS)で信号通知される、実施例3に記載の方法。
【0318】
5.前記ビットストリーム表現は、前記スケーリング行列を適用するかどうかを示す第1の構文要素を含み、前記ビットストリーム表現は、前記セカンダリ変換行列を適用するかどうかを示す第2の構文要素を含む、実施例1に記載の方法。
【0319】
6.前記規則は、前記セカンダリ変換行列を適用しない前記映像ブロックの部分にのみ前記スケーリング行列が適用されることを規定する、実施例1に記載の方法。
【0320】
7.前記規則は、前記セカンダリ変換行列を適用する前記映像ブロックのM×Nの左上部分を除いた部分に前記スケーリング行列が適用されることを規定する、実施例1に記載の方法。
【0321】
8.前記規則は、前記セカンダリ変換行列を適用する前記映像ブロックの部分のみに前記スケーリング行列が適用されることを規定する、実施例1に記載の方法。
【0322】
9.非正方形の形状を有する映像ブロックに対して、映像の前記映像ブロックと前記映像の符号化表現との変換に使用するためのスケーリング行列を判定することであって、前記符号化表現における構文要素が、前記スケーリング行列を信号通知し、前記スケーリング行列は、前記変換時に前記映像ブロックの少なくともいくつかの係数をスケーリングするために使用される、判定することと、
前記スケーリング行列に基づいて前記変換を行うことと、を含む映像処理方法。
【0323】
10.前記構文要素は、前記映像の前の正方形ブロックの別のスケーリング行列から前記スケーリング行列を予測符号化する、実施例9に記載の方法。
【0324】
11.映像の映像ブロックと前記映像の符号化表現との変換を行うことを含む映像処理方法であって、
前記映像ブロックは、規則に基づいて、前記変換時に前記スケーリング行列が適用される第1の数の位置と、前記変換時にスケーリング行列が適用されない第2の数の位置とを含む、映像処理方法。
【0325】
12.前記第1の数の位置は、前記映像ブロックの左上のM*N個の位置を含み、前記映像ブロックは、M*N個よりも多い位置を含む、実施例11に記載の方法。
【0326】
13.前記第1の数の位置は、前記映像ブロックの上部のM*N個の位置を含み、前記映像ブロックは、M*N個よりも多い位置を含む、実施例11に記載の方法。
【0327】
14.前記第1の数の位置は、前記映像ブロックの左のM*N個の位置を含み、前記映像ブロックは、M*N個よりも多い位置を含む、実施例11に記載の方法。
【0328】
15.映像の映像ブロックと前記映像の符号化表現との変換時にスケーリング行列が適用されることを判定することと、
前記スケーリング行列に基づいて、前記変換を行うことと、を含む映像処理方法であって、
前記符号化表現は前記スケーリング行列の要素の数を示し、前記数は、ゼロ化する係数を前記映像ブロックの係数に適用するかどうかに依存する、映像処理方法。
【0329】
16.64×64変換に対して、前記変換は、前記映像ブロックの左上のM×N個の位置を除いたすべての位置をゼロ化することを含み、前記スケーリング行列の要素の前記数はM/8*N/8である、実施例15に記載の方法。
【0330】
17.規則に従って、映像の映像ブロックと前記映像の符号化表現との変換を行うことを含む映像処理方法であって、
前記映像ブロックは、前記映像ブロックの係数を変換すべくK×L変換行列を適用した後に、左上のM×N変換係数を除いたすべての変換係数をゼロ化した後の前記符号化表現で表現され、
前記符号化表現は、前記ゼロ化したことに対応する位置にあるスケーリング行列の要素の信号通知を排除するように構成され、
前記スケーリング行列は、前記変換係数をスケーリングするために使用される、映像処理方法。
【0331】
18.前記左上のM×N個の係数の外側の領域に位置する前記スケーリング行列の要素の前記信号通知は、スキップされる、実施例17に記載の方法。
【0332】
19.前記スケーリング行列は、前記Kおよび/または前記Lから判定される比率でサブサンプリングすることにより適用される、実施例17に記載の方法。
【0333】
20.前記映像ブロックは複数のサブ領域に分割され、各サブ領域のサイズがUw*Uhであり、前記映像ブロックの左上のM×N個の係数を含む領域の各サブ領域内に位置する前記スケーリング行列の1つの要素が、前記符号化表現で信号通知される、実施例19に記載の方法。
【0334】
21.前記符号化表現で示される前記スケーリング行列の前記要素の数が、前記Mおよび/または前記Nに基づく、実施例19に記載の方法。
【0335】
22.前記K×L変換行列に対して前記符号化表現で示された前記スケーリング行列の前記要素の第1の数が、ゼロ化のない前記左上のM×N個の係数に対して前記符号化表現で示された前記スケーリング行列の前記要素の第2の数とは異なる、実施例19に記載の方法。
【0336】
23.前記スケーリング行列は、前記Mおよび/または前記Nから判定される比率でサブサンプリングすることにより適用される、実施例17に記載の方法。
【0337】
24.前記左上のM×N個の係数を含む領域が複数のサブ領域に分割され、各サブ領域のサイズがUw*Uhであり、各サブ領域内の1つの要素が前記符号化表現で信号通知される、実施例23に記載の方法。
【0338】
25.前記K×L変換行列に対して前記符号化表現で示された前記スケーリング行列の前記要素の数が、ゼロ化のない前記左上のM×N個の係数に対して前記符号化表現で示されたものと同じである、実施例23に記載の方法。
【0339】
26.K=L=64であり、M=N=32である、実施例17~25のいずれかに記載の方法。
【0340】
27.K=L=64であり、M=N=32であり、Uw=Uh=8である、実施例20または24に記載の方法。
【0341】
28.映像の映像ブロックと前記映像の符号化表現との変換時に、前記映像ブロックのサイズに基づいて単一の量子化行列を使用するかどうかを、規則に基づいて判定することであって、前記サイズを有するすべての映像ブロックが前記単一の量子化行列を使用する、判定することと、
前記量子化行列を使用して前記変換を行うことと、を含む映像処理方法。
【0342】
29.前記規則は、前記映像ブロックの前記サイズが、WおよびHが整数である場合にW×Hよりも小さいことに呼応して、前記単一の量子化行列のみを許可することを規定する、実施例28に記載の方法。
【0343】
30.前記規則は、前記映像ブロックの幅が閾値よりも小さいことに呼応して、前記単一の量子化行列のみを許可することを規定する、実施例28に記載の方法。
【0344】
31.前記規則は、前記映像ブロックの高さが閾値よりも小さいことに呼応して、前記単一の量子化行列のみを許可することを規定する、実施例28に記載の方法。
【0345】
32.前記規則は、前記単一の量子化行列が、小さなサイズの映像ブロックに関連付けられた前記サイズを有する前記映像ブロックには適用されないことを規定する、実施例28に記載の方法。
【0346】
33.パレットモードが、前記映像ブロックに適用される、実施例1~32のいずれかに記載の方法。
【0347】
34.前記変換は、前記映像を前記符号化表現に符号化することを含む、実施例1~33のいずれかに記載の方法。
【0348】
35.前記変換は、前記映像ブロックの画素値を生成すべく前記符号化表現を復号化することを含む、実施例1~33のいずれかに記載の方法。
【0349】
36.実施例1~35の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像復号化装置。
【0350】
37.実施例1~35の1つ以上に記載の方法を実装するように構成された処理装置を備える、映像符号化装置。
【0351】
38.コンピュータコードが記憶されたコンピュータプログラム製品において、前記コードが処理装置により実行されると、前記処理装置は、実施例1~35のいずれかに記載の方法を実装する。
【0352】
本明細書に記載された開示された、およびその他の解決策、実施例、実施形態、モジュール、および機能動作の実装形態は、本明細書に開示された構造およびその構造的等価物を含め、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、若しくはハードウェアで実施されてもよく、またはそれらの1つ以上の組み合わせで実施してもよい。開示された、およびその他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置によって実装されるため、またはデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実施することができる。このコンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝播信号をもたらす物質の組成物、またはこれらの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、例えば、プログラマブル処理装置、コンピュータ、または複数の処理装置、若しくはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を含む。この装置は、ハードウェアの他に、当該コンピュータプログラムの実行環境を作るコード、例えば、処理装置ファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはこれらの1つ以上の組み合わせを構成するコードを含むことができる。伝播信号は、人工的に生成した信号、例えば、機械で生成した電気、光、または電磁信号であり、適切な受信装置に送信するための情報を符号化するために生成される。
【0353】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとも呼ばれる)は、コンパイルされた言語または解釈された言語を含む任意の形式のプログラミング言語で記述することができ、また、それは、スタンドアロンプログラムとして、またはコンピューティング環境で使用するのに適したモジュール、コンポーネント、サブルーチン、または他のユニットとして含む任意の形式で展開することができる。コンピュータプログラムは、必ずしもファイルシステムにおけるファイルに対応するとは限らない。プログラムは、他のプログラムまたはデータを保持するファイルの一部(例えば、マークアップ言語文書に格納された1つ以上のスクリプト)に記録されていてもよいし、当該プログラム専用の単一のファイルに記憶されていてもよいし、複数の調整ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部を格納するファイル)に記憶されていてもよい。1つのコンピュータプログラムを、1つのサイトに位置する1つのコンピュータ、または複数のサイトに分散され通信ネットワークによって相互接続される複数のコンピュータで実行させるように展開することも可能である。
【0354】
本明細書に記載された処理およびロジックフローは、入力データ上で動作し、出力を生成することによって機能を実行するための1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブル処理装置によって行うことができる。処理およびロジックフローはまた、特定用途のロジック回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行うことができ、装置はまた、特別目的のロジック回路として実装することができる。
【0355】
コンピュータプログラムの実行に適した処理装置は、例えば、汎用および専用マイクロ処理装置の両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上の処理装置を含む。一般的に、処理装置は、リードオンリーメモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受信する。コンピュータの本質的な要素は、命令を実行するための処理装置と、命令およびデータを記憶するための1つ以上のメモリデバイスとである。一般的に、コンピュータは、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気、光磁気ディスク、または光ディスクを含んでもよく、またはこれらの大容量記憶デバイスからデータを受信するか、またはこれらにデータを転送するように動作可能に結合されてもよい。しかしながら、コンピュータは、このようなデバイスを有する必要はない。コンピュータプログラム命令およびデータを記憶するのに適したコンピュータ可読媒体は、あらゆる形式の不揮発性メモリ、媒体、およびメモリデバイスを含み、例えば、EPROM、EEPROM、フラッシュメモリデバイス、磁気ディスク、例えば内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、およびCD-ROMおよびDVD-ROMディスク等の半導体記憶装置を含む。処理装置およびメモリは、特定用途のロジック回路によって補完されてもよく、または特定用途のロジック回路に組み込まれてもよい。
【0356】
本特許明細書は多くの詳細を含むが、これらは、任意の主題の範囲または特許請求の範囲を限定するものと解釈されるべきではなく、むしろ、特定の技術の特定の実施形態に特有であり得る特徴の説明と解釈されるべきである。本特許文献において別個の実施形態のコンテキストで説明されている特定の特徴は、1つの例において組み合わせて実装してもよい。逆に、1つの例のコンテキストで説明された様々な特徴は、複数の実施形態において別個にまたは任意の適切なサブコンビネーションで実装してもよい。さらに、特徴は、特定の組み合わせで作用するものとして上記に記載され、最初にそのように主張されていてもよいが、主張された組み合わせからの1つ以上の特徴は、場合によっては、組み合わせから抜粋されることができ、主張された組み合わせは、サブコンビネーションまたはサブコンビネーションのバリエーションに向けられてもよい。
【0357】
同様に、動作は図面において特定の順番で示されているが、これは、所望の結果を達成するために、このような動作が示された特定の順番でまたは連続した順番で行われること、または示された全ての動作が行われることを必要とするものと理解されるべきではない。また、本特許明細書に記載されている例における様々なシステムの構成要素の分離は、全ての実施形態においてこのような分離を必要とするものと理解されるべきではない。
【0358】
いくつかの実装形態および例のみが記載されており、この特許文献に記載され図示されているコンテンツに基づいて、他の実施形態、拡張および変形が可能である。