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

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

▶ テンセント・アメリカ・エルエルシーの特許一覧

特許7342258ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム
<>
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図1
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図2A
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図2B
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図3A
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図3B
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図4
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図5
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図6
  • 特許-ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-01
(45)【発行日】2023-09-11
(54)【発明の名称】ビデオデータ符号化方法、ビデオデータ符号化のためのコンピュータシステム、およびコンピュータプログラム
(51)【国際特許分類】
   H04N 19/12 20140101AFI20230904BHJP
   H04N 19/176 20140101ALI20230904BHJP
   H04N 19/186 20140101ALI20230904BHJP
【FI】
H04N19/12
H04N19/176
H04N19/186
【請求項の数】 20
(21)【出願番号】P 2022524005
(86)(22)【出願日】2021-05-26
(65)【公表番号】
(43)【公表日】2023-01-05
(86)【国際出願番号】 US2021034227
(87)【国際公開番号】W WO2021242846
(87)【国際公開日】2021-12-02
【審査請求日】2022-04-22
(31)【優先権主張番号】63/030,623
(32)【優先日】2020-05-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/061,829
(32)【優先日】2020-10-02
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【弁理士】
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シン・ジャオ
(72)【発明者】
【氏名】マドゥー・ペリンガーサリー・クリシュナン
(72)【発明者】
【氏名】シャン・リュウ
(72)【発明者】
【氏名】シアン・リ
【審査官】岩井 健二
(56)【参考文献】
【文献】国際公開第2020/035827(WO,A1)
【文献】国際公開第2019/173522(WO,A1)
【文献】Yue Chen, et al.,An Overview of Core Coding Tools in the AV1 Video Codec,PCS 2018,IEEE,2018年,pp.41-45
【文献】Xin Zhao, and Shan Liu,UNIFIED SECONDARY TRANSFORM FOR INTRA CODING BEYOND AV1,ICIP 2020,IEEE,2020年,pp.3393-3397
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行可能なビデオデータ符号化方法であって、
ビデオデータを受信するステップと、
前記受信したビデオデータをエントロピー解析して複数のコンポーネントにするステップと、
記エントロピー解析された複数の色コンポーネントを逆量子化するステップと、
前記逆量子化された複数のコンポーネントに対してジョイントコンポーネント二次変換(JCST)を実行するステップであって、前記JCSTが、前記色コンポーネントに適用されるプライマリ変換に依存する、ステップと、
前記ジョイントコンポーネント二次変換された複数の色コンポーネントに対応する複数の残差コンポーネントに基づいて、前記ビデオデータを復号するステップと、
を含む、ビデオデータ符号化方法。
【請求項2】
JCSTカーネルは、前記ビデオデータに対応する予測モードに基づいて選択される、請求項1に記載の方法。
【請求項3】
前記JCSTカーネルは、前記ビデオデータに関連付けられたイントラ予測モードに基づいて適用される、請求項2に記載の方法。
【請求項4】
前記イントラ予測モードは、DC、SMOOTH_H、SMOOTH_V、方向性モード、パエス予測器、およびフィルタリングモードの中からの1つまたは複数を含む、請求項3に記載の方法。
【請求項5】
前記JCSTカーネルは、公称イントラ予測モードに基づいて適用される、請求項3に記載の方法。
【請求項6】
JCSTは、前記イントラ予測モードに基づいて無効化される、請求項3に記載の方法。
【請求項7】
前記イントラ予測モードは、ルーマからのクロマのモード、およびパエス予測器の中からの1つまたは複数を含む、請求項6に記載の方法。
【請求項8】
異なるJCSTカーネルがイントラ予測モードおよびインター予測モードに適用される、請求項2に記載の方法。
【請求項9】
前記JCSTカーネルは、イントラ・ブロック・コピー・モードに基づいて適用される、請求項2に記載の方法。
【請求項10】
前記JCSTカーネルは、パレットモードに基づいて適用される、請求項2に記載の方法。
【請求項11】
前記JCSTカーネルは、異なるインター予測モードに基づいて適用される、請求項2に記載の方法。
【請求項12】
前記JCSTカーネルは、動き情報に基づいて適用される、請求項2に記載の方法。
【請求項13】
前記JCSTカーネルは、動きベクトル予測子が、上、左、または時間的動きベクトル予測子候補から来るかどうかに依存する、請求項12に記載の方法。
【請求項14】
前記JCSTカーネルは、動きベクトルの大きさに依存する、請求項12に記載の方法。
【請求項15】
前記JCSTカーネルは、動きベクトルの方向に依存する、請求項12に記載の方法。
【請求項16】
JCSTカーネルは、前記ビデオデータに関連付けられた現在のブロックに対して選択されたプライマリ変換タイプに依存する、請求項1に記載の方法。
【請求項17】
前記JCSTカーネルは、JCSTを適用する前記ビデオデータに関連付けられた色コンポーネントに適用されるプライマリ変換に基づいて適用される、請求項16に記載の方法。
【請求項18】
JCSTカーネルは、前記ビデオデータに関連付けられた現在のブロックに対して選択された二次変換カーネルに依存する、請求項1に記載の方法。
【請求項19】
ビデオデータ符号化のためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように構成された1つまたは複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって命令されるように動作するように構成された1つまたは複数のコンピュータプロセッサであって、前記コンピュータプログラムコードは、前記1つまたは複数のコンピュータプロセッサに、請求項1から18のいずれか一項に記載の方法を実行させるように構成されたコードを含む、1つまたは複数のコンピュータプロセッサと、
を含む、コンピュータシステム。
【請求項20】
ビデオデータ符号化のためのコンピュータプログラムであって、前記コンピュータプログラムは、1つまたは複数のコンピュータプロセッサに、請求項1から18のいずれか一項に記載の方法を実行させる
ように構成された、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年5月27日に出願された米国仮特許出願第63/030,623号および2020年10月2日に出願された米国特許出願第17/061,829号の優先権を主張し、その全体が本明細書に組み込まれる。
【0002】
本開示は、一般に、データ処理の分野に関し、より詳細には、ビデオ符号化および復号に関する。
【背景技術】
【0003】
AOMedia Video 1(AV1)は、インターネット上でのビデオ送信用に設計されたオープン・ビデオ符号化フォーマットである。VP9の後継として、2015年に設立されたAlliance for Open Media(AOMedia)によって開発された。このコンソーシアムには、半導体企業、ビデオ・オン・デマンド・プロバイダ、ビデオ・コンテンツ・プロデューサ、ソフトウェア開発企業、およびウェブ・ブラウザ・ベンダーが含まれる。AV1プロジェクトのコンポーネントの多くは、アライアンスのメンバによる以前の研究努力から調達された。個人の貢献者は、2010年に既にコードが公開されたXiphおよびMozillaのDaalaの数年前に実験的な技術プラットフォームを開始し、Googleの実験的なVP9進化プロジェクトVP10が2014年9月12日に発表され、CiscoのThorが2015年8月11日に公開された。VP9のコードベースに基づいて、AV1は追加の技術を組み込んでおり、そのうちのいくつかはこれらの実験フォーマットで開発された。AV1基準コーデックの第1のバージョン0.1.0は、2016年4月7日に公開された。アライアンスは、参照用のソフトウェアベースのエンコーダおよびデコーダと共に、2018年3月28日にAV1ビットストリーム仕様のリリースを発表した。2018年6月25日に、仕様の有効なバージョン1.0.0がリリースされた。2019年1月8日に、仕様のErrata 1を伴う有効なバージョン1.0.0がリリースされた。AV1ビットストリーム仕様は、基準ビデオコーデックを含む。
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態は、ビデオデータを符号化するための方法、システム、およびコンピュータ可読媒体に関する。一態様によれば、ビデオデータ符号化方法が提供される。本方法は、ビデオデータを受信するステップと、受信したビデオデータをエントロピー解析して1つまたは複数のコンポーネントにするステップとを含むことができる。1つまたは複数のエントロピー解析されたコンポーネントは逆量子化される。1つまたは複数のコンポーネントに対して、ジョイントコンポーネント二次変換(JCST)が実行される。ビデオデータは、ジョイントコンポーネント二次変換されたコンポーネントに対応する1つまたは複数の残差コンポーネントに基づいて復号される。
【0005】
別の態様によれば、ビデオデータを符号化するためのコンピュータシステムが提供される。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶装置と、1つまたは複数のメモリの少なくとも1つを介して1つまたは複数のプロセッサの少なくとも1つによって実行するために1つまたは複数の記憶装置の少なくとも1つに格納されたプログラム命令と、を含むことができ、それによってコンピュータシステムは方法を実行することができる。本方法は、ビデオデータを受信するステップと、受信したビデオデータをエントロピー解析して1つまたは複数のコンポーネントにするステップとを含むことができる。1つまたは複数のエントロピー解析されたコンポーネントは逆量子化される。1つまたは複数のコンポーネントに対して、ジョイントコンポーネント二次変換(JCST)が実行される。ビデオデータは、ジョイントコンポーネント二次変換されたコンポーネントに対応する1つまたは複数の残差コンポーネントに基づいて復号される。
【0006】
さらに別の態様によれば、ビデオデータを符号化するためのコンピュータ可読媒体が提供される。このコンピュータ可読媒体は、1つまたは複数のコンピュータ可読記憶装置と、1つまたは複数の有形記憶装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、プログラム命令はプロセッサによって実行可能である。プログラム命令は、ビデオデータを受信し、受信したビデオデータをエントロピー解析して1つまたは複数のコンポーネントにすることを含むことができる方法を実行するためにプロセッサによって実行可能である。1つまたは複数のエントロピー解析されたコンポーネントは逆量子化される。1つまたは複数のコンポーネントに対して、ジョイントコンポーネント二次変換(JCST)が実行される。ビデオデータは、ジョイントコンポーネント二次変換されたコンポーネントに対応する1つまたは複数の残差コンポーネントに基づいて復号される。
【0007】
これらおよび他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。例示は詳細な説明と併せて当業者の理解を容易にする際の明確さのためのものであるため、図面の様々な特徴は正確な縮尺ではない。
【図面の簡単な説明】
【0008】
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す図である。
図2A】少なくとも1つの実施形態による例示的なJCSTエンコーダである。
図2B】少なくとも1つの実施形態による例示的なJCSTデコーダである。
図3A】少なくとも1つの実施形態による例示的なJCCTエンコーダである。
図3B】少なくとも1つの実施形態による例示的なJCCTデコーダである。
図4】少なくとも1つの実施形態による、複数の色コンポーネントからの符号化残差に基づいてビデオデータを符号化するプログラムによって実行されるステップを示す動作フローチャートである。
図5】少なくとも1つの実施形態による、図1に描かれるコンピュータおよびサーバの内部構成要素および外部構成要素のブロック図である。
図6】少なくとも1つの実施形態による、図1に示すコンピュータシステムを含む例示的なクラウドコンピューティング環境を示すブロック図である。
図7】少なくとも1つの実施形態による、図6の例示的なクラウドコンピューティング環境の機能層を示すブロック図である。
【発明を実施するための形態】
【0009】
特許請求される構造および方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具現化され得る特許請求された構造および方法の単なる例示であることが理解され得る。これらの構造および方法は、しかしながら、多くの異なる形態で具体化されてもよく、本明細書に記載される例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が詳細かつ完全であり、当業者にその範囲を十分に伝えるために提供されている。この説明では、提示の実施形態を不必要に不明瞭にすることを避けるために、周知の特徴および技術の詳細が省略される場合がある。
【0010】
実施形態は、一般に、データ処理の分野に関し、より詳細には、ビデオ符号化および復号に関する。以下に説明する例示的な実施形態は、とりわけ、複数の色コンポーネントからの符号化残差に基づいてビデオデータを符号化および復号するためのシステム、方法、およびコンピュータプログラムを提供する。したがって、いくつかの実施形態は、ビデオデータの複数の色コンポーネント間の冗長性の低減を通じて、コンピュータによるビデオデータの改善された符号化および復号を可能にすることによって、計算分野を改善する能力を有する。
【0011】
前述したように、AOMedia Video 1(AV1)は、インターネット上でのビデオ送信用に設計されたオープン・ビデオ符号化フォーマットである。VP9の後継として、2015年に設立されたAlliance for Open Media(AOMedia)によって開発された。このコンソーシアムには、半導体企業、ビデオ・オン・デマンド・プロバイダ、ビデオ・コンテンツ・プロデューサ、ソフトウェア開発企業、およびウェブ・ブラウザ・ベンダーが含まれる。AV1プロジェクトのコンポーネントの多くは、アライアンスのメンバによる以前の研究努力から調達された。個人の貢献者は、2010年に既にコードが公開されたXiphおよびMozillaのDaalaの数年前に実験的な技術プラットフォームを開始し、Googleの実験的なVP9進化プロジェクトVP10が2014年9月12日に発表され、CiscoのThorが2015年8月11日に公開された。VP9のコードベースに基づいて、AV1は追加の技術を組み込んでおり、そのうちのいくつかはこれらの実験フォーマットで開発された。AV1基準コーデックの第1のバージョン0.1.0は、2016年4月7日に公開された。アライアンスは、参照用のソフトウェアベースのエンコーダおよびデコーダと共に、2018年3月28日にAV1ビットストリーム仕様のリリースを発表した。2018年6月25日に、仕様の有効なバージョン1.0.0がリリースされた。2019年1月8日に、仕様のErrata 1を伴う有効なバージョン1.0.0がリリースされた。AV1ビットストリーム仕様は、基準ビデオコーデックを含む。
【0012】
AV1では、クロマチャネル用に生成された予測残差信号(例えば、CbおよびCr)が互いに高度に相関していることが観察され、これは、Cb予測残差とCr予測残差との間の統計的冗長性を低減することによって、残差符号化をさらに改善できることを示している。さらに、Cb予測残差とCr予測残差との間の相関は、予測モードに依存し得る。固定ジョイント・クロマ・コンポーネント変換は、すべての予測モードを処理するのに準最適であり得る。したがって、符号化効率を改善するために、ジョイントモード依存変換を複数の色に適用することが有利であり得る。
【0013】
各変換ユニットについて、AV1係数コーダはスキップ符号の符号化から開始し、これには、変換符号化がスキップされない場合、変換カーネルタイプおよびすべての非ゼロ係数のブロック終了(EOB)位置が続く。次に、各係数値は複数のレベルマップおよび符号にマッピングされ、符号平面は係数の符号をカバーし、3つのレベル平面は係数の大きさの異なる範囲、すなわち下位レベル、中位レベル、および上位レベルの平面に対応する。下位レベルの平面は0~2の範囲に対応し、中位レベルの平面は3~14の範囲を処理し、上位レベルの平面は15以上の範囲をカバーする。
【0014】
EOB位置が符号化された後、下位レベル平面および中位レベル平面は逆走査順で一緒に符号化され、前者は係数の大きさが0と2との間であるかどうかを示し、後者は範囲が3と14との間であるかどうかを示す。次に、符号平面および上位レベル平面は、順走査順で一緒に符号化され、上位レベル平面は、14より大きい大きさを有する残差値を示し、残差は、指数ゴロム符号(Exp-Golomb code)を使用してエントロピー符号化される。AV1は、従来のジグザグ走査順を採用する。
【0015】
そのような分離は、豊富なコンテキストモデルを下位レベル平面に割り当てることを可能にし、これは、変換方向(双方向、水平、および垂直)、変換サイズ、および、適度なコンテキスト・モデルサイズで圧縮効率を改善するための最大5つの隣接係数、を考慮する。中位レベル平面は、コンテキスト隣接係数の数が5から2に低減された下位レベル平面のようなコンテキストモデルを使用する。上位平面は、コンテキストモデルを用いずに指数ゴロム符号により符号化される。符号平面では、DC符号がその隣接変換ユニットのDC符号をコンテキスト情報として使用して符号化されることを除いて、他の符号ビットはコンテキストモデルを使用せずに直接符号化される。
【0016】
VVC Draft 6は、クロマ残差が一緒に符号化されるモードをサポートする。ジョイントクロマ符号化モードの使用(アクティブ化)は、TUレベルフラグtu_joint_cbcr_residual_flagによって示され、選択されたモードは、クロマCBFによって暗黙的に示される。TUのクロマCBFのいずれかまたは両方が1に等しい場合、フラグtu_joint_cbcr_residual_flagが存在する。PPSおよびスライスヘッダにおいて、クロマQPオフセット値は、通常のクロマ残差符号化モードについてシグナリングされるクロマQPオフセット値と区別するために、ジョイントクロマ残差符号化モードについてシグナリングされる。これらのクロマQPオフセット値は、ジョイントクロマ残差符号化モードを使用して符号化されたそれらのブロックのクロマQP値を導出するために使用される。対応するジョイントクロマ符号化モード(例えば、モード2)がTUにおいてアクティブであるとき、このクロマQPオフセットは、そのTUの量子化および復号中に適用されたルーマ由来のクロマQPに加算される。他のモード(例えば、モード1および3)の場合、クロマQPは、従来のCbまたはCrブロックの場合と同じ方法で導出される。クロマ残差(resCbおよびresCr)は、送信された変換ブロックから再構築され得る。このモードが起動されると、1つのジョイントクロマ残差ブロック(例えば、resJointC[x][y])がシグナリングされ、スライスヘッダで指定された符号値であるtu_cbf_cb、tu_cbf_cr、およびCSignなどの情報を考慮して、Cb用の残差ブロック(resCb)およびCr用の残差ブロック(resCr)が導出される。
【0017】
上述した3つのジョイントクロマ符号化モードは、イントラ符号化されたCUにおいてのみサポートされる。インター符号化されたCUでは、モード2のみがサポートされる。したがって、インター符号化されたCUの場合、シンタックス要素tu_joint_cbcr_residual_flagは、両方のクロマcbfsが1である場合にのみ存在する。
【0018】
本明細書では態様を、様々な実施形態による方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して説明する。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装され得ることが理解されよう。
【0019】
ここで図1を参照すると、複数の色コンポーネントからの符号化残差に基づいて、ビデオデータを符号化および復号するためのビデオ符号化システム100(以下「システム」)を示すネットワークコンピュータ環境の機能ブロック図が示されている。図1は、1つの実装形態の例示のみを提供し、異なる実施形態が実装され得る環境に関する制限を意味しないことを理解されたい。図示の環境に対する多くの修正が、設計および実施要件に基づいて行われ得る。
【0020】
システム100は、コンピュータ102と、サーバコンピュータ114とを含むことができる。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」)を介してサーバコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104と、データ記憶装置106に記憶され、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能なソフトウェアプログラム108とを含むことができる。図5を参照して以下に説明するように、コンピュータ102は、それぞれ内部構成要素800Aおよび外部構成要素900Aを含むことができ、サーバコンピュータ114は、それぞれ内部構成要素800Bおよび外部構成要素900Bを含むことができる。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意の種類のコンピューティングデバイスであってもよい。
【0021】
サーバコンピュータ114はまた、図6および図7に関して以下に説明するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(laaS)などのクラウド・コンピューティング・サービス・モデルで動作してもよい。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
【0022】
複数の色コンポーネントからの符号化残差に基づいてビデオデータを符号化するために使用することができるサーバコンピュータ114は、データベース112と相互作用することができるビデオ符号化プログラム116(以下、「プログラム」)を実行することができる。ビデオ符号化プログラム方法は、図4に関して以下により詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作することができ、プログラム116は、主にサーバコンピュータ114上で実行することができる。代替的な実施形態では、プログラム116は、主に1つまたは複数のコンピュータ102上で実行することができ、サーバコンピュータ114は、プログラム116によって使用されるデータの処理および格納に使用することができる。プログラム116は、スタンドアロンプログラムであってもよく、またはより大きなビデオ符号化プログラムに統合されてもよいことに留意されたい。
【0023】
しかしながら、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータとの何らかの組み合わせ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作することができる。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作することができる。あるいは、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0024】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはそれらの何らかの組み合わせを含むことができる。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続およびプロトコルの任意の組み合わせとすることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、および/またはこれらもしくは他の種類のネットワークの組み合わせといった様々な種類のネットワークを含むことができる。
【0025】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、あるいは図1に示すものとは異なる配置のデバイスおよび/またはネットワークが存在してもよい。さらに、図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。追加的または代替的に、システム100の1組のデバイス(例えば、1つまたは複数のデバイス)が、システム100の別の1組のデバイスによって実行されるものとして説明されている1つまたは複数の機能を実行してもよい。
【0026】
ここで図2Aおよび図2Bを参照すると、1つまたは複数の実施形態によるモード依存ジョイントコンポーネント二次変換(MD-JCST)エンコーダ200AおよびMD-JCSTデコーダ200Bをそれぞれ示すことができる。MD-JCSTエンコーダ200Aは、とりわけ、順変換モジュール202Aおよび202B、JCSTモジュール204、量子化モジュール206Aおよび206B、ならびにエントロピー符号化モジュール208Aおよび208Bを含んでもよい。MD-JCSTエンコーダ200Aは、複数の色コンポーネントの変換係数に対してモード依存ジョイントコンポーネント二次変換を実行することができる。JCSTは、順変換後かつ量子化前に実行されてもよい。MD-JCSTデコーダ200Bは、とりわけ、エントロピー解析モジュール210Aおよび210B、逆量子化モジュール212Aおよび212B、JCSTモジュール214、ならびに逆変換モジュール216Aおよび216Bを含むことができる。MD-JCSTデコーダ200Bは、逆量子化変換後、逆(反転)変換前にJCSTを行ってもよい。
【0027】
一実施形態では、JCSTで使用されるカーネルは、予測モードに応じて選択されてもよい。一実施形態では、異なるイントラ予測モード(例えば、DC、SMOOTH_H、SMOOTH_V、方向性モード、パエス予測器(Paeth Predictor)、フィルタリングモード)に対して、異なるJCSTカーネルを適用することができる。一実施形態では、異なる公称イントラ予測モードに対して、異なるJCSTカーネルを適用することができる。1つの実施形態では、いくつかのイントラ予測モードの場合、JCSTは無効にすることができる。これらのイントラ予測モードの例には、CfL、パエス予測器(Paeth Predictor)が含まれるが、これらに限定されない。
【0028】
一実施形態では、異なる公称イントラ予測モードに対して、異なるJCSTカーネルが適用されてもよい。一実施形態では、イントラ予測モードおよびインター予測モードに異なるJCSTカーネルを適用することができる。一実施形態では、異なるJCSTカーネルがイントラ・ブロック・コピー(IBCまたはIntraBC)モードのために適用され得る。一実施形態では、異なるJCSTカーネルをパレットモード(Palette mode)に適用され得る。1つの実施形態において、異なるJCSTカーネルは、異なるインター予測モード(例えば、局所的な反った動き、重複ブロック動き補償/OBMC)のために適用され得る。
【0029】
一実施形態では、異なる動き情報に対して異なるJCSTカーネルを適用することができる。JCSTカーネルは、動きベクトル予測子が上から来るか左から来るか、または時間的動きベクトル予測(MVP)候補から来るかどうかに依存し得る。JCSTカーネルは、動きベクトルの大きさに依存し得る。JCSTカーネルは、動きベクトルの方向に依存し得る。一実施形態では、JCSTで使用されるカーネルは、現在のブロックに対して選択されたプライマリ変換タイプに依存する。一実施形態では、JCSTも適用する色コンポーネントに適用される異なるプライマリ変換(例えば、離散コサイン変換/DCT、恒等変換/IDT、非対称離散サイン変換/ADST、線グラフ変換/LGT)に対して、異なるJCSTカーネルを適用することができる。一実施形態では、JCSTで使用されるカーネルは、現在のブロックに対して選択された二次変換カーネルに依存する。
【0030】
ここで図3Aおよび図3Bを参照すると、1つまたは複数の実施形態によるモード依存ジョイント色コンポーネント変換(MD-JCCT)エンコーダ300AおよびMD-JCCTデコーダ300Bを適用する提案をそれぞれ示すことができる。MD-JCCTエンコーダ300Aは、とりわけ、ジョイント色コンポーネント変換(JCCT)モジュール302、順変換モジュール304Aおよび304B、量子化モジュール306Aおよび306B、ならびにエントロピー符号化モジュール308Aおよび308Bを含むことができる。MD-JCCTエンコーダ300Aは、複数の色コンポーネントの変換係数に対してモード依存ジョイント色コンポーネント変換(MD-JCCT)を実行することができる。MD-JCCTエンコーダ300Aは、順変換および量子化の前にJCCTを実行することができる。MD-JCCTデコーダ300Bは、とりわけ、エントロピー解析モジュール310Aおよび310B、逆量子化モジュール312Aおよび312B、逆変換モジュール314Aおよび314B、ならびにJCCTモジュール316を含むことができる。MD-JCCTデコーダ300Bは、逆量子化および逆(反転)変換後にJCCTを行ってもよい。
【0031】
一実施形態では、JCCTで使用されるカーネルは、予測モードに応じて選択されてもよい。一実施形態では、異なるイントラ予測モード(例えば、DC、SMOOTH_H、SMOOTH_V、方向性モード、フィルタリングモード)に対して、異なるJCCTカーネルを適用することができる。一実施形態では、異なる公称イントラ予測モードに対して、異なるJCCTカーネルを適用することができる。一実施形態では、いくつかのイントラ予測モードの場合、JCCTは無効化され得る。これらのイントラ予測モードの例には、CfLが含まれるが、これに限定されない。一実施形態では、異なる公称イントラ予測モードに対して、異なるJCCTカーネルが適用されてもよい。一実施形態では、イントラおよびインター予測モードに異なるJCCTカーネルを適用することができる。一実施形態では、異なるJCCTカーネルをイントラ・ブロック・コピー(IBCまたはIntraBC)モードに適用することができる。一実施形態では、異なるJCCTカーネルをパレットモードに適用することができる。一実施形態では、異なるJCCTカーネルは、異なるインター予測モード(例えば、局所的に歪んだ動き、OBMC)に適用されてもよい。
【0032】
一実施形態では、異なる動き情報に対して異なるJCCTカーネルを適用することができる。JCCTカーネルは、動きベクトル予測子が、上または左または時間MVP候補から来るかどうかに依存し得る。JCCTカーネルは、動きベクトルの大きさに依存し得る。JCCTカーネルは、動きベクトルの方向に依存し得る。
【0033】
一実施形態では、JCCTで使用されるカーネルは、現在のブロックに対して選択されたプライマリ変換タイプに依存する。一実施形態では、JCCTも適用する色コンポーネントに適用される異なるプライマリ変換(例えば、DCT、IDT、ADST、LGT)に対して、異なるJCCTカーネルを適用することができる。一実施形態では、JCCTで使用されるカーネルは、現在のブロックに対して選択された二次変換カーネルに依存する。
【0034】
ここで図4を参照すると、ビデオデータを符号化するための方法400のステップを示す動作フローチャートが示されている。いくつかの実装形態では、図4の1つまたは複数の処理ブロックは、コンピュータ102(図1)およびサーバコンピュータ114(図1)によって実行されてもよい。いくつかの実装形態では、図4の1つまたは複数の処理ブロックは、コンピュータ102およびサーバコンピュータ114とは別個の、またはそれらを含む別のデバイスまたはデバイスのグループによって実行されてもよい。
【0035】
402において、方法400は、ビデオデータを受信するステップを含む。
【0036】
404において、方法400は、受信したビデオデータをエントロピー解析して、1つまたは複数のコンポーネントにするステップを含む。
【0037】
406において、方法400は、1つまたは複数のエントロピー解析されたコンポーネントを逆量子化するステップを含む。
【0038】
408において、方法400は、1つまたは複数のコンポーネントに対してジョイントコンポーネント二次変換を実行するステップを含む。
【0039】
410において、方法400は、ジョイントコンポーネント二次変換されたコンポーネントに対応する1つまたは複数の残差コンポーネントに基づいてビデオデータを復号するステップを含む。
【0040】
図4は、1つの実装形態の例示のみを提供し、異なる実施形態がどのように実施され得るかに関していかなる限定も暗示していないことが理解されよう。図示の環境に対する多くの修正が、設計および実施要件に基づいて行われ得る。
【0041】
図5は、例示的な実施形態による、図1に示すコンピュータの内部構成要素および外部構成要素のブロック図500である。図5は、一つの実装形態の例示のみを提供し、異なる実施形態が実施され得る環境に関していかなる限定も暗示していないことを理解されたい。図示の環境に対する多くの修正が、設計および実施要件に基づいて行われ得る。
【0042】
コンピュータ102(図1)およびサーバコンピュータ114(図1)は、図4に示す内部構成要素800A、800Bおよび外部構成要素900A、900Bのそれぞれのセットを含み得る。内部構成要素800のセットの各々は、1つまたは複数のプロセッサ820と、1つまたは複数のバス826上の1つまたは複数のコンピュータ可読RAM822および1つまたは複数のコンピュータ可読ROM824と、1つまたは複数のオペレーティングシステム828と、1つまたは複数のコンピュータ可読有形記憶装置830とを含む。
【0043】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス・プロセッシング・ユニット(GPU)、加速処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールド・プログラマブル・ゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別の種類の処理構成要素である。いくつかの実施態様では、プロセッサ820は、機能を実行するようにプログラムすることができる1つまたは複数のプロセッサを含む。バス826は、内部構成要素800A、800B間の通信を可能にする構成要素を含む。
【0044】
1つまたは複数のオペレーティングシステム828、ソフトウェアプログラム108(図1)、およびサーバコンピュータ114(図1)上のビデオ符号化プログラム116(図1)は、それぞれのRAM822(通常はキャッシュメモリを含む)のうちの1つまたは複数を介して、それぞれのプロセッサ820のうちの1つまたは複数によって実行されるために、それぞれのコンピュータ可読有形記憶装置830のうちの1つまたは複数に格納される。図5に示す実施形態では、コンピュータ可読有形記憶装置830の各々は、内蔵ハードドライブの磁気ディスク記憶装置である。あるいは、コンピュータ可読有形記憶装置830の各々は、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッド・ステート・ディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、ならびに/または、コンピュータプログラムおよびデジタル情報を格納することができる別の種類の非一時的コンピュータ可読有形記憶装置などの半導体記憶装置である。
【0045】
内部構成要素800A、800Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶装置などの1つまたは複数のポータブルコンピュータ可読有形記憶装置936から読み書きするためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(図1)およびビデオ符号化プログラム116(図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶装置936のうちの1つまたは複数に格納され、それぞれのR/Wドライブまたはインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされ得る。
【0046】
内部構成要素800A、800Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、あるいは3G、4G、もしくは5G無線インターフェースカードまたは他の有線もしくは無線通信リンクなどのネットワークアダプタまたはインターフェース836を含む。ソフトウェアプログラム108(図1)およびサーバコンピュータ114(図1)上のビデオ符号化プログラム116(図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク、または他の広域ネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して、外部コンピュータからコンピュータ102(図1)およびサーバコンピュータ114にダウンロードすることができる。ネットワークアダプタまたはインターフェース836から、ソフトウェアプログラム108およびサーバコンピュータ114上のビデオ符号化プログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含むことができる。
【0047】
外部構成要素900A、900Bのセットの各々は、コンピュータ・ディスプレイ・モニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部構成要素900A、900Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマン・インターフェース・デバイスも含むことができる。内部構成要素800A、800Bのセットの各々はまた、コンピュータ・ディスプレイ・モニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブまたはインターフェース832、およびネットワークアダプタまたはインターフェース836は、(記憶装置830および/またはROM824に記憶された)ハードウェアおよびソフトウェアを含む。
【0048】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載される教示の実装形態はクラウドコンピューティング環境に限定されないことが予め理解される。むしろ、いくつかの実施形態は、現在公知であるかまたは後に開発される任意の他の種類のコンピューティング環境と併せて実施することができる。
【0049】
クラウドコンピューティングは、設定可能なコンピューティングリソース(ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、記憶装置、アプリケーション、仮想マシン、サービスなど)の共有プールへの、簡便なオンデマンドネットワークアクセスを可能にするサービス提供モデルであり、最小限の管理作業やサービスプロバイダとのやりとりで迅速にプロビジョニングし、リリースすることができる。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
【0050】
特性は以下の通りである。
オンデマンド・セルフ・サービス:クラウド消費者は、サービスの提供者との人的な対話を必要とせずに、必要に応じて自動的に、サーバ時間やネットワーク記憶装置などのコンピューティング機能を一方的にプロビジョニングすることができる。
広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシン・クライアント・プラットフォームまたはシック・クライアント・プラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースが、需要に応じて動的に割り当ておよび再割り当てされる。消費者は、一般に、提供されるリソースの正確な場所に対する制御または知識を持たないが、より高い抽象化レベル(例えば、国、州、またはデータセンタ)で場所を指定することができるという点で、場所の独立性の感覚がある。
スピーディな拡張性:スピーディに、伸縮自在に、場合によっては自動で割り当ておよび提供が可能であり、即座にスケールアウトし、スピーディに解放されて即座にスケールインできる。消費者には、プロビジョニングに利用可能な機能は多くの場合、無制限であるように見え、いつでも任意の量で購入することができる。
測定されるサービス:クラウドシステムは、サービスの種類(例えば、記憶装置、処理、帯域幅、およびアクティブユーザアカウント)に適したある抽象化レベルで計量機能を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用を監視、制御、および報告して、利用されるサービスのプロバイダと消費者の両方に透明性を提供することができる。
【0051】
サービスモデルは次の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャ上で動作するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザなどのシン・クライアント・インターフェース(例えば、ウェブベースの電子メール)を介して様々なクライアントデバイスからアクセス可能である。消費者は、限られたユーザ固有のアプリケーション構成設定を可能な限り除いて、ネットワーク、サーバ、オペレーティングシステム、記憶装置、または個々のアプリケーション機能さえも含む基盤となるクラウドインフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、または記憶装置を含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーションおよび場合によってはアプリケーションホスティング環境構成を制御する。
サービスとしてのインフラストラクチャ(laaS):消費者に提供される機能は、処理、記憶装置、ネットワーク、および他の基本的なコンピューティングリソースをプロビジョニングすることであり、消費者は、オペレーティングシステムおよびアプリケーションを含むことができる任意のソフトウェアを展開および実行することができる。消費者は、基盤となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、記憶装置、展開されたアプリケーションに対する制御、および場合によっては選択ネットワーキング構成要素(例えば、ホストファイアウォール)の限定された制御を行う。
【0052】
展開モデルは次の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織のためにのみ動作する。これは、組織または第三者によって管理され得、オンプレミスまたはオフプレミスで存在し得る。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。クラウドインフラストラクチャは、当該組織またはサードパーティーによって管理されてもよく、また、オンプレミスで存在してもよいし、オフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々または大規模な業界グループに提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化されたまたは専売技術によって互いに結び付けられた2つ以上のクラウド(私的、共同体、または公的)の構成である。
【0053】
クラウドコンピューティング環境は、無国籍、低結合、モジュール性、およびセマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0054】
図6を参照すると、例示的なクラウドコンピューティング環境600が図示されている。図示しているように、クラウドコンピューティング環境600は、例えば、携帯情報端末(personal digital assistant:PDA)、または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、および/または、自動車コンピュータシステム54Nなどの、クラウドコンシューマによって使用されるローカル・コンピューティング・デバイスが通信することができる、1つまたは複数のクラウド・コンピューティング・ノード10を備える。クラウド・コンピューティング・ノード10は、互いと通信し合ってもよい。これらのクラウド・コンピューティング・ノード10は、これまで述べてきたプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、またはそれらの組み合わせなど、1つもしくは複数のネットワークにおいて、物理的または仮想的にグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境600は、クラウド消費者がローカル・コンピューティング・デバイス上のリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供することができる。図5に示されるコンピューティングデバイス54A~Nのタイプは、例示のみを意図しており、クラウド・コンピューティング・ノード10およびクラウドコンピューティング環境600は、任意のタイプのネットワークおよび/またはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを使用する)を介して、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0055】
図7を参照すると、クラウドコンピューティング環境600(図6)によって提供される、機能抽象化層700のセットが図示されている。図7に示す構成要素、層、および機能は例示のみを目的としており、また、いくつかの実施形態はそれに限定されないことを事前に理解されたい。図示しているように、以下の層および対応する機能が提供される。
【0056】
ハードウェアおよびソフトウェア層60は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例には、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワーク構成要素66が含まれる。いくつかの実施形態では、ソフトウェア構成要素は、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベースソフトウェア68を含む。
【0057】
仮想化層70は、仮想エンティティの以下の例が提供され得る抽象化層を提供する、すなわち、仮想サーバ71、仮想記憶装置72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75である。
【0058】
一例では、管理層80は、以下に説明する機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求または請求書発行を提供する。一例では、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクのための識別検証、ならびにデータおよび他のリソースのための保護を提供する。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようなクラウドコンピューティングリソースの割り振りおよび管理を提供する。サービスレベル合意(SLA)の計画および履行85は、その将来の要件がSLAに従って予想されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0059】
ワークロード層90は、クラウドコンピューティング環境を利用し得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育配信93、データ解析処理94、取引処理95、ならびにビデオ符号化96を含む。ビデオ符号化96は、複数の色コンポーネントからの符号化残差に基づいてビデオデータを符号化および復号することができる。
【0060】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、および/またはコンピュータ可読媒体に関し得る。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含み得る。
【0061】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの任意の適切な組み合わせであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的に符号化されたデバイス、ならびに上記の任意の適切な組み合わせを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を介して伝搬する電磁波、またはワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0062】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置に、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して外部コンピュータもしくは外部記憶装置にダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含み得る。各コンピューティング/処理デバイスのネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0063】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行し得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
【0064】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作成するように、機械を製造するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を含む。
【0065】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他の装置上で実行される命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ、他のプログラム可能な装置、または他の装置上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成するために、コンピュータ、他のプログラム可能なデータ処理装置、または他の装置上にロードされてもよい。
【0066】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実装形態のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含む、モジュール、セグメント、または命令の一部を表し得る。本方法、本コンピュータシステム、および本コンピュータ可読媒体は、図に示すものよりも多数のブロック、これらよりも少数のブロック、これらとは異なるブロック、またはこれらとは異なる配置のブロックを含んでいてもよい。いくつかの代替的な実装形態では、ブロックに記載している機能は、図に記載している順序とは異なる順序で実行されてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にもしくは実質的に同時に実行されてもよく、またはブロックは、関連する機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組み合わせは、指定された機能または動作を実行するか、専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0067】
本明細書に記載されるシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組み合わせの異なる形態で実装され得ることは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実装形態を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0068】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と互換的に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つ以上の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組み合わせなど)を含むことを意図しており、「1つまたは複数」と交換可能に使用され得る。1つの項目のみが意図される場合、「1つ」という用語または同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。さらに、「~に基づいて(based on)」という語句は、特に明記しない限り、「少なくとも部分的に~に基づいて(based,at least in part,on)」を意味することが意図される。
【0069】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。特徴の組み合わせが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組み合わせは、可能な実装形態の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または本明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接従属してもよいが、可能な実装形態の開示は、請求項セットの他のすべての請求項との組み合わせにおける各従属請求項を含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示する実施形態を理解することを可能にするために選択された。
【符号の説明】
【0070】
10 クラウド・コンピューティング・ノード
54 コンピューティングデバイス
54A 携帯電話
54B デスクトップコンピュータ
54C ラップトップコンピュータ
54N 自動車コンピュータシステム
60 ハードウェアおよびソフトウェア層
61 メインフレーム
62,63 サーバ
64 ブレードサーバ
65 記憶装置
66 ネットワーク構成要素
67 ネットワーク・アプリケーション・サーバ・ソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想記憶装置
73 仮想ネットワーク
74 オペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 価格設定
83 ユーザポータル
84 サービスレベル管理
85 サービスレベル合意(SLA)の計画および履行
90 ワークロード層
91 マッピングおよびナビゲーション
92 ソフトウェア開発およびライフサイクル管理
93 仮想教室教育配信
94 データ解析処理
95 取引処理
96 ビデオ符号化
100 ビデオ符号化システム
102 コンピュータ
104 プロセッサ
106 データ記憶装置
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 ビデオ符号化プログラム
200A MD-JCSTエンコーダ
200B MD-JCSTデコーダ
202A,202B 順変換モジュール
204 JCSTモジュール
206A,206B 量子化モジュール
208A,208B エントロピー符号化モジュール
210A,210B エントロピー解析モジュール
212A,212B 逆量子化モジュール
214 JCSTモジュール
216A,216B 逆変換モジュール
300A MD-JCCTエンコーダ
300B MD-JCCTデコーダ
302 JCCTモジュール
304A,304B 順変換モジュール
306A,306B 量子化モジュール
308A,308B エントロピー符号化モジュール
310A,310B エントロピー解析モジュール
312A,312B 逆量子化モジュール
314A,314B 逆変換モジュール
316 JCCTモジュール
400 方法
500 ブロック図
600 クラウドコンピューティング環境
700 機能抽象化層
800,800A,800B 内部構成要素
820 プロセッサ
822 RAM
824 ROM
826 バス
828 オペレーティングシステム
830 ハードドライブ
830 記憶装置
830 コンピュータ可読有形記憶装置
832 R/Wドライブまたはインターフェース
836 ネットワークアダプタまたはインターフェース
840 デバイスドライバ
900A,900B 外部構成要素
920 コンピュータ・ディスプレイ・モニタ
930 キーボード
934 コンピュータマウス
936 ポータブルコンピュータ可読有形記憶装置
図1
図2A
図2B
図3A
図3B
図4
図5
図6
図7