(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-02
(45)【発行日】2024-09-10
(54)【発明の名称】複数の色成分の同時変換コーディング
(51)【国際特許分類】
H04N 19/597 20140101AFI20240903BHJP
H04N 19/70 20140101ALI20240903BHJP
【FI】
H04N19/597
H04N19/70
(21)【出願番号】P 2022516378
(86)(22)【出願日】2021-02-24
(86)【国際出願番号】 US2021019371
(87)【国際公開番号】W WO2021194679
(87)【国際公開日】2021-09-30
【審査請求日】2022-03-14
(32)【優先日】2020-03-26
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-10-29
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】イエア,セフーン
(72)【発明者】
【氏名】ジャオ,シン
(72)【発明者】
【氏名】リィウ,シャン
【審査官】田中 純一
(56)【参考文献】
【文献】特表2022-524440(JP,A)
【文献】米国特許出願公開第2021/0409708(US,A1)
【文献】特表2008-527782(JP,A)
【文献】米国特許出願公開第2006/0146191(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって行われるビデオデコーディングの方法であって、当該方法は、
少なくとも2つのクロマ予測残差信号ブロックのデータを含む、AOMedia Video 1(AV1)形式のビデオデータを受信することと、
前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことと、
前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する前記少なくとも1つの信号ブロックを含む、前記変換の出力に基づいて前記ビデオデータをデコーディングすることと、
を含む、方法。
【請求項2】
前記少なくとも2つのクロマ予測残差信号ブロックは、N1xN2 Cb残差ブロックと、N1xN2 Cr残差ブロックとを含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記少なくとも1つの信号ブロックの係数の伝達されたインデックスを逆量子化することと、該逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することにより行われ、
2xN1xN2は、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせのサイズであり、
LxMは、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下の前記サイズである、請求項2に記載の方法。
【請求項4】
前記逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することの結果は、再構成された2xN1xN2ベクトルを含み、
前記ビデオデータをデコーディングすることは、前記再構成された2xN1xN2ベクトルから、前記N1xN2 Cb残差ブロック及び前記N1xN2 Cr残差ブロックを再構成することを含む、請求項3に記載の方法。
【請求項5】
前記少なくとも1つの信号ブロックは、前記少なくとも2つのクロマ予測残差信号ブロックのインターリービングを含む、請求項4に記載の方法。
【請求項6】
前記少なくとも1つの信号ブロックは、2xN1xN2三次元(3D)キュービックを含む、請求項2乃至5のいずれか一項に記載の方法。
【請求項7】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記3Dキュービックのx軸に沿ったN1x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の1点1D変換と、前記3Dキュービックのy軸に沿ったN2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間のN2点1D変換と、前記3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の2点変換を行うことを含む、請求項6に記載の方法。
【請求項8】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の2点1D変換と、前記3Dキュービックのxy平面に対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間のN1xN2変換を行うことを含む、請求項6に記載の方法。
【請求項9】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の一次変換及び二次変換を行うことを含む、請求項2乃至8のいずれか一項に記載の方法。
【請求項10】
前記一次変換及び前記二次変換のうちの少なくとも1つは、前記少なくとも2つのクロマ予測残差信号ブロックのうちの少なくとも1つの係数に関連する座標の値が閾値以上である所定の条件を決定することに対応して係数をゼロに設定することを含む、請求項9に記載の方法。
【請求項11】
ビデオデコーディングのための装置であって、当該装置は、
コンピュータプログラムコードを記憶するように構成された少なくとも1つのメモリと、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された少なくとも1つのプロセッサと、
を含み、
前記コンピュータプログラムコードは、
前記少なくとも1つのプロセッサに、少なくとも2つのクロマ予測残差信号ブロックのデータを含む、AOMedia Video 1(AV1)形式のビデオデータを受信させるように構成された受信コードと、
前記少なくとも1つのプロセッサに、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行わせるように構成された実行コードと、
前記少なくとも1つのプロ
セッサに、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する前記少なくとも1つの信号ブロックを含む、前記変換の出力に基づいて前記ビデオデータをデコーディングさせるように構成されたデコーディングコードと、
を含む、装置。
【請求項12】
前記少なくとも2つのクロマ予測残差信号ブロックは、N1xN2 Cb残差ブロックと、N1xN2 Cr残差ブロックとを含む、請求項11に記載の装置。
【請求項13】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記少なくとも1つの信号ブロックの係数の伝達されたインデックスを逆量子化することと、該逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することにより行われ、
2xN1xN2は、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせのサイズであり、
LxMは、前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下の前記サイズである、請求項12に記載の装置。
【請求項14】
前記逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することの結果は、再構成された2xN1xN2ベクトルを含み、
前記ビデオデータをデコーディングすることは、前記再構成された2xN1xN2ベクトルから、前記N1xN2 Cb残差ブロック及び前記N1xN2 Cr残差ブロックを再構成することを含む、請求項13に記載の装置。
【請求項15】
前記少なくとも1つの信号ブロックは、前記少なくとも2つのクロマ予測残差信号ブロックのインターリービングを含む、請求項14に記載の装置。
【請求項16】
前記少なくとも1つの信号ブロックは、2xN1xN2三次元(3D)キュービックを含む、請求項12乃至15のいずれか一項に記載の装置。
【請求項17】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記3Dキュービックのx軸に沿ったN1x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の1点1D変換と、前記3Dキュービックのy軸に沿ったN2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間のN2点1D変換と、前記3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の2点変換を行うことを含む、請求項16に記載の装置。
【請求項18】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の2点1D変換と、前記3Dキュービックのxy平面に対する前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間のN1xN2変換を行うことを含む、請求項16記載の装置。
【請求項19】
前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことは、前記少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間の一次変換及び二次変換を行うことを含む、請求項12至18のいずれか一項に記載の装置。
【請求項20】
コンピュータにプロセスを実行させるプログラムを記憶する非一時的コンピュータ読み取り可能媒体であって、該プロセスは、
少なくとも2つのクロマ予測残差信号ブロックのデータを含む、AOMedia Video 1(AV1)形式のビデオデータを受信することと、
前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックと、前記少なくとも2つのクロマ予測残差信号ブロックとの間で変換を行うことと、
前記少なくとも2つのクロマ予測残差信号ブロックの組み合わせ以下のサイズを有する前記少なくとも1つの信号ブロックを含む、前記変換の出力に基づいて前記ビデオデータをデコーディングすることと、
を含む、非一時的コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照/優先権主張
本願は、2020年3月26日に出願された米国仮出願第63/000109号及び2020年10月29日に出願された米国仮出願第17/083662号の優先権を主張し、それらの全体は参照により本願に明示的に組み込まれている。
【0002】
本開示は、概してデータ処理の分野に関し、より具体的にはビデオエンコーディング及び/又はデコーディングに関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネットを介したビデオ伝送用に設計されたオープンビデオコーディングフォーマットである。それは、半導体企業、ビデオオンデマンドプロバイダー、ビデオコンテンツプロデューサー、ソフトウェア開発企業、ウェブブラウザーベンダーを含む、2015年に設立されたコンソーシアムであるAlliance for Open Media(AOMedia)によってVP9の後継として開発された。AV1では合計56の方向角があり、そのうち8つは公称角度(nominal angle)で、残りは公称角度からのデルタとして規定されている。
【0004】
AV1プロジェクトのコンポーネントの多くは、アライアンスのメンバーによるこれまでの研究努力から提供された。個々の貢献者は何年も前に実験的な技術プラットフォームを開始している。Xip/MozillaのDaalaは2010年に既にコードを公開し、Googleの実験的なVP9の進化プロジェクトであるVP10が2014年9月12日に発表され、CiscoのThorが2015年8月11日に発表されている。VP9のコードベースに基づいて、AV1は追加の技術を組み込み、そのいくつかはこれらの実験的なフォーマットで開発された。AV1参照コーデックの最初のバージョンである0.1.0は2016年4月7日に公表された。アライアンスは2018年3月28日にAV1ビットストリームの仕様のリリースを参照ソフトウェアベースのエンコーダ及びデコーダと共に発表した。2018年6月25日には、仕様の検証済みのバージョン1.0.0がリリースされた。2019年1月8日には、Errata1を含む規格の検証済みバージョン1.0.0がリリースされた。AV1ビットストリームの仕様は参照ビデオコーデックを含む。
【0005】
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(高効率ビデオコーディング)規格を公表した。それ以来、彼らは、圧縮能力においてHEVCを大幅に上回り得る将来のビデオコーディング技術の標準化のための潜在的ニーズを研究してきた。2017年10月には、彼らは、HEVCを超える能力のビデオ圧縮に関する提案のための共同提言を発表した(CfP)。2018年2月15日までに、標準ダイナミックレンジ(SDR)について合計で22のCfP回答が、高ダイナミックレンジ(HDR)について12のCfP回答が、360のビデオカテゴリーについて12のCfP回答がそれぞれ提出された。2018年4月には、122 MPEG/10th JVET(Joint Video Exploration Team - Joint Video
Expert Team)の会合で、受け取った全てのCfPの回答が評価された。慎重な評価により、JVETはHEVCを越えた次世代ビデオコーディングの標準化、すなわち、いわゆるVVC(Versatile Video Coding)を正式に開始した。
【0006】
AV1では、クロマチャネル、例えばCb及びCrのために、様々な手段により予測残差信号が生成され、イントラ及びインターコーディングシナリオのそれぞれにおいて適用される。ほとんどの場合、C及びCrチャネルに同じセットの予測方法が適用されるため、結果として得られる異なるクロマチャネルからの残差信号は、分類可能な一定の方法で相関する傾向がある。なお、AV1は、より良好な圧縮効率のためにそのような冗長性を取り除くコーディングツールを有していない。他方、現在のVVC設計はそのような傾向を利用する1つの方法を提供するが、それは、2つのコロケートされた(co-located)クロマサンプル間のみの相関を利用するという意味で限定されている。
【発明の概要】
【課題を解決するための手段】
【0007】
本開示は、一連の先進的なビデオコーディング技術を提示する。より具体的には、複数の色成分からの残差、例えば、2つのクロマ成分からの残差のジョイントコーディングするための変換スキームが開示される。
【0008】
コンピュータプログラムコードを記憶するように構成されたメモリと、コンピュータプログラムコードにアクセスして、コンピュータプログラムコードによって命令されるように動作するように構成されたプロセッサとを含む装置及び方法が含まれる。前記コンピュータプログラムは、少なくとも1つのプロセッサに、少なくとも2つのクロマ予測残差信号ブロックのデータを含む、AOMedia Video 1(AV1)形式のビデオデータを受信させるように構成されたコードを受信することと、少なくとも1つのプロセッサに、クロマ予測残差信号ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックと、クロマ予測残差信号ブロックとの間で変換を行わせるように構成されたコードを行うことと、少なくとも1つのプロッサに、クロマ予測残差ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックを含む、変換の出力に基づいてビデオデータをデコーディングさせるように構成されたコードをデコーディングすることと、を含む。
【0009】
例示の実施形態によれば、クロマ予測残差信号ブロックは、N1xN2 Cb残差ブロックと、N1xN2 Cr残差ブロックとを含む。
【0010】
例示の実施形態によれば、変換は、クロマ予測残差信号ブロックの組み合わせ以下のサイズを有する少なくとも1つの信号ブロックの係数の伝達されたインデックスを逆量子化することと、該逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することとを含み、2xN1xN2は、クロマ予測残差ブロックの組み合わせのサイズであり、LxMは、クロマ予測残差ブロックの組み合わせ以下のサイズである。
【0011】
例示の実施形態によれば、逆量子化された伝達されたインデックスを2xN1xN2×LxM行列により変換することの結果は、再構成された2xN1xN2ベクトルを含み、ビデオデータをデコーディングすることは、再構成された2xN1xN2ベクトルから、N1xN2 Cb残差ブロック及びN1xN2 Cr残差ブロックを再構成することを含む。
【0012】
例示の実施形態によれば、少なくとも1つの信号ブロックは、少なくとも2つのクロマ予測残差信号ブロックのインターリービングを含む。
【0013】
例示の実施形態によれば、少なくとも1つの信号ブロックは、2xN1xN2三次元(3D)キュービックを含む。
【0014】
例示の実施形態によれば、変換は、3Dキュービックのx軸に沿ったN1x1ベクトルのそれぞれに対するN1点1D変換と、3Dキュービックのy軸に沿ったN2x1ベクトルのそれぞれに対するN2点1D変換と、3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する2点変換とを含む。
【0015】
例示の実施形態によれば、変換は、3Dキュービックのz軸に沿った2x1ベクトルのそれぞれに対する2点1D変換と、3Dキュービックのxy平面に対するN1xN2変換とを含む。
【0016】
例示の実施形態によれば、変換を行うことは、一次変換及び二次変換を行うことを含む。
【0017】
例示の実施形態によれば、一次変換及び二次変換のうちの少なくとも1つは、クロマ予測残差信号ブロックのうちの少なくとも1つの係数に関連する座標の値が閾値以上である所定の条件を決定することに対応して係数をゼロに設定することを含む。
【図面の簡単な説明】
【0018】
これら及び他の目的、特徴及び利点は、添付の図面に関連して読まれる例示の実施形態の以下の詳細な説明から明らかになるであろう。図面は、詳細な説明に関連して当業者の理解を容易にする上で明確にするためのものであるため、図面の様々な特徴は縮尺通りではない。
【
図1】
図1は、少なくとも1つの実施形態に係るネットワークコンピュータ環境を示す。
【
図2】
図2は、少なくとも1つの実施形態に係るAV1の公称角度の図である。
【
図3】
図3は、少なくとも1つの実施形態に係る、ビデオデータをコード化するプログラムによって行われるステップを示す動作フローチャートである。
【
図4】
図4は、少なくとも1つの実施形態に係る、
図1に示すコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である。
【
図5】
図5は、少なくとも1つの実施形態に係る、
図1に示さすコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】
図6は、少なくとも1つの実施形態に係る、
図5の例示のクラウドコンピューティング環境の機能層のブロック図である。
【
図7】
図7は、例示の実施形態に係る、AVIにおける非方向性のスムーズイントラ予測器に関する特徴のブロック図である。
【
図8】
図8は、例示の実施形態に係る、再帰的イントラフィルタリングモードに関する特徴のブロック図である。
【
図9】
図9は、例示の実施形態に係る、多層参照フレーム構造に関する特徴のブロック図である。
【
図10】
図10は、例示の実施形態に係る、候補動きベクトルリスト構築に関する特徴のブロック図である。
【
図11】
図11は、例示の実施形態に係る、動きフィールド推定に関する特徴の線図である。
【
図12】
図12は、例示の実施形態に係る、重複ブロック動き補償(OMBC)のための重複領域に関する特徴のブロック図である。
【
図13】
図13は、例示の実施形態に係る、歪み動き補償に関する特徴のブロック図である。
【
図14】
図14は、例示の実施形態に係る、アドテスト複合予測に関する特徴のブロック図である。
【
図15】
図15は、例示の実施形態に係る特徴のフロー図である。
【
図16】
図16は、例示の実施形態に係る3Dキューブとして一体化された残差に関する特徴の空間図である。
【
図17】
図17は、例示の実施形態に係るシステムに関する特徴のブロック図である。
【
図18】
図18は、例示の実施形態に係るデコーダに関する特徴のブロック図である。
【
図19】
図19は、例示の実施形態に係るエンコーダに関する特徴のブロック図である。
【発明を実施するための形態】
【0019】
本発明の構造及び方法の詳細な実施形態を本明細書で開示するが、開示の実施形態は、様々な形態で実施され得る本発明の構造及び方法の例示にすぎないことが分かる。しかしながら、これらの構造及び方法は多くの異なる形態で実施されてもよく、本明細書に記載の例示の実施形態に限定されるものと解釈すべきではない。むしろ、これらの例示の実施形態は、本開示が徹底的及び完全であり、当業者に範囲を完全に伝えるために提供される。説明では、周知の特徴及び技術の詳細は、提示される実施形態を不要に不明瞭にすることを避けるために省略され得る。
【0020】
実施形態は、概してデータ処理の分野に関し、より具体的にはビデオエンコーディング及びデコーディングに関する。以下で説明する例示の実施形態は、とりわけ、公称角度の値から導出されたデルタ角度(delta angle)の値を用いてビデオデータをエンコード及び/又はデコードするためのシステム、方法及びコンピュータプログラムを提供する。したがって、一部の実施形態は、全てのデルタ角度を伝達することを要さず且つデルタ角度の値のオンザフライ計算を可能にすることにより、計算の分野を改善する能力を有する。
【0021】
前述したように、AOMedia Video 1(AV1)は、インターネットを介したビデオ伝送のために設計されたオープンビデオコーディングフォーマットである。それは、半導体企業、ビデオオンデマンドプロバイダー、ビデオコンテンツプロデューサー、ソフトウェア開発企業及びウェブブラウザーベンダーを含む、2015年に設立されたコンソーシアムであるAlliance for Open Media(AOMedia)によってVP9の後継として開発された。AV1では合計56の方向角があり、そのうち8つは公称角度であり、残りは公称角度からのデルタとして規定されている。しかしながら、コロケートされたルーマ予測モードに関係なく、全ての方向モードの公称角度及びデルタ角度の双方がクロマ成分のために伝達される。加えて、デルタ角度はルーマ及びクロマイントラ予測モードの両方で許容されているが、ルーマ及びクロマ成分の間でのデルタ角度の相関は用いられていない。したがって、56の角度値全てを伝達する代わりに、公称角度に基づいてルーマ成分からクロマ成分のためのデルタ角度値を導出することは有利であり得る。
【0022】
本明細書では、様々な実施形態に係る方法、装置(システム)及びコンピュータ読み取り可能媒体のフローチャート図及び/又はブロック図を参照して態様を説明する。フローチャート図及び/又はブロック図の各ブロック及びフローチャート図及び/又はブロック図のブロックの組み合わせは、コンピュータ読み取り可能プログラム命令によって実施できることが理解されよう。
【0023】
次に
図1を参照して、公称角度から導出されたデルタ角度を用いてビデオデータをエンコード及び/又はデコードするためのビデオコーディングシステム100(以下、「システム」と言う)を示す、ネットワークコンピュータ環境の機能ブロック図である。
図1は、1つの実施の説明を提供するだけであり、異なる実施形態が実施され得る環境に関するいかなる限定を含意するものではないことを理解されたい。図示の環境に対して、設計及び実施要件に基づき多くの変更が加えられ得る。
【0024】
システム100はコンピュータ102及びサーバコンピュータ114を含み得る。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバコンピュータ114と通信し得る。コンピュータ102は、プロセッサ104と、データ記憶装置106に記憶され、ユーザとのやりとり及びサーバコンピュータ114との通信を可能にするソフトウェアプログラム108とを含み得る。
図4を参照して後述するように、コンピュータ102は内部コンポーネント800A及び外部コンポーネント900Aのそれぞれを含み、サーバコンピュータ114は内部コンポーネント800B及び外部コンポーネント900Bをそれぞれ含み得る。コンピュータ102は、例えばモバイルデバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ又はプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意の種類のコンピュータ装置であり得る。
【0025】
サーバコンピュータ114は、
図6及び
図7に関して後述するように、ソフトウェアアズアサービス(SaaS)、プラットフォームアズアサービス(PaaS)又はインフラストラクチャアズアサービス(IaaS)等のクラウドコンピューティングサービスモデルでも動作し得る。サーバコンピュータ114は、プライベートクラウド、コミュニティクラウド、パブリッククラウド又はハイブリッドクラウド等のクラウドコンピューティング展開モデル内に位置し得る。
【0026】
ビデオデータをエンコードするために用いられ得るサーバコンピュータ114は、データベース112とやりとりし得るビデオエンコーディングプログラム116(以下、「プログラム」)を実行することができる。ビデオエンコーディングプログラム方法は、
図3に関して以下でより詳細に説明する。一実施形態では、コンピュータ102は、ユーザインターフェイスを含む入力装置として動作し得るのに対して、プログラム116は主としてサーバコンピュータ114上で動作し得る。代替的な実施形態では、プログラム116は主として1つ以上のコンピュータ102上で動作し得るのに対して、サーバコンピュータ114は、プログラム116によって用いられるデータの処理及び記憶のために用いられ得る。なお、プログラム116はスタンドアロンプログラムであり得るか又はより大きなビデオエンコーディングプログラムに統合され得る。
【0027】
しかしながら、プログラム116のための処理は、場合によっては、コンピュータ102及びサーバコンピュータ114との間で任意の比率で共有され得ることに留意されたい。別の実施形態では、プログラム116は、2つ以上のコンピュータ、サーバコンピュータ又はコンピュータ及びサーバコンピュータのいくつかの組み合わせ、例えばネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102で動作し得る。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作し得る。あるいは、プログラムは、ネットワークを介してサーバ及び複数のクライアントコンピュータと通信するネットワークサーバ上で動作し得る。
【0028】
ネットワーク110は、有線接続、無線接続、光ファイバ接続又はそれらのいくつかの組み合わせを含み得る。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との通信をサポートする接続及びプロトコルの任意の組み合わせとすることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネット等の広域ネットワーク(WAN)、公衆交換電話ネットワーク(PSTN)等の電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワーク等)、公衆陸上移動ネットワーク(PLMN)、大都市エリアネットワーク(MAN)、専用ネットワーク、アドホックネットワーク、イントラネット、光ファイバベースネットワーク等及び/又はこれらの又は他の種類のネットワークの組み合せといった様々な種類のネットワークを含み得る。
【0029】
図1に示す装置及びネットワークの数及び配置は一例として提供されている。実際には、
図1に示すものよりも、追加の装置及び/又はネットワーク、より少ない装置及び/又はネットワーク、異なる装置及び/又はネットワーク又は異なる配置の装置及び/又はネットワークが存在し得る。さらに、
図1に示す2つ以上の装置は単一の装置内で実施され得るか又は
図1に示す単一の装置は複数の分散装置として実施され得る。加えて又は代替的に、システム100の装置のセット(例えば、1つ以上の装置)は、システム100の装置の別のセットによって行われるものとして説明される1つ以上の機能を行い得る。
【0030】
次に
図2を参照して、AV1の公称角度を示す
図200を示す。VP9は、45度~207度までの角度に対応する8つの方向モードをサポートする。指向性テクスチャにおけるより多様な空間冗長性を利用するために、AV1では、指向性イントラモードをより細かい粒度の角度セットに拡張されている。AV1では、V_PRED、H_PRED、D45_PRED、D135_PRED、D113_PRED、D157_PRED、D203_PRED、D67_PREDを含む45~207度の8つの公称角度がある。各公称角度については、AV1が合計で56の方向角度を有し得るように、7つのより細かい角度があり得る。予測角度は、公称内角度に加えて角度デルタにより表され、3度のステップサイズに-3~3を乗じたものである。デルタ角度は、クロマ成分によって伝達される必要はなく、対応するルーマイントラ予測モードに従って導出され得る。
【0031】
AV1では、5つの非角度スムーズモードと共に8つの公称モードが先ず伝達され、次に、現在のモードが角度モードの場合に、インデックスがさらに伝達されて、対応する公称角度に対する角度デルタを示す。一般的な方法を介してAV1における方向予測モードを実施するために、AV1における56の方向イントラ予測モードの全てが、各ピクセルを参照サブピクセル位置に投影し、2タップ双線形フィルタにより参照ピクセルを補間する統一された方向予測子を用いて実施される。
【0032】
1つ以上の実施形態では、現在のクロマイントラ予測モードが方向性イントラ予測モードであり、クロマイントラ予測モードの公称角度が対応するルーマイントラ予測モードの公称角度と等しい場合、クロマ成分のデルタ角度は、ルーマイントラ予測モードのデルタ角度と等しく設定され得る。さもなければ、クロマ成分のデルタ角は0と等しく設定され得る。
【0033】
1つ以上の実施形態では、クロマ成分のデルタ角度は、ルーマとクロマとの公称モードが同じか異なるかにかかわらず、ルーマ成分のデルタ角度と等しく設定され得る。
【0034】
1つ以上の実施形態では、現在のクロマイントラ予測モードが方向性イントラ予測モードであり、クロマイントラ予測モードの公称角度が対応するルーマイントラ予測モードの公称角度と等しい場合、クロマ成分のデルタ角度は、ルーマイントラ予測モードのデルタ角度と等しく設定され得る。さもなければ、クロマイントラ予測モードの公称角度が対応するルーマブロックの左/上の隣接モードと等しい場合、クロマ成分のデルタ角度は対応するルーマブロックの左/上の隣接モードのデルタ角度と等しく設定され得る。さもなければ、クロマ成分のデルタ角度は0と等しく設定され得る。
【0035】
1つ以上の実施形態では、セミデカップリング分割が適用される場合に、1つのクロマブロックに関連する複数のルーマブロックが存在し得る。したがって、複数のサンプル位置が予め定義されてもよく、コロケートされた(co-located)ルーマブロックを予測するために、これらの位置に関連するデルタ角度及び公称角度が特定され得る。現在のクロマブロックのデルタ角度を導出するために、これらの特定された公称角度及びデルタ角度のうちの1つ以上が用いられ得る。1つの例では、予め定義されたサンプル位置は、左上及び/又は中央/中間サンプルを含み得る。別の例では、予め定義されたサンプル位置は4つのコーナーサンプル及び中央/中間サンプルを含み得る。別の例では、特定された予測モードの中で最も頻繁に用いられ得るデルタ角度が、クロマ成分のデルタ角度を導出するために用いられ得る。別の例では、予め定義されたサンプル位置は、4つのコーナーサンプル及び1つの中央/中間サンプルのうちの2つの選択された位置を含み得る。別の例では、予め定義されたサンプル位置は、4つのコーナーサンプル及び1つの中央/中間サンプルのうちの3つの選択された位置を含み得る。
【0036】
1つ以上の実施形態では、現在のクロマイントラ予測モードが方向性イントラ予測モードであり、クロマイントラ予測モードの公称角度が対応するルーマイントラ予測モードの公称角度と等しい場合、クロマ成分のデルタ角度はルーマイントラ予測モードのデルタ角度と等しく設定され得る。さもなければ、クロマイントラ予測モードの公称角度が現在のクロマブロックの左/上の隣接モードと等しい場合、クロマ成分のデルタ角度は現在のクロマブロックの左/上の隣接モードのデルタ角度と等しく設定され得る。さもなければ、クロマ成分のデルタ角度は0と等しく設定され得る。
【0037】
対応するルーマブロックのデルタ角度は、クロマイントラ予測モードのデルタ角度のエントロピーコーディングに用いられ得る。1つ以上の実施形態では、コロケートされたルーマブロックのデルタ角度は、クロマ成分のデルタ角度のエントロピーコーディングのためのコンテキストとして用いられ得る。1つ以上の実施形態では、隣接するクロマブロックのデルタ角度は、クロマ成分のデルタ角度のエントロピーコーディングのためのコンテキストとして用いられる。1つ以上の実施形態では、現在のクロマブロックのデルタ角度を伝達する代わりに、クロマブロック及び対応するルーマブロックのデルタ角度間の絶対差がクロマイントラ予測モードのエントロピーコーディングのために伝達され得る。1つ以上の実施形態では、上記の実施形態は、ルーマ及びクロマ間の公称モードが同じであり得るか又はこれらの2つのモード間の予測角度の絶対差が所与の閾値内にある場合にのみ適用される。
【0038】
1つ以上の実施形態によれば、クロマイントラ予測モードのエントロピーコーディングのために、現在のモードがクロマフロムルーマ(chroma from luma)(CfL)かどうかを示すために第1のフラグが伝達され得る。CfLが用いられていないことを示す値として第1のフラグが伝達された場合、現在のモードが対応するルーマブロックの公称モードと等しいかどうかを示すために第2のフラグが伝達され得る。現在のモードが対応するルーマブロックの公称モードと等しい場合に、現在のモードが方向性モードであり、デルタ角度が許容されているならば、デルタ角度のインデックスを示すために第3のフラグが伝達され得る。さもなければ、残りの公称モードのうちのどれが現在のモードであるかを示すために第3のフラグが伝達される。CfLが用いられていないことを示す値として第1のフラグが伝達される場合、CfLモードのパラメータがさらに伝達され得る。
【0039】
1つ以上の実施形態によれば、クロマイントラ予測モードのエントロピーコーディングのために、現在のモードが対応するルーマブロックの公称モード又はCfLモードと等しいかを示すために第1のフラグが伝達され得る。現在のモードが対応するルーマブロックの公称モード又はCfLモードに等しいことを示す値として第1のフラグが伝達される場合、2つのモードのうちのどちらが現在のモードであるかを示すために第2のフラグが伝達され得る。現在のモードが対応するルーマブロックの公称モードと等しい場合に、現在のモードが方向性モードであり、デルタ角度が許容されていると、デルタ角度のインデックスがさらに伝達され得る。現在のモードがCfLモードである場合、CfLモードのパラメータがさらに伝達され得る。現在のモードが対応するルーマブロックの公称モード又はCfLモードと等しくないことを示す値として第1のフラグが伝達される場合、残りの公称モードのうちどれが現在のクロマブロックに適用されるかを示すために第2のフラグが伝達され得る。
【0040】
1つ以上の実施形態では、第1のデルタ角度値は、クロマ成分の公称角度及びルーマ成分の公称角度が同じであるか又は互いに近いことに対応して、コロケートされたルーマブロックのデルタ角度をコンテキストとして用いることに基づいてエントロピーコード化され得る。公称角度間の差が2度以下の場合、公称角度は互いに近いものとしてもよい。デルタ角度値は、コロケートされたルーマブロックのデルタ角度をコンテキストとして用いることに基づいて又は隣接するクロマブロックのデルタ角度をコンテキストとして用いることに基づいてエントロピーコード化され得る。
【0041】
1つ以上の実施形態では、ルーマ及びクロマブロックのデルタ角度は、ルーマ及びクロマブロックのデルタ角度のうちで同じコンテキストを共有する代わりに、エントロピーコーディングのために別々のコンテキストが用いられ得ることが理解されよう。
【0042】
次に、
図3を参照して、ビデオデータをエンコード及び/又はデコードするための方法300のステップを示す動作フローチャートを示す。一部の実施では、
図3の1つ以上のプロセスブロックは、コンピュータ102(
図1)及びサーバコンピュータ114(
図1)によって行われ得る。一部の実施では、
図3の1つ以上のプロセスブロックは、コンピュータ102及びサーバコンピュータ114とは別個の又は含む、別の装置又は装置のグループによって行われ得る。
【0043】
302では、方法300は、(1)第1の公称角度及び第1のデルタ角度を有するクロマ成分と、(2)第2の公称角度及び第2のデルタ角度を有するルーマ成分とを含むビデオデータを受信することを含む。第1のデルタ角度は第2のデルタ角度に依存する。
【0044】
304では、方法300は、ルーマ成分に関連するイントラ予測モードに少なくとも基づいて、第1のデルタ角度のための第1のデルタ角度値を伝達することを含む。
【0045】
306では、方法300は、第1のデルタ角度に対応する第1のデルタ角度値に基づいてビデオデータをエンコード及び/又はデコードすることを含む。
【0046】
図3は、1つの実施の例示のみを提供し、異なる実施形態がどのように実施され得るかに関する限定を含意するものではないことが理解されよう。設計及び実施要件に基づいて、図示の環境に対して多くの変更が加えられ得る。
【0047】
図4は、例示の実施形態に係る、
図1に示すコンピュータの内部及び外部コンポーネントのブロック
図400である。
図4は、1つの実施の例示のみを提供し、異なる実施形態がどのように実施され得るかに関する限定を含意するものではないことが理解されよう。設計及び実施要件に基づいて、図示の環境に対して多くの変更が加えられ得る。
【0048】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図4に示す内部コンポーネント800A、B及び外部コンポーネント900A、Bのそれぞれのセットを含み得る。内部コンポーネント800の各セットは、1つ以上のバス826上にある1つ以上のプロセッサ820、1つ以上のコンピュータ読み取り可能RAM822及び1つ以上のコンピュータ読み取り可能ROM824と、1つ以上のオペレーティングシステム828と、1つ以上のコンピュータ読み取り可能有形記憶装置830を含む。
【0049】
プロセッサ820は、ハードウェア、ファームウェア又はハードウェア及びソフトウェアの組み合わせにおいて実施される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSPP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)又は別のタイプの処理コンポーネントである。一部の実施では、プロセッサ820は、機能を行うためにプログラム可能な1つ以上のプロセッサを含む。バス826は、内部コンポーネント800A、B間の通信を可能にするコンポーネントを含む。
【0050】
サーバコンピュータ114(
図1)上の1つ以上のオペレーティングシステム828、ソフトウェアプログラム108(
図1)及びビデオエンコーディングプログラム116(
図1)は、(通常はキャッシュメモリを含む)それぞれのRAM822の1つ以上を介したそれぞれのプロセッサ820の1つ以上による実行のために、それぞれのコンピュータ読み取り可能有形記憶装置830のうちの1つ以上に記憶される。
図4に示す実施形態では、コンピュータ読み取り可能有形記憶装置830のそれぞれは、内部ハードドライブの磁気ディスク記憶装置である。あるいは、コンピュータ読み取り可能有形記憶装置830のそれぞれは、ROM824、EPROM、フラッシュメモリ等の半導体記憶装置、光ディスク、光磁気ディスク、固体ディスク、コンパクトディスク(CD)、デジタル汎用ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ及び/又はコンピュータプログラム及びデジタル情報を記憶可能な他の種類の非一時的コンピュータ読み取り可能有形記憶装置等である。
【0051】
内部コンポーネント800A、Bの各セットは、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶装置等の1つ以上のポータブルコンピュータ読み取り可能有形記憶装置936から読み書きするためのR/Wドライブ又はインターフェイス832も含む。ソフトウェアプログラム108(
図1)及びビデオエンコーディングプログラム116(
図1)等のソフトウェアプログラムは、それぞれのポータブルコンピュータ読み取り可能有形記憶装置936のうちの1つ以上に記憶され、それぞれのR/Wドライブ又はインターフェイス832を介して読み出され、それぞれのハードドライブ830にロードすることができる。
【0052】
内部コンポーネント800A、Bの各セットは、TCP/IPアダプタカード、無線Wi-Fiインターフェイスカード又は3G、4G若しくは5G無線インターフェイスカード又は他の有線若しくは無線通信リンク等のネットワークアダプタ又はインターフェイス836も含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)及びビデオエンコーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他のワイドエリアネットワーク)及びそれぞれのネットワークアダプタ又はインターフェイス836を介して、外部コンピュータからコンピュータ102(
図1)及びサーバコンピュータ114にダウンロードすることができる。ネットワークアダプタ又はインターフェイス836から、サーバコンピュータ114上のソフトウェアプログラム108及びビデオエンコーディングプログラム116がそれぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含み得る。
【0053】
外部コンポーネント900A、Bの各セットは、コンピュータ表示モニタ920、キーボード930及びコンピュータマウス934を含むことができる。外部コンポーネント900A、Bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス及び他のヒューマンインターフェイスデバイスも含むことができる。内部コンポーネント800A、Bの各セットは、コンピュータ表示モニタ920、キーボード930及びコンピュータマウス934とやりとりするためにデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインターフェイス832及びネットワークアダプタ又はインターフェイス836は、ハードウェア及び(記憶装置830及び/又はROM824に記憶された)ソフトウェアを含む。
【0054】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載の教示の実施は、クラウドコンピューティング環境に限定されないことが予め理解される。むしろ、一部の実施形態は現在知られているか又は後に開発される任意の他の種類のコンピューティング環境と共に実施可能である。
【0055】
クラウドコンピューティングは、構成可能なコンピューティングリソースの共有プール(ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン及びサービス)への便利なオンデマンドのネットワークアクセスを可能にするためのサービスデリバリーのモデルであり、最小限の管理努力又はサービス提供者とのやりとりで迅速に提供及びリリース可能である。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル及び少なくとも4つの展開モデルを含み得る。
【0056】
特徴は以下の通りである。
【0057】
オンデマンドセルフサービス:クラウド利用者は、サービスプロバイダとの人的なやりとりを必要とせずに、サーバの時間及びネットワークストレージ等のコンピューティング機能を必要に応じて一方的にセットアップできる。
【0058】
幅広いネットワークアクセス:機能はネットワークを介して利用可能であり、異種の薄型又は厚型のクライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
【0059】
資源の共有:プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数の利用者にサービスを提供するためにプールされ、デマンドに応じて物理リソース及び仮想リソースが動的に割り当て及び再割り当てされる。利用者は、一般に、提供されるリソースの正確な位置に関する知識又は制御を持たないが、より高いレベルの抽象化(例えば、国、州、データセンタ)で位置を特定することができるという点で、場所の独立性の感覚がある。
【0060】
迅速な弾力性:機能を迅速に且つ弾性的に、場合によっては自動で提供して、素早くスケールアウトし、迅速にリリースして素早くスケールインできる。利用者にとって、プロビジョンのために利用可能な機能はしばしば無制限であるように見え、いつでも任意の数を購入できる。
【0061】
計測可能なサービス:クラウドシステムは、サービスの種類(例えば、ストレージ、処理、帯域幅、及びアクティブユーザーアカウント)に適したある抽象化レベルで計測機能を利用することにより、リソースの使用を自動的に制御及び最適化する。リソースの使用を監視、制御及び報告することにより、プロバイダ及び利用サービスの利用者の双方に透明性を提供できる。
【0062】
サービスモデルは次の通りである。
【0063】
ソフトウェアアズアサービス(SaaS):利用者に提供される機能は、クラウドインフラ上で動作するプロバイダのアプリケーションを用いることである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインターフェイスを介して様々なクライアント装置からアクセス可能である。利用者は、場合によってはユーザ固有のアプリケーション構成設定を例外として、ネットワーク、サーバ、オペレーティングシステム、ストレージ又は個々のアプリケーション機能を含む根底のクラウドインフラを管理又は制御しない。
【0064】
プラットフォームアズアサービス(PaaS):利用者に提供される機能は、プロバイダによってサポートされるプログラミング言語及びツールを用いることにより作成された利用者作成又は取得アプリケーションをクラウドインフラ上に配備することである。利用者は、ネットワーク、サーバ、オペレーティングシステム又はストレージを含む根底のクラウドインフラを管理又は制御しないが、配備されたアプリケーション及び場合によってアプリケーションホスティング環境設定に対する制御を有する。
【0065】
インフラストラクチャアズアサービス(IaaS):利用者に提供される機能は、処理、ストレージ、ネットワーク及び他の基本的なコンピューティングリソースを提供することであり、利用者は、オペレーティングシステム及びアプリケーションを含む任意のソフトウェアを配備及び実行できる。利用者は根底のクラウドインフラを管理又は制御しないが、オペレーティングシステム、ストレージ、配備されたアプリケーションに対する制御を有し、場合によってはネットワーキングコンポーネント(例えば、ホストファイヤーウォール)の選択に限定的な制御を有する。
【0066】
配備モデルは以下の通りである
プライベートクラウド:クラウドインフラは組織だけのために運用される。組織又は第三者によって管理され、敷地内又は敷地外に存在し得る。
【0067】
コミュニティクラウド:クラウドインフラはいくつかの組織によって共有され、共通の関心事(例えば、ミッション、セキュリティ要件、ポリシー及びコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。組織又は第三者によって管理され、敷地内又は敷地外に存在し得る。
【0068】
パブリッククラウド:クラウドインフラは一般大衆又は大規模な業界団体が利用可能であり、クラウドサービスを販売する組織によって所有される。
【0069】
ハイブリッドクラウド:クラウドインフラスは、2つ以上のクラウド(プライベート、コミュニティ又はパブリック)から構成され、ユニークなエンティティとして留まるが、データ及びアプリケーションポータビリティを可能にする標準化された又は独自の技術(例えば、クラウド間の負荷分散のためのクラウドバースト)によって結合されている。
【0070】
クラウドコンピューティング環境は、無国籍状態、低連結性、モジュール性及び意味論的相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの核心は、相互接続されたノードのネットワークからなるインフラである。
【0071】
図5を参照して、例示のクラウドコンピューティング環境500を示す。図示のように、クラウドコンピューティング環境500は、例えば、パーソナルデジタルアシスタント(PDA)又は携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C及び/又は自動車コンピュータシステム54N等のクラウド利用者によって用いられるローカルコンピュータ装置が通信し得る1つ以上のクラウドコンピューティングノード10を含む。クラウドコンピューティングノード10は互いに通信し得る。それらは、上述したプライベート、コミュニティ、パブリック又はハイブリッドクラウド等の1つ以上のネットワーク又はそれらの組み合わせに物理的又は仮想的にグループ化され得る。これにより、クラウドコンピューティング環境600は、クラウド利用者がローカルコンピュータ装置上でリソースを維持する必要のないインフラストラクチャ、プラットフォーム及び/又はソフトウェアアズアサービスを提供できる。
図5に示す種類のコンピュータ装置54A~54Nは例示に過ぎず、クラウドコンピューティングノード10及びクラウドコンピューティング環境500は、任意のタイプのネットワーク及び/又はネットワークアドレス可能接続を介して(例えば、ウェブブラウザを用いて)任意の種類のコンピュータ装置と通信できることが分かる。
【0072】
図6を参照して、クラウドコンピューティング環境500(
図5)によって提供される一式の機能抽象化層600を示す。
図6に示す構成要素、層及び機能は例示に過ぎず、実施形態はそれに限定されないことを予め理解されたい。図示のように、以下の層及び対応する機能が提供される。
【0073】
ハードウェア及びソフトウェア層60はハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例としては、メインフレーム61、RISC(最小命令セットコンピュータ)アーキテクチャベースサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65及びネットワーク及びネットワーキングコンポーネント66を含む。一部の実施形態では、ソフトウェアコンポーネントはネットワークアプリケーションサーバーソフトウェア67及びデータベースソフトウェア68を含む。
【0074】
仮想化層70は、例えば、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74及び仮想クライアント75等の仮想エンティティが提供され得る抽象化層を提供する。
【0075】
1つの例では、管理層80は以下で説明する機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを行うために利用されるコンピューティングリソース及びその他のリソースの動的な調達を提供する。計測及びプライシング82は、クラウドコンピューティング環境内でリソースが利用されるときのコストを追跡し、これらのリソースの消費に対する課金又は請求を提供する。1つの例では、これらのリソースはアプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウド利用者及びタスクのための身元確認と、データ及びその他のリソースの保護を提供する。ユーザポータル83は、利用者及びシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)プランニング及びフルフィルメント85は、SLAに従って将来の要件が予測されるクラウドコンピューティングリソースの事前の取り決め及び調達を提供します。
【0076】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能の例を提供する。この層から提供されるワークロード及び機能の例は、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95及びビデオエンコーディング/デコーディング96を含む。ビデオエンコーディング/デコーディング96は、公称角度から導出されたデルタ角度を用いてビデオデータをエンコード/デコードし得る。
【0077】
図7は、例示の実施形態に係る、AVIにおける非方向性のスムーズイントラ予測子に関する特徴のブロック
図700である。例えば、AV1では、DC、PAETH、SMOOTH、SMOOTH_V、SMOOTH_Hの5つの非方向性のスムーズイントラ予測モードがある。DC予測の場合、予測すべきブロックの予測子として左及び上の隣接するサンプルの平均が用いられる。PAETHの予測子のために、上、左、左上の参照サンプルが先ず取り出され、次に(上+左-左上)に最も近い値が予測すべきピクセルの予測子として設定される。
図7は、現在のブロックにおける1つのピクセルのための上、左及び左上のサンプルの位置を示す。SMOOTH、SMOOTH_V、SMOOTH_Hのモードでは、それらは垂直又は水平方向の2次補間又は両方向の平均を用いてブロックを予測する。
【0078】
図8は、例示の実施形態に係る、再帰的イントラフィルタリングモードに関する特徴のブロック
図800である。例えば、エッジを参照して減衰空間相関を捉えるために、FILTER INTRAモードはルーマブロックのために設計されている。5つのフィルタイントラモードがAV1のためにあらかじめ設計され、それぞれは、4x2パッチ内のピクセルと、それと隣り合う7つ隣接ピクセルとの間の相関を反映する8つの7タップフィルタのセットによって表される。すなわち、7タップフィルタの重み付け係数は位置に依存する。8x8ブロックを一例にとると、それが
図8に示す8つの4x2パッチに分割される。これらのパッチは、
図8においてB0、B1、B1、B3、B4、B5、B6及びB7によって示される。各パッチについて、R0~R7によって示される7つの隣接ピクセルが現在のパッチ内のピクセルを予測するために用いられる。パッチB0の場合、全ての隣接ピクセルは既に再構成されている。しかし、他のパッチの場合には、隣接ピクセルのうちの一部は再構成されておらず、直ぐに隣接したピクセルの予測値が参照として用いられる。例えば、パッチB7の全ての隣接ピクセルは再構成されていないため、隣接ピクセルの予測サンプルが代わりに用いられる。
【0079】
クロマフロムルーマ(CfL)は、クロマピクセルを、同時再構成ルーマピクセルの線形関数としてモデル化するクロマのみのイントラ予測子である。CfL予測は次のように表される(「式1」)。
CfL(α)=α×LAC+DC 式(1)
ここで、LACはルーマ成分のAC寄与度(AC contribution)であり、αは線形モデルのパラメータであり、DCはクロマ成分のDC寄与度(DC contribution)を表す。具体的には、再構成されたルーマピクセルがクロマ解像度にサブサンプルされ、次に平均値を差し引いてAC寄与度が形成される。クロマAC成分をAC寄与度から近似するために、一部の先行技術のようにデコーダにスケーリングパラメータを算出することを要求する代わりに、AV1 CfLは、元のクロマピクセルに基づいてパラメータαを求め、それらをビットストリームで伝達する。これは、デコーダの複雑さを低減し、より正確な予測をもたらす。クロマ成分のDC寄与度に関しては、イントラDCモードを用いて計算され、ほとんどのクロマコンテンツにとって十分であり、成熟した高速実施を有する。
【0080】
図9は、例示の実施形態に係る、多層参照フレーム構造に関する特徴のブロック
図900である。例えば、VP9の3つの参照フレーム、すなわちLAST(最も近い過去)、GOLDEN(遠い過去)、ALTREF(一時的にフィルタリングされた将来)フレームに加えて、以下の4つの種類の参照フレームがある拡張された参照フレームがあり得る。
・LAST2及びLAST3:2つの近い過去のフレーム
・BWDREF、ALTREF2:2つの将来フレーム
・BWDREFは、時間的フィルタリングなしでコード化された先読みフレームであり、比較的短距離の後方参照としてより有用である。
・ALTREF2は、GOLDENとALTREFとの間のフィルタリングされた中間将来参照である。
【0081】
図10は、例示の実施形態に係る、候補動きベクトルリスト構築に関する特徴のブロック
図1000である。例えば、動的な空間的及び時間的動きベクトル参照では、AV1は動きベクトルを効率的にコード化するために動きベクトル参照選択方式を組み込む。時間的動きベクトル参照候補を見つけるために、それは、その前任のVP9よりも広い空間的隣接に加えて動きフィールド推定プロセスを用いる。
【0082】
図11は、例示の実施形態に係る、動きフィールド推定に関する特徴の直線
図1100である。例えば、動きフィールド推定プロセスは、各64×64処理ユニットを通過する8×8ブロック解像度における全ての動き軌道について、コロケーションされた128×128領域を検索する。例えば、
図11では、動きベクトルMV
Ref2は、前述のプロセスに続いて探索され、MV
0及びMV
1等の予測動きベクトルが導出される。全ての候補動きベクトルが見つかると、それらはソートされ、マージされ、ランク付けされて4つの最終候補が築かれる。次いで、AV1は、リストから選択された参照動きベクトルのインデックスを伝達し、任意で動きベクトル差をコード化する。
【0083】
図12は、例示の実施形態に係る、オーバーラップブロック動き補償(OMBC)のためのオーバーラップ領域に関する特徴のブロック
図1200である。例えば、隣接する動きベクトルから得られた予測を組み合わせることによりブロック境界の周りでの予測誤差を低減するために、AV1は、垂直及び水平方向のそれぞれに一次元フィルタを適用することにより、ブロックベース予測と、上端及び左端からの二次予測子を漸進的に組み合わせる。一例として、
図12において、予測ブロック0の影付き領域は、一次元二乗余弦フィルタを介して再帰的に混合予測サンプルを生成することによって予測される。
図12は、上側隣接ブロック2及び左側隣接ブロック4をそれぞれ用いて予測される影付き領域を示す。
【0084】
図13は、例示的実施形態による、例示の実施形態に係る、歪曲動き補償(warped motion compensation)に関する特徴のブロック
図1300である。例えば、AV1は、2つのアフィン予測モデル、すなわち、グローバル及び局所歪曲動き補償を導入する。前者はフレームとその参照との間のフレームレベルアフィンモデルを伝達するのに対して、後者は、局所的な動きの変化を最小のオーバヘッドで暗黙的に処理する。局所的な動きパラメータを、原因隣接からの2D動きベクトルを用いてブロックレベルで導出される。このアフィンモデルは、1/64ピクセル精度での8タップ補間フィルタに基づく連続水平及び垂直剪断動作を介して実現される。
図13は、水平せん断と、それに続く垂直方向の2段階のワーピングプロセスを示す。
【0085】
図14は、例示の実施形態に係る、アドバンストコンパウンド予測に関する特徴のブロック
図1400である。例えば、実施形態によれば、AV1は、各ピクセル位置(i,j)で以下のようなより汎用的な予測を可能にし得る(「定義1」)。
【0086】
【数1】
p
1及びp
2は2つの予測であり、m(i,j)は予め定義されたテーブルからルックアップされた[0、1]における重み付け係数である。
【0087】
コンパウンドウェッジ予測の場合、AV1では16の可能なウェッジパーティションの予め定義されたセットが提供され、その選択されたウェッジインデックスが伝達される。その方向は水平方、垂直及び正方形ブロック及び長方形ブロックの両方のための傾斜が±2又は±0.5の斜めを含む。スプリアスアーチファクトを軽減するために、ソフトクリフ状の2Dウェッジマスクが用いられる。
【0088】
差分変調マスク予測(difference modulated masked prediction)の場合、実施形態によれば、AV1は、予測の一部の領域が、1つの予測から他方の予測よりも大きくなることを可能にし得る。より具体的には、以下の形態のマスクが用いられる(「定義2」)。
【0089】
【数2】
bは第1の予測子の影響を制御し、aはスムーズな変調を保証する。
【0090】
フレーム距離ベースのコンパウンド予測の場合、実施形態によれば、AV1は、2つのフレームのタイムスタンプ間の絶対差として定義される、フレーム距離を説明する修正重み付けスキームを含み得る。時間的距離だけでなく、複数の参照の効果の平均化を介した量子化ノイズの低減を考慮するために、AV1は、以下のように、遠隔予測子にやや重みをつけながら、フレーム距離に基づくスキーム用いる(「定義3」及び「定義4」)。
【0091】
【0092】
【数4】
pはフレーム距離に基づく予測であり、p
1とp
2は2つの参照フレームからの予測値である。重み(w
1、w
2)は上記のように決定され、d
1及びd
2は、2つの参照からの現在のフレームの距離を表す。
【0093】
コンパウンドインターイントラ予測の場合、実施形態によれば、AV1はイントラ及びインター予測を組み合わせることができ、イントラ部分のために4つの頻繁に用いられるイントラモードがサポートされる。このモードに関連するマスクは(i)インターインターモードに用いられるものと同様のスムーズウェッジマスク、(ii)イントラモードの主方向に沿って減衰するモード依存マスクの2種類である。
【0094】
例示の実施形態によれば、各変換ユニットについて、AV1係数コーディングは、スキップサインを伝達することから始まり、スキップサインがゼロの場合に変換カーネルタイプ及びエンドオブブロック(eob)位置の伝達が後に続く。次に、各係数値が複数レベルのマップ及びサインにマップされる。
【0095】
eob位置がコード化された後、下位レベルマップ及び中位レベルマップが逆スキャン順序でコード化され、前者は、係数の大きさが0から2の間であるかを示し、後者は範囲が3から14の間であるかを示す。次のステップは、順走査順序で、係数のサインと、14よりも大きい係数の残差値をExp-Golombコードでコード化する。
【0096】
コンテキストモデリングの使用に関して、下位レベルマップコーディングは、変換サイズ及び方向に加えて、最大で5つの隣接係数情報を組み込む。他方、中位レベルマップコーディングは、隣接係数の数が2つに減少することを除いて、下位レベルマップコーディングと同様のアプローチをとる。残差レベルのためのExp―Golombコードに加えてAC係数のサインはコンテキストモデルなしでコード化され、DC係数のサインは隣接変換ユニットのDCサインを用いてコード化される。
【0097】
VVCドラフト6は、クロマ残差が一緒にコード化されるモードをサポートする。ジョイントクロマコーディングモードの使用(起動)はTUレベルフラグtu_joint_cbcr_residual_flagで示され、選択されたモードはクロマCBFによって暗黙的に示される。フラグtu_joint_cbcr_residual_flagは、TUのためのクロマCBFのいずれか又は両方が1と等しい場合に存在する。PPS及びスライスヘッダでは、通常のクロマ残差コーディングモードのために伝達されるクロマQPオフセット値と区別するために、クロマQPオフセット値がジョイントクロマ残差コーディングモードのために伝達される。これらのクロマQPオフセット値は、ジョイントクロマ残差コーディングモードを用いてコード化されたブロックのためのクロマQP値を導出するために用いられる。対応するジョイントクロマコーディングモード(表1のモード2)がTUにおいてアクティブな場合、このクロマQPオフセットは、そのTUの量子化及びデコーディングの間に、適用されたルーマ導出クロマQPに追加される。他のモード(表1のモード1及び3)については、クロマQPは、従来のCb又はCrブロックの場合と同じ方法で導出される。送信された変換ブロックからのクロマ残差(resCb及びresCr)の再構成プロセスを表1に示す。このモードが起動されると、1つの単一のジョイントクロマ残差ブロック(表1内のresJointC[x][y])が伝達され、Cbのための残差ブロック(resCb)及びCrのための残差ブロック(resCr)は、tu_cbf_cb、tu_cbf_cr及び
Csign(スライスヘッダで指定されたサイン値)等の情報を考慮して導出される。
【0098】
上述の3つのジョイントクロマコーディングモードはイントラコード化CUのみでサポートされる。インターコード化CUでは、モード2のみがサポートされる。そのため、インターコード化CUの場合、構文要素tu_joint_cbcr_residual_flagは、両方のクロマcbfsが1の場合にのみ存在する。以下の表1はクロマ残差の再構成を示し、値Csignはスライスヘッダで指定されるサイン値(+1又は-1)であり、resJointC[][]は送信された残差である。
【0099】
【0100】
【0101】
図16は、例示の実施形態に係る、3Dキューブとして一体化された残差に関する特徴の空間図である。
図16の特徴及び本明細書で他の図面に関して説明した特徴は別々に用いられるか又は任意の順序で組み合わせて用いられる。また、方法(又は実施形態)、エンコーダ及びデコーダのそれぞれは、処理回路(例えば、1つ以上のプロセッサ又は1つ以上の集積回路)によって実施され得る。1つの例では、1つ以上のプロセッサは非一時的コンピュータ読み取り可能媒体に記憶されたプログラムを実行する。1つ以上のN1xN2Cb予測残差ブロックと、それに対応するCr予測残差ブロックがS151で入力として与えられるものとする。
【0102】
S151では、2つのN1xN2Cb及びCr予測残差信号ブロックが、サイズMxLの別の1つ以上の信号ブロックに変換され、MxLは2xN1xN2以下である。しかしながら、1つ以上の変更がS151で置き換えられ得るか又は追加され得る。
【0103】
例えば、上述の圧縮に関する技術的課題の改善は、クロマ予測残差と類似の信号との間の冗長性を取り除く本明細書で説明する変換によって影響を受け得る。
【0104】
例えば、例示の実施形態によれば、N1xN2Cb残差ブロック及びその対応するCr残差ブロックを1つのブロックにまとめられ、この1つのブロックに対して1つの変換が行われる。サイズLxMの変換係数を実現するために、様々な走査順序によって各入力チャネルを別々にベクトル化する2D変換が存在し得る(本明細書では「タイプI」)。上述の走査順序に加えて、インターリーブによる2つの入力チャネルのベクトル化が存在する2D変換があり得る(本明細書では「タイプII」)。
【0105】
タイプI及びタイプIIのより具体的な実施形態として、
・(2xN1xN2)×(2xN1xN2)KLT(カルーネン・レーベ変換)
・縮小寸法KLT(RD-KLT)、
・RD-KLTの分離近似、
・ギブンス/置換(Givens/Permutation)マトリックス分解、及び
・三角変換の組み合わせ
のうちの1つ以上に関する例示の実施形態に従った2つのN1xN2変換係数ブロックの別々のコード化があり得る。
【0106】
一実施形態では、S151でCbとCrとを1つのブロックにまとめる場合、Cb及びCrの残差は、ジグザグ、ラスタ又は対角走査順序に続いて別々にベクトル化され、次いで、連結されて(2xN1xN2)×1ベクトルが形成される。それは(LxM)×(2xN1xN2)行列によって変換され、サイズ(LxM)×1の信号ブロックが形成される。その係数が量子化され、量子化された指数が伝達される。デコーディングプロセスは指数を逆量子化し、それらを(2xN1xN2)×(LxM)行列により逆変換して、再構成されたCb及びCr残差ブロックに逆走査可能な再構成された2xN1xN2ベクトルを得る。
【0107】
一実施形態では、S151でCb及びCrを1つのブロックにまとめる場合、Cb残差ブロック及びその対応するCr残差ブロックは、ジグザグ、ラスタ又は対角走査順序に続いて残差ブロックから各サンプルが取られて、インターリーブ方式でベクトル化され(すなわち、Cbからの1つのサンプル及びCrからの次のサンプル)、(2xN1xN2)×1ベクトルが形成される。次に、それは(LxM)×(2xN1xN2)行列によって変換されて、サイズ(LxM)×1の変換信号ブロックが形成される。その係数が量子化され、量子化された指数が伝達される。デコーディングプロセスは指数を逆量子化し、それらを(2xN1xN2)×(LxM)行列により逆変換して、再構成されたCb及びCr残差ブロックに逆走査可能な再構成された2xN1xN2ベクトルを得る。
【0108】
一実施形態では、S151で、LxM=2xN1xN2の設定もあり、変換の出力は2つのN1xN2ブロックにさらに分割され、これらのブロックがS153で別々にさらに量子化され、デコードされるか又はビットストリームにエントロピーコード化される。
【0109】
一実施形態では、LxMが2xN1xN2と等しい場合、S151で、上記の変換行列はサイズが(2xN1xN2)×(2xN1xN2)であり、KLT(カルーネン・レーベ変換)として求めることができる。2xN1xN2×1インプットベクトル信号X(平均除去されてゼロ平均(zero-mean)であると仮定する)とした場合、(2xN1xN2)×(2xN1xN2)共分散行列
【0110】
【0111】
RxxIj=λjIj 式(2)
ここで、λj及びIjはj番目の固有値であり、RXXの対応する固有ベクトルである。
【0112】
KLT行列Hは、その行として上記の固有ベクトルを有し、以下のようにXをYに変換する(「式3」)。
【0113】
Y=HX 式(3)
【0114】
【0115】
Yの要素は無相関であり、それらの分散は固有値と等しい。加えて、Hは、入力信号ベクトルXが下記のように復元されるように直交変換される(式4)。
X=HTY 式(4)
一実施形態では、S151で、(LxM)×(2xN1xN2)行列は、KLTの(2xN1xN2)基底ベクトルからLxM最大固有値に対応するLxM固有ベクトルのみを選択することによって求めることができる。
【0116】
一実施形態では、S151で、上記で求められた(LxM)×(2xN1xN2)KLTがその分離可能な近似値により近似することができる。例えば、前記KLT行列Hは、以下の最適化問題(「問題1」)を解くことによって近似することができる。
【0117】
【数7】
ここで、Sは分離可能な行/列の行列であり、P
1及びP
2は求められる置換行列である。
【0118】
一実施形態では、S151で、上記(LxM)×(2xN1xN2)の行列は、ギビンズ回転行列及び/又は置換行列の複数の段階として構築できる。例えば、前記KLT行列Hは、以下の最適化問題(「問題2」)を解くことによって近似することができる。
【0119】
【0120】
【数9】
は複数の段階の連結であり、各段階はギブンス回転行列と置換行列及びその逆数の積からなる。
【0121】
一実施形態では、S151で、前記(LxM)×(2xN1xN2)行列は、一組のDCT/DST変換から適応的に構築できる。
【0122】
S154で、N1xN2Cb残差ブロック及びそれに対応するCr残差ブロックは、
図16においてキュービック1600で示すように、一緒にされて1つの2xN1xN2三次元(3D)立方体にされているかどうか判定され、そうである場合は、S155でこの1つのキュービックに対して3D変換が行われる。
【0123】
例示の実施形態によれば、これらの説明された特徴とともに用いられる、完全に分離可能な3D変換及び1D+2D変換のいずれかが存在し得る。
【0124】
一実施形態では、S155で、この三次元(3D)変換は3つの軸に沿って別々に行うことができる。すなわち、x軸に沿ってN1x1ベクトルのそれぞれのためにN1点1D変換が行われ、y軸に沿ってN2x1ベクトルのそれぞれのためにN2点1D変換が行われ、z軸に沿って2x1ベクトルのそれぞれのために別の2点1D変換が行われる。これらの変換の適用順序は任意であり得る。
【0125】
一実施形態では、S155で、この三次元(3D)変換は、z軸に沿って別々に行うことができる一方で、任意の2D変換がx-y平面に対して行われる。すなわち、z軸に沿って2x1ベクトルのそれぞれに対して2点1D変換が行われる一方で、(N1xN2)変換がx-y平面に対して行われる。
【0126】
S156で、場合に、S152に関して説明した変換のうちの1つ以上を、入力がクロマ予測残差の一次変換係数である二次変換としてさらに適用するかどうかが判断され得る。
【0127】
例えば、各N1xN2クロマ残差に対して、それはK1変換係数のみを必要とし、これらの2つのK1係数が連結されて、S152に関して説明した二次変換への入力を形成され、特定の例示の実施形態は、
・二次変換が適用される一次変換の種類に対する制限、
・二次変換に対する入力の特定の係数の取り除き(zeroing out)、
・一次変換のみの係数と残りとの別々のコーディング
のうちの1つ以上を含む。
【0128】
S156からそうである場合、一実施形態では、S156からのS152で、順方向二次変換の入力は、変換されたCb残差及びCr残差それぞれからの順方向走査順序に沿った2組の第1のK1(K1<=N1xN2)係数の連結であり、サイズK2×(2xK1)の順方向二次変換の出力は、同じ2組のK1入力係数を置き換える1組のK2係数である。この組のK2係数は、二次変換が適用されない2組の(N1xN2-K1)係数とは別個にエントロピーコード化される。サイズ(2xK1)×K2の逆二次変換の入力は、サイズK2×1の量子化された係数ベクトルであり、逆二次変換の出力は、サイズ(2xK1)の係数ベクトルであり、それから各K1係数は、個別にエントロピー符号化された(N1xN2-K1)係数のそれぞれと連結される。一実施形態では、係数に関連する座標(x、y)が、x+yが所与の閾値T以上という条件を満たす場合、係数は常に0として設定される。Tの例示の値は、限定されないが、0~32の整数を含む。一実施形態では、一次変換及び二次変換の両方を適用する係数と、一次変換のみを適用する係数とは別々にコード化される。すなわち、一次及び二次変換の両方を適用する係数は最初にコード化され、一次変換のみを適用する係数が次にコード化されてもよく、逆も同様である。
【0129】
フローダイヤグラム1500をクロマに関して説明してきたが、フローダイヤグラム1500が他の実施形態を含み得ることも本明細書に開示される。一実施形態では、前記方法は、クロマ予測残差のいずれか一方を有するルーマ予測残差に適用される。一実施形態では、前記方法は、適用可能な場合には、任意のマルチコンポーネント信号のうちの選択された2つの成分の間で適用される。一実施形態では、M入力ブロックを連結することにより、S152の方法及びS152~S156の方法のいずれかをM成分シグナル全体に適用することができる。一実施形態では、S155に関する方法は、M次元変換を行うことによって、M成分信号全体に適用できる。
【0130】
すなわち、ルーマからの残差をクロマの残差を相関させることができるように、他の種類のマルチチャネル信号に一般化されてもよく、一般的マルチチャネル信号も有益であり、2D変換(S152)及び二次変換(S152~S156)の方法は、M入力ブロックを連結してMチャネル信号の場合の入力を形成することにより適用でき、M次元変換が適用され得る。
【0131】
出力153は、本明細書に記載され、
図17~
図19に関して以下でさらに説明する特徴によるコーディング及びデコーディングのうちの1つ以上に関する出力であり得る。
【0132】
図17は、開示の主題の適用例として、ストリーミング環境におけるビデオエンコーダ及びデコーダの配置を示す。開示の主題は、例えば、ビデオ会議、デジタルTV、CD、DVD、メモリスティック等を含むデジタル媒体への圧縮ビデオの記憶等を含む、他のビデオが使用可能な用途にも同様に適用できる。
【0133】
ストリーミングシステムは、例えば非圧縮ビデオサンプルストリーム1713を生成するビデオソース1701、例えばデジタルカメラを含むことができるキャプチャサブシステム1703を含み得る。このサンプルストリーム1713は、エンコードされたビデオビットストリームと比較した場合に、高データボリュームであることが強調され、カメラ1701に連結されるエンコーダ1702によって処理することができる。エンコーダ1702は、以下でより詳細に説明するように、開示の主題の態様を有効又は実施するために、ハードウェア、ソフトウェア又はその組み合わせを含むことができる。サンプルストリームと比較した場合に、低データボリュームであることが強調され得るコード化ビデオビットストリーム1704は、将来の使用のためにストリーミングサーバ1705に記憶できる。1つ以上のストリーミングクライアント1712及び1707は、コード化ビデオビットストリーム1704のコピー1708及び1706を読み出すためにストリーミングサーバ1705にアクセスできる。クライアント1712は、コード化ビデオビットストリーム1708の入力コピーをデコードし、ディスプレイ1709又は他のレンダリング装置(図示せず)上でレンダリング可能な出力ビデオサンプルストリーム1710を生成するビデオデコーダ1711を含むことができる。一部のストリーミングシステムでは、ビデオビットストリーム1704、1706及び1708は、特定のビデオコーディング/圧縮規格に従ってコード化できる。これらの規格の例は上述され、本明細書でさらに説明される。
【0134】
図18は、本発明の一実施形態に係るビデオデコーダ1800の機能ブロック図であり得る。
【0135】
受信器1802は、デコーダ1800によってデコードすべき1つ以上のコーデックビデオシーケンスを受信し、同じ又は別の実施形態では、一度に1つのコード化ビデオシーケンスを受信してもよく、各コード化ビデオシーケンスのデコーディングは、他のコード化ビデオシーケンスから独立している。コード化ビデオシーケンスは、コード化ビデオデータを記憶する記憶装置へのハードウェア/ソフトウェアリンクであり得るチャネル1801から受信され得る。受信器1802は、それぞれの使用エンティティ(図示せず)に転送され得る、例えば、コード化オーディオデータ及び/又は補助データストリーム等の他のデータと共にコード化ビデオデータを受信し得る。受信器1802は、コード化ビデオシーケンスを他のデータから分離し得る。ネットワークジッタに対抗するために、受信器1802とエントロピーデコーダ/パーサ1804(以降「パーサ」)との間にバッファメモリ1803が連結され得る。受信器1802が、十分な帯域幅及び制御可能性を有する記憶/転送装置から又はアイソクロナスネットワークからデータを受信する場合、バッファ1803を必要としないか又は小さいものでよい。インターネット等のベストエフォートパケットネットワークでの使用の場合、バッファ1803が必要となり、比較的大きく、有利には適応サイズのものであり得る。
【0136】
ビデオデコーダ1800は、エントロピーコード化ビデオシーケンスからシンボル1813を再構成するためにパーサ1804を含み得る。これらのシンボルのカテゴリは、デコーダ1800の動作を管理するために使用される情報と、場合によっては、デコーダの不可欠な部分ではないが、それに連結され得るディスプレイ1812等のレンダリング装置を制御する情報とを含む。レンダリング装置の制御情報は、補助的拡張情報(SEIメッセージ)又はビデオユーザビリティ情報(VUI)パラメータセットフラグメント(図示せず)の形式であり得る。パーサ1804は、受信したコード化ビデオシーケンスをパース/エントロピーデコーディングし得る。コード化ビデオシーケンスのコーディングは、ビデオコーディング技術又は規格に従うことができ、可変長符号化、ハフマン符号化、文脈依存性を伴う又は伴わない算術符号化等を含む、当業者に周知の原理に従うことができる。パーサ1804は、コード化ビデオシーケンスから、ビデオデコーダ内のピクセルのサブグループのうちの少なくとも1つのためのサブグループパラメータのセットを、該グループに対応する少なくとも1つのパラメータに基づいて抽出し得る。サブグループはピクチャ群(GOP)、ピクチャ、タイル、スライス、マクロブロック、コーディングユニット(CU)、ブロック、変換ユニット(TU)、予測ユニット(PU)等を含むことができる。エントロピーデコーダ/パーサはコード化ビデオシーケンスから、変換係数、量子化パラメータ値、動きベクトル等の情報も抽出し得る。
【0137】
パーサ1804は、シンボル1813を生成するために、バッファ1803から受信したビデオシーケンスに対してエントロピーデコーディング/パース動作を行い得る。パーサ1804はコード化データを受信し、特定のシンボル1813を選択的にデコードし得る。また、パーサ1804は、特定のシンボル1813が動き補償予測ユニット1806、スケーラ/逆変換ユニット1805、イントラ予測ユニット1807又はループフィルタ1811に提供されるべきかどうかを決定し得る。
【0138】
シンボル1813の再構成は、コード化ビデオピクチャ又はその一部の種類(例えば、インター及びイントラピクチャ、インター及びイントラブロック)及び他の要因に応じて、複数の異なるユニットが関与することができる。どのユニットがどのように関与するかは、パーサ1804によってコード化ビデオシーケンスからパースされたサブグループ制御情報によって制御することができる。パーサ1804と以下の複数ユニットとの間のこのようなサブグループ制御情報の流れは、明確性のために図示していない。
【0139】
既に述べた機能ブロックの他に、デコーダ1800は、概念的に、以下で説明するいくつかの機能ユニットに細分化することができる。商業的制約の下で動作する実用的な実施では、これらのユニットの多くは互いに密接に相互作用し、少なくとも部分的に互いに統合することができる。しかしながら、開示の主題を説明するために、以下の機能ユニットへの概念的に細分化が適切である。
【0140】
第1のユニットは、スケーラ/逆変換ユニット1805である。スケーラ/逆変換ユニット1805は、量子化変換係数に加えて、どの変換を用いるか、ブロックサイズ、量子化係数、量子化スケーリング行列等を含む制御情報をパーサ1804からシンボル1813として受信する。それは、アグリゲータ1810に入力可能なサンプル値を含むブロックを出力できる。
【0141】
一部の場合では、スケーラ/逆変換1805の出力サンプルはイントラコード化ブロック、すなわち、先に再構成されたピクチャからの予測情報を用いないが、現在のピクチャの先に再構成された部分からの予測情報を用いることができるブロックに関係することができる。そのような予測情報は、イントラピクチャ予測ユニット1807によって提供することができる。場合によっては、イントラピクチャ予測ユニット1807は、現在の(部分的に再構成された)ピクチャ1809から取り出された既に再構成された周囲の情報を用いて、再構成中のブロックと同じサイズ及び形状のブロックを生成する。アグリゲータ1810は、場合によっては、サンプル毎に、イントラ予測ユニット1807が生成した予測情報を、スケーラ/逆変換ユニット1805によって提供される出力サンプル情報に追加する。
【0142】
他の場合では、スケーラ/逆変換ユニット1805の出力サンプルは、インターコード化された潜在的な動き補償ブロックに関連することができる。このような場合、動き補償予測ユニット1806は、予測のために用いられるサンプルを取得するために参照ピクチャメモリ1808にアクセスすることができる。取得したサンプルを、ブロックに関連するシンボル1813に従って動き補償した後に、これらのサンプルは、アグリゲータ1810により、スケーラ/逆変換ユニットの出力(この場合は、残差サンプル又は残差信号と呼ばれる)に追加されて、出力サンプル情報を生成することができる。動き補償ユニットが予測サンプルを取得する参照ピクチャメモリ形態内のアドレスは、例えばX、Y及び参照ピクチャコンポーネントを有することができるシンボル1813の形態で動き補償ユニットに利用可能な動きベクトルによって制御することができる。動き補償は、サブサンプルの正確な動きベクトルが用いられている場合に、参照ピクチャメモリから取得されるサンプル値の補間、動きベクトル予測メカニズム等を含むことができる。
【0143】
アグリゲータ1810の出力サンプルは、ループフィルタユニット1811内の様々なループフィルタリング技術を受けることができる。ビデオ圧縮技術は、コード化ビデオビットストリームに含まれ、パーサ1804からのシンボル1813としてループフィルタユニット1811に利用可能にされるが、コード化ピクチャ又はコード化ビデオシーケンスの(デコーディング順序における)先の部分のデコーディングの間に得られたメタ情報に応答するとともに、先に再構成され、ループフィルタリングされたサンプル値に応答することもできるパラメータによって制御されるインループフィルタ技術を含むことができる。
【0144】
ループフィルタユニット1811の出力は、レンダリング装置1812に出力され、将来のインターピクチャ予測で用いるために参照ピクチャメモリに記憶することができるサンプルストリームであり得る。
【0145】
特定のコード化ピクチャは、いったん完全に再構成されると、将来の予測のための参考ピクチャとして用いることができる。コード化ピクチャが完全に再構成され、(例えば、パーサ1804により)コード化ピクチャが参照ピクチャとして識別されると、現在の参照ピクチャ1809は、参照ピクチャバッファ1808の一部となることができ、フレッシュな現在のピクチャメモリが、以下のコード化ピクチャの再構成を開始する前に再度割り当てすることができる。
【0146】
ビデオデコーダ1800は、所定のビデオ圧縮技術に従ってデコーディング動作を行い得る。コード化ビデオシーケンスは、ビデオ圧縮技術文書又は規格、具体的にはその中のプロファイル文書で規定されるビデオ圧縮技術又は規格の構文に従うという意味で、使用中のビデオ圧縮技術又は規格によって規定される構文に適合し得る。コード化ビデオシーケンスの複雑さが、ビデオ圧縮技術又は規格のレベルによって定義される範囲内にあることもコンプライアンスのために必要である。場合によっては、レベルは、最大ピクチャサイズ、最大フレームレート、最大再構成サンプルレート(例えば、毎秒メガサンプルで測定される)、最大参照ピクチャサイズ等を制限する。レベルによって設定される制限値は、場合によっては、コード化ビデオシーケンスにおいて伝達されるHRDバッファ管理のためのメタデータ及び仮想参照デコーダ(HRD)を通してさらに制限できる。
【0147】
一実施形態では、受信器1802は、コード化ビデオと共に追加(冗長)データを受信し得る。追加データは、コード化ビデオシーケンスの一部として含まれ得る。追加データは、データを適切にデコードするために及び/又は元のビデオデータをより正確に再構成するために、ビデオデコーダ1800によって用いられ得る。追加データは、例えば、時間的、空間的又は信号対雑音比(SNR)強化層、冗長スライス、冗長ピクチャ、順方向エラー補正コード等の形態であり得る。
【0148】
図19は、本開示の一実施形態に係るビデオエンコーダ1900の機能ブロック図であり得る。
【0149】
エンコーダ1900は、エンコーダ1900によりコード化されるビデオ画像を取り込み得る(エンコーダの一部ではない)ビデオソース1901からビデオサンプルを受信し得る。
【0150】
ビデオソース1901は、任意の好適なビット深度(例えば、8ビット、10ビット、12ビット、・・・)、任意の色空間(例えば、BT.601 Y CrCB、RGB、・・・)及び任意の好適なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)であり得るデジタルビデオサンプルストリームの形態で、エンコーダ(1703)によってコード化されるソースビデオシーケンスを提供し得る。メディアサービングシステムでは、ビデオソース1901は、事前に準備されたビデオを記憶する記憶装置であり得る。ビデオ会議システムでは、ビデオソース1901は、ビデオシーケンスとしてローカル画像情報を取り込むカメラであり得る。ビデオデータは、連続で見られた場合に動きを伝える複数の個々のピクチャとして提供され得る。ピクチャ自体は、ピクセルの空間アレイとして構成されてもよく、各ピクセルは、使用中のサンプリング構造、色空間等に応じて、1つ以上のサンプルを含み得る。当業者であれば、ピクセルとサンプルとの関係を容易に理解することができる。以下の説明ではサンプルに焦点を当てる。
【0151】
一実施形態によれば、エンコーダ1900は、ソースビデオシーケンスのピクチャをリアルタイムに又は用途によって要求される任意の他の時間制約の下でコード化ビデオシーケンス1910にコード化及び圧縮し得る。適切なコード化速度を実施することは、コントローラ1902の1つの機能である。コントローラは、以下で説明する他の機能ユニットを制御し、これらのユニットに機能的に連結されている。明確性のために連結は示されていない。コントローラによって設定されるパラメータは、レート制御関連パラメータ(ピクチャスキップ、量子化器、レート歪み最適化技術のラムダ値、・・・)、ピクチャサイズ、ピクチャ群(GOP)レイアウト、最大動きベクトル探索範囲等を含むことができる。当業者であれば、コントローラ1902の他の機能を、それらが特定のシステム設計のために最適化されたビデオエンコーダ1900に関連し得るため、容易に特定できる。
【0152】
一部のビデオエンコーダは、当業者が容易に認識する「コーディングループ」で動作する。過度に単純化した説明として、コーディングループは、エンコーダ1902(以降「ソースコーダ」)(コード化すべき入力ピクチャ及び参照ピクチャに基づいてシンボルを生成する責任を負う)のエンコーディング部と、エンコーダ1900に埋め込まれ、(リモート)デコーダも生成し得るサンプルデータを生成するためのシンボルを再構成する(ローカル)デコーダ1906とで構成される(シンボルとコード化ビデオビットストリームとの間の任意の圧縮は、開示の主題で考慮されるビデオ圧縮技術において可逆であるため)。再構成されたサンプルストリームは参照ピクチャメモリ1905に入力される。シンボルストリームのデコーディングは、デコーダ位置(ローカル又はリモート)に依存しないビットイグザクト(bit-exact)な結果をもたらすため、参照ピクチャバッファコンテンツもローカルエンコーダとリモートエンコーダの間でビットイグザクトとなる。すなわち、エンコーダの予測部は、デデコーディングの間に予測を用いる場合にデコーダが「見る」のとまったく同じサンプル値を参照ピクチャサンプルとして「見る」。参照ピクチャの同期性のこの基本原理(及び、例えば、チャンネルエラーのために同期性を維持できない場合に結果として生じるドリフト)は当業者に周知である。
【0153】
「ローカル」デコーダ1906の動作は、「リモート」デコーダ1800の動作と同じであってもよく、それについては
図18に関連して既に説明されている。
図19も簡潔に参照して、しかしながら、シンボルが利用可能であり、エントロピーコーダ1908及びパーサ1904によるコード化ビデオシーケンスへのシンボルのエンコーディング/デコーディングは可逆であり得るため、チャネル1801、受信器1802、バッファ1803及びパーサ1804を含むデコーダ1800のエントロピーデコーディング部は、ローカルデコーダ1906では完全には実施されない場合がある。
【0154】
この時点での見解は、デコーダ内に存在するパース/エントロピーデコーディングを除く任意のデコーダ技術も、対応するエンコーダ内で実質的に同一の機能形態で存在する必要があることである。エンコーダ技術の説明は、それらは包括的に説明したデコーダ技術の逆であるため省略できる。特定の分野においてのみ、より詳細な説明が必要であり以下で提供される。
【0155】
その動作の一部として、ソースコーダ1903は、「参照フレーム」として指定されたビデオシーケンスからの1つ以上の先にコード化されたフレームを参照して入力フレームを予測的にコード化する動き補償予測コーディングを行い得る。このように、コーディングエンジン1907は、入力フレームのピクセルブロックと、入力フレームに対する予測参照として選択され得る参照フレームのピクセルブロックとの差異をコード化する。
【0156】
ローカルビデオデコーダ1906は、ソースコーダ1903によって生成されたシンボルに基づいて、参照フレームとして指定され得るフレームのコード化ビデオデータをデコードし得る。コーディングエンジン1907の動作は、有利には不可逆プロセスであり得る。コード化ビデオデータがビデオデコーダ(
図19には図示せず)でデコードされ得る場合、再構成されたビデオシーケンスは、通常、一部のエラーを伴うソースビデオシーケンスのレプリカであり得る。ローカルビデオデコーダ1906は、参照フレームに対してビデオデコーダによって行われ得るデコーディングプロセスを複製し、再構成された参照フレームが参照ピクチャキャッシュ1905に記憶されるようにし得る。このように、エンコーダ1900は、遠端のビデオデコーダによって得られる(送信エラーを欠いた)再構成された参照フレームと共通のコンテンツを有する再構成された参照フレームのコピーをローカルに記憶し得る。
【0157】
予測器1904は、コーディングエンジン1907のための予測探索を行い得る。すなわち、コード化すべき新たなフレームに対して、予測器1904は、サンプルデータ(候補参照ピクセルブロックとして)又は参照ピクチャ動きベクトル、ブロック形状等のような、新たなピクチャの適切な予測参照としての役割を果たし得る特定のメタデータについて、参照ピクチャメモリ1905を検索し得る。予測器1904は、適切な予測参照を見出すために、サンプルブロックピクセルブロックベースで動作し得る。場合によっては、予測器1904によって得られた検索結果によって決定されるように、入力ピクチャは、参照ピクチャメモリ1905に記憶された複数の参照ピクチャから引き出された予測参照を有し得る。
【0158】
コントローラ1902は、例えば、ビデオデータをエンコードするために用いられるパラメータ及びサブグループパラメータの設定を含む、ビデオコーダ1903のコーディング動作を管理し得る。
【0159】
前述の機能ユニットの全ての出力は、エントロピーコーダ1908におけるエントロピーコーディングを受け得る。エントロピーコーダは、様々な機能ユニットによって生成されたシンボルを、例えば、ハフマン符号化、可変長符号化、算術符号化等の当業者に知られた技術に従ってロスレス圧縮することにより、シンボルをコード化ビデオシーケンスに変換する。
【0160】
送信器1909は、エントロピーコーダ1908によって生成されるコード化ビデオシーケンスをバッファし、コード化ビデオデータを記憶し得る記憶装置へのハードウェア/ソフトウェアリンクであり得る通信チャネル1911を介した送信のためにそれを準備し得る。送信器1909は、ビデオコーダ1903からのコード化ビデオデータを、例えばコード化オーディオデータ及び/又は補助データストリーム(ソースは図示せず)等の送信すべき他のデータとマージし得る。
【0161】
コントローラ1902はエンコーダ1900の動作を管理し得る。コーディングの間に、コントローラ1905は、各コード化ピクチャに特定のコード化ピクチャタイプを割り当て得る。これは各ピクチャに適用され得るコード化技術に影響を及ぼし得る。例えば、ピクチャは多くの場合以下のフレームタイプのうちの1つとして割り当てられる。
【0162】
イントラピクチャ(Iピクチャ)は、シーケンス内の他のフレームを予測のソースとして用いることなくコード化及びデコードされ得るものであり得る。一部のビデオコーデックは、例えば、インデペンデントデコーダリフレッシュピクチャを含む、異なる種類のイントラピクチャを許容する。当業者であれば、Iピクチャのこれらの変形例及びそれらのそれぞれの用途及び特徴が分かる。
【0163】
予測ピクチャ(Pピクチャ)は、各ブロックのサンプル値を予測するために最大で1つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いてコード化及びデコードされ得るものであり得る。
【0164】
双方向予測ピクチャ(Bピクチャ)は、各ブロックのサンプル値を予測するために最大で2つの動きベクトル及び参照インデックスを用いるイントラ予測又はインター予測を用いてコード化及びデコードされ得るものであり得る。同様に、マルチ予測ピクチャは、1つのブロックの再構成のために、3つ以上の参照ピクチャ及び関連するメタデータを用いることができる。
【0165】
ソースピクチャは、通常、空間的に複数のサンプルブロック(例えば、それぞれ4x4、8x8、4x8又は16x16のサンプルのブロック)に分割され、ブロック毎にコード化される。ブロックは、ブロックのそれぞれのピクチャに適用されるコーディング割り当てによって決定される他の(既にコード化された)ブロックを参照して予測的にコード化され得る。例えば、Iピクチャのブロックは非予測的にコード化され得るか又はそれらは同じピクチャの既にコード化されたブロックを参照して予測的に符号化され得る(空間予測又はイントラ予測)。Pピクチャのピクセルブロックは先にコード化された1つの参照ピクチャを参照して、空間的予測を介して又は時間的予測を介して非予測的にコード化され得る。Bピクチャのブロックは、1つ以上の先にコード化された参照ピクチャを参照して、空間的予測を介して又は時間的予測を介して符号化され得る。
【0166】
ビデオコーダ1900は、所定のビデオコーディング技術又は規格に従ってコーディング動作を行い得る。その動作において、ビデオコーダ1900は、入力ビデオシーケンスにおける時間的及び空間的冗長性を利用する予測コーディング動作を含む様々な圧縮動作を行い得る。したがって、コード化ビデオデータは、使用されているビデオコーディング技術又は規格によって規定される構文に適合し得る。
【0167】
一実施形態では、送信器1909は、コード化ビデオと共に追加データを送信し得る。ソースコーダ1903は、そのようなデータをコード化ビデオシーケンスの一部として含み得る。追加データは、時間的/空間的/SNR強調層、冗長ピクチャ及びスライス等の他の形式の冗長データ、補助的拡張情報(SEI)メッセージ、視覚的ユーザビリティ情報(VUI)パラメータセットフラグメント等を含み得る。
【0168】
一部の実施形態は、あらゆる可能な技術的詳細レベルの集積化において、システム、方法及び/又はコンピュータ読み取り可能媒体に関し得る。コンピュータ読み取り可能媒体は、プロセッサに動作を行わせるためにコンピュータ読み取り可能プログラム命令を有するコンピュータ読み取り可能な非一時記憶媒体を含み得る。
【0169】
コンピュータ読み取り可能記憶媒体は、命令実行装置によって使用される命令を保持及び記憶可能な有形の装置であり得る。コンピュータ読み取り可能記憶媒体は、例えば、限定されないが、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置又はこれらの適切な組み合わせであり得る。コンピュータ読み取り可能記憶媒体のより具体的な例の非網羅的リストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROM又はフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル汎用ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード又は命令が記録された溝命令を有する溝内の隆起構造等の機械的に符号化された装置及びこれらの任意の適切な組み合わせを含む。本明細書で用いるコンピュータ読み取り可能記憶媒体は、電波又は他の自由に伝搬する電磁波、導波管又は他の伝送媒体を介して伝搬する電磁波(例えば、光ファイバケーブルを通過する光パルス)又はワイヤを介して伝送される電気信号等の一時的な信号自体であると解釈すべきではない。
【0170】
本明細書で説明するコンピュータ読み取り可能プログラム命令は、コンピュータ読み取り可能記憶媒体から又は各コンピュータ/処理装置にダウンロードすることができる又はネットワーク、例えば、インターネット、ローカルエリアネットワーク、広域ネットワーク及び/又は無線ネットワークを介して外部コンピュータ又は外部記憶装置にダウンロードできる。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含み得る。各コンピュータ/処理装置内のネットワークアダプタカード又はネットワークインターフェイスは、ネットワークからコンピュータ読み取り可能プログラム命令を受信し、コンピュータ読み取り可能プログラム命令を、各コンピュータ/処理装置内のコンピュータ読み取り可能記憶媒体に記憶するために転送する。
【0171】
動作を行うためのコンピュータ読み取り可能プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ又はSmalltalk、C++等のオブジェクト指向プログラミング言語及び「C」プログラミング言語又は同様のプログラミング言語等の手続きプログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピュータ読み取り可能プログラム命令は、スタンドアローンソフトウェアパッケージとしてユーザのコンピュータ上で全体的に、ユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的に及びリモートコンピュータで部分的に又はリモートコンピュータ又はサーバ上で全体的に実行され得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか又は接続は外部コンピュータ(例えば、インターネットサービスプロバイダを用いてインターネットを介して)になされ得る。一部の実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)又はプログラマブル論理アレイ(PLA)を含む電子回路は、態様又は動作を行うために、コンピュータ読み取り可能プログラム命令の状態情報を利用して、電子回路をパーソナライズすることによって、コンピュータ読み取り可能プログラム命令が実行され得る。
【0172】
これらのコンピュータ読み取り可能プログラム命令は、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサに提供されて、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロックで規定された機能/行為を実施するための手段を生成するようにマシンを作り出し得る。これらのコンピュータ読み取り可能プログラム命令は、コンピュータ、プログラマブルデータ処理装置、及び/又は他の装置を特定の方法で機能させることができるコンピュータ読み取り可能記憶媒体に記憶されてもよく、命令が記憶されたコンピュータ読み取り可能記憶媒体は、フローチャート及び/又はブロック図のブロックに規定された機能/行為の態様を実行する命令を含む製造物品を含む。
【0173】
コンピュータ読み取り可能プログラム命令は、コンピュータ、他のプログラマブルデータ処理装置又は他の装置にロードされて、コンピュータ、他のプログラマブル装置又は他の装置で一連の動作ステップを行わせてコンピュータ実施プロセスを生成し、コンピュータ、他のプログラマブル装置、または他の装置上で実行される命令がフローチャート及び/又はブロック図のブロックで規定された機能/行為を実施されるようにする。
【0174】
図面内のフローチャート及びブロック図は、様々な実施形態に係るシステム、方法及びコンピュータ読み取り可能媒体の可能な実施のアーキテクチャ、機能及び動作を示す。この点に関して、フローチャート又はブロック図内の各ブロックは、特定の論理機能を実施するための1つ以上の実行可能な命令を含む、モジュール、セグメント又は命令の一部を表し得る。方法、コンピュータシステム及びコンピュータ読み取り可能媒体は、図面に示されるものよりも、追加のブロック、より少ないブロック、異なるブロック又は異なる配置のブロックを含み得る。一部の代替的な実施では、ブロックに記載された機能は、図面に記載の順序から外れ得る。例えば、連続して示される2つのブロックは、実際には、同時又は実質的に同時に実行され得るか又は関連する機能に応じて、ブロックは逆の順序で実行され得る。なお、ブロック図及び/又はフローチャート図の各ブロック及びブロック図及び/又はフローチャート図のブロックの組み合わせは、特定の機能又は動作を行うか又は専用ハードウェア及びコンピュータ命令の組み合わせを行う専用ハードウェアベースのシステムによって実施できる。
【0175】
本明細書に記載のシステム及び/又は方法は、ハードウェア、ファームウェア又はハードウェア及びソフトウェアの組み合わせの異なる形態で実施され得ることは明らかであろう。これらのシステム及び/又は方法を実施するために使用される実際の専用の制御ハードウェア又はソフトウェアコードは、実施のものに限定されない。そのため、本明細書では、システム及び/又は方法の動作及び挙動は特定のソフトウェアコードを参照せずに説明されてきた。ソフトウェア及びハードウェアは、本明細書の説明に基づいてシステム及び/又は方法を実施するように設計され得ることが分かる。
【0176】
本明細書で用いられるいかなる要素、行為又は命令も、明示的に記載されていない限り、重要又は必須と解釈すべきではない。また、本明細書で用いる「a」及び「an」という冠詞は1つ以上のアイテムを含むことを意図し、「1つ以上」と同義で用いられ得る。さらに、本明細書で用いる「セット」という用語は1つ以上のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテム及び非関連アイテムの組み合わせ等)を含むことを意図し、「1つ以上」と同義で用いられ得る。1つのアイテムのみが意図される場合、「1つの」という用語又は同様の用語が用いられる。本明細書で用いられる「有する」という用語等は、オープンエンドの用語であることを意図している。また、「基づく」という用語は、別段明示的に記載がない限り「少なくとも部分的に基づく」を意味することを意図する。
【0177】
様々な態様及び実施形態の説明は例示を目的として提示されてきたが、開示の実施形態に限定されるか又は網羅することを意図していない。特徴の組み合わせが特許請求の範囲に記載され及び/又は明細書に開示されているが、これらの組み合わせは、可能な実施の開示に限定されることを意図していない。実際に、これらの特徴の多くは、具体的に特許請求の範囲に記載されていない及び/又は明細書に開示されていない方法で組み合わされ得る。以下に記載される各従属請求項は1つの請求項のみに直接従属し得るが、可能な実施の開示は、請求項のセット内の他の全ての請求項との組み合わせで各従属請求項を含む。説明した実施形態の範囲から逸脱することなく、多くの修正及び変更が当業者には明らかであろう。本明細書で用いる用語は、実施形態の原理、実際的な応用又は市場で見られる技術に対する技術的な改善を最良な形で説明するために又は本明細書に開示の実施形態を当業者が理解することができるようにするために選択されたものである。