(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-09-29
(45)【発行日】2023-10-10
(54)【発明の名称】スキップ係数のコーディングを変換するための方法および装置
(51)【国際特許分類】
H04N 19/129 20140101AFI20231002BHJP
H04N 19/157 20140101ALI20231002BHJP
H04N 19/176 20140101ALI20231002BHJP
H04N 19/70 20140101ALI20231002BHJP
【FI】
H04N19/129
H04N19/157
H04N19/176
H04N19/70
(21)【出願番号】P 2022530794
(86)(22)【出願日】2021-06-08
(86)【国際出願番号】 US2021036426
(87)【国際公開番号】W WO2022046242
(87)【国際公開日】2022-03-03
【審査請求日】2022-05-25
(32)【優先日】2020-08-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-05-20
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】シャオジョン・シュ
(72)【発明者】
【氏名】シャン・リュウ
【審査官】岩井 健二
(56)【参考文献】
【文献】特表2016-536848(JP,A)
【文献】特表2016-521070(JP,A)
【文献】国際公開第2020/149608(WO,A1)
【文献】国際公開第2019/189900(WO,A1)
【文献】米国特許出願公開第2019/0306536(US,A1)
【文献】Zhuoyi Lv, et al.,SCAN REGION-BASED COEFFICIENT CODING IN AVS3,2020 IEEE International Conference on Multimedia & Expo Workshop (ICMEW) ,IEEE,2020年07月,pp.1-5
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
プロセッサによって実行可能なビデオコーディングの方法であって、
1つまたは複数のコーディング係数を有するビデオデータを受信するステップと、
スキャン領域ベースの係数コーディング
(SRCC)での操作を選択することに基づいて、前記受信したビデオデータに対して反転または回転操作を実行して、前記コーディング係数をスキャン領域に集中させ
るとともにSRCC領域のサイズを小さくするステップと、
前記選択された
操作に基づいて、前記ビデオデータをデコードするステップと
を含む、方法。
【請求項2】
前記
操作は、コーディングブロックに使用されるパラメータの明示的なシグナリングに基づいて選択される、請求項1に記載の方法。
【請求項3】
前記
操作は、イントラコーディングされた現在のブロックで使用されるイントラ予測方向から暗黙的に推論することに基づいて選択される、請求項1に記載の方法。
【請求項4】
前記回転または反転操作は、前記選択されたスキャン領域ベースの係数コーディング定義に対応する前記受信したビデオデータ内の原点を識別することに基づいて実行される、請求項1に記載の方法。
【請求項5】
前記原点は、前記受信したビデオデータに関連付けられたイントラ予測モードによって決定される、請求項4に記載の方法。
【請求項6】
前記原点は、明示的に通知される、請求項4に記載の方法。
【請求項7】
前記スキャン領域に関連付けられた高さおよび幅が定義される、請求項1に記載の方法。
【請求項8】
ビデオコーディングのためのコンピュータシステムであって、前記コンピュータシステムは、
コンピュータプログラムコードを記憶するように構成された1つまたは複数のコンピュータ可読非一時的記憶媒体と、
前記コンピュータプログラムコードにアクセスし、前記コンピュータプログラムコードによって指示されるように動作するように構成された1つまたは複数のコンピュータプロセッサと
、
を含み、前記コンピュータプログラムコードは、前記1つまたは複数のコンピュータプロセッサに、請求項1~7のいずれか一項に記載の方法を行わせるためのコンピュータプログラムコードである、コンピュータシステム。
【請求項9】
1つまたは複数のコンピュータプロセッサに、請求項1~7のいずれか一項に記載の方法を行わせるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年8月25日に出願された米国仮出願第63/070,023号に基づいて優先権を主張する2021年5月20日に出願された米国特許出願第17/325,606号に対する優先権の利益を主張し、これらの各々は全体として参照により本明細書に組み込まれる。
【0002】
本開示は、一般に、データ処理の分野、より詳細にはビデオコーディングに関する。
【背景技術】
【0003】
AVS標準では、SRCC(スキャン領域ベースの係数コーディング)と呼ばれる残差コーディングの手法が提案された。変換ブロック内の領域は、非ゼロ係数がラベル付けされた領域内にのみ存在するようにラベル付けすることができる。一方、領域外の場所は、ゼロの係数のみを有する必要がある。この領域は、スキャン領域と呼ばれる。
【発明の概要】
【課題を解決するための手段】
【0004】
実施形態は、ビデオコーディングのための方法、システム、およびコンピュータ可読媒体に関する。一態様によると、ビデオコーディングのための方法が提供される。この方法は、1つまたは複数のコーディング係数を有するビデオデータを受信することを含み得る。スキャン領域ベースの係数コーディング定義を選択することに基づいて、受信したビデオデータに対して反転または回転操作が実行され、コーディング係数をスキャン領域に集中させる。ビデオデータは、選択されたスキャン領域ベースの係数コーディング定義に基づいてデコードされる。
【0005】
別の態様によると、ビデオコーディングのためのコンピュータシステムが提供される。コンピュータシステムは、1つまたは複数のプロセッサと、1つまたは複数のコンピュータ可読メモリと、1つまたは複数のコンピュータ可読有形記憶装置と、1つまたは複数のメモリのうちの少なくとも1つを介して1つまたは複数のプロセッサのうちの少なくとも1つによって実行するために1つまたは複数の記憶装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、それによってコンピュータシステムは方法を実行することができる。この方法は、1つまたは複数のコーディング係数を有するビデオデータを受信することを含み得る。スキャン領域ベースの係数コーディング定義を選択することに基づいて、受信したビデオデータに対して反転または回転操作が実行され、コーディング係数をスキャン領域に集中させる。ビデオデータは、選択されたスキャン領域ベースの係数コーディング定義に基づいてデコードされる。
【0006】
さらに別の態様によると、ビデオコーディングのためのコンピュータ可読媒体が提供される。コンピュータ可読媒体は、1つまたは複数のコンピュータ可読記憶装置と、1つまたは複数の有形記憶装置のうちの少なくとも1つに格納されたプログラム命令と、を含むことができ、プログラム命令はプロセッサによって実行可能である。プログラム命令は、それに従って1つまたは複数のコーディング係数を有するビデオデータを受信することを含み得る方法を実行するためにプロセッサによって実行可能である。スキャン領域ベースの係数コーディング定義を選択することに基づいて、受信したビデオデータに対して反転または回転操作が実行され、コーディング係数をスキャン領域に集中させる。ビデオデータは、選択されたスキャン領域ベースの係数コーディング定義に基づいてデコードされる。
【0007】
これらおよび他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的な実施形態の以下の詳細な説明から明らかになるであろう。例示は詳細な説明と併せて当業者の理解を容易にする際の明確さのためのものであるため、図面の様々な特徴は正確な縮尺ではない。
【図面の簡単な説明】
【0008】
【
図1】少なくとも1つの実施形態によるネットワーク化されたコンピュータ環境を示す図である。
【
図2A】少なくとも1つの実施形態による、スキャン領域ベースの係数コーディング(SRCC)の図である。
【
図2B】少なくとも1つの実施形態による、残差ブロックの回転および対応するSRCC領域定義の図である。
【
図2C】少なくとも1つの実施形態による、イントラ予測方向分類の図である。
【
図2D】少なくとも1つの実施形態による、SRCC領域定義の図である。
【
図2E】少なくとも1つの実施形態による、イントラ予測方向を5つの方向クラスに分類する図である。
【
図3】少なくとも1つの実施形態による、SRCC定義に基づいてビデオデータをエンコードおよびデコードするプログラムによって実行されるステップを示す動作フローチャートである。
【
図4】少なくとも1つの実施形態による、
図1に示されるコンピュータおよびサーバの内部および外部コンポーネントのブロック図である。
【
図5】少なくとも1つの実施形態による、
図1に示されるコンピュータシステムを含む例示的なクラウドコンピューティング環境のブロック図である。
【
図6】少なくとも1つの実施形態による、
図5の例示的なクラウドコンピューティング環境の機能層のブロック図である。
【発明を実施するための形態】
【0009】
特許請求される構造および方法の詳細な実施形態が本明細書に開示されているが、開示された実施形態は、様々な形態で具現化され得る特許請求された構造および方法の単なる例示であることが理解され得る。これらの構造および方法は、しかしながら、多くの異なる形態で具体化され得、本明細書に記載される例示的な実施形態に限定されると解釈されるべきではない。むしろ、これらの例示的な実施形態は、本開示が詳細かつ完全であり、当業者にその範囲を十分に伝えるために提供されている。この説明では、提示された実施形態を不必要に不明瞭にすることを避けるために、周知の特徴および技術の詳細は省略される場合がある。
【0010】
実施形態は、一般に、データ処理の分野、より詳細にはビデオコーディングに関する。以下に説明する例示的な実施形態は、とりわけ、ビデオデータをエンコードおよびデコードするためのシステム、方法、およびコンピュータプログラムを提供する。したがって、いくつかの実施形態は、ビデオデータをコーディングする際の効率を高めることを可能にすることによって、コンピューティングの分野を改善する能力を有する。
【0011】
前述のように、スキャン領域ベースの係数コーディング(SRCC)と呼ばれる、残差コーディングの手法であるAVS標準が提案された。変換ブロック内の領域は、非ゼロ係数がラベル付けされた領域内にのみ存在するようにラベル付けすることができる。一方、領域外の場所は、ゼロの係数のみを有する必要がある。この領域は、スキャン領域と呼ばれる。ただし、係数の分布を調整するために、関連するコーディング情報は考慮されない。したがって、回転および同様の操作の効率を改善するために、非ゼロ係数を集中させ、SRCC領域のサイズを縮小することが有利である可能性がある。
【0012】
様々な実施形態による方法、装置(システム)、およびコンピュータ可読媒体のフローチャート図および/またはブロック図を参照して、態様を本明細書で説明する。フローチャート図および/またはブロック図の各ブロック、ならびにフローチャート図および/またはブロック図のブロックの組合せは、コンピュータ可読プログラム命令によって実施され得ることが理解されよう。
【0013】
以下に説明する例示的な実施形態は、SRCC定義に基づいてビデオデータをエンコードおよびデコードするシステム、方法、およびコンピュータプログラムを提供する。ここで
図1を参照すると、SRCC定義に基づいてビデオデータをエンコードおよびデコードするためのビデオコーディングシステム100(以下「システム」)を示すネットワーク化されたコンピュータ環境の機能ブロック図。
図1は、一実施態様の例示のみを提供し、異なる実施形態が実施され得る環境に関していかなる制限を意味しないことを理解されたい。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。
【0014】
システム100は、コンピュータ102およびサーバコンピュータ114を含むことができる。コンピュータ102は、通信ネットワーク110(以下「ネットワーク」)を介してサーバコンピュータ114と通信することができる。コンピュータ102は、プロセッサ104と、データ記憶装置106に格納され、ユーザとインターフェースし、サーバコンピュータ114と通信することが可能なソフトウェアプログラム108と、を含むことができる。
図4を参照して以下で説明するように、コンピュータ102は、それぞれ内部コンポーネント800Aおよび外部コンポーネント900Aを含むことができ、サーバコンピュータ114は、それぞれ内部コンポーネント800Bおよび外部コンポーネント900Bを含むことができる。コンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムを実行し、ネットワークにアクセスし、データベースにアクセスすることができる任意の種類のコンピューティングデバイスであってもよい。
【0015】
サーバコンピュータ114はまた、
図5および
図6に関して以下で説明するように、サービスとしてのソフトウェア(SaaS)、サービスとしてのプラットフォーム(PaaS)、またはサービスとしてのインフラストラクチャ(laaS)などのクラウドコンピューティングサービスモデルで動作し得る。サーバコンピュータ114はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウド、またはハイブリッドクラウドなどのクラウドコンピューティング展開モデルに配置されてもよい。
【0016】
SRCC定義に基づくビデオのエンコードおよびデコードに使用することができるサーバコンピュータ114は、データベース112と相互作用することができるビデオコーディングプログラム116(以下、「プログラム」)を実行することができる。ビデオコーディングプログラムの方法は、
図3に関して以下でより詳細に説明される。一実施形態では、コンピュータ102は、ユーザインターフェースを含む入力デバイスとして動作することができ、プログラム116は、主にサーバコンピュータ114上で実行することができる。代替的な実施形態では、プログラム116は、主に1つまたは複数のコンピュータ102上で実行することができ、サーバコンピュータ114は、プログラム116によって使用されるデータの処理および格納に使用することができる。プログラム116は、スタンドアロンプログラムであってもよいか、またはより大きなビデオコーディングプログラムに統合されていてもよいことに留意されたい。
【0017】
しかしながら、プログラム116の処理は、場合によっては、コンピュータ102とサーバコンピュータ114との間で任意の比率で共有されてもよいことに留意されたい。別の実施形態では、プログラム116は、複数のコンピュータ、サーバコンピュータ、またはコンピュータとサーバコンピュータとの何らかの組合せ、例えば、ネットワーク110を介して単一のサーバコンピュータ114と通信する複数のコンピュータ102上で動作することができる。別の実施形態では、例えば、プログラム116は、ネットワーク110を介して複数のクライアントコンピュータと通信する複数のサーバコンピュータ114上で動作することができる。あるいは、プログラムは、ネットワークを介してサーバおよび複数のクライアントコンピュータと通信するネットワークサーバ上で動作してもよい。
【0018】
ネットワーク110は、有線接続、無線接続、光ファイバ接続、またはそれらの何らかの組合せを含むことができる。一般に、ネットワーク110は、コンピュータ102とサーバコンピュータ114との間の通信をサポートする接続およびプロトコルの任意の組合せとすることができる。ネットワーク110は、例えば、ローカルエリアネットワーク(LAN)、インターネットなどのワイドエリアネットワーク(WAN)、公衆交換電話網(PSTN)などの電気通信ネットワーク、無線ネットワーク、公衆交換網、衛星ネットワーク、セルラーネットワーク(例えば、第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動網(PLMN)、メトロポリタンエリアネットワーク(MAN)、プライベートネットワーク、アドホックネットワーク、イントラネット、光ファイバベースのネットワークなど、および/またはこれらのもしくは他のタイプのネットワークの組合せなどの様々なタイプのネットワークを含むことができる。
【0019】
図1に示すデバイスおよびネットワークの数および配置は、一例として提供されている。実際には、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、あるいは
図1に示すものとは異なる配置のデバイスおよび/またはネットワークが存在してもよい。さらに、
図1に示す2つ以上のデバイスは、単一のデバイス内に実装されてもよく、または
図1に示す単一のデバイスは、複数の分散型デバイスとして実装されてもよい。それに加えて、またはその代わりに、システム100の一組のデバイス(例えば、1つまたは複数のデバイス)は、システム100の別の一組のデバイスによって実行されるものとして説明される1つまたは複数の機能を実行することができる。
【0020】
ここで
図2Aを参照すると、スキャン領域ベースの係数コーディング(SRCC)の
図200Aが示されている。
図200Aは、スキャン領域202およびスキャン領域内のスキャン順序204を含み得る。スキャン領域202は、領域の2つの寸法(SRx、SRy)をコーディングすることによって通知され得る。SRxは、1まで小さく、変換ブロックの幅まで大きくすることができる。SRyは、1まで小さく、変換ブロックの高さまで大きくすることができる。これらの2つのパラメータをコーディングする場合、SRx-1とSRy-1の値をコーディングできる。スキャン領域内部の係数の場合、係数の位置をコーディングするために逆ジグザグスキャン順序が提供される。デコーダーの観点から、SRCC領域をデコードした後の係数ブロックは、それらに逆量子化を適用する前に逆変換される。予測ブロックに追加され、ループフィルタリングの前に再構成ブロックを形成する残差ブロックが、逆量子化の後に取得される。
【0021】
ここで
図2Bを参照すると、残差ブロックの回転の
図200Bおよび対応するSRCC領域の定義が示されている。
図200Bは、非ゼロ係数A-Dを含み得る。点線のブロックは、回転前後のSRCC領域である。SRCC領域をデコードした後、係数は逆180度操作を実行して、ブロック内の係数の元の分布を復元することができる。
【0022】
1つまたは複数の実施形態によれば、逆変換モジュールは、任意選択で除去することができ、これは、係数ブロックを逆量子化で直接処理して、残差ブロックを形成することができることを意味する。エンコーダ側では、これはビデオコーデックの変換コーディングステージをスキップすることを同等に意味する。したがって、この手法は変換スキップ(TS)と呼ばれる。
【0023】
残差ブロックに対して、該当する場合、エンコーダは、量子化ステージの前に、変換を適用するか、変換をスキップするかを選択できる。選択は、選択のフラグを通知することによって明示的にするか、または係数の合計のパリティなどの係数の統計を分析することによって暗黙的にすることができる。TSを選択した場合、SRCCおよび係数値コーディングなどの後の操作が依然として適用され、変換係数コーディング用に設計されたものを再利用する。
【0024】
SRCCは、変換後、非ゼロ係数がブロックの上部および左側に収束する傾向があり、量子化後にブロックの右側と下部に多くのゼロ係数が残るため、変換係数のコーディングに有効である。変換された係数とは異なり、変換スキップが適用される場合、非ゼロ残差係数の分布はブロックの上部と左側に集中しない場合がある。代わりに、イントラコーディングされたブロックに対してブロックの右下部分により多く割り当てることができる。SRCC領域を計算する前に、イントラコーディングされた残差ブロックに対して180度回転することができる。
【0025】
ここで
図2Cを参照すると、イントラ予測方向分類の
図200Cが示されている。イントラ予測方向は、水平、垂直、対角方向のグループを含む3つの方向クラスに分類できる。平面モードとDCモードを含む無指向性モードは、対角方向グループに入れることができる。1つまたは複数の実施形態によれば、係数ブロックに対する180度の回転以外の操作。このような操作の例には、水平方向の反転および垂直方向の反転、90度回転、270(-90)度回転などが含まれる。これらの操作は、180度の回転を置き換えるか、追加オプションとして使用することができる。一実施形態では、選択は、どのオプションがコーディングブロックに使用されるかを明示的にシグナリングすることによって行われる。別の実施形態では、選択は、イントラコーディングされている場合、現在のブロックで使用されるイントラ予測方向から暗黙的に推論することによって行われる。
【0026】
各々の特定のイントラ予測モードに対して、対応する操作(180度の回転、水平方向の反転、垂直方向の反転などを含む)が割り当てられる。より具体的には、イントラ予測セット全体を方向性に従って分割することができる。例えば、水平予測方向とその隣接する方向は、水平方向の反転の使用を推測し、垂直予測方向とその隣接する方向は、垂直方向の反転の使用を推測し、対角方向(左上、右上、および左下の参照サンプルのうちの1つまたは複数から現在のサンプルへの予測方向を含む)とその隣接する方向は、180度の回転の使用を推測する。
【0027】
ここで
図2Dを参照すると、SRCC領域定義の
図200Dが示されている。
図200Dは、SRCC領域定義の4つの状態(1)~(4)を示している。黒い点はSRCC領域の原点を表し、SRxとSRyの意味を領域サイズとしての信号になるように決定する。1つまたは複数の実施形態によれば、SRCC領域の代替の定義を考慮することができる。元の領域が現在のブロックの左上隅から開始すると仮定すると、それは右下隅、右上隅、および左上隅から開始することもできる。例えば、元の領域に加えて、3つの代替SRCC領域が提供される。(TSモードの)残差ブロックまたは(変換モードの)変換係数ブロックごとに、複数の可能なSRCC領域定義から選択できる。
【0028】
SRxとSRyのコーディング、および領域内のスキャン順序は、従来のSRCCの元の方法と同じ(領域の右下部分からの逆ジグザグスキャン順序)にすることができる。SRCC領域の係数をデコードした後、それに従って状態(2)~(4)の代替係数が使用され、ブロック内部の係数位置のシフトが必要になる場合がある。例えば、状態(2)には、寸法(幅、高さ)とSRCCサイズ(SRx、SRy)のブロックが含まれ得る。最初に、SRCCの係数は、状態(1)と同様に、デコードされてブロックの左上部分に格納される。その後、左上のSRCC領域の係数を右下の部分にシフトして、元の位置に戻す必要がある。より具体的には、各々の係数は、(幅-SRx)位置を右に、(高さ-SRy)位置を下にシフトする必要がある。同様の右へのシフトは状態(3)に適用され、下へのシフトは状態(4)に適用される。
【0029】
非ゼロ係数をSRCC領域に集中させるために、回転または反転操作が必要とされない場合がある。1つまたは複数の実施形態によれば、基準を使用して、SRCC領域定義のどれを使用できるかを選択することができる。一実施形態では、変換スキップブロックの場合、右下隅を常にSRCC領域の原点として選択することができる。別の実施形態では、変換スキップブロックの場合、SRCC領域の原点は、イントラ予測モードによって決定される。一例では、水平方向グループは右上隅を原点として選択し、垂直方向グループは左下隅を原点として選択し、対角方向グループは右下隅を原点として選択する。別の実施形態では、変換スキップブロックの場合、SRCC領域の原点は、イントラ予測モードによって決定される。別の実施形態では、変換スキップブロックの場合、SRCC領域の原点選択は、明示的に通知され得る。
【0030】
各々のSRCC領域定義内部のスキャン順序は、常に領域の右下隅から逆ジグザグ順序で開始することができる。あるいはまた、スキャンは、SRCC領域の左上隅からのスキャンなど、他の方向または他のスキャンタイプを有する、または/および対角スキャンを使用するなどができる。
【0031】
イントラブロックコピーまたはインターコーディングされたブロックに対して、TSモードでコーディングされている場合、係数ブロックの180度回転が常にIBC/インターコーディングされたブロックに適用され得る。あるいはまた、TSモードでコーディングされている場合、SRCC領域の原点の右下隅が常にIBC/インターコーディングされたブロックに適用され得る。
【0032】
ここで
図2Eを参照すると、イントラ予測方向を、水平、垂直、および3つの対角方向グループを含む5つの方向クラスに分類する
図200Eが示されている。平面モードとDCモードを含む無指向性モードは、対角方向グループに入れることができる。水平グループ、垂直グループ、および対角グループ3は、右上隅を原点として選択することができる。対角グループ1は、(右上側からの参照サンプルで)左下隅を原点として選択することできる。対角グループ2は、(左下側からの参照サンプルで)右上隅を原点として選択できる。
【0033】
ここで
図3を参照すると、SRCC定義に基づいてビデオデータをエンコードおよびデコードするプログラムによって実行される方法300のステップを示す操作フローチャートが示されている。
【0034】
302において、方法300は、1つまたは複数のコーディング係数を有するビデオデータを受信することを含み得る。
【0035】
304において、方法300は、スキャン領域ベースの係数コーディング定義を選択してコーディング係数をスキャン領域に集中させることに基づいて、受信されたビデオデータに対して反転または回転操作を実行することを含み得る。
【0036】
306において、方法300は、選択されたスキャン領域ベースの係数コーディング定義に基づいてビデオデータをデコードすることを含み得る。
【0037】
図3は、1つの実装の例示のみを提供しており、異なる実施形態がどのように実装され得るかに関していかなる制限も意味しないことが理解され得る。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。
【0038】
図4は、例示的な一実施形態による、
図1に示されるコンピュータの内部および外部コンポーネントのブロック
図400である。
図4は、1つの実装の例示のみを提供しており、異なる実施形態が実装され得る環境に関していかなる制限も意味しないことを理解されたい。図示した環境に対する多くの修正は、設計および実施要件に基づいて行うことができる。
【0039】
コンピュータ102(
図1)およびサーバコンピュータ114(
図1)は、
図5に示す内部コンポーネント800A、800Bおよび外部コンポーネント900A、900Bのそれぞれのセットを含むことができる。内部コンポーネント800のセットの各々は、1つまたは複数のプロセッサ820と、1つまたは複数のバス826上の1つもしくは複数のコンピュータ可読RAM822および1つもしくは複数のコンピュータ可読ROM824と、1つまたは複数のオペレーティングシステム828と、1つまたは複数のコンピュータ可読有形記憶装置830と、を含む。
【0040】
プロセッサ820は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せで実装される。プロセッサ820は、中央処理装置(CPU)、グラフィック処理装置(GPU)、加速処理装置(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別の種類の処理コンポーネントである。いくつかの実施態様では、プロセッサ820は、機能を実行するようにプログラムすることができる1つまたは複数のプロセッサを含む。バス826は、内部コンポーネント800A、800B間の通信を可能にするコンポーネントを含む。
【0041】
サーバコンピュータ114(
図1)上の1つまたは複数のオペレーティングシステム828、ソフトウェアプログラム108(
図1)およびビデオコーディングプログラム116(
図1)は、それぞれのRAM822(典型的にはキャッシュメモリを含む)の1つまたは複数を介して、それぞれのプロセッサ820の1つまたは複数によって実行するため、それぞれのコンピュータ可読有形記憶装置830のうちの1つまたは複数に記憶される。
図4に示される実施形態では、コンピュータ可読有形記憶装置830の各々は、内蔵ハードドライブの磁気ディスク記憶装置である。あるいは、コンピュータ可読有形記憶装置830の各々は、ROM824、EPROM、フラッシュメモリ、光ディスク、光磁気ディスク、ソリッドステートディスク、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープ、および/またはコンピュータプログラムおよびデジタル情報を格納することができる別の種類の非一時的なコンピュータ可読有形記憶装置などの半導体記憶装置である。
【0042】
内部コンポーネント800A、800Bの各セットはまた、CD-ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスク、または半導体記憶装置などの1つまたは複数のポータブルコンピュータ可読有形記憶装置936から読み書きするためのR/Wドライブまたはインターフェース832を含む。ソフトウェアプログラム108(
図1)およびビデオコーディングプログラム116(
図1)などのソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有形記憶装置936のうちの1つまたは複数に格納され、それぞれのR/Wドライブまたはインターフェース832を介して読み取られ、それぞれのハードドライブ830にロードされ得る。
【0043】
内部コンポーネント800A、800Bの各セットはまた、TCP/IPアダプタカード、無線Wi-Fiインターフェースカード、あるいは3G、4G、もしくは5G無線インターフェースカードまたは他の有線もしくは無線通信リンクなどのネットワークアダプタまたはインターフェース836を含む。サーバコンピュータ114(
図1)上のソフトウェアプログラム108(
図1)およびビデオコーディングプログラム116(
図1)は、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他のワイドエリアネットワーク)およびそれぞれのネットワークアダプタまたはインターフェース836を介して外部コンピュータからコンピュータ102(
図1)およびサーバコンピュータ114にダウンロードすることができる。ネットワークアダプタまたはインターフェース836から、サーバコンピュータ114上のソフトウェアプログラム108およびビデオコーディングプログラム116が、それぞれのハードドライブ830にロードされる。ネットワークは、銅線、光ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含むことができる。
【0044】
外部コンポーネント900A、900Bのセットの各々は、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934を含むことができる。外部コンポーネント900A、900Bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイス、および他のヒューマンインターフェースデバイスを含むことができる。内部コンポーネント800A、800Bのセットの各々はまた、コンピュータディスプレイモニタ920、キーボード930、およびコンピュータマウス934にインターフェースするためのデバイスドライバ840を含む。デバイスドライバ840、R/Wドライブまたはインターフェース832ならびにネットワークアダプタまたはインターフェース836は、(記憶装置830および/またはROM824に格納された)ハードウェアおよびソフトウェアを含む。
【0045】
本開示はクラウドコンピューティングに関する詳細な説明を含むが、本明細書に列挙された教示の実施態様はクラウドコンピューティング環境に限定されないことを事前に理解されたい。むしろ、いくつかの実施形態は、現在知られているまたは後に開発される任意の他の種類のコンピューティング環境と併せて実施することができる。
【0046】
クラウドコンピューティングは、最小限の管理労力またはサービスのプロバイダとの対話で迅速にプロビジョニングおよびリリースすることができる構成可能コンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス配信のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデル、および少なくとも4つの展開モデルを含むことができる。
【0047】
特性は次の通りである。
オンデマンドセルフサービス:クラウド消費者は、サービスのプロバイダとの人間の対話を必要とせずに、必要に応じてサーバタイムおよびネットワークストレージなどのコンピューティング機能を一方的にプロビジョニングできる。
広範なネットワークアクセス:機能は、ネットワークを介して利用可能であり、異種のシンまたはシックなクライアントプラットフォーム(例えば、携帯電話、ラップトップ、およびPDA)による使用を促進する標準的な機構を介してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースは、マルチテナントモデルを使用して複数の消費者にサービスを提供するためにプールされ、異なる物理リソースおよび仮想リソースは、需要に応じて動的に割り当ておよび再割り当てされる。消費者は、一般に、提供されたリソースの正確な位置に対する制御または知識を持たないが、より高い抽象化レベル(例えば、国、州、またはデータセンター)で位置を指定することができるという点で、位置独立性の感覚がある。
迅速な弾力性:機能は、迅速かつ弾力的にプロビジョニングされ、場合によっては自動的に、素早くスケールアウトされ、迅速に解放されて素早くスケールインされ得る。消費者には、プロビジョニングに使用できる機能は無制限に見えることが多く、いつでも任意の数量で購入できる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅、およびアクティブユーザアカウント)に適したある抽象化レベルで計量能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用は、利用されるサービスのプロバイダおよび消費者の両方に透明性を提供するように監視、制御、および報告され得る。
【0048】
サービスモデルは次の通りである。
サービスとしてのソフトウェア(SaaS):消費者に提供される機能は、クラウドインフラストラクチャで実行されているプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)などのシンクライアントインターフェースを介して様々なクライアントデバイスからアクセス可能である。消費者は、限られたユーザ固有のアプリケーション構成設定を可能な限り除いて、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション機能さえも含む基盤となるクラウドインフラストラクチャを管理または制御しない。
サービスとしてのプラットフォーム(PaaS):消費者に提供される機能は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された、消費者が作成または取得したアプリケーションをクラウドインフラストラクチャ上に展開することである。消費者は、ネットワーク、サーバ、オペレーティングシステム、またはストレージを含む基盤となるクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーションおよび場合によってはアプリケーションホスティング環境構成を制御する。
サービスとしてのインフラストラクチャ(laaS):消費者に提供される機能は、処理、ストレージ、ネットワーク、および他の基本的なコンピューティングリソースを提供することであり、消費者は、オペレーティングシステムおよびアプリケーションを含むことができる任意のソフトウェアを展開および実行することができる。消費者は、基盤となるクラウドインフラストラクチャを管理も制御もしないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、および場合によっては選択ネットワーキングコンポーネント(例えば、ホストファイアウォール)の限定された制御を制御する。
【0049】
展開モデルは次の通りである。
プライベートクラウド:クラウドインフラストラクチャは、組織のためだけに運用される。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
コミュニティクラウド:クラウドインフラストラクチャは、いくつかの組織によって共有され、共有された関心事項(例えば、ミッション、セキュリティ要件、ポリシー、およびコンプライアンスの考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスで存在してもよい。
パブリッククラウド:クラウドインフラストラクチャは、一般の人々または大規模な業界グループに提供され、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、独自のエンティティのままであるが、データおよびアプリケーションの可搬性(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準化されたまたは独自の技術によって互いに結び付けられた2つ以上のクラウド(私的、共同体、または公的)の構成である。
【0050】
クラウドコンピューティング環境は、無国籍、低結合、モジュール性、およびセマンティック相互運用性に焦点を合わせたサービス指向である。クラウドコンピューティングの中心には、相互接続されたノードのネットワークを含むインフラストラクチャがある。
【0051】
図5を参照すると、例示的なクラウドコンピューティング環境500が示されている。図示されるように、クラウドコンピューティング環境500は、1つまたは複数のクラウドコンピューティングノード10を含み、これを用いて、例えば、携帯情報端末(PDA)または携帯電話54A、デスクトップコンピュータ54B、ラップトップコンピュータ54Cなどのクラウド消費者によって使用されるローカルコンピューティングデバイスおよび/または自動車コンピュータシステム54Nは、通信することができる。クラウドコンピューティングノード10は、互いに通信することができる。それらは、上述のプライベートクラウド、コミュニティクラウド、パブリッククラウド、ハイブリッドクラウド、またはそれらの組合せなどの1つもしくは複数のネットワークにおいて、物理的または仮想的にグループ化(図示せず)されてもよい。これにより、クラウドコンピューティング環境500は、クラウド消費者がローカルコンピューティングデバイス上でリソースを維持する必要がないサービスとして、インフラストラクチャ、プラットフォーム、および/またはソフトウェアを提供することができる。
図5に示されるタイプのコンピューティングデバイス54A-Nは、例示のみを意図しており、クラウドコンピューティングノード10およびクラウドコンピューティング環境500は、任意のタイプのネットワークおよび/またはネットワークアドレス可能な接続を介して(例えば、Webブラウザを使用して)任意のタイプのコンピュータ化されたデバイスと通信できることが理解される。
【0052】
図6を参照すると、クラウドコンピューティング環境500(
図5)によって提供される機能的抽象化層600のセットが示されている。
図6に示されるコンポーネント、層、および機能は、例示のみを意図しており、実施形態はそれに限定されないことを事前に理解されたい。図示するように、以下の層および対応する機能が提供される。
【0053】
ハードウェアおよびソフトウェア層60は、ハードウェアおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例は、メインフレーム61、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ62、サーバ63、ブレードサーバ64、記憶装置65、ならびにネットワークおよびネットワークコンポーネント66を含む。いくつかの実施形態では、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア67およびデータベースソフトウェア68を含む。
【0054】
仮想化層70は、仮想エンティティの以下の例が提供され得る抽象化層を提供する。仮想サーバ71、仮想ストレージ72、仮想プライベートネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティングシステム74、ならびに仮想クライアント75である。
【0055】
一例では、管理層80は、以下に説明する機能を提供することができる。リソースプロビジョニング81は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。計測および価格設定82は、リソースがクラウドコンピューティング環境内で利用されるときのコスト追跡、およびこれらのリソースの消費に対する請求または請求書発行を提供する。一例では、これらのリソースは、アプリケーションソフトウェアライセンスを含むことができる。セキュリティは、クラウド消費者およびタスクのための識別検証、ならびにデータおよび他のリソースのための保護を提供する。ユーザポータル83は、消費者およびシステム管理者にクラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理84は、必要なサービスレベルが満たされるようにクラウドコンピューティングリソースの割り当ておよび管理を提供する。サービス水準合意(SLA)の計画および履行85は、その将来の要件がSLAに従って予想されるクラウドコンピューティングリソースの事前配置および調達を提供する。
【0056】
ワークロード層90は、クラウドコンピューティング環境を利用することができる機能の例を提供する。この層から提供され得るワークロードと機能の例には、マッピングおよびナビゲーション91、ソフトウェア開発およびライフサイクル管理92、仮想教室教育の提供93、データ分析処理94、トランザクション処理95、およびビデオコーディング96が含まれる。ビデオコーディング96は、SRCC定義に基づいてビデオデータをエンコードおよびデコードすることができる。
【0057】
いくつかの実施形態は、任意の可能な技術的詳細レベルの統合におけるシステム、方法、および/またはコンピュータ可読媒体に関することができる。コンピュータ可読媒体は、プロセッサに動作を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読非一時的記憶媒体を含むことができる。
【0058】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を保持および格納することができる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはこれらの任意の適切な組合せであってもよいが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、命令が記録されたパンチカードまたは溝内の隆起構造などの機械的にコーディングされたデバイス、ならびに上記の任意の適切な組合せを含む。本明細書で使用されるコンピュータ可読記憶媒体は、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体(例えば、光ファイバケーブルを通過する光パルス)を伝搬する電磁波、またはワイヤを介して伝送される電気信号などの一時的な信号自体であると解釈されるべきではない。
【0059】
本明細書に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から、またはネットワーク、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークおよび/または無線ネットワークを介して外部コンピュータもしくは外部記憶装置を介してそれぞれのコンピューティング/処理装置にダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含むことができる。各コンピューティング/処理装置内のネットワークアダプタカードまたはネットワークインターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するためにコンピュータ可読プログラム命令を転送する。
【0060】
動作を実行するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路の構成データ、あるいはSmalltalk、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様のプログラミング言語などの手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで記述されたソースコードまたはオブジェクトコードのいずれかであってもよい。コンピュータ可読プログラム命令は、完全にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンソフトウェアパッケージとして、部分的にユーザのコンピュータ上で、部分的にリモートコンピュータ上で、または完全にリモートコンピュータもしくはサーバ上で実行することができる。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続されてもよく、または外部コンピュータに(例えば、インターネットサービスプロバイダを使用してインターネットを介して)接続されてもよい。いくつかの実施形態では、例えば、プログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブルロジックアレイ(PLA)を含む電子回路は、態様または動作を実行するために、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行することができる。
【0061】
これらのコンピュータ可読プログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するための手段を作成するように、機械を製造するために、汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置のプロセッサに提供されてもよい。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラム可能なデータ処理装置、および/または他のデバイスに特定の方法で機能するように指示することができるコンピュータ可読記憶媒体に格納されてもよく、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作の態様を実施する命令を含む製品を含む。
【0062】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能な装置、または他の装置上で実行される命令がフローチャートおよび/またはブロック図の1つまたは複数のブロックで指定された機能/動作を実施するように、コンピュータ、他のプログラム可能な装置、または他の装置上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成するために、コンピュータ、他のプログラム可能なデータ処理装置、または他の装置上にロードされてもよい。
【0063】
図のフローチャートおよびブロック図は、様々な実施形態によるシステム、方法、およびコンピュータ可読媒体の可能な実施態様のアーキテクチャ、機能、および動作を示す。これに関して、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実装するための1つまたは複数の実行可能命令を含むモジュール、セグメント、または命令の一部を表すことができる。方法、コンピュータシステム、およびコンピュータ可読媒体は、図に示すものよりも、さらなるブロック、より少ないブロック、異なるブロック、または異なる配置のブロックを含んでもよい。いくつかの代替的な実施態様では、ブロックに記載された機能は、図に記載された順序とは異なる順序で行われてもよい。例えば、連続して示されている2つのブロックは、実際には、同時にまたは実質的に同時に実行されてもよく、またはブロックは、関連する機能に応じて、時には逆の順序で実行されてもよい。また、ブロック図および/またはフローチャート図の各ブロック、ならびにブロック図および/またはフローチャート図のブロックの組合せは、指定された機能または動作を実行するか、専用ハードウェアとコンピュータ命令との組合せを実行する、専用ハードウェアベースのシステムによって実装され得ることにも留意されたい。
【0064】
本明細書に記載のシステムおよび/または方法は、ハードウェア、ファームウェア、またはハードウェアとソフトウェアとの組合せの異なる形態で実装されてもよいことは明らかであろう。これらのシステムおよび/または方法を実装するために使用される実際の専用の制御ハードウェアまたはソフトウェアコードは、実施態様を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、特定のソフトウェアコードを参照することなく本明細書に記載されており、ソフトウェアおよびハードウェアは、本明細書の記載に基づいてシステムおよび/または方法を実装するように設計され得ることが理解される。
【0065】
本明細書で使用される要素、動作、または命令は、そのように明示的に記載されていない限り、重要または必須であると解釈されるべきではない。また、本明細書で使用される場合、冠詞「a」および「an」は、1つまたは複数の項目を含むことを意図しており、「1つまたは複数」と交換可能に使用され得る。さらに、本明細書で使用される場合、「セット」という用語は、1つまたは複数の項目(例えば、関連項目、無関係な項目、関連項目と無関係な項目との組合せなど)を含むことを意図しており、「1つまたは複数」と互換的に使用され得る。1つの項目のみが意図される場合、「1つ」という用語または同様の用語が使用される。また、本明細書で使用される場合、「有する(has)」、「有する(have)」、「有する(having)」などの用語は、オープンエンド用語であることを意図している。さらに、「に基づいて」という語句は、特に明記しない限り、「少なくとも部分的に、基づいて」を意味することを意図している。
【0066】
様々な態様および実施形態の説明は、例示の目的で提示されているが、網羅的であること、または開示された実施形態に限定されることを意図するものではない。特徴の組合せが特許請求の範囲に記載され、および/または本明細書に開示されているが、これらの組合せは、可能な実施態様の開示を限定することを意図するものではない。実際、これらの特徴の多くは、特許請求の範囲に具体的に記載されていない、および/または明細書に開示されていない方法で組み合わされてもよい。以下に列挙される各従属請求項は1つの請求項のみに直接依存してもよいが、可能な実施態様の開示は、各従属請求項を請求項セット内の他のすべての請求項と組み合わせて含む。記載された実施形態の範囲から逸脱することなく、多くの修正および変形が当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の用途または市場で見られる技術に対する技術的改善を最もよく説明するために、または当業者が本明細書に開示する実施形態を理解することを可能にするために選択された。
【符号の説明】
【0067】
10 クラウドコンピューティングノード
54A 携帯情報端末(PDA)または携帯電話
54B デスクトップコンピュータ
54C ラップトップコンピュータ
54N 自動車コンピュータシステム
60 ソフトウェア層
61 メインフレーム
62 サーバ
63 サーバ
64 ブレードサーバ
65 記憶装置
66 ネットワークおよびネットワークコンポーネント
67 ネットワークアプリケーションサーバソフトウェア
68 データベースソフトウェア
70 仮想化層
71 仮想サーバ
72 仮想ストレージ
73 仮想ネットワーク
74 オペレーティングシステム
75 仮想クライアント
80 管理層
81 リソースプロビジョニング
82 価格設定
83 ユーザポータル
84 サービスレベル管理
85 履行
90 ワークロード層
91 ナビゲーション
92 ライフサイクル管理
93 提供
94 データ分析処理
95 トランザクション処理
96 ビデオコーディング
100 ビデオコーディングシステム
102 コンピュータ
104 プロセッサ
106 データ記憶装置
108 ソフトウェアプログラム
110 ネットワーク
112 データベース
114 サーバコンピュータ
116 ビデオコーディングプログラム
202 スキャン領域
204 スキャン順序
300 方法
400 ブロック図
500 クラウドコンピューティング環境
600 機能的抽象化層
800 内部コンポーネント
800A 内部コンポーネント
800B 内部コンポーネント
820 プロセッサ
824 ROM
826 バス
828 オペレーティングシステム
830 コンピュータ可読有形記憶装置、ハードドライブ
832 R/Wドライブまたはインターフェース
836 ネットワークアダプタまたはインターフェース
840 デバイスドライバ
900A 外部コンポーネント
900B 外部コンポーネント
920 コンピュータディスプレイモニタ
930 キーボード
934 コンピュータマウス
936 ポータブルコンピュータ可読有形記憶装置