グローバルウィーナーフィルタはいくつかのローカル画素情報に対する適応を失う可能性があることを考慮すると、適応的に選択された複数の画素に対してウィーナーフィルタをローカルに適用し、フィルタリングのための複数の画素の選択の助けとなるヒストグラム分割スキームを用いることができる。しかし、ウィーナーフィルタは、ヒストグラムビン内における一定の質の損失を処理する能力が欠如している可能性がある。そこで、オフセットを有する、変更が加えられたウィーナーフィルタが、ヒストグラムの複数のビンを適応的にフィルタリングするために用いられてもよい。
ビデオコーデックシステムで復元された画像の質は、複数の復元された画素を、ヒストグラム分割によって複数の異なるヒストグラムビンに分類し、次に、複数の異なるビンに対して複数の異なるフィルタを適用することにより、改良され得る。ヒストグラム分割は、ヒストグラムをM個のビンに均等に分割する、または複数のヒストグラム特性に基づいて、ヒストグラムをN個のビンに適応的に分割することにより、実行されてもよい。例えば、画素値範囲が0−255の場合、ヒストグラムをM個のビンに均等に分割することは、各ビンが256/M画素値の間隔を有することを意味する。ここで、M及びNは、予め定められ、固定された正の整数値またはエンコーダ側で適応的に生成された値であってもよく、符号化されたビットストリームを介してデコーダに送信されてもよい。複数のヒストグラム特性は、画素値の複数の分配を伴う。ヒストグラム分割及び/または区画化の複数の方法を紹介する文書が多数公開されている。
ビデオコーデックシステムで復元された画像の質は、複数の利用可能なヒストグラム分割スキームを適用し、エンコーダ側でレート歪み最適化(RDO)基準に基づいてフィルタリングのための最良の分割スキームを決定し、次に決定結果を示すフラグをデコーダに送信することにより、改良され得る。ビデオコーデックシステムで復元された画像の質は、RDO基準に基づいて分割されたヒストグラムの複数のビンに複数のフィルタを適応的に適用し、次に符号化されたビットストリームを介して、フィルタリングされるべきヒストグラムの複数のビンを示す複数のフラグを送信することにより、改良され得る。
適応ウィーナーフィルタが、ヒストグラムビンのためのオフセットとともに適用されてもよい。複数のウィーナーフィルタ係数及びヒストグラムビンのためのオフセット値は、エンコーダ側で適応的に生成され、次に複数の係数及びオフセット値は、符号化されたビットストリームを介してデコーダに送信されてもよい。オフセットを有するウィーナーフィルタは、ヒストグラムビン内の複数の復元された画素P(x,y)に適用され、ビンについてフィルタリングされた画素値P'(x,y)を得る。次に、複数のウィーナーフィルタ係数及びオフセット値は、図1に示されるように、エンコーダ側でフィルタリングされた画素値P'(x,y)及び元の入力画素値Q(x,y)間の合計絶対差(SSD)を最小化し、次に複数の係数及びオフセット値が、符号化されたビットストリームを介してデコーダに送信されることにより、計算されてもよい。いくつかの実施形態では、オフセット値は、強制的にゼロにされてもよく、複数のウィーナーフィルタ係数のみがエンコーダ側で生成され、次にデコーダに送信される必要がある。
いくつかの実施形態では、ウィーナーフィルタを適用することなく、オフセット値のみがヒストグラムビンに適用される。この場合、オフセット値のみが、エンコーダ側でヒストグラムビンについて生成され、次にデコーダに送信される必要がある。
いくつかの実施形態では、複数のウィーナーフィルタ係数のいくつかは、送信帯域幅をセーブするべく強制的にゼロとされてもよく、これらの複数の係数は、デコーダに送信されなくてもよい。
ビデオコーデックシステムで復元された画像の質は、グローバルフィルタリングまたはエンコーダ側におけるRDO基準に基づくヒストグラム分割ベースのローカルフィルタリングを適応的に選択し、次に選択結果を示すフラグをデコーダに送信することにより、改良され得る。グローバルフィルタリングは、実際には、ヒストグラム分割ベースのローカルフィルタリングの特別な場合である。ヒストグラム全体が単一ビン(分割なし)とみなされる場合、ローカルフィルタリングは、実際には、画像内の複数の画素の全てに対するグローバルフィルタリングである。図1では、この場合に「分割しない」ために、1のヒストグラム分割方法が設定可能である。
ビデオコーデックシステムで復元された画像の質は、フィルタリングされるべき(又はされるべきでない)フレームを、エンコーダ側でRDO基準に基づいて適応的に決定し、次に決定結果を示すフラグをデコーダに送信することにより、改良され得る。
ビデオコーデックでは、適応ウィーナーフィルタは、2つの入力画像又は画像領域間の違い、及びデコーダ側に送信される必要がある複数のフィルタ係数を最小化することを目的とする。Q(x,y)は、位置(x,y)におけるエンコーダ入力画素の値を意味し、P(x,y)は、位置(x,y)における復元されたフィルタリング前の画素の値を意味するものとする。オフセットを有する適応ウィーナーフィルタリングは、式(1)に示すように、P(x,y)に対して実行され、フィルタリングの後の画素値P'(x,y)を得る。
(1) ここで、Cm,nは、複数の適応フィルタリング係数を意味し、オフセットは、対応するヒストグラムの複数のビンに加算されたオフセット値を意味する。M0,M1,N0,N1は、ウィーナーフィルタタップの数を制御する複数のパラメータである。以下のリストの複数の変数M0,M1,N0,N1で複数の異なる設定をすることにより、フィルタは、対称フィルタまたは非対称フィルタ、1−Dフィルタまたは2−Dフィルタであってもよい。複数のパラメータM0,M1,N0,N1は、予め定められた複数の固定値に設定されてもよい。これらの複数の固定値は、エンコーダ及びデコーダの両方が複数の同一の値を用いることができるように、ビデオ符号化規格の仕様において提示され得る。代わりに、M0,M1,N0,N1は、いくつかの予め定められた候補値を有してもよい。次に、エンコーダは、RDO基準に基づいて最良の候補を選択し、次に、用いられる候補を示すフラグをデコーダに送信することができる。
複数の係数Cm,n及びオフセット値Offsetは、エンコーダ側で適応的に生成されてもよく、次に、復号のために、複数のビットストリームに符号化されてもよい。Cm,n及びOffset値を生成する1つの方法は、Q(x,y)及びP'(x,y)間における複数の歪みの二乗の合計を最小化することである。
複数のフィルタタップの微分を、以下に示す。簡単な説明のために、2DフィルタタップCmnを1DフィルタタップCiにマッピングし、2D画素インデックス(x,y)を1D画素インデックス(i)にマッピングすることができるものとする。入力画素Q(k)と、サイズL+1かつ重量Ciで、フィルタサポート{S}で復元されたマッピングされた画素P(k)からなるウィーナーフィルタの出力P'(k)とを考える。適応(ウィーナー)フィルタ関数は、以下の通りである。
[2] 入力画素Q(i)及びウィーナーフィルタリングされた画素P'(i)の中の残留信号は、以下の通り定義される。
[3] ウィーナーフィルタは、平均二乗誤差を複数のフィルタタップ{Ci}で最小化することにより最適となる。
[4] ここで、E[]は、一連の複数の画像、画像又は画像内部のいくつかの領域からの複数の画素であり得る関心の複数の画素に対する残留信号の二乗の予測値である。
[5] E[errork2]の最小値を導くために、導関数がCiに関してとられる。複数のフィルタタップは、導関数をゼロと等しくすることにより、導かれることができる。
[6] 自己相関関数P(k)は、以下の式[7]で示され、P(k)及びQ(k)の中の相互相関関数は、以下の式[8]で示される。
[7]
[8] 式[5]は、行列形式で書き直すことができる。
[9] このように、ウィーナーフィルタタップセット{C}は、行列形式で導かれることができる。
[10] ここで、RPP−1は、式[9]の自己相関行列の逆行列である。Ciは、取得後、Cmnに再びマッピングされることができる。次に、オフセットは、次式により計算されることができ、ここで、Nはヒストグラムビン内の複数の画素の数である。
式[7]及び[10]の複数の自己相関関数は、ビデオデコーダ側で集められることができるが、式[8]及び[10]の相互相関は、入力{x}がビデオエンコーダ側のみで得られるという要件により、ビデオエンコーダ側で導かれなければならない。このように、式[10]で導かれた複数のフィルタタップを、ビデオエンコーダからビデオデコーダに送信する必要がある。
ビデオデコーダは、相互相関関数及び復号された非ブロック化されたデータ{y}を自ら受信することにより、複数のフィルタタップを導くことができるため、いくつかの場合には、導かれた複数のフィルタタップの代わりに、相互相関関数を送信すれば十分である。
いくつかの場合には、画像境界に近い複数の画素を省略することによって符号化効率をさらに改善するために、より正確な統計情報が得られる場合がある。式[10]の右側は、この省略の表現である。
複数のフィルタタップは、それぞれ、輝度あたり及び彩度チャネルあたり、導かれることができる。よりよい符号化効率は、彩度画素のみにより導かれた複数のフィルタタップに基づいて、彩度画像に対して達成される。いくつかのシナリオは、Cb及びCrのチャネルの両方に共有される1の彩度テーブルを用い、または、Cb及びCrのそれぞれに対する2の個別のテーブルを用いることができる。
このアプローチは、スケーラブルであり、かつ、複数の非ブロック化された画像を含み、適応フィルタリングされた画像に加え、動き予測のフェーズでリファレンス画像として機能するように、拡張されることができる。これにより、非ブロック化された画像は、常にビデオデコーダ側でアクセス可能であるため、追加の情報がビデオエンコーダ側から送信されることなく、動き予測の正確性を改善するために、複数のリファレンス画像の量が倍増する。
図4は、図2の遅延モジュールが、非ブロック化フィルタの後、適応フィルタの前に配置されることを示す。遅延のモジュールにより、複数の適応フィルタタップの生成が、バッファリストの複数のリファレンス画像に対する現在の入力画像に基づく各画像時間あたりで、再計算されることができる。このように、ビデオエンコーダは、各リファレンス画像に対する複数のフィルタタップを更新する。同様に、図5は、図3における遅延モジュールの再位置を示す。
図6は、入力ビデオ及び動き補償画像の中の最小平均二乗誤差の解決を得るために、動き補償画像の出力に追加された統計的特徴コレクタ及び適応フィルタの複数のモジュールを示す。これにより、いくつかの場合には、よりよい符号化効率が向上する。動き補償モジュール後のこの適応フィルタは、図2−5に示されるように、動き予測モジュール前の適応フィルタから独立している。このように、この適応フィルタは、図2−5の先頭でアドオンとして機能することもできる。
いくつかのシナリオでは、適応フィルタの符号化効率は、非ブロック化フィルタのみを適用する場合よりも良い。つまり、適応フィルタを適用して、コア符号化ループから非ブロック化フィルタを取り除くことができる。
グローバルウィーナーフィルタで画像をフィルタリングする場合、複数のフィルタ係数は、画像内の全ての画素により、学習する。この場合、フィルタリングにより、いくつかの画素の複数の歪みは減少するが、他の複数の画素の複数の歪みは増加する。このため、画像内の複数の画素の一部にウィーナーフィルタリングを実行するだけで、より多くの符号化利得が得られる。
1つの方法は、ヒストグラム分割により、複数の画素を複数のグループに分類し、次に、適応的に(RDO基準に応じて)各ヒストグラムビンに対してウィーナーフィルタリングを実行することである。ヒストグラム分割は、複数の画素値を複数のビンに分割し、ここで、1のビンは、その値がそのビンにあてはまる複数の画素のグループである。ヒストグラムは、(統一的な又は非統一的な複数の方法を含む任意の種類のヒストグラム分割方法で)N個のビンに分割されると仮定する。次に、エンコーダは、フィルタリングする複数のビンを決定し、複数のフィルタリングパラメータ、すなわち、フィルタリングされた複数のビンとなり得る複数のビンに対する複数の係数Cm,n及びOffsetを生成し、次に、関連情報をデコーダに送信することができる。
複数のヒストグラム分割方法を適用する場合、エンコーダは、現在の画像をフィルタするために用いられるRDO基準を決定し、次に決定結果をデコーダに送信することができる。エンコーダは、マルチタスク符号化(1の分割方法に対して1のパス)を行い、各パスに対するレート歪み(RD)コストを計算することができる。次に、最小RDコストのパスが、最後の符号化のために用いられる。
図1を参照すると、位置(x,y)における復元されたフィルタリング前の画素値P(x,y)は、ヒストグラム分割方法12a−kに与えられてもよい。この場合、複数のヒストグラム分割方法が適用され、それぞれが値に対して動作する。これにより、複数の適応フィルタ決定14a−14kに提供される複数の出力が生成される。位置(x,y)におけるエンコーダ入力画素値Q(x,y)も、複数の適応フィルタ決定14a−kに適用される。これらの複数の入力に基づいて、複数の適応フィルタ決定は、次に所望の結果を生成するヒストグラム分割方法決定16に、値を出力する。適応フィルタ決定は、オフセットを有する適応ウィーナーフィルタを含む。
エンコーダ側と対照的にデコーダに関する図2を参照すると、値P(x,y)は、受信された方法によるヒストグラム分割ブロック18に適用される。複数のヒストグラム分割方法が定義される場合、デコーダは、エンコーダに選択された分割方法を示すフラグを、エンコーダから受信する。方法フラグを受信した後、デコーダは、P(x,y)に対して、受信された方法によりヒストグラム分割を行うことができる。その出力は、フィルタリングの後の画素値P'(x,y)を出力するために、受信された複数のフィルタパラメータを有する、ヒストグラムの複数のビンに対する適応フィルタ20に提供される。
図3は、システム700の実施形態を示す。複数の実施形態では、システム700は、メディアシステムであってもよいが、システム700は、この内容に限定されない。例えば、システム700は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレットまたはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイスなどに組み込まれてもよい。
複数の実施形態では、システム700は、ディスプレイ720に連結されるプラットフォーム702を備える。プラットフォーム702は、コンテンツサービスデバイス730またはコンテンツ配信デバイス740または他の同様の複数のコンテンツソースのようなコンテンツデバイスからコンテンツを受信してもよい。1つまたは複数のナビゲーション機能を備えるナビゲーションコントローラ750は、例えば、プラットフォーム702及び/またはディスプレイ720と情報をやりとりするために用いられてもよい。これらの複数のコンポーネントのそれぞれは、以下により詳細に説明される。
複数の実施形態では、プラットフォーム702は、チップセット705、プロセッサ710、メモリ712、ストレージ714、グラフィクスサブシステム715、複数のアプリケーション716、全地球測位システム(GPS)721、カメラ723及び/または無線718の任意の組み合わせを備えてもよい。チップセット705は、プロセッサ710、メモリ712、ストレージ714、グラフィクスサブシステム715、複数のアプリケーション716及び/または無線718の中の相互通信を提供してもよい。例えば、チップセット705は、ストレージ714との相互通信を提供可能なストレージアダプタ(不図示)を含んでもよい。
さらに、プラットフォーム702は、オペレーティングシステム770を含んでもよい。プロセッサへのインターフェース772は、オペレーティングシステム及びプロセッサ710のインターフェースであってもよい。
ファームウェア790は、ブートシーケンスのような機能を実装するために提供されてもよい。ファームウェアがプラットフォーム702外から更新されることを可能にする更新モジュールが、提供されてもよい。例えば、更新モジュールは、複数の更新が必要な場合の決定を容易にするべく、更新の試みが真正なものであるか否かを決定し、ファームウェア790の最新の更新を特定するコードを含んでもよい。
いくつかの実施形態では、プラットフォーム702は、外部電源により電源供給されてもよい。いくつかの場合には、プラットフォーム702は、外部電源に適応しない複数の実施形態では、または、バッテリ供給電力又は外部供給電力のいずれかを許容する複数の実施形態では、電源として機能する内部バッテリ780をさらに含んでもよい。
図1及び2に示される複数のシーケンスは、少しの例を説明するために、ストレージ714内に、もしくはプロセッサ710またはグラフィクスサブシステム715内のメモリ内にこれらを組み込むことにより、ソフトウェア及びファームウェアの実施形態のかたちで実装されてもよい。一実施形態では、グラフィクスサブシステム715は、グラフィクスプロセッシングユニットを含んでもよく、プロセッサ710は、中央処理装置であってもよい。
プロセッサ710は、複合命令セットコンピュータ(CISC)または縮小命令セットコンピュータ(RISC)の複数のプロセッサ、複数のプロセッサ、マルチコアもしくは任意の他のマイクロプロセッサまたは中央処理装置(CPU)と互換性を有するx86命令セットとして実装されてもよい。複数の実施形態では、プロセッサ710は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどを備えてもよい。
メモリ712は、限定されるものではないが、ランダムアクセスメモリ(RAM)、ダイナミックランダムアクセスメモリ(DRAM)またはスタティックRAM(SRAM)のような揮発性メモリデバイスとして実装されてもよい。
ストレージ714は、限定されるものではないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部ストレージデバイス、外付けストレージデバイス、フラッシュメモリ、バッテリバックアップSDRAM (シンクロナスDRAM)及び/またはネットワークアクセス可能ストレージデバイスのような不揮発性記憶デバイスとして実装されてもよい。複数の実施形態では、例えば、複数のハードドライブが含まれる場合には、ストレージ714は、重要なデジタルメディアのために記憶性能が強化された保護を向上させる技術を備えてもよい。
グラフィクスサブシステム715は、表示のためのスチルまたはビデオのような複数の画像の処理を実行してもよい。グラフィクスサブシステム715は、例えば、グラフィクスプロセッシングユニット(GPU)またはビジュアルプロセッシングユニット(VPU)であってもよい。アナログまたはデジタルインターフェースは、グラフィクスサブシステム715及びディスプレイ720を通信可能に連結するために用いられてもよい。例えば、インターフェースは、高解像度マルチメディアインターフェース、DisplayPort、ワイヤレスHDMI(登録商標)及び/またはワイヤレスHDに準拠する複数の技術のいずれかであってもよい。グラフィクスサブシステム715は、プロセッサ710またはチップセット705に集積されることができる。グラフィクスサブシステム715は、チップセット705と通信可能に連結されるスタンドアロンのカードとされることができる。
本明細書に記載された複数のグラフィクス及び/またはビデオ処理技術は、様々な複数のハードウェアキテクチャのかたちで実装されてもよい。例えば、グラフィクス及び/またはビデオ機能性は、チップセット内に集積されてもよい。代わりに、個別のグラフィクス及び/またはビデオプロセッサが、用いられてもよい。さらに他の実施形態として、グラフィクス及び/またはビデオ複数の機能は、マルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。さらなる実施形態では、複数の機能は、家庭用電子機器のかたちで実装されてもよい。
無線718は、様々な適した複数の無線通信技術を用いて、複数の信号の送受信が可能な1つまたは複数の無線を含んでもよい。そのような複数の技術は、1つまたは複数の無線ネットワークを介した複数の通信を伴ってもよい。例示的な複数の無線ネットワークは、(限定されるものではないが)複数のワイヤレスローカルエリアネットワーク(WLAN)、複数のワイヤレスパーソナルエリアネットワーク(WPAN)、複数のワイヤレスメトロポリタンエリアネットワーク(WMAN)、複数のセルラーネットワーク及び複数の衛星ネットワークを含む。そのような複数のネットワークを介した通信では、無線718は、任意のバージョンの1つまたは複数の適用し得る規格に従って、動作してもよい。
複数の実施形態では、ディスプレイ720は、任意のテレビ型モニタまたはディスプレイを備えてもよい。ディスプレイ720は、例えば、コンピュータディスプレイスクリーン、タッチスクリーンディスプレイ、ビデオモニタ、テレビ型デバイス及び/またはテレビを備えてもよい。ディスプレイ720は、デジタル及び/またはアナログであってもよい。複数の実施形態では、ディスプレイ720は、ホログラフィックディスプレイであってもよい。また、ディスプレイ720は、視覚的なビデオを受信し得る透明な面であってもよい。そのような複数のビデオは、様々な形の情報、複数の画像及び/または複数のオブジェクトを伝送してもよい。例えば、そのような複数のビデオは、モバイル拡張現実(MAR)アプリケーションのための視覚的オーバーレイであってもよい。1つまたは複数のソフトウェアアプリケーション716の制御下で、プラットフォーム702は、ディスプレイ720上にユーザインターフェース722を表示してもよい。
複数の実施形態では、コンテンツサービスデバイス730は、任意の国内、国際及び/または独立したサービスにより設けられ、そのため、例えば、インターネットを介してプラットフォーム702にアクセス可能であってもよい。コンテンツサービスデバイス730は、プラットフォーム702及び/またはディスプレイ720と連結されてもよい。プラットフォーム702及び/またはコンテンツサービスデバイス730は、ネットワーク760との間でメディア情報の通信(例えば、送信及び/または受信)を行うために、ネットワーク760と連結されてもよい。コンテンツ配信デバイス740も、プラットフォーム702及び/またはディスプレイ720と連結されてもよい。
複数の実施形態では、コンテンツサービスデバイス730は、デジタル情報及び/またはコンテンツを伝達可能なケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、インターネット対応デバイスまたは電化製品、ならびに、ネットワーク760を介してまたは直接、複数のコンテンツプロバイダとプラットフォーム702及びディスプレイ720との間で、一方向または双方向にコンテンツを通信可能な任意の他の同様のデバイスを備えてもよい。コンテンツは、システム700の複数のコンポーネント及びコンテンツプロバイダのいずれか1つとの間で、ネットワーク760を介して一方向及び/または双方向通信を行ってもよいことが理解されよう。コンテンツの複数の例は、例えば、ビデオ、音楽、医療及びゲーム情報などを含む任意のメディア情報を含んでもよい。
コンテンツサービスデバイス730は、メディア情報、デジタル情報及び/または他のコンテンツを含むケーブルテレビプログラムなどのコンテンツを受信する。複数のコンテンツプロバイダの複数の例は、任意のケーブルまたは衛星テレビまたはラジオまたはインターネットの複数のコンテンツプロバイダを含んでもよい。提供された複数の例は、本発明の複数の実施形態を限定することを意味するものではない。
複数の実施形態では、プラットフォーム702は、1つまたは複数のナビゲーション機能を有するナビゲーションコントローラ750から複数の制御信号を受信してもよい。コントローラ750の複数のナビゲーション機能は、例えば、ユーザインターフェース722と情報をやりとりするために用いられてもよい。複数の実施形態では、ナビゲーションコントローラ750は、ユーザによる空間的(例えば、連続的かつ多次元)データのコンピュータへの入力を可能にするコンピュータハードウェアコンポーネント(具体的には、ヒューマンインターフェースデバイス)であり得るポインティングデバイスであってもよい。複数のグラフィカルユーザインタフェース(GUI)ならびに複数のテレビ及び複数のモニタのような多数のシステムにより、ユーザは、複数の身体的ジェスチャを用いて、コンピュータまたはテレビに対し、データを制御及び提供することができる。
コントローラ750の複数のナビゲーション機能の複数の動きは、ポインタ、カーソル、焦点リングまたはディスプレイ上に表示される他の複数の視覚的インジケータの複数の動きにより、ディスプレイ(例えば、ディスプレイ720)上に反映されてもよい。例えば、複数のソフトウェアアプリケーション716の制御下で、ナビゲーションコントローラ750上に位置する複数のナビゲーション機能は、例えば、ユーザインターフェース722上に表示される仮想的な複数のナビゲーション機能にマッピングされてもよい。複数の実施形態では、コントローラ750は、別個のコンポーネントではなく、プラットフォーム702及び/またはディスプレイ720に一体化されてもよい。複数の実施形態は、しかしながら、本明細書に示されまたは記載された複数の要素に、またはその内容の中で限定されるものではない。
複数の実施形態では、複数のドライバ(不図示)は、例えば、可能な場合には、複数のユーザが、初期起動後、ボタンをタッチすることにより、テレビのようにプラットフォーム702の電源を即座にオン及びオフすることを可能とする技術を備えてもよい。プログラムロジックによれば、プラットフォーム702は、プラットフォームが「オフ」にされる場合に、複数の媒体アダプタまたは他のコンテンツサービスデバイス730もしくはコンテンツ配信デバイス740に対して、コンテンツをストリーミングしてもよい。さらに、チップセット705は、例えば、5.1サラウンドサウンドオーディオ及び/または高解像度7.1サラウンドサウンドオーディオに対するハードウェア及び/またはソフトウェアサポートを備えてもよい。複数のドライバは、複数の集積グラフィクスプラットフォームのためのグラフィクスドライバを含んでもよい。複数の実施形態では、グラフィクスドライバは、ペリフェラルコンポーネントインターコネクト(PCI)エクスプレスグラフィクスカードを備えてもよい。
様々な実施形態において、システム700に示される複数のコンポーネントの中のいずれか1つまたは複数は、一体化されてもよい。例えば、プラットフォーム702及びコンテンツサービスデバイス730は、一体化されてもよく、または、プラットフォーム702及びコンテンツ配信デバイス740は、一体化されてもよく、または、例えば、プラットフォーム702、コンテンツサービスデバイス730及びコンテンツ配信デバイス740は、一体化されてもよい。様々な実施形態において、プラットフォーム702及びディスプレイ720は、一体化されたユニットであってもよい。例えば、ディスプレイ720及びコンテンツサービスデバイス730は、一体化されてもよく、または、ディスプレイ720及びコンテンツ配信デバイス740は、一体化されてもよい。これらの複数の例は、本発明を限定することを意味するものではない。
様々な実施形態において、システム700は、無線システム、有線システムまたは両方の組み合わせとして実装されてもよい。無線システムとして実装される場合、システム700は、1つまたは複数のアンテナ、送信機、受信機、トランシーバ、増幅器、フィルタ、制御ロジックなどのような無線共有媒体経由の通信に適した複数のコンポーネント及び複数のインターフェースを含んでもよい。無線共有媒体の例は、RFスペクトルなどのような無線スペクトルの一部を含んでもよい。有線システムとして実装される場合、システム700は、複数の入出力(I/O)アダプタ、I/Oアダプタを対応する有線通信媒体に接続する複数の物理コネクタ、ネットワークインタフェースカード(NIC)、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどのような有線通信媒体経由の通信に適した複数のコンポーネント及び複数のインターフェースを含んでもよい。有線通信媒体の複数の例は、ワイヤ、ケーブル、複数の金属リード線、プリント回路基板(PCB)、バックプレーン、スイッチファブリック、半導体材料、ツイストペアワイヤ、同軸ケーブル、光ファイバなどを含んでもよい。
プラットフォーム702は、情報を通信するために、1つまたは複数の論理チャネルまたは物理チャネルを確立してもよい。情報は、メディア情報及び制御情報を含んでもよい。メディア情報は、ユーザ向けコンテンツを表す任意のデータを指してもよい。コンテンツの複数の例は、例えば、音声会話、ビデオ会議、ストリーミングビデオ、電子メール(「eメール」)メッセージ、ボイスメールメッセージ、複数の英数字記号、グラフィクス、画像、ビデオ、テキストなどからのデータを含んでもよい。音声会話からのデータは、例えば、発話情報、複数の沈黙時間、バックグラウンドノイズ、コンフォートノイズ、複数のトーンなどであってもよい。制御情報は、自動化システム向けの複数のコマンド、命令または制御語を表す任意のデータを指してもよい。例えば、制御情報は、システムを介してメディア情報をルーティングし、または予め定められた態様でのメディア情報の処理をノードに命令するために用いられてもよい。複数の実施形態は、しかしながら、図3に示されまたは記載された複数の要素に、またはその内容の中で限定されるものではない。
上述のように、システム700は、様々な複数の物理的スタイルまたは複数のフォームファクタで具現化されてもよい。図4は、システム700が具現化され得る小さいフォームファクタのデバイス800の複数の実施形態を示す。複数の実施形態では、例えば、デバイス800は、複数の無線機能を有するモバイルコンピューティングデバイスとして実装されてもよい。モバイルコンピューティングデバイスは、処理システム及び、例えば、1つまたは複数のバッテリなどのモバイル電源または電力供給を有する任意のデバイスを指してもよい。
上述のように、モバイルコンピューティングデバイスの複数の例は、パーソナルコンピュータ(PC)、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末(PDA)、携帯電話、携帯電話/PDAの組み合わせ、テレビ、スマートデバイス(例えば、スマートフォン、スマートタブレットまたはスマートテレビ)、モバイルインターネットデバイス(MID)、メッセージングデバイス、データ通信デバイスなどを含んでもよい。
モバイルコンピューティングデバイスの複数の例は、リストコンピュータ、フィンガーコンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、複数の靴コンピュータ、複数の衣服コンピュータ及び他の複数のウェアラブルコンピュータのような、人に装着されるよう構成される複数のコンピュータを、さらに含んでもよい。複数の実施形態では、例えば、モバイルコンピューティングデバイスは、複数のコンピュータアプリケーション、複数の音声通信及び/または複数のデータ通信を実行可能なスマートフォンとして実装されてもよい。いくつかの実施形態は、例として、スマートフォンとして実装されるモバイルコンピューティングデバイスにより説明されてもよいが、複数の他の実施形態は、なお他の複数のワイヤレスモバイルコンピューティングデバイスを用いて実装されてもよいことが理解されよう。複数の実施形態は、この内容に限定されない。
図4に示されるように、デバイス800は、ハウジング802、ディスプレイ804、入出力(I/O)デバイス806及びアンテナ808を備えてもよい。デバイス800は、複数のナビゲーション機能812をさらに備えてもよい。ディスプレイ804は、モバイルコンピューティングデバイスに適した情報を表示するために、任意の適したディスプレイユニットを備えてもよい。I/Oデバイス806は、モバイルコンピューティングデバイスに情報を入力するために、任意の適したI/Oデバイスを備えてもよい。I/Oデバイス806の複数の例は、英数字キーボード、テンキーパッド、タッチパッド、複数の入力キー、複数のボタン、複数のスイッチ、複数のロッカースイッチ、複数のマイク、複数のスピーカ、音声認識デバイス及びソフトウェアなどを含んでもよい。情報は、さらにマイクを用いて、デバイス800に入力されてもよい。そのような情報は、音声認識デバイスによりデジタル化されてもよい。複数の実施形態は、この内容に限定されない。
様々な複数の実施形態は、複数のハードウェア要素、複数のソフトウェア要素または両方の組み合わせを用いて実装されてもよい。複数のハードウェア要素の複数の例は、複数のプロセッサ、複数のマイクロプロセッサ、複数の回路、複数の回路要素(例えば、複数のトランジスタ、複数の抵抗、複数のキャパシタ、複数のインダクタなど)、複数の集積回路、複数の特定用途向け集積回路(ASIC)、複数のプログラム式論理デバイス(PLD)、複数のデジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、複数の論理ゲート、複数のレジスタ、半導体デバイス、複数のチップ、複数のマイクロチップ、複数のチップセットなどを含んでもよい。ソフトウェアの複数の例は、複数のソフトウェアコンポーネント、複数のプログラム、複数のアプリケーション、複数のコンピュータプログラム、複数のアプリケーションプログラム、複数のシステムプログラム、複数の機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、複数のソフトウェアモジュール、複数のルーチン、複数のサブルーチン、複数の機能、複数の方法、複数のプロシージャ、複数のソフトウェアインターフェース、複数のアプリケーション・プログラム・インターフェース(API)、複数の命令セット、演算コード、コンピュータコード、複数のコードセグメント、複数のコンピュータ・コード・セグメント、複数の単語、複数の値、複数の記号またはこれらの任意の組み合わせを含んでもよい。実施形態が複数のハードウェア要素及び/または複数のソフトウェア要素を用いて実装されるか否かの決定は、望ましい演算速度、複数の電力レベル、複数の耐熱性、処理サイクル予算、複数の入力データレート、複数の出力データレート、複数のメモリリソース、複数のデータバススピード及び他の設計または複数の性能制約のような任意の数の要因に従って変化してもよい。
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々なロジックを表し、機械によって読み取られた場合に、本明細書に記載された複数の技術を実行するためのロジックを機械に作成させる、機械可読媒体に記憶された複数の表現命令によって実装されてもよい。「IPコア」として知られるそのような複数の表現は、有形の機械可読媒体に記憶され、様々な複数の顧客または実際にロジックまたはプロセッサを作成する複数の製造機械に読み込まれるべく、複数の製造設備に供給されてもよい。
様々な複数の実施形態は、複数のハードウェア要素、複数のソフトウェア要素または両方の組み合わせを用いて実装されてもよい。複数のハードウェア要素の複数の例は、複数のプロセッサ、複数のマイクロプロセッサ、複数の回路、複数の回路要素(例えば、複数のトランジスタ、複数の抵抗、複数のキャパシタ、複数のインダクタなど)、複数の集積回路、複数の特定用途向け集積回路(ASIC)、複数のプログラム式論理デバイス(PLD)、複数のデジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、複数の論理ゲート、複数のレジスタ、半導体デバイス、複数のチップ、複数のマイクロチップ、複数のチップセットなどを含んでもよい。ソフトウェアの複数の例は、複数のソフトウェアコンポーネント、複数のプログラム、複数のアプリケーション、複数のコンピュータプログラム、複数のアプリケーションプログラム、複数のシステムプログラム、複数の機械プログラム、オペレーティングシステムソフトウェア、ミドルウェア、ファームウェア、複数のソフトウェアモジュール、複数のルーチン、複数のサブルーチン、複数の機能、複数の方法、複数のプロシージャ、複数のソフトウェアインターフェース、複数のアプリケーション・プログラム・インターフェース(API)、複数の命令セット、演算コード、コンピュータコード、複数のコードセグメント、複数のコンピュータ・コード・セグメント、複数の単語、複数の値、複数の記号またはこれらの任意の組み合わせを含んでもよい。実施形態が複数のハードウェア要素及び/または複数のソフトウェア要素を用いて実装されるか否かの決定は、望ましい演算速度、複数の電力レベル、複数の耐熱性、処理サイクル予算、複数の入力データレート、複数の出力データレート、複数のメモリリソース、複数のデータバススピード及び他の設計または複数の性能制約のような任意の数の要因に従って変化する。
少なくとも1つの実施形態の1つまたは複数の態様は、プロセッサ内の様々なロジックを表し、機械によって読み取られた場合に、本明細書に記載された複数の技術を実行するためのロジックを機械に作成させる、機械可読媒体に記憶された複数の表現命令によって実装されてもよい。「IPコア」として知られるそのような複数の表現は、有形の機械可読媒体に記憶され、様々な複数の顧客または実際にロジックまたはプロセッサを作成する複数の製造機械に読み込まれるべく、複数の製造設備に供給されてもよい。
本明細書に記載された複数のグラフィクス処理技術は、様々な複数のハードウェアキテクチャのかたちで実装されてもよい。例えば、グラフィクス機能性は、チップセット内に集積されてもよい。代わりに、個別のグラフィクスプロセッサが、用いられてもよい。さらに他の実施形態として、複数のグラフィクス機能は、マルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。
以下の複数の節及び/または複数の例は、複数のさらなる実施形態に関する。例示的な一実施形態は、ビデオ符号化のために、オフセットを有するウィーナーフィルタを用いて、ヒストグラムの複数のビンを適応的にフィルタリングする方法であってもよい。他の例示的な実施形態は、複数のビンの複数の分割方法を用いてもよい。方法は、ヒストグラムを複数のビンに均等に分割する段階をさらに含んでもよい。方法は、ヒストグラムを複数のビンに適応的に分割する段階をさらに含んでもよい。方法は、エンコーダからデコーダに対して、複数のビンの数を送信する段階を含んでもよい。方法は、レート歪み最適化基準に基づいて、分割方法を特定する段階を含んでもよい。方法は、ある位置における入力画素の値と、その位置におけるフィルタリングの後の画素値との間で、複数の歪みの二乗の合計を最小化することにより、複数の適応フィルタ係数を生成する段階をさらに含んでもよい。
他の例示的な実施形態は、ビデオ符号化のためにヒストグラムの複数のビンを適応的にフィルタリングする、オフセットを有するウィーナーフィルタを用いるために、コンピュータによって実行される複数の命令を記憶する段階を備える少なくとも1つまたは複数のコンピュータ可読媒体であってもよい。例示的な一実施形態は、複数のビンの複数の分割方法を用いるために、複数の命令をさらに記憶する段階であってもよい。媒体は、ヒストグラムを複数のビンに分割する複数の命令をさらに記憶してもよい。媒体は、ヒストグラムを複数のビンに適応的に分割する複数の命令をさらに記憶してもよい。媒体は、エンコーダからデコーダに対して、複数のビンの数を送信する複数の命令をさらに記憶してもよい。媒体は、レート歪み最適化基準に基づいて、分割方法を特定する複数の命令をさらに記憶してもよい。媒体は、位置における入力画素の値と、その位置におけるフィルタリングの後の画素値との間で、複数の歪みの二乗の合計を最小化することにより、複数の適応フィルタ係数を生成する複数の命令をさらに記憶してもよい。
他の例示的な実施形態は、オフセットを有するウィーナーフィルタと、フィルタを用いてヒストグラムの複数のビンを適応的にフィルタリングするために、フィルタに連結されるプロセッサとを備える装置であってもよい。装置は、複数のビン分割を用いてもよい。装置は、ヒストグラムを複数のビンに均等に分割してもよい。装置は、ヒストグラムを複数のビンに適応的に分割してもよい。装置は、エンコーダと、エンコーダに連結されるデコーダとを含んでもよく、プロセッサは、エンコーダからデコーダに対して、複数のビンの数を送信する。装置は、レート歪み最適化基準に基づいて、分割方法を特定するプロセッサをさらに含んでもよい。装置は、位置における入力画素の値と、その位置における後の画素値との間で、複数の歪みの二乗の合計を最小化することにより、複数の適応フィルタ係数を生成するプロセッサを含んでもよい。装置は、オペレーティングシステム、バッテリ及びファームウェアならびにファームウェアを更新するためのモジュールをさらに含んでもよい。
本明細書に記載された複数のグラフィクス処理技術は、様々な複数のハードウェアキテクチャのかたちで実装されてもよい。例えば、グラフィクス機能性は、チップセット内に集積されてもよい。代わりに、個別のグラフィクスプロセッサが、用いられてもよい。さらに他の実施形態として、複数のグラフィクス機能は、マルチコアプロセッサを含む汎用プロセッサによって実装されてもよい。
本明細書中で「一実施形態」または「実施形態」という語は、その実施形態に関連して説明された特定の機能、構造または特性が、本発明内に含まれる少なくとも1つの実装に含まれることを意味する。このように、「一実施形態」または「実施形態では」という用語の複数の出現は、必ずしも同一の実施形態を指すものではない。さらに、複数の特定の機能、複数の構造または複数の特性は、示された特定の実施形態以外の他の適した複数の形で設けられてもよく、全てのそのような複数の形は、本願の特許請求の範囲内に含まれてもよい。
本発明は、限定的な数の実施形態に関して説明されたものであり、当業者であれば、そこから多数の修正及び変形が理解される。添付された特許請求の範囲は、本発明の真の趣旨および範囲に属する全ての複数の修正及び複数の変形を包含することが意図されている。