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

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

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

特許7568375画像およびビデオコーディングのための高精度変換および量子化
<>
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図1
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図2
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図3
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図4
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図5
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図6
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図7
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図8
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図9
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図10
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図11
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図12
  • 特許-画像およびビデオコーディングのための高精度変換および量子化 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】画像およびビデオコーディングのための高精度変換および量子化
(51)【国際特許分類】
   H04N 19/124 20140101AFI20241008BHJP
   H04N 19/157 20140101ALI20241008BHJP
   H04N 19/176 20140101ALI20241008BHJP
   H04N 19/70 20140101ALI20241008BHJP
【FI】
H04N19/124
H04N19/157
H04N19/176
H04N19/70
【請求項の数】 13
【外国語出願】
(21)【出願番号】P 2023122411
(22)【出願日】2023-07-27
(62)【分割の表示】P 2022517816の分割
【原出願日】2020-09-16
(65)【公開番号】P2023153169
(43)【公開日】2023-10-17
【審査請求日】2023-08-25
(31)【優先権主張番号】PCT/CN2019/107140
(32)【優先日】2019-09-21
(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)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】シュイ,ジィジォン
(72)【発明者】
【氏名】ザン,カイ
(72)【発明者】
【氏名】ザン,リー
(72)【発明者】
【氏名】リュウ,ホンビン
(72)【発明者】
【氏名】デン,ジピン
(72)【発明者】
【氏名】ワン,ユエ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2021/045188(WO,A1)
【文献】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,15th Meeting: Gothenburg, SE,2019年07月31日,pp.151,282-285
【文献】Takeshi Tsukuba, Masaru Ikeda, Yoichi Yagasaki, and Teruhiko Suzuki,On Scaling for Transform Skip,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0272-v1,16th Meeting: Geneva, CH,2019年09月,pp.1-8
【文献】Hong-Jheng Jhu, et al.,Non-CE8: Quantization unification for palette escape and transform skip,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P515-v2,16th Meeting: Geneva, CH,2019年10月,pp.1-9
【文献】Jizheng Xu, et al.,Non-CE6: Transform skip with a fixed transform shift,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P0538,16th Meeting: Geneva, CH,2019年09月,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオデータを処理する方法であって、
ビデオの現在ブロックと、前記ビデオのビットストリームとの間の変換を実行するステップであり、前記変換は、
ルールに従って、現在ブロックのスケール化された変換係数を導出するために、前記現在ブロックの変換係数についてスケーリングプロセスを実行するステップであり、前記ルールは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化される場合に、前記スケーリングプロセスで使用されるビット深さシフト変数が、前記現在ブロックのサイズから独立していることを規定する、ステップ、を含み、
ビット深さオフセットおよび前記ビット深さシフト変数は、クリップ操作の前に、前記スケール化された変換係数を導出するために使用され、かつ、前記ビット深さオフセットは、前記ビット深さシフト変数に基づいて導出される、
方法。
【請求項2】
前記ビット深さシフト変数bdShift1は、事前に定義されている、
請求項1に記載の方法。
【請求項3】
前記ルールは、さらに、
前記スケール化された変換係数に対する変換プロセスが前記現在ブロックについてスキップされる場合に、前記スケーリングプロセスにおいて使用される前記ビット深さシフト変数が、前記現在ブロックのサイズから独立していること、
を規定する、
請求項1または2に記載の方法。
【請求項4】
前記ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されたブロックについて前記ビット深さシフト変数および前記ビット深さオフセットは、前記スケール化された変換係数について変換プロセスがスキップされる、ブロックに対する前記ビット深さシフト変数および前記ビット深さオフセットと同一である、
請求項1乃至3いずれか一項に記載の方法。
【請求項5】
前記ルールは、さらに、
前記現在ブロックが前記ブロックベースの差分パルス符号変調(BDPCM)モードでコード化される場合に、前記現在ブロックの変換係数のためのスケーリングプロセスについて、明示的スケール化マトリクスがディセーブルされること、
を規定する、
請求項1乃至4いずれか一項に記載の方法。
【請求項6】
前記現在ブロックの変換係数のスケーリングプロセスにおいて、フラットなスケール化マトリクスが使用される、
請求項1乃至5いずれか一項に記載の方法。
【請求項7】
前記フラットなスケール化マトリクスの値は、16に等しい、
請求項6いずれか一項に記載の方法。
【請求項8】
前記スケーリングプロセスは、スケール化動作または逆スケール化動作を含み、かつ、
前記変換プロセスは、転換動作または逆転換動作を含む、
請求項3に記載の方法。
【請求項9】
前記変換は、前記現在ブロックを前記ビットストリームへとエンコーディングすることを含む、
請求項1乃至8いずれか一項に記載の方法。
【請求項10】
前記変換は、前記ビットストリームから前記現在ブロックをデコーディングすることを含む、
請求項1乃至8いずれか一項に記載の方法。
【請求項11】
プロセッサと、命令を有する非一時メモリとを備える、ビデオデータを処理する装置であって、前記プロセッサによって前記命令が実行されると、前記プロセッサに、
ビデオの現在ブロックと、前記ビデオのビットストリームとの間の変換を実行させ、前記変換は、
ルールに従って、現在ブロックのスケール化された変換係数を導出するために、前記現在ブロックの変換係数についてスケーリングプロセスを実行するステップであり、前記ルールは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化される場合に、前記スケーリングプロセスで使用されるビット深さシフト変数が、前記現在ブロックのサイズから独立していることを規定する、ステップ、を含み、
ビット深さオフセットおよび前記ビット深さシフト変数は、クリップ操作の前に、前記スケール化された変換係数を導出するために使用され、かつ、前記ビット深さオフセットは、前記ビット深さシフト変数に基づいて導出される、
装置。
【請求項12】
命令を保管している非一時的なコンピュータで読取り可能な記憶媒体であって、プロセッサに、
ビデオの現在ブロックと、前記ビデオのビットストリームとの間の変換を実行させ、前記変換は、
ルールに従って、現在ブロックのスケール化された変換係数を導出するために、前記現在ブロックの変換係数についてスケーリングプロセスを実行するステップであり、前記ルールは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化される場合に、前記スケーリングプロセスで使用されるビット深さシフト変数が、前記現在ブロックのサイズから独立していることを規定する、ステップ、を含み、
ビット深さオフセットおよび前記ビット深さシフト変数は、クリップ操作の前に、前記スケール化された変換係数を導出するために使用され、かつ、前記ビット深さオフセットは、前記ビット深さシフト変数に基づいて導出される、
コンピュータで読取り可能な記憶媒体。
【請求項13】
ビデオのビットストリームを保管する方法であって、前記方法は、
前記ビデオの現在ブロックから前記ビデオのビットストリームを生成するステップと、
前記ビットストリームを非一時的なコンピュータで読取り可能な記憶媒体に保管するステップと、を含み、
前記生成するステップは、
ルールに従って、現在ブロックのスケール化された変換係数を導出するために、前記現在ブロックの変換係数についてスケーリングプロセスを実行するステップであり、前記ルールは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化される場合に、前記スケーリングプロセスで使用されるビット深さシフト変数が、前記現在ブロックのサイズから独立していることを規定する、ステップ、を含み、
ビット深さオフセットおよび前記ビット深さシフト変数は、クリップ操作の前に、前記スケール化された変換係数を導出するために使用され、かつ、前記ビット深さオフセットは、前記ビット深さシフト変数に基づいて導出される、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本特許文献は、ビデオコーディングおよびデコーディングに関する。
【0002】
関連出願の相互参照
本出願は、2019年9月21日に出願された、国際特許出願番号PCT/CN2019/107140について優先権および利益を主張する、2020年9月16日に出願された、国際特許出願第PCT/CN2020/115533号に基づく、特願2022-517816の分割出願である。上記の出願の開示全体は、この出願の開示の一部として参照により包含されている。
【背景技術】
【0003】
ビデオ圧縮における進歩にもかかわらず、デジタルビデオは、依然として、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占めている。ビデオの受信および表示が可能な接続ユーザデバイスの数が増加するにつれて、デジタルビデオの利用に対する帯域幅需要は増加し続けることが予想される。
【発明の概要】
【0004】
デジタルビデオコーディング、特には、高精度の変換および量子化が使用される、ビデオ並びに画像のコーディングおよびデコーディングに関連する装置、システム、および方法が使用される。
【0005】
一つの例として、ビデオ処理方法が開示される。本方法は、ビデオの現在ブロックと、ルールに従って、ビデオのビットストリーム表現との間で変換を実行することを含む。ここで、本ルールは、現在ブロックに適用される変換コード化モード(transform coding mode)のスケール化動作(operation)が、現在ブロックのサイズから独立して構成されることを規定している。
【0006】
別の例においては、ビデオ処理方法が開示される。本方法は、ビデオの現在ブロックと、ルールに従って、ビデオのビットストリーム表現との間で変換を実行することを含む。本このルールは、現在ブロックに適用される変換コード化モードの逆量子化(dequantization)処理またはスケール化動作が、変換コード化モードから独立して構成されることを規定している。
【0007】
さらに別の例においては、ビデオ処理方法が開示される。本方法は、現在ブロックを含むビデオとビデオのビットストリーム表現との間の変換のために、変換(conversion)が現在ブロックに対する転換(transform)の適用を含むことを決定すること、および、決定に基づいて、変換を実行すること、を含む。ここで、転換に関連する変換係数(transform coefficient)に対するスケール化プロセスのビットシフト演算は、現在ブロックがブロックベースの差分パルス符号変調(block-based differential pulse code modulation、BDPCM)モードでコード化されるか否かに基づいている。
【0008】
さらに別の例においては、ビデオ処理方法が開示される。本方法は、現在ブロックを含むビデオとビデオのビットストリーム表現との間の変換を実行することを含む。ここで、転換シフト(transform shift)は、現在ブロックの残差係数(residual coefficient)値と現在ブロックのコード化係数との間の変換が、現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化されるか否かに基づいている。
【0009】
さらに別の例においては、ビデオ処理方法が開示される。本方法は、現在ブロックを含むビデオとビデオのビットストリーム表現との間の変換のために、現在ブロックが、ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されることを決定すること、および、決定に基づいて、変換を実行すること、を含む。ここで、BDPCMモードに関連するスケーリングリストは、ディセーブルされる。
【0010】
さらに別の例においては、ビデオ処理方法が開示される。本方法は、現在ブロックを含むビデオとビデオのビットストリーム表現との間の変換のために、変換が、現在ブロックに対する転換の適用をディセーブルにすることにより実行されることを決定すること、および、決定に基づいて、変換を実行すること、を含み、変換は、逆量子化プロセスを含む。ここで、逆量子化プロセス後のデコーディングされた係数は、最小値(TsMin)および最大値(TsMax)を有する範囲に制約される。
【0011】
さらに別の例においては、ビデオ処理方法が開示される。本方法は、現在ブロックを含むビデオとビデオのビットストリーム表現との間の変換のために、現在ブロックが、ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されることを決定するスこと、および、決定に基づいて、変換を実行すること、を含み、変換は、逆量子化プロセスを含む。ここで、逆量子化プロセス後のデコーディングされた係数は、最小値(BdpcmMin)および最大値(BdpcmMax)を有する第1範囲に制約される。
【0012】
さらに別の態様においては、上述の方法がプロセッサ実行可能コードの形態で具体化され、そして、コンピュータ読取り可能なプログラム媒体に保管される。
【0013】
さらに別の態様においては、上述の方法を実行するように、構成され、または、動作可能なデバイスが開示される。本装置は、この方法を実装するようにプログラムされたプロセッサを含み得る。
【0014】
さらに別の態様においては、ビデオデコーダ装置が、ここにおいて説明される方法を実装し得る。
【0015】
開示される技術の上記の態様および特徴は、図面、明細書、および請求項において、より詳細に記載されている。
【図面の簡単な説明】
【0016】
図1図1は、低周波非分離変換(Low-Frequency Non-Separable Transform、LFNST)プロセスの例を示している。
図2図2は、SBT位置、タイプ、および変換タイプの例を示す。
図3図3は、依存量子化(dependent quantization)の提案されるアプローチにおいて使用される2個のスカラ量子化器(scalar quantizer)の説明図である。
図4図4は、提案される依存量子化のための状態遷移および量子化器選択の例を示している。
図5図5は、開示される技術を実施することができる例示的なビデオ処理システムのブロック図である。
図6図6は、ビデオ処理のためのハードウェアプラットフォームの一つの例についてのブロック図である。
図7図7は、例えば、ビデオ処理の方法のフローチャートである。
図8図8は、例えば、ビデオ処理の方法のフローチャートである。
図9図9は、例えば、ビデオ処理の方法のフローチャートである。
図10図10は、例えば、ビデオ処理の方法のフローチャートである。
図11図11は、例えば、ビデオ処理の方法のフローチャートである。
図12図12は、例えば、ビデオ処理の方法のフローチャートである。
図13図13は、例えば、ビデオ処理の方法のフローチャートである。
【発明を実施するための形態】
【0017】
開示される技術の実施形態は、圧縮性能を改善するために、既存のビデオコーディング規格(例えば、HEVC、H.265)および将来の標準に適用され得る。本文書では、説明の可読性を向上させるためにセクション見出しを使用しており、決して説明または実施形態(及び/又は、実装)を各セクションだけに限定するものではない。
【0018】
1.ビデオコーディング要約
本文書は、画像およびビデオコーディング技術に関する。具体的には、画像およびビデオコーディングにおける変換、量子化、逆量子化、および逆変換に関する。これは、HEVCのような既存のビデオコーディング規格、または、完成される標準(バーサタイルビデオコーディング(Versatile Video Coding))に対して適用され得る。これは、また、将来のビデオコーディング規格またはビデオコーデックに対しても適用可能である。
【0019】
2. 最初の説明
ビデオコーディング規格は、主に、周知のITU-TおよびISO/IEC規格の開発を通じて発展してきた。ITU-TはH.261とH.263を製作し、ISO/IECはMPEG-1とMPEG-4 Visualを製作し、そして、2つの組織はH.262/MPEG-2 Video、H.264/MPEG-4 Advanced Video Coding(AVC)、およびH.265/HEVC規格を共同で作成した。H.262から、ビデオコーディング規格は、時間的予測と変換コーディングが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを越えた将来のビデオコーディング技術を探求するため、2015年にVCEGとMPEGが共同で共同ビデオ探査チーム(Joint Exploration Team、JVET)を設立した。それ以来、JVETによって多くの新しい方法が採用され、JEM(Joint Exploration Model)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の合同ビデオエキスパートチーム(JVET)を発足されて、HEVCに対して50%のビットレート低減を目指すVVC規格に取り組んでいる。
【0020】
2.1 変換と量子化
2.1.1 高周波ゼロイングを使用する大きいブロックサイズ変換
VTM5では、64×64までのサイズの大きいブロックサイズ変換が可能であり、これは主に、例えば、1080pおよび4Kシーケンスの、高解像度ビデオに有用である。高周波変換係数は、サイズ(幅または高さ、もしくは、幅および高さの両方)が64に等しい変換ブロックに対してゼロ出力(zeroed out)され、その結果、低周波係数のみが保持される。たとえば、M×N変換ブロックでは、Mをブロック幅、Nをブロック高さとして、Mが64に等しい場合、変換係数の左32列(column)のみが保持される。同様に、Nが64に等しい場合、変換係数の上32行(row)のみが保持される。大きいブロックについて変換スキップモードが使用される場合、いかなる値もゼロ出力されることなくブロック全体が使用される。
【0021】
2.1.2 コア変換のための多重変換選択(MTS)
HEVCで使用されてきたDCT-IIに加えて、多重変換選択(Multiple Transform Selection、MTS)スキームが、インター(inter)コード化ブロックおよびイントラ(intra)コード化ブロックの両方の残差コード化に使用される。DCT8/DST7から選択された複数の変換が使用される。新しく導入される変換行列は、DST-VIIとDCT-VIIIである。テーブル1は、選択されたDST/DCTの基本機能を示している。
【表1】
テーブル1-N点入力に対するDCT-II/VIIIおよびDSTVIIの変換基本関数
【0022】
変換行列の直交性を維持するために、変換行列は、HEVCにおける変換行列よりも正確に量子化されている。変換された係数の中間値を16ビットの範囲内に保持するために、水平変換の後で、かつ、垂直変換の後に、全ての係数は10ビットを有する。
【0023】
MTSスキームを制御するために、別個のイネーブルフラグが、イントラとインターについて、それぞれに、SPSレベルで指定される。SPSでMTSがイネーブルされると、MTSが適用されるか否かを示すために、CUレベルフラグが信号化される。ここで、MTSは、ルマ(luma)のみに適用される。MTS CUレベルフラグは、以下の条件が満たされた場合に、ときに信号化される。
-幅および高さの両方が、32以下である
-CBFフラグが1に等しい
【0024】
MTS CUフラグがゼロに等しい場合に、DCT2は、両方向において適用される。しかしながら、MTS CUフラグが1に等しい場合には、2個の他のフラグが、水平方向と垂直方向について、それぞれに、変換タイプを示すために追加的に信号化される。変換および信号化マッピングテーブルがテーブル2に示されている。イントラモードおよびブロック形状の依存性を除去することによって、ISPおよび黙示的MTSのための統一された変換選択が使用される。現在ブロックがISPモードである場合、または、現在ブロックがイントラブロックであり、かつ、イントラおよびインター両方の明示的MTSがオンである場合には、水平および垂直変換コアの両方についてDSTだけが使用される。変換行列の精度については、8ビットの一次変換(primary transform)コアが使用される。従って、HEVCにおいて使用される全ての変換コアは、同じに保持される。4ポイント(4-point)のDCT-2およびDST-7、8ポイント、16ポイント、および32ポイントのDCT-2を含んでいる。また、64ポイントのDCT-2、4ポイントのDCT-8、8ポイント、16ポイント、32ポイントのDST-7およびDCT-8を含む、他の変換コアは、8ビット一次変換コアを使用する。
【表2】
テーブル2-変換および信号化マッピングテーブル
【0025】
大きいサイズのDST-7およびDCT-8の複雑さを低減するために、サイズ(幅または高さ、または、幅および高さの両方)が32に等しいDST-7およびDCT-8ブロックに対して高周波変換係数がゼロ出力される。16×16の低周波領域内の係数のみが保持される。
【0026】
HEVCの場合と同様に、ブロックの残差は変換スキップモードでコード化することができる。シンタックスコーディングの冗長性を避けるために、CUレベルのMTS_CU_flagがゼロに等しくない場合、変換スキップフラグは信号化されない。変換スキップに対するブロックサイズ制限は、JEM4におけるMTSに対するものと同じである。これは、ブロック幅と高さの両方が32以下の場合に、変換スキップがCUについて適用可能であることを示している。
【0027】
2.1.3 変換係数ゼロ出力(zeroing out)
変換ユニットが大きい場合、大きい変換コアを必要とすることがあり、これは、小さい変換と比較してより複雑になる。従って、現在のVVC設計では、変換ユニットが十分に大きい場合、必要な変換サイズが低減されるように、変換係数の所定の部分が0に設定される。
【0028】
具体的に、現在のVVCドラフトでは、係数のどの部分が保存されるかを反映する2個の変数を定義している。
nonZeroW=Min(nTbW,(trTypeHor>0)?16:32)
nonZeroH=Min(nTbH,(trTypeVer>0)?16:32)
【0029】
従って、2ディメンション前方変換(2-D forward transform)の後では、x=0..nonZeroW-1、かつ、y=0..nonZeroH-1でだけ、非ゼロ係数を含むことができ、そして、他の全ての係数は0に設定される。
【0030】
nonZeroWおよびnonZeroHは、幅および高さにおける実際の変換サイズとして表されているが、これは、変換ユニットの幅(nTbW)および高さ(nTbH)とは異なってよい。
【0031】
2.1.4低周波非分離変換(LFNST)
VTM5では、縮小二次変換(reduced secondary transform)として知られている、低周波非分離変換(low-frequency non-separable transform、LFNST)が、図1に示すように、前方一次変換と(エンコーダでの)量子化との間、および、逆量子化と(デコーダ側での)逆一次変換との間において適用される。LFNSTでは、ブロックサイズに応じて、4×4非分離変換または8×8非分離変換が適用される。例えば、4×4のLFNSTは小さいブロック(すなわち、min(width,height)<8)について適用され、そして、8×8のLFNSTは大きいブロック(すなわち、min(width,height)>4)について適用される。
【0032】
図1は、低周波非分離変換(LFNST)プロセスの例を示している。
【0033】
LFNSTで使用されている、非分離変換の適用が、例として入力を使用して、以下のように説明される。4×4のLFNSTを適用ために、4×4の入力ブロックXが、
【数1】
以下のベクトルとして、
【数2】
最初に表される。
【数3】
【0034】
非分離な変換は、以下のように計算される。
【数4】
ここで、
【数5】
は、変換係数ベクトルを表しており、そして、Tは16×16の変換行列として計算される。16×1の係数ベクトル
【数6】
は、後に続いて、そのブロックの走査(scanning)順序(水平、垂直、または対角)を使用して、4×4のブロックとして再編成される。より小さいインデックスを有する係数は、4×4係数ブロック内のより小さい走査インデックスに置かれる。
【0035】
2.1.4.1 縮小非分離変換(reduced non-separable transform)
LFNST(低周波非分離変換)は、非分離変換を適用するために、直接マトリクス乗算アプローチに基づいており、その結果、多重反復なしで単一パスにおいて実装される。しかしながら、非分離変換マトリクスのディメンションは、計算の複雑性、および、変換係数を保管するためのメモリ空間を最小化するために低減される必要がある。従って、縮小非分離変換(または、RST)法が、LFNSTにおいて使用されている。縮小非分離変換の主なアイデアは、N(8×8のNSSTにおいてNは一般的に64に等しい)ディメンションベクトル(dimensional vector)を、異なる空間におけるRディメンションベクトルにマッピングすることである。ここで、N/R(R<N)は、減少因子(reduction factor)である。従って、N×Nマトリクスの代わりに、RSTマトリクスは、以下のようにR×Nマトリクスになる。
【数7】
【0036】
ここで、変換のR行は、Nディメンション空間のRベースである。RTに対する逆変換行列は、その前方の転置行列である。8×8のLFNSTについては、VTM5で4の減少因子が適用され、そして、64×64の直接行列は、従来の8×8の非分離変換行列サイズであるが、16×48の直接行列に縮小される。従って、48×16の逆RST行列がデコーダ側で使用され、8×8の左上領域でコア(一次)変換係数を生成する。16×64行列の代わりに、同じ変換セット構成で16×48行列が適用される場合、各行列は、右下の4×4ブロックを除いて、左上の8×8ブロックにおける3個の4×4ブロックから48個の入力データを取る。縮小ディメンションの助けにより、全てのLFNST行列を保管するためのメモリ使用は、妥当な性能低下を伴い10KBから8KBまで減少した。乗算数に関して、最悪の場合の複雑性をさらに低減するために、全てのTUが4×4TUまたは8×8TUで構成される場合、上8×48および8×16行列が、それぞれ8×8TUおよび4×4TUに適用される。8×8TUより大きいブロックについて、最悪のケースは発生せず、8×8LFNST(すなわち、16×48行列)が左上の8×8領域に適用される。8×4TUまたは4×8TUについては、4×4LFNST(すなわち、16×16行列)が、左上4×4領域のみに適用される。4×NまたはN×4のTU(N≧16)については、4×4のLFNSTが、2個の隣接する左上4×4ブロックに、それぞれ適用される。前述の単純化により、最悪の場合の乗法の数は、サンプルあたり8となる。
【0037】
2.1.4.2LFNST変換選択
全部で4個の変換集合が存在し、そして、変換集合あたり2個の非分離変換行列(カーネル)がLFNSにおいて使用される。イントラ予測モードから変換集合(transform set)へのマッピングは、表3に示すように、事前に定義されている。各変換集合に対して、選択された非分離二次変換候補は、明示的に信号化されたLFNSTインデックスによって、さらに指定される。インデックスは、変換係数の後で、イントラCU毎に一度ビットストリームにおいて信号化される。
【表3】
テーブル3 変換選択テーブル
【0038】
2.1.4.2 LFNSTインデックス信号化および他のツールとの相互作用
前方8×8LFNSTは、16×48行列を使用し、その結果、所与の8×8領域内の左上4×4領域においてのみ非ゼロ係数を生成する。言い換えれば、LFNSTが適用されると、左上4×4領域を除く8×8領域は、ゼロ係数だけを生成する。結果として、左上4×4以外の8×8ブロック領域内で非ゼロ要素(non-zero element)が検出された場合、LFNSTインデックスはコード化されない。これは、LFNSTが適用されなかったことを意味するからである。そうした場合に、LFNSTインデックスはゼロであると推定される。LFNSTインデックスが0に等しい場合、LFNSTは適用されない。そうでなければ、LFNSTが適用される。加えて、LFNSTインデックスはコンテキストコード化されるが、イントラ予測モードに依存せず、そして、最初のビンのみがコンテキストコード化される。
【0039】
逆LFNSTは、以下の2個の条件が満たされる場合に、条件付きで適用される。
a.ブロックサイズが、所与の閾値以上である(W>=4&&H>=4)
b.変換スキップモードフラグがゼロに等しい
【0040】
変換係数ブロックの幅(W)と高さ(H)の両方が4より大きい場合、変換係数ブロックの左上8×8領域に対して8×8LFNSTが適用される。そうでなければ、4×4LFNSTは、変換係数ブロックの左上のmin(8,W)×min(8,H)領域に適用される。
【0041】
さらに、LFNSTは、イントラおよびインタースライスの両方のイントラCUについて、並びに、ルマ(Luma)およびクロマ(Chroma)の両方について適用される。デュアルツリーがイネーブルされている場合、ルマおよびクロマのLFNSTインデックスは別々に信号化される。インタースライス(デュアルツリーがディセーブルされている)については、単一のLFNSTインデックスが、ルマおよびクロマの両方について使用される。
【0042】
ISPモードが選択される場合、全ての実現可能なパーティションブロックに対してRSTが適用されても、性能改善がわずかであったため、LFNSTはディセーブルされ、そして、RSTインデックスは信号化されない。さらに、ISP予測の残差についてRSTをディセーブルにすることは、エンコーディングの複雑さを低減し得る。MIPモードが選択される場合には、また、LFNSTがディセーブルされ、そして、インデックスは信号化されない。
【0043】
2.1.5 サブブロック変換(SBT)
VTMにおいて、サブブロック変換は、インター予測CUについて導入されている。この変換モードでは、残差ブロックのサブ部分のみがCUについてコード化される。cu_cbfが1に等しい場合、cu_sbt_flagは、残りのブロック全体または残りのブロックのサブ部分がコード化されているか否かを示すために、信号化され得る。前者の場合、CUの変換タイプを決定するために、インターMTS情報がさらに解析される。後者の場合、残差ブロックの一部が推定適応変換でコード化され、そして、残差ブロックの他の部分はゼロ出力される。
【0044】
インターコード化CUにSBTを使用する場合は、SBTタイプおよびSBT位置情報がビットストリームに信号化される。図2に示すように、2個のSBTタイプおよび2個のSBT位置が存在している。SBT-V(または、SBT-H)の場合、TU幅(または高さ)は、CU幅(または高さ)の半分、もしくは、CU幅(または高さ)の1/4に等しく、その結果として、2:2分割または1:3/3:1分割となる。2:2分割は、バイナリーツリー(BT)分割のようであり、一方で、1:3/3:1分割は非対称バイナリーツリー(ABT)分割のようである。ABT分割では、小領域のみが非ゼロ残差を含んでいる。ルマサンプルにおいてCUの1つのディメンションが8である場合、そのディメンションに沿った1:3/3:1の分割は許可されない。CUについて、最大8個のSBTモードが存在する。
【0045】
位置依存変換コア選択が、SBT-VおよびSBT-H(クロマTBは常にDCT‐2を使用する)においてルマ変換ブロックについて適用される。SBT-HおよびSBT-Vの2つの位置は、異なるコア変換と関連している。より具体的には、各SBT位置に対する水平および垂直変換が、図2において指定されている。例えば、SBT-V位置0の水平および垂直変換は、それぞれDCT-8およびDST-7である。残差TUの片側が32を超える場合、両方のディメンションの変換は、DCT-2として設定される。従って、サブブロック変換は、残差ブロックのTUタイリング、cbf、並びに、水平および垂直コア変換タイプを共同で指定する。
【0046】
変数maxSbtSizeは、SBTが適用され得る最大CUサイズを指定するために、SPSで信号化される。VTM5において、HDおよび4Kシーケンスについて、エンコーダによりmaxSbtSizeが64として設定され、それ以外の小さい解像度シーケンスについて、maxSbtSizeは32として設定される。
【0047】
SBTは、結合されたインター-イントラモードまたはTPMモードでコード化されたCUに対して適用されない。
【0048】
2.1.6 量子化
VTM5では、最大QPが51から63に拡張されており、そして、それに応じて初期QPの信号方式が変更された。SliceQpYの初期値は、slice_qp_deltaの非ゼロ値がコード化されるとき、スライスセグメント層で修正される。具体的には、init_qp_minus26の値が(-26+QpBdOffsetY)から+37までの範囲であるように変更される。VTM5では、変換ブロックのサイズが4のべき乗でない場合、変換係数は、181/256(または181/128)による乗算ではなく、QPまたはQPレベルスケールテーブルへの修正と共に処理され、変換プロセスによる暗黙のスケーリングを補償する。
【0049】
加えて、同じHEVCスカラ量子化が、依存スカラ量子化(dependent scalar quantization)と呼ばれる新しい概念で使用される。依存スカラ量子化とは、変換係数の許容再構成値のセットが、現在の変換係数レベルに先行する変換係数レベルの値に依存する再構成順序のアプローチを指す。このアプローチの主な効果は、HEVCで使用されるような従来の独立スカラ量子化と比較して、許容可能な再構成ベクトルが、Nディメンションベクトル空間(Nは変換ブロックにおける変換係数の数を表す)において、より高密度に充填(packed)されることである。これは、Nディメンション単位体積あたりの許容可能な再構成ベクトルの所与の平均数に対して、入力ベクトルと、最も近い再構成ベクトルとの間の平均歪みが低減されることを意味する。依存スカラ量子化のアプローチは、(a)異なる再構成レベルを有する2個のスカラ量子化器を定義すること、および、(b)2個のスカラ量子化器間のスイッチングのためのプロセスを定義すること、によって実現される。
【0050】
図3は、依存量子化の提案されるアプローチにおいて使用される2個のスカラ量子化器の説明図である。
【0051】
使用される2個のスカラ量子化器は、Q0およびQ1で示され、図3に図示されている。利用可能な再構成レベルの位置は、量子化ステップサイズΔによって一意に指定される。使用されるスカラ量子化器(Q0またはQ1)は、ビットストリームにおいて明示的に信号化されない。代わりに、現在の変換係数に使用される量子化器は、コーディング/再構成の順序において現在の変換係数に先行する変換係数レベルのパリティによって決定される。
【0052】
図4は、提案される依存量子化のための状態遷移および量子化器選択の例を示している。
【0053】
図4に示すように、2個のスカラ量子化器(Q0およびQ1)間のスイッチングは、4個の状態を有する状態マシンを介して実現される。状態は、4つの異なる値をとることができる。すなわち、0、1、2、3である。これは、コーディング/再構成順序における現在の変換係数に先行する変換係数レベルのパリティによって一意に決定される。変換ブロックに対する逆量子化の開始時に、状態は0に等しく設定される。変換係数は、走査順序(すなわち、それらがエントロピー復号されるのと同じ順序)で再構成される。現在の変換係数が再構成された後で、状態は、図4に示すように更新される。ここで、kは、変換係数レベルの値を示す。
【0054】
デフォルトおよびユーザ定義のスケール化マトリクス(scaling matrix)を信号化することも、また、サポートされている。DEFAULTモードのスケール化マトリクスは全てフラットであり、要素は全てのTBサイズについて16に等しい。IBCとイントラコーディングモードは、現在、同じスケール化マトリクスを共有している。従って、USER_DEFINEDマトリクスについて、MatrixTypeとMatrixType_DCの数は、以下のように更新される。
・MatrixType:30=2(イントラ&IBC/インターについて2)×3(Y/Cb/Cr成分)×5(正方形TBサイズ:ルマについて4×4から64×64まで、クロマについて2×2から32×32まで)
・MatrixType_DC:14=2(イントラ&IBC/インターについて2×Y成分について1)×3(TBサイズ:16×16、32×32、64×64)+4(イントラ&IBC/インターについて2×Cb/Cr成分について2)×2(TBサイズ:16×16、32×32)
【0055】
DC値は、次のスケール化マトリクスに対して別々にコード化される。すなわち、16×16、32×32、および64×64である。8×8より小さいTBについては、1つのスケール化マトリクスにおける全ての要素が信号化される。TBのサイズが8×8以上である場合、8×8のスケール化マトリクスのうち64個の要素のみが基本スケール化マトリクスとして信号化される。8×8より大きいサイズの正方行列を得るために、8×8ベースのスケール化マトリクスを(要素の重複によって)対応する正方行列サイズ(すなわち、16×16、32×32、64×64)にアップサンプリングする。64ポイント変換について高周波係数のゼロ出力が適用されるとき、スケール化マトリクスの対応する高周波も、また、ゼロ出力される。つまり、TBの幅または高さが32以上である場合、係数の左半分または上半分のみが保持され、そして、残りの係数はゼロに割り当てられる。さらに、64×64のスケール化マトリクスについて信号化される要素の数も、また、右下の4×4要素は決して使用されないので、8×8から3個の4×4サブマトリクスへ削減される。
【0056】
2.1.7 クロマ残差の結合コード化
VTM5は、クロマ残差を結合して(jointly)コード化するモードをサポートしている。このモードが起動されると、1個の単一結合残存ブロックが、同じトランスフォーメーションユニットにおけるCbおよびCrブロックの両方について信号化される。次に、Cb残差が信号化残差に等しく設定され、そして、Cr残差が信号化残差の符号を打ち消すこと(negating)によって設定される。換言すれば、デコーダでは、クロマブロックを再構成するために、信号化された結合残差がCb予測ブロックに加えられ、かつ、Cr予測ブロックから差し引かれる。結合残差は、通常のクロマ残差コード化プロセスを使用してコード化されている。フラグは、CbおよびCrのコード化ブロックフラグ(cbf)の両方が1である場合、結合残差モードが使用されるか否かを示すフラグが、ビットストリームのフラグで信号化される。
【0057】
PPSおよびスライスヘッダにおいて、クロマQPオフセット値は、通常のクロマ残差コーディングモードについて信号化される普通のクロマQPオフセット値とは別に、結合クロマ残差コーディングモードについて信号化される。これらのクロマQPオフセット値は、結合クロマ残差コード化モードを使用してコード化されたブロックについてクロマQP値を導出するために使用される。VTM5エンコーダでは、クロマQPオフセットは、結合クロマ残差コーディングモードについて-1に設定され、そして、通常のクロマ残差コーディングモードについて+1に設定されている。
【0058】
エンコーダ側では、Cb残差から差し引いたCr残差の平均が、変換および量子化プロセスに対する入力として使用される。
resJoint=(resCb-resCr)/2
【0059】
LMCSモードのクロマ・スケール化がアクティブである場合、クロマ・スケーリングは、通常のクロマ残差コード化モードで行われるものと同様に、結合残差に対して適用される。すなわち、コード化結合残差信号が、スケール化される。
【0060】
2.2 VVCドラフト6における逆量子化および逆変換設計
【表4】
【表5】
【表6】
【0061】
3. いくつかの開示される技術的ソリューションによって対処される技術的問題
1.現在、VVC設計は、変換ブロックの幅および高さを使用して、変換および逆変換の最中のビットシフトの数を決定しており、それは、処理精度を低下させ得る。
2.現在、VVC設計は、変換ブロックの幅および高さを使用して、量子化および逆量子化の最中のビットシフトの数を決定しており、それは、処理精度を低下させ得る。
3.現在、VVC量子化設計は、いくつかのブロックサイズに対して16ビットダイナミックレンジからの量子化残差をもたらし得るものであり、それは、その後16ビットにクリッピングすることのために符号化効率を低下させる。
4.現在、エネルギーを変換されたブロックについて整列させるために変換スキップに対して左シフトが適用されているが、これは不必要である。
【0062】
4. 実施形態の例および技術のリスト
以下のリストは、一般的な概念を説明するための例として考慮されるべきである。これらの項目は狭義に解釈すべきではない。さらに、これらのアイテムは、任意の方法で組み合わせることができる。
【0063】
以下の説明において、変換スキップブロックは、変換(非同一性(non-identity)変換)が適用されないブロック、または、同一性変換のみが適用されるブロック、例えば、変換スキップモードを有するブロック、BDPCMモードを有するブロック、変換および量子化バイパスモードを有するブロック、パレットモードを有するブロック、を表すことができる。
1.変換スキップブロックについてデコーディングされた係数の残差(例えばtsShift)への変換に使用されるスケール化係数(scaling factor)は、ブロックサイズに依存しない。
a.一つの例において、スケール化係数は、一定である。
i.一つの例において、スケール化係数は、1として設定され得る。
b.一つの例において、スケール化係数は、内部ビット深度に依存し得る。
i.一つの例において、スケール化係数は、(15-internal_bit_depth)として設定され得る。
c.一つの例において、スケール化された変換係数の変換プロセスは呼び出されず、そして、変換係数のスケール化プロセスの出力は、中間残差サンプルを生成するための入力であり、すなわち、ビットシフトなしである。
2.変換されたブロックについて、逆量子化のためのビットシフトの数は、実際の変換サイズ(例えば、ゼロ出力(zeroing-out)領域を考慮しないサイズ)に依存し得る。
a.一つの例において、逆量子化のためのビットシフトの数は、実際の変換の高さに依存し得る。すなわち、4.2.1.3で説明されたnonZeroH。
3.変換されたブロックについて、逆変換のためのビットシフトの数は、変換ブロックのサイズおよび実際の変換サイズに依存し得る。
a.一つの例において、逆変換のためのビットシフトの数は、変換ブロックのサイズに依存し得る。
b.一つの例において、逆変換のためのビットシフトの数は、変換ブロックの高さに依存し得る。
c.一つの例において、逆変換のためのビットシフトの数は、実際の変換の高さに依存し得る。
d.一つの例において、逆変換のためのビットシフトの数は、実際の変換サイズに依存し得る。
e.一つの例において、変換ブロックのサイズが実際の変換サイズと異なるブロックに対する逆変換のためのビットシフトの数は、変換ブロックサイズが実際の変換サイズと等しいブロックとは異なり得る。
f.一つの例において、変換ブロックの高さが実際の変換高さと異なるブロックに対する逆変換のためのビットシフトの数は、変換ブロックの高さが実際の変換高さに等しいブロックとは異なり得る。
4.変換されたブロックについて、逆量子化のためのビットシフトの数は、キャップされた(capped)変換ブロックサイズに依存し得る。
a.一つの例においては、変換ブロックサイズが32×32以上の場合、逆量子化のためのビットシフトの数は、16×16ブロックサイズに従ってよい。
b.一つの例において、キャップされた変換ブロックサイズを適用するか否か、及び/又は、適用する方法は、量子化パラメータに依存し得る。
c.一つの例において、キャップされた変換ブロックサイズを適用するか否か、及び/又は、適用する方法は、ブロック幅がブロック高さの偶数倍であるかに依存し得る。
d.一つの例において、キャップされた変換ブロックサイズを適用するか否か、及び/又は、適用する方法は、ブロック高さがブロック幅の偶数倍であるかに依存し得る。
5.可逆コーディングが使用される場合、変換及び/又は量子化プロセスは、ビットシフトなしで適用され得る。
a.一つの例においては、シーケンス/ピクチャ/サブピクチャ/スライス/タイル群/タイル/ブリック/CTU行/CTU/CU/PU/TU/サブブロックレベルフラグが、ビットストリームの中へ追加され、現在ビデオユニットが可逆(lossless)コーディングによってコード化されているか否かを示すことができる。
i.一つの例において、可逆コーディングが使用される場合、現在ビデオユニットの対応する可逆フラグは、1に等しく設定され得る。
b.一つの例において、可逆コーディングが使用される場合、エンコーディングフレームが元のフレームとビット正確(bit-exact)である、逆変換が適用され得る。
i.一つの例において、可逆コード化ブロックに対する変換サイズは、M×N(例えば、M=N=4)に固定され得る。
ii.一つの例において、可逆コード化ブロックに対する変換コアは、ウォルシュ・アダマール変換(Walsh Hadamard Transform)であってよい。
iii.一つの例において、変換スキップは、可逆コード化ブロックに対して使用され得る。
c.一つの例においては、現在ビデオユニットに可逆コーディングが使用される場合、デコーディングされた係数を残差(例えばtsShift)に変換する際に使用されるスケール化係数は、1(例えば、スケール化なし)に設定され得る。
d.一つの例においては、現在ビデオユニットに可逆コーディングが使用される場合、逆変換のためのビットシフトの数は、0に等しくてよい(例えば、ビットシフトなし)。
e.一つの例においては、現在ビデオユニットに対して可逆コーディングが使用される場合、量子化パラメータは、N(N=4など、例えば、量子化なし)に設定され得る。
f.一つの例においては、現在ビデオユニットに対して可逆コーディングが使用される場合、逆量子化のためのビットシフトの数は、0に等しくてよい(例えば、ビットシフトなし)。
【0064】
5.実施形態
以下の変更、太字のイタリック体でマーク付けされているもの、および、括弧
{{ }}内に含まれる削除は、JVET-O2001-vEに基づいている。
【0065】
5.1 実施形態#1
この実施形態は、変換スキップブロックのスケール化係数をブロックサイズに依存しないようにするための変更を反映している。
【表7】
【0066】
5.2 実施形態#2
この実施形態は、変換ブロックサイズではなく、実際の変換サイズに基づいてスケール化プロセスを行うための変更を反映している。
【表8】
【0067】
5.3 実施形態#3
この実施形態は、逆転換シフトを実際の変換サイズおよび変換ブロックサイズに依存させるための変更を反映している。
【表9】
【0068】
5.4 実施形態#4
この実施形態は、量子化残差を16ビット範囲内にするための変更を反映している。
【表10】
【0069】
図5は、本明細書に開示される様々な技術を実装することができる例示的なビデオ処理システム500を示すブロック図である。様々な実装は、システム500の構成要素の一部または全部を含んでよい。システム500は、ビデオコンテンツを受信するための入力502を含み得る。ビデオコンテンツは、生(raw)もしくは非圧縮フォーマット、例えば、8または10ビットのマルチコンポーネント画素値で受信されてよく、もしくは、圧縮またはエンコーディングされたフォーマットで受信されてよい。入力502は、ネットワークインターフェイス、ペリフェラルバスインターフェイス、またはストレージインターフェイスを表すことができる。ネットワークインターフェイスの例は、イーサネット(登録商標)、受動光ネットワーク(PON)などの有線インターフェイス、および、Wi-Fiまたはセルラーインターフェイスなどの無線インターフェイスを含んでいる。
【0070】
システム500は、本文書で説明される種々のコーディングまたはエンコーディング方法を実装することができるコーディング構成要素504を含んでよい。コーディング構成要素504は、ビデオのコード化表現を生成するために、入力502からコーディング構成要素504の出力へのビデオの平均ビットレートを低減することができる。コーディング技術は、従って、ときどき、ビデオ圧縮またはビデオトランスコーディング技術と呼ばれる。コーディング構成要素504の出力は、構成要素506によって表されるように、保管されるか、または、接続された通信を介して送信されてよい。入力502で受信されたビデオの保管された、または、通信されたビットストリーム(または、コード化された)表現は、ディスプレイインターフェイス510に送られる画素値または表示可能なビデオを生成するために、コンポーネント508によって使用され得る。ビットストリーム表現からユーザが見ることができるビデオを生成するプロセスは、ときどき、ビデオ解凍(decompression)と呼ばれる。さらに、所定のビデオ処理操作は、「コーディング(“coding”)」動作またはツールと称されるが、コーディングツールまたは動作は、エンコーダで使用され、コーディングの結果を反転する対応するデコーディングツールまたは動作は、デコーダによって実行されることが理解されるだろう。
【0071】
ペリフェラルバスインターフェイスまたはディスプレイインターフェイスの例は、ユニバーサルシリアルバス(USB)、または高精細度マルチメディアインターフェイス(HDMI(登録商標))、またはディスプレイポート、等を含み得る。ストレージインターフェイスの例は、SATA(serial advanced technology attachment)、PCI、IDEインターフェイス、等を含み得る。ここにおいて説明される技術は、移動電話、ラップトップ、スマートフォン、または、デジタルデータ処理及び/又はビデオ表示を実行することができる他の装置といった、種々の電子装置において具体化することができる。
【0072】
図6は、ビデオ処理装置600のブロック図である。装置600は、ここにおいて説明される1つ以上の方法を実装するために使用され得る。装置600は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信器、等で具体化することができる。装置600は、1つ以上のプロセッサ602、1つ以上のメモリ604、および、ビデオ処理ハードウェア606を含み得る。プロセッサ602は、本文書で説明される1つ以上の方法を実装するように構成され得る。メモリ(複数のメモリ)604は、ここにおいて説明される方法および技術を実施するために使用されるデータおよびコードを保管するように使用され得る。ビデオ処理ハードウェア606は、ハードウェア回路において、本文書で説明されるいくつかの技術を実装するために使用され得る。いくつかの実装形態において、ハードウェア606は、部分的または全部がプロセッサ602、例えばグラフィックスコプロセッサ、の中にあってよい。
【0073】
図7は、ビデオ処理の例示的な方法700のフローチャートである。方法700は、動作710において、現在ブロックに対して適用される変換コード化モードのスケール化動作が現在ブロックのサイズから独立して構成されることを規定しているルールに従って、ビデオの現在ブロックとビデオのビットストリーム表現との間の変換を実行すること、を含む。
【0074】
図8は、ビデオ処理の例示的な方法800のフローチャートである。方法800は、動作810において、現在ブロックに適用される変換コード化モードの逆量子化プロセスまたはスケール化動作が、変換コード化モードから独立して構成されることを規定しているルールに従って、ビデオの現在ブロックとビデオのビットストリーム表現との間の変換を実行することを含む。
【0075】
図9は、ビデオ処理の例示的な方法900のフローチャートである。方法900は、動作910において、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、前記変換が前記現在ブロックに対する転換の適用を含むと決定すること、を含む。
【0076】
方法900は、動作920において、前記転換に関連する変換係数に対するスケール化プロセスのビットシフト動作は、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化されるか否かに基づいているように、前記決定に基づいて前記変換を実行すること、を含む。
【0077】
図10は、ビデオ処理の例示的な方法1000のフローチャートである。方法1000は、動作1010において、現在ブロックの残差係数値と前記現在ブロックのコード化係数値との間の変換の際に使用される転換シフトは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化されるか否かに基づいているように、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換を実行すること、を含む。
【0078】
図11は、ビデオ処理の例示的な方法1100のフローチャートである。方法1100は、動作1110において、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、現在ブロックが、ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されることを決定すること、を含む。
【0079】
方法1100は、動作1120において、BDPCMモードに関連するスケーリングリストがディセーブルされているように、前記決定に基づいて前記変換を実行すること、を含む。
【0080】
図12は、ビデオ処理の例示的な方法1200のフローチャートである。方法1200は、動作1210において、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、前記変換が、前記現在ブロックに対する転換の適用をディセーブルにすることによって実行されることを決定すること、を含む。
【0081】
方法1200は、動作1220において、前記変換が逆量子化プロセスを含むように、前記決定に基づいて前記変換を実行すること、を含み、かつ、前記逆量子化プロセスの後のデコーディングされた係数は、最小値および最大値を有する範囲に制限されている。
【0082】
図13は、ビデオ処理の例示的な方法1300のフローチャートである。方法1300は、動作1310において、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、現在ブロックが、ブロックベースの差分パルス符号変調モードでコード化されることを決定すること、を含む。
【0083】
方法1300は、動作1320において、前記変換が逆量子化プロセスを含むように、前記決定に基づいて前記変換を実行すること、を含み、かつ、前記逆量子化プロセスの後のデコーディングされた係数は、最小値および最大値を有する第1範囲に制限されている。
【0084】
いくつかの実施形態では、以下の技術的ソリューションが、好ましいソリューションとして実施され得る。
【0085】
1.ビデオ処理の方法であって、ルールに従って、ビデオの現在ブロックと前記ビデオのビットストリーム表現との間の変換を実行するステップを含み、前記ルールは、前記現在ブロックに対して適用される変換コード化モードのスケール化動作が前記現在ブロックのサイズから独立して構成されることを規定している、方法。
【0086】
2.ソリューション1の方法であり、前記変換コード化モードは、変換スキップモードを含み、かつ、前記スケール化動作は、前記変換コード化モードに関連する変換係数のスケール化プロセスを含む、方法。
【0087】
3.ソリューション2の方法であり、前記スケール化プロセスは、ビットシフト動作を含み、かつ、前記ビットシフト動作は、前記現在ブロックのサイズから独立している、方法。
【0088】
4.ソリューション1の方法であり、前記変換コード化モードは、ブロックベースの差分パルス符号変調(BDPCM)モードを含み、かつ、前記スケール化動作は、前記現在ブロックの残差係数値と前記現在ブロックのコード化係数との間の変換のために使用されるスケールファクタを含む、方法。
【0089】
5.ソリューション4の方法であり、前記スケールファクタは、既定の定数である、方法。
【0090】
6.ソリューション5の方法であり、前記スケールファクタは、1である、方法。
【0091】
7.ソリューション4の方法であり、前記スケールファクタは、内部ビット深度(ibd)に基づいている、方法。
【0092】
8.ソリューション7の方法であり、前記スケールファクタは、(15-ibd)である、方法。
【0093】
9.ソリューション4の方法であり、スケール化変換係数に対する変換プロセスはディセーブルされ、かつ、前記変換係数に対するスケール化プロセスの出力は、中間残差サンプルを生成するための入力として使用される、方法。
【0094】
10.ソリューション1の方法であり、前記変換コード化モードは、ブロックベースの差分パルス符号変調(BDPCM)モードを含み、かつ、前記スケール化動作は、前記BDPCMモードに関連する前記変換係数に対するスケール化プロセスを含む、方法。
【0095】
11.ソリューション10の方法であり、前記スケール化プロセスは、ビットシフト動作を含み、かつ、前記ビットシフト動作は、前記現在ブロックのサイズから独立している、方法。
【0096】
12.ビデオ処理の方法であって、ルールに従って、ビデオの現在ブロックと前記ビデオのビットストリーム表現との間の変換を実行するステップを含み、前記ルールは、前記現在ブロックに対して適用される変換コード化モードの逆量子化プロセスまたはスケール化動作が、前記変換コード化モードから独立して構成されることを規定している、方法。
【0097】
13.ソリューション12の方法であり、前記変換コード化モードは、変換スキップモードを含み、かつ、前記逆量子化プロセスの逆量子化係数は、前記変換コード化モードから独立している、方法。
【0098】
14.ソリューション12の方法であり、前記変換コード化モードは、ブロックベースの差分パルス符号変調(BDPCM)モードを含み、かつ、前記逆量子化の逆量子化係数は、前記変換コード化モードから独立している、方法。
【0099】
15.ソリューション13または14の方法であり、前記逆量子化係数は、levelScaleで示される、方法。
【0100】
16.ソリューション12の方法であり、前記変換コード化モードは、変換スキップモードを含み、前記現在ブロックの高さは前記現在ブロックの幅に等しくなく、前記スケール化動作は変換係数に対するスケール化動作を含み、かつ、前記スケール化プロセスを使用するビットシフト動作は変換コード化モードから独立している、方法。
【0101】
17.ソリューション12の方法であり、前記変換コード化モードは、ブロックベースの差分パルス符号変調(BDPCM)モードを含み、前記現在ブロックの高さは、前記現在ブロックの幅に等しくなく、前記スケール化動作は、変換係数に対するスケール化動作を含み、かつ、前記スケール化プロセスは、変換コード化モードから独立している、方法。
【0102】
18.ビデオ処理の方法であって、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、前記変換が前記現在ブロックに対する転換の適用を含むと決定するステップと、前記決定に基づいて前記変換を実行するステップと、を含み、前記転換に関連する変換係数に対するスケール化プロセスのビットシフト動作は、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化されるか否かに基づいている、方法。
【0103】
19.ソリューション18の方法であり、前記現在ブロックが前記BDPCMモードでコード化される場合、前記現在ブロックに対する前記ビットシフト動作は、変換スキップモードでコード化されたビデオブロックに対するビットシフト動作と同一である、方法。
【0104】
20.ビデオ処理の方法であって、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換を実行するステップ、を含み、前記現在ブロックの残差係数値と前記現在ブロックのコード化係数値との間の変換の際に使用される転換シフトは、前記現在ブロックがブロックベースの差分パルス符号変調(BDPCM)モードでコード化されるか否かに基づいている、方法。
【0105】
21.ソリューション20の方法であり、前記現在ブロックが前記BDPCMモードでコード化される場合、前記現在ブロックの前記転換シフトは、変換スキップモードでコード化されたビデオブロックの転換シフトと同一である、方法。
【0106】
22.ビデオ処理の方法であって、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、現在ブロックが、ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されことを決定するステップと、前記決定に基づいて前記変換を実行するステップと、を含み、前記BDPCMモードと関連するスケーリングリストがディセーブルされている、方法。
【0107】
23.ソリューション22の方法であり、前記スケーリングリストにおける各エントリは既定の定数である、方法。
【0108】
24.ソリューション23の方法であり、前記既定の定数は16である、方法。
【0109】
25.ビデオ処理の方法であって、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、前記変換が、前記現在ブロックに対する転換の適用をディセーブルにすることによって実行されることを決定するステップと、前記決定に基づいて前記変換を実行するステップと、を含み、前記変換は逆量子化プロセスを含み、かつ、前記逆量子化プロセスの後のデコーディングされた係数は、最小値(TsMin)および最大値(TsMax)の範囲に制限されている、方法。
【0110】
26.ビデオ処理の方法であって、現在ブロックを含むビデオと前記ビデオのビットストリーム表現との間の変換について、現在ブロックが、ブロックベースの差分パルス符号変調(BDPCM)モードでコード化されることを決定するステップと、前記決定に基づいて前記変換を実行するステップと、を含み、前記変換は逆量子化プロセスを含み、かつ、前記逆量子化プロセスの後のデコーディングされた係数は、最小値(BdpcmMin)および最大値(BdpcmMax)の第1範囲に制限されている、方法。
【0111】
27.ソリューション25または26の方法であり、変換された係数は、最小値(CoefMin)および最大値(CoefMax)の第2範囲に制限されている、方法。
【0112】
28.ソリューション25または26の方法であり、前記最小値は、-(1<<bitDepth)であり、かつ、bitDepthは、変換スキップモードが適用された前記ビデオの色成分のビット深さである、方法。
【0113】
29.ソリューション25または26の方法であり、前記最大値は、[(1<<bitDepth)-1]であり、かつ、bitDepthは、変換スキップモードが適用された前記ビデオの色成分のビット深さである、方法。
【0114】
30.ソリューション25または26の方法であり、前記最小値は、-(1<<min(bitDepth,15))であり、かつ、bitDepthは、変換スキップモードが適用された前記ビデオの色成分のビット深さである、方法。
【0115】
31.ソリューション25または26の方法であり、前記最大値は、[(1<<min(bitDepth,15))-1]であり、かつ、bitDepthは、変換スキップモードが適用された前記ビデオの色成分のビット深さである、方法。
【0116】
32.ソリューション1から31いずれかの方法であり、前記変換を実行するステップは、前記現在ブロックから前記ビットストリーム表現を生成することを含む、方法。
【0117】
33.ソリューション1から31いずれかの方法であり、前記変換を実行するステップは、前記ビットストリーム表現から前記現在ブロックを生成することを含む、方法。
【0118】
34.プロセッサと、命令を有する非一時的なメモリとを備えるビデオシステムにおける装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、ソリューション1から31いずれかの方法を実行させる、装置。
【0119】
35.非一時的なコンピュータで読取り可能な媒体に保管されたコンピュータプログラム製品であって、ソリューション1から31いずれかの方法を実行するためのプログラムコードを含む、コンピュータプログラム製品。
【0120】
36.ソリューション1から31いずれかの方法に従って生成されたビットストリーム表現を保管する、コンピュータで読取り可能な媒体。
【0121】
37.ソリューション1から31いずれかの方法に従って生成されたコード化表現またはビットストリーム表現を保管する、コンピュータで読取り可能な媒体。
【0122】
上記ソリューションにおいて、変換を実行するステップは、変換結果に到達するために、エンコーディングまたはデコーディング動作中に前の決定ステップの結果を使用するステップを含む(例えば、所定のコーディングまたはデコーディングステップを使用する、使用しないか)。上述のソリューションにおいて、ビデオ処理は、ビデオコーディング、またはエンコーディング、または圧縮、またはトランスコーディング(1つのフォーマットまたはビットレートから別のフォーマットまたはビットレートへの変更)、デコーディングまたは解凍を含み得る。さらに、これらのソリューションは、画像といった、他の視覚データに対して適用することができる。
【0123】
ここにおい記載された、開示される又はたのソリューション、実施例、実施形態、モジュール、および機能動作は、デジタル電子回路、もしくは、本文書に開示される構造およびそれらの構造的等価物を含む、コンピュータソフトウェア、ファームウェア、またはハードウェア、またはそれらの1つ以上の組み合わせで実現することができる。開示される実施形態および他の実施形態は、1つ以上のコンピュータプログラム製品、すなわち、データ処理装置による実行のため、または、データ処理装置の動作を制御するために、コンピュータで読取り可能な媒体上にコード化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータで読取り可能な媒体は、マシン読取り可能なストレージ装置、マシン読取り可能なストレージ基板、メモリ装置、マシン読取り可能な伝搬信号に影響を与える物質の組成、または、1つ以上のそれらの組み合わせであり得る。用語「データ処理装置(“data processing apparatus”)」は、例えば、プログラマブルプロセッサ、コンピュータ、もしくは、複数のプロセッサまたはコンピュータを含む、データを処理するための全ての装置、デバイス、およびマシンを包含する。装置は、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、または、それらの1つ以上の組み合わせを構成するコードを含み得る。伝搬される信号は、人工的に生成された信号、例えば、適切な受信器装置に送信するための情報をエンコーディングするために生成されるマシン生成電気信号、光学信号、または電磁信号である。
【0124】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られている)は、コンパイルまたは解釈された言語を含む、任意の形態のプログラミング言語で書くことができる。そして、それは、スタンドアロンプログラムとして、または、コンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、または他のユニットとして、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分(例えば、マークアップ言語文書に保管される1つ以上のスクリプト)、問題のプログラム専用の単一ファイル、または複数の協調ファイル(例えば、1つ以上のモジュール、サブプログラム、またはコードの一部分を保管するファイル)に保管することができる。コンピュータプログラムは、1つのコンピュータまたは1つのサイトに配置されるか、または、複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開することができる。
【0125】
本文書で説明されるプロセスおよび論理フローは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され、入力データを操作し、出力を生成することによって、機能を実行することができる。プロセスおよび論理フローは、また、特殊目的論理回路、例えば、フィールドプログラマブルゲートアレイ(field programmable gateway、FPGA)または特定用途向け集積回路(application specific logic circuitry、ASIC)といったものによって実行することができ、そして、装置も実行することができる。
【0126】
コンピュータプログラムの実行に適したプロセッサは、例えば、汎用および専用マイクロプロセッサの両方、および、任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般的に、プロセッサは、リードオンリーメモリ、またはランダムアクセスメモリ、またはその両方から命令およびデータを受信する。コンピュータの必須要素は、命令を実行するためのプロセッサ、および、命令とデータを保管するための1つ以上のメモリデバイスである。一般的に、コンピュータは、また、データを保管するための1つ以上の大容量ストレージ装置、例えば、磁気ディスク、磁気光ディスク、または光ディスクにデータを受信したり、データを転送したりするために動作可能に結合される。しかしながら、コンピュータは、そうした装置を有する必要はない。コンピュータプログラム命令およびデータを保管するのに適したコンピュータ読取り可能な媒体は、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、磁気ディスク、例えば、内部ハードディスクまたはリムーバブルディスク、光磁気ディスク、並びに、CD ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、または、内蔵され得る。
【0127】
この特許文献には多くの詳細が含まれているが、これらは、いずれかの技術的事項(subject matter)の範囲または請求され得るものを限定するものではなく、むしろ、特定の技術の特定の実施形態に特有の特徴の説明として解釈されるべきである。別々の実施形態のコンテキストにおいてこの特許文献に説明されている所定の特徴は、単一の実施形態において組み合わせて実施され得る。逆に、単一の実施形態のコンテキストにおいて説明される種々の特徴は、複数の実施形態において、別々に、または、任意の適切なサブコンビネーションで実施され得る。さらに、特徴は、所定の組み合わせにおいて作用するものとして上述され、最初にそのように請求され得るが、請求される組み合わせからの1つ以上の特徴は、場合によって、組み合わせから切り出され得る。そして、請求される組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられ得る。
【0128】
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、このような動作を特定の順序でまたは順序で実行すること、または、例示された全ての動作を実行することを要求するものとして理解されるべきではない。さらに、この特許文献に説明されている実施形態における種々のシステム構成要素の分離は、全ての実施形態においてそうした分離を必要とするものとして理解されるべきではない。
【0129】
少数の実施形態および実施例のみが説明されており、そして、この特許文献に記載され、かつ、説明されていることに基づいて、他の実施形態、拡張、およびバリエーションが成され得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13