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

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

▶ アリス エンタープライジズ インコーポレイテッドの特許一覧

<>
  • 特許-適応型不均等重み付けによる平面予測 図1
  • 特許-適応型不均等重み付けによる平面予測 図2
  • 特許-適応型不均等重み付けによる平面予測 図3
  • 特許-適応型不均等重み付けによる平面予測 図4
  • 特許-適応型不均等重み付けによる平面予測 図5
  • 特許-適応型不均等重み付けによる平面予測 図6
  • 特許-適応型不均等重み付けによる平面予測 図7A
  • 特許-適応型不均等重み付けによる平面予測 図7B
  • 特許-適応型不均等重み付けによる平面予測 図8
  • 特許-適応型不均等重み付けによる平面予測 図9
  • 特許-適応型不均等重み付けによる平面予測 図10
  • 特許-適応型不均等重み付けによる平面予測 図11
  • 特許-適応型不均等重み付けによる平面予測 図12
  • 特許-適応型不均等重み付けによる平面予測 図13
  • 特許-適応型不均等重み付けによる平面予測 図14
  • 特許-適応型不均等重み付けによる平面予測 図15
  • 特許-適応型不均等重み付けによる平面予測 図16
  • 特許-適応型不均等重み付けによる平面予測 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-16
(45)【発行日】2024-07-24
(54)【発明の名称】適応型不均等重み付けによる平面予測
(51)【国際特許分類】
   H04N 19/593 20140101AFI20240717BHJP
   H04N 19/70 20140101ALI20240717BHJP
【FI】
H04N19/593
H04N19/70
【請求項の数】 9
(21)【出願番号】P 2020540699
(86)(22)【出願日】2018-10-09
(65)【公表番号】
(43)【公表日】2020-12-17
(86)【国際出願番号】 US2018055099
(87)【国際公開番号】W WO2019074985
(87)【国際公開日】2019-04-18
【審査請求日】2021-09-29
(31)【優先権主張番号】62/569,868
(32)【優先日】2017-10-09
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/155,858
(32)【優先日】2018-10-09
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】514188564
【氏名又は名称】アリス エンタープライジズ エルエルシー
【氏名又は名称原語表記】ARRIS ENTERPRISES LLC
【住所又は居所原語表記】3871 Lakefield Drive, Suwanee, GA 30024, U.S.A.
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(72)【発明者】
【氏名】パヌソポーン、クリット
(72)【発明者】
【氏名】ユ、ユエ
(72)【発明者】
【氏名】ホン、ソンウク
(72)【発明者】
【氏名】ワン、リミン
【審査官】坂東 大五郎
(56)【参考文献】
【文献】Krit Panusopone et al.,Weighted Angular Prediction,Joint Video Exploration Team (JVET),2017年04月04日,[JVET-F0104] (version 1)
【文献】Vadim Seregin et al.,Block shape dependent intra mode coding,Joint Video Exploration Team (JVET),2017年07月16日,[JVET-G0159] (version 1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
ビデオをコーディングする方法であって、
ビデオフレームのコーディング領域内にコーディングユニット(CU)を定義することであって、CUxとCUyの座標を有する前記CUを定義すること、
イントラ予測モードが垂直モードの場合に前記コーディングユニットの上側に位置する参照行におけるピクセルをメイン参照ピクセルとして定義し、前記イントラ予測モードが水平モードの場合に前記コーディングユニットの左側に位置する参照列におけるピクセルを前記メイン参照ピクセルとして定義することであって、前記メイン参照ピクセルに関連付けられたメインxとメインyの座標を有する前記メイン参照ピクセルを定義すること、
前記イントラ予測モードが前記垂直モードの場合に前記コーディングユニットの左側に位置する参照列におけるピクセルをサイド参照ピクセルとして定義し、前記イントラ予測モードが前記水平モードの場合に前記コーディングユニットの上側に位置する参照行におけるピクセルを前記サイド参照ピクセルとして定義することであって、前記サイド参照ピクセルに関連付けられたサイドxとサイドyの座標を有する前記サイド参照ピクセルを定義すること、
前記イントラ予測モードのセットを定義すること、
前記イントラ予測モードのセット内において同じ予測角度を共有するモード2とモード66を識別することであって、前記水平モードの一つである前記モード2と前記垂直モードの一つである前記モード66を識別すること、
前記イントラ予測モードのセットから1つのイントラ予測モードを選択すること、
前記イントラ予測モードが角度予測である場合に前記メイン参照ピクセルと前記サイド参照ピクセルとの組み合わせに少なくとも部分的に基づいて前記コーディングユニットの予測CUの予測ピクセルを生成すること、
を備え、
前記モード2と前記モード66の各々が、同じコードワードを用いてコーディングされ、
前記モード2と前記モード66の各々が、予測方向に少なくとも部分的に基づいて区別される、ビデオをコーディングする方法。
【請求項2】
前記予測方向が前記コーディングユニットの幅及び高さを規定するブロック寸法に基づく、請求項1に記載のビデオをコーディングする方法。
【請求項3】
前記予測CUに基づいて前記ビデオフレームがエントロピー符号化される、請求項1に記載のビデオをコーディングする方法。
【請求項4】
前記イントラ予測モードのセットが0~66の間の整数値のモードを含む、請求項1に記載のビデオをコーディングする方法。
【請求項5】
前記モード2に関連する角度予測を実施する場合に、
前記メイン参照ピクセルに関連するメイン重み付け値を決定すること、
前記サイド参照ピクセルに関連するサイド重み付け値を決定すること、
前記メイン重み付け値と組み合わせられた前記メイン参照ピクセルと、前記サイド重み付け値と組み合わせられた前記サイド参照ピクセルとの組み合わせに少なくとも部分的に基づいて、前記コーディングユニットの予測CUの予測ピクセルを生成すること、
を含む、請求項1に記載のビデオをコーディングする方法。
【請求項6】
前記メイン重み付け値が前記コーディングユニットと前記メイン参照ピクセルとの間の距離に少なくとも部分的に基づき、前記サイド重み付け値が前記コーディングユニットと前記サイド参照ピクセルとの間の距離に少なくとも部分的に基づく、請求項5に記載のビデオをコーディングする方法。
【請求項7】
前記予測CUに基づいて前記ビデオフレームがエントロピー符号化される、請求項6に記載のビデオをコーディングする方法。
【請求項8】
前記モード66に関連する角度予測を実施する場合に、
前記メイン参照ピクセルに関連するメイン重み付け値を決定すること、
前記サイド参照ピクセルに関連するサイド重み付け値を決定すること、
前記メイン重み付け値と組み合わせられた前記メイン参照ピクセルと、前記サイド重み付け値と組み合わせられた前記サイド参照ピクセルとの組み合わせに少なくとも部分的に基づいて、前記コーディングユニットの予測CUの予測ピクセルを生成すること、
を含む、請求項1に記載のビデオをコーディングする方法。
【請求項9】
前記メイン重み付け値が前記コーディングユニットと前記メイン参照ピクセルとの間の距離に少なくとも部分的に基づき、前記サイド重み付け値が前記コーディングユニットと前記サイド参照ピクセルとの間の距離に少なくとも部分的に基づく、請求項8に記載のビデオをコーディングする方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングの分野に関し、特に、符号化のためのモード数を減らすことによって、より高いビットレート、より高い解像度、およびより高い品質のビデオを可能にする符号化効率の向上に関する。この出願は、2017年10月9日に提出された米国仮出願番号第62/569,868に基づく優先権を主張し、その内容全体が参照により本明細書に組み込まれる。
【背景技術】
【0002】
日々進化するビデオコーディング標準の技術的向上により、より高いビットレート、より高い解像度、およびより高品質のビデオを可能にする符号化効率が向上しつつある。ジョイントビデオエクスプロレーションチーム(Joint Video Exploration Team)は、JVETと呼ばれる新しいビデオコーディング方式を開発している。JVETは、HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、ブロックベースのハイブリッド空間および時間予測コーディング方式である。ただし、HEVCと比べて、JVETは、復号化画像を生成するためのビットストリーム構造、構文、制約、およびマッピングに対する多くの変更を含む。JVETは、重み付け角度予測を含む種々のコーディング技術を利用するジョイントエクスプロレーションモデル(JEM)エンコーダおよびデコーダに実装されている。
【0003】
現在のJVET設計では、67個の角度コーディングモードを使用して予測CUを決定する。しかしながら、これらのコーディングモードのうちの2つ(モード2およびモード66)は共通の角度を共有する。したがって、コーディングの負担を軽減するためにモード2およびモード66の共通の角度を利用してJVETをコーディングするシステムおよび方法が必要とされている。
【発明の概要】
【0004】
1つまたは複数のコンピュータのシステムは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせがシステムにインストールされて作動時に特定の操作または動作をシステムに実行させることにより、それら特定の操作または動作を実現するように構成され得る。1つまたは複数のコンピュータプログラムは、データ処理装置による実行時にそのデータ処理装置に特定の操作または動作を実行させる命令を含むことにより、それら特定の操作または動作を実現するように構成され得る。一般的な一態様は、ビデオフレームのコーディング領域内にコーディングユニット(CU)を定義することであって、CUxおよびCUyの座標を有するCUを定義することを含み、当該定義することはさらに、メイン参照(main reference)に関連付けられたメインxおよびメインyの座標を有するメイン参照ピクセルをコーディング領域内に定義することを含む。このステップはさらに、サイド参照(side reference)に関連付けられたサイドxおよびサイドyの座標を有するサイド参照ピクセルをコーディング領域内に定義することを含み得る。また、システムおよび方法は、予測モードのセットを定義すること、および/または予測モードのセット内の2つの離散予測モードを識別することを含み得る。システムおよび方法はさらに、予測モードのセットから1つの予測モードを選択すること、および/またはメイン参照ピクセルとサイド参照ピクセルとの組み合わせに少なくとも部分的に基づいてコーディングユニットの予測CUを生成することを含み得る。また、システムおよび方法は、予測方向に少なくとも部分的に基づいて2つの離散予測モードの各々が区別される方法と同じ方法でコーディングユニットの予測CUがコーディングされるステップを含み得る。この態様の他の実施形態は、上記方法の動作を実現するように構成された、対応するコンピュータシステム、装置、および1つまたは複数のコンピュータストレージデバイスに記録されたコンピュータプログラムを含む。
【0005】
実装形態としては、予測方向がコーディングユニットの1つまたは複数の特性に基づいたJVETビデオをコーディングする方法、予測CUがエントロピー符号化されたJVETビデオをコーディングする方法、予測方向がコーディングユニットの幅に少なくとも部分的に基づいたJVETビデオをコーディングする方法、および/または予測モードが0~66の間の整数値のモードを含むJVETビデオをコーディングする方法、および/または2つの離散予測モードがモード2およびモード66であるJVETビデオをコーディングする方法、のうちの1つ以上を含み得る。また、いくつかの実施形態において、JVETビデオをコーディングする方法は、予測モード2に関連付けられたコーディングが、メイン参照ピクセルに関連付けられたメイン重み付け値(main weight value)を決定すること、サイド参照ピクセルに関連付けられたサイド重み付け値(side weight value)を決定すること、および、メイン重み付け値と組み合わせられたメイン参照ピクセルとサイド重み付け値と組み合わせられたサイド参照ピクセルとの組み合わせに少なくとも部分的に基づいてコーディングユニットの予測CUを生成することを含むことに基づくものとすることができる。上記技術の実装形態には、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアが含まれ得る。
【0006】
本発明のさらなる詳細は、添付の図面を用いて説明される。
【図面の簡単な説明】
【0007】
図1】複数のコーディングツリーユニット(CTU)へのフレームの分割を示す図。
図2】クワッドツリー分割および対称バイナリ分割を用いた、複数のコーディングユニット(CU)へのCTUの例示的な分割を示す図。
図3図2の分割のクワッドツリーおよびバイナリツリー(QTBT)表現を示す図。
図4】CUをより小さな2つのCUへ分割する場合のとり得る4つの非対称バイナリ分割を示す図。
図5】クワッドツリー分割、対称バイナリ分割、および非対称バイナリ分割を用いた、複数のCUへのCTUの例示的な分割を示す図。
図6図5の分割のQTBT表現を示す図。
図7A】JVETエンコーダにおけるCUコーディングの簡略ブロック図。
図7B】JVETエンコーダにおけるCUコーディングの簡略ブロック図。
図8】JVETの輝度成分のとり得る67個のイントラ予測モードを示す図。
図9】JVETエンコーダにおけるCUデコーディングの簡略ブロック図。
図10】JVETエンコーダにおけるCUコーディングの方法の実施形態を示す図。
図11】JVETエンコーダにおけるCUコーディングの簡略ブロック図。
図12】JVETデコーダにおけるCUデコーディングの簡略ブロック図。
図13】効率を向上させたコーディングシステムおよび方法の簡略ブロック図。
図14】JVETエンコーダにおいて効率を向上させたCUコーディングの簡略ブロック図。
図15】JVETデコーダにおいて効率を向上させたCUデコーディングの簡略ブロック図。
図16】CUコーディングの方法を処理するべく適応化および/または構成されたコンピュータシステムの実施形態を示す図。
図17】JVETエンコーダ/デコーダにおけるCUコーディング/デコーディングのためのコーダ/デコーダシステムの実施形態を示す図。
【発明を実施するための形態】
【0008】
図1は、複数のコーディングツリーユニット(CTU)100へのフレームの分割を示す。フレームはビデオシーケンスの画像とすることができる。フレームは、画像内の強度測定値を表すピクセル値を有したマトリクスまたはマトリクスのセットを含み得る。したがって、マトリクスのセットによりビデオシーケンスを生成することができる。ピクセル値は、フルカラービデオコーディングにおける色と明るさを表すように定義することができ、ピクセルは3つのチャネルに分割される。例えば、YCbCr色空間では、ピクセルは、画像内のグレーレベル強度を表す輝度(luma)値Yと、グレーから青への色の違いの程度とグレーから赤への色の違いの程度を表す2つの色差(chrominance)値Cb,Crとを有し得る。他の実施形態では、ピクセル値は、異なる色空間または異なるモデルの値で表すことができる。ビデオの解像度はフレーム内のピクセル数を決定し得る。解像度が高いほど、ピクセルがより多く、画像がより鮮明であることを意味するが、帯域幅、ストレージ、および伝送要件も高くなる。
【0009】
ビデオシーケンスのフレームは、JVETを使用して符号化および復号化され得る。JVETは、ジョイントビデオエクスプロレーションチーム(Joint Video Exploration Team)によって開発されているビデオコーディング方式である。JVETのバージョンは、JEM(Joint Exploration Model)エンコーダおよびデコーダに実装されている。JVETは、HEVC(High Efficiency Video Coding)などの他のビデオコーディング方式と同様に、ブロックベースのハイブリッド空間および時間予測コーディング方式である。図1に示されるように、フレームはまず、JVETによるコーディング中に、CTU100と呼ばれる複数の正方形ブロックに分割される。例えば、これらのCTU100は128×128ピクセルのブロックとすることができる。
【0010】
図2は、複数のCU102へのCTU100の例示的な分割を示す。フレーム内の各CTU100は、1つまたは複数のCU(コーディングユニット)102に分割され得る。CU102は、以下で説明するように予測および変換に使用され得る。HEVCとは異なり、JVETでは、CU102は長方形または正方形とすることができ、予測ユニットまたは変換ユニットにさらに分割することなくコーディングすることができる。CU102は、その元のCTU100と同程度の大きさでもよいし、または元のCTU100を4×4ブロック程度により小さく細分化したものでもよい。
【0011】
JVETでは、CTU100がクワッドツリーおよびバイナリツリー(QTBT)方式に従って複数のCU102に分割され得る。この方式では、CTU100がクワッドツリーに従って複数の正方形ブロックに再帰的に分割されるとともに、それら正方形ブロックがバイナリツリーに従って水平方向または垂直方向に再帰的に分割され得る。CTUサイズ、クワッドツリーやバイナリツリーのリーフノードの最小サイズ、バイナリツリーのルートノードの最大サイズ、バイナリツリーの最大深度などのパラメータは、QTBTに従った分割を制御するように設定され得る。
【0012】
いくつかの実施形態では、JVETは、QTBTのバイナリツリー部分でバイナリ分割を対称分割に制限し得るものであり、この場合、ブロックは中央線に沿って垂直方向または水平方向に半分に分割され得る。
【0013】
非限定的な例として、図2は複数のCU102に分割されたCTU100を示しており、実線はクワッドツリー分割を示し、破線は対称バイナリツリー割を示している。図示されるように、バイナリ分割は、対称的な水平分割と垂直分割により、CTUの構造とそのCTUの複数のCUへの細分化を規定することができる。
【0014】
図3は、図2の分割のQTBT表現を示す。クワッドツリーのルートノードはCTU100を表しており、クワッドツリー部分における各々の子ノードは、親の正方形ブロックから分割された4つの正方形ブロックのうちの1つを表している。クワッドツリーのリーフノードによって表される正方形ブロックは、バイナリツリーを用いて対照的に0(ゼロ)または1回以上分割され得るものとなり、クワッドツリーのリーフノードがバイナリツリーのルートノードとなる。バイナリツリー部分の各レベルでブロックが垂直方向または水平方向に対称的に分割され得る。フラグが「0」に設定される場合はブロックが左右対称に分割されることを示し、フラグが「1」に設定される場合はブロックが上下対称に分割されることを示す。
【0015】
他の実施形態では、JVETは、QTBTのバイナリツリー部分で対称バイナリ分割または非対称バイナリ分割のいずれかを可能とし得る。予測ユニット(PU)を分割する際、HEVCでは異なるコンテキストで非対称動き分割(AMP)が可能とされていた。しかしながら、QTBT構造に従ってJVETでCU102を分割する場合、非対称バイナリ分割は、CU102の中心を通る中央線の両側にCU102の相関領域が配置されない場合に、対称バイナリ分割に比べて改善された分割を行うことができる。非限定的な例として、CU102がそのCU中心に近接する1つのオブジェクトとCU102の辺側の他のオブジェクトとを表現する場合、CU102を非対称に分割して各オブジェクトを異なるサイズの個別の小さなCU102に設定することができる。
【0016】
図4は、とり得る4つの非対称バイナリ分割のタイプを示しており、同図では、CU102がそのCU102の長さ方向または高さ方向にわたって延びる線に沿って2つの小さなCU102に分割され、それら2つの小さなCU102のうちの一方が親のCU102のサイズの25%とされ、他方が親のCU102のサイズの75%とされている。図4に示される4つの非対称バイナリ分割のタイプは、CU102の左側からの距離が25%の位置の線、CU102の右側からの距離が25%の位置の線、CU102の上部からの距離が25%の位置の線、またはCU102の下部からの距離が25%の位置の線に沿って、CU102を分割可能とする。代替実施形態では、CU102を分割する非対称分割線は、CU102が半分に対称的に分割されないように他の任意の位置に位置決めされ得る。
【0017】
図5は、対称バイナリ分割と非対称バイナリ分割の両方を可能にする方式を用いてQTBTのバイナリツリー部分でCTU100を複数のCU102に分割する非限定的な例を示す。図5において、破線は、図4に示される分割タイプのうちの1つを使用して親のCU102が分割される非対称バイナリ分割線を示している。
【0018】
図6は、図5の分割のQTBT表現を示す。図6において、ノードから延びる2本の実線はQTBTのバイナリツリー部分における対称分割を示す一方、ノードから延びる2本の破線はバイナリツリー部分における非対称分割を示している。
【0019】
CTU100が複数のCU102にどのように分割されたかを示す構文はビットストリームでコーディングされ得る。非限定的な例として、どのノードがクワッドツリー分割で分割されたのか、どのノードが対称バイナリ分割で分割されたのか、およびどのノードが非対称バイナリ分割で分割されたのかを示す構文がビットストリームでコーディングされ得る。同様に、非対称バイナリ分割で分割されたノードについて、非対称バイナリ分割のどのタイプが使用されたのか(図4に示された4つのタイプのうちの1つなど)を示す構文がビットストリームでコーディングされ得る。
【0020】
いくつかの実施形態では、非対称分割の使用は、QTBTのクワッドツリー部分のリーフノードにおけるCU102の分割に制限され得る。これらの実施形態において、クワッドツリー部分でクワッドツリー分割を用いて親ノードから分割された子ノードのCU102は、最終のCU102とされてもよいし、または、クワッドツリー分割、対称バイナリ分割、あるいは非対称バイナリ分割を用いてさらに分割されてもよい。対称バイナリ分割を用いて分割されたバイナリツリー部分における子ノードは、最終のCU102とされてもよいし、または、対称バイナリ分割のみを用いて再帰的にさらに1回以上分割されてもよい。非対称バイナリ分割を使用してQTリーフノードから分割されたバイナリツリー部分における子ノードは、さらなる分割を不可とする最終のCU102とされてもよい。
【0021】
これらの実施形態では、非対称分割の使用をクワッドツリーのリーフノードの分割に制限することにより、検索の複雑さを低減しおよび/またはオーバーヘッドビットを制限することができる。クワッドツリーのリーフノードのみが非対称分割で分割可能とされるため、非対称分割の使用は、他の構文またはさらなる通知(signaling)を必要とすることなく、そのQT部分の分岐の終わりを直接示すことができる。同様に、非対称分割されたノードはさらなる分割が不可とされるため、ノードでの非対称分割の使用は、他の構文またはさらなる通知を必要とすることなく、その非対称分割された子ノードが最終のCU102であることを直接示すことができる。
【0022】
代替実施形態では、検索の複雑さを制限したりおよび/またはオーバーヘッドビット数を制限したりすることがそれほど問題にならない場合などには、クワッドツリー分割、対称バイナリ分割、および/または非対称バイナリ分割で生成されたノードを、非対称分割を用いて分割することができる。
【0023】
上記いずれかのQTBT構造を用いたクワッドツリー分割およびバイナリツリー分割の後、QTBTのリーフノードによって表されるブロックは、インター予測またはイントラ予測を用いたコーディングなど、コーディング対象となる最終のCU102を表す。インター予測を用いてコーディングされるスライスまたはフルフレームの場合、輝度(luma)成分および色差(chroma)成分に対して異なる分割構造が使用され得る。例えば、インタースライスの場合、CU102は、1つの輝度CBおよび2つの色差CBなどのように、異なる色成分のコーディングブロック(CB)を有し得る。イントラ予測を用いてコーディングされるスライスまたはフルフレームの場合、輝度成分および色差成分に対して分割構造が同一とされ得る。
【0024】
代替実施形態では、JVETは、上記したQTBT分割の代替または拡張として、2レベル・コーディングブロック構造を用いることができる。2レベル・コーディングブロック構造では、まず、CTU100は高レベルで複数のベースユニット(BU)に分割され得る。次いで、BUが低レベルで複数のオペレーティングユニット(OU)に分割され得る。
【0025】
2レベル・コーディングブロック構造を採用する実施形態では、高レベルにおいて、CTU100は、上記したQTBT構造の1つに従って、またはHEVCで使用されるものなどのようにブロックが4つの等しいサイズのサブブロックに分割されることのみが可能となるクワッドツリー(QT)構造に従って、複数のBUに分割され得る。非限定的な例として、CTU102は、図5および図6を参照して上記したQTBT構造に従って、クワッドツリー部分のリーフノードがクワッドツリー分割、対称バイナリ分割、または非対称バイナリ分割を用いて分割され得るものとなるように、複数のBUに分割され得る。この例では、QTBTの最終リーフノードがCUに代わってBUとされ得る。
【0026】
2レベル・コーディングブロック構造の低レベル側では、CTU100から分割された各BUが、1つまたは複数のOUにさらに分割され得る。いくつかの実施形態では、BUが正方形である場合、BUは、クワッドツリー分割、または、対称もしくは非対称バイナリ分割などのバイナリ分割を用いて、OUに分割され得る。ただし、BUが正方形でない場合、BUはバイナリ分割のみを用いてOUに分割され得る。非正方形のBUに使用可能な分割のタイプを制限することにより、BUの生成に使用される分割のタイプを通知するために使用されるビット数を制限することができる。
【0027】
以下の説明は、CU102のコーディングについて記載したものであるが、2レベル・コーディングブロック構造を使用する実施形態では、CU102の代わりにBUやOUをコーディングすることができる。非限定的な例として、BUは、イントラ予測またはインター予測などのより高レベルのコーディング操作に使用することができ、より小さなOUは、変換や変換係数の生成などのより低レベルのコーディング操作に使用することができる。したがって、BUについてコーディングされる場合の構文は、BUがイントラ予測でコーディングされているのかそれともインター予測でコーディングされているのか、または特定のイントラ予測モードもしくはBUのコーディングに使用される動きベクトルを識別する情報を示す。同様に、OUの場合の構文は、OUのコーディングに使用される特定の変換操作または量子化変換係数を識別し得るものとなる。
【0028】
図7Aは、JVETエンコーダにおけるCUコーディングの簡略ブロック図を示す。ビデオコーディングの主な段階は、上記のようにCU102を分割して識別することに続いて、704または706における予測、708における残差CU710の生成、712における変換、716における量子化、および720におけるエントロピー符号化(entropy coding)を用いて、CU102を符号化することを含む。図7Aに示されるエンコーダおよび符号化処理は、以下でより詳細に説明する復号化処理も含む。
【0029】
現在のCU102が与えられると、エンコーダは、704におけるイントラ予測を空間的に使用するか、または706におけるインター予測を時間的に使用して、予測CU702を取得し得る。予測コーディングの基本的な考えは、元の信号とその元の信号の予測との間の差分信号または残差信号を送信することにある。受信側では、以下で説明するように、残差と予測とを追加することによって元の信号を再構築することができる。差分信号は元の信号よりも低い相関性を有するため、その送信に必要とされるビットが少ない。
【0030】
画像全体または画像の一部など、全体的にイントラ予測CU102を用いてコーディングされたスライスは、他のスライスを参照することなく復号可能なIスライスとなり得るものであり、このため、デコーディングが開始され得る潜在的ポイントとなり得る。少なくともいくつかのインター予測CUを用いてコーディングされたスライスは、1つまたは複数の参照画像に基づいて復号可能な予測(P)スライスまたは双予測(B)スライスとなり得る。Pスライスは、イントラ予測と、以前にコーディングされたスライスを用いるインター予測とを使用してもよい。例えば、Pスライスは、インター予測を使用することによってIスライスよりもさらに圧縮され得るものとなるが、それらをコーディングするには、以前にコーディングされたスライスのコーディングが必要となる。Bスライスは、イントラ予測かまたは2つの異なるフレームに基づく内挿予測を用いたインター予測を使用してそのコーディングのために以前のおよび/または後続のスライスからのデータを使用することにより、動き推定処理の精度を向上し得るものである。いくつかの場合では、同じスライスの他の部分のデータが使用されるブロック内コピーを使用してPスライスとBスライスがエンコードされ得るかまたはそれらが交互にエンコードされ得る。
【0031】
以下で説明するように、イントラ予測またはインター予測は、隣接CU102または参照画像内のCU102など、以前にコーディングされたCU102による再構築CU734に基づいて実行され得る。
【0032】
CU102が704におけるイントラ予測を用いて空間的にコーディングされるとき、画像内の隣接CU102からのサンプルに基づいてCU102のピクセル値を最良に予測するイントラ予測モードが探索され得る。
【0033】
CUの輝度成分をコーディングするとき、エンコーダは候補イントラ予測モードのリストを生成し得る。HEVCは輝度成分に対してとり得るイントラ予測モードが35個であったが、JVETでは輝度成分に対してとり得るイントラ予測モードが67個存在する。これらのモードには、隣接ピクセルから生成された値の3次元平面を用いる平面モードと、隣接ピクセルから平均化された値を用いるDCモードと、指定方向に沿って隣接ピクセルからコピーされた値を用いる図8に示される65個の指向性モードとが含まれる。
【0034】
CUの輝度成分の候補イントラ予測モードのリストを生成するとき、そのリスト上の候補モードの数はそのCUのサイズに依存し得る。この候補リストには、最も低いSATD(絶対値変換差分和(Sum of Absolute Transform Difference))コストを有するHEVCの35個のモードのサブセットと、HEVCモードから探索された候補に隣接する新たな指向性モードと、以前にコーディングされた隣接ブロックに使用されたイントラ予測モードとデフォルトモードのリストとに基づいて識別される、CU102の6つの最も可能性の高いモード(MPM)のセットからのモードとが含まれ得る。
【0035】
CUの色差成分をコーディングするときには、候補イントラ予測モードのリストも生成され得る。この候補モードのリストには、輝度サンプルからのクロス成分線形モデル投影で生成されたモードと、色差ブロック内の特定の配列位置における輝度CBについて探索されたイントラ予測モードと、隣接ブロックについて以前に探索された色差予測モードとが含まれ得る。エンコーダは、このリスト上で最も低いレート歪みコストを有する候補モードを探索して、CUの輝度成分と色差成分をコーディングするときにそれらのイントラ予測モードを使用し得る。各CU102のコーディングに使用されるイントラ予測モードを示す構文はビットストリームでコーディングされ得る。
【0036】
CU102の最良のイントラ予測モードが選択された後、エンコーダは、それらのモードを使用して予測CU402を生成し得る。選択したモードが指向性モードである場合、4タップフィルタを使用することで指向性の精度を向上させることができる。予測ブロックの上側または左側における列または行は、2タップまたは3タップフィルタなどの境界予測フィルタを用いて調整することができる。
【0037】
予測CU702は、隣接ブロックの未フィルタのサンプルを使用して、隣接ブロックのフィルタ済みのサンプルに基づき生成された予測CU702を調整する位置依存イントラ予測結合(PDPC(position dependent intra prediction combination))処理か、またはステップ705bで参照サンプルを処理する3タップもしくは5タップのローパスフィルタを用いた適応参照サンプル平滑化によってさらに平滑化することができる。いくつかの実施形態では、PDPCは、次式(1)に従って実現され得る。
【0038】
P’[x,y]=((A*Recon[x,-1]-B*Recon[-1,-1]+C*Recon[-1,y]+D*P[x,y]+Round)/Denom 式(1)
ここで、A=(Cv1>>int(y/dy))、B=((Cv2>>int(y/dy))+(Ch2>>int(x/dx)))、C=(Ch1>>int(x/dx))、およびD=(1<<Denom)-A-C+Bである。P’[x,y]は、現在のCUの座標(x,y)におけるポストフィルタ操作後のフィルタ済みのピクセルである。Cv1,Cv2,Ch1,Ch2はフィルタ効果を決定するPDPCパラメータであり、「Round」は丸めパラメータであり、「Denom」は正規化係数である。
【0039】
いくつかの実施形態では、上部参照行と左側参照列の双方の投影位置にあるピクセルを使用して角度予測用の予測ピクセルを生成する重み付け角度予測が実施され得る。重み付け角度予測を実施する実施形態では、予測生成は、メイン参照投影予測と、サイド参照投影予測と、それら投影予測の組み合わせとの3つのステップで行われ得る。
【0040】
重み付け角度予測を実施するいくつかの実施形態では、システムおよび方法は、コーディングするイントラ予測モードの角度方向定義に従ってメイン参照に沿ってピクセル位置を投影し、2つの隣接する再構築ピクセル間の線形補間を使用してその投影位置のピクセル値を決定し得る。また、システムおよび方法は、同じコーディングモードの角度定義に従ってサイド参照に沿ってピクセル位置を投影し、2つの隣接する再構築ピクセル間の線形補間を使用してその投影位置のピクセル値を決定し得る。次いで、システムおよび方法は、メイン参照の投影ピクセル値をサイド参照の投影ピクセル値と組み合わせ得る。非限定的な例示的組み合わせは、以下の式(2)で示される。式(2)で示される例示的な組み合わせでは、メイン参照とサイド参照に関する予測ピクセルと投影ピクセル位置との距離に従って値が重み付けされる。しかしながら、代替実施形態では、メイン参照ピクセルとサイド参照ピクセルに関連する値を重み付けするために別の値が使用され得る。
【0041】
P[x,y]=(((w1*MainRecon[x’,y’])+(w2*SideRecon[x”,y”])+(w1+w2)/2)/(w1+w2)) 式(2)
上記の例示的な式(2)において、MainRecon[x’,y’]は、予測ピクセル(x,y)に対応するメイン参照に沿った投影位置(x’,y’)の近傍のピクセル値である。SideRecon[x”,y”]は、予測ピクセル(x,y)に対応するサイド参照に沿った投影位置(x”,y”)の近傍のピクセル値である。
【0042】
以下の式(3)は、HEVCのモード2またはモード66を用いて重み付け角度予測を使用する非限定的な例示的組み合わせであり、座標(x,y)における予測ピクセルを示す。したがって、P[x,y]は、式(3)に示され説明されるように決定され、ここで、Recon[0,0]は、現在のCUの左上の座標(0,0)における再構築ピクセルである。
【0043】
P[x,y]=((((x+1)*Recon[x+y+2,-1])+((y+1)*(Recon[-1,x+y+2]))+(y+x+2)/2)/(y+x+2)) 式(3)
サイド参照について投影された参照位置が、実行可能な位置ではないかもしくは利用できない再構築位置を参照している場合、重み付け角度予測を実施できないシステムおよび処理の例外が発生することがある。重み付け角度予測を実施できないそのような場合には、複数のオプションにより例外を処理することが可能である。いくつかの実施形態では、この例外は、最新の利用可能な再構築ピクセルの値または投影位置のデフォルト値を使用することによって処理することができる。他の代替実施形態では、重み付け角度予測を無効にすることによって、および/またはメイン参照のみについて投影ピクセル位置を使用することによって、例外を処理することができる。したがって、ステップ705aでは、重み付け角度予測がステップ704でイントラ予測モードとして実施されたかどうかが判定され得る。イントラ予測モードが重み付け角度予測を使用するものとしてステップ705aで判定された場合、予測コーディングユニット702がフィルタ処理なしでエントロピー符号化に向けて送信され得る。しかしながら、イントラ予測モードが重み付け角度予測以外であるとステップ705aで判定された場合は、エントロピー符号化に向けた送信に先立って、PDPCフィルタ処理などのポストイントラ予測フィルタ処理705bが予測コーディングユニットに適用され得る。
【0044】
図7Bに示されるように、いくつかの実施形態では、ポストイントラ予測フィルタ705bは、ステップ704の後にすべてのイントラ予測に対して使用され得る。図7Bに示されるこのような実施形態では、イントラ予測モードが重み付け角度予測以外に基づくものである場合、適用されるフィルタは、ステップ705bで通常適用されるように適用することができる。しかしながら、イントラ予測モードが重み付け角度予測に基づいている場合は、ステップ705bのフィルタ処理がバイパスされてもよく、および/または、いくつかの実施形態では、メイン参照、サイド参照、またはメイン参照とサイド参照の両方に対して、適用されるフィルタがバイアスされないものとされ得る。非限定的な例として、Cv1,Ch1の値は等しくてもよく、および/またはCv2,Ch2の値は等しくてもよい。
【0045】
CU102が706におけるインター予測を用いて時間的に符号化される場合、CU102のピクセル値を最良に予測する参照画像内のサンプルを指す動きベクトル(MV)のセットが探索され得る。インター予測は、スライス内でのピクセル群のブロックの変位を表すことによりスライス間の時間的冗長性を利用する。この変位は、動き補償と呼ばれる処理を通じて、前後のスライスにおけるピクセルの値に従って決定され得る。特定の参照画像に対するピクセル変位を示す動きベクトルとそれに関連する参照インデックスは、元のピクセルと動き補償されたピクセルとの間の残差とともに、ビットストリームでデコーダに供給され得る。デコーダは、残差および供給された動きベクトルと参照インデックスを使用して、再構築スライス内にピクセル群のブロックを再構築することができる。
【0046】
JVETでは、動きベクトルの精度を1/16ペル(pel)に保つことができ、動きベクトルとCUの予測動きベクトルとの差分を1/4ペル解像度または整数ペル解像度でコーディングすることができる。
【0047】
JVETでは、高度時間動きベクトル予測(ATMVP(advanced temporal motion vector prediction))、時空間動きベクトル予測(STMVP(spatial-temporal motion vector prediction))、アフィン動き補償予測(affine motion compensation prediction)、パターン一致動きベクトル導出(PMMVD(pattern matched motion vector derivation))、および/または双方向オプティカルフロー(BIO)などの技術を用いて、CU102内の複数のサブCUの動きベクトルを探索することができる。
【0048】
エンコーダは、ATMVPを使用して、参照画像内の対応するブロックを指すCU102の時間ベクトルを探索することができる。この時間ベクトルは、以前にコーディングされた隣接CU102について探索された動きベクトルおよび参照画像に基づいて探索され得る。CU102内の各サブCUの動きベクトルは、CU102全体の時間ベクトルが指す参照ブロックを使用して探索され得る。
【0049】
STMVPでは、インター予測を用いて以前にコーディングされた隣接ブロックについて探索された動きベクトルを時間ベクトルとともにスケーリングおよび平均化することによってサブCUの動きベクトルを探索することができる。
【0050】
アフィン動き補償予測は、ブロックの上部の角部について探索された2つの制御動きベクトルに基づいてブロック内の各サブCUの動きベクトルのフィールドを予測するために使用され得る。例えば、サブCUの動きベクトルは、CU102内の各4×4ブロックで探索された上部の角部の動きベクトルに基づいて導出され得る。
【0051】
PMMVDでは、バイラテラルマッチング(bilateral matching)またはテンプレートマッチングを使用して、現在のCU102の初期動きベクトルを探索することができる。バイラテラルマッチングでは、動きの軌跡(motion trajectory)に沿った2つの異なる参照画像内で現在のCU102と参照ブロックを確認することができ、テンプレートマッチングでは、現在のCU102の対応するブロックと、テンプレートによって識別される参照画像を確認することができる。その後、CU102について探索された初期動きベクトルを各サブCUについて個別に改良することができる。
【0052】
BIOは、前後の参照画像に基づいて双予測でインター予測を行うときに使用することができ、2つの参照画像間の差の勾配に基づいてサブCUの動きベクトルを探索することができる。
【0053】
いくつかの状況では、ローカルイルミネーション補正(LIC)をCUレベルで使用して、現在のCU102に隣接するサンプルと、候補の動きベクトルによって識別される参照ブロックに隣接する対応するサンプルとに基づいて、スケーリング係数パラメータとオフセットパラメータの値を探索することができる。JVETでは、LICパラメータを変更して、CUレベルで通知することができる。
【0054】
上記した方法のいくつかでは、CUのサブCUの各々について探索された動きベクトルは、CUレベルでデコーダに通知され得る。PMMVDやBIOなどの他の方法の場合、動き情報はオーバーヘッドを節約するためにビットストリームで通知されず、デコーダは同じ処理を経て動きベクトルを導出し得る。
【0055】
CU102の動きベクトルが探索された後、エンコーダは、それらの動きベクトルを使用して予測CU702を生成し得る。いくつかの場合では、個々のサブCUの動きベクトルが探索された場合に、それらの動きベクトルを1つまたは複数の隣接サブCUで以前に探索された動きベクトルと組み合わせて予測CU702を生成する際にオーバーラップブロック動き補正(OBMC)が使用され得る。
【0056】
双予測が使用される場合、JVETはデコーダ側動きベクトル改良(DMVR)を用いて動きベクトルを探索し得る。DMVRでは、バイラテラルテンプレートマッチング処理を用いた双予測で探索された2つの動きベクトルに基づいて動きベクトルを探索することができる。DMVRでは、2つの動きベクトルの各々を用いて生成された予測CU702の組み合わせを重み付けしたものが探索され、その組み合わせ予測CU702を最良に指し示す新たな動きベクトルでそれら2つの動きベクトルを置き換えることによってそれら2つの動きベクトルを改良することができる。2つの改良された動きベクトルは、最終の予測CU702を生成するために使用され得る。
【0057】
上記のように704におけるイントラ予測または706におけるインター予測を用いて予測CU702が探索されると、708において、エンコーダは、現在のCU102から予測CU702を減算して残差CU710を探索し得る。
【0058】
エンコーダは、データを変換ドメインに変換するための離散コサインブロック変換(DCT変換)を使用するなどにより、712において1つ以上の変換操作を使用することにより、残差CU710を、変換ドメイン内における残差CU710を表す変換係数714に変換し得る。JVETでは、DCT-II、DST-VII、DST-VII、DCT-VIII、DST-I、DCT-V操作など、HEVCよりも多い種類の変換操作が可能である。許可された変換操作はサブセットにグループ化され、どのサブセットが使用されたのかおよびそれらサブセット内のどの特定操作が使用されたのかの指示がエンコーダによって通知され得る。いくつかの場合には、大きなブロックサイズ変換を使用して、特定のサイズよりも大きいCU102の高周波変換係数をゼロにすることで、それらのCU102に対して低周波数変換係数のみが維持されるようにする。
【0059】
いくつかの場合には、フォワードコア変換後の低周波数変換係数714にモード依存性非分離型二次変換(MDNSST)が適用され得る。MDNSST操作では、回転データに基づくハイパーキューブギブンズ変換(HyGT(Hypercube-Givens Transform))を使用することができる。これが使用される場合には、特定のMDNSST操作を識別するインデックス値がエンコーダによって通知され得る。
【0060】
716において、エンコーダは、変換係数714を量子化変換係数716に量子化し得る。各係数の量子化は、係数の値を量子化パラメータ(QP)から導出される量子化ステップで除算することによって計算され得る。いくつかの実施形態では、Qstepは2(QP-4)/6として定義される。高精度の変換係数714を、とり得る有限数の値を有する量子化変換係数716に変換できるため、量子化はデータ圧縮を支援することができる。したがって、変換係数の量子化は、変換処理によって生成および送信されるビットの量を制限することができる。しかしながら、量子化は損失の多い操作であり、量子化による損失は回復できないが、量子化処理は、再構築されたシーケンスの品質と、シーケンスを表すのに必要な情報量とのトレードオフを示すものとなる。例えば、QP値が低いほど、デコードされたビデオの品質はより良いものとなるが、表現と送信に多くのデータ量が必要となり得る。対照的に、QP値が高いと、再構築されたビデオシーケンスの品質が低下し得るものとなり、より小さなデータと帯域幅が必要とされる。
【0061】
JVETは、すべてのCU102が(フレームのすべてのCU102のコーディングで同じフレームQPを使用する代わりに)そのコーディング処理のために異なる量子化パラメータを使用することを可能にする分散ベースの適応量子化技術を利用し得る。分散ベースの適応量子化技術では、特定のブロックの量子化パラメータを適応的に低下させる一方、他のブロックでは量子化パラメータを増加させる。CU102の特定のQPを選択するために、CUの分散が計算される。つまり、CUの分散がフレームの平均分散よりも高い場合には、フレームのQPよりも高いQPがCU102に対して設定され得る。CU102がフレームの平均分散よりも低い分散を示す場合には、より低いQPが割り当てられ得る。
【0062】
720において、エンコーダは、量子化変換係数718をエントロピー符号化することによって最終圧縮ビット722を探索し得る。エントロピー符号化は、送信される情報の統計的な冗長性を取り除くことを目的とする。JVETでは、確率測度を使用して統計的な冗長性を除去するCABAC(Context Adaptive Binary Arithmetic Coding)を使用して、量子化変換係数718をコーディングすることができる。非ゼロの量子化変換係数718を有するCU102の場合、量子化変換係数718はバイナリに変換され得る。バイナリ表現の各ビット(「ビン」(bin))はコンテキストモデルを使用して符号化され得る。CU102は、3つの領域に分割することができる、各領域はその領域内のピクセルに対して使用するための独自のコンテキストモデルのセットを有している。
【0063】
ビンを符号化するために複数のスキャンパスが実行され得る。第1の3つのビン(bin0,bin1,bin2)を符号化するためのパスの期間に、ビンに使用するためのコンテキストモデルを示すインデックス値が、テンプレートによって識別され以前にコーディングされた最大5つの隣接する量子化変換係数718でそのビン位置の合計を求めることによって探索され得る。
【0064】
コンテキストモデルは、ビンの値が「0」または「1」である確率に基づき得る。値がコーディングされると、発生した「0」および「1」の値の実際の数に基づいてコンテキストモデルの確率が更新され得る。HEVCでは一定のテーブルを使用して新たな画像ごとのコンテキストモデルを再初期化する一方、JVETでは、以前にコーディングされたインター予測画像に対して作られたコンテキストモデルに基づいて新たなインター予測画像のためのコンテキストモデルの確率が初期化され得る。
【0065】
エンコーダは、残差CU710のエントロピー符号化ビット722、選択されたイントラ予測モードまたは動きベクトルなどの予測情報、CU102がQTBT構造に従ってCTU100からどのように分割されたのかについての指示、および/または符号化されたビデオに関するその他の情報、を含むビットストリームを生成し得る。以下で説明するように、ビットストリームはデコーダによって復号化され得る。
【0066】
量子化変換係数718を用いて最終圧縮ビット722を探索することに加えて、エンコーダはさらに、デコーダが再構築CU734を生成するのに使用するのと同じ復号化処理に従って、量子化変換係数718を用いて再構築CU734を生成し得る。したがって、変換係数がエンコーダによって計算および量子化されると、その量子化変換係数718はエンコーダの復号化ループに送信され得る。CUの変換係数を量子化した後、エンコーダは、復号化ループにより、デコーダが復号化処理で生成するものと同一の再構築CU734を生成することができる。したがって、エンコーダは、新たなCU102のイントラ予測またはインター予測を実行する際には、デコーダが隣接CU102または参照画像に使用するのと同じ再構築CU734を使用し得る。再構築CU102、再構築スライス、またはフル再構築フレームは、さらなる予測段階のための参照として役立ち得る。
【0067】
再構築画像のピクセル値を取得するエンコーダの復号化ループ(デコーダの同様な動作については、以下参照)では逆量子化処理が実行され得る。フレームを逆量子化するために、例えば、フレームの各ピクセルの量子化値に量子化ステップ(例えば、上記したQstep)を乗算することで、再構築された逆量子化変換係数726が取得される。例えば、エンコーダにおける図7Aに示された復号化処理において、残差CU710の量子化変換係数718が724で逆量子化されることで、逆量子化変換係数726が探索され得る。符号化の際にMDNSST操作が実行された場合、その操作は逆量子化後に元に戻すことができる。
【0068】
728において、逆量子化変換係数726が、例えば再構築画像を取得するべくその値にDCTを適用するなどの方法により、逆変換されて再構築残差CU730が探索され得る。732において、再構築CU734を探索するために、再構築残差CU730が、704におけるイントラ予測または706におけるインター予測で探索された対応する予測CU702に加えられ得る。
【0069】
736において、1つ以上のフィルタが、画像レベルまたはCUレベルのいずれかで(エンコーダまたは後述するデコーダでの)復号化処理中に再構築データに適用され得る。例えば、エンコーダは、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、および/または適応ループフィルタ(ALF)を適用し得る。エンコーダの復号化処理では、再構築画像内の潜在的なアーチファクトに対処可能な最適フィルタパラメータを推定してデコーダに送信するためにフィルタを使用し得る。このような改善により、再構築されたビデオの客観的および主観的な品質が向上する。デブロッキングフィルタ処理ではサブCU境界付近のピクセルが変更され得る一方、SAOではCTU100のピクセルがエッジオフセットまたはバンドオフセットのいずれかの分類を使用して変更され得る。JVETのALFでは、2×2ブロックごとに円対称の形状のフィルタが使用され得る。2×2ブロックごとに使用されるフィルタのサイズと識別子についての指示が通知され得る。あるいは、重み付け角度予測が予測CUに実施されるいくつかの実施形態では、代替のフィルタが再構築CUに適用され得るか、もしくはフィルタは再構築CUに適用されない。
【0070】
再構築画像が参照画像である場合、それら再構築画像は、706における将来のCU102のインター予測のために参照バッファ738に格納され得る。
上記したステップの間、JVETではコンテンツ適応クリッピング操作を使用して色値をクリッピング境界とするクリッピングの下限と上限との間に収めるように調整することができる。クリッピング境界はスライスごとに変更可能であり、この境界を識別するパラメータはビットストリームで通知され得る。
【0071】
図9は、JVETデコーダにおけるCUコーディングの簡略ブロック図を示す。JVETデコーダは、符号化されたCU102に関する情報を含むビットストリームを受信し得る。ビットストリームは、画像のCU102がQTBT構造に従ってCTU100からどのように分割されたのかを示し得る。非限定的な例として、ビットストリームは、クワッドツリー分割、対称バイナリ分割、および/または非対称バイナリ分割を使用して、QTBTの各CTU100からCU102がどのように分割されたのかを識別し得る。ビットストリームはさらに、イントラ予測モードまたは動きベクトルなどのCU102の予測情報、およびエントロピー符号化された残差CUを表すビット902を示し得る。
【0072】
904において、デコーダは、エンコーダによってビットストリームで通知されたCABACコンテキストモデルを用いてエントロピー符号化ビット902を復号化し得る。デコーダは、エンコーダによって通知されたパラメータを用いて、符号化中に更新されたのと同じ方法でコンテキストモデルの確率を更新し得る。
【0073】
デコーダは、904でエントロピー符号化を元に戻して量子化変換係数906を探索した後、908でそれら量子化変換係数906を逆量子化して逆量子化変換係数910を探索し得る。符号化中にMDNSST操作が実行された場合、その操作は逆量子化後にデコーダによって元に戻すことができる。
【0074】
912において、逆量子化変換係数910が逆変換されて再構築残差CU914が探索され得る。916において、再構築CU918を探索するために、再構築残差CU914が、922におけるイントラ予測または924におけるインター予測で探索された対応する予測CU926に加えられ得る。
【0075】
したがって、ステップ923aでは、重み付け角度予測がステップ922でイントラ予測モードとして実施されたかどうかが判定され得る。イントラ予測モードが重み付け角度予測を使用するものとしてステップ923aで判定された場合、予測コーディングユニット926がフィルタ処理なしでエントロピー符号化に向けて送信され得る。しかしながら、イントラ予測モードが重み付け角度予測以外であるとステップ923aで判定された場合は、エントロピー符号化に向けた送信に先立って、PDPCフィルタ処理などのポストイントラ予測フィルタ処理923bが予測コーディングユニットに適用され得る。
【0076】
920において、1つ以上のフィルタが、画像レベルまたはCUレベルのいずれかで再構築データに適用され得る。例えば、デコーダは、デブロッキングフィルタ、サンプル適応オフセット(SAO)フィルタ、および/または適応ループフィルタ(ALF)を適用し得る。上記したように、フレームの客観的および主観的な品質を向上させるための最適フィルタパラメータを推定するために、エンコーダの復号化ループに配置されたループ内フィルタが使用され得る。これらのパラメータは、920で再構築フレームをフィルタ処理して、エンコーダにおけるフィルタ済み再構築フレームとマッチングさせるために、デコーダに送信される。
【0077】
再構築CU918を探索し、通知されたフィルタを適用することによって再構築画像が生成された後、デコーダは、その再構築画像を出力ビデオ928として出力することができる。再構築画像が参照画像として使用される場合、それら再構築画像は、924における将来のCU102のインター予測のために参照バッファ930に格納され得る。
【0078】
図10は、JVETデコーダにおけるCUコーディング1000の方法の実施形態を示す。図10に示される実施形態では、ステップ1002で符号化ビットストリーム902が受信され、次いでステップ1004で符号化ビットストリーム902に関連するCABACコンテキストモデルが決定され、次いでステップ1006でその決定されたCABACコンテキストモデルを使用して符号化ビットストリーム902が復号化され得る。
【0079】
ステップ1008では、符号化ビットストリーム902に関連する量子化変換係数906が決定され、次いでステップ1010で量子化変換係数906から逆量子化変換係数910が決定され得る。
【0080】
ステップ1012では、符号化中にMDNSST操作が行われたかどうか、および/またはMDNSST操作がビットストリーム902に適用された旨の指示をビットストリーム902が含むかどうかが決定され得る。符号化処理中にMDNSST操作が行われたと判定された場合、またはMDNSST操作がビットストリーム902に適用された旨の指示がビットストリーム902に含まれると判定された場合、ステップ1016で逆変換操作912がビットストリーム902に対して行われる前に、逆MDNSST操作1014が実施され得る。あるいは、ステップ1014の逆MDNSST演算を適用することなく、ステップ1016で逆変換操作912がビットストリーム902に対して行われ得る。ステップ1016の逆変換操作912により、再構築残差CU914を決定および/または構築することができる。
【0081】
ステップ1018において、ステップ1016による再構築残差CU914が予測CU918と組み合わせられ得る。予測CU918は、ステップ1020で決定されたイントラ予測CU922か、ステップ1022で決定されたインター予測ユニット924のうちの一方であり得る。
【0082】
したがって、ステップ1023aでは、重み付け角度予測がステップ1020でイントラ予測モードとして実施されたかどうかが判定され得る。イントラ予測モードが重み付け角度予測を使用するものとしてステップ1023aで判定された場合、予測コーディングユニット926がフィルタ処理なしでエントロピー符号化に向けて送信され得る、および/またはステップ1024で行われるフィルタ処理が変更および/または省略され得る。しかしながら、ステップ1023aでイントラ予測モードが重み付け角度予測以外であると判断された場合、エントロピー符号化に向けた送信に先立って、ポストイントラ予測フィルタ処理1023bおよび/またはステップ1024でのPDPCフィルタ処理などが予測コーディングユニットに適用され得る。
【0083】
図10に示されるように、いくつかの実施形態では、ステップ1023bは存在しなくてもよく、ポストイントラ予測フィルタ1024は、すべての予測についてステップ1018の後に実施され得る。図10に示されるこのような実施形態では、イントラ予測モードが重み付け角度予測以外に基づくものである場合、適用されるフィルタは、ステップ1024で通常適用されるように適用することができる。しかしながら、イントラ予測モードが重み付け角度予測に基づいている場合は、ステップ1024のフィルタ処理がバイパスされてもよく、および/または、いくつかの実施形態では、ステップ1026における再構築CUの出力前において、メイン参照、サイド参照、またはメイン参照とサイド参照の双方に対して、適用されるフィルタがバイアスされないものとされ得る。非限定的な例として、Cv1,Ch1の値は等しくてもよく、および/またはCv2,Ch2の値は等しくてもよい。
【0084】
ステップ1024で任意の1つ以上のフィルタ920が再構築CU914に適用され、ステップ1026で出力が行われる。いくつかの実施形態では、ステップ1024でフィルタ920が適用されなくてもよい。
【0085】
いくつかの実施形態では、ステップ1028において、再構築CU918が参照バッファ930に格納され得る。
図11は、JVETエンコーダにおけるCUコーディングの簡略ブロック図1100を示す。ステップ1102において、JVETコーディングツリーユニットはクワッドツリーおよびバイナリツリー(QTBT)構造のルートノードとして表現され得る。いくつかの実施形態では、QTBTは、ルートノードから分岐するクワッドツリーおよび/またはクワッドツリーのリーフノードの1つ以上から分岐するバイナリツリーを有し得る。ステップ1102に基づく表現は、ステップ1104、ステップ1106、またはステップ1108に進み得る。
【0086】
ステップ1104では、表現されたクワッドツリーノードを不均等サイズの2つのブロックに分割するために非対称バイナリ分割が実施され得る。いくつかの実施形態では、分割ブロックは、最終コーディングユニットを表し得るリーフノードとして、クワッドツリーノードから分岐するバイナリツリーで表現され得る。いくつかの実施形態では、クワッドツリーノードから分岐するリーフノードとしてのバイナリツリーは、さらなる分割が許可されない最終コーディングユニットを表す。いくつかの実施形態では、非対称分割は、コーディングユニットを、クワッドツリーノードの25%を表す第1のブロックとクワッドツリーノードの75%を表す第2のブロックとの不均等サイズのブロックに分割し得る。
【0087】
ステップ1106では、表現されたクワッドツリーノードを均等サイズの4つの正方形ブロックに分割するためにクワッドツリー分割が実施され得る。いくつかの実施形態では、分割ブロックは、最終コーディングユニットを表すクワッドツリーノードとして表現され得るか、あるいは、クワッドツリー分割、対称バイナリ分割、または非対称バイナリ分割を用いて再分割可能な子ノードとして表現され得る。
【0088】
ステップ1108では、表現されたクワッドツリーノードを均等サイズの2つのブロックに分割するためにクワッドツリー分割が実施され得る。いくつかの実施形態では、分割ブロックは、最終コーディングユニットを表すクワッドツリーノードとして表現され得るか、あるいは、クワッドツリー分割、対称バイナリ分割、または非対称バイナリ分割を用いて再分割可能な子ノードとして表現され得る。
【0089】
ステップ1110では、ステップ1106またはステップ1108からの子ノードが、符号化対象の子ノードとして表現され得る。いくつかの実施形態では、子ノードは、JVETでバイナリツリーのリーフノードによって表現され得る。
【0090】
ステップ1112では、ステップ1104またはステップ1110からのコーディングユニットは、JVETを用いて符号化され得る。
図12は、JVETデコーダにおけるCU復号化のための簡略ブロック図1200を示す。図12に示される実施形態では、ステップ1202において、コーディングツリーユニットがQTBT構造に従ってどのように複数のコーディングユニットに分割されたのかを示すビットストリームが受信され得る。このビットストリームは、クワッドツリーノードが、クワッドツリー分割、対称バイナリ分割、および非対称バイナリ分割のうちの少なくとも1つを用いてどのように分割されるのかを示す。
【0091】
ステップ1204では、QTBT構造のリーフノードによって表現されたコーディングユニットが識別され得る。いくつかの実施形態では、コーディングユニットは、ノードが非対称バイナリ分割を用いてクワッドツリーのリーフノードから分割されたかどうかを示し得る。いくつかの実施形態では、コーディングユニットは、ノードが復号化対象の最終コーディングユニットを表すことを示し得る。
【0092】
ステップ1206では、識別されたコーディングユニットがJVETを用いて復号化され得る。
図13は、効率を向上させたコーディングシステムおよび方法の簡略ブロック図1300を示す。コーディングおよびデコーディングシステムでは、コーディングブロックとその近傍との相関を利用するために予測がイントラコーディングで生成される。JVETでは、コーディングブロックの上部境界に隣接する参照行と左側境界に隣接する参照列とが予測生成処理で使用される。各イントラ予測モードについて、PU内の各ピクセルの基準線に沿った投影隣接位置が、決定されたイントラモードに関連する角度方向を用いて決定される。参照列に沿った投影隣接は、水平モード(モード2~33)のメイン参照線として機能し、参照行に沿った投影隣接は、垂直モード(モード35~66)のメイン参照線として機能する。予測の生成で部分的に使用される参照列または参照行は、サイド参照線と呼ばれる。図8に示されるように、イントラ予測モード2およびモード66は同じ予測角度を共有する。ただし、モード2で左隣を参照として使用し、モード66は上隣を参照として使用する。したがって、これらの2つのモード(2および66)を組み合わせて1つのコードワードによりこれらの2つのモードを通知してオーバーヘッドビットの削減を図るようにすることで、コーディング効率を向上させることができる。
【0093】
ステップ1302ではコーディング予測モードが決定され、次いでステップ1304ではコーディングモードがモード2であるかモード66であるかが決定される。決定されたコーディング予測モードが、モード2やモード66以外である場合は、任意の既知の適当なおよび/または所望のコーディング予測技術が使用され得る。しかしながら、コーディングモード予測モード2または66が決定された場合、改良されたより効率的な予測コーディングが実施され得る。
【0094】
開示されるイントラ予測モードは、1つのコーディングモードを用いて2つのイントラ予測、すなわちモード2とモード66を組み合わせる。方法1300は、2つのイントラ予測モードであるモード2およびモード66の予測精度を維持しつつ、エンコーダおよびデコーダの両方で予測方向を選択する際の負担を大幅に増加させないようにする。したがって、新規のモードは、その予測の予測方向がより適切な予測をもたらすとき、別のモードではなく1つのモードの予測に従うように適応的にその予測を設定することができ、その逆も同様である。いくつかの実施形態では、1つの発見的アプローチは、利用可能なコーディング情報をデコーダ側で使用して2つのモード(2および66)間の選択を行うことである。新たな組み合わせモードの予測方向を決定するために種々の情報が使用され得る。いくつかの実施形態では、幅または高さなどのブロック寸法が選択基準として使用され得る。このような実施形態では、予測方向がより長い境界を有する方向に従うように選択され得る。しかしながら、代替実施形態では、より短い境界を有する予測方向が選択され得る。
【0095】
非限定的な例として、選択基準としてのブロック寸法および予測モード2および66を用いて、座標(x,y)における重み付け角度予測の予測ピクセルP(x,y)は、以下のように計算され得る。
【0096】
P[x,y]=Recon[x+y+2,-1](幅>高さの場合)
P[x,y]=Recon[-1,x+y+2](別の条件の場合)
ここで、Recon[0,0]は、現在のCUの左上の座標(0,0)にある再構築ピクセルである。
【0097】
代替の非限定的な例では、参照行に沿ったピクセル差(例えば、分散)と参照列に沿ったピクセル差が使用され得る。このような実施形態において、予測方向はより小さい(またはより大きい)ピクセル差を有するものとなる方向に従うように選択され得る。
【0098】
いくつかの実施形態において、重み付け角度予測では、上部参照行と左側参照列の両方の投影位置にあるピクセルを使用して角度予測用の予測ピクセルを生成することができる。JVETモード2またはモード66の場合、座標(x,y)における重み付け角度予測の予測ピクセルP(x,y)は、以下のように計算され得る。
【0099】
P[x,y]=((((x+1)*Recon[x+y+2,-1])+((y+1)*(Recon[-1,x+y+2]))+(y+x+2)/2)/(y+x+2))
ここで、Recon[0,0]は、現在のCUの左上の座標(0,0)にある再構築ピクセルである。
【0100】
システムおよび方法は、重み付け角度予測に使用されない、モード2かモード66のいずれかのモードインデックスを割り当てることにより、重み付け角度予測をサポートするように拡張され得る。すなわち、モード2が重み付け角度予測に割り当てられる場合、モード66は他の任意の既知の適当なおよび/または所望の予測方法に割り当てられ得る。いくつかの実施形態では、逆が当てはまる場合もあり、モード66が重み付け角度予測に割り当てられ、モード2が他の任意の既知の適当なおよび/または所望の予測方法に割り当てられ得る。
【0101】
図14は、図7Aおよび図7Bに示され説明されたものと実質的に同様のJVETエンコーダにおける効率を向上させたCUコーディングの簡略ブロック図を示す。図14は、ステップ1402,1404,1406をさらに含むシステムおよび方法を示し、ステップ1402では、イントラ予測モード2または66が使用されるかどうかが決定される。次いでステップ1404では、標準/既知および/または適当な予測コーディングが使用され、ステップ1406では、重み付けまたは非重み付け角度予測についての図13に関して上記したように、選択された修正予測コーディングが予測モードに対して使用され得る。このステップ1406は、重み付け角度予測が決定されたのかまたは非重み付け角度予測が決定されたのかに関する決定がステップ705aでなされた後のステップである。すなわち、新規のモードは、その予測の予測方向がより適切な予測をもたらすとき、別のモードではなく1つのモードの予測に従うように適応的にその予測を設定することができ、その逆も同様である。いくつかの実施形態では、1つの発見的アプローチは、利用可能なコーディング情報をデコーダ側で使用して2つのモード(2および66)間の選択を行うことである。新たな組み合わせモードの予測方向を決定するために種々の情報が使用され得る。いくつかの実施形態では、幅または高さなどのブロック寸法が選択基準として使用され得る。このような実施形態では、予測方向がより長い境界を有する方向に従うように選択され得る。しかしながら、代替実施形態では、より短い境界を有する予測方向が選択され得る。
【0102】
代替実施形態において、ステップ705bのポストフィルタ処理(図7Aおよび図7Bに図示)が、図7Aおよび図7Bに関して示されおよび説明されたシステムおよび方法において同時に実装可能であることは当業者に容易に明らかである。
【0103】
図15は、JVETデコーダにおいて効率を向上させたCUデコーディングの簡略ブロック図を示す。図15は、ステップ1402,1404,1406をさらに含むシステムおよび方法を示し、ステップ1402では、イントラ予測モード2が使用されるのかまたはイントラ予測モード66が使用されるのかに関する決定が行われる。次いでステップ1404では、標準/既知および/または適当な予測コーディングが使用され、ステップ1406では、重み付けまたは非重み付け角度予測についての図13に関して上記したように、選択された修正予測コーディングが予測モードに対して使用され得る。このステップ1406は、重み付け角度予測が決定されたのかまたは非重み付け角度予測が決定されたのかに関する決定がステップ923aでなされた後のステップである。
【0104】
代替実施形態において、ステップ923bのポストフィルタ処理が、図9に関して示され説明されたシステムおよび方法において同時に実装可能であることは当業者に容易に明らかである。
【0105】
上記実施形態を実施するために必要な命令のシーケンスの実行は、図16に示されるようなコンピュータシステム1600によって行われ得る。一実施形態では、命令のシーケンスの実行は単一のコンピュータシステム1600によって行われ得る。他の実施形態によれば、通信リンク1615によって結合された2つ以上のコンピュータシステム1600が互いに協調して命令のシーケンスを実行し得る。以下では、1つのコンピュータシステム1600のみについての説明を行うが、上記実施形態を実施するために任意の数のコンピュータシステム1600を使用できることが理解され得る。
【0106】
以下、一実施形態によるコンピュータシステム1600を、コンピュータシステム1300の機能的構成要素のブロック図である図16を参照して説明する。本明細書で使用されるコンピュータシステム1600という用語は、1つ以上のプログラムを記憶してそれを個別に実行可能な任意のコンピューティングデバイスを説明するために広く使用される。
【0107】
各コンピュータシステム1600は、バス1606に結合された通信インターフェース1614を含み得る。通信インターフェース1614は、コンピュータシステム1600間の双方向通信を提供する。各コンピュータシステム1600の通信インターフェース1614は、例えば、命令、メッセージ、およびデータなどの種々のタイプの信号情報を表すデータストリームを含む電気信号、電磁気信号、または光信号を送受信する。通信リンク1615は、1つのコンピュータシステム1600を別のコンピュータシステム1600とリンクさせる。例えば、通信リンク1615がLANである場合、通信インターフェース1614はLANカードとすることができ、通信リンク1615がPSTNである場合、通信インターフェース1614は統合サービスデジタルネットワーク(ISDN)カードまたはモデムとすることができ、通信リンク1615がインターネットである場合、通信インターフェース1614は、ダイヤルアップ、ケーブル、または無線モデムとすることができる。
【0108】
コンピュータシステム1600は、対応する通信リンク1615および通信インターフェース1614を介して、メッセージ、データ、および命令(プログラム、すなわちアプリケーションやコードを含む)を送受信することができる。受信されたプログラムコードは、その受信時に対応するプロセッサ1607によって実行され得る、および/または後で実行するために記憶デバイス1610または他の関連する不揮発性媒体に記憶され得る。
【0109】
一実施形態では、コンピュータシステム1600は、データ記憶システム1631、例えば、コンピュータシステム1600が容易にアクセス可能なデータベース1632を含むデータ記憶システム1631と連携して動作する。コンピュータシステム1600は、データインターフェース1633を介してデータ記憶システム1631と通信する。バス1606に結合されたデータインターフェース1633は、例えば命令、メッセージ、およびデータなどの種々のタイプの信号情報を表すデータストリームを含む電気信号、電磁気信号、または光信号を送受信する。実施形態では、データインターフェース1633の機能は通信インターフェース1614によって実行され得る。
【0110】
コンピュータシステム1600は、命令、メッセージ、およびデータ(総称して、情報)を通信するためのバス1606または他の通信機構と、情報を処理するためにバス1606に結合された1つまたは複数のプロセッサ1607とを含む。コンピュータシステム1600はさらに、プロセッサ1607によって実行される動的データおよび命令を記憶するためにバス1606に結合されたランダムアクセスメモリ(RAM)または他の動的記憶デバイスなどのメインメモリ1608を含む。メインメモリ1608は、プロセッサ1607による命令の実行中に、一時的データ、すなわち変数または他の中間情報を記憶するためにも使用され得る。
【0111】
コンピュータシステム1600はさらに、バス1606に結合されてプロセッサ1607のための静的データおよび命令を記憶するための読み取り専用メモリ(ROM)1609または他の静的記憶デバイスを含み得る。また、磁気ディスクまたは光ディスクなどの記憶デバイス1610も提供され、プロセッサ1607のためのデータおよび命令を記憶するためにバス1606に結合され得る。
【0112】
コンピュータシステム1600は、これらに限定されないが、陰極線管(CRT)または液晶ディスプレイ(LCD)モニタなどの、ユーザに情報を表示するためのディスプレイデバイス1611にバス1606を介して結合され得る。入力デバイス1612、例えば、英数字および他のキーなどの入力デバイスは、プロセッサ1607に情報およびコマンド選択を通信するためにバス1606に結合される。
【0113】
一実施形態によれば、個々のコンピュータシステム1600は、メインメモリ1608に含まれる1つ以上の命令の1つ以上のシーケンスを実行するそれぞれのプロセッサ1607によって特定の動作を行う。このような命令は、ROM1609または記憶デバイス1610などの別のコンピュータ使用可能媒体からメインメモリ1608に読み込まれ得る。プロセッサ1607は、メインメモリ1608に含まれる命令のシーケンスを実行することにより、本明細書で説明される処理を実行する。別の実施形態では、ハードワイヤード回路が、ソフトウェア命令の代わりにまたはそれと組み合わせて使用され得る。したがって、実施形態は、ハードウェア回路および/またはソフトウェアの特定の組み合わせに限定されない。
【0114】
本明細書で使用される「コンピュータ使用可能媒体」という用語は、情報を提供する、またはプロセッサ1607によって使用可能な任意の媒体を指す。このような媒体は、これらに限定されないが、不揮発性、揮発性、および伝送媒体を含む多くの形態をとり得る。不揮発性媒体、すなわち電力がなくても情報を保持できる媒体には、ROM1309、CD-ROM、磁気テープ、および磁気ディスクが含まれる。揮発性媒体、すなわち電力がないと情報を保持できない媒体には、メインメモリ1608が含まれる。伝送媒体には、バス1606を構成するワイヤを含む、同軸ケーブル、銅線、および光ファイバが含まれる。伝送媒体は、搬送波、すなわち、情報信号を送信するために周波数、振幅、または位相などで変調され得る電磁波の形態をとり得る。また、伝送媒体は、電波および赤外線データの通信中に生成されるものなどの音波または光波の形態をとり得る。
【0115】
本明細書では、上記実施形態をその特定の要素を参照して説明した。しかしながら、実施形態のより広い思想および範囲から逸脱することなく、種々の修正および変更をそれらに加えることができることは明らかである。例えば、本明細書で説明する処理フロー図に示された処理動作の特定の順序や組み合わせは単なる例示であり、異なる処理動作や追加の処理動作を使用したり、または処理動作の異なる組み合わせや異なる順序を使用したりして上記実施形態を実施できることが理解され得る。したがって、本明細書および図面は、限定的な意味ではなく例示的な意味で考慮されるべきである。
【0116】
また、本発明は、種々のコンピュータシステムで実施することもできる。本明細書で説明する種々の手法は、ハードウェアもしくはソフトウェア、またはそれらの組み合わせで実装することができる。好ましくは、これらの手法は、プロセッサと、プロセッサが読み取り可能な記憶媒体(揮発性および不揮発性のメモリおよび/または記憶要素を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを各々含むプログラマブルコンピュータ上で実行されるコンピュータプログラムにおいて実装される。上記の機能を実行して出力情報を生成するために、入力デバイスを使用して入力されたデータにプログラムコードが適用される。出力情報は、1つまたは複数の出力デバイスに適用される。各プログラムは、コンピュータシステムと通信するために、好ましくは、高レベル手続き型プログラミング言語またはオブジェクト指向プログラミング言語で実装される。しかしながら、プログラムは、必要に応じてアセンブリ言語または機械語で実装され得る。いずれの場合も、言語はコンパイル言語またはインタープリター言語とすることができる。このような各コンピュータプログラムは、好ましくは、汎用または専用プログラマブルコンピュータによって読み取り可能な記憶媒体または記憶デバイス(例えば、ROMまたは磁気ディスク)に記憶され、コンピュータによって記憶媒体または記憶デバイスが読み取られたときにコンピュータを構成するとともに動作させて上記の手順を実行するためのものである。また、システムは、コンピュータプログラムで構成されたコンピュータ可読記憶媒体として実装されると見なすこともでき、そのように構成された記憶媒体はコンピュータを特定の所定の方法で動作させる。さらに、例示的なコンピューティングアプリケーションの記憶要素は、種々の組み合わせおよび構成でデータを記憶可能なリレーショナルまたはシーケンシャル(フラットファイル)タイプのコンピューティングデータベースとすることができる。
【0117】
図17は、本明細書で説明されるシステムおよびデバイスの特徴を組み込むことができるソースデバイス1712および宛先デバイス1710の高レベル図である。図17に示されるように、例示的なビデオコーディングシステム1710はソースデバイス1712と宛先デバイス1714を含み、この例において、ソースデバイス1712は符号化ビデオデータを生成する。したがって、ソースデバイス1712はビデオ符号化デバイスと呼ばれ得る。宛先デバイス1714は、ソースデバイス1712によって生成された符号化ビデオデータを復号化し得る。したがって、宛先デバイス1714はビデオ復号化デバイスと呼ばれ得る。ソースデバイス1712および宛先デバイス1714はビデオコーディングデバイスの例であり得る。
【0118】
宛先デバイス1714は、チャネル1716を介してソースデバイス1712から符号化ビデオデータを受信し得る。チャネル1716は、ソースデバイス1712から宛先デバイス1714に符号化ビデオデータを移動させることができる任意のタイプの媒体またはデバイスを備え得る。一例では、チャネル1716は、ソースデバイス1712が符号化ビデオデータをリアルタイムで宛先デバイス1714に直接送信可能とする通信媒体を備え得る。
【0119】
この例では、ソースデバイス1712は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し、その変調ビデオデータを宛先デバイス1714に送信し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つ以上の物理的伝送線などの無線または有線通信媒体を含み得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなどのパケットベースのネットワークの一部を形成し得る。通信媒体は、ソースデバイス1712から宛先デバイス1714への通信を支援するルータ、スイッチ、基地局、または他の機器を含み得る。別の例では、チャネル1716は、ソースデバイス1712によって生成された符号化ビデオデータを記憶する記憶媒体に対応し得る。
【0120】
図17の例では、ソースデバイス1712は、ビデオソース1718、ビデオエンコーダ1720、および出力インターフェース1722を含む。いくつかの場合では、出力インターフェース1728は、変調器/復調器(モデム)、および/または送信機を含み得る。ソースデバイス1712において、ビデオソース1718は、ビデオキャプチャデバイス(例えば、ビデオカメラ)、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからのビデオデータを受信するためのビデオフィードインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィックスシステム、などのソース、あるいはそのようなソースの組み合わせを含み得る。
【0121】
ビデオエンコーダ1720は、キャプチャされた、プリキャプチャされた、またはコンピュータによって生成されたビデオデータを符号化し得る。入力画像は、ビデオエンコーダ1720によって受信され、入力フレームメモリ1721に記憶され得る。汎用プロセッサ1723は、このメモリ1721から情報をロードして符号化を実行し得る。汎用プロセッサを駆動するためのプログラムは、図17に示される例示的なメモリモジュールなどの記憶デバイスからロードされ得る。汎用プロセッサは処理メモリ1722を使用して符号化を実行し、汎用プロセッサによる符号化情報の出力は出力バッファ1726などのバッファに記憶され得る。
【0122】
ビデオエンコーダ1720は、少なくとも1つのベースレイヤおよび少なくとも1つのエンハンスメントレイヤを定義するスケーラブルビデオコーディング方式でビデオデータをコーディング(例えば、符号化)するように構成され得るリサンプリングモジュール1725を含み得る。リサンプリングモジュール1725は、符号化処理の一部として少なくともいくつかのビデオデータをリサンプリングすることができ、このリサンプリングは、リサンプリングフィルタを使用して適応的な方法で実行することができる。
【0123】
符号化ビデオデータ、例えば、コーディングされたビットストリームは、ソースデバイス1712の出力インターフェース1728を介して宛先デバイス1714に直接送信され得る。図17の例では、宛先デバイス1714は、入力インターフェース1738と、ビデオデコーダ1730と、表示デバイス1732とを含む。いくつかの場合では、入力インターフェース1728は、受信機および/またはモデムを含み得る。宛先デバイス1714の入力インターフェース1738は、チャネル1716を介して符号化ビデオデータを受信する。符号化ビデオデータは、ビデオエンコーダ1720によって生成された、ビデオデータを表す種々の構文要素を含み得る。このような構文要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバに記憶された符号化ビデオデータに含まれ得る。
【0124】
また、符号化ビデオデータは、復号化および/または再生のために宛先デバイス1714によって後でアクセスするために記憶媒体またはファイルサーバに記憶され得る。例えば、コーディングされたビットストリームは、一時的に入力バッファ1731に記憶された後、汎用プロセッサ1733にロードされ得る。汎用プロセッサを駆動するためのプログラムは記憶デバイスまたはメモリからロードされ得る。汎用プロセッサは、プロセスメモリ1732を使用して復号化を実行し得る。また、ビデオデコーダ1730は、ビデオエンコーダ1720において使用されるリサンプリングモジュール1725と同様のリサンプリングモジュール1735を含み得る。
【0125】
図17は、汎用プロセッサ1733とは別個にリサンプリングモジュール1735を示すが、リサンプリング機能が汎用プロセッサによって実行されるプログラムによって実現され得ること、およびビデオエンコーダの処理が1つ以上のプロセッサを用いて実現され得ることを当業者は理解し得る。復号化画像は、出力フレームバッファ1736に記憶された後、入力インターフェース1738に送信され得る。
【0126】
ディスプレイデバイス1738は、宛先デバイス1714と一体とされ得るか、または宛先デバイス1714に外付けされ得る。いくつかの例では、宛先デバイス1714は、一体型ディスプレイデバイスを含み得るとともに、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス1714がディスプレイデバイスであり得る。概して、ディスプレイデバイス1738は、復号化ビデオデータをユーザに表示する。
【0127】
ビデオエンコーダ1720およびビデオデコーダ1730はビデオ圧縮規格に従って動作し得る。ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、現在の高効率ビデオコーディング(High Efficiency Video Coding:HEVC)標準の圧縮能力を大幅に超える圧縮機能を備えた将来のビデオコーディング技術の標準化(画面コンテンツコーディングおよびハイダイナミックレンジコーディングの現在の拡張と短期的な拡張とを含む)の潜在的ニーズを研究している。このグループは、この分野の専門家によって提案された圧縮技術設計を評価するために、ジョイントビデオエクスプロレーションチーム(JVET)と呼ばれる共同コラボレーション活動でこの調査活動に協力している。JVET開発の最近の成果は、J.Chen、E.Alshina、G.Sullivan、J.Ohm、J.Boyceによる"Algorithm Description of Joint Exploration Test Model 5 (JEM 5)", JVET-E1001-V2で説明されている。
【0128】
追加的にまたは代替的に、ビデオエンコーダ1720およびビデオデコーダ1730は、開示されたJVET機能で機能する他の独自の仕様または業界標準に従って動作し得る。したがって、ITU-T H.264規格(MPEG-4、パート10、アドバンスドビデオコーディング(AVC)とも呼ばれる)などのその他の規格、またはそのような規格の拡張機能である。したがって、JVETのために新たに開発されたものであるが、本開示の技術は、特定のコーディング標準または技術に限定されるものではない。ビデオ圧縮規格および技術の他の例には、MPEG-2や、ITU-T H.263や、独自仕様またはオープンソースの圧縮形式および関連する形式が含まれる。
【0129】
ビデオエンコーダ1720およびビデオデコーダ1730は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実装され得る。例えば、ビデオエンコーダ1720およびビデオデコーダ1730は、1つ以上のプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、またはそれらの任意の組み合わせを使用し得る。ビデオエンコーダ1720およびビデオデコーダ1730が部分的にソフトウェアで実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し、1つ以上のプロセッサを用いたハードウェアでそれらの命令を実行してこの開示の技術を実施する。ビデオエンコーダ1720およびビデオデコーダ1730の各々は、1つまたは複数のエンコーダまたはデコーダに含めることができ、いずれも、対応するデバイスの複合エンコーダ/デコーダ(コーデック)の一部として統合することができる。
【0130】
本明細書に記載される主題の態様は、上記の汎用プロセッサ1723,1733などのコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的な文脈で説明され得る。一般に、プログラムモジュールには、特定のタスクを実行したり、特定の抽象データタイプを実装したりするルーチン、プログラム、オブジェクト、成分、データ構造などが含まれる。本明細書に記載される主題の態様は、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置され得る。
【0131】
メモリの例としては、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、またはその両方が挙げられる。メモリは、上記した技術を実施するためのソースコードまたはバイナリコードなどの命令を記憶し得る。メモリは、プロセッサ1723,1733などのプロセッサによって実行される命令の実行中に変数または他の中間情報を記憶するためにも使用され得る。
【0132】
また、記憶デバイスは、上記した技術を実施するための命令、ソースコード、またはバイナリコードなどの命令を記憶し得る。さらに、記憶デバイスは、コンピュータプロセッサによって使用および扱われるデータを記憶し得る。例えば、ビデオエンコーダ1720またはビデオデコーダ1730内の記憶デバイスは、コンピュータシステム1723またはコンピュータシステム1733によってアクセスされるデータベースであり得る。記憶デバイスの他の例としては、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、ハードドライブ、磁気ディスク、光ディスク、CD-ROM、DVD、フラッシュメモリ、USBメモリカード、またはコンピュータ読み取り可能な任意の他の媒体が挙げられる。
【0133】
メモリまたは記憶デバイスは、ビデオエンコーダおよび/またはビデオデコーダによって、あるいはそれに関連して使用するための非一時的なコンピュータ可読記憶媒体の一例であり得る。非一時的なコンピュータ可読記憶媒体は、特定の実施形態によって説明される機能を実行するように構成されたコンピュータシステムを制御するための命令を含む。これらの命令は、1つまたは複数のコンピュータプロセッサによって実行されることにより、特定の実施形態で説明されるものを実施するように構成され得る。
【0134】
また、いくつかの実施形態は、フロー図またはブロック図として表され得る処理として説明されている。動作を順次処理として説明しているが、動作の多くは並列または同時に実行することができる。また、動作の順序を入れ替えることもできる。処理は、図に含まれていない追加のステップを含み得る。
【0135】
特定の実施形態は、命令実行システム、装置、システム、または機械によって使用したり、またはそれに関連して使用したりするための非一時的なコンピュータ可読記憶媒体に実装され得る。コンピュータ可読記憶媒体は、特定の実施形態によって説明される方法を実施するようにコンピュータシステムを制御するための命令を含む。コンピュータシステムは、1つまたは複数のコンピューティングデバイスを含み得る。命令は、1つまたは複数のコンピュータプロセッサによって実行されることにより、特定の実施形態で説明されるものを実行するように構成され得る。
【0136】
本明細書の説明および特許請求の範囲全体で使用される「1つ」は、文脈から明らかにそうでないと示されない限り、複数の参照を含む。また、本明細書の説明および特許請求の範囲全体で使用される「~内に」の意味は、文脈が明確に指示しない限り、「~内に」と「~上に」の意味を含む。
【0137】
本発明の例示的な実施形態を詳細にかつ上記の構造的特徴および/または方法の動作に固有の用語で説明したが、本発明の新規の教示および利点から実質的に逸脱することなく多くの追加の変更が例示的な実施形態において可能であることを当業者は容易に理解し得る。さらに、特許請求の範囲で定義される主題は、上記した特定の特徴または動作に必ずしも限定されない。したがって、これらの実施形態およびすべてのそのような変更は、添付の特許請求の範囲に従った広さおよび範囲で解釈される本発明の範囲内に含まれることが意図されている。
図1
図2
図3
図4
図5
図6
図7A
図7B
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17