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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7229355残差符号化を制御する方法、装置およびコンピュータ・プログラム
<>
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図1A
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図1B
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図2
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図3
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図4
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図5
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図6
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図7
  • 特許-残差符号化を制御する方法、装置およびコンピュータ・プログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-16
(45)【発行日】2023-02-27
(54)【発明の名称】残差符号化を制御する方法、装置およびコンピュータ・プログラム
(51)【国際特許分類】
   H04N 19/12 20140101AFI20230217BHJP
   H04N 19/136 20140101ALI20230217BHJP
   H04N 19/159 20140101ALI20230217BHJP
   H04N 19/176 20140101ALI20230217BHJP
【FI】
H04N19/12
H04N19/136
H04N19/159
H04N19/176
【請求項の数】 11
(21)【出願番号】P 2021531062
(86)(22)【出願日】2020-02-05
(65)【公表番号】
(43)【公表日】2022-01-25
(86)【国際出願番号】 US2020016791
(87)【国際公開番号】W WO2020163478
(87)【国際公開日】2020-08-13
【審査請求日】2021-05-28
(31)【優先権主張番号】62/803,244
(32)【優先日】2019-02-08
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/403,771
(32)【優先日】2019-05-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【弁理士】
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リ,シアン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】鉢呂 健
(56)【参考文献】
【文献】B. Bross et al.,Non-CE8: Unified Transform Type Signalling and Residual Coding for Transform Skip,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M0464-v4],JVET-M0464 (version 4),ITU-T,2019年01月15日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0464-v4.zip>: JVET-M0464-v4.docx: pp.1-13
【文献】ZHAO, Xin et al.,CE6 related: Unification of Transform Skip mode and MTS,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 13th Meeting: Marrakech, MA, 9-18 Jan. 2019, [JVET-M0501-v2],JVET-M0501 (version 2),ITU-T,2019年01月18日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-M0501-v2.zip>: JVET-M0501-r1_clean.docx: pp.1-5
【文献】CHEN, Jianle et al.,Algorithm description for Versatile Video Coding and Test Model 3 (VTM 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Macao, CN, 3-12 Oct. 2018, [JVET-L1002-v1],JVET-L1002 (version 2),ITU-T,2018年12月24日,<URL: http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/12_Macao/wg11/JVET-L1002-v2.zip>: JVET-L1002-v2.docx: pp.36-38
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ・シーケンスのエンコードのための残差符号化を制御する方法であって、当該方法は少なくとも1つのプロセッサによって実行され、当該方法は:
複数変換選択(MTS)インデックスが前記ビデオ・シーケンスの符号化ブロックについて変換スキップ・モードが有効にされることを示すことに基づいて、水平変換および垂直変換のそれぞれとして恒等変換を同定する段階と;
前記MTSインデックスが前記符号化ブロックについて変換スキップ・モードが有効にされないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定する段階と;
同定された水平変換および同定された垂直変換を使用して、前記符号化ブロックの残差符号化を実行する段階とを含
当該方法はさらに、
条件のうち任意の1つまたは任意の組み合わせが満たされているかどうかを判定する段階であって、該条件は、前記符号化ブロックの近傍ブロックが前記恒等変換によって符号化されるかどうか、前記符号化ブロックがイントラ予測モードによって符号化されるかどうか、前記符号化ブロックがイントラブロックコピーによって符号化されるかどうか、前記符号化ブロックの成分がルーマであるかクロマであるか、前記符号化ブロックがサブブロックマージモードによって符号化されるかどうか、および前記符号化ブロックがイントラサブパーティションモードによって符号化されるかどうかを含む、段階と;
前記MTSインデックスが、前記符号化ブロックについて変換スキップ・モードが有効にされないことを示し、前記条件のうちの前記任意の1つまたは任意の組み合わせが満たされていると判定されることに基づいて、前記恒等変換を水平変換および垂直変換のそれぞれとして同定する段階とを含む、
方法。
【請求項2】
前記水平変換および垂直変換の一方または両方として、DCT、DST、アダマール変換およびハール変換のうちの1つを同定することは、前記MTSインデックスが前記符号化ブロックについて変換スキップ・モードが有効にされないことを示し、第1の値を示すことに基づいて:
前記恒等変換を水平変換として同定し;
DCT-2、DST-7、アダマール変換およびハール変換のうちの一つを垂直変換として同定することを含む、
請求項1に記載の方法。
【請求項3】
前記水平変換および垂直変換の一方または両方として、DCT、DST、アダマール変換およびハール変換のうちの1つを同定することは、前記MTSインデックスが前記符号化ブロックについて変換スキップ・モードが有効にされないことを示し、前記第1の値とは異なる第2の値を示すことに基づいて:
DCT-2、DST-7、アダマール変換およびハール変換のうちの一つを水平変換として同定し;
前記恒等変換を垂直変換として同定することを含む、
請求項2に記載の方法。
【請求項4】
前記符号化ブロックのサイズが所定の閾値よりも大きいかどうかを判定する段階であって、該サイズは、面積、高さ、および幅のうちの1つである、段階と;
前記MTSインデックスが、前記符号化ブロックについて変換スキップ・モードが有効にされないことを示し、前記条件のうちの前記任意の1つまたは任意の組み合わせが満たされていると判定され、前記符号化ブロックのサイズが前記所定の閾値より大きいと判定されることに基づいて、水平変換および垂直変換のそれぞれとして前記恒等変換を同定する段階とをさらに含む、
請求項1ないし3のうちいずれか一項に記載の方法。
【請求項5】
ビデオ・シーケンスのエンコードのための残差符号化を制御する方法であって、当該方法は少なくとも1つのプロセッサによって実行され、当該方法は:
複数変換選択(MTS)インデックスが前記ビデオ・シーケンスの符号化ブロックについて変換スキップ・モードが有効にされることを示すことに基づいて、水平変換および垂直変換のそれぞれとして恒等変換を同定する段階と;
前記MTSインデックスが前記符号化ブロックについて変換スキップ・モードが有効にされないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定する段階と;
同定された水平変換および同定された垂直変換を使用して、前記符号化ブロックの残差符号化を実行する段階とを含み、
当該方法は、
前記符号化ブロックのサイズが所定の閾値よりも大きいかどうかを判定する段階をさらに含み、該サイズは、面積、高さ、および幅のうちの1つであり、
水平変換および垂直変換のそれぞれとして前記恒等変換を同定することは、前記MTSインデックスが、前記符号化ブロックについて変換スキップ・モードが有効にされることを示し、前記符号化ブロックのサイズが前記所定の閾値より大きいと判定されることに基づいて、水平変換および垂直変換のそれぞれとして前記恒等変換を同定することを含む、
法。
【請求項6】
DCT、DST、およびアダマール変換のうちの1つを前記符号化ブロックの残差ブロックに対して適用して変換係数ブロックを生成する段階と;
前記変換係数ブロックに基づいて変換差分絶対値和を決定する段階と;
前記残差ブロックに基づいて差分絶対値和を決定する段階と;
前記変換差分絶対値和および前記差分絶対値和に基づいて、前記符号化ブロックについての候補予測モードの最終的なコストを決定する段階と;
前記候補予測モードの最終的なコストに基づいて、変換スキップ・モードが有効にされることを示すよう前記MTSインデックスを設定する段階とをさらに含む、
請求項1ないしのうちいずれか一項に記載の方法。
【請求項7】
前記候補予測モードの最終的なコストは、前記変換差分絶対値和および前記差分絶対値和のうちの最小値である、請求項に記載の方法。
【請求項8】
前記候補予測モードの最終的なコストは、前記変換差分絶対値和と前記差分絶対値和の加重和である、請求項に記載の方法。
【請求項9】
前記恒等変換は、対角位置に沿ってのみ0でない要素を有するN×Nの変換コアを用いた線形変換プロセスである、請求項1ないしのうちいずれか一項に記載の方法。
【請求項10】
請求項1ないしのうちいずれか一項に記載の方法を実行するように構成された、ビデオ・シーケンスのエンコードのための残差符号化を制御するための装置。
【請求項11】
少なくとも1つのプロセッサに請求項1ないしのうちいずれか一項に記載の方法を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2019年2月8日に出願された米国仮特許出願第62/803,244号、および2019年5月6日に米国特許商標庁に出願された米国特許出願第16/403,771号からの優先権を主張するものである。これらの出願は、ここに参照によりその全体において組み込まれる。
【0002】
分野
実施形態と整合する方法および装置は、ビデオ符号化に関し、より詳細には、変換スキップ・モードと複数変換選択との間の調和のための方法および装置に関する。
【背景技術】
【0003】
関連技術の説明
高効率ビデオ符号化(High Efficiency Video Coding、HEVC)では、主要変換は4点、8点、16点および32点DCT-2(離散コサイン変換)であり、変換コア行列は8ビット整数を使って表わされる、すなわち8ビット変換コアである。より小さなDCT-2の変換コア行列は、以下に示されるように、より大きなDCT-2の一部である。
4×4変換
【数1】
8×8変換
【数2】
16×16変換
【数3】
32×32変換
【数4】
【0004】
DCT-2コアは、対称/反対称特性を示す。よって、演算カウントの数(乗算、加算/減算、シフト)を減らすためにいわゆる「部分バタフライ(partial butterfly)」実装がサポートされ、該部分バタフライ実装を用いて行列乗算の同一の結果を得ることができる。
【発明の概要】
【課題を解決するための手段】
【0005】
実施形態によれば、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御する方法が、少なくとも1つのプロセッサによって実行され、複数変換選択(multiple transform selection、MTS)インデックスがビデオ・シーケンスのある符号化ブロックについて変換スキップ・モードが有効にされていることを示すことに基づいて、水平変換および垂直変換のそれぞれとして、恒等変換を同定することを含む。本方法は、さらに、MTSインデックスがその符号化ブロックについて変換スキップ・モードが有効にされていないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定することを含む。本方法はさらに、同定された水平変換および同定された垂直変換を使用して、符号化ブロックの残差符号化を実行することを含む。
【0006】
実施形態によれば、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御するための装置が、コンピュータ・プログラム・コードを記憶するように構成された少なくとも1つのメモリと、前記少なくとも1つのメモリにアクセスし、前記コンピュータ・プログラム・コードに従って動作するように構成された少なくとも1つのプロセッサとを含む。本コンピュータ・プログラム・コードは、前記少なくとも1つのプロセッサに、複数変換選択(multiple transform selection、MTS)インデックスがビデオ・シーケンスのある符号化ブロックについて変換スキップ・モードが有効にされていることを示すことに基づいて、水平変換および垂直変換のそれぞれとして、恒等変換を同定させるように構成された第1の同定コードを含む。本コンピュータ・プログラム・コードは、さらに、前記少なくとも1つのプロセッサに、MTSインデックスがその符号化ブロックについて変換スキップ・モードが有効にされていないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定させるように構成された第2の同定コードを含む。本コンピュータ・プログラム・コードはさらに、前記少なくとも1つのプロセッサに、同定された水平変換および同定された垂直変換を使用して、符号化ブロックの残差符号化を実行させるように構成された実行コードを含む。
【0007】
実施形態によれば、非一時的なコンピュータ可読記憶媒体が、少なくとも1つのプロセッサに、複数変換選択(multiple transform selection、MTS)インデックスがビデオ・シーケンスのある符号化ブロックについて変換スキップ・モードが有効にされていることを示すことに基づいて、水平変換および垂直変換のそれぞれとして、恒等変換を同定させる命令を含む。前記命令は、さらに、前記少なくとも1つのプロセッサに、MTSインデックスがその符号化ブロックについて変換スキップ・モードが有効にされていないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定させる。前記命令はさらに、前記少なくとも1つのプロセッサに、同定された水平変換および同定された垂直変換を使用して、符号化ブロックの残差符号化を実行させる。
【図面の簡単な説明】
【0008】
図1A】多用途ビデオ符号化(Versatile Video Coding、VVC)のイントラサブパーティション(intra sub-partition、ISP)符号化モードにおける4×8および8×4ブロックの分割を示す図である。
【0009】
図1B】VVCのISP符号化モードにおける4×8、8×4、4×4ブロックを除くすべてのブロックの分割を示す図である。
【0010】
図2】実施形態による通信システムの簡略化されたブロック図である。
【0011】
図3】実施形態による、ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置図である。
【0012】
図4】実施形態によるビデオ・デコーダの機能ブロック図である。
【0013】
図5】実施形態によるビデオ・エンコーダの機能ブロック図である。
【0014】
図6】実施形態による、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御する方法を示すフローチャートである。
【0015】
図7】実施形態による、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御するための装置の簡略化されたブロック図である。
【0016】
図8】実施形態を実装するのに好適なコンピュータ・システムの図である。
【発明を実施するための形態】
【0017】
現在のVVCでは、HEVCと同じ4点、8点、16点、32点のDCT-2変換のほかに、追加的な2点および64点のDCT-2変換も含まれる。VVCで定義された64点DCT-2コアは、64×64行列である。
【0018】
HEVCで用いられてきたDCT-2および4×4 DST-7(離散サイン変換)に加えて、適応複数変換(Adaptive Multiple Transform、AMTまたは向上複数変換(Enhanced Multiple Transform、EMT)としてまたは複数変換選択(Multiple Transform Selection、MTS)としても知られる)スキームが、VVCにおいて、インターおよびイントラ符号化されるブロックの両方について残差符号化のために用いられてきた。これは、HEVCにおける現在の諸変換以外のDCT/DSTファミリーからの複数の選択された変換を使用する。新しく導入された変換行列はDST-7、DCT-8である。テーブル1は、選択されたDST/DCTの基底関数を示す。
テーブル1:N点入力についてのDCT-2、DST-7、DCT-8の変換基底関数
【表1】
【0019】
VVCにおけるすべての主要変換行列は、8ビット表現で使用される。AMTは、幅と高さの両方が32以下のCUに適用され、AMTが適用されるか否かは、mts_flagと呼ばれるフラグによって制御される。mts_flagが0に等しい場合、残差を符号化するためにDCT-2のみが適用される。mts_flagが1に等しい場合、テーブル2に従って使用されるべき水平および垂直変換を同定するために、2つのビンを使用してインデックスmts_idxがさらに信号伝達される。ここで、値1はDST-7を使用することを意味し、値2はDCT-8を使用することを意味する。
テーブル2:mts_idx[x][y][cIdx]に依存するtrTypeHorとtrTypeVerの指定
【表2】
【0020】
DST-7の変換コア(基底ベクトルによって構成される行列)は、下記でも表現できる:
4点DST-7:
【数5】
8点DST-7:
【数6】
16点DST-7;
【数7】
32点DST-7:
【数8】

4点DCT-8:
【数9】
8点DCT-8:
【数10】
16点DCT-8:
【数11】
32点DCT-8:
【数12】
【0021】
VVCでは、符号化ブロックの高さと幅の両方が64以下の場合、変換サイズは常に符号化ブロック・サイズと同じである。符号化ブロックの高さまたは幅のいずれかが64よりも大きい場合、変換またはイントラ予測を実行するとき、符号化ブロックはさらに複数のサブブロックに分割され、各サブブロックの幅および高さは64以下であり、各サブブロックについて1つの変換が実行される。
【0022】
図2は、実施形態による通信システム(200)の簡略化されたブロック図である。通信システム(200)は、ネットワーク(250)を介して相互接続された少なくとも2つの端末(210~220)を含んでいてもよい。データの一方向伝送については、第1の端末(210)は、ネットワーク(250)を介した他方の端末(220)への伝送のために、ローカル位置でビデオ・データを符号化してもよい。第2の端末(220)は、ネットワーク(250)から他方の端末の符号化されたビデオ・データを受信し、符号化されたデータをデコードし、復元されたビデオ・データを表示することができる。一方向データ伝送は、メディア・サービス・アプリケーション等において一般的でありうる。
【0023】
VVCドラフト・バージョン2におけるMTSの関連するシンタックスおよび意味内容を、下記に示す(イタリック体で強調されている):
7.3.4.11 変換単位(Transform unit)シンタックス
【表3】
7.3.4.12 残差符号化シンタックス
【表4】

7.4.5.11 変換単位の意味内容
cu_mts_flag[x0][y0]が1に等しいことは、複数変換選択が、関連するルーマ変換ブロックの残差サンプルに適用されることを指定する。cu_mts_flag[x0][y0]が0に等しいことは、複数変換選択が、関連するルーマ変換ブロックの残差サンプルに適用されないことを指定する。配列インデックスx0,y0は、ピクチャーの左上ルーマ・サンプルに対する、考慮されている変換ブロックの左上ルーマ・サンプルの位置(x0,y0)を指定する。
cu_mts_flag[x0][y0]が存在しない場合は、0に等しいと推定される。
7.4.5.12 残差符号化の意味内容
transform_skip_flag[x0][y0][cIdx]は、変換が、関連する変換ブロックに適用されるか否かを指定する。配列インデックスx0,y0は、ピクチャーの左上ルーマ・サンプルに対する、考慮されている変換ブロックの左上ルーマ・サンプルの位置(x0,y0)を指定する。配列インデックスcIdxは、色成分についてのインジケータを指定し、ルーマについては0に等しく、Cbについては1に等しく、Crについては2に等しい。transform_skip_flag[x0][y0][cIdx]が1に等しいことは、現在の変換ブロックに変換が適用されないことを指定する。transform_skip_flag[x0][y0][cIdx]が0に等しいことは、現在の変換ブロックに変換が適用されるか否かの決定が、他のシンタックス要素に依存することを指定する。transform_skip_flag[x0][y0][cIdx]が存在しない場合は、0に等しいと推定される。
last_sig_coeff_x_prefixは、変換ブロック内のスキャン順で最後の有意な係数の列位置のプレフィックスを指定する。last_sig_coeff_x_prefixの値は、0から(log2TbWidth<<1)-1まで(両端含む)の範囲である。
last_sig_coeff_y_prefixは、変換ブロック内のスキャン順で最後の有意な係数の行位置のプレフィックスを指定する。last_sig_coeff_y_prefixの値は、0から(log2TbHeight<<1)-1まで(両端含む)の範囲である。
last_sig_coeff_x_suffixは、変換ブロック内のスキャン順で最後の有意な係数の列位置のサフィックスを指定する。
last_sig_coeff_x_suffixの値は、0から(1<<((last_sig_coeff_x_prefix>>1)-1))-1まで(両端含む)の範囲である。
変換ブロック内のスキャン順で最後の有意な係数の列位置LastSignificantCoeffXは、次のように導出される:
・last_sig_coeff_x_suffixが存在しない場合は、次が適用される:
LastSignificantCoeffX=last_sig_coeff_x_prefix
・それ以外の場合(last_sig_coeff_x_suffixが存在)、次が適用される:
LastSignificantCoeffX=(1<<((last_sig_coeff_x_prefix>>1)-1))*
(2+(last_sig_coeff_x_prefix & 1))+last_sig_coeff_x_suffix
……
coeff_sign_flag[n]は、スキャン位置nについての変換係数レベルの符号を次のように指定する:
・coeff_sign_flag[n]が0に等しい場合、対応する変換係数レベルは正の値をもつ。
・それ以外の場合(coeff_sign_flag[n]が1に等しい)、対応する変換係数レベルは負の値をもつ。
coeff_sign_flag[n]が存在しない場合は、0に等しいと推定される。
mts_idx[x0][y0]は、現在の変換ブロックの水平方向と垂直方向に沿った諸ルーマ残差サンプルにどの変換カーネルが適用されるかを指定する。配列インデックスx0,y0は、ピクチャーの左上ルーマ・サンプルに対する、考慮されている変換ブロックの左上ルーマ・サンプルの位置(x0,y0)を指定する。
mts_idx[x0][y0]が存在しない場合は、-1に等しいと推定される。
【0024】
VVCでは、変換スキップ・モード(Transform Skip Mode、TSM)が、イントラおよびインター予測残差の両方を符号化するために適用される。16サンプル以下のコーディング・ブロック(ルーマおよびクロマ両方)については、現在のブロックについてTSMが適用されるかどうかを示すためにフラグが信号伝達される。TSMが適用される場合、各モジュールについての詳細な修正を下記に挙げる。
(a)予測:変化なし。
(b)変換:スキップされる。その代わり、変換スキップTUについて、単純なスケーリング・プロセスが使用される。変換スキップ係数が他の変換係数と同様の大きさをもつようにするために、スケールダウン・プロセスが実行され、スケーリング因子は同じサイズの他の変換(ノルム1の標準的な浮動小数点変換に対して)に関連するスケーリングと同じである。
(c)エントロピー符号化:変換がバイパスされたか否かを示すためにフラグが信号伝達される。
(d)ブロック化解除、SAO、およびALF:変化なし。
(e)シーケンスパラメータセット(SPS)内のフラグが、変換スキップが有効にされているか否かを示す。
【0025】
VVCドラフト・バージョン2におけるTSMの関連する仕様テキストを下記に示す(イタリック体で強調される):
7.3.4.13 残差符号化シンタックス
【表5】
7.4.5.12 残差符号化の意味内容
transform_skip_flag[x0][y0][cIdx]は、関連する変換ブロックに変換が適用されるか否かを指定する。配列インデックスx0,y0は、ピクチャーの左上のルーマ・サンプルに対する、考慮されている変換ブロックの左上のルーマ・サンプルの位置(x0,y0)を指定する。配列インデックスcIdxは、色成分についてのインジケータを指定し、ルーマについては0に等しく、Cbについては1に等しく、Crについては2に等しい。transform_skip_flag[x0][y0][cIdx]が1に等しいことは、現在の変換ブロックに変換が適用されないことを指定する。transform_skip_flag[x0][y0][cIdx]が0に等しいことは、現在の変換ブロックに変換が適用されるか否かの決定は、他のシンタックス要素に依存することを指定する。transform_skip_flag[x0][y0][cIdx]が存在しない場合は、0に等しいと推定される。
last_sig_coeff_x_prefixは、変換ブロック内のスキャン順で最後の有意な係数の列位置のプレフィックスを指定する。last_sig_coeff_x_prefixの値は、0から(log2TbWidth<<1)-1まで(両端含む)の範囲である。
8.5.2 スケーリングおよび変換のプロセス
このプロセスへの入力は以下の通りである:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のルーマ変換ブロックの左上のサンプルを指定するルーマ位置(xTbY,yTbY)、
・現在のブロックの色成分を指定する変数cIdx、
・変換ブロック幅を指定する変数nTbW、
・変換ブロック高さを指定する変数nTbH。
このプロセスの出力は、残差サンプルの(nTbW)×(nTbH)配列resSamples[x][y]である。ここで、x=0…nTbW-1、y=0…nTbH-1である。
変数bitDepth、bdShiftおよびtsShiftは、次のように導出される:
bitDepth=(cIdx==0) ? BitDepthY:BitDepthC
bdShift=Max(22-bitDepth,0)
tsShift=5+((Log2(nTbW)+Log2(nTbH))/2)
残差サンプルresSampleの(nTbW)×(nTbH)配列は次のように導出される:
1.8.5.3項において指定される変換係数についてのスケーリング・プロセスが、変換ブロック位置(xTbY,yTbY)、変換幅nTbWおよび変換高さnTbH、色成分変数cIdxおよび現在の色成分のビット深さbitDepthを入力として呼び出され、出力はスケーリングされた変換係数dの(nTbW)×(nTbH)配列である。
2.残差サンプルrの(nTbW)×(nTbH)配列は次のように導出される:
・transform_skip_flag[xTbY][yTbY][cIdx]が1に等しい場合、x=0…nTbW-1、y=0…nTbH-1の残差サンプル配列値r[x][y]は次のように導出される:
r[x][y]=d[x][y]<<tsShift
・それ以外の場合(transform_skip_flag[xTbY][yTbY][cIdx]が0に等しい)、変換ブロック位置(xTbY,yTbY)、変換幅nTbWおよび変換高さnTbH、色成分変数cIdxおよびスケーリングされた変換係数dの(nTbW)×(nTbH)配列を入力として、スケーリングされた変換係数についての変換プロセスが呼び出され、出力は残差サンプルrの(nTbW)×(nTbH)配列である。
3.x=0…nTbW-1、y=0…nTbH-1としての残差サンプルresSamples[x][y]は次のように導出される:
resSamples[x][y]=(r[x][y]+(1<<(bdShift-1)))>>bdShift
8.5.3 変換係数についてのスケーリング・プロセス
このプロセスへの入力は以下の通りである:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のルーマ変換ブロックの左上のサンプルを指定するルーマ位置(xTbY,yTbY)、
・変換ブロック幅を指定する変数nTbW、
・変換ブロック高さを指定する変数nTbH、
・現在のブロックの色成分を指定する変数cIdx、
・現在の色成分のビット深さを指定する変数bitDepth。
このプロセスの出力は、要素d[x][y]をもつスケーリングされた変換係数の(nTbW)×(nTbH)配列dである。
量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、次が適用される:
qP=Qp'Y
・そうではなく、cIdxが1に等しい場合、次が適用される:
qP=Qp'Cb
・それ以外の場合(cIdxが2に等しい)、次が適用される:
qP=Qp'Cr
変数bdShift、rectNormおよびbdOffsetは次のように導出される:
bdShift=bitDepth+(((Log2(nTbW)+Log2(nTbH))&1)*8+
(Log2(nTbW)+Log2(nTbH))/2)-5+dep_quant_enabled_flag
rectNorm=((Log2( nTbW)+Log2(nTbH)) & 1)==1 ? 181:1
bdOffset=(1<<bdShift)>>1
リストLevelScale[]は、LevelScale[k]={40,45,51,57,64,72} として指定される。ここで、k=0…5。
x=0…nTbW-1、y=0…nTbH-1としてスケーリングされた変換係数d[x][y]の導出のためには、次が適用される:
・中間スケーリング因子m[x][y]が16に設定される。
・スケーリング因子ls[x][y]は次のように導出される:
・dep_quant_enabled_flagが1に等しい場合、次が適用される:
ls[x][y]=(m[x][y]*levelScale[(qP+1)%6])<<((qP+1)/6)
・それ以外の場合(dep_quant_enabled_flagが0に等しい)、次が適用される:
ls[x][y]=(m[x][y]*levelScale[qP%6])<<(qP/6)
・値dnc[x][y]は次のように導出される:
dnc[x][y] =
(TransCoeffLevel[xTbY][yTbY][cIdx][x][y]*ls[x][y]*rectNorm
+bdOffset)>>bdShift
・スケーリングされた変換係数d[x][y]は次のように導出される:
d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y])
【0026】
統合ビデオ探査チーム(Joint Video Exploration Team、JVET)-M0464において、変換スキップおよびMTSのための修正されたシンタックス設計が提案され、VVCドラフト3に採用された。次の表は、VVCドラフト3と比較した、提案された結合シンタックス要素tu_mts_idxの修正されたシンタックスを示している。
【表6】
【0027】
まずMTSフラグを、次いでTSフラグおよびそれに続くMTSインデックスのための2つのビンをもつ固定長の符号化をパースする代わりに、新たな統合シンタックス要素tu_mts_idxは打ち切りされた単進二値化(truncated unary binarization)を使用する。第1のビンがTSを示し、第2のビンがMTSを示し、その後全部がMTSインデックスを示す。完全な意味内容および二値化は次の表に示される。
【表7】
【0028】
コンテキスト・モデルの数は変更されず、tu_mts_idxの各ビンへのコンテキスト・インデックス増分ctxIncの割り当ては次の通り:
【表8】
【0029】
イントラサブパーティション(Intra Sub-Partitions、ISP)符号化モードは、テーブル3に示されるように、ブロック・サイズ寸法に依存して、ルーマのイントラ予測されたブロックを垂直方向または水平方向に2つまたは4つのサブパーティションに分割する。図1Aおよび図1Bは、2つの可能性の例を示す。すべてのサブパーティションは、少なくとも16サンプルをもつという条件を満たしている。クロマ成分については、ISPは適用されない。
テーブル3:ブロック・サイズに依存したサブパーティション数
【表9】
【0030】
これらのサブパーティションのそれぞれについて、エンコーダによって送信された係数をエントロピー復号し、次いでそれらを逆量子化および逆変換することによって、残差信号が生成される。次いで、サブパーティションがイントラ予測され、最後に、残差信号を予測信号に加算することによって対応する再構成されたサンプルが得られる。よって、各サブパーティションの再構成された値は、次のサブパーティションの予測を生成するために利用可能となり、このようにしてプロセスが繰り返されていく。すべてのサブパーティションは同じイントラモードを共有する。
【0031】
ISPアルゴリズムは、最確モード(most probable mode、MPM)リストの一部である諸イントラモードでのみ試験される。この理由から、もしブロックがISPを使うなら、MPMフラグは1であると推定されるさらに、あるブロックについてISPが使用される場合、DCモードを除外し、ISP水平分割については水平イントラモードを、垂直分割については垂直イントラモードを優先するよう、MPMリストは修正される。
【0032】
ISPでは、各サブパーティションはサブ変換ユニット(TU)と見なすことができる。変換および再構成が、各サブパーティションについて個別に実行されるからである。
【0033】
上述のように、TSMとMTSのために別々のシンタックスおよび意味内容が定義される。しかしながら、これらの2つのツールは両方とも変換選択に関係しているので、シンタックスと意味内容は調和させることができる。
【0034】
TSMでは、水平変換と垂直変換の両方がスキップされる。しかしながら、水平もしくは垂直のいずれか、または水平および垂直の両方について変換をスキップするほうが、より柔軟でありうる。
【0035】
4×2ブロックおよび2×4ブロックについては、領域サイズが2の偶数乗ではないため、16以下の領域サイズをもつブロックについてTSMが適用される。同じ量子化スキームを再利用するために、TSMにおいては乗算演算が必要とされる。これは、乗算を伴わない4点変換スキップと比較して、追加的な計算コストである。
【0036】
図2は、たとえばビデオ会議の間に発生しうる符号化されたビデオの双方向伝送をサポートするために提供される第2の対の端末(230、240)を示している。データの双方向伝送については、各端末(230、240)が、ネットワーク(250)を介した他方の端末への伝送のために、ローカル位置で捕捉されたビデオ・データを符号化することができる。各端末(230、240)はまた、他方の端末によって送信された符号化されたビデオ・データを受信することもでき、符号化されたデータを復号することもでき、復元されたビデオ・データをローカルな表示装置に表示することもできる。
【0037】
図2において、端末(210~240)は、サーバー、パーソナルコンピュータおよびスマートフォンとして図示されうるが、実施形態の原理はそれに限定されない。実施形態は、ラップトップ・コンピュータ、タブレット・コンピュータ、メディア・プレーヤー、および/または専用のテレビ会議設備での用途を見出す。ネットワーク(250)は、たとえば有線および/または無線通信ネットワークを含む、端末(210~240)間で符号化されたビデオ・データを伝達する任意の数のネットワークを表わす。通信ネットワーク(250)は、回線交換および/またはパケット交換チャネルにおいてデータを交換することができる。代表的なネットワークは、通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。今の議論の目的のために、ネットワーク(250)のアーキテクチャーおよびトポロジーは、以下で説明しない限り、実施形態の動作には重要ではない場合がある。
【0038】
図3は、実施形態による、ストリーミング環境におけるビデオ・エンコーダおよびビデオ・デコーダの配置図である。開示された主題は、たとえば、ビデオ会議、デジタルTV、CD、DVD、メモリースティックなどを含むデジタルメディア上の圧縮されたビデオの記憶などを含む、他のビデオ対応アプリケーションにも等しく適用可能でありうる。
【0039】
ストリーミング・システムは、たとえば圧縮されていないビデオ・サンプル・ストリーム(302)を生成するビデオ源(301)、たとえばデジタル・カメラを含むことができる捕捉サブシステム(313)を含んでいてもよい。このサンプル・ストリーム(302)は、エンコードされたビデオ・ビットストリームと比較して高いデータボリュームを強調するために太線として描かれており、カメラ(301)に結合されたエンコーダ(303)によって処理されることができる。エンコーダ(303)は、以下により詳細に記載されるような開示される主題の諸側面を可能にし、または実装するためにハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。エンコードされたビデオビットストリーム(304)は、サンプル・ストリームと比較してより低いデータボリュームを強調するために細い線として描かれており、将来の使用のためにストリーミングサーバー(305)に記憶されることができる。一つまたは複数のストリーミングクライアント(306、308)は、エンコードされたビデオビットストリーム(304)のコピー(307、309)を取得するために、ストリーミングサーバー(305)にアクセスすることができる。クライアント(306)は、エンコードされたビデオ・ビットストリーム(307)のはいってくるコピーをデコードし、ディスプレイ(312)または他のレンダリング装置(図示せず)上でレンダリング可能な出て行くビデオ・サンプル・ストリーム(311)を生成するビデオ・デコーダ(310)を含むことができる。いくつかのストリーミング・システムでは、ビデオ・ビットストリーム(304、307、309)は、ある種のビデオ符号化/圧縮標準に従ってエンコードできる。これらの標準の例は、ITU-T勧告H.265を含む。VVCとして知られるビデオ符号化規格が開発中である。開示される主題事項は、VVCの文脈で使用されうる。
【0040】
図4は、実施形態によるビデオ・デコーダ(310)の機能ブロック図である。
【0041】
受領器(410)は、デコーダ(310)によってデコードされるべき一つまたは複数の符号化ビデオ・シーケンスを受領することができ、、一時には一つの符号化されたビデオ・シーケンスであり、各符号化されたビデオ・シーケンスのデコードは、他の符号化されたビデオ・シーケンスとは独立である。符号化されたビデオ・シーケンスは、チャネル(412)から受領されてもよく、このチャネルは、エンコードされたビデオ・データを記憶する記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。受領器(410)は、エンコードされたビデオ・データを、たとえば符号化されたオーディオ・データおよび/または補助データストリームなどの他のデータと一緒に受領することができ、これらのデータは、それぞれの使用エンティティ(図示せず)に転送されうる。受領器(410)は、符号化されたビデオ・シーケンスを他のデータから分離することができる。ネットワーク・ジッタ対策として、バッファメモリ(415)が、受領器(410)とエントロピー・デコーダ/パーサー(420)(以下「パーサー」)との間に結合されてもよい。受領器(410)が、十分な帯域幅および制御可能性の記憶/転送装置から、またはアイソクロナス・ネットワークからデータを受領している場合は、バッファメモリ(415)は、必要とされなくてもよく、または小さくてもよい。インターネットのようなベストエフォート型のパケット・ネットワークでの使用のためには、バッファ(415)が要求されることがあり、比較的大きいことがあり、有利には適応サイズであることができる。
【0042】
ビデオ・デコーダ(310)は、エントロピー符号化されたビデオ・シーケンスからシンボル(421)を再構成するためのパーサー(420)を含んでいてもよい。これらのシンボルのカテゴリーは、デコーダ(310)の動作を管理するために使用される情報と、潜在的には、ディスプレイ(312)のようなレンダリング装置を制御するための情報とを含む。レンダリング装置は、図4に示されたように、デコーダ(430)の一体的な部分ではなく、それに結合されることができる。レンダリング装置(単数または複数)のための制御情報は、補足向上情報(Supplementary Enhancement Information、SEIメッセージ)またはビデオユーザービリティ情報(Video Usability Information、VUI)パラメータ・セット・フラグメント(図示せず)の形であってもよい。パーサー(420)は、受領された符号化されたビデオ・シーケンスをパースする/エントロピー復号することができる。符号化されたビデオ・シーケンスの符号化は、ビデオ符号化技術または標準に従うことができ、可変長符号化、ハフマン符号化、コンテキスト感受性ありまたはなしの算術符号化などを含む、当業者によく知られたさまざまな原理に従うことができる。パーサー(420)は、符号化されたビデオ・シーケンスから、ビデオ・デコーダ内のピクセルのサブグループのうちの少なくとも1つについてのサブグループ・パラメータのセットを、グループに対応する少なくとも1つのパラメータに基づいて、抽出することができる。サブグループは、ピクチャーグループ(Group of Pictures、GOP)、ピクチャー、タイル、スライス、マクロブロック、符号化単位(Coding Unit、CU)、ブロック、変換単位(Transform Unit、TU)、予測単位(Prediction Unit、PU)などを含むことができる。エントロピー復号器/パーサー(420)はまた、符号化されたビデオ・シーケンスから、変換係数、量子化器パラメータ(quantizer parameter、QP)値、動きベクトル等の情報を抽出することができる。
【0043】
パーサー(420)は、バッファ(415)から受領されたビデオ・シーケンスに対してエントロピー復号/パース動作を実行し、それによりシンボル(421)を生成することができる。さらに、パーサー(420)は、特定のシンボル(421)が動き補償予測ユニット(453)、スケーラー/逆変換ユニット(451)、イントラ予測ユニット(452)またはループフィルタユニット(454)に提供されるかどうかを決定してもよい。
【0044】
シンボル(421)の再構成は、符号化されたビデオ・ピクチャーまたはその諸部分のタイプ(たとえば、インターおよびイントラ・ピクチャー、インターおよびイントラ・ブロック)および他の要因に依存して、複数の異なるユニットに関わることができる。どのユニットがどのように関わるかは、符号化されたビデオ・シーケンスからパーサー(420)によってパースされたサブグループ制御情報によって制御されることができる。パーサー(420)と下記の複数のユニットとの間のそのようなサブグループ制御情報の流れは、明確のため、描かれていない。
【0045】
すでに述べた機能ブロックのほかに、デコーダ(310)は、以下に説明するように、概念的に、いくつかの機能ユニットに分割できる。商業的制約の下で機能する実際的な実装では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合されることができる。しかしながら、開示される主題を記述する目的のためには、下記の機能単位への概念的な細分が適切である。
【0046】
第1のユニットは、スケーラー/逆変換ユニット(451)である。スケーラー/逆変換ユニット(451)は、パーサー(420)から、量子化された変換係数および制御情報をシンボル(単数または複数)(421)として受領する。制御情報は、どの変換を使用するか、ブロック・サイズ、量子化因子、量子化スケーリング行列などを含む。スケーラー/逆変換ユニット(451)は、集計器(455)に入力できるサンプル値を含むブロックを出力することができる。
【0047】
場合によっては、スケーラー/逆変換(451)の出力サンプルは、イントラ符号化ブロック、すなわち、以前に再構成されたピクチャーからの予測情報を使用していないが、現在ピクチャーの、以前に再構成された部分からの予測情報を使用することができるブロックに関することができる。そのような予測情報は、イントラ・ピクチャー予測ユニット(452)によって提供されることができる。場合によっては、イントラ・ピクチャー予測ユニット(452)は、現在の(部分的に再構成された)ピクチャー(456)から取ってきた、周囲のすでに再構成された情報を使用して、再構成中のブロックと同じサイズおよび形状のブロックを生成する。集計器(455)は、場合によっては、サンプル毎に、イントラ予測ユニット(452)が生成した予測情報を、スケーラー/逆変換ユニット(451)によって提供される出力サンプル情報に加算する。
【0048】
他の場合には、スケーラー/逆変換ユニット(451)の出力サンプルは、インター符号化され、潜在的には動き補償されたブロックに関することができる。そのような場合、動き補償予測ユニット(453)は、予測のために使用されるサンプルを取ってくるために参照ピクチャー・メモリ(457)にアクセスすることができる。取ってきたサンプルを、ブロックに関するシンボル(421)に従って動き補償した後、これらのサンプルは、集計器(455)によってスケーラー/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に加算されて、それにより出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルを取ってくる参照ピクチャー・メモリ内のアドレスは、シンボル(421)の形で動き補償ユニットに利用可能な動きベクトルによって制御できる。該シンボルは、たとえばX、Y、および参照ピクチャー成分を有することができる。動き補償は、サンプル以下の正確な動きベクトルが使用されるときの参照ピクチャー・メモリから取ってこられるサンプル値の補間、動きベクトル予測機構などを含むことができる。
【0049】
集計器(455)の出力サンプルは、ループ・フィルタ・ユニット(454)内でさまざまなループ・フィルタリング技術を受けることができる。ビデオ圧縮技術は、ループ内フィルタ技術を含むことができる。ループ内フィルタ技術は、符号化されたビデオ・ビットストリームに含まれるパラメータによって制御され、パーサー(420)からのシンボル(421)としてループ・フィルタ・ユニット(456)に利用可能にされるが、符号化されたピクチャーまたは符号化されたビデオ・シーケンスの(デコード順で)前の部分のデコード中に得られたメタ情報に応答するとともに、以前に再構成されループ・フィルタリングされたサンプル値に応答することもできる。
【0050】
ループ・フィルタ・ユニット(454)の出力はサンプル・ストリームであることができ、これは、レンダリング装置(312)に出力されることができ、また将来のインターピクチャー予測において使用するために参照ピクチャー・メモリ(456)に記憶されることができる。
【0051】
符号化された画像は、いったん完全に再構成されると、将来の予測のための参照ピクチャーとして使用できる。ある符号化されたピクチャーが完全に再構成され、該符号化されたピクチャーが(たとえば、パーサー(420)によって)参照ピクチャーとして同定されると、現在の参照ピクチャー(456)は参照ピクチャーバッファ(457)の一部となることができ、後続の符号化されたピクチャーの再構成を開始する前に、新鮮な現在ピクチャー・メモリが再割当てされることができる。
【0052】
ビデオ・デコーダ(310)は、ITU-T勧告H.265のような標準において文書化されていてもよい所定のビデオ圧縮技術に従ってデコード動作を実行することができる。符号化されたビデオ・シーケンスは、ビデオ圧縮技術または標準、特にその中のプロファイル文書において指定されているビデオ圧縮技術または標準のシンタックスに従うという意味で、使用されているビデオ圧縮技術または標準によって指定されたシンタックスに準拠することができる。準拠のためにはまた、符号化されたビデオ・シーケンスの複雑さが、ビデオ圧縮技術または標準のレベルによって定義される範囲内にあることも必要であることがある。いくつかの場合には、レベルは、最大ピクチャー・サイズ、最大フレーム・レート、最大再構成サンプル・レート(たとえば、毎秒メガサンプルの単位で測られる)、最大参照ピクチャー・サイズなどを制約する。レベルによって設定された限界は、場合によっては、符号化されたビデオ・シーケンスにおいて信号伝達される、HRDバッファ管理のための仮設参照デコーダ(Hypothetical Reference Decoder、HRD)仕様およびメタデータを通じてさらに制約されることができる。
【0053】
実施形態において、受領器(410)は、エンコードされたビデオとともに追加の(冗長な)データを受領してもよい。追加データは、符号化されたビデオ・シーケンス(単数または複数)の一部として含まれていてもよい。追加データは、データを適正にデコードするため、および/またはもとのビデオ・データをより正確に再構成するために、ビデオ・デコーダ(310)によって使用されてもよい。追加データは、たとえば、時間的、空間的、または信号対雑音比(SNR)の向上層、冗長スライス、冗長ピクチャー、前方誤り訂正符号などの形でありうる。
【0054】
図5は、実施形態によるビデオ・エンコーダ(303)の機能ブロック図である。
【0055】
エンコーダ(303)は、エンコーダ(303)によって符号化されるべきビデオ画像を捕捉することができるビデオ源(301)(これはエンコーダの一部ではない)からビデオ・サンプルを受領することができる。
【0056】
ビデオ源(301)は、任意の好適なビット深さ(たとえば、8ビット、10ビット、12ビット、…)、任意の色空間(たとえば、BT.601 YCrCB、RGB、…)および任意の好適なサンプリング構造(たとえば、YCrCb 4:2:0、YCrCb 4:4:4)でありうるデジタル・ビデオ・サンプル・ストリームの形で、エンコーダ(303)によって符号化されるべき源ビデオ・シーケンスを提供することができる。メディア・サービス・システムにおいては、ビデオ源(301)は、事前に準備されたビデオを記憶している記憶装置であってもよい。ビデオ会議システムにおいては、ビデオ源(301)は、ローカルでの画像情報をビデオ・シーケンスとして捕捉するカメラであってもよい。ビデオ・データは、シーケンスで見たときに動きを付与する複数の個々のピクチャーとして提供されてもよい。ピクチャー自体は、ピクセルの空間的アレイとして編成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間などに依存して、一つまたは複数のサンプルを含むことができる。当業者は、ピクセルとサンプルとの間の関係を容易に理解することができる。下記の説明は、サンプルに焦点を当てる。
【0057】
実施形態によれば、エンコーダ(303)は、源ビデオ・シーケンスのピクチャーを、リアルタイムで、またはアプリケーションによって要求される任意の他の時間的制約の下で、符号化および圧縮して、符号化されたビデオ・シーケンス(543)にすることができる。適切な符号化速度を施行することは、コントローラ(550)の一つの機能である。コントローラは、以下に記載されるような他の機能ユニットを制御し、それらのユニットに機能的に結合される。かかる結合は、明確のために描かれていない。コントローラによって設定されるパラメータは、レート制御に関連するパラメータ(ピクチャー・スキップ、量子化器、レート‐歪み最適化技術のラムダ値、…)、ピクチャー・サイズ、ピクチャーグループ(GOP)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、ある種のシステム設計のために最適化されたビデオ・エンコーダ(303)に関しうる、コントローラの他の機能を容易に認識することができる。
【0058】
いくつかのビデオ・エンコーダは、当業者が「符号化ループ」として容易に認識するものにおいて動作する。思い切って単純化した説明として、符号化ループは、エンコーダ(530)のエンコード部分(以下、「源符号化器」)(たとえば、符号化されるべき入力ピクチャーと参照ピクチャー(算数または複数)に基づいてシンボルを生成することを受け持つ)と、エンコーダ(303)に埋め込まれた(ローカル)デコーダ(533)とを含むことができる。デコーダ(533)は、(リモートの)デコーダも生成するであろうサンプル・データを生成するよう前記シンボルを再構成する(開示される主題事項において考慮されるビデオ圧縮技術では、シンボルと符号化されたビデオ・ビットストリームとの間のどの圧縮も無損失である)。再構成されたサンプル・ストリームは、参照ピクチャー・メモリ(534)に入力される。シンボル・ストリームのデコードは、デコーダ位置(ローカルかリモートか)によらずビット正確な結果をもたらすので、参照ピクチャー・バッファの内容もローカル・エンコーダとリモート・エンコーダの間でビット正確である。言い換えると、エンコーダの予測部は、デコーダがデコード中に予測を使用するときに「見る」のとまったく同じサンプル値を参照ピクチャー・サンプルとして「見る」。参照ピクチャー同期性のこの基本原理(および、たとえば、チャネルエラーのために同期性が維持できない場合の結果として生じるドリフト)は、当業者にはよく知られている。
【0059】
「ローカル」デコーダ(533)の動作は、図4との関連ですでに上記で詳細に述べた「リモート」デコーダ(310)の動作と同じであってよい。しかしながら、暫時図4も参照すると、シンボルが利用可能であり、エントロピー符号化器(545)およびパーサー(420)による、シンボルの符号化されたビデオ・シーケンスへのエンコード/デコードが可逆でありうるので、チャネル(412)、受領器(410)、バッファ(415)およびパーサー(420)を含むデコーダ(310)のエントロピー復号部は、ローカル・デコーダ(533)においては完全には実装されなくてもよい。
【0060】
この時点で行なうことができる観察は、デコーダ内に存在するパース/エントロピー復号を除くどのデコーダ技術も、対応するエンコーダ内で実質的に同一の機能的形態で存在する必要があることである。エンコーダ技術の記述は、包括的に記述されるデコーダ技術の逆であるため、短縮することができる。ある種の領域においてのみ、より詳細な説明が必要であり、以下に提供される。
【0061】
動作の一部として、源符号化器(530)は、「参照フレーム」として指定された、ビデオ・シーケンスからの一つまたは複数の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する、動き補償された予測符号化を実行することができる。このようにして、符号化エンジン(532)は、入力フレームのピクセル・ブロックと、入力フレームに対する予測参照として選択されうる参照フレーム(単数または複数)のピクセル・ブロックとの間の差分を符号化する。
【0062】
ローカル・ビデオ・デコーダ(533)は、源符号化器(530)によって生成されたシンボルに基づいて、参照フレームとして指定されうるフレームの符号化されたビデオ・データをデコードすることができる。符号化エンジン(532)の動作は、有利には、損失のあるプロセスでありうる。符号化されたビデオ・データがビデオ・デコーダ(図4には示さず)でデコードされうるとき、再構成されたビデオ・シーケンスは、典型的には、いくつかのエラーを伴う源ビデオ・シーケンスの複製でありうる。ローカル・ビデオ・デコーダ(533)は、ビデオ・デコーダによって参照ピクチャーに対して実行されうるデコード・プロセスを複製し、再構成された参照ピクチャーを参照ピクチャー・キャッシュ(534)に格納させることができる。このようにして、エンコーダ(303)は、遠端のビデオ・デコーダによって得られるであろう再構成された参照フレームとしての共通の内容を(伝送エラーがなければ)有する再構成された参照フレームのコピーを、ローカルに記憶することができる。
【0063】
予測器(535)は、符号化エンジン(532)について予測探索を実行することができる。すなわち、符号化されるべき新しいピクチャーについて、予測器(535)は、新しいピクチャーのための適切な予測参照のはたらきをしうるサンプル・データ(候補参照ピクセル・ブロックとして)またはある種のメタデータ、たとえば参照ピクチャー動きベクトル、ブロック形状などを求めて、参照ピクチャー・メモリ(534)を探索することができる。予測器(535)は、適切な予測参照を見出すために、サンプル・ブロック/ピクセル・ブロック毎に(on a sample block-by-pixel block basis)動作しうる。場合によっては、予測器(535)によって得られた検索結果によって決定されるところにより、入力ピクチャーは、参照ピクチャー・メモリ(534)に記憶された複数の参照ピクチャーから引き出された予測参照を有することができる。
【0064】
コントローラ(550)は、たとえば、ビデオ・データをエンコードするために使用されるパラメータおよびサブグループ・パラメータの設定を含め、ビデオ符号化器(530)の符号化動作を管理してもよい。
【0065】
上記の機能ユニットすべての出力は、エントロピー符号化器(545)におけるエントロピー符号化を受けることができる。エントロピー符号化器は、たとえばハフマン符号化、可変長符号化、算術符号化などといった当業者に既知の技術に従ってシンボルを無損失圧縮することによって、さまざまな機能ユニットによって生成されたシンボルを符号化されたビデオ・シーケンスに変換する。
【0066】
送信器(540)は、エントロピー符号化器(545)によって生成される符号化されたビデオ・シーケンスをバッファに入れて、通信チャネル(560)を介した送信のためにそれを準備することができる。通信チャネル(560)は、エンコードされたビデオ・データを記憶しうる記憶装置へのハードウェア/ソフトウェア・リンクであってもよい。送信器(540)は、ビデオ符号化器(530)からの符号化されたビデオ・データを、送信されるべき他のデータ、たとえば符号化されたオーディオ・データおよび/または補助データ・ストリーム(源は図示せず)とマージすることができる。
【0067】
コントローラ(550)は、エンコーダ(303)の動作を管理してもよい。符号化の間、コントローラ(550)は、それぞれの符号化されたピクチャーに、ある符号化ピクチャー・タイプを割り当てることができる。符号化ピクチャー・タイプは、それぞれのピクチャーに適用されうる符号化技術に影響しうる。たとえば、ピクチャーはしばしば、以下のピクチャー・タイプのうちの1つとして割り当てられることがある。
【0068】
イントラピクチャー(Iピクチャー)は、予測の源としてシーケンス内の他のピクチャーを使用せずに、符号化され、デコードされうるものでありうる。いくつかのビデオ・コーデックは、たとえば、独立デコーダ・リフレッシュ(Independent Decoder Refresh)・ピクチャーを含む、異なるタイプのイントラ・ピクチャーを許容する。当業者は、Iピクチャーのこれらの変形、ならびにそれらのそれぞれの用途および特徴を認識する。
【0069】
予測ピクチャー(Pピクチャー)は、各ブロックのサンプル値を予測するために、最大で1つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。
【0070】
双方向予測ピクチャー(Bピクチャー)は、各ブロックのサンプル値を予測するために、最大で2つの動きベクトルおよび参照インデックスを用いるイントラ予測またはインター予測を用いて符号化およびデコードされうるものでありうる。同様に、マルチ予測ピクチャーは、単一のブロックの再構成のために、3つ以上の参照ピクチャーおよび関連するメタデータを使用することができる。
【0071】
源ピクチャーは、普通、空間的に複数のサンプル・ブロック(たとえば、それぞれ4×4、8×8、4×8、または16×16サンプルのブロック)に分割され、ブロック毎に符号化されうる。ブロックは、ブロックのそれぞれのピクチャーに適用される符号化割り当てによって決定されるところにより、他の(すでに符号化された)ブロックを参照して予測的に符号化されうる。たとえば、Iピクチャーのブロックは、非予測的に符号化されてもよく、または、同じピクチャーのすでに符号化ブロックを参照して予測的に符号化されてもよい(空間的予測またはイントラ予測)。Pピクチャーのピクセル・ブロックは、以前に符号化された一つの参照ピクチャーを参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。Bピクチャーのブロックは、1つまたは2つの以前に符号化された参照ピクチャーを参照して、空間的予測を介して、または時間的予測を介して予測的に符号化されてもよい。
【0072】
ビデオ符号化器(303)は、ITU-T勧告H.265などの所定のビデオ符号化技術または標準に従って符号化動作を実行することができる。その動作において、ビデオ符号化器(303)は、入力ビデオ・シーケンスにおける時間的および空間的冗長性を活用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。よって、符号化されたビデオ・データは、使用されるビデオ符号化技術または標準によって指定されるシンタックスに準拠しうる。
【0073】
実施形態において、送信器(540)は、エンコードされたビデオと一緒に追加データを送信してもよい。ビデオ符号化器(530)は、符号化されたビデオ・シーケンスの一部としてそのようなデータを含めてもよい。追加データは、時間的/空間的/SNR向上層、冗長ピクチャーおよびスライスのような他の形の冗長データ、補足向上情報(SEI)メッセージ、ビジュアルユーザビリティー情報(VUI)パラメータ・セット・フラグメントなどを含んでいてもよい。
【0074】
以下に記載される方法は、別々に使用されてもよく、または任意の順序で組み合わされてもよい。さらに、各方法または実施形態、エンコーダおよびデコーダは、処理回路、たとえば、一つまたは複数のプロセッサまたは一つまたは複数の集積回路によって実装されてもよい。たとえば、一つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能媒体に記憶されたプログラムを実行する。以下の説明において、「ブロック」という用語は、予測ブロック、符号化ブロック、またはCUとして解釈されうる。
【0075】
N点恒等変換(Identity transform、IDT)は、対角位置に沿ってのみ0でない要素を有するN×Nの変換コアを用いた線形変換プロセスとして定義される。対角位置とは、水平座標値と垂直座標値が等しい位置を指す。二値化に関する以下の記述では、0と1を入れ換える別の符号語も適用可能である。たとえば、符号語「010」が記述される場合、別の符号語「101」も代替として使用されうる。
【0076】
以下の説明では、垂直予測方向が予測角度vを用いていると想定され、準垂直イントラ予測方向が、範囲(v-thr,v+thr)にはいる予測角度に関連付けられたイントラ予測方向として定義される。ここで、thrは所与の閾値である。さらに、水平予測方向が予測角度hを用いていると想定され、準水平イントラ予測方向が、範囲(h-thr,h+thr)にはいる予測角度に関連付けられたイントラ予測方向として定義される。ここで、thrは所与の閾値である。
【0077】
以下の説明では、MTS候補のDST-7を記述する際に、DST-4を参照することもある。MTS候補のDCT-8を記述する際に、DCT-4を参照することもある。
【0078】
実施形態によれば、ある種の変換タイプのMTSはIDTで置き換えられ、TSMは水平および垂直変換の両方についてIDTを使用することで置き換えられる。
【0079】
実施形態では、JVET-M0464で提案された同じシンタックス/意味内容および二値化方法が保持される。
【0080】
実施形態では、JVET-M0464で提案された同じシンタックス/意味内容および二値化方法が維持されるが、最後のMTS候補、すなわち、水平および垂直変換の両方にDCT-8を適用することは除去される。
【0081】
実施形態では、MTSおよびTSMインデックスtu_mts_idxの二値化は、以下のように修正される。ここで、Xは、DCT-2またはDST-7またはアダマール変換またはハール変換のいずれかでありうる:
【表10】
【0082】
実施形態では、MTSおよびTSMインデックスtu_mts_idxの二値化は、以下のように修正される。ここで、Xは、DCT-2またはDST-7またはアダマール変換またはハール変換のいずれかでありうる:
【表11】
【0083】
実施形態では、MTSおよびTSMインデックスtu_mts_idxの二値化は、以下のように修正される。ここで、Xは、DCT-2またはDST-7またはアダマール変換またはハール変換のいずれかでありうる:
【表12】
【0084】
実施形態では、IDTが水平変換として使用されるのか、垂直変換として使用されるのか、または水平および垂直変換の両方として使用されるのかを示すために第1のフラグが信号伝達される。一例では、第1のフラグが、IDTが水平変換または垂直変換のいずれとしても使用されないことを示す場合、DCT-2またはDST-7が水平変換および垂直変換の両方として適用されうるかどうかを示すために別のフラグが信号伝達される。別の例では、第1のフラグが、IDTが水平変換および垂直変換の一方または両方として適用されることを示す場合、IDTが水平変換および垂直変換の両方として適用されるかどうかを示すために第2のフラグが信号伝達されてもよく、第2のフラグが、IDTが水平変換および垂直変換のいずれかとして使用されないことを示す場合、IDTが水平変換として適用されるか垂直変換として適用されるかを示すために第3のフラグが信号伝達される。さらに別の例では、第1のフラグはコンテキストを使用してエントロピー符号化され、コンテキストは、近傍ブロックがIDTを使用して符号化されるか否かに依存して導出される。
【0085】
実施形態では、MTSおよびTSMインデックスtu_mts_idxの二値化は、以下のように修正される。ここで、Xは、DCT-2またはDST-7またはアダマール変換またはハール変換のいずれかでありうる:
【表13】
【0086】
実施形態では、符号化された情報を使用するある種の条件が満たされていることに依存して、MTS候補がIDTによって適応的に置き換えられてもよい。符号化された情報を使用する該ある種の条件は、近傍ブロックがIDT(またはTSM)によって符号化されるか否か、現在ブロックがある種のイントラ予測モードによって符号化されるか否か、現在ブロックがイントラブロックコピー(Intra Block Copy、IBC)によって符号化されるか否か、現在成分がルーマであるかクロマであるか、現在ブロックがサブブロックマージモードによって符号化されるか否か、および現在ブロックがISPモードによって符号化されるかどうかを含むが、これらに限定されない。たとえば、現在ブロックが準垂直または準水平イントラ予測モードを使用するイントラ予測によって符号化される場合、MTS候補の一つがIDTによって置き換えられてもよい。別の例では、現在ブロックがイントラ予測によって符号化され、端数点補間を適用していない場合、たとえば、対角モード、水平モード、垂直モード、および任意の利用可能なブロック形状の対角方向と整列されたイントラ予測モード方向(端数点補間を必要としない広角イントラ予測モード)では、MTS候補の1つがIDTによって置き換えられてもよい。
【0087】
実施形態では、TSMが水平変換および垂直変換の両方に使用されるIDTによって置き換えられる場合、IDT(水平変換および垂直変換の両方として使用される)がTSMを置き換えるかどうかを決定するために、第1のブロック・サイズ閾値が使用される。IDTがあるMTS変換候補を置き換える場合、IDTが水平変換および垂直変換のうち一方のみを置き換えるかどうかを決定するために、第2のブロック・サイズ閾値が使用される。現在ブロックのブロック・サイズは、面積、高さ、幅のいずれか1つまたは任意の組み合わせでありうる。第1のブロック・サイズ閾値と第2のブロック・サイズ閾値は、異なる値であってもよい。第1のブロック・サイズ閾値および第2のブロック・サイズ閾値のそれぞれは、SPS、ビデオパラメータセット(Video Parameter Set、VPS)、ピクチャーパラメータセット(Picture Parameter Set、PPS)、タイル・グループ・ヘッダ、スライス・ヘッダ、およびCTUヘッダのような高レベルのシンタックス要素で信号伝達されることができる。
【0088】
TSMまたはIDTは、サブブロック・インター予測モード、双方向オプティカルフロー(bi-directional optical flow、BIO)モード、サブブロック変換(sub-block transform、SBT)、多仮説イントラ‐インター・マージモード(multi-hypothesis intra-inter merge mode)、三角形分割モード、ISPモード、およびある種の非角度的イントラ予測モード(平面状および/またはDC)を含む、ある種の符号化モードについては適用または信号伝達されない。あるいはまた、TSMまたはIDTが適用される場合、サブブロック・インター予測モード、BIOモード、SBT、多仮説イントラ‐インター・マージモード、三角形分割モード、ISPモード、およびある種の非角度的イントラ予測モード(平面状および/またはDC)などのある種のモードは、適用または信号伝達されない。
【0089】
実施形態では、エンコーダ・モード決定について、変換がアダマール変換のような線形変換である候補予測モードのコストを測定するために変換差分絶対値和(Sum of Absolute Transform Difference、SATD)のみを使用する代わりに、SATDとの関連で差分絶対値和(Sum of Absolute Difference、SAD)も適用される。SADおよびSATDのある関数の出力が、候補予測モードの最終的なコストとして、エンコーダ・モード決定のために使用される。たとえば、関数はmin(SAD,SATD)であってもよい。別の例では、関数は、SADとSATDの加重和であってもよい。最終的なコストは、イントラモード決定またはインターモード決定のいずれかについて使用されることができ、ここで、SATDは動き推定または候補モード選択のためにも使用されうる。
【0090】
詳細には、上記の方法は、符号化ブロックの残差ブロックにアダマール変換を適用して、変換係数ブロックを生成し、該変換係数ブロックに基づいて、変換差分絶対値和を決定することを含んでいてもよい。本方法は、さらに、残差ブロックに基づいて差分絶対値和を決定し、変換差分絶対値和および絶対値差分、すなわち、これら2つの差の関数に基づいて、符号化ブロックについての候補予測モードの最終的なコストを決定することを含んでいてもよい。本方法は、候補予測モードの最終的なコストに基づいて、符号化ブロックについてTSMが有効にされることを示すようMTSインデックスを設定することをさらに含んでいてもよい。一例では、3つの候補予測モードの最終的なコストが決定されてもよく、3つの候補予測モードの決定された最終的なコストのうちの最小の最終的なコストをもつ候補予測モードが、符号化ブロックについてTSMが有効にされるかどうかを予測するために使用されるように選択されうる。
【0091】
図6は、実施形態による、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御する方法(600)を示すフローチャートである。いくつかの実装では、図6の一つまたは複数のプロセス・ブロックは、デコーダ(310)によって実行されてもよい。いくつかの実装では、図6の一つまたは複数のプロセス・ブロックは、エンコーダ(303)のような、デコーダ(310)とは別個の、またはデコーダ(310)を含んでいる別の装置または装置群によって実行されてもよい。
【0092】
図6を参照すると、方法(600)は、MTSインデックスがビデオ・シーケンスの符号化ブロックについて変換スキップ・モードが有効にされることを示すこと(610-Yes)に基づいて、第1のブロック(620)において、水平変換および垂直変換のそれぞれとして恒等変換を同定することを含む。
【0093】
方法(600)は、さらに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示すこと(610-No)に基づいて、第2のブロック(630)において、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定することを含む。
【0094】
方法(600)は、さらに、第3のブロック(640)において、同定された水平変換および同定された垂直変換を使用して、符号化ブロックの残差符号化を実行することを含む。
【0095】
前記水平変換および垂直変換の一方または両方として、DCT、DST、アダマール変換およびハール変換のうちの1つを同定することは、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示し、第1の値を示すことに基づいて、恒等変換を水平変換として同定し、DCT-2、DST-7、アダマール変換およびハール変換のうちの一つを垂直変換として同定することを含んでいてもよい。
【0096】
前記水平変換および垂直変換の一方または両方として、DCT、DST、アダマール変換およびハール変換のうちの1つを同定することは、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示し、第1の値とは異なる第2の値を示すことに基づいて、DCT-2、DST-7、アダマール変換およびハール変換のうちの一つを水平変換として同定し、恒等変換を垂直変換として同定することを含んでいてもよい。
【0097】
方法(600)は、さらに、条件のいずれか1つまたは任意の組み合わせが満たされているかどうかを判定することを含んでいてもよい。該条件は、符号化ブロックの近傍ブロックが恒等変換によって符号化されるかどうか、符号化ブロックがイントラ予測モードによって符号化されるかどうか、符号化ブロックがイントラブロックコピーによって符号化されるかどうか、符号化ブロックの成分がルーマであるかクロマであるか、符号化ブロックがサブブロックマージモードによって符号化されるかどうか、および符号化ブロックがイントラサブパーティションモードによって符号化されるかどうかを含む。方法(600)は、さらに、MTSインデックスが、符号化ブロックについて変換スキップ・モードが有効にされないことを示し、前記条件のうちの任意の1つまたは任意の組み合わせが満たされていると判定されることに基づいて、恒等変換を水平変換および垂直変換のそれぞれとして同定することを含んでいてもよい。
【0098】
方法(600)は、さらに、符号化ブロックのサイズが所定の閾値よりも大きいかどうかを判定することを含んでいてもよく、該サイズは、面積、高さ、および幅のうちの1つである。方法(600)は、さらに、MTSインデックスが、符号化ブロックについて変換スキップ・モードが有効にされないことを示し、前記条件の任意の1つまたは任意の組み合わせが満たされていると判定され、符号化ブロックのサイズが前記所定の閾値より大きいと判定されることに基づいて、水平変換および垂直変換のそれぞれとして恒等変換を同定することを含んでいてもよい。
【0099】
方法(600)は、さらに、符号化ブロックのサイズが所定の閾値よりも大きいかどうかを判定することを含んでいてもよく、該サイズは、面積、高さ、および幅のうちの1つである。水平変換および垂直変換のそれぞれとして恒等変換を同定することは、MTSインデックスが、符号化ブロックについて変換スキップ・モードが有効にされることを示し、符号化ブロックのサイズが前記所定の閾値より大きいと判定されることに基づいて、水平変換および垂直変換のそれぞれとして恒等変換を同定することを含んでいてもよい。
【0100】
方法(600)は、さらに、DCT、DST、およびアダマール変換のうちの1つを符号化ブロックの残差ブロックに対して適用して変換係数ブロックを生成し、変換係数ブロックに基づいて変換差分絶対値和を決定し、残差ブロックに基づいて差分絶対値和を決定し、変換差分絶対値和および差分絶対値和に基づいて、符号化ブロックについての候補予測モードの最終的なコストを決定し、候補予測モードの最終的なコストに基づいて、変換スキップ・モードが有効にされることを示すようMTSインデックスを設定することを含んでいてもよい。
【0101】
候補予測モードの最終的なコストは、変換差分絶対値和および差分絶対値和のうちの最小値であってもよい。
【0102】
候補予測モードの最終的なコストは、変換差分絶対値和と差分絶対値和の加重和であってもよい。
【0103】
図6は、方法(600)の例示的な諸ブロックを示しているが、いくつかの実装では、方法(600)は、図6に描かれたものに比して、追加的なブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでいてもよい。追加的または代替的に、方法(600)のブロックのうちの2つ以上が並列に実行されてもよい。
【0104】
さらに、提案された諸方法は、処理回路(たとえば、一つまたは複数のプロセッサまたは一つまたは複数の集積回路)によって実装されてもよい。一例では、前記一つまたは複数のプロセッサが、提案された方法の一つまたは複数を実行するために、非一時的なコンピュータ読み取り可能媒体に記憶されているプログラムを実行する。
【0105】
図7は、実施形態による、ビデオ・シーケンスのデコードまたはエンコードのための残差符号化を制御するための装置(700)の簡略化されたブロック図である。
【0106】
図7を参照すると、装置(700)は、第1の同定コード(710)、第2の同定コード(720)、実行コード(730)、第1の判定コード(740)、第2の判定コード(750)、および設定コード(760)を含む。
【0107】
第1の同定コード(710)は、前記少なくとも1つのプロセッサに、MTSインデックスがビデオ・シーケンスの符号化ブロックについて変換スキップ・モードが有効にされることを示すことに基づいて、水平変換および垂直変換のそれぞれとして恒等変換を同定させるように構成される。
【0108】
第2の同定コード(720)は、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示すことに基づいて、水平変換および垂直変換の一方または両方として、離散コサイン変換(DCT)、離散サイン変換(DST)、アダマール変換およびハール変換のうちの1つを同定させるように構成される。
【0109】
実行コード(730)は、前記少なくとも1つのプロセッサに、同定された水平変換および同定された垂直変換を使用して、符号化ブロックの残差符号化を実行させるように構成される。
【0110】
第2の同定コード(720)は、さらに、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示し、第1の値を示すことに基づいて、恒等変換を水平変換として同定し、DCT-2、DST-7、アダマール変換およびハール変換のうちの1つを同定させるようにさらに構成されてもよい。
【0111】
第2の同定コード(720)は、さらに、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示し、第1の値とは異なる第2の値を示すことに基づいて、DCT-2、DST-7、アダマール変換、およびハール変換のうちの1つを水平変換として同定し、恒等変換を垂直変換として同定させるように構成されてもよい。
【0112】
第1の判定コード(740)は、前記少なくとも1つのプロセッサに、条件のいずれか1つまたは任意の組み合わせが満たされているかどうかを判定させるように構成されてもよい。該条件は、符号化ブロックの近傍ブロックが恒等変換によって符号化されているかどうか、符号化ブロックがイントラ予測モードによって符号化されているかどうか、符号化ブロックがイントラブロックコピーによって符号化されているかどうか、符号化ブロックの成分がルーマであるかクロマであるか、符号化ブロックがサブブロックマージモードによって符号化されているかどうか、および符号化ブロックがイントラサブパーティションモードによって符号化されているかどうかを含む。第1の同定コード(710)は、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示しており、前記条件の前記いずれか1つまたは任意の組み合わせが満たされていると判定されることに基づいて、恒等変換を、水平変換および垂直変換のそれぞれとして同定させるように構成されてもよい。
【0113】
第2の判定コード(750)は、前記少なくとも1つのプロセッサに、符号化ブロックのサイズが所定の閾値より大きいかどうかを判定させるように構成されてもよく、該サイズは、面積、高さ、および幅のうちの1つである。第1の同定コード(710)は、さらに、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされないことを示しており、前記条件の前記いずれか1つまたは任意の組み合わせが満たされていると判定され、符号化ブロックのサイズが所定の閾値よりも大きいと判定されることに基づいて、恒等変換を水平変換および垂直変換のそれぞれとして同定させるように構成されてもよい。
【0114】
第2の判定コード(750)は、前記少なくとも1つのプロセッサに、符号化ブロックのサイズが所定の閾値より大きいかどうかを判定させるように構成されてもよく、該サイズは、面積、高さ、および幅のうちの1つである。第1の同定コード(710)は、さらに、前記少なくとも1つのプロセッサに、MTSインデックスが符号化ブロックについて変換スキップ・モードが有効にされることを示し、符号化ブロックのサイズが所定の閾値より大きいことを示すことに基づいて、恒等変換を水平変換および垂直変換のそれぞれとして同定させるように構成されてもよい。
【0115】
設定コード(760)は、前記少なくとも1つのプロセッサに、DCT、DST、およびアダマール変換のうちの1つを符号化ブロックの残差ブロックに対して適用して変換係数ブロックを生成し、変換係数ブロックに基づいて変換差分絶対値和を決定し、残差ブロックに基づいて差分絶対値和を決定し、変換差分絶対値和および差分絶対値和に基づいて符号化ブロックの候補予測モードの最終的なコストを決定し、候補予測モードの最終的なコストに基づいて、変換スキップ・モードが有効にされることを示すMTSインデックスを設定することを実行させるように構成されてもよい。
【0116】
候補予測モードの最終的なコストは、変換差分絶対値和および差分絶対値和のうちの最小値であってもよい。
【0117】
候補予測モードの最終的なコストは、変換差分絶対値和および差分絶対値和の加重和であってもよい。
【0118】
上述の技術は、コンピュータ読み取り可能な命令を用いてコンピュータ・ソフトウェアとして実装されることができ、一つまたは複数のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。
【0119】
図8は、実施形態を実装するのに好適なコンピュータシステム(800)の図である。
【0120】
コンピュータ・ソフトウェアは、任意の好適な機械コードまたはコンピュータ言語を用いてコーディングされることができ、アセンブリ、コンパイル、リンク、または同様の機構の対象とされて、コンピュータ中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)などによって、直接的に、またはインタープリット、マイクロコード実行などを通じて実行可能な命令を含むコードを作成することができる。
【0121】
命令は、たとえば、パーソナルコンピュータ、タブレット・コンピュータ、サーバー、スマートフォン、ゲーム装置、モノのインターネット装置等を含むさまざまなタイプのコンピュータまたはそのコンポーネント上で実行されることができる。
【0122】
コンピュータ・システム(800)について図8に示されるコンポーネントは、例としての性質であり、実施形態を実装するコンピュータ・ソフトウェアの使用または機能の範囲に関する制限を示唆することを意図したものではない。コンポーネントの構成も、コンピュータ・システム(800)の例示的実施形態において示されているコンポーネントの任意の1つまたは組み合わせに関する何らかの依存性または要件を有するものとして解釈されるべきではない。
【0123】
コンピュータ・システム(800)は、ある種のヒューマン・インターフェース入力装置を含むことができる。そのようなヒューマン・インターフェース入力装置は、たとえば、触覚入力(たとえば、キーストローク、スワイプ、データグローブの動き)、音声入力(たとえば、声、拍手)、視覚入力(たとえば、ジェスチャー)、嗅覚入力(図示せず)を通じた一または複数の人間ユーザーによる入力に応答することができる。また、ヒューマン・インターフェース装置は、音声(たとえば、発話、音楽、周囲の音)、画像(たとえば、スキャンされた画像、スチール画像カメラから得られる写真画像)、ビデオ(たとえば、2次元ビデオ、立体視ビデオを含む3次元ビデオ)のような、人間による意識的入力に必ずしも直接関係しないある種のメディアを捕捉するために使用できる。
【0124】
入力ヒューマン・インターフェース装置は、キーボード(801)、マウス(802)、トラックパッド(803)、タッチスクリーン(810)、データグローブ(804)、ジョイスティック(805)、マイクロフォン(806)、スキャナ(807)、カメラ(808)の一つまたは複数を含んでいてもよい。
【0125】
コンピュータ・システム(800)はまた、ある種のヒューマン・インターフェース出力装置を含んでいてもよい。そのようなヒューマン・インターフェース出力装置は、たとえば、触覚出力、音、光、および臭い/味を通じて、一または複数の人間ユーザーの感覚を刺激するものであってもよい。そのようなヒューマン・インターフェース出力装置は、触覚出力装置(たとえば、タッチスクリーン(810)、データグローブ(804)、またはジョイスティック(805)による触覚フィードバック;ただし、入力装置のはたらきをしない触覚フィードバック装置もありうる)、音声出力装置(たとえば、スピーカー(809)、ヘッドフォン(図示せず))、視覚出力装置(たとえば、陰極線管(CRT)画面、LCD画面、プラズマスクリーン、有機発光ダイオード(OLED)画面を含む画面(810);それぞれはタッチスクリーン入力機能があってもなくてもよく、それぞれは触覚フィードバック機能があってもなくてもよく、そのうちのいくつかは、2次元の視覚出力または立体視出力のような手段を通じた3次元より高い出力を出力することができてもよい;仮想現実感眼鏡(図示せず)、ホログラフィーディスプレイおよび煙タンク(図示せず))、およびプリンタ(図示せず)を含んでいてもよい。
【0126】
コンピュータ・システム(800)はまた、人間がアクセス可能な記憶装置および関連する媒体、たとえば、CD/DVDまたは類似の媒体(821)とともにCD/DVD ROM/RW(820)を含む光学式媒体、サムドライブ(822)、取り外し可能なハードドライブまたはソリッドステートドライブ(823)、テープおよびフロッピーディスクといったレガシー磁気媒体(図示せず)、セキュリティ・ドングルのような特化したROM/ASIC/PLDベースの装置(図示せず)などを含むことができる。
【0127】
当業者はまた、現在開示されている主題に関連して使用される用語「コンピュータ読み取り可能な媒体」は、伝送媒体、搬送波、または他の一時的な信号を包含しないことをも理解しうる。
【0128】
コンピュータ・システム(800)はまた、一つまたは複数の通信ネットワークへのインターフェースを含むことができる。ネットワークは、たとえば、無線、有線、光学式でありうる。ネットワークは、さらに、ローカル、広域、都市圏、車載および工業用、リアルタイム、遅延耐性などでありうる。ネットワークの例は、イーサネット〔登録商標〕、無線LAN、グローバル移動通信(GSM)、第三世代(3G)、第四世代(4G)、第五世代(5G)、ロングタームエボリューション(LTE)などを含むセルラー・ネットワーク、ケーブルテレビ、衛星テレビ、地上放送テレビを含むTV有線または無線の広域デジタルネットワーク、CANBusを含む車載および工業用などを含む。ある種のネットワークは、普通、ある種の汎用データ・ポートまたは周辺バス(849)(たとえば、コンピュータ・システム(800)のユニバーサルシリアルバス(USB)ポートなど)に取り付けられる外部ネットワーク・インターフェース・アダプターを必要とする。他のものは、普通、後述するようなシステム・バスへの取り付けによって、コンピュータ・システム(800)のコアに統合される(たとえば、PCコンピュータ・システムへのイーサネット・インターフェースまたはスマートフォン・コンピュータ・システムへのセルラー・ネットワーク・インターフェース)。これらのネットワークのいずれかを使用して、コンピュータ・システム(800)は、他のエンティティと通信することができる。そのような通信は、一方向性、受信のみ(たとえば、放送テレビ)、一方向性送信専用(たとえば、ある種のCANbus装置へのCANbus)、または、たとえば、ローカルまたは広域デジタルネットワークを使用する他のコンピュータ・システムへの双方向性であってもよい。上述のようなそれらのネットワークおよびネットワークインターフェースのそれぞれで、ある種のプロトコルおよびプロトコルスタックが使用できる。
【0129】
前述のヒューマン・インターフェース装置、人間がアクセス可能な記憶装置、およびネットワークインターフェースは、コンピュータ・システム(800)のコア(840)に取り付けることができる。
【0130】
コア(840)は、一つまたは複数の中央処理装置(CPU)(841)、グラフィックス処理装置(GPU)(842)、フィールドプログラマブルゲートアレイ(FPGA)(843)の形の特化したプログラマブル処理装置、ある種のタスクのためのハードウェアアクセラレータ(844)などを含むことができる。これらの装置は、読み出し専用メモリ(ROM)(845)、ランダムアクセスメモリ(RAM)(846)、内部のユーザー・アクセス可能でないハードドライブ、ソリッドステートドライブ(SSD)などの内部大容量記憶装置(847)とともに、システムバス(848)を通じて接続されうる。いくつかのコンピュータ・システムでは、追加のCPU、GPUなどによる拡張を可能にするために、システム・バス(848)は、一つまたは複数の物理プラグの形でアクセス可能であってもよい。周辺装置は、コアのシステムバス(848)に直接取り付けられることも、周辺バス(849)を通じて取り付けられることもできる。周辺バスのためのアーキテクチャーは、周辺コンポーネント相互接続(PCI)、USBなどを含む。
【0131】
CPU(841)、GPU(842)、FPGA(843)、およびアクセラレータ(844)は、組み合わせて上述のコンピュータコードを構成することができるある種の命令を、実行することができる。そのコンピュータコードは、ROM(845)またはRAM(846)に記憶できる。一時的データも、RAM(846)に記憶されることができ、一方、持続的データは、たとえば、内部大容量記憶装置(847)に記憶されることができる。一つまたは複数のCPU(841)、GPU(842)、大容量記憶装置(847)、ROM(845)、RAM(846)などと密接に関連付けることができるキャッシュメモリを使用することを通じて、メモリデバイスのいずれかへの高速な記憶および取り出しを可能にすることができる。
【0132】
コンピュータ読み取り可能な媒体は、さまざまなコンピュータ実装された動作を実行するためのコンピュータコードをその上に有することができる。媒体およびコンピュータコードは、実施形態の目的のために特別に設計および構築されたものであってもよく、または、コンピュータ・ソフトウェア分野の技術を有する者に周知であり利用可能な種類のものであってもよい。
【0133】
限定ではなく一例として、アーキテクチャー(800)を有するコンピュータ・システム、特にコア(840)は、プロセッサ(CPU、GPU、FPGA、アクセラレータ等を含む)が一つまたは複数の有形のコンピュータ可読媒体に具現化されたソフトウェアを実行することの結果として、機能性を提供することができる。そのようなコンピュータ読み取り可能媒体は、上記で紹介したようなユーザー・アクセス可能な大容量記憶ならびにコア内部の大容量記憶装置(847)またはROM(845)のような非一時的な性質のコア(840)のある種の記憶に関連する媒体であることができる。さまざまな実施形態を実装するソフトウェアは、そのような装置に記憶され、コア(840)によって実行されることができる。コンピュータ読み取り可能媒体は、特定のニーズに応じて、一つまたは複数のメモリデバイスまたはチップを含むことができる。ソフトウェアは、RAM(846)に記憶されたデータ構造を定義し、ソフトウェアによって定義されたプロセスに従ってそのようなデータ構造を修正することを含む、本明細書に記載された特定のプロセスまたは特定の特定部分を、コア(840)および具体的にその中のプロセッサ(CPU、GPU、FPGAなどを含む)に実行させることができる。追加的または代替的に、コンピュータ・システムは、回路(たとえば、アクセラレータ(844))内に配線された、または他の仕方で具現された論理の結果として機能性を提供することができ、これは、本明細書に記載される特定のプロセスまたは特定のプロセスの特定部分を実行するためのソフトウェアの代わりに、またはそれと一緒に動作することができる。ソフトウェアへの言及は、論理を含み、適宜その逆も可能である。コンピュータ読み取り可能媒体への言及は、適宜、実行のためのソフトウェアを記憶する回路(たとえば集積回路(IC))、実行のための論理を具現する回路、またはその両方を包含することができる。実施形態は、ハードウェアおよびソフトウェアの任意の好適な組み合わせを包含する。
【0134】
本開示は、いくつかの例示的実施形態を記載してきたが、変更、置換、およびさまざまな代替等価物があり、それらは本開示の範囲内にはいる。よって、当業者は、本明細書に明示的に示されていないかまたは記載されていないが、本開示の原理を具現し、よって、本開示の精神および範囲内にある多くのシステムおよび方法を考案することができることが理解されるであろう。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8