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

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

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

特開2023-103292エンコーダ、デコーダ、および対応するイントラ予測方法
<>
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図1A
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図1B
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図2
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図3
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図4
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図5
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図6
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図7
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図8
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図9
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図10
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図11
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図12
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図13
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図14
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図15
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図16
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図17
  • 特開-エンコーダ、デコーダ、および対応するイントラ予測方法 図18
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023103292
(43)【公開日】2023-07-26
(54)【発明の名称】エンコーダ、デコーダ、および対応するイントラ予測方法
(51)【国際特許分類】
   H04N 19/11 20140101AFI20230719BHJP
   H04N 19/157 20140101ALI20230719BHJP
   H04N 19/176 20140101ALI20230719BHJP
   H04N 19/186 20140101ALI20230719BHJP
   H04N 19/593 20140101ALI20230719BHJP
   H04N 19/70 20140101ALI20230719BHJP
【FI】
H04N19/11
H04N19/157
H04N19/176
H04N19/186
H04N19/593
H04N19/70
【審査請求】有
【請求項の数】16
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023072759
(22)【出願日】2023-04-26
(62)【分割の表示】P 2021544153の分割
【原出願日】2020-04-27
(31)【優先権主張番号】62/839,670
(32)【優先日】2019-04-27
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、ビャオ
(72)【発明者】
【氏名】エセンリク、セミ
(72)【発明者】
【氏名】コトラ、アナンド メハー
(72)【発明者】
【氏名】ガオ、ハン
(72)【発明者】
【氏名】チェン、ジアンレ
(57)【要約】      (修正有)
【課題】行列ベースのイントラ予測(MIP)含むイントラ予測のための方法、エンコーダ、デコーダ及びプログラムを提供する。
【解決手段】デコーディングデバイスによって実装されるコーディング方法であって、現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階を備える。現在のブロックは、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、現在のブロックと隣り合う隣接ブロックは、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードを使用して予測される。方法はまた、デフォルト値に従って現在のブロックのイントラ予測モードの値を取得する段階を備える。
【選択図】図17
【特許請求の範囲】
【請求項1】
デコーディングデバイスによって実装されるコーディング方法であって、
ビットストリームを解析し、現在のブロックのルマ成分について行列ベースのイントラ予測(MIP)指示情報の値を取得する段階と、
前記現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックと隣り合う隣接ブロックが、前記現在のブロックの候補イントラ予測モードの前記値を導出するために使用され、MIPモードを使用して予測される場合に、前記現在のブロックが前記MIP指示情報に基づくMIPモードではないイントラ予測モードを使用して予測される、段階と、
前記デフォルト値に従って前記現在のブロックの前記イントラ予測モードの値を取得する段階と、
前記現在のブロックの前記イントラ予測モードを使用して予測ブロックを生成する段階と、
を備える方法。
【請求項2】
前記デフォルト値が非角度イントラモードに対応する
請求項1に記載の方法。
【請求項3】
前記デフォルト値が0または1であり、0の値は平面モードを示し、1の値はDCモードを示す
請求項1または2に記載の方法。
【請求項4】
前記MIP指示情報が、フラグintra_mip_flagによって示される
請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記現在のブロックの候補イントラ予測モードの前記値は、前記隣接ブロックのルマ成分のイントラ予測モードの値である
請求項1から4のいずれか一項に記載の方法。
【請求項6】
請求項1から5のいずれか一項に記載の方法を実施するための処理回路を備えるデコーダ。
【請求項7】
エンコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックと隣り合う隣接ブロックが前記現在のブロックの候補イントラ予測モードの前記値を導出するために使用され、行列ベースのイントラ予測(MIP)モードを使用して予測される場合に、前記現在のブロックが前記現在のブロックのルマ成分についてMIP指示情報に基づくMIPモードではないイントラ予測モードを使用して予測される、段階と、
前記現在のブロックの前記イントラ予測モードを使用して予測ブロックを生成する段階と、
前記デフォルト値に従う前記現在のブロックの前記イントラ予測モードの値および前記MIP指示情報をビットストリームにエンコードする段階と、
を備える方法。
【請求項8】
前記デフォルト値が、非角度イントラモードに対応する
請求項7に記載の方法。
【請求項9】
前記デフォルト値が0または1であり、0の値は平面モードを示し、1の値はDCモードを示す
請求項7または8に記載の方法。
【請求項10】
前記MIP指示情報が、フラグintra_mip_flagによって示される
請求項7から9のいずれか一項に記載の方法。
【請求項11】
前記現在のブロックの候補イントラ予測モードの前記値は、前記隣接ブロックのルマ成分のイントラ予測モードの値である
請求項7から10のいずれか一項に記載の方法。
【請求項12】
請求項7から11のいずれか一項に記載の方法を実施するための処理回路を備えるエンコーダ。
【請求項13】
デコーダであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに連結され、前記1つまたは複数のプロセッサによる実行のための命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令は、前記1つまたは複数のプロセッサによって実行されると、請求項1から5のいずれか一項に記載の方法を実施するように前記デコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を備えるデコーダ。
【請求項14】
エンコーダであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに連結され、前記1つまたは複数のプロセッサによる実行のための命令を格納する非一時的コンピュータ可読記憶媒体であって、前記命令は、前記1つまたは複数のプロセッサによって実行されると、請求項7から11のいずれか一項に記載の方法を実施するように前記エンコーダを構成する、非一時的コンピュータ可読記憶媒体と、
を備えるエンコーダ。
【請求項15】
請求項1から5のいずれか一項に記載の方法をコンピュータに実行させるプログラム。
【請求項16】
請求項7から11のいずれか一項に記載の方法をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本願の実施形態は、一般に、画像処理の分野、より具体的にはイントラ予測に関する。
【背景技術】
【0002】
ビデオコーディング(ビデオエンコーディングおよびデコーディング)は、例えば、放送デジタルTV、インターネットおよびモバイルネットワークを介したビデオ送信、またはビデオチャット、ビデオ会議、DVDおよびブルーレイディスク、ビデオコンテンツの取得および編集システム、セキュリティアプリケーションのカムコーダーなどのリアルタイムの会話型アプリケーションといった、広範なデジタルビデオアプリケーションで使用される。
【0003】
比較的短いビデオを描画するのであっても、必要とされるビデオデータの量は、かなりのものであり得、その結果、限定的な帯域幅容量を有する通信ネットワークを介してデータがストリームされるかまたは別様に通信されることになる場合に困難が生じる場合がある。したがって、ビデオデータは一般に、現代の遠隔通信ネットワークを介して通信される前に圧縮される。ビデオのサイズは、メモリリソースが限定的である場合があるので、ビデオがストレージデバイス上に保存される場合にも問題となり得る。ビデオ圧縮デバイスは、しばしば、ソースにおけるソフトウェアおよび/またはハードウェアを使用して、送信または保存の前にビデオデータをコードし、それによりデジタルビデオイメージを表現するのに必要なデータの量を低減させる。その後、圧縮データは、デスティネーションにおいて、ビデオデータをデコードするビデオ解凍デバイスによって受信される。限定的なネットワークリソースおよび増大し続ける高ビデオ品質の需要に鑑みて、画像品質をほとんどまたは全く犠牲にせずに圧縮比を改善する、改善された圧縮および解凍の技法が望まれている。
【発明の概要】
【0004】
本願の実施形態は、独立請求項に従ったエンコーディングおよびデコーディングのための装置および方法を提供する。
【0005】
前述および他の目的が、独立請求項の主題によって実現される。さらなる実装形式が、従属請求項、明細書、および図面から明らかになる。
【0006】
本発明の第1の態様によれば、図17に示されるように、デコーディングデバイスによって実装されるコーディング方法が開示され、本方法は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定する段階(1701)と、
デフォルト値に従って現在のブロックのMIPモードの値を取得する段階(1702)と、を含む。
【0007】
一実装形態では、デフォルト値は負の値である。
【0008】
一実装形態では、デフォルト値は-1である。
【0009】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0010】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0011】
本発明の第2の態様によれば、デコーディングデバイスによって実装されるコーディング方法が開示され、本方法は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードを使用して予測される、設定する段階と、
デフォルト値に従って現在のブロックのイントラ予測モードの値を取得する段階と、含む。
【0012】
一実装形態では、デフォルト値は、非角度イントラモードに対応する。
【0013】
一実装形態では、デフォルト値は0または1であり、0の値は平面モードを示し、1の値はDCモードを示す。
【0014】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0015】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0016】
本発明の第3の態様によれば、デコーディングデバイスによって実装されるコーディング方法が開示され、本方法は、
現在のブロックのビットストリームを取得する段階と、
ビットストリームに従って現在のブロックについて行列ベースのイントラ予測(MIP)指示情報の値を取得する段階と、
現在のブロックに対してクロマモード導出プロセスを実行する段階と、を含み、
現在のブロックの対応するルマモードが平面モードに設定され、MIP指示情報の値は、現在のブロックが行列ベースのイントラ予測を使用して予測されたことを示す。
【0017】
本発明の第4の態様によれば、上記の方法の実施形態および実装形態のいずれか1つを実施するための処理回路を含むデコーダ(30)が開示される。
【0018】
本発明の第5の態様によれば、エンコーディングデバイスによって実装されるコーディング方法が開示され、本方法は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定する段階と、
デフォルト値に従って現在のブロックのMIPモードの値をエンコードする段階と、を含む。
【0019】
一実装形態では、デフォルト値は負の値である。
【0020】
一実装形態では、デフォルト値は-1である。
【0021】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0022】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0023】
本発明の第6の態様によれば、エンコーディングデバイスによって実装されるコーディング方法が開示され、本方法は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードを使用して予測される、設定する段階と、
デフォルト値に従って現在のブロックのイントラ予測モードの値をエンコードする段階と、含む。
【0024】
一実装形態では、デフォルト値は非角度イントラモードに対応する。
【0025】
一実装形態では、デフォルト値は0または1であり、0の値は平面モードを示し、1の値はDCモードを示す。
【0026】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0027】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0028】
本発明の第7の態様によれば、上記の方法の実施形態および実装形態のいずれか1つを実施するための処理回路を含むエンコーダが開示される。
【0029】
本発明の第8の態様によれば、上記の方法の実施形態および実装形態のうちのいずれか1つを実行するためのプログラムコードを含むコンピュータプログラム製品が開示される。
【0030】
本発明の第9の態様によれば、デコーダが開示され、デコーダは、1つまたは複数のプロセッサと、
プロセッサに連結され、プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、プログラミングは、プロセッサによって実行されると、上記の方法の実施形態および実装形態のいずれか1つを実施するようにデコーダを構成する、非一時的可読記憶媒体と、を含む。
【0031】
本発明の第10の態様によれば、エンコーダが開示され、エンコーダは、1つまたは複数のプロセッサと、
プロセッサに連結され、プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、プログラミングは、プロセッサによって実行されると、上記の方法の実施形態および実装形態のいずれか1つを実施するようにエンコーダを構成する、非一時的可読記憶媒体と、を含む。
【0032】
本発明の第11の態様によれば、複数のシンタックス要素を含むことによる、ビデオ信号のためのエンコード済みのビットストリームが開示され、複数のシンタックス要素は、前述の実施形態および実装形態のいずれか1つに従って条件付きでシグナリングされる。
【0033】
本発明の第12の態様によれば、イメージデコーディングデバイスによってデコードされるエンコード済みのビットストリームを含む非一時的記録媒体が開示され、ビットストリームが、ビデオ信号またはイメージ信号のフレームを複数のブロックに分割することにより生成され、複数のシンタックス要素を含み、複数のシンタックス要素が、前述の実施形態および実装形態のいずれか1つに従ってコーディングされる。
【0034】
本発明の第13の態様によれば、図18に示されるように、装置が開示され、装置は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定するように構成された設定モジュールであって、現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定モジュール1810と、
デフォルト値に従って現在のブロックのMIPモードの値を取得するように構成された取得モジュールと、を含む。
【0035】
一実装形態では、デフォルト値は負の値である。
【0036】
一実装形態では、デフォルト値は-1である。
【0037】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0038】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0039】
本発明の第14の態様によれば、装置が開示され、装置は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定するように構成された設定モジュールであって、現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードを使用して予測される、設定モジュールと、
デフォルト値に従って現在のブロックのイントラ予測モードの値を取得するように構成された取得モジュールと、含む。
【0040】
一実装形態では、デフォルト値は、非角度イントラモードに対応する。
【0041】
一実装形態では、デフォルト値は0または1であり、0の値は平面モードを示し、1の値はDCモードを示す。
【0042】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0043】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0044】
本発明の第15の態様によれば、装置が開示され、装置は、
現在のブロックのビットストリームを取得し、かつ、
ビットストリームに従って現在のブロックについて行列ベースのイントラ予測(MIP)指示情報の値を取得するように構成された取得モジュールと、
現在のブロックに対してクロマモード導出プロセスを実行するように構成された処理モジュールと、を含み、
現在のブロックの対応するルマモードが平面モードに設定され、MIP指示情報の値は、現在のブロックが行列ベースのイントラ予測を使用して予測されたことを示す。
【0045】
本発明の第16の態様によれば、装置が開示され、装置は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定するように構成された設定モジュールであって、現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定モジュールと、
デフォルト値に従って現在のブロックのMIPモードの値をエンコードするように構成されたエンコーディングモジュールと、を含む。
【0046】
一実装形態では、デフォルト値は負の値である。
【0047】
一実装形態では、デフォルト値は-1である。
【0048】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0049】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0050】
本発明の第17の態様によれば、装置が開示され、装置は、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定するように構成された設定モジュールであって、現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、現在のブロックと隣り合う隣接ブロックが、現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードを使用して予測される、設定モジュールと、
デフォルト値に従って現在のブロックのイントラ予測モードの値をエンコードするように構成されたエンコーディングモジュールと、含む。
【0051】
一実装形態では、デフォルト値は非角度イントラモードに対応する。
【0052】
一実装形態では、デフォルト値は0または1であり、0の値は平面モードを示し、1の値はDCモードを示す。
【0053】
一実装形態では、現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される。
【0054】
一実装形態では、MIP指示情報は、フラグintra_mip_flagによって示される。
【0055】
本発明による方法は、本発明による装置によって実行され得る。本発明による方法のさらなる特徴および実装形式は、本発明による装置の特徴および実装形式に対応する。
【0056】
1つまたは複数の実施形態は、添付の図面および以下の説明に記載されている。他の特徴、目的、および利点が、説明、図面、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0057】
以下において、本発明の実施形態は、添付の図および図面を参照してより詳細に説明される。
【0058】
図1A】本発明の実施形態を実装するように構成されたビデオコーディングシステムの一例を示すブロック図である。
図1B】本発明の実施形態を実装するように構成されたビデオコーディングシステムの別の例を示すブロック図である。
図2】本発明の実施形態を実装するように構成されたビデオエンコーダの一例を示すブロック図である。
図3】本発明の実施形態を実装するように構成されたビデオデコーダの例示的な構造を示すブロック図である。
図4】エンコーディング装置またはデコーディング装置の一例を示すブロック図である。
図5】エンコーディング装置またはデコーディング装置の別の例を示すブロック図である。
図6】4×4ブロックの場合のMIPモード行列乗算の一例を示すブロック図である。
図7】8×8ブロックの場合のMIPモード行列乗算の一例を示すブロック図である。
図8】8×4ブロックの場合のMIPモード行列乗算の一例を示すブロック図である。
図9】16×16ブロックの場合のMIPモード行列乗算の一例を示すブロック図である。
図10】例示的な二次変換プロセスを示すブロック図である。
図11】エンコーディングおよびデコーディング装置の例示的な二次変換コア乗算プロセスを示すブロック図である。
図12】16×64から16×48への例示的な二次変換コア次元削減を示すブロック図である。
図13】隣接ブロックの位置に基づく例示的なMIP MPM再構成を示すブロック図である。
図14】隣接ブロックの位置に基づく別の例示的なMIP MPM再構成を示すブロック図である。
図15】コンテンツ配信サービスを実現するコンテンツ供給システム3100の例示的な構造を示すブロック図である。
図16】端末デバイスの一例の構造を示すブロック図である。
図17】ブロックのMIPモードの値を取得する段階を指す一実施形態を示すフローチャートである。
図18】ブロックのMIPモードの値を取得するために使用される装置を指す一実施形態を示すブロック図である。
【0059】
以下、別途明示的に指定されていない限り、同一の参照符号は、同一または少なくとも機能的に同等の機能を指す。
【発明を実施するための形態】
【0060】
以下の説明では、本開示の一部をなし、本発明の実施形態の具体的態様または本発明の実施形態が使用され得る具体的態様を例示として示す、添付図面が参照される。本発明の実施形態は他の態様で使用されてもよく、図に示されない構造的または論理的変更を含んでもよいことが理解される。したがって、以下の詳細な説明は、限定する意味で解釈されず、本発明の範囲は、添付の特許請求の範囲によって規定される。
【0061】
例えば、説明された方法に関連する開示は、方法を実行するように構成されている対応するデバイスまたはシステムにも当てはまり得、逆もまた同様であることが理解される。例えば、1つまたは複数の特定の方法の段階が説明されている場合、対応するデバイスは、記載された1つまたは複数の方法の段階を実行するために1つまたは複数のユニット、例えば機能ユニットを含むことができ(例えば、1つまたは複数の段階を実行する1つのユニット、またはそれぞれが複数の段階の1つまたは複数を実行する複数のユニット)、そのような1つまたは複数のユニットが図に明示的に説明または図示されていない場合であっても同様である。他方、例えば、特定の装置が1つまたは複数のユニット、例えば機能ユニットに基づいて説明される場合、対応する方法は、1つまたは複数のユニットの機能を実行するための1つの段階を含み得(例えば、1つまたは複数のユニットの機能を実行する1つの段階、または複数のユニットの1つまたは複数の機能をそれぞれ実行する複数の段階)、そのような1つまたは複数の段階が図に明示的に説明または図示されていない場合であっても同様である。さらに、別途具体的に断りのない限り、本明細書で説明する様々な例示的な実施形態および/または態様の特徴を互いに組み合わせることができることが理解される。
【0062】
ビデオコーディングは典型的には、ビデオまたはビデオシーケンスを形成する一連の画像の処理を指す。画像という用語の代わりに、「フレーム」または「イメージ」という用語が、ビデオコーディングの分野での同義語として使用されてもよい。ビデオコーディング(または一般にコーディング)は、ビデオエンコーディングおよびビデオデコーディングの2つの部分を含む。ビデオエンコーディングは、ソース側で実行され、典型的には、(より効率的な保存および/または送信のために)ビデオ画像を表現するために要求されるデータ量を低減させるように、元のビデオ画像を処理(例えば、圧縮による)することを含む。ビデオデコーディングは、デスティネーション側で実行され、典型的には、ビデオ画像を再構成するように、エンコーダと比較して逆の処理を含む。ビデオ画像(または一般に画像)の「コーディング」に言及する実施形態は、ビデオ画像またはそれぞれのビデオシーケンスの「エンコーディング」または「デコーディング」に関すると理解されるものとする。エンコーディング部分とデコーディング部分との組み合わせは、コーデック(コーディングおよびデコーディング)とも称される。
【0063】
無損失ビデオコーディングの場合、元のビデオ画像を再構成でき、すなわち、再構成されたビデオ画像は元のビデオ画像と同じ品質である(保存中または送信中に伝送損失またはその他のデータ損失がないと仮定)。不可逆ビデオコーディングの場合、ビデオ画像を表現するデータ量を低減するために、例えば量子化によるさらなる圧縮が実行されるが、これはデコーダにおいて完全には再構成できない、すなわち、再構成されたビデオ画像の品質は、元のビデオ画像の品質に比較して低下または劣化する。
【0064】
いくつかのビデオコーディング規格は、「不可逆ハイブリッドビデオコーデック」のグループに属する(すなわち、サンプル領域における空間的および時間的予測と、変換領域における量子化を適用するための2D変換コーディングとを組み合わせる)。ビデオシーケンスの各画像は、典型的には、非重複ブロックのセットへと区分化され、コーディングは、典型的には、ブロックレベルで実行される。換言すれば、エンコーダにおいて、ビデオは、例えば、空間的(画像内)予測および/または時間的(画像間)予測を使用して予測ブロックを生成し、現在のブロック(現在処理されている/処理されることになるブロック)から予測ブロックを減算して残差ブロックを取得し、残差ブロックを変換するとともに変換領域における残差ブロックを量子化して、送信されることになるデータ量を低減(圧縮)することによって、典型的にはブロック(ビデオブロック)レベルで処理される、すなわちエンコードされ、一方で、デコーダにおいて、現在のブロックを表現のために再構成するために、エンコーダと比較して逆の処理がエンコードまたは圧縮されたブロックに適用される。さらに、エンコーダがデコーダの処理ループを繰り返すことにより、後続のブロックの処理のために、すなわちコーディングのために、両方が同一の予測(例えば、イントラおよびインター予測)および/または再構成物を生成することになる。
【0065】
以下のビデオコーディングシステム10の実施形態では、ビデオエンコーダ20およびビデオデコーダ30が、図1A図3に基づいて説明される。
【0066】
図1Aは、本願の技法を使用し得る例示的なコーディングシステム10、例えばビデオコーディングシステム10(または略してコーディングシステム10)を示す概略ブロック図である。ビデオコーディングシステム10のビデオエンコーダ20(または略してエンコーダ20)およびビデオデコーダ30(または略してデコーダ30)は、本願において説明される様々な例に従って技法を実行するように構成され得るデバイスの例を表す。
【0067】
図1Aに示すように、コーディングシステム10は、エンコード済みの画像データ21を、例えば、このエンコード済みの画像データ13をデコードするためにデスティネーションデバイス14に提供するように構成されているソースデバイス12を備える。
【0068】
ソースデバイス12は、エンコーダ20を備え、加えて、すなわち任意選択で、画像ソース16と、プリプロセッサ(または前処理ユニット)18と、例えば画像プリプロセッサ18と、通信インタフェースまたは通信ユニット22とを備えてよい。
【0069】
画像ソース16は、任意の種類の画像捕捉デバイス、例えば、現実世界の画像を捕捉するカメラ、および/または、任意の種類の画像生成デバイス、例えば、コンピュータアニメーション化画像を生成するコンピュータグラフィックプロセッサ、または、現実世界の画像、コンピュータ生成画像(例えば、スクリーンコンテンツ、仮想現実(VR)画像)、および/またはそれらの任意の組み合わせ(例えば、拡張現実(AR)画像)を取得および/または提供する任意の種類の他のデバイスを含むかまたはそれらのデバイスであってよい。画像ソースは、上述の画像のいずれかを保存する任意の種類のメモリまたはストレージであってよい。
【0070】
プリプロセッサ18および前処理ユニット18によって実行される処理と区別するように、画像または画像データ17は、生画像または生画像データ17とも称され得る。
【0071】
プリプロセッサ18は、(生)画像データ17を受信するとともに、画像データ17に対して前処理を実行して、前処理済みの画像19または前処理済みの画像データ19を取得するように構成されている。プリプロセッサ18によって実行される前処理は、例えば、トリミング、カラーフォーマット変換(例えば、RGBからYCbCr)、色補正、またはノイズ除去を含んでよい。前処理ユニット18は任意選択のコンポーネントでもよいことが理解され得る。
【0072】
ビデオエンコーダ20は、前処理済みの画像データ19を受信するとともに、エンコード済みの画像データ21を提供するように構成されている(さらなる詳細は、例えば図2に基づいて下記で説明される)。
【0073】
ソースデバイス12の通信インタフェース22は、通信チャネル13を介して、エンコード済みの画像データ21を受信するとともに、エンコード済みの画像データ21(またはその任意のさらなる処理バージョン)を、保存または直接の再構成のために、別のデバイス、例えばデスティネーションデバイス14または任意の他のデバイスに送信するよう構成されてよい。
【0074】
デスティネーションデバイス14は、デコーダ30(例えばビデオデコーダ30)を備え、加えて、すなわち任意選択で、通信インタフェースまたは通信ユニット28と、ポストプロセッサ32(または後処理ユニット32)と、ディスプレイデバイス34とを備えてよい。
【0075】
デスティネーションデバイス14の通信インタフェース28は、エンコード済みの画像データ21(またはその任意のさらなる処理バージョン)を、例えばソースデバイス12から直接または任意の他のソース、例えばストレージデバイス、例えばエンコード済みの画像データストレージデバイスから受信するとともに、エンコード済みの画像データ21をデコーダ30に提供するように構成されている。
【0076】
通信インタフェース22および通信インタフェース28は、ソースデバイス12とデスティネーションデバイス14との間で、直接的な通信リンク、例えば、直接的な有線もしくは無線接続を介して、または、任意の種類のネットワーク、例えば、有線もしくは無線ネットワークもしくはそれらの任意の組み合わせ、もしくは、任意の種類のプライベートおよびパブリックネットワークもしくはそれらの任意の種類の組み合わせを介して、エンコード済みの画像データ21またはエンコード済みのデータ13を送信または受信するように構成されてよい。
【0077】
通信インタフェース22は、例えば、エンコード済みの画像データ21を適切なフォーマットに、例えばパケットにパッケージ化する、および/または、通信リンクまたは通信ネットワークを介した送信のための任意の種類の送信エンコーディングまたは処理を用いて、エンコード済みの画像データを処理するように構成されてよい。
【0078】
通信インタフェース22のカウンターパートをなす通信インタフェース28は、例えば、送信されたデータを受信するとともに、任意の種類の対応する送信デコーディングまたは処理および/またはデパッケージングを用いて送信データを処理して、エンコード済みの画像データ21を取得するように構成されてよい。
【0079】
通信インタフェース22および通信インタフェース28は両方とも、図1Aにおいてソースデバイス12からデスティネーションデバイス14に向く通信チャネル13の矢印で示すように単方向通信インタフェースとして、または、双方向通信インタフェースとして構成されてよく、例えば、メッセージを送信および受信する、例えば、接続を設定し、通信リンクおよび/またはデータ送信、例えばエンコード済みの画像データ送信に関連する任意の他の情報を確認およびやりとりするように構成されてよい。
【0080】
デコーダ30は、エンコード済みの画像データ21を受信するとともに、デコード済みの画像データ31またはデコード済みの画像31を提供するように構成されている(さらなる詳細は、例えば図3または図5に基づいて下記で説明される)。
【0081】
デスティネーションデバイス14のポストプロセッサ32は、デコード済みの画像データ31(再構成画像データとも呼ばれる)、例えばデコード済みの画像31を後処理して、後処理済みの画像データ33、例えば後処理済みの画像33を取得するように構成されている。後処理ユニット32により実行される後処理は、例えば、デコード済みの画像データ31を、例えば、ディスプレイデバイス34による表示のために準備する目的で、例えば、カラーフォーマット変換(例えば、YCbCrからRGBへ)、色補正、トリミング、もしくは再サンプリング、または任意の他の処理を含んでよい。
【0082】
デスティネーションデバイス14のディスプレイデバイス34は、画像を例えばユーザまたは視聴者に表示するために、後処理済みの画像データ33を受信するように構成されている。ディスプレイデバイス34は、再構成画像を表現するための任意の種類のディスプレイ、例えば、一体型または外付けのディスプレイまたはモニタであってもよく、これを含んでもよい。ディスプレイは、例えば、液晶ディスプレイ(LCD)、有機発光ダイオード(OLED)ディスプレイ、プラズマディスプレイ、プロジェクタ、マイクロLEDディスプレイ、液晶オンシリコン(LCoS)、デジタル光プロセッサ(DLP)、または任意の種類の他のディスプレイを含んでよい。
【0083】
図1Aはソースデバイス12とデスティネーションデバイス14とを別個のデバイスとして示しているが、デバイスの実施形態は、それらの両方または両方の機能、すなわち、ソースデバイス12または対応する機能と、デスティネーションデバイス14または対応する機能とを備えてもよい。そのような実施形態では、ソースデバイス12または対応する機能およびデスティネーションデバイス14または対応する機能は、同じハードウェアおよび/またはソフトウェアを使用して、または別個のハードウェアおよび/またはソフトウェアまたはそれらの任意の組み合わせによって実装され得る。
【0084】
本説明に基づいて当業者には明らかであるように、図1Aに示すような、異なるユニットの機能またはソースデバイス12および/またはデスティネーションデバイス14内の機能の存在および(正確な)分割は、実際のデバイスおよびアプリケーションに応じて変わり得る。
【0085】
エンコーダ20(例えば、ビデオエンコーダ20)またはデコーダ30(例えば、ビデオデコーダ30)またはエンコーダ20およびデコーダ30の両方は、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ハードウェア、ビデオコーディング専用またはそれらの任意の組み合わせなどの、図1Bに示すような処理回路を介して実装されてよい。エンコーダ20は、図2のエンコーダ20および/または本明細書に記載の任意の他のエンコーダシステムまたはサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装されてよい。デコーダ30は、図3のデコーダ30および/または本明細書に記載の任意の他のデコーダシステムまたはサブシステムに関連して説明される様々なモジュールを具現するために処理回路46を介して実装されてよい。処理回路は、後で説明されるように様々な操作を実行するように構成されてよい。図5に示すように、本技法がソフトウェアにおいて部分的に実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアのための命令を保存してよく、ハードウェア内で1つまたは複数のプロセッサを用いて命令を実行して、本開示の技法を実現してよい。ビデオエンコーダ20およびビデオデコーダ30のいずれかは、図1Bに示すように、例えば、単一のデバイス内の組み合わされたエンコーダ/デコーダ(コーデック)の一部として一体化されてよい。
【0086】
ソースデバイス12およびデスティネーションデバイス14は、任意の種類のハンドヘルドまたはステーショナリデバイス、例えば、ノートブックまたはラップトップコンピュータ、携帯電話、スマートフォン、タブレットまたはタブレットコンピュータ、カメラ、デスクトップコンピュータ、セットトップボックス、テレビ、ディスプレイデバイス、デジタルメディアプレイヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス(コンテンツサービスサーバまたはコンテンツ配信サーバなど)、ブロードキャスト受信機デバイス、ブロードキャスト送信機デバイスなどを含む、広範なデバイスのいずれかを備えてよく、オペレーティングシステムを用いないまたは任意の種類のオペレーティングシステムを用いてよい。いくつかの場合、ソースデバイス12およびデスティネーションデバイス14は、無線通信に対応してよい。したがって、ソースデバイス12およびデスティネーションデバイス14は、無線通信デバイスとしてよい。
【0087】
いくつかの場合、図1Aに示すビデオコーディングシステム10は、単に例であり、本願の技法は、エンコーディングデバイスとデコーディングデバイスとの間の任意のデータ通信を必ずしも含まないビデオコーディング設定(例えば、ビデオエンコーディングまたはビデオデコーディング)に適用されてよい。他の例において、データは、ローカルメモリから取得され、ネットワークを介してストリームなどされる。ビデオエンコーディングデバイスは、データをメモリにエンコードして格納してよく、および/または、ビデオデコーディングデバイスは、データをメモリからデコードして取得してよい。いくつかの例において、エンコーディングおよびデコーディングは、互いに通信しないが単にデータをメモリにエンコードするおよび/またはデータをメモリから取得するとともにデコードするデバイスによって実行される。
【0088】
説明の便宜上、例えば、ITU-Tビデオコーディング専門家グループ(VCEG)およびISO/IEC動画像専門家グループ(MPEG)のビデオコーディングに関する共同作業チーム(JCT-VC)によって開発された次世代ビデオコーディング規格である、高効率ビデオコーディング(HEVC)または多目的ビデオコーディング(VVC)のリファレンスソフトウェアを参照して、本発明の実施形態が本明細書で説明される。当業者であれば、本発明の実施形態がHEVCまたはVVCに限定されないことを理解するであろう。
【0089】
[エンコーダおよびエンコーディング方法]
図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は、ハイブリッドビデオエンコーダ、またはハイブリッドビデオコーデックによるビデオエンコーダとも称され得る。
【0090】
残差計算ユニット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の「内蔵デコーダ」を形成するものとも言及される。
【0091】
[画像および画像区分化(画像およびブロック)]
エンコーダ20は、例えば、入力201を介して、画像17(または画像データ17)、例えば、ビデオまたはビデオシーケンスを形成する一連の画像のうちの画像を受信するように構成されてよい。受信された画像または画像データは、前処理済みの画像19(または前処理済みの画像データ19)であってもよい。簡潔さのために、以下の説明では画像17が参照される。画像17は、現在の画像またはコードされる画像とも称され得る(特に、ビデオコーディングにおいて、現在の画像を他の画像、例えば、同じビデオシーケンス、すなわち現在の画像も含むビデオシーケンスの、以前にエンコード済みおよび/またはデコード済みの画像から区別するために)。
【0092】
(デジタル)画像は、強度値を持つサンプルの二次元アレイまたはマトリックスであるか、またはそれとみなされ得る。アレイ内のサンプルは、画素(画像要素の略称)またはペルとも称され得る。アレイまたは画像の水平および垂直方向(または軸)のサンプル数は、画像のサイズおよび/または解像度を定義する。色を表現するために、典型的には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つの対応するアレイであってよい。
【0093】
ビデオエンコーダ20の実施形態は、画像17を複数の(典型的には非重複)画像ブロック203に区分化するように構成されている画像区分化ユニット(図2には示されない)を備えてよい。これらのブロックは、ルートブロック、マクロブロック(H.264/AVC)またはコーディングツリーブロック(CTB)またはコーディングツリーユニット(CTU)(H.265/HEVCおよびVVC)とも称され得る。画像区分化ユニットは、ビデオシーケンスのすべての画像およびブロックサイズを定義する対応するグリッドに同じブロックサイズを使用するか、または、画像または画像のサブセットもしくはグループ間でブロックサイズを変化させて、各画像を対応するブロックに区分化するように構成されてよい。
【0094】
さらなる実施形態において、ビデオエンコーダは、画像17のブロック203、例えば、画像17を形成する1つ、いくつか、またはすべてのブロックを直接受信するように構成されてよい。画像ブロック203は、現在の画像ブロックまたはコーディングされる画像ブロックとも称され得る。
【0095】
画像17と同様にここでも、画像ブロック203は、画像17よりも寸法が小さいが、強度値(サンプル値)を持つサンプルの二次元アレイまたはマトリックスであるか、または、それとみなすことができる。換言すれば、ブロック203は、例えば、1つのサンプルアレイ(例えば、モノクロ画像17の場合はルマアレイ、または、カラー画像の場合はルマもしくはクロマアレイ)、または3つのサンプルアレイ(例えば、カラー画像17の場合はルマおよび2つのクロマアレイ)、または、適用されるカラーフォーマットに応じた任意の他の数および/または種類のアレイを備えてよい。ブロック203の水平および垂直方向(または軸)のサンプル数は、ブロック203のサイズを定義する。したがって、ブロックは、例えば、サンプルのM×N(M列×N行)アレイ、または変換係数のM×Nアレイであってよい。
【0096】
図2に示すビデオエンコーダ20の実施形態は、画像17をブロック毎にエンコードするように構成されてよく、例えば、エンコーディングおよび予測がブロック203毎に実行される。
【0097】
図2に示されるビデオエンコーダ20の実施形態はさらに、スライス(ビデオスライスとも称される)を使用することによって画像を区分化および/またはエンコードするよう構成されてよく、画像は、1つまたは複数のスライス(典型的には非重複)を使用して区分化またはエンコードされてよく、各スライスは、1つまたは複数のブロック(例えばCTU)、を含んでよい。
【0098】
図2に示されるビデオエンコーダ20の実施形態はさらに、タイルグループ(ビデオタイルグループとも称される)および/またはタイル(ビデオタイルとも称される)を使用することによって画像を区分化および/またはエンコードするよう構成されてよく、画像は、1つまたは複数のタイルグループ(典型的には非重複)を使用して区分化またはエンコードされてよく、各タイルグループは、例えば1つまたは複数のブロック(例えばCTU)または1つまたは複数のタイルを含んでよく、各タイルは例えば、矩形形状であってよく、1つまたは複数のブロック(例えば、CTU)、例えば完全または部分的ブロックを含んでよい。
【0099】
[残差計算]
残差計算ユニット204は、例えば、サンプル毎(画素毎)に画像ブロック203のサンプル値から予測ブロック265のサンプル値を減算し、サンプル領域における残差ブロック205を取得することによって、画像ブロック203および予測ブロック265に基づいて(予測ブロック265に関するさらなる詳細は後で提供される)、残差ブロック205(残差205とも称される)を計算するように構成されてよい。
【0100】
[変換]
変換処理ユニット206は、残差ブロック205のサンプル値に対して変換、例えば、離散コサイン変換(DCT)または離散サイン変換(DST)を適用し、変換領域における変換係数207を取得するように構成されてよい。変換係数207は、変換残差係数とも称されてよく、変換領域における残差ブロック205を表す。
【0101】
変換処理ユニット206は、H.265/HEVCに指定された変換などのDCT/DSTの整数近似を適用するように構成されてよい。直交DCT変換と比較して、そのような整数近似は、典型的には特定の係数によってスケーリングされる。順変換および逆変換によって処理される残差ブロックのノルムを保存するべく、変換プロセスの一部として追加のスケーリング係数が適用される。スケーリング係数は、典型的には、シフト演算に関して2のべき乗であるスケーリング係数、変換係数のビット深度、確度と実装コストとの間のトレードオフなどのような特定の制約に基づいて選択される。例えば、特定のスケーリング係数が、例えば、逆変換処理ユニット212による逆変換(および、例えばビデオデコーダ30における逆変換処理ユニット312による対応する逆変換)に指定され、例えば、エンコーダ20における変換処理ユニット206による順方向変換のための対応するスケーリング係数が、相応に指定されてよい。
【0102】
ビデオエンコーダ20の実施形態は(それぞれ変換処理ユニット206)は、変換パラメータ、例えば単数または複数の変換のタイプを、例えば、直接またはエントロピーエンコーディングユニット270を介してエンコードもしくは圧縮してから出力するように構成されてよく、それにより、例えば、ビデオデコーダ30は、デコーディングのための変換パラメータを受信して使用してよい。
【0103】
[量子化]
量子化ユニット208は、例えば、スカラ量子化またはベクトル量子化を適用することによって、変換係数207を量子化して、量子化係数209を取得するように構成されてよい。量子化係数209は、量子化変換係数209または量子化残差係数209とも称され得る。
【0104】
量子化プロセスは、変換係数207のいくつかまたはすべてに関連付けられたビット深度を低減させ得る。例えば、nビット変換係数は、量子化中にmビット変換係数に丸められてよく、ここでnはmよりも大きい。量子化の程度は、量子化パラメータ(QP)を調整することによって変更されてよい。例えば、スカラ量子化の場合、より細かいまたはより粗い量子化を達成するために、異なるスケーリングが適用されてよい。量子化ステップサイズが小さいほど細かい量子化に対応し、一方で、量子化ステップサイズが大きいほど粗い量子化に対応する。適用可能な量子化ステップサイズは、量子化パラメータ(QP)によって示され得る。量子化パラメータは、例えば、適用可能な量子化ステップサイズの予め定義されたセットへのインデックスであり得る。例えば、小さな量子化パラメータは細かい量子化(小さな量子化ステップサイズ)に対応し得、大きな量子化パラメータは粗い量子化(大きな量子化ステップサイズ)に対応し得るか、または逆もまた同様である。量子化は、量子化ステップサイズによる除算を含んでよく、例えば逆量子化ユニット210による対応するおよび/または逆の量子化解除は、量子化ステップサイズによる乗算を含んでよい。いくつかの規格、例えばHEVCに従った実施形態は、量子化ステップサイズを決定するのに量子化パラメータを使用するように構成されてよい。概して、量子化ステップサイズは、除算を含む方程式の固定小数点近似を使用する量子化パラメータに基づいて計算され得る。残差ブロックのノルムを復元するために、量子化および量子化解除に追加のスケーリング係数を導入し得、これは、量子化ステップサイズおよび量子化パラメータの方程式の固定小数点近似で使用されるスケーリングに起因して変更され得る。一例の実装では、逆変換および量子化解除のスケーリングは組み合わされ得る。代替的には、カスタマイズされた量子化テーブルが使用され、例えばビットストリームにおいてエンコーダからデコーダにシグナリングされてよい。量子化は不可逆演算であり、損失は量子化ステップサイズの増加に伴って増加する。
【0105】
ビデオエンコーダ20の実施形態(それぞれ量子化ユニット208)は、量子化パラメータ(QP)を、例えば直接かまたはエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、それにより、例えば、ビデオデコーダ30は、デコーディングのための量子化パラメータを受信して適用してよい。
【0106】
[逆量子化]
逆量子化ユニット210は、例えば、量子化ユニット208と同じ量子化ステップサイズに基づいてまたはそれを使用して量子化ユニット208によって適用された量子化スキームの逆を適用することによって、量子化係数に対して量子化ユニット208の逆量子化を適用し、量子化解除係数211を取得するように構成されている。量子化解除係数211は、量子化解除残差係数211とも称され得、典型的には量子化による損失に起因して変換係数とは同一でないが、変換係数207に対応する。
【0107】
[逆変換]
逆変換処理ユニット212は、変換処理ユニット206によって適用された変換の逆変換、例えば、逆離散コサイン変換(DCT)または逆離散サイン変換(DST)または他の逆変換を適用し、サンプル領域における再構成残差ブロック213(または対応する量子化解除係数213)を取得するように構成されている。再構成残差ブロック213は、変換ブロック213とも称され得る。
【0108】
[再構成]
再構成ユニット214(例えば、加算器または合算器214)は、例えば、サンプル毎に、再構成残差ブロック213のサンプル値と予測ブロック265のサンプル値とを加算することによって、変換ブロック213(すなわち、再構成残差ブロック213)を予測ブロック265に加算し、サンプル領域における再構成ブロック215を取得するように構成されている。
【0109】
[フィルタリング]
ループフィルタユニット220(または、略して「ループフィルタ」220)は、再構成ブロック215をフィルタして、フィルタリング済みのブロック221を取得する、または、一般に、再構成サンプルをフィルタして、フィルタリング済みのサンプルを取得するように構成されている。ループフィルタユニットは、例えば、画素遷移を平滑化する、または、別様にビデオ品質を改善するように構成されている。ループフィルタユニット220は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または、1つまたは複数の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、シャープニング、平滑化フィルタもしくは協調フィルタ、またはそれらの任意の組み合わせなど、1つまたは複数のループフィルタを含み得る。ループフィルタユニット220が、インループフィルタとして図2に示されているが、他の構成では、ループフィルタユニット220はポストループフィルタとして実装されてもよい。フィルタリング済みのブロック221は、フィルタリング済みの再構成ブロック221とも称され得る。
【0110】
ビデオエンコーダ20の実施形態(それぞれループフィルタユニット220)は、ループフィルタパラメータ(サンプル適応オフセット情報など)を、例えば、直接またはエントロピーエンコーディングユニット270を介してエンコードしてから出力するように構成されてよく、それにより、例えば、デコーダ30は、デコーディングのために同じループフィルタパラメータまたはそれぞれのループフィルタを受信して適用してよい。
【0111】
[デコード済みの画像バッファ]
デコード済みの画像バッファ(DPB)230は、ビデオエンコーダ20によってビデオデータをエンコードするための参照画像、または一般に参照画像データを保存するメモリであってよい。DPB230は、シンクロナスDRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)などの様々なメモリデバイスのいずれかによって形成されてよい。デコード済みの画像バッファ(DPB)230は、1つまたは複数のフィルタリング済みのブロック221を保存するように構成されてよい。デコード済みの画像バッファ230は、同じ現在の画像または異なる画像、例えば、以前の再構成画像の他の以前にフィルタリング済みのブロック、例えば、以前に再構成され且つフィルタリング済みのブロック221を保存するようにさらに構成されてよく、例えば、インター予測のために、以前に再構成された、すなわちデコード済みの、完全な画像(並びに、対応する参照ブロックおよびサンプル)、および/または、部分的に再構成された現在の画像(並びに、対応する参照ブロックおよびサンプル)を提供してよい。デコード済みの画像バッファ(DPB)230は、例えば、再構成ブロック215がループフィルタユニット220によってフィルタリングされていない場合、1つまたは複数のフィルタリングされていない再構成ブロック215、または一般に、フィルタリングされていない再構成サンプル、または、再構成ブロックもしくはサンプルの任意の他のさらに処理されたバージョンを保存するように構成されてもよい。
【0112】
[モード選択(区分化および予測)]
モード選択ユニット260は、区分化ユニット262と、インター予測ユニット244と、イントラ予測ユニット254とを備え、元の画像データ、例えば元のブロック203(現在の画像17の現在のブロック203)、および再構成画像データ、例えば、同じ(現在の)画像のおよび/または1つまたは複数の以前のデコード済みの画像からの、例えばデコード済みの画像バッファ230もしくは他のバッファ(例えば、図示しないラインバッファ)からのフィルタリング済みおよび/またはフィルタリングされていない再構成サンプルもしくはブロックを受信または取得するように構成されている。再構成画像データは、予測ブロック265または予測因子265を取得するために、予測、例えばインター予測またはイントラ予測のための参照画像データとして使用される。
【0113】
モード選択ユニット260は、現在のブロック予測モード(区分化を含まない)のための区分化および予測モード(例えば、イントラまたはインター予測モード)を決定または選択し、対応する予測ブロック265を生成するように構成されてよく、予測ブロック265は、残差ブロック205の計算のためおよび再構成ブロック215の再構成のために使用される。
【0114】
モード選択ユニット260の実施形態は、区分化および予測モード(例えば、モード選択ユニット260によってサポートされているものまたはモード選択ユニット260に利用可能なものから)選択するように構成されてよく、これにより、最良のマッチ、または換言すれば、最小残差(最小残差は、送信または保存のための圧縮率がより良好であることを意味する)、または、最小シグナリングオーバヘッド(最小シグナリングオーバヘッドは、送信または保存のための圧縮率がより良好であることを意味する)、またはこれらの両方を考慮したもしくはバランスを取ったものを提供する。モード選択ユニット260は、レート歪み最適化(RDO)に基づいて区分化および予測モードを決定する、すなわち、最小レート歪みを提供する予測モードを選択するように構成されてよい。この文脈において「最良」、「最小」、「最適」などのような用語は、全般的な「最良」、「最小」、「最適」などを必ずしも指さず、値が閾値または他の制約を超過または下回り、潜在的に「最適未満選択」につながるが複雑性および処理時間を低減するような、終了または選択基準の達成を指してもよい。
【0115】
換言すれば、区分化ユニット262は、ブロック203を、例えば、四分木区分化(QT)、二分木区分化(BT)、もしくは三分木区分化(TT)、またはそれらの任意の組み合わせを繰り返し用いて、より小さいブロック区分または(やはりブロックを形成する)サブブロックに区分化するように構成されてよく、また、例えば、ブロック区分またはサブブロックのそれぞれのための予測を実行するように構成されてよく、モード選択は、区分化されたブロック203のツリー構造の選択を含み、予測モードは、ブロック区分またはサブブロックのそれぞれに適用される。
【0116】
以下では、例示のビデオエンコーダ20によって実行される、区分化(例えば、区分化ユニット260による)および予測処理(インター予測ユニット244およびイントラ予測ユニット254による)をより詳細に説明する。
【0117】
[区分化]
区分化ユニット262は、現在のブロック203をより小さい区分、例えば、正方形または矩形サイズのより小さいブロックに区分化(または分割)してよい。これらのより小さいブロック(サブブロックとも称され得る)は、さらにより小さい区分にさらに区分化されてよい。これは、ツリー区分化もしくは階層的ツリー区分化とも称され、ここで、例えばルートツリーレベル0(階層レベル0、深度0)にあるルートブロックは、再帰的に区分化、例えば、次に低いツリーレベル、例えばツリーレベル1(階層レベル1、深度1)にあるノードの2または2より多いブロックに区分化されてよく、これらのブロックは、例えば終了基準が達成されたことで、例えば最大ツリー深度または最小ブロックサイズに達したことで、区分化が終了するまで、次に低いレベル、例えばツリーレベル2(階層レベル2、深度2)の2または2より多いブロックに再度区分化されるなどしてよい。さらに区分化されないブロックは、ツリーのリーフブロックまたはリーフノードとも称される。2つの区分への区分化を用いるツリーは、二分木(BT)と称され、3つの区分への区分化を用いるツリーは、三分木(TT)と称され、4つの区分への区分化を用いるツリーは、四分木(QT)と称される。
【0118】
前述のように、「ブロック」という用語は、本明細書において使用される場合、画像の一部分、特に、正方形または矩形の部分であり得る。例えば、HEVCおよびVVCを参照すると、ブロックは、コーディングツリーユニット(CTU)、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)であり得るまたはそれらに対応し得、ならびに/または、対応するブロック、例えば、コーディングツリーブロック(CTB)、コーディングブロック(CB)、変換ブロック(TB)、もしくは予測ブロック(PB)に対応し得る。
【0119】
例えば、コーディングツリーユニット(CTU)は、3つのサンプルアレイを有する画像のルマサンプルのCTB、クロマサンプルの2つの対応するCTB、または、モノクロ画像のもしくはサンプルをコードするために使用された3つの別個の色平面およびシンタックス構造を用いてコードされた画像のサンプルのCTBであるか、またはそれらを含んでよい。対応して、コーディングツリーブロック(CTB)は、CTBへの構成要素の分割が区分化であるように、或るNの値に関してサンプルのN×Nのブロックであってよい。コーディングユニット(CU)は、ルマサンプルのコーディングブロック、3つのサンプルアレイを有する画像のクロマサンプルの2つの対応するコーディングブロック、または、モノクロ画像のもしくはサンプルをコードするために使用された3つの別個の色平面およびシンタックス構造を用いてコードされた画像のサンプルのコーディングブロックであるか、またはそれらを含んでよい。対応して、コーディングブロック(CB)は、コーディングブロックへのCTBの分割が区分化であるように、或るMおよびNの値に関してサンプルのM×Nのブロックであってよい。
【0120】
例えばHEVCに従う実施形態において、コーディングツリーユニット(CTU)は、コーディングツリーとして表される四分木構造を用いることによってCUに分割されてよい。画像エリアを、インター画像(時間)予測を用いてコードするのかまたはイントラ画像(空間)予測を用いてコードするのかの決定は、CUレベルで行われる。各CUはさらに、PUの分割タイプに従って、1つ、2つ、または4つのPUに分割することができる。1つのPUの内部では、同じ予測処理が適用され、関連情報はPUベースでデコーダに送信される。PUの分割タイプに基づいて予測処理を適用することによって残差ブロックを取得した後、CUは、CUのコーディングツリーと同様の別の四分木構造に従って変換ユニット(TU)に区分化できる。
【0121】
実施形態において、例えば、多目的ビデオコーディング(VVC)と称される現在開発中の最新のビデオコーディング規格によれば、組み合わされた四分木および二分木(QTBT)区分化が、例えばコーディングブロックを区分化するのに使用される。QTBTブロック構造において、CUは、正方形または矩形形状のいずれかを有することができる。例えば、コーディングツリーユニット(CTU)は、最初に四分木構造によって区分化される。四分木リーフノードはさらに、二分木または三分(もしくはトリプル)木構造によって区分化される。区分化されたツリーのリーフノードは、コーディングユニット(CU)と呼ばれ、そのセグメンテーションは、任意のさらなる区分化なしで、予測および変換処理に使用される。このことは、CU、PU、およびTUは、ネストされたQTBTコーディングブロック構造において同一のブロックサイズを有することを意味する。並行して、QTBTブロック構造と一緒に、複数の区分化、例えば、三分木区分化が使用されてよい。
【0122】
一例において、ビデオエンコーダ20のモード選択ユニット260は、本明細書に記載の区分化技法の任意の組み合わせを実行するように構成されてよい。
【0123】
上述したように、ビデオエンコーダ20は、(例えば、事前決定された)予測モードのセットから最良または最適な予測モードを決定または選択するように構成されている。予測モードのセットは、例えば、イントラ予測モードおよび/またはインター予測モードを含んでよい。
【0124】
[イントラ予測]
イントラ予測モードのセットは、35の異なるイントラ予測モード、例えば、DC(またはミーン)モードおよび平面モードのような無方向性モード、もしくは、例えばHEVCにおいて定義されているような、方向性モードを含んでよく、または、67の異なるイントラ予測モード、例えば、DC(またはミーン)モードおよび平面モードのような無方向性モード、もしくは、例えばVVCに定義されている、方向性モードを含んでよい。
【0125】
イントラ予測ユニット254は、同じ現在の画像の隣接ブロックの再構成サンプルを使用して、イントラ予測モードのセットのうちのイントラ予測モードに従って、イントラ予測ブロック265を生成するように構成されている。
【0126】
イントラ予測ユニット254(または一般にモード選択ユニット260)は、イントラ予測パラメータ(または一般に、ブロックのために選択されたイントラ予測モードを示す情報)を、エンコード済みの画像データ21に含まれるようにシンタックス要素266の形態でエントロピーエンコーディングユニット270に出力するようにさらに構成され、それにより、例えば、ビデオデコーダ30は、デコーディングのための予測パラメータを受信して使用してよい。
【0127】
[インター予測]
インター予測モードのセット(または可能なインター予測モード)は、利用可能な参照画像(すなわち、例えばDBP230に保存された、以前の少なくとも部分的にデコード済みの画像)および他のインター予測パラメータ、例えば、最良にマッチする参照ブロックの検索に使用されたのは、参照画像の全体なのかもしくは参照画像の一部のみ、例えば、現在のブロックのエリアの周りの検索窓エリアなのか、および/または、例えば、画素補間、例えばハーフ/セミペルおよび/またはクオータペル補間が適用されたか否かに依拠する。
【0128】
上の予測モードに加えて、スキップモードおよび/またはダイレクトモードが適用され得る。
【0129】
インター予測ユニット244は、動き推定(ME)ユニットおよび動き補償(MC)ユニット(両方とも図2には図示せず)を備えてよい。動き推定ユニットは、動き推定のために、画像ブロック203(現在の画像17の現在の画像ブロック203)およびデコード済みの画像231、または、少なくとも1つまたは複数の以前の再構成ブロック、例えば1つまたは複数の他の/異なる以前のデコード済みの画像231の再構成ブロックを受信または取得するように構成されてよい。例えば、ビデオシーケンスは、現在の画像および以前のデコード済みの画像231を含んでよく、または換言すれば、現在の画像および以前のデコード済みの画像231は、ビデオシーケンスを形成する一連の画像の一部であるかまたはそれを形成してよい。
【0130】
エンコーダ20は、例えば、複数の他の画像のうちの同じまたは異なる画像の複数の参照ブロックから参照ブロックを選択し、インター予測パラメータとして参照画像(または参照画像インデックス)および/または参照ブロックの位置(x、y座標)と現在のブロックの位置との間のオフセット(空間的オフセット)を動き推定ユニットに提供するように構成してよい。このオフセットは、動きベクトル(MV)とも呼ばれる。
【0131】
動き補償ユニットは、インター予測パラメータを取得、例えば受信するとともに、そのインター予測パラメータに基づいてまたはそれを使用してインター予測を実行して、インター予測ブロック265を取得するように構成されている。動き補償ユニットによって実行される動き補償は、動き推定によって決定された動き/ブロックベクトルに基づいて予測ブロックをフェッチまたは生成し、場合によって副画素精度までの補間を実行することを伴ってよい。補間フィルタリングは、既知の画素サンプルからさらなる画素サンプルを生成してよく、したがって、画像ブロックをコードするのに用いられ得る候補予測ブロックの数を潜在的に増加させる。現在の画像ブロックのPUのための動きベクトルを受信すると、動き補償ユニットは、参照画像リストのうちの1つにおいて動きベクトルが指し示す予測ブロックを位置特定してよい。
【0132】
動き補償ユニットは、ビデオスライスの画像ブロックをデコードする際にビデオデコーダ30によって用いられる、ブロックおよびビデオスライスに関連付けられるシンタックス要素を生成してもよい。スライスおよびそれぞれのシンタックス要素に追加的に、または代替的に、タイルグループおよび/またはタイル、ならびに、それぞれのシンタックス要素が生成または使用され得る。
【0133】
[エントロピーコーディング]
エントロピーエンコーディングユニット270は、例えば、エントロピーエンコーディングアルゴリズムまたはスキーム(例えば、可変長コーディング(VLC)スキーム、コンテキスト適応VLCスキーム(CAVLC)、算術コーディングスキーム、二値化、コンテキスト適応バイナリ算術コーディング(CABAC)、シンタックスベースのコンテキスト適応バイナリ算術コーディング(SBAC)、確率インターバル区分化エントロピー(PIPE)コーディング、または、別のエントロピーエンコーディング方法もしくは技法)、またはバイパス(無圧縮)を、量子化係数209、インター予測パラメータ、イントラ予測パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素に適用し、例えばエンコード済みのビットストリーム21の形態で出力272を介して出力できるエンコード済みの画像データ21を取得するように構成され、それにより、例えば、ビデオデコーダ30は、デコーディングのためのパラメータを受信して使用してよい。エンコード済みのビットストリーム21は、ビデオデコーダ30に送信、または、後でビデオデコーダ30によって送信または取得するためにメモリに保存されてよい。
【0134】
ビデオエンコーダ20の他の構造上のバリエーションを、ビデオストリームをエンコードするのに用いてよい。例えば、非変換ベースのエンコーダ20は、特定のブロックまたはフレームのための変換処理ユニット206を用いずに直接的に残差信号を量子化できる。別の実装において、エンコーダ20は、単一のユニットに組み合わされた量子化ユニット208および逆量子化ユニット210を有することができる。
【0135】
[デコーダおよびデコーディング方法]
図3は、本願の技法を実装するように構成されているビデオデコーダ30の例を示している。ビデオデコーダ30は、例えばエンコーダ20によってエンコードされた、エンコード済みの画像データ21(例えば、エンコード済みのビットストリーム21)を受信して、デコード済みの画像331を取得するように構成されている。エンコード済みの画像データまたはビットストリームは、エンコード済みの画像データをデコードするための情報、例えば、エンコード済みのビデオスライス(および/またはタイルグループまたはタイル)の画像ブロックおよび関連するシンタックス要素を表すデータを含む。
【0136】
図3の例において、デコーダ30は、エントロピーデコーディングユニット304、逆量子化ユニット310、逆変換処理ユニット312、再構成ユニット314(例えば、合算器314)、ループフィルタ320、モード適用ユニット360、デコード済みの画像バッファ(DBP)330、インター予測ユニット344、およびイントラ予測ユニット354を備える。インター予測ユニット344は、動き補償ユニットであるかまたはこれを備えてよい。ビデオデコーダ30は、いくつかの例では、図2のビデオエンコーダ100に関して説明されたエンコーディングパスに対して概ね逆のデコーディングパスを実行してよい。
【0137】
エンコーダ20に関して説明したように、逆量子化ユニット210、逆変換処理ユニット212、再構成ユニット214、ループフィルタ220、デコード済みの画像バッファ(DPB)230、インター予測ユニット344、およびイントラ予測ユニット354も、ビデオエンコーダ20の「内蔵デコーダ」を形成するものとして言及される。したがって、逆量子化ユニット310は、逆量子化ユニット110と機能的に同一であってよく、逆変換処理ユニット312は、逆変換処理ユニット212と機能的に同一であってよく、再構成ユニット314は、再構成ユニット214と機能的に同一であってよく、ループフィルタ320は、ループフィルタ220と機能的に同一であってよく、デコード済みの画像バッファ330は、デコード済みの画像バッファ230と機能的に同一であってよい。したがって、ビデオエンコーダ20のそれぞれのユニットおよび機能について提供された説明は、ビデオデコーダ30のそれぞれのユニットおよび機能に対応するように当てはまる。
【0138】
[エントロピーデコーディング]
エントロピーデコーディングユニット304は、ビットストリーム21(または一般にエンコード済みの画像データ21)を解析し、例えば、エンコード済みの画像データ21にエントロピーデコーディングを実行して、例えば量子化係数309および/またはデコード済みのコーディングパラメータ(図3には図示せず)、例えば、インター予測パラメータ(例えば、参照画像インデックスおよび動きベクトル)、イントラ予測パラメータ(例えば、イントラ予測モードまたはインデックス)、変換パラメータ、量子化パラメータ、ループフィルタパラメータ、および/または他のシンタックス要素のいずれかまたはすべてを取得するように構成されている。エントロピーデコーディングユニット304は、エンコーダ20のエントロピーエンコーディングユニット270に関して記載されたエンコーディングスキームに対応するデコーディングアルゴリズムまたはスキームを適用するように構成されてよい。エントロピーデコーディングユニット304は、インター予測パラメータ、イントラ予測パラメータ、および/または他のシンタックス要素をモード適用ユニット360に、また他のパラメータをデコーダ30の他のユニットに提供するようにさらに構成されてよい。ビデオデコーダ30は、ビデオスライスレベルでおよび/またはビデオブロックレベルで、シンタックス要素を受信してよい。スライスおよびそれぞれのシンタックス要素に追加的に、または代替的に、タイルグループおよび/またはタイル、ならびに、それぞれのシンタックス要素が受信および/または使用され得る。
【0139】
[逆量子化]
逆量子化ユニット310は、エンコード済みの画像データ21から量子化パラメータ(QP)(または一般に逆量子化に関連する情報)および量子化係数を受信する(例えばエントロピーデコーディングユニット304によって、例えば解析および/またはデコードすることによって)とともに、量子化パラメータに基づいて、デコード済みの量子化係数309に逆量子化を適用し、変換係数311とも称され得る量子化解除係数311を取得するように構成されてよい。逆量子化プロセスは、量子化の程度、また同様に適用されるべき逆量子化の程度を決定するために、ビデオスライス(またはタイルもしくはタイルグループ)内のビデオブロック毎にビデオエンコーダ20によって決定される量子化パラメータの使用を含んでよい。
【0140】
[逆変換]
逆変換処理ユニット312は、変換係数311とも称される量子化解除係数311を受信するとともに、サンプル領域における再構成残差ブロック213を取得するべく、量子化解除係数311に変換を適用するように構成されてよい。再構成残差ブロック213は、変換ブロック313とも称され得る。変換は、逆変換、例えば、逆DCT、逆DST、逆整数変換、または概念的に同様の逆変換プロセスであってよい。逆変換処理ユニット312は、エンコード済みの画像データ21から変換パラメータまたは対応する情報を受信し(例えばエントロピーデコーディングユニット304によって、例えば解析および/またはデコードすることによって)、量子化解除係数311に適用されるべき変換を決定するようにさらに構成されてよい。
【0141】
[再構成]
再構成ユニット314(例えば、加算器または合算器314)は、再構成残差ブロック313を予測ブロック365に加算し、例えば、再構成残差ブロック313のサンプル値と予測ブロック365のサンプル値とを加算することによって、サンプル領域における再構成ブロック315を取得するように構成されてよい。
【0142】
[フィルタリング]
ループフィルタユニット320(コーディングループ内またはコーディングループの後のいずれかにある)は、例えば、画素遷移を平滑化するようにまたはビデオ品質を別様に改善するように、再構成ブロック315をフィルタして、フィルタリング済みのブロック321を取得するように構成されている。ループフィルタユニット320は、デブロッキングフィルタ、サンプル適応型オフセット(SAO)フィルタ、または、1つまたは複数の他のフィルタ、例えば、バイラテラルフィルタ、適応ループフィルタ(ALF)、シャープニング、平滑化フィルタ、協調フィルタ、またはそれらの任意の組み合わせなど、1つまたは複数のループフィルタを含み得る。ループフィルタユニット320が、インループフィルタとして図3に示されているが、他の構成では、ループフィルタユニット320はポストループフィルタとして実装されてもよい。
【0143】
[デコード済みの画像バッファ]
画像のデコード済みのビデオブロック321は、その後、デコード済みの画像バッファ330に保存され、デコード済みの画像バッファ330は、デコード済みの画像331を他の画像の後続の動き補償のためのおよび/またはそれぞれ表示を出力するための参照画像として保存する。
【0144】
デコーダ30は、例えば出力312を介して、ユーザに提示または閲覧させるために、デコード済みの画像311を出力するように構成されている。
【0145】
[予測]
インター予測ユニット344は、インター予測ユニット244(特に、動き補償ユニット)と同一であってよく、イントラ予測ユニット354は、インター予測ユニット254と機能的に同一であってよく、エンコード済みの画像データ21から受信(例えば、エントロピーデコーディングユニット304によって、例えば、解析および/またはデコードすることによって)された区分化および/または予測パラメータまたはそれぞれの情報に基づいて分割または区分化の決定および予測を実行する。モード適用ユニット360は、再構成画像、ブロック、またはそれぞれのサンプル(フィルタリング済みまたはフィルタリングされていない)に基づいてブロック毎に予測(イントラまたはインター予測)を実行し、予測ブロック365を取得するように構成されてよい。
【0146】
ビデオスライスがイントラコード済み(I)スライスとしてコードされている場合、モード適用ユニット360のイントラ予測ユニット354は、シグナリングされたイントラ予測モードおよび現在の画像の以前にデコード済みのブロックからのデータに基づいて、現在のビデオスライスの画像ブロックのための予測ブロック365を生成するように構成されている。ビデオ画像がインターコード済みの(すなわち、BまたはP)スライスとしてコードされている場合、モード適用ユニット360のインター予測ユニット344(例えば、動き補償ユニット)は、動きベクトルおよびエントロピーデコーディングユニット304から受信された他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックのための予測ブロック365を生成するように構成されている。インター予測では、予測ブロックは、複数の参照画像リストのうちの1つに含まれる複数の参照画像のうちの1つから生成されてよい。ビデオデコーダ30は、リスト0およびリスト1という参照フレームリストを、デフォルトの構築技法を用いて、DPB330に保存された参照画像に基づいて構築してよい。同一または同様のことが、スライス(例えばビデオスライス)に追加的または代替的にタイルグループ(例えばビデオタイルグループ)および/またはタイル(例えばビデオタイル)を使用する実施形態について、または、それによって適用され得る。例えば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされ得る。
【0147】
モード適用ユニット360は、動きベクトルまたは関連情報および他のシンタックス要素を解析することによって、現在のビデオスライスのビデオブロックのための予測情報を決定するように構成され、デコードされている現在のビデオブロックのための予測ブロックを生成するために上記予測情報を用いる。例えば、モード適用ユニット360は、受信されたシンタックス要素のいくつかを用いて、ビデオスライスのビデオブロックをコードするのに用いられた予測モード(例えば、イントラまたはインター予測)、インター予測スライスタイプ(例えば、Bスライス、Pスライス、またはGPBスライス)、スライスのための参照画像リストのうちの1つもしくは複数に関する構築情報、スライスの各インターエンコード済みのビデオブロック毎の動きベクトル、スライスのインターコード済みのビデオブロック毎のインター予測ステータス、および現在のビデオスライス内のビデオブロックをデコードするための他の情報を決定する。同一または同様のことが、スライス(例えばビデオスライス)に追加的または代替的にタイルグループ(例えばビデオタイルグループ)および/またはタイル(例えばビデオタイル)を使用する実施形態について、または、それによって適用され得る。例えば、ビデオは、I、P、またはBタイルグループおよび/またはタイルを使用してコーディングされ得る。
【0148】
図3に示されるビデオデコーダ30の実施形態は、スライス(ビデオスライスとも称される)を使用することによって画像を区分化および/またはデコードするよう構成されてよく、画像は、1つまたは複数のスライス(典型的には非重複)を使用して区分化またはデコードされてよく、各スライスは、1つまたは複数のブロック(例えばCTU)を含んでよい。
【0149】
図3に示されるビデオデコーダ30の実施形態は、タイルグループ(ビデオタイルグループとも称される)および/またはタイル(ビデオタイルとも称される)を使用することによって画像を区分化および/またはデコードするよう構成されてよく、画像は、1つまたは複数のタイルグループ(典型的には非重複)を使用して区分化またはデコードされてよく、各タイルグループは、例えば1つまたは複数のブロック(例えばCTU)または1つまたは複数のタイルを含んでよく、各タイルは例えば、矩形形状であってよく、1つまたは複数のブロック(例えば、CTU)、例えば完全または部分的ブロックを含んでよい。
【0150】
ビデオデコーダ30の他のバリエーションを、エンコード済みの画像データ21をデコードするのに用いてよい。例えば、デコーダ30は、ループフィルタリングユニット320を用いずに、出力ビデオストリームを生成することができる。例えば、非変換ベースのデコーダ30は、特定のブロックまたはフレームのための逆変換処理ユニット312を用いずに、残差信号を直接的に逆量子化することができる。別の実装において、ビデオデコーダ30は、単一のユニットに組み合わされた逆量子化ユニット310および逆変換処理ユニット312を有することができる。
【0151】
エンコーダ20およびデコーダ30において、現在の段階の処理結果は、さらに処理されて、その後、次の段階に出力されてよいことが理解されるべきである。例えば、補間フィルタリング、動きベクトル導出またはループフィルタリングの後に、クリップまたはシフトなどのさらなる操作を、補間フィルタリング、動きベクトル導出またはループフィルタリングの処理結果に対して実行してよい。
【0152】
さらなる操作を、現在のブロックの導出された動きベクトル(限定しないが、アフィンモードの制御点動きベクトル、アフィン、平面、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つの方法を提供する。
【0153】
方法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】
【0154】
これらの演算は、式(5)~(8)に示されるように、mvpおよびmvdの計算中に適用され得る。
【0155】
方法2:値をクリッピングすることによりオーバフローMSBを除去する。
【数3】
式中、vxはイメージブロックまたはサブブロックの動きベクトルの水平成分であり、vyはイメージブロックまたはサブブロックの動きベクトルの垂直成分であり、x、y、およびzはそれぞれ、MVクリッピング処理の3つの入力値に対応し、関数Clip3の定義は次のとおりである。
【数4】
【0156】
図4は、本開示の一実施形態によるビデオコーディングデバイス400の概略図である。ビデオコーディングデバイス400は、本明細書に記載の開示される実施形態を実装するのに好適なものである。一実施形態において、ビデオコーディングデバイス400は、図1Aのビデオデコーダ30などのデコーダ、または、図1Aのビデオエンコーダ20などのエンコーダであってよい。
【0157】
ビデオコーディングデバイス400は、データを受信するための入口ポート410(または、入力ポート410)および受信器ユニット(Rx)420と、データを処理するためのプロセッサ、ロジックユニット、または中央演算処理装置(CPU)430と、データを送信するための送信器ユニット(Tx)440および出口ポート450(または出力ポート450)と、データを保存するためのメモリ460とを備える。ビデオコーディングデバイス400は、入口ポート410、受信器ユニット420、送信器ユニット440、および、光または電気信号の出入りのための出口ポート450に連結されている、光/電気(OE)構成要素および電気/光(EO)構成要素を備えてもよい。
【0158】
プロセッサ430は、ハードウェアおよびソフトウェアによって実装される。プロセッサ430は、1つまたは複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、FPGA、ASIC、およびDSPとして実装されてよい。プロセッサ430は、入口ポート410、受信器ユニット420、送信器ユニット440、出口ポート450、およびメモリ460と通信する。プロセッサ430は、コーディングモジュール470を備える。コーディングモジュール470は、上述した開示される実施形態を実装する。例えば、コーディングモジュール470は、様々なコーディング操作を実装、処理、準備、または提供する。したがって、コーディングモジュール470を含むことにより、ビデオコーディングデバイス400の機能のかなりの改善が提供され、ビデオコーディングデバイス400の異なる状態への変換がもたらされる。代替的に、コーディングモジュール470は、メモリ460に格納され、プロセッサ430により実行される命令として実装される。
【0159】
メモリ460は、1つまたは複数のディスク、テープドライブ、およびソリッドステートドライブを備え得、オーバーフローデータストレージデバイスとして使用され、そのようなプログラムが実行のために選択された場合にプログラムを格納して、プログラムを実行している間に読み取られる命令およびデータを格納し得る。メモリ460は、例えば、揮発性および/または不揮発性であってよく、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、および/または、スタティックランダムアクセスメモリ(SRAM)であってよい。
【0160】
図5は、例示的な実施形態に係る図1Aによるソースデバイス12およびデスティネーションデバイス14のいずれかまたは両方として使用されてよい装置500の概略ブロック図である。
【0161】
装置500におけるプロセッサ502は、中央演算処理装置としてよい。代替的には、プロセッサ502は、現在既存のまたは今後開発される情報の操作または処理が可能な任意の他のタイプのデバイス、または複数のデバイスとしてよい。開示の実装は、図示のような単一のプロセッサ、例えばプロセッサ502で実施してよいが、1つより多いプロセッサを用いて、速度および効率の利益を実現してよい。
【0162】
装置500におけるメモリ504は、一実装において、リードオンリメモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスとしてよい。任意の他の好適なタイプのストレージデバイスを、メモリ504として使用してよい。メモリ504は、バス512を用いてプロセッサ502によってアクセスされるコードおよびデータ506を備えることができる。メモリ504は、オペレーティングシステム508およびアプリケーションプログラム510をさらに備えることができ、アプリケーションプログラム510は、プロセッサ502が本明細書に記載の方法を実行することを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム510は、アプリケーション1~Nを含むことができ、アプリケーション1~Nは、本明細書に記載の方法を実行するビデオコーディングアプリケーションをさらに含む。
【0163】
装置500は、ディスプレイ518などの、1つまたは複数の出力デバイスも備えることができる。ディスプレイ518は、一例において、ディスプレイと、タッチ入力を検知するように動作可能なタッチセンサ素子とを組み合わせたタッチセンサ式ディスプレイであってよい。ディスプレイ518は、バス512を介してプロセッサ502に連結してよい。
【0164】
単一のバスとして本明細書に示したが、装置500のバス512は、複数のバスから構成されてよい。さらに、セカンダリストレージ514は、装置500の他の構成要素に直接連結してよく、または、ネットワークを介してアクセスでき、メモリカードなどの単一の一体型ユニットまたは複数のメモリカードなどの複数のユニットを含んでよい。したがって、装置500は、多種多様な構成で実装することができる。
【0165】
ジュネーブで開かれた第14回JVET会議において、JVET-N0217:アフィン線形重み付けイントラ予測(ALWIP)の貢献が採用され、これはまた、LWIPとも簡略化される。
【0166】
ALWIPにおいて、3つのセットのイントラモードが導入される。
・4×4ブロックのための35モード。
・8×4、4×8、および8×8ブロックのための19モード。
・ブロックの幅および高さが両方とも64サンプル以下である他の場合のための11モード。
【0167】
対応して、ブロックサイズタイプ(sizeId)についての変数はALWIPにおいて次のとおり定義される:
・ブロックのサイズが4×4である場合、ブロックサイズタイプ(sizeId)の値は0である。
・それ以外の場合、ブロックのサイズが8×4、4×8、または8×8ブロックである場合、ブロックサイズタイプsizeIdの値は1である。
・それ以外の場合、ブロックのサイズが上述されておらず、ブロックの幅および高さが両方とも64より小さい場合、ブロックサイズタイプsizeIdの値は2である。
【0168】
これらのモードによれば、行列ベクトル乗算およびオフセットの加算によって、現在のブロックの左上の参照サンプルの1列からルマイントラ予測信号が生成される。アフィン線形重み付けイントラ予測はまた、行列ベースのイントラ予測(MIP)とも呼ばれる。本願において、MIPおよびALWIP(またはLWIP)という用語は、交換可能であり、両方ともJVET-N0217のツールを説明する。
【0169】
アフィン線形重み付けイントラ予測(ALWIP)法を使用して矩形のブロック(幅Wおよび高さH)のサンプルを予測する場合、ブロックの左側のH再構成された隣接する境界サンプルの1列およびブロックの上側のW再構成された隣接する境界サンプルの1列が入力として使用される。
【0170】
予測信号の生成は、以下の3つの段階に基づいている。
1.平均化により、W=H=4の場合には4つの境界サンプルが出力され、または他の場合には8つの境界サンプルが出力される。
2.平均化されたサンプルを入力として、行列ベクトル乗算、続いてオフセットの加算が実施される。結果は、元のブロックにおけるサンプルのサブサンプルセット上の低減された予測信号を表す。
3.各方向における単一段階の線形補間である線形補間により、サブサンプルセット上の予測信号に従って残りの位置における予測信号が生成される。
【0171】
平均化、行列ベクトル乗算、および線形補間の処理全体が、異なる形状について図6~9に示される。残りの形状は、示される場合の1つと同様に扱われることに留意されたい。
【0172】
4×4ブロックの場合、ALWIPは、境界の各軸に沿って2つの平均を取る。その後、4つのサンプルが入力として行列ベクトル乗算に使用される。行列は、セットSから取られる。オフセットを加算した後、16の最終予測サンプルが取得される。予測信号を生成するのに線形補間は必要ない。したがって、サンプルあたり、合計で(4・16)/(4・4)=4回の乗算が実行される。
【0173】
8×8ブロックの場合、ALWIPは、境界の各軸に沿って4つの平均を取る。その後、8つのサンプルが入力として行列ベクトル乗算に使用される。行列は、セットSから取られる。予測ブロックの奇数位置にある16のサンプルが取得される。したがって、サンプルあたり、合計で(8・16)/(8・8)=2回の乗算が実行される。オフセットを加算した後、低減された上部の境界を使用することにより、これらのサンプルは垂直に補間される。元の左の境界を使用することにより、水平方向の補間がそれに続く。したがって、ALWIP予測を計算するために、サンプルあたり、合計で2回の乗算が実行される。
【0174】
8×4ブロックの場合、ALWIPは境界の水平軸に沿って4つの平均、および左側の境界の4つの元の境界値を取る。その後、8つのサンプルが入力として行列ベクトル乗算に使用される。行列は、セットSから取られる。予測ブロックの水平位置および垂直位置上の16のサンプルが取得される。 したがって、サンプルあたり、合計で(8・16)/(8・4)=4回の乗算が実行される。 オフセットを加算した後、元の左の境界を使用することにより、これらのサンプルは水平に補間される。 したがって、ALWIP予測を計算するために、サンプルあたり、合計で4回の乗算が実行される。
【0175】
転置された場合は、それに応じて扱われる。
【0176】
16×16ブロックの場合、ALWIPは、境界の各軸に沿って4つの平均を取る。その後、8つのサンプルが入力として行列ベクトル乗算に使用される。行列は、セットSから取られる。予測ブロックの奇数位置にある64のサンプルが取得される。したがって、サンプルあたり、合計で(8・64)/(16・16)=2回の乗算が実行される。オフセットを加算した後、上部の境界の8つの平均を使用することにより、これらのサンプルは垂直に補間される。元の左の境界を使用することにより、水平方向の補間がそれに続く。したがって、ALWIP予測を計算するために、サンプルあたり、合計で2回の乗算が実行される。
【0177】
より大きい形状の場合、手順は本質的に同一であり、サンプルあたりの乗算回数は4回未満である。
【0178】
W>8であるW×8ブロックの場合、奇数の水平および垂直位置においてサンプルが与えられるため、水平方向の補間のみが必要となる。この場合、低減された予測を計算するために、サンプルあたり、(8・64)/(W・8)=64/W回の乗算が実行される。W>16の場合、線形補間のために実行されるサンプルあたりの追加の乗算の回数は2回未満である。したがって、サンプルあたりの乗算の合計回数は4回以下である。
【0179】
W>8であるW×4ブロックの場合、Aを、ダウンサンプリングされたブロックの水平軸に沿った奇数エントリに対応する各行を除外することにより生じる行列とする。したがって、出力サイズは32であり、水平方向の補間のみがなお実行するべきとなる。低減された予測の計算のために、サンプルあたり、(8・32)/(W・4)=64/W回の乗算が実行される。W=16の場合、追加の乗算は要求されないが、一方、W>16の場合、線形補間のために、サンプルあたり2回未満の乗算が必要となる。したがって、乗算の合計回数は4回以下である。
【0180】
転置された場合は、それに応じて扱われる。
【0181】
JVET-N0217の提案において、最確モード(MPM)リストを使用するアプローチもMIPイントラモードコーディングに適用される。現在のブロックに使用されるMPMリストが2つある。
1.現在のブロックに対して通常のイントラモード(すなわち、MIPイントラモードではない)が使用される場合、6-MPMリストが使用される。
2.現在のブロックに対してMIPイントラモードが使用される場合、3-MPMリストが使用される。
【0182】
上記の2つのMPMリストは両方とも、それらの隣接ブロックのイントラ予測モードに基づいて構築されている。したがって、以下の場合が生じ得る。
1.現在のブロックが通常のイントラ予測され、一方で、その隣接ブロックのうちの1つまたは複数にはMIPイントラ予測が適用される、または、
2.現在のブロックにMIPイントラ予測が適用され、一方で、隣接ブロックのうちの1つまたは複数には通常のイントラ予測が適用される。
【0183】
そのような状況下では、隣接するイントラ予測モードは、ルックアップテーブルを使用して間接的に導出される。
【0184】
一例において、現在のブロックが通常のイントラ予測され、一方で、図13に示されるその上側の(A)ブロックにはMIPイントラ予測が適用された場合、以下のルックアップテーブル1が使用される。上側のブロックのブロックサイズタイプおよび上側のブロックのMIPイントラ予測モードに基づいて、通常のイントラ予測モードが導出される。同様に、図13に示される左側(L)のブロックにMIPイントラ予測が適用された場合、左側のブロックのブロックサイズタイプおよび左側のブロックのMIPイントラ予測モードに基づいて、通常のイントラ予測モードが導出される。
[表1]アフィン線形重み付けイントラ予測とイントラ予測モードとの間のマッピングの仕様
【表1】
【0185】
一例では、現在のブロックにMIPイントラ予測が適用され、図14に示される上側(A)のブロックは通常のイントラモードを使用して予測された場合、以下のルックアップテーブル2が使用される。上側のブロックのブロックサイズタイプおよび上側のブロックの通常のイントラ予測モードに基づいて、MIPイントラ予測モードが導出される。同様に、図14に示される左側(L)のブロックに通常のイントラ予測が適用された場合、左側のブロックのブロックサイズタイプおよび左側のブロックの通常のイントラ予測モードに基づいて、MIPイントラ予測モードが導出される。
[表2]イントラ予測とアフィン線形重み付けイントラ予測との間のマッピングの仕様
【表2】
【0186】
[行列ベースのイントラ予測(MIP)が適用されたブロックのMPMリスト構築における隣接ブロックのイントラモードの設定]
MIPにおいて、3-MPMリストがイントラモードコーディングに使用される。したがって、3つの異なるブロックサイズタイプについて、
・ブロックタイプサイズ0は、MPMリストにおいて3つのモードを有し、非MPMモードにおいて32(=35-3)のモードを有する。
・ブロックタイプサイズ1は、MPMリストいのいて3つのモードを有し、非MPMモードにおいて16(=19-3)のモードを有する。
・ブロックタイプサイズ2は、MPMリストにおいて3つのモードを有し、非MPMモードにおいて8(=11-3)のモードを有する。
【0187】
具体的には、MIPが適用されたブロックのイントラモードは、隣接ブロックの利用可能性およびイントラモードに基づいて、以下のプロセスのように導出される。特定の状況下で隣接ブロックが利用可能でない場合、隣接ブロックのイントラモードにはデフォルト値(-1)が割り当てられる。
【0188】
隣接ブロックのイントラモードの値は次のように導出される。
【0189】
このプロセスへの入力は以下である。
-現在の画像の左上のルマサンプルに対して現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)、
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0190】
このプロセスにおいて、隣接ブロックのアフィン線形重み付けイントラ予測candLwipModeAおよびcandLwipModeBは以下の順序の段階によって導出される。
1.隣接位置(xNbA,yNbA)および(xNbB,yNbB)はそれぞれ、(xCb-1,yCb)および(xCb,yCb-1)に等しく設定される。
2.XがAまたはBのいずれかにより置き換えられている場合、変数candLwipModeXは次のように導出される:
-(xCb,yCb)に等しく設定された位置(xCurr、yCurr)および(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として、項目6.4.X[Ed.(BB):隣接ブロック利用可能性プロセスtbd]において指定されるブロックの利用可能性導出プロセスが呼び出され、出力がavailableXに割り当てられる。
-候補アフィン線形重み付けイントラ予測モードcandLwipModeXが次のように導出される:
-以下の条件のうちの1つまたは複数が真である場合、candLwipModeXを-1に等しく設定する。
-変数availableXがFALSEに等しい。
-CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、mh_intra_flag[xNbX][yNbX]が1に等しくない。
-pcm_flag[xNbX][yNbX]が1に等しい。
-XがBに等しく、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
-それ以外の場合、以下が適用される:
-ルマサンプルにおける現在のコーディングブロックの幅cbWidthおよびルマサンプルにおいける現在のコーディングブロックの高さcbHeightを入力として、項目8.4.X.1で指定されるブロックのサイズタイプ導出プロセスが呼び出され、出力が変数sizeIdに割り当てられる。
-intra_lwip_flag[xNbX][yNbX]が1に等しい場合、ルマサンプルにおける隣接コーディングブロックの幅nbWidthXおよびルマサンプルにおける隣接コーディングブロックの高さnbHeightXを入力として、項目8.4.X.1で指定されるブロックのサイズタイプ導出プロセスが呼び出され、出力が変数sizeIdXに割り当てられる。
-sizeIdがsizeIdXに等しい場合、candLwipModeXは、IntraPredModeY[xNbX][yNbX]に等しく設定される。
-それ以外の場合、candLwipModeXは-1に等しく設定される。
-それ以外の場合、candLwipModeXは、表2に指定されるIntraPredModeY[xNbX][yNbX]およびsizeIdを使用して導出される。
【0191】
[8.4.X.1 予測ブロックサイズタイプの導出プロセス]
このプロセスへの入力は以下である。
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0192】
このプロセスの出力は変数sizeIdである。
【0193】
変数sizeIdは次のように導出される:
-cbWidthおよびcbHeightが両方とも4に等しい場合、sizeIdは0に等しく設定される。
-それ以外の場合、cbWidthおよびcbHeightが両方とも8以下である場合、sizeIdは1に等しく設定される。
-それ以外の場合、sizeIdは2に等しく設定される。
[表3]アフィン線形重み付けイントラ予測候補モードの仕様
【表3】
【0194】
[行列ベースのイントラ予測ではない通常のイントラ予測(非MIP)が適用されたブロックのMPMリスト構築における隣接ブロックのイントラモードの設定]
具体的には、非MIPイントラ予測が適用されたブロックのイントラモードは、隣接ブロックの利用可能性およびイントラモードに基づいて、以下のプロセスのように導出される。特定の状況下で隣接ブロックが利用可能でない場合、隣接ブロックのイントラモードにはデフォルト値(例えば、平面モード値)が割り当てられる。
【0195】
隣接ブロックのイントラモードの値は次のように導出される。
【0196】
このプロセスへの入力は以下である。
-現在の画像の左上のルマサンプルに対して現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)、
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0197】
このプロセスにおいて、隣接ブロックのルマイントラ予測モードcandIntraPredModeAおよびcandIntraPredModeBが導出される。
【0198】
表8-1は、イントラ予測モードIntraPredModeY[xCb][yCb]の値および関連する名称を指定する。
[表8-1]イントラ予測モードおよび関連する名称の仕様
【表4】
【0199】
隣接ブロックのルマイントラ予測モードcandIntraPredModeAおよびcandIntraPredModeBは次のように導出される:
-intra_luma_not_planar_flag[xCb][yCb]が1に等しい場合、以下の順序の段階である。
1.隣接位置(xNbA,yNbA)および(xNbB,yNbB)はそれぞれ、(xCb-1,yCb+cbHeight-1)および(xCb+cbWidth-1,yCb-1)に等しく設定される。
2.XがAまたはBのいずれかにより置き換えられている場合、変数candIntraPredModeXは次のように導出される:
-(xCb,yCb)に等しく設定された位置(xCurr,yCurr)および(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として、項目6.4.X[Ed.(BB):隣接ブロック利用可能性チェックプロセスtbd]で指定されるブロックの利用可能性導出プロセスが呼び出され、出力がavailableXに割り当てられる。
-候補イントラ予測モードcandIntraPredModeXは次のように導出される:
-以下の条件のうちの1つまたは複数が真である場合、candIntraPredModeXはINTRA_PLANARに等しく設定される。
-変数availableXがFALSEに等しい。
-CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、ciip_flag[xNbX][yNbX]が1に等しくない。
-pcm_flag[xNbX][yNbX]が1に等しい。
-XがBに等しく、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
-それ以外の場合、candIntraPredModeXは次のように導出される:
-intra_lwip_flag[xCb][yCb]が1に等しい場合、candIntraPredModeXは以下の順序の段階によって導出される:
i.ルマサンプルにおける現在のコーディングブロックの幅cbWidthおよびルマサンプルにおける現在のコーディングブロックの高さcbHeightを入力として、項目8.4.X.1で指定されるブロックのサイズタイプ導出プロセスが呼び出され、出力が変数sizeIdに割り当てられる。
ii.表1で指定されるIntraPredModeY[xNbX][yNbX]およびsizeIdを使用してcandIntraPredModeXが導出される。
-それ以外の場合、candIntraPredModeXは、IntraPredModeY[xNbX][yNbX]に等しく設定される。
【0200】
1に等しいintra_lwip_flag[x0][y0]は、ルマサンプルのイントラ予測タイプが行列ベースのイントラ予測であることを指定する。0に等しいintra_lwip_flag[x0][y0]は、ルマサンプルのイントラ予測タイプが行列ベースのイントラ予測ではないことを指定する。
【0201】
intra_lwip_flag[x0][y0]が存在しない場合、それは0に等しいものとして推定される。
【0202】
[実施形態1(MIPイントラモードに対して通常のイントラモードをマッピングするマッピングテーブル2の除去)]
【0203】
MIPが適用されたブロックのためのMPMリストにおける隣接ブロックのイントラモードを導出するプロセスは、さらに簡略化され得る。一例において、MIPイントラモードに対して通常のイントラモードをマッピングするマッピングテーブル(例えば、表2)を用いないプロセスが提案される。
【0204】
このプロセスへの入力は以下である。
-現在の画像の左上のルマサンプルに対して現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)、
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0205】
このプロセスにおいて、隣接ブロックのアフィン線形重み付けイントラ予測candLwipModeAおよびcandLwipModeBは以下の順序の段階によって導出される。
1.隣接位置(xNbA,yNbA)および(xNbB,yNbB)はそれぞれ、(xCb-1,yCb)および(xCb,yCb-1)に等しく設定される。
2.XがAまたはBのいずれかにより置き換えられている場合、変数candLwipModeXは次のように導出される:
-(xCb,yCb)に等しく設定された位置(xCurr、yCurr)および(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として、項目6.4.X[Ed.(BB):隣接ブロック利用可能性プロセスtbd]において指定されるブロックの利用可能性導出プロセスが呼び出され、出力がavailableXに割り当てられる。
-候補アフィン線形重み付けイントラ予測モードcandLwipModeXが次のように導出される:
-以下の条件のうちの1つまたは複数が真である場合、candLwipModeXを-1に等しく設定する。
-変数availableXがFALSEに等しい。
-CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、mh_intra_flag[xNbX][yNbX]が1に等しくない。
-pcm_flag[xNbX][yNbX]が1に等しい。
-XがBに等しく、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
-それ以外の場合、以下が適用される:
-ルマサンプルにおける現在のコーディングブロックの幅cbWidthおよびルマサンプルにおいける現在のコーディングブロックの高さcbHeightを入力として、項目8.4.X.1で指定されるブロックのサイズタイプ導出プロセスが呼び出され、出力が変数sizeIdに割り当てられる。
-intra_lwip_flag[xNbX][yNbX]が1に等しい場合、ルマサンプルにおける隣接コーディングブロックの幅nbWidthXおよびルマサンプルにおける隣接コーディングブロックの高さnbHeightXを入力として、項目8.4.X.1で指定されるブロックのサイズタイプ導出プロセスが呼び出され、出力が変数sizeIdXに割り当てられる。
-sizeIdがsizeIdXに等しい場合、candLwipModeXは、IntraPredModeY[xNbX][yNbX]に等しく設定される。
-それ以外の場合、candLwipModeXは-1に等しく設定される。
【0206】
この実施形態において、現在のブロックにMIPによるイントラ予測が適用され、現在のブロックの隣接ブロックにはMIPではないイントラ予測が適用される場合、現在のブロックのイントラモードの導出に使用される隣接ブロックのイントラ予測モードの値はデフォルト値に設定される(例えば、デフォルト値は-1である)。
【0207】
[実施形態2(通常のイントラモードに対してMIPイントラモードをマッピングするマッピングテーブル1の除去)]
【0208】
(MIPではない)イントラ予測が適用されたブロックのためのMPMリストにおける隣接ブロックのイントラモードを導出するプロセスは、さらに簡略化され得る。一例において、通常のイントラモードに対してMIPイントラモードをマッピングするマッピングテーブル(例えば、表1)を用いないプロセスが提案される。
【0209】
このプロセスへの入力は以下である。
-現在の画像の左上のルマサンプルに対して現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)、
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0210】
このプロセスにおいて、隣接ブロックのルマイントラ予測モードcandIntraPredModeAおよびcandIntraPredModeBが導出される。
【0211】
表8-2は、イントラ予測モードIntraPredModeY[xCb][yCb]の値および関連する名称を指定する。
[表8-2]イントラ予測モードおよび関連する名称の仕様
【表5】
【0212】
隣接ブロックのルマイントラ予測モードcandIntraPredModeAおよびcandIntraPredModeBは次のように導出される:
-intra_luma_not_planar_flag[xCb][yCb]が1に等しい場合、以下の順序の段階である。
1.隣接位置(xNbA,yNbA)および(xNbB,yNbB)はそれぞれ、(xCb-1,yCb+cbHeight-1)および(xCb+cbWidth-1,yCb-1)に等しく設定される。
2.XがAまたはBのいずれかにより置き換えられている場合、変数candIntraPredModeXは次のように導出される:
-(xCb,yCb)に等しく設定された位置(xCurr,yCurr)および(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)を入力として、項目6.4.X[Ed.(BB):隣接ブロック利用可能性チェックプロセスtbd]で指定されるブロックの利用可能性導出プロセスが呼び出され、出力がavailableXに割り当てられる。
-候補イントラ予測モードcandIntraPredModeXは次のように導出される:
-以下の条件のうちの1つまたは複数が真である場合、candIntraPredModeXはINTRA_PLANARに等しく設定される。
-変数availableXがFALSEに等しい。
-CuPredMode[xNbX][yNbX]がMODE_INTRAに等しくなく、ciip_flag[xNbX][yNbX]が1に等しくない。
-pcm_flag[xNbX][yNbX]が1に等しい。
-XがBに等しく、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
-それ以外の場合、candIntraPredModeXは次のように導出される:
-intra_lwip_flag[xCb][yCb]が1に等しい場合、candIntraPredModeXは以下の順序の段階によって導出される:
i.candIntraPredModeXはINTRA_PLANARに等しく設定される。
-それ以外の場合、candIntraPredModeXはIntraPredModeY[xNbX][yNbX]に等しく設定される。
【0213】
上記の非MIPの場合の例と比較して、現在のブロックにMIPではないイントラ予測が適用され、現在のブロックの隣接ブロックにはMIPが適用される場合、現在のブロックのイントラモードの導出に使用される隣接ブロックのイントラ予測モードの値はデフォルト値に設定される(例えば、デフォルト値は0(一例において、値0平面モードに対応する)である)。
【0214】
いくつかの例において、MIPはルマ成分に適用される。しかしながら、いくつかの場合では、対応する位置におけるルマモードに基づいてクロマイントラモードが導出され得る。そのルマ成分についてブロックにMIPが適用され、そのクロマモード導出が実行される場合、ITU JVET-N0217で開示される例において、MIPモードを非MIPイントラモード(一例において、現在のブロックのMIPモードおよびブロックサイズタイプに基づいて非MIPイントラモードは通常のイントラモードを意味する)に変換するために表1が使用される。
【0215】
本発明の一実施形態において、ブロックにMIPモードが適用され、クロマモード導出が実行される場合、対応するルマモードは平面モードに設定される。
【0216】
この方法で、現在のブロックのクロマモード導出プロセスおよび隣接ブロックのルマモード導出プロセスの両方において表1を除去することができる。
【0217】
[ルマイントラ予測モードの導出プロセス]
このプロセスへの入力は以下である。
-現在の画像の左上のルマサンプルに対して現在のルマコーディングブロックの左上のサンプルを指定するルマ位置(xCb,yCb)、
-ルマサンプルにおける現在のコーディングブロックの幅を指定する変数cbWidth、
-ルマサンプルにおける現在のコーディングブロックの高さを指定する変数cbHeight。
【0218】
このプロセスにおいて、ルマイントラ予測モードIntraPredModeY[xCb][yCb]が導出される。
【0219】
表19は、イントラ予測モードIntraPredModeY[xCb][yCb]の値および関連する名称を指定する。
[表19]イントラ予測モードおよび関連する名称の仕様
【表6】
【0220】
IntraPredModeY[xCb][yCb]は次のように導出される:
-intra_luma_not_planar_flag[xCb][yCb]が0に等しい場合、IntraPredModeY[xCb][yCb]がINTRA_PLANARに等しく設定される。
-それ以外の場合、BdpcmFlag[xCb][yCb][0]が1に等しい場合、IntraPredModeY[xCb][yCb]は、BdpcmDir[xCb][yCb][0]?INTRA_ANGULAR50:INTRA_ANGULAR18に等しく設定される。
それ以外の場合(intra_luma_not_planar_flag[xCb][yCb]が1に等しい)、以下の順序の段階が適用される:
1.隣接位置(xNbA,yNbA)および(xNbB,yNbB)はそれぞれ、(xCb-1,yCb+cbHeight-1)および(xCb+cbWidth-1,yCb-1)に等しく設定される。
2.XがAまたはBのいずれかにより置き換えられている場合、変数candIntraPredModeXは次のように導出される:
-(xCb,yCb)に等しく設定された位置(xCurr,yCurr)および(xNbX,yNbX)に等しく設定された隣接位置(xNbY,yNbY)、FALSEに等しく設定されたcheckPredModeY、および0に等しく設定されたcIdxを入力として、項目6.4.4で指定される隣接ブロックの利用可能性の導出プロセスが呼び出され、出力がavailableXに割り当てられる。
-候補イントラ予測モードcandIntraPredModeXは次のように導出される:
-以下の条件のうちの1つまたは複数が真である場合、candIntraPredModeXはINTRA_PLANARに等しく設定される。
-変数availableXがFALSEに等しい。
-CuPredMode[0][xNbX][yNbX]がMODE_INTRAに等しくない。
-intra_mip_flag[xNbX][yNbX]が1に等しい。
-XがBに等しく、yCb-1が((yCb>>CtbLog2SizeY)<<CtbLog2SizeY)未満である。
-それ以外の場合、candIntraPredModeXはIntraPredModeY[xNbX][yNbX]に等しく設定される。
3.x=0..4であるcandModeList[x]は次のように導出される:
-candIntraPredModeBがcandIntraPredModeAに等しく、candIntraPredModeAがINTRA_DCより大きい場合、x=0..4であるcandModeList[x]は次のように導出される:
【数5】
-それ以外の場合、candIntraPredModeBがcandIntraPredModeAに等しくなく、candIntraPredModeAまたはcandIntraPredModeBがINTRA_DCより大きい場合、以下が適用される:
-変数minABおよびmaxABは次のように導出される:
【数6】
-candIntraPredModeAおよびcandIntraPredModeBが両方ともINTRA_DCより大きい場合、x=0..4であるcandModeList[x]は次のように導出される:
【数7】
-maxAB-minABが1に等しい場合(境界を含む)、以下が適用される:
【数8】
-それ以外の場合、maxAB-minABが62以上である場合、以下が適用される:
【数9】
-それ以外の場合、maxAB-minABが2に等しい場合、以下が適用される:
【数10】
-それ以外の場合、以下が適用される:
【数11】
-それ以外の場合(candIntraPredModeAまたはcandIntraPredModeBがINTRA_DCより大きい)、x=0..4であるcandModeList[x]は次のように導出される:
【数12】
-それ以外の場合、以下が適用される:
【数13】
4.IntraPredModeY[xCb][yCb]は以下の手順を適用することにより導出される:
-intra_luma_mpm_flag[xCb][yCb]が1に等しい場合、IntraPredModeY[xCb][yCb]はcandModeList[intra_luma_mpm_idx[xCb][yCb]]に等しく設定される。
-それ以外の場合、IntraPredModeY[xCb][yCb]は以下の順序の段階を適用することにより導出される:
1.i=0..3、および各iについてj=(i+1)..4の場合、candModeList[i]がcandModeList[j]よりも大きい場合、両方の値は次のように交換される:
【数14】
2.IntraPredModeY[xCb][yCb]は以下の順序の段階により導出される:
i.IntraPredModeY[xCb][yCb]がintra_luma_mpm_remainder[xCb][yCb]に等しく設定される。
ii.IntraPredModeY[xCb][yCb]の値が1だけインクリメントされる。
iii.0~4に等しいi(境界を含む)について、IntraPredModeY[xCb][yCb]がcandModeList[i]以上である場合、IntraPredModeY[xCb][yCb]の値が1だけインクリメントされる。
【0221】
x=xCb..xCb+cbWidth-1およびy=yCb..yCb+cbHeight-1である変数IntraPredModeY[x][y]は、IntraPredModeY[xCb][yCb]に等しく設定される。
【0222】
実施例1
デコーディングデバイスまたはエンコーディングデバイスにより実装されるコーディング方法であって、
現在のブロックが行列ベースのイントラ予測(MIP)モードを使用して予測され、隣接ブロックがMIPモードではないイントラ予測モードを使用して予測される場合に、現在のブロックに隣り合う隣接ブロックのイントラ予測モードの値をデフォルト値に等しく設定する段階と、
上記デフォルト値に従って上記現在のブロックのMIPモードの値を取得する段階とを、備える、
方法。
【0223】
実施例2
上記デフォルト値が負の値である、実施例1に記載の方法。
【0224】
実施例3
上記デフォルト値が-1である、実施例1または2に記載の方法。
【0225】
実施例4
上記現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、実施例1から3のいずれか1つに記載の方法。
【0226】
実施例5
デコーディングデバイスまたはエンコーディングデバイスにより実装されるコーディング方法であって、
現在のブロックが行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、隣接ブロックがMIPモードを使用して予測される場合に、現在のブロックに隣り合う隣接ブロックのイントラ予測モードの値をデフォルト値に等しく設定する段階と、
上記デフォルト値に従って上記現在のブロックの上記イントラ予測モードの値を取得する段階とを、備える、
方法。
【0227】
実施例6
上記デフォルト値が、非角度イントラモードに対応する、実施例5に記載の方法。
【0228】
実施例7
上記デフォルト値が0または1である、実施例5または6に記載の方法。
【0229】
実施例8
上記現在のブロックがMIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、実施例5から7のいずれか1つに記載の方法。
【0230】
実施例9
実施例1から8のいずれか1つに記載の方法を実施するための処理回路を備える、エンコーダ(20)。
【0231】
実施例10
実施例1から8のいずれか1つに記載の方法を実施するための処理回路を備える、デコーダ(30)。
【0232】
実施例11
実施例1から8のいずれか1つに記載の方法を実行するためのプログラムコードを備える、コンピュータプログラム製品。
【0233】
実施例12
デコーダであって、
1つまたは複数のプロセッサと、
上記プロセッサに連結され、上記プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、上記プログラミングは、上記プロセッサによって実行されると、実施例1から8のいずれか1つに記載の方法を実施するように上記デコーダを構成する、非一時的可読記憶媒体と、を備える、
デコーダ。
【0234】
実施例13
エンコーダであって、
1つまたは複数のプロセッサと、
上記プロセッサに連結され、上記プロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、上記プログラミングは、上記プロセッサによって実行されると、実施例1から8のいずれか1つに記載の方法を実施するように上記エンコーダを構成する、非一時的可読記憶媒体と、を備える、
エンコーダ。
【0235】
以下は、上述の実施形態に示されるようなエンコーディング方法およびデコーディング方法のアプリケーションおよびそれらを用いたシステムの説明である。
【0236】
図15は、コンテンツ配布サービスを実現するためのコンテンツ供給システム3100を示すブロック図である。このコンテンツ供給システム3100は、捕捉デバイス3102、端末デバイス3106を含み、任意選択で、ディスプレイ3126を含む。捕捉デバイス3102は、通信リンク3104を介して端末デバイス3106と通信する。通信リンクは、上述した通信チャネル13を含んでよい。通信リンク3104は、限定されるものではないが、WIFI(登録商標)、イーサネット(登録商標)、ケーブル、無線(3G/4G/5G)、USBまたはこれらの任意の種類の組み合わせなどを含む。
【0237】
捕捉デバイス3102は、データを生成し、上記の実施形態に示されるようなエンコーディング方法により、データをエンコードしてよい。代替的に、捕捉デバイス3102は、データをストリーミングサーバ(図では図示せず)に配信してよく、サーバは、データをエンコードして、エンコード済みのデータを端末デバイス3106に伝送する。捕捉デバイス3102は、限定されるものではないが、カメラ、スマートフォンまたはパッド、コンピュータまたはラップトップ、ビデオ会議システム、PDA(登録商標)、車載デバイスまたはこれらのいずれかの組み合わせなどを含む。例えば、上述したように、捕捉デバイス3102はソースデバイス12を含んでよい。データがビデオを含む場合、捕捉デバイス3102に含まれるビデオエンコーダ20は、ビデオエンコーディング処理を実際に実行してよい。データがオーディオ(すなわち、音声)を含む場合、捕捉デバイス3102に含まれるオーディオエンコーダは、オーディオエンコーディング処理を実際に実行してよい。いくつかの実際のシナリオについて、捕捉デバイス3102は、これらを一緒に多重化することにより、エンコード済みのビデオおよびオーディオデータを配信する。他の実際のシナリオについて、例えば、ビデオ会議システムにおいて、エンコード済みのオーディオデータおよびエンコード済みのビデオデータは多重化されない。捕捉デバイス3102は、エンコード済みのオーディオデータおよびエンコード済みのビデオデータを別個に端末デバイス3106に配信する。
【0238】
コンテンツ供給システム3100において、端末デバイス310は、エンコード済みのデータを受信および再生する。端末デバイス3106は、データ受信および復元機能を有するデバイス、例えば、上述したエンコード済みのデータをデコードすることが可能なスマートフォンまたはパッド3108、コンピュータまたはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、セットトップボックス(STB)3116、ビデオ会議システム3118、ビデオ監視システム3120、パーソナルデジタルアシスタント(PDA)3122、車載デバイス3124またはこれらのいずれかの組み合わせなどであってよい。例えば、上述したように、端末デバイス3106はデスティネーションデバイス14を含んでよい。エンコード済みのデータがビデオを含む場合、端末デバイスに含まれるビデオデコーダ30は、ビデオデコーディングを実行することを優先させる。エンコード済みのデータがオーディオを含む場合、端末デバイスに含まれるオーディオデコーダは、オーディオデコーディング処理を実行することを優先させる。
【0239】
ディスプレイを有する端末デバイス、例えば、スマートフォンまたはパッド3108、コンピュータまたはラップトップ3110、ネットワークビデオレコーダ(NVR)/デジタルビデオレコーダ(DVR)3112、TV3114、パーソナルデジタルアシスタント(PDA)3122または車載デバイス3124について、端末デバイスは、デコード済みのデータをそのディスプレイに入力できる。ディスプレイを搭載していない端末デバイス、例えば、STB3116、ビデオ会議システム3118またはビデオ監視システム3120について、外部ディスプレイ3126は、デコード済みのデータを受信および示すために、内部でコンタクトされる。
【0240】
このシステムにおける各デバイスがエンコーディングまたはデコーディングを実行するとき、上述の実施形態に示されるような画像エンコーディングデバイスまたは画像デコーディングデバイスが使用されてよい。
【0241】
図16は、端末デバイス3106の例の構造を示す図である。端末デバイス3106が捕捉デバイス3102からストリームを受信した後に、プロトコル処理ユニット3202は、ストリームの伝送プロトコルを解析する。プロトコルは、限定されるものではないが、リアルタイムストリーミングプロトコル(RTSP)、ハイパーテキストトランスファープロトコル(HTTP)、HTTPライブストリーミングプロトコル(HLS)、MPEG-DASH、リアルタイムトランスポートプロトコル(RTP)、リアルタイムメッセージングプロトコル(RTMP)、または、これらの任意の種類の組み合わせなどを含む。
【0242】
プロトコル処理ユニット3202がストリームを処理した後に、ストリームファイルが生成される。当該ファイルは、逆多重化ユニット3204に出力される。逆多重化ユニット3204は、多重化されたデータをエンコード済みのオーディオデータおよびエンコード済みのビデオデータに分離できる。上述したように、いくつかの実際のシナリオについて、例えば、ビデオ会議システムでは、エンコード済みのオーディオデータおよびエンコード済みのビデオデータは多重化されていない。この状況において、エンコード済みのデータは、逆多重化ユニット3204を介することなくビデオデコーダ3206およびオーディオデコーダ3208へ送信される。
【0243】
逆多重化処理を介して、ビデオエレメンタリストリーム(ES)、オーディオESおよび任意選択で字幕が生成される。上述の実施形態において説明したように、ビデオデコーダ30を含むビデオデコーダ3206は、上述の実施形態に示されるようなデコーディング方法により、ビデオESをデコードしてビデオフレームを生成し、このデータを同期ユニット3212に入力する。オーディオデコーダ3208は、オーディオESをデコードしてオーディオフレームを生成し、このデータを同期ユニット3212に入力する。代替的に、ビデオフレームは、それを同期ユニット3212に入力する前に、(図16には図示せず)バッファに格納されてよい。同様に、オーディオフレームは、それを同期ユニット3212に入力する前に、(図16には図示せず)バッファに格納されてよい。
【0244】
同期ユニット3212は、ビデオフレームおよびオーディオフレームを同期させて、ビデオ/オーディオをビデオ/オーディオディスプレイ3214に供給する。例えば、同期ユニット3212は、ビデオおよびオーディオ情報の提示を同期させる。情報は、コードされたオーディオおよびビジュアルデータの提示に関するタイムスタンプ、および、データストリームそのものの配信に関するタイムスタンプを用いて構文でコードしてよい。
【0245】
ストリームに字幕が含まれている場合、字幕デコーダ3210は、字幕をデコードし、それをビデオフレームおよびオーディオフレームと同期させ、ビデオ/オーディオ/字幕をビデオ/オーディオ/字幕ディスプレイ3216に供給する。
【0246】
本発明は、上述のシステムに限定されるものではなく、上述の実施形態における画像エンコーディングデバイスまたは画像デコーディングデバイスのいずれかは、他のシステム、例えば車載システムに組み込まれてよい。
【0247】
[数学演算子]
本願において使用される数学演算子は、Cプログラミング言語において使用されるものと同様である。しかしながら、整数除算および算術シフト演算の結果はより厳密に定義され、べき乗および実数値除算などの追加の演算が定義される。番号およびカウントの方式は概して0から始まり、例えば「第1」は0番目と同等であり、「第2」は1番目と同等であり、以降も同様である。
【0248】
[算術演算子]
以下の算術演算子が次のように定義される。
【表7】
【0249】
[論理演算子]
以下の論理的演算子が次のように定義される。
x&&y xおよびyのブール論理「and」
x||y xおよびyのブール論理「or」
! ブール論理「not」
x?y:z xが真であるかまたは0に等しくない場合、yの値を評価し、それ以外の場合、zの値を評価する。
【0250】
[関係演算子]
以下の関係演算子を次のように定義する。
> より大きい
>= 以上
< より小さい
<= 以下
= = に等しい
!= に等しくない
関係演算子が、値「na」(非該当)を割り当てられているシンタックス要素または変数に適用される場合、値「na」は、そのシンタックス要素または変数の区別的な値として扱われる。値「na」は、任意の他の値に等しくないとみなされる。
【0251】
[ビット単位演算子]
以下のビット単位演算子が次のように定義される。
& ビット単位の「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に等しい値を有する。
【0252】
[代入演算子]
以下の算術演算子は以下のように定義される。
= 代入演算子
++ インクリメント、すなわち、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)と同等である。
【0253】
[範囲表記]
値の範囲を指定するために以下の表記が使用される。
x=y..z xはyから始まるzまで(境界を含む)の整数値を取り、x、y、zは整数であり、zはyより大きい。
【0254】
[数学関数]
以下の数学関数が定義される。
【数15】
Asin(x) -1.0から1.0の範囲(境界を含む)にある引数xに対して演算する正弦の逆三角関数であり、出力値は、-π÷2からπ÷2の範囲(境界を含む)にある(単位はラジアン)。
Atan(x) 引数xに対して演算する正接の逆三角関数であり、出力値は、-π÷2からπ÷2の範囲(境界を含む)にある(単位はラジアン)。
【数16】
Ceil(x) x以上の最小の整数
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
Clip1(x)=Clip3(0,(1<<BitDepth)-1,x)
【数17】
Cos(x) ラジアンの単位である引数xに対して演算する余弦の三角関数
Floor(x) x以下の最大の整数
【数18】
Ln(x) xの自然対数(底をeとする対数、eは自然対数底定数2.718 281 828...)
Log2(x) 底を2とするxの対数
Log10(x) 底を10とするxの対数
【数19】
Round(x)=Sign(x)*Floor(Abs(x)+0.5)
【数20】
Sin(x) ラジアンの単位である引数xに対して演算する正弦の三角関数
【数21】
Swap(x,y)=(y,x)
Tan(x) ラジアンの単位である引数xに対して演算する正接の三角関数
【0255】
[演算の優先度の順位]
数式における優先度の順位が、括弧の使用によって明示的に示されないとき、以下の規則が適用される。
【0256】
より高い優先度の演算は、より低い優先度の任意の操作の前に評価される。
【0257】
同一の優先度の演算は、左から右に順に評価される。
【0258】
以下の表は、演算の優先度を最高から最低まで指定し、表においてより高い位置は、より高い優先度を示す。
【0259】
Cプログラミング言語においても使用される演算子の場合、この明細書において使用される優先度の順序は、Cプログラミング言語において使用されるものと同一である。
【0260】
表:最高(表の一番上)から最低(表の一番下)までの演算優先度
【表8】
【0261】
[論理演算のテキストの説明]
テキストにおいて、以下の形式で数学的に記載される論理演算のステートメントは、
【数22】
以下の方式で記載されてよい。
【0262】
...以下の通りである/...以下を適用する:(...as follows/...the following applies:)
-条件0の場合、ステートメント0(If condition 0,statement 0)
-そうでなければ、条件1の場合、ステートメント1(Otherwise,if condition 1 statement 1)
-...
-そうでなければ(残りの条件の情報についての記述)、ステートメントn(Otherwise (informative remark on remaining condition),statement n)。
【0263】
テキスト中のそれぞれの「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」をマッチングすることによって識別され得る。
【0264】
テキストにおいて、以下の形式で数学的に記載される論理演算のステートメントは、
【数23】
以下の方式で記載されてよい。
...以下の通りである/...以下が適用される:(...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)
【0265】
テキストにおいて、以下の形式で数学的に記載される論理演算のステートメントは、
【数24】
以下の方式で記載されてよい。
条件0の場合、ステートメント0(When condition0,statement0)
条件1の場合、ステートメント1(When condition1,statement1)。
【0266】
本発明の実施形態は、主にビデオコーディングに基づいて記載されているが、本明細書に記載のコーディングシステム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のために等しく使用され得る。
【0267】
例えばエンコーダ20およびデコーダ30の実施形態、ならびに、例えばエンコーダ20およびデコーダ30を参照して本明細書に記載された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装され得る。ソフトウェアにおいて実装される場合、機能は、コンピュータ可読媒体に格納され得る、または、通信媒体を介して、1つまたは複数の命令またはコードとして送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ可読媒体は、データ記憶媒体など有形の媒体に対応するコンピュータ可読記憶媒体、または、例えば通信プロトコルに従ってコンピュータプログラムをある場所から別の場所へ転送することを容易にする任意の媒体を含む通信媒体を含み得る。このように、コンピュータ可読媒体は一般に、(1)非一時的である有形コンピュータ可読記憶媒体、または、(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明される技法の実装のための命令、コードおよび/またはデータ構造体を取得するべく1つまたは複数のコンピュータ、または、1つまたは複数のプロセッサがアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含んでよい。
【0268】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを保存するのに使用でき、コンピュータによってアクセスできる、任意の他の媒体を含むことができる。また、任意の接続は、適切にコンピュータ可読媒体と称される。例えば、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者線(DSL)または、赤外線、無線、およびマイクロ波などの無線技術を使用して、命令がウェブサイト、サーバ、または、他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または、赤外線、無線、およびマイクロ波などの無線技術は、媒体の定義に含まれる。しかしながら、そのコンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または、他の一時的媒体を含まず、代わりに、非一時的、有形の記憶媒体を指すことを理解すべきである。本明細書において使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタルバーサタイルディスク(DVD)、フロッピーディスク、およびブルーレイ(登録商標)ディスクを含み、ディスク(disk)は通常、磁気的にデータを再生し、ディスク(disc)はレーザを用いて光学的にデータを再生する。上記の組み合わせも、コンピュータ可読媒体の範囲に含まれるべきである。
【0269】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の同等の集積もしくはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行されてよい。したがって、「プロセッサ」という用語は、本明細書において使用される場合、前述の構造、または、本明細書において説明される技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書において説明される機能は、エンコーディングおよびデコーディングについて構成される専用ハードウェアおよび/またはソフトウェアモジュール内で提供され得る、または、組み合わされたコーデックに組み込まれ得る。また、当該技法は、1つまたは複数の回路、または論理要素において完全に実装され得る。
【0270】
本開示の技法は、無線ハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。様々なコンポーネントモジュール、またはユニットは、本開示において、開示の技法を実行するよう構成されるデバイスの機能的側面を強調するように説明されているが、異なるハードウェアユニットによる実現を必ずしも要求するものではない。むしろ、上述したように、好適なソフトウェアおよび/またはファームウェアと連動して、様々なユニットがコーデックハードウェアユニットにして組み合わされるか、または、上述したように、1つまたは複数のプロセッサを含む相互運用ハードウェアユニットの集合によって提供されてよい。
[項目1]
デコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、前記現在のブロックと隣り合う隣接ブロックは、前記現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定する段階と、
前記デフォルト値に従って前記現在のブロックのMIPモードの値を取得する段階と、を備える、
方法。
[項目2]
前記デフォルト値が負の値である、項目1に記載の方法。
[項目3]
前記デフォルト値が-1である、項目1または2に記載の方法。
[項目4]
前記現在のブロックが、MIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、項目1から3のいずれか一項に記載の方法。
[項目5]
前記MIP指示情報が、フラグintra_mip_flagによって示される、項目4に記載の方法。
[項目6]
デコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、前記現在のブロックと隣り合う隣接ブロックが、前記現在のブロックの候補イントラ予測モードの前記値を導出するために使用され、MIPモードを使用して予測される、設定する段階と、
前記デフォルト値に従って前記現在のブロックの前記イントラ予測モードの値を取得する段階と、を備える、
方法。
[項目7]
前記デフォルト値が、非角度イントラモードに対応する、項目6に記載の方法。
[項目8]
前記デフォルト値が0または1であり、0の値は平面モードを示し、1の値はDCモードを示す、項目6または7に記載の方法。
[項目9]
前記現在のブロックがMIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、項目6から8のいずれか一項に記載の方法。
[項目10]
前記MIP指示情報が、フラグintra_mip_flagによって示される、項目9に記載の方法。
[項目11]
デコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックのビットストリームを取得する段階と、
前記ビットストリームに従って前記現在のブロックのルマ成分について行列ベースのイントラ予測(MIP)指示情報の値を取得する段階と、
前記現在のブロックに対してクロマモード導出プロセスを実行する段階と、を備え、
前記MIP指示情報の前記値が、前記現在のブロックが行列ベースのイントラ予測を使用して予測されたことを示す場合に、前記現在のブロックの対応するルマイントラ予測モードが平面モードに設定される、
方法。
[項目12]
前記対応するルマイントラ予測モードが、ルマ成分における位置から導出され(xCb+cbWidth/2,yCb+cbHeight/2)、(xCb,yCb)は、現在の画像の左上のルマサンプルに対して前記現在のブロックのクロマ成分の左上のサンプルを指定し、cbWidthは、ルマサンプルにおける前記現在のブロックの幅を指定し、cbHeightは、ルマサンプルにおける前記現在のブロックの高さを指定する、
項目11に記載の方法。
[項目13]
項目1から12のいずれか一項に記載の方法を実施するための処理回路を備える、デコーダ。
[項目14]
エンコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックが、行列ベースのイントラ予測(MIP)モードを使用して予測され、前記現在のブロックと隣り合う隣接ブロックが、前記現在のブロックの候補イントラ予測モードの値を導出するために使用され、MIPモードではないイントラ予測モードを使用して予測される、設定する段階と、
前記デフォルト値に従って前記現在のブロックのMIPモードの値をエンコードする段階と、を備える、
方法。
[項目15]
前記デフォルト値が負の値である、項目14に記載の方法。
[項目16]
前記デフォルト値が-1である、項目14または15に記載の方法。
[項目17]
前記現在のブロックがMIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、項目14から16のいずれか一項に記載の方法。
[項目18]
前記MIP指示情報が、フラグintra_mip_flagによって示される、項目17に記載の方法。
[項目19]
エンコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックの候補イントラ予測モードの値をデフォルト値に設定する段階であって、前記現在のブロックが、行列ベースのイントラ予測(MIP)モードではないイントラ予測モードを使用して予測され、前記現在のブロックと隣り合う隣接ブロックが、前記現在のブロックの候補イントラ予測モードの前記値を導出するために使用され、MIPモードを使用して予測される、設定する段階と、
前記デフォルト値に従って前記現在のブロックの前記イントラ予測モードの値をエンコードする段階と、を備える、
方法。
[項目20]
前記デフォルト値が、非角度イントラモードに対応する、項目19に記載の方法。
[項目21]
前記デフォルト値が0または1であり、0の値は平面モードを示し、1の値はDCモードを示す、項目19または20に記載の方法。
[項目22]
前記現在のブロックがMIPモードを使用して予測されたかどうかが、MIP指示情報の値に従って示される、項目19から21のいずれか一項に記載の方法。
[項目23]
前記MIP指示情報が、フラグintra_mip_flagによって示される、項目22に記載の方法。
[項目24]
エンコーディングデバイスによって実装されるコーディング方法であって、
現在のブロックのルマ成分について行列ベースのイントラ予測(MIP)指示情報の値を取得する段階と、
前記MIP指示情報の値が、前記現在のブロックが行列ベースのイントラ予測を使用して予測されたことを示す場合に、前記現在のブロックの対応するルマイントラ予測モードを平面モードに設定する段階と、
前記設定された平面モードに従って、前記現在のブロックについて予め定義されたクロマイントラ予測モードのリストにインデックスをコーディングする段階と、を備える、
方法。
[項目25]
前記対応するルマイントラ予測モードが、ルマ成分における位置に対して設定され(xCb+cbWidth/2,yCb+cbHeight/2)、(xCb,yCb)は、現在の画像の左上のルマサンプルに対して前記現在のブロックのクロマ成分の左上のサンプルを指定し、cbWidthは、ルマサンプルにおける前記現在のブロックの幅を指定し、cbHeightは、ルマサンプルにおける前記現在のブロックの高さを指定する、
項目24に記載の方法。
[項目26]
項目14から25のいずれか一項に記載の方法を実施するための処理回路を備える、エンコーダ。
[項目27]
コンピュータに、項目1から12のいずれか一項に記載の方法を実行させる、プログラム。
[項目28]
コンピュータに、項目14から25のいずれか一項に記載の方法を実行させる、プログラム。
[項目29]
デコーダであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに連結され、前記1つまたは複数のプロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記1つまたは複数のプロセッサによって実行されると、項目1から12のいずれか一項に記載の方法を実施するように前記デコーダを構成する、非一時的コンピュータ可読記憶媒体と、を備える、
デコーダ。
[項目30]
エンコーダであって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに連結され、前記1つまたは複数のプロセッサによる実行のためのプログラミングを格納する非一時的コンピュータ可読記憶媒体であって、前記プログラミングは、前記1つまたは複数のプロセッサによって実行されると、項目14から25のいずれか一項に記載の方法を実施するように前記エンコーダを構成する、非一時的コンピュータ可読記憶媒体と、を備える、
エンコーダ。
[項目31]
複数のシンタックス要素を含むことによる、ビデオ信号のためのエンコード済みのビットストリームであって、前記複数のシンタックス要素が、項目1から30のいずれか一項に従って条件付きでシグナリングされる、エンコード済みのビットストリーム。
[項目32]
イメージデコーディングデバイスによってデコードされるエンコード済みのビットストリームを含む非一時的記録媒体であって、前記ビットストリームが、ビデオ信号またはイメージ信号のフレームを複数のブロックに分割することにより生成され、複数のシンタックス要素を含み、前記複数のシンタックス要素が、項目1から31のいずれか一項に従ってコーディングされる、非一時的記録媒体。
図1A
図1B
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
【外国語明細書】