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

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

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特許7359343DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法
<>
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図1A
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図1B
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図2
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図3
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図4
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図5
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図6
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図7
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図8
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図9
  • 特許-DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】DCT2が有効である高レベルフラグを使用するエンコーダ、デコーダ及び対応する方法
(51)【国際特許分類】
   H04N 19/625 20140101AFI20231003BHJP
   H04N 19/70 20140101ALI20231003BHJP
【FI】
H04N19/625
H04N19/70
【請求項の数】 45
(21)【出願番号】P 2021540038
(86)(22)【出願日】2020-01-11
(65)【公表番号】
(43)【公表日】2022-03-02
(86)【国際出願番号】 CN2020071591
(87)【国際公開番号】W WO2020143811
(87)【国際公開日】2020-07-16
【審査請求日】2021-08-27
(31)【優先権主張番号】62/791,674
(32)【優先日】2019-01-11
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ガオ、ハン
(72)【発明者】
【氏名】チェン、ジアンレ
(72)【発明者】
【氏名】エセンリク、セミ
(72)【発明者】
【氏名】コトラ、アナンド メハー
(72)【発明者】
【氏名】ワン、ビャオ
【審査官】田中 純一
(56)【参考文献】
【文献】特開2020-053924(JP,A)
【文献】米国特許出願公開第2018/0332289(US,A1)
【文献】Chih-Wei Hsu, Ching-Yeh Chen, Tzu-Der Chuang, Han Huang, Shih-Ta Hsiang, Chun-Chia Chen, Man-Shu Chiang, Chen-Yen Lai, Chia-Ming Tsai, Yu-Chi Su, Zhi-Yi Lin, Yu-Ling Hsiao, Jan Klopp, I-Hsiang Wang, Yu-Wen Huang, Shaw-Min Lei,Description of SDR video coding technology proposal by MediaTek [online], JVET-J JVET-J0018,ITU-T インターネット<URL:http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/10_San%20Diego/wg11/JVET-J0018-v2.zip>,2019年10月17日,i-iii, 1-61
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
画像のブロックをビデオコーディングする方法であって、
インター画像予測又はイントラ画像予測から結果として得られる残差信号を取得する段階と、
前記残差信号のシーケンスのブロックに対する離散コサイン変換タイプ2(DCT2)変換コアの使用を推論する段階と、
推論された前記変換コアを使用して、前記ブロックの変換を処理する段階と
を備え、
DCT2の使用は、シーケンスパラメータセット(SPS)におけるシーケンスレベルDCT2有効フラグから推論され、
前記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、方法。
【請求項2】
前記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、

【表17】
sps_dct2_enabled_flagは前記シーケンスレベルDCT2有効フラグを表す、請求項1に記載の方法。
【請求項3】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、請求項1または2に記載の方法。
【請求項4】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、請求項1から3のいずれか一項に記載の方法。
【請求項5】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2が水平方向変換並びに垂直方向変換の両方に使用されることを指定する、請求項1から4のいずれか一項に記載の方法。
【請求項6】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、請求項1から5のいずれか一項に記載の方法。
【請求項7】
残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換コアはDCT2に設定される、請求項6に記載の方法。
【請求項8】
1に等しい前記シーケンスレベルDCT2有効フラグが、前記DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択(MTS)変換の両方がオフであると推論される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
0に等しい前記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが前記変換に使用されることを指定する、請求項1から6のいずれか一項に記載の方法。
【請求項10】
前記他の変換コアは、離散サイン変換タイプ7(DST7)及び/又は離散コサイン変換タイプ8(DCT8)を備える、請求項9に記載の方法。
【請求項11】
0に等しい前記シーケンスレベルDCT2有効フラグは、
それが変換にDST7又はDCT8のうちの少なくとも1つを使用して推論されることを指定する、請求項9又は10に記載の方法。
【請求項12】
前記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、請求項9から11のいずれか一項に記載の方法。
【請求項13】
sps_mts_intra_enabled_flagが存在する場合、
前記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット(TU)複数変換選択(MTS)フラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
前記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの前記残差コーディングシンタックスに存在しないことが指定され、
前記sps_mts_intra_enabled_flagが存在しない場合、前記sps_mts_intra_enabled_flagは0であると推論される、請求項12に記載の方法。
【請求項14】
請求項1から13のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ。
【請求項15】
請求項1から13のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ。
【請求項16】
インター画像予測又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
前記残差信号のシーケンスのブロックに対する離散コサイン変換タイプ2(DCT2)変換コアの使用を推論するように構成された推論ユニットと、
推論された前記変換コアを使用して、前記ブロックの変換を処理するように構成された処理ユニットと
を備え、
前記推論ユニットは、シーケンスパラメータセット(SPS)におけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成され、
前記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、デコーダ。
【請求項17】
前記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、

【表18】
sps_dct2_enabled_flagは前記シーケンスレベルDCT2有効フラグを表す、請求項16に記載のデコーダ。
【請求項18】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、請求項16または17に記載のデコーダ。
【請求項19】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、請求項16から18のいずれか一項に記載のデコーダ。
【請求項20】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2が水平並びに垂直方向変換の両方に使用されることを指定する、請求項16から19のいずれか一項に記載のデコーダ。
【請求項21】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、請求項16から20のいずれか一項に記載のデコーダ。
【請求項22】
残差変換ユニット(tu)の1つの側が32より大きい場合、対応する変換はDCT2に設定される、請求項21に記載のデコーダ。
【請求項23】
1に等しい前記シーケンスレベルDCT2有効フラグが、前記DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択(MTS)変換の両方がオフであると推論される、請求項16から22のいずれか一項に記載のデコーダ。
【請求項24】
0に等しい前記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが前記変換に使用されることを指定する、請求項16から21のいずれか一項に記載のデコーダ。
【請求項25】
前記推論ユニットは、離散サイン変換タイプ7(DST7)及び/又は離散コサイン変換タイプ8(DCT8)を変換に使用して推論するように構成される、請求項24に記載のデコーダ。
【請求項26】
0に等しい前記シーケンスレベルDCT2有効フラグは、それがDST7/DCT8を変換にのみ使用して推論されることを指定する、請求項24又は25に記載のデコーダ。
【請求項27】
前記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、請求項24から26のいずれか一項に記載のデコーダ。
【請求項28】
sps_mts_intra_enabled_flagが存在する場合、
前記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット(TU)複数変換選択(MTS)フラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
前記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの前記残差コーディングシンタックスに存在しないことが指定され、
前記sps_mts_intra_enabled_flagが存在しない場合、前記sps_mts_intra_enabled_flagは0であると推論される、請求項27に記載のデコーダ。
【請求項29】
インター画像予測又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
前記残差信号のシーケンスのブロックに対する離散コサイン変換タイプ2(DCT2)変換コアの使用を推論するように構成された推論ユニットと、
推論された前記変換コアを使用して、前記ブロックの変換を処理するように構成された処理ユニットと
を備え、
前記推論ユニットは、シーケンスパラメータセット(SPS)におけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成され、
前記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、エンコーダ。
【請求項30】
前記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、
【表19】
sps_dct2_enabled_flagは前記シーケンスレベルDCT2有効フラグを表す、請求項29に記載のエンコーダ。
【請求項31】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、請求項29または30に記載のエンコーダ。
【請求項32】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、請求項29から31のいずれか一項に記載のエンコーダ。
【請求項33】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2が形状適応型変換選択において水平並びに垂直方向の両方に使用されることを指定する、請求項29から32のいずれか一項に記載のエンコーダ。
【請求項34】
1に等しい前記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、請求項29から33のいずれか一項に記載のエンコーダ。
【請求項35】
残差変換ユニット(tu)の1つの側が32より大きい場合、対応する変換はDCT2に設定される、請求項34に記載のエンコーダ。
【請求項36】
1に等しい前記シーケンスレベルDCT2有効フラグが、前記DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択(MTS)変換の両方がオフであると推論される、請求項29から35のいずれか一項に記載のエンコーダ。
【請求項37】
0に等しい前記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが前記変換に使用されることを指定する、請求項29から34のいずれか一項に記載のエンコーダ。
【請求項38】
前記推論ユニットは、離散サイン変換タイプ7(DST7)及び/又は離散コサイン変換タイプ8(DCT8)を変換に使用して推論するように構成される、請求項37に記載のエンコーダ。
【請求項39】
0に等しい前記シーケンスレベルDCT2有効フラグは、それがDST7/DCT8を変換にのみ使用して推論されることを指定する、請求項37又は38に記載のエンコーダ。
【請求項40】
前記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、請求項37から39のいずれか一項に記載のエンコーダ。
【請求項41】
sps_mts_intra_enabled_flagが存在する場合、
前記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット(TU)複数変換選択(MTS)フラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
前記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの前記残差コーディングシンタックスに存在しないことが指定され、
前記sps_mts_intra_enabled_flagが存在しない場合、前記sps_mts_intra_enabled_flagは0であると推論される、請求項40に記載のエンコーダ。
【請求項42】
コンピュータに、請求項1から13のいずれか一項に記載の方法を実行させる、コンピュータプログラム。
【請求項43】
デコーダであって、
1又は複数のプロセッサと、
前記1又は複数のプロセッサに連結され、前記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記1又は複数のプロセッサにより実行される場合、請求項1から13のいずれか一項に記載の方法を実行するように前記デコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ。
【請求項44】
エンコーダであって、
1又は複数のプロセッサと、
前記1又は複数のプロセッサに連結され、前記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記1又は複数のプロセッサにより実行される場合、請求項1から13のいずれか一項に記載の方法を実行するように前記エンコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるエンコーダ。
【請求項45】
プログラムが記録されたコンピュータ可読非一時的媒体であって、前記プログラムは、請求項1から13のいずれか一項に記載の方法を前記コンピュータに実行させる、コンピュータ可読非一時的媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本特許出願は、2019年1月11日に出願された米国仮特許出願第62/791,674号の優先権を主張しており、前述した特許出願の開示はその全体が参照によってここに組み込まれる。
【0002】
本願(開示)の実施形態は概して、画像処理分野、より具体的には、ブロック形状により適応された変換タイプ選択の高レベル制御に関する。
【背景技術】
【0003】
ビデオコーディング(ビデオエンコーディング及びデコーディング)は、例えば、放送デジタルTV、インターネット及びモバイルネットワークを介したビデオ送信、又はビデオチャット、ビデオ会議、DVD及びブルーレイディスク、ビデオコンテンツの取得及び編集システム、セキュリティアプリケーションのカムコーダーなどのリアルタイムの会話型アプリケーションなど、幅広いデジタルビデオアプリケーションで使用される。
【0004】
比較的短いビデオを示すためであっても、必要とされるビデオデータの量は、かなりのものであり得、その結果、限定的な帯域幅容量を有する通信ネットワークを介してデータがストリームされる又は別の方法で通信されることになる場合、困難が生じる場合がある。したがって、ビデオデータは一般に、現代の遠隔通信ネットワークを介して通信される前に圧縮される。ビデオのサイズは、メモリリソースが限定的である場合があるので、ビデオがストレージデバイス上に保存される場合にも問題となり得る。ビデオ圧縮デバイスは、多くの場合、ソースにおけるソフトウェア及び/又はハードウェアを使用して、送信又は保存の前にビデオデータをコードし、それによりデジタルビデオイメージを表現するのに必要なデータの量を低減させる。その後、圧縮データは、デスティネーションにおいて、ビデオデータをデコードするビデオ圧縮解除デバイスによって受信される。限定的なネットワークリソース及び増大し続けるより高いビデオ品質の需要に鑑みて、画像品質をほとんどから全く犠牲にせずに圧縮比を改善する、改善された圧縮及び圧縮解除技術が望まれている。
【0005】
JVET-L1001において、VVC Draft3.0のドラフトテキストであるMTSは、インタースライス及びイントラスライスのシーケンスレベルで、個々で有効にされ得る。MTSがオフである場合、DCT2は、変換コアとして使用されることが想定される。しかしながら、JVET-M0303、JVET-M0140又はJVET-M0102などの従来技術においては、推論されたDST7/DCT8変換が導入されている。全てのケースにおいて、純粋なDCT2変換に切り替える可能性は存在しない。本開示は、上記の課題に対処する。
【0006】
上述の課題を考慮して、本開示は、上記の課題を緩和又はさらには除去する解決手段を提供する。
【0007】
本開示の実施形態は、独立請求項の特徴と、従属請求項の特徴による実施形態のさらに有利な実装とによって定義される。
【0008】
本開示は、以下を提供する。
【0009】
画像のブロックをビデオコーディングする方法であって、当該ブロックの複数のサンプルからのあるサンプルに対して、
インター又はイントラ画像予測から結果として得られる残差信号を取得する段階と、
残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論する段階と、
推論された変換コアを使用して、ブロックの変換を処理する段階と
を備える、方法。
【0010】
すなわち、本開示は、DCT2有効フラグが偽である場合に、シーケンスにおける全てのケースに対してDCT2変換コアのみが使用されているかどうかを推論するのに使用される追加のDCT2有効フラグを導入し、その後、シーケンスレベルMTS有効フラグがさらにシグナリングされる。DCT2有効フラグが真である場合、DCT2変換コアのみが使用されると想定される。追加のDCT2有効フラグをSPSにおいて導入することは、推論されたMSTツールがオンである場合に、DCT2への切り替えを可能にする。
【0011】
そのようなものとしての前述の態様による方法の可能な実装形態において、DCT2の使用は、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグから推論される。
【0012】
したがって、本開示の実施形態は、全体のシーケンス又はスライスに対して、推論された変換ツールを用いて、純粋なDCT2変換コアに切り替える可能性を提供する切り替え可能なDCT2有効シーケンスレベル指標を導入する。DCT2は、計算が比較的に単純であり、他の変換コアと比較して、メモリ帯域幅が低いケースである。従来技術において、単純なDCT2変換を使用する可能性は、推論された変換コアによって遮断され、現在の指標によって、低いコスト/複雑性と高性能との間の切り替えの柔軟性が、エンコーダとデコーダとの両方に対して提供される。実施形態において、低レベルの変更及び高レベルの変更の可能性の両方が提供され、これは、複数の変形例を有するコードの一貫性及びコーディング性能を保証する。
【0013】
そのようなものとしての前述の態様による方法の可能な実装形態において、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される。
【0014】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれる。
【0015】
【表1】
【0016】
ここで、sps_dct2_enabled_flagはシーケンスレベルDCT2有効フラグを表す。
【0017】
そのようなものとしての前述の態様の任意の前述の実装による方法の可能な実装形態において、1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0018】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0019】
前述の5個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する。
【0020】
前述の6個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する。
【0021】
前述の7個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2が水平並びに垂直方向変換の両方に使用されることを指定する。
【0022】
前述の8個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する。
【0023】
そのようなものとしての前述の態様による方法の可能な実装形態において、残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換はDCT2として設定される。
【0024】
前述の10個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグが、DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される。
【0025】
前述の11個の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、
0に等しいシーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが変換に使用されることを指定する。
【0026】
そのようなものとしての前述の態様による方法の可能な実装形態において、
それは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8、を変換に使用して推論される。
【0027】
2つの前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、0に等しいシーケンスレベルDCT2有効フラグは、
それがDST7/DCT8を変換にのみ使用して推論されることを指定する。
【0028】
DCT2は、エンコーダ及びデコーダの両方の設計に対して十分に望ましい場合がある。換言すると、DCT2、推論されたDST7又はDCT8、及びMTS(RDO選択変換コア)の間の切り替え可能性は、本開示の目標のうちの1つである。
【0029】
3つの前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法の可能な実装形態において、
シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される。
【0030】
そのようなものとしての前述の態様による方法の可能な実装形態において、
sps_mts_intra_enabled_flagが存在する場合、
sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことが指定され、
ここで、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0031】
本開示はさらに、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行するための処理回路を備えるエンコーダを提供する。
【0032】
本開示はさらに、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行するための処理回路を備えるデコーダを提供する。
【0033】
本開示はさらに、
インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成された推論ユニットと、
推論された変換コアを使用して、ブロックの変換を処理するように構成された処理ユニットと
を備えるデコーダを提供する。
【0034】
そのようなものとしての前述の態様によるデコーダの可能な実装形態において、推論ユニットは、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成される。
【0035】
そのようなものとしての前述の態様によるデコーダの可能な実装形態において、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される。
【0036】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれる。
【0037】
【表2】
【0038】
ここで、sps_dct2_enabled_flagはシーケンスレベルDCT2有効フラグを表す。
【0039】
そのようなものとしての前述の態様によるデコーダの可能な実装形態において、1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0040】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、
0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0041】
前述の5個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する。
【0042】
前述の6個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する。
【0043】
前述の7個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2が水平並びに垂直方向変換の両方に使用されることを指定する。
【0044】
前述の8個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する。
【0045】
そのようなものとしての前述の態様によるデコーダの可能な実装形態において、残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換はDCT2として設定される。
【0046】
前述の10個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグが、DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される。
【0047】
前述の11個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、
0に等しいシーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが変換に使用されることを指定する。
【0048】
そのようなものとしての前述の態様によるデコーダの可能な実装形態において、
推論ユニットは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8、を変換に使用して推論するように構成される。
【0049】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、0に等しいシーケンスレベルDCT2有効フラグは、
それがDST7/DCT8を変換にのみ使用して推論されることを指定する。
【0050】
前述の3つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるデコーダの可能な実装形態において、
シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される。
【0051】
そのようなものとしての前述の態様の任意の前述の実装によるデコーダの可能な実装形態において、
sps_mts_intra_enabled_flagが存在する場合、
sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことが指定され、
ここで、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0052】
本開示はさらに、
インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成された推論ユニットと、
推論された変換コアを使用して、ブロックの変換を処理するように構成された処理ユニットと
を備えるエンコーダを提供する。
【0053】
そのようなものとしての前述の態様の任意の前述の実装によるエンコーダの可能な実装形態において、推論ユニットは、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成される。
【0054】
そのようなものとしての前述の態様の任意の前述の実装によるエンコーダの可能な実装形態において、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される。
【0055】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれる。
【0056】
【表3】
【0057】
ここで、sps_dct2_enabled_flagはシーケンスレベルDCT2有効フラグを表す。
【0058】
そのようなものとしての前述の態様によるエンコーダの可能な実装形態において、1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0059】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定し、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0060】
前述の5個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する。
【0061】
前述の6個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、
1に等しいシーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する。
【0062】
前述の7個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2が水平並びに垂直方向変換の両方に使用されることを指定する。
【0063】
前述の8個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する。
【0064】
そのようなものとしての前述の態様によるエンコーダの可能な実装形態において、残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換はDCT2として設定される。
【0065】
前述の10個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、1に等しいシーケンスレベルDCT2有効フラグが、DCT2変換コアが変換にのみ使用されることを指定する場合、サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される。
【0066】
前述の11個の態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、
0に等しいシーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが変換に使用されることを指定する。
【0067】
そのようなものとしての前述の態様の任意の前述の実装によるエンコーダの可能な実装形態において、
推論ユニットは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8、を変換に使用して推論するように構成される。
【0068】
前述の2つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、0に等しいシーケンスレベルDCT2有効フラグは、
それがDST7/DCT8を変換にのみ使用して推論されることを指定する。
【0069】
前述の3つの態様の任意の前述の実装又はそのようなものとしての前述の態様によるエンコーダの可能な実装形態において、
シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される。
【0070】
そのようなものとしての前述の態様の任意の前述の実装によるエンコーダの可能な実装形態において、
sps_mts_intra_enabled_flagが存在する場合、
sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの残差コーディングシンタックスに存在することが指定され、
sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことが指定され、
ここで、sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0071】
本開示はさらに、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行するためのプログラムコードを備えるコンピュータプログラム製品を提供する。
【0072】
本開示はさらに、
1又は複数のプロセッサと、
プロセッサに連結され、プロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、ここで、プログラミングは、プロセッサによって実行される場合、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行するようにデコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダを提供する。
【0073】
本開示はさらに、
1又は複数のプロセッサと、
プロセッサに連結され、プロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、ここで、プログラミングは、プロセッサによって実行される場合、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行するようにエンコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるエンコーダを提供する。
【0074】
本開示はさらに、プロセッサ上で実行される場合、当該プロセッサに、前述の態様の任意の前述の実装又はそのようなものとしての前述の態様による方法を実行させる命令を含むプログラムを保存する、コンピュータ可読非一時的媒体を提供する。
【図面の簡単な説明】
【0075】
以下、添付図面を参照しながら、本開示の実施形態がより詳細に説明される。
図1A】本開示の実施形態を実装するように構成されたビデオコーディングシステムの例を示すブロック図である。
図1B】本開示の実施形態を実装するように構成されたビデオコーディングシステムの別の例を示すブロック図である。
図2】本開示の実施形態を実装するように構成されたビデオエンコーダの例を示すブロック図である。
図3】本開示の実施形態を実装するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】エンコーディング装置又はデコーディング装置の例を示すブロック図である。
図5】エンコーディング装置又はデコーディング装置の別の例を示すブロック図である。
図6】各SBT位置に対する水平及び垂直変換の例を示すブロック図である。
図7】各SBT位置に対する水平及び垂直変換の別の例を示すブロック図である。
図8】本開示に係る画像のブロックのビデオコーディングの方法を示す。
図9】エンコーダを示す。
図10】デコーダを示す。 以下では、別途明示的に指定されていない限り、同一の参照符号は、同一又は少なくとも機能的に等価な機能を指す。
【発明を実施するための形態】
【0076】
以下の説明では、本開示の一部をなし、本開示の実施形態の具体的態様又は本開示の実施形態が使用され得る具体的態様を例示として示す、添付図面が参照される。本開示の実施形態が、他の態様において使用されてよく、図に示されていない構造的又は論理的な変更を含んでよいことが理解される。したがって、以下の詳細な説明は、限定的な意味で解釈されるものではなく、本開示の範囲は、添付の特許請求の範囲によって定義される。
【0077】
例えば、説明された方法に関連する開示は、方法を実行するように構成された対応するデバイス又はシステムにも当てはまり得、逆もまた同様であることが理解される。例えば、特定の方法の1又は複数の段階が説明される場合、そのような1又は複数のユニットが図において明示的に説明又は図示されていない場合であっても、対応するデバイスは、1又は複数のユニット、例えば、説明された1又は複数の方法の段階を実行する機能ユニット(例えば、1又は複数の段階を実行する1つのユニット、又は、各々が複数の段階のうち1又は複数を実行する複数のユニット)を含み得る。一方、例えば、特定の装置が1又は複数のユニット、例えば、機能ユニットに基づいて説明される場合、そのような1又は複数の段階が図において明示的に説明又は図示されていない場合であっても、対応する方法は、1又は複数ユニットの機能を実行する1つの段階(例えば、1又は複数のユニットの機能を実行する1つの段階、又は、各々が複数のユニットのうち1又は複数の機能を実行する複数の段階)を含み得る。さらに、別途特に注記されない限り、本明細書に説明されている様々な例示的な実施形態及び/又は態様の特徴を互いに組み合わせ得ることが理解される。
【0078】
ビデオコーディングは典型的には、ビデオ又はビデオシーケンスを形成する一連の画像の処理を指す。「画像」という用語の代わりに、「フレーム」又は「イメージ」という用語が、ビデオコーディング分野での同義語として使用され得る。ビデオコーディング(又は一般にコーディング)は、ビデオエンコーディング及びビデオデコーディングの2つの部分を含む。ビデオエンコーディングはソース側で実行され、典型的には、(より効率的な保存及び/又は送信のために)ビデオ画像を表現するのに必要なデータの量を低減させるように、元のビデオ画像を処理(例えば、圧縮による)することを含む。ビデオデコーディングは、デスティネーション側で実行され、典型的には、ビデオ画像を再構築するように、エンコーダと比較して逆の処理を含む。ビデオ画像(又は一般に画像)の「コーディング」に言及する実施形態は、ビデオ画像又はそれぞれのビデオシーケンスの「エンコーディング」又は「デコーディング」に関すると理解されるものとする。エンコーディング部分とデコーディング部分との組み合わせは、コーデック(コーディング及びデコーディング、Coding and Decoding)とも称される。
【0079】
無損失ビデオコーディングの場合、元のビデオ画像は再構築でき、すなわち、再構築されたビデオ画像は元のビデオ画像と同じ品質である(保存中又は送信中に送信損失又は他のデータ損失がないと仮定して)。不可逆ビデオコーディングの場合、ビデオ画像を表現するデータの量を低減するために、例えば量子化によるさらなる圧縮が実行されるが、これはデコーダにおいて完全に再構築できない、すなわち、再構築されたビデオ画像の品質は、元のビデオ画像の品質に比較して低下又は劣化する。
【0080】
いくつかのビデオコーディング規格は、「不可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間的及び時間的予測と、変換領域における量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各画像は、典型的には、非重複ブロックのセットに区分化され、コーディングは、典型的には、ブロックレベルで実行される。換言すると、エンコーダにおいて、ビデオは、例えば、空間的(イントラ画像)予測及び/又は時間的(インター画像)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されることになるブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換するとともに変換領域における残差ブロックを量子化して、送信されるデータの量を低減(圧縮)することによって、典型的にはブロック(ビデオブロック)レベルで処理、すなわち、エンコードされ、一方で、デコーダにおいては、エンコーダと比較して逆の処理がエンコード又は圧縮されたブロックに適用され、現在のブロックを表現のために再構築する。さらに、エンコーダがデコーダの処理ループを繰り返すことにより、後続のブロックの処理のために、すなわち、コーディングのために、両方が同一の予測(例えば、イントラ及びインター予測)及び/又は再構築物を生成することになる。
【0081】
以下、ビデオコーディングシステム10、ビデオエンコーダ20、及びビデオデコーダ30の実施形態が、図1から図3に基づいて説明される。
【0082】
図1Aは、本願の技術を利用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(又は略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(又は略してエンコーダ20)及びビデオデコーダ30(又は略してデコーダ30)は、本願において説明される様々な例に従って技術を実行するように構成され得るデバイスの例を表す。
【0083】
図1Aに示すように、コーディングシステム10は、エンコードされた画像データ21を、例えば、このエンコードされた画像データをデコーディングするためにデスティネーションデバイス14に提供する(13)ように構成されているソースデバイス12を備える。
【0084】
ソースデバイス12は、エンコーダ20を備え、加えて、すなわち任意選択的に、画像ソース16と、プリプロセッサ(又は前処理ユニット)18、例えば画像プリプロセッサ18と、通信インタフェース又は通信ユニット22とを備えてよい。
【0085】
画像ソース16は、任意の種類の画像捕捉デバイス、例えば、現実世界の画像を捕捉するカメラ、及び/又は、任意の種類の画像生成デバイス、例えば、コンピュータアニメーション化画像を生成するコンピュータグラフィックプロセッサ、又は、現実世界の画像、コンピュータ生成画像(例えば、スクリーンコンテンツ、仮想現実(VR)画像)、及び/又はそれらの任意の組み合わせ(例えば、拡張現実(AR)画像)を取得及び/又は提供する任意の種類の他のデバイスを含んでもよく、又はそれらのデバイスであってもよい。画像ソースは、前述の画像の任意のものを保存する任意の種類のメモリ又はストレージであってよい。
【0086】
プリプロセッサ18及び前処理ユニット18によって実行される処理と区別するように、画像又は画像データ17は、生画像又は生画像データ17とも称され得る。
【0087】
プリプロセッサ18は、(生)画像データ17を受信するとともに、画像データ17に対して前処理を実行して、前処理された画像19又は前処理された画像データ19を取得するように構成されている。プリプロセッサ18により実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCr)、色補正、又はノイズ除去を含んでよい。前処理ユニット18は任意選択のコンポーネントでもよいことが理解できる。
【0088】
ビデオエンコーダ20は、前処理された画像データ19を受信するとともに、エンコードされた画像データ21を提供するように構成されている(さらなる詳細は、例えば図2に基づいて下記で説明される)。
【0089】
ソースデバイス12の通信インタフェース22は、エンコードされた画像データ21を受信するとともに、エンコードされた画像データ21(又はそれの任意のさらに処理されたバージョン)を、保存又は直接再構築のために、通信チャネル13を介して別のデバイス、例えば、デスティネーションデバイス14又は任意の他のデバイスに送信するように構成され得る。
【0090】
デスティネーションデバイス14は、デコーダ30(例えばビデオデコーダ30)を備え、加えて、すなわち任意選択的に、通信インタフェース又は通信ユニット28と、ポストプロセッサ32(又は後処理ユニット32)と、ディスプレイデバイス34とを備え得る。
【0091】
デスティネーションデバイス14の通信インタフェース28は、エンコードされた画像データ21(又はそれの任意のさらに処理されたバージョン)を、例えばソースデバイス12から直接又は任意の他のソース、例えばストレージデバイス、例えばエンコードされた画像データストレージデバイスから受信するとともに、エンコードされた画像データ21をデコーダ30に提供するように構成されている。
【0092】
通信インタフェース22及び通信インタフェース28は、ソースデバイス12とデスティネーションデバイス14との間における直接的な通信リンク、例えば直接的な有線又は無線接続を介して、又は、任意の種類のネットワーク、例えば、有線又は無線ネットワーク若しくはそれらの任意の組み合わせ、又は、任意の種類のプライベート及びパブリックネットワーク、又は、それらの任意の種類の組み合わせを介して、エンコードされた画像データ21又はエンコードされたデータを送信又は受信する(13)ように構成されてよい。
【0093】
通信インタフェース22は、例えば、エンコードされた画像データ21を適切な形式に、例えばパケットにパッケージ化する、及び/又は、通信リンク又は通信ネットワークを介した送信のための任意の種類の送信エンコーディング又は処理を使用して、エンコードされた画像データを処理するように構成されてよい。
【0094】
通信インタフェース22のカウンターパートを形成する通信インタフェース28は、例えば、送信されたデータを受信するとともに、任意の種類の対応する送信デコーディング又は処理及び/又はデパッケージングを使用して送信データを処理して、エンコードされた画像データ21を取得するように構成されてよい。
【0095】
通信インタフェース22及び通信インタフェース28は両方とも、図1Aにおいてソースデバイス12からデスティネーションデバイス14に向く通信チャネル13の矢印で示すように単方向通信インタフェースとして、又は、双方向通信インタフェースとして構成されてよく、例えば、メッセージを送受信する、例えば、接続を設定し、通信リンク及び/又はデータ送信、例えばエンコードされた画像データの送信に関連する任意の他の情報を確認及びやりとりするように構成されてよい。
【0096】
デコーダ30は、エンコードされた画像データ21を受信するとともに、デコードされた画像データ31又はデコードされた画像31を提供するように構成されている(さらなる詳細は、例えば図3又は図5に基づいて下記で説明される)。デスティネーションデバイス14のポストプロセッサ32は、デコードされた画像データ31(再構築された画像データとも呼ばれる)、例えばデコードされた画像31を後処理して、後処理された画像データ33、例えば後処理された画像33を取得するように構成される。後処理ユニット32により実行される後処理は、例えば、デコードされた画像データ31を、例えばディスプレイデバイス34による表示のために準備する目的で、例えば、カラーフォーマット変換(例えば、YCbCrからRGB)、色補正、トリミング、若しくは再サンプリング、又は任意の他の処理を含んでよい。
【0097】
デスティネーションデバイス14のディスプレイデバイス34は、画像を例えばユーザ又は視聴者に表示するために、後処理された画像データ33を受信するように構成されている。ディスプレイデバイス34は、再構築された画像を表示するための任意の種類のディスプレイ、例えば、一体型又は外付けのディスプレイ又はモニタであってもよく、又は、これを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、又は任意の種類の他のディスプレイを含んでよい。
【0098】
図1Aはソースデバイス12とデスティネーションデバイス14とを別個のデバイスとして示しているが、デバイスの実施形態は、それらの両方又は両方の機能、すなわち、ソースデバイス12又は対応する機能と、デスティネーションデバイス14又は対応する機能とを備えてもよい。そのような実施形態において、ソースデバイス12又は対応する機能及びデスティネーションデバイス14又は対応する機能は、同じハードウェア及び/又はソフトウェアを使用して、又は、別個のハードウェア及び/又はソフトウェア又はそれらの任意の組み合わせにより実装されてもよい。
【0099】
本説明に基づいて当業者には明らかであるように、図1Aに示されるような、異なるユニットの機能又はソースデバイス12及び/又はデスティネーションデバイス14内の機能の存在及び(正確な)分割は、実際のデバイス及びアプリケーションに応じて変わり得る。
【0100】
エンコーダ20(例えば、ビデオエンコーダ20)又はデコーダ30(例えば、ビデオデコーダ30)又はエンコーダ20及びデコーダ30の両方は、1又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオコーディング専用又はそれらの任意の組み合わせなどの、図1Bに示されるような処理回路を介して実装され得る。エンコーダ20は、図2のエンコーダ20及び/又は本明細書に記載の任意の他のエンコーダシステム又はサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装され得る。デコーダ30は、図3のデコーダ30及び/又は本明細書に記載の任意の他のデコーダシステム又はサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装され得る。処理回路は、後で説明されるように様々な演算を実行するように構成され得る。図5に示されるように、技術がソフトウェアにおいて部分的に実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体におけるソフトウェアに対する命令を保存してよく、ハードウェア内で1又は複数のプロセッサを使用して命令を実行して、本開示の技術を実行してよい。ビデオエンコーダ20及びビデオデコーダ30のいずれかは、図1Bに示されるように、例えば、単一のデバイス内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として統合されてよい。
【0101】
ソースデバイス12及びデスティネーションデバイス14は、任意の種類のハンドヘルド又はステーショナリデバイス、例えば、ノートブック又はラップトップコンピュータ、携帯電話、スマートフォン、タブレット又はタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバ又はコンテンツ配信サーバなど)、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイス等を含む、幅広いデバイスのいずれかを備えてよく、オペレーティングシステムを使用しなくてもよく、又は任意の種類のオペレーティングシステムを使用してもよい。いくつかの場合、ソースデバイス12及びデスティネーションデバイス14は、無線通信に対応してよい。したがって、ソースデバイス12及びデスティネーションデバイス14は、無線通信デバイスであってよい。
【0102】
いくつかの場合、図1Aに示されるビデオコーディングシステム10は、単に例であり、本願の技術は、エンコーディングデバイスとデコーディングデバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定(例えば、ビデオエンコーディング又はビデオデコーディング)に適用されてよい。他の例において、データは、ローカルメモリから取得され、ネットワークを介してストリーム等される。ビデオエンコーディングデバイスは、データをメモリにエンコードして保存してよく、及び/又は、ビデオデコーディングデバイスは、データをメモリから取得してデコードしてよい。いくつかの例において、エンコーディング及びデコーディングは、互いに通信しないが単純にデータをメモリにエンコードする及び/又はメモリからデータを取得してデコードするデバイスにより実行される。
【0103】
説明の便宜上、例えば、ITU-Tビデオコーディング専門家グループ(VCEG)及びISO/IEC動画像専門家グループ(MPEG)のビデオコーディングに関する共同作業チーム(JCT-VC)によって開発された次世代ビデオコーディング規格である、高効率ビデオコーディング(HEVC)又は多用途ビデオコーディング(VVC)のリファレンスソフトウェアを参照して、本開示の実施形態が本明細書で説明される。当業者であれば、本開示の実施形態はHEVC又はVVCに限定されないことを理解するだろう。
【0104】
[エンコーダ及びエンコーディング方法]
【0105】
図2は、本願の技術を実装するように構成されている例示的なビデオエンコーダ20の概略ブロック図を示す。図2の例において、ビデオエンコーダ20は、入力201(又は入力インタフェース201)と、残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタユニット220と、デコードされた画像バッファ(DPB)230と、モード選択ユニット260と、エントロピーエンコーディングユニット270と、出力272(又は出力インタフェース272)とを備える。モード選択ユニット260は、インター予測ユニット244と、イントラ予測ユニット254と、区分化ユニット262とを含み得る。インター予測ユニット244は、動き推定ユニットと動き補償ユニット(図示せず)とを含み得る。図2に示されるビデオエンコーダ20は、ハイブリッドビデオエンコーダ、又は、ハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。
【0106】
残差計算ユニット204と、変換処理ユニット206と、量子化ユニット208と、モード選択ユニット260とは、エンコーダ20の順方向信号経路を形成するものとして言及されてよく、一方、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、バッファ216と、ループフィルタ220と、デコードされた画像バッファ(DPB)230と、インター予測ユニット244と、イントラ予測ユニット254とは、ビデオエンコーダ20の逆方向信号経路を形成するものとして言及されてよい。ビデオエンコーダ20の逆方向信号経路は、デコーダの信号経路に対応する(図3のビデオデコーダ30を参照)。逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタ220と、デコードされた画像バッファ(DPB)230と、インター予測ユニット244と、イントラ予測ユニット254とはまた、ビデオエンコーダ20の「内蔵デコーダ」を形成していると言及される。
【0107】
[画像及び画像区分化(画像及びブロック)]
【0108】
エンコーダ20は、例えば、入力201を介して、画像17(又は画像データ17)、例えば、ビデオ又はビデオシーケンスを形成する一連の画像のうちの画像を受信するように構成されてよい。受信された画像又は画像データは、前処理された画像19(又は前処理された画像データ19)であってもよい。簡潔さのために、以下の説明では画像17を参照する。画像17は、現在の画像又はコードされる画像とも称され得る(特に、ビデオコーディングにおいて、現在の画像を他の画像、例えば、同じビデオシーケンス、すなわち、現在の画像も含むビデオシーケンスの、以前にエンコードされた及び/又はデコードされた画像から区別するために)。
【0109】
(デジタル)画像は、強度値を持つサンプルの二次元アレイ又はマトリックスであるか、又はそれとみなされ得る。アレイ内のサンプルは、画素(画像要素の短縮形)又はペルとも称され得る。アレイ又は画像の水平及び垂直方向(又は軸)におけるサンプルの数は、画像のサイズ及び/又は解像度を定義する。色を表現するために、典型的には3つの色成分が使用され、すなわち、画像は、3つのサンプルアレイで表されてもよく、又は、これを含んでもよい。RBG形式又は色空間では、画像は対応する赤、緑、及び青のサンプルアレイを含む。しかしながら、ビデオコーディングでは、各画素は、典型的には、輝度及びクロミナンス形式又は色空間、例えば、YCbCrで表され、これには、Y(代わりにLが使用される場合もある)で示される輝度成分と、Cb及びCrで示される2つのクロミナンス成分とが含まれる。輝度(又は略してルマ(luma))成分Yは、明るさ又は(例えば、グレースケール画像でのような)グレーレベルの強度を表し、一方、2つのクロミナンス(又は略してクロマ(chroma))成分Cb及びCrは、色度又は色情報成分を表す。したがって、YCbCr形式の画像は、輝度サンプル値(Y)の輝度サンプルアレイ、及びクロミナンス値(Cb及びCr)の2つのクロミナンスサンプルアレイを含む。RGB形式の画像は、YCbCr形式に転換又は変換され得、その逆もまた同様であり、このプロセスは、色変換又は転換としても知られている。画像がモノクロの場合、画像は、輝度サンプルアレイのみを含んでよい。したがって、画像は、例えば、モノクロ形式のルマサンプルのアレイ、又は、4:2:0、4:2:2、及び4:4:4のカラーフォーマットのルマサンプルのアレイ及びクロマサンプルの2つの対応するアレイであってよい。
【0110】
ビデオエンコーダ20の実施形態は、画像17を複数の(典型的には非重複)画像ブロック203に区分化するように構成されている画像区分化ユニット(図2には示されない)を備えてよい。これらのブロックは、根ブロック、マクロブロック(H.264/AVC)又はコーディングツリーブロック(CTB)又はコーディングツリーユニット(CTU)(H.265/HEVC及びVVC)とも称され得る。画像区分化ユニットは、ビデオシーケンスの全ての画像と、ブロックサイズを規定する対応するグリッドとに対して同じブロックサイズを使用するか、又は、画像又は画像のサブセット若しくはグループ間でブロックサイズを変更して、各画像を対応するブロックに区分化するように構成されてよい。
【0111】
さらなる実施形態において、ビデオエンコーダは、画像17のブロック203、例えば、画像17を形成する1つ、いくつか、又は全てのブロックを直接受信するように構成されてよい。画像ブロック203は、現在の画像ブロック又はコードされる画像ブロックとも称され得る。
【0112】
画像17と同様にここでも、画像ブロック203は、画像17よりも寸法が小さいが、強度値(サンプル値)を持つサンプルの二次元アレイ又はマトリックスであるか、又は、それとみなされ得る。換言すると、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロ画像17の場合はルマアレイ、又は、カラー画像の場合はルマ若しくはクロマアレイ)、又は、3つのサンプルアレイ(例えば、カラー画像17の場合はルマ及び2つのクロマアレイ)、又は、適用されるカラーフォーマットに応じた任意の他の数及び/又は種類のアレイを備えてよい。ブロック203の水平及び垂直方向(又は軸)のサンプルの数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)アレイ、又は変換係数のM×Nアレイであってよい。
【0113】
図2に示されるビデオエンコーダ20の実施形態は、画像17をブロック毎にエンコードするように構成されてよく、例えば、エンコーディング及び予測がブロック203毎に実行される。
【0114】
図2に示されるビデオエンコーダ20の実施形態はさらに、スライス(ビデオスライスとも称される)を使用して、画像を区分化及び/又はエンコードするように構成されてよく、画像は、1又は複数のスライス(典型的には非重複)を使用して区分化又はエンコードされてよく、各スライスは、1又は複数のブロック(例えば、CTU)を含んでよい。
【0115】
図2に示されるビデオエンコーダ20の実施形態はさらに、タイルグループ(ビデオタイルグループとも称される)及び/又はタイル(ビデオタイルとも称される)を使用して、画像を区分化及び/又はエンコードするように構成されてよく、画像は、1又は複数のタイルグループ(典型的には非重複)を使用して区分化又はエンコードされてよく、各タイルグループは、例えば、1又は複数のブロック(例えば、CTU)若しくは1又は複数のタイルを含んでよく、各タイルは、例えば、矩形形状であってよく、1又は複数のブロック(例えば、CTU)、例えば、完全な又は分数ブロックを含んでよい。
【0116】
[残差計算]
【0117】
残差計算ユニット204は、例えば、サンプル毎(画素毎)に画像ブロック203のサンプル値から予測ブロック265のサンプル値を減算し、サンプル領域における残差ブロック205を取得することによって、画像ブロック203及び予測ブロック265に基づいて(予測ブロック265に関するさらなる詳細は後で提供される)、残差ブロック205(残差205とも称される)を計算するように構成されてよい。
【0118】
[変換]
【0119】
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)又は離散サイン変換(DST)を適用し、変換領域における変換係数207を取得するように構成されてよい。変換係数207は、変換残差係数とも称され得、変換領域における残差ブロック205を表す。
【0120】
変換処理ユニット206は、H.265/HEVCに指定された変換などのDCT/DSTの整数近似を適用するように構成されてよい。直交DCT変換と比較して、そのような整数近似は、典型的には特定の係数によってスケーリングされる。順変換及び逆変換によって処理される残差ブロックのノルムを保存するべく、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的には、シフト演算の2のべき乗であるスケーリング係数、変換係数のビット深度、精度と実装コストとの間のトレードオフ等のような特定の制約に基づいて選択される。例えば、特定のスケーリング係数が、例えば、逆変換処理ユニット212による逆変換(及び、例えばビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)に指定され、例えば、エンコーダ20における変換処理ユニット206による順方向変換のための対応するスケーリング係数が、相応に指定されてよい。
【0121】
ビデオエンコーダ20の実施形態は(それぞれ変換処理ユニット206)は、変換パラメータ、例えば単数又は複数の変換のタイプを、例えば、直接又はエントロピーエンコーディングユニット270を介してエンコード若しくは圧縮してから出力するように構成されてよく、その結果、例えば、ビデオデコーダ30は、デコーディングのために変換パラメータを受信して使用してよい。
【0122】
[量子化]
【0123】
量子化ユニット208は、例えば、スカラ量子化又はベクトル量子化を適用することによって、変換係数207を量子化して、量子化係数209を取得するように構成されてよい。量子化係数209は、量子化変換係数209又は量子化残差係数209とも称され得る。
【0124】
量子化プロセスは、変換係数207のいくつか又は全てに関連付けられたビット深度を低減し得る。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められてよく、ここでnはmより大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラ量子化の場合、より細かい又はより粗い量子化を達成するために、異なるスケーリングが適用されてよい。量子化段階サイズが小さいほど細かい量子化に対応し、一方で、量子化段階サイズが大きいほど粗い量子化に対応する。適用可能な量子化段階サイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化段階サイズの予め定義されたセットに対するインデックスであってよい。例えば、小さな量子化パラメータは細かい量子化(小さな量子化段階サイズ)に対応し得、大きな量子化パラメータは粗い量子化(大きな量子化段階サイズ)に対応し得るか、又は逆もまた同様である。量子化は、量子化段階サイズによる除算を含んでよく、例えば逆量子化ユニット210による対応する及び/又は逆の量子化解除は、量子化段階サイズによる乗算を含んでよい。いくつかの規格、例えばHEVCに従った実施形態は、量子化段階サイズを決定するのに量子化パラメータを使用するように構成されてよい。概して、量子化段階サイズは、除算を含む方程式の固定小数点近似を使用する量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するために、量子化及び量子化解除に追加のスケーリング係数が導入され得、これは、量子化段階サイズ及び量子化パラメータの方程式の固定小数点近似で使用されるスケーリングに起因して変更され得る。1つの実装例では、逆変換及び量子化解除のスケーリングは組み合わされ得る。代替的に、カスタマイズされた量子化テーブルが使用され、例えばビットストリームにおいてエンコーダからデコーダにシグナリングされてよい。量子化は不可逆演算であり、損失は量子化段階サイズの増加に伴って増加する。
【0125】
ビデオエンコーダ20の実施形態(それぞれ量子化ユニット208)は、量子化パラメータ(QP)を、例えば、直接又はエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、その結果、例えば、ビデオデコーダ30は、デコーディングのために量子化パラメータを受信して適用してよい。
【0126】
[逆量子化]
【0127】
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化段階サイズに基づいて又はそれを使用して量子化ユニット208により適用される量子化スキームの逆を適用することにより、量子化ユニット208の逆量子化を量子化係数に適用して、量子化解除係数211を取得するように構成される。量子化解除係数211は、量子化解除残差係数211とも称され得、典型的には量子化による損失に起因して変換係数とは同一でないが、変換係数207に対応する。
【0128】
[逆変換]
【0129】
逆変換処理ユニット212は、変換処理ユニット206によって適用される変換の逆変換、例えば、逆離散コサイン変換(DCT)又は逆離散サイン変換(DST)又は他の逆変換を適用して、サンプル領域において、再構築された残差ブロック213(又は対応する量子化解除係数213)を取得するように構成される。再構築された残差ブロック213は、変換ブロック213とも称され得る。
【0130】
[再構築]
【0131】
再構築ユニット214(例えば加算器又は合算器214)は、例えば、サンプル毎に、再構築された残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、変換ブロック213(すなわち、再構築された残差ブロック213)を予測ブロック265に加算し、サンプル領域において、再構築されたブロック215を取得するように構成される。
【0132】
[フィルタリング]
【0133】
ループフィルタユニット220(又は略して「ループフィルタ」220)は、再構築されたブロック215をフィルタリングして、フィルタリング済みのブロック221を取得するように、又は一般に、再構築されたサンプルをフィルタリングして、フィルタリング済みのサンプルを取得するように構成される。ループフィルタユニットは、例えば、画素遷移を平滑化するように、又は、別様にビデオ品質を改善するように構成されている。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、又は、1又は複数の他のフィルタ、例えば、バイラテラルフィルタ、適応型ループフィルタ(ALF)、鮮明化、平滑化フィルタ若しくは協調フィルタ、又は、それらの任意の組み合わせなどの、1又は複数のループフィルタを備えてよい。ループフィルタユニット220が、ループフィルタ内にあるものとして図2に示されているが、他の構成では、ループフィルタユニット220は、ポストループフィルタとして実装されてもよい。フィルタリング済みのブロック221は、フィルタリング済みの再構築されたブロック221とも称され得る。
【0134】
ビデオエンコーダ20(それぞれループフィルタユニット220)の実施形態は、ループフィルタパラメータ(サンプル適応型オフセット情報など)を、例えば、直接又はエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、その結果、例えばデコーダ30は、同じループフィルタパラメータ又はそれぞれのループフィルタをデコーディングのために受信及び適用してよい。
【0135】
[デコードされた画像バッファ]
【0136】
デコードされた画像バッファ(DPB)230は、ビデオエンコーダ20によってビデオデータをエンコーディングするための参照画像、又は一般に、参照画像データを保存するメモリであってよい。DPB230は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、又は他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのうち任意のものによって形成されてよい。デコードされた画像バッファ(DPB)230は、1又は複数のフィルタリング済みのブロック221を保存するように構成されてよい。デコードされた画像バッファ230はさらに、同じ現在の画像又は異なる画像、例えば、以前に再構築された画像の、他に以前にフィルタリング済みのブロック、例えば、以前に再構築された且つフィルタリング済みのブロック221を保存するように構成されてよく、例えば、インター予測のために、以前に再構築された、すなわち、デコードされた、完全な画像(並びに、対応する参照ブロック及びサンプル)、及び/又は、部分的に再構築された現在の画像(並びに、対応する参照ブロック及びサンプル)を提供してよい。デコードされた画像バッファ(DPB)230は、例えば、再構築されたブロック215がループフィルタユニット220によってフィルタリングされていない場合、1又は複数のフィルタリングされていない再構築されたブロック215、又は一般に、フィルタリングされていない再構築されたサンプル、又は、再構築されたブロック若しくはサンプルの任意の他のさらに処理されたバージョンを保存するように構成されてもよい。
【0137】
[モード選択(区分化及び予測)]
【0138】
モード選択ユニット260は、区分化ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを備え、元の画像データ、例えば元のブロック203(現在の画像17の現在のブロック203)、及び再構築された画像データ、例えば、同じ(現在の)画像の及び/又は1又は複数の以前にデコードされた画像からの、例えばデコードされた画像バッファ230又は他のバッファ(例えば図示しないラインバッファ)からの、フィルタリング済みの及び/又はフィルタリングされていない再構築されたサンプル又はブロックを受信又は取得するように構成される。再構築された画像データは、予測ブロック265又は予測因子265を取得するために、予測、例えば、インター予測又はイントラ予測のための参照画像データとして使用される。
【0139】
モード選択ユニット260は、現在のブロック予測モード(区分化を含まない)と予測モード(例えば、イントラ又はインター予測モード)とに対する区分化を決定又は選択することと、対応する予測ブロック265を生成することであって、対応する予測ブロック265は、残差ブロック205の計算と、再構築されたブロック215の再構築とに使用される、生成することとを行うように構成されてよい。
【0140】
モード選択ユニット260の実施形態は、区分化及び予測モードを(例えば、モード選択ユニット260によりサポートされるもの又はモード選択ユニット260に利用可能なものから)選択するように構成されてよく、これにより、最良のマッチング、又は換言すると、最小残差(最小残差は、送信又は保存のための圧縮率がより良好であることを意味する)、又は、最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信又は保存のための圧縮率がより良好であることを意味する)、又は、これら両方を考慮した又は両方のバランスをとったものを提供する。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分化及び予測モードを決定する、すなわち、最小レート歪みを提供する予測モードを選択するように構成されてよい。この文脈において「最良」、「最小」、「最適」等のような用語は、全般的な「最良」、「最小」、「最適」等を必ずしも指さず、値が閾値又は他の制約を超過又は下回り、潜在的に「準最適選択」に繋がるが複雑性及び処理時間は低減するような、終了又は選択基準の達成を指してもよい。
【0141】
換言すると、区分化ユニット262は、例えば、四分木区分化(QT)、二分木区分化(BT)、若しくは三分木区分化(TT)又はそれらの任意の組み合わせを繰り返し使用して、ブロック203をより小さなブロック区分又はサブブロック(ここでもブロックを形成する)に区分化することと、例えば、ブロック区分化又はサブブロックの各々に対する予測を実行することとを行うように構成されてよく、モード選択は、区分化されたブロック203の木構造の選択を含み、予測モードは、ブロック区分又はサブブロックの各々に適用される。
【0142】
以下では、例示的なビデオエンコーダ20によって実行される、区分化(例えば、区分化ユニット260による)及び予測処理(インター予測ユニット244及びイントラ予測ユニット254による)をより詳細に説明する。
【0143】
[区分化]
【0144】
区分化ユニット262は、現在のブロック203をより小さい区分、例えば、正方形又は矩形のサイズのより小さいブロックに区分化(又は分割)し得る。これらのより小さいブロック(サブブロックとも称され得る)は、さらにより小さい区分にさらに区分化されてよい。これは、ツリー区分化若しくは階層的ツリー区分化とも称され、ここで、例えば根ツリーレベル0(階層レベル0、深度0)にある根ブロックは、再帰的に区分化、例えば、次に低いツリーレベル、例えばツリーレベル1(階層レベル1、深度1)にある節点の2又はそれより多くのブロックに区分化されてよく、これらのブロックは、例えば終了基準が達成されたことで、例えば最大ツリー深度又は最小ブロックサイズに達したことで、区分化が終了するまで、次に低いレベル、例えばツリーレベル2(階層レベル2、深度2)の2又はそれより多くのブロックに再区分化される等してよい。さらに区分化されないブロックは、ツリーの葉ブロック又は葉節点とも称される。2つの区分への区分化を用いるツリーは、二分木(BT)と称され、3つの区分への区分化を用いるツリーは、三分木(TT)と称され、4つの区分への区分化を用いるツリーは、四分木(QT)と称される。
【0145】
上述のように、本明細書で使用される「ブロック」という用語は、画像の部分、特に、正方形又は矩形部分であってよい。例えば、HEVC及びVVCを参照すると、ブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、予測ユニット(PU)、及び変換ユニット(TU)、及び/又は、対応するブロック、例えば、コーディングツリーブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)、若しくは予測ブロック(PB)であるか、又はそれらに対応してよい。
【0146】
例えば、コーディングツリーユニット(CTU)は、ルマサンプルのCTB、3つのサンプルアレイを有する画像のクロマサンプルの2つの対応するCTB、又は、モノクロ画像の若しくはサンプルをコードするために使用された3つの別個の色平面及びシンタックス構造を使用してコードされた画像のサンプルのCTBであるか、又はそれらを含んでよい。これに対応して、コーディングツリーブロック(CTB)は、CTBへのコンポーネントの分割が区分化であるように、ある値NのサンプルのN×Nブロックであってよい。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有する画像のクロマサンプルの2つの対応するコーディングブロック、又は、モノクロ画像の若しくはサンプルをコードするために使用された3つの別個の色平面及びシンタックス構造を使用してコードされた画像のサンプルのコーディングブロックであるか、又はそれらを含んでよい。これに対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分化であるように、ある値M及びNのサンプルのM×Nブロックであってよい。
【0147】
例えばHEVCに従う実施形態において、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を使用することによってCUに分割されてよい。画像エリアを、インター画像(時間的)予測を使用してコードするか、又は、イントラ画像(空間的)予測を使用してコードするかの決定は、CUレベルで行われる。各CUはさらに、PUの分割タイプに従って、1つ、2つ、又は4つのPUに分割することができる。1つのPUの内部では、同じ予測処理が適用され、関連情報はPUベースでデコーダに送信される。PUの分割タイプに基づいて予測処理を適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーと同様の別の四分木構造に従って変換ユニット(TU)に区分化されることができる。
【0148】
例えば、多用途ビデオコーディング(VVC)と称される、現在開発中の最新のビデオコーディング規格に従う実施形態において、例えば、組み合わされた四分木及び二分木(QTBT)区分化がコーディングブロックを区分化するのに使用される。QTBTブロック構造では、CUは、正方形又は矩形形状のいずれかとすることができる。例えば、コーディングツリーユニット(CTU)は、まず四分木構造により区分化される。四分木の葉節点は、二分木又は三分(ternary(or triple))木構造によってさらに区分化される。区分化ツリーの葉節点は、コーディングユニット(CU)と呼ばれ、そのセグメンテーションは、いかなるさらなる区分化も行わずに予測及び変換の処理に使用される。つまり、CU、PU、及びTUは、QTBTコーディングブロック構造において同じブロックサイズを有する。並行して、複数の区分化、例えば、三分木区分化が、QTBTブロック構造と一緒に使用され得る。
【0149】
1つの例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書に記載の区分化技術の任意の組み合わせを実行するように構成されてよい。
【0150】
上述したように、ビデオエンコーダ20は、(例えば、予め決定された)予測モードのセットから最良又は最適な予測モードを決定又は選択するように構成される。予測モードのセットは、例えば、イントラ予測モード及び/又はインター予測モードを含み得る。
【0151】
[イントラ予測]
【0152】
イントラ予測モードのセットは、35個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような無方向性モード、又は、例えば、HEVCにおいて定義されるような方向性モードを含み得る、又は、67個の異なるイントラ予測モード、例えば、DC(又は平均)モード及び平面モードのような無方向性モード、又は、例えば、VVCについて定義されるような方向性モードを含み得る。
【0153】
イントラ予測ユニット254は、同じ現在の画像の隣接ブロックの再構築されたサンプルを使用して、イントラ予測モードのセットのうちのイントラ予測モードに従って、イントラ予測ブロック265を生成するように構成されている。
【0154】
イントラ予測ユニット254(又は一般にモード選択ユニット260)はさらに、イントラ予測パラメータ(又は一般に、ブロックのために選択されたイントラ予測モードを示す情報)を、エンコードされた画像データ21に含まれるようにシンタックス要素266の形でエントロピーエンコーディングユニット270に出力するように構成され、その結果、例えば、ビデオデコーダ30は、デコーディングのために予測パラメータを受信及び使用してよい。
【0155】
[インター予測]
【0156】
一組の(又は可能な)インター予測モードは、利用可能な参照画像(すなわち、例えば、DBP230に保存された、以前に少なくとも部分的にデコードされた画像)と、例えば、参照画像の現在のブロックのエリアの周囲の検索ウィンドウエリアのような、例えば、参照画像の全体又は一部のみが、最も良くマッチングする参照ブロックを検索するのに使用されているかどうか、及び/又は、例えば、画素補間、例えば2分の1/半ペル及び/又は4分の1ペル補間が適用されたか否かといった、他インター予測パラメータとに依存する。
【0157】
上記の予測モードに加えて、スキップモード及び/又は直接モードが適用されてよい。
【0158】
インター予測ユニット244は、動き推定(ME)ユニットと動き補償(MC)ユニット(両方とも図2には図示せず)とを含み得る。動き推定ユニットは、動き推定のために、画像ブロック203(現在の画像17の現在の画像ブロック203)及びデコードされた画像231、又は少なくとも1又は複数の以前に再構築されたブロック、例えば、1又は複数の他の/異なる以前にデコードされた画像231の再構築されたブロックを受信又は取得するように構成されてよい。例えば、ビデオシーケンスは、現在の画像及び以前にデコードされた画像231を含んでよく、又は換言すると、現在の画像及び以前にデコードされた画像231は、ビデオシーケンスを形成する一連の画像の一部であるか又はそれを形成してよい。
【0159】
エンコーダ20は、例えば、複数の他の画像のうちの同じ又は異なる画像の複数の参照ブロックから参照ブロックを選択し、参照画像(又は参照画像インデックス)及び/又は参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間オフセット)を、インター予測パラメータとして動き推定ユニットに提供するように構成され得る。このオフセットは、動きベクトル(MV)とも呼ばれる。
【0160】
動き補償ユニットは、インター予測パラメータを取得、例えば受信するとともに、そのインター予測パラメータに基づいて又はそれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成されている。動き補償ユニットにより実行される動き補償は、動き推定によって決定される動き/ブロックベクトルに基づいて予測ブロックをフェッチ又は生成し、場合によって副画素精度までの補間を実行することを伴ってよい。補間フィルタリングは、既知の画素サンプルから追加の画素サンプルを生成してよく、したがって、画像ブロックをコードするのに使用され得る候補予測ブロックの数を潜在的に増加させる。現在の画像ブロックのPUのための動きベクトルを受信すると、動き補償ユニットは、参照画像リストのうちの1つにおいて動きベクトルが指し示す予測ブロックを位置特定してよい。
【0161】
動き補償ユニットは、ビデオスライスの画像ブロックをデコーディングする際にビデオデコーダ30によって使用される、ブロック及びビデオスライスに関連付けられるシンタックス要素を生成してもよい。スライス及びそれぞれのシンタックス要素に追加的に又は代替的に、タイルグループ及び/又はタイル、並びに、それぞれのシンタックス要素が生成又は使用され得る。
【0162】
[エントロピーコーディング]
【0163】
エントロピーエンコーディングユニット270は、例えば、エントロピーエンコーディングアルゴリズム又は方式(例えば、可変長コーディング(VLC)方式、コンテキスト適応型VLC方式(CAVLC)、算術コーディング方式、二値化、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC)、確率区間区分化エントロピー(PIPE)コーディング、又は、別のエントロピーエンコーディング方法若しくは技術)又はバイパス(圧縮なし)を量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、及び/又は、他のシンタックス要素に対して適用し、例えばエンコードされたビットストリーム21の形で、出力部272を介して出力できるエンコードされた画像データ21を取得するように構成され、その結果、例えば、ビデオデコーダ30は、デコーディングのためにパラメータを受信及び使用し得る。エンコードされたビットストリーム21は、ビデオデコーダ30に送信されてもよく、又は、後でビデオデコーダ30によって送信又は取得するためにメモリに保存されてもよい。
【0164】
ビデオエンコーダ20の他の構造上の変形は、ビデオストリームをエンコードするのに使用され得る。例えば、非変換ベースのエンコーダ20は、特定のブロック又はフレームのための変換処理ユニット206を用いずに、直接的に残差信号を量子化することができる。別の実装において、エンコーダ20は、単一のユニットに組み合わされた量子化ユニット208及び逆量子化ユニット210を有することができる。
【0165】
[デコーダ及びデコーディング方法]
【0166】
図3は、本願の技術を実装するように構成されたビデオデコーダ30の例を示す。ビデオデコーダ30は、例えば、エンコーダ20によりエンコードされた、エンコードされた画像データ21(例えば、エンコードされたビットストリーム21)を受信して、デコードされた画像331を取得するように構成されている。エンコードされた画像データ又はビットストリームは、エンコードされた画像データをデコーディングするための情報、例えば、エンコードされたビデオスライスの画像ブロック(及び/又はタイルグループ若しくはタイル)及び関連付けられたシンタックス要素を表すデータを含む。
【0167】
図3の例において、デコーダ30は、エントロピーデコ―ディングユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構築ユニット314(例えば、合算器314)、ループフィルタ320、デコードされた画像バッファ(DBP)330、モード適用ユニット360、インター予測ユニット344、及びイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであってもよく、又はそれを含んでもよい。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ100に関連して説明されたエンコーディングパスに対して概ね逆のデコーディングパスを実行してよい。
【0168】
エンコーダ20に関して説明されたように、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、ループフィルタ220と、デコードされた画像バッファ(DPB)230と、インター予測ユニット344と、イントラ予測ユニット354とは、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとしても言及される。したがって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってよく、再構築ユニット314は、再構築ユニット214と機能的に同一であってよく、ループフィルタ320は、ループフィルタ220と機能的に同一であってよく、デコードされた画像バッファ330は、デコードされた画像バッファ230と機能的に同一であってよい。したがって、ビデオエンコーダ20のそれぞれのユニット及び機能について提供される説明は、ビデオデコーダ30のそれぞれのユニット及び機能に対応して適用される。
【0169】
[エントロピーデコーディング]
【0170】
エントロピーデコーディングユニット304は、ビットストリーム21(又は一般にエンコードされた画像データ21)を解析し、例えば、エンコードされた画像データ21にエントロピーデコーディングを実行して、例えば量子化係数309及び/又はデコードされたコーディングパラメータ(図3には図示せず)、例えば、インター予測パラメータ(例えば、参照画像インデックス及び動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モード又はインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、及び/又は他のシンタックス要素のいずれか又は全てを取得ように構成される。エントロピーデコーディングユニット304は、エンコーダ20のエントロピーエンコーディングユニット270に関して説明されたエンコーディングスキームに対応するデコーディングアルゴリズム又はスキームを適用するように構成されてよい。エントロピーデコ―ディングユニット304はさらに、インター予測パラメータ、イントラ予測パラメータ、及び/又は他のシンタックス要素をモード適用ユニット360に、また他のパラメータをデコーダ30の他のユニットに提供するように構成されてよい。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルで、シンタックス要素を受信してよい。スライス及びそれぞれのシンタックス要素に追加的に又は代替的に、タイルグループ及び/又はタイル、並びに、それぞれのシンタックス要素が受信及び/又は使用され得る。
【0171】
[逆量子化]
【0172】
逆量子化ユニット310は、量子化パラメータ(QP)(又は一般に、逆量子化に関連する情報)及び量子化係数を、エンコードされた画像データ21から(例えば、エントロピーデコーディングユニット304によって、例えば、解析及び/又はデコーディングによって)受信し、量子化パラメータに基づいて、デコードされた量子化係数309に対して逆量子化を適用し、変換係数311とも称され得る量子化解除係数311を取得するように構成され得る。逆量子化プロセスは、量子化の程度、また同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(又はタイル若しくはタイルグループ)内のビデオブロック毎にビデオエンコーダ20によって決定される量子化パラメータの使用を含んでよい。
【0173】
[逆変換]
【0174】
逆変換処理ユニット312は、変換係数311とも称される量子化解除係数311を受信するとともに、サンプル領域における再構築された残差ブロック213を取得するべく、量子化解除係数311に変換を適用するように構成され得る。再構築された残差ブロック213は、変換ブロック313とも称されてよい。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、又は概念的に同様の逆変換プロセスであってよい。逆変換処理ユニット312はさらに、エンコードされた画像データ21から変換パラメータ又は対応する情報を受信し(例えば、エントロピーデコ―ディングユニット304によって、例えば解析及び/又はデコーディングすることによって)、量子化解除係数311に適用されるべき変換を決定するように構成されてよい。
【0175】
[再構築]
【0176】
再構築ユニット314(例えば加算器又は合算器314)は、例えば、再構築された残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、再構築された残差ブロック313を予測ブロック365に加算し、サンプル領域において、再構築されたブロック315を取得するように構成される。
【0177】
[フィルタリング]
【0178】
(コーディングループ内又はコーディングループ後のいずれかにある)ループフィルタユニット320は、例えば、画素遷移を平滑化するように又はそうでなければビデオ品質を改善するように、再構築されたブロック315をフィルタリングして、フィルタリング済みのブロック321を取得するように構成される。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、又は、1又は複数の他のフィルタ、例えば、バイラテラルフィルタ、適応型ループフィルタ(ALF)、鮮明化、平滑化フィルタ若しくは協調フィルタ、又は、それらの任意の組み合わせなどの、1又は複数のループフィルタを備えてよい。ループフィルタユニット320が、ループフィルタ内にあるものとして図3に示されているが、他の構成では、ループフィルタユニット320は、ポストループフィルタとして実装されてもよい。
【0179】
[デコードされた画像バッファ]
【0180】
画像のデコードされたビデオブロック321はその後、デコードされた画像バッファ330に保存され、デコードされた画像バッファ330は、他の画像の後続の動き補償及び/又はそれぞれの表示の出力のための参照画像としてデコードされた画像331を保存する。
【0181】
デコーダ30は、例えば、出力312を介して、ユーザに提示又は表示するために、デコードされた画像311を出力するように構成される。
【0182】
[予測]
【0183】
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってよく、エンコードされた画像データ21から受信(例えば、エントロピーデコーディングユニット304によって、例えば、解析及び/又はデコーディングによって)された区分化及び/又は予測パラメータ又はそれぞれの情報に基づいて分割又は区分化の決定及び予測を実行する。モード適用ユニット360は、再構築された画像、ブロック、又はそれぞれのサンプル(フィルタリングされた又はフィルタリングされていない)に基づいて、ブロック毎に予測(イントラ予測又はインター予測)を実行して、予測ブロック365を取得するように構成されてよい。
【0184】
ビデオスライスがイントラコーディング済み(I)スライスとしてコードされている場合、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モード及び現在の画像の以前にデコードされたブロックからのデータに基づいて、現在のビデオスライスの画像ブロックのための予測ブロック365を生成するように構成されている。ビデオ画像がインターコーディング済みの(すなわち、B又はP)スライスとしてコードされている場合、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、動きベクトル及びエントロピーデコ―ディングユニット304から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロック365を生成するように構成されている。インター予測の場合、予測ブロックは、複数の参照画像リストのうちの1つに含まれる複数の参照画像のうちの1つから生成されてよい。ビデオデコーダ30は、リスト0及びリスト1という参照フレームリストを、デフォルト構築技術を使用して、DPB330に保存された参照画像に基づいて構築してよい。同じ又は同様の技術が、スライス(例えば、ビデオスライス)に追加的又は代替的に、タイルグループ(例えばビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に適用されてもよく、又は当該実施形態より適用されてもよい。例えば、ビデオは、I、P、又はBタイルグループ及び/又はタイルを使用してコードされてよい。
【0185】
モード適用ユニット360は、動きベクトル又は関連する情報及び他のシンタックス要素を解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定するように構成され、デコードされている現在のビデオブロックのための予測ブロックを生成するために上記予測情報を使用する。例えば、モード適用ユニット360は、受信されたシンタックス要素のいくつかを使用して、ビデオスライスのビデオブロックをコードするのに使用された予測モード(例えば、イントラ予測又はインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスのための参照画像リストのうちの1又は複数に関する構築情報、スライスの各インターエンコードされたビデオブロックごとの動きベクトル、スライスの各インターコーディング済みのビデオブロックごとのインター予測ステータス、及び現在のビデオスライス内のビデオブロックをデコードするための他の情報を決定する。同じ又は同様の技術が、スライス(例えば、ビデオスライス)に追加的又は代替的に、タイルグループ(例えばビデオタイルグループ)及び/又はタイル(例えば、ビデオタイル)を使用する実施形態に適用されてもよく、又は当該実施形態より適用されてもよい。例えば、ビデオは、I、P、又はBタイルグループ及び/又はタイルを使用してコードされてよい。
【0186】
図3に示されるビデオデコーダ30の実施形態は、スライス(ビデオスライスとも称される)を使用して、画像を区分化及び/又はデコードするように構成されてよく、画像は、1又は複数のスライス(典型的には非重複)を使用して区分化又はデコードされてよく、各スライスは、1又は複数のブロック(例えば、CTU)を含んでよい。
【0187】
図3に示されるビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも称される)及び/又はタイル(ビデオタイルとも称される)を使用して、画像を区分化及び/又はデコードするように構成されてよく、画像は、1又は複数のタイルグループ(典型的には非重複)を使用して区分化又はデコードされてよく、各タイルグループは、例えば、1又は複数のブロック(例えば、CTU)若しくは1又は複数のタイルを含んでよく、各タイルは、例えば、矩形形状であってよく、1又は複数のブロック(例えば、CTU)、例えば、完全な又は分数ブロックを含んでよい。
【0188】
ビデオデコーダ30の他の変形は、エンコードされた画像データ21をデコードするのに使用され得る。例えば、デコーダ30は、ループフィルタリングユニット320を用いずに、出力ビデオストリームを生成することができる。例えば、非変換ベースのデコーダ30は、特定のブロック又はフレームのための逆変換処理ユニット312を用いずに、直接的に残差信号を逆量子化することができる。別の実装において、ビデオデコーダ30は、単一のユニットに組み合わされた逆量子化ユニット310及び逆変換処理ユニット312を有し得る。
【0189】
エンコーダ20及びデコーダ30において、現在の段階の処理結果は、さらに処理されて、その後、次の段階に出力されてよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトルの導出又はループフィルタリングの後に、クリップ又はシフトなどのさらなる演算が、補間フィルタリング、動きベクトルの導出又はループフィルタリングの処理結果に対して実行されてよい。
【0190】
さらなる演算が、現在のブロックの導出された動きベクトル(限定しないが、アフィンモードの制御点動きベクトル、アフィン、平面、ATMVPモードにおけるサブブロック動きベクトル、時間的な動きベクトルなどを含む)に適用されてよいことに留意すべきである。例えば、動きベクトルの値は、その表現ビットに従って予め定義された範囲に制限される。動きベクトルの表示ビットがbitDepthである場合、その範囲は、-2^(bitDepth-1)~2^(bitDepth-1)-1であり、ここで「^」はべき乗を意味する。例えば、bitDepthが16に等しく設定されている場合、その範囲は-32768~32767であり、bitDepthが18に等しく設定されている場合、その範囲は-131072~131071である。例えば、導出された動きベクトル(例えば、1つの8×8ブロック内の4つの4×4サブブロックのMV)の値は制限され、その結果、4つの4×4サブブロックMVの整数部分間の最大差は、例えば1画素以下など、N画素以下である。ここでは、bitDepthに従って動きベクトルを制限する2つの方法を提供する。
【0191】
方法1:以下の演算により、オーバフローMSB(最上位ビット)を除去する。
【数1】
ここで、mvxは、イメージブロック又はサブブロックの動きベクトルの水平成分であり、mvyは、イメージブロック又はサブブロックの動きベクトルの垂直成分であり、ux及びuyは中間値を示す。例えば、式(1)及び(2)の適用後、mvxの値が-32769である場合、結果として得られる値は32767である。コンピュータシステムにおいて、十進数は、2の補数として保存される。-32769の2の補数は、1,0111,1111,1111,1111(17ビット)であり、その後、MSBは破棄されるので、結果として得られる2の補数は、0111,1111,1111,1111(十進数は32767)である。これは、式(1)及び(2)を適用することによる出力と同じである。
【数2】
当該演算は、式(5)~(8)に示されるように、mvp及びmvdの合計中に適用されてよい。
【0192】
方法2:値をクリッピングすることによってオーバフローMSBを除去する。
【数3】
ここで、vxは、イメージブロック又はサブブロックの動きベクトルの水平成分であり、vyは、イメージブロック又はサブブロックの動きベクトルの垂直成分であり、x、y及びzはそれぞれ、MVクリッピングプロセスの3つの入力値に対応し、関数Clip3の定義は、以下の通りである。
【数4】
【0193】
図4は、本開示の実施形態に係るビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書に記載の開示される実施形態を実装するのに好適なものである。実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダ、又は図1Aのビデオエンコーダ20などのエンコーダであり得る。
【0194】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(又は入力ポート410)及び受信器ユニット(Rx)420と、データを処理するためのプロセッサ、論理ユニット、又は中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440及び出口ポート450(又は出力ポート450)と、データを保存するためのメモリ460とを備える。ビデオコーディングデバイス400は、光又は電気信号の出口又は入口用の、入口ポート410、受信器ユニット420、送信器ユニット440、及び出口ポート450に連結されている光/電気(OE)コンポーネント及び電気/光(EO)コンポーネントを備えてもよい。
【0195】
プロセッサ430は、ハードウェア及びソフトウェアによって実装される。プロセッサ430は、1又は複数のCPUチップ、コア(例えば、マルチコアプロセッサとしての)、FPGA、ASIC、及びDSPとして実装され得る。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、及びメモリ460と通信する。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上述した開示される実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング演算を実装、処理、準備、又は提供する。したがって、コーディングモジュール470を含むことにより、ビデオコーディングデバイス400の機能のかなりの改善が提供され、ビデオコーディングデバイス400の異なる状態への変換がもたらされる。代替的に、コーディングモジュール470は、メモリ460に保存された命令として実装され、プロセッサ430により実行される。
【0196】
メモリ460は、1又は複数のディスク、テープドライブ、及びソリッドステートドライブを備え得、オーバーフローデータストレージデバイスとして使用され、そのようなプログラムが実行のために選択された場合にプログラムを保存して、プログラムを実行中に読み取られる命令及びデータを保存し得る。メモリ460は例えば、揮発性及び/又は不揮発性であり得、リードオンリーメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、及び/又は、スタティックランダムアクセスメモリ(SRAM)であり得る。
【0197】
図5は、例示的な実施形態に係る図1Aによるソースデバイス12及びデスティネーションデバイス14のいずれか又は両方として使用されてよい装置500の簡略化されたブロック図である。
【0198】
装置500におけるプロセッサ502は、中央演算処理装置とすることができる。代替的に、プロセッサ502は、現在既存の又は今後開発される情報の操作又は処理が可能な任意の他のタイプのデバイス又は複数のデバイスとすることができる。開示の実装は、示されるような単一のプロセッサ、例えば、プロセッサ502で実施できるが、1つより多くのプロセッサを使用して、速度及び効率の利点が実現できる。
【0199】
装置500におけるメモリ504は、一実装において、リードオンリーメモリ(ROM)デバイス又はランダムアクセスメモリ(RAM)デバイスとすることができる。任意の他の好適なタイプのストレージデバイスがメモリ504として使用され得る。メモリ504は、バス512を使用してプロセッサ502によってアクセスされるコード及びデータ506を含み得る。メモリ504はさらに、オペレーティングシステム508及びアプリケーションプログラム510を含み得、アプリケーションプログラム510は、プロセッサ502が本明細書に記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、アプリケーション1~Nを含み得、アプリケーション1~Nはさらに、本明細書に記載の方法を実行するビデオコーディングアプリケーションを含む。
【0200】
装置500はまた、ディスプレイ518などの1又は複数の出力デバイスを含み得る。ディスプレイ518は、一例において、ディスプレイと、タッチ入力を感知するように動作可能なタッチセンサー素子とを組み合わせたタッチセンサー式ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に連結され得る。
【0201】
ここでは単一のバスとして示されるが、装置500のバス512は、複数のバスで構成され得る。さらに、セカンダリストレージ514は、装置500の他のコンポーネントに直接連結でき、又は、ネットワークを介してアクセスでき、メモリカードなどの単一の統合ユニット又は複数のメモリカードなどの複数のユニットを含むことができる。したがって、装置500は、多種多様な構成で実装されることができる。
【0202】
JVET-L1001において、VVC Draft3.0のドラフトテキストであるMTSは、インタースライス及びイントラスライスのシーケンスレベルで、個々で有効にされ得る。MTSがオフである場合、DCT2は、変換コアとして使用されることが想定される。しかしながら、JVET-M0303、JVET-M0140又はJVET-M0102などの従来技術においては、推論されたDST7/DCT8変換が導入されている。全てのケースにおいて、純粋なDCT2変換に切り替える可能性は存在しない。本開示は、上記の課題に対処する。
【0203】
本開示は、DCT2有効フラグが偽である場合に、シーケンスにおける全てのケースに対してDCT2変換コアのみが使用されているかどうかを推論するのに使用される追加のDCT2有効フラグを導入し、その後、シーケンスレベルMTS有効フラグがさらにシグナリングされる。DCT2有効フラグが真である場合、DCT2変換コアのみが使用されると想定される。
【0204】
追加のDCT2有効フラグをSPSにおいて導入することは、推論されたMSTツールがオンである場合に、DCT2への切り替えを可能にする。
【0205】
[7.3.2.1 シーケンスパラメータセットRBSPシンタックス]
【0206】
【表4】
【0207】
JVET-L1001において、VVC Draft3.0のドラフトテキストである複数変換選択(MTS)は、インタースライス及びイントラスライスのシーケンスレベルで、個々で有効にされ得る。MTSがオフである場合、DCT2は、変換コアとして使用されることが想定される。しかしながら、JVET-M0303、JVET-M0140又はJVET-M0102などの従来技術においては、推論されたDST7/DCT8変換が導入されている。MTSシーケンスレベルオフのケースにおいて、従来技術はDST7/DCT8を使用し、DCT2は、ブロック形状、位置、又は他の特徴に応じて適応的に適用される。しかしながら、DCT2は、エンコーダ及びデコーダの両方の設計に対して望ましい。換言すると、DCT2、推論されたDST7又はDCT8、及びMTS(RDO選択変換コア)の間の切り替え可能性は、本開示において設計される。
【0208】
本開示において、DCT2有効フラグは高レベルのシンタックスに導入される。それは、セクション1.1において言及される課題に対処するためである。高レベルのシンタックスにおける追加のDCT2有効フラグは、DCT2有効フラグが偽である場合に、シーケンスにおける全てのケースに対してDCT2変換コアのみが使用されているかどうかを推論するのに使用され、その後、シーケンスレベルMTS有効フラグがさらにシグナリングされ、MTSがシーケンスに対して有効にされたかどうかが推論される。DCT2有効フラグが真である場合、DCT2変換コアのみが使用されると想定される。
【0209】
シーケンスレベルDCT2有効フラグが無効であるケースにおいて、シーケンスレベルMTSフラグはさらに、VVC Draft3.0(JVET-L1001)の従来技術におけるようにシグナリングされる。したがって、推論されたDST7DCT8、又は、(JVET-M0303、JVET-M0140、又はJVET-M0102)などの適応型変換コアコーディングツールは、従来技術と同じく使用される。
【0210】
シーケンスレベルDCT有効フラグが有効であるケースにおいては、DCT2のみが使用されると想定される。したがって、推論されたDST7DCT8、又は、(JVET-M0303、JVET-M0140、又はJVET-M0102)などの適応型変換コアコーディングツールは、DST7/DCT8の代わりにDCT2を使用して推論されるか又は無効となるかのいずれかである。
【0211】
[本開示の第1実施形態]
【0212】
第1実施形態において、シーケンスレベルDCT2有効フラグは、以下のようにspsにおいて示されており、強調された部分は本開示によって設計されている。エンコーダは、DCT2有効フラグのインジケータをビットストリームに含み、デコーダは、DCT有効フラグのインジケータをビットストリームから解析した。
【0213】
[7.3.2.1 シーケンスパラメータセットRBSPシンタックス]
【0214】
【表5】
【0215】
1に等しいsps_dct2_enabled_flagは、変換ユニットにDCT2変換コアのみが使用されることを指定する。0に等しいsps_mts_intra_enabled_flagは、DCT2以外の他の変換コアが変換ユニットに使用可能であることを指定する。
【0216】
1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0217】
sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0218】
DCT2有効フラグはさらに、例えば、形状適応型変換選択のケース(JVET-M0303)における低レベルのシンタックスにおいて使用され、MTSフラグがシーケンスレベルにおいて無効と示される場合、推論されたDST7/DCT8は矩形ブロックの短い縁部に使用され、DST7は正方形ブロックに使用される。シーケンスレベルMTSがシーケンスに対して有効にされている場合、MTSフラグがゼロでありVTMが水平方向及び垂直方向の両方にDCT2を使用する場合に、形状適応性が適用される。MTSフラグが1であるケースでは、この後VTM変換選択処理が続く。使用される3つの変換(DCT2、DST7、及びDCT8)は全て、現在のVTMにおいて定義されるものと同一である。
【0219】
提案される方法において、DCT2有効フラグが無効と示される場合、適応型コア選択は、従来技術と同じく維持される。DCT2有効フラグが有効と示される場合、DCT2のみが使用され得る。MTS機能はオフになっていると推論される。形状適応型変換選択はDCT2を使用してのみ推論され得、この実施形態において、それは形状適応型変換選択を無効にするのと同じである。対応する低レベルシンタックスは以下の通りである。
【0220】
[8.4.4 スケーリングされた変換係数の変換プロセス]
【0221】
[8.4.4.1 一般]
【0222】
この処理への入力は、
現在の画像の左上ルマサンプルに対する現在のルマ変換ブロックの左上サンプルを指定するルマ位置(xTbY、yTbY)と、
現在の変換ブロックの幅を指定する変数nTbWと、
現在の変換ブロックの高さを指定する変数nTbHと、
現在のブロックの色成分を指定する変数cIdxと、
x=0..nTbW-1、y=0..nTbH-1である、スケーリングされた変換係数の(nTbW)×(nTbH)アレイd[x][y]とである。
【0223】
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1である、残差サンプルの(nTbW)×(nTbH)アレイr[x][y]である。
【0224】
水平変換カーネルを指定する変数trTypeHorと、垂直変換カーネルを指定する変数trTypeVerとは、mts_idx[xTbY][yTbY][cIdx]に応じて、表8‐11において導出される。
変数trAdaptHorEnabledとtrAdaptVerEnabledとは、以下のように導出される。
‐if sps_dct2_enabled_flag && CuPredMode[xTbY][yTbY] == MODE_INTRA && !(cIdx>0 && IntraPredModeC[xTbY][yTbY]>66):
trAdaptSizeMin=4
trAdaptSizeMax=cIdx == 0?16:8
trAdaptHorEnabled=nTbW>=trAdaptSizeMin && nTbW<=trAdaptSizeMax?1:0
trAdaptVerEnabled=nTbH>=trAdaptSizeMin && nTbH<=trAdaptSizeMax?1:0
‐そうでない場合:
trAdaptHorEnabled=0
trAdaptVerEnabled=0
【0225】
変数trAdaptHorとtrAdaptVerとは、以下のように導出される。
‐if sps_mts_intra_enabled_flag:
trAdaptHor=trAdaptHorEnabled && nTbW<nTbH?1:0
trAdaptVer=trAdaptVerEnabled && nTbH<nTbW?1:0
‐そうでない場合:
trAdaptHor=trAdaptHorEnabled && nTbW<=nTbH?1:0
trAdaptVer=trAdaptVerEnabled && nTbH<=nTbW?1:0
【0226】
[表8‐11‐mts_idx[x][y][cIdx]に応じたtrTypeHor及びtrTypeVerの仕様]
【0227】
【表6】
【0228】
[本開示の第2実施形態]
【0229】
第2実施形態において、シーケンスレベルDCT2有効フラグは、以下のようにspsにおいて示されており、強調された部分は本開示によって設計されている。エンコーダは、DCT2有効フラグのインジケータをビットストリームに含み、デコーダは、DCT有効フラグのインジケータをビットストリームから解析した。
【0230】
[7.3.2.1 シーケンスパラメータセットRBSPシンタックス]
【0231】
【表7】
【0232】
1に等しいsps_dct2_enabled_flagは、変換ユニットにDCT2変換コアのみが使用されることを指定する。0に等しいsps_mts_intra_enabled_flagは、DCT2外の他の変換コアが変換ユニットに使用可能であることを指定する。
【0233】
1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0234】
sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0235】
DCT2有効フラグはさらに、例えばサブブロック変換のケース(JVET-M0140)における低レベルのシンタックスに使用され、推論されたDST7/DCT8は、サブ変換ブロックの位置に応じて使用される。より具体的には、各SBT位置に対する水平及び垂直変換は、図6及び図7において指定されている。例えば、SBT-V位置0に対する水平及び垂直変換はそれぞれ、DCT‐8及びDST-7である。残差TUの1つの側が32より大きい場合、対応する変換はDCT‐2に設定される。したがって、サブブロック変換は、残差ブロックのTUタイリング、cbf、並びに水平及び垂直変換を共同で指定し、これは、ブロックの主要残差がブロックの1つの側にあるケースのシンタックスショートカットとみなされ得る。
【0236】
提案される方法において、DCT2有効フラグが無効と示される場合、サブブロック変換選択は、従来技術と同じく維持される。
【0237】
DCT2有効フラグが有効と示される場合、DCT2のみが使用され得る。MTS機能はオフになっていると推論される。サブブロック変換コアは、DCT2を使用してのみ推論され得る。対応する低レベルのシンタックスが添付されている。
【0238】
[8.4.4 スケーリングされた変換係数の変換プロセス]
【0239】
[8.4.4.1 一般]
【0240】
この処理への入力は、
現在の画像の左上ルマサンプルに対する現在のルマ変換ブロックの左上サンプルを指定するルマ位置(xTbY、yTbY)と、
現在の変換ブロックの幅を指定する変数nTbWと、
現在の変換ブロックの高さを指定する変数nTbHと、
現在のブロックの色成分を指定する変数cIdxと、
x=0..nTbW-1、y=0..nTbH-1である、スケーリングされた変換係数の(nTbW)×(nTbH)アレイd[x][y]とである。
【0241】
この処理の出力は、x=0..nTbW-1、y=0..nTbH-1である、残差サンプルの(nTbW)×(nTbH)アレイr[x][y]である。
【0242】
cu_sbt_flag[xTbY][yTbY]が1に等しい場合、水平変換カーネルを指定する変数trTypeHorと垂直変換カーネルを指定する変数trTypeVerとは、cu_sbt_horizontal_flag[xTbY][yTbY]とcu_sbt_pos_flag[xTbY][yTbY]とに応じて表において導出される。
【0243】
そうでなければ(cu_sbt_flag[xTbY][yTbY]が0に等しい)、水平変換カーネルを指定する変数trTypeHorと、垂直変換カーネルを指定する変数trTypeVerとは、mts_idx[xTbY][yTbY][cIdx]に応じて、表8‐16において導出される。
【0244】
変数nonZeroWとnonZeroHとは、以下のように導出される。
nonZeroW=Min(nTbW,32) (8‐810)
nonZeroH=Min(nTbH,32) (8‐811)
【0245】
残差サンプルの(nTbW)×(nTbH)配列rは、以下のように導出される。
1.x=0..nonZeroW-1、y=0..nonZeroH-1である、スケーリングされた変換係数d[x][y]の各(垂直の)列は、変換ブロックの高さnTbHと、スケーリングされた変換係数のゼロでない高さnonZeroHと、y=0..nonZeroH-1であるリストd[x][y]と、入力としてtrTypeVerに等しく設定された変換型変数trTypeと、を有する各列x=0..nonZeroW-1に対して項8.4.4.2において指定される1次元変換プロセスを呼び出すことによって、x=0..nonZeroW-1、y=0..nTbH-1であるe[x][y]に変換され、出力は、y=0..nTbH-1であるリストe[x][y]である。
2.x=0..nonZeroW-1、y=0..nTbH-1である、中間サンプル値g[x][y]は、以下のように導出される。
g[x][y]=Clip3(CoeffMin,CoeffMax,(e[x][y]+64)>>7) (8‐812)
3.x=0..nonZeroW-1、y=0..nTbH-1である、結果として得られるアレイg[x][y]の各(水平)行は、変換ブロックの幅nTbWと、結果として得られるアレイg[x][y]のゼロでない幅nonZeroWと、x=0..nonZeroW-1であるリストg[x][y]と、入力としてtrTypeHorに等しく設定された変換型変数trTypeと、を有する各行y=0..nTbH-1に対して項8.4.4.2において指定される1次元変換プロセスを呼び出すことによって、x=0..nTbW-1、y=0..nTbH-1であるr[x][y]に変換され、出力は、x=0..nTbW-1であるリストr[x][y]である。
【0246】
[表8‐15‐cu_sbt_horizontal_flag[x][y]及びcu_sbt_pos_flag[x][y]に応じたtrTypeHor及びtrTypeVerの仕様]
【0247】
【表8】
【0248】
[表8‐16‐mts_idx[x][y][cIdx]に応じたtrTypeHor及びtrTypeVerの仕様]
【0249】
【表9】
【0250】
[本開示の第3実施形態]
【0251】
第3実施形態において、シーケンスレベルDCT2有効フラグは、以下のようにspsにおいて示されており、強調された部分は本開示によって設計されている。エンコーダは、DCT2有効フラグのインジケータをビットストリームに含み、デコーダは、DCT有効フラグのインジケータをビットストリームから解析した。
【0252】
[7.3.2.1 シーケンスパラメータセットRBSPシンタックス]
【0253】
【表10】
【0254】
1に等しいsps_dct2_enabled_flagは、変換ユニットにDCT2変換コアのみが使用されることを指定する。0に等しいsps_mts_intra_enabled_flagは、DCT2外の他の変換コアが変換ユニットに使用可能であることを指定する。
【0255】
1に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0256】
sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在し得ることを指定する。0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの残差コーディングシンタックスに存在しないことを指定する。sps_mts_intra_enabled_flagが存在しない場合、sps_mts_intra_enabled_flagは0であると推論される。
【0257】
DCT2有効フラグはさらに、例えばサブブロック変換のケース(JVET-M0140)における低レベルのシンタックスに使用され、推論されたDST7/DCT8は、サブ変換ブロックの位置に応じて使用される。より具体的には、各SBT位置に対する水平及び垂直変換は、図6において指定されている。例えば、SBT-V位置0に対する水平及び垂直変換はそれぞれ、DCT‐8及びDST-7である。残差TUの1つの側が32より大きい場合、対応する変換はDCT‐2に設定される。したがって、サブブロック変換は、残差ブロックのTUタイリング、cbf、並びに水平及び垂直変換を共同で指定し、これは、ブロックの主要残差がブロックの1つの側にあるケースのシンタックスショートカットとみなされ得る。
【0258】
提案される方法において、DCT2有効フラグが無効と示される場合、サブブロック変換選択は、従来技術と同じく維持される。DCT2有効フラグが有効と示される場合、DCT2のみが使用され得る。MTS機能はオフになっていると推論される。サブブロック変換は、可能な推論されたMTS変換コアが利用可能でないので、オフであると推論される。
【0259】
JVET-M0140の上部における対応するシンタックス変更は、以下の通りである。
【0260】
[7.3.2.1 シーケンスパラメータセットRBSPシンタックス]
【0261】
【表11】
【0262】
本開示の実施形態は、全体のシーケンス又はスライスに対して、推論された変換ツールを用いて、純粋なDCT2変換コアに切り替える可能性を提供する切り替え可能なDCT2有効シーケンスレベル指標を導入する。DCT2は、計算が比較的に単純であり、他の変換コアと比較して、メモリ帯域幅が低いケースである。従来技術において、単純なDCT2変換を使用する可能性は、推論された変換コアによって遮断され、現在の指標によって、低いコスト/複雑性と高性能との間の切り替えの柔軟性が、エンコーダとデコーダとの両方に対して提供される。実施形態において、低レベルの変更及び高レベルの変更の可能性の両方が提供され、これは、複数の変形例を有するコードの一貫性及びコーディング性能を保証する。
【0263】
換言すると、本開示は、以下を提供する:画像のブロックをビデオコーディングする方法であって、当該ブロックの複数のサンプルからのあるサンプルに対して、インター又はイントラ画像予測から結果として得られる残差信号を取得する段階と、残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論する段階と、推論された変換コアを使用して、ブロックの変換を処理する段階とを備える、方法。
【0264】
すなわち、本開示は、DCT2有効フラグが偽である場合に、シーケンスにおける全てのケースに対してDCT2変換コアのみが使用されているかどうかを推論するのに使用される追加のDCT2有効フラグを導入し、その後、シーケンスレベルMTS有効フラグがさらにシグナリングされる。DCT2有効フラグが真である場合、DCT2変換コアのみが使用されると想定される。追加のDCT2有効フラグをSPSにおいて導入することは、推論されたMSTツールがオンである場合に、DCT2への切り替えを可能にする。
【0265】
これは、図8にさらに示される。図8において、段階1601では、ブロックを有する画像が提供されている。段階1602では、画像のブロックの複数のサンプルからのあるサンプルに対して、インター又はイントラ画像予測から結果として得られる残差信号が取得される。段階1603では、残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用が推論され、上記残差信号は段階1602において取得されたものである。段階1604では、推論された変換コアを使用してブロックの変換を処理する。
【0266】
本開示に係る方法において、そして図8に従って示されるように、DCT2の使用は、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグから推論され得る。
【0267】
本開示に係る方法において、そして図8に従って示されるように、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される。
【0268】
本開示はさらに、図9に示されるエンコーダ20を提供する。図9に示されるエンコーダ20は、取得ユニット22を備える。取得ユニット22は、インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成され得る。図9はさらに、エンコーダ20が推論ユニット24も備えることを示す。推論ユニット24は、残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成され得る。ここで、残差信号は、取得ユニット22によって取得され得る。図9に示されるエンコーダ20はさらに、処理ユニット26を備える。上記処理ユニット26は、推論された変換コアを使用してブロックの変換を処理するように構成され得る。変換コアは、推論ユニット24によって推論され得る。
【0269】
図9に示されるように、本開示に係るエンコーダ20において、推論ユニット24は、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成され得る。
【0270】
図9に従って示されるように、本開示に係るエンコーダ20において、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表され得る。
【0271】
本開示はさらに、図10に示されるデコーダ30を提供する。図10に示されるデコーダ30は、取得ユニット32を備える。取得ユニット32は、インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成され得る。図10はさらに、デコーダ30が推論ユニット34も備えることを示す。推論ユニット34は、残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成され得る。ここで、残差信号は、取得ユニット32によって取得され得る。図10に示されるデコーダ30はさらに、処理ユニット36を備える。上記処理ユニット36は、推論された変換コアを使用してブロックの変換を処理するように構成され得る。変換コアは、推論ユニット34によって推論され得る。
【0272】
図10に示されるように、本開示に係るデコーダ30において、推論ユニット34は、シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成され得る。
【0273】
図10に従って示されるように、本開示に係るデコーダ30において、シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表され得る。
【0274】
[数学演算子]
【0275】
本願において使用される数学演算子は、Cプログラミング言語において使用されるものと同様である。しかしながら、整数除算及び算術シフト演算の結果はより正確に定義され、べき乗及び実数値除算などの追加の演算が定義される。番号付け及びカウントの規定は一般に、例えば、「第1」は0番目に相当し、「第2」は1番目に相当する等、0から始まる。
【0276】
[算術演算子]
【0277】
以下の算術演算子は、以下のように定義される。
【表12】
【0278】
[論理演算子]
【0279】
以下の論理演算子が以下のように定義される。
x&&y x及びyのブール論理「and」
x||y x及びyのブール論理「or」
! ブール論理「not」
x?y:z xが真であるか又は0に等しくない場合、yの値を評価し、そうでない場合、zの値を評価する。
【0280】
[関係演算子]
【0281】
以下の関係演算子が以下のように定義される。
> より大きい
>= 以上
< より小さい
<= 以下
= = に等しい
!= に等しくない
【0282】
関係演算子が、値「na」(非該当)を割り当てられているシンタックス要素又は変数に適用される場合、値「na」は、そのシンタックス要素又は変数の区別的な値として扱われる。値「na」は、任意の他の値に等しくないとみなされる。
【0283】
[ビット単位演算子]
【0284】
以下のビット単位演算子が以下のように定義される。
& ビット単位の「and」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
| ビット単位の「or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
^ ビット単位の「排他的or」。整数項に対して演算を行う場合、整数値の2の補数表現に対して演算を行う。別の項より少ないビットを含む二進項に対して演算を行う場合、そのより短い項は、0に等しいより上位のビットを追加することによって拡張される。
x>>y yの二進数だけの、xの2の補数整数表現の算術右シフト。この関数は、yの非負整数値に関してのみ定義される。右シフトの結果として最上位ビット(MSB)にシフトされたビットは、シフト演算前のxのMSBに等しい値を有する。
x<<y yの二進数だけの、xの2の補数整数表現の算術左シフト。この関数は、yの非負整数値に関してのみ定義される。左シフトの結果として最下位ビット(LSB)にシフトされたビットは、0に等しい値を有する。
【0285】
[代入演算子]
【0286】
以下の算術演算子が以下のように定義される。
= 代入演算子
++ インクリメント、すなわち、x++は、x=x+1と同等であり、配列インデックスにおいて使用される場合、インクリメント演算の前の変数の値を評価する。
--デクリメント、すなわち、x--は、x=x-1と同等であり、配列インデックスにおいて使用される場合、デクリメント演算の前の変数の値を評価する。
+= 指定された量のインクリメント、すなわち、x+=3は、x=x+3と同等である。
x+=(-3)は、x=x+(-3)と同等である。
-= 指定された量だけデクリメント、すなわち、x-=3は、x=x-3と同等である。
x-=(-3)は、x=x-(-3)と同等である。
【0287】
[範囲表記]
【0288】
値の範囲を指定するために以下の表記が使用される。
x=y..z xはyから始まるzまで(両端を含む)の整数値を取り、x、y、及びzは整数であり、zはyより大きい。
【0289】
[数学的関数]
【0290】
以下の数学的関数が定義される。
【数5】
Asin(x) 逆三角サイン関数であり、-1.0から1.0まで(両端を含む)の範囲内にある独立変数xに対して演算を行い、出力値は、ラジアンの単位で、-π÷2からπ÷2まで(両端を含む)の範囲内にある。
Atan(x) 逆三角タンジェント関数であり、
独立変数xに対して演算を行い、出力値は、ラジアンの単位で、-π÷2からπ÷2まで(両端を含む)の範囲内にある。
【数6】
Ceil(x) xより大きい又はそれに等しい最も小さい整数。
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
【数7】
Cos(x) ラジアンの単位で独立変数xに対する演算を行う三角コサイン関数。
Floor(x) x以下の最も大きい整数。
【数8】
Ln(x) xの自然対数(底e対数であり、eは自然対数の底2.718281828...である)
Log2(x) 2を底とするxの対数
Log10(x) 10を底とするxの対数
【数9】
【数10】
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
【数11】
Sin(x) ラジアンの単位で独立変数xに対する演算を行う三角サイン関数
【数12】
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位で独立変数xに対する演算を行う三角タンジェント関数。
【0291】
[演算の優先度の順序]
【0292】
式における優先度の順位が、括弧の使用によって明示的に示されない場合、以下のルールが適用される。
-より高い優先度の演算は、より低い優先度の任意の演算の前に評価される。
-同じ優先度の演算は、左から右に順次評価される。
【0293】
以下の表は、演算の優先度を最高から最低まで指定している。表においてより高い位置は、より高い優先度を示す。
【0294】
Cプログラミング言語においても使用される演算子の場合、本明細書において使用される優先度の順序は、Cプログラミング言語において使用されるものと同じである。
【0295】
表:最高(表の一番上)から最低(表の一番下)までの演算優先度
【0296】
【表13】
【0297】
[論理演算のテキストの説明]
【0298】
テキストにおいて、論理演算のステートメントが以下の形式で数学的に説明される。
【数13】
は、以下の方式で説明され得る。
...以下の通りである/...以下が適用される:(...as follows/...the following applies:)
-条件0の場合、ステートメント0(If condition0,statement0)
-そうでなければ、条件1の場合、ステートメント1(Otherwise,if condition1,statement1)
...
そうでなければ(残りの条件に対する有益な備考)、ステートメントn(Otherwise(informative remark on remaining condition),statement n)
【0299】
テキスト中のそれぞれの「If...Otherwise,if...Otherwise,...」ステートメントは、「...as follows」又は「...the following applies」の直後に「If...」が続く形で導入される。「If...Otherwise,if...Otherwise,...」の最後の条件は、常に「Otherwise,...」である。インターリーブされた「If...Otherwise,if...Otherwise,...」ステートメントは、「Otherwise,...」で終わる「...as follows」又は「...the following applies」をマッチングすることによって識別され得る。
【0300】
テキストにおいて、論理演算のステートメントが以下の形式で数学的に説明される。
【数14】
は、以下の方式で説明され得る。
...以下の通りである/...以下が適用される:(...as follows/...the following applies:)
-以下の条件のすべてが真である場合、ステートメント0:(If all of the following conditions are true,statement0:)
-条件0a(condition 0a)
-条件0b(condition 0b)
-そうでなければ、以下の条件の1又は複数が真である場合、ステートメント1:(Otherwise,if one or more of the following conditions are true,statement1:)
-条件1a(condition 1a)
-条件1b(condition 1b)
...
そうでなければ、ステートメントn(Otherwise,statement n)
【0301】
テキストにおいて、論理演算のステートメントが以下の形式で数学的に説明される。
【数15】
は、以下の方式で説明され得る。
条件0の場合、ステートメント0(When condition0,statement0)
条件1の場合、ステートメント1(When condition1,statement1)
【0302】
本開示の実施形態を主にビデオコーディングに基づいて説明したが、本明細書において説明されたコーディングシステム10、エンコーダ20、及びデコーダ30(及び、これに対応して、システム10)の実施形態、並びに他の実施形態は、静止画像処理又はコーディング、すなわち、ビデオコーディングにおけるような任意の前の又は連続する画像から独立した個々の画像の処理又はコーディングのためにも構成され得ることに留意すべきである。一般に、画像処理コーディングが単一の画像17に限定される場合、インター予測ユニット244(エンコーダ)及び344(デコーダ)のみが利用可能ではない場合がある。ビデオエンコーダ20及びビデオデコーダ30の全ての他の機能(ツール又は技術とも称される)は、静止画像処理、例えば、残差計算204/304、変換206、量子化208、逆量子化210/310、(逆)変換212/312、区分化262/362、イントラ予測254/354、及び/又はループフィルタリング220、320、並びにエントロピーコーディング270及びエントロピーデコーディング304に等しく使用され得る。
【0303】
例えばエンコーダ20及びデコーダ30の実施形態、並びに、例えばエンコーダ20及びデコーダ30を参照して本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせにおいて実装されてよい。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体上に保存されるか、又は、通信媒体を介して1又は複数の命令若しくはコードとして送信され、ハードウェアベースの処理ユニットによって実行されてよい。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体、又は、例えば通信プロトコルに従った、コンピュータプログラムの1つの場所から別の場所への転送を容易にする任意の媒体を含む通信媒体を含んでよい。このように、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、又は、(2)信号若しくは搬送波などの通信媒体に対応してよい。データ記憶媒体は、本開示に記載された技術の実装のための命令、コード、及び/又はデータ構造を取得するために、1若しくは複数のコンピュータ又は1若しくは複数のプロセッサによってアクセスできる任意の利用可能な媒体であってよい。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
【0304】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROM若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気ストレージデバイス、フラッシュメモリ、又は、命令若しくはデータ構造の形の所望のプログラムコードを保存するのに使用でき、コンピュータによってアクセスできる、任意の他の媒体を含むことができる。また、任意の接続が、適宜コンピュータ可読媒体と称される。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)、又は、赤外線、無線、及びマイクロ波などの無線技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから命令が送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は、赤外線、無線、及びマイクロ波などの無線技術が媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時的媒体を含まず、その代わりに、非一時的な有形の記憶媒体を対象とすることが理解されるべきである。本明細書で使用されるディスク(Disk and disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フロッピーディスク、及びブルーレイディスクを含み、ここで、通常、ディスク(disk)はデータを磁気的に再現するものであり、ディスク(disc)はデータをレーザによって光学的に再現するものである。上記の組み合わせもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【0305】
命令は、1又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、又は他の等価な集積回路若しくはディスクリートロジック回路などの1又は複数のプロセッサによって実行されてよい。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれか、又は、本明細書に記載の技術の実装に好適な任意の他の構造を指してよい。加えて、いくつかの態様では、本明細書に記載の機能は、エンコーディング及びデコーディングのために構成されている専用ハードウェア及び/又はソフトウェアモジュール内に提供されるか、又は、組み合わされたコーデックに組み込まれてよい。また、本技術は、1若しくは複数の回路又はロジック要素において完全に実装され得る。
【0306】
本開示の技術は、無線ハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様なデバイス又は装置において実装されてよい。様々なコンポーネント、モジュール、又はユニットが、開示された技術を実行するように構成されているデバイスの機能的態様を強調するように本開示において記載されているが、異なるハードウェアユニットによる実現は必ずしも要求されない。むしろ、上述したように、様々なユニットは、コーデックハードウェアユニットにして組み合わされてもよく、又は、上述したように、1又は複数のプロセッサを含む相互運用ハードウェアユニットの集合によって、好適なソフトウェア及び/又はファームウェアと連動して提供されてもよい。
[他の考えられる項目]
[項目1]
画像のブロックをビデオコーディングする方法であって、
インター又はイントラ画像予測から結果として得られる残差信号を取得する段階と、
上記残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論する段階と、
推論された上記変換コアを使用して、上記ブロックの上記変換を処理する段階と
を備える、方法。
[項目2]
DCT2の使用は、上記シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグから推論される、項目1に記載の方法。
[項目3]
上記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、項目2に記載の方法。
[項目4]
上記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、
【表14】
sps_dct2_enabled_flagは上記シーケンスレベルDCT2有効フラグを表す、項目2又は3に記載の方法。
[項目5]
1に等しい上記sps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、
0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、
上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目4に記載の方法。
[項目6]
上記sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目4又は5に記載の方法。
[項目7]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、項目2から6のいずれか一項に記載の方法。
[項目8]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、項目2から7のいずれか一項に記載の方法。
[項目9]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2が水平方向変換並びに垂直方向変換の両方に使用されることを指定する、項目2から8のいずれか一項に記載の方法。
[項目10]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、項目2から9のいずれか一項に記載の方法。
[項目11]
残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換コアはDCT2に設定される、項目10に記載の方法。
[項目12]
1に等しい上記シーケンスレベルDCT2有効フラグが、上記DCT2変換コアが変換にのみ使用されることを指定する場合、上記サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される、項目2から11のいずれか一項に記載の方法。
[項目13]
0に等しい上記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが上記変換に使用されることを指定する、項目2から10のいずれか一項に記載の方法。
[項目14]
上記他の変換コアは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8を備える、項目13に記載の方法。
[項目15]
0に等しい上記シーケンスレベルDCT2有効フラグは、
それが変換にDST7又はDCT8のうちの少なくとも1つを使用して推論されることを指定する、項目13又は14に記載の方法。
[項目16]
上記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、項目13から15のいずれか一項に記載の方法。
[項目17]
上記sps_mts_intra_enabled_flagが存在する場合、
上記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの上記残差コーディングシンタックスに存在することが指定され、
上記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことが指定され、
上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目16に記載の方法。
[項目18]
項目1から17のいずれか一項に記載の方法を実行するための処理回路を備える、エンコーダ(20)。
[項目19]
項目1から17のいずれか一項に記載の方法を実行するための処理回路を備える、デコーダ(30)。
[項目20]
インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
上記残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成された推論ユニットと、
推論された上記変換コアを使用して、上記ブロックの上記変換を処理するように構成された処理ユニットと
を備えるデコーダ(20)。
[項目21]
上記推論ユニットは、上記シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成される、項目20に記載のデコーダ。
[項目22]
上記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、項目21に記載のデコーダ。
[項目23]
上記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、
【表15】
sps_dct2_enabled_flagは上記シーケンスレベルDCT2有効フラグを表す、項目21又は22に記載のデコーダ。
[項目24]
1に等しい上記sps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目21に記載のデコーダ。
[項目25]
上記sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、
0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、
上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目21又は22に記載のデコーダ。
[項目26]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、項目21から25のいずれか一項に記載のデコーダ。
[項目27]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、項目21から26のいずれか一項に記載のデコーダ。
[項目28]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2が水平並びに垂直方向変換の両方に使用されることを指定する、項目21から27のいずれか一項に記載のデコーダ。
[項目29]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、項目21から28のいずれか一項に記載のデコーダ。
[項目30]
残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換はDCT2に設定される、項目29に記載のデコーダ。
[項目31]
1に等しい上記シーケンスレベルDCT2有効フラグが、上記DCT2変換コアが変換にのみ使用されることを指定する場合、上記サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される、項目21から30のいずれか一項に記載のデコーダ。
[項目32]
0に等しい上記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが上記変換に使用されることを指定する、項目21から29のいずれか一項に記載のデコーダ。
[項目33]
上記推論ユニットは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8、を変換に使用して推論するように構成される、項目32に記載のデコーダ。
[項目34]
0に等しい上記シーケンスレベルDCT2有効フラグは、
それがDST7/DCT8を変換にのみ使用して推論されることを指定する、項目32又は33に記載のデコーダ。
[項目35]
上記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、項目32から34のいずれか一項に記載のデコーダ。
[項目36]
上記sps_mts_intra_enabled_flagが存在する場合、
上記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの上記残差コーディングシンタックスに存在することが指定され、
上記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことが指定され、
上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目35に記載のデコーダ。
[項目37]
インター又はイントラ画像予測から結果として得られる残差信号を取得するように構成された取得ユニットと、
上記残差信号のシーケンスに対する離散コサイン変換タイプ2、DCT2、変換コアの使用を推論するように構成された推論ユニットと、
推論された上記変換コアを使用して、上記ブロックの上記変換を処理するように構成された処理ユニットと
を備えるエンコーダ(20)。
[項目38]
上記推論ユニットは、上記シーケンスパラメータセット、SPSにおけるシーケンスレベルDCT2有効フラグからDCT2の使用を推論するように構成される、項目37に記載のエンコーダ。
[項目39]
上記シーケンスレベルDCT2有効フラグは、sps_dct2_enabled_flagとして表される、項目38に記載のエンコーダ。
[項目40]
上記シーケンスレベルDCT2有効フラグは、以下のようにSPSレベルシンタックスに含まれ、
【表16】
sps_dct2_enabled_flagは上記シーケンスレベルDCT2有効フラグを表す、項目38又は39に記載のエンコーダ。
[項目41]
1に等しい上記sps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_intra_enabled_flagは、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目38に記載のエンコーダ。
[項目42]
上記sps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在し得ることを指定し、0に等しいsps_mts_inter_enabled_flagは、tu_mts_flagがインターコーディングユニットの上記残差コーディングシンタックスに存在しないことを指定し、上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目38又は39に記載のエンコーダ。
[項目43]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換に使用されることを指定する、項目38から42のいずれか一項に記載のエンコーダ。
[項目44]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2変換コアが変換にのみ使用されることを指定する、項目38から43のいずれか一項に記載のエンコーダ。
[項目45]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2が形状適応型変換選択において水平並びに垂直方向の両方に使用されることを指定する、項目38から44のいずれか一項に記載のエンコーダ。
[項目46]
1に等しい上記シーケンスレベルDCT2有効フラグは、DCT2がサブブロック変換に使用されることを指定する、項目38から45のいずれか一項に記載のエンコーダ。
[項目47]
残差変換ユニット、tuの1つの側が32より大きい場合、対応する変換はDCT2に設定される、項目46に記載のエンコーダ。
[項目48]
1に等しい上記シーケンスレベルDCT2有効フラグが、上記DCT2変換コアが変換にのみ使用されることを指定する場合、上記サブブロック変換並びに複数変換選択、MTS、変換の両方がオフであると推論される、項目38から47のいずれか一項に記載のエンコーダ。
[項目49]
0に等しい上記シーケンスレベルDCT2有効フラグは、DCT2以外の他の変換コアが上記変換に使用されることを指定する、項目38から46のいずれか一項に記載のエンコーダ。
[項目50]
上記推論ユニットは、離散サイン変換タイプ7、DST7及び/又は離散コサイン変換タイプ8、DCT8、を変換に使用して推論するように構成される、項目49に記載のエンコーダ。
[項目51]
0に等しい上記シーケンスレベルDCT2有効フラグは、
それがDST7/DCT8を変換にのみ使用して推論されることを指定する、項目49又は50に記載のエンコーダ。
[項目52]
上記シーケンスレベルDCT2有効フラグが0に等しい場合、シーケンスパラメータセットに対する複数変換選択がフラグを介して有効にされたかどうかが決定される、項目49から51のいずれか一項に記載のエンコーダ。
[項目53]
上記sps_mts_intra_enabled_flagが存在する場合、
上記sps_mts_intra_enabled_flagが1に等しい場合、tu_mts_flagとして表される変換ユニット、TU、複数変換選択、MTSフラグが、イントラコーディングユニットの上記残差コーディングシンタックスに存在することが指定され、
上記sps_mts_intra_enabled_flagが0に等しい場合、tu_mts_flagがイントラコーディングユニットの上記残差コーディングシンタックスに存在しないことが指定され、
上記sps_mts_intra_enabled_flagが存在しない場合、上記sps_mts_intra_enabled_flagは0であると推論される、項目52に記載のエンコーダ。
[項目54]
項目1から17のいずれか一項に記載の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
[項目55]
デコーダであって、
1又は複数のプロセッサと、
上記1又は複数のプロセッサに連結され、上記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、上記プログラミングは、上記1又は複数のプロセッサにより実行される場合、項目1から17のいずれか一項に記載の方法を実行するように上記デコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるデコーダ。
[項目56]
エンコーダであって、
1又は複数のプロセッサと、
上記1又は複数のプロセッサに連結され、上記1又は複数のプロセッサによる実行のためのプログラミングを保存する非一時的コンピュータ可読記憶媒体であって、上記プログラミングは、上記1又は複数のプロセッサにより実行される場合、項目1から17のいずれか一項に記載の方法を実行するように上記エンコーダを構成する、非一時的コンピュータ可読記憶媒体と
を備えるエンコーダ。
[項目57]
プロセッサ上で実行される場合、上記プロセッサに、項目1から17のいずれか一項に記載の方法を実行させる命令を含むプログラムを保存するコンピュータ可読非一時的媒体。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10