(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】投影スライス定理に基づく適応ループフィルタリングの分類のための属性推定
(51)【国際特許分類】
H04N 19/117 20140101AFI20231024BHJP
H04N 19/136 20140101ALI20231024BHJP
【FI】
H04N19/117
H04N19/136
(21)【出願番号】P 2022516138
(86)(22)【出願日】2021-03-26
(86)【国際出願番号】 US2021024333
(87)【国際公開番号】W WO2021195482
(87)【国際公開日】2021-09-30
【審査請求日】2022-03-11
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-03-24
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】チュン・アウヨン
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】田中 純一
(56)【参考文献】
【文献】特表2018-522442(JP,A)
【文献】米国特許出願公開第2018/0139449(US,A1)
【文献】特開2010-045636(JP,A)
【文献】特開2012-151614(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00 - 19/98
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
プロセッサが実行可能な、ビデオデータをコーディングする方法であって、
近傍データに対応するサブブロックを含むビデオデータを受信するステップと、
前記近傍データの少なくとも一部に基づいて
前記サブブロックのAC投影を計算するステップと、
同じ方向における前記AC投影を集約するステップと、
集約された前記AC投影に基づいて、1つ又は複数のACエネルギー指数及び1つ又は複数の方向性指数を計算するステップと、
計算された前記ACエネルギー指数及び方向性指数に基づいて、
ブロックのクラスインデックスを計算するステップと、
計算された前記クラスインデックスに基づいて、前記ビデオデータをデコードするステップと、
を含む方法。
【請求項2】
前記方向性指数
の数は、
集約された前記AC投影である方向性ACエネルギーインジケータの方向の数と無方向性のクラスとに基づく整数に対応する、請求項1に記載の方法。
【請求項3】
前記ブロックに対する適応ループフィルタは、前記クラスインデックスに基づいて切り替えられ、集約された前記AC投影は方向性ACエネルギーインジケータ
であり、前記方向性ACエネルギーインジケータに基づく前
記ブロックのフィルタリングのためのオン/オフクラスに基づいて、前
記ブロックを分類するステップをさらに含む、請求項1に記載の方法。
【請求項4】
前
記ブロックの分類は、水平と垂直の方向性ACエネルギー
インジケータの比率、及び/又は、45度と135度の方向性ACエネルギーインジケータの比率に基づく、請求項
3に記載の方法。
【請求項5】
前
記ブロックの分類は、前記サブブロックに関連するAC投影に基づく、請求項
3に記載の方法。
【請求項6】
ビデオコーディングのためのコンピュータシステムであって、
コンピュータプログラムコードを記憶するように構成される1つ又は複数のコンピュータ読み取り可能な非一時的な記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードの指示通りに動作するように構成される1つ又は複数のコンピュータプロセッサと、を備え、
前記コンピュータプログラムコードは、前記1つ又は複数のコンピュータプロセッサに、請求項1~
5のいずれか1項に記載の方法を実行させるように構成されるコンピュータシステム。
【請求項7】
ビデオコーディングのためのコンピュータプログラムであって、
コンピュータに、請求項1~
5のいずれか1項に記載の方法を実行させるように構成されるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
本願は、2020年3月27日に出願された米国仮出願番号63/001,170及び2021年3月24日に出願された米国出願番号17/211,269に基づく優先権を主張し、その内容を全て参照により本明細書に組み込むものとする。
【0002】
本開示は、一般に、データ処理の分野に関し、より詳細には、ビデオコーディングに関する。
【背景技術】
【0003】
AVS HPM-6は、AVS 2.0から適応ループフィルタ(ALF)を受け継いでいる。HPM-6 ALFは、領域ベースのALFである。デブロッキングとSAOプロセス後の出力である再構築されたピクチャを16個の領域に分割する。各領域は、画質を向上させるためにFIRフィルタによってフィルタリングされることが可能である。
【発明の概要】
【発明が解決しようとする課題】
【0004】
実施形態は、ビデオコーディングのための方法、システム、及びコンピュータ読み取り可能な媒体に関する。一態様によれば、ビデオコーディングのための方法が提供される。その方法は、近傍データに対応するサブブロックを含むビデオデータを受信するステップを含み得る。近傍データの少なくとも一部に基づいてAC投影を計算し、同じ方向におけるAC投影を集約する。集約されたAC投影に基づいて、1つ又は複数のACエネルギー指数及び1つ又は複数の方向性指数を計算する。計算されたACエネルギー指数及び方向性指数に基づいて、クラスインデックスを計算する。計算されたクラスインデックスに基づいて、ビデオデータをデコードする。
【0005】
別の態様によれば、ビデオコーディングのためのコンピュータシステムが提供される。コンピュータシステムは、1つ又は複数のプロセッサと、1つ又は複数のコンピュータ読み取り可能なメモリと、1つ又は複数のコンピュータ読み取り可能な有形の記憶デバイスと、1つ又は複数のメモリの少なくとも1つを介して1つ又は複数のプロセッサの少なくとも1つによって実行されるように、1つ又は複数の記憶デバイスの少なくとも1つに記憶されたプログラム命令とを含み得、それによって、コンピュータシステムは、方法を実行することが可能である。その方法は、近傍データに対応するサブブロックを含むビデオデータを受信するステップを含み得る。近傍データの少なくとも一部に基づいてAC投影を計算し、同じ方向におけるAC投影を集約する。集約されたAC投影に基づいて、1つ又は複数のACエネルギー指数及び1つ又は複数の方向性指数を計算する。計算されたACエネルギー指数及び方向性指数に基づいて、クラスインデックスを計算する。計算されたクラスインデックスに基づいて、ビデオデータをデコードする。
【0006】
さらに別の態様によれば、ビデオコーディングのためのコンピュータ読み取り可能な媒体が提供される。コンピュータ読み取り可能な媒体は、1つ又は複数のコンピュータ読み取り可能な記憶デバイスと、1つ又は複数の有形の記憶デバイスの少なくとも1つに記憶されたプログラム命令とを含み得、プログラム命令は、プロセッサによって実行可能である。プログラム命令は、近傍データに対応するサブブロックを含むビデオデータを受信するステップを適宜含み得る方法を実行するためにプロセッサによって実行可能である。近傍データの少なくとも一部に基づいてAC投影を計算し、同じ方向におけるAC投影を集約する。集約されたAC投影に基づいて、1つ又は複数のACエネルギー指数及び1つ又は複数の方向性指数を計算する。計算されたACエネルギー指数及び方向性指数に基づいて、クラスインデックスを計算する。計算されたクラスインデックスに基づいて、ビデオデータをデコードする。
【0007】
これら及び他の目的、特徴及び利点は、添付の図面に関連して読み取られる例示的な実施形態の以下の詳細な説明から明らかになるであろう。図示は、詳細な説明と併せて当業者の理解を容易にするためのものであるため、図面の様々な特徴は、縮尺通りではない。図面において、
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示している。
【
図2A】少なくとも1つの実施形態による、ビデオコーディングのための適応ループフィルタ(ALF)のブロック図である。
【
図2B】少なくとも1つの実施形態による、1つ又は複数の勾配方向に対応するサンプルのサブサンプリング位置のダイアグラムである。
【
図3】少なくとも1つの実施形態による、方向性ACエネルギーインジケータのダイアグラムである。
【
図4】少なくとも1つの実施形態による、ビデオコーディングのためのプログラムによって実行されるステップを示す動作フローチャートである。
【
図5】少なくとも1つの実施形態による、
図1に示されるコンピュータ及びサーバの内部及び外部コンポーネントのブロック図である。
【
図6】少なくとも1つの実施形態による、
図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図7】少なくとも1つの実施形態による、
図6の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0009】
請求された構造及び方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具体化され得る請求された構造及び方法の単なる例示であることが理解され得る。しかしながら、それらの構造及び方法は、多くの異なる形態で具体化され得、本明細書に記載される例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が徹底的かつ完全であり、その範囲を当業者に完全に伝えるように提供される。説明において、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴及び技術の詳細が省略されることがある。
【0010】
実施形態は、一般に、データ処理の分野に関し、より具体的には、メディア処理に関する。以下に説明する例示的な実施形態は、とりわけ、ビデオデータのルマ成分を用いてビデオデータのクロマ成分をリファインするシステム、方法、及びコンピュータプログラムを提供する。したがって、いくつかの実施形態は、領域ベースのループフィルタリングをブロックベースのループフィルタリングに置き換えることで、AVS3 HPM-6におけるコーディング効率の改善を可能にすることによって、コンピューティングの分野を改善する能力を有し、フィルタは、投影スライス定理から導き出される特徴を用いて選択される。領域ベースの適応ループフィルタを使用する代わりに、本明細書に開示される方法、コンピュータシステム、及びコンピュータ読み取り可能な媒体は、ブロックベースの適応ループフィルタを適用し、フィルタは、4×4ブロックレベルで切り替えられ得る。VVCとは対照的に、その切り替え方法は、勾配ベースではない。本明細書に開示される切り替え方法は、投影スライス定理に基づく。
【0011】
前に述べたように、AVS HPM-6は、AVS 2.0から適応ループフィルタ(ALF)を受け継いでいる。HPM-6 ALFは、領域ベースのALFである。デブロッキングとSAOプロセス後の出力である再構築されたピクチャを16個の領域に分割している。各領域は、画質を向上させるためにFIRフィルタによってフィルタリングされることが可能である。しかしながら、ALFのビットストリームには最大16個のフィルタをエンコードすることができる。したがって、隣接する領域に同じフィルタを共有させることによって、ビットストリームにエンコードされるフィルタの数を減らすことが有利であり得る。
【0012】
HPM-6とは対照的に、VVC VTM-8.0では、ブロックベースの適応ループフィルタ(BALF)を採用しており、FIRフィルタは、4×4ブロックレベルで切り替えることができる。4×4ブロックのフィルタは、4×4ブロックの8×8近傍の強度の1Dラプラシアンに基づく特徴を用いて選択される。HPM-6のコーディング効率を向上させるために、AVS-3規格の1Dラプラシアンを用いずにブロック適応ループフィルタリングをHPM-6に適用してもよい。
【0013】
態様については、様々な実施形態による方法、装置(システム)、及びコンピュータ読み取り可能な媒体のフローチャート図及び/又はブロック図を参照して本明細書で説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図のブロックの組合せは、コンピュータ読み取り可能なプログラム命令によって実装できることが理解されよう。
【0014】
以下に説明する例示的な実施形態は、ビデオデータのルマ成分を用いたビデオデータのクロマ成分のリファインメントを可能にするシステム、方法、及びコンピュータプログラムを提供する。ここで
図1を参照すると、ビデオコーディングのためのメディア処理システム100(以下、「システム」)を示すネットワーク化されたコンピュータ環境の機能ブロック図を示している。
図1は、1つの実装の例示のみを提供し、異なる実施形態が実装され得る環境に関していかなる制限も示唆しないことを理解されたい。設計及び実装要件に基づいて、示される環境に対して多くの改良がなされ得る。
【0015】
システム100は、コンピュータ102とサーバコンピュータ114とを含んでもよい。コンピュータ102は、通信ネットワーク110(以下、「ネットワーク」)を介してサーバコンピュータ114と通信してもよい。コンピュータ102は、プロセッサ104と、データ記憶デバイス106に記憶され、ユーザとのインタフェース及びサーバコンピュータ114との通信が可能であるソフトウェアプログラム108とを含んでもよい。
図5を参照して後述するように、コンピュータ102は、内部コンポーネント800Aと外部コンポーネント900Aとをそれぞれ含んでもよく、サーバコンピュータ114は、内部コンポーネント800Bと外部コンポーネント900Bとをそれぞれ含んでもよい。コンピュータ102は、例えば、携帯デバイス、電話、パーソナルデジタルアシスタント、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、又は、プログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意のタイプの計算デバイスであってもよい。
【0016】
サーバコンピュータ114は、また、
図6及び
図7に関して後述するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、又はサービスとしてのインフラストラクチャ(IaaS)などのクラウドコンピューティングサービスモデルで動作してもよい。サーバコンピュータ114は、また、プライベートクラウド、コミュニティクラウド、パブリッククラウド、又はハイブリッドクラウドなどのクラウドコンピューティング展開モデルに位置してもよい。
【0017】
ビデオコーディングに使用され得るサーバコンピュータ114は、データベース112と相互作用し得るビデオコーディングプログラム116(以下、「プログラム」)を実行することが可能である。ビデオコーディングプログラム方法は、
図4に関して以下でより詳細に説明される。一実施形態では、コンピュータ102は、ユーザインタフェースを含む入力デバイスとして動作してもよく、一方、プログラム116は、主にサーバコンピュータ114上で稼働し得る。代替的な実施形態では、プログラム116は、主に1つ又は複数のコンピュータ102上で稼働してもよく、一方、サーバコンピュータ114は、プログラム116によって使用されるデータの処理及び記憶のために使用されてもよい。なお、プログラム116は、スタンドアロンプログラムであってもよいし、より大きなビデオコーディングプログラムに統合されてもよい。
【0018】
しかしながら、プログラム116のための処理は、場合によっては、コンピュータ102とサーバコンピュータ114の間で任意の比で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、1つを超えたコンピュータ、サーバコンピュータ、又はコンピュータとサーバコンピュータとの何らかの組合せ、例えば、単一のサーバコンピュータ114とネットワーク110を通して通信する複数のコンピュータ102上で動作してもよい。別の実施形態では、例えば、プログラム116は、複数のクライアントコンピュータとネットワーク110を通して通信する複数のサーバコンピュータ114上で動作してもよい。任意選択で、プログラムは、サーバ及び複数のクライアントコンピュータとネットワークを通して通信するネットワークサーバ上で動作してもよい。
【0019】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、又はそれらの何らかの組合せを含んでもよい。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続及びプロトコルの任意の組合せとすることができる。ネットワーク110は、様々なタイプのネットワーク、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換ネットワーク、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動ネットワーク(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、及び/又は、これら又は他のタイプのネットワークの組合せを含んでもよい。
【0020】
図1に示されるデバイス及びネットワークの数及び配置は、一例として提供されている。実際には、
図1に示されるものよりも追加のデバイス及び/又はネットワーク、より少ないデバイス及び/又はネットワーク、異なるデバイス及び/又はネットワーク、或いは異なる配置のデバイス及び/又はネットワークが存在し得る。さらに、
図1に示される2つ又はそれより多くのデバイスは、単一のデバイス内に実装されてもよく、又は
図1に示される単一のデバイスは、複数の分散デバイスとして実装されてもよい。追加的に又は任意選択で、システム100のデバイスのセット(例えば、1つ又は複数のデバイス)は、システム100の別のデバイスのセットによって実行されるものとして説明される1つ又は複数の機能を実行してもよい。
【0021】
ここで
図2Aを参照すると、ブロックベースのフィルタ適応を有する例示的な適応ループフィルタ(ALFフィルタ)200のブロック図を示している。ALFフィルタ200は、クロマ成分202とルマ成分204とを含み得る。ルマ成分204の場合、局所的な勾配の方向及び活性度に基づいて、25個のフィルタのうちの1つのフィルタが、各4×4ブロックに対して選択されてもよい。また、2つの菱形フィルタ形状が使用されてもよい。ルマ成分に対しては7×7菱形形状202が適用されてもよく、クロマ成分に対しては5×5菱形形状が適用されてもよい。
【0022】
ALFフィルタ200は、各クロマ成分ごとに線形菱形形状のフィルタをルマチャネルに適用することによって、ルマサンプル値を利用して各クロマ成分をリファインすることができる。伝送されるフィルタ係数は、210倍でスケーリングされ、固定小数点表示のために丸められてもよい。フィルタの適用は、可変ブロックサイズで制御され、サンプルの各ブロックに対して受信されたコンテキストコード化されたフラグによってシグナリングされてもよい。ブロックサイズは、ALF有効化フラグとともに、各クロマ成分ごとにスライスレベルで受信されてもよい。
【0023】
ピクチャ内のクロマ成分について、ALF係数C0~C6の単一セットがクロマ成分202に適用されてもよい。
【0024】
ルマ成分204の場合、各4×4ブロックは、25個の1次クラスのうちの1つに分類されてもよい。各1次クラスは、さらに4つの2次クラスに分割され、合計100クラスとなる。ALFは、4×4ブロックの分類に基づいて切り替えられてもよい。1次分類は、4×4ブロックの方向性と活性度に関連する。2次分類は、90度の回転及び/又は垂直軸まわりの反射によるフィルタの幾何学的な変換に関連する。分類インデックスCは、その方向性Dと、活性度
【数1】
の量子化値とに基づいて、
【数2】
のように導出され得る。Dと
【数3】
を算出するために、1-Dラプラシアンを用いて水平方向、垂直方向、及び2つの対角方向の勾配を算出してもよい。
【数4】
ここで、添字i及びjは、4×4ブロック内の左上サンプルの座標を指してもよく、R(I,j)は、座標(I,j)における再構築されたサンプルを示してもよい。ブロック分類の複雑さを低減するために、サブサンプリングされた1-Dラプラシアン算出が適用される。全方向の勾配算出には、同じサブサンプリングされた位置を用いてもよい。
【0025】
水平方向及び垂直方向の勾配の最大及び最小のD値は、次のように設定されてもよい。
【数5】
また、2つの対角方向の勾配の最大値及び最小値は、次のように設定されてもよい。
【数6】
【0026】
方向性Dの値を導出するために、最大値及び最小値を互いに、及び2つの閾値t
1及びt
2と比較してもよい。
【数7】
と
【数8】
の両方が真の場合、Dは0に設定される。
【数9】
の場合、そして、
【数10】
の場合、Dは2に設定され得、そうでない場合、Dは1に設定され得る。
【数11】
の場合、そして、
【数12】
の場合、Dは4に設定され得、そうでない場合、Dは3に設定され得る。
【0027】
活性度値は、次のように算出されてもよい。
【数13】
Aは、さらに、0から4の範囲に量子化されてもよい。その量子化値を
【数14】
と表記してもよい。ピクチャ内のクロマ成分について、分類方法を適用する必要がない場合がある。
【0028】
ここで
図2Bを参照すると、1つ又は複数の勾配方向に対応するサンプルの例示的なサブサンプリング位置のダイアグラム200Bを示している。サブサンプリング位置は、垂直勾配に対応するサンプル302A、水平勾配に対応するサンプル302B、第1の対角勾配に対応するサンプル302C、及び第2の対角勾配に対応するサンプル302Dの位置を含み得る。サブサンプリング位置V、H、D1、及びD2は、それぞれ、垂直勾配、水平勾配、第1の対角勾配、及び第2の対角勾配に対応してもよい。
【0029】
ここで
図3を参照すると、例示的な方向性ACエネルギーインジケータのダイアグラム300を示している。方向性ACエネルギーインジケータは、7つのクラスに分類される。方向性ACインジケータは、矢印の方向に沿った方向を有するベクトルとして解釈される。ラベルは、方向性ACインジケータの振幅と方向に基づくACエネルギーインジケータの分類である。
【0030】
ビデオコーディングプログラム116(
図1)は、8×8近傍の中心に4×4ブロックを有する8×8近傍から4×4ブロックのクラスインデックスを計算する。その分類に応じて、4×4ブロックのALFフィルタを切り替える。ビデオコーディングプログラム116は、投影スライス定理に基づいて、8×8近傍の2×2サブブロックの水平、垂直、45度、及び135度の方向性AC投影を計算してもよい。8×8近傍の2×2ブロックの所定角度での投影のL1ノルムを、投影スライス定理のように、所定角度と直交する角度での4×4ブロックの方向性ACエネルギーインジケータとして一緒に合計する。そして、垂直、水平、135度、及び45度における4×4ブロックの方向性ACエネルギーインジケータを用いて、方向性指数D及びエネルギー指数Eを導出する。その方向性指数D及びエネルギー指数Eに基づいて、4×4ブロッククラスの分類インデックスCを、C=7D+Eとして導出する。
【0031】
所定角度での2×2ブロックのAC投影は、まず2×2ブロックからDC成分を除去し、次に投影スライス定理のように所定角度に配向した線に沿った画素値を合計することによって計算される。同じ方向を持つ2×2AC投影の絶対値を一緒に加算して、その方向と直交する角度での方向性ACエネルギーインジケータを形成する。
【0032】
適応ループフィルタを選択するための4×4ブロックの分類は、ブロックのACエネルギーの量とACエネルギーの方向性とに基づく。ACエネルギーの量の分類の場合、垂直方向と水平方向における方向性ACエネルギーインジケータの和の量子化値からACエネルギー指数を計算する。一実施形態では、量子化値は0以上4以下の整数値である。
【0033】
ACエネルギーの方向性の分類の場合、垂直、水平、135度、及び45度における方向性ACエネルギーインジケータを入力して、方向性ACエネルギーインジケータを無方向性、強い水平、水平上、水平下、強い垂直、垂直左、垂直右の7つのクラスに分類する方向性指数Dを計算する。
【0034】
一実施形態では、方向性ACエネルギーは、以下の順序で分類され得る。方向性ACエネルギーは、無方向性である場合、最初に分類され、このとき、水平エネルギーと垂直エネルギーの最大値が、45度エネルギーと135度エネルギーの最大値とほぼ同じである。ACエネルギーは、方向性である場合、強い水平又は強い垂直と分類される。ACエネルギーが強い水平/垂直ではない場合、かつ、水平ACエネルギーが垂直ACエネルギーよりも大きい場合、45度エネルギーが135度エネルギーよりも大きければ、方向性ACエネルギーは、水平上と分類される。そうでなければ、水平下と分類される。水平ACエネルギーが垂直ACエネルギーよりも大きくない場合、即ち、垂直ACエネルギーが水平エネルギーよりも大きいかそれに等しい場合、45度エネルギーが135度エネルギーよりも大きければ、方向性ACエネルギーは、垂直左と分類される。そうでなければ、垂直右と分類される。
【0035】
1つ又は複数の実施形態によれば、方向性ACエネルギーインジケータは、N方向に分類されることができ、無方向性のクラスを含み、ただし、Nは整数である。
【0036】
1つ又は複数の実施形態によれば、ブロック分類は、方向性ACエネルギーインジケータに基づくブロックのフィルタリングのためのオン/オフクラスを含む。一実施形態では、ブロックサイズは4×4である。
【0037】
1つ又は複数の実施形態によれば、ACエネルギークラスの数は、N個のクラスに分類されることができ、ACエネルギー指数は0以上N-1以下の範囲である。
【0038】
1つ又は複数の実施形態によれば、ブロック分類は、水平及び垂直の方向性ACエネルギーインジケータの比率、及び/又は、45度及び/又は135度の方向性ACエネルギーインジケータの比率に基づくことも可能である。
【0039】
1つ又は複数の実施形態によれば、ブロック分類は、N×NサブブロックのAC投影に基づいており、Nは2、4、又は8であり得る。
【0040】
1つ又は複数の実施形態によれば、ブロック分類は、DC除去を行わないN×Nサブブロックの投影に基づいており、Nは2、4、又は8であり得る。
【0041】
ここで
図4を参照すると、ビデオコーディングのためのプログラムによって実行されるステップを示す動作フローチャート400を示している。いくつかの実装において、
図4の1つ又は複数のプロセスブロックは、コンピュータ102(
図1)及びサーバコンピュータ114(
図1)によって行われてもよい。いくつかの実装において、
図4の1つ又は複数のプロセスブロックは、別のデバイス、または、コンピュータ102及びサーバコンピュータ114とは別の、又はそれらを含むデバイスの群によって行われてもよい。
【0042】
402で、方法400は、近傍データに対応するサブブロックを含むビデオデータを受信するステップを含む。
【0043】
404で、方法400は、近傍データの少なくとも一部に基づいてAC投影を計算するステップを含む。
【0044】
406で、方法400は、同じ方向におけるAC投影を集約するステップを含む。
【0045】
408で、方法400は、集約されたAC投影に基づいて、1つ又は複数のACエネルギー指数及び1つ又は複数の方向性指数を計算するステップを含む。
【0046】
410で、方法400は、計算されたACエネルギー指数及び方向性指数に基づいて、クラスインデックスを計算するステップを含む。
【0047】
412で、方法400は、計算されたクラスインデックスに基づいて、ビデオデータをデコードするステップを含む。
【0048】
図4は、1つの実装の例示のみを提供し、異なる実施形態がどのように実装され得るかに関していかなる制限も示唆しないことが理解され得る。設計及び実装要件に基づいて、示される環境に対して多くの修正がなされ得る。
【0049】
図5は、例示的な実施形態による、
図1に示されるコンピュータの内部及び外部コンポーネントのブロック
図500である。
図5は、1つの実装の例示のみを提供し、異なる実施形態が実装され得る環境に関していかなる制限も示唆しないことを理解されたい。設計及び実装要件に基づいて、示される環境に対して多くの改良がなされ得る。
【0050】
コンピュータ102(
図1)及びサーバコンピュータ114(
図1)は、
図4に図示される内部コンポーネント800A,B及び外部コンポーネント900A,Bのそれぞれのセットを含み得る。内部コンポーネント800のセットの各々は、1つ又は複数のプロセッサ820、1つ又は複数のバス826上の1つ又は複数のコンピュータ読み取り可能なRAM822及び1つ又は複数のコンピュータ読み取り可能なROM824、1つ又は複数のオペレーティングシステム828、及び1つ又は複数のコンピュータ読み取り可能な有形の記憶デバイス830を含む。
【0051】
プロセッサ820は、ハードウェア、ファームウェア、又はハードウェアとソフトウェアとの組合せで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィックス処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、又は別のタイプの処理コンポーネントである。いくつかの実装において、プロセッサ820は、機能を実行するようにプログラムされることが可能な1つ又は複数のプロセッサを含む。バス826は、内部コンポーネント800A,B間の通信を可能にするコンポーネントを含む。
【0052】
1つ又は複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)、及びサーバコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、それぞれのRAM822(典型的にはキャッシュメモリを含む)の1つ又は複数を介してそれぞれのプロセッサ820の1つ又は複数によって実行されるように、それぞれのコンピュータ読み取り可能な有形の記憶デバイス830の1つ又は複数に記憶される。
図5に示される実施形態では、コンピュータ読み取り可能な有形の記憶デバイス830の各々は、内部ハードドライブの磁気ディスク記憶デバイスである。任意選択で、コンピュータ読み取り可能な有形の記憶デバイス830の各々は、ROM824などの半導体記憶デバイス、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、及び/又は、コンピュータプログラム及びデジタル情報を記憶できる別のタイプの非一時的なコンピュータ読み取り可能な有形の記憶デバイスである。
【0053】
内部コンポーネント800A,Bの各セットは、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク又は半導体記憶デバイスなどの1つ又は複数の携帯型コンピュータ読み取り可能な有形の記憶デバイス936からの読み出し及びそれへの書き込みを行うためのR/Wドライブ又はインタフェース832も含む。ソフトウェアプログラム108(
図1)及びビデオコーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれの携帯型コンピュータ読み取り可能な有形の記憶デバイス936の1つ又は複数に記憶され、それぞれのR/Wドライブ又はインタフェース832を介して読み出され、それぞれのハードドライブ830にロードされることができる。
【0054】
内部コンポーネント800A,Bの各セットは、TCP/IPアダプタカード、無線Wi-Fiインタフェースカード、或いは、3G、4G、又は5G無線インタフェースカードまたは他の有線又は無線通信リンクなどのネットワークアダプタ又はインタフェース836も含む。ソフトウェアプログラム108(
図1)及びサーバコンピュータ114(
図1)上のビデオコーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワーク又は他の広域ネットワーク)及びそれぞれのネットワークアダプタ又はインタフェース836を介して、外部コンピュータからコンピュータ102(
図1)及びサーバコンピュータ114にダウンロードされることができる。ネットワークアダプタ又はインタフェース836から、ソフトウェアプログラム108及びサーバコンピュータ114上のビデオコーディングプログラム116はそれぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又はエッジサーバを含んでもよい。
【0055】
外部コンポーネント900A,Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934を含むことができる。外部コンポーネント900A,Bは、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、及び他のヒューマンインタフェースデバイスも含むことができる。内部コンポーネント800A,Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、及びコンピュータマウス934とのインタフェースを行うためのデバイスドライバ840も含む。デバイスドライバ840、R/Wドライブ又はインタフェース832、及びネットワークアダプタ又はインタフェース836は、ハードウェア及びソフトウェア(記憶デバイス830及び/又はROM824に記憶されている)を含む。
【0056】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことが予め理解されよう。むしろ、いくつかの実施形態は、現在知られている、又は後に開発される任意の他のタイプのコンピューティング環境と組み合わせて実装することが可能である。
【0057】
クラウドコンピューティングは、最小限の管理努力又はサービスのプロバイダとの相互作用で迅速にプロビジョニング及びリリースできる設定可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、及びサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス提供モデルである。このクラウドモデルは、少なくとも5つの特徴、少なくとも3つのサービスモデル、及び少なくとも4つの展開モデルを含み得る。
【0058】
特徴は以下の通りである。
オンデマンドセルフサービス:クラウドコンシューマは、サーバ時間及びネットワークストレージなどのコンピューティング能力の一方的な供給を、人間がサービスのプロバイダと相互作用する必要なく、必要に応じて自動的に行うことができる。
幅広いネットワークアクセス:諸能力はネットワーク経由で利用可能であり、混在するシン又はシッククライアントプラットフォーム(携帯電話、ラップトップ、PDAなど)による使用を促進する標準的なメカニズムを通じてアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを用いて複数のコンシューマにサービスを提供するためにプールされ、異なる物理的リソース及び仮想リソースは、需要に応じて動的に割り当て及び再割り当てが行われる。一般に、コンシューマは、提供されるリソースの正確な位置を制御することも知ることもできないが、より高い抽象レベルでの位置(例えば、国、州、又はデータセンター)は指定することができるという点において、位置非依存性の感覚がある。
迅速な弾力性:諸能力は、迅速かつ弾力的に、場合によっては自動的にプロビジョニングされて速やかにスケールアウトし、迅速にリリースされて速やかにスケールインすることができる。コンシューマにとっては、プロビジョニングに利用可能な諸能力はしばしば無制限のように見え、いつでも任意の量で購入することができる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、及びアクティブユーザアカウント)に適した何らかの抽象レベルにおける計測能力を活用することにより、リソース使用を自動的に制御し、最適化する。リソース使用状況は監視、制御、報告することができ、これにより、利用するサービスのプロバイダとコンシューマの双方に透明性がもたらされる。
【0059】
サービスモデルは以下の通りである。
サービスとしてのソフトウェア(Software as a Service、SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)のようなシンクライアントインタフェースを通じて、様々なクライアントデバイスからアクセス可能である。コンシューマは、限定的なユーザ固有のアプリケーション構成設定が考えられることを別にすれば、ネットワーク、サーバ、オペレーティングシステム、ストレージ、さらには個別のアプリケーション能力をも含めて、基盤となるクラウドインフラストラクチャの管理又は制御は行わない。
サービスとしてのプラットフォーム(Platform as a Service、PaaS):コンシューマに提供される能力は、プロバイダがサポートするプログラミング言語とツールを使ってコンシューマが作成又は取得したアプリケーションを、クラウドインフラストラクチャ上に展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、又はストレージを含めて、基盤となるクラウドインフラストラクチャの管理又は制御は行わないが、展開されたアプリケーションと、場合によってはアプリケーションホスティング環境構成を制御することができる。
サービスとしてのインフラストラクチャ(Infrastructure as a Service、laaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、及び他の基本的なコンピューティングリソースをプロビジョニングすることであり、コンシューマは、任意のソフトウェア(オペレーティングシステムおよびアプリケーションが含まれ得る)を展開し稼働させることができる。コンシューマは、基盤となるクラウドインフラストラクチャの管理又は制御は行わないが、オペレーティングシステム、ストレージ、展開されたアプリケーションを制御することができ、場合によっては限定的に選択ネットワークコンポーネント(例えば、ホストファイアウォール)を制御することもできる。
【0060】
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、1つの組織のみのために運用される。その組織又はサードパーティによって管理される場合もあれば、オンプレミス又はオフプレミスに存在する場合もある。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共通の関心(例えば、ミッション、セキュリティ要件、ポリシー、及びコンプライアンスへの配慮)を持つ特定のコミュニティをサポートする。それらの組織又はサードパーティによって管理される場合もあれば、オンプレミス又はオフプレミスに存在する場合もある。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々や大規模な業界団体が利用できるようになっており、クラウドサービスを販売する組織が所有する。
ハイブリッドクラウド:クラウドインフラストラクチャは、2つ又はそれより多くのクラウド(プライベート、コミュニティ、又はパブリック)が合成されたものであり、これらのクラウドは、一意のエンティティにとどまっているものの、データとアプリケーションのポータビリティーを可能にする標準化された又は独自の技術(たとえば、クラウド間の負荷分散のためのクラウドバースト)によって互いに結びついている。
【0061】
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、及びセマンティック相互運用性に焦点を当てたサービス指向型である。クラウドコンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【0062】
図6を参照すると、例示的なクラウドコンピューティング環境600を示している。示されるように、クラウドコンピューティング環境600は、例えば、パーソナルデジタルアシスタント(PDA)又はセルラー電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54C、及び/又は自動車コンピュータシステム54Nなどの、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信することができる1つ又は複数のクラウドコンピューティングノード10を備える。クラウドコンピューティングノード10は、互いに通信してもよい。それらは、本明細書で説明したようなプライベート、コミュニティ、パブリック、又はハイブリッドクラウド、又はそれらの組合せなどの1つ又は複数のネットワークにおいて、物理的又は仮想的にグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境600は、クラウドコンシューマがローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、及び/又は、ソフトウェアを提供することができる。
図6に示される計算デバイス54A~Nのタイプは、例示のみを意図しており、クラウドコンピューティングノード10及びクラウドコンピューティング環境600は、任意のタイプのネットワーク及び/又はネットワークアドレス可能接続を介して(例えば、ウェブブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることは理解されるであろう。
【0063】
図7を参照すると、クラウドコンピューティング環境600(
図6)によって提供される機能抽象化層700のセットを示している。
図7に示されるコンポーネント、層、及び機能は、例示のみを意図しており、実施形態はこれに限定されないことを予め理解されたい。示されているように、以下の層及び対応する機能が提供される。
【0064】
ハードウェア及びソフトウェア層60は、ハードウェア及びソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例には、メインフレーム61、RISC(Reduced Instruction Set Computer:縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、ストレージデバイス65、ならびにネットワーク及びネットワーキングコンポーネント66が含まれる。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67及びデータベースソフトウェア68を含む。
【0065】
仮想化層70は、仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーション及びオペレーティングシステム74、ならびに仮想クライアント75のような仮想エンティティの例が提供され得る抽象化層を提供する。
【0066】
一例では、管理層80は、以下に説明する機能を提供し得る。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソース及び他のリソースの動的調達を提供する。メータリング及びプライシング82は、リソースがクラウドコンピューティング環境内で利用される際のコスト追跡、及びこれらのリソースの消費に対する請求又は課金を提供する。一例として、これらのリソースは、アプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマとタスクの身元確認、及びデータとその他のリソースの保護を提供する。ユーザポータル83は、コンシューマとシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、要求されたサービスレベルが満たされるように、クラウドコンピューティングリソースの割り当て及び管理を提供する。サービスレベルアグリーメント(SLA)計画及び履行85は、SLAに従って将来の要件が予想されるクラウドコンピューティングリソースの事前手配、及び調達を提供する。
【0067】
ワークロード層90は、クラウドコンピューティング環境が利用され得る機能性の例を提供する。この層から提供され得るワークロード及び機能の例には、マッピング及びナビゲーション91、ソフトウェア開発及びライフサイクル管理92、仮想教室教育配信93、データ分析処理94、トランザクション処理95、及びビデオコーディング96が含まれる。ビデオコーディング96は、ビデオデータのダイナミックレンジを制限するために、制約されたフィルタリング係数を有するビデオデータのエンコード及びデコードを可能にすることができる。
【0068】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、及び/又は、コンピュータ読み取り可能な媒体に関するものであってもよい。コンピュータ読み取り可能な媒体は、プロセッサに動作を実行させるためのコンピュータ読み取り可能なプログラム命令をその上に有するコンピュータ読み取り可能な非一時的な記憶媒体(又はメディア)を含み得る。
【0069】
コンピュータ読み取り可能な記憶媒体は、命令実行デバイスによって使用されるための命令を保持し記憶することができる有形のデバイスとすることができる。コンピュータ読み取り可能な記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、又は前述の任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ読み取り可能な記憶媒体のより具体的な例の非網羅的なリストには、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能プログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカード又は命令が記録されている溝内の隆起構造などの機械的にエンコードされたデバイス、及び前記の任意の適切な組合せが含まれる。本明細書で使用されるコンピュータ読み取り可能な記憶媒体は、電波又は他の自由に伝播する電磁波、導波管又は他の伝送媒体を介して伝播する電磁波(例えば、光ファイバケーブルを通過する光パルス)、又はワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるものではない。
【0070】
本明細書に記載されたコンピュータ読み取り可能なプログラム命令は、コンピュータ読み取り可能な記憶媒体からそれぞれの計算/処理デバイスに、或いは、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワーク及び/又は、無線ネットワークなどのネットワークを介して外部コンピュータ又は外部記憶デバイスにダウンロードされることができ。ネットワークは、銅線伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ及び/又は、エッジサーバを含み得る。各計算/処理デバイス内のネットワークアダプタカード又はネットワークインタフェースは、ネットワークからコンピュータ読み取り可能なプログラム命令を受信し、それぞれの計算/処理デバイス内のコンピュータ読み取り可能な記憶媒体への記憶のために、コンピュータ読み取り可能なプログラム命令を転送する。
【0071】
動作を実行するためのコンピュータ読み取り可能なプログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、或いは、Smalltalk、C++などのオブジェクト指向プログラミング言語、「C」プログラミング言語又は類似のプログラミング言語などの手続き型プログラミング言語など1つ又は複数のプログラミング言語の任意の組合せで書かれたソースコード又はオブジェクトコードであり得る。コンピュータ読み取り可能なプログラム命令は、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で完全に実行したり、ユーザのコンピュータ上で部分的に実行したりしてもよいし、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に実行したり、リモートコンピュータ又はサーバ上で完全に実行したりしてもよい。後者の場合、リモートコンピュータは、ローカルエリアネットワーク(LAN)又はワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、或いは、外部コンピュータに(例えば、インターネットサービスプロバイダを使用したインターネットを介して)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、又はプログラマブル論理アレイ(PLA)を含む電子回路は、態様又は動作を実行するために、コンピュータ読み取り可能なプログラム命令の状態情報を利用することで、電子回路を個人化し、コンピュータ読み取り可能なプログラム命令を実行してもよい。
【0072】
これらのコンピュータ読み取り可能なプログラム命令は、汎用コンピュータ、専用コンピュータ、又は他のプログラマブルデータ処理装置のプロセッサに提供されて、マシンを製造してもよく、その結果、コンピュータ又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロックに指定された機能/動作を実装するための手段を作成するようにする。これらのコンピュータ読み取り可能なプログラム命令は、また、コンピュータ、プログラマブルデータ処理装置、及び/又は、他のデバイスに特定の方法で機能するように指示することができるコンピュータ読み取り可能な記憶媒体に記憶されてもよく、その結果、その中に記憶された命令を有するコンピュータ読み取り可能な記憶媒体が、フローチャート及び/又はブロック図のブロックに指定された機能/動作の態様を実装する命令を含む製造品を含むようにする。
【0073】
コンピュータ読み取り可能なプログラム命令は、また、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされて、コンピュータ、他のプログラマブル装置、又は他のデバイス上で一連の動作ステップを実行させて、コンピュータ実装プロセスを生成してもよく、その結果、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行する命令が、フローチャート及び/又はブロック図のブロックに指定された機能/動作を実装するようにする。
【0074】
図中のフローチャート及びブロック図は、様々な実施形態によるシステム、方法、及びコンピュータ読み取り可能な媒体の可能な実装のアーキテクチャ、機能性、及び操作を示している。この点に関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つ又は複数の実行可能な命令を含む、命令のモジュール、セグメント、又は部分を表すことができる。この方法、コンピュータシステム、及びコンピュータ読み取り可能な媒体は、図に示されるものよりも追加のブロック、より少ないブロック、異なるブロック、又は異なる配置のブロックを含んでもよい。いくつかの代替的な実施態様では、ブロックに記された機能は、図に記された順序とは異なる場合がある。例えば、連続して示された2つのブロックは、実際には、同時又は実質的に同時に実行されてもよく、又はこれらのブロックは、関係する機能性に応じて、時には逆の順序で実行されてもよい。なお、また、ブロック図及び/又はフローチャート図の各ブロック、及び、ブロック図及び/又はフローチャート図のブロックの組合せは、指定された機能又は動作を実行する、又は専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装できる。
【0075】
本明細書で説明されるシステム及び/又は方法は、異なる形態のハードウェア、ファームウェア、又はハードウェアとソフトウェアの組合せで実装され得ることは明らかであろう。これらのシステム及び/又は方法を実装するために使用される実際の専用制御ハードウェア又はソフトウェアコードは、実装を限定するものではない。したがって、システム及び/又は方法の操作及び行動は、特定のソフトウェアコードを参照することなく本明細書で説明されており、ソフトウェア及びハードウェアは、本明細書での説明に基づいてシステム及び/又は方法を実装するように設計され得ることが理解される。
【0076】
本明細書で使用されるいかなる要素、動作、又は命令も、重要又は必須であると明示的に記述されない限り、重要又は必須であると解釈されるべきではない。また、本明細書で使用されるように、冠詞「a」及び「an」は、1つ又は複数のアイテムを含むことを意図しており、「1つ又は複数」と互換的に使用される場合がある。さらに、本明細書で使用されるように、用語「セット」は、1つ又は複数のアイテム(例えば、関連アイテム、非関連アイテム、関連アイテムと非関連アイテムの組合せなど)を含むことを意図しており、「1つ又は複数」と互換的に使用する場合がある。1つのアイテムのみが意図される場合、「1つ」という用語又は類似の言語が使用される。また、本明細書で使用されるように、用語「有する」、「持っている」、「持つ」などは、オープンエンド用語であることが意図される。さらに、「・・・に基づく」という文は、特に明記されていない限り、「少なくとも部分的に、・・・に基づく」ことを意味することが意図される。
【0077】
例示の目的で、様々な態様及び実施形態の説明が提示されてきたが、網羅的であること、又は開示された実施形態に限定されることを意図するものではない。特徴の組合せが特許請求の範囲に記載され、及び/又は、明細書に開示されているとしても、これらの組合せは、可能な実装の開示を制限することを意図していない。実際には、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、及び/又は、本明細書に開示されていない方法で組み合わされてもよい。以下に記載される各従属請求項は、1つの請求項のみに直接依存することができるが、可能な実装の開示は、請求項セット内の他のすべての請求項との組合せにおける各従属請求項を含む。多くの修正及び変形が、説明された実施形態の範囲から逸脱することなく、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、市場で見出される技術に対する実用化又は技術的改良を最もよく説明するために、或いは当業者が本明細書に開示された実施形態を理解することを可能にするために選択される。
【符号の説明】
【0078】
100 システム
102 コンピュータ
104 プロセッサ
106 データ記憶デバイス
108 ソフトウェアプログラム
110 通信ネットワーク
112 データベース
114 サーバコンピュータ
116 ビデオコーディングプログラム