(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-05-20
(54)【発明の名称】自己適応動きベクトル解像度シグナリング
(51)【国際特許分類】
H04N 19/46 20140101AFI20220513BHJP
H04N 19/523 20140101ALI20220513BHJP
H04N 19/513 20140101ALI20220513BHJP
【FI】
H04N19/46
H04N19/523
H04N19/513
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021558673
(86)(22)【出願日】2020-08-26
(85)【翻訳文提出日】2021-09-29
(86)【国際出願番号】 US2020047966
(87)【国際公開番号】W WO2021041521
(87)【国際公開日】2021-03-04
(32)【優先日】2019-08-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-08-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】グイチュン・リ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA05
5C159ME11
5C159NN14
5C159NN15
5C159NN31
5C159RC12
5C159RC16
5C159RC38
5C159TA66
5C159UA02
5C159UA05
(57)【要約】
本開示は、動画コーディングのための方法、コンピュータプログラム、およびコンピュータシステムを提供する。プロセッサで実行可能な動画コーディング方法は、少なくとも2つのフレームを含む動画データを受信するステップと、少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、精度値と自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするステップと、自己適応動きベクトル解像度使用値に基づいて動画データをコーディングし、精度値に基づいて動きベクトル差をコーディングするステップと、を含む。
【特許請求の範囲】
【請求項1】
プロセッサが実行可能な動画コーディング方法であって、
少なくとも2つのフレームを含む動画データを受信するステップと、
前記少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、
自己適応動きベクトル解像度使用フラグをチェックするステップであって、前記自己適応動きベクトル解像度使用フラグは、精度値と、自己適応動きベクトル解像度使用値とに対応し、前記自己適応動きベクトル解像度使用値は、自己適応動きベクトル解像度の使用可能・使用禁止に対応するステップと、
前記自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、
を含むことを特徴とする動画コーディング方法。
【請求項2】
前記自己適応動きベクトル解像度使用フラグは、単一のコンテキストによってコーディングされた第1のBinを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記自己適応動きベクトル解像度使用フラグは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモードのうちの少なくとも一つが使用可能になるか否かを示す、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記シフトフレーム間予測モードについて、
第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいてハーフピクセル精度を使用するか否かを示す、
ことを特徴とする請求項3に記載の方法。
【請求項5】
第3のBinは、ハーフピクセル精度を使用していない場合に1ピクセル精度を使用するか、それとも4ピクセル精度を使用するかを示す、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記アフィンフレーム間予測モードについて、
第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいて1/16ピクセル精度を使用するか、それとも1ピクセル精度を使用するかを示す、
ことを特徴とする請求項3に記載の方法。
【請求項7】
前記ブロック内コピーモードについて、自己適応動きベクトル解像度が使用禁止になることに基づいて1ピクセル精度を使用し、自己適応動きベクトル解像度が使用可能になることに基づいて4ピクセル精度を使用する、
ことを特徴とする請求項3に記載の方法。
【請求項8】
前記第2のBinは、前記シフトフレーム間予測モードと前記アフィンフレーム間予測モードの両方に1ピクセル精度を使用することを示す、
ことを特徴とする請求項3に記載の方法。
【請求項9】
前記自己適応動きベクトル解像度使用フラグは、前記シフトフレーム間予測モードと前記ブロック内コピーモードを示すBinを含み、第1のコンテキストを使用して前記Binをコーディングし、第2のコンテキストを使用して前記アフィンフレーム間予測モードを示す、
ことを特徴とする請求項1に記載の方法。
【請求項10】
動画コーディングのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように配置された、一つまたは複数のコンピュータ読み取り可能な非一時的な記憶媒体と、
コンピュータプログラムコードにアクセスし、コンピュータプログラムコードが示すように動作するように構成された一つまたは複数のコンピュータプロセッサと、を含み、
前記コンピュータプログラムコードは、
前記一つまたは複数のコンピュータプロセッサが、少なくとも2つのフレームを含む動画データを受信するように構成された受信コードと、
前記一つまたは複数のコンピュータプロセッサが、前記少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するように構成された算出コードと、
前記一つまたは複数のコンピュータプロセッサが、前記精度値と前記自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするチェックコードと、
前記自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするコーディングコードと、を含む
ことを特徴とするコンピュータシステム。
【請求項11】
前記自己適応動きベクトル解像度使用フラグは、単一のコンテキストによってコーディングされる第1のBinを含む、
ことを特徴とする請求項10に記載のコンピュータシステム。
【請求項12】
前記自己適応動きベクトル解像度使用フラグは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモードのうちの少なくとも一つが使用可能になるか否かを示す、
ことを特徴とする請求項11に記載のコンピュータシステム。
【請求項13】
前記シフトフレーム間予測モードについて、第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいてハーフピクセル精度を使用するか否かを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項14】
第3のBinは、ハーフピクセル精度を使用しない場合に1ピクセル精度を使用するか、または4ピクセル精度を使用するかを示す、
ことを特徴とする請求項13に記載のコンピュータシステム。
【請求項15】
前記アフィンフレーム間予測モードについて、第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいて1/16ピクセル精度を使用するか、または1ピクセル精度を使用するかを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項16】
前記ブロック内コピーモードについて、自己適応動きベクトル解像度が使用禁止になることに基づいて1ピクセル精度を使用し、自己適応動きベクトル解像度が使用可能になることに基づいて4ピクセル精度を使用する、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項17】
前記第2のBinは、前記シフトフレーム間予測モードと前記アフィンフレーム間予測モードの両方に1ピクセル精度を使用することを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項18】
前記自己適応動きベクトル解像度使用フラグは、前記シフトフレーム間予測モードと前記ブロック内コピーモードを示すBinを含み、前記Binは第1のコンテキストを使用してコーディングされ、前記アフィンフレーム間予測モードは第2のコンテキストを使用して表される、
ことを特徴とする請求項10に記載のコンピュータシステム。
【請求項19】
動画コーディングのためのコンピュータプログラムを記憶する非一時的なコンピュータ読み取り可能な媒体であって、
前記コンピュータプログラムは、一つまたは複数のコンピュータプロセッサがコーディングコーディング、
少なくとも2つのフレームを含む動画データを受信するステップと、
前記少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、
精度値と、自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするステップと、
前記自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、
を行うように構成される
ことを特徴とする非一時的なコンピュータ読み取り可能な媒体。
【請求項20】
前記自己適応動きベクトル解像度使用フラグは、単一のコンテキストによってコーディングされる第1のBinを含み、
前記自己適応動きベクトル解像度使用フラグは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモードのうちの少なくとも一つが使用可能になるか否かを示す、
ことを特徴とする請求項19に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互援用
本出願は、2019年8月26日に提出された米国仮出願第62/891、835号と2020年8月21日に提出された米国出願第16/999、517号に基づいている優先権を主張した。これら2つの出願のすべての内容は本出願に結合される。
【0002】
本開示は、一般的にデータ処理分野に関し、より詳細にはデータのコーディングおよびデコーディングに関する。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)とISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013(バージョン1)、2014(バージョン2)、2015(バージョン3)、2016(バージョン4)でH.265/HEVC(高効率動画コーディング)を開示した。その後、圧縮機能を著しく超える将来の動画コーディング技術の標準化に対する潜在的なニーズを検討してきた。2017年10月に、HEVCを超える機能を持つ動画圧縮に関する共同提案書(Call for Proposal、CfP)を発表した。2018年2月15日に、標準ダイナミックレンジ(standard dynamic range、SDR)に関する合計22のCfP応答、ハイダイナミックレンジ(high dynamic range、HDR)に関する12のCfP応答、および360の動画カテゴリに関する12のCfP応答がそれぞれ提出された。2018年4月に、122 MPEG/10回目のJVET(Joint Video Exploration Team - Joint Video Expert Team、連携動画探索グループ-連携動画専門家グループ)会議で、受信したすべてのCfP応答を評価した。慎重な検討により、JVETはHEVC以外の次世代動画コーディングの標準化、いわゆるユニバーサル動画コーディング(Versatile Video Coding、VVC)を正式に開始した。
【発明の概要】
【課題を解決するための手段】
【0004】
本発明の実施形態は、動画コーディングの方法、システム、およびコンピュータ読み取り可能な媒体に関する。一方の態様によれば、動画コーディングのための方法を提供する。方法は、少なくとも2つのフレームを含む動画データを受信するステップと、少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、精度値と、自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするステップと、自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、を含む。
【0005】
他方の態様によれば、動画コーディングのためのコンピュータシステムを提供する。コンピュータシステムは、一つまたは複数のプロセッサと、一つまたは複数のコンピュータ読み取り可能なメモリと、一つまたは複数のコンピュータ読み取り可能な有形記憶装置と、一つまたは複数の記憶装置のうちの少なくとも一つに記憶されたプログラム命令を含んでもよい。プログラム命令は、一つまたは複数のメモリのうちの少なくとも一つを介して一つまたは複数のプロセッサのうちの少なくとも一つによって実行されることによって、コンピュータシステムは方法を実行することができる。該方法は、少なくとも2つのフレームを含む動画データを受信するステップと、少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、精度値と、自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするステップと、自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、を含む。
【0006】
別の態様によれば、動画コーディングのためのコンピュータ読み取り可能な媒体を提供する。コンピュータ読み取り可能な媒体は、プロセッサによって実行可能な、一つまたは複数のコンピュータ読み取り可能な記憶装置と、一つまたは複数の有形記憶装置のうちの少なくとも一つに記憶されたプログラム命令とを含んでもよい。プログラム命令は、方法を実行するためにプロセッサによって実行されてもよい。該方法は、少なくとも2つのフレームを含む動画データを受信するステップと、少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、精度値と、自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするステップと、自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、を含む。
【図面の簡単な説明】
【0007】
これらおよび他のオブジェクト、特徴、および利点は、添付の図面と関連する例示的な実施形態の以下の詳細な説明によって明らかになる。図示は、具体的な実施形態と関連した当業者の理解を促進するためものであり、その様々な特徴は比例して描かれていない。
【0008】
【
図1】少なくとも一つの実施形態に基づくネットワークコンピュータ環境である。
【
図2】少なくとも一つの実施形態に基づく構文要素である。
【
図3】少なくとも一つの実施形態に基づく動画コーディングのためのプログラムによって実行されるフローチャートである。
【
図4】少なくとも一つの実施形態に基づく
図1に示されたコンピュータおよびサーバの内部部品および外部部品のブロック図である。
【
図5】少なくとも一つの実施形態に基づく
図1に示されたコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも一つの実施形態に基づく
図6の例示的なクラウドコンピューティング環境の機能層を示すブロック図である。
【発明を実施するための形態】
【0009】
本明細書は、保護を請求する構造と方法の詳細な実施形態を開示する。開示された実施形態は、様々な形で実施される保護を請求する構造と方法の説にすぎないことが理解されるべきである。しかしながら、これらの構造および方法は多くの異なる形態で実施することができ、本明細書で説明する例示的な実施形態に限定されるものと解釈すべきではない。むしろ、本開示の詳細かつ完全で、保護範囲を当業者に十分に伝えるように、これらの例示的な実施形態を提供する。本明細書では、提示された実施形態を不必要に曖昧にしないように、公知の特徴および技術の詳細を省略することができる。
【0010】
実施形態は、一般にデータ処理分野に関し、より詳細には、データのコーディングおよびデコーディングに関する。以下の例示的な実施形態は、AMVRの使用精度シグナリングなどに単一の値を使用するためのシステム、方法、およびコンピュータプログラムを提供する。したがって、一部の実施形態は、動画コーディングのシグナリングパラメータの改善された複雑性を許容する(エンコードとデコードの改善が可能)ことによって算出分野を改善する機能を有する。
【0011】
前述のように、ITU-T VCEG(Q6/16)とISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013(バージョン1)、2014(バージョン2)、2015(バージョン3)、2016(バージョン4)でH.265/HEVC(高効率動画コーディング)を公開した。その後、圧縮機能を著しく超える将来の動画コーディング技術の標準化に対する潜在的なニーズを検討してきた。2017年10月に、HEVCを超える機能を持つ動画圧縮に関する共同提案書(Call for Proposal、CfP)を発表した。2018年2月15日に、標準ダイナミックレンジ(SDR)に関する合計22のCfP応答、ハイダイナミックレンジ(high dynamic range、HDR)に関する12のCfP応答、および360の動画カテゴリに関する12のCfP応答がそれぞれ提出された。2018年4月に、122 MPEG/10回目のJVET(連携動画探索グループ-連携動画専門家グループ)会議で、受信したすべてのCfP応答を評価した。慎重な検討により、JVETはHEVC以外の次世代動画コーディングの標準化、いわゆるユニバーサル動画コーディング(VVC)を正式に開始した。
【0012】
HEVCでは、オープニングのuse_integer_mv_flagが0に等しい可能性がある場合、動きベクトル差(motion vector difference、MVD)(例えば、コーディングユニットの動きベクトルと予測される動きベクトルとの間)を1/4輝度サンプル単位で示すことができる。VVCでは、エンコードユニットレベルの自己適応動きベクトル解像度(adaptive motion vector resolution、AMVR)は、エンコードユニットのMVDを異なる精度でエンコードすることができる。ただし、AMVRでは、精度とAMVRが使用可能か使用禁止かを判断するために複数のフラグが必要になる場合がある。これはシグナリングの複雑さを増大させる可能性がある。したがって、フラグの数を一つの統合されたフラグに減らして、精度と自己適応動きベクトル解像度が使用可能か使用禁止かを示すことが有利である。
【0013】
本明細書では、様々な態様について、様々な実施形態による方法、装置(システム)、およびコンピュータ読み取り可能な媒体のフローチャートおよび/またはブロック図を参照して説明する。フローチャートおよび/またはブロック図における各ブロック、およびフローチャートおよび/またはブロック図における組み合わせは、コンピュータ読み取り可能なプログラム命令によって実行可能であることが理解されるべきである。
【0014】
図1を参照すると、ネットワークコンピュータ環境の機能ブロック図は、統合AMVRシグナリングフラグを使用して動画データをコーディングするための動画コーディングシステム100(以下、「システム」と呼ぶ)を示している。
図1は、一つの実施態様の説明のみを提供しており、異なる実施形態をどのように実行するかについての制限を示唆していないことが理解されるべきである。設計と実行のニーズに基づいて、記述された環境に多くの修正を加えることができる。
【0015】
システム100は、コンピュータ102とサーバコンピュータ114とを含んでもよい。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」と呼ぶ)を介してサーバコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104と、ソフトウェアプログラム108とを含んでもよい。ソフトウェアプログラム108は、データ記憶装置106に記憶され、コンピュータ102は、ユーザとドッキングし、サーバコンピュータ114と通信することができる。以下で
図4を参照して説明するように、コンピュータ102はそれぞれ内部部品800Aと外部部品900Aとを含んでもよく、サーバコンピュータ114はそれぞれ内部部品800Bと外部部品900Bとを含んでもよい。コンピュータ102は、例えば、モバイル装置、電話、携帯情報端末、ネットブック、ラップトップ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムであってもよいし、プログラムの実行、ネットワークへのアクセス、データベースへのアクセスが可能な任意のタイプのコンピューティング装置であってもよい。
【0016】
図5と
図6に説明するように、サーバコンピュータ114は、サービスとしてのソフトウェア(Software as a Service、SaaS)、サービスとしてのプラットフォーム(Platform as a Service、PaaS)、サービスとしてのインフラストラクチャ(Infrastructure as a Service、laaS)などのクラウドコンピューティングサービスモデルにおいても動作することができる。サーバコンピュータ114は、プライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウドなどのクラウドコンピューティング導入モデルに配置することもできる。
【0017】
統合AMVRシグナリングフラグを使用して動画データをコーディングするために使用できるサーバコンピュータ114は、データベース112とインタラクティブできる自己適応動きベクトル解像度(AMVR)シグナリングプログラム116(以下、「プログラム」と呼ぶ)を実行することができる。以下、
図3は、AMVRシグナリングプログラムの方法をより詳細に説明する。一方の実施形態では、コンピュータ102は、ユーザインタフェースを含む入力装置として実行されてもよく、プログラム116は主にサーバコンピュータ114上で実行されてもよい。好ましい実施形態では、プログラム116は、主に一つまたは複数のコンピュータ102上で実行されてもよく、サーバコンピュータ114はプログラム116によって使用されるデータを処理および記憶するために使用されてもよい。プログラム116は、独立したプログラムであってもよいし、より大きなAMVRシグナリングプログラムに統合されてもよいことに注意すべきである。
【0018】
いくつかの実施形態では、プログラム116の処理は、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有され得ることに注意すべきである。別の実施例では、プログラム116は、一つまたは複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータとの何らかの組み合わせ(例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102)上で実行されてもよい。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で実行されてもよい。あるいは、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で実行されてもよい。
【0019】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはこれらの組み合わせを含んでもよい。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続とプロトコルの任意の組合せとすることができる。ネットワーク110は、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(Public Switched Telephone Network)などの電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(long-term evolution、LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(code division multiple access、CDMA)ネットワークなど)、公衆陸上移動体通信網(public land mobile network、PLMN)、都市型ネットワーク(metropolitan area network、MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、および/またはこれらまたは他のタイプのネットワークの組み合わせを含む。
【0020】
図1に示した装置とネットワークの数と配置が例として提供されている。実際には、
図1に示した装置および/またはネットワークに比べて、追加の装置および/またはネットワーク、より少ない装置および/またはネットワーク、異なる装置および/またはネットワーク、あるいは異なる配置の装置および/またはネットワークが存在し得る。また、
図1に示した2つ以上の装置を単一の装置内で実現してもよく、あるいは
図1に示した単一の装置を複数の分散装置として実現してもよい。代替的に、システム100のある装置のグループ(例えば、一つまたは複数の装置)は、システム100の別のグループによって実行されると説明された一つまたは複数の機能を実行することができる。
【0021】
図2Aを参照すると、例示的な統合AMVR使用フラグ200Aが示される。一つまたは複数の実施形態によると、第1のBinは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモード(intra-block copy、IBC)の自己適応動きベクトル解像度の使用フラグとして使用できる。該Binは単一のコンテキストでエンコードできる。自己適応動きベクトル解像度シグナリングで使用されるコンテキスト自己適応バイナリ算術コーディング(context-adaptive binary arithmetic coding、CABAC)のコンテキストの総数は4であってもよい。変数ctxIdxは、CABACコンテキストを示すインデックスに使用できる。シフトフレーム間予測モードでは、自己適応動きベクトル解像度が使用可能であることを信号で通知すれば、第2のBin(ctxIdxは3)を使用してハーフピクセル精度の使用の可否を示すことができる。ハーフピクセル精度を使用しない場合は、第3のBin(ctxIdxは1)を使用して、1ピクセル精度と4ピクセル精度のどちらを使用するかを示すことができる。アフィンフレーム間予測モードでは、自己適応動きベクトル解像度が使用可能であることを信号で通知すれば、第3のBin(ctxIdxは2)を使用して1/16画素精度と1画素精度のどちらを使用するかを示すことができる。アフィンフレーム間予測のための第2のBinをスキップすることができることが理解されるべきである。さらに、第3のBinを第2のBinと呼ばれるか、第3のBinと呼ばれるかは、実現方法に依存することが理解されるべきである。IBCモードの場合、自己適応動きベクトル解像度が使用禁止であることを信号で通知すれば、1画素精度を使用することができる。自己適応動きベクトル解像度が使用可能であることを信号で通知すれば、4画素精度を使用することができる。ctxIdxの値は、該シグナリングで使用されるCABACコンテキストを区別するために使用できる。ctxIdxの実際の値と順序は異なっていてもよい。
【0022】
図2Bを参照すると、例示的な統合AMVR使用フラグ200Bが示される。一つまたは複数の実施形態によると、第1のBinは、シフトフレーム間予測モード、およびIBCモードの自己適応動きベクトル解像度の使用フラグとして使用できる。該Binは単一のコンテキストでエンコードできる。通常のフレーム間モードとIBCモードの自己適応動きベクトル解像度の使用フラグは、同じコンテキストを共有することができる。アフィンフレーム間予測モードの自己適応動きベクトル解像度フラグは、CABACの別のコンテキストを使用することができる。自己適応動きベクトル解像度シグナリングで使用されるCABACコンテキストの総数は5であってもよい。
【0023】
図2Cを参照すると、例示的な統合AMVR使用フラグ200Cが示される。一つまたは複数の実施形態によると、第1のBinは、シフトフレーム間予測、アフィンフレーム間予測、およびIBCモードのAMVR使用フラグとして使用できる。該Binは単一のコンテキストでエンコードできる。シフトフレーム間予測モード用のAMVRとアフィンモード用のAMVRの両方について、1ピクセル精度か否かを示すBinは同じでもよい。AMVRシグナリングで使用されるCABACコンテキストの総数は3であってもよい。
【0024】
図3を参照すると、統合AMVRシグナリングフラグを使用して動画データをコーディングするためのプログラムによって実施されるステップを示す動作のフローチャート300を示している。
図3は、
図1、
図2A、
図2Bを使用して説明することができる。前述したように、AMVRシグナリングプログラム116(
図1)は、AMVRの使用状況と精度を示すために単一のフラグを使用することに基づいて、迅速かつ効率的に動画をエンコードすることができる。
【0025】
302では、少なくとも2つのフレームを含む動画データが受信される。データは、少なくとも2つのフレームを抽出することができる動画データまたは静止画像に対応することができる。動作中、サーバコンピュータ114(
図1)上のAMVRシグナリングプログラム116(
図1)は、通信ネットワーク110(
図1)を介してコンピュータ102(
図1)から動画データを受信してもよく、またはデータベース112(
図1)から動画データを調査してもよい。
【0026】
304では、少なくとも2つのフレームから2つのフレーム間の動きベクトル差が算出される。動きベクトル差は、コーディングユニットの動きベクトルと予測される動きベクトルとの差であってもよいし、例えば1/4輝度サンプル単位の精度で表してもよい。動作中、AMVRシグナリングプログラム116(
図1)は、受信した動画データを使用して動きベクトル差を算出することができる。
【0027】
306では、自己適応動きベクトル解像度使用フラグがチェックされる。自己適応動きベクトル解像度フラグは、精度値と、自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応することができる。動作中、AMVRシグナリングプログラム116(
図1)は、AMVRが使用可能になるか否か、および動きベクトル差がどの程度正確にコーディングされるかを決定するために、統合AMVR使用フラグ200A(
図2A)をチェックすることができる。
【0028】
308では、自己適応動きベクトル解像度使用値に基づいて動画データをコーディングすることによって、精度値に基づいて動きベクトル差をコーディングする。動きベクトル差に基づいて動画データをコーディングすることによって、圧縮可能な動画データのフレーム間予測を使用することができる。動作中、AMVRシグナリングプログラム116(
図1)は、統合AMVR使用フラグ200A(
図2A)の値に基づいて動画データをコーディングすることができる。
【0029】
図3は、一つの実施態様の説明のみを提供しており、異なる実施形態をどのように実行するかについての制限を示唆していないことが理解されるべきである。設計と実行のニーズに基づいて、記述された環境に多くの修正を加えることができる。
【0030】
図4は、例示的な実施形態に基づく
図1に示されたコンピュータの内部部品および外部部品のブロック
図400である。
図4は、一つの実施態様の説明のみを提供しており、異なる実施形態をどのように実行するかについての制限を示唆していないことが理解されるべきである。設計と実行のニーズに基づいて、記述された環境に多くの修正を加えることができる。
【0031】
コンピュータ102(
図1)およびサーバコンピュータ114(
図1)は、
図4に示す内部部品800A、800Bと外部部品900A、900Bのそれぞれのセットを含んでもよい。内部部品800の各セットは、一つまたは複数のバス826上の一つまたは複数のプロセッサ820と、一つまたは複数のコンピュータ読み取り可能なRAM 822と、一つまたは複数のコンピュータ読み取り可能なROM 824と、一つまたは複数のオペレーティングシステム828と、および一つまたは複数のコンピュータ読み取り可能な有形記憶装置830とを含む。
【0032】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアの組み合わせで実行される。プロセッサ820は、中央処理装置(central processing unit、CPU)、グラフィックスプロセッシングユニット(graphics processing unit、GPU)、アクセラレーテッドプロセッシングユニット(accelerated processing unit、APU)、マイクロプロセッサ、マイクロコントローラ、デジタルシグナルプロセッサ(digital signal processor、DSP)、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、専用集積回路(application-specific integrated circuit、ASIC)、または別のタイプの処理部品である。いくつかの実行形態では、プロセッサ820は、機能を実行するようにプログラム可能な一つまたは複数のプロセッサを含む。バス826は、内部部品800A、800B間の通信を許可する部品を含む。
【0033】
サーバコンピュータ114(
図1)上の一つまたは複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、およびAMVRシグナリングプログラム116(
図1)は、一つまたは複数のそれぞれのプロセッサ820が一つまたは複数のそれぞれのRAM 822(一般的にはキャッシュメモリを含む)を介して実行するために、一つまたは複数のそれぞれのコンピュータ読み取り可能な有形記憶装置830上に記憶される。
図4に示す実施例において、各コンピュータ読み取り可能な有形記憶装置830は、内部ハードディスクドライブのディスク記憶装置である。あるいは、コンピュータ読み取り可能な有形記憶装置830は、ROM 824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスクドライブ、コンパクトディスク(compact disc、CD)、ディーブイディー(digital versatile disc、DVD)、フロッピーディスク、カートリッジ、テープ、および/またはコンピュータプログラムとデジタル情報を記憶できる別のタイプの非一時的なコンピュータ読み取り可能な有形記憶装置であってもよい。
【0034】
内部部品800A、800Bの各セットは、一つまたは複数のポータブルコンピュータ読み取り可能な有形記憶装置936からの読み取りおよび書き込みのためのR/Wドライブまたはインタフェース832をさらに含み、前記ポータブルコンピュータ読み取り可能な有形記憶装置は、CD-ROM、DVD、メモリースティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶装置などであってもよい。ソフトウェアプログラム108(
図1)とAMVRシグナリングプログラム116(
図1)のようなソフトウェアプログラムは、それぞれのR/Wドライブまたはインタフェース832を介して読み込まれ、それぞれのハードディスクドライブ830にロードされる一つまたは複数のそれぞれのポータブルコンピュータ読み取り可能な有形記憶装置936に記憶することができる。
【0035】
内部部品800A、800Bの各セットは、ネットワークアダプタまたはインタフェース836をさらに含み、例えば、TCP/IPアダプタカードや、ワイヤレスWi-Fiインタフェースや、3G、4G、または5Gのワイヤレスインタフェースカードやその他のワイヤードまたはワイヤレス通信リンク。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)とAMVRシグナリングプログラム116(
図1)は、インターネット、ローカルエリアネットワークまたはその他のワイドエリアネットワークなどのネットワーク、および対応するネットワークアダプタまたはインタフェース836を介して、外部のコンピュータからコンピュータ102(
図1)とサーバコンピュータ114にダウンロードすることができる。サーバコンピュータ114上のソフトウェアプログラム108およびAMVRシグナリングプログラム116は、ネットワークアダプタまたはインタフェース836からそれぞれのハードディスクドライブ830にロードされる。ネットワークは、銅線、光ファイバ、ワイヤレス伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータ、エッジサーバなどを含む。
【0036】
外部部品900A、900Bの各セットは、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934を含んでもよい。外部部品900A、900Bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティング装置、およびその他のマンマシンインタフェース装置を含んでもよい。内部部品800A、800Bの各セットは、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934にドッキングされた装置ドライバ840をさらに含む。装置ドライブ840、R/Wドライブまたはインタフェース832、ネットワークアダプタまたはインタフェース836は、記憶装置830および/またはROM 824に記憶されたハードウェアおよびソフトウェアを含む。
【0037】
本開示の内容にはクラウドコンピューティングに関する詳細な説明が含まれているが、本明細書に記載の教示の実現方法はクラウドコンピューティング環境に限定されないことを予め理解すべきである。代わりに、いくつかの実施形態は、既存または今後開発される他のタイプのコンピューティング環境と組み合わせて実行できる。
【0038】
クラウドコンピューティングは、ネットワーク、ネットワーク帯域幅、サーバ、処理、ストレージ、記憶、アプリケーション、仮想マシン、サービスなどの構成可能なコンピューティングリソースの共有プールへの便利な使用可能デマンドネットワークアクセスを実現するサービス配信モデルであり、前記構成可能なコンピューティングリソースは、最小限の管理ワークまたはサービスプロバイダとの対話で迅速にプロビジョニングおよびリリースできる。該クラウドモデルは、少なくとも5つの機能、少なくとも3つのサービスモデル、および少なくとも4つの導入モデルを含んでもよい。
【0039】
機能として、
オンデマンド・セルフサービス:クラウドの消費者が、サービスプロバイダとの手動操作を必要とせずに、サーバ時間やネットワークストレージなどのコンピューティング機能を一方的かつ自動的に必要に応じて提供できる;
幅広いネットワークアクセス:機能がネットワークを介して利用でき、異種混在のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(携帯電話、ラップトップ、PDAなど)での使用を促進する標準的なメカニズムを介してアクセスする;
リソースプーリング化:プロバイダのコンピューティングリソースが統合され、マルチテナントモデルを使用して複数の消費者にサービスを提供し、異なる物理リソースと仮想リソースがニーズに応じて動的に割り当てられ、再割り当てされる。消費者は通常、提供されたリソースの正確な位置を制御していないか、知らないが、より高い抽象レベル(国、州、データセンターなど)で位置を指定できるため、位置に依存しない感じがある。
迅速な柔軟性:迅速かつ柔軟に(場合によっては自動的に)外向きに拡張する機能を提供し、内向きに拡張する機能を迅速にリリースする。消費者にとって、供給可能な機能は一般に無制限のように見え、いつでも任意の数量で購入できる;
測定サービス:クラウドシステムは、ストレージ、処理、帯域幅、アクティブなユーザアカウントなどのサービスタイプに適した抽象レベルで測定機能を活用することで、リソースの使用を自動的に制御および最適化する。リソースの使用を監視、制御、レポートする機能により、利用されるサービスのプロバイダと消費者の両方に透明性を提供できる;
ことを含む。
【0040】
サービスモデルとして、
サービスとしてのソフトウェア(Software as a Service、SaaS):クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを使用する機能を消費者に提供する。webブラウザ(例えば、webベースの電子メール)などのシンクライアントインタフェースを介して、様々なクライアント装置からアプリケーションにアクセスできる。消費者は、限られたユーザ固有のアプリケーション構成設定を除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能を含む基盤となるクラウドインフラストラクチャを管理または制御しない;
サービスとしてのプラットフォーム(Platform as a Service、PaaS):プロバイダがサポートするプログラミング言語とツールを使用して作成された消費者作成または取得したアプリケーションをクラウドインフラストラクチャに導入する機能を消費者に提供する。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、導入したアプリケーションと可能なアプリケーションのホスティング環境構成を制御する;
サービスとしてのインフラストラクチャ(Infrastructure as a Service、laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、およびオペレーティングシステムとアプリケーションを含む任意のソフトウェアを導入して実行できるその他の基本的なコンピューティングリソースを提供する機能を消費者に提供する。消費者は、基盤となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、導入したアプリケーションの制御と、ホストファイアウォールなどのネットワーク部品の選択に制限する場合がある;
ことを含む。
【0041】
導入モデルとして、
プライベートクラウド:クラウドインフラは一つの組織でのみ稼働する。組織または第三者によって管理され、使用可能プレミス(on-premises)または使用禁止プレミス(off-premises)に存在することができる;
コミュニティクラウド:クラウドインフラストラクチャは複数の組織で共有され、タスク、セキュリティ要件、ポリシー、コンプライアンスの考慮事項など、共有の関心を持つ特定のコミュニティをサポートする。組織または第三者が管理することができ、使用可能プレミスまたは使用禁止プレミスに存在することができる;
パブリッククラウド:クラウドインフラストラクチャは一般公衆または大規模な業界団体が利用でき、クラウドサービスを販売している組織が所有する;
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ以上のクラウド(プライベート、コミュニティ、またはパブリック)を組み合わせたもので、該2つ以上のクラウドは依然として独自のエンティティであるが、データとアプリケーションの移植性を実現する標準化または独自技術(クラウド間のロード分散のためのクラウドバーストなど)によって結ばれている;
ことを含む。
【0042】
クラウドコンピューティング環境はサービス指向であり、ステートレス、低カップリング、モジュール性、セマンティクス相互運用性に焦点を当てている。クラウドコンピューティングの中核は、相互に接続されたノードからなるネットワークを含むインフラである。
【0043】
図5は、例示的なクラウドコンピューティング環境500を示している。図示のように、クラウドコンピューティング環境500は、一つまたは複数のクラウドコンピューティングノード10を含み、クラウドの消費者が使用するローカルコンピューティング装置が、前記一つまたは複数のクラウドコンピューティングノードと通信でき、前記ローカルコンピューティング装置が、例えば、パーソナルデジタルアシスタント(personal digital assistant、PDA)またはセルラーホン54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/またはカーコンピュータシステム54Nである。クラウドコンピューティングノード10は互いに通信できる。これらは、上述したプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、あるいはそれらの組み合わせなど、一つまたは複数のネットワークに物理的または仮想的にグループ化されていてもよい(図示せず)。これにより、クラウドコンピューティング環境500はインフラストラクチャ、プラットフォーム、および/またはソフトウェアをサービスとして提供できるようになり、クラウドの消費者はローカルコンピューティング装置でリソースを維持する必要がなくなる。なお、
図5に示すコンピューティング装置54A~54Nのタイプはあくまでも説明を意図したものであり、クラウドコンピューティングノード10およびクラウドコンピューティング環境500は、任意のタイプのネットワークおよび/またはネットワークアドレス可能な接続、例えばウェブブラウザを使用して、任意のタイプのコンピュータ化装置と通信できる。
【0044】
図6は、クラウドコンピューティング環境500(
図5)によって提供される一連の機能抽象化層600を示している。
図6に示される部品、層、および機能はあくまでも説明を意図したものであり、実施形態はこれに限定されないことを理解すべきである。示されているように、以下の層および対応する機能が提供される。
【0045】
ハードウェア及びソフトウェア層60は、ハードウェア部品及びソフトウェア部品を含む。ハードウェア部品の例としては、大型ホスト61、RISC(Reduced Instruction Set Computer、縮小命令セットコンピュータ)アーキテクチャに基づくサーバ62、サーバ63、ブレードサーバー64、記憶装置65、ネットワークとネットワーク部品66を含む。いくつかの実施形態では、ソフトウェア部品は、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0046】
仮想化層70は、仮想エンティティの以下の例を提供できる抽象化層を提供する:仮想サーバ71、仮想記憶装置72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションとオペレーティングシステム74、仮想クライアント75。
【0047】
一例では、管理層80は以下に説明する機能を提供することができる。リソース供給81は、クラウドコンピューティング環境内でタスクを実行するためのコンピューティングリソースやその他のリソースの動的な獲得を提供する。メータリング・価格設定82は、クラウドコンピューティング環境でリソースを利用する際のコスト追跡と、これらのリソースの消費に対する課金または評価を提供する。一例では、これらのリソースはアプリケーションライセンスを含んでもよい。クラウドの消費者とタスクを安全に認証し、データやその他のリソースを保護する。ユーザアクセスポータル83は、クラウドコンピューティング環境へのアクセスを消費者とシステム管理者に提供する。サービスレベル管理84は、必要なサービスレベルを満たすように、クラウドコンピューティングのリソース割り当てと管理を提供する。サービスレベル合意書(Service Level Agreement、SLA)計画とフルフィルメント85はクラウドコンピューティングリソースの事前配置と獲得を提供し、SLAに基づいてクラウドコンピューティングリソースの将来の需要を予想する。
【0048】
ワークロード層90は、クラウドコンピューティング環境の機能を利用できる例を提供する。該層から提供されるワークロードと機能の例には、マッピングとナビゲーション91、ソフトウェア開発とライフサイクル管理92、バーチャルクラス教育提供93、データ分析処理94、取引処理95、AMVRシグナリング96を含む。AMVRシグナリング96は、統合AMVRシグナリングフラグを使用して動画データをコーディングおよびデコーディングすることができる。
【0049】
いくつかの実施形態は、可能な技術的詳細な統合レベルにあるシステム、方法、および/またはコンピュータ読み取り可能な媒体に関することができる。コンピュータ読み取り可能な媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令を有するコンピュータ読み取り可能な非一時的記憶媒体(または複数の媒体)を含んでもよい。
【0050】
コンピュータ読み取り可能な記憶媒体は、命令実行装置によって使用される命令を保持および記憶することができる有形の装置とすることができる。コンピュータ読み取り可能な記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、または上記のいずれかの適切な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ読み取り可能な記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ、読み出し専用メモリ(read-only memory、ROM)、消去可能プログラマブルROM(erasable programmable read-only memory、EPROMorフラッシュメモリ)、スタティックRAM(static random access memory、SRAM)、シーディーロム(compact disc read-only memory、CD-ROM)、ディーブイディー(digital versatile disk、DVD)、メモリースティック、フロッピーディスク、命令が記録された溝の中の凸構造やパンチカードなどの機械的エンコード装置、および前述の適切な組み合わせを含む。本明細書で使用するコンピュータ読み取り可能な記憶媒体は、電波または他の自由に伝搬する電磁波、導波路または他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバケーブルを通った光パルス)、またはワイヤを介して伝送される電気信号などの過渡信号そのものと解釈されてはならない。
【0051】
本明細書で説明したコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体から対応するコンピュータ/処理装置にダウンロードすることができ、あるいはネットワーク(たとえば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワーク)を介して外部のコンピュータまたは外部記憶装置にダウンロードすることができる。ネットワークには、銅伝送ケーブル、光伝送繊維、無線伝送、ルーター、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含んでもよい。各算出/処理装置のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、コンピュータ読み取り可能なプログラム命令を転送して、対応する算出/処理装置内のコンピュータ読み取り可能な記憶媒体に記憶する。
【0052】
動作を実行するためのコンピュータ読み取り可能なプログラムコード/命令は、アセンブリ命令、命令セットアーキテクチャ(instruction-set-architecture、ISA)命令、機械命令、機械関連命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、または一つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはターゲットコードであってもよいし、Smalltalk、C++などのオブジェクト指向プログラミング言語と、「C」プログラミング言語または同様のプログラミング言語などの手続き型プログラミング言語を含む一つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはターゲットコードであってもよい。コンピュータ読み取り可能なプログラム命令は、完全にユーザのコンピュータ上で、あるいは独立したソフトウェアパッケージとして部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、かつ部分的にリモートコンピュータ上で、または完全にリモートコンピュータやサーバ上で実行されてもよい。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含むあらゆる種類のネットワークを介してユーザのコンピュータに接続してもよいし、外部コンピュータと接続してもよい(例えば、インターネットサービスプロバイダのインターネットを利用する)。いくつかの実施形態では、プログラム可能な論理回路システム、フィールドプログラマブルゲートアレイ(field-programmable gate array、FPGA)、またはプログラマブルロジックアレイ(programmable logic array、PLA)などを含む電子回路は、コンピュータ読み取り可能なプログラム命令の状態情報を利用することによって、様々な側面や動作を実行することができるように、電子回路をパーソナライズし、コンピュータによって読み取り可能なプログラム命令を実行する。
【0053】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータのプロセッサ、専用コンピュータのプロセッサ、または他のプログラム可能なデータ処理装置のプロセッサに提供されて、コンピュータのプロセッサまたは他のプログラム可能なデータ処理装置のプロセッサによって実行される命令を介して、フローチャートおよび/またはブロック図の一つまたは複数のブロックに指定された機能/動作を実行する手段が作成されるように、機械を作成することができる。これらのコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体に記憶してもよく、該コンピュータ読み取り可能な記憶媒体は、命令を記憶したコンピュータ読み取り可能な記憶媒体が製品を含むように、特定の態様でコンピュータ、プログラム可能なデータ処理装置、または他の装置を動作させることができる。該製品は、フローチャートまたはブロック図のうちの一つまたは複数のブロックで指定された機能/動作のあらゆる側面を実行する命令を含む。
【0054】
コンピュータ読み取り可能なプログラム命令をコンピュータ、他のプログラム可能なデータ処理装置または他の装置にロードして、コンピュータ、他のプログラム可能な装置または他の装置で一連の動作ステップを実行させ、コンピュータ、他のプログラム可能な装置または他の装置で実行される命令がフローチャートおよび/またはブロック図の一つまたは複数のブロックで指定された機能/動作を実行するようにコンピュータ実行プロセスを作成することもできる。
【0055】
図面のフローチャートまたはブロック図は、様々な実施形態によるシステム、方法およびコンピュータ読み取り可能な媒体の可能な実行のアーキテクチャ、機能、および動作を説明している。この点に関して、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実行するための一つまたは複数の実行可能命令を備える命令部分、モジュール、またはセグメントを示すことができる。図に示すブロックと比較して、方法、コンピュータシステムおよびコンピュータ読み取り可能な媒体は、追加のブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。
【0056】
好ましい実施形態では、ブロックに記載された機能は、図に記載された順序で実行されなくてもよい。例えば、連続して示された2つのブロックは、実際には同時にまたはほぼ同時に実行されてもよく、あるいは関連する機能に従って逆の順序で実行される場合がある。ブロック図および/またはフローチャートおける各ブロック、およびブロック図および/またはフローチャートにおけるブロックの組み合わせは、指定された機能または動作を実行するか、あるいは専用ハードウェアとコンピュータ命令の組み合わせを実行し、専用ハードウェアベースシステムによって実現可能であることにも理解されるべきである。
【0057】
本明細書で説明するシステムおよび/または方法は、異なる形式のハードウェア、ファームウェア、またはハードウェアとソフトウェアの組合せで実行できることは明らかである。これらのシステムおよび/または方法を実行するための実際の専用制御ハードウェアまたはソフトウェアコードは、実行方法を制限するものではない。したがって、システムおよび/または方法の操作および動作への説明は、本明細書で特定のソフトウェアコードを参照せずに、ソフトウェアおよびハードウェアを、本明細書で説明されたシステムおよび/または方法を実行するように設計してもよいことが理解されるべきである。
【0058】
特に明記されていない限り、本明細書で使用される要素、動作、または命令は、重要または必要な要素、動作、または命令と解釈されてはならない。また、本明細書で使用するように、用語「一つの」と「いくつかの」は一つ以上の項目を含むことを意図しており、「一つまたは複数(one or more)」と入れ替えて使用してもよい。さらに、本明細書で使用されるように、「セット」という用語は、一つまたは複数の項目、例えば、関連項目、非関連項目、関連項目と非関連項目の組み合わせなど、を含むことを意図しており、「一つまたは複数(one or more)」と入れ替えて使用してもよい。一つだけを意味する場合は、「一つ」または類似した用語を使用する。また、本明細書で使用されるように、「する」、「している」、「した」などの用語は、オープンな用語を意味する。また、特に明記されていない限り、用語「に基づく」は「少なくとも部分的に基づく」ことを意味する。
【0059】
説明の目的で様々な態様および実施形態の説明を示したが、説明は開示された実施形態を網羅すること、または開示された実施形態に限定することは意図されていない。特許請求の範囲に記載および/または明細書に特徴の組み合わせが開示されるが、これらの組み合わせは、可能な実現方法の開示内容を制限することを意図していない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または明細書に開示されていない方法で組み合わせることができる。記載された各従属請求項は、一つの請求項のみに直接従属している場合があるが、可能な実行の開示内容は、請求項グループ内の他のすべての各請求項と組み合わせた各従属請求項を含む。説明した実施形態の範囲から逸脱することなく、多くの修正および変更が当業者には明らかである。本明細書で使用して用語は、実施形態の原理、実際の応用、または市場で発見された技術に関連する技術的改善を最もよく説明するため、または当業者が本明細書に開示した実施形態を理解できるようにするために選択される。
【符号の説明】
【0060】
102 コンピュータ
104 プロセッサ
106 データ記憶装置
108 ソフトウェアプログラム
110 ネットワーク
112 データベース
114 サーバコンピュータ
116 AMVRシグナリングプログラム
【手続補正書】
【提出日】2021-09-29
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
プロセッサが実行可能な動画コーディング方法であって、
少なくとも2つのフレームを含む動画データを受信するステップと、
前記少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するステップと、
自己適応動きベクトル解像度使用フラグをチェックするステップであって、前記自己適応動きベクトル解像度使用フラグは、精度値と、自己適応動きベクトル解像度使用値とに対応し、前記自己適応動きベクトル解像度使用値は、自己適応動きベクトル解像度の使用可能・使用禁止に対応するステップと、
前記自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするステップと、
を含むことを特徴とする動画コーディング方法。
【請求項2】
前記自己適応動きベクトル解像度使用フラグは、単一のコンテキストによってコーディングされた第1のBinを含む、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記自己適応動きベクトル解像度使用フラグは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモードのうちの少なくとも一つが使用可能になるか否かを示す、
ことを特徴とする請求項2に記載の方法。
【請求項4】
前記シフトフレーム間予測モードについて、
第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいてハーフピクセル精度を使用するか否かを示す、
ことを特徴とする請求項3に記載の方法。
【請求項5】
第3のBinは、ハーフピクセル精度を使用していない場合に1ピクセル精度を使用するか、それとも4ピクセル精度を使用するかを示す、
ことを特徴とする請求項4に記載の方法。
【請求項6】
前記アフィンフレーム間予測モードについて、
第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいて1/16ピクセル精度を使用するか、それとも1ピクセル精度を使用するかを示す、
ことを特徴とする請求項3に記載の方法。
【請求項7】
前記ブロック内コピーモードについて、自己適応動きベクトル解像度が使用禁止になることに基づいて1ピクセル精度を使用し、自己適応動きベクトル解像度が使用可能になることに基づいて4ピクセル精度を使用する、
ことを特徴とする請求項3に記載の方法。
【請求項8】
第2のBinは、前記シフトフレーム間予測モードと前記アフィンフレーム間予測モードの両方に1ピクセル精度を使用することを示す、
ことを特徴とする請求項3に記載の方法。
【請求項9】
前記自己適応動きベクトル解像度使用フラグは
、シフトフレーム間予測モード
とブロック内コピーモードを示すBinを含み、第1のコンテキストを使用して前記Binをコーディングし、第2のコンテキストを使用し
てアフィンフレーム間予測モードを示す、
ことを特徴とする請求項1
~8の何れか1項に記載の方法。
【請求項10】
動画コーディングのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように配置された、一つまたは複数のコンピュータ読み取り可能な非一時的な記憶媒体と、
コンピュータプログラムコードにアクセスし、コンピュータプログラムコードが示すように動作するように構成された一つまたは複数のコンピュータプロセッサと、を含み、
前記コンピュータプログラムコードは、
前記一つまたは複数のコンピュータプロセッサが、少なくとも2つのフレームを含む動画データを受信するように構成された受信コードと、
前記一つまたは複数のコンピュータプロセッサが、前記少なくとも2つのフレームから2つのフレーム間の動きベクトル差を算出するように構成された算出コードと、
前記一つまたは複数のコンピュータプロセッサが
、精度値
と自己適応動きベクトル解像度の使用可能・使用禁止に対応する自己適応動きベクトル解像度使用値とに対応する自己適応動きベクトル解像度使用フラグをチェックするチェックコードと、
前記自己適応動きベクトル解像度使用値に基づいて前記動画データをコーディングし、前記精度値に基づいて前記動きベクトル差をコーディングするコーディングコードと、を含む
ことを特徴とするコンピュータシステム。
【請求項11】
前記自己適応動きベクトル解像度使用フラグは、単一のコンテキストによってコーディングされる第1のBinを含む、
ことを特徴とする請求項10に記載のコンピュータシステム。
【請求項12】
前記自己適応動きベクトル解像度使用フラグは、シフトフレーム間予測モード、アフィンフレーム間予測モード、およびブロック内コピーモードのうちの少なくとも一つが使用可能になるか否かを示す、
ことを特徴とする請求項11に記載のコンピュータシステム。
【請求項13】
前記シフトフレーム間予測モードについて、第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいてハーフピクセル精度を使用するか否かを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項14】
第3のBinは、ハーフピクセル精度を使用しない場合に1ピクセル精度を使用するか、または4ピクセル精度を使用するかを示す、
ことを特徴とする請求項13に記載のコンピュータシステム。
【請求項15】
前記アフィンフレーム間予測モードについて、第2のBinは、自己適応動きベクトル解像度が使用可能になることに基づいて1/16ピクセル精度を使用するか、または1ピクセル精度を使用するかを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項16】
前記ブロック内コピーモードについて、自己適応動きベクトル解像度が使用禁止になることに基づいて1ピクセル精度を使用し、自己適応動きベクトル解像度が使用可能になることに基づいて4ピクセル精度を使用する、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項17】
第2のBinは、前記シフトフレーム間予測モードと前記アフィンフレーム間予測モードの両方に1ピクセル精度を使用することを示す、
ことを特徴とする請求項12に記載のコンピュータシステム。
【請求項18】
前記自己適応動きベクトル解像度使用フラグは
、シフトフレーム間予測モード
とブロック内コピーモードを示すBinを含み、前記Binは第1のコンテキストを使用してコーディングされ
、アフィンフレーム間予測モードは第2のコンテキストを使用して表される、
ことを特徴とする請求項10
~17の何れか1項に記載のコンピュータシステム。
【請求項19】
動画コーディングのためのコンピュータプログラ
ムであって、
前記コンピュータプログラム
が一つまたは複数のコンピュータプロセッサ
により実行されると、請求項1~9の何れか1項に記載の動画コーディング
方法を実行させることを特徴とする動画コーディング
のためのコンピュータプログラム。
【国際調査報告】