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

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

▶ ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッドの特許一覧

特許7053954クロスコンポーネント線形モデルの簡略化
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-04
(45)【発行日】2022-04-12
(54)【発明の名称】クロスコンポーネント線形モデルの簡略化
(51)【国際特許分類】
   H04N 19/105 20140101AFI20220405BHJP
   H04N 19/176 20140101ALI20220405BHJP
   H04N 19/186 20140101ALI20220405BHJP
   H04N 19/593 20140101ALI20220405BHJP
【FI】
H04N19/105
H04N19/176
H04N19/186
H04N19/593
【請求項の数】 14
(21)【出願番号】P 2021520130
(86)(22)【出願日】2019-10-08
(65)【公表番号】
(43)【公表日】2022-01-04
(86)【国際出願番号】 US2019055208
(87)【国際公開番号】W WO2020076835
(87)【国際公開日】2020-04-16
【審査請求日】2021-04-08
(31)【優先権主張番号】62/742,806
(32)【優先日】2018-10-08
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100163511
【弁理士】
【氏名又は名称】辻 啓太
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】ワン シエンリン
【審査官】岩井 健二
(56)【参考文献】
【文献】米国特許出願公開第2017/0366818(US,A1)
【文献】国際公開第2018/118940(WO,A1)
【文献】国際公開第2018/053293(WO,A1)
【文献】Kai Zhang, et al.,CE3-related: CCLM prediction with single-line neighbouring luma samples,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L329-v1,12th Meeting: Macao, CN,2018年09月,pp.1-3
【文献】Xiang Ma, Haitao Yang, and Jianle Chen,CE3: CCLM/MDLM using simplified coefficients derivation method (Test 5.6.1, 5.6.2 and 5.6.3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0340_r1,12th Meeting: Macao, CN,2018年09月,pp.1-6
【文献】Philippe Hanhart, Yuwen He, and Yan Ye,CE3-related: Enabling different chroma sample location types in CCLM,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0239-v2,12th Meeting: Macau, CN,2018年10月06日,pp.1-7
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
ビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルから、複数のダウンサンプリング輝度サンプルを算出することと、
算出された前記複数のダウンサンプリング輝度サンプルのうち予め定められた数の算出されたダウンサンプリング輝度サンプルからなるサブ組から、前記複数の再構成された隣接彩度サンプルの第1の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最大輝度サンプルを識別することと、
算出された前記複数のダウンサンプリング輝度サンプルの前記サブ組から、前記複数の再構成された隣接彩度サンプルの第2の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最小輝度サンプルを識別することと、
前記少なくとも1つのダウンサンプリング最大輝度サンプルと、前記少なくとも1つのダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとに基いて、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項2】
前記彩度ブロックおよび前記輝度ブロックは、4:2:0または4:2:2の彩度サブサンプリングスキームによって符号化され、異なる解像度を有し、または、
前記彩度ブロックおよび前記輝度ブロックは、4:4:4の彩度フルサンプリングスキームによって符号化され、同じ解像度を有する、請求項1に記載の方法。
【請求項3】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび/または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項1に記載の方法。
【請求項4】
前記再構成された輝度ブロックの輝度サンプルから、ダウンサンプリング輝度サンプルを算出することは、前記輝度サンプルに6つの隣接輝度サンプルの加重平均化を実行することを含む、請求項1に記載の方法。
【請求項5】
前記線形モデルを生成することは、前記少なくとも1つのダウンサンプリング最大輝度サンプル及び前記第1の再構成された彩度サンプルに関連する少なくとも1つのデータ点と、前記少なくとも1つのダウンサンプリング最小輝度サンプル及び前記第2の再構成された彩度サンプルに関連する少なくとも1つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項1に記載の方法。
【請求項6】
コンピューティング装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記1つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、複数のダウンサンプリング輝度サンプルを算出し、
算出された前記複数のダウンサンプリング輝度サンプルのうち予め定められた数の算出されたダウンサンプリング輝度サンプルからなるサブ組から、前記複数の再構成された隣接彩度サンプルの第1の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最大輝度サンプルを識別し、
算出された前記複数のダウンサンプリング輝度サンプルの前記サブ組から、前記複数の再構成された隣接彩度サンプルの第2の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも1つのダウンサンプリング最大輝度サンプルと、前記少なくとも1つのダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとに基いて、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項7】
前記彩度ブロックおよび前記輝度ブロックは、4:2:0または4:2:2の彩度サブサンプリングスキームによって符号化され、異なる解像度を有し、または、
前記彩度ブロックおよび前記輝度ブロックは、4:4:4の彩度フルサンプリングスキームによって符号化され、同じ解像度を有する、請求項6に記載のコンピューティング装置。
【請求項8】
前記複数の再構成された隣接輝度サンプルには、前記再構成された輝度ブロックの上方に位置する輝度サンプルおよび/または前記再構成された輝度ブロックの左側に位置する輝度サンプルを含む、請求項6に記載のコンピューティング装置。
【請求項9】
前記再構成された輝度ブロックの輝度サンプルから、ダウンサンプリング輝度サンプルを算出することは、前記輝度サンプルに6つの隣接輝度サンプルの加重平均化を実行することを含む、請求項6に記載のコンピューティング装置。
【請求項10】
前記線形モデルを生成することは、前記少なくとも1つのダウンサンプリング最大輝度サンプル及び前記第1の再構成された彩度サンプルに関連する少なくとも1つのデータ点と、前記少なくとも1つのダウンサンプリング最小輝度サンプル及び前記第2の再構成された彩度サンプルに関連する少なくとも1つのデータ点と、を通る線形方程式をフィッティングすることを含む、請求項6に記載のコンピューティング装置。
【請求項11】
1つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、請求項1から5のいずれか一項に記載のビデオ信号を復号化する方法を実行させる
、非一時的なコンピュータ読取可能な記憶媒体。
【請求項12】
ビデオ信号を復号化する方法であって、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成することと、
前記複数の再構成された隣接輝度サンプルから、複数のダウンサンプリング輝度サンプルを算出することと、
算出された記複数のダウンサンプリング輝度サンプルのうち予め定められた数の算出されたダウンサンプリング輝度サンプルからなるサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第1の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第2の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最小輝度サンプルをそれぞれ識別することと、
前記少なくとも1つのダウンサンプリング最大輝度サンプルと、前記少なくとも1つのダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとにより、線形モデルを生成することと、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出することと、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することと、
を含むビデオ信号を復号化する方法。
【請求項13】
コンピューティング装置であって、
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサに接続されているメモリと、
前記メモリに格納されている複数のプログラムと、
を含み、
前記複数のプログラムは、前記1つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、複数のダウンサンプリング輝度サンプルを算出し、
算出された記複数のダウンサンプリング輝度サンプルのうち予め定められた数の算出されたダウンサンプリング輝度サンプルからなるサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第1の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第2の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも1つのダウンサンプリング最大輝度サンプルと、前記少なくとも1つのダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、コンピューティング装置。
【請求項14】
1つまたは複数のプロセッサを有するコンピューティング装置によって実行される複数のプログラムを格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記複数のプログラムは、前記1つまたは複数のプロセッサによって実行されると、前記コンピューティング装置に、
複数の再構成された隣接彩度サンプルに隣り合う彩度ブロックに対応し且つ複数の再構成された隣接輝度サンプルに隣り合う輝度ブロックを再構成し、
前記複数の再構成された隣接輝度サンプルから、複数のダウンサンプリング輝度サンプルを算出し、
算出された記複数のダウンサンプリング輝度サンプルのうち予め定められた数の算出されたダウンサンプリング輝度サンプルからなるサブ組を予め定められた順で検索して、前記複数の再構成された隣接彩度サンプルの第1の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最大輝度サンプル及び前記複数の再構成された隣接彩度サンプルの第2の再構成された彩度サンプルに対応する少なくとも1つのダウンサンプリング最小輝度サンプルを識別し、
前記少なくとも1つのダウンサンプリング最大輝度サンプルと、前記少なくとも1つのダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとにより、線形モデルを生成し、
前記再構成された輝度ブロックの輝度サンプルから、それぞれ前記彩度ブロックの彩度サンプルに対応するダウンサンプリング輝度サンプルを算出し、
算出された前記対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測する、
のような操作を実行させる、非一時的なコンピュータ読取可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、全般的にビデオデータの符号化および復号化に関し、特に、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する。
【背景技術】
【0002】
デジタル・テレビ、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、デジタル・カメラ、デジタル記録装置、デジタル・メディア・プレーヤー、ビデオ・ゲーム機、スマートフォン、ビデオ会議装置やビデオ・ストリーミング装置などの各種電子装置は全てデジタル・ビデオを支持する。電子装置は、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、Advancd Video Coding(AVC)、High Efficiency Video Coding(HEVC)及びVersatile Video Coding(VVC)の規格で定義されたビデオ圧縮/展開の標準を実行することで、デジタル・ビデオ・データを受送信し、符号化し、復号化や格納する。ビデオ圧縮は、通常、空間(フレーム内)予測および/または時間(フレーム間)予測を実行して、ビデオデータに固有の冗長性を低減または削除することを含む。ブロックに基づくビデオ符号化において、ビデオフレームは、符号化ツリーユニット(CTU:Coding Tree UNIT)と呼ばれる複数のビデオブロックを含む1つ又は複数のスライスに分割される。各CTUは、1つの符号化ユニット(CU)を含み、または予め定められた最小のCUサイズに達するまでより小さなCUに再帰的に分割されることがある。各CU(リーフCUとも呼ばれる)には、1つまたは複数の変換ユニット(TU:transform unit)と、1つまたは複数の予測ユニット(PU:prediction unit)とが含まれる。各CUは、イントラ、インター、またはIBCモードのいずれかで符号化されることが可能である。1つのビデオフレームにおけるイントラ符号化された(I)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測で符号化される。1つのビデオフレームにおけるインター符号化された(PまたはB)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測、または他の以前および/または将来の参照ビデオフレームにおける参照サンプルに関する時間予測を使用する。
【0003】
以前符号化された参照ブロック、例えば隣接ブロックの空間予測又は時間予測に基いて、符号化対象である現在のビデオブロックの予測ブロックが得られる。参照ブロックを見つける処理は、ブロックマッチングアルゴリズムによって実現することが可能である。符号化対象である現在のブロックと予測ブロックとの間の画素差を示す残差データは、残差ブロック又は予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを生成した参照フレームにおける参照ブロックにポイントする動きベクトルと、残差ブロックとに応じて符号化される。動きベクトルを確定する処理は、通常動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードと残差ブロックによって符号化されるものである。更なる圧縮のために、残差ブロックは画素領域から変換領域、例えば周波数領域に変換され、結果として将来に定量化される残差変換係数が得られる。そして、最初に二次元行列で配置されて定量化された変換係数は、走査されて一次元の変換係数ベクトルを生成し、その後、更なる圧縮を達成するようにビデオ・ビットストリームにエントロピー符号化される。
【0004】
そして、符号化されたビデオ・ビットストリームは、コンピュータ読取可能な記憶媒体(例えば、フラッシュメモリ)に保存されて、デジタル・ビデオ能力を持つ電子装置によってアクセスされ、或いは有線または無線でこの電子装置に直接送信される。そして、この電子装置は、例えば、符号化されたビデオ・ビットストリームを解析してこのビットストリームから構文要素を取得し、このビットストリームから取得された構文要素の少なくとも一部に基づいてデジタル・ビデオデータをこの符号化されたビデオストリームから元のフォーマットに再構成することで、ビデオ展開(上述したビデオ圧縮とは反対のプロセス)を実行しており、この再構成されたデジタル・ビデオデータを電子装置のディスプレイに再現する。
【0005】
デジタル・ビデオの品質が高解像度から4K×2K、さらに8K×4Kに進んでいるにつれて、符号化/復号化対象となるビデオデータの量は指数関数的に増加する。復号化されたビデオデータの画像品質を維持しながらビデオデータを効率的に符号化/復号化することは、常に課題である。
【発明の概要】
【0006】
本願は、ビデオデータの符号化および復号化、より具体的には、ビデオデータの符号化および復号化においてクロスコンポーネント線形モデルを用いて彩度ブロックを再構成する方法およびシステムに関する実現を説明する。
【0007】
本願の第1の方面に従い、ビデオデータを復号化する方法は、1つまたは複数のプロセッサとこの1つまたは複数のプロセッサによって実行される複数のプログラムを格納しているメモリとを備えるコンピューティング装置で実行される。コンピューティング装置は、彩度ブロックに対応する輝度ブロックを再構成することと、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して最大の輝度サンプルおよび最小の輝度サンプルを識別することと、前記最大の輝度サンプルに対応するダウンサンプリング最大輝度サンプルを算出することと、前記最小の輝度サンプルに対応するダウンサンプリング最小輝度サンプルを算出することと、前記ダウンサンプリング最大輝度サンプルと、前記ダウンサンプリング最小輝度サンプルと、前記第1の再構成された彩度サンプルと、前記第2の再構成された彩度サンプルとにより線形モデルを生成することと、前記再構成された輝度ブロックの輝度サンプルから前記彩度ブロックの各彩度サンプルにそれぞれ対応するダウンサンプリング輝度サンプルを算出することと、対応するダウンサンプリング輝度サンプルに前記線形モデルを適用することにより、前記彩度ブロックの彩度サンプルを予測することを含む方法を実行する。
【0008】
本願の第2の方面に従い、コンピューティング装置は、1つまたは複数のプロセッサと、メモリとメモリに格納されている複数のプログラムとを備える。プログラムは、1つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【0009】
本願の第3の方面に従い、非一時的なコンピュータ読取可能な記憶媒体は、1つまたは複数のプロセッサを備えるコンピューティング装置によって実行される複数のプログラムを格納している。プログラムは、1つまたは複数のプロセッサによって実行されると、当該コンピューティング装置に上述のような操作を実行させる。
【図面の簡単な説明】
【0010】
本発明の実現のさらなる理解を提供する、本明細書に引き入れて本明細書の一部を構成する添付図面は、上述した実現を示し、その説明と共に基礎原理を説明するためものである。なお、同一符号は同一または相当な部分を示す。
【0011】
図1図1は、本開示のある実施形態に係るビデオ符号化および復号化システムを例示するブロック図である。
図2図2は、本開示のある実施形態に係るビデオエンコーダを例示するブロック図である。
図3図3は、本開示のある実施形態に係るビデオデコーダを例示するブロック図である。
図4図4A~4Dは、本開示のある実施形態に係る、フレームがどのように再帰的に異なるサイズの複数のビデオブロックにクワッドツリー分割で分割されるかを示すブロック図である。
図5A図5Aは、本開示のある実施形態に係る、符号化対象である現在CUの空間的に隣り合いかつ時間的に並べられたブロック位置を示すブロック図である。
図5B図5Bは、本開示のある実施形態に係る、波面並列処理を使用して画像における複数のCTUの複数の行分にマルチスレッド符号化を行うことを示すブロック図である。
図6図6Aおよび6Bは、本開示のある実施形態に係る、再構成された輝度ブロックおよび関連彩度ブロックをそれぞれ例示するブロック図である。
図7図7A~7Eは、本開示のある実施形態に係る、クロスコンポーネント線形モデルを使用して輝度値と彩度値との間で線形モデルを導出する種々の方法を示している。
図8図8は、本開示のある実施形態に係る、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するためのプロセスを例示するフローチャートである。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を詳細に説明する。以下の詳細な説明において、本明細書に述べる趣旨を容易に理解するために、複数の非限定的な具体的な詳細を述べる。ただし、本発明は、特許請求の範囲及びその趣旨から逸脱することではなく種々の変形により実施することができることは当業者には明らかである。例えば、本明細書に述べる趣旨がデジタルビデオ機能を有する多くの種類の電子装置で実施され得る。
【0013】
図1は、本開示のある実施形態に係る、ビデオブロックを並列に符号化および復号化するためのシステム10を例示するブロック図である。図1に示すように、システム10は、将来目標装置14によって復号化されるビデオデータを生成し符号化するソース装置12を含む。ソース装置12および目標装置14には、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セットトップボックス、デジタル・テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオ・ゲーム機、ビデオ・ストリーミング装置などを含む多種の電子装置のいずれかを含んでもよい。ある実施形態では、ソース装置12および目標装置14は、無線通信機能を備えている。
【0014】
ある実施形態では、目標装置14は、リンク16を介して復号化対象の符号化後のビデオデータを受信する。リンク16には、符号化されたビデオデータをソース装置12から目標装置14に移動させる任意のタイプの通信媒体または装置を含むことが可能である。一つの例では、リンク16には、ソース装置12から、符号化されたビデオデータを目標装置14にリアルタイムで直接送信できる通信媒体を含んでもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信規格に従って変調され、目標装置14に送信される。通信媒体には、無線周波数(RF:radio frequency)スペクトルまたは1つか複数の物理的な伝送路などの任意の無線または有線通信媒体を含むことが可能である。通信媒体は、ローカルエリアネットワークのようなパケットベースのネットワーク、ワイドエリアネットワークまたはインターネット等のようなグローバルネットワークの一部として構成してもよい。通信媒体には、ルーター、交換機、基地局や、ソース装置12から目標装置14への通信に役立つ他の任意の装置を含んでもよい。
【0015】
他のある実施形態では、符号化されたビデオデータは、出力インターフェース22からストレージ装置32に送信される。その後、ストレージ装置32にある符号化されたビデオデータは、入力インターフェース28を介して目標装置14によってアクセスされる。ストレージ装置32には、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、や符号化されたビデオデータを格納するための他の適切なデジタル記憶媒体などのような多種の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含むことが可能である。他の例では、ストレージ装置32は、ファイルサーバ、またはソース装置12によって生成された符号化ビデオデータを保持することができる別の中間ストレージ装置に対応してもよい。目標装置14は、ストリーミングまたはダウンロードを介してストレージ装置32から格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、符号化されたビデオデータを目標装置14に送信することができる任意のタイプのコンピュータであることが可能である。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用)、FTPサーバ、ネットワーク接続ストレージ(NAS)装置、またはローカルディスクドライブを含む。目標装置14は、ファイルサーバーに保存されている符号化ビデオデータへのアクセスに適する無線チャネル(例えば、Wi―Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、またはそれらの組み合わせを含む任意の規格データ接続を介して、符号化されたビデオデータをアクセスすることができる。ストレージ装置32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであってもよい。
【0016】
図1に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18には、ビデオ・キャプチャ装置(例えばビデオカメラ)、前に捕らえられたビデオを含むビデオアーカイブ、ビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェイス、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそれらの組み合わせ等のようなソースを含むことが可能である。一つの例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソース装置12および目標装置14は、カメラ付き携帯電話またはビデオ電話を構成できる。しかしながら、本願で説明する実施形態は、一般にビデオ符号化に適用可能であり、そして無線および/または有線アプリケーションに適用可能である。
【0017】
ビデオエンコーダ20は、捕れるビデオ、予め捕らえられたビデオ、またはコンピュータによって生成されたビデオを符号化することができる。符号化されたビデオデータは、ソース装置12の出力インターフェース22を介して目標装置14に直接送信されることが可能である。加えて(または選択的に)、符号化されたビデオデータは、その後、目標装置14または他の装置によってアクセスされて復号化および/または再生できるように、ストレージ装置32に格納されてもよい。出力インターフェース22は、モデムおよび/または送信機をさらに含んでもよい。
【0018】
目標装置14は、入力インターフェース28、ビデオデコーダ30、および表示装置34を含む。入力インターフェース28は受信機および/またはモデムを含み、リンク16を介して符号化されたビデオデータを受信する。リンク16を介して通信された、またはストレージ装置32に提供された符号化ビデオデータには、ビデオエンコーダ20によって生成され、ビデオデコーダ30によるビデオデータの復号化に使用される多くの構文要素を含んでもよい。これらの符号化されたビデオデータは、通信媒体で送信されるか、記憶媒体に記憶されているか、ファイルサーバーに記憶されているかに関わらず、そのような構文要素を含んでもよい。
【0019】
ある実施形態では、目標装置14は、集積された表示装置や、目標装置14と通信できるように構成された外部表示装置である表示装置34を含んでもよい。表示装置34は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示装置などの各種の表示装置のいずれかを含んでもよい。
【0020】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、高度なビデオ符号化(AVC:Advanced Video Coding)、またはそのような規格の拡張などの専門または業界標準に従って動作する。なお、本願は、特定のビデオ符号化/復号化の標準に限定されず、他のビデオ符号化/復号化規格にも適用可能であることが理解されるべきである。ソース装置12のビデオエンコーダ20は、これらの現在または将来の規格のいずれかに従ってビデオデータを符号化するように構成される。同様に、目標装置14のビデオデコーダ30は、これらの現在または将来の規格のいずれかに従ってビデオデータを復号化するように構成される。
【0021】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散な論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせなどのような、種々の適切なエンコーダ回路のいずれかによって実現されることが可能である。ソフトウェアによって一部実現される場合、電子装置は、ソフトウェアの命令を適切な非一時的なコンピュータ読取可能な媒体に格納し、1つまたは複数のプロセッサによってハードウェアにおける命令を実行することで本開示に述べたビデオ符号化/復号化操作を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30は、それぞれの装置において結合式エンコーダ/デコーダ(CODEC)の一部として集積された一つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【0022】
図2は、本願で説明されるある実施形態に係るビデオエンコーダ20を例示するブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックに対してイントラ予測符号化およびインター予測符号化を実行することができる。イントラ予測符号化は空間予測に依存し、特定のビデオフレームまたは画像内のビデオデータの空間的冗長性を低減または削除する。インター予測符号化は、時間予測に依存し、ビデオシーケンスの隣接するビデオフレームまたは画像内のビデオデータの時間的冗長性を低減または削除する。
【0023】
図2に示すように、ビデオエンコーダ20は、ビデオデータメモリ40、予測処理部41、復号化画像バッファ(DPB)64、加算器50、変換処理部52、定量化部54、エントロピー符号化部56を備えている。予測処理部41は、動き推定部42、動き補償部44、分割部45、イントラ予測処理部46、イントラブロックコピー(BC)部48をさらに備えている。ある実施形態では、ビデオエンコーダ20はまた、ビデオブロック再構成のための逆定量化部58、逆変換処理部60、および加算器62をさらに備えている。加算器62とDPB64との間には、再構成されたビデオからブロック同士の境界をフィルタリングしてブロック性アーチファクトを除去するデブロッキング・フィルタ(図示せず)を配置することが可能である。また、加算器62の出力をフィルタリングするために、デブロッキング・フィルタに加えて、環内フィルタ(図示せず)を用いてもよい。ビデオエンコーダ20は、固定的、またはプログラマブル・ハードウェアユニットの形態で形成してもよいし、または図示された固定的またはプログラマブル・ハードウェアユニットの1つ又は複数内で分割されてもよい。
【0024】
ビデオデータメモリ40は、ビデオエンコーダ20における部品によって符号化対象のビデオデータを格納する。ビデオデータメモリ40におけるビデオデータは、例えばビデオソース18から得られる。DPB64は、ビデオエンコーダ20によってビデオデータを(例えば、イントラ予測またはインター予測符号化モードで)符号化する際に使用される参照ビデオデータを格納するバッファである。ビデオデータメモリ40およびDPB64は、種々のメモリデバイスのいずれかで形成されることが可能である。種々の例では、ビデオデータメモリ40は、ビデオエンコーダ20における他の部品とともにオンチップであってもよく、またはそれらの部品に対するオフチップであってもよい。
【0025】
図2に示すように、ビデオデータを受信した後、予測処理部41における分割部45は、このビデオデータをビデオブロックに分割する。この分割には、このビデオデータに関するquad-tree構造のような予め定められた分割構造に従って、ビデオフレームをスライス、タイルまたは他のより大きい符号化ユニット(CU)に分割することを含んでもよい。ビデオフレームは、複数のビデオブロック(または、タイルと称されるビデオブロックトセット)に分割されることができる。予測処理部41は、現在のビデオブロックに対して、エラー結果(例えば、符号化率および歪みレベル)に基づいて、複数のイントラ予測符号化モードのうちの1つまたは複数のインター予測符号化モードのうちの1つを選択するように、複数の可能な予測符号化モードのうちの1つを選択する。そして、予測処理部41は、得られたイントラ又はインター予測符号化ブロックを加算器50に提供して残差ブロックを生成し、その後の参照フレームの一部として使用するように符号化ブロックを再構成する。また、予測処理部41は、さらに動きベクトル、イントラモードインジケータ、分割情報及び他の構文情報のような構文要素をエントロピー符号化部56に提供する。
【0026】
予測処理部41におけるイントラ予測処理部46は、現在のビデオブロックに適したイントラ予測符号化モードを選択するために、符号化対象である現在のブロックと同一のフレーム内の1つまたは複数の隣接ブロックと関連して、現在のビデオブロックのイントラ予測符号化を実行して空間予測を行うことができる。予測処理部41における動き推定部42および動き補償部44は、一つ又は複数の参照フレーム内の一つ又は複数の予測ブロックに関連して、現在のビデオブロックのインター予測符号化を実行して時間予測を行う。ビデオエンコーダ20は、複数のパスの符号化処理を実行して、例えばビデオデータにおける各ブロックに対して適切な符号化モードを選択してもよい。
【0027】
ある実施形態では、動き推定部42は、ビデオフレームのシーケンスの予め定められたパターンに従って、参照ビデオフレーム内における予測ブロックに対する現在のビデオフレーム内におけるビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することで、現在のビデオフレームに対してインター予測モードを決定する。動き推定部42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、現在のビデオ・フレームまたは画像内における符号化されている現在のビデオブブロック(または他の符号化ユニット)に対する基準フレーム(または他の符号化ユニット)内における予測ブロックに対して、現在のビデオ・フレーム内におけるビデオブロックのPUの変位を示すことができる。予め定められたパターンは、シーケンスにおけるビデオ・フレームをPフレームまたはBフレームとして指定できる。イントラBC部48は、動き推定部42によるインター予測のための動きベクトルの決定と同様な方法により、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよいし、または動き推定部42を利用してブロックベクトルを決定してもよい。
【0028】
絶対差の合計(SAD)、二乗差の合計(SSD)又はその他の差メトリックによって決定できる画素差では、予測ブロックは、符号化対象のビデオブロックのPUと厳密にマッチングされる参照フレームにおけるブロックである。ある実施形態では、ビデオエンコーダ20は、DPB64に格納されている参照フレームのサブ整数画素位置の値を算出することが可能である。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定装置42は、すべての画素位置および分数画素位置に対して動き探索処理を実行して、分数画素精度を有する動きベクトルを出力ことができる。
【0029】
動き推定部42は、インター予測符号化フレーム内におけるビデオブロックのPUの位置と、それぞれDPB64に格納されている1つまたは複数の参照フレームを識別する第1の参照フレームリスト(List0)または第2の参照フレームリスト(List1)から選択された参照フレームの予測ブロックの位置と比較することで、ビデオブロックのPUの動きベクトルを算出する。動き推定部42は、算出された動きベクトルを動き補償部44に送信し、そしてエントロピー符号化部56に送信する。
【0030】
動き補償部44によって実行される動き補償には、動き推定部42によって決定された動きベクトルに基づいて予測ブロックを取得または生成することを含み得る。動き補償部44は、現在のビデオブロックのPUの動きベクトルを受信すると、参照フレームリストの1つにおいてこの動きベクトルが指している予測ブロックを位置決めし、DPB6からこの予測ブロックを探し、この予測ブロックを加算器50に転送する。そして、加算器50は、符号化されている現在のビデオブロックの画素値から動き補償部44によって提供された予測ブロックの画素値を差し引くことで、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、輝度差成分または彩度差成分、あるいはその両方を含み得る。また、動き補償部44は、ビデオフレームのビデオブロックに関する構文要素をさらに生成して、ビデオデコーダ30によってビデオフレームのビデオブロックを復号化する際に使用する。構文要素には、例えば、この予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書で説明される任意の他の構文情報を含み得る。なお、動き推定部42および動き補償部44は、概念的な目的のために個別に示されているが、高度に集積されてもよい。
【0031】
ある実施形態では、イントラBC部48は、動き推定部42および動き補償部44に関して上述した方法と同様の方法によりベクトルを生成し、予測ブロックを取得することができるが、ここで、予測ブロックは符号化されている現在のブロックと同じフレームにあるものであり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれる。特に、イントラBC部48は、一つのイントラ予測モードを決定して現在のブロックを符号化することができる。ある例では、イントラBC部48は、例えば個別のパスの符号化において、多種類のイントラ予測モードを使用して現在のブロックを符号化し、レート歪み解析によりそれらのパフォーマンスをテストすることが可能である。次に、イントラBC部48は、テストされた種々のイントラ予測モードから、一つの適切なイントラ予測を選択し使用して、対応するイントラモードインジケータを生成する。例えば、イントラBC部48は、テストされた種々のイントラ予測モードのレート歪み値をレート歪み解析により算出し、テストされたモードからレート歪み特性が最適なイントラ予測モードを適切なイントラ予測モードとして選択し使用してもよい。レート歪み解析では、通常、符号化されたブロックと符号化されてこの符号化されたブロックを生成した符号化が実施されていない元のブロックとの間の歪み(又は、エラー)の量、およびこの符号化されたブロックを生成するために使用されるビットレート(すなわち、複数のビット)が決定される。イントラBC部48は、種々の符号化されたブロックについて歪み及びレートから比率を算出して、どのイントラ予測モードがこのブロックに対して最適なレート歪み値を示しているかを決定してもよい。
【0032】
別の例では、イントラBC部48は、動き推定部42および動き補償部44を全体的または一部的に使用して、本明細書に記載の実施形態に基づくイントラBC予測用いられる係る機能を実行してもよい。いずれの場合も、イントラ・ブロック・コピーについては、予測ブロックは、絶対差の合計(SAD)、二乗差の合計(SSD)または他の差メトリックによって決定できる画素差で、符号化対象のブロックと厳密にマッチングすると考えるものであり、予測ブロックの識別には、サブ整数画素位置の値の算出が含まれる場合がある。
【0033】
ビデオエンコーダ20は、予測ブロックがイントラ予測に基づく同じフレームからのものであるか、インター予測に基づく異なるフレームからのものであるかに関わらず、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引いて画素差値を形成することで、残差ビデオブロックを生成することができる。残差ビデオブロックを形成している画素差値には、輝度成分差及び彩度成分差の両方を含むことが可能である。
【0034】
イントラ予測処理部46は、上述した動き推定部42および動き補償部44によって実行されるインター予測、またはイントラBC部48によって実行されるイントラ・ブロック・コピー予測の代わりに、現在のビデオブロックに対してイントラ予測することができる。特に、イントラ予測処理部46は、1つのイントラ予測モードを決定して現在のブロックを符号化することができる。それを実現するために、イントラ予測処理部46は、例えば、個別のパスの符号化処理において、種々のイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測処理部46(またはある例では、モード選択部)は、テストされたイントラ予測モードから1つの適切なイントラ予測モードを選択し使用してもよい。イントラ予測処理部46は、このブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化部56に提供してもよい。エントロピー符号化部56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【0035】
予測処理部41がインター予測またはイントラ予測により現在のビデオブロックの予測ブロックを決定した後、加算器50は、現在のビデオブロックからこの予測ブロックを差し引くことで残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数の変換ユニット(TU)に含まれて変換処理部52に提供される。変換処理部52は、離散コサイン変換(DCT)または概念的に類似する変換などにより、残差ビデオデータを残差変換係数に変換することができる。
【0036】
変換処理部52は、得られた変換係数を定量化部54に送信する。定量化部54は、これらの変換係数を定量化して、ビットレートをさらに低減する。定量化プロセスは、これらの係数の一部または全部に関連するビット深度を減らすこともできる。定量化の度合いは、定量化パラメータを調整することによって変更されることができる。そして、ある例では、定量化部54は、定量化された変換係数を含む行列の走査を実行することができる。この走査は、エントロピー符号化部56によって実行されることが可能である。
【0037】
定量化に続いて、エントロピー符号化部56は、例えば、コンテキスト適応可変長符号化(CAVLC)、コンテキスト適応バイナリ算術符号化(CABAC)、構文ベースのコンテキスト適応バイナリ算術符号化(SBAC)、確率間隔分割エントロピー(PIPE)符号化または別のエントロピー符号化方法または技術により、定量化された変換係数を、ビデオ・ビットストリームにエントロピー符号化する。そして、符号化されたビットストリームは、ビデオデコーダ30に送信されてもよいし、またはその後にビデオデコーダ30へ送信するか、またはビデオデコーダ30による検索のためにストレージ装置32にアーカイブされてもよい。また、エントロピー符号化部56は、符号化されている現在のビデオフレームのための動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【0038】
逆定量化部58および逆変換処理部60は、それぞれ、逆定量化および逆変換により、他のビデオブロックの予測に使用される参照ブロックを生成するための画素領域内の残差ビデオブロックを再構成する。上記のように、動き補償部44は、DPB64に格納されたフレームの1つまたは複数の参照ブロックから動き補償予測ブロックを生成することができる。また、動き補償部44は、この予測ブロックに1つまたは複数の補間フィルタを適用して、動き推定に使用されるサブ整数画素値を算出することもできる。
【0039】
加算器62は、再構成された残差ブロックを動き補償部44によって生成された動き補償予測ブロックに加算して、DPB64に格納する参照ブロックを生成する。そして、この参照ブロックは、予測ブロックとして、イントラBC部48、動き推定部42および動き補償部44に使用されて後続のビデオフレーム内の別のビデオブロックをインター予測することが可能である。
【0040】
図3は、本願のある実施形態に係るビデオデコーダ30を例示するブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号化部80、予測処理部81、逆定量化部86、逆変換処理部88、加算器90およびDPB92を備える。予測処理部81は、動き補償部82、イントラ予測部84及びイントラBC部85をさらに備える。ビデオデコーダ30は、図2に参照してビデオエンコーダ20に関して上述した符号化プロセスとおおよそ逆の復号化プロセスを実行することができる。例えば、動き補償部82は、エントロピー復号部80から受信した動きベクトルに基づいて予測データを生成し、イントラ予測部84は、エントロピー復号化部80から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0041】
ある例では、ビデオデコーダ30における一つの構成要素が本願の実施を実行する任務を負ってもよい。また、ある例では、本開示の実施は、ビデオデコーダ30における1つまたは複数の構成要素に分割されてもよい。例えば、イントラBC部85は、本願の実施を単独で実現してもよく、または動き補償部82、イントラ予測部84およびエントロピー復号化部80などのビデオデコーダ30における他の構成要素と組み合わせて実現してもよい。ある例では、ビデオデコーダ30は、イントラBC部85を含まなく、イントラBC部85の機能が動き補償部82などの予測処理部81における他の構成要素によって実現されてもよい。
【0042】
ビデオデータメモリ79は、ビデオデコーダ30における他の構成要素によって復号化される符号化ビデオビットストリームなどのビデオデータを格納することができる。ビデオデータメモリ79に格納されたビデオデータは、例えば、ストレージ装置32から取得したり、ビデオデータの有線または無線ネットワーク通信や物理データ記憶媒体(例えば、フラッシュドライブやハードディスク)へのアクセスによりカメラなどのローカルビデオソースから取得し得る。ビデオデータメモリ79は、符号化されたビデオビットストリームから符号化されたビデオデータを格納する符号化画像バッファ(CPB)を含んでもよい。ビデオデコーダ30における復号化画像バッファ(DPB)92は、ビデオデコーダ30(例えば、イントラ予測またはインター予測符号化モード)によるビデオデータの復号化に使用される参照ビデオデータを格納する。ビデオデータメモリ79およびDPB92は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗変化型RAM(RRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、または他のタイプのメモリデバイスなどの種々のメモリデバイスのいずれかによって形成されることができる。説明の便利上、ビデオデータメモリ79およびDPB92は、図3ではビデオデコーダ30における2つの異なる構成要素として示されている。しかし、当業者にとっては、ビデオデータメモリ79およびDPB92が同じメモリデバイス又は異なるメモリデバイスによって提供されることは明らかである。ある例では、ビデオデータメモリ79は、ビデオデコーダ30における他の構成要素とともにオンチップであってもよく、それらの構成要素に対するオフチップであってもよい。
【0043】
復号化プロセスにおいて、ビデオデコーダ30は符号化されたビデオフレームのビデオブロックおよび関連構文要素を示す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベルおよび/またはビデオブロックレベルで構文要素を受信することができる。ビデオデコーダ30のエントロピー復号化部80は、このビットストリームをエントロピー復号化して、定量化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他の構文要素を生成する。そして、エントロピー復号化部80は、動きベクトルおよび他の構文要素を予測処理部81に転送する。
【0044】
ビデオフレームがイントラ予測符号化(I)フレームに符号化された場合、または他のタイプのフレームのイントラ符号化予測ブロックに用いられる場合には、予測処理部81におけるイントラ予測部84は、通知されたイントラ予測モードと、現在のフレームからの以前復号化されたブロックからの参照データとに基づいて、現在のビデオフレームのビデオブロックの予測データを生成することができる。
【0045】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームに符号化された場合、予測処理部81における動き補償部82は、エントロピー復号化部80から受信した動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの1つまたは複数の予測ブロックを生成することができる。各予測ブロックは、参照フレームリストのうちの1つの参照フレーム内から生成される。ビデオデコーダ30は、DPB92に格納された参照フレームに基いて、デフォルトの構成技術によりこの参照フレームリスト、List0およびList1を構成することができる。
【0046】
ある例では、ビデオブロックがここで述べたイントラBCモードに従って符号化された場合には、予測処理部81におけるイントラBC部85は、エントロピー復号化部80から受信したブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを生成する。この予測ブロックは、ビデオエンコーダ20によって定義された現在のビデオブロックと同一の画像の再構成領域内にあり得る。
【0047】
動き補償部82および/またはイントラBC部85は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、そして、この予測情報を使用して復号化されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償部82は、受信した構文要素の一部を使用して、このビデオフレームのビデオブロックを符号化するための予測モード(例えば、イントラ予測またはインター予測)、インター予測フレームタイプ(例えば、BまたはP)、このフレームに関する1つまたは複数の参照フレームリストのための構造情報、このフレームの各インター予測符号化ビデオブロックに関する動きベクトル、このフレームの各インター予測符号化ビデオブロックに関するインター予測状態、および現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定する。
【0048】
同様に、イントラBC部85は、受信した構文要素の一部を使用することができる。例えば、現在のビデオブロックがイントラBCモード予測であることを決定するためのフラグ、このフレームのどんなビデオブロックが再構成領域内にあり且つDPB92に格納されるべきかに関する構造情報、このフレームにおける各イントラBC予測ビデオブロックに関するブロックベクトル、このフレームにおける各イントラBC予測ビデオブロックに関するイントラBC予測状態、及び現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を使用することができる。
【0049】
また、動き補償部82は、ビデオエンコーダ20がビデオブロックの符号化において使用した補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素に対する補間値を算出することもできる。この場合、動き補償部82は、受信した構文要素からビデオエンコーダ20によって使用された補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0050】
逆定量化部86は、ビデオエンコーダ20によって定量化の度合いを決定するためにこのビデオフレーム内の各ビデオブロックに対して算出された定量化パラメータと同じものを使用して、ビットストリームで提供され且つエントロピー復号化部80によってエントロピー復号化された定量化の変換係数を逆定量化する。逆変換処理部88は、画素領域における残差ブロックを再構成するために、逆変換、例えば逆DCT、逆整数変換、または概念的に類似の逆変換処理を変換係数に適用する。
【0051】
動き補償部82またはイントラBC部85がこのベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器90は、逆変換処理部88からの残差ブロックと動き補償部82またはイントラBC部85によって生成された対応する予測ブロックとを加算することで、現在のビデオブロックに対して復号化されたビデオブロックを再構成する。インループフィルタ(図示せず)は加算器90とDPB92との間に配置されて、この復号化されたビデオブロックをさらに処理することが可能である。そして、所定のフレーム内の復号化されたビデオブロックは、次のビデオブロックのその後の動き補償に使用される参照フレームを格納するDPB92に格納される。また、DPB92、またはDPB92とは別のメモリデバイスには、その後に図1の表示装置34などのような表示装置に表示するために、復号化されたビデオも格納されることが可能である。
【0052】
典型的なビデオ符号化プロセスでは、1つのビデオシーケンスは通常順序付けられたフレームまたは画像のセットを含む。各フレームには、SL、SCbおよびSCrの3つのサンプル行列を含める。SLは、輝度サンプルの2次元行列である。SCbは、Cb彩度サンプルの2次元行列である。SCrは、Cr彩度サンプルの2次元行列である。他の例では、フレームはモノクロである可能性があり、この場合、1つの輝度サンプルの2次元行列のみが含まれる。
【0053】
図4Aに示すように、ビデオエンコーダ20(または、より具体的には分割部45)は、最初にフレームを1組の符号化ツリーユニットに分割することにより、このフレームの符号化表現を生成する。ビデオフレームには、ラスター走査順で左から右、および上から下に連続的に順序付けられた整数個のCTUが含まれる。各CTUは、最大の論理符号化ユニットであり、幅および高さが、ビデオシーケンス内のすべてのCTUが128×128、64×64、32×32及び16×16のうちの1つと同じサイズを有するように、ビデオエンコーダ20によってシーケンスパラメータセットで転送される。なお、本願は必ずしも特定のサイズに限定されない。図4Bに示すように、各CTUは、輝度サンプルの1つの符号化ツリーブロック(CTB)、彩度サンプルの2つの符号化ツリーブロック、および符号化ツリーブロックのサンプルを符号化するために使用される構文要素を含み得る。構文要素は、画素の符号化ブロックの異なるタイプのユニットの属性と、どのようにビデオデコーダ30においてビデオシーケンスを再構成するかを記述する。例えば、インター予測またはイントラ予測、イントラ予測モード、動きベクトルおよび他のパラメータを含む。モノクロ画像または3つの個別の色平面を有する画像では、CTUが、単一の符号化ツリーブロックと、この符号化ツリーブロックのサンプルを符号化するために使用される構文要素とを含み得る。符号化ツリーブロックは、N×Nブロックのサンプルであることが可能である。
【0054】
より良いパフォーマンスを達成するために、ビデオエンコーダ20は、CTUの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このCTUをより小さな符号化ユニット(CU)に分割することができる。より良いパフォーマンスを達成するために、ビデオエンコーダ20は、CTUの符号化ツリーブロックに対してバイナリツリー分割、クアッドツリー分割、またはそれらの組み合わせなどのツリー分割を再帰的に実行して、このCTUをより小さな符号化ユニット(CU)に分割することができる。図4Cに示すように、64×64のCTU400は、まず、4つの小さな32×32ブロックサイズに分割される。これらの4つの小さいCUのうち、CU410及びCU420は、それぞれ4つの16×16ブロックサイズのCUに分割される。2つの16×16ブロックサイズのCU430および440は、それぞれ4つの8×8ブロックサイズのCUにさらに分割される。図4Dは、図4Cに示されたCTU400の分割プロセスの最終的な結果を表すクワッドツリーデータ構造を示し、クワッドツリーにおける各リーフノードは、32×32から8×8までの各サイズ範囲における1つのCUに対応する。図4Bに示されたCTUのように、各CUは、同じサイズのフレームにおける1つの輝度サンプルの符号化ブロック(CB)と、彩度サンプルの2つの対応する符号化ブロックと、これらの符号化ブロックのサンプルを符号化するために使用される構文要素とを含み得る。モノクロ画像または3つの個別の色平面を有する画像において、1つのCUは、単一の符号化ブロックと、この符号化ブロックのサンプルを符号化するために使用される構文構造とを含み得る。
【0055】
ある実施形態では、ビデオエンコーダ20は、さらにCUの符号化ブロックを1つまたは複数のM×N予測ブロック(PB)に分割するこができる。予測ブロックは、同じ予測(インター予測またはイントラ予測)が適用される長方形(正方形または非正方形)のサンプルブロックである。CUの予測ユニット(PU)は、1つの輝度サンプルの予測ブロック、彩度サンプルの2つの対応する予測ブロック、およびこれらの予測ブロックを予測するために使用される構文要素を含み得る。モノクロ画像または3つの個別の色平面を有する画像では、PUは単一の予測ブロックと、予測ブロックを予測するために使用される構文構造とを含み得る。ビデオエンコーダ20は、CUの各PUの輝度予測ブロック、Cb予測ブロック、およびCr予測ブロックに対する予測的な輝度ブロック、予測的なCbブロック、および予測的なCrブロックを生成することができる。
【0056】
ビデオエンコーダ20は、イントラ予測またはインター予測により、PUのこれらの予測ブロックを生成することができる。ビデオエンコーダ20は、イントラ予測によりPUの予測ブロックを生成する場合、このPUに関連するフレームの復号化されたサンプルに基づいて、このPUの予測的なブロックを生成することができる。ビデオエンコーダ20は、インター予測によりPUの予測ブロックを生成する場合、このPUに関連するフレーム以外の1つまたは複数のフレームの復号化されたサンプルに基づいて、このPUの予測的なブロックを生成することができる。
【0057】
ビデオエンコーダ20は、CUの1つまたは複数のPUの予測的な輝度ブロック、予測的なCbブロック、および予測的なCrブロックを生成した後、CUの元の輝度符号化ブロックからCUの予測的な輝度ブロックを差し引くことによって、CUの輝度残差ブロックにおける各サンプルが、CUの1つの予測的な輝度ブロックにおける輝度サンプルとCUの元の輝度符号化ブロックにおける対応するサンプルとの差を示すように、CUの輝度残差ブロックを生成することができる。同様に、ビデオエンコーダ20は、CUのCb残差ブロックにおける各サンプルが、CUの1つの予測的なCbブロックにおけるCbサンプルとCUの元のCb符号化ブロックにおける対応するサンプルとの差を示し、CUのCr残差ブロックにおける各サンプルがCUの1つの予測的なCrブロックにおけるCrサンプルとCUの元のCr符号化ブロックにおける対応するサンプルとの差を示すように、CUのCb残差ブロックおよびCr残差ブロックをそれぞれ生成することができる。
【0058】
さらに、図4Cに示すように、ビデオエンコーダ20は、クワッドツリー分割により、CUの輝度残差ブロック、Cb残差ブロック、およびCr残差ブロックを1つまたは複数の輝度変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解することができる。変換ブロックは、同じ変換が適用される長方形(正方形または非正方形)のサンプルブロックである。CUの変換ユニット(TU)は、輝度サンプルの変換ブロック、彩度サンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用される構文要素を含み得る。したがって、CUの各TUは、1つの輝度変換ブロック、1つのCb変換ブロック、および1つのCr変換ブロックに関連付けられる。ある例では、TUに関連付けられた輝度変換ブロックは、CUの輝度残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロ画像または3つの個別の色平面を有する画像では、TUが、単一の変換ブロックと、この変換ブロックのサンプルを変換するために使用される構文構造とを含み得る。
【0059】
ビデオエンコーダ20は、1つまたは複数の変換をTUの輝度変換ブロックに適用して、TUの輝度係数ブロックを生成することができる。係数ブロックは、変換係数の2次元行列であり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、1つまたは複数の変換をTUのCb変換ブロックに適用して、TUのCb係数ブロックを生成することができる。ビデオエンコーダ20は、1つまたは複数の変換をTUのCr変換ブロックに適用して、TUのCr係数ブロックを生成することができる。
【0060】
ビデオエンコーダ20は、係数ブロック(例えば、輝度係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、係数ブロックを定量化することができる。定量化とは、一般的に、変換係数を定量化してこの変換係数を示すデータの量をなるべく低減し、更なる圧縮を提供することを意味する。ビデオエンコーダ20は、係数ブロックを定量化した後、定量化された変換係数を示す構文要素をエントロピー符号化することが可能できる。例えば、ビデオエンコーダ20は、定量化された変換係数を示す構文要素にコンテキスト適応型バイナリ算術符号化(CABAC)を実行してもよい。最終的に、ビデオエンコーダ20は、符号化されたフレームおよび関連データの表現を形成するビットシーケンスを含むビットストリームを出力し、ビットストリームはストレージ装置32に保存されか、または目標装置14に送信される。
【0061】
ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信した後、このビットストリームを解析して、ビットストリームから構文要素を取得する。ビデオデコーダ30は、ビットストリームから取得された構文要素の少なくとも一部に基づいて、ビデオデータのフレームを再構成することができる。ビデオデータを再構成するプロセスは、一般的に、ビデオエンコーダ20によって実行された符号化プロセスと逆である。例えば、ビデオデコーダ30は、現在のCUのTUに関連する係数ブロックに対して逆変換を実行して、現在のCUのTUに関連する残差ブロックを再構成することが可能である。また、ビデオデコーダ30は、現在のCUのPUに対する予測ブロックのサンプルと現在のCUのTUの変換ブロックの対応するサンプルとを加算することによって、現在のCUの符号化ブロックを再構成する。フレームの各CUの符号化ブロックが再構成された後、ビデオデコーダ30はこのフレームを再構成することが可能である。
【0062】
上述したように、ビデオ符号化では、主に2つのモード、即ちイントラフレーム予測(またはイントラ予測)及びインターフレーム予測(またはインター予測)を使用してビデオ圧縮を実現する。なお、IBCは、イントラフレーム予測または3第三モードと見なすことができる。この2つのモードを比べると、インターフレーム予測は動きベクトルを使用して参照ビデオブロックから現在のビデオブロックを予測するため、イントラフレーム予測より符号化効率に大きく貢献する。
【0063】
しかし、ビデオデータ・キャプチャ技術の向上及びビデオデータの詳細を保持するためのより精細化的なビデオブロックサイズにつれて、現在のフレームの動きベクトルを表すために必要なデータの量も大幅に増加している。この課題を解決するための1つの手段は、空間ドメインと時間ドメインにおける1組の隣り合うCUが、予測目的のための同じビデオデータを含むだけでなく、これらの隣り合うCU間で動きベクトルも同様であるという事実から利益を得ることになる。したがって、空間的に隣り合うCUおよび/または時間的に並ぶCUの動き情報と現在のCUの動き情報(例えば、動きベクトル)との空間的および時間的相関性を探索することにより、空間的に隣り合うCUおよび/または時間的に並ぶCUの動き情報を、現在のCUの「動きベクトル予測子」(MVP)もという動き情報の近似として使用することが可能である。
【0064】
図2に示された上述の動き推定部42によって決定された現在のCUの実際の動きベクトルをビデオビットストリームに符号化する代わりに、現在のCUの実際の動きベクトルから現在のCUの動きベクトル予測子を差し引くにより、現在のCUの動きベクトル差(MVD)を生成する。このようにすることで、動き推定部42がフレームの各CUに対して決定した動きベクトルをビデオビットストリームに符号化する必要がなく、ビデオビットストリームにおける動き情報を表すためのデータの量を大幅に減らすことができる。
【0065】
符号化ブロックのインターフレーム予測中に参照フレーム内から予測ブロックを選択するプロセスと同様に、ビデオエンコーダ20及びビデオデコーダ30は、1組のルールに従って、現在のCUの空間的に隣り合うCUおよび/または時間的に並ぶCUに関連する潜在的な候補動きベクトルを使用して、動きベクトル候補リスト(「マージリスト」とも呼ばれる)を構成し、そしてこの動きベクトル候補リストから1つを選択して現在のCUの動きベクトル予測子とする必要がある。このように、ビデオエンコーダ20とビデオデコーダ30との間で動きベクトル候補リスト自身を送信する必要がなく、動きベクトル候補リスト内の選択された動きベクトル予測子の索引は、ビデオエンコーダ20およびビデオデコーダ30が動きベクトル候補リスト内で同じ動きベクトル予測子を使用して現在のCUを符号化および復号化することに十分である。
【0066】
ある実施形態では、各インター予測CUは、動きベクトル候補リストを構成するためのインター(「高度な動きベクトル予測」(AMVPとも呼ばれる))、スキップ、およびマージを含む3つの動きベクトル予測モードを有する。各モードでは、以下に説明するアルゴリズムに従って、1つまたは複数の動きベクトル候補を動きベクトル候補リストに追加することができる。最終的に、候補リスト内のそれらの動きベクトル候補のうちの1つは、ビデオエンコーダ20によってビデオビットストリームに符号化されるか、またはビデオデコーダ30によってビデオビットストリームから復号化されるインター予測CUの最適な動きベクトル予測子として使用される。候補リストから最適な動きベクトル予測子を見つけるために、動きベクトル競合(MVC)スキームが導入されて、空間的および時間的動きベクトル候補を含む所定の動きベクトルの候補セット、すなわち動きベクトル候補リストから1つの動きベクトルが選択されるようにする。
【0067】
動きベクトル予測子候補は、空間的に隣り合い、または時間的に並ぶCUから導出されることに加えて、いわゆる「履歴ベースの動きベクトル予測」(HMVP)テーブルからも導出されることが可能である。HMVPテーブルには、それぞれが同じ行のCTU(または同じCTUであることがある)の特定のCUを符号化/復号化するために使用された予め定められた数の動きベクトル予測子が収納されている。これらのCUの空間的/時間的の近接性によって、HMVPテーブルにおける動きベクトル予測子の1つが、同じ行のCTU内の異なるCUを符号化/復号化するように再利用される可能は非常に高い。したがって、動きベクトル候補リストを構成する過程にHMVPテーブルを使用することにより、より高い符号化効率を達成することが可能である。
【0068】
ある実施形態では、HMVPテーブルは固定の長さ(例えば5)を有し、先入れ先出し(FIFO)の方式で管理される。例えば、CUの1つのインター符号化ブロックを復号化する際に、CUの動きベクトルを再構成する。再構成された動きベクトルが後続のCUの動きベクトル予測子になる可能性があるので、HMVPテーブルは、この動きベクトルでオンザフライに更新される。HMVPテーブルの更新では、以下の2つのシナリオがある。(i)再構成された動きベクトルがHMVPテーブル内の他の既存の動きベクトルと異なる、または(ii)再構成された動きベクトルがHMVPテーブル内の既存の動きベクトルの1つと同じである。第1のシナリオでは、HMVPテーブルが未満の場合、再構成された動きベクトルが最新のものとしてHMVPテーブルに追加される。HMVPテーブルがすでにいっぱいになっている場合は、再構成された動きベクトルが最新のものとして追加される前に、HMVPテーブル内の最も古い動きベクトルがHMVPテーブルから削除される必要がある。言い換えると、この場合には、HMVPテーブルでは、FIFOバッファと同様のように、FIFOバッファの先頭にあり且つ以前にインター符号化された別のブロックに関連する動き情報が、このバッファから取り除かれて、再構成された動きベクトルが、HMVPテーブルにおける最新のものとしてFIFOバッファの末尾に追加される。2番目のシナリオでは、再構成された動きベクトルが最新のものとしてFIFOバッファに追加される前に、HMVPテーブル内の、再構成された動きベクトルと実質的に同じである既存の動きベクトルがFIFOバッファから削除される。HMVPテーブルもFIFOバッファの形態で維持されている場合、HMVPテーブル内の同じ動きベクトルの後の動きベクトル予測子が1つの要素だけ前方に移動されて、削除された動きベクトルによって残された空間を占有し、そして、再構成された動きベクトルが、HMVPテーブル内の最新のものとしてFIFOバッファの末尾に追加される。
【0069】
HMVPテーブルにおける動きベクトルは、AMVP、マージ、スキップなどの異なる予測モードで動きベクトル候補リストに追加されることできる。HMVPテーブルに保存されている以前にインター符号化されたブロックの動き情報は、現在のブロックに隣り合っていなくても、より効率的な動きベクトル予測に利用されることが可能であることが分かった。
【0070】
現在のCUに対する所定の動きベクトルの候補セット内で1つのMVP候補が選択された後、ビデオエンコーダ20は、対応するMVP候補に対する1つまたは複数の構文要素を生成し、ビデオビットストリームに符号化し、ビデオデコーダ30がこの構文要素を使用してこのデオビットストリームからこのMVP候補を取り出すことができるようにする。動きベクトル候補セットを構成するための特定のモードによっては、異なるモード(例えば、AMVP、マージ、スキップなど)は異なる構文要素のセットを有する。AMVPモードの場合、構文要素にはインター予測インジケーター(List0、List1、または双方向予測)、参照索引、動きベクトル候補索引、動きベクトル予測残差信号などを含む。スキップモード及びマージモードの場合、現在のCUは、符号化されたマージ索引によって参照される隣り合うCUから、インター予測インジケータ、参照索引、動きベクトルなどの他の構文要素を継承するので、マージ索引のみがビットストリーム中に符号化される。スキップ符号化されたCUの場合、動きベクトル予測残差信号も省略される。
【0071】
図5Aは、本開示のある実施形態に係る、符号化/復号化される現在のCUの空間的に隣り合いかつ時間的に並ぶブロック位置を示すブロック図である。所定のモードでは、まず空間的に左側隣接ブロック位置および上方隣接ブロック位置に関連する動きベクトルの利用可能性、時間的に並ぶブロック位置に関連する動きベクトルの利用可能性を検査し、次にHMVPテーブル内の動きベクトルの利用可能性を検査することによって、動きベクトル予測(MVP)候補リストを構成する。MVP候補リストを構成するプロセスには、いくつかの冗長なMVP候補が候補リストから削除され、必要に応じて候補リストが固定の長さを有するようにゼロ値の動きベクトルが追加される(なお、モードによって異なる固定長を有することがある)。MVP候補リストの構成後、ビデオエンコーダ20は、この候補リストから最適な動きベクトル予測子を選択し、選択された候補を指示する対応する索引をビデオビットストリーム中に符号化することができる。
【0072】
例として図5Aを使用し、かつ候補リストが2の固定長さを有すると仮定すると、現在のCUに関する動きベクトル予測子(MVP)候補リストは、AMVPモードで以下のステップを順に実行することによって構成されることができる。
1)空間的に隣り合うCUからのMVP候補の選択
a)A0で始まりA1で終わる左側の空間的隣り合う2つのCUのうちの1つから、1つの非スケールMVP候補を導出する;
b)前のステップで左に利用可能非スケールMVP候補がない場合には、A0で始まりA1で終わる左側の空間的隣り合う2つのCUのうちの1つから、1つのスケールMVP候補を導出する;
c)B0で始まりB1を通じてB2で終わる上側の空間的隣り合う3つのCUのうちの1つから、1つの非スケールMVP候補を導出する;
d)A0とA1の両方とも利用できない場合、またはそれらがイントラモードで符号化されている場合には、B0で始まりB1を通じてB2で終わる上側の3つの空間的隣り合うCUのうちの1つから、1つのスケールMVP候補を導出する;
2)前のステップで2つのMVP候補が見つかり、且つそれらが同一である場合は、このMVP候補リストからこれらの2つの候補のうち1つを削除する;
3)時間的に並ぶCUからのMVP候補の選択
a)前のステップの後、MVP候補リストに2つのMVP候補が含まれていない場合には、時間的に並ぶCU(例えばT0)から1つのMVP候補を導出する;
4)HMVPテーブルからのMVP候補の選択
a)前のステップの後、MVP候補リストに2つのMVP候補が含まれていない場合には、HMVPテーブルから2つの履歴ベースのMVPを導出する;
5)前のステップの後、MVP候補リストに2つのMVP候補が含まれていない場合はに、2つのゼロ値MVPをMVP候補リストに追加する。
【0073】
以上の構成されたAMVPモードMVP候補リストには2つの候補しかないので、候補リスト内の2つのMVP候補のどちらが現在のCUの復号化に使用されるかを示すように、バイナリフラグのような関連構文要素をビットストリーム中に符号化する。
【0074】
ある実施形態では、スキップモードまたはマージモードでは、上述した一連のステップと同様のものを順に実行することによって、現在のCUに関するMVP候補リストを構成し得る。なお、「ペアでのマージ候補」と呼ばれる1つの特別な種類のマージ候補も、スキップモードまたはマージモードのためのMVP候補リストに含まれる。ペアでのマージ候補は、以前に導出された2つのマージモード動きベクトル候補のMVを平均化することによって生成されることができる。マージMVP候補リストのサイズ(たとえば、1から6)は、現在のCUのスライスヘッダーで通知される。マージモードでの各CUについて、最適なマージ候補の索引は、truncated unary二値化(TU)を使用されて復号化される。マージ索引の最初のビンはコンテキストで符号化され、バイパス符号化が他のビンに使用される。
【0075】
上述たように、履歴ベースのMVPは、空間MVP及び時間MVPの後AMVPモードMVP候補リスト又はマージMVP候補リストに追加されることができる。以前にインター符号化されたCUの動き情報は、HMVPテーブルに保存され、現在のCUのMVP候補として使用される。HMVPテーブルは、符号化/復号化プロセス中に維持されている。非サブブロックインター符号化したCUがあるときはいつでも、関連動きベクトル情報が新しい候補としてHMVPテーブルの最後のエントリに追加され、一方、(HMVPテーブルがすでにいっぱいで、テーブル内に関連動きベクトル情報の同じ複本がない場合)HMVPテーブルの最初のエントリに格納されている動きベクトル情報がそこから削除される)。これの代わりに、関連動きベクトル情報がHMVPテーブルの最後のエントリに追加される前に、関連動きベクトル情報の同じ複本をこのテーブルから削除してもよい。
【0076】
上述したように、イントラブロックコピー(IBC)は、スクリーンコンテンツ素材の符号化効率を著しく改善することができる。IBCモードはブロックレベルの符号化モードとして実現されるので、ビデオエンコーダ20でブロックマッチング(BM)を実行して、各CUに対する最適なブロックベクトルを見つける。ここでは、ブロックベクトルは、現在の画像内で現在のブロックからすでに再構成された参照ブロックへの変位を示すためのものである。IBCモードは、イントラ予測モードまたはインター予測モードではなく、第三の予測モードとして扱われる。
【0077】
CUレベルでは、IBCモードは、以下のように、IBCAMVPモードまたはIBCスキップ/マージモードとして通知されることができる。
-IBC AMVPモード:CUの実際のブロックベクトルとCUのブロックベクトル候補から選択されたCUのブロックベクトル予測子との間のブロックベクトル差(BVD)は、上述したAMVPモードで動きベクトル差に対する符号化と同じ方法で符合化される。ブロックベクトル予測方法では、2つのブロックベクトル候補が予測子として使用され、(IBC符合化される場合)この2つのブロックベクトル候補のうち1つが左側の隣から、もう1つが上方の隣からである。いずれの隣も利用できない場合、デフォルトのブロックベクトルがブロックベクトル予測子として使用される。バイナリフラグは、ブロックベクトル予測索引を示すように通知される。IBC AMVP候補リストには、空間的候補およびHMVP候補を含む。
-IBCスキップ/マージモード:マージ候補索引は、隣り合うIBC符号化ブロックからのマージ候補リスト(「マージリスト」とも呼ばれる)の中のどのブロックベクトル候補が現在のブロックのブロックベクトルの予測に使用されるかを示す。IBCマージ候補リストには、空間的候補、HMVP候補、およびペアでの候補を含む。
【0078】
符号化規格によって採用される符号化効率を改善するための別のアプローチでは、ビデオ符号化/復号化プロセスに、例えばマルチコアプロセッサを使用して並列処理を導入する。例えば、波面並列処理(WPP)は、複数のスレッドによって複数行のCTUを並列に符号化または復号化する特徴として、すでにHEVCに導入された。
【0079】
図5Bは、本開示のある実施形態に係る、波面並列処理(WPP)を使用して画像の複数行のCTUに対してマルチスレッド符号化を行うことを示すブロック図である。WPPを有効にすると、2つの隣り合い波面の先頭の間に2つのCTU分の遅延が発生する可能性がある波面の方式で複数行のCTUを並列に処理できる。例えば、WPPを使用して画像500を符号化するために、ビデオエンコーダ20およびビデオデコーダ30などのビデオコーダは、画像500の符号化ツリーユニット(CTU)を複数の波面に分割し、各波面はそれぞれ画像の各行CTUに対応する。このビデオコーダーは、例えば、第1のコーダーコアまたはスレッドを使用して、トップ波面の符号化を開始することができる。ビデオコーダーは、最初波面の2つ以上のCTUを符号化した後、例えば第2の並列コーダーコアまたはスレッドを使用して、トップ波面の符号化と並行してトップ波面からの第2つの波面の符号化を開始することができる。ビデオコーダーは、トップ波面からの第2の波面の2つ以上のCTUを符号化した後、例えば、第3の並列コーダーコアまたはスレッドを使用して、上方の波面の符号化と並行してトップ波面からの第3の波面の符号化を開始することができる。このパターンは、画像500において波面に沿って続くことが可能である。本開示では、ビデオコーダがWPPを使用して同時に符号化されているCTUのセットは、「CTU組」と呼ばれる。このように、ビデオコーダーがWPPを使用して画像を符号化する場合、CTU組の各CTUは、この画像の唯一な波面に属し、これらのCTUは上方の各波面におけるCTUからこの画像の少なくとも2列のCTUだけオフセットする。
【0080】
ビデオコーダーは、現在の波面の最初の2つのブロックのデータ及び現在の波面の最初の符号化ブロックを含むスライスのスライスヘッダーの1つまたは複数の要素に基づいて現在の波面のコンテキストを初期化して、現在の波面のコンテキスト適応型バイナリ算術符号化(CABAC)を実行することができる。ビデオコーダーは、後続波面(またはCTU行)の上方にある1つのCTU行における2つのCTUを符号化した後、コンテキスト状態を使用してこの後続波面のCABAC初期化を実行することが可能である。言い換えれば、ビデオコーダー(より具体的には、ビデオコーダーの1つのスレッド)は、現在の波面の符号化を開始する前に、現在の波面が画像の最初行のCTUではないと仮定する場合、現在の波面の上方の波面の少なくとも2つのブロックをコーディングしたことが可能である。そして、ビデオコーダーは、現在の波面より上方の波面の少なくとも2つのブロックを符号化した後、現在の波面のCABACコンテキストを初期化することが可能である。この例では、画像500の複数のCTU行を並列に符号化できるように、画像500の各CTU行は個別の一部であり、関連付けられたスレッド(WPPスレッド1、WPPスレッド2、…)を有する。
【0081】
HMVPテーブルの現在の実施形態は、グローバル動きベクトル(MV)バッファを使用して以前に再構成された動きベクトルを格納するため、このHMVPテーブルは、図5に示された上述したWPPイネーブル並列符号化スキームで実施できない。特に、グローバルMVバッファがビデオコーダーの符号化/復号化プロセスのすべてのスレッドに共有されている事実により、最初のWPPスレッド(即ち、WPPスレッド1)の後のWPPスレッドの開始が妨げられる。これは、これらWPPスレッドは必ずHMVPテーブルが最初のWPPスレッド(即ち、最初のCTU行)の最後のCTU(即ち、最右端のCTU)による更新完了を待たなければならないからである。
【0082】
この課題を解決するために、複数のCTU行専用バッファでWPPスレッドによって共有されるグローバルMVバッファを置き換えることで、ビデオコーダーでWPPが有効にされている場合、CTU行の各波面が、1つの対応するWPPスレッドによって処理されているCTU行に対応するHMVPテーブルを格納するための自分のバッファを有するようにすることが提案された。なお、各CTU行が自分のHMVPテーブルを有するとのことは、CTU行の最初のCUを符号化する前にHMVPテーブルをリセットすることと同等である。HMVPテーブルのリセットは、HMVPテーブルにおける別のCTU行の符号化から生じたすべての動きベクトルを除去することである。一つの実施形態では、リセット操作は、HMVPテーブルにおける利用可能な動きベクトル予測子のサイズをゼロに設定することである。さらに別の実施形態では、リセット操作は、HMVPテーブルにおけるすべてのエントリの参照索引を-1などのような無効な値に設定することであってもよい。このように、AMVP、マージ及びスキップの3つのモードのいずれかに関わらず、特定の波面内の現在のCTUに対するMVP候補リストの構造は、この特定の波面を処理しているWPPスレッドに関連するHMVPテーブルに依存する。異なる波面の間では、上述した2つのCTUの遅延以外、相互の依存性がなく、異なる波面に関連する動きベクトル候補リストの構造は、図5Bに示すWPPプロセスのように並行して進めることができる。言い換えると、HMVPテーブルは、特定の波面の処理の開始時に、別のWPPスレッドによる別のCTU波面の符号化に影響を与えることなく、空にリセットされる。ある場合には、個別の各CTUを符号化する前に、HMVPテーブルが空にリセットされることでもよい。この場合、HMVPテーブル内の動きベクトルは特定のCTUに限定されており、HMVPテーブル内の動きベクトルが特定のCTU内の現在のCUの動きベクトルとして選択される可能性がさらに高くなる。
【0083】
図6Aおよび6Bは、本開示のある実施形態に係る、再構成された輝度ブロック602および関連彩度ブロック620をそれぞれ例示するブロック図である。この例では、再構成された輝度ブロック602の輝度サンプル(例えば、輝度サンプル604)、上部隣接輝度組606の輝度サンプル(例えば、輝度サンプル608)、および左側隣接輝度組610の輝度サンプル(例えば、輝度サンプル613)は、ビデオ符号化プロセス中に予測されている。上部隣接彩度組624の彩度サンプル(例えば、彩度サンプル626)および左側隣接彩度組628の彩度サンプル(例えば、彩度サンプル630)は、ビデオ符号化プロセス中にすでに予測されたが、彩度ブロック620の彩度サンプルは予測対象となっている。ある実施形態では、彩度ブロック620の彩度サンプルは、再構成された輝度ブロック602の対応するダウンサンプルされた輝度サンプルに対してクロスコンポーネント線形モデル(CCLM)を適用することによって、予測されることができる。以下、CCLMの導出および適用は、図7A図7Eを参照して提供される。
【0084】
ある実施形態では、再構成された輝度ブロック602および彩度ブロック620はそれぞれ、再構成されたビデオフレームの一部の異なる成分を表す。例えば、YCbCr色空間では、画像は輝度成分(Y)、青の色差成分(Cb)および赤の色差成分(Cr)によって表される。再構成された輝度ブロック602は、ビデオフレームの一部の輝度成分(すなわち、明るさ)を表し、彩度ブロック620は、このビデオフレームの同じ部分の彩度成分(すなわち、色)を表す。再構成された輝度ブロック602の輝度サンプル(例えば、輝度サンプル604)は、ビデオフレームの特定のピクセルでの明るさを表す輝度値を有し、彩度サンプル(例えば、彩度サンプル622)は、このビデオフレームの特定のピクセルでの色を表す彩度値を有する。
【0085】
ある実施形態では、再構成された輝度ブロック602は、2M×2Nブロックであり、ブロック幅に亘って2Mつの輝度サンプルを有し、ブロック高さに亘って2Nつの輝度サンプルを有する。MおよびNは、同じ値(例えば、再構成された輝度ブロック602が1つの正方形のものである)または異なる値(例えば、再構成された輝度ブロック602が1つの非正方形のものである)であり得る。
【0086】
人間の視覚系は明るさの違いよりも色の違いに敏感ではないため、彩度サブサンプリングは通用の圧縮技術である。結果として、再構成された輝度ブロック602および彩度ブロック620は、ビデオフレームの同じ部分を表すことが可能であるが、異なる解像度で符号化されている。例えば、ビデオフレームは、彩度サブサンプリングスキーム(例えば、4:2:0または4:2:2)によって、輝度情報よりも低い解像度で彩度情報に関して符号化されたことが可能である。図6Aおよび6Bに示すように、再構成された輝度ブロック602は、2M×2Nの解像度で符号化され、彩度ブロック620は、より小さなM×Nの解像度で符号化された。実際には、彩度ブロック620は、2M×2N(例えば、4:4:4フルサンプリング)、2M×N(例えば、4:4:0サブサンプリング)、M×2N(例えば、4:2:2サブサンプリング)、および1/2M×2N(例えば、4:1:1サブサンプリング)などの他の解像度を有することが可能である。
【0087】
再構成された輝度ブロック602は、上方隣接輝度組606および左側隣接輝度組610に隣り合う。上方隣接輝度組および左側隣接輝度組のサイズは、明示的に通知されてもよく、または再構成された輝度ブロック602のサイズに依存してもよい。例えば、上方隣接輝度組606は、2M個のサンプル(例えば、再構成された輝度ブロック602の幅と同じ)または4M個のサンプル(例えば、再構成された輝度ブロック602の幅の2倍)の幅と、2個のサンプルの高さとを有することが可能である。左側隣接輝度組610は、2個のサンプルの幅と、2N個または4N個のサンプルの高さとを有することが可能である。ある実施形態では、上方隣接輝度組606および左側隣接輝度組610は、それぞれ、同じビデオフレームの1つまたは複数の別のすでに再構成された輝度ブロックの一部である。
【0088】
彩度ブロック620は、上方隣接彩度組624および左側隣接組628に隣り合う。上方隣接彩度組624および左側隣接組628のサイズは、明示的に通知されてもよく、または彩度ブロック620のサイズに依存してもよい。例えば、上方隣接彩度組624は1×Mのサイズを有し、左側隣接彩度組628はN×1のサイズを有することが可能である。
【0089】
ある実施形態では、彩度値(例えば、彩度ブロック620の彩度値)は、再構成された彩度サンプル(例えば、彩度サンプル604)の彩度値に基づいて予測されることができる。例えば、ビデオフレームの輝度値と対応する彩度値との間に線形または準線形の関係があると仮定すると、ビデオコーデックはCCLMにより対応する再構成された輝度値に基づいて彩度値を予測することができる。このように、ビデオコーデックは、彩度値の符号化、符号化された彩度値の送信、および符号化された彩度値の復号化のための時間および帯域幅の量を大幅に節約することができる。ビデオコーデックは、CCLMを使用して輝度サンプルから彩度サンプルを予測するために、(1)彩度サンプルと輝度サンプルとの間で線形モデルを導出し、(2)この線形モデルを予測対象の彩度サンプルに対応する再構成された輝度サンプルに適用する。
【0090】
ある実施形態では、輝度ブロックおよび彩度ブロックが異なる解像度(例えば、彩度ブロックがサブサンプリングされたものである)であるため、ビデオコーデックは、まず輝度サンプルに対してダウンサンプリングを実行して、各彩度サンプルに唯一に対応するダウンサンプリング輝度サンプルを生成する(例えば、ダウンサンプリング輝度サンプル605、609および612)。ある実施形態では、ビデオフレームの高さ方向および幅方向の両方に亘って6つの再構成された隣接輝度サンプルが、ダウンサンプリング輝度サンプルを生成するために使用される(例えば、6タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキーム)。例えば、上方隣接輝度組における領域611内の6つの再構成された輝度サンプル(それぞれが図面における小さなボックスで表される)は、それらの対応する輝度値の平均化によってダウンサンプリング輝度サンプル609を生成するために使用され、再構成された輝度ブロック602における領域607内の6つの再構成された輝度サンプル(それぞれが図面における小さなボックスで表される)は、ダウンサンプリング輝度サンプル605を生成するために使用される。あるいは、ダウンサンプリング輝度サンプルは、注目の領域で再構成された輝度サンプルを識別することによって、または異なる形状の領域内の異なる数の再構成された彩度サンプルを使用することによって生成される。
【0091】
ある実施形態では、ビデオコーデックは、この線形モデルを導出するために、ダウンサンプリング輝度サンプルの最大値および最小値(例えば、それぞれ最大及び最小の輝度値を有するダウンサンプリング輝度サンプル)及び対応する再構成された彩度サンプルを識別し、最大および最小のデータ点(例えば、最大のデータ点は、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成された彩度サンプルを含み、最小のデータ点は、最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成された彩度サンプルを含む)を通る線形モデル(例えば、Y= αX+β) をフィットすることによるMax-Min法を使用する。線形モデルが導出された後、ビデオコーデックは、線形モデルを再構成された輝度ブロック602におけるダウンサンプリング輝度サンプルに適用して、彩度ブロック620の対応する彩度サンプルを生成する。ビデオコーデックは、以下の方法で最大および最小のデータ点を取得することができる。
【0092】
1.ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル(例えば、上方隣接輝度組606および左側隣接輝度組610から選択された一組のダウンサンプリング輝度サンプル)を検索して、最大のダウンサンプリング輝度サンプル及び最小のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、図7Aに参照して以下に説明するように、最大および最小のダウンサンプリング輝度サンプルに対応する以前再構成された彩度サンプル(例えば、上方隣接彩度組624および左側隣接彩度組628における再構成された彩度サンプル)を識別する。
【0093】
2.ある実施形態では、ビデオコーデックは、選択された再構成の輝度サンプルの組に対してダウンサンプリングを実行して最大および最小の再構成された輝度サンプルを識別することの代わりに、再構成された輝度サンプル(例えば、上方隣接輝度組606および左側隣接輝度組610から選択された再構成の輝度サンプルの一組)を検索して、この選択された再構成の輝度サンプルの組において(i)最大の輝度値を有する再構成された輝度サンプル、および(ii)最小の輝度値を有する再構成された輝度サンプルを識別する。そして、ビデオコーデックは、この最大および最小の再構成された輝度サンプルに関連する領域(例えば、6タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用する6つのサンプルを有する領域)でダウンサンプリングを実行して、最大の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル(正確に最大のダウンサンプリング輝度サンプルである場合もそうでない場合もある)および最小の再構成された輝度サンプルとしてのダウンサンプリング輝度サンプル(正確に最小のダウンサンプリング輝度サンプルである場合もそうでない場合もある)を生成する。そして、ビデオコーデックは、図7Bに参照して以下に説明されるように、(例えば、上方隣接彩度組624および左側隣接彩度組628において)最大の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプル、および最小の再構成された輝度サンプルとして識別されたダウンサンプリング輝度サンプルに対応する再構成された彩度サンプルを識別する。
【0094】
3.ある実施形態では、ビデオコーデックは、1組の再構成された彩度サンプル(例えば、上方隣接彩度組624および左側隣接彩度組628から選択された彩度サンプル)を検索して、最大および最小の再構成された彩度サンプル(例えば、それぞれ最大及び最小の彩度値を有する彩度サンプル)を識別する。そして、ビデオコーデックは、図7Cを参照して以下に説明するように、最大および最小の再構成された彩度サンプルに対応するダウンサンプリング輝度サンプル(例えば、上方隣接輝度組606および左側隣接輝度組610におけるダウンサンプリング輝度サンプル)を識別する。
【0095】
4.ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル(例えば、上方隣接輝度組606および左側隣接輝度組610から選択されたダウンサンプリング輝度サンプルの組)を検索して、最大の輝度値を有する予め定められた数(例えば、2つ)のダウンサンプリング輝度サンプル、および最小の輝度値を有する予め定められた数(例えば、2つ)のダウンサンプリング輝度サンプルを識別する。そして、ビデオコーデックは、上方隣接彩度組624および左側隣接彩度組628の中の再構成された彩度サンプルを識別する。なお、上方隣接彩度組624および左側隣接彩度組628の中のそれぞれは、最大のダウンサンプリング輝度サンプルの組および最小のダウンサンプリング輝度サンプルの組の中の一つに対応する。そして、ビデオコーデックは、図7Dおよび図7Eを参照して以下に説明するように、識別された再構成の彩度サンプルの組およびダウンサンプリング輝度サンプルの組のそれぞれの中の値(例えば、彩度または輝度の値)に対して加重平均化を実行して最大平均化彩度値、最小平均化彩度値、最大平均化ダウンサンプリング輝度値(例えば、最大のダウンサンプリング輝度サンプルの組から生成)、および最小の平均化ダウンサンプリング輝度値(例えば、最小のダウンサンプリング輝度サンプルの組から生成)を生成する。
【0096】
図7A~7Eは、本開示のある実施形態に係る、CCMLを使用して輝度値と彩度値との間で線形モデルを導出する各種のアプローチを示している。特に、プロット上の各円データ点(例えば、点702a)は、横軸上の再構成された彩度サンプルと、縦軸上の対応する再構成された輝度サンプルとのペアを表す。例えば、再構成された輝度サンプルを部分的に使用して(例えば、当技術分野で知られている6タップダウンサンプリングなどを含む加重平均化スキームを使用して)生成されたダウンサンプリング輝度サンプルが再構成の彩度サンプルに対応されば、再構成の彩度サンプルは再構成の輝度サンプルに対応する。プロット上の各正方形のデータ点(たとえば、点702b)は、横軸上の再構成の彩度サンプルと、縦軸上の対応するダウンサンプリング輝度サンプルとのペアを表す。ある実施形態では、ダウンサンプリング輝度サンプルが複数の再構成の輝度サンプルを使用して(例えば、当技術分野で知られている6タップダウンサンプリングなどを含む加重平均化スキームを使用して)生成されるので、正方形のデータ点が複数の円のデータ点に関連している。点線の長方形(例えば、点線の長方形703)は、囲まれた正方形のデータ点と円データ点が関連している(例えば、正方形のデータ点に対応するダウンサンプリング輝度サンプルは、円のデータ点に対応している再構成の輝度サンプルから生成された)ことを示す。説明の便利上、点線の長方形の内に1つの正方形のデータ点及び1つの円のデータ点のみを示しているが、実際には、各点線の長方形に複数の円のデータ点及び1つの正方形のデータ点を含み得ることができる。
【0097】
ある実施形態では、ビデオコーデックは、ダウンサンプリング輝度サンプル(例えば、図6Aのダウンサンプリング輝度サンプル609および612)を検索して、最大および最小の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを識別して、線形モデルを導出する。例えば、図7Aでは、正方形のデータ点702bは、選択されたダウンサンプリング輝度サンプルの組における最小の輝度値を有するダウンサンプリング輝度サンプルおよび対応する再構成の彩度サンプルを表し、正方形のデータ点704bは、最大の輝度値を有するダウンサンプリング輝度サンプル及び対応する再構成の彩度サンプルを表している。結果として、点702b及び点704bを通った線フィッティングは、ダウンサンプリング輝度サンプル(例えば、図6Aにおける輝度ブロック602のダウンサンプリング輝度サンプル605)から彩度サンプル(例えば、図6Bにおける彩度ブロック620の彩度サンプル622)を予測するための線形モデルを表す。
【0098】
Max-Min法ではダウンサンプリング輝度サンプルのほとんどがよく使われないため、ダウンサンプリング輝度サンプルの生成の算出量は非常に大きい。ある実施形態では、ビデオコーデックは、すべての輝度サンプルに対してダウンサンプリングを実行する代わりに、再構成された輝度サンプル(例えば、図6Aの再構成された輝度サンプル608および613)を直接検索して、最大および最小の輝度値を有する再構成の輝度サンプルを識別する。図7Bに示すように、円のデータ点702aは、最小の輝度値を有する再構成された輝度サンプルおよび対応する再構成された彩度サンプルを表し、円のデータ点706aは、最大の輝度値を有する再構成された輝度サンプルおよび対応する再構成の彩度サンプルを表す。ビデオコーデックは、最小および最大の再構成された輝度サンプル(円のデータ点702aおよび706a)を識別した後、(例えば、6タップダウンサンプリングなどを含む当技術分野で知られている加重平均化スキームを使用して)最小および最大の再構成された輝度サンプルを含む領域でダウンサンプリングを実行して、対応する準最小および準最大のダウンサンプリング輝度サンプル(図7Bにおける正方形のデータ点702bおよび706bによって表され、図7Aにおいて正方形のデータ点702bおよび70bと同じである場合もそうでない場合もある)を生成する。図7Bにおける正方形のデータ点702bおよび706bを通った線フィッティングは、再構成された輝度サンプルから彩度サンプルを予測する線形モデルを表す。図7Aで使用された方法と比較すると、2つのダウンサンプリング操作のみが実行された。識別された最小のダウンサンプリング輝度サンプルは、図7Aで使用されたものと同じ、一方、最大のダウンサンプリング輝度サンプルは、図7Aで使用されたものとは異なる。
【0099】
ある実施形態では、ビデオコーデックは、最大及び最小の輝度値を有する再構成された輝度サンプルを使用して線形モデルを生成し、ダウンサンプリングの実行を放棄する。図7Cにおいて、線形モデルは、再構成された輝度サンプルに対してダウンサンプリングを実行せず、円のデータ点702aおよび706aを通る線を直接フィッティングすることによって生成される。
【0100】
ある実施形態では、ビデオコーデックは、最大および最小の輝度値を有するダウンサンプリング輝度サンプル(または再構成された輝度サンプル)を検索する代わりに、まず、最大および最小の彩度値を有する再構成された彩度サンプルを検索する。最大および最小の再構成された彩度サンプルが識別された後、ビデオコーデックは、対応するダウンサンプリング輝度サンプルを算出して、線形モデルを生成する。図7Dでは、円のデータ点708aは、最小の彩度値を有する再構成された彩度サンプルを表し、円のデータ点704aは、最大の彩度値を有する再構成された彩度サンプルを表す。そして、ビデオコーデックは、正方形のデータ点708b(円のデータ点708aから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す)および正方形のデータ点704b(円のデータ点704aから再構成された輝度サンプルを部分的に使用して生成されたダウンサンプリング輝度サンプルを表す)を通ってフィッティングする線形モデルを生成する。
【0101】
ある実施形態では、ビデオコーデックは、最大の輝度値を有する複数(例えば、2つ)のダウンサンプリング輝度サンプル、および最小の輝度値を有する複数(例えば、2つ)のダウンサンプリング輝度サンプルを選択する。そして、ビデオコーデックは、対応する最大の再構成された彩度サンプルの組及び最小の再構成された彩度サンプルの組を検索する。ビデオコーデックは、各組内で平均化演算を実行し、平均化された輝度値及び彩度値を使用して線形モデルを生成する。図7Eでは、最大の2つのダウンサンプリング輝度サンプル(正方形のデータ点710bおよび704b)および最小の2つのダウンサンプリング輝度サンプル(正方形のデータ点708bおよび正方形のデータ点702b)を使用して線形モデルを生成する。
【0102】
図8は、ビデオコーデックが、クロスコンポーネント線形モデルを使用して、輝度ブロックから再構成された輝度サンプルに基づいて彩度ブロックの彩度サンプルを再構成する技術を実現するプロセス700を例示するフローチャートである。プロセス700は、復号化プロセスにも符号化プロセスにも実施されることができる。
【0103】
第1のステップとして、ビデオコーデックは、彩度ブロックに対応する輝度ブロックを再構成する(810)。彩度ブロック(例えば、図6Bの彩度ブロック620)は、その後、再構成された輝度ブロックから再構成され、この再構成された輝度ブロック(例えば、図6Aの再構成された輝度ブロック602)の解像度とは異なる解像度が有することが可能である。この輝度ブロックと彩度ブロックビとは、デオフレームの同じ部分の異なる成分(例えば、それぞれ明るさ成分及び色成分)を表すため、対応するものである。ある実施形態では、輝度ブロックは、複数の、以前に再構成された隣接輝度サンプル(例えば、図6Aの上方隣接輝度組606および左側隣接輝度組610における再構成された輝度サンプル)に隣り合い、彩度ブロックは、複数の、以前に再構成された隣接彩度サンプル(例えば、図6Aの上方隣接彩度組624および左側隣接彩度組628における再構成された彩度サンプル)に隣り合う。なお、本願における「「隣り合う」という用語は、隣接に限定されず、符号化ブロックが輝度/彩度サンプルに隣接しない状況もカバーする。ある実施形態では、ビデオコーデックは、クロスコンポーネント線形モデルを導出してこのモデルを再構成された輝度サンプル(または輝度ブロック内のダウンサンプリング再構成された輝度サンプル)に適用することによって、彩度ブロック内の彩度サンプルを予測する。
【0104】
次に、ビデオコーデックは、複数の再構成された隣接輝度サンプルのサブ組を予め定められた順で検索して、少なくとも1つの最大または準最大の輝度サンプルおよび少なくとも1つの最小または準最小の輝度サンプルを識別する(820)。ある実施形態では、この複数の再構成された隣接輝度サンプルのサブ組は、複数の再構成された隣接輝度サンプルのすべてをカバーする。例えば、ビデオコーデックは、隣接輝度サンプルのうちのすべての輝度サンプル、または最大予め定められた数の隣接輝度サンプルを検索してもよい。ある実施形態では、ビデオコーデックは、ラスター走査順に従って、左から右へ、上から下へ、またはこれらの順序の任意の組み合わせで、隣接輝度サンプルを検索する。ある実施形態では、隣接輝度サンプルには、空間的に輝度ブロックの上方にあるそれらのサンプル(例えば、上方隣接彩度組624)および輝度ブロックの左側にあるそれらのサンプル(例えば、左側隣接彩度組610)を含む。ビデオコーデックは、上方隣接彩度サンプルまたは左側隣接彩度サンプルのみを検索してもよい。
【0105】
最大および最小の輝度サンプルが識別された後、ビデオコーデックは、識別された最大および最小の輝度サンプルにそれぞれ対応する少なくとも1つのダウンサンプリング最大輝度サンプルおよび少なくとも1つのダウンサンプリング最小輝度サンプルを算出する(830および840)。例えば、ビデオコーデックは、6タップダウンサンプリング技術を使用して、6つの隣り合う再構成された輝度サンプル(例えば、3×2形態または2×3形態で配置する)からダウンサンプリング輝度サンプル(例えば、加重平均化により)を生成することが可能である。このダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルは、それぞれ、各再構成された彩度サンプルに対応する(例えば、第1の再構成された隣接彩度サンプルおよび第2の再構成された隣接彩度サンプル)。例えば、この第1の再構成された隣接彩度サンプルおよび第2の再構成された隣接彩度サンプルは、この複数の再構成された隣接彩度サンプルのものであり得る。
【0106】
ある実装形態では、上述した操作820、830、および840は、異なる順で再配置される。例えば、ビデオコーデックは、まず、複数の再構成された隣接輝度サンプルから1つまたは複数のダウンサンプリング輝度サンプルを算出し、次に、この1つまたは複数の算出されたダウンサンプリング輝度サンプルのサブ組で検索して、少なくとも1つのダウンサンプリング最大輝度サンプル及び少なくとも1つのダウンサンプリング最小輝度サンプルをそれぞれ識別する。このダウンサンプリング最大輝度サンプルは、第1の再構成された彩度サンプルに対応するように選択され、ダウンサンプリング最小輝度サンプルは、第2の再構成された彩度サンプルに対応するように選択された。
【0107】
次に、ビデオコーデックは、ダウンサンプリング最大輝度サンプルと第1の再構成された隣接彩度サンプルとの第1のペア、及びダウンサンプリング最小輝度サンプルと第2の再構成された隣接彩度サンプルとの第2のペアを使用して線形モデルを生成する(850)。ある実施形態では、ビデオコーデックは、2つのデータ点(例えば、(第1の再構成された隣接彩度サンプル、ダウンサンプリング最大輝度サンプル)および(第2の再構成された隣接彩度サンプル、ダウンサンプリング最小輝度サンプル))を識別し、この2つのデータ点を通った線形方程式をフィットすることによって、最大-最小法により線形モデルを生成する。
【0108】
ビデオコーデックは、線形モデルを取得した後、再構成された輝度ブロックの輝度サンプルからダウンサンプリング輝度サンプルを算出する(860)。各ダウンサンプリング輝度サンプルは、彩度ブロックの彩度サンプルに対応する。例えば、ビデオコーデックは、ダウンサンプリング最大輝度サンプルおよびダウンサンプリング最小輝度サンプルの算出に使用されるダウンサンプリング技術と同じものを使用して、ダウンサンプリング輝度サンプルを算出することが可能である。
【0109】
最後に、ビデオコーデックは、この線形モデルを対応するダウンサンプリング輝度サンプルに適用することによって、彩度ブロック内の彩度サンプルを予測する(870)。
【0110】
1つまたは複数の例では、上述した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせで実現される。ソフトウェアで実現される場合、それらの機能は、1つまたは複数の命令またはコードとして、コンピュータ読取可能な媒体に格納されまたはこれを介して送信され、ハードウェアベースの処理ユニットによって実行される。コンピュータ読取可能な媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ読取可能な記憶媒体、または、例えば、通信プロトコルに従って、ある箇所から別の箇所へのコンピュータプログラムの転送を役立つ任意の媒体を含む通信媒体を含み得る。これにより、コンピュータ読取可能な媒体は、一般的に、(1)非一時的な有形のコンピュータ読取可能な記憶媒体、または(2)信号または搬送波などの通信媒体、に対応し得る。データ記憶媒体は、本願で説明された実施形態の実現のための命令、コード、および/またはデータ構造を検索するために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスできる任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読取可能な媒体を含み得る。
【0111】
ここでの実施形態の説明で使用される用語は、特定の実施形態を説明することのみを目的としており、特許請求の範囲を限定することを意図するものではない。実施形態の説明および添付の特許請求の範囲で使用されるように、単数形「一」、「1つの」、および「この」は、文脈が明確に別段の指示をしない限り、複数形も含むことを意図している。ここで使用される「および/または」という用語は、1つまたは複数の関する、リストされた項目の任意な及びすべての可能な組み合わせを指しかつ含むことも理解されべきである。本明細書で使用された「含む」という用語は、記載された特徴、要素、および/または成分の存在を指定するが、1つまたは複数の他の機能、要素、成分、および/またはそれらの組の存在または追加を排除するものではないことがさらに理解されべきである。
【0112】
ここでは、第1、第2などの用語を使用して各種の要素を説明したことが、これらの要素はこれらの用語によって限定されべきではないことも理解されべきである。これらの用語は、ある要素を別の要素と区別するためにのみ使用された。例えば、実施形態の範囲から逸脱することなく、第1の電極は、第2の電極と呼ばれ得、同様に、第2の電極は、第1の電極と呼ばれ得る。第1の電極と第2の電極は両方とも電極であるが、それらは同じ電極ではない。
【0113】
本願の説明は、例示および説明の便利のためで提示されており、網羅的なまたは開示された形態の発明に限定することを意図するものではない。各種の変更、変形、および置換した実現は、前述の説明および関連する図面に提示された教示を得った当業者にとっては明らかである。実施形態は、本発明の原理、実際の適用を最もよく説明し、当業者が各種の実施のために本発明を理解し、特定の用途に適するために各種の変更で基礎となる原理および各種の実施を最もよく利用できるようにするために選択されおよび説明されたものである。したがって、特許請求の範囲は、開示された実現の特定の例に限定されなく、変更および他の実現も、添付の特許請求の範囲に含まれることを理解されるべきである。
図1
図2
図3
図4A
図4B
図4C
図4D
図5A
図5B
図6
図7A
図7B
図7C
図7D
図7E
図8