特許第6242029号(P6242029)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ インテル・コーポレーションの特許一覧

<>
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000002
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000003
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000004
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000005
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000006
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000007
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000008
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000009
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000010
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000011
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000012
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000013
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000014
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000015
  • 特許6242029-低電力画像圧縮及び表示のための技術 図000016
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6242029
(24)【登録日】2017年11月17日
(45)【発行日】2017年12月6日
(54)【発明の名称】低電力画像圧縮及び表示のための技術
(51)【国際特許分類】
   H04N 19/426 20140101AFI20171127BHJP
   H04N 19/51 20140101ALI20171127BHJP
【FI】
   H04N19/426 300
   H04N19/51
【請求項の数】21
【全頁数】38
(21)【出願番号】特願2016-532191(P2016-532191)
(86)(22)【出願日】2013年8月12日
(65)【公表番号】特表2016-531502(P2016-531502A)
(43)【公表日】2016年10月6日
(86)【国際出願番号】CN2013081275
(87)【国際公開番号】WO2015021587
(87)【国際公開日】20150219
【審査請求日】2016年2月18日
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】イン、ツィウェイ
(72)【発明者】
【氏名】ワン、チュアンリアン
【審査官】 堀井 啓明
(56)【参考文献】
【文献】 特開2008−022556(JP,A)
【文献】 特開2011−050104(JP,A)
【文献】 特開2000−209164(JP,A)
【文献】 特開2010−199656(JP,A)
【文献】 特開平07−107514(JP,A)
【文献】 特開2010−050616(JP,A)
【文献】 特開平11−187408(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00−19/98
(57)【特許請求の範囲】
【請求項1】
複数のビデオフレームを圧縮するデバイスであって、
プロセッサコンポーネントと、
前記プロセッサコンポーネントに通信可能に結合されるストレージと、
一連のフレームのうちの現フレームに先行するフレームの欠如に応じて、前記現フレームを圧縮して、圧縮されたフルフレームを生成して、前記圧縮されたフルフレームを前記ストレージに格納する、前記プロセッサコンポーネントによる実行のためのフレームバッファコンプレッサと
前記一連のフレームのうちの前記現フレームに先行する少なくとも1つのフレームが存在することに応じて、前記現フレームと、前記一連のフレームのうちの先行する隣接フレームとのうちの一方の複数の画素のカラー値を、前記現フレーム及び前記先行する隣接フレームのうちの他方の対応する複数の画素のカラー値から減算して、前記現フレームと前記先行する隣接フレームとの間の画素のカラー値の変化の度合いを示す差分フレームを導出するフレーム減算器と
を備え、
前記フレームバッファコンプレッサは、前記差分フレームを圧縮して、圧縮された差分フレームを生成し、前記差分フレームに関連する動きベクトルの指標を圧縮して、圧縮された前記動きベクトルの指標を生成し、前記圧縮された差分フレーム及び前記圧縮された前記動きベクトルの指標を前記ストレージに格納する、デバイス。
【請求項2】
動画データの複数のフレームを少なくとも部分的に解凍して、前記一連のフレームを生成する、前記プロセッサコンポーネントによる実行のための動画デコンプレッサを備える、請求項1に記載のデバイス。
【請求項3】
前記動画デコンプレッサは、前記動画データの差分フレームと、隣接フレーム間で1又は複数の画素のカラー値のブロックが変化した方向及び距離を表現する付随する動きベクトルの指標とを導出するために必要とされる範囲のみに前記複数のフレームを部分的に解凍する、請求項2に記載のデバイス。
【請求項4】
ディスプレイ上に前記現フレームを視覚的に提示する表示装置と、
前記ストレージから前記圧縮された差分フレームを取得し、前記圧縮された差分フレームを前記表示装置に伝達する、前記プロセッサコンポーネントによる実行のための取得コンポーネントと
を備える、請求項1からのいずれか一項に記載のデバイス。
【請求項5】
前記表示装置は、
ディスプレイと、
別のプロセッサコンポーネントと、
前記圧縮された差分フレーム及び前記圧縮された動きベクトルの指標を解凍し、前記現フレームを再構成する、前記別のプロセッサコンポーネントによる実行のためのディスプレイバッファデコンプレッサと
前記ディスプレイ上に前記現フレームを視覚的に提示する、前記別のプロセッサコンポーネントによる実行のためのプレゼンテーションコンポーネント
を備える、請求項に記載のデバイス。
【請求項6】
記表示装置は、動き補償を実行し、前記差分フレーム及び前記動きベクトルの前記指標から前記現フレームを再構成する、前記別のプロセッサコンポーネントによる実行のための動き補償コンポーネントを有する、請求項に記載のデバイス。
【請求項7】
複数のビデオフレームを視覚的に提示するデバイスであって、
プロセッサコンポーネントと、
前記プロセッサコンポーネントに通信可能に結合されるストレージと、
一連の圧縮されたフレームのうちの圧縮された差分フレームと前記差分フレームに関連する圧縮された動きベクトルの指標とを前記ストレージから取得し、前記差分フレーム及び前記動きベクトルの指標から現フレームを再構成すべく、前記圧縮された差分フレームを解凍して、前記現フレームと、先行する隣接フレームとの間の少なくとも1つの画素の画素カラーにおける差を示す差分フレームを生成し、前記圧縮された動きベクトルの指標を解凍して、前記動きベクトルの指標を生成する、前記プロセッサコンポーネントによる実行のためのディスプレイバッファデコンプレッサと、
ディスプレイ上に前記現フレームを視覚的に提示する、前記プロセッサコンポーネントによる実行のためのプレゼンテーションコンポーネントと
を備える、デバイス。
【請求項8】
き補償を実行して、前記差分フレーム及び前記動きベクトルの前記指標から前記現フレームを再構成する、前記プロセッサコンポーネントによる実行のための動き補償コンポーネントを有する、請求項に記載のデバイス。
【請求項9】
前記ディスプレイバッファデコンプレッサは、前記一連の圧縮されたフレームのうちの圧縮されたフルフレームを前記ストレージから取得し、前記圧縮されたフルフレームを解凍して、別のフレームを参照することなく、複数の画素のカラー値を示すフルフレームを生成し、
前記プレゼンテーションコンポーネントは、前記フルフレームに先行する前フレームの欠如に基づいて、前記ディスプレイ上に前記フルフレームを視覚的に提示する、請求項に記載のデバイス。
【請求項10】
コンピューティングデバイスから前記一連の圧縮されたフレームを受信するインタフェースと、
前記一連の圧縮されたフレームを前記ストレージに格納する通信コンポーネントと
を備える、請求項からのいずれか一項に記載のデバイス。
【請求項11】
前記ディスプレイを備える、請求項から10のいずれか一項に記載のデバイス。
【請求項12】
複数のビデオフレームを圧縮するためのコンピュータに実装される方法であって、
連のフレームのうちの現フレームに先行するフレームの欠如に応じて、前記現フレームを圧縮して、圧縮されたフルフレームを生成して、前記圧縮されたフルフレームを圧縮されたフレームバッファに格納する段階と、
前記一連のフレームのうちの前記現フレームに先行する少なくとも1つのフレームが存在することに応じて、
前記現フレームと、前記一連のフレームのうちの先行する隣接フレームとのうちの一方の複数の画素のカラー値を、前記現フレーム及び前記先行する隣接フレームのうちの他方の対応する複数の画素のカラー値から減算して、前記現フレームと前記先行する隣接フレームとの間の画素のカラー値の変化の度合いを示す差分フレームを導出する段階と、
前記差分フレームを圧縮して、圧縮された差分フレームを生成し、前記差分フレームに関連する動きベクトルの指標を圧縮して、圧縮された前記動きベクトルの指標を生成し、前記圧縮された差分フレーム及び前記圧縮された前記動きベクトルの指標を前記圧縮されたフレームバッファに格納する段階と
を備える、コンピュータに実装される方法。
【請求項13】
ハフマン符号化(Huffman coding)を使用して、前記差分フレームを圧縮し、前記圧縮された差分フレームを生成する段階を備える、請求項12に記載のコンピュータに実装される方法。
【請求項14】
MPEG(Motion Picture Experts Group)のバージョンを使用して、動画データの複数のフレームを少なくとも部分的に解凍し、前記一連のフレームを生成する段階を備える、請求項12又は13に記載のコンピュータに実装される方法。
【請求項15】
前記一連のフレームを生成する段階は、前記動画データの差分フレームと、隣接フレーム間で1又は複数の画素のカラー値のブロックが変化した方向及び距離を表現する付随する動きベクトルの指標とを導出するために必要とされる範囲のみに前記複数のフレームを部分的に解凍することを含む、請求項14に記載のコンピュータに実装される方法。
【請求項16】
前記圧縮されたフレームバッファから前記圧縮された差分フレーム及び前記圧縮された動きベクトルの指標を取得する段階と、
表示装置がディスプレイ上に前記現フレームを視覚的に提示することを可能にするべく、前記圧縮された差分フレーム及び前記圧縮された動きベクトルの指標を前記表示装置に伝達する段階と
を備える、請求項12から15のいずれか一項に記載のコンピュータに実装される方法。
【請求項17】
前記表示装置で前記圧縮された差分フレーム及び前記圧縮された動きベクトルの指標を解凍して、前記現フレームを再構成する段階を備える、請求項16に記載のコンピュータに実装される方法。
【請求項18】
前記差分フレームの解凍の後に、前記差分フレームの画素のカラー値を、最後に再構成されたフレームの画素のカラー値に追加して、前記現フレームを再構成する段階を備える、請求項17に記載のコンピュータに実装される方法。
【請求項19】
前記方法は、前記表示装置で動き補償を実行して、前記差分フレーム及び前記動きベクトルの前記指標から前記現フレームを再構成する段階を備える、請求項17又は18に記載のコンピュータに実装される方法。
【請求項20】
コンピュータに、請求項12から19のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項21】
請求項20に記載のプログラムを格納するコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願の相互参照]
本明細書に名前が挙げられた発明者により、本明細書とともに同時に出願された、低電力ビデオ圧縮及び伝送のための技術(代理人整理番号P55776PCT)と題した出願に関連する主題に留意されたい。
【0002】
本明細書で説明される実施形態は、概して、画像を圧縮及び視覚的に提示するときに電力消費を低減することに関する。
【背景技術】
【0003】
コンピューティングデバイスのディスプレイ上の画像のラスタスキャンレンダリングは、典型的に、ディスプレイが更新されるように、1秒に30から85回ほど実行される。これは、画像の任意の部分が変更されたか否かに関わらず、毎秒30から85回ほど画像がストレージから完全に取得されたことを集計するデータをもたらす。画像のデータを取得するために、ストレージに対するそのような各反復的なアクセス、及び、ストレージから表示装置へデータを伝達する1又は複数のバスを通じた、そのデータの付随する反復的な伝送は、かなりの量の電力を消費する。そのような計算を実行するための電力について、ストレージが、バッテリに依存するポータブルコンピューティングデバイスにある場合、これは、顕著な問題になり得る。
【0004】
そのような電力消費を減らすためのアプローチでは、ストレージ内の画像を圧縮して、ディスプレイの更新のたびに反復的に取得され及び伝達されるデータの全体的な量を減らす。これは、電力消費の低減をある程度実現しているが、画像全体を圧縮することはまた、ストレージへのアクセスも必要とし、かつ、かなりの量の電力がさらに消費されるというようなプロセッサ集約型である。
【0005】
別のアプローチでは、ディスプレイ上に視覚的に提示される画像のコピーを格納するその独自のディスプレイバッファを有するディスプレイを提供することを必要とする。画像に対する変更がない場合の例において、ディスプレイは、少なくとも画像の変更が発生するまで、ストレージからの画像を反復的に取得及び伝達することが回避され得るように、そのディスプレイバッファから画像のその視覚的表現を更新するべく、シグナリングされ得る。このアプローチでは、画像に対する変更が頻繁でない期間中の電力消費を減らす。しかしながら、このアプローチは、画像に対して頻繁かつ顕著に進行中の変更がある動画の再生を画像が含む場合に使用できない。
【図面の簡単な説明】
【0006】
図1】ビデオプレゼンテーションシステムの実施形態を示す。
【0007】
図2】ビデオプレゼンテーションシステムの代替的な実施形態を示す。
【0008】
図3】動画を含む2つの隣接フレーム間の変化の度合いの例を示す。
【0009】
図4】動画を含まない2つの隣接フレーム間の変化の度合いの例を示す。
【0010】
図5】ビデオプレゼンテーションシステムの実施形態の一部を示す。
図6】ビデオプレゼンテーションシステムの実施形態の一部を示す。
【0011】
図7】ビデオプレゼンテーションシステムの代替的な実施形態の一部を示す。
図8】ビデオプレゼンテーションシステムの代替的な実施形態の一部を示す。
【0012】
図9】実施形態に係る論理フローを示す。
図10】実施形態に係る論理フローを示す。
図11】実施形態に係る論理フローを示す。
図12】実施形態に係る論理フローを示す。
【0013】
図13】実施形態に係る処理アーキテクチャを示す。
【0014】
図14】グラフィックス処理システムの別の代替的な実施形態を示す。
【0015】
図15】デバイスの実施形態を示す。
【発明を実施するための形態】
【0016】
様々な実施形態は、概して、画像のレンダリングで使用するための差分フレームを生成及び圧縮することにより、コンピューティングデバイスに関連付けられるディスプレイ上に画像をレンダリングする場合に、電力の消費を減らすための技術を対象とする。 差分フレームは、画像の現フレームと先行する隣接フレームとの間の画素のカラー値における差を表す。したがって、現フレームは、先行する隣接フレームからのカラー値におけるその画素ごとの差の観点で説明され、現フレームそれ自体よりもむしろ、差分フレームの形式における差の説明が圧縮及び格納される。
【0017】
表示装置のディスプレイ上に視覚的に提示される画像は、ディスプレイ上での画像の反復的なラスタスキャンレンダリングで更新されなければならない。コンピューティングデバイスの通常オペレーション中に、ディスプレイ上の画像の反復的な更新は、画像を取得するべく、コンピューティングデバイスのストレージへの反復的なアクセスを必要とし、かつ、表示装置に画像を伝達するべく、コンピューティングデバイスの1又は複数のバスの使用を繰り返す。もし、別のフレームを参照することなくフレームの画素値を説明するのに通常必要とされるものより小さいデータで別の隣接フレームの画素のカラー値から一つのフレームの画素のカラー値における差を説明することが通常可能であれば、更新のたびにストレージから反復的に取得され、かつ、表示装置へ伝達されるデータ量が差分フレームの使用を通じて実質的に低減され、それによって電力を節約することが想定される。差分フレームの生成及び使用を通じて既に達成されたデータサイズにおけるこの低減はまた、電力のかなりの量を消費するプロセッサ集約型の計算を必要としない、積極的ではないタイプの圧縮の利用を可能にする。
【0018】
しかしながら、表示装置へのフレームの提供は、差分フレームの提供で開始されない。差分フレームの基準として機能する前フレームが存在しないという結果をもたらすイベントの後に、ストレージから取得され、かつ、表示装置に提供される最初のフレームは、任意の他のフレームを参照することなく画像を説明するフルフレームである。基準として用いられる前フレームが存在しないことをもたらすイベントは、コンピューティングデバイスの電源投入、画像が表示されていなかった低電力状態から通常のオペレーティング状態へのコンピューティングデバイスの復帰、又は、コンピューティングデバイスのリセットを含む。表示装置に画像を表現するそのようなフルフレームの提供は、基準とする最初の差分フレームについて、表示装置が画像の画素の初期状態を有するのに必要である。
【0019】
少なくとも圧縮された差分フレームが格納され、反復的に取得されるストレージの一部は、他の目的でも採用されるより大きなストレージ内で定義される圧縮されたフレームバッファであってよい。代替的に、特定のストレージデバイスで構成され得るストレージの特定部分は、圧縮された差分フレームが格納され、かつ、それらが反復的に取得される、圧縮されたフレームバッファ(例えば、マルチポート動的ランダムアクセスメモリデバイス)として機能することを選択され得る。
【0020】
いくつかの実施形態において、表示装置は、コンピューティングデバイスに物理的に組み込まれてよい。そのような実施形態において、表示装置の一部は、コンピューティングデバイスのプロセッサコンポーネントによりアドレス可能であってよい(例えば、表示装置のストレージのストレージ位置が十分にアドレス可能であってよい)。他の実施形態において、表示装置は、コンピューティングデバイスから物理的に分離されていてもよいが、そこからフルフレーム及び差分フレームの受信を可能にするべく、コンピューティングデバイスに結合される。
【0021】
表示装置がコンピューティングデバイスに統合されるか、又は、単にそれに結合されるかに関わらず、表示装置は、差分フレームを受信し、視覚的に提示されるべく現フレームを再構成する。再構成は、最新の差分フレームに表現される画素値と、再構成及び視覚的に提示された最後のフレームの画素値との差を単純に合計することにより実行されてよい。表示装置は、再構成され及び視覚的に提示される最後のフレームをその独自のストレージに維持する。隣接フレーム間で差がない場合の例に応じて(又は、隣接フレーム間の差が選択された差の閾値より小さい場合に応じて)、コンピューティングデバイスは、その独自のストレージから視覚的に提示される画像を自律的に更新することを表示装置へ知らせてよい。表示装置がそうするように、コンピューティングデバイスは、反復的な読み出しを停止し、少なくとも画像の変更が後にあるまで差分フレームを伝達する。
【0022】
表示装置のディスプレイ上に視覚的に提示される画像は、動画を含んでよく、又は、含まなくてもよい。動画が含まれるいくつかの実施形態において、そのような動画は、別のコンピューティングデバイスから受信されてよく、及び/又は圧縮された形式でコンピューティングデバイス内に格納されてよい。動画は、スイス、ジュネーブの国際標準化機構により公表されたMPEG(Motion Picture Experts Group)仕様書のバージョンを含むがこれに限定されない、多種多様なタイプの圧縮のいずれかを用いて圧縮されていてもよい。動画が圧縮されている場合、コンピューティングデバイスは、画像に含まれ得る動画の圧縮されていないフレームを生成するべく、適切なデコーダを用いて、それを解凍する。フルフレーム及び差分フレームは、そうして圧縮されていないフレームから生成される。
【0023】
動画がMPEGのバージョンに従って圧縮されている他の実施形態において、コンピューティングデバイスは、差分フレームと、画素のブロックの画素のカラー値の位置の変化を表現するときに採用される付随する動きベクトルの指標とを導出するポイントまで動画を解凍してよい。コンピューティングデバイスは、そうして、これらの差分フレームを圧縮し、また、動きベクトルの指標を圧縮してもよい。取得され及び表示装置に伝達されるときに、動きベクトルの指標は、差分フレームと共に伝達される。表示装置は、そうして、動画の解凍を完了するべく、動きベクトルの指標と差分フレームとを組み合わせて、ディスプレイ上の視覚的表現のために、そのフレームを再構成する。
【0024】
本明細書で用いられる表記及び用語を全体的に参照すると、以下の発明の詳細な説明の一部は、コンピュータ又は複数のコンピュータのネットワーク上で実行されるプログラム手順の観点で提示され得る。これらの手順的な説明及び表現は、それらの動作の本質を最も効率的に他の当業者に伝達するために当業者により用いられる。手順はここで、概して、所望の結果をもたらすオペレーションの首尾一貫したシーケンスであると考えられる。これらのオペレーションは、物理量の物理的な操作を必要とするものである。大抵、必要ではないが、これらの量は、格納され、転送され、組み合わされ、比較され、さもなければ操作されることが可能な電気、磁気又は光信号の形成をとる。これは、主に共通利用の理由のために、これらの信号をビット、値、要素、記号、文字用語、数等と称するときに好都合であることを示す。しかしながら、これら及び同様の用語の全てが、適切な物理量に関連するものであり、かつ、単にこれらの量に適用される便宜的なラベルに過ぎないことに留意すべきである。
【0025】
さらに、これらの操作は、人間のオペレータにより実行される知的動作と通常関連付けられる、加算又は比較のような用語でしばしば言及される。しかしながら、1つ又は複数の実施形態の一部を形成する本明細書で説明されるオペレーションのいずれかにおいて、多くの場合、人間のオペレータのそのような機能は必要とされない、又は望まれない。むしろ、これらのオペレーションは、機械動作である。様々な実施形態のオペレーションを実行するために有用な機械は、本明細書の教示に従って書き込まれた範囲内で格納されるコンピュータプログラムにより選択的に達成又は構成されるような汎用デジタルコンピュータを含み、及び/又は必要な目的のために特別に構築された装置を含む。様々な実施形態はまた、これらのオペレーションを実行するための装置又はシステムにも関連する。これらの装置は、必要な目的のために特別に構築されてよく、又は、汎用コンピュータを含んでよい。これらの様々な機械のために必要な構造は、以下の説明から明らかになるであろう。
【0026】
ここで図面を参照するにあたり、同様の参照番号は、全体にわたって同様の要素に言及するために用いられる。以下の説明では、説明の目的のために、多数の具体的な詳細がその全体の理解を提供するべく明記される。しかしながら、新規な実施形態がこれらの具体的な詳細なしに実施し得ることは明らかであり得る。他の例では、周知の構造及びデバイスが、その説明を容易にするべく、ブロック図の形式で示される。特許請求の範囲に記載の範囲内の全ての修正、均等物及び代替手段をカバーする意図がある。
【0027】
図1は、ソースデバイス100、及び、表示装置600を組み込むコンピューティングデバイス300のうちの1又は複数を組み込むビデオプレゼンテーションシステム1000の実施形態のブロック図を示す。ビデオプレゼンテーションシステム1000において、変化する画像880のフレームは、コンピューティングデバイス300により圧縮され、それから、ディスプレイ680上に視覚的に提示されるべく、表示装置600へ反復的に提供される。ソースデバイス100及びコンピューティングデバイス300の各々は、デスクトップコンピュータシステム、データエントリ端子、ラップトップコンピュータ、ネットブックコンピュータ、タブレットコンピュータ、ハンドヘルドパーソナルデータアシスタント、スマートフォン、デジタルカメラ、衣類に組み込まれる装着式のコンピューティングデバイス、車両(例えば、車、自転車、車椅子等)に統合されるコンピューティングデバイス、サーバ、サーバのクラスタ、サーバファーム等を限定されることなく含む、様々なタイプのコンピューティングデバイスのいずれかであってよい。
【0028】
図示されるように、これらのコンピューティングデバイス100及び300は、ネットワーク999を通じて視覚イメージ及び/又は関連データを表す圧縮されたフレームを伝達する信号を交換し得る。しかしながら、これらのコンピューティングデバイスの一方又は両方は、互いに及び/又はさらに他のコンピューティングデバイス(不図示)とネットワーク999を介して、視覚イメージとは全く無関係な他のデータを交換してよい。様々な実施形態において、ネットワークは、おそらく単一の建物又は他の比較的限定された領域内に広範に及ぶことが制限される単一のネットワーク、おそらくかなりの距離を拡張する接続されたネットワークの組み合わせであってよく、及び/又は、インターネットを含んでよい。これにより、ネットワーク999は、電気的並びに/若しくは光学的に導電性のあるケーブル配線を採用する有線技術及び赤外線、無線周波数又は他の形式の無線伝送を採用する無線技術を限定することなく含む、信号が交換され得る様々な通信技術(又はその組み合わせ)のいずれかに基づいてよい。
【0029】
様々な実施形態において、ソースデバイス100(存在する場合)は、動画データ130のフレームをコンピューティングデバイス300に提供するべく、ソースデバイス100をコンピューティングデバイス300に結合するインタフェース190を組み込む。これらのフレームは、MPEGのバージョンを含むがこれに限定されない、当業者によく知られている様々な圧縮技術のいずれかを採用する圧縮された形式でコンピューティングデバイス300に提供されてよい。
【0030】
様々な実施形態において、コンピューティングデバイス300は、プロセッサコンポーネント350、ストレージ360、フレーム減算器370、表示装置600、及び、ネットワーク999にコンピューティングデバイス300を結合するインタフェース390のうちの1又は複数を組み込む。ストレージ360は、動画データ130、フレームバッファデータ330、圧縮されたバッファデータ430及び制御ルーチン340のうちの1又は複数を格納する。
【0031】
制御ルーチン340は、様々な機能を実行するロジックを実装するコンピューティングデバイス300のメインプロセッサコンポーネントとしての役割を担うプロセッサコンポーネント350上で動作可能な命令列を組み込む。制御ルーチン340を実行するときに、プロセッサコンポーネント350は、フレームバッファデータ330の隣接フレームの対応する画素のカラー値を減算して、差分フレームを導出する。より具体的には、フレームバッファデータ330の現フレームの各画素は、フレームバッファデータ330の先行する隣接フレーム(現フレームにすぐに先行するフレーム)の各々対応する画素のカラー値から減算され、逆もまた然り、これら2つのフレーム間の画素のカラー値における差の差分フレームを導出する。これがフレームバッファデータ330の(継時的に隣接する)隣接フレームの各組について行われるので、ある減算における現フレームは、次の減算のおける先行する隣接フレームになる。いくつかの実施形態において、そのような減算は、当該減算の迅速な性能を発揮するデジタル回路と共に実装されるフレーム減算器370により実行され得る。他の実施形態において、当該減算は、プロセッサコンポーネント350により実行される制御ルーチン340により引き起こされ得る。
【0032】
減算が各差分フレームを導出するために実行される正確な手法に関わらず、プロセッサコンポーネント350は、それから、圧縮されたバッファデータ430の一部として圧縮された差分フレームを格納する前に、各差分フレームを圧縮する。いくつかの実施形態において、プロセッサコンポーネント350は、差分フレームを圧縮するハフマン符号化(Huffman coding)を採用する。しかしながら、他のタイプの圧縮が当業者に思い当たるかもしれない。ディスプレイ680上に視覚的に提示される画像880を更新することのサポートでは、プロセッサコンポーネント350が、圧縮されたバッファデータ430の圧縮された差分フレームを反復的に取得し、これらの圧縮された差分フレームを表示装置600に提供する。
【0033】
様々な実施形態において、表示装置600は、プロセッサコンポーネント650、ストレージ660及びディスプレイ680のうちの1又は複数を組み込む。ストレージ660は、コンピューティングデバイス300、圧縮されていないバッファデータ630及び制御ルーチン640から受信されたときに、圧縮されたバッファデータ430のフレームのうちの1又は複数を格納する。
【0034】
制御ルーチン640は、様々な機能を実行するロジックを実装する表示装置600のメインプロセッサコンポーネントとしての役割を担うプロセッサコンポーネント650上で動作可能な命令列を組み込む。制御ルーチン640を実行するときに、プロセッサコンポーネント650は、ストレージ660に格納された圧縮されたバッファデータ430の圧縮された差分フレームを解凍し、圧縮されていないバッファデータ630の一部として結果として生じる圧縮されていない差分フレームを格納する。プロセッサコンポーネント650は、次に、直前に受信した圧縮されていない差分フレームと、再構成され、かつ、視覚的に提示された最後のフレームとを合計して、ディスプレイ680上に視覚的に提示される最新のフレームを再構成する。
【0035】
差分フレームが導出されてないフレームバッファデータ330の圧縮されていないフレームは、プロセッサコンポーネント330により生成されるイメージを表してよい。そのようなフレームは、メニュー、データの視覚的な表現、ポインタの現在位置の視覚的な表現等を含み得るユーザインタフェースの視覚的部分を含み得る。そのようなユーザインタフェースの視覚的部分は、コンピューティングデバイス300のオペレーティングシステム及び/又はプロセッサコンポーネント350により実行されるアプリケーションルーチン(不図示)に関連付けられてよい。
【0036】
代替的又は追加的に、フレームバッファデータ330の圧縮されていないフレームは、動画データ130からの動画フレームを含み得る。動画データ130のフレームは、ソースデバイス100のような別のコンピューティングデバイスからコンピューティングデバイス300により受信されてよく、又は、コンピューティングデバイス300自身により生成されてよい。動画データ130のフレームがコンピューティングデバイス300内で受信及び/又は生成されるか否かに関わらず、それらは圧縮された形式でストレージ360に格納されてよい。もしそうならば、これらのフレームは、MPEGのバージョンを含むがこれに限定されない、様々なタイプの圧縮のいずれかを採用して圧縮されていたかもしれない。 プロセッサコンポーネント350は、適切なタイプの解凍を用いて動画データ130のフレームを解凍し、ディスプレイ680上の視覚的表現のためのフレームバッファデータ330の一部として結果として生じる解凍されたフレームを格納してよい。そうして、単に動画を含まないフレームバッファデータ330において圧縮されていないフレームだけで行われることになるように、プロセッサコンポーネント350は、取得及び表示装置600への伝達に備えて、圧縮されたバッファデータ430の一部として、ストレージのためのビデオデータ130の解凍されたフレームを再圧縮する。前述のように、ハフマン符号化は、フレームバッファデータ330に格納されたフレームを圧縮する場合に利用され得る。これにより、いくつかの実施形態において、MPEGのバージョンを用いて圧縮されていたかもしれない動画データ130のフレームは、まず、フレームバッファデータ330内のストレージ用に解凍され、次に、ディスプレイ680の更新と同期して、反復的な取得及び表示装置600への伝達のための圧縮されたバッファデータ430内のストレージ用にハフマン符号化を再び用いて圧縮され得る。
【0037】
MPEGのバージョン又は同様の圧縮技術を用いて、動画データ130のフレームが圧縮される代替的な実施形態において、プロセッサコンポーネント350は、フレームバッファデータ330内のストレージ用にそれらを部分的にのみ解凍してよい。より具体的には、プロセッサコンポーネント350は、差分フレームと、隣接フレーム間で1又は複数の画素のカラー値のブロックが変化した方向及び距離を表現する付随する動きベクトルの指標とを導出するために必要とされる範囲のみに動画データ130のフレームを解凍してよい。これらの差分フレーム及びそれらの関連する動きベクトルの指標は、次に、プロセッサコンポーネント350によりフレームバッファデータ330に格納され得る。プロセッサコンポーネント350は、次に、これらの差分フレームを再圧縮し、それらを、圧縮されたバッファデータ430の一部としてストレージ360にそれらの圧縮された形式で格納する。さらに、いくつかの実施形態において、ハフマン符号化は、これらの差分フレームを圧縮するときに利用されてよい。プロセッサコンポーネント350は、圧縮されたバッファデータ430の一部として動きベクトルの指標をストレージ360に格納する前に、関連する動きベクトルの指標を圧縮してもよく、又は、しなくてもよい。
【0038】
これらの代替的な実施形態において、ディスプレイ680上の画像880の更新のサポートは、圧縮された差分フレーム及び関連する動きベクトルの指標の両方をストレージ330の圧縮されたバッファデータ430から反復的に取得し、それらを表示装置600に伝達するプロセッサコンポーネント350を伴う。表示装置600のプロセッサコンポーネント650は、これらの圧縮された差分フレーム及び動きベクトルの指標を受信し、それらを圧縮されたバッファデータ430の一部としてストレージ660内に格納する。プロセッサコンポーネント650は、次に、適切な解凍技術(例えば、ハフマン符号化を用いた解凍)を利用して、これらの差分フレームを解凍し、それらを圧縮されていないバッファデータ630の一部として格納する。動きベクトルの指標がまた、圧縮もされた場合、プロセッサコンポーネント650はまた、これらの指標も解凍し、かつ、それらを圧縮されていないバッファデータ630の一部としても格納する。プロセッサコンポーネント650は、次に、それらの関連する動きベクトルでそれらを組み合わせることにより差分フレームのMPEGベースの解凍を完了して、ディスプレイ680上に視覚的に提示されるべき次のフレームを含む、完全に解凍された形式で動画データ130のフレームを再構成する。
【0039】
要するに、これらの様々な実施形態において、圧縮されたバッファデータ430が維持されるストレージ360の一部は、圧縮されたフレームバッファとして利用される。ストレージ360のこの部分は、圧縮されたフレームバッファであるべきアドレス範囲の仕様により単純に定義されるストレージの一部であってよい。又は、ストレージ360のこの部分は、圧縮されたフレームバッファを含むフレームバッファとして機能するために実質的に専用のストレージコンポーネントで構成されてよい。そのような部分はまた、圧縮されたバッファデータ430に加えて、圧縮されていないフレームバッファデータ330を含むように構成されてよいことに留意すべきある。
【0040】
前述のように、ディスプレイ680上に視覚的に提示される画像880が、コンピューティングデバイス300により生成されるイメージ(例えば、ユーザインタフェースの視覚的部分)、又は、動画イメージ(例えば、カメラでキャプチャされた動画)を含んでよいことが想定される。当業者によく知られるように、動画イメージは、ユーザインタフェースの視覚的部分に特有のコンピュータで生成されたイメージよりも、隣接フレーム間の画素のカラー値における変化の度合いがより高いものを含む傾向にある。図3は、動画が含まれる画像880の一対の隣接フレーム例の間の変化の度合いを示す。一方の隣接フレームから他方への移行で見られるように、動画カメラによりキャプチャされた動画881がパンニングされており、一連の木々及び周囲の地形は、位置がシフトされている。また見られるように、一連の木々及び周囲の地形の視覚的表現は、パンニングに起因するこれらのオブジェクトのシフトが非常に多くの画素の状態を変化させるように、視覚イメージ880の画素のかなりの数を占有している。結果として、それらの間の差の度合いが高い可能性がある。
【0041】
図4は、動画が含まれていない画像880の他の一対の隣接フレーム例の間の変化の度合いを示す。図3の例とは対照的に、図4の例における画像880は、eメールテキストを編集するアプリケーション例のユーザインタフェースの視覚的部分で実質的に占有されている。一方の隣接フレームから他方への移行で見られるように、図示されたeメールにおけるテキストの行のタイピングは、この例における単語「lessons」の入力の一部として、文字「less」に文字「on」を追加する範囲までしか進まない。また見られように、一方の隣接フレームから他方へのこの進行における2つのテキスト文字のこの追加は、視覚的に提示されるもののうち、残りの全てが変更されないままなので、比較的少ない数の画素にしか影響を与えない。もし、ディスプレイの更新レートが典型的には30から85フレーム毎秒であれば、どのくらい迅速にテキスト又は他の入力がコンピューティングデバイス300に提供され得るかということに対する生体力学的な限界があるので、ユーザインタフェースの視覚的部分が視覚的に提示される多くの時間中、比較的低い変化の度合いのみが隣接フレーム間で予想されることが想定される。更に言えば、コンピューティングデバイス300のオペレータが、テキストを読むか、さもなければ、ユーザインタフェースの視覚的部分を見るために入力の提供を停止している場合、かなりの数の連続的な隣接フレームには、それらの間で全く差がない可能性があるものとして想定される。これにより、圧縮されたバッファデータ430としてストレージ用の差分フレームの使用及び圧縮が、反復的に取得され、かつ、表示装置に提供されるデータ量の相当な削減を実現するものとして想定されるが、差分フレームが動画を含む場合、データ量が多くなる可能性が高い。
【0042】
図1に戻り、前述のように、前フレームを参照することなく画像880の状態を表現するフルフレームが表示装置600に提供されるべき場合があり得る。さらに、これは、コンピューティングデバイス300の電源投入、コンピューティングデバイス300のリセット、又は、参照するために、差分フレームにとって利用可能な前フレームが存在しないという結果をもたらす他の条件のようなイベントの後に必要になり得る。さらに、いくつかの実施形態において、画素のかなりの割合の画素のカラー値が現フレーム及び先行する隣接フレームの間でかなりの程度変化するように画像880に大幅な変化があった差分フレームの代わりにフルフレームを提供することが望ましいと考えられ得る。いくつかの実施形態において、導出された各差分フレームは、差の度合いを判断するべく分析されてよく、差の度合いが閾値を超える場合、フルフレームは、圧縮され、差分フレームの代わり表示装置600へ提供される。差分フレームに対するフルフレームの圧縮及びストレージについての理由に関わらず、プロセッサコンポーネント350は、同じタイプの圧縮(例えばハフマン符号化)を用いて双方を圧縮してよい。さらに、プロセッサコンポーネント350は、取得され、かつ、表示装置600へ伝達される圧縮されたバッファデータ430に、フルフレーム及び差分フレームの両方を圧縮された形式で格納してよい。フルフレーム又は差分フレームのいずれかを表示装置600へ伝達するときに、プロセッサコンポーネント350は、どのタイプのフレームが伝達されているかを示す指標をさらに提供してよい。いくつかの実施形態において、そのような指標は、伝達されるフレーム自体に組み込まれてよい。
【0043】
図2は、コンピューティングデバイス300の代替的な実施形態を含むビデオプレゼンテーションシステム1000の代替的な実施形態のブロック図を示す。図2のビデオプレゼンテーションシステム1000の代替的な実施形態は、多くの点で図1の実施形態に類似しており、それゆえに、同様の参照番号は、全体にわたって同様の要素に言及するために用いられる。しかしながら、図1のコンピューティングデバイス300とは異なり、図2のコンピューティングデバイス300は、表示装置600を組み込んでいない。また、図1の表示装置600とは異なり、図2の表示装置600は、ネットワーク999を介して及び/又は異なるリンクを介してコンピューティングデバイス300に表示装置600を結合するインタフェース690を組み込んでよい。これにより、図2のビデオプレゼンテーションシステム1000の代替的な実施形態において、プロセッサコンポーネント350は、ストレージ360に格納された圧縮されたフレームバッファ430から取得された、圧縮されたフレームを表示装置600へネットワークを介して送信し得る。
【0044】
様々な実施形態において、プロセッサコンポーネント350及び650の各々は、多種多様な商業的に利用可能なプロセッサのいずれかを含んでよい。さらに、これらのプロセッサコンポーネントのうちの1又は複数は、複数のプロセッサ、マルチスレッドプロセッサ、(複数のコアが同じ又は別個のダイに共存する)マルチコアプロセッサ、及び/又は、複数の物理的に分離するプロセッサが何らかの方法でリンク付けされることによるいくつかの他の様々なマルチプロセッサアーキテクチャを含んでよい。
【0045】
プロセッサコンポーネント350及び650の各々は、様々なタイププロセッサのいずれかを含んでよく、表示装置600のプロセッサコンポーネント650が、グラフィックス及び/又はビデオに関連するタスクを実行するべく、幾分か特化され及び/又は最適化され得ることが想定される。より広義には、表示装置600が、プロセッサコンポーネント350及びそれに密接に関連するコンポーネントから分離し、かつ、プロセッサコンポーネント350及びそれに密接に関連するコンポーネントとは異なるコンポーネントを用いて、グラフィックスレンダリング、ビデオ圧縮、画像リスケーリング等に関連するタスクの実行を可能にするコンピューティングデバイス300のグラフィックスサブシステムを具現化することが想定される。
【0046】
様々な実施形態において、ストレージ360及び660の各々は、電力の中断されない提供を必要とする揮発性技術をおそらく含む、及び、リムーバブルであってもよく、そうでなくてもよい機械可読記憶媒体の使用を伴う技術をおそらく含む多種多様な情報ストレージ技術のいずれかに基づいてよい。これにより、これらのストレージの各々は、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、ダイナミックRAM(DRAM)、ダブルデータレートDRAM(DDR−DRAM)、シンクロナスDRAM(SDRAM)、スタティックRAM(SRAM)、プログラマブルROM(PROM)、消去可能プログラマブルROM(EPROM)、電気的に消去可能なプログラマブルROM(EEPROM)、フラッシュメモリ、ポリマーメモリ(例えば、強誘電体ポリマーメモリ)、オボニックメモリ、相変化若しくは強誘電体メモリ、シリコン酸化物窒化物酸化物シリコン(SONOS)メモリ、磁気若しくは光カード、1又は複数の個別強磁性ディスクドライブ、又は、1又は複数のアレイで構成される複数のストレージデバイス(例えば、Redundant Array of Independent Disks array又はRAIDアレイで構成される複数の強磁性ディスクドライブ)を限定することなく含む、ストレージデバイスの多種多様なタイプ(又はタイプの組み合わせ)のいずれかを含み得る。これらのストレージの各々が単一ブロックとして示されるが、これらのうちの1又は複数は、異なるストレージ技術に基づき得る複数のストレージデバイスを含み得ることに留意すべきである。これにより、例えば、これらの示されたストレージの各々のうちの1又は複数は、プログラム及び/又はデータがいくつかの機械可読記憶媒体の形式で格納され、かつ、伝達される光ドライブ又はフラッシュメモリカードリーダ、プログラム及び/又はデータを比較的拡張された期間ローカルに格納する強磁性ディスクドライブ、及び、プログラム及び/又はデータに対して比較的迅速にアクセスすることを可能にする1又は複数の揮発性ソリッドステートメモリデバイス(例えば、SRAM又はDRAM)の組み合わせを表してよい。これらのストレージの各々が、同一のストレージ技術に基づいて、複数のストレージコンポーネントで構成され得るが、(例えば、いくつかのDRAMデバイスがメインストレージとして採用される一方、他のDRAMデバイスがグラフィックスコントローラの別個のフレームバッファとして採用されるといった)使用における特性の結果として別々に維持されてよいこともまた留意すべきである。
【0047】
様々な実施形態において、インタフェース190、390及び690は、説明されたように、これらのコンピューティングデバイスが他のデバイスに結合されることを可能にする多種多様なシグナリング技術のいずれかを採用してよい。これらのインタフェースの各々は、そのような結合を可能とする少なくともいくつかの必須の機能を提供する回路を含む。しかしながら、これらのインタフェースの各々はまた、(例えば、プロトコルスタック又は他の機能を実装する)プロセッサコンポーネントのうちの対応するものにより実行される命令列と共に少なくとも部分的に実装されてもよい。電気的及び/又は光学的に導電性のあるケーブル配線が採用された場合、これらのインタフェースは、RS―232C、RS―422、USB、Ethernet(登録商標)(IEEE−802.3)又はIEEE−1394を限定することなく含む、様々な業界標準のいずれかに準拠するシグナリング及び/又はプロトコルを採用してよい。無線信号伝送の使用が必要とされる場合、これらのインタフェースは、IEEE802.11a、802.11b、802.11g、802.16、802.20(通常、「モバイルブロードバンド無線アクセス」と称される)、Bluetooth(登録商標)、Zigbee(登録商標)、又は、GSM(登録商標)及び汎用パケット無線サービス(GSM(登録商標)/GPRS)、CDMA/lxRTT、EDGE(Enhanced Data Rates for Global Evolution)、EV−DO(Evolution Data Only/Optimized)、EV−DV(Evolution For Data and Voice)、HSDPA(High Speed Downlink Packet Access)、HSUPA(High Speed Uplink Packet Access)、4G LTE等のようなセルラー無線電話サービスを限定することなく含む、様々な業界標準のいずれかに準拠するシグナリング及び/又はプロトコルを採用してよい。
【0048】
図5及び6の各々は、図1又は2のいずれかのビデオプレゼンテーションシステム1000の実施形態の一部のブロック図をより詳細に示す。より具体的に、図5は、プロセッサコンポーネント350が、制御ルーチン340を実行中に、反復的な取得及び表示装置600への提供の後に画像880のフレームを圧縮及び格納する場合のコンピューティングデバイス300の動作環境の態様を示す。図6は、プロセッサコンポーネント650が制御ルーチン640の実行中に、これらのフレームを解凍し、ディスプレイ680上で視覚的に提示する場合の表示装置600の動作環境の態様を示す。当業者に理解されるように、各々が構成される複数のコンポーネントを含む制御ルーチン340及び640は、たとえプロセッサコンポーネント350及び650のそれぞれを実装するために選択されるプロセッサ又は複数のプロセッサのタイプであろうと動作可能となるように選択される。
【0049】
様々な実施形態において、制御ルーチン340及び640の各々は、オペレーティングシステム、デバイスドライバ、及び/又は、(例えば、リモートサーバから取得された「アプレット」をディスクメディア上に提供した、いわゆる「ソフトウェアスイート」等の)アプリケーションレベルルーチンのうちの1又は複数を含んでよい。オペレーティングシステムが含まれる場合、オペレーティングシステムは、プロセッサコンポーネント350又は650の対応するものに適用する様々な利用可能なオペレーティングシステムのいずれかであってよい。1又は複数のデバイスドライバが含まれる場合、これらのデバイスドライバは、コンピューティングデバイス300又は600に対応するもので、ハードウェア又はソフトウェアコンポーネントのいずれかの様々な他のコンポーネントのいずれかに関するサポートを提供してよい。
【0050】
制御ルーチン340は、説明されたように、ネットワーク999を介して信号を送信及び受信するインタフェース390を操作するプロセッサコンポーネント350により実行可能な通信コンポーネント349を含んでよい。受信した信号の中には、ネットワーク999を介してコンピューティングデバイス300に動画データ130を伝達する信号があり得る。当業者に認識されるように、この通信コンポーネントは、インタフェーステクノロジーのタイプが、インタフェース390を実装するように選択されるものなら何でも動作可能であるように選択される。
【0051】
図5をより具体的に参照すると、制御ルーチン340は、プロセッサコンポーネント350により実行可能であり、フレームバッファデータ330のフルフレーム336及び/又は差分フレーム337を圧縮して、圧縮されたバッファデータ430の圧縮されたフルフレーム436及び/又は圧縮された差分フレーム437のそれぞれを生成するフレームバッファコンプレッサ346を含む。前述のように、前フレームからの差として画素のカラー値を表現するときに差分フレーム337が基準とする前フレームが存在しない、又は、差分フレームが参照できる前フレームがあるか否かに関わらずフルフレーム336を送信することが望ましいと考えられるという結果をもたらす条件があってよい。したがって、フレームバッファコンプレッサ346がフルフレーム336を代わりに圧縮する必要性が時々生じる。フルフレーム336の圧縮の後に、フルフレーム336は、フルフレーム336に続く差分フレーム337のうちの最初のものにより参照される、先行する隣接フレーム331になり、フルフレーム336に続く複数の現フレーム332のうちの当該最初のものを説明する。説明したように、フレームバッファコンプレッサ346は、いくつかの実施形態において、ハフマン符号化を実装してよい。
【0052】
図示したように、及び、前述のように、差分フレーム337は、画素のカラー値における差を計算する速度を向上させるべく、いくつかの実施形態において、デジタル回路で構成されるフレーム減算器370により導出されてよい。しかしながら、他の実施形態において、プロセッサコンポーネント350は、プロセッサコンポーネント350にそのような差の計算を実行させる制御ルーチン340のコンポーネントを実行してよい。
【0053】
制御ルーチン340は、圧縮されたバッファデータ430から最新の圧縮されたフレームを反復的に取得し、それを表示装置600に提供することによりディスプレイ680上に視覚的に提示される画像880を更新することをサポートするプロセッサコンポーネント350により実行可能な取得コンポーネント347を含む。説明されたように、それは、大抵、圧縮されたバッファデータ430から取得される圧縮された差分フレーム437である。しかしながら、フルフレームが表示装置600に提供されなければならないという以下の条件において、取得コンポーネント347は、圧縮されたフルフレーム436を取得し、それを表示装置600に提供する。
【0054】
これにより、図5に示される動作環境において、コンピューティングデバイス300により生成されるユーザインタフェースの視覚コンポーネントのフレームは、フレームバッファデータ330に格納される複数の差分フレーム337をフレーム減算器370により生成するべく最初に採用される。それから、ユーザインタフェースの視覚的部分のフレームを表す少なくとも1つのフルフレーム336及び複数の差分フレーム337は、フレームバッファコンプレッサ346により圧縮される。結果として生じる少なくとも1つの圧縮されたフルフレーム436及び複数の圧縮された差分フレーム437は、それから、取得コンポーネント347による、取得及び表示装置600への伝達のために、圧縮されたバッファデータ430の一部として格納される。さらに、差分フレーム337の各々を導出するべく実行される減算は、プロセッサ集約型ではない比較的単純な計算である。また、プロセッサ集約型(例えば、ハフマン符号化)でもないタイプの圧縮を用いながら、圧縮されたフレームの多くが差分フレーム337であるという事実は、比較的高度合いの圧縮をもたらす。これは、ディスプレイ680の更新のたびに取得されなければならないデータ量を大幅に低減する。全体的な結果として、ディスプレイ680を反復的に更新するために必要とされる電力量が大幅に低減される。
【0055】
動画データ130のフレームがディスプレイ680上に視覚的に提示されてもよい実施形態において、制御ルーチン340はまた、様々なタイプ解凍のいずれかを用いて動画データ130のフレームを解凍する、プロセッサコンポーネント350により実行可能な動画デコンプレッサ341を含んでもよい。用いられた解凍のタイプがMPEGのバージョンである場合、動画デコンプレッサ341は、エントロピーデコーダ3411、逆量子化コンポーネント3412、逆離散コサイン変換(IDCT)コンポーネント3413、動き補償器3414及び色空間コンバータ3415のうちの1又は複数を組み込んでよい。
【0056】
図5の動画デコンプレッサ341に着目すると、MPEGの当業者によく知られるように、エントロピーデコーダ3411は、圧縮中に用いられ得るハフマン符号化(又は別のエントロピー符号化の形式)をデコードする。ハフマン符号化は、より多い頻度で発生するデータ値に対してより短いビット長の記述子を割り当て、より少ない頻度で発生するデータ値に対してより長いビット長の記述子を割り当て、同じデータ値を表現するために必要とされるビットの数を低減する。逆量子化コンポーネント3412は、ある程度まで、圧縮中の量子化において発生した高い頻度のコンポーネントの除去を逆行させる。IDCTコンポーネント3413は、画素のカラー値を周波数領域に変換するべく、圧縮中に用いられた離散コサイン変換(DCT)を逆行させる。動き補償器3414は、フレームを再構成するときにこれらのシフトの結果に影響を与える画素のカラー値のブロックにおける方向及び距離のシフトを表現する動きベクトルを採用する。色空間コンバータ3415は、存在する場合、MPEGにおいてしばしば採用される輝度−色差(YUV)色空間から、駆動ディスプレイにおいてしばしば採用される赤−緑−青(RGB)色空間へというように、動画デコンプレッサ341の他のコンポーネントにより再構成されるフレームの色空間を変換するために採用されてよい。
【0057】
これにより、図5に示される動作環境において、動画データ130の圧縮されたフレームは、フレームバッファデータ330の一部(例えば、現フレーム332及び先行する隣接フレーム331)として格納される圧縮されていないフレームを生成するべく、動画デコンプレッサ341により、まず完全に解凍される。これ以降、動画データ130の圧縮されていないフレームは、前述したユーザインタフェースの視覚的部分のフレームとほとんど同じ方法で処理される。複数の差分フレーム337は、これらの動画データ130の圧縮されていないフレームから導出され、動画データ130の他の圧縮されていないフレームを表す少なくとも1つのフルフレーム336及び複数の差分フレーム337がフレームバッファコンプレッサ346により圧縮される。結果として生じる少なくとも1つの圧縮されたフルフレーム436及び複数の圧縮された差分フレーム437は、それから、取得コンポーネント347による取得及び表示装置600への伝達のために、圧縮されたバッファデータ430の一部として格納される。
【0058】
図6をより具体的に参照すると、表示装置600がコンピューティングデバイス300に統合されていない実施形態において、制御ルーチン640は、説明したように、ネットワーク999を介して信号を送信及び受信するべくインタフェース690を動作させる、プロセッサコンポーネント650により実行可能な通信コンポーネント649を含んでよい。受信した信号の中には、圧縮されたバッファデータ430を、ネットワーク999を介して表示装置600に伝達する信号があり得る。当業者に認識されるように、この通信コンポーネントは、インタフェーステクノロジーのタイプがインタフェース690を実装するように選択されるものなら何でも動作可能であるように選択される。
【0059】
制御ルーチン640は、プロセッサコンポーネント650により実行可能なディスプレイバッファデコンプレッサ646を含み、フレームバッファコンプレッサ346による圧縮の後にコンピューティングデバイス300から受信したときに、圧縮されたバッファデータ430の圧縮されたフルフレーム436及び/又は圧縮された差分フレーム437を解凍する。そのような解凍を実行するとき、ディスプレイバッファデコンプレッサ646は、結果として生じる圧縮されていないフルフレーム336及び/又は圧縮されていない差分フレーム337をそれぞれ、ディスプレイバッファデータ630に格納する。
【0060】
図示されるように、差分フレーム337の画素のカラー値は、現フレーム632を再構成するべく、フレーム加算器670により先行する隣接フレーム631の画素のカラー値と合計されてよい。先行する隣接フレーム631は、再構成され、ディスプレイ680上に視覚的に提示される最新のフレームであり、現フレーム632は、ディスプレイ680上の視覚的表現のために再構成される次のフレームである。しかしながら、他の実施形態において、プロセッサコンポーネント650は、プロセッサコンポーネント650にそのような合計の計算を実行させる制御ルーチン640のコンポーネントを実行してよい。しかしながら、ディスプレイ680上に視覚的に表示される次のフレームがフルフレーム336である場合、そのような合計の計算は、実行されず、更に言えば、まだ、先行する隣接フレーム631が存在しない可能性があることに留意すべきである。
【0061】
制御ルーチン640は、ディスプレイバッファデータ630の最新の現フレーム632をディスプレイ680に反復的に視覚的に提示する、プロセッサコンポーネント650により実行可能なプレゼンテーションコンポーネント648を含む。当業者によく知られるように、プレゼンテーションコンポーネント648がディスプレイ680上に視覚的表現のための複数のフレームを提供する場合の更新レートは、一致するように選択され、又は、圧縮された複数のフレームがコンピューティングデバイス300から表示装置600により受信されるレートの倍数となるように選択されてよい。これにより、いくつかの実施形態において、現フレーム632の各々は、ディスプレイ680上で一回以上レンダリングされるラスタスキャンであってよい。
【0062】
図6に示される動作環境において、(ネットワークを介して又はネットワークを介さずに)コンピューティングデバイス300から受信される圧縮された複数のフレームは、それらのコンテンツに関わらず、同じ手法で処理されることに留意すべきである。これにより、それらの動画による包含又は包含の欠如に応じた複数のフレームの解凍又は視覚的表現には変化がない。
【0063】
図7及び8はそれぞれ、図1又は2のいずれかのビデオプレゼンテーションシステム1000の代替的な実施形態の一部のブロック図をより詳細に示す。より具体的に、図7は、動画データ130の圧縮されたフレームが解凍され、再圧縮され、かつ、図5のコンピューティングデバイス300の実施形態とは幾分か異なる表示装置600に提供されるコンピューティングデバイス300の代替的な実施形態の動作環境の態様を示す。図8は、動画データ130のフレームを含む受信した圧縮されたフレームの解凍が、図6の表示装置600の実施形態とは幾分か異なって実行される表示装置600の代替的な実施形態の動作環境の態様を示す。図8の表示装置600の実施形態は、図5の対応部分と図7のコンピューティングデバイス300の実施形態と違いに適応するべく、図6の対応部分とは異なる。
【0064】
図7及び8のビデオプレゼンテーションシステム1000の代替的な実施形態は、図5及び6のビデオプレゼンテーションシステム1000の実施形態と多くの点で類似しており、そのため、同様の参照番号が、全体にわたって同様の要素に言及するために用いられる。例として、現フレーム332及び先行する隣接フレーム331がユーザインタフェースの視覚的部分である場合、それらが圧縮され、表示装置600に伝達される手法、及び、それらが解凍され、表示装置600により視覚的に提示される手法は、これら視覚的表現システム1000の2つの実施形態の間で実質的に類似する。しかしながら、MPEGのバージョンに従って圧縮された動画データ130の動画の圧縮されたフレームの処理の手法は、幾分異なる。
【0065】
図5及び6のビデオプレゼンテーションシステム1000の実施形態では、動画データ130の動画の圧縮された複数のフレームは、動画デコンプレッサ341により、まず完全に解凍され、次に、表示装置600へ伝達される前に、フレームバッファコンプレッサ346により再圧縮されており、それらがディスプレイバッファデコンプレッサ646により再び解凍されていた。しかしながら、図7及び8のビデオプレゼンテーションシステム1000の実施形態に関して、より詳細に手短に説明されるように、MPEGのバージョンに従って圧縮された動画データ130のフレームは、動画デコンプレッサ341により部分的にのみ解凍され、次に、表示装置600に伝達される前にフレームバッファコンプレッサ346により再圧縮され、フレームバッファコンプレッサ346の圧縮が動画デコンプレッサ341によりされず、かつ、元のMPEG圧縮の解凍が最終的に完了する。
【0066】
図7を参照すると、動画デコンプレッサ341は、動き補償器3414を除いて、図5の対応部分と同じコンポーネントを組み込む。これにより、図7の動画デコンプレッサ341は、エントロピー復号化、逆量子化及びIDCTを実行し、また図5の動画デコンプレッサ341と同様に色空間変換を実行してもよい一方、図7の動画デコンプレッサは動き補償を実行しない。MPEGに精通した者であれば容易に認識するように、動き補償は、画素のカラー値の1又は複数のブロックがフレーム間で変化した方向及び距離を特定する動きベクトルの指標と共に、少なくとも1つの他のフレーム(例えば、差分フレームのタイプ)の画素のカラー値との差として画素のカラー値を説明するフレームを組み合わせることにより、予測フレーム(Pフレーム)及び双方向予測フレーム(Bフレーム)の解凍を完了することを伴う。イントラフレーム(Iフレーム)が別のフレームの画素のカラー値を参照することにより画素のカラー値を表現せず、かつ、動きベクトルを組み込まないので、Iフレームのみが動画デコンプレッサ341により完全に解凍される。結果として、動画デコンプレッサ341は、完全に解凍されたIフレームをフルフレーム336としてフレームバッファデータ330に格納し、部分的に解凍されたPフレーム及びBフレームを差分フレーム337及び付随の動きベクトル338の指標の組み合わせとして格納する。
【0067】
フレームバッファコンプレッサ346は、フルフレーム336及び差分フレーム337を圧縮し、取得コンポーネント347は、図5及び7の実施形態の両方における表示装置600への伝達のために、結果として生じる圧縮されたフルフレーム436及び圧縮された差分フレーム437をそれぞれ反復的に取得する。しかしながら、図7において、フレームバッファコンプレッサ346はまた、動きベクトル338の指標を圧縮してもよく、取得コンポーネントはまた、結果として生じる圧縮された動きベクトル438の指標を取得し、これを表示装置600に伝達してもよい。
【0068】
図8を参照すると、制御ルーチン640は、図6の対応部分と同様に、ディスプレイバッファデコンプレッサ646及びプレゼンテーションコンポーネント648を組み込む。しかしながら、図8の制御ルーチン640は、動き補償コンポーネント647をさらに組み込む。ディスプレイバッファデコンプレッサ646は、圧縮されたフルフレーム436及び圧縮された差分フレーム437を解凍し、プレゼンテーションコンポーネント648は、最新の再構成されたフレームを図6及び8の実施形態の両方におけるディスプレイ680に視覚的に提示する。しかしながら、図8において、ディスプレイバッファデコンプレッサ646はまた、圧縮された動きベクトル438の指標を解凍してもよく、それによって、ディスプレイバッファデータ630の一部として格納される圧縮されていない形式で動きベクトル338の指標を生成する。また、動き補償コンポーネント647は、さもなければ動画デコンプレッサ341により実行されていなければならないMPEG解凍の動き補償部分を実行する。これにより、動き補償コンポーネント647は、動画データ130の最初に圧縮されたフレームのMPEG解凍を効果的に完了する。
【0069】
図9は、論理フロー2100の一実施形態を示す。論理フロー2100は、本明細書で説明された1つ又は複数の実施形態により実行されるオペレーションのうちのいくつか又は全てを代表し得る。より具体的に、論理フロー2100は、少なくとも制御ルーチン340を実行しているときに、プロセッサコンポーネント350により実行され、及び/又は、コンピューティングデバイス300の(複数の)他のコンポーネントにより実行されるオペレーションを示してよい。
【0070】
2110で、コンピューティングデバイスのプロセッサコンポーネント(例えば、コンピューティングデバイス300のプロセッサコンポーネント350)は、差分フレームにより参照され得る前フレームがあるか否かをまずチェックすることにより、圧縮されていない現フレーム(例えば、フレームバッファデータ330の現フレーム332)を圧縮する。前述のように、イベントは、コンピューティングデバイスの電源投入等のように、差分フレームにおける画素カラーの差の表現による基準として採用される前フレームが存在しないという結果を生じ得る。前フレームが存在しない場合、次に、2112で、圧縮されていない現フレームが、圧縮され、後続の取得及び表示装置(例えば、表示装置600)への伝達のための圧縮されたフルフレームとして格納される。また前述のように、画素のかなりの割合の画素のカラー値に大幅な変化が発生した場合、たとえ利用可能な前フレームが存在する場合であっても、差分フレームの代わりに現フレームを圧縮及び格納することが望ましいと考えられ得る。動画の視覚的表現とユーザインタフェースの視覚的部分の視覚的表現との間の変化のように、視覚的に提示されるものに変化がある場合、画素のそのようなかなりの割合のそのような大幅な変化が生じ得る。
【0071】
しかしながら、2110で前フレームが存在する場合、次に、圧縮されていない現フレームと前フレーム(例えば、先行する隣接フレーム331)との間の画素のカラー値における差を表現する差分フレームが2120で他方から一方を減算することにより導出される。前述のように、そのような減算は、デジタル回路とともに実装されるフレーム減算器(例えば、フレーム減算器370)により実行されてよく、又は、コンピューティングデバイスのプロセッサコンポーネントにより実行されてよい。導出された差分フレームは、次に、圧縮され、2122での後続の取得及び表示装置への伝達のための圧縮された差分フレームとして格納される。
【0072】
圧縮されたフルフレーム又は圧縮された差分フレームが2112又は2122のそれぞれで格納されたか否かに関わらず、2130では、圧縮され、かつ、後続の取得及び表示装置への伝達に備えて格納される追加のフレームが存在する否かについてチェックが行われる。追加のフレームが存在する場合、次に、前フレームのチェックが2110で繰り返される。
【0073】
図10は、論理フロー2200の一実施形態を示す。論理フロー2200は、本明細書で説明された1つ又は複数の実施形態により実行されるオペレーションのいくつか又は全てを代表し得る。より具体的に、論理フロー2200は、少なくとも制御ルーチン640を実行するときにプロセッサコンポーネント650により実行され、及び/又は表示装置600の(複数の)他のコンポーネントにより実行されるオペレーションを示し得る。
【0074】
2210で、表示装置のプロセッサコンポーネント(例えば、表示装置600のプロセッサコンポーネント650)は、コンピューティングデバイス(例えば、コンピューティングデバイス300)から受信した圧縮されたフレームを解凍する。前述のように、表示装置は、コンピューティングデバイスに組み込まれてよく、又は、コンピューティングデバイスにさらに結合される一方、コンピューティングデバイスから物理的に分離されてよい。また、コンピューティングデバイスから受信した圧縮されたフレームは、ハフマン符号化を用いて圧縮されたものであってもよい。
【0075】
2220で、ここで解凍されたフレームのチェックが行われ、(差分フレームに対する)フルフレームであるかどうかを判断する。解凍されたフレームがフルフレームである場合、それは、別のフレームに関して画素のカラー値を表現しておらず、2222で、表示装置のディスプレイ(例えば、ディスプレイ680)上に視覚的に提示される。
【0076】
しかしながら、2220で、ここで解凍されたフレームがフルフレームでない場合、それは差分フレームであり、画素のカラー値における差の表現が、2230で表示装置により再構成されて視覚的に提示された最後のフレームに合計され、視覚的に提示される次のフレームを再構成する。次に、ここで再構成された次のフレームが、2232で、ディスプレイ上に視覚的に提示される。
【0077】
フルフレームか、又は、差分フレームを用いて再構成されたフレームかに関わらず、2222又は2232でそれぞれ視覚的に提示され、2240で、ディスプレイ上の視覚的表現のために解凍されるべき追加のフレームが存在するか否かのチェックが行われる。追加のフレームが存在する場合、次に、別の圧縮されたフレームが、2210で解凍される。
【0078】
図11は、論理フロー2300の一実施形態を示す。論理フロー2300は、本明細書で説明された1つ又は複数の実施形態により実行されるオペレーションのいくつか又は全てを代表し得る。より具体的に、論理フロー2300は、少なくとも制御ルーチン340を実行するとき、プロセッサコンポーネント350により実行され、及び/又は、図7のコンピューティングデバイス300の実施形態の(複数の)他のコンポーネントにより実行されるオペレーションを示し得る。
【0079】
2310で、コンピューティングデバイスのプロセッサコンポーネント(例えば、コンピューティングデバイス300のプロセッサコンポーネント350)は、MPEGのバージョンを用いて圧縮された動画のフレームを部分的にのみ解凍する。別のフレームと比較して変化したものに関連する画素のブロックについて画素のカラー値で方向及び距離を示す動きベクトルにおける動き補償は実行されない。結果として、前述のように、部分的に解凍されたフレームは、その画素のカラー値が少なくとも1つの他のフレームに関して表現されている差分フレームのままである。
【0080】
2320で、この結果として生じる差分フレーム及びその付随の動きベクトルの指標(例えば、差分フレーム337及び動きベクトル338の指標)は、(例えば、ストレージ用の圧縮された差分フレーム437及び圧縮された動きベクトル438の指標として)ストレージ用に両方とも圧縮される。前述のように、ストレージ用に用いられ得る圧縮のタイプは、ハフマン符号化を含んでよい。
【0081】
結果として生じる圧縮された差分フレーム及び付随の動きベクトルの指標は、後続の取得及び表示装置(例えば、表示装置600)への伝達に備えるように2330で格納される。前述のように、圧縮された差分フレーム及びその付随する動きベクトルの指標は、コンピューティングデバイスにより実行されないMPEG解凍の動き補償ステップが最終的に実行される表示装置へ一緒に伝達される。
【0082】
2340で、部分的に解凍されるべき動画の追加のフレームが存在するか否かについてチェックが行われ、次に、後続の取得及び表示装置への伝達に備えて圧縮及び格納される。追加のフレームが存在する場合、次に、動画の別のフレームの部分的な解凍が2310で実行される。
【0083】
図12は、論理フロー2400の一実施形態を示す。論理フロー2400は、本明細書で説明された1つ又は複数の実施形態により実行されるオペレーションのいくつか又は全てを代表し得る。より具体的に、論理フロー2400は、少なくとも制御ルーチン640を実行するときに、プロセッサコンポーネント650により実行され、及び/又は、図8の表示装置600の(複数の)他のコンポーネントにより実行されるオペレーションを示し得る。
【0084】
2410で、表示装置のプロセッサコンポーネント(例えば、表示装置600のプロセッサコンポーネント650)は、コンピューティングデバイス(例えば、コンピューティングデバイス300)から受信した動画の圧縮された差分フレーム及びその付随する圧縮された動きベクトルの指標の両方を解凍する。前述のように、上記の論理フロー2300で単に例示したように、コンピューティングデバイスは、動画のフレームのMPEG解凍を部分的にのみ実行し得る。その部分的に実行された解凍の結果は、コンピューティングデバイスが次に、ストレージ、取得及び表示装置への伝達のために異なるタイプの圧縮(例えば、ハフマン符号化)を用いて圧縮する差分フレームと付随する動きベクトルの指標との組み合わせである。
【0085】
2420で、コンピューティングデバイスにより実行されない動き補償ステップは、結果として生じる差分フレームと動きベクトルの指標との組み合わせで実行され、動画のフレームのMPEGデコードを本質的に完了する。2430で、ここで完全に再構成された動画のフレームは、表示装置のディスプレイ(例えば、ディスプレイ680)上に視覚的に提示される。
【0086】
図13は、前述されたように、様々な実施形態を実装するために適切な処理アーキテクチャ3000の実施形態を示す。より具体的に、処理アーキテクチャ3000(又はその変形)は、コンピューティングデバイス100、300又は600の1又は複数の一部として実施され得る。処理アーキテクチャ3000のコンポーネントは、末尾の2桁が、コンピューティングデバイス100、300及び600の一部として以前に示され、かつ、説明されたコンポーネントの少なくともいくつかの参照番号の末尾の2桁に対応する所与の参照番号であることに留意すべきである。これは、コンポーネントの各々に対応する補助として行われる。
【0087】
処理アーキテクチャ3000は、1又は複数のプロセッサ、マルチコアプロセッサ、コプロセッサ、メモリユニット、チップセット、コントローラ、周辺機器、インタフェース、発振器、タイミングデバイス、ビデオカード、オーディオカード、マルチメディア入力/出力(I/O)コンポーネント、電力供給等を限定することなく含む、デジタル処理において通常採用される様々な要素を含む。本願において用いられるように、用語「システム」及び「コンポーネント」は、デジタル処理が実行されるコンピューティングデバイスのエンティティに言及することが意図され、エンティティは、ハードウェア、ハードウェア及びソフトウェアの組み合わせ、ソフトウェア又は実行中のソフトウェア、この示された処理アーキテクチャにより提供される例である。例えば、コンポーネントは、プロセッサコンポーネントにおいて実行されている処理、プロセッサコンポーネント自体、光及び/又は磁気記憶媒体を採用し得るストレージデバイス(例えば、ハードディスクドライブ、アレイにおける複数のストレージドライブ等)、ソフトウェアオブジェクト、実行可能な命令列、実行スレッド、プログラム及び/又はコンピューティングデバイス全体(例えば、コンピュータ全体)となり得るがこれらに限定されない。例示として、サーバ上で実行するアプリケーション及びサーバの両方がコンポーネントとなり得る。1又は複数のコンポーネントは、処理及び/又は実行スレッド内に存在することができ、コンポーネントは、1つのコンピューティングデバイス上に局在され、及び/又は、2又はそれより多いコンピューティングデバイスの間で分散されることができる。さらに、コンポーネントは、オペレーションを調整するべく、様々なタイプの通信媒体により互いに通信可能に結合されてよい。調整は、一方向又は双方向の情報の交換を伴ってよい。例えば、コンポーネントは、通信媒体を介して通信される信号の形式で情報を通信してよい。情報は、1又は複数の信号線に割り当てられた信号として実装され得る。(コマンド、ステータス、アドレス又はデータメッセージを含む)メッセージは、そのような信号のうちの1つであってよく、又は、そのような信号のうちの複数であってよく、かつ、直列又は実質的に並列に、様々な接続及び/又はインタフェースのいずれかを通じて送信されてよい。
【0088】
図示されるように、処理アーキテクチャ3000の実装において、コンピューティングデバイスは、少なくともプロセッサコンポーネント950、ストレージ960、他のデバイスに対するインタフェース990及び結合955を含む。説明されるように、処理アーキテクチャ3000を実装するコンピューティングデバイスの様々な態様に依存して、その意図された使用及び/又は使用の状態を含み、そのようなコンピューティングデバイスは、そのような限定なしに、ディスプレイインターフェース985のような追加のコンポーネントをさらに含んでよい。
【0089】
結合955は、1又は複数のバス、ポイントツーポイントインタコネクト、送受信機、バッファ、クロスポイントスイッチ、及び/又は、少なくともプロセッサコンポーネント950をストレージ960に通信可能に結合する他の導体並びに/若しくはロジックを含む。結合955は、インタフェース990、オーディオサブシステム970及びディスプレイインターフェース985のうちの1又は複数にプロセッサコンポーネント950をさらに結合してよい(これら及び/又は他のコンポーネントがまた存在することにも依存する)。プロセッサコンポーネント950が結合955により結合された状態で、プロセッサコンポーネント950は、処理アーキテクチャ3000を実装する前述した複数のコンピューティングデバイスのうちのいずれか1つ(複数)について、上記で詳しく説明した様々なタスクを実行することができる。結合955は、信号が光学的及び/又は電気的伝達される様々な技術のいずれか、又は、技術の組み合わせで実装され得る。さらに、結合955の少なくとも一部は、アクセラレーテッドグラフィックスポート(AGP)、CardBus、E−ISA(Extended Industry Standard Architecture)、MCA(Micro Channel Architecture)、NuBus、PCI−X(Peripheral Component Interconnect(Extended))、PCI−E(PCI Express)、パーソナルコンピュータメモリカード国際協会(PCMCIA)バス、ハイパートランスポート、QuickPath等を限定することなく含む、多種多様な業界標準のいずれかに準拠するタイミング及び/又はプロトコルを採用し得る。
【0090】
前述のように、(プロセッサコンポーネント350及び650に対応する)プロセッサコンポーネント950は、多種多様な技術のいずれかを採用し、複数の方法のいずれかで物理的に組み合わせられる1又は複数のコアとともに実施される、多種多様な商業的に利用可能なプロセッサのいずれかを含んでよい。
【0091】
前述のように、(ストレージ360及び660に対応する)ストレージ960は、多種多様な技術のいずれか又は技術の組み合わせに基づいて、1又は複数の別個のストレージデバイスで構成されてよい。より具体的に、図示されるように、ストレージ960は、揮発性ストレージ961(例えば、RAMテクノロジーの1又は複数の形式に基づくソリッドステートストレージ)、不揮発性ストレージ962(例えば、それらのコンテンツを保持するために一定の電力の提供を必要としないソリッドステート、強磁性又は他のストレージ)及びリムーバブルメディアストレージ963(例えば、情報がコンピューティングデバイス間で伝達されるリムーバブルディスク又はソリッドステートメモリカードストレージ)のうちの1つ又は複数を含んでよい。複数の別個のタイプのストレージをおそらく含むようなこのストレージ960の図は、プロセッサコンポーネント950によりデータのより迅速な操作を可能にする(しかし、電力を絶えず必要とする「揮発性」技術をおそらく用いる)、あるタイプが比較的迅速な読み取り及び書き込み機能を提供する一方、別のタイプが比較的高い密度の不揮発性ストレージを提供する(しかし、比較的遅い読み取り及び書き込み機能をおそらく提供する)、コンピューティングデバイス内の1より多いタイプのストレージデバイスの通常の使用が認められている。
【0092】
異なる技術を採用するしばしば異なるストレージデバイスの異なる特性を考慮すると、異なるインタフェースを通じてそれらの異なるストレージデバイスに結合される異なるストレージコントローラを通じて、コンピューティングデバイスの他の一部に結合される、そのような異なるストレージデバイスについてもよく見られる。例として、揮発性ストレージ961が存在し、RAMテクノロジーに基づく場合、揮発性ストレージ961は、行及び列のアドレス指定をおそらく採用する揮発性ストレージ961に適切なインタフェースを提供するストレージコントローラ965aを通じじて結合955に通信可能に結合され、ストレージコントローラ965aは、揮発性ストレージ961内に格納された情報を保存することを補助するべく、行の更新及び/又は他のメンテナンスタスクを実行し得る。別の例として、不揮発性ストレージ962が存在し、1又は複数の強磁性及び/又はソリッドステートディスクドライブを含む場合、不揮発性ストレージ962は、情報及び/又はシリンダのブロックとセクターとのアドレス指定をおそらく採用する不揮発性ストレージ962に適切なインタフェースを提供するストレージコントローラ965bを通じて結合955に通信可能に結合され得る。更なる別の例として、リムーバブルメディアストレージ963が存在し、機械可読記憶媒体969の1又は複数の断片を採用する1又は複数の光及び/又はソリッドステートディスクドライブを含む場合、リムーバブルメディアストレージ963は、情報のブロックのアドレス指定をおそらく採用するリムーバブルメディアストレージ963に適切なインタフェースを提供するストレージコントローラ965cを通じて結合955に通信可能に結合され、ストレージコントローラ965cは、機械可読記憶媒体969の寿命を延ばすことに特有の手法でオペレーションの読み出し、消去し、及び書き込みを調整し得る。
【0093】
揮発性ストレージ961又は不揮発性ストレージ962の一方又は他方は、各々のベースになる複数の技術に依存して、プロセッサコンポーネント950により実行可能な命令列を含むルーチンが格納され得る、機械可読記憶媒体の形式における製品を含んでよい。例として、不揮発性ストレージ962は、強磁性ベースのディスクドライブ(例えば、「ハードドライブ」と呼ばれる)を含む場合、そのような各ディスクドライブは、1又は複数の回転プラッタを典型的に採用し、フロッピー(登録商標)ディスケットのような記憶媒体に似た手法で命令列のような情報を格納するべく、磁気的に対応する粒子のコーティングが様々なパターンで堆積され、かつ、磁気的に指向される。別の例として、不揮発性ストレージ962は、ソリッドステートストレージデバイスのバンクで構成され、コンパクトフラッシュ(登録商標)カードに似た手法で命令列のような情報を格納してよい。さらに、実行可能なルーチン及び/又はデータを格納するべく、異なる回数でコンピューティングデバイスの異なるタイプのストレージデバイスを採用することがよく見られる。これにより、プロセッサコンポーネント950により実行される命令列を含むルーチンは、機械可読記憶媒体969に最初に格納され、ルーチンが実行されるように、プロセッサコンポーネント950によって、より迅速にアクセスすることを可能とする機械可読記憶媒体969及び/又は揮発性ストレージ961の連続的な存在を必要としない、より長い期間の格納のための不揮発性ストレージ962に対してルーチンをコピーするときに、リムーバブルメディアストレージ963は続けて採用され得る。
【0094】
前述のように、(おそらくインタフェース190、390又は690に対応する)インタフェース990は、1又は複数の他のデバイスにコンピューティングデバイスを通信可能に結合するべく採用される様々な通信技術のいずれかに対応する様々なシグナリング技術のいずれかを採用し得る。さらに、様々な形式の有線又は無線シグナリングの一方又は両方は、ネットワーク(例えば、ネットワーク999)又は相互接続されたネットワークのセットをおそらく通じて、入力/出力デバイス(例えば、図示された例示的なキーボード920若しくはプリンタ925)及び/又は他のコンピューティングデバイスと相互作用することをプロセッサコンポーネント950に可能させるべく採用され得る。任意の1つのコンピューティングデバイスによって、しばしばサポートされるべき複数のタイプのシグナリング及び/又はプロトコルのしばしば大幅に異なる性質が認められる場合、インタフェース990は、複数の異なるインタフェースコントローラ995a、995b及び995cを含むように示される。インタフェースコントローラ995aは、図示されたキーボード920のような、ユーザ入力デバイスから連続的に送信されたメッセージを受信するべく、様々なタイプの有線デジタルシリアルインタフェース又は無線周波数無線インタフェースのいずれかを採用してよい。インタフェースコントローラ995bは、図示されたネットワーク999(1又は複数のリンクで構成されるおそらくネットワーク、より小さなネットワーク又はおそらくインターネット)を通じて他のコンピューティングデバイスにアクセスする様々なケーブルベース若しくは無線シグナリング、タイミング及び/又はプロトコルのいずれかを採用してよい。インタフェース995cは、図示されたプリンタ925にデータを伝達するべく、シリアル又はパラレル信号伝送のいずれかの利用を可能にする、様々な電気的に導電性のあるケーブル配線のいずれかを採用してよい。インタフェース990の1又は複数のインタフェースコントローラを通じて通信可能に結合され得るデバイスの他の例は、マイク、リモートコントロール、スタイラスペン、カードリーダ、指紋リーダ、仮想現実インタラクショングローブ、グラフィカル入力タブレット、ジョイスティック、他のキーボード、網膜スキャナ、タッチスクリーンのタッチ入力コンポーネント、トラックボール、様々なセンサ、ジェスチャ及び/又は顔の表現を介して人によりシグナリングされたコマンド及び/又はデータを受け取るべく、人の動きを監視するカメラ又はカメラアレイ、レーザプリンタ、インクジェットプリンタ、機械ロボット、ミリング機械等を、限定することなく含む。
【0095】
コンピューティングデバイスがディスプレイ(例えば、図示された例示的なディスプレイ980)に通信可能に結合される(又は、おそらく実際に組み込まれる)場合、そのような処理アーキテクチャ3000を実装するコンピューティングデバイスはまた、ディスプレイインターフェース985を含んでよい。より汎用的なタイプのインタフェースは、ディスプレイに通信可能に結合するときに採用されてよいが、ディスプレイに様々な形式のコンテンツを視覚的に表示する場合にしばしば必要とされる、幾分か特化された追加の処理及び使用されるケーブルベースインタフェースの幾分か特化された性質は、しばしば別個のディスプレイインターフェースの提供が望ましくする。ディスプレイ980の通信可能な結合において、ディスプレイインターフェース985により採用され得る有線及び/又は無線シグナリング技術は、様々なアナログビデオインタフェース、デジタルビデオインタフェース(DVI)、Display Port等のいずれかを、限定することなく含む様々な業界標準のいずれかに準拠するシグナリング及び/又はプロトコルを利用してよい。
【0096】
図14は、システム4000の実施形態を示す。様々な実施形態において、システム4000は、グラフィックス処理システム1000、コンピューティングデバイス100、300又は600の1又は複数、及び/又は、論理フロー2100又は2200の一方又は両方のような、本明細書で説明された1つ又は複数の実施形態での使用に適切なシステム又はアーキテクチャを代表し得る。実施形態は、この点に限定されない。
【0097】
図示されるように、システム4000は、複数の要素を含んでよい。1又は複数の要素は、設計又は性能制約の所与のセットについて所望されるように、1又は複数の回路、コンポーネント、レジスタ、プロセッサ、ソフトウェアサブルーチン、モジュール又はそれらの任意の組み合わせを用いて実装され得る。図14は、例として、特定のトポロジーにおいて限定された数の要素を示しているが、任意の適切なトポロジーにおいて、より多くの又はより少ない数の要素が、所与の実装について所望されるように、システム4000で用いられる可能性があることが理解され得る。実施形態は、この文脈に限定されない。
【0098】
複数の実施形態において、システム4000は、この文脈に限定されないが、システム4000は、メディアシステムであってよい。例えば、システム4000は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスト(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等に組み込まれてよい。
【0099】
実施形態において、システム4000は、ディスプレイ4980に結合されるプラットフォーム4900aを含む。プラットフォーム4900aは、(複数の)コンテンツサービスデバイス4900c若しくは(複数の)コンテンツ配信デバイス4900d又は他の類似のコンテンツソースのようなコンテンツデバイスからコンテンツを受信してよい。1又は複数のナビゲーション機能を含むナビゲーションコントローラ4920は、例えば、プラットフォーム4900a及び/又はディスプレイ4980と相互作用するために用いられてよい。こららのコンポーネントの各々は、以下により詳細に説明される。
【0100】
実施形態において、プラットフォーム4900aは、プロセッサコンポーネント4950、チップセット4955、メモリユニット4969、送受信機4995、ストレージ4962、アプリケーション4940及び/又はグラフィックスサブシステム4985の任意の組み合わせを含んでよい。チップセット4955は、プロセッサコンポーネント4950、メモリユニット4969、送受信機4995、ストレージ4962、アプリケーション4940及び/又はグラフィックスサブシステム4985間の相互通信を提供し得る。例えば、チップセット4955は、ストレージ4962との相互通信を提供することが可能なストレージアダプタ(不図示)を含んでよい。
【0101】
プロセッサコンポーネント4950は、任意のプロセッサ又は論理デバイスを用いて実装されてよく、さらに、図13のプロセッサコンポーネント950と同じ又は同様のものであってよい。
【0102】
メモリユニット4969は、データを格納することが可能な任意の機械可読又はコンピュータ可読媒体を用いて実装されてよく、さらに、図13の記憶媒体969と同じ又は同様のものであってよい。
【0103】
送受信機4995は、様々な適切な無線通信技術を用いて、信号を送信し受信することを可能とする1又は複数の無線機を含んでよく、さらに、図13の送受信機995bと同じ又は同様のものであってよい。
【0104】
ディスプレイ4980は、任意のテレビ型のモニタ又はディスプレイを含んでよく、さらに、図13のディスプレイ980と同じ又は同様のものであってよい。
【0105】
ストレージ4962は、不揮発性ストレージデバイスとして実施されてよく、さらに、図13の不揮発性ストレージ962と同じ又は同様のものであってよい。
【0106】
グラフィックスサブシステム4985は、表示のための静止画又はビデオのような画像の処理を実行してよい。グラフィックスサブシステム4985は、例えば、グラフィックス処理ユニット(GPU)又はビジュアル処理ユニット(VPU)であってよい。アナログ又はデジタルインタフェースは、グラフィックスサブシステム4985及びディスプレイ4980を通信可能に結合するために用いられてよい。例えば、インタフェースは、高品位マルチメディアインタフェース、DisplayPort、無線HDMI(登録商標)及び/又は無線HD準拠技術のいずれかであってよい。グラフィックスサブシステム4985は、プロセッサ回路4950又はチップセット4955に統合され得る。グラフィックスサブシステム4985は、チップセット4955に通信可能に結合されるスタンドアロンカードであり得る。
【0107】
本明細書で説明されるグラフィックス及び/又はビデオ処理技術は、様々なハードウェアアーキテクチャに実装され得る。例えば、グラフィックス及び/又はビデオ機能は、チップセット内に統合され得る。代替的に、別々のグラフィックス及び/又はビデオプロセッサが用いられてよい。さらに別の実施形態のように、グラフィックス及び/又はビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより実施され得る。さらなる実施形態において、機能は、消費者向け電子デバイスに実装され得る。
【0108】
実施形態において、(複数の)コンテンツサービスデバイス4900bは、任意の国の、国際的な及び/又は独立のサービスによりホストされてよく、これにより、例えば、インターネットを介してプラットフォーム4900aにアクセス可能となる。(複数の)コンテンツサービスデバイス4900bは、プラットフォーム4900a及び/又はディスプレイ4980に結合されてよい。プラットフォーム4900a及び/又は(複数の)コンテンツサービスデバイス4900bは、ネットワーク4999へ及びネットワーク4999からメディア情報を通信(例えば、送信及び/又は受信)するべく、ネットワーク4999に結合されてよい。(複数の)コンテンツ配信デバイス4900cはまた、プラットフォーム4900a及び/又はディスプレイ4980に結合されてもよい。
【0109】
実施形態において、(複数の)コンテンツサービスデバイス4900bは、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報及び/又はコンテンツを提供することができるインターネット可能なデバイス若しくは電気機器、及び、ネットワーク4999を介して、又は直接的に、コンテンツプロバイダとプラットフォーム4900a及び/又はディスプレイ4980との間でコンテンツを一方向又は双方向に通信することが可能な任意の他の類似のデバイスを含んでよい。コンテンツがネットワーク4999を介してシステム4000及びコンテンツプロバイダ内の複数のコンポーネントのうちの任意の1つへ及び任意の1つから一方向及び/又は双方向に通信し得ることが理解されよう。コンテンツの例は、例えば、ビデオ、音楽、医療及びゲーム情報等を含む任意のメディア情報を含んでよい。
【0110】
(複数の)コンテンツサービスデバイス4900bは、メディア情報、デジタル情報及び/又は他のコンテンツを含むケーブルテレビプログラミングのようなコンテンツを受信する。コンテンツプロバイダの例は、任意のケーブル若しくは衛星テレビ又は無線機若しくはインターネットコンテンツプロバイダを含んでよい。提供した例は、実施形態を制限することを意味するものではない。
【0111】
実施形態において、プラットフォーム4900aは、1又は複数のナビゲーション機能を有するナビゲーションコントローラ4920から制御信号を受信してよい。ナビゲーションコントローラ4920のナビゲーション機能は、例えば、ユーザインタフェース4880と相互作用するために用られてよい。実施形態において、ナビゲーションコントローラ4920は、ユーザが空間(例えば、連続及び多次元の)データをコンピュータに入力することを可能にするコンピュータハードウェアコンポーネント(特にヒューマンインタフェースデバイス)であり得るポインティングデバイスであってよい。グラフィカルユーザインタフェース(GUI)及び、テレビ並びにモニタのような多くのシステムは、ユーザが身体的なジェスチャを利用してコンピュータ又はテレビを制御し、及びそこにデータを提供することを可能にする。
【0112】
ナビゲーションコントローラ4920のナビゲーション機能の動作は、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング又は他の視覚的な指標の動きによって、ディスプレイ(例えば、ディスプレイ4980)上で同調され得る。例えば、ソフトウェアアプリケーション4940の制御化で、ナビゲーションコントローラ4920上に位置付けられるナビゲーション機能は、ユーザインタフェース4880上に表示される仮想ナビゲーション機能にマッピングされ得る。実施形態において、ナビゲーションコントローラ4920は、別個のコンポーネントではなく、プラットフォーム4900a及び/又はディスプレイ4980に統合されてよい。しかしながら、実施形態は、当該要素又は本明細書で示された若しくは説明された文脈に限定されない。
【0113】
実施形態において、ドライバ(不図示)は、例えば、イネーブルになったときに、最初のブートアップの後にボタンのタッチでテレビのようなプラットフォーム4900aをユーザが即座にオン及びオフすることを可能にする技術を含んでよい。プログラムロジックは、プラットフォームが「オフ」にされるときに、プラットフォーム4900aが、メディアアダプタ又は他の(複数の)コンテンツサービスデバイス4900b若しくは(複数の)コンテンツ配信デバイス4900cにコンテンツをストリーミング配信することを可能にしてよい。加えて、チップセット4955は、例えば、5.1サラウンドサウンドオーディオ及び/又は高精細な7.1サラウンドサウンドオーディオをサポートするハードウェア及び/又はソフトウェアを含み得る。ドライバは、統合されたグラフィックスプラットフォーム用のグラフィックスドライバを含んでよい。実施形態において、グラフィックスドライバは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスグラフィックスカードを含んでよい。
【0114】
様々な実施形態において、システム4000内に示されるコンポーネントのうちの任意の1又は複数は、統合されてよい。例えば、プラットフォーム4900a及び(複数の)コンテンツサービスデバイス4900bが統合されてよく、若しくは、プラットフォーム4900a及び(複数の)コンテンツ配信デバイス4900cが統合されてよく、又は、プラットフォーム4900a、(複数の)コンテンツサービスデバイス4900b及び(複数の)コンテンツ配信デバイス4900cが統合されてよい。様々な実施形態において、プラットフォーム4900a及びディスプレイ4890は、統合されたユニットであってよい。例えば、ディスプレイ4980及び(複数の)コンテンツサービスデバイス4900bが統合されてよく、又は、ディスプレイ4980及び(複数の)コンテンツ配信デバイス4900cが統合されてよい。これらの例は、実施形態を制限することを意味するものではない。
【0115】
様々な実施形態において、システム4000は、無線システム、有線システム又は両方の組み合わせとして実装されてよい。無線システムとして実施される場合、システム4000は、1又は複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、制御ロジック等のような、無線共有媒体を介して通信するために適切なコンポーネント及びインタフェースを含んでよい。無線共有媒体の例は、REスペクトル等のような無線スペクトルの一部を含んでよい。有線システムとして実装される場合、システム4000は、I/Oアダプタ、対応する有線通信媒体を有するI/Oアダプタを接続する物理コネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラ等のような、有線通信媒体を介して通信するために適切なコンポーネント及びインタフェースを含んでよい。有線通信媒体の例は、ワイヤ、ケーブル、金属リード、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、ファイバオプティックス等を含み得る。
【0116】
プラットフォーム4900aは、情報を通信するべく、1又は複数の論理又は物理チャネルを確立し得る。情報は、メディア情報及び制御情報を含み得る。メディア情報は、ユーザ向けのコンテンツを表す任意のデータを指してよい。コンテンツの例は、例えば、音声会話からのデータ、ビデオ会議、ストリーミング、ビデオ、電子メール(eメール)メッセージ、ボイスメールメッセージ、英数字記号、グラフィックス、画像、ビデオ、テキスト等を含み得る。音声会話からのデータは、例えば、スピーチ情報、無音期間、背景雑音、快適ノイズ、トーン等であってよい。制御情報は、自動化されたシステム向けのコマンド、命令又は制御語を表す任意のデータを指してよい。例えば、制御情報は、システムを通じてメディア情報をルーティングするために、又は、予め定められた手法でメディア情報を処理することをノードに指示するために用いられてよい。しかしながら、実施形態は、要素又は図14に示され若しくは説明された文脈に限定されない。
【0117】
前述のように、システム4000は、様々な物理的なスタイル又はフォームファクタで具現化されてよい。図15は、システム4000が実装され得るスモールフォームファクタデバイス5000の実施形態を示す。実施形態において、例えば、デバイス5000は、無線機能を有するモバイルコンピューティングデバイスとして実装されてよい。モバイルコンピューティングデバイスは、処理システムと、例えば、1又は複数のバッテリのようなモバイル電源又はモバイル電力供給とを有する任意のデバイスを指してよい。
【0118】
上述のように、モバイルコンピューティングデバイスの例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、パーソナルデジタルアシスト(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレット又はスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイス等を含んでもよい。
【0119】
モバイルコンピューティングデバイスの例はまた、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣類コンピュータ及び他のウェアラブルコンピュータのように、人によって着用されるように構成されたコンピュータを含んでよい。実施形態において、例えば、モバイルコンピューティングデバイスは、音声通信及び/又はデータ通信だけでなく、コンピュータアプリケーションを実行することが可能なスマートフォンとして実装されてよい。いくつかの実施形態は、例として、スマートフォンとして実装されたモバイルコンピューティングデバイスを用いて説明されるかもしれないが、他の実施形態が、他の無線モバイルコンピューティングデバイスを同様に用いて実施される可能性があることが理解され得る。実施形態は、この文脈に限定されない。
【0120】
図示されたように、デバイス5000は、ディスプレイ5980、ナビゲーションコントローラ5920a、ユーザインタフェース5880、ハウジング5905、I/Oデバイス5920b及びアンテナ5998を含んでよい。ディスプレイ5980は、モバイルコンピューティングデバイス用の適切な情報を表示する任意の適切なディスプレイユニットを含んでよく、かつ、図14のディスプレイ4980と同じ又は同様のものであってよい。ナビゲーションコントローラ5920aは、ユーザインタフェース5880と相互作用することに用いられ得る1又は複数のナビゲーション機能を含んでよく、かつ、図14のナビゲーションコントローラ4920と同じ又は同様のものであってよい。I/Oデバイス5920bは、モバイルコンピューティングデバイスに情報を入力するための任意の適切なI/Oデバイスを含んでよい。I/Oデバイス5920bの例は、英数字キーボード、テンキー、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイク、スピーカ、音声認識デバイス及びソフトウェア等を含んでよい。情報はまた、マイクを介してデバイス5000に入力されてもよい。そのような情報は、音声認識デバイスによりデジタル化されてよい。実施形態は、この文脈に限定されない。
【0121】
より一般的に、本明細書で説明され及び図示されたコンピューティングデバイスの様々な要素は、様々なハードウェア要素、ソフトウェア要素又は両方の組み合わせを含んでよい。ハードウェア要素の例は、デバイス、論理デバイス、コンポーネント、プロセッサ、マイクロプロセッサ、回路、プロセッサコンポーネント、回路要素(例えば、トランジスタ、レジスタ、コンデンサ、インダクタ等)、集積回路、特定用途向け集積回路(ASIC)、プログラマブル論理デバイス(PLD)、デジタル信号プロセッサ(DSP)、フィールドプルグラマブルゲートアレイ(FPGA)、メモリユニット、ロジックゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、チップセット等を含んでよい。ソフトウェア要素の例は、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、ソフトウェア開発プログラム、マシンプログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、機能、方法、プロシージャ、ソフトウェアインタフェース、アプリケーションプログラムインタフェース(API)、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータコードセグメント、ワード、値、シンボル又はそれらの任意の組み合わせを含んでよい。しかしながら、実施形態がハードウェア要素及び/又はソフトウェア要素を用いて実装されるか否かを判断することは、所与の実装のために望まれるように、所望の計算レート、電力レベル、耐熱性、処理サイクル量、入力データレート、出力データレート、メモリリソース、データバス速度及び、他の設計又は性能制約のような任意の複数の要因によって変化し得る。
【0122】
いくつかの実施形態は、「一実施形態」又は「実施形態」という表現をそれらの派生語と共に用いて説明されてよい。これらの用語は、実施形態に関して説明した特定の機能、構造又は特性が少なくとも一実施形態に含まれることを意味する。本明細書の様々な個所における「一実施形態」という文言の出現は、必ずしも同じ実施形態を全て指すわけではない。さらに、いくつかの実施形態は、「結合され」及び「接続され」という表現をそれらの派生語と共に用いて説明されてよい。これらの用語は、必ずしも、互いの類義語として意図されたものではない。例えば、いくつかの実施形態は、2つ又はそれより多い要素が、互いに直接物理的又は電気的に接触していることを示すべく、「接続され」及び/又は「結合され」という用語を用いて説明されてよい。しかしながら、「結合され」という用語はまた、2つ又はそれより多い要素が互いに直接接触していないが、まだ依然として互いに協働又は相互作用することを意味してもよい。さらに、異なる実施形態からの態様又は要素が組み合わせられてよい。
【0123】
本開示の要約は、読み手が技術的開示の本質を迅速に把握することを可能にするために提供されることが強調される。これは、特許請求の範囲の意味又は範囲を解釈又は限定するために用いられないという理解に従って提出される。加えて、上記の詳細な説明では、様々な機能が開示を効率的にする目的で単一の実施形態においてグループ化されていることが分かるであろう。本開示の方法は、クレームされた実施形態が各請求項に明示的に記載されたものより多くの機能を必要とする意図を反映するものとして解釈されるべきでない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の全ての機能よりも少ないことにある。これにより、以下の特許請求の範囲は、別個の実施形態としてそれ自体に依存する各請求項とともに、本明細書において詳細な説明に組み込まれる。添付の請求項において、「including」及び「in which」という用語は、それぞれ「comprising」及び「wherein」という各用語に相当する平易な英語として用いられる。さらに、「第1」、「第2」、「第3」、「等」という用語は、単にラベルとして用いられ、それらの対象に数値的な要求を課すことが意図されるものではない。
【0124】
上記で説明されたものは、開示されたアーキテクチャの例を含む。それは、当然ながら、コンポーネント及び/又は方法論のすべての考えられる組み合わせを説明することはできないが、当業者は、多くのさらなる組み合わせ及び変形が可能であると認識し得る。従って、新規なアーキテクチャは、添付の請求項の主旨及び範囲内に収まるそのような全ての変更、修正及び変形を含むことが意図される。詳細な開示は、ここでさらなる実施形態に関する例を提供することなる。以下で提供される例は、限定することを意図するものではない。
【0125】
いくつかの例において、ビデオフレームを圧縮するデバイスは、プロセッサコンポーネントと、圧縮された差分フレームとして一連のフレームのうちの現フレームを圧縮する、プロセッサコンポーネントによる実行のためのフレームバッファコンプレッサとを含んでよく、圧縮された差分フレームは、現フレームと一連のフレームのうちの先行する隣接フレームとの間の少なくとも1つの画素の画素カラーにおける差を示す差分フレームを含んでよい。
【0126】
追加的又は代替的に、フレームバッファコンプレッサは、先行するフレームに先行する前フレームの欠如に基づいて、先行するフレームを含む圧縮されたフルフレームとして先行する隣接フレームを圧縮してよい。
【0127】
追加的又は代替的に、フレームバッファコンプレッサは、先行する隣接フレームと、一連のフレームのうちの、先行する隣接フレームに先行するフレームとの間の少なくとも1つの画素の画素カラーにおける差を示す別の差分フレームを含む別の圧縮された差分フレームとして先行する隣接フレームを圧縮する。
【0128】
追加的又は代替的に、デバイスは、現フレーム及び先行する隣接フレームのうちの一方の画素のカラー値を、現フレーム及び及び先行する隣接フレームの他方の対応する画素のカラー値から減算して、差分フレームを導出するフレーム減算器を含んでよく、コンプレッサーは、差分フレームを圧縮して、圧縮された差分フレームを生成してよい。
【0129】
追加的又は代替的に、フレームバッファコンプレッサは、ハフマン符号化を採用し、差分フレームを圧縮して、圧縮された差分フレームを生成してよい。
【0130】
追加的又は代替的に、デバイスは、動画データのフレームを少なくとも部分的に解凍して一連のフレームを生成する、プロセッサコンポーネントによる実行のための動画デコンプレッサを含んでよい。
【0131】
追加的又は代替的に、動画デコンプレッサは、MPEG(Motion Picture Experts Group)のバージョンを採用して、動画データのフレームを少なくとも部分的に解凍してよい。
【0132】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、フレームバッファコンプレッサは、動きベクトルの指標を圧縮してよい。
【0133】
追加的又は代替的に、デバイスは、ディスプレイ上に現フレームを視覚的に提示する表示装置と、表示装置に圧縮された差分フレームを伝達する、プロセッサコンポーネントによる実行のための取得コンポーネントとを含んでよい。
【0134】
追加的又は代替的に、表示装置は、別のプロセッサコンポーネントと、圧縮された差分フレームを解凍して現フレームを再構成する、別のプロセッサコンポーネントによる実行のためのディスプレイバッファデコンプレッサとを含んでよい。
【0135】
追加的又は代替的に、表示装置は、差分フレームの解凍の後に、差分フレームの画素のカラー値を最後に再構成されたフレームの画素のカラー値に追加して、現フレームを再構成するフレーム加算器を含んでよい。
【0136】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、表示装置は、動き補償を実行して、差分フレーム及び動きベクトルの指標から現フレームを再構成する、別のプロセッサコンポーネントによる実行のための動き補償コンポーネントを含んでよい。
【0137】
追加的又は代替的に、デバイスは、ディスプレイを含んでよい。
【0138】
いくつかの例において、ビデオフレームを視覚的に提示するデバイスは、プロセッサコンポーネントと、一連の圧縮されたフレームのうちの圧縮された差分フレームを解凍して、現フレームと先行する隣接フレームとの間の少なくとも1つの画素の画素カラーにおける差を示す差分フレームを生成し、現フレームの再構成を可能にする、プロセッサコンポーネントによる実行のためのディスプレイバッファデコンプレッサと、ディスプレイ上に現フレームを視覚的に提示する、プロセッサコンポーネントによる実行のためのプレゼンテーションコンポーネントとを含んでよい。
【0139】
追加的又は代替的に、ディスプレイバッファデコンプレッサは、ハフマン符号化を採用し、圧縮された差分フレームを解凍して差分フレームを生成してよい。
【0140】
追加的又は代替的に、デバイスは、差分フレームの画素のカラー値を最後に再構成されたフレームの画素のカラー値に追加して現フレームを再構成するフレーム加算器を含んでよい。
【0141】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、表示装置は、動き補償を実行して、差分フレーム及び動きベクトルの指標から現フレームを再構成する、プロセッサコンポーネントによる実行のための動き補償コンポーネントを含んでよい。
【0142】
追加的又は代替的に、ディスプレイバッファデコンプレッサは、一連の圧縮されたフレームのうちの圧縮されたフルフレームを解凍して、別のフレームを参照することなく画素のカラー値を示すフルフレームを生成し、プレゼンテーションコンポーネントは、フルフレームに先行する前フレームの欠如に基づいて、ディスプレイ上にフルフレームを視覚的に提示する。
【0143】
追加的又は代替的に、デバイスは、コンピューティングデバイスから一連の圧縮されたフレームを受信するインタフェースを含んでよい。
【0144】
追加的又は代替的に、デバイスは、ディスプレイを含んでよい。
【0145】
いくつかの例において、ビデオフレームを圧縮するためのコンピュータに実装される方法は、差分フレームを圧縮することにより一連のフレームのうちの現フレームを圧縮して、圧縮された差分フレームを生成する段階と、現フレームと一連のフレームのうちの先行する隣接フレームとのうちの一方の画素のカラー値を、現フレーム及び先行する隣接フレームのうちの他方の対応する画素のカラー値から減算して差分フレームを導出する段階とを含んでよい。
【0146】
追加的又は代替的に、方法は、先行するフレームに先行する前フレームの欠如に基づいて先行するフレームを含む圧縮されたフルフレームとして先行する隣接フレームを圧縮する段階を含んでよい。
【0147】
追加的又は代替的に、方法は、別の差分フレームを圧縮することにより先行する隣接フレームを圧縮する段階と、一連のフレームのうちの、先行する隣接フレームに先行するフレームから、先行する隣接フレームの画素のカラー値を減算して別の差分フレームを導出する段階とを含んでよい。
【0148】
追加的又は代替的に、方法は、ハフマン符号化を採用し、差分フレームを圧縮して、圧縮された差分フレームを生成する段階を含んでよい。
【0149】
追加的又は代替的に、方法は、MPEG(Motion Picture Experts Group)のバージョンを採用し、動画データのフレームを少なくとも部分的に解凍して、一連のフレームを生成する段階を含んでよい。
【0150】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、方法は、動きベクトルの指標を圧縮する段階を含んでよい。
【0151】
追加的又は代替的に、方法は、表示装置がディスプレイ上に現フレームを視覚的に提示することを可能にするべく、圧縮された差分フレームを表示装置に伝達する段階を含んでよい。
【0152】
追加的又は代替的に、方法は、圧縮された差分フレームを表示装置で解凍して現フレームを再構成する段階を含んでよい。
【0153】
追加的又は代替的に、方法は、差分フレームの解凍の後に、差分フレームの画素のカラー値を最後に再構成されたフレームの画素のカラー値に追加して現フレームを再構成する段階を含んでよい。
【0154】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、方法は、表示装置で動き補償を実行して、差分フレーム及び動きベクトルの指標から現フレームを再構成する段階を含んでよい。
【0155】
いくつかの例において、少なくとも1つの機械可読記憶媒体は、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスに、差分フレームを圧縮することにより一連のフレームのうちの現フレームを圧縮して、圧縮された差分フレームを生成する手順と、現フレーム及び一連のフレームのうちの先行する隣接フレームのうちの一方の画素のカラー値を、現フレーム及び先行する隣接フレームのうちの他方の対応する画素のカラー値から減算して差分フレームを導出する手順と実行させるための命令を含んでよい。
【0156】
追加的又は代替的に、コンピューティングデバイスに、先行するフレームに先行する前フレームの欠如に基づいて、先行するフレームを含む圧縮されたフルフレームとして先行する隣接フレームを圧縮する手順を実行させてよい。
【0157】
追加的又は代替的に、コンピューティングデバイスに、別の差分フレームを圧縮することにより先行する隣接フレームを圧縮する手順と、一連のフレームのうちの、先行する隣接フレームに先行するフレームから先行する隣接フレームの画素のカラー値を減算して別の差分フレームを導出する手順とを実行させてよい。
【0158】
追加的又は代替的に、コンピューティングデバイスに、ハフマン符号化を採用し、差分フレームを圧縮して、圧縮された差分フレームを生成する手順を実行させてよい。
【0159】
追加的又は代替的に、コンピューティングデバイスに、MPEG(Motion Picture Experts Group)のバージョンを採用し、動画データのフレームを少なくとも部分的に解凍して、一連のフレームを生成する手順を実行させてよい。
【0160】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、動きベクトルの指標を圧縮する手順をコンピューティングデバイスに実行させてよい。
【0161】
追加的又は代替的に、コンピューティングデバイスに、表示装置がディスプレイに現フレームを視覚的に提示することを可能にするべく、表示装置に圧縮された差分フレームを伝達する手順を実行させてよい。
【0162】
追加的又は代替的に、コンピューティングデバイスに、表示装置で圧縮された差分フレームを解凍して現フレームを再構成する手順を実行させてよい。
【0163】
追加的又は代替的に、コンピューティングデバイスに、差分フレームの解凍の後に差分フレームの画素のカラー値を最後に再構成されたフレームの画素のカラー値に追加して現フレームを再構成する手順を実行させてよい。
【0164】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、コンピューティングデバイスに、表示装置で動き補償を実行して差分フレーム及び動きベクトルの指標から現フレームを再構成する手順を実行させてよい。
【0165】
いくつかの例において、ビデオフレームを視覚的に提示するためのコンピュータに実装される方法は、一連の圧縮されたフレームのうちの圧縮された差分フレームを解凍して、現フレーム及び先行する隣接フレームの間の少なくとも1つの画素の画素カラーにおける差を示す差分フレームを生成し、現フレームの再構成を可能にする段階と、ディスプレイ上に現フレームを視覚的に提示する段階とを含んでよい。
【0166】
追加的又は代替的に、方法は、ハフマン符号化を採用し、圧縮された差分フレームを解凍して、差分フレームを生成する段階を含んでよい。
【0167】
追加的又は代替的に、方法は、最後に再構成されたフレームの画素のカラー値に差分フレームの画素のカラー値を追加して、現フレームを再構成する段階を含んでよい。
【0168】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、方法は、動き補償を実行して、差分フレーム及び動きベクトルの指標から現フレームを再構成する段階を含んでよい。
【0169】
追加的又は代替的に、方法は、一連の圧縮されたフレームのうちの圧縮されたフルフレームを解凍して、別のフレームを参照することなく画素のカラー値を示すフルフレームを生成する段階と、フルフレームに先行する前フレームの欠如に基づいて、ディスプレイ上にフルフレームを視覚的に提示する段階とを含んでよい。
【0170】
追加的又は代替的に、方法は、コンピューティングデバイスから一連の圧縮されたフレームを受信する段階を含んでよい。
【0171】
いくつかの例において、少なくとも1つの機械可読記憶媒体は、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスに、一連の圧縮されたフレームのうちの圧縮された差分フレームを解凍して、現フレーム及び先行する隣接フレームの間の少なくとも1つの画素の画素カラーにおける差を示す差分フレームを生成し、現フレームの再構成を可能にする手順と、ディスプレイ上に現フレームを視覚的に提示する手順とを実行させるための命令を含んでよい。
【0172】
追加的又は代替的に、コンピューティングデバイスに、ハフマン符号化を採用し、圧縮された差分フレームを解凍して、差分フレームを生成する手順を実行させてよい。
【0173】
追加的又は代替的に、コンピューティングデバイスに、最後に再構成されたフレームの画素のカラー値に差分フレームの画素のカラー値を追加して現フレームを再構成する手順を実行させてよい。
【0174】
追加的又は代替的に、差分フレームは、動きベクトルの指標を伴ってよく、動き補償を実行して、差分フレーム及び動きベクトルの指標から現フレームを再構成する手順をコンピューティングデバイスに実行させてよい。
【0175】
追加的又は代替的に、コンピューティングデバイスに、一連の圧縮されたフレームのうちの圧縮されたフルフレームを解凍して、別のフレームを参照することなく画素のカラー値を示すフルフレームを生成する手順と、フルフレームに先行する前フレームの欠如に基づいて、ディスプレイ上にフルフレームを視覚的に提示する手順とを実行させてよい。
【0176】
追加的又は代替的に、コンピューティングデバイスに、コンピューティングデバイスから一連の圧縮されたフレームを受信する手順を実行させてよい。
【0177】
いくつかの実施形態において、少なくとも1つの機械可読記憶媒体は、コンピューティングデバイスにより実行されるときに、コンピューティングデバイスに、上記のいずれかを実行させるための命令を含んでよい。
【0178】
いくつかの実施形態において、ビデオフレームを圧縮及び/又は視覚的に提示するデバイスは、上記のいずれかを実行する手段を含んでよい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15