(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-09-09
(45)【発行日】2022-09-20
(54)【発明の名称】彩度成分のアフィン動きベクトルを導出するためのビデオ符号化復号化の方法および装置
(51)【国際特許分類】
H04N 19/52 20140101AFI20220912BHJP
H04N 19/105 20140101ALI20220912BHJP
H04N 19/139 20140101ALI20220912BHJP
H04N 19/537 20140101ALI20220912BHJP
【FI】
H04N19/52
H04N19/105
H04N19/139
H04N19/537
(21)【出願番号】P 2021535786
(86)(22)【出願日】2019-12-12
(86)【国際出願番号】 US2019066098
(87)【国際公開番号】W WO2020131583
(87)【国際公開日】2020-06-25
【審査請求日】2021-07-05
(32)【優先日】2018-12-21
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】521147444
【氏名又は名称】ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド
【氏名又は名称原語表記】BEIJING DAJIA INTERNET INFORMATION TECHNOLOGY CO., LTD.
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100203264
【氏名又は名称】塩川 未久
(72)【発明者】
【氏名】チェン イーウェン
(72)【発明者】
【氏名】ワン シエンリン
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/094151(WO,A1)
【文献】Kai Zhang, et al.,CE4: Affine Prediction with 4×4 Sub-blocks for Chroma Components (Test 4.1.16),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L0265,12th Meeting: Macao, CN,2018年09月,pp.1-2
【文献】Benjamin Bross, Jianle Chen, and Shan Liu,Versatile Video Coding (Draft 3),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-L1001-v7 (version 11),12th Meeting: Macao, CN,2018年12月20日,pp.14-16,111,129-130,141-142
【文献】Anish Tamse and Min Woo Park ,CE2-related: MV Derivation for Affine Chroma,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0192-v1,13th Meeting: Marrakech, MA,2019年01月,pp.1-5
【文献】Yi-Wen Chen and Xianglin Wang,CE2-related: Affine mode modifications,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0228,13th Meeting: Marrakech, MA,2019年01月,pp.1-3
【文献】Luong Pham Van, Wei-Jung Chien, Han Huang, and Marta Karczewicz,CE2-related: 4x4 chroma affine motion compensation and motion vector rounding unification,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-M0462-v2,13th Meeting: Marrakech, MA,2019年01月,pp.1-4
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
カラーサンプリングフォーマットのビデオデータを複数の輝度サブブロックおよびそれぞれが前記カラーサンプリングフォーマットに従って導出された1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置することと、
前記ビデオデータのカラーサブサンプリングフォーマットを決定することと、
異なるカラーサブサンプリングフォーマットに従って、異なる仕方で対応する前記輝度サブブロックの動きベクトルを使用して、前記複数の彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出することと、を含み、
前記カラーサブサンプリングフォーマットが4:4:4である場合、
対応する前記輝度サブブロックの動きベクトルを使用して前記彩度サブブロックのアフィン動きベクトル
を導出し、前記カラーサンプリングフォーマットが4:2:2である場合、2つの対応する前記輝度サブブロックの動きベクトルの平均を
使用して前記彩度サブブロックのアフィン動きベクトルを導出する、ビデオ復号化の方法。
【請求項2】
対応する前記輝度サブブロックの動きベクトルを使用して前記彩度サブブロックのうちの前記彩度サブブロックのアフィン動きベクトルを導出することは、対応する前記輝度サブブロックの動きベクトルを入力とする丸め処理を呼び出すことを含む、請求項1に記載の方法。
【請求項3】
対応する前記輝度サブブロックの動きベクトルを使用して前記彩度サブブロックのうちの前記彩度サブブロックのアフィン動きベクトルを導出することは、
対応する前記輝度サブブロックの制御点の動きベクトルを左シフトして、より高精度の輝度動きベクトルを取得することを含む、請求項1に記載の方法。
【請求項4】
制御点ベースのアフィン動きモデルで、前記複数の輝度サブブロックのうちのある輝度サブブロックのアフィン動きベクトルを導出することをさらに含む、請求項1に記載の方法。
【請求項5】
プロセッサと、
前記プロセッサによって実行可能な命令を格納しているメモリと、を備え、
前記プロセッサは、前記命令を実行すると、
カラーサンプリングフォーマットのビデオデータを複数の輝度サブブロックおよびそれぞれが前記カラーサンプリングフォーマットに従って導出された1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置し、
前記ビデオデータのカラーサブサンプリングフォーマットを決定し、
異なるカラーサブサンプリングフォーマットに従って、異なる仕方で対応する前記輝度サブブロックの動きベクトルを使用して、前記複数の彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出し、
前記カラーサブサンプリングフォーマットが4:4:4である場合、
対応する前記輝度サブブロックの動きベクトルを使用して前記彩度サブブロックのアフィン動きベクトル
を導出し、前記カラーサンプリングフォーマットが4:2:2である場合、2つの対応する前記輝度サブブロックの動きベクトルの平均を
使用して前記彩度サブブロックのアフィン動きベクトルを導出する、
ように構成される、ビデオ復号化の装置。
【請求項6】
前記プロセッサは、さらに、対応する前記輝度サブブロックの動きベクトルを入力とする丸め処理を呼び出すように構成される、請求項5に記載の装置。
【請求項7】
前記プロセッサは、さらに、
対応する前記輝度サブブロックの制御点の動きベクトルを左シフトして、より高精度の輝度動きベクトルを取得する、
ように構成される、請求項5に記載の装置。
【請求項8】
前記プロセッサは、さらに、制御点ベースのアフィン動きモデルで、前記複数の輝度サブブロックのうちのある輝度サブブロックのアフィン動きベクトルを導出するように構成される、請求項5に記載の装置。
【請求項9】
命令を格納している非一時的なコンピュータ読取可能な記憶媒体であって、
前記
命令は、プロセッサによって実行されると、前記プロセッサに、請求項1から4のいずれか一項に記載のビデオ復号化の方法を実行する、非一時的なコンピュータ読取可能な記憶媒体。
【請求項10】
命令を格納しているコンピュータプログラムであって、
前記命令は、プロセッサによって実行されると、前記プロセッサに、請求項1から4のいずれか一項に記載のビデオ復号化の方法を実行する、コンピュータプログラム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2018年12月21日に出願された、発明の名称が「彩度成分のアフィン動きベクトル」である米国仮出願第62/784369号に対する優先権を主張するものであり、この特許出願の明細書全体を参照によって本願明細書に引用する。
【技術分野】
【0002】
本発明は、全般的にビデオデータ符号化及び復号化に関し、特に、限定されないが、彩度成分のアフィン動きベクトルを導出するための方法及び装置に関する。
【背景技術】
【0003】
ここで、以下の略語及び頭字語は定義され、少なくともそれらのいくつかが以下の説明で使用される。
国際電気通信連合(ITU:International Telecommunication Union)、ITU電気通信標準化部門(ITU-T:ITU Telecommunication Standardization Sector)、動画専門家グループ(MPEG:Moving Picture Experts Group)、高度なビデオ符号化(AVC:Advanced Video Coding)、高効率ビデオ符号化(HEVC:High Efficiency Video Coding)、多用途ビデオ符号化(VVC:Versatile Video Coding)、共同探査試験モデル(JEM:Joint Exploration Test Model)、VVC試験モデル(VTM:VVC Test Model)、共同ビデオ専門家チーム(JVET:Joint Video Experts Team)、ビデオ符号化専門家グループ(VCEG:Video Coding Experts Group)、動きベクトル(MV:Motion Vector)、動きベクトル予測(MVP:Motion Vector Prediction)、動きベクトル差(MVD:Motion Vector Difference)、動きベクトル場(MVF:Motion Vector Field)、高度な動きベクトル予測(AMVP:Advanced Motion Vector Prediction)、動きベクトル競争(MVC:Motion Vector Competition)、時間動きベクトル予測(TMVP: Temporal Motion Vector Prediction)、制御点動きベクトル(CPMV:Control Point Motion Vector)、制御点動きベクトル予測(CPMVP:Control Point Motion Vector Prediction)、動き補償予測(ALF:Motion Compensation Prediction)、Bi予測(B:Bi-predictive)、ブロックコピー(BC:Block Copy)、コンテキストベース適応バイナリー算術符号化(CABAC:Context-based Adaptive Binary Arithmetic Coding)、コンテキスト適応可変長符号化(CAVLC:Context Adaptive Variable Length Coding)、符号化ブロック(CB:Coding Block)、エンコーダ/デコーダ(CODEC)、符号化画像バッファ(CPB:Coded Picture Buffer)、符号化ツリーユニット(CTB:Coding Tree Unit)、符号化ユニット(CTU:Coding Unit)、離散コサイン変換(DCT:Discrete Cosine Transform)、復号化画像バッファ(DPB:Decoded Picture Buffer)、イントラ(I)、ブロック内コピー(IBC:Intra Block Copy)、予測(P)、画像ユニット(PU:Picture Unit)、絶対差の合計(SAD:Sum Of Absolute Difference)、構文ベースのコンテキスト適応バイナリ算術符号化(SBAC:Syntax-Based Context-Adaptive Binary Arithmetic Coding)、二乗差の合計(SSD:Sum Of Square Difference)。
【0004】
本開示では、記号又は添え字Y又はLによって表される用語「輝度」とは、サンプル行列又は単一のサンプルが、原色に関連するモノクロ信号を表すことを示すためのものである。「輝度」という用語は、ここで、通常関連付けられる線形光伝達特性の使用の意味を含むことではない。垂直位置に使用される記号yとの混同を避けるために、記号Yの代わりに記号Lが使用されることがある。記号CbおよびCrによって表される「彩度」という用語は、サンプル行列または単一のサンプルが原色に関連する2つの色差信号のうちの1つを表していることを示すためのものである。「彩度」という用語は、ここで、通常関連付けられる線形光伝達特性の使用の意味を含むことではない。
【0005】
デジタル・テレビ、ラップトップまたはデスクトップ・コンピュータ、タブレット・コンピュータ、デジタル・カメラ、デジタル記録装置、デジタル・メディア・プレーヤー、ビデオ・ゲーム機、スマートフォン、ビデオ会議装置やビデオ・ストリーミング装置などの各種電子装置は全てデジタル・ビデオを支持する。電子装置は、ビデオ圧縮/展開を実行することで、デジタル・ビデオ・データを受送信し、符号化し、復号化や格納する。デジタルビデオ装置は、多用途ビデオ符号化(VVC)、共同探査試験モデル(JEM)、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part 10、高度なビデオ符号化(AVC)、ITU-T H.265/高効率ビデオ符号化(HEVC)で定義された標準及びそのような標準の拡張に述ベているビデオ符号化復号化技術を実行する。
【0006】
ビデオ符号化復号化は、一般に、ビデオ画像又はシーケンスに存在する冗長性による予測方法(例えば、イントラ予測、イントラ予測)を利用する。ビデオ符号化復号化技術の重要な目標の一つは、ビデオ品質の低下を回避または最小限に抑えながら、ビデオデータをより低ビットレートでのフォームに圧縮することである。進化し続けるビデオサービスが利用可能になるにつれて、より優れた符号化復号化効率を備える符号化復号化技術が必要となる。
【0007】
ビデオ圧縮は、通常、空間(フレーム内)予測及び/又は時間(フレーム間)予測を実行して、ビデオデータに固有の冗長性を低減または削除することを含む。ブロックに基づくビデオ符号化において、ビデオフレームは、符号化ツリーユニット(CTU)と呼ばれるビデオブロックを複数含む1つ又は複数のスライスに分割される。各CTUは、1つの符号化ユニット(CU)を含み、または予め定められた最小のCUサイズに達するまでより小さなCUに再帰的に分割されることがある。各CU(リーフCUとも呼ばれる)には、1つまたは複数の変換ユニット(TU)と、1つまたは複数の予測ユニット(PU: prediction unit)とが含まれる。各CUは、イントラ、インター、またはIBCモードで符号化されることが可能である。1つのビデオフレームにおけるイントラ符号化された(I)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測で符号化される。1つのビデオフレームにおけるインター符号化された(PまたはB)スライス内のビデオブロックは、同ビデオフレームにおける隣接ブロック内の参照サンプルに関する空間予測、または他の以前および/または将来の参照ビデオフレームにおける参照サンプルに関する時間予測を使用することができる。
【0008】
以前符号化された参照ブロック、例えば隣接ブロックの空間予測又は時間予測に基いて、符号化対象である現在のビデオブロックの予測ブロックが得られる。参照ブロックを見つける処理は、ブロックマッチングアルゴリズムによって実現することが可能である。符号化対象である現在のブロックと予測ブロックとの間の画素差を示す残差データは、残差ブロック又は予測誤差と呼ばれる。インター符号化ブロックは、予測ブロックを生成した参照フレームにおける参照ブロックを指す動きベクトルと、残差ブロックとに応じて符号化される。動きベクトルを決定する処理は、通常動き推定と呼ばれる。イントラ符号化ブロックは、イントラ予測モードと残差ブロックによって符号化されるものである。更なる圧縮のために、残差ブロックは画素領域から変換領域、例えば周波数領域に変換され、結果として将来に定量化される残差変換係数が得られる。そして、最初に二次元行列で配置されて定量化された変換係数は、走査されて一次元の変換係数ベクトルを生成し、その後、更なる圧縮を達成するようにビデオ・ビットストリームにエントロピー符号化される。
【0009】
そして、符号化されたビデオ・ビットストリームは、コンピュータ読取可能な記憶媒体(例えば、フラッシュメモリ)に保存されて、デジタル・ビデオ能力を持つ他の電子装置によってアクセスされ、或いは有線または無線でこの電子装置に直接送信される。そして、この電子装置は、例えば、符号化されたビデオ・ビットストリームを解析してこのビットストリームから構文要素を取得し、このビットストリームから取得された構文要素の少なくとも一部に基づいてこの符号化されたビデオストリームから元のフォーマットにデジタル・ビデオデータを再構成することで、ビデオ展開(上述したビデオ圧縮とは反対のプロセス)を実行しており、この再構成されたデジタル・ビデオデータを電子装置のディスプレイに再現する。
【0010】
デジタル・ビデオの品質が高解像度から4K×2K、さらに8K×4Kに進んでいるにつれて、符号化/復号化対象となるビデオデータの量は指数関数的に増加している。復号化されたビデオデータの画像品質を維持しながらビデオデータを効率的に符号化/復号化することは、常に課題である。
【0011】
ジョイントビデオ専門家チーム(JVET)会議では、多用途ビデオ符号化(VVC)及びVVC試験モデル1(VTM1)符号化方法の最初の草案が定義された。二値および三元の分割符号化ブロック構造によるネストのマルチタイプツリーを持つ四分木は、VVCの最初の新しい符号化特徴として含まれていることと決定された。それ以来、符号化方法を実行するための参照ソフトウェアVTM及びドラフトVVC復号化プロセスはJVET会議の間で開発された。
【発明の概要】
【0012】
本開示は、全般的に彩度成分のアフィン動きベクトルを導出するためのビデオ符号化復号化に関する例を説明する。
【0013】
本開示の第1の方面に従い、ビデオデータを複数の輝度サブブロックおよびそれぞれが1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置することと、対応する前記輝度サブブロックの動きベクトルを使用して、前記複数の彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出することと、を含み、前記ビデオデータは、カラーサブサンプリングフォーマットであり、対応する前記輝度サブブロックは、前記カラーサブサンプリングフォーマットに従って導出されたものである、ビデオ符号化復号化の方法を提供する。
【0014】
本開示の第2の方面に従い、プロセッサと、前記プロセッサによって実行可能な命令を格納しているメモリと、を備え、前記プロセッサは、前記命令を実行すると、ビデオデータを複数の輝度サブブロックおよびそれぞれが1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置し、対応する前記輝度サブブロックの動きベクトルを使用して、前記複数の彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出する、ように構成され、前記ビデオデータは、カラーサブサンプリングフォーマットであり、対応する前記輝度サブブロックは、前記カラーサブサンプリングフォーマットに従って導出されたものである、ビデオ符号化復号化の装置を提供する。
【0015】
本開示の第3の方面に従い、命令を格納している非一時的なコンピュータ読取可能な記憶媒体であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに、ビデオデータを複数の輝度サブブロックおよびそれぞれが1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置し、対応する前記輝度サブブロックの動きベクトルを使用して、前記複数の彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出する、のような操作を実行させ、前記ビデオデータは、カラーサブサンプリングフォーマットであり、対応する前記輝度サブブロックは、前記カラーサブサンプリングフォーマットに従って導出されたものである、非一時的なコンピュータ読取可能な記憶媒体を提供する。
【図面の簡単な説明】
【0016】
本開示の例のより具体的な説明は、添付の図面に示す特定の例を参照することによって与えられる。これらの図面はいくつかの例を示しているに過ぎず、したがって範囲を限定するものではないと考すれば、これらの例は、添付の図面を使用することにより、追加の特異性および詳細が説明される。
【
図1】
図1は、本開示のある実施形態に係るビデオ符号化および復号化システムを例示するブロック図である。
【
図2】
図2は、本開示のある実施形態に係るビデオエンコーダを例示するブロック図である。
【
図3】
図3は、本開示のある実施形態に係るビデオデコーダを例示するブロック図である。
【
図4】
図4は、本開示のある実施形態に係る、制御点によるアフィン動きモデルを示す概略図である。
【
図5】
図5は、本開示のある実施形態に係る、ブロックのサブブロックごとのアフィン動きベクトル場(MVF)を示す概略図である。
【
図6】
図6は、本開示のある実施形態に係る、引き継ぐアフィン動き予測子の位置を示す概略図である。
【
図7】
図7は、本開示のある実施形態に係る、制御点動きベクトル引継ぎを示す概略図である。
【
図8】
図8は、本開示のある実施形態に係る、構成されたアフィンマージモードの候補の位置を示す概略図である。
【
図9】
図9は、本開示のある実施形態に係る、提案する組み合わせな方法のための動きベクトル使用を示す概略図である。
【
図10】
図10は、本開示のある実施形態に係る、各種のYUVサンプリングフォーマットを示す概略図である。
【
図11】
図11は、本開示のある実施形態に係る、YUVフォーマット4:2:0:で輝度サブブロック (L1、L2、L3およびL4) と彩度サブブロックCとの対応性を示す概略図である。
【
図12】
図12は、本開示のある実施形態に係る、ビデオ符号化復号化のための例示的な装置を示すブロック図である。
【
図13】
図13は、本開示のある実施形態に係る、彩度成分のアフィン動きベクトルを導出するためのビデオ符号化復号化の例示的なプロセスを示すフローチャートである。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の具体的な実施の形態を詳細に説明する。以下の詳細な説明において、本明細書に述べる趣旨を容易に理解するために、複数の非限定的な具体的な詳細を述べる。ただし、本発明は、各種の変形により実施することができることは、当業者にとって明らかである。例えば、本明細書に述べる趣旨がデジタルビデオ機能を有する多くの種類の電子装置で実施され得ることは、当業者にとって明らかである。
【0018】
各図の要素の説明は、他の図の要素を参照することがある。同一の番号は、図中の同一の要素を指し、同一の要素の変形例も含む。
【0019】
本明細書では、「1つの実施形態」、「実施形態」、「例」、「ある実施形態」、「ある例」または類似の表現は、記載における特定の特徴、構造または特性が少なくとも1つの実施形態または例に含まれることを意味する。したがって、本明細書全体における「1つの実施形態において」、「例において」、「ある実施形態において」および類似の表現の例は、すべて同じ実施形態を指す場合があるが、必ずしもそうであるとは限らない。それは、開示されたすべての実施形態を含んでもよいし、含まなくてもよい。1つまたはいくつかの実施形態に関連して説明される特徴、構造、要素または特性は、明確に別段の指示をしない限り、他の実施形態にも適用可能である。
【0020】
図面中、概略フローチャート及び/又は概略ブロック図は、各実施形態に係る、異なる装置、システム、方法及びプログラム製品の可能な実施形態のアーキテクチャ、機能及び動作を示す。これに関して、概略フローチャートおよび/または概略ブロック図の各ブロックは、特定の論理機能を実行するためのモジュール、セグメント、または1つまたは複数の実行可能な命令を含むコードの一部を表すことができる。しかしながら、当業者は、フローチャートが必ずしも図示された順序で実行される必要はなく、1つまたは複数の特定のステップなし、または図示されていない他のステップで実行されることができることを理解すべきである。
【0021】
なお、ある変形例では、示すブロックの機能が、図中に記載の順序と異なる場合もある。たとえば、連続的に示す2つのブロックは、関連する機能によって、実際には実質的に同時に実行されてもよく、又は逆の順序で実行されてもよい。図面について、他のステップおよび方法は、機能、論理または効果に1つまたは複数のブロックまたはその一部と同等であると考えられることができる。
【0022】
本開示で使用される用語は、特定の例を説明することのみを目的としており、本開示を限定することを意図しない。「含む」、「備える」という用語は、明確に別段の指示をしない限り、「…を含むがこれに限定されない」という意味である。
【0023】
さらに、これらの用語は、述べる機能、整数、ステップ、操作、要素および/またはコンポーネントの存在を指すが、1つまたは複数の他の特徴、整数、ステップ、操作、要素、コンポーネント、および/またはそれらの組み合わせの存在または追加を排除するものではないことを理解されべきである。
【0024】
列挙する項のリストは、明確に別段の指示をしない限り、これらの項のいずれかまたはすべてが互いに排他的であることを意味するものではない。
【0025】
本開示および添付の特許請求の範囲で使用される場合、単数形「一」、「1つ」および「この」は複数形も含むことを意図しており、文脈が明確に別段の指示をしない限り、「1つまたは複数」、「少なくとも一つ」と同等であると解釈されるべきである。
【0026】
本明細書で使用される用語「および/または」、「及び/又は」は、1つまたは複数の関する、リストされた項目の任意な及びすべての可能な組み合わせを指しかつ含むことも理解されべきである。例えば、「Aおよび/またはB」は、Aのみの存在、Bのみの存在、AとBとの両方の共存の3つの組み合わせのいずれかを指す。
【0027】
記号「/」は、一般的に関連項の「又は」という関係を示すが、関連項の「と」という関係を含むこともある。たとえば、「A/B」は、文脈が明確に別段の指示をしない限り、AとBとの両方の共存を含む場合もある。
【0028】
本開示全体では、「第1」、「第2」、「第3」などの用語はすべて、関連する要素、例えば、デバイス、コンポーネント、構成、ステップなどへの言及のためのものとしてのみ使用され、文脈が明確に別段の指示をしない限り、空間的または年代順を意味するものではない。たとえば、「第1のデバイス」および「第2のデバイス」は、2つの別個に形成されたデバイス、または同じデバイスの2つの部分、コンポーネント、または動作状態を指すものであって、任意に名前を付けることができる。
【0029】
第1元素と第2元素とは独立して存在してもよい。例えば、ある実施形態は、第1の要素を含まず、第2の要素のみを含むことができる。したがって、第2の要素は、第1の要素の説明に先立って、または第1の要素の説明なしで説明され得る。たとえば、方法またはプロセスの「第1のステップ」は、「第2のステップ」の後、または「第2のステップ」と同時に実行されることが可能である。
【0030】
本明細書で使用される場合、「(もし)…たら」または「(もし)…ば」、「(もし)…と」という用語は、文脈に応じて、「…ときに」または「…に応じて」を意味すると理解され得る。これらの用語は、請求項に表示される場合、関連する限定または特徴が条件付きまたは選択的であることを意味していない場合がある。たとえば、一つの方法は、i)条件X が存在する場合、機能または動作X'が実行されるステップと、ii)条件Yが存在する場合、機能または動作Y'が実行されるステップとを含む。この方法は、機能または動作X'を実行する能力と、機能または動作Y'を実行する能力との両方を含めて実現される必要があるが、機能X'とY'とは両方とも、異なる時間にこの方法の複数回の実行で実現される場合がある。さらに、条件Xの満足を検出または評価する能力と、条件Yの満足を検出または評価する能力と含めて実現されてもよい。
【0031】
「モジュール」、「サブモジュール」、「回路」、「サブ回路」、「ユニット」または「サブユニット」という用語は、1つまたは複数のプロセッサで実行できるコードまたは命令を格納するメモリ (共有、専用、またはグループ) を含む。モジュールは、コードまたは命令を格納しているか、または格納していない1つまたは複数の回路が含む場合がある。モジュールまたは回路は、直接または間接的に接続された1つまたは複数のコンポーネントを含むことができる。これらのコンポーネントは、互いに物理的に接続することも、物理的に切断することも、互いに隣り合うこともできる。
【0032】
ユニットまたはモジュールは、完全にソフトウェアによって実現されてもよく、完全にハードウェアによって実現されてもよく、またはハードウェアとソフトウェアとの組み合わせによって実現されてもよい。完全なソフトウェアの実現では、たとえば、ユニットまたはモジュールが、特定の機能を実行するために直接的または間接的に互いにリンクされている機能的に関連するコードブロックまたはソフトウェアコンポーネントを含むことができる。
【0033】
画像区画構造は、入力ビデオを符号化ツリーユニット (CTU) と呼ばれるブロックに分割する。CTUは、ネストのマルチタイプツリー構造を持つ四分木を使用して符号化ユニット(CU)に分割され、リーフ符号化ユニット(CU)が同じ予測モード(イントラまたはインター)を共有する領域を定義する。
【0034】
本開示では、「ユニット」という用語は、すべての成分をカバーする画像の領域を定義する。また、「ブロック」という用語は、特定の成分(例えば、輝度)をカバーする領域を定義するためのものであって、4:2:0などの彩度サンプリングフォーマットの場合、空間的な位置が異なる場合がある。
図10に示すように、yuv4:2:0フォーマットの場合には、2N×2Nブロック1002は、2N×2Nの輝度画素(サンプル)および2つのN×Nの彩度画素1004を含むことができる。yuv4:2:2フォーマットの場合には、2N×2Nブロック1002は、2N×2Nの輝度画素(サンプル)および2つのN×2Nの彩度画素1006を含むことができる。yuv4:4:4フォーマットの場合には、2N×2Nブロック 1002は、2N×2Nの輝度画素 (サンプル)および2つの2N×2N彩度画素1008を含むことができる。本開示では、輝度ブロックおよびその対応する色度ブロックへの参照、またはその逆は、
図1に示される対応関係への参照である。
【0035】
図11に示すように、いくつかのスキームでは、ブロックがサブブロックに分割され、この分割は輝度および彩度ブロックに等しく適用されない場合がある。例えば、
図11に示すように、yuv4:2:0フォーマットでは、16×16輝度ブロック1102は、16個の4×4サブブロック1104に分割され、その対応する8×8彩度ブロック1122のそれぞれは、4つの4×4彩度サブブロック1124に分割される。これに対応し、各4×4彩度サブブロック、例えば彩度サブブロックCは、4つの4×4輝度サブブロック、例えば輝度サブブロックL1、L2、L3、L4に対応する。
【0036】
そこで、ビデオデータは、複数の輝度サブブロックおよびそれぞれが1つまたは複数の輝度サブブロックに対応する複数の彩度サブブロックに配置される。
【0037】
図1は、本開示のある実施形態に係る、ビデオブロックを符号化および復号化するためのシステム10を例示するブロック図である。
図1に示すように、システム10は、将来目標装置14によって復号化されるビデオデータを生成し符号化するソース装置12を含む。ソース装置12および目標装置14は、デスクトップまたはラップトップ・コンピュータ、タブレット・コンピュータ、スマートフォン、セットトップボックス、デジタル・テレビ、カメラ、表示装置、デジタルメディアプレーヤー、ビデオ・ゲーム機、ビデオ・ストリーミング装置などを含む多種の電子装置のいずれかであってもよい。ある実施形態では、ソース装置12および目標装置14は、無線通信機能を備えている。
【0038】
ある実施形態では、目標装置14は、リンク16を介して復号化対象の符号化後のビデオデータを受信する。リンク16は、符号化されたビデオデータをソース装置12から目標装置14に移動させる任意のタイプの通信媒体または装置であってもよい。一つの例では、リンク16は、ソース装置12から、符号化されたビデオデータを目標装置14にリアルタイムで直接送信できる通信媒体であってもよい。符号化されたビデオデータは、無線通信プロトコルなどの通信標準に従って変調され、目標装置14に送信される。通信媒体は、無線周波数(RF:radio frequency)スペクトルまたは1つ又は複数の物理的な伝送路などの任意の無線または有線通信媒体であってもよい。通信媒体は、ローカルエリアネットワークのようなパケットベースのネットワーク、ワイドエリアネットワークまたはインターネット等のようなグローバルネットワークの一部として構成してもよい。通信媒体には、ルーター、交換機、基地局や、ソース装置12から目標装置14への通信に役立つ他の任意の装置を含んでもよい。
【0039】
他のある実施形態では、符号化されたビデオデータは、出力インターフェース22からストレージ装置32に送信される。そして、ストレージ装置32にある符号化されたビデオデータは、入力インターフェース28を介して目標装置14によってアクセスされることが可能である。ストレージ装置32には、ハードドライブ、Blu-rayディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、や符号化されたビデオデータを格納するための他の任意の適切なデジタル記憶媒体などのような多種の分散型またはローカルにアクセスされるデータ記憶媒体のいずれかを含むことが可能である。更なる他の例では、ストレージ装置32は、ファイルサーバ、またはソース装置12によって生成された符号化ビデオデータを保持することができる別の中間ストレージ装置に対応してもよい。目標装置14は、ストリーミングまたはダウンロードを介してストレージ装置32から格納されたビデオデータにアクセスすることができる。ファイルサーバは、符号化されたビデオデータを格納し、符号化されたビデオデータを目標装置14に送信することができる任意のタイプのコンピュータであってもよい。例示的なファイルサーバは、ウェブサーバ(例えば、ウェブサイト用)、FTPサーバ、ネットワーク接続ストレージ(NAS)装置、またはローカルディスクドライブを含む。目標装置14は、ファイルサーバーに保存されている符号化ビデオデータへのアクセスに適する無線チャネル(例えば、Wi―Fi接続)、有線接続(例えば、DSL、ケーブルモデムなど)、またはそれらの組み合わせを含む任意の標準データ接続を介して、符号化されたビデオデータをアクセスすることができる。ストレージ装置32からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれらの組み合わせであってもよい。
【0040】
図1に示すように、ソース装置12は、ビデオソース18、ビデオエンコーダ20、および出力インターフェース22を含む。ビデオソース18には、ビデオ・キャプチャ装置(例えばビデオカメラ)、前に捕らえられたビデオを含むビデオアーカイブ、ビデオコンテンツ提供者からビデオを受信するためのビデオフィードインターフェイス、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそれらの組み合わせ等のようなソースを含むことが可能である。一つの例として、ビデオソース18がセキュリティ監視システムのビデオカメラである場合、ソース装置12および目標装置14は、カメラ付き携帯電話またはビデオ電話であってもよい。しかしながら、本開示で説明する実施形態は、一般にビデオ符号化に適用可能であり、そして無線および/または有線アプリケーションに適用可能である。
【0041】
捕らえられたビデオ、予め捕らえられたビデオ、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化されることができる。符号化されたビデオデータは、ソース装置12の出力インターフェース22を介して目標装置14に直接送信されることが可能である。これに加えて(または選択的に)、符号化されたビデオデータは、その後、目標装置14または他の装置によってアクセスされて復号化および/または再生できるように、ストレージ装置32に格納されてもよい。出力インターフェース22は、モデムおよび/または送信機をさらに含んでもよい。
【0042】
目標装置14は、入力インターフェース28、ビデオデコーダ30、および表示装置34を含む。入力インターフェース28は受信機および/またはモデムを含み、リンク16を介して符号化されたビデオデータを受信する。リンク16を介して転送され、またはストレージ装置32に提供された符号化ビデオデータには、ビデオエンコーダ20によって生成されてビデオデコーダ30によるビデオデータの復号化に使用される各種の構文要素を含んでもよい。符号化されたビデオデータは、通信媒体で送信されるか、記憶媒体に記憶されているか、ファイルサーバーに記憶されているかに関わらず、そのような構文要素を含んでもよい。
【0043】
ある実施形態では、目標装置14は、集積された表示装置や、目標装置14と通信できるように構成された外部表示装置である表示装置34を含んでもよい。表示装置34は、復号化されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプの表示装置などの各種の表示装置のいずれかであってもよい。
【0044】
ビデオエンコーダ20およびビデオデコーダ30は、VVC、HEVC、MPEG-4、Part10、高度なビデオ符号化(AVC)、またはそのような標準の拡張などの専門または業界標準に従って動作する。なお、本開示は、特定のビデオ符号化/復号化の標準に限定されず、他のビデオ符号化/復号化標準にも適用可能であることが理解されるべきである。ソース装置12のビデオエンコーダ20は、これらの現在または将来の標準のいずれかに従ってビデオデータを符号化するように構成される。同様に、目標装置14のビデオデコーダ30は、これらの現在または将来の標準のいずれかに従ってビデオデータを復号化するように構成される。
【0045】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、離散な論理、ソフトウェア、ハードウェア、ファームウェア、またはこれらの任意の組み合わせなどのような、各種の適切なエンコーダ回路のいずれかとして実現されることが可能である。部分的にソフトウェアによって実現される場合、電子装置は、ソフトウェアの命令を適切な非一時的なコンピュータ読取可能な媒体に格納し、ハードウェアにおいて1つまたは複数のプロセッサによって命令を実行することで本開示に述べたビデオ符号化/復号化操作を実行してもよい。ビデオエンコーダ20およびビデオデコーダ30は、それぞれの装置において結合式エンコーダ/デコーダ(CODEC)の一部として集積された一つまたは複数のエンコーダまたはデコーダに含まれてもよい。
【0046】
図2は、本開示で述べるある実施形態に係るビデオエンコーダ20を例示するブロック図である。ビデオエンコーダ20は、ビデオフレーム内のビデオブロックに対してイントラ予測符号化およびインター予測符号化を実行することができる。イントラ予測符号化は空間予測に依存し、特定のビデオフレームまたは画像内のビデオデータの空間的冗長性を低減または削除する。インター予測符号化は、時間予測に依存し、ビデオシーケンスにおける隣り合うビデオフレームまたは画像内のビデオデータの時間的冗長性を低減または削除する。
【0047】
図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つ又は複数の固定的またはプログラマブル・ハードウェアユニット内で分割されてもよい。
【0048】
ビデオデータメモリ40は、ビデオエンコーダ20における部品によって符号化するビデオデータを格納する。ビデオデータメモリ40におけるビデオデータは、例えばビデオソース18から得られる。DPB64は、ビデオエンコーダ20によってビデオデータを(例えば、イントラ予測またはインター予測符号化モードで)符号化する際に使用される参照ビデオデータを格納するバッファである。ビデオデータメモリ40およびDPB64は、各種のメモリデバイスのいずれかであってよい。各種の例では、ビデオデータメモリ40は、ビデオエンコーダ20における他の部品とともにオンチップであってもよく、またはそれらの部品に対するオフチップであってもよい。
【0049】
図2に示すように、ビデオデータを受信した後、予測処理部41における分割部45は、このビデオデータをビデオブロックに分割する。この分割には、このビデオデータに関するquad-tree構造のような予め定められた分割構造に従って、ビデオフレームをスライス、タイルまたは他のより大きい符号化ユニット(CU)に分割することを含んでもよい。ビデオフレームは、複数のビデオブロック(または、タイルと称されるビデオブロックトセット)に分割されることができる。予測処理部41は、現在のビデオブロックに対して、エラー結果(例えば、符号化率および歪みレベル)に基づいて、複数のイントラ予測符号化モードのうちの1つまたは複数のインター予測符号化モードのうちの1つのような、複数の可能な予測符号化モードのうちの1つを選択する。そして、予測処理部41は、得られたイントラ又はインター予測符号化ブロックを加算器50に提供して残差ブロックを生成し、かつ、得られたイントラ又はインター予測符号化ブロックを加算器62に提供してその後参照フレームの一部として使用するように符号化ブロックを再構成する。また、予測処理部41は、さらに動きベクトル、イントラモードインジケータ、分割情報及び他の構文情報のような構文要素をエントロピー符号化部56に提供する。
【0050】
予測処理部41におけるイントラ予測処理部46は、現在のビデオブロックに適したイントラ予測符号化モードを選択するために、符号化対象である現在のブロックと同一のフレーム内の1つまたは複数の隣接ブロックに対して、現在のビデオブロックのイントラ予測符号化を実行して空間予測を行うことができる。予測処理部41における動き推定部42および動き補償部44は、一つ又は複数の参照フレーム内の一つ又は複数の予測ブロックに対して、現在のビデオブロックのインター予測符号化を実行して時間予測を行う。ビデオエンコーダ20は、複数のパスの符号化処理を実行して、例えばビデオデータにおける各ブロックに対して適切な符号化モードを選択してもよい。
【0051】
ある実施形態では、動き推定部42は、ビデオフレームのシーケンスの予め定められたパターンに従って、参照ビデオフレーム内における予測ブロックに対する現在のビデオフレーム内におけるビデオブロックの予測ユニット(PU)の変位を示す動きベクトルを生成することで、現在のビデオフレームのインター予測モードを決定する。動き推定部42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、現在のビデオ・フレーム(または他の符号化ユニット)または画像内における符号化されている現在のビデオブブロックに対する参照フレーム(または他の符号化ユニット)内における予測ブロックに対して、現在のビデオ・フレーム内におけるビデオブロックのPUの変位を示すことができる。予め定められたパターンは、シーケンスにおけるビデオ・フレームをPフレームまたはBフレームとして指定できる。イントラBC部48は、動き推定部42によるインター予測のための動きベクトルの決定と同様な方法により、イントラBC符号化のためのベクトル、例えばブロックベクトルを決定してもよいし、または動き推定部42を利用してブロックベクトルを決定してもよい。
【0052】
絶対差の合計(SAD)、二乗差の合計(SSD)又はその他の差メトリックによって決定できる画素差では、予測ブロックは、符号化対象のビデオブロックのPUと極めてマッチングされる参照フレームにおけるブロックである。ある実施形態では、ビデオエンコーダ20は、DPB64に格納されている参照フレームのサブ整数画素位置の値を算出することが可能である。例えば、ビデオエンコーダ20は、参照フレームの1/4画素位置、1/8の画素位置、または他の分数の画素位置の値を補間してもよい。したがって、動き推定装置42は、すべての画素位置および分数の画素位置に対して動き探索処理を実行して、分数画素精度を有する動きベクトルを出力ことができる。
【0053】
動き推定部42は、インター予測符号化フレーム内におけるビデオブロックのPUの位置と、それぞれDPB64に格納されている1つまたは複数の参照フレームを識別する第1の参照フレームリスト(List0)または第2の参照フレームリスト(List1)から選択された参照フレームの予測ブロックの位置と比較することで、ビデオブロックのPUの動きベクトルを算出する。動き推定部42は、算出された動きベクトルを動き補償部44に送信し、そしてエントロピー符号化部56に送信する。
【0054】
動き補償部44によって実行される動き補償には、動き推定部42によって決定された動きベクトルに基づいて予測ブロックを取得または生成することを含み得る。動き補償部44は、現在のビデオブロックのPUの動きベクトルを受信すると、参照フレームリストの1つにおいてこの動きベクトルが指している予測ブロックを位置決めし、DPB64からこの予測ブロックを探し、この予測ブロックを加算器50に転送する。そして、加算器50は、符号化されている現在のビデオブロックの画素値から動き補償部44によって提供された予測ブロックの画素値を差し引くことで、画素差値の残差ビデオブロックを形成する。残差ビデオブロックを形成する画素差値は、輝度差成分または彩度差成分、あるいはその両方を含み得る。また、動き補償部44は、ビデオフレームのビデオブロックに関する構文要素をさらに生成して、ビデオデコーダ30によるビデオフレームのビデオブロックの復号化に使用する。構文要素には、例えば、この予測ブロックを識別するための動きベクトルを定義する構文要素、予測モードを示す任意のフラグ、または本明細書で述べる任意の他の構文情報を含み得る。なお、動き推定部42および動き補償部44は、概念的な目的のために個別に示されているが、高度に集積されてもよい。
【0055】
ある実施形態では、イントラBC部48は、動き推定部42および動き補償部44に関して上述した方法と同様の方法によりベクトルを生成し、予測ブロックを取得することができるが、ここで、予測ブロックは符号化されている現在のブロックと同じフレームにあるものであり、ベクトルは、動きベクトルではなくブロックベクトルと呼ばれるものである。特に、イントラBC部48は、一つのイントラ予測モードを決定して現在のブロックを符号化することができる。ある例では、イントラBC部48は、例えば個別のパスの符号化において、多種類のイントラ予測モードを使用して現在のブロックを符号化し、レート歪み解析によりそれらのパフォーマンスをテストすることが可能である。次に、イントラBC部48は、テストされた各種のイントラ予測モードから、一つの適切なイントラ予測を選択し使用して、対応するイントラモードインジケータを生成する。例えば、イントラBC部48は、テストされた各種のイントラ予測モードのレート歪み値をレート歪み解析により算出し、テストされたモードからレート歪み特性が最良なイントラ予測モードを適切なイントラ予測モードとして選択し使用してもよい。レート歪み解析では、通常、符号化されたブロックとこの符号化されたブロックを生成するためのものであって符号化が実施されていない元のブロックとの間の歪み(又は、エラー)の量、およびこの符号化されたブロックを生成するために使用されたビットレート(すなわち、複数のビット)が決定される。イントラBC部48は、各符号化されたブロックについて歪み及びレートから比率を算出して、どのイントラ予測モードがこのブロックに対して最良なレート歪み値を示しているかを決定してもよい。
【0056】
別の例では、イントラBC部48は、動き推定部42および動き補償部44を全体的または一部的に使用して、ここに記載の実施形態に係るイントラBC予測に用いられる機能を実行してもよい。いずれの場合も、イントラ・ブロック・コピーについては、予測ブロックは、絶対差の合計(SAD)、二乗差の合計(SSD)または他の差メトリックによって決定できる画素差で、符号化対象のブロックと極めてマッチングすると考えられるブロックであり、予測ブロックの識別には、サブ整数画素位置の値の算出が含まれる場合がある。
【0057】
ビデオエンコーダ20は、予測ブロックがイントラ予測に従って同じフレームからのものであるか、インター予測に従って異なるフレームからのものであるかに関わらず、符号化されている現在のビデオブロックの画素値から予測ブロックの画素値を差し引いて画素差値を形成することで、残差ビデオブロックを生成することができる。残差ビデオブロックを形成している画素差値には、輝度成分差及び彩度成分差の両方を含むことが可能である。
【0058】
イントラ予測処理部46は、上述した動き推定部42および動き補償部44によって実行されるインター予測、またはイントラBC部48によって実行されるイントラ・ブロック・コピー予測の代わりに、現在のビデオブロックに対してイントラ予測することができる。特に、イントラ予測処理部46は、1つのイントラ予測モードを決定して現在のブロックを符号化することができる。このために、イントラ予測処理部46は、例えば、個別のパスの符号化処理において、各種のイントラ予測モードを使用して現在のブロックを符号化し、イントラ予測処理部46(またはある例では、モード選択部)は、テストされたイントラ予測モードから1つの適切なイントラ予測モードを選択し使用してもよい。イントラ予測処理部46は、このブロックに関して選択されたイントラ予測モードを示す情報をエントロピー符号化部56に提供してもよい。エントロピー符号化部56は、選択されたイントラ予測モードを示す情報をビットストリームに符号化することができる。
【0059】
予測処理部41がインター予測またはイントラ予測により現在のビデオブロックに対して予測ブロックを決定した後、加算器50は、現在のビデオブロックからこの予測ブロックを差し引くことで残差ビデオブロックを形成する。残差ブロック内の残差ビデオデータは、1つまたは複数の変換ユニット(TU)に含まれて変換処理部52に提供される。変換処理部52は、離散コサイン変換(DCT)または概念的に離散コサイン変換と類似する変換などにより、残差ビデオデータを残差変換係数に変換することができる。
【0060】
変換処理部52は、得られた変換係数を定量化部54に送信する。定量化部54は、これらの変換係数を定量化して、ビットレートをさらに低減する。定量化プロセスは、これらの係数の一部または全部に関連するビット深度を減らすこともできる。 定量化の度合いは、定量化パラメータを調整することによって変更されることができる。そして、ある例では、定量化部54は、定量化された変換係数を含む行列の走査を実行することができる。或いは、この走査は、エントロピー符号化部56によって実行されることが可能である。
【0061】
定量化に続いて、エントロピー符号化部56は、例えば、コンテキスト適応な可変長符号化(CAVLC)、コンテキスト適応なバイナリ算術符号化(CABAC)、構文ベースのコンテキスト適応なバイナリ算術符号化(SBAC)、確率間隔分割エントロピー(PIPE)符号化または別のエントロピー符号化方法または技術により、定量化された変換係数を、ビデオ・ビットストリームにエントロピー符号化する。そして、符号化されたビットストリームは、ビデオデコーダ30に送信されてもよいし、またはその後にビデオデコーダ30へ送信またはビデオデコーダ30による検索のためにストレージ装置32にアーカイブされてもよい。また、エントロピー符号化部56は、符号化されている現在のビデオフレームのための動きベクトルおよび他の構文要素をエントロピー符号化してもよい。
【0062】
逆定量化部58および逆変換処理部60は、それぞれ、逆定量化および逆変換により、他のビデオブロックの予測に使用される参照ブロックを生成するための画素領域内の残差ビデオブロックを再構成する。上記のように、動き補償部44は、DPB64に格納されているフレームの1つまたは複数の参照ブロックから動き補償予測ブロックを生成することができる。また、動き補償部44は、この予測ブロックに1つまたは複数の補間フィルタを適用して、動き推定に使用されるサブ整数画素値を算出することもできる。
【0063】
加算器62は、再構成された残差ブロックを動き補償部44によって生成された動き補償予測ブロックに加算して、DPB64に格納する参照ブロックを生成する。そして、この参照ブロックは、予測ブロックとして、イントラBC部48、動き推定部42および動き補償部44によって使用されて後続のビデオフレーム内の別のビデオブロックをインター予測することが可能である。
【0064】
図3は、本開示のある実施形態に係るビデオデコーダ30を例示するブロック図である。ビデオデコーダ30は、ビデオデータメモリ79、エントロピー復号化部80、予測処理部81、逆定量化部86、逆変換処理部88、加算器90およびDPB92を備える。予測処理部81は、動き補償部82、イントラ
予測部84及びイントラBC部85をさらに備える。ビデオデコーダ30は、
図2に参照してビデオエンコーダ20に関して上述した符号化プロセスとおおよそ逆の復号化プロセスを実行することができる。例えば、動き補償部82は、エントロピー復号部80から受信した動きベクトルに基づいて予測データを生成し、イントラ予測部84は、エントロピー復号化部80から受信したイントラ予測モードインジケータに基づいて予測データを生成することができる。
【0065】
ある例では、ビデオデコーダ30内の一つの構成要素が本開示の実施を実行することを担当してもよい。また、ある例では、本開示の実施は、ビデオデコーダ30内の1つまたは複数の構成要素に分割されてもよい。例えば、イントラBC部85は、本開示の実施を単独で実現してもよく、または動き補償部82、イントラ予測部84およびエントロピー復号化部80などのビデオデコーダ30における他の構成要素と組み合わせて実現してもよい。ある例では、ビデオデコーダ30は、イントラBC部85を含まなく、イントラBC部85の機能が動き補償部82などの予測処理部81における他の構成要素によって実現されてもよい。
【0066】
ビデオデータメモリ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における他の構成要素とともにオンチップであってもよく、それらの構成要素に対するオフチップであってもよい。
【0067】
復号化プロセスにおいて、ビデオデコーダ30は、符号化されたビデオフレームのビデオブロックおよび関連構文要素を示す符号化されたビデオビットストリームを受信する。ビデオデコーダ30は、ビデオフレームレベルおよび/またはビデオブロックレベルで構文要素を受信することができる。ビデオデコーダ30のエントロピー復号化部80は、このビットストリームをエントロピー復号化して、定量化された係数、動きベクトルまたはイントラ予測モードインジケータ、および他の構文要素を生成する。そして、エントロピー復号化部80は、該動きベクトルおよび他の構文要素を予測処理部81に転送する。
【0068】
ビデオフレームがイントラ予測符号化(I)フレームに符号化された場合、または他のタイプのフレームのイントラ符号化予測ブロックに用いられる場合には、予測処理部81におけるイントラ予測部84は、通知されたイントラ予測モードと、現在のフレームからの以前復号化されたブロックからの参照データとに基づいて、現在のビデオフレームのビデオブロックの予測データを生成することができる。
【0069】
ビデオフレームがインター予測符号化(すなわち、BまたはP)フレームに符号化された場合、予測処理部81における動き補償部82は、エントロピー復号化部80から受信した動きベクトルおよび他の構文要素に基づいて、現在のビデオフレームのビデオブロックの1つまたは複数の予測ブロックを生成することができる。各予測ブロックは、参照フレームリストのうちの1つにおける参照フレームから生成される。ビデオデコーダ30は、DPB92に格納されている参照フレームに基いて、デフォルトの構成技術によりこの参照フレームリスト、例えばList0およびList1を構成することができる。
【0070】
ある例では、ビデオブロックがここに述べたイントラBCモードに従って符号化された場合には、予測処理部81におけるイントラBC部85は、エントロピー復号化部80から受信したブロックベクトルおよび他の構文要素に基づいて、現在のビデオブロックの予測ブロックを生成する。この予測ブロックは、ビデオエンコーダ20によって定義された現在のビデオブロックと同一の画像の再構成領域内にあり得る。
【0071】
動き補償部82および/またはイントラBC部85は、動きベクトルおよび他の構文要素を解析することによって現在のビデオフレームのビデオブロックの予測情報を決定し、そして、この予測情報を使用して復号化されている現在のビデオブロックの予測ブロックを生成する。例えば、動き補償部82は、受信した構文要素の一部を使用して、このビデオフレームのビデオブロックを符号化するための予測モード(例えば、イントラ予測またはインター予測)、インター予測フレームタイプ(例えば、BまたはP)、このフレームに関する1つまたは複数の参照フレームリストのための構造情報、このフレームの各インター予測符号化ビデオブロックに関する動きベクトル、このフレームの各インター予測符号化ビデオブロックに関するインター予測状態、および現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定する。
【0072】
同様に、イントラBC部85は、受信した構文要素の一部、例えば1つのフラグを使用して、現在のビデオブロックがイントラBCモードで予測されること、このフレームのどんなビデオブロックが再構成領域内にあり且つDPB92に格納されるべきかに関する構造情報、このフレームにおける各イントラBC予測ビデオブロックに関するブロックベクトル、このフレームにおける各イントラBC予測ビデオブロックに関するイントラBC予測状態、及び現在のビデオフレームにおけるビデオブロックを復号化するための他の情報を決定することができる。
【0073】
また、動き補償部82は、ビデオエンコーダ20によってビデオブロックの符号化において使用された補間フィルタを使用して補間を実行して、参照ブロックのサブ整数画素に対する補間値を算出することもできる。この場合、動き補償部82は、受信した構文要素からビデオエンコーダ20によって使用された補間フィルタを決定し、この補間フィルタを使用して予測ブロックを生成してもよい。
【0074】
逆定量化部86は、ビデオエンコーダ20によってこのビデオフレーム内の各ビデオブロックに対して定量化の度合いを決定するために算出された定量化パラメータと同じものを使用して、ビットストリームに提供され且つエントロピー復号化部80によってエントロピー復号化された定量化の変換係数を逆定量化する。逆変換処理部88は、画素領域における残差ブロックを再構成するために、逆変換、例えば逆DCT、逆整数変換、または概念的に類似の逆変換処理を変換係数に適用する。
【0075】
動き補償部82またはイントラBC部85がこのベクトルおよび他の構文要素に基づいて現在のビデオブロックの予測ブロックを生成した後、加算器90は、逆変換処理部88からの残差ブロックと動き補償部82及びイントラBC部85によって生成された対応する予測ブロックとを加算することで、現在のビデオブロックに対して復号化されたビデオブロックを再構成する。インループフィルタ(図示せず)は、加算器90とDPB92との間に配置されて、この復号化されたビデオブロックをさらに処理することが可能である。そして、所定のフレーム内の復号化されたビデオブロックは、その後の次のビデオブロックの動き補償のための参照フレームを格納するDPB92に格納される。また、DPB92、またはDPB92とは別のメモリデバイスには、復号化されたビデオも、その後に
図1の表示装置34などのような表示装置に表示されるために、格納されることが可能である。
【0076】
典型的なビデオ符号化プロセスでは、ビデオシーケンスが、通常、順序付けられたフレームまたは画像のセットを含む。各フレームには、SL、SCbおよびSCrの3つのサンプル行列が含まれている。SLは、輝度サンプルの2次元行列である。SCbは、Cb彩度サンプルの2次元行列である。SCrは、Cr彩度サンプルの2次元行列である。他の例では、フレームがモノクロであってもよく、この場合、1つの輝度サンプルの2次元行列のみが含まれる。
【0077】
図4は、本開示のある実施形態に係る、制御点によるアフィン動きモデルを示す概略図である。HEVCでは、動き補償予測(MCP)に並進動きモデルのみが適用される。ただし、実際の状況では、例えばズームイン/ズームアウト、回転、遠近動き、その他の不規則な動きのような多種の動きがある。VTM3では、ブロックベースのアフィン変換動き補償予測が適用される。
図4に示すように、ブロックのアフィン動き場は、2つの制御点動きベクトル(4パラメータ)または3つの制御点動きベクトル(6パラメータ)の運動情報によって記述される。
【0078】
4パラメータアフィン動きモデル410の場合には、ブロック内のサンプル位置(x,y)での動きベクトルが、次のように導出される。
【数1】
【0079】
6パラメータアフィン動きモデル420の場合でには、ブロック内のサンプル位置(x,y)での動きベクトルが、次のように導出される。
【数2】
【0080】
ここでは、(mv0x, mv0y)が左上隅の制御点の動きベクトルであり、(mv1x, mv1y)が右上隅の制御点の動きベクトルであり、(mv2x, mv2y)が左下隅の制御点の動きベクトルである。
【0081】
図5は、本開示のある実施形態に係る、ブロック502のサブブロック504ごとのアフィン動きベクトル場(MVF)を示す概略図である。動き補償予測を簡素化するために、ブロックベースのアフィン並進予測が適用される。各4×4輝度サブブロックの動きベクトルを導出するために、
図5に示すように、各サブブロックの中心サンプルの動きベクトルが上記の式に従って計算され、1/16の分数精度に丸められる。次に、動き補償補間フィルターを適用して、導出された動きベクトルにより各サブブロックの予測を生成する。 彩度成分のサブブロックサイズも4×4に設定されている。4×4彩度サブブロックの動きベクトル(MV)は、4つの対応する4×4輝度サブブロックのMVの平均として算出される。
【0082】
ある実施形態では、アフィンモーションが次のプロセスにより導出されることができる。
【0083】
【0084】
【0085】
【0086】
各輝度サブブロックの輝度動きベクトルmvLX[xSbIdx][ySbIdx]は、制御点ベースのアフィン動きモデルを使用して、次のように導出される。xSbIdx及びySbIdxは、それぞれサブブロックの水平方向及び垂直方向のインデックスである。xPosCb及びyPosCbは、関連するサブブロックの中心サンプルの水平座標及び垂直座標である。
xPosCb = 2 + ( xSbIdx << 2 ) (9)
yPosCb = 2 + ( ySbIdx << 2 ) (10)
mvLX[xSbIdx][ySbIdx][0] = ( mvScaleHor + dHorX * xPosCb + dHorY * yPosCb ) (11)
mvLX[xSbIdx][ySbIdx][1] = ( mvScaleVer + dVerX * xPosCb + dVerY * yPosCb ) (12)
【0087】
アフィンMVが導出された後、それらは7ビットだけで右シフトされて元の精度で表される。
【0088】
並進動きインター予測のために行われたもののように、アフィンマージモードとアフィンAMVPモードの2つのアフィン動きインター予測モードもある。
【0089】
アフィンマージモードは、幅及び高さの両方とも8以上のCUに適用できる。このモードでは、現在のCUのCPMVは、空間的に隣り合うCUの動き情報に基づいて生成される。最大5つのCPMV候補が存在する可能であり、現在のCUに使用される候補を示すインデックスが信号で通知される。次の3種類のCPMV候補は、アフィンマージ候補リストを形成することに使用されるものである。
1)隣接CUのCPMVから外挿した引き継ぐアフィンマージ候補;
2)隣接CUの並進MVを使用して導出された構成のアフィンマージ候補CPMVP;
3)ゼロMV。
【0090】
図6は、本開示のある実施形態に係る、引き継ぐアフィン動き予測子の位置を示す概略図である。VTM3には、隣接ブロックのアフィン動きモデルから導出した最も多い2つまでの引き継ぐアフィン候補があり、1つは左側の隣接CUから、もう1つは上方の隣接CUからである。現在のCU610の候補ブロックが
図6に示されている
。左側の予測子の場合、走査順序はA0→A1であり、上方の予測子の場合、走査順序はB0→B1→B2である。各側から最初の引き継ぐ候補のみが選択される。2つの引き継ぐ候補間では、剪定検査が実行されない。
【0091】
図7は、本開示のある実施形態に係る、制御点動きベクトル引継ぎを示す概略図である。隣接アフィンCU720が識別されたと、その制御点動きベクトルを使用して、現在のCU710のアフィンマージリスト内のCPMVP候補を導出する。
図7に示すように、隣り合う左下のブロックAがアフィンモードで符号化復号化される場合、ブロックAを含むCU720の左上隅、右上隅および左下隅の動きベクトルv
2、v
3およびv
4が得られる。ブロックAが4パラメータアフィンモデルで符号化復号化される場合、現在のCU710の2つのCPMVは、v
2およびv
3に従って算出される。ブロックAが6パラメータアフィンモデルで符号化復号化される場合、現在のCU710の3つのCPMVは、v
2、v
3およびv
4に従って算出される。
【0092】
図8は、本開示のある実施形態に係る、構成されたアフィンマージモードの候補の位置を示す概略図である。構成されたアフィン候補とは、各制御点の隣接並進動き情報を組み合わせて構成されたものを意味する。制御点の動き情報は、
図8に示す指定された空間的隣および時間的隣から導出される。CPMV
k(k=1、2、3、4)は、現在のブロック810のk番目の制御点を表す。CPMV
1の場合、ブロックB2→B3→A2が検査され、最初の使用可能なブロックのMVは使用される。CPMV
2の場合、ブロックB1→B0が検査され、CPMV
2の場合、ブロックA1→A0が検査される。TMVPについて、できればCPMV
4として使用される。
【0093】
4つの制御点のMVが得られた後、動き情報に基づいてアフィンマージ候補が構成される。順番的構成には、制御点MVの次の組み合わせが使用される。
{CPMV1, CPMV2, CPMV3},
{CPMV1, CPMV2, CPMV4},
{CPMV1, CPMV3, CPMV4},
{CPMV2, CPMV3, CPMV4},
{ CPMV1, CPMV2}, 及び
{ CPMV1, CPMV3}。
【0094】
3つのCPMVの組み合わせは、6パラメーターアフィンマージ候補を構成し、2つのCPMVの組み合わせは、4パラメーターアフィンマージ候補を構成する。動きスケーリング処理を回避するために、制御点の参照インデックスが異なる場合、制御点MVの関する組み合わせは捨てられる。
【0095】
アフィンAMVPモードは、幅及び高さの両方が16以上のCUに適用できる。CUレベルのアフィンフラグがビットストリームに信号で通知されてアフィンAMVPモードが使用されているかが示され、そして別のフラグが信号で通知されて4パラメーターアフィンであるか6パラメーターアフィンであるかが示される。このモードでは、現在のCUのCPMVとそれらの予測子CPMVPとの差がビットストリームに信号で通知される。アフィンAVMP候補リストのサイズは2で、次の4種類のCPVM候補を順番に使用して生成される。
1)隣接CUのCPMVVから外挿した引き継ぐアフィンAMVP候補;
2)隣接CUの並進MVを使用して導出された構成のアフィンAMVP候補CPMVP;
3)隣接CUからの並進MV;及び
4)ゼロMV。
【0096】
引き継ぐアフィンAMVP候補の検査順序は、引き継ぐアフィンマージ候補の検査順序と同じである。AMVP候補の場合、現在のブロックと同じ参照画像を持つアフィンCUのみが考慮される点のみは違う。引き継ぐアフィン動き予測子を候補リストに挿入する場合、剪定処理は適用されない。
【0097】
構成したAMVP候補は、
図8に示す指定された空間的隣からのみ導出されるものである。アフィンマージ候補の構成で行われるのと同じ検査順序が使用される。また、隣接ブロックの参照画像インデックスも検査される。インター符号化されかつ現在のCUと同じ参照画像を持つ検査順序における最初のブロックが使用される。
【0098】
【0099】
【0100】
引き継ぐアフィンAMVP及び構成のアフィンAVMPが導出されてアフィンAMVPリストに挿入された後、アフィンAMVPリストのサイズがまだ2未満の場合、アフィンAMVPリストは、並進MV(mv0, mv1又はmv2)で満たされ、これは、すべての制御点MVがmv0, mv1又はmv2のいずれかによって予測されることを意味する。したがって、アフィンAMVPリスト候補の数が2未満の場合、mv0, mv1及びmv2が順番に追加される。並進MVは、利用可能な場合、現在のCUのすべての制御点MVを予測するために使用される。
【0101】
VTM3では、アフィンCUのCPMVが個別のバッファーに格納されている。保存されているCPMVは、最近符号化されたCUについてアフィンマージモードおよびアフィンAMVPモードで引き継ぐCPMVPを生成するためにのみ使用される。CPMVから引き継ぐサブブロックMVは、動き補償、並進MVのマージ/AMVPリストのMV導出、および非ブロック化に使用される。
【0102】
図9は、本開示のある実施形態に係る、提案する組み合わせな方法のための動きベクトル使用を示す概略図である。追加のCPMVのための画像線形バッファを回避するために、上方のCTUのからのCUからのアフィン動きデータ引き継ぎは、通常の隣接CUからの引き継ぎとは異なる形で扱われる。アフィン動きデータ引き継ぎのための候補CUが上方のCTU行にある場合、CPMVの代わりにラインバッファ内の左下および右下のサブブロックMVがアフィンMVPの導出に使用される。このように、CPMVはローカルバッファにのみ保存される。候補CUが6パラメーターアフィン符号化された場合、アフィンモデルは4パラメーターモデルに下げる。
図9に示すように、上方のCTU境界に沿って、CUの左下および右下のサブブロック動きベクトルが、下方のCTUにおけるCUのアフィン引き継ぎに使用される。
【0103】
彩度成分に4×4サブブロックを使用したアフィン予測の例が以下に説明される。ここでは、yuv4:2:0フォーマットを使用し、つまり、各4×4彩度サブブロックが4つの4×4輝度サブブロックに対応する。一例では、彩度成分の最小サブブロックサイズは常に4×4に設定されている。4×4彩度サブブロックのMVは、4つの対応する4×4輝度サブブロックのMVの平均として算出される。以下に示すように、各彩度4×4ブロックのMVは、4つの対応する輝度ブロックからの4つのMVの平均MVを使用して導出される。4つの輝度MVは、高精度ではなく、元の精度になっている(たとえば、7だけ左にシフトされる)。丸められた輝度MVを平均化する復号化処理は以下のようにに示される。
【0104】
式(9)から(12)に基づいて輝度動きベクトルmvLX[ xSbIdx ][ ySbIdx ]が導出されたと、動きベクトルに対する丸め処理は、呼び出され、ここで、入力として、mvXがmvLX[ xSbIdx ][ ySbIdx ]に設定され、rightShiftが7に設定され、leftShiftが0に設定され、丸められたmvLX[ xSbIdx ][ ySbIdx ]が出力とされる。
【0105】
動きベクトルmvXの丸め処理の例は、以下の式(15)から(17)で提供される。ここで、この処理への入力は、動きベクトルmvXと、丸めのための右シフトパラメータrightShiftと、解像度を上げるための左シフトパラメータleftShiftとである。この処理の出力は、丸められた動きベクトルmvXである。mvXの丸めには、以下が適用される。
【0106】
平均輝度動きベクトルmvAvgLXは、式(18)で次のように導出される。ある例では、これらの輝度サブブロックのうちのある輝度サブブロックのアフィン動きベクトルは、制御点ベースのアフィン動きモデルを使用して導出されてもよい。他のある例では、輝度サブブロックのそれぞれのアフィン動きベクトルは、制御点ベースのアフィン動きモデルを使用して導出されてもよい。
mvAvgLX = ( mvLX[ ( xSbIdx >> 1 << 1) ][ (ySbIdx>>1<<1) ] +
mvLX[ ( xSbIdx >> 1 << 1) + 1 ][ ( ySbIdx >> 1 << 1) ] + (18)
mvLX[ ( xSbIdx >> 1 << 1 ) ][ ( ySbIdx >> 1 << 1) + 1 ] +
mvLX[ ( xSbIdx >> 1 << 1 ) + 1 ][ (ySbIdx>>1<<1) + 1 ] + 2 ) >>2
【0107】
彩度動きベクトルのための導出処理は、mvAvgLXを入力とし、彩度動きベクトルmvCLX[xSbIdx][ySbIdx]を出力として呼び出される。
【0108】
輝度動きベクトルmvLXに基づく彩度動きベクトルの導出処理の例は、以下の式(19)および(20)で提供される。ここで、この処理への入力は、1/16分数のサンプル精度mvLXでの輝度動きベクトル、および参照インデックスrefIdxLXである。この処理の出力は、1/32分数のサンプル精度mvCLXでの彩度動きベクトルである。彩度動きベクトルは、対応する輝度動きベクトルから導出される。彩度動きベクトルmvCLXは、次のように導出される。
mvCLX[0] = mvLX[0] * 2 / SubWidthC (19)
mvCLX[1] = mvLX[1] * 2 / SubHeightC (20)
【0109】
変数SubWidthCおよびSubHeightCは、chroma_format_idcおよびseparate_colour_plane_flagを介して指定される彩度フォーマットのサンプリング構造に応じて指定されることができる。以下の表には、1つの例が示される。
【表1】
【0110】
chroma_format_idc、SubWidthC、およびSubHeightCの他の値は、将来指定されることが可能である。
【0111】
4つの対応する4×4輝度サブブロックの平均化によっては、その彩度4×4ブロックのアフィン動きモデルにより導出された異なるMVが得られることが可能である。ユーザーが4×4彩度ブロックに対してアフィンMVを導出したい場合、アフィン動きモデルを使用して対応する輝度ブロックのMVを生成し、そして動き補償を実行するためのMV精度(例えば1/16画素)に丸める必要がある。次に、丸められたMVが平均化されて、4×4彩度ブロックのMVが取得される。
【0112】
つまり、各輝度サブブロックに対してアフィン動きを導出する際に、導出処理は、より高い精度で実行される(即ち、式(3)および(4)に示すように、制御点のMVは最初に7だけ左シフトされ、これは、このMVに128を掛けることを意味する)。次に、高精度の制御点MVを使用して、各輝度サブブロックのアフィンMVを導出する。各輝度サブブロックに対するMVは、導出された後、例えば式(15)から(17)の丸め処理により元の精度に7だけ右シフトされる。
【0113】
本開示では、「高精度」および「より高い精度」は、動きベクトルが左シフトされた形式で表され、したがって元の形式よりも高い精度を有することを意味するように交換可能に使用される。
【0114】
提案のある例では、アフィン動きの導出中に、彩度MVが4つの対応する輝度MVを高精度で平均化することによってが生成される。
【0115】
例えば、必要な輝度動きベクトルmvLX[ xSbIdx ][ ySbIdx ]が式(9)から(12)に基づいて導出されたと、個別の輝度動きベクトルに対して丸め処理を呼び出さずに、式(18)によりこれらの輝度動きベクトルのそれぞれを直接に使用して、平均輝度動きベクトルmvAvgLXを導出する。したがって、高精度の平均輝度動きベクトルmvAvgLXを得ることができる。
【0116】
ある例では、平均化式(18)の結果により、そして動きベクトルのための式(15)から(17)の丸め処理が呼び出され、ここで、入力として、mvXがmvAvgLXに設定され、rightShiftが7に設定され、leftShiftが0に設定され、丸められたmvAvgLXが出力とされる。次に、彩度動きベクトルのための式(19)および(20)の導出処理が、丸められたmvAvgLXを入力として、彩度動きベクトルmvCLX[xSbIdx][ySbIdx]を出力として呼び出される。
【0117】
他のある例では、彩度動きベクトルのための式(19)および(20)の導出処理は、式(15)から(17)の丸め処理の前に呼び出されることが可能である。つまり、彩度動きベクトルを導出する処理において、元の精度の輝度MVの代わりに、高精度の輝度MVが使用される。例えば、高精度平均輝度動きベクトルmvAvgLXが得られると、式(19)および(20)の導出処理が、高精度平均輝度動きベクトルmvAvgLX(丸め処理が実行されない)を入力とし、高精度の彩度動きベクトルmvCLX[xSbIdx][ySbIdx]を出力として呼び出されることが可能である。次に、高精度の彩度動きベクトルは、例えば丸め処理により、7ビット右シフトされて、元の精度で表されることが可能である。
【0118】
異なるyuvサブサンプリングフォーマット(例えば、yuv4:4:4、4:2:0または4:2:2)によると、サンプリング位置は輝度サンプルと彩度サンプルとの間に異なり、4×4彩度ブロックは異なる輝度ブロックに対応する場合がある。したがって、平均化処理では、各種のyuvサブサンプリングフォーマットで各種の輝度ブロックからのMVを使用することが可能である。例えば、yuv4:2:0フォーマットが使用されている場合、次の処理が適用される。
mvAvgLX = ( mvLX[ ( xSbIdx >> 1 << 1) ][ (ySbIdx>>1<<1) ] +
mvLX[ ( xSbIdx >> 1 << 1) + 1 ][ ( ySbIdx >> 1 << 1) ] + (18a)
mvLX[ ( xSbIdx >> 1 << 1 ) ][ ( ySbIdx >> 1 << 1) + 1 ] +
mvLX[ ( xSbIdx >> 1 << 1 ) + 1 ][ (ySbIdx>>1<<1) + 1 ] + 2 ) >> 2
一方、yuv4:2:2フォーマットが使用されている場合、次の処理が適用される。
mvAvgLX = ( mvLX[ ( xSbIdx >> 1 << 1) ][ ySbIdx ] + mvLX[ ( xSbIdx >> 1 << 1) + 1 ][ ySbIdx ] + 1 ) >> 1 (18b)
また、yuv4:4:4フォーマットが使用されている場合、次の処理が適用される。
mvAvgLX = mvLX[ xSbIdx ][ ySbIdx ] (18c)
【0119】
つまり、平均化演算の式(18)は、ビデオデータのyuvサブサンプリングフォーマットにによって、式(18a)から(18c)に示されるように、異なる形式を有することができる。すなわち、各彩度サブブロックは、1つまたは複数の輝度サブブロックに対応し得る。
【0120】
そこで、対応する輝度サブブロックの動きベクトルを使用して、これらの彩度サブブロックにおけるある彩度サブブロックのアフィン動きベクトルを導出する。ビデオデータはカラーサブサンプリングフォーマットであり、対応する輝度サブブロックはカラーサブサンプリングフォーマットに従って導出されることがある。
【0121】
提案のある例では、彩度MVは、直接にアフィン動きモデルにより算出され得る。アフィン動きモデルは、4×4彩度ブロックの中心サンプルの動きベクトルを直接導出するために使用される。例えば、必要な輝度動きベクトルmvLX[ xSbIdx ][ ySbIdx ]が式(9)から(12)に基づいて導出されたと、彩度動きベクトルmvCLX[ xSbIdx ][ ySbIdx ]は以下のように導出される。
If (SubWidthC is equal to 2)
xPosCb = 4 + ( (xSbIdx>>1<<1) << 3 )
else
xPosCb = 2 + ( xSbIdx << 2 )
If (SubHeightC is equal to 2)
yPosCb = 4 + ( (ySbIdx>>1<<1) << 3 )
else
yPosCb = 2 + ( ySbIdx) << 2 )
mvCLX[xSbIdx][ ySbIdx ][0] = ( mvScaleHor + dHorX * xPosCb + dHorY * yPosCb )
mvCLX[xSbIdx][ ySbIdx ][1] = ( mvScaleVer + dVerX * xPosCb + dVerY * yPosCb )
【0122】
この場合、彩度動きベクトルは、アフィン動きモデルにより直接導出される。彩度動きベクトルの導出のための対応する輝度動きベクトルに対して、式(18)または式(18a)から(18c)の平均化演算を呼び出さない。式(19)および(20)の導出処理も必要ない場合がある。
【0123】
他のある例では、制御変数deliverChromaFlagは、アフィン制御点動きベクトルからの動きベクトル配列の導出処理のために設定され得る。輝度動きベクトル及び彩度動きベクトルの導出処理は、同じ処理ブロックに組み込むことができる。例えば、動きベクトルは次のように導出できる。
if (SubWidthC is equal to 2 and deriveChromaFlag is equal to 1)
xPosCb = 4 + ( (xSbIdx>>1<<1) << 3 )
else
xPosCb = 2 + ( xSbIdx << 2 )
if (SubHeightC is equal to 2 and deriveChromaFlag is equal to 1)
yPosCb = 4 + ( (ySbIdx>>1<<1) << 3 )
else
yPosCb = 2 + ( ySbIdx << 2 )
mvX[ xSbIdx ][ ySbIdx ][ 0 ] = ( mvScaleHor + dHorX * xPosCb + dHorY * yPosCb )
mvX[ xSbIdx ][ ySbIdx ][ 1 ] = ( mvScaleVer + dVerX * xPosCb + dVerY * yPosCb )
【0124】
この場合、彩度動きベクトルも、変数deriveChromaFlagに対して設定された値に従って、アフィン動きモデルにより直接導出される。結果のmvX [xSbIdx] [ySbIdx]は、SubWidthC、SubHeightCおよびderiveChromaFlagの値によって、輝度動きベクトルまたは彩度動きベクトルになる。対応する輝度動きベクトルに対する式(18)または式(18a)から(18c)の平均化演算も、式(19)および(20)の導出処理も呼び出す必要がない。
【0125】
図12は、本開示のある実施形態に係る、ビデオ符号化復号化のための装置を示すブロック図である。装置1200は、携帯電話、タブレットコンピュータ、デジタル放送端末、タブレット装置、または携帯情報端末などの端末であってもよい。
【0126】
装置1200は、
図12に示されるように、処理部1202、メモリ1204、電源部1206、マルチメディア部1208、オーディオ部1210、入力/出力(I/O)インターフェース1212、センサ部1214、および通信部1216のうちの1つ以上を含んでもよい。
【0127】
処理部1202は、通常に、表示、電話発呼、データ通信、カメラ操作、および記録操作に関連する操作など、装置1200の全体的な操作を制御する。処理部1202は、上記の方法のステップの全部または一部を実現するための命令を実行するための1つまたは複数のプロセッサ1220を含むことが可能である。さらに、処理部1202は、処理部1202と他の部材との間のインタラクションに寄与する1つまたは複数のモジュールを含むことが可能である。例えば、処理部1202は、マルチメディア部1208と処理部1202との間のインタラクションに寄与するためのマルチメディアモジュールを含んでもよい。
【0128】
メモリ1204は、装置1200の動作をサポートするために異なるタイプのデータを格納するように構成される。そのようなデータの例には、装置1200上で動作する任意のアプリケーションまたは方法のための命令、連絡先データ、電話帳データ、メッセージ、画像、ビデオなどが含まれる。メモリ1204は、任意のタイプの揮発性または非揮発性の記憶装置またはそれらの組み合わせによって実現され、メモリ1204は、静的ランダムアクセスメモリ(SRAM:Static Random Access Memory)、電気的に消去可能なプログラマブルリードオンリーメモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、消去型プログラマブルリードオンリメモリ(EPROM:Erasable Programmable Read-Only Memory)、プログラマブルリードオンリメモリ(PROM:Programmable Read-Only Memory)、リードオンリメモリ(ROM:Read-Only Memory)、磁気メモリ、フラッシュメモリ、磁気ディスク、またはコンパクトディスクであってもよい。
【0129】
電源部1206は、装置1200の各部材に電力を供給する。電源部1206は、電源管理システム、1つまたは複数の電源、および装置1200に電力を生成、管理、および分配に関連する他の部材を含んでもよい。
【0130】
マルチメディア部1208は、装置1200とユーザとの間の出力インターフェースを提供するスクリーンを含む。ある例では、スクリーンには、液晶ディスプレイ(LCD)およびタッチパネル(TP)を含んでもよい。スクリーンがタッチパネルを含む場合、スクリーンは、ユーザからの入力信号を受信するタッチスクリーンとして実現してもよい。このタッチパネルは、このタッチパネル上のタッチ、スライド、およびジェスチャを感知するための1つまたは複数のタッチセンサーを含んでもよい。タッチセンサーは、タッチまたはスライド動作の境界を感知するだけでなく、タッチまたはスライド操作に関連する持続時間および圧力も検出することができる。ある例では、マルチメディア部1208は、フロントカメラおよび/またはリアカメラを含んでもよい。装置1200が撮像モードまたはビデオモードなどの動作モードにあるとき、フロントカメラおよび/またはリアカメラは、外部マルチメディアデータを受信することができる。
【0131】
オーディオ部1210は、オーディオ信号を出力および/または入力するように構成される。例えば、オーディオ部1210は、マイクロフォン(MIC)を含む。マイクロフォンは、装置1200が通話モード、録音モード、および音声認識モードなどの動作モードにあるとき、外部オーディオ信号を受信するように構成される。受信されたオーディオ信号は、メモリ1204にさらに格納されてよく、または通信部1216を介して送信されてもよい。ある例では、オーディオ部1210は、オーディオ信号を出力するためのスピーカーをさらに含む。
【0132】
I/Oインターフェース1212は、処理部1202と周辺インターフェースモジュールとの間のインターフェースを提供する。上述の周辺インターフェースモジュールは、キーボード、クリックホイール、ボタンなどであってもよい。これらのボタンには、ホームボタン、音量ボタン、スタートボタン、およびロックボタンが含まれるが、これらに限定されない。
【0133】
センサ部1214は、装置1200の異なる態様で状態評価を提供するための1つまたは複数のセンサを含む。例えば、センサ部1214は、装置1200のオン/オフ状態および構成要素の相対位置を検出することができる。例えば、構成要素は、装置1200のディスプレイおよびキーパッドである。センサ部1214はまた、装置1200または装置1200の構成要素の位置変化、装置1200上でのユーザの接触の有無、装置1200の向きまたは加速/減速、および装置1200の温度変化を検出することができる。センサ部1214は、物理的な接触なしに近くの物体の存在を検出するように構成される近接センサを含んでもよい。センサ部1214は、画像化アプリケーションで使用されるCMOSまたはCCD画像センサなどの光学センサをさらに含んでもよい。ある例では、センサー部1214は、加速度センサー、ジャイロセンサー、磁気センサー、圧力センサー、または温度センサーをさらに含んでもよい。
【0134】
通信部1216は、装置1200と他の装置との間の有線または無線通信に役立つように構成される。装置1200は、WiFi、4G、またはそれらの組み合わせなどの通信標準に基づいて無線ネットワークにアクセスすることができる。一例では、通信部1216は、報知チャネルを介して外部報知管理システムから報知信号または報知関連情報を受信する。一例では、通信部1216は、短距離通信を促進するための近距離無線通信(NFC)モジュールをさらに含んでもよい。例えば、NFCモジュールは、無線周波数識別(RFID)技術、赤外線データ関連付け(IrDA)技術、超広帯域(UWB)技術、ブルートゥース(BT)技術および他の技術に基づいて実現してもよい。
【0135】
一例では、装置1200は、上記の方法を実行するための特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、デジタル信号処理装置(DSPD)、プログラマブル論理装置(PLD)、フィールドプログラマブルゲートアレイ(FPGA)、コントローラー、マイクロコントローラー、マイクロプロセッサー、またはその他の電子要素の1つまたは複数によって実現してもよい。
【0136】
非一時的なコンピュータ読取可能な記憶媒体は、例えば、ハードディスクドライブ(HDD)、固体ドライブ(SSD)、フラッシュメモリ、ハイブリッドドライブや固体ハイブリッドドライブ(SSHD)、読み出し専用メモリ(ROM)、コンパクトディスク読み出し専用メモリ(CD―ROM)、磁気テープ、フロッピーディスクなどである。
【0137】
図13は、本開示のある実施形態に係る、彩度成分のアフィン動きベクトルを導出するためのビデオ符号化復号化の例示的なプロセスを示すフローチャートである。
【0138】
ステップ1302において、プロセッサ1220は、ビデオデータを複数の輝度サブブロックおよび複数の彩度サブブロックに配置し、各彩度サブブロックは、1つまたは複数の輝度サブブロックに対応する。
【0139】
ステップ1304において、プロセッサ1220は、対応する輝度サブブロックの動きベクトルを使用して、彩度サブブロックのうちのある彩度サブブロックのアフィン動きベクトルを導出する。ここで、ビデオデータはカラーサブサンプリングフォーマットであり、対応する輝度サブブロックはカラーサブサンプリングフォーマットに従って導出される。
【0140】
ある例では、ビデオ符号化復号化のための装置が提供される。この装置は、プロセッサ1220と、このプロセッサによって実行可能な命令を格納するように構成されたメモリ1204と、を含む。ここで、このプロセッサは、命令の実行時に、
図13に示すような方法を実行するように構成される。
【0141】
他のある例では、命令が格納された、非一時的なコンピュータ読取可能な記憶媒体1204が提供される。これらの命令は、プロセッサ1220によって実行されると、このプロセッサに、
図13に示すような方法を実行させる。
【0142】
本開示の説明は、例示および説明の便利のためで提示されており、網羅的なまたは開示された形態の発明に限定することを意図するものではない。各種の変更、変形、および置換した実現は、前述の説明および関連する図面に提示された教示を得った当業者にとっては明らかである。
【0143】
実施形態は、本発明の原理、実際の適用を最もよく説明し、当業者が各種の実施のために本発明を理解し、特定の用途に適するために各種の変更で基礎となる原理および各種の実施を最もよく利用できるようにするために選択されおよび説明されたものである。したがって、本開示の範囲は、開示された実現の特定の例に限定されなく、変更および他の実現も、本開示の範囲に含まれることを理解されるべきである。