(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-31
(45)【発行日】2024-02-08
(54)【発明の名称】ビデオ符号化及び復号のための適応的伝達関数
(51)【国際特許分類】
H04N 19/85 20140101AFI20240201BHJP
H04N 19/70 20140101ALI20240201BHJP
【FI】
H04N19/85
H04N19/70
【外国語出願】
(21)【出願番号】P 2021166907
(22)【出願日】2021-10-11
(62)【分割の表示】P 2018146796の分割
【原出願日】2015-02-25
【審査請求日】2021-10-20
(32)【優先日】2014-02-25
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2014-02-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2014-02-28
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2015-02-25
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】トゥラピス, アレクシス
(72)【発明者】
【氏名】シンガー, デイビット
【審査官】間宮 嘉誉
(56)【参考文献】
【文献】特表2013-545371(JP,A)
【文献】国際公開第2014/002901(WO,A1)
【文献】HATTORI, Sally et al.,HLS: SEI Message for Transfer Function Information,JCTVC-O0064 (version 1),ITU,2013年10月16日,pp.1-4,JCTVC-O0064.doc
(58)【調査した分野】(Int.Cl.,DB名)
H04N 7/12
H04N 19/00-19/98
(57)【特許請求の範囲】
【請求項1】
システムであって、
動作を実行するように構成されたビデオ復号器を備え、前記動作は、
(i)符号器によって符号化されたソースビデオデータに対応する符号化ビデオデータであって、前記ソースビデオデータの全ダイナミックレンジからクロップされた輝度値のフォーカス範囲を表現する前記符号化ビデオデータと、(ii)前記符号化ビデオデータによって表現される輝度値の前記フォーカス範囲、及び前記ソースビデオデータの前記全ダイナミックレンジを前記符号化ビデオデータの輝度値の前記フォーカス範囲へとクロップするために使用された伝達関数に関する情報を提供する形式メタデータと、を含むビットストリームを受信する
ことであって、前記伝達関数は、前記ソースビデオデータの前記全ダイナミックレンジから輝度値の前記フォーカス範囲をクロップするために使用される第1の伝達関数と、前記フォーカス範囲を符号化するために使用される第2の伝達関数と、を含む不連続的な伝達関数表現である、ことと、
前記符号化ビデオデータを復号することであって、前記ビットストリームから前記形式メタデータを取得することを含む、ことと、
前記取得された形式メタデータから、(i)輝度値の前記フォーカス範囲と、(ii)前記伝達関数と、を判定することと、
ビデオデータを表示する目標デバイスの全ダイナミックレンジを判定することと、
前記伝達関数の逆のものに従って、輝度値の前記フォーカス範囲を前記目標デバイスの前記全ダイナミックレンジへとマッピングすることにより、前記復号されたビデオデータを前記目標デバイスの前記全ダイナミックレンジへと拡張することと、
を含む、システム。
【請求項2】
請求項1に記載のシステムであって、前記ソースビデオデータ、前記符号化ビデオデータ、及び前記拡張されたビデオデータは、異なるビット深度を使用して表現され、
前記符号化ビデオデータを表現するために使用されるビット深度は、前記ソースビデオデータ又は前記拡張されたビデオデータを表現するために使用されるビット深度よりも小さい、
システム。
【請求項3】
請求項1に記載のシステムであって、前記符号化ビデオデータは、ビデオフレームの複数のシーケンスに対応し、前記複数のシーケンスのうちのシーケンスは、1以上のビデオフレームを含み、
前記形式メタデータは、ビデオフレームの前記複数のシーケンスに関する情報を提供し、
前記復号されたビデオデータを拡張することは、シーケンス中の前記1以上のビデオフレーム、又はシーケンス中の前記1以上のビデオフレームのうちのビデオフレーム内の複数の領域、のうちの1以上を拡張することを含む、
システム。
【請求項4】
請求項1に記載のシステムであって、前記符号化ビデオデータを復号することは、
エントロピ復号技法を適用することにより前記符号化ビデオデータの圧縮を解除することと、
前記復号されたビデオデータを生成するために、前記エントロピ復号技法により出力された前記圧縮を解除されたビデオデータに対して逆量子化又は逆変換の操作のうちの1以上を実行することと、
を含む、システム。
【請求項5】
請求項1に記載のシステムであって、前記ソースビデオデータは、複数のビデオフレームを含み、前記複数のビデオフレームのうちの特定のビデオフレームに関する輝度の前記フォーカス範囲は、1以上の以前に処理されたビデオフレーム、又は前記特定のビデオフレームの1以上の以前に処理された領域のうちの、1つから取得される参照ビデオデータを使用して判定される、
システム。
【請求項6】
請求項1に記載のシステムであって、輝度の前記フォーカス範囲は、前記ソースビデオデータの明度又は色特性のうちの少なくとも1つを含む1以上の特性に基づく、
システム。
【請求項7】
方法であって、
ビデオ復号器によって、
(i)符号器によって符号化されたソースビデオデータに対応する符号化ビデオデータであって、前記ソースビデオデータの全ダイナミックレンジからクロップされた輝度値のフォーカス範囲を表現する前記符号化ビデオデータと、(ii)前記符号化ビデオデータによって表現される輝度値の前記フォーカス範囲、及び前記ソースビデオデータの前記全ダイナミックレンジを前記符号化ビデオデータの輝度値の前記フォーカス範囲へとクロップするために使用された伝達関数に関する情報を提供する形式メタデータと、を含むビットストリームを受信する
ことであって、前記伝達関数は、前記ソースビデオデータの前記全ダイナミックレンジから輝度値の前記フォーカス範囲をクロップするために使用される第1の伝達関数と、前記フォーカス範囲を符号化するために使用される第2の伝達関数と、を含む不連続的な伝達関数表現である、ことと、
前記符号化ビデオデータを復号することであって、前記ビットストリームから前記形式メタデータを取得することを含む、ことと、
前記取得された形式メタデータから、(i)輝度値の前記フォーカス範囲と、(ii)前記伝達関数と、を判定することと、
ビデオデータを表示する目標デバイスの全ダイナミックレンジを判定することと、
前記伝達関数の逆のものに従って、輝度値の前記フォーカス範囲を前記目標デバイスの前記全ダイナミックレンジへとマッピングすることにより、前記復号されたビデオデータを前記目標デバイスの前記全ダイナミックレンジへと拡張することと、
を実行することを含む、方法。
【請求項8】
請求項
7に記載の方法であって、前記ソースビデオデータ、前記符号化ビデオデータ、及び前記拡張されたビデオデータは、異なるビット深度を使用して表現され、
前記符号化ビデオデータを表現するために使用されるビット深度は、前記ソースビデオデータ又は前記拡張されたビデオデータを表現するために使用されるビット深度よりも小さい、
方法。
【請求項9】
請求項
7に記載の方法であって、前記符号化ビデオデータは、ビデオフレームの複数のシーケンスに対応し、前記複数のシーケンスのうちのシーケンスは、1以上のビデオフレームを含み、
前記形式メタデータは、ビデオフレームの前記複数のシーケンスに関する情報を提供し、
前記復号されたビデオデータを拡張することは、シーケンス中の前記1以上のビデオフレーム、又はシーケンス中の前記1以上のビデオフレームのうちのビデオフレーム内の複数の領域、のうちの1以上を拡張することを含む、
方法。
【請求項10】
請求項
7に記載の方法であって、前記符号化ビデオデータを復号することは、
エントロピ復号技法を適用することにより前記符号化ビデオデータの圧縮を解除することと、
前記復号されたビデオデータを生成するために、前記エントロピ復号技法により出力された前記圧縮を解除されたビデオデータに対して逆量子化又は逆変換の操作のうちの1以上を実行することと、
を含む、方法。
【請求項11】
請求項
7に記載の方法であって、前記ソースビデオデータは、複数のビデオフレームを含み、前記複数のビデオフレームのうちの特定のビデオフレームに関する輝度の前記フォーカス範囲は、1以上の以前に処理されたビデオフレーム、又は前記特定のビデオフレームの1以上の以前に処理された領域のうちの、1つから取得される参照ビデオデータを使用して判定される、
方法。
【請求項12】
請求項
7に記載の方法であって、輝度の前記フォーカス範囲は、前記ソースビデオデータの明度又は色特性のうちの少なくとも1つを含む1以上の特性に基づく、
方法。
【請求項13】
コンピュータに方法を実行させるコンピュータプログラムであって、前記方法は、
(i)符号器によって符号化されたソースビデオデータに対応する符号化ビデオデータであって、前記ソースビデオデータの全ダイナミックレンジからクロップされた輝度値のフォーカス範囲を表現する前記符号化ビデオデータと、(ii)前記符号化ビデオデータによって表現される輝度値の前記フォーカス範囲、及び前記ソースビデオデータの前記全ダイナミックレンジを前記符号化ビデオデータの輝度値の前記フォーカス範囲へとクロップするために使用された伝達関数に関する情報を提供する形式メタデータと、を含むビットストリームを受信する
ことであって、前記伝達関数は、前記ソースビデオデータの前記全ダイナミックレンジから輝度値の前記フォーカス範囲をクロップするために使用される第1の伝達関数と、前記フォーカス範囲を符号化するために使用される第2の伝達関数と、を含む不連続的な伝達関数表現である、ことと、
前記符号化ビデオデータを復号することであって、前記ビットストリームから前記形式メタデータを取得することを含む、ことと、
前記取得された形式メタデータから、(i)輝度値の前記フォーカス範囲と、(ii)前記伝達関数と、を判定することと、
ビデオデータを表示する目標デバイスの全ダイナミックレンジを判定することと、
前記伝達関数の逆のものに従って、輝度値の前記フォーカス範囲を前記目標デバイスの前記全ダイナミックレンジへとマッピングすることにより、前記復号されたビデオデータを前記目標デバイスの前記全ダイナミックレンジへと拡張することと、
を含む、コンピュータプログラム。
【請求項14】
請求項
13に記載のコンピュータプログラムであって、前記ソースビデオデータ、前記符号化ビデオデータ、及び前記拡張されたビデオデータは、異なるビット深度を使用して表現され、
前記符号化ビデオデータを表現するために使用されるビット深度は、前記ソースビデオデータ又は前記拡張されたビデオデータを表現するために使用されるビット深度よりも小さい、
コンピュータプログラム。
【請求項15】
請求項
13に記載のコンピュータプログラムであって、前記符号化ビデオデータは、ビデオフレームの複数のシーケンスに対応し、前記複数のシーケンスのうちのシーケンスは、1以上のビデオフレームを含み、
前記形式メタデータは、ビデオフレームの前記複数のシーケンスに関する情報を提供し、
前記復号されたビデオデータを拡張することは、シーケンス中の前記1以上のビデオフレーム、又はシーケンス中の前記1以上のビデオフレームのうちのビデオフレーム内の複数の領域、のうちの1以上を拡張することを含む、
コンピュータプログラム。
【請求項16】
請求項
13に記載のコンピュータプログラムであって、前記符号化ビデオデータを復号することは、
エントロピ復号技法を適用することにより前記符号化ビデオデータの圧縮を解除することと、
前記復号されたビデオデータを生成するために、前記エントロピ復号技法により出力された前記圧縮を解除されたビデオデータに対して逆量子化又は逆変換の操作のうちの1以上を実行することと、
を含む、コンピュータプログラム。
【請求項17】
請求項
13に記載のコンピュータプログラムであって、前記ソースビデオデータは、複数のビデオフレームを含み、前記複数のビデオフレームのうちの特定のビデオフレームに関する輝度の前記フォーカス範囲は、1以上の以前に処理されたビデオフレーム、又は前記特定のビデオフレームの1以上の以前に処理された領域のうちの、1つから取得される参照ビデオデータを使用して判定される、
コンピュータプログラム。
【請求項18】
請求項
13に記載のコンピュータプログラムであって、輝度の前記フォーカス範囲は、前記ソースビデオデータの明度又は色特性のうちの少なくとも1つを含む1以上の特性に基づく、
コンピュータプログラム。
【発明の詳細な説明】
【背景技術】
【0001】
(技術分野)
本開示は概して、デジタルビデオ又は画像処理及びディスプレイに関する。
【0002】
(関連技術の説明)
パーソナルコンピュータシステム、デスクトップコンピュータシステム、ラップトップコンピュータ及びノートブックコンピュータ、タブレットデバイス又はパッドデバイス、デジタルカメラ、デジタルビデオレコーダ、並びに携帯電話又はスマートフォンを含むがこれらに限られない種々のデバイスは、ビデオ処理法(単数又は複数)を実行し得るソフトウェア及び/又はハードウェアを含むことができる。例えば、デバイスとして、1つ以上のビデオ処理法に従って、1つ以上のソースからデジタルビデオ入力を受信して処理し、処理したビデオフレームを出力することができる装置(例えば、システムオンチップ(SOC)などの集積回路(IC)又はICのサブシステム)を挙げることができる。別の実施例として、1つ以上のビデオ処理法に従って、1つ以上のソースからデジタルビデオ入力を受信して処理し、処理されたビデオフレームを1つ以上の行先に出力し得るデバイス上に、ソフトウェアプログラムが実行され得る。
【0003】
一実施例として、ビデオ符号器は、デジタルビデオ入力がビデオ符号化法、例えばH.264/高度ビデオ符号化(Advanced Video Coding、AVC)形式若しくはH.265高効率ビデオ符号化(High Efficiency Video Coding、HEVC)形式などの圧縮ビデオ形式に従って別の形式へと符号化若しくは変換される装置又は代替的にソフトウェアプログラムとして実装され得る。別の実施例として、ビデオ復号器は、AVC若しくはHEVCなどの圧縮ビデオ形式のビデオが受信され、ビデオ復号法、例えばディスプレイデバイスによって使用される表示形式に従って別の(圧縮解除された)形式へと復号若しくは変換される装置又は代替的にソフトウェアプログラムとして実装され得る。H.264/AVC標準は、ITU-Tにより、「ITU-T勧告H.264:オーディオビジュアルサービス全般のための高度ビデオ符号化方式」と題する文書において公開されている。H.265/HEVC標準は、ITU-Tにより、「ITU-T勧告H.265:高効率ビデオ符号化方式」と題する文書において公開されている。
【0004】
多くのシステムでは、装置又はソフトウェアプログラムはビデオ符号器構成要素及びビデオ復号器構成要素の両方を実装し得る。そのような装置又はプログラムは、一般的にコーデックと呼ばれる。コーデックは、ビデオストリーム内の視覚/画像データ及びオーディオ/サウンドデータの両方を符号化/復号し得る。
【0005】
ダイナミックレンジの通常の定義は、サウンド及び光のような、信号内などで変化し得る量の可能な最大値と最小値との間の比である。デジタル画像及びビデオ処理では、拡張又は高ダイナミックレンジ(high dynamic range、HDR)撮像は、標準デジタル撮像技術及び技法(標準ダイナミックレンジ(standard dynamic range、SDR)撮像と呼ばれる)を使用して得られるものよりも広範囲の輝度を(例えば、ディスプレイスクリーン又はデバイス上に表示されるような)電子画像内で生み出す技術及び技法を指す。
【0006】
電気光学伝達関数(electro-optical transfer function、EOTF)は、デジタルコード値を光値、例えば輝度値へとマッピングし得る。一般的に光電気伝達関数(opto-electrical transfer function、OETF)と呼ばれる逆の処理は、光値を電気/デジタル値へとマッピングする。EOTF及びOETFは、伝達関数と総称され得る。輝度のSI単位は、カンデラ毎平方メートル(cd/m2)である。同じ単位の非SI用語は「NIT」である。標準ダイナミックレンジ(SDR)撮像システムでは、符号化/復号システム又はコーデックでの符号化及び復号処理を単純化するために、通常は、固定伝達関数、例えば固定べき乗則ガンマ伝達関数が、ビデオ画像コンテンツの内部表現に対して使用されてきた。高ダイナミックレンジ(HDR)撮像技法、システム、及びディスプレイの出現によって、より柔軟性の高い伝達関数へのニーズが生じている。
【発明の概要】
【0007】
ビデオ符号化及び復号システム又はコーデック内にビデオ画像コンテンツの表現のための適応的伝達関数を内部的に実行するビデオ符号化及び復号システム並びに方法の実施形態が説明される。実施形態は、入力ビデオ内の現在のシーン、シーケンス、フレーム、又はフレームの領域に対するフォーカスダイナミックレンジを、画像データの1つ以上の特性(例えば、明度、テクスチャなど)に基づき動的に決定し、入力ビデオダイナミックレンジをそのフォーカス範囲へとクロップし、その後、クロップされた範囲内の値を、コーデック内でビデオデータを表現するために使用される伝達関数に従って、入力ビデオのビット深度からコーデックのビット深度へと適切にマッピング(例えば、量子化)し得る。
【0008】
実施形態では、コーデック内で入力ビデオデータ及びフォーカス範囲のビデオデータを表現するために、様々な伝達関数が使用され得る。いくつかの実施形態では、コーデック内でビデオデータを表現するために使用される伝達関数は、入力ビデオデータを表現するために使用される伝達関数と同じであり得る。いくつかの実施形態では、入力ビデオデータを表現するために使用される伝達関数(一次伝達関数と呼ばれる)と異なる伝達関数(内部又は二次伝達関数と呼ばれる)が、コーデック内でビデオデータを表現するために使用され得る。
【0009】
実施形態では、符号器によってシーン、シーケンス、フレーム、又は領域に対して使用されるフォーカス範囲、伝達関数、量子化パラメータ、及び他の形式情報が、例えば、出力ビットストリーム内に埋め込まれたメタデータによって、復号器構成要素へとシグナリングされ得る。復号器では、符号化ビットストリームが復号され、かつ、ビデオのシーン、シーケンス、フレーム、又は領域に対するシグナリングされたフォーカス範囲(単数又は複数)に従って、高ダイナミックレンジ(HDR)対応ディスプレイなどの目標デバイスの全ダイナミックレンジへと動的に拡張され得る。
【0010】
伝達関数を入力ビデオデータに動的に適応させることによって、実施形態は、入力ビデオデータを表現するために使用されるものよりも少ないビットを使用してコーデック内でビデオデータが表現されることを可能にし、かつビデオデータ出力がHDR対応ディスプレイなどのHDRデバイスのダイナミックレンジを満たすようにコーデックによって拡張されることも可能にし得る。適応的伝達関数法の実施形態は、例えば、ビデオ符号化及び復号システムがコーデック内でビデオデータの内部表現及び処理に10以下のビットを使用すること、並びにビデオをHDR対応ディスプレイなどのHDRデバイスへと出力するときに、例えば12以上のビットを使用することを可能にし得る。このため、ビデオ符号化及び復号システムのための適応的伝達関数法の実施形態は、特に消費者市場での、HDR技術の実装、ひいては採用を単純化し得る。
【図面の簡単な説明】
【0011】
【
図1】適応的伝達関数の一実施形態を実施する例示的なコーデック又はビデオ符号化及び復号システムを示す図である。
【0012】
【
図2】いくつかの実施形態に係る、適応的伝達関数法をビデオ入力データに適用して符号化ビデオデータを生成する、例示的な符号器を示す図である。
【0013】
【
図3】いくつかの実施形態に係る、適応的伝達関数法に従って符号化ビデオデータを復号しかつ復号ビデオデータを拡張して、表示形式のビデオデータを生成する、例示的な復号器を示す図である。
【0014】
【
図4】いくつかの実施形態に係る、入力ビデオデータに対する例示的な全範囲及びそのビデオデータに対する例示的なフォーカス範囲を示す図である。
【0015】
【
図5】いくつかの実施形態に係る、Cビットのビデオデータを生成するためにフォーカス範囲内のNビットの入力ビデオデータをマッピングすることの実施例を示す図である。
【0016】
【
図6】いくつかの実施形態に係る、デバイスのためのDビットのビデオデータを生成するために、Cビットの復号ビデオをHDR対応デバイスの全ダイナミックレンジへと拡張することの実施例を図式的に示す図である。
【0017】
【
図7A】適応的伝達関数法の実施形態に係る、異なるフォーカス範囲をビデオシーケンス又はビデオフレームの異なる部分に適用することを図式的に示す図である。
【
図7B】適応的伝達関数法の実施形態に係る、異なるフォーカス範囲をビデオシーケンス又はビデオフレームの異なる部分に適用することを図式的に示す図である。
【
図7C】適応的伝達関数法の実施形態に係る、異なるフォーカス範囲をビデオシーケンス又はビデオフレームの異なる部分に適用することを図式的に示す図である。
【0018】
【
図8】いくつかの実施形態に係る、適応的伝達関数法をビデオ入力データに適用して、符号化ビデオデータを生成するビデオ符号化法のフローチャートである。
【0019】
【
図9】いくつかの実施形態に係る、適応的伝達関数法に従って符号化ビデオデータを復号しかつ復号ビデオデータを拡張して、表示形式のビデオデータを生成するビデオ復号法のフローチャートである。
【0020】
【
図10】本明細書で説明されるシステム及び方法の態様を実行するように構成され得るシステムオンチップ(SOC)の一実施形態のブロック図である。
【0021】
【
図11】1つ以上のSOCを含み得るシステムの一実施形態のブロック図である。
【0022】
【
図12】いくつかの実施形態に係る、本明細書で説明されるシステム及び方法の態様を実行するように構成され得る例示的なコンピュータシステムを示す図である。
【0023】
【
図13】いくつかの実施形態に係るポータブル多機能デバイスのブロック図である。
【0024】
【
図14】いくつかの実施形態に係るポータブル多機能デバイスを示す図である。
【0025】
本発明は様々な変更及び代替的な形態を受け入れる余地があるが、その特定の実施形態が、例として図面に示されており、本明細書で詳細に説明することとする。しかしながら、図面及び詳細な説明は、本発明を、開示されている特定の形態に限定することを意図するものではなく、逆に、本発明の趣旨及び範囲に含まれる全ての変更、均等物及び代替物を範囲に含むことを意図するものであることを理解されたい。本出願を通して使用される単語「may」は、義務的な意味(即ち、必須を意味する)よりも、許容的な意味(即ち、可能性を含む意味)として使用される。同様に、単語「include」、「including」、及び「includes」は、~を含むがこれに限定されるものではないということを意味する。
【0026】
種々のユニット、回路、又は他の構成要素については、1つ以上のタスクを実行するよう「configured to(構成される)」ものとして述べる場合がある。このような状況では、「configured to(構成される)」は、動作中に1つ以上のタスクを実行する「having circuitry(回路を備えている)」ことを広く意味する構造の広義な記述である。よって、ユニット/回路/構成要素は、そのユニット/回路/構成要素が現在動作していないときでも、タスクを実施するように構成することができる。一般に、「configured to(構成される)」に対応する構造を形成する回路は、ハードウェア回路を含むことができる。同様に、各種のユニット/回路/構成要素は、説明の便宜上、1つ又は複数のタスクを実施すると記述される場合がある。このような説明は、「~するように構成される」という語句を含むと解釈されるべきである。1つ以上のタスクを実行するように構成されるユニット/回路/構成要素と表現することは、米国特許法第112条、第6項のユニット/回路/構成要素についての解釈を行使しないことを明示的に意図されている。
【発明を実施するための形態】
【0027】
ビデオ符号化及び復号システム又はコーデック内にビデオ画像コンテンツの表現のための適応的伝達関数を内部的に実行する、ビデオ符号化及び復号システム並びに方法の実施形態が説明される。実施形態は、符号化及び復号処理中の、コーデックへの入力ビデオデータのダイナミックレンジの適応を可能にし得る。実施形態では、伝達関数は、入力ビデオのシーン、シーケンス、又はフレーム毎に、動的にコーデックに適応され得る。いくつかの実施形態では、伝達関数はフレームの領域内で動的に適応され得る。実施形態は、伝達関数を入力ビデオデータに動的に適応させ、人間の視覚系の動的に決定される有効ダイナミックレンジ(本明細書ではフォーカスダイナミックレンジ又は単にフォーカス範囲と呼ばれる)内の情報のみを保持し、かつコーデック内の処理のための伝達関数に従って、フォーカス範囲内のデータを入力ビデオのビット深度からコーデックのビット深度へとマッピングし得る。コーデックの出力は、HDR対応ディスプレイなどの拡張ダイナミックレンジ又は高ダイナミックレンジ(HDR)デバイスを含むがこれらに限られない目標デバイスへの出力のダイナミックレンジを満たすように拡張され得る。
図1~
図3は、適応的伝達関数法の実施形態が実施され得る例示的なビデオ符号化及び復号システム又はコーデックを示す。
【0028】
人間の視覚系は、全体として、非常に大きいダイナミックレンジを範囲に含む。ただし、人間の視覚系は、表示されている現在のシーン又は画像に基づき、例えばシーン又は画像の明度(輝度)及びテクスチャ特性に従って、ダイナミックレンジに適応し、かつダイナミックレンジを制限する傾向がある。このため、人間の視覚系のダイナミックレンジ全体は比較的大きいが、ビデオの所与のシーン、シーケンス、フレーム、又は領域に対する有効ダイナミックレンジは、明度及びテクスチャを含むがこれらに限られない画像特性に応じて、大幅に小さくなり得る。本明細書に記載されているようなビデオ符号化及び復号システム並びに方法の実施形態は、この人間の視覚の特性を活用して、現在のシーン、シーケンス、フレーム、又は領域の特性に従ってコーデック内で範囲を動的に制限するための類似した方法を利用し得る。実施形態では、処理されている現在のシーン、シーケンス、フレーム、又は領域の1つ以上の特性(例えば、明度、テクスチャなど)に応じて、符号器構成要素又は処理は、入力ビデオのシーン、シーケンス、フレーム、又は領域の範囲(例えば、輝度)を、人間の視覚系に対する有効ダイナミックレンジ内、及びコーデックの要件、例えばビット深度内へと動的に制限し得る。これは、例えば、入力ビデオ内の現在のシーン、シーケンス、フレーム、又は領域内のエリアをサンプル値に関して動的に決定し、かつコーデックのビット深度(例えば、10ビット)をその範囲へとフォーカスすることによってなされ得る。いくつかの実施形態では、このフォーカシングは、符号器内で、入力ビデオのダイナミックレンジをそのエリア内へとクロップし、その後、クロップされた範囲(フォーカスダイナミックレンジ又はフォーカス範囲と呼ばれる)内の値を、コーデック内でビデオデータを表現するために使用される伝達関数に従って、入力ビデオのビット深度からコーデックのビット深度へと適切にマッピング(例えば、量子化)することによって実行され得る。
図4及び5は、いくつかの実施形態に係る、入力ビデオデータに対して決定された例示的なフォーカス範囲、及び、伝達関数に従った、Nビットの入力ビデオデータのコーデックのビット深度へのマッピングを図式的に示す。本明細書で使用されているように、Nビットは入力ビデオのビット深度を指し、Cビットはコーデック内でビデオデータを表現するために使用されるビット深度を指し、Dビットはディスプレイデバイスなどの、復号ビデオの目標デバイスのビット深度を指す。
【0029】
実施形態では、コーデック内で入力ビデオデータ及びフォーカス範囲のビデオデータを表現するために、様々な伝達関数が使用され得る。実施形態でビデオデータを表現するために使用され得る伝達関数の実施例は、限定するものではないが、べき乗則ガンマベースの伝達関数、対数ベースの伝達関数、及びDolby Laboratories,Inc.によって提案された知覚量子化(Perceptual Quantizer、PQ)伝達関数などの人間の視覚認知に基づく伝達関数を含み得る。いくつかの実施形態では、コーデック内でビデオデータを表現するために使用される伝達関数は、入力ビデオデータを表現するために使用される伝達関数と同じであり得る。ただし、他の実施形態では、入力ビデオデータを表現するために使用される伝達関数(一次伝達関数と呼ばれる)と異なる伝達関数(内部又は二次伝達関数と呼ばれる)が、コーデック内でビデオデータを表現するために使用され得る。これは例えば、ビデオ信号とも呼ばれ得るビデオデータが、一次伝達関数を使用してなされ得るものよりも高い精度で、コーデック内で表現されることを可能にし得る。
【0030】
実施形態では、符号器によってシーン、シーケンス、フレーム、又は領域に対して使用されるフォーカス範囲、伝達関数、量子化パラメータ、及び他の形式情報が、例えば、出力ビットストリーム内に埋め込まれたメタデータによって、復号器構成要素へとシグナリングされ得る。復号器では、符号化ビットストリームが復号され、かつ、ビデオのシーン、シーケンス、フレーム、又は領域に対するシグナリングされたフォーカス範囲(単数又は複数)に従って、HDRデバイス(例えば、HDR対応ディスプレイ)などの目標デバイスの全ダイナミックレンジへと動的に拡張され得る。
図6は、いくつかの実施形態に係る、復号ビデオデータをHDRデバイスの全ダイナミックレンジへと拡張することを図式的に示す。
【0031】
伝達関数を入力ビデオデータに動的に適応させることによって、実施形態は、入力ビデオデータを表現するために使用されるものよりも少ないビットを使用してコーデック内でビデオデータが表現されることを可能にし、かつビデオデータ出力がHDR対応ディスプレイなどのHDRデバイスのダイナミックレンジを満たすようにコーデックによって拡張されることも可能にし得る。適応的伝達関数法の実施形態は、例えば、ビデオ符号化及び復号システムがコーデック内でビデオデータの内部表現及び処理に10以下のビットを使用すること、並びにビデオをHDR対応ディスプレイなどのHDRデバイスへと出力するときに、例えば12以上のビットを使用して、ビデオデータの拡張ダイナミックレンジ又は高ダイナミックレンジを表現することを可能にし得る。このため、ビデオ符号化及び復号システムのための適応的伝達関数法の実施形態は、特に消費者市場での、HDR技術の実施、ひいては採用を単純化し得る。
【0032】
本明細書で説明される適応的伝達関数法は、ビデオ信号の全ての色成分に適用されてもよく、又は代替的に、ビデオ信号の輝度(ルマ)及び色度(クロマ)成分の一方若しくは両方に別個に適用されてもよい。
【0033】
図1は、適応的伝達関数の一実施形態を実施する、例示的なビデオ符号化及び復号システム又はコーデック100を示す。実施形態では、コーデック100の適応的伝達関数110構成要素又はモジュールは、適応的伝達関数法に従って、Nビット(例えば、12ビット、14ビット、16ビットなど)のビデオ入力データ102を、コーデック100の符号器120構成要素又はモジュールに対するCビット(例えば、10ビット以下)のビデオ入力データ112へと変換し得る。いくつかの実施形態では、Nビットのビデオ入力データ102をCビットのビデオ入力データ112へと変換するために、適応的伝達関数110は、Nビットのビデオ入力データ102内の現在のシーン、シーケンス、フレーム、又は領域内のエリアをサンプル値に関して動的に決定し、かつCビットをそのエリアへとフォーカスし得る。いくつかの実施形態では、このフォーカシングは、適応的伝達関数110内で、Nビットのビデオ入力データ102を決定されたフォーカス範囲へとクロップし、その後、符号器120に対するCビットのビデオ入力データ112を生成するために、フォーカス範囲内のNビットの値を、符号器120内でビデオデータを表現するために使用される伝達関数に従って、コーデックのビット深度へと適切にマッピング(例えば、量子化)することによって実行され得る。
【0034】
いくつかの実施形態では、適応的伝達関数110は、形式メタデータ114も符号器120への出力として生成し得る。形式メタデータ114は、適応的伝達関数法を入力ビデオデータ102に適用されるものとして記述し得る。例えば、形式メタデータ114は、ビデオデータを符号器のビット深度へとマッピングするときに使用される、決定されたフォーカス範囲のパラメータを示してもよく、かつフォーカス範囲に適用される伝達関数に関する情報も含んでもよい。
【0035】
いくつかの実施形態では、符号器120はその後、符号化ストリーム122を出力として生成するために、Cビットのビデオ入力データ112を符号化し得る。いくつかの実施形態では、符号器120は、H.264/高度ビデオ符号化(AVC)形式又はH.265/高効率ビデオ符号化(HEVC)形式などの圧縮ビデオ形式に従って、Cビットのビデオ入力データ112を符号化し得る。ただし、他の符号化形式が使用されてもよい。いくつかの実施形態では、符号器120は、例えば、形式メタデータ114を復号器130構成要素に提供することができるように、形式メタデータ114を出力ストリーム122内に埋め込み得る。符号化出力ストリーム122はメモリに記憶されてもよく、又は代替的に、コーデック100の復号器130構成要素又はモジュールへと直接送信されてもよい。
図2は、ビデオ符号化及び復号システム又はコーデック100の例示的な符号器構成要素をより詳細に示す。
【0036】
復号器130は、符号化ストリーム122を読み取るか又は受信し、かつストリーム122を復号して、コーデック100の逆適応的伝達関数140構成要素又はモジュールに対する出力としてCビットの復号ストリーム132を生成し得る。いくつかの実施形態では、適応的伝達関数法を、適応的伝達関数110によって入力ビデオデータ102に適用されるものとして記述する形式メタデータ134が入力ストリーム122から抽出され、逆適応的伝達関数140へと伝達され得る。逆適応的伝達関数140は、Cビットの復号ストリーム132を形式メタデータ134及びディスプレイ情報144に従って変換して、1つ以上のディスプレイ190又は他のデバイスへのDビット(例えば、12ビット、14ビット、16ビットなど)のHDR出力142を生成し得る。
図3は、ビデオ符号化及び復号システム又はコーデック100の例示的な復号器構成要素をより詳細に示す。
【0037】
本明細書で説明されるように適応的伝達関数法を実行する、ビデオ符号化及び復号システム又はコーデック100の実施形態は、例えば、1つ以上の画像キャプチャデバイス及び/又は1つ以上のディスプレイデバイスを含むデバイス又はシステム内で実施され得る。画像キャプチャデバイスは、デジタル画像又はビデオをキャプチャすることができる光センサ又はフォトセンサを備える、任意のデバイスであり得る。画像キャプチャデバイスは、限定するものではないが、ビデオカメラ及び静止画像カメラ、並びにビデオ及び単一の画像の両方をキャプチャすることができる画像キャプチャデバイスを含み得る。画像キャプチャデバイスは、スタンドアロンデバイスであってもよく、又はスマートフォン、携帯電話、PDA、タブレット若しくはパッドデバイス、多機能デバイス、コンピューティングデバイス、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、デスクトップコンピュータなどを含むがこれらに限られない他のデバイス内に組み込まれたカメラであってもよい。画像キャプチャデバイスは、携帯電話、PDA、及びタブレットデバイスなどの小型デバイス内での使用に好適な、小さいフォームファクタのカメラを含み得る。ディスプレイ又はディスプレイデバイスは、スマートフォン、携帯電話、PDA、タブレット若しくはパッドデバイス、多機能デバイス、コピューティングデバイス、ラップトップコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、デスクトップコンピュータなどを含むがこれらに限られない他のデバイス内に組み込まれたディスプレイスクリーン又はパネルを含み得る。ディスプレイデバイスは、ビデオモニタ、プロジェクタ、又は、デジタル画像及び/若しくはデジタルビデオを表示若しくは投映することができる、概して任意のデバイスも含み得る。ディスプレイ又はディスプレイデバイスは、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を使用し得るが、他のディスプレイ技術も使用され得る。
【0038】
図10~
図14は、実施形態が実施され得るデバイスの非限定的な実施例を示す。画像キャプチャデバイス及び/又はディスプレイデバイスを含むデバイス若しくはシステムは、本明細書で説明されるようにビデオデータを処理するための機能の少なくとも一部を実行するハードウェア及び/又はソフトウェアを含み得る。いくつかの実施形態では、本明細書で説明されるような機能の1つの部分が1つのデバイス上に実行されてもよく、別の部分が別のデバイス上に実行されてもよい。例えば、いくつかの実施形態では、画像キャプチャデバイスを含むデバイスは、フォトセンサを介してキャプチャされた画像又はビデオを処理及び圧縮(すなわち、符号化)するセンサパイプラインを実行してもよく、ディスプレイパネル又はスクリーンを備える別のデバイスは、圧縮された画像をパネル又はスクリーンへの表示のために受信及び処理(すなわち、復号)する表示パイプラインを実行してもよい。いくつかの実施形態では、本明細書で説明されるような機能の少なくとも一部は、多機能デバイス、スマートフォン、パッド又はタブレットデバイス、並びにラップトップ、ノートブック、及びネットブックコンピュータなどの他のポータブルコンピューティングデバイスを含むがこれらに限られないデバイス内で使用され得る、システムオンチップ(SOC)の1つ以上の構成要素又はモジュールによって実行され得る。
図10は例示的なSOCを示し、
図11はSOCを実装する例示的なデバイスを示す。
図12は、本明細書で説明される方法及び装置を実施し得る例示的なコンピュータシステムを示す。
図13及び14は、本明細書で説明される方法及び装置を実施し得る例示的な多機能デバイスを示す。
【0039】
実施形態は通常、ビデオを処理するものとして本明細書で説明される。ただし、実施形態は、ビデオフレーム又はシーケンスの代わりに若しくはこれらに加えて、単一の画像又は静止画像を処理するために適用され得る。このため、「ビデオ」、「ビデオフレーム」、「フレーム」などが本明細書で使用されるとき、これらの用語は、概してキャプチャされたデジタル画像を指すことを理解すべきである。
【0040】
図2は、いくつかの実施形態に係る、適応的伝達関数法をビデオ入力データ202に適用し、符号化ビデオデータ232を出力として生成する、例示的な符号器200を示す図である。符号器200は、例えば、
図1に示したようなコーデック100の構成要素又はモジュールであり得る。実施形態では、符号器200の適応的伝達関数構成要素又はモジュール210は、適応的伝達関数法に従ってNビット(例えば、12ビット、14ビット、16ビットなど)のビデオ入力データ202をCビット(例えば、10ビット以下)のデータ212へと変換し、かつCビットのデータ212を符号器200の処理パイプライン220構成要素へと出力し得る。いくつかの実施形態では、Nビットのビデオ入力データ202をCビットのビデオデータ212へと変換するために、適応的伝達関数モジュール210は、Nビットのビデオ入力データ202内の現在のシーン、シーケンス、フレーム、又は領域内のエリアをサンプル値に関して動的に決定し、かつCビットをそのエリアへとフォーカスし得る。いくつかの実施形態では、このフォーカシングは、適応的伝達関数モジュール210内で、Nビットのビデオ入力データ202のダイナミックレンジを決定されたフォーカス範囲へとクロップし、その後、フォーカス範囲内のNビットの値を、符号器200内でビデオデータを表現するために使用される伝達関数に従ってCビットへと適切にマッピング(例えば、量子化)することによって実行され得る。いくつかの実施形態では、適応的伝達関数モジュール210は、形式メタデータ214も符号器220への出力として生成し得る。形式メタデータ214は、適応的伝達関数法を入力ビデオデータ202に適用されるものとして記述し得る。例えば、形式メタデータ214は、ビデオデータを符号器のビット深度へとマッピングするときに使用される、決定されたフォーカス範囲のパラメータを示してもよく、かつフォーカス範囲に適用される伝達関数に関する情報も含んでもよい。
【0041】
いくつかの実施形態では、符号器200はその後、符号化ストリーム232を出力として生成するために、適応的伝達関数モジュール210によって生成されたCビットのビデオ入力データ212を符号化し得る。いくつかの実施形態では、符号器120は、H.264/高度ビデオ符号化(AVC)形式又はH.265/高効率ビデオ符号化(HEVC)形式などの圧縮ビデオ形式に従って、Cビットのビデオ入力データ112を符号化し得る。ただし、他の符号化形式が使用されてもよい。
【0042】
いくつかの実施形態では、入力ビデオフレームは、符号器200内で画素(ピクセル又はペルと呼ばれる)のブロックに従って再分割され、処理される。例えば、H.264符号化では、マクロブロックと呼ばれる16×16ピクセルのブロックが使用され得る。HEVC符号化は、16×16ピクセルから64×64ピクセルのブロックの範囲内で変動し得る符号化ツリーユニット(Coding Tree Unit、CTU)と呼ばれるブロックを使用する。CTUは、符号化ユニット(coding unit、CU)へと分割され、更に64×64ピクセルから4×4ピクセルのブロックまで変動し得る予測ユニット(prediction unit、PU)へと再分割され得る。いくつかの実施形態では、ビデオ入力データ212はルマ及びクロマ成分へと分割されてもよく、ルマ及びクロマ成分は符号器の1つ以上の構成要素又は段階で別個に処理されてもよい。
【0043】
図2に示す例示的な符号器200では、符号器200は、処理パイプライン220構成要素及びエントロピ符号化230構成要素を含む。処理パイプライン220は、ビデオ入力データ212が処理される、複数の構成要素又は段階を含み得る。処理パイプライン220は、例えば、1つ以上の段階又は構成要素として、イントラフレーム及びインターフレーム推定222、モード決定224、並びに動き補償及び再構成226動作を実行し得る。
【0044】
以下は、例示的な処理パイプライン220の高レベルでの動作について説明するものであって、限定することを意図するものではない。いくつかの実施形態では、イントラフレーム及びインターフレーム推定222は、パイプラインに入力されたブロックを符号化するときに使用される、以前に符号化されたピクセルのブロックを決定し得る。H.264符号化などのいくつかのビデオ符号化技法では、各入力ブロックを、現在のフレーム内の既に符号化されたピクセルのブロックを使用して符号化することができる。これらのブロックを決定するプロセスを、イントラフレーム推定又は単にイントラ推定と呼ぶことができる。H.264及びH.265符号化などのいくつかのビデオ符号化技法では、ブロックはまた、1つ以上の以前に再構成されたフレーム(基準フレームと呼ばれ、
図2で基準データ240として示される)からのピクセルのブロックを使用して符号化され得る。いくつかの実施形態では、符号器パイプラインによって出力された、再構成されたフレーム及び符号化フレームは、基準フレームとして使用するために、基準データ240へと復号及び記憶され得る。いくつかの実施形態では、現在のフレームを再構成するときに使用される、基準データ240内に記憶された基準フレームは、処理されているビデオ内の現在のフレームよりも時間的に前に発生する1つ以上の再構成されたフレーム、及び/又は処理されているビデオの現在のフレームよりも時間的に後に発生する1つ以上の再構成されたフレームを含み得る。基準フレーム中の一致するピクセルブロックを発見するプロセスを、インターフレーム推定、あるいは、より一般的には動き推定と呼ぶことができる。いくつかの実施形態では、モード決定224は、所与のブロックに対する出力をイントラフレーム及びインターフレーム推定222から受信し、かつそのブロックのための最善予測モード(例えば、インターフレーム予測又はイントラフレーム予測モード)及び対応する動きベクトルを決定し得る。この情報は動き補償及び再構成226へと伝達される。
【0045】
動き補償及び再構成226の動作は、モード決定224から受信した最善モードによって異なり得る。最善モードがインター予測される場合、動き補償構成要素は、動きベクトルに対応する基準フレームブロックを取得し、それらのブロックを組み合わせて予測ブロックを生成する。その後、動き補償構成要素は、重み付け予測を予測ブロックに適用して、再構成構成要素に伝達される最終的なブロック予測子を生成する。重み付け予測では、現在のブロックを符号化するときに使用される予測データを生成するために、基準データからの値が、1つ以上の重み付けパラメータに従って重み付けされ、かつオフセット値を使用してシフトされ得る。最善モードがイントラ予測される場合、1つ以上の隣接するブロックを使用してイントラ予測が実行され、パイプラインのこの段階で処理されている現在のブロックに対する予測ブロックが生成される。
【0046】
再構成構成要素は、動き補償の出力に従って、現在のブロックに対するブロック(例えば、マクロブロック)再構成動作を実行する。再構成動作は、例えば、順方向変換及び量子化(forward transform and quantization、FTQ)動作を含み得る。動き補償及び再構成226は、変換及び量子化されたデータを符号器200のエントロピ符号化230構成要素へと出力し得る。
【0047】
エントロピ符号化230構成要素は、例えば、エントロピ符号化技法を適用して、パイプライン220によって変換及び量子化されたデータ出力を圧縮し、符号化出力ストリーム232を生成し得る。使用され得る例示的なエントロピ符号化技法は、限定するものではないが、ハフマン符号化技法、CAVLC(context-adaptive variable-length coding、コンテキスト適応型可変長符号化)、及びCABAC(context-adaptive binary arithmetic coding、コンテキスト適応型2値算術符号化)を含み得る。いくつかの実施形態では、符号器200は、形式メタデータ214を復号器に提供することができるように、形式メタデータ214を符号化出力ストリーム232内に埋め込み得る。符号化出力ストリーム232はメモリに記憶されてもよく、又は代替的に、復号器構成要素へと直接送信されてもよい。
【0048】
基準データ240はまた、パイプライン220によって出力され、メモリに記憶され得る。基準データ240は、限定するものではないが、例えば、パイプライン220の動き推定及び動き補償動作並びに再構成動作でアクセスされ得る、1つ以上の以前に符号化されたフレーム(基準フレームと呼ばれる)を含み得る。
【0049】
いくつかの実施形態では、符号器200は、現在のフレームを処理するときにパイプライン220構成要素によって使用される基準データ240から取得された基準フレームデータの形式を変更するように構成され得る、形式変更250構成要素を含み得る。形式変更250は、例えば、基準フレームを符号化するときに使用されるフォーカス範囲/伝達関数から、現在のフレームを符号化するときに使用されるフォーカス範囲/伝達関数へと基準フレームデータを変換することを伴い得る。一実施例として、基準フレームに対する輝度のフォーカス範囲/伝達関数のマッピングは、C(例えば、10)ビットで表現された0.05cd/m2~1000cd/m2の値であり得る。現在のフレームに対しては、フォーカス範囲が、より明るい画像コンテンツを理由に拡張されてもよく、例えば、フォーカス範囲が2000cd/m2へと拡張又は増加されてもよい。したがって、現在のフレームに対する輝度のフォーカス範囲/伝達関数のマッピングは、0.05cd/m2~2000cd/m2であり得る。パイプライン220内、例えば動き推定動作内で基準フレームデータを使用するために、基準フレームデータの形式は、現在のフレームを符号化するために形式変更250構成要素によって使用されているフォーカス範囲/伝達関数に従って変更され得る。
【0050】
所与の実施例では、形式変更250構成要素は、基準フレームデータを、それが再構成された0.05cd/m2~1000cd/m2の範囲から、現在のフレームに対して使用されている0.05cd/m2~2000cd/m2の範囲へと変換し得る。この実施例では、基準フレームが0.05cd/m2~1000cd/m2のデータのみを含むため、形式変更された基準データのCビット表現内のいくつかのコードワード(例えば、1000cd/m2を超える値を表現するコードワード)は、形式変更された基準データ内で使用することができない。ただし、値は、予測又は他の動作での使用のために、現在のフォーカス範囲へとマッピングされる。
【0051】
基準データ240から適応的伝達関数モジュール210へと戻る矢印が示すように、いくつかの実施形態では、適応的伝達関数モジュール210は、パイプライン220内で処理される現在のフレームに対するフォーカス範囲/伝達関数を決定するときに、1つ以上の以前に処理されたフレームからの適応的伝達関数の情報を使用し得る。
【0052】
図3は、いくつかの実施形態に係る、適応的伝達関数法に従って符号化ビデオデータ302を復号しかつ復号ビデオデータ322を拡張して、表示形式のビデオデータ332を生成する、例示的な復号器300を示す。復号器300は、例えば、
図1に示したようなコーデック100の構成要素又はモジュールであり得る。
図3に示す例示的な復号器300では、復号器300は、エントロピ復号310構成要素、逆量子化及び変換320構成要素、及び逆適応的伝達関数モジュール330を含む。エントロピ復号310構成要素は、例えば、
図2に示した符号器200などの符号器によって出力された符号化ストリーム302の圧縮を解除するために、エントロピ復号技法を適用し得る。逆量子化及び変換320構成要素は、エントロピ復号310によるデータ出力に対して逆量子化及び逆変換動作を実行して、Cビットの復号ストリーム322を、復号器300の逆適応的伝達関数モジュール330への出力として生成する。いくつかの実施形態では、現在のシーン、シーケンス、フレーム、又は領域に適用されるものとして適応的伝達関数法を記述する形式メタデータ324が入力ストリーム302から抽出され、かつ逆適応的伝達関数モジュール330へと伝達され得る。逆適応的伝達関数モジュール330は、Cビットの復号ストリーム322を形式メタデータ324及びディスプレイ情報392に従って拡張して、1つ以上のディスプレイ390又は他のデバイスへのDビット(例えば、12ビット、14ビット、16ビットなど)のHDR出力332を生成し得る。
【0053】
図4~
図6は、いくつかの実施形態に係る、Nビットの入力ビデオデータに対する例示的なフォーカス範囲を決定することであって、伝達関数に従って入力ビデオデータをコーデック内で使用可能なCビットへとマッピングすることができる、ことと、復号ビデオをHDRデバイスの全ダイナミックレンジへと拡張して、そのデバイスのためのDビットのビデオデータを生成することと、を図式的に示す。
【0054】
図4は、いくつかの実施形態に係る、Nビットの入力ビデオデータに対する全ダイナミックレンジを示し、かつ入力ビデオデータに対して決定された例示的なフォーカス範囲を示す。
図4では、縦軸は入力ビデオデータ内のNビット(例えば、12ビット、14ビット、16ビットなど)のコード値を表す。横軸は、この実施例では0~10000cd/m
2である、入力ビデオデータ内の輝度に対するダイナミックレンジであり、cd/m
2(カンデラ毎平方メートル)は輝度のSI単位である。同じ単位の非SI用語は「NIT」である。曲線は、入力ビデオデータに対する例示的な伝達関数を表す。フォーカス範囲(この実施例では、2000~4000cd/m
2)は、それぞれのビデオデータの1つ以上の特性(例えば、明度、テクスチャなど)に従って、現在のシーン、シーケンス、フレーム、又は領域に対して決定された、人間の視覚系の有効ダイナミックレンジを表す。図示されるように、この実施例では、フォーカス範囲はNビットのコード値の分数(約8分の1)によって表される。
図7A~
図7Cに示すように、ビデオストリーム内の異なるシーン、シーケンス、フレーム、又は領域に対して異なるフォーカス範囲が決定され得ることに留意されたい。
【0055】
図5は、いくつかの実施形態に係る、コーデック内でCビットのビデオデータを生成するために、決定されたフォーカス範囲内のNビットの入力ビデオデータをマッピングすることの実施例を示す。
図5では、縦軸はコーデック内で使用可能なCビット(例えば、12ビット、10ビット、8ビットなど)のコード値を表す。横軸は、Cビットのコード値へとマッピングされる輝度値(この実施例では、2000~4000cd/m
2)に対するフォーカス範囲を示す。曲線は、コード内でフォーカス範囲のデータを表現するために使用される例示的な伝達関数を表す。いくつかの実施形態では、コーデック内でビデオデータを表現するために使用される伝達関数は、入力ビデオデータを表現するために使用される伝達関数と同じであり得る。ただし、他の実施形態では、入力ビデオデータを表現するために使用される伝達関数(一次伝達関数と呼ばれる)と異なる伝達関数(内部又は二次伝達関数と呼ばれる)が、コーデック内でビデオデータを表現するために使用され得る。これは例えば、ビデオ信号のフォーカス範囲が、一次伝達関数を使用してなされ得るものよりも高い精度でコーデック内で表現されることを可能にし得る。
【0056】
図6は、いくつかの実施形態に係る、デバイスのためのDビットのビデオデータを生成するために、Cビットの復号ビデオをHDR対応デバイスの全ダイナミックレンジへと拡張することの実施例を示す。
図6では、縦軸は、
図3に示すような復号器300などの復号器から出力されたビデオデータ内のDビット(例えば、12ビット、14ビット、16ビットなど)のコード値を表す。横軸は、復号器によるDビットのビデオデータの出力先となるディスプレイデバイスによってサポートされる輝度のダイナミックレンジを表す。この実施例では、0~10000cd/m
2のダイナミックレンジが示されている。曲線は、ディスプレイデバイスに対する例示的な伝達関数を表す。符号化ビデオ信号が復号器によって復号された後、コーデック内で信号の内部表現のために使用されるフォーカス範囲は、Cビット表現からより広いダイナミックレンジ及びディスプレイデバイスのDビット表現へと再マッピングされる。
図7A~
図7Cに示すように、ビデオストリーム内の異なるシーン、シーケンス、フレーム、又は領域に対して異なるフォーカス範囲が符号化され得ることに留意されたい。いくつかの実施形態では、各シーン、シーケンス、フレーム、又は領域を符号化するときに使用されるフォーカス範囲を示す形式メタデータが、符号化ビデオストリーム内で、又は符号化ビデオストリームと共に、復号器に提供され得る。いくつかの実施形態では、メタデータは、ビデオデータをコード化されたもののビット深度へとマッピングするときに使用される1つ以上のパラメータも含み得る。いくつかの実施形態では、メタデータは、コーデック内でフォーカス範囲のデータを表現するために使用される内部伝達関数に関する情報も含み得る。メタデータは、フォーカス範囲のデータをCビット表現からより広いダイナミックレンジ及びディスプレイデバイスのDビット表現へと再マッピングするときに、復号器によって使用され得る。
【0057】
図7A~
図7Cは、適応的伝達関数法の実施形態に係る、異なるフォーカス範囲をビデオシーケンス又はビデオフレームの異なる部分に適用することを図式的に示す。
【0058】
図7Aは、適応的伝達関数法のいくつかの実施形態に係る、異なるフォーカス範囲を入力ビデオの異なるシーン又はシーケンスへと適用することを図式的に示す。この実施例では、フォーカス範囲710Aがフレーム700A~700Eに対して動的に決定されてこれらのフレームを符号化するときに使用され、フォーカス範囲710Bがフレーム700F~700Gに対して動的に決定されてこれらのフレームを符号化するときに使用される。フレーム700A~700E及びフレーム700F~700Hは、例えば、ビデオ内の異なるシーンを表現してもよく、又はビデオのシーン内のフレーム、若しくはシーンをまたがるフレームの異なるシーケンスを表現してもよい。
【0059】
図7Bは、適応的伝達関数法のいくつかの実施形態に係る、異なるフォーカス範囲を入力ビデオの各フレームへと適用することを図式的に示す。この実施例では、フォーカス範囲710Cが符号化フレーム700Iに対して動的に決定されてこのフレームを符号化するときに使用され、フォーカス範囲710Dが符号化フレーム700Jに対して動的に決定されてこのフレームを符号化するときに使用され、フォーカス範囲710Eが符号化フレーム700Kに対して動的に決定されてこのフレームを符号化するときに使用される。
【0060】
図7Cは、適応的伝達関数法のいくつかの実施形態に係る、異なるフォーカス範囲をビデオフレームの異なる領域に適用することを図式的に示す。
図7A及び7Bに示すように、いくつかの実施形態では、適応的伝達関数法は、フレーム、シーン、又はシーケンスに適用され得る。ただし、いくつかの実施形態では、適応的伝達関数法は、これらの代わりに又はこれらに加えて、
図7Cに示すように、フレーム内の2つ以上の領域702に適用され得る。この実施例では、フォーカス範囲710Fがフレーム700Lの領域702Aに対して動的に決定されてこの領域を符号化するときに使用され、フォーカス範囲710Gがフレーム700Lの領域702Bに対して動的に決定されてこの領域を符号化するときに使用され、フォーカス範囲710Hがフレーム700Lの領域702Cに対して動的に決定されてこの領域を符号化するときに使用される。様々な実施形態では、適応的伝達関数法に従って符号化される領域702は矩形であってもよく、又は任意に決定された不規則な形状を含むがこれらに限られない他の形状であってもよい。いくつかの実施形態では、適応的伝達関数法に従って符号化される各フレーム内に、一定の数の領域702が存在し得る。いくつかの実施形態では、適応的伝達関数法に従って符号化される領域702の数及び/又は領域702の形状は、各フレーム、シーン、又はシーケンスに対して決定され得る。いくつかの実施形態では、符号器によって生成され復号器へと伝達される形式メタデータは、フォーカス範囲、量子化パラメータ、及びフレーム(単数又は複数)700内の各領域702を符号化するために使用される他の情報を示し得る。二次又は内部伝達関数がコーデック内で使用される実施形態では、形式メタデータは、二次伝達関数から一次伝達関数へと変換するための情報を含み得る。領域702の数が変動する実施形態では、領域702の実際の数の指示が、復号器へと伝達されるメタデータ内に含まれ得る。いくつかの実施形態では、領域702の座標及び形状に関する情報も、復号器へと伝達されるメタデータ内に含まれ得る。
【0061】
処理されている入力ビデオ内の1つの領域又はフレームから次の領域又はフレームまでのビデオコンテンツでは、適応的伝達関数法で使用される様々なパラメータ(例えば、フォーカス範囲、量子化パラメータなど)が、特にシーン内で類似し得る。このため、いくつかの実施形態では、適応的伝達関数法は、符号器内で、これらの適応的伝達関数のパラメータのうちの1つ以上のイントラフレーム(空間的)及び/又はインターフレーム(時間的)予測を、例えばAVC及びHEVCコーデックなどのコーデック内で重み付け予測処理を利用することによって提供し得る。インターフレーム(時間的)予測では、現在のフレームのコンテンツに対するパラメータのうちの1つ以上を予測するときに、1つ以上の時間的に過去又は未来のフレームからの以前に処理された基準データが使用され得る。イントラフレーム(空間的)予測では、現在のブロック又は領域内のコンテンツに対するパラメータのうちの1つ以上を予測するときに、フレーム内の1つ以上の隣接するブロック又は領域からのデータが使用され得る。
【0062】
図8は、いくつかの実施形態に係る、適応的伝達関数法をビデオ入力データに適用して、符号化ビデオデータを生成するビデオ符号化法の高レベルのフローチャートである。
図8の800に示すように、Nビット(例えば、12ビット、14ビット、16ビットなど)のビデオデータが符号化のために受信され得る。いくつかの実施形態では、ビデオストリームのフレームは符号器によって逐次処理される。いくつかの実施形態では、入力ビデオフレームは、符号器によってピクセルのブロック(例えば、マクロブロック、CU、PU、又はCTU)に従って再分割及び処理される。
【0063】
図8の802に示すように、フォーカス範囲が入力ビデオデータに対して決定され得る。いくつかの実施形態では、フォーカス範囲は、符号器に入力されたビデオのシーン、シーケンス、又はフレーム毎に動的に決定され得る。いくつかの実施形態では、フォーカス範囲は、フレーム内の2つ以上の領域のそれぞれに対して動的に決定され得る。いくつかの実施形態では、フォーカス範囲は、処理されている現在のシーン、シーケンス、フレーム、又は領域の1つ以上の特性(例えば、明度、テクスチャなど)に従って決定され得る。フォーカス範囲は、現在のシーン、シーケンス、フレーム、又は領域内の画像データに対する人間の視覚系の有効ダイナミックレンジ(例えば、輝度)を表す。例えば、入力ビデオデータ内の輝度に対するダイナミックレンジが0~10000cd/m
2である場合、様々なシーン、シーケンス、フレーム、又は領域の特定の特性に基づく例示的なフォーカス範囲は、2000~4000cd/m
2、0~1000cd/m
2、1000~2500cd/m
2などであり得る。
図4は、いくつかの実施形態に係る、Nビットの入力ビデオデータに対して決定された例示的なフォーカス範囲を図式的に示す。
【0064】
図8の804に示すように、フォーカス範囲内のNビットのビデオデータは、伝達関数に従ってCビットのビデオデータへとマッピングされ得る。いくつかの実施形態では、入力ビデオデータは決定されたフォーカス範囲に従ってクロップされてもよく、その後、クロップされたデータ値は、符号器内でビデオデータを表現するために使用される伝達関数に従って、符号器内で使用可能なCビットへと適切にマッピング(例えば、量子化)されてもよい。
図5は、いくつかの実施形態に係る、伝達関数に従って、例示的なフォーカス範囲内のNビットの入力ビデオデータを、符号器内で使用可能なCビットへとマッピングすることの実施例を図式的に示す。実施形態では、符号器内でNビットの入力ビデオデータ及びCビットのビデオデータを表現するために、様々な伝達関数が使用され得る。実施形態でビデオデータを表現するために使用され得る伝達関数の実施例は、限定するものではないが、べき乗則ガンマベースの伝達関数、対数ベースの伝達関数、及びPQ伝達関数などの人間の視覚認知に基づく伝達関数を含み得る。いくつかの実施形態では、符号器内でCビットのビデオデータを表現するために使用される伝達関数は、Nビットの入力ビデオデータを表現するために使用される伝達関数と同じであり得る。ただし、他の実施形態では、入力ビデオデータは一次伝達関数に従って表現されてもよく、符号器内でビデオデータを表現するために異なる(二次)伝達関数が使用されてもよい。二次伝達関数は、例えば、ビデオ信号を、一次伝達関数を使用してなされ得るものよりも高い精度で符号器内で表現し得る。
【0065】
図8の要素806に示すように、要素800~804で実行される適応的伝達関数の処理は、処理されるNビットの入力ビデオデータ(例えば、シーン、シーケンス、フレーム、又は領域)が存在する限り繰り返される。
図8の810に示すように、要素800~804で適応的伝達関数法によって出力されたCビットのビデオデータの各ユニット(例えば、シーン、シーケンス、フレーム、又は領域)は、符号器に入力され、かつ符号器によって処理される。前述したように、いくつかの実施形態では、Nビットの入力ビデオデータは、ピクセルのブロック(例えばマクロブロック、CU、PU、又はCTU)に従って、適応的伝達関数モジュール又は構成要素によって再分割及び処理され、かつCビットのビデオデータとして符号器へと伝達され得る。
【0066】
図8の810に示すように、符号器の1つ以上の構成要素は、Cビットのビデオデータを処理して、符号化(及び圧縮)ビデオデータ出力(例えば、CAVLC又はCABAC出力)を生成し得る。いくつかの実施形態では、符号器は、H.264/AVC形式又はH.265/HEVC形式などの圧縮ビデオ形式に従って、Cビットのビデオ入力データを符号化し得る。ただし、他の符号化形式が使用されてもよい。いくつかの実施形態では、フォーカス範囲、伝達関数、量子化パラメータ、及び各シーン、シーケンス、フレーム、又は領域を符号化するときに使用される他の形式情報が、符号化出力ストリーム内にメタデータとして埋め込まれてもよく、又はさもなければ復号器(単数又は複数)へとシグナリングされてもよい。Cビットのビデオデータを処理して、符号化出力ストリームを生成するための例示的な符号器が、
図2の符号器200によって示される。いくつかの実装では、メタデータを含む符号化出力ストリームが、例えばダイレクトメモリアクセス(DMA)を介してメモリに書き込まれ得る。いくつかの実装では、出力ストリーム及びメタデータをメモリに書き込むことの代わりに又はそれに加えて、符号化出力ストリーム及びメタデータが少なくとも1つの復号器に直接送信され得る。復号器は、符号器と同じデバイス又は装置上に実装されるか、又は異なるデバイス又は装置上に実装され得る。
【0067】
図9は、いくつかの実施形態に係る、適応的伝達関数法に従って符号化ビデオデータを復号しかつ復号ビデオデータを拡張して、表示形式のビデオデータを生成するビデオ復号法の高レベルのフローチャートである。
図9の900に示すように、復号器は、符号化データ(例えば、CAVLC又はCABAC符号化され、圧縮されたデータ)を取得し得る。符号化データは、例えば、メモリから読み取られるか、符号器から受信されるか、又は他の方法で取得され得る。
図9の902に示すように、復号器は、符号化データを復号して、Cビットの復号ビデオデータ及び形式メタデータを生成し得る。いくつかの実施形態では、復号器は、H.264/AVC形式又はH.265/HEVC形式などの圧縮ビデオ形式に従って、符号化データを復号し得る。ただし、他の符号化/復号形式が使用されてもよい。符号化データから抽出された形式メタデータは、例えば、フォーカス範囲、伝達関数、量子化パラメータ、及び各シーン、シーケンス、フレーム、又は領域を符号化するときに使用された他の形式情報を含み得る。
【0068】
図9の要素904に示すように、900及び902で実行された復号は、符号化データが存在する限り続行され得る。
図9の910に示すように、復号器によって復号された復号データの各ユニット(例えば、各シーン、シーケンス、フレーム、又は領域)は、逆適応的伝達関数法に従って出力及び処理され得る。符号化データから抽出された形式メタデータの少なくとも一部はまた、逆適応的伝達関数法へと出力され得る。
【0069】
図9の910に示すように、逆適応的伝達関数法は、フォーカス範囲からのCビットの復号ビデオデータを動的に拡張して、HDR対応ディスプレイデバイスなどの目標デバイスへと出力される全ダイナミックレンジのDビットのビデオデータを生成し得る。拡張は、復号器によって符号化データから抽出されたそれぞれの形式メタデータに従って、所与のシーン、シーケンス、フレーム、又は領域に対して動的に実行され得る。
図6は、いくつかの実施形態に係る、復号ビデオデータをHDRデバイスの全ダイナミックレンジへと拡張することを図式的に示す。
一次及び二次伝達関数
【0070】
本明細書で説明されるような適応的伝達関数法の実施形態で、ビデオデータを表現するために使用され得る伝達関数の実施例は、限定するものではないが、べき乗則ガンマベースの伝達関数、対数(対数ベースの)伝達関数、及びDolby Laboratories,Inc.によって提案された知覚量子化(PQ)伝達関数などの人間の視覚認知に基づく伝達関数を含み得る。
【0071】
いくつかの実施形態では、コーデック内でビデオデータを表現するために使用される伝達関数は、入力ビデオデータを表現するために使用される伝達関数(一次伝達関数と呼ばれる)と同じであり得る。これらの実施形態では、入力ビデオデータは、シーン、シーケンス、フレーム、又は領域に対して決定されたフォーカス範囲に従ってクロップされ、その後、一次伝達関数に従って、コーデックの使用可能なビットへとマッピング(例えば、量子化)され得る。フォーカス範囲、クロップ及びマッピング(例えば、量子化)パラメータは、逆適応的伝達関数法が復号器で実行されて、HDR対応ディスプレイなどのデバイスのための全範囲ビデオデータが生成され得るように、例えば符号化出力ストリーム内のメタデータとして復号器へとシグナリングされ得る。
【0072】
ただし、いくつかの実施形態では、一次伝達関数と異なる伝達関数(内部又は二次伝達関数と呼ばれる)が、コーデック内でビデオデータを表現するために使用され得る。これらの実施形態では、入力ビデオデータは、シーン、シーケンス、フレーム、又は領域に対して決定されたフォーカス範囲に従ってクロップされ、その後、二次伝達関数に従って、コーデックの使用可能なビットへとマッピング、スケーリング、又は量子化され得る。二次伝達関数は、例えば、ビデオ信号が、一次伝達関数を使用してなされ得るものよりも高い精度でコーデック内で表現されることを可能にし得る。これらの実施形態では、フォーカス範囲、クロップ及びマッピング(例えば、量子化)パラメータに加えて、ビデオデータを二次伝達関数から一次伝達関数へと変換する方法に関する情報も、例えば出力ストリーム内のメタデータとして復号器へとシグナリングされ得る。この情報は、限定するものではないが、二次伝達関数の種類(例えば、べき乗則ガンマ、対数、PQなど)及び伝達関数に対する1つ以上の制御パラメータを含み得る。いくつかの実施形態では、一次伝達関数を記述する情報もシグナリングされ得る。
【0073】
適応的伝達関数法のいくつかの実施形態では、コーデック内で使用される内部又は二次伝達関数は、元の又は一次伝達関数の1つ以上の部分が内部表現のために保持され、異なる伝達関数が残りの内部表現に対して使用され得る、不連続的な伝達関数表現であり得る。これらの実施形態では、保持される一次伝達関数の領域(単数又は複数)が、出力ストリーム内で、例えばテーブル表現を使用して正確に記述及びシグナリングされ得る。異なる伝達関数に関する情報もシグナリングされ得る。
【0074】
図7A~
図7Cに示すように、適応的伝達関数法の実施形態は、フレームレベル又はフレーム内の領域レベルで実行され得る。このため、隣接するか若しくは近傍の符号化及び復号ビデオフレーム又はフレーム内の領域は、大幅に異なる伝達関数表現を有する場合があり、これは、例えば、符号化(例えば、動き推定、動き補償、及び再構成)に悪影響を及ぼし得る。その理由は、符号化されている現在のフレーム又は領域の伝達関数表現が、符号化処理で使用され得る隣接するフレーム又は領域の伝達関数表現と大幅に異なり得るためである。ただし、いくつかの実施形態では、高度ビデオ符号化(AVC)及び高効率ビデオ符号化(HEVC)形式などの符号化形式を使用してコーデック内で提供され得る重み付け予測が、符号化を実質的に改善するために利用され得る。これらの実施形態では、重み付けパラメータは、重み付け予測処理で使用することができるフレーム又は領域に対して伝達関数表現内の差を調整するために提供され得る。重み付けパラメータは、例えばパラメータをフレーム又はブロックのメタデータ内に含めることによってシグナリングされ得る。例えば、AVC又はHEVC符号器では、重み付けパラメータが、スライスヘッダのメタデータ内でシグナリングされてもよく、かつAVCのマクロブロック内又はHEVCの予測ユニット(PU)内の参照インデックスを変更することによって選択されてもよい。いくつかの実施形態では、重み付け情報は、スライスヘッダに部分的に依存するか又は全く依存せずに、ブロック単位で明示的にシグナリングされ得る。例えば、いくつかの実施形態では、一次又は基本重みがスライスヘッダ内で、一次重みを調整するために使用され得るデルタ又は差がブロックレベルを伴ってシグナリングされ得る。いくつかの実施形態では、重み付けパラメータは色重み付け情報も含み得る。いくつかの実施形態では、これらの重み付けパラメータは、インターフレーム予測だけでなくイントラフレーム予測でも使用され得る。例えば、イントラフレーム予測では、以前に処理された隣接するか若しくは近傍のデータ(例えば、ピクセル又はピクセルのブロック)をそのまま使用する代わりに又はそれに加えて、隣接するか若しくは近傍のサンプルの異なり得る伝達関数特性に従って予測子を調整するために使用され得る、追加の重み付け及びオフセットパラメータが提供され得る。
【0075】
コーデック内でデータを表現するために内部又は二次伝達関数が使用されるいくつかの実施形態では、重み付けパラメータに加えて、二次伝達関数に関する情報も、伝達関数の予測で使用するためにコーデック内でシグナリングされ得る。いくつかの実施形態では、例えば、二次伝達関数の情報が、全ての基準データインデックスを1つ以上の伝達関数調整パラメータと関連付ける伝達関数テーブルを使用して、スライスヘッダ内でシグナリングされ得る。いくつかの実施形態では、二次伝達関数の情報は、その代わりに又はそれに加えて、ブロックレベルでもシグナリングされ得る。不連続的な伝達関数表現を使用する実施形態では、複数の重み付けパラメータ(例えば、異なる明度値又はレベルに異なる影響を及ぼすパラメータ)がスライスヘッダ内及び/又はブロックレベルでシグナリングされ得る。
【0076】
コーデック内でデータを表現するために内部又は二次伝達関数が使用及び調整されるいくつかの実施形態では、シーン、シーケンス、フレーム、又は領域に対して使用される内部伝達関数及び調整が動的に決定され得る。いくつかの実施形態では、内部伝達関数は、現在のビデオフレーム又はフレームの領域(単数又は複数)の1つ以上の特性に基づき決定され得る。特性は、限定するものではないが、最低及びピーク明度、動き、テクスチャ、色、ヒストグラムモード、百分率の集中などを含み得る。いくつかの実施形態では、現在のフレームに対する内部伝達関数を決定することはまた、時間的に過去及び/又は未来のフレームを基準フレームとして利用し得る。いくつかの実施形態では、例えば、内部伝達関数の決定は、ビデオ又はビデオシーケンス内の現在のフレームの前及び/又は後に現れる、1つ、2つ、又はそれ以上の基準フレームのウィンドウを利用し得る。内部伝達関数を決定するときにウィンドウベースの情報を使用することによって、各フレームの特性の変化を算入し得るため、これは、さもなければ符号化に悪影響を及ぼし得る、内部伝達関数の調整での大幅な飛び越し若しくは不連続性を回避するか又は平滑化するのに役立つ場合がある。平滑な、ウィンドウベースの適応的伝達関数法は、符号化の目的で、かつ完全な/所望の伝達関数の範囲での最終的な信号の再構成に対して、より適切な伝達関数の選択を提供し得る。いくつかの実施形態では、ウィンドウベースの適応的伝達関数法は、内部伝達関数を決定するために、ウィンドウ内のフレームのピーク及び最低明度を評価することを含み得る。いくつかの実施形態では、明度ヒストグラム、ヒストグラムのモード、値の集中及びこれらの調整方法、並びにウィンドウ内のエリア又は領域のセグメンテーションが、内部伝達関数の決定のためにウィンドウベースの方法で評価され得る。いくつかの実施形態では、改善された性能を実現するために、この選択で、人間の視覚系に関する情報が利用され得る。
【0077】
いくつかの実施形態では、ウィンドウベースの適応的伝達関数法で使用される決定ウィンドウが重複せず、各フレーム又は領域に対する決定が別個に下されてもよい。いくつかの実施形態では、ウィンドウの境界に重複が存在し、現在のウィンドウの外部にある境界フレームが評価時に考慮されるがそれら自体が調整されなくてもよい。いくつかの実施形態では、適応処理、例えば内部伝達関数のための情報をウィンドウの距離に基づき重み付け平均することを通じて、境界フレームが複数のウィンドウの影響を受けてもよく、これは、隣接するウィンドウ間の滑らかな遷移を実現するのに役立つ場合がある。いくつかの実施形態では、内部伝達関数に関するウィンドウベースの決定処理は、各フレームの内部伝達関数が、フレームの独自の特性並びに1つ以上の時間的に過去及び/又は未来のフレーム及び/又はウィンドウの特性に基づき決定される、「実行中のウィンドウ」手法に基づいてもよい。いくつかの実施形態では、過去及び/又は未来のフレーム及び/又はウィンドウの内部伝達関数は、現在のフレームに対する内部伝達関数を決定するときにも利用され得る。いくつかの実施形態では、前のパスで予め選択された内部伝達関数の動作及び性能を考慮して後続の内部伝達関数が最適化され、それによって、最終的な伝達関数の目標を考慮した、より優れた符号化効率及びより優れたレンダリングを実現する、マルチパス手法が実行され得る。
【0078】
いくつかの実施形態では、内部伝達関数の決定及び調整(例えば、範囲、種類、ビット深度など)は、符号化されているビデオデータの特性に基づいてもよい。いくつかの実施形態では、該当する信号に対する特定の伝達関数の圧縮機能又は特性も、内部伝達関数を選択及び/又は調整するときに考慮され得る。いくつかの実施形態では、その代わりに又はそれに加えて、内部伝達関数の決定及び調整が、1つ以上の目標ディスプレイ及びそれらの特性又は制限に基づいてもよい。例えば、一次伝達関数によってサポートされているダイナミックレンジに比べて限定されたダイナミックレンジを有するディスプレイが目標であることがわかっている場合、目標ディスプレイの範囲外の値を圧縮された符号化信号内に含める意味がないことがある。代わりに、ディスプレイのダイナミックレンジに対する信号の最善の適合性を提供する内部伝達関数表現が決定されてもよく、これは、その特定のディスプレイの機能に合った、より適切な信号の圧縮表現を可能にし得る。いくつかの実施形態では、複数のディスプレイがコーデックによってサポートされている場合、ダイナミックレンジがそれらのディスプレイのために選択されてもよく、かつ、選択されたダイナミックレンジに対する最善の適合性を提供する内部伝達関数表現が決定されてもよい。例えば、最善の機能を有する(例えば最も高いダイナミックレンジを有する)ディスプレイが選択されてもよく、かつ全てのディスプレイのためのビデオ出力を生成するために、そのダイナミックレンジが内部伝達関数を調整するときに使用されてもよい。別の実施例として、ダイナミックレンジの選択は、ディスプレイの1つ以上の特性(例えば、ダイナミックレンジ)が(例えば、重要度又は他の要因を基準に決定されるか又は示される、ディスプレイの順位付けに基づき)重み付けされ、かつ内部伝達関数がそれに応じて調整され得る、価格付けモデルに基づいてもよい。
【0079】
本明細書で説明されるようなビデオ符号化及び復号システム又はコーデックに対する適応的伝達関数法の実施形態は、コーデックの複雑性(例えばビット深度)を妥当な範囲内に留めながら、拡張ダイナミックレンジ又は高ダイナミックレンジを(符号器から)シグナリングし、かつ(符号器及び復号器から)サポートする能力を提供し得る。これは、ダイナミックレンジを拡張してHDR対応ディスプレイの全範囲を満たすことができるように、領域、フレーム、シーン、又はシーケンスレベルでのフォーカス範囲を動的に決定し、入力データをそのフォーカス範囲へとクロップし、クロップされたデータを入力ビデオのビット深度からコーデックのビット深度へとマッピングする一方で、領域、フレーム、シーン、又はシーケンスレベルで適切なパラメータ(例えば、フォーカス範囲、量子化パラメータなど)を符号器から復号器へとシグナリングすることによって実現され得る。更に、いくつかの実施形態では、異なるフレームが異なる伝達関数表現を使用して符号化されるときに、重み付け予測を実行するための適切なパラメータ(例えば、重みなど)がシグナリングされ得る。
例示的なデバイス及び装置
【0080】
図10~
図14は、それらの内部で又はそれらを使用して、本明細書で説明されるような、デジタルビデオ又は画像の様々な処理方法並びに表示方法及び装置の実施形態又は構成要素が実施され得るデバイス及び装置の非限定的な実施例を示す。
図10は例示的なSOCを示し、
図11はSOCを実装する例示的なデバイスを示す。
図12は、本明細書で説明される方法及び装置を実施し得る例示的なコンピュータシステムを示す。
図13及び14は、本明細書で説明される方法及び装置を実施し得る例示的な多機能デバイスを示す。
例示的なシステムオンチップ(SOC)
【0081】
ここで
図10を参照すると、実施形態で使用され得るシステムオンチップ(SOC)8000の一実施形態のブロック図。SOC8000は、メモリ8800に連結されて示されている。名前により示されるように、SOC8000の構成要素は、集積回路の「チップ」としての単一の半導体基板の上に集積化することができる。いくつかの実施形態では、構成要素は、システムの2以上の個別のチップ上に、実装してもよい。しかし、本明細書では、SOC8000を例として用いる。図示されている実施形態では、SOC8000の構成要素は、中央処理装置(CPU)複合体8020、オンチップ周辺装置構成要素8040A~8040C(より短く、「周辺装置」)、メモリコントローラ(memory controller、MC)8030、及び通信ファブリック8010を含む。構成要素8020、8030、及び8040A~8040Cは全て通信ファブリック8010に結合され得る。メモリコントローラ8030は使用中、メモリ8800に結合され得、そして、周辺装置8040Bは使用中、外部インタフェース8900に結合され得る。例示した実施形態では、CPU複合体8020には、1つ以上のプロセッサ(P)8024及びレベル2(L2)キャッシュ8022が含まれる。
【0082】
周辺装置8040A~8040Bは、SOC8000に含まれる更なるハードウェア機能の任意の集合とすることができる。例えば、周辺装置8040A~8040Bは、カメラ又は他の画像センサからの画像キャプチャデータを処理するように構成された画像信号プロセッサ、1つ以上のディスプレイデバイス上にビデオデータを表示するように構成されたディスプレイコントローラ、グラフィック処理ユニット(graphics processing unit、GPU)、ビデオ符号器/復号器又はコーデック、スケーラ、ロテータ、ブレンダなどのビデオ周辺装置を含み得る。周辺装置は、マイクロフォン、スピーカ、マイクロフォン及びスピーカへのインタフェース、オーディオプロセッサ、デジタル信号プロセッサ、ミキサなどのオーディオ周辺装置を含み得る。周辺装置は、ユニバーサルシリアルバス(Universal Serial Bus、USB)、PCI Express(PCIe)を含む周辺装置構成要素相互接続(peripheral component interconnect、PCI)、シリアル及びパラレルポートなどのインタフェースを含む、SOC8000の外部にある様々なインタフェース8900のための周辺装置インタフェースコントローラ(例えば周辺装置8040B)を含み得る。周辺装置は、メディアアクセスコントローラ(media access controller、MAC)などのネットワーキング周辺装置を含み得る。ハードウェアの任意の集合を含むことができる。
【0083】
CPU複合体8020は、SOC8000のCPUの役割を果たす1つ以上のCPUプロセッサ8024含むことができる。システムのCPUには、オペレーティングシステムなどのシステムの主制御ソフトウェアを実行するプロセッサ(単数又は複数)が含まれる。概して、使用時にCPUによって実行されるソフトウェアは、システムの所望の機能性を実現するためにシステムの他の構成要素を制御してもよい。プロセッサ8024は、アプリケーションプログラムなどの他のソフトウェアも、更に実行することができる。アプリケーションプログラムは、ユーザ機能を提供することができ、より下位のデバイス制御に関して、オベレーティングシステムに依存してもよい。したがって、プロセッサ8024はまた、アプリケーションプロセッサと呼ぶことができる。CPU複合体8020は、L2キャッシュ8022、及び/又はシステムの他の構成要素とのインタフェース(例えば、通信ファブリック8010とのインタフェース)などの他のハードウェアを更に含むことができる。概して、プロセッサは、そのプロセッサによって実行される命令セットアーキテクチャ内で定義された命令を実行するように構成される任意の回路及び/又はマイクロコードを含んでもよい。命令を実行したことに応答してプロセッサが行う命令及びデータは、一般的にはメモリ8800に記憶され得るが、周辺装置へのダイレクトプロセッサアクセスについても同様に特定の命令を規定することができる。プロセッサは、集積回路上に他の構成要素と共にシステムオンチップ(SOC 8000)又は他の一体化レベルとして実装されるプロセッサコアを包含してもよい。プロセッサは、別個のマイクロプロセッサ、マルチチップモジュール実装形態内に一体化されるプロセッサコア及び/又はマイクロプロセッサ、複数の集積回路として実装されるプロセッサなどを更に包含してもよい。
【0084】
メモリコントローラ8030は、SOC8000の他の構成要素からのメモリ操作を受信して、メモリ操作を完了するためにメモリ8800にアクセスする回路を、通常、含むことができる。メモリコントローラ8030は、任意の形式のメモリ8800にアクセスするように構成することができる。例えば、メモリ8800は、スタティックランダムアクセスメモリ(SRAM)、ダブルデータレート(DDR、DDR2、DDR3、その他)DRAMを含む同期DRAM(SDRAM)などのダイナミックRAM(DRAM)であってもよい。DDR DRAMの低電力/モバイルバージョンをサポートすることができる(例えば、LPDDR、mDDR、その他)。メモリコントローラ8030は、操作を順序付けし(及び場合によっては、再順序付けし)、メモリ8800へ操作を提示するための、メモリ操作のための待ち行列を含んでもよい。メモリコントローラ8030は、メモリへの書き込みを待っている書き込みデータ、及びメモリ操作の送信元への返送を待っている読み出しデータを記憶するためのデータバッファを更に含んでもよい。いくつかの実施形態では、メモリコントローラ8030は、最近アクセスされたメモリデータを記憶するためのメモリキャッシュを含み得る。SOC実装形態では、例えば、メモリキャッシュは、データが再びすぐにアクセスされると予想される場合には、メモリ8800からのデータの再アクセスを回避することによって、SOC内の電力消費を低減し得る。メモリキャッシュは、特定の構成要素だけに貢献するL2キャッシュ8022又はプロセッサ8024のキャッシュなどの専用のキャッシュとは対照的に、システムキャッシュと呼ぶこともできる。更に、いくつかの実施形態では、システムキャッシュはメモリコントローラ8030内に配置される必要がない。
【0085】
一実施形態では、メモリ8800は、チップオンチップ構成又はパッケージオンパッケージ構成においてSOC8000と共にパッケージ化され得る。同様に、SOC8000とメモリ8800とのマルチチップモジュール構成を使用してもよい。かかる構成は、システム中の他の構成要素への(例えば、エンドポイント16A~16Bへの)送信よりも、(データ可観測性に関して)比較的セキュアであり得る。そのため、保護データは、暗号化せずにメモリ8800に常駐し得るが、SOC8000と外部エンドポイントとの間での交換のために保護データを暗号化してもよい。
【0086】
通信ファブリック8010は、SOC8000の構成要素間で通信するための任意の通信相互接続及びプロトコルとすることができる。通信ファブリック8010は、共有バス構成、クロスバー構成、及び、ブリッジを有する階層化されたバス、を含むバスベースとすることができる。通信ファブリック8010は、またパケットベースとすることもでき、ブリッジ、クロスバー、ポイントツーポイント、又は他の相互接続を有する階層構造とすることもできる。
【0087】
SOC8000の構成要素の数(及びCPU複合体8020内などの、
図10に示されているものについての下位構成要素の数)は実施形態によって異なり得ることに留意されたい。各構成要素/サブ構成要素の数は、
図10に示されるよりも多いか、又は、少ない場合がある。
【0088】
図11は、1つ以上の外部周辺装置9020及び外部メモリ8800に結合されるSOC8000の少なくとも1つの事例を含むシステム9000の一実施形態のブロック図である。SOC8000に供給電圧を供給すると共に、メモリ8800及び/又は周辺装置9020に1つ以上の供給電圧を供給する電力管理ユニット9010が提示されている。いくつかの実施形態では、SOC8000の2つ以上の事例が含まれ得る(及び2つ以上のメモリ8800も含まれ得る)。
【0089】
周辺装置9020は、システム9000の種類に応じて、任意の所望の回路を含み得る。例えば、一実施形態では、システム9000はモバイルデバイス(例えば、携帯情報端末(personal digital assistant、PDA)、スマートフォンなど)であってもよく、周辺装置9020は、WiFi(登録商標)、Bluetooth(登録商標)、セルラー、全地球測位システムなどの、様々な種類の無線通信用のデバイスを含んでもよい。周辺装置9020は、RAM記憶装置、ソリッドステート記憶装置、又はディスク記憶装置を含む追加の記憶装置も含み得る。周辺装置9020は、タッチディスプレイスクリーン又はマルチタッチディスプレイスクリーンを含むディスプレイスクリーン、キーボード又は他の入力デバイス、マイクロフォン、スピーカなどのユーザインタフェースデバイスを含み得る。他の実施形態では、システム9000は、任意の種類のコンピューティングシステム(例えばデスクトップパーソナルコンピュータ、ラップトップ、ワークステーション、ネットトップなど)であり得る。
【0090】
外部メモリ8800は、任意の種類のメモリを含み得る。例えば、外部メモリ8800は、SRAM、シンクロナスDRAM(SDRAM)、ダブルデータレート(DDR、DDR2、DDR3など)SDRAM、RAMBUS DRAM、DDR DRAMの低電力版(例えばLPDDR、mDDRなど)などのダイナミックRAM(DRAM)であり得る。外部メモリ8800は、メモリデバイスが搭載される、シングルインラインメモリモジュール(SIMM)、デュアルインラインメモリモジュール(DIMM)などの1つ以上のメモリモジュールを含み得る。代替的に、外部メモリ8800は、チップオンチップ又はパッケージオンパッケージの実装内のSOC8000上に搭載された1つ以上のメモリデバイスを含み得る。
多機能デバイスの実施例
【0091】
図13は、いくつかの実施形態に係るポータブル多機能デバイスのブロック図である。いくつかの実施形態では、デバイスは、PDA、カメラ、ビデオキャプチャ、及び/又は音楽再生機能などの他の機能も含む、モバイル電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的な実施形態は、限定を伴わずに、California州CupertinoのApple Inc.のiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含む。タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたラップトップ、携帯電話、スマートフォン、パッド又はタブレットコンピュータなどの他のポータブル電子デバイスも使用され得る。また、いくつかの実施形態では、このデバイスはポータブル通信デバイスではなく、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を備えたデスクトップコンピュータであることを理解されたい。いくつかの実施形態では、デバイスは向きセンサ(例えば、ゲームコントローラ内の向きセンサ)を有するゲームコンピュータである。他の実施形態では、デバイスはポータブル通信デバイスではなく、カメラ及び/又はビデオカメラである。
【0092】
以下の論考では、ディスプレイ及びタッチ感知面を備える電子デバイスを説明する。しかしながら、この電子デバイスは、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインタフェースデバイスを含み得ることを理解されたい。
【0093】
そのデバイスは、一般的に、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽再生アプリケーション、及び/又はデジタルビデオ再生アプリケーションのうちの1つ以上など、様々なアプリケーションをサポートする。
【0094】
そのデバイス上で実行できる様々なアプリケーションは、タッチ感知面など、少なくとも1つの共通の物理ユーザインタフェースデバイスを使用することができる。タッチ感知面の1つ以上の機能並びにデバイス上に表示される対応する情報を、アプリケーション毎に及び/若しくはそれぞれのアプリケーション内で調整し、並びに/又は変更することができる。このように、そのデバイスの共通の物理アーキテクチャ(タッチ感知面など)は、ユーザにとって直観的及び透過的なユーザインタフェースを有する様々なアプリケーションをサポートすることができる。
【0095】
デバイス2100は、メモリ2102(1つ以上のコンピュータ可読記憶媒体を含み得る)、メモリコントローラ2122、1つ以上の処理ユニット(CPU)2120、周辺装置インタフェース2118、RF回路2108、オーディオ回路2110、スピーカ2111、タッチ感知ディスプレイシステム2112,マイクロフォン2113、入出力(I/O)サブシステム2106、他の入力制御デバイス2116、及び外部ポート2124を備え得る。デバイス2100は1つ以上の光センサ又はカメラ2164を含んでもよい。これらの構成要素は1つ以上の通信バス又は信号線2103を介して通信してもよい。
【0096】
デバイス2100は、ポータブル多機能デバイスの一例に過ぎず、デバイス2100は、示さているよりも多くの又は少ない構成要素を備えていてもよく、2つ以上の構成要素を組み合わせていてもよく、構成要素の異なる構成又は配置を有していてもよいということを理解されたい。
図13に示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めた、ハードウェア、ソフトウェア、あるいはハードウェア及びソフトウェアの組み合わせとして実装することができる。
【0097】
メモリ2102は高速ランダムアクセスメモリを含んでよく、また、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイスなどの、不揮発性メモリを含んでもよい。CPU2120及び周辺機器インタフェース2118などの、デバイス2100の他の構成要素によるメモリ2102へのアクセスはメモリコントローラ2122によって制御されてもよい。
【0098】
周辺機器インタフェース2118を使用して、このデバイスの入力及び出力周辺機器を、CPU2120及びメモリ2102に連結することができる。1つ以上のプロセッサ2120は、デバイス2100のための様々な機能を実行し並びにデータ処理を行う、メモリ2102に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを走らせたり、又は実行したりする。
【0099】
いくつかの実施形態では、周辺機器インタフェース2118、CPU2120、及びメモリコントローラ2122はチップ2104などの単一チップ上に実装されてもよい。一部の他の実施形態では、それらは、別個のチップ上に実装することができる。
【0100】
RF(無線周波数)回路2108は、電磁信号とも呼ばれるRF信号を送受信する。RF回路2108は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路2108は、これらの機能を実行するために、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、符号器/復号器(コーデック)チップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどを含む、周知の回路を含んでもよい。RF回路2108は、無線通信により、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネットなどのネットワーク、イントラネット及び/又はセルラー電話ネットワークなどの無線ネットワーク、無線ローカルエリアネットワーク(LAN)及び/又はメトロポリタンエリアネットワーク(MAN)、並びにその他のデバイスと通信を行ってもよい。無線通信は、Global System for Mobile Communications(GSM)、Enhanced Data GSM Environment(EDGE)、高速ダウンリンクパケット接続(HSDPA)、高速アップリンクパケット接続(HSUPA)、広帯域符号分割多元接続(W-CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、Wireless Fidelity(Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、及び/若しくはIEEE 802.11n)、ボイスオーバーインターネットプロトコル(VoIP)、Wi-MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(EMAP)及び/又はポストオフィスプロトコル(POP))、インスタントメッセージ(例えば、拡張可能なメッセージング及びプレゼンスプロトコル(XMPP)、Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions(SIMPLE)、Instant Messaging and Presence Service(IMPS))、及び/若しくはショートメッセージサービス(SMS)、又は本文書の出願日にまだ開発されていない通信プロトコルを含む任意の他の好適な通信プロトコルを含むがこれらに限られない複数の通信標準規格、通信プロトコル、及び通信技術のいずれをも使用することができる。
【0101】
オーディオ回路2110、スピーカ2111、及びマイクロフォン2113は、ユーザとデバイス2100との間のオーディオインタフェースを提供する。音声回路2110は、周辺機器インタフェース2118から音声データを受信し、音声データを電気信号に変換し、電気信号をスピーカ2111に送信する。スピーカ2111は、電気信号を人間の可聴音波に変換する。音声回路2110は、マイクロフォン2113により音波から変換された電気信号も受信する。音声回路2110は、電気信号を音声データに変換し、処理するために音声データを周辺機器インタフェース2118に送出する。オーディオデータは周辺機器インタフェース2118によって、メモリ2102及び/又はRF回路機構2108から取得され、かつ/あるいはメモリ2102及び/又はRF回路機構2108に送信されてもよい。いくつかの実施形態では、オーディオ回路2110はヘッドセットジャックも備える。ヘッドセットジャックは、オーディオ回路2110と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の両方を持つヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
【0102】
I/Oサブシステム2106は、周辺機器インタフェース2118に、タッチスクリーン2112及び他の入力制御デバイス2116などのデバイス2100の入出力周辺機器を連結する。I/Oサブシステム2106は、ディスプレイコントローラ2156、並びに他の入力制御デバイス2116のための1つ以上の入力コントローラ2160を含むことができる。1つ以上の入力コントローラ2160は、他の入力制御デバイス2116から/へ電気信号を受信/送信する。他の入力制御デバイス2116は、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含んでもよい。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)2160は、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合されてもよい(又は、いずれにも結合されなくてもよい)。1つ以上のボタンは、スピーカ2111及び/又はマイクロフォン2113の音量調節のためのアップ/ダウンボタンを含み得る。1つ以上のボタンはプッシュボタンを含み得る。
【0103】
タッチ感知ディスプレイ2112は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ2156は、タッチスクリーン2112から/へ電気信号を受信し及び/又は送信する。タッチスクリーン2112は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(「グラフィック」と総称される)を含んでもよい。いくつかの実施形態では、これらの視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【0104】
タッチスクリーン2112は、触覚及び/若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン2112及びディスプレイコントローラ2156(メモリ2102内の任意の関連モジュール及び/又は命令セットと共に)は、タッチスクリーン2112上で接触(及び任意の操作又は接触の中断)を検出し、検出された接触をタッチスクリーン2112上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。ある例示的な実施形態では、タッチスクリーン2112とユーザとの間の接触点は、ユーザの指に対応する。
【0105】
タッチスクリーン2112は、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を用いてもよいが、他の実施形態では、その他のディスプレイ技術が使用されてもよい。タッチスクリーン2112及びディスプレイコントローラ2156は、限定するものではないが、静電容量技術、抵抗性技術、赤外線技術、及び表面超音波技術、並びにタッチスクリーン2112との1つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素を含む、現在知られているか若しくは今後開発される様々なタッチ感知技術のうちのいずれかを使用して、接触及びそのあらゆる移動若しくは中断を検出してもよい。ある例示的な実施形態では、California州CupertinoのAppleInc.からのiPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)などにおいて見られるような、投影された相互キャパシタンス検知技術が使用されている。
【0106】
タッチスクリーン2112は、100dpiを超えるビデオ解像度を有してもよい。いくつかの実施形態において、タッチスクリーンは約160dpiの映像解像度を有する。ユーザは、スタイラス、指などの、任意の好適な物体又は付属物を使用して、タッチスクリーン2112に接触してよい。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態において、デバイスは、粗い指に基づく入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0107】
いくつかの実施形態では、タッチスクリーン2112に加えて、デバイス2100は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド(図示せず)を含んでもよい。いくつかの実施形態において、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン2112とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部であってもよい。
【0108】
デバイス2100はまた、様々な構成要素に電力を供給するための電力システム2162をも含む。電力システム2162は、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC:alternating current))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連付けられる任意の他の構成要素を含んでもよい。
【0109】
デバイス2100は1つ以上の光センサ又はカメラ2164も含んでもよい。
図13は、I/Oサブシステム2106内の光センサコントローラ2158に結合された、光センサを示す。光センサ2164は、例えば、電荷結合素子(CCD:charge-coupled device)又は相補的金属酸化物半導体(CMOS:complementary metal-oxide semiconductor)フォトトランジスタ又はフォトセンサを含んでもよい。光センサ2164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール2143(カメラモジュールとも呼ばれる)と連動して、光センサ2164は静止画像及び/又はビデオシーケンスを取り込んでもよい。いくつかの実施形態では、少なくとも1つの光センサが、デバイスの前面のタッチスクリーンディスプレイ2112の反対側である、デバイス2100の背面に配置されてもよい。いくつかの実施形態では、静止及び/又はビデオ画像の取得のためのビューファインダとして、タッチスクリーンディスプレイが使用されてもよい。いくつかの実施形態では、その代わりに又はそれに加えて、少なくとも1つの光センサがデバイスの前面に配置されてもよい。
【0110】
デバイス2100は1つ以上の近接センサ2166を含んでもよい。
図13は、周辺機器インタフェース2118に結合された、近接センサ2166を示す。その代わりに、近接センサ2166は、I/Oサブシステム2106内の入力コントローラ2160に結合されてもよい。いくつかの実施形態において、多機能機器がユーザの耳の近くに配置されている場合(例えば、ユーザが電話通話を行っている場合)、近接センサがオフになり、タッチスクリーン2112が無効になる。
【0111】
デバイス2100は1つ以上の向きセンサ2168も含んでもよい。いくつかの実施形態では、1つ以上の向きセンサは1つ以上の加速度計(例えば、1つ以上の直線加速度計及び/又は1つ以上の回転加速度計)を含む。いくつかの実施形態では、1つ以上の向きセンサは1つ以上のジャイロスコープを含む。いくつかの実施形態では、1つ以上の向きセンサは1つ以上の磁気計を含む。いくつかの実施形態では、1つ以上の向きセンサは、全地球測位システム(GPS)、全地球的航法衛星システム(Global Navigation Satellite System、GLONASS)、及び/又は他の全地球的ナビゲーションシステム受信機のうちの1つ以上を含む。GPS、GLONASS、及び/又は他の全地球的ナビゲーションシステム受信機は、デバイス2100の位置及び向き(例えば、縦長又は横長)に関する情報を取得するために使用されてもよい。いくつかの実施形態では、1つ以上の向きセンサは向き/回転センサの任意の組み合わせを含む。
図13は、周辺装置インタフェース2118に結合された1つ以上の向きセンサ2168を示す。その代わりに、1つ以上の向きセンサ2168は、I/Oサブシステム2106内の入力コントローラ2160に結合されてもよい。いくつかの実施形態では、情報は、1つ以上の向きセンサから受信したデータの分析に基づき、縦長表示又は横長表示でタッチスクリーンディスプレイ上に表示される。
【0112】
いくつかの実施形態では、デバイス2100は、環境光センサ及び動き検出器を含むがこれらに限られない1つ以上の他のセンサ(図示せず)も含んでもよい。これらのセンサは、周辺装置インタフェース2118に結合されてもよく、又はその代わりに、I/Oサブシステム2106内の入力コントローラ2160に結合されてもよい。例えば、いくつかの実施形態では、デバイス2100は、ビデオ及び画像のキャプチャ、処理、及び表示アプリケーションで使用される環境光メトリックをデバイス2100の環境から収集するために使用され得る、少なくとも1つの前向き(ユーザから離れる)光センサ及び少なくとも1つの後ろ向き(ユーザに向かう)光センサを含んでもよい。
【0113】
いくつかの実施形態では、メモリ2102内に記憶されたソフトウェア構成要素は、オペレーティングシステム2126、通信モジュール2128、接触/動きモジュール(又は命令のセット)2130、グラフィックモジュール2132、テキスト入力モジュール2134、全地球測位システム(GPS)モジュール2135、及びアプリケーション2136を含む。更に、いくつかの実施形態では、メモリ2102はデバイス/グローバル内部状態2157を記憶する。デバイス/グローバル内部状態2157は、以下の1つ以上を含む:現在アクティブ状態のアプリケーションがあれば、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ2112の様々な領域を占有しているかを示す、表示状態、デバイスの様々なセンサ及び入力コントロールデバイス2116から得られる情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置情報。
【0114】
オペレーティングシステム2126(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェアコンポーネント及び/又はドライバを含み、様々なハードウェアとソフトウェアコンポーネントとの間の通信を容易にする。
【0115】
通信モジュール2128は、1つ以上の外部ポート2124を介して他のデバイスとの通信を容易にし、RF回路2108及び/又は外部ポート2124が受信したデータを処理するための様々なソフトウェア構成要素を含む。外部ポート2124(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を介して間接的に他のデバイスに連結するように適合される。いくつかの実施形態において、外部ポートは、iPod(AppleInc.の商標)デバイス上で使用される30ピンコネクタと同一の、又はこれに類似した及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0116】
接触/動きモジュール2130は、(ディスプレイコントローラ2156と関連して)タッチスクリーン2112及び他のタッチ感知デバイス(例えば、タッチパッド又は物理的なクリックホイール)との接触を検出することができる。接触/動きモジュール2130は、接触が生じたかどうかの判定(例えば、フィンガダウンイベントの検出)、接触の移動があるかどうかの判定及びタッチ感知面を横切る移動の追跡(例えば、1つ以上のフィンガドラッギングイベントの検出)、並びに接触が終わったかどうかの判定(例えば、フィンガアップイベント又は接触の中断の検出)など、接触の検出に関連する様々な動作を行うための様々なソフトウェアコンポーネントを含む。接触/動きモジュール2130は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動の判定は、接触点の速さ(大きさ)、速度(大きさ及び方向)、並びに/又は加速度(大きさ及び/若しくは方向の変化)の判定を含んでもよい。これらの操作は、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用することができる。いくつかの実施形態において、接触/移動モジュール2130及びディスプレイコントローラ2156は、タッチパッド上の接触を検出する。
【0117】
接触/動きモジュール2130は、ユーザによるジェスチャ入力を検出することができる。タッチ感知面上での異なるジェスチャは、異なる接触パターンを有する。したがって、特定の接触パターンを検出することによってジェスチャを検出することができる。例えば、指のタップジェスチャを検出することは、指を下ろすイベントを検出し、続いて(例えば、アイコンの位置での)その指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフする)イベントを検出することを含む。他の実施例として、タッチ感知面でのフィンガスワイプジェスチャの検出は、フィンガダウンイベントを検出し、続いて1つ以上のフィンガドラッグイベントを検出し、その後、フィンガアップ(リフトオフ)イベントを検出することを含む。
【0118】
グラフィックモジュール2132は、表示されるグラフィックの明度を変更するための構成要素を含む、タッチスクリーン2112又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々なソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【0119】
いくつかの実施形態において、グラフィックモジュール2132は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが割り当てられてもよい。グラフィックモジュール2132は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィックプロパティデータと共に、表示されるグラフィックを指定する1つ以上のコードを受信し、ディスプレイコントローラ2156に出力する画面画像データを生成する。
【0120】
テキスト入力モジュール2134は、グラフィックモジュール2132の構成要素であってもよく、テキスト入力を必要とする様々なアプリケーション内でテキストを入力するための、ソフトキーボードを提供する。
【0121】
GPSモジュール2135は、デバイスの位置を判定し、この情報を、様々なアプリケーション内で使用するために(例えば、位置に基づくダイヤル発呼で使用するために電話モジュール2138へ、写真/ビデオのメタデータとしてカメラモジュール2143へ、並びに、地図/ナビゲーションアプリケーションなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
【0122】
アプリケーション2136は、限定するものではないが、以下のモジュール(若しくは、命令のセット)、又はそれらの部分集合若しくは上位集合のうちの1つ以上を含んでもよい。
●電話モジュール2138、
●ビデオ会議モジュール2139、
●静止画像及び/又はビデオ画像処理用のカメラモジュール2143、
●画像管理モジュール2144、
●ブラウザモジュール2147、
●検索モジュール2151、
●ビデオ再生モジュール及び音楽再生モジュールから成ることができるビデオ及び音楽再生モジュール2152、及び/又は
●オンラインビデオモジュール2155。
【0123】
メモリ2102内に記憶され得る他のアプリケーション2136の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、コミュニケーション/ソーシャルメディアアプリケーション、地図アプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0124】
RF回路2108、オーディオ回路2110、スピーカ2111、マイクロフォン2113、タッチスクリーン2112、ディスプレイコントローラ2156、接触モジュール2130、グラフィックモジュール2132、及びテキスト入力モジュール2134と共に、電話モジュール2138は、電話番号に対応する一連の文字を入力し、アドレス帳内の1つ以上の電話番号にアクセスし、入力されている電話番号を修正し、それぞれの電話番号をダイヤルし、会話を遂行し、会話が完了した際に接続を切るか又は電話を切るために、使用されてもよい。上述のように、無線通信は、様々な通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用してもよい。
【0125】
RF回路2108、オーディオ回路2110、スピーカ2111、マイクロフォン2113、タッチスクリーン2112、ディスプレイコントローラ2156、光センサ2164、光センサコントローラ2158、接触/動きモジュール2130、グラフィックモジュール2132、テキスト入力モジュール2134、及び電話モジュール2138と共に、ビデオ会議モジュール2139は、ユーザの指示に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始し、行い、終了する実行可能命令を含む。
【0126】
タッチスクリーン2112、ディスプレイコントローラ2156、光センサ(単数又は複数)2164、光センサコントローラ2158、接触/動きモジュール2130、グラフィックモジュール2132、及び画像管理モジュール2144と共に、カメラモジュール2143は、静止画像又はビデオ(ビデオストリームを含む)をキャプチャしてメモリ2102内にそれらを記憶したり、静止画像又はビデオの特徴を変更したり、又はメモリ2102から静止画像若しくは動画を削除したりする実行可能命令を含む。
【0127】
タッチスクリーン2112、ディスプレイコントローラ2156、接触/動きモジュール2130、グラフィックモジュール2132、テキスト入力モジュール2134、及びカメラモジュール2143と共に、画像管理モジュール2144は、静止画像及び/又はビデオを配置し、修正し(例えば、編集し)及び別の方法で操作し、ラベルを付け、削除し、提示し(例えば、デジタルスライドショー又はアルバム内で)、並びに記憶したりする実行可能命令を含む。
【0128】
RF回路2108、タッチスクリーン2112、ディスプレイシステムコントローラ2156、接触/動きモジュール2130、グラフィックモジュール2132、及びテキスト入力モジュール2134と共に、ブラウザモジュール2147は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの指示に従い、インターネットをブラウズする実行可能命令を含む。
【0129】
タッチスクリーン2112、ディスプレイシステムコントローラ2156、接触/動きモジュール2130、グラフィックモジュール2132、及びテキスト入力モジュール2134と共に、検索モジュール2151は、ユーザの指示に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ2102内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能命令を含む。
【0130】
タッチスクリーン2112、ディスプレイシステムコントローラ2156、接触/動きモジュール2130、グラフィックモジュール2132、オーディオ回路2110、スピーカ2111、RF回路2108、及びブラウザモジュール2147と関連して、ビデオ及び音楽再生モジュール2152は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能命令、並びにビデオを(タッチスクリーン2112上又は外部ポート2124を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生する実行可能命令を含む。いくつかの実施形態では、デバイス2100は、iPod(Apple Inc.の商標)などのMP3プレーヤの機能性を含んでもよい。
【0131】
タッチスクリーン2112、ディスプレイシステムコントローラ2156、接触/動きモジュール2130、グラフィックモジュール2132、オーディオ回路2110、スピーカ2111、RF回路2108、テキスト入力モジュール2134、及びブラウザモジュール2147と共に、オンラインビデオモジュール2155は、ユーザがH.264/AVC形式又はH.265/HEVC形式などの1つ以上のビデオ形式のオンラインビデオにアクセスし、ブラウズし、受信し(例えば、ストリーミング及び/又はダウンロードによって)、再生し(例えば、タッチスクリーン上で又は外部ポート2124を介して接続された外部のディスプレイ上で)及び別の方法で管理できるようにする命令を含む。
【0132】
上記で識別されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行する実行可能命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(すなわち、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。いくつかの実施形態では、メモリ2102は、上記で識別されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ2102は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【0133】
いくつかの実施形態では、デバイス2100は、デバイス上の機能の既定のセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを介して実行されるデバイスである。デバイス2100の動作のための主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することにより、デバイス2100上の物理的な入力制御デバイス(プッシュボタン、ダイヤル、及び同様のものなど)の数を減らすことができる。
【0134】
排他的にタッチスクリーン及び/又はタッチパッドを介して実行することができる機能の既定のセットは、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザにタッチされると、デバイス2100上に表示することができる任意のユーザインタフェースから、メイン、ホーム、又はルートメニューへとデバイス2100をナビゲートする。そのような実施形態では、タッチパッドは、「メニューボタン」と称することができる。いくつかの他の実施形態において、メニューボタンは、タッチパッドの代わりに、物理的なプッシュボタン又は他の物理的な入力制御デバイスであってもよい。
【0135】
図14は、一部の実施形態による、タッチスクリーン2112を有するポータブル多機能デバイス2100を示す。タッチスクリーンは、ユーザインタフェース(UI)2200内に1つ以上のグラフィックを表示することができる。デバイスの2100のいくつかの実施形態では、ユーザは、例えば、1本以上の指2202(図には、必ずしも正確な縮尺率では描かれていない)又は1つ以上のスタイラス2203(図には、必ずしも正確な縮尺率では描かれていない)を使用してグラフィック上でジェスチャを行うことによって、グラフィックのうちの1つ以上を選択してもよい。
【0136】
デバイス2100はまた、「ホーム」又はメニューボタン2204などの、1つ以上の物理ボタンを含んでもよい。前述したように、メニューボタン2204は、デバイス2100上で実行することができるアプリケーションのセット内の任意のアプリケーション2136へのナビゲーションに使用されてもよい。代替的に、いくつかの実施形態では、メニューボタンは、タッチスクリーン2112に表示されたGUI内のソフトキーとして実装されてもよい。
【0137】
いくつかの実施形態では、デバイス2100は、タッチスクリーン2112、ホーム又はメニューボタン2204、デバイスへの電源をオン/オフしてデバイスをロックするためのプッシュボタン2206、音量調整ボタン(単数又は複数)2208、受信者識別モジュール(Subscriber Identity Module、SIM)カードスロット2210、ヘッドセットジャック2212、及びドッキング/充電用外部ポート2124を含む。プッシュボタン2206は、ボタンを押下して、既定の時間間隔にわたってボタンを押下された状態で保持することによって、デバイス上の電源をオン/オフし、ボタンを押下して、既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックし、かつ/又はデバイスをロック解除するか、若しくはロック解除処理を開始するために、使用されてもよい。代替の実施形態において、デバイス2100はまた、マイクロフォン2113を通して、一部の機能をアクティブにし、又は非アクティブにするための口頭入力を受け入れてもよい。
【0138】
デバイス2100は1つ以上のカメラ2164も備えてもよい。カメラ2164は、例えば、電荷結合素子(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタ又はフォトセンサを含んでもよい。カメラ2164は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像又はビデオフレームを表すデータに変換する。いくつかの実施形態では、少なくとも1つのカメラ2164が、デバイスの前面のタッチスクリーンディスプレイ2112の反対側である、デバイス2100の背面に配置されてもよい。いくつかの実施形態では、その代わりに又はそれに加えて、少なくとも1つのカメラ2164が、例えばユーザが他のビデオ会議参加者をタッチスクリーンディスプレイ2112上で見るのと同時に、ユーザの画像がビデオ会議のために取得され得るように、タッチスクリーンディスプレイ2112を有するデバイスの前面に配置されてもよい。いくつかの実施形態では、少なくとも1つのカメラ2164がデバイス2100の前面に配置されてもよく、かつ少なくとも1つのカメラ2164がデバイス2100の背面に配置されてもよい。いくつかの実施形態では、静止画及び/又はビデオシーケンス取得アプリケーションのためのビューファインダ及び/又はユーザインタフェースとして、タッチスクリーンディスプレイ2112が使用されてもよい。
【0139】
デバイス2100は、カメラ2164を介してキャプチャされたか又は別の方法で(例えば、ネットワークインタフェースを介して)取得された静止画像及び/又はビデオフレーム若しくはビデオシーケンスをキャプチャ、処理、変換、圧縮、圧縮解除、記憶、修正、送信、表示、並びに別の方法で管理及び操作するために使用され得る、ビデオ符号化及び/若しくは復号構成要素、コーデック、モジュール、又はパイプラインを含むがこれらに限られない、ビデオ及び画像処理ハードウェア及び/又はソフトウェアを含んでもよい。いくつかの実施形態では、デバイス2100は、ビデオ及び画像のキャプチャ、処理、及び表示で使用される環境光又は他のメトリックをデバイス2100の環境から収集するために使用され得る、1つ以上の光センサ又は他のセンサも含んでもよい。
コンピュータシステムの例
【0140】
図12は、上述の実施形態のうちのいずれか又は全てを実行するように構成され得る例示的なコンピュータシステム2900を示す。異なる実施形態では、コンピュータシステム2900は、限定するものではないが、パーソナルコンピュータシステム、デスクトップコンピュータ、ラップトップ、ノートブック、タブレット、スレート、パッド、若しくはネットブックコンピュータ、メインフレームコンピュータシステム、ハンドヘルドコンピュータ、ワークステーション、ネットワークコンピュータ、カメラ、セットトップボックス、モバイルデバイス、消費者デバイス、アプリケーションサーバ、記憶デバイス、ビデオ録画デバイス、スイッチ、モデム、ルータなどの周辺装置デバイス、又は概して任意の種類のコンピューティングデバイス若しくは電子デバイスを含む、様々な種類のデバイスのうちの任意のものであってもよい。
【0141】
本明細書で説明されるような様々な実施形態は、様々な他のデバイスと対話し得る1つ以上のコンピュータシステム2900内で実行されてもよい。様々な実施形態によれば、
図1~
図11に関連して上述した任意の構成要素、動作、又は機能は、
図12のコンピュータシステム2900として構成された1つ以上のコンピュータ上に実行されてもよいことに留意されたい。図示される実施形態では、コンピュータシステム2900は、入力/出力(I/O)インタフェース2930を介してシステムメモリ2920に結合される1つ以上のプロセッサ2910を含む。コンピュータシステム2900は、I/Oインタフェース2930に結合されたネットワークインタフェース2940と、カーソル制御装置2960、キーボード2970、ディスプレイ(単数又は複数)2980、カメラ(単数又は複数)2990などの1つ以上の入力/出力デバイス又は構成要素2950と、光センサ及び動き検出器を含むがこれらに限られないセンサ(単数又は複数)2992と、を更に含む。いくつかの場合、実施形態は、コンピュータシステム2900の単一のインスタンスを使用して実行されてもよいと企図され、その一方で、他の実施形態では、複数のこのようなシステム、又はコンピュータシステム2900を構成する複数のノードが、実施形態の異なる部分若しくはインスタンスをホストするように構成されてもよい。例えば、一実施形態では、いくつかの要素は、他の要素を実装するノードと別個であるコンピュータシステム2900の1つ以上のノードを介して実装されてもよい。
【0142】
様々な実施形態では、コンピュータシステム2900は、1つのプロセッサ2910を含む単一プロセッサシステム、又はいくつかのプロセッサ2910(例えば、2つ、4つ、8つ、若しくは別の好適な個数)を含む多重プロセッサシステムであってもよい。プロセッサ2910は、命令を実行する能力を有する任意の好適なプロセッサであってもよい。例えば、様々な実施形態では、プロセッサ2910は、x829、PowerPC、SPARC、若しくはMIPS ISA、又は任意の他の好適なISAなどの、種々の命令セットアーキテクチャ(instruction set architecture、ISA)の任意のものを実装する汎用プロセッサ又は組み込みプロセッサであってもよい。多重プロセッサシステムでは、プロセッサ2910の各々は、必須のことではないが、同じISAを共通に実装してもよい。
【0143】
システムメモリ2920は、プロセッサ2910によってアクセス可能なプログラム命令2922及び/又はデータを記憶するように構成されてもよい。様々な実施形態では、システムメモリ2920は、スタティックランダムアクセスメモリ(SRAM:static random access memory)、シンクロナス・ダイナミックRAM(SDRAM:synchronous dynamic RAM)、不揮発性/フラッシュ型メモリ、又は任意のその他の種類のメモリなどの、任意の好適なメモリ技術を用いて実装されてもよい。図示される実施形態では、プログラム命令2922は、本明細書で説明される機能のうちの任意のものを実行するように構成されてもよい。更に、メモリ2920は、本明細書で説明される情報又はデータ構造のうちの任意のものを含んでもよい。いくつかの実施形態では、プログラム命令及び/若しくはデータは、異なる種類のコンピュータアクセス可能媒体上、又はシステムメモリ2920若しくはコンピュータシステム2900から分離した同様の媒体上で受信、送信又は記憶されてもよい。コンピュータシステム2900は、前の図の機能ブロックの機能を実行するものとして説明されるが、本明細書で説明される機能のうちの任意のものは、そのようなコンピュータシステムを介して実行されてもよい。
【0144】
一実施形態では、I/Oインタフェース2930は、プロセッサ2910と、システムメモリ2920と、ネットワークインタフェース2940、又は入力/出力デバイス2950などのその他の周辺インタフェースを含む、デバイス内の任意の周辺デバイスとの間のI/Oトラフィックを調整するように構成されてもよい。いくつかの実施形態では、I/Oインタフェース2930は、1つの構成要素(例えば、システムメモリ2920)からのデータ信号を別の構成要素(例えば、プロセッサ2910)による利用に適した形式に変換するために、任意の必要なプロトコル、タイミング又はその他のデータ変換を実行してもよい。いくつかの実施形態では、I/Oインタフェース2930は、例えば、周辺装置相互接続(PCI:Peripheral Component Interconnect)バス規格又はユニバーサルシリアルバス(USB:Universal Serial Bus)規格のバリアントなどの、様々な種類の周辺バスを通じて取り付けられるデバイスのためのサポートを含んでもよい。いくつかの実施形態では、I/Oインタフェース2930の機能は、例えばノースブリッジ及びサウスブリッジ等の2つ以上の分離した構成要素に分割されてもよい。また、いくつかの実施形態では、システムメモリ2920へのインタフェース等の、I/Oインタフェース2930の機能性の一部又は全てはプロセッサ2910内に直接組み込まれてもよい。
【0145】
ネットワークインタフェース2940は、コンピュータシステム2900と、ネットワーク2985に取り付けられた他のデバイス(例えば、キャリアデバイス又はエージェントデバイス)との間、又はコンピュータシステム2900のノード間でデータが交換されることを可能にするように構成されてもよい。様々な実施形態では、ネットワーク2985は、限定するものではないが、ローカルエリアネットワーク(LAN)(例えば、イーサネット若しくは社内ネットワーク)、ワイドエリアネットワーク(WAN)(例えば、インターネット)、無線データネットワーク、何らかの他の電子データネットワーク、又はこれらのうちのいずれかの組み合わせを含む、1つ以上のネットワークを含んでもよい。様々な実施形態では、ネットワークインタフェース2940は、任意の好適な種類のイーサネットネットワークなどの一般的な有線又は無線データネットワークを介した通信、例えば、アナログ音声ネットワーク又はデジタルファイバ通信ネットワークなどの通信/電話ネットワークを介した通信、ファイバチャネルSANなどのストレージエリアネットワークを介した通信、又は任意の他の好適な種類のネットワーク及び/若しくはプロトコルを介した通信をサポートしてもよい。
【0146】
いくつかの実施形態では、入力/出力デバイス2950は、1つ以上の表示端末、キーボード、キーパッド、タッチパッド、スキャニングデバイス、音声若しくは光学的認識デバイス、又は1つ以上のコンピュータシステム2900によるデータの入力若しくはアクセスに適した任意の他のデバイスを含んでもよい。複数の入力/出力デバイス2950はコンピュータシステム2900内に存在してもよいか、又はコンピュータシステム2900の様々なノード上に分散してもよい。いくつかの実施形態では、同様の入力/出力デバイスはコンピュータシステム2900から分離していてもよく、ネットワークインタフェース2940を通じるなど、有線又は無線接続を通じてコンピュータシステム2900の1つ以上のノードと対話してもよい。
【0147】
図12に示すように、メモリ2920は、上述の任意の要素又は操作を実行するプロセッサによって実行可能であり得るプログラム命令2922を含んでもよい。一実施形態では、プログラム命令は上述の方法を実施し得る。他の実施形態では、異なる要素及び/又はデータが含まれてもよい。データは、上述の任意のデータ又は情報を含んでもよいことに留意されたい。
【0148】
当業者は、コンピュータシステム2900は単なる例示に過ぎず、実施形態の範囲に制限を加えることを意図していないことを理解するであろう。特に、コンピュータシステム及びデバイスは、コンピュータ、ネットワークデバイス、インターネット装置、PDA、無線電話、ページャなどを含む、示された機能を実行し得るハードウェア又はソフトウェアの任意の組み合わせを含んでもよい。コンピュータシステム2900はまた、図示されない他のデバイスに接続されてもよく、又はその代わりにスタンドアロンシステムとして動作してもよい。加えて、図示された構成要素によって提供されている機能性は、いくつかの実施形態では、より少ない構成要素に組み合わせられるか、又は追加の構成要素に分散されてもよい。同様に、いくつかの実施形態では、図示されている構成要素のうちのいくつかの機能性は提供されなくてもよく、及び/又は他の追加の機能性が利用可能であってもよい。
【0149】
当業者はまた、様々な項目は、使用されている間にメモリ内、又は記憶装置上に記憶されるように示されているが、これらの項目又はそれらの部分はメモリ管理及びデータ完全性の目的のためにメモリと他の記憶デバイスとの間で転送されてもよいことを理解するであろう。代替的に、他の実施形態では、ソフトウェア構成要素の一部又は全ては、別のデバイス上のメモリ内で実行し、コンピュータ間通信を介して、図示されているコンピュータシステムと通信してもよい。システム構成要素又はデータ構造のいくつか又は全てはまた、以上において様々な例が説明された、適当なドライブによって読み取られるべきコンピュータアクセス可能媒体又は携帯型物品上に(例えば、命令又は構造化データ)として記憶されてもよい。いくつかの実施形態では、コンピュータシステム2900から分離したコンピュータアクセス可能媒体上に記憶された命令は、伝送媒体、又はネットワーク及び/又は無線リンクなどの通信媒体を介して伝達される、電気信号、電磁信号、又はデジタル信号などの信号を介してコンピュータシステム2900へ伝送されてもよい。様々な実施形態は、上述の説明に従ってコンピュータアクセス可能媒体上に実行される命令及び/又はデータを受信、送信、又は記憶することを更に含んでもよい。一般的に言えば、コンピュータアクセス可能媒体は、磁気媒体若しくは光媒体、例えば、ディスク若しくはDVD/CD-ROM、RAM(例えばSDRAM、DDR、RDRAM、SRAM等)、ROM等の揮発性若しくは不揮発性媒体等の、非一時的コンピュータ可読記憶媒体又はメモリ媒体を含んでもよい。いくつかの実施形態では、コンピュータアクセス可能媒体は、ネットワーク及び/若しくは無線リンク等の通信媒体を介して伝達される、電気信号、電磁信号、若しくはデジタル信号等の伝送媒体又は信号を含んでもよい。
【0150】
異なる実施形態では、本明細書で説明される方法はソフトウェア、ハードウェア、又はそれらの組み合わせの形態で実行されてもよい。更に、方法のブロックの順序は変更されてもよく、様々な要素の追加、再順序付け、組み合わせ、省略、修正等が行われてもよい。本開示の利益を得る当業者にとって明白であるような、様々な修正及び変更が行われてもよい。本明細書で説明される様々な実施形態は、例示的なものであり、限定的なものではない。多くの変形、修正、追加、及び改善が可能である。そのため、単一の事例として本明細書で説明した構成要素について、複数の事例を提供することができる。種々の構成要素、動作及びデータストアの間の境界は、任意のものであり、規定の動作は、特定の例示的な構成の文脈において示されている。機能の他の割り当てが想定され、以下の特許請求の範囲に含まれる。最終的に、例示的な構成において個別構成要素として提示した構造及び機能は、組み合わせた構造又は構成要素として実施され得る。これらの変形、修正、追加、及び改善、並びに他の変形、修正、追加、及び改善は、以下の特許請求の範囲で定義されるような、実施形態の範囲内に包含することができる。