(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-07-19
(54)【発明の名称】マルチプレーン画像圧縮
(51)【国際特許分類】
H04N 19/85 20140101AFI20230711BHJP
H04N 19/597 20140101ALI20230711BHJP
【FI】
H04N19/85
H04N19/597
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022560442
(86)(22)【出願日】2021-06-18
(85)【翻訳文提出日】2022-11-30
(86)【国際出願番号】 US2021038095
(87)【国際公開番号】W WO2021257992
(87)【国際公開日】2021-12-23
(32)【優先日】2020-06-19
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ジャヌス、スコット
(72)【発明者】
【氏名】ボイス、ジル
(72)【発明者】
【氏名】ディヴェカー、アトゥル
(72)【発明者】
【氏名】タナー、ジェイソン
(72)【発明者】
【氏名】バティア、スミット
(72)【発明者】
【氏名】リー、ペンネ ワイ.
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159LA00
5C159PP03
5C159PP13
5C159PP15
5C159RC19
5C159UA02
5C159UA05
(57)【要約】
マルチプレーン画像(MPI)圧縮を実装するための例示的な方法、装置、システム、および製造品(例えば、物理的記憶媒体)が開示されている。本明細書に開示される例示的な装置は、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするインタフェースを含み、入力マルチプレーン画像スタックは、複数のテクスチャ画像および対応する複数のアルファ画像を含み、アルファ画像のうちのいくつかは、テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む。また、開示される例示的な装置は、(i)圧縮マルチプレーン画像スタックを生成するために、複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)圧縮マルチプレーン画像スタックを生成するために、複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つを実行する圧縮画像エンコーダを含む。いくつかの開示される例において、インタフェースは、圧縮マルチプレーン画像スタックを出力する。
【特許請求の範囲】
【請求項1】
マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするためのインタフェースであって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つを実行する圧縮画像エンコーダであって、前記インタフェースが前記圧縮マルチプレーン画像スタックを出力する、圧縮画像エンコーダと
を備える装置。
【請求項2】
前記圧縮画像エンコーダは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる、請求項1に記載の装置。
【請求項3】
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、請求項2に記載の装置。
【請求項4】
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、前記単一の合成テクスチャ画像を決定するために、前記複数のアルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、請求項3に記載の装置。
【請求項5】
前記圧縮画像エンコーダは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、請求項1に記載の装置。
【請求項6】
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、請求項1から5のいずれか一項に記載の装置。
【請求項7】
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、請求項1から5のいずれか一項に記載の装置。
【請求項8】
前記圧縮画像エンコーダは、(i)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、請求項1から7のいずれか一項に記載の装置。
【請求項9】
プロセッサに、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスする手順であって、前記入力マルチプレーン画像スタックは複数のテクスチャ画像と対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、手順と、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つを行う手順と、
前記圧縮マルチプレーン画像スタックを出力する手順と
を実行させるためのコンピュータプログラム。
【請求項10】
前記プロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせる手順を実行させる、請求項9に記載のコンピュータプログラム。
【請求項11】
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記プロセッサに、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けして、複数のアルファ重み付けされたテクスチャ画像を決定する手順を実行させる、請求項10に記載のコンピュータプログラム。
【請求項12】
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記プロセッサに、前記複数のアルファ重み付けされたテクスチャ画像を平均化して前記単一の合成テクスチャ画像を決定する手順であって、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、手順を実行させる、請求項11に記載のコンピュータプログラム。
【請求項13】
前記プロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える手順を実行させる、請求項9に記載のコンピュータプログラム。
【請求項14】
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記プロセッサに、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定する手順と、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定する手順と、
前記第1の画素位置に対するバイアス値を決定する手順であって、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づいている、手順と、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する手順とを実行させる、請求項9から13のいずれか一項に記載のコンピュータプログラム。
【請求項15】
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記プロセッサに、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定する手順であって、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられている、手順と、
前記第1の画素位置に対するバイアス値を決定する手順であって、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づいている、手順と、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する手順とを実行させる、請求項9から13のいずれか一項に記載のコンピュータプログラム。
【請求項16】
前記プロセッサに、(i)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する手順を実行させる、請求項9から15のいずれか一項に記載のコンピュータプログラム。
【請求項17】
請求項9から16のいずれか一項に記載のコンピュータプログラムを格納しているコンピュータ可読記憶媒体。
【請求項18】
マルチプレーン画像スタックを圧縮するための方法であって、前記方法は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスする段階であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、段階と、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換する段階、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換する段階のうちの少なくとも1つと、
前記圧縮マルチプレーン画像スタックを出力する段階と
を備える方法。
【請求項19】
前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる段階を有する、請求項18に記載の方法。
【請求項20】
前記複数のテクスチャ画像を組み合わせる前記段階は、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする段階を有する、請求項19に記載の方法。
【請求項21】
前記複数のテクスチャ画像を組み合わせる前記段階は、前記単一の合成テクスチャ画像を決定するために、前記複数のアルファ重み付けされたテクスチャ画像を平均化する段階を有し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、請求項20に記載の方法。
【請求項22】
前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える段階を有する、請求項18に記載の方法。
【請求項23】
前記複数のアルファ画像を変換する前記段階は、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定する段階と、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定する段階と、
前記第1の画素位置に対するバイアス値を決定する段階であって、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づく、段階と、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階と
を有する、請求項18から22のいずれか一項に記載の方法。
【請求項24】
前記複数のアルファ画像を変換する前記段階は、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定する段階であって、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられている、段階と、
前記第1の画素位置に対するバイアス値を決定する段階であって、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づく、段階と、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階と
を有する、請求項18から22のいずれか一項に記載の方法。
【請求項25】
前記方法は、(i)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換する段階と、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する段階とを備える、請求項18から24のいずれか一項に記載の方法。
【請求項26】
マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするための手段であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、手段と、
前記入力マルチプレーン画像スタックをエンコードするための手段であって、前記エンコードするための手段は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つをする、手段と
を備える装置。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願]
本特許は、「COMPRESSION OF MULTIPLANE IMAGES FOR PARALAX-ENABLED VIDEO RENDERING」と題され、2020年6月19日に出願された米国仮特許出願第63/041,589号の利益を主張する。米国仮特許出願第63/041,589号に対する優先権を主張する。米国仮特許出願第63/041,589号は、その全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概して画像圧縮に関し、より具体的には、マルチプレーン画像圧縮に関する。
【背景技術】
【0003】
3次元(3D)画像レンダリング技術では、3Dシーンの異なる深さを表現するために、半透明の画像プレーンのスタックを形成するマルチプレーン画像(MPI:multi-plane image)を使用する場合がある。MPIスタックの各プレーンは、テクスチャ画像とアルファ画像とを含む。テクスチャ画像は、テクスチャ画素値(例えば、赤-青-緑、またはRBG値)を提供し、アルファ画像は、それぞれのテクスチャ画素の透明度を示すアルファ画素値を含む。アルファ値が大きいと、テクスチャ画素が不透明であり、背景を見ることができない。アルファ値が小さいと、テクスチャ画素が透明であり、背景を見ることができる。いくつかの例において、MPIスタックは、1つのプラットフォーム(例えば、ソースカメラが配置されている)で生成され、その後、別のプラットフォーム(例えば、ターゲット/クライアントプラットフォーム)に伝送され、その上で、所望の視点に対応して3D画像がレンダリングされる。
【図面の簡単な説明】
【0004】
【
図1】ソース画像からMPIスタックを生成するための例示的なMPIスタック生成器のブロック図である。
【0005】
【
図2】1つまたは複数のMPIスタックからターゲット画像をレンダリングするための例示的なMPIレンダラのブロック図である。
【0006】
【
図3】
図1のMPIスタック生成器と
図2のMPIレンダラとを有する例示的なビデオエンコーディングおよびデコーディングシステムのブロック図である。
【0007】
【
図4】本開示の教示によるMPI圧縮を実装するための、例示的なMPIスタックエンコーダと例示的なMPIスタックデコーダとを有する例示的なビデオエンコーディングおよびデコーディングシステムのブロック図である。
【0008】
【
図5】
図4のMPIスタックエンコーダの例示的な実装のブロック図である。
【0009】
【
図6】
図4のMPIスタックデコーダの例示的な実装のブロック図である。
【0010】
【
図7】
図4および/または
図5のMPIスタックエンコーダによって実行される例示的なMPIテクスチャスタック圧縮操作を示す図である。
【0011】
【
図8】
図4および/または
図6のMPIスタックデコーダによって実行される例示的なMPIテクスチャスタック伸張操作を示す図である。
【0012】
【
図9】
図4および/または
図5のMPIスタックエンコーダによって実行される例示的なMPIアルファスタック圧縮操作を示す図である。
【0013】
【
図10】
図4および/または
図5のMPIスタックエンコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図11】
図4および/または
図5のMPIスタックエンコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図12】
図4および/または
図5のMPIスタックエンコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図13】
図4および/または
図5のMPIスタックエンコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図14】
図4および/または
図5のMPIスタックエンコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【0014】
【
図15】
図4および/または
図6のMPIスタックデコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図16】
図4および/または
図6のMPIスタックデコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【
図17】
図4および/または
図6のMPIスタックデコーダを実装するために実行され得る例示的なコンピュータ可読命令を表すフローチャートである。
【0015】
【
図18】単一の合成アルファ画像および単一の合成テクスチャ画像を使用してターゲット画像をレンダリングするために、
図4の例示的なビデオエンコーディングおよびデコーディングシステムによって実行される手順の一例を示す図である。
【0016】
【
図19】
図4および/または
図5のMPIスタックエンコーダを実装するために、
図10~
図14の例示的な機械可読命令を実行するように構成された例示的なプロセッサプラットフォームのブロック図である。
【0017】
【
図20】
図4および/または
図6のMPIスタックデコーダを実装するために、
図15~
図17の例示的な機械可読命令を実行するように構成された例示的なプロセッサプラットフォームのブロック図である。
【0018】
【
図21】(例えば、ライセンス、販売および/または使用についての)消費者、(例えば、販売、再販売、ライセンス、および/またはサブライセンスについての)小売業者、および/または(例えば、小売業者および/または直接購入顧客などに配布される製品に含めることについての)相手先商標製品製造業者(OEM)などのクライアントデバイスに、ソフトウェア(例えば、
図10~
図17の例示的なコンピュータ可読命令に対応するソフトウェア)を配布するための例示的なソフトウェア配布プラットフォームのブロック図である。
【0019】
図面は縮尺通りではない。一般的に、同じまたは同様の部分、要素などを参照するのに、図面および添付の明細書の全体にわたって、同じ参照番号が用いられることになる。本明細書で使用される場合、接続についての言及(例えば、取り付け、連結、接続、結合)は、他に示されない限り、接続についての言及によって参照される要素間の中間部材および/またはそれらの要素間の相対的な移動を含むことがある。このように、接続についての言及は、2つの要素が直接接続されていること、および/または互いに固定された関係にあることを必ずしも推測するものではない。本明細書で使用される場合、任意の部品が別の部品と「接触」しているという表現は、2つの部品の間に中間部品が存在しないことを意味するように定義されている。
【0020】
特に明記しない限り、「第1の」、「第2の」、「第3」などの記述子は、本明細書では、優先順位、物理的な順序、リストでの配置、および/または任意の方法での順序付けの意味を付与またはその他の方法で示すことなく使用されるが、単に開示された例示的な理解を容易にするために要素を区別するラベルおよび/または任意の名前として使用される。いくつかの例では、「第1の」という記述子が詳細な説明の中である要素を参照するために使用される一方で、同じ要素が「第2の」または「第3」などの異なる記述子で請求項の中で参照されることがある。このような場合、このような記述子は単に、例えば同じ名前を持つ要素を明確に識別するために使用されていることを理解すべきである。本明細書において使用される場合、「凡そ」および「約」は、製造許容差および/または他の現実の不完全性に起因して厳密でないことがあり得る寸法を指す。本明細書で使用される場合、「実質的にリアルタイム」とは、ほぼ瞬間的に発生することを指すが、現実には計算時間、伝送などの遅延があることは認識されるべきである。したがって、特に指定のない限り、「実質的にリアルタイム」とは、リアルタイム±1秒を指す。
【発明を実施するための形態】
【0021】
マルチプレーン画像(MPI)圧縮を実装するための例示的な方法、装置、システムおよび製造品(例えば、物理的記憶媒体)が開示される。一般的に、MPIシステムは機械学習を使用して、シーンのボリュメトリック表現を、元のカメラ視野から得られたテクスチャを含む半透明の画像またはプレーンのスタックとして作成する。これらのプレーンが互いの上部に積み重ねられると、元のカメラ視野が復元される。これらのスタックは、他の多くの視点補間技術を凌駕する視覚品質で、新規の視点から見えるのであろうシーンをレンダリングすることに使用されることができる。
【0022】
上述したように、MPIスタックは、テクスチャ画像のスタック(本明細書では、テクスチャ画像プレーンまたはテクスチャプレーンとも称される)とアルファ画像のスタック(本明細書では、アルファ画像プレーンまたはアルファプレーンとも称される)とを含む。テクスチャ画像およびアルファ画像は、ソースカメラ視野の異なる深さを集合的に表現する。所与の深さに対するテクスチャ画像はテクスチャ画素値(例えば、赤-青-緑、またはRBG値)を提供し、アルファ画像は、それぞれのテクスチャ画素の透明度を示すアルファ画素値を含み、ここで、増加しているアルファ値が増加している不透明度(または、減少している透明度)を表現しており、減少しているアルファ値が減少している不透明度(または増加している透明度)を表現している。いくつかの例において、MPIスタックはソースプラットフォーム(例えば、カメラが配置された場所)で生成され、その後、ターゲットプラットフォーム(例えば、クライアントプラットフォーム)に伝送され、その上で、3D画像が所望の視点に対応してレンダリングされる。
【0023】
本明細書で開示される例示的なMPI圧縮技術は、画像レンダリングのためのターゲットプラットフォームに転送されるMPIデータの量を低減しながら、レンダリングされた画像の品質を維持する。このように、本明細書に開示される例示的なMPI圧縮技術により、他の(例えば、従来の)技術に必要な伝送帯域幅に対して、ターゲットまたはレンダリングノードへの低帯域幅伝送を可能にする。したがって、開示される例示的なMPI圧縮技術は、ソースが制限されたプラットフォーム上での仮想現実および没入型メディアアプリケーションの実行を可能にすることができるが、任意の数の画像処理システムおよびアプリケーションに使用することもできる。
【0024】
いくつかの例において、開示される例示的なMPI圧縮技術は、N個のテクスチャおよびアルファプレーンのスタック(例えば、N=32または何らかの他の値)を伝送するのではなく、MPIスタックから得られた、MPI画像レンダリングシステムがスタック情報の高品質レンダリングを提供するのに十分な情報を集合的に含む単一の合成テクスチャフレームおよび/または単一の合成アルファフレーム(アルファマップフレームとも称される)を生成する。いくつかの例において、単一の合成アルファフレームおよび単一の合成テクスチャは、ソース(例えば、伝送)プラットフォーム上の開示される例示的なエンコーダによってMPIスタックから生成される。ターゲット(例えば、受信)のプラットフォームにおいて、開示される例示的なデコーダは、単一の合成アルファフレームおよび単一の合成テクスチャフレームを使用して、ターゲット画像をレンダリングするために、MPIレンダラによって使用されるMPIスタックのN個のプレーンのスタックを再構築する。
【0025】
開示される例示的なMPI圧縮技術は、N個のテクスチャおよびアルファプレーンのすべてを伝送するシステムと比較して、MPIデータの伝送に使用されるビットレートおよび画素レートを(例えば、N=32または何らかの他の値のようなN倍によって)低減できることが理解されるであろう。これにより、結果として、ターゲット(例えば、クライアント)の画像レンダラにおける帯域幅および計算負荷が軽減される。したがって、開示される例示的技術により、ビデオシステムは、例えば、タブレット、ラップトップ、スマートフォン、および伝送帯域幅および/または計算帯域幅に対して制限を受ける可能性がある他のそのようなデバイスを含む、リソースが制限されたプラットフォーム上で没入型メディア体験を提供することができる。
【0026】
図に戻り、ソース画像からMPIスタックを生成する例示的なMPIスタック生成器100のブロック図を
図1に示す。MPIスタック生成器100では、複数の例示的なソースカメラ画像フレーム110および120からMPIスタックを生成するために、1つまたは複数の機械学習モデルを実装する。任意の適切な機械学習モデルは、MPIスタック生成器100によって実装されてよい。いくつかの例において、MPIスタック生成器100によって実装される機械学習モデルとして、ローカルライトフィールドフュージョン(LLFF)モデルが使用されてよい。いくつかの例において、LLFFモデルは、ライトフィールドのサンプルとして、いくつかの隣接したカメラからの画像を使用する。これらのサンプルはMPIプレーンのスタックを生成することに使用され、ターゲット(例えば、仮想)カメラを配置できる許容視野範囲を拡大することに使用されることができる。また、このアプローチにより、スペキュラーハイライト、屈折、反射などの視点依存の照明効果の捕捉および再現ができる。
図1の示された例において、MPIスタック生成器100は、ソースカメラ画像フレーム110および120から、ソースカメラ画像フレーム110および120を提供したソースカメラに関連付けられたそれぞれの、隣接したカメラ視点に対応する例示的なMPIスタック130および135を生成する訓練された深層学習LLFFモデルを実装する。
【0027】
図1の示された例において、MPIスタック130および135などの生成されたMPIスタックは、プレーンの深さの逆数が範囲[1/d
max...1/d
min]で均一な間隔になるように対応するソースカメラの視錐台に配置される多数のプレーンN(N=32または何らかの他の値など)を表し、d
minおよびd
maxはカメラ中心に対する視錐台の最小および最大深さである。
図1の例に示されるように、生成されたMPIスタック130は、ソース画像フレーム110に対応する第1のカメラの視錐台(または視野)に関連付けられた例示的なテクスチャ画像スタック140と、ソース画像フレーム110に対応する第1のカメラの視錐台(または視野)に関連付けられた例示的なアルファスタック150とを含む。同様に、生成されたMPIスタック135は、ソース画像フレーム120に対応する第2のカメラの視錐台(または視野)に関連付けられた例示的なテクスチャ画像スタック160と、ソース画像フレーム115に対応する第2のカメラの視錐台(または視野)に関連付けられた例示的なアルファスタック170とを含む。以下の開示では、N=32プレーンの処理について説明するが、実際には任意のプレーンの数を使用することができる。
【0028】
ターゲットである仮想カメラの所望の視点に対するシーンをレンダリングするために、MPIスタックを仮想カメラの座標系にワープさせ、各テクスチャプレーンのテクスチャ値に適用される重み付け係数としてアルファ値を用いて、奥から手前にプレーンを合成する。このように、MPIベースの技術では、従来の3Dメッシュ投影よりも少ない計算量で視野合成を行うことができるが、仮想カメラがソースカメラから離れるにつれて品質が低下するという代償が生じる。また、解像度1920×1080、各画素に8ビットの赤、緑、青、アルファ(RGBA)サンプルを使用した32プレーンMPIスタックは、0.265ギガビット(GB)のデータを含む。従来のMPIベースの技術を使用して、30フレーム/秒(fps:frames per second)のビデオシーケンスをエンコードおよびレンダリングする場合、63.7Gb/sの帯域幅が単一のカメラソースに利用され、複数のカメラ入力には、それに対応してより高い帯域幅が利用されることになる。この帯域幅の利用は、一部のアプリケーションによっては、MPIベースの技術が実用できないほど大きくなる可能性がある。また、高画素レートは、ソース(例えば、伝送)プラットフォームのエンコーダおよびターゲット(例えば、クライアント)プラットフォームのデコーダ/レンダラに大きな計算負荷を与える可能性があり、従来のMPIベースの技術は、一部のクライアントビデオアプリケーションに適さない可能性がある。
【0029】
1つまたは複数のMPIスタックから例示的なターゲット画像205をレンダリングするための例示的なMPIレンダラ200のブロック図は
図2に示されている。
図2の示された例において、MPIレンダラ200はターゲットプラットフォームに実装され、
図1に関連して上述したMPIスタック130および135を受信する。上述したように、MPIスタック130はテクスチャ画像スタック140とアルファ画像スタック150とを含み、MPIスタック135はテクスチャ画像スタック160とアルファ画像スタック170とを含む。示された例のMPIレンダラ200は、アルファ画像1150および170のそれぞれによってテクスチャ画像140および160を重み付けし、その後、ターゲット視点に対応するレンダリングされた画像205を作成するために、重み付けされた画像をブレンドする。いくつかの例において、MPIレンダラ200によって実行されるブレンディングは、テクスチャ画像スタック140および160、並びにアルファ画像スタック150および170を、ターゲットカメラの座標系にワープさせることを含む。
【0030】
図1のMPIスタック生成器100と
図2のMPIレンダラ200とを含む例示的なビデオエンコーディングおよびデコーディングシステム300のブロック図は
図3に示されている。示された例のビデオエンコーディングおよびデコーディングシステム300は、ビデオシステム300とも称され、MPIスタック生成器100と例示的なMPIスタックエンコーダ310とを含む例示的なソースプラットフォーム305と、例示的なMPIスタックデコーダ320とMPIレンダラ200とを含む例示的なターゲットプラットフォーム315とを有する。ソースプラットフォーム305は、1つまたは複数のサーバ、パーソナルコンピュータ、ワークステーション、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(登録商標)などのタブレット)、携帯情報端末(PDA)、インターネット機器、カメラなどのような任意の計算プラットフォーム/デバイスによって実装されることができるが、これらに限定されるものではない。同様に、ターゲットプラットフォーム315は、1つまたは複数のサーバ、パーソナルコンピュータ、ワークステーション、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(商標)などのタブレット)、PDA、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーム機、パーソナルビデオレコーダ、セットトップボックスなどのような任意の計算プラットフォーム/デバイスによって実装されることができるが、これらに限定されるものではない。
【0031】
図3の示された例において、ソースプラットフォーム305のMPIスタック生成器100は、上述したように、ソースプラットフォーム305によってエンコードおよび記憶/伝送される各入力動画フレームに対して、MPIスタック130および135などのそれぞれのMPIスタックを生成する。生成されたMPIスタック130および135はそれぞれ、画素がRGBフォーマットで表現されたテクスチャスタック140および160を有する。示された例のMPIスタックエンコーダ310は、MPIスタック130および135を、それぞれの例示的なテクスチャ画像スタック325およびそれぞれの例示的なアルファ画像スタック330に変換し、ここで、テクスチャ画像325の画素が輝度およびYUVフォーマットなどのクロミナンス形式に変換され、アルファ画像330の画素が変化されていない。MPIスタックエンコーダ310は、高効率ビデオエンコード(HEVC)を実装するエンコーダなどの任意のビデオエンコーダを使用して、テクスチャ画像スタック325のテクスチャ画像およびアルファ画像スタック330のアルファ画像をエンコードして、例示的なエンコードされたテクスチャビデオフレーム335および例示的なエンコードされたアルファビデオフレーム340を作成する。次に、MPIスタックエンコーダ310は、エンコードされたテクスチャビデオフレーム335およびエンコードされたアルファビデオフレーム340を記憶し、および/またはエンコードされたテクスチャビデオフレーム335およびエンコードされたアルファビデオフレーム340をターゲットプラットフォーム315に伝送する。
【0032】
図3の示された例において、ターゲットプラットフォーム315のMPIスタックデコーダ320は、MPIスタックエンコーダ310によって利用されたビデオエンコーダに関連付けられ、HEVCデコーディングを実装するデコーダなどの適切なビデオデコーダを使用して、受信された、または、そうでなければ、アクセスされた、エンコードされたテクスチャビデオフレーム335およびエンコードされたアルファビデオフレーム340をデコードする。そのようなビデオデコーディングの結果は、テクスチャ画像スタック325に対応する例示的なデコードされたテクスチャ画像スタック345およびアルファ画像スタック330に対応する関連付けられた例示的なデコードされたアルファ画像スタック350であり、ここで、デコードテクスチャ画像345がYUVフォーマットでフォーマットされている。示された例において、MPIスタックデコーダ320は、デコードされたテクスチャ画像スタック345および関連付けられたデコードされたアルファ画像スタック350を、MPIスタック130および135に対応する例示的なデコードされたMPIスタック355に変換する。デコードされたMPIスタック355は、画素がRGBフォーマットでフォーマットされたテクスチャ画像を含む。上述したように、MPIスタックレンダラ200は、所望のターゲット視点に対応する例示的なターゲット画像360を出力するために、デコードされたMPIスタックをレンダリングする。
【0033】
本開示の教示によるMPI圧縮を実装するために、例示的なビデオエンコーディングおよびデコーディングシステム400のブロック図は
図4に示されている。示された例のビデオエンコーディングおよびデコーディングシステム400は、ビデオシステム400とも称され、MPIスタック生成器100と例示的なMPIスタックエンコーダ410とを含む例示的なソースプラットフォーム405と、例示的なMPIスタックデコーダ420とMPIレンダラ200とを含む例示的なターゲットプラットフォーム415とを有する。ソースプラットフォーム405は、1つまたは複数のサーバ、パーソナルコンピュータ、ワークステーション、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(商標)などのタブレット)、PDA、インターネット機器、カメラなどのような任意の計算プラットフォーム/デバイスによって実装されることができるが、これらに限定されるものではない。いくつかの例において、ソースプラットフォーム405は、以下でさらに詳細に説明されるように、
図19の例示的なプロセッサプラットフォーム1900によって実装される。同様に、ターゲットプラットフォーム415は、1つまたは複数のサーバ、パーソナルコンピュータ、ワークステーション、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(商標)などのタブレット)、PDA、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーム機、パーソナルビデオレコーダ、セットトップボックスなどのような任意の計算プラットフォーム/デバイスによって実装されることができるが、これらに限定されるものではない。いくつかの例において、ターゲットプラットフォーム415は、以下でさらに詳細に説明されるように、
図20の例示的なプロセッサプラットフォーム2000によって実装される。
【0034】
図4の示された例において、入力画像フレームに対応するMPIスタックは、直接にエンコードされ、伝送されていない。その代わりに、MPIスタックからの有用な情報のうちの多くを捕捉する単一の合成テクスチャ画像および/または単一の合成アルファ画像は、ソースプラットフォーム405によって生成され、記憶/伝送される。ターゲットプラットフォーム415において、単一の合成テクスチャ画像および単一の合成アルファ画像は、次に画像レンダリングに採用されるMPIスタックの再生成に使用される。
【0035】
より具体的に、
図4の示された例において、ソースプラットフォーム405のMPIスタック生成器100は、上述したように、ソースプラットフォーム405によってエンコードおよび記憶/伝送される各入力動画フレームに対して、MPIスタック130および135などのそれぞれのMPIスタックを生成する。示された例のMPIスタックエンコーダ410は、テクスチャ画像スタック140/160のそれぞれを対応する例示的な単一の合成テクスチャ画像430に変換すること、および/またはアルファ画像スタック150/170のそれぞれを対応する例示的な単一の合成アルファ画像435に変換することによって、MPIスタック130/135のそれぞれを圧縮するための例示的なMPI圧縮画像エンコーダ425を含む。いくつかの例において、MPI圧縮画像エンコーダ425は、単一の合成テクスチャ画像430および単一の合成アルファ画像435をそれぞれ形成するために、テクスチャ画像スタック140/160およびアルファ画像スタック150/170の両方の圧縮を実行する。しかし、いくつかの例において、MPI圧縮画像エンコーダ425は、単一の合成テクスチャ画像430をそれぞれ形成するためのテクスチャ画像スタック140/160、または単一の合成アルファ画像435をそれぞれ形成するためのアルファ画像スタック150/170のいずれかの圧縮を実行し、両方を実行しない。したがって、MPI圧縮画像エンコーダ425は、MPIスタック(例えば、MPIスタック130/135など)を、(i)圧縮マルチプレーン画像スタックを生成するために、MPIスタックのテクスチャ画像(例えば、テクスチャ画像スタック140/160など)を、単一の合成テクスチャ画像(例えば、単一の合成テクスチャ画像430など)に変換すること、および/または、(ii)圧縮マルチプレーン画像スタックを生成するために、MPIスタックのアルファ画像(例えば、アルファ画像スタック150/170など)を単一の合成アルファ画像(例えば、単一の合成アルファ画像435など)に変換することのうちの一方または両方を含む方法でエンコードするための手段の一例である。
【0036】
示された例のMPIスタックエンコーダ410は、例示的なエンコードされたテクスチャビデオフレーム440および例示的なエンコードされたアルファビデオフレーム445を作成するために、HEVCを実装するエンコーダなどの任意のビデオエンコーダを使用して、単一の合成テクスチャ画像430および単一の合成アルファ画像435をエンコードする。次に、MPIスタックエンコーダ410は、エンコードされたテクスチャビデオフレーム440およびエンコードされたアルファビデオフレーム445を記憶し、および/または、エンコードされたテクスチャビデオフレーム440およびエンコードされたアルファビデオフレーム445をターゲットプラットフォーム415に伝送する。
【0037】
図4の示された例において、ターゲットプラットフォーム415のMPIスタックデコーダ420は、MPIスタックエンコーダ410によって利用されたビデオエンコーダに関連付けられ、HEVCデコーディングを実装するデコーダなどの適切なビデオデコーダを使用して、受信された、または、そうでなければ、アクセスされた、エンコードされたテクスチャビデオフレーム440およびエンコードされたアルファビデオフレーム445をデコードする。そのようなビデオデコーディングの結果は、合成テクスチャ画像430に対応する例示的なデコードされた合成テクスチャ画像450および合成アルファ画像435に対応する関連付けられた例示的なデコードされた合成アルファ画像455である。示された例において、MPIスタックデコーダ420は、対応するデコードされたMPIスタックに含めるために、デコードされた合成テクスチャ画像450をそれぞれのデコードされたテクスチャ画像スタック465に変換することによって、デコードされた合成テクスチャ画像450を伸張するための例示的なMPI圧縮画像デコーダ460を含む。追加的にまたは代替的に、MPI圧縮画像デコーダ460は、対応するデコードされたMPIスタックに含めるために、デコードされた合成アルファ画像455をそれぞれのデコードされたアルファ画像スタック470に変換することによって、デコードされた合成アルファ画像455を伸張する。したがって、MPI圧縮画像エンコーダ425は、(i)非圧縮MPIスタック(例えば、デコードされたテクスチャ画像スタック465など)の非圧縮テクスチャ画像を取得するために、単一の合成テクスチャ画像(例えば、合成テクスチャ画像450など)を展開すること、および/または(ii)非圧縮MPIスタック(例えば、デコードされたアルファ画像スタック470など)の非圧縮アルファ画像を取得するために単一の合成アルファ画像(例えば、合成アルファ画像455など)を展開することのうちの一方または両方を含む方法で圧縮MPIスタックをデコードするための手段の一例である。上述したように、MPIスタックレンダラ200は、所望のターゲット視点に対応する例示的なターゲット画像475を出力するために、デコードされたMPIスタックをレンダリングする。
【0038】
いくつかの例において、単一の合成テクスチャフレームは、MPIスタックレンダラ200によって使用するための十分なテクスチャ情報を捕捉する方法で、MPIスタックにおけるテクスチャフレームのスタックのテクスチャコンポーネントからMPI圧縮画像エンコーダ425によって得られる。他の例において、単一の合成テクスチャフレームは、元のカメラ画像から直接にMPI圧縮画像エンコーダ425によって得られる。いずれのタイプの例においても、この単一の合成テクスチャフレームをN(例えば、N=32)回複製し、複製されたテクスチャフレームを、機械学習モデルによって生成されたN(例えば、N=32)個のアルファプレーンとともに、元のMPIスタックに含まれる実際のテクスチャフレームのスタックの代わりに採用することによってターゲット画像がターゲットプラットフォーム415上にレンダリングされる。
【0039】
いくつかの例において、単一の合成アルファ画像は、MPIスタックレンダラ200によって使用するための十分なアルファ(透明度)情報を捕捉する方法で、MPIスタックにおけるアルファフレームのスタックのアルファコンポーネントからMPI圧縮画像エンコーダ425によって得られる。他の例において、単一の合成アルファ画像は、入力MPIスタックに関連付けられたソースカメラから取得された深さマップからMPI圧縮画像エンコーダ425によって得られる。いずれのタイプの例においても、ターゲット画像は、元のMPIスタックに含まれるアルファフレームの元のN個(例えば、N=32)のスタックの近似を生成するために、単一の合成アルファ画像を使用することによって、ターゲットプラットフォーム415上でレンダリングされる。
【0040】
いくつかの例において、単一の合成テクスチャ画像および単一の合成アルファ画像は単体または組み合わせとして使用されてよい。例えば、MPIスタックからの単一テクスチャフレームとN(例えば、N=32)個のアルファプレーンのセットとを記憶/伝送してもよく、N(例えば、N=32)個のテクスチャプレーンのセットおよび単一の合成アルファ画像を記憶/伝送してもよく、単一の合成テクスチャ画像および単一の合成アルファ画像を記憶/伝送してもよい。いくつかの例において、単一の合成テクスチャ画像および単一の合成アルファ画像を直接使用して、単一の合成アルファ画像を粗い深さマップとして解釈することによって、単一の合成テクスチャ画像をターゲット視点に投影することができる。
【0041】
図4のMPIスタックエンコーダ410の例示的な実装のブロック図が
図5に示されている。
図5の例示的なMPIスタックエンコーダ410は、例示的なMPI圧縮画像エンコーダ425と例示的なデータインタフェース505とを有する。
図5の例示的なMPI圧縮画像エンコーダ425は、例示的なテクスチャスタック圧縮器510と例示的なアルファスタック圧縮器515とを有する。
【0042】
図5の示された例において、データインタフェース505は、ソースカメラ視点に対応する入力MPIスタックにアクセスする。上述したように、入力MPIスタックは、入力テクスチャ画像スタック140などのテクスチャ画像/プレーンの例示的なスタックと、入力アルファ画像スタック150などのアルファ画像/プレーンの対応する例示的なスタックとを含む。また、上述したように、入力アルファ画像スタック150におけるアルファ画像のうちのそれぞれ1つは、入力テクスチャ画像スタック140におけるテクスチャ画像のうちのそれぞれの対になる1つの中の対応する画素の透明度を表す画素値を含む。したがって、データインタフェース505は、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするための手段の一例である。
【0043】
図5の示された例において、MPI圧縮画像エンコーダ425は、入力テクスチャ画像スタック140のテクスチャ画像を単一の合成テクスチャ画像430などの単一の合成テクスチャ画像に変換するためのテクスチャスタック圧縮器510を含む。
図5の示された例において、MPI圧縮画像エンコーダ425は、入力アルファ画像スタック150のアルファ画像を単一の合成アルファ画像435などの単一の合成アルファ画像に変換するアルファスタック圧縮器515を含む。示された例において、データインタフェース505は、単一の合成テクスチャ画像430および単一の合成アルファ画像435を、入力MPIスタックに対応する圧縮MPIスタックとして出力する。したがって、データインタフェース505は、圧縮MPIスタックを出力する手段の一例である。
【0044】
図4のMPIスタックデコーダ420の例示的な実装のブロック図が
図6に示されている。
図6の例示的なMPIスタックデコーダ420は、例示的なMPI圧縮画像デコーダ460と例示的なデータインタフェース605とを有する。
図6の例示的なMPI圧縮画像デコーダ460は、例示的なテクスチャスタック伸張器610と例示的なアルファスタック伸張器615とを有する。
【0045】
図6の示された例において、データインタフェース605は、ソースカメラ視点に対応する入力された圧縮マルチプレーン画像スタックにアクセスする。上述したように、
図5に関連して、圧縮マルチプレーン画像スタックは、(i)デコードされたテクスチャ画像スタック465など、デコードされたテクスチャ画像スタックに含まれる非圧縮テクスチャ画像を表すために伸張される、合成テクスチャ画像450などの単一の合成テクスチャ画像、および/または(ii)デコードされたアルファ画像スタック470など、デコードされたアルファ画像スタックに含まれる非圧縮アルファ画像を表すために伸張される、単一の合成アルファ画像455などの単一の合成アルファ画像を含む。上述したように、非圧縮アルファ画像のうちのそれぞれ1つは、非圧縮テクスチャ画像のうちのそれぞれの対になる1つの中の対応する画素の透明度を表す画素値を含む。したがって、データインタフェース605は、ソースカメラ視点に対応する圧縮マルチプレーン画像スタックにアクセスするための手段の一例である。
【0046】
図6の示された例において、MPI圧縮画像デコーダ460は、デコードされたテクスチャ画像スタック465に含める非圧縮テクスチャ画像を取得するために、単一の合成テクスチャ画像450を展開するためのテクスチャスタック伸張器610を含む。
図5の示された例において、MPI圧縮画像デコーダ460は、デコードされたアルファ画像スタック470に含める非圧縮アルファ画像を取得するために、単一の合成アルファ画像455を展開するためのアルファスタック伸張器615を含む。示された例において、データインタフェース605は、デコードされたテクスチャ画像スタック465とデコードされたアルファ画像スタック470とを含むデコードされた(非圧縮)MPIスタックを出力する。したがって、データインタフェース605は、非圧縮テクスチャ画像(例えば、デコードされたテクスチャ画像スタック465の非圧縮テクスチャ画像など)および非圧縮アルファ画像(例えば、デコードされたアルファ画像スタック470に含まれる非圧縮アルファ画像など)を含む非圧縮MIPスタックを出力するための例示的な手段である。
【0047】
図5に戻り、いくつかの例において、テクスチャスタック圧縮器510は、各画素位置について、入力テクスチャ画像スタック140に対応する入力アルファ画像スタック150の少数のアルファプレーンのみに対してアルファ値が大きいという観察に基づいて、ソースプラットフォーム405において入力テクスチャ画像スタック140のテクスチャ画像を単一の合成テクスチャ画像430に変換する。このように、その画素位置について、アルファ値の大きい少数のアルファプレーンに対応するテクスチャプレーンのテクスチャ値が、レンダリングされたターゲット画像に最も影響を与えることになる。この観察を利用するために、いくつかの例において、テクスチャスタック圧縮器510は、入力テクスチャ画像スタック140に含まれるテクスチャ画像にわたるテクスチャ値のアルファ加重平均である画素値を有するように、単一の合成テクスチャ画像430を生成する。
【0048】
数学的に、テクスチャスタック圧縮器510の前述の例示的な操作は、以下のように表すことができる。画素位置iについて、単一の合成テクスチャ画像430のテクスチャ画素値p
i,jは、式1により定義される。
【数1】
式1
式1において、j=[0...31]は入力テクスチャ画像スタック140内のテクスチャ画像(プレーン)上のインデックスであり、t
i,jはプレーンj内の画素位置iにおけるテクスチャ(例えば、R、G、B)成分であり、α
i,jはプレーンj内の画素位置iのアルファ値であり、round()演算は分数引数を最も近い整数に変換する。
【0049】
図7は、
図5のMPIスタックエンコーダ410に含まれるテクスチャスタック圧縮器510によって実行される例示的なMPIテクスチャスタック圧縮操作700を示す。示された例示的な操作700において、テクスチャスタック圧縮器510は、入力テクスチャ画像スタック140にわたるテクスチャ値のアルファ加重平均を有するように単一の合成テクスチャ画像430を生成するために、式1にしたがって入力MPIスタックの入力テクスチャ画像スタック140および入力アルファ画像スタック150を処理する。
【0050】
図6に戻り、テクスチャスタック伸張器610は、デコードされたMPIスタックの非圧縮テクスチャ画像スタック465に含める非圧縮テクスチャ画像を取得するために、単一の合成テクスチャ画像450をN(例えば、N=32)回複製することによって、ターゲットプラットフォーム415で単一の合成テクスチャ画像450を展開する。
図8は、MPIスタックデコーダ420のテクスチャスタック伸張器610によって実行される対応する例示的なMPIテクスチャスタック伸張操作800を示す。示された例示的な操作800において、テクスチャスタック伸張器610は、非圧縮テクスチャ画像スタック465を取得するために、単一の合成テクスチャ画像450を複製する。示された例において、ターゲットプラットフォームで取得された対応するアルファ画像スタックは、アルファスタック伸張器615によって生成された非圧縮アルファ画像スタック470または元の入力アルファ画像スタック150であることができる。
【0051】
上記例から参照できるように、合成テクスチャ画像430/450は、ソースカメラからの元のテクスチャ画像フレームと同様であってよい。このように、いくつかの例において、MPIスタックエンコーダ410に含まれるテクスチャスタック圧縮器510は、ソースカメラからの元のテクスチャ画像フレームを合成テクスチャ画像430/450として使用する。
【0052】
図5に戻り、いくつかの例において、アルファスタック圧縮器515は、各画素位置について、入力アルファ画像スタック150の少数のアルファプレーンのみに対してアルファ値が大きいという観察に基づいて、ソースプラットフォーム405において入力アルファ画像スタック150のアルファ画像を単一の合成アルファ画像435に変換する。この観察を利用するために、いくつかの例において、アルファスタック圧縮器515は、アルファの値が大きいアルファプレーンのサブセットと、それらのアルファ値とをエンコードするために、アルファマップとも称される単一の合成アルファ画像435を生成する。
【0053】
いくつかのこのような例において、アルファスタック圧縮器515は、最も大きいアルファ値を有するアルファプレーンの位置並びに大きさ、および次に大きいアルファ値を有する近傍のアルファプレーンのそれを捕捉するために、単一の合成アルファ画像435(アルファマップ)を生成する。数学的には、画素位置iにおいて最も大きいアルファ値を有するアルファプレーンをp
i,mとし、それに対応するアルファ値をa
i,mと指定する。次に大きいアルファ値を有する近傍プレーンはp
i,m+1またはp
i,m-1であり、アルファ値はa
i,2である。画素位置iのバイアス値b
iは、式2により定義される。
【数2】
式2
式2において、次に大きいアルファ値を有する近傍プレーンがp
m+1であれば正符号を使用し、そうでなければ、次に大きいアルファ値を有する近傍プレーンがp
m-1であれば負の項である。そして、合成アルファ画像435(アルファマップ)の画素位置iにおける合成アルファ値d
iは、式3によって与えられる。
d
i=8*p
i,m+b
i
式3
【0054】
例えば、1つの画素位置iがアルファプレーンインデックス=10に対応するアルファプレーンにおいて、200である最も大きいアルファ値と、アルファプレーンインデックス=9に対応するアルファプレーンにおいて60である次に大きいアルファ値とを有する場合、最も大きいアルファ値を有するプレーンのアルファプレーンインデックスpi,mは10となる。プレーン9はプレーン10より小さいので、バイアス因子は負符号を有する。バイアス値biは、8*60/260(ここで、8は8ビットの精度に対応する)を表す2という値になる。したがって、この例の画素位置iの合成アルファ値diは、8*10+(-2)=78となる。
【0055】
いくつかの例において、いくつかの画素の位置は、プレーン全体で有意なアルファ値をいずれも有しない。いくつかの例において、いくつかの画素はさらにすべてのアルファプレーンにわたって完全に透明である。このような直感に反する画素のセットは、MPIスタックを生成するために使用される機械学習モデルのアーチファクトであることができる。これらの画素は、やや低頻度であるが、視野の中で予測確率が低いことを示すために維持すべきである。これらの画素を考慮し、画素値0~7を使用してこれらの範囲の画素値をマッピングする。例えば、完全に透明な画素の位置を表すために、0である合成アルファ値diを使用することができる。いくつかの例において、1~7までの合成アルファ値が、合成アルファ値が高いほどその画素位置での2つの最大プレーンに対する最大値が高くなるように、2つのプレーンにわたる最大値の範囲を示すために使用される。
【0056】
いくつかの例において、アルファスタック圧縮器515は、結果として生じる単一の合成アルファ画像435(アルファマップ)を平滑化フィルタでフィルタリングして、精度の少しの低下という関連コストを伴って、伝送のためのビットレートを低減する。
【0057】
図6に戻り、いくつかの例において、アルファスタック伸張器615は、ターゲットプラットフォーム415における単一の合成アルファ画像455(アルファマップ)を、以下のように展開する。上述したように式2~4に基づいて単一の合成アルファ画像455が生成されたと仮定すると、アルファスタック伸張器615は、単一の合成アルファ画像455(アルファマップ)を使用して、非圧縮アルファ画像スタック470のN個(例えば、N=32)のアルファ画像を以下のようにして近似的に再構築する。上記式4で定義される合成アルファ画像435(アルファマップ)の画素位置iの合成アルファ値d
iが与えられると、アルファスタック伸張器615は、式5および式6で与えられる以下の値を計算する。
【数3】
式5
【数4】
式6
【数5】
が正であれば、アルファスタック伸張器615は、画素位置iのデコードされた近傍プレーンを
【数6】
に設定し、そうでなければ、近傍プレーンを
【数7】
に設定する。
【0058】
次に、画素位置iについて、アルファスタック伸張器615は、式7および式8で与えられる以下の値を計算する。
【数8】
式7
【数9】
式8
アルファスタック伸張器615は、上記で定義されているように、アルファプレーン
【数10】
の画素位置iのアルファ値を
【数11】
に設定し、近傍プレーンの画素位置iのアルファ値を
【数12】
に設定する。アルファスタック伸張器615は、非圧縮アルファ画像スタック470の他のアルファ画像における画素位置iのアルファ値をゼロに設定する。
【0059】
式2~8に基づいたそのアルファスタック圧縮器515およびアルファスタック伸張器615の例示的な実装は、以下の例示的な実装の特殊例に相当する。画素位置iについて、合成アルファ画像(アルファマップ)の値は、式9で定義される。
【数13】
式9
式9において、j=[0...31]は、入力アルファ画像スタック150のアルファ画像(プレーン)上のインデックスであり、α
i,jは、アルファプレーンjの画素位置iにおけるアルファ値である。2つの近傍プレーンjおよびj+1のみが非ゼロのアルファ値を有する時、式9は式10に還元される。
【数14】
式10
式10において、d
iは分数値を有する。jは[0...31]の範囲にあるので、d
iは、フル8ビット範囲[0...255]を使用できるように値8でスケーリングし、そして、式11で与えられるように、整数に丸めることができる。
【数15】
式11
デコーダ側では、α
i,j+α
i,j+1=255であることを仮定して、上述の式5~8が再構成を提供する。
【0060】
いくつかの例において、ソースカメラからの深さマップは、入力アルファ画像スタック150を置き換えるための単一の合成アルファ画像435(アルファマップ)を生成するためにエンコーダ側のアルファスタック圧縮器515によって使用することができる。
図9の例示的な操作900によって示される、ソースカメラからの深さマップに基づく第1の例示的な実装において、N=32個のアルファプレーンが、16ビットの深さマップに対応する数値範囲[0...65535]において均一な間隔を空けて配置され、各プレーンの間にI=65535/31のギャップがあると仮定する。16ビット深さマップにおける深さd(
図9において参照符号905で表される)を有する画素は、アルファプレーンj(
図9において参照符号910で表される)とアルファプレーンj+1(
図9において参照符号915で表される)との間に位置することになるが、jの値は以下の式12で与えられる。
【数16】
式12
この例において、アルファスタック圧縮器515は、式13にしたがって、画素位置iの合成アルファ値を計算する。
【数17】
式13
式13において、d
j=d-j*Iである(ここで、d
jは
図9において参照符号920で表される)。
【0061】
ソースカメラからの深さマップに基づく第2の例示の実装では、アルファスタック圧縮器515は、深さマップをデコード側に伝送する。デコード側のアルファスタック伸張器615は、最初はN=32個の非圧縮アルファプレーンのスタックのアルファ値をゼロに設定する。
図9および上記第1の例示的な実装の説明を参照して、16ビット深さマップにおける深さd(
図9において参照符号905で表される)を有する画素は、アルファプレーンj(
図9において参照符号910で表される)とアルファプレーンj+1(
図9において参照符号915で表される)の間に位置し、jの値は式12により与えられることになる。デコード側のアルファスタック伸張器615は、式14および式15にしたがって、値d
jおよびd
j+1を計算する。
d
j=d-j*I
式14
d
j+1=I-d
j
式15
そして、アルファスタック伸張器615は、a
i,jで示されるアルファプレーンjの画素iの値と、a
i,j+1で示されるアルファプレーンj+1の画素iの値を、以下の式16および式17にしたがって設定する。
【数18】
式16
a
j+1=255-a
j
式17
【0062】
ソースカメラからの深さマップに基づく第3の例示的な実装においては、アルファスタック圧縮器515は、上述した第1の例示的な実装に前処理段階を追加する。この例では、アルファスタック圧縮器515は、カメラからの16ビット深さマップにk=32であるk平均法を適用し、シーン内のオブジェクトに最もマッチする深さ範囲の位置でアルファプレーンを生成する。アルファプレーンの深さ(k平均法で生成された重心が発見された位置に対応する)は、メタデータとしてターゲットプラットフォーム(デコード側)に伝送される。これにより、上述した第1の例示的な実装で使用したエンコーディング技術で、より正確に真の深さdを近似させることができる。
【0063】
ソースカメラからの深さマップに基づく第4の例示的な実装では、アルファスタック圧縮器515は、元の16ビット深さマップをデコーダに伝送する。いくつかの例において、アルファスタック圧縮器515は、10ビットまたは何らかの他の値など、より少数のビットを使用するように深さマップの精度を低下させる。デコーダでは、深さマップを使用して、ソースカメラからのテクスチャフレームをターゲット視点のフレームに直接ワープ(例えば、再投影)させる。この第4の例示的な実装において、MPIスタックの使用を除去することができ、その結果、上述した機械学習モデルの使用を回避することができる。
【0064】
ビデオエンコーディングおよびデコーディングシステム400を実装する例示的な態様が
図4~6に示されているが、
図4~6に示されている要素、処理および/またはデバイスの1つまたは複数が、任意の他の方法で組み合わせられ、分割され、再配置され、省略され、排除され、および/または実装されてもよい。さらに、例示的なMPIスタック生成器100、例示的なMPIレンダラ200、例示的なソースプラットフォーム405、例示的なMPIスタックエンコーダ410、例示的なターゲットプラットフォーム415、例示的なMPIスタックデコーダ420、例示的なMPI圧縮画像エンコーダ425、例示的なMPI圧縮画像デコーダ460、例示的なデータインタフェース505、例示的なテクスチャスタック圧縮器510、例示的なアルファスタック圧縮器515、例示的なデータインタフェース605、例示的なテクスチャスタック伸張器610、例示的なアルファスタック伸張器615および/またはより一般的には、
図4~6の例示的なビデオエンコーディングおよびデコーディングシステム400は、ハードウェア、ソフトウェア、ファームウェア、および/またはハードウェア、ソフトウェア、および/またはファームウェアの任意の組み合わせによって実装され得る。したがって、例えば、例示的なMPIスタック生成器100、例示的なMPIレンダラ200、例示的なソースプラットフォーム405、例示的なMPIスタックエンコーダ410、例示的なターゲットプラットフォーム415、例示的なMPIスタックデコーダ420、例示的なMPI圧縮画像エンコーダ425、例示的なMPI圧縮画像デコーダ460、例示的なデータインタフェース505、例示的なテクスチャスタック圧縮器510、例示的なアルファスタック圧縮器515、例示的なデータインタフェース605、例示的なテクスチャスタック伸張器610、例示的なアルファスタック伸張器615のいずれか、および/または、より一般的には、例示的なビデオエンコーディングおよびデコーディングシステム400は、1つまたは複数のアナログまたはデジタル回路、ロジック回路、プログラマブルプロセッサ、プログラマブルコントローラ、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、プログラマブルロジックデバイス(PLD)、フィールドプログラマブルゲートアレイ(FPGA)および/またはフィールドプログラマブルロジックデバイス(FPLD)により実装され得る。純粋にソフトウェアおよび/またはファームウェアの実装をカバーするためにこの特許の装置またはシステムの請求項のいずれかを読み取る場合、例示的なMPIスタック生成器100、例示的なMPIレンダラ200、例示的なソースプラットフォーム405、例示的なMPIスタックエンコーダ410、例示的なターゲットプラットフォーム415、例示的なMPIスタックデコーダ420、例示的なMPI圧縮画像エンコーダ425、例示的なMPI圧縮画像デコーダ460、例示的なデータインタフェース505、例示的なテクスチャスタック圧縮器510、例示的なアルファスタック圧縮器515、例示的なデータインタフェース605、例示的なテクスチャスタック伸張器610、例示的なアルファスタック伸張器615のうちの少なくとも1つ、および/またはより一般的には、例示的なビデオエンコーディングおよびデコーディングシステム400は、メモリ、デジタル汎用ディスク(DVD)、コンパクトディスク(CD)、ブルーレイディスクなどのソフトウェアおよび/またはファームウェアを含む非一時的コンピュータ可読記憶デバイスまたは記憶ディスクなどを含むことが本明細書に明示的に定義されている。さらになお、例示的なビデオエンコーディングおよびデコーディングシステム400は、
図4~6に例示されたものに加えて、またはその代わりに、1つまたは複数の要素、処理および/またはデバイスを含んでもよく、および/または例示された要素、処理およびデバイスのいずれかまたはすべてのうちの1つより多いものを含んでもよい。本明細書で使用される場合、「通信して(in communication)」という文言はその変形例を含め、直接的な通信および/または1つまたは複数の介在コンポーネントを通した間接的な通信を包含し、且つ、直接的な物理的(例えば、配線)通信および/または絶え間ない通信を必要とせず、むしろ追加的に定期的な間隔、スケジューリングされた間隔、非周期的間隔、および/または、ワンタイムイベントにおける選択的通信を含む。
【0065】
MPIスタックエンコーダ410を実装するための例示的なハードウェアロジック、機械可読命令、ハードウェア実装ステートマシン、および/またはそれらの任意の組み合わせを表すフローチャートが、
図10~
図14に示されている。これらの例において、機械可読命令は、
図19に関連して後述する例示的なプロセッサプラットフォーム1900に示されるプロセッサ1912などのコンピュータプロセッサおよび/またはプロセッサ回路による実行のための1つまたは複数の実行可能なプログラムまたは実行可能なプログラムの一部であってよい。1つまたは複数のプログラムまたはその一部は、CD-ROM、フロッピディスク、ハードドライブ、DVD、ブルーレイディスク(商標)、またはプロセッサ1912に関連付けられたメモリなどの非一時的コンピュータ可読記憶媒体に記憶されたソフトウェアで具現化されてよいが、1つまたは複数のプログラム全体および/またはその一部は、代替的に、プロセッサ1912以外のデバイスにより実行されてもよく且つ/またはファームウェア若しくは専用ハードウェアで具現化されてもよい。さらに、例示的なプログラムを
図10~
図14に示されるフローチャートを参照して説明したが、例示的なMPIスタックエンコーダ410を実装する多くの他の方法を代替的に使用することも可能である。例えば、
図10~
図14に示されるフローチャートを参照すると、ブロックの実行順序は変更され得る、および/または、説明されるブロックのいくつかに対して、変更、除去、組み合わせ、および/または、複数のブロックへのフラグメント化が行われ得る。追加的にまたは代替的に、これらのブロックのいずれかまたはすべてが、ソフトウェアまたはファームウェアを実行することなく、対応するオペレーションを実行するように構成された、1つまたは複数のハードウェア回路(例えば、ディスクリートおよび/または統合されたアナログおよび/またはデジタル回路、FPGA、ASIC、比較器、演算増幅器(オペアンプ)、ロジック回路など)によって実装されてもよい。プロセッサ回路は、異なるネットワーク上の位置および/または1つまたは複数のデバイスに局所的に分散していてもよい(例えば、単一の機械に搭載されたマルチコアプロセッサ、サーバラックに分散した複数のプロセッサなど)。
【0066】
MPIスタックデコーダ420を実装するための例示的なハードウェアロジック、機械可読命令、ハードウェア実装ステートマシン、および/またはそれらの任意の組み合わせを表すフローチャートが、
図15~
図17に示されている。これらの例において、機械可読命令は、
図20に関連して後述する例示的なプロセッサプラットフォーム2000に示されるプロセッサ2012などのコンピュータプロセッサおよび/またはプロセッサ回路による実行のための1つまたは複数の実行可能なプログラムまたは実行可能なプログラムの一部であってよい。1つまたは複数のプログラムまたはその一部は、CD-ROM、フロッピディスク、ハードドライブ、DVD、ブルーレイディスク、またはプロセッサ2012に関連付けられたメモリなどの非一時的コンピュータ可読記憶媒体に記憶されたソフトウェアで具現化されてよいが、1つまたは複数のプログラム全体および/またはその一部は、代替的に、プロセッサ2012以外のデバイスにより実行されてもよく且つ/またはファームウェア若しくは専用ハードウェアで具現化されてもよい。さらに、例示的なプログラムを
図15~
図17に示されるフローチャートを参照して説明したが、例示的なMPIスタックデコーダ420を実装する多くの他の方法を代替的に使用することも可能である。例えば、
図15~
図17に示されるフローチャートを参照すると、ブロックの実行順序は変更され得る、および/または、説明されるブロックのいくつかに対して、変更、除去、組み合わせ、および/または、複数のブロックへのフラグメント化が行われ得る。追加的にまたは代替的に、これらのブロックのいずれかまたはすべてが、ソフトウェアまたはファームウェアを実行することなく、対応するオペレーションを実行するように構成された、1つまたは複数のハードウェア回路(例えば、ディスクリートおよび/または統合されたアナログおよび/またはデジタル回路、FPGA、ASIC、比較器、演算増幅器(オペアンプ)、ロジック回路など)によって実装されてもよい。プロセッサ回路は、異なるネットワーク上の位置および/または1つまたは複数のデバイスに局所的に分散していてもよい(例えば、単一の機械に搭載されたマルチコアプロセッサ、サーバラックに分散した複数のプロセッサなど)。
【0067】
本明細書に説明された機械可読命令は、圧縮フォーマット、暗号化フォーマット、フラグメント化フォーマット、コンパイルフォーマット、実行可能なフォーマット、パッケージフォーマットなどのうちの1つまたは複数で記憶されてよい。本明細書に記載されている機械可読命令は、機械実行可能な命令を作成、製造、および/または生成するために利用することができるデータまたはデータ構造(例えば、命令の一部、コード、コードの表現など)として記憶されてもよい。例えば、機械可読命令はフラグメント化され、ネットワークまたはネットワークの集合体の同じまたは異なる位置(例えば、クラウド内、エッジデバイス内など)に位置付けられる1つまたは複数の記憶デバイスおよび/またはコンピューティングデバイス(例えば、サーバ)に記憶されてもよい。機械可読命令は、機械可読命令をコンピューティングデバイスおよび/または他の機械によって直接読み取り可能、解釈可能および/または実行可能にすべく、インストール、修正、適合、更新、結合、補足、構成、復号化、伸張、アンパック、分配、再配置、コンピレーションなどのうちの1つまたは複数を必要としてよい。例えば、機械可読命令は、別個のコンピューティングデバイス上で個々に圧縮、暗号化および記憶された複数の部分に記憶され得る。これらの部分は、解読、伸張および結合された場合、本明細書において説明されるもののようなプログラムを共に形成し得る1つまたは複数の機能を実装する実行可能な命令のセットを形成する。
【0068】
別の例において、機械可読命令は、プロセッサ回路によって読み取られ得る状態で記憶され得るが、特定のコンピューティングデバイスまたは他のデバイス上で命令を実行するために、ライブラリ(例えば、ダイナミックリンクライブラリ(DLL))、ソフトウェア開発キット(SDK)、アプリケーションプログラミングインタフェース(API)などの追加を必要とし得る。別の例においては、機械可読命令および/または対応するプログラムが全体的にまたは部分的に実行可能になる前に、機械可読命令は構成(例えば、記憶された設定、データ入力、記録されたネットワークアドレスなど)される必要があってよい。このように、本明細書で使用される場合、機械可読媒体は、記憶されているとき、或いは静止状態または移動中の機械可読命令および/またはプログラムの特定のフォーマットまたは状態に関わらず、機械可読命令および/またはプログラムを含むことができる。
【0069】
本明細書に説明された機械可読命令は、任意の過去、現在または将来の命令言語、スクリプト言語、プログラミング言語などにより表されてよい。例えば、機械可読命令は、以下の言語、すなわち、C、C++、Java(登録商標)、C#、Perl、Python、JavaScript(登録商標)、ハイパーテキストマークアップ言語(HTML)、構造化クエリ言語(SQL)、Swiftなどのうちのいずれかを用いて表されてよい。
【0070】
上述のように、
図10~
図17の例示的な処理は、情報が任意の期間(例えば、長期間、永久的に、短時間、一時的なバッファの間、および/または情報をキャッシュする間)記憶される、ハードディスクドライブ、フラッシュメモリ、リードオンリメモリ、コンパクトディスク、デジタル汎用ディスク、キャッシュ、ランダムアクセスメモリ、および/または任意の他の記憶デバイスまたは記憶ディスクなどの非一時的コンピュータおよび/または機械可読媒体に記憶された実行可能な命令(例えば、コンピュータおよび/または機械可読命令)を使用して実装され得る。本明細書で使用される場合、非一時的コンピュータ可読媒体という用語は、任意のタイプのコンピュータ可読記憶デバイスおよび/または記憶ディスクを含み、且つ伝播信号を除外し且つ伝送媒体を除外するように明示的に定義されている。また、本明細書で使用される場合、「コンピュータ可読」および「機械可読」という用語は、別段の記載が無い限り、同等としてみなされる。
【0071】
「含む(including)」および「備える(comprising)」(およびそれらのすべての形態および時制)は本明細書において開放型用語として用いられる。したがって、請求項が「含む(include)」または「備える(comprise)」(例えば、comprises、includes、comprising、including、havingなど)の任意の形態を、プレアンブルとして、またはあらゆる種類の請求項の記載内で用いるときは常に、対応する請求項または記載の範囲外とならずに、追加の要素、用語などが存在し得ることを理解されたい。本明細書で使用される場合、「at least(少なくとも)」という用語が移行用語として、例えば、クレームのプレアンブルに用いられる場合、この文言も「comprising」および「including」という用語が開放型であるのと同じように開放型である。「および/または(and/or)」という用語が例えば、A、B、および/またはCなどの形態で用いられる場合、例えば、(1)Aのみ、(2)Bのみ、(3)Cのみ、(4)AとB、(5)AとC、(6)BとC、および(7)AとBとCといったように、A、B、Cの任意の組み合わせまたはサブセットを指す。本明細書で使用される場合、構造体、コンポーネント、項目、オブジェクト、および/または物を説明する文脈において、「AおよびBのうちの少なくとも1つ」という文言は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのB、のいずれかを含む実装例を意味することが意図されている。同様に、本明細書で使用される場合、構造体、コンポーネント、項目、オブジェクト、および/または物を説明する文脈において、「AまたはBのうちの少なくとも1つ」という文言は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのB、のいずれかを含む実装例を意味することが意図されている。本明細書で使用される場合、処理、命令、動作、活動、および/または段階の遂行または実行を説明する文脈において、「AおよびBのうちの少なくとも1つ」という文言は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのB、のいずれかを含む実装例を意味することが意図されている。同様に、本明細書で使用される場合、処理、命令、動作、活動、および/または段階の遂行または実行を説明する文脈において、「AまたはBのうちの少なくとも1つ」という文言は、(1)少なくとも1つのA、(2)少なくとも1つのB、および(3)少なくとも1つのAおよび少なくとも1つのB、のいずれかを含む実装例を意味することが意図されている。
【0072】
本明細書で使用される場合、単一の言及(例えば、「1つの(a)」、「1つの(an)」、「第1の(first)」、第2の(second)」など)は、複数を除外しない。本明細書で使用される場合、「1つの(a)」または「1つの(an)」エンティティという用語は、そのエンティティの1つまたは複数を指す。本明細書において「1つの(a)」(または「1つの(an)」、「1つまたは複数(one or more)」および「少なくとも1つ(at least one)」という用語は交換可能に用いられてよい。さらに、個々に列挙されているが、複数の手段、要素または方法アクションは、例えば単一のユニットまたはプロセッサによって実装されてよい。さらに、個々の特徴が異なる例またはクレームに含まれてよいが、これらの特徴は、場合によっては、組み合わされてよく、異なる例またはクレームに含まれることで、これらの特徴の組み合わせが実現可能ではない且つ/または有利ではないことが示唆されるわけではない。
【0073】
図4および/または
図5のMPIスタックエンコーダ410を実装するために実行され得る例示的なプログラム1000は、
図10に示されるフローチャートによって表される。上述の図面および関連付けられた書面の説明を参照すると、
図10の例示的なプログラム1000は、ブロック1005で実行を開始し、ここで、MPIスタックエンコーダ410が、ソースカメラ視点に対応する生成されたMPIスタック135に含まれる入力テクスチャ画像スタック140が圧縮されるか否かを決定する。入力テクスチャ画像スタック140が圧縮される場合(ブロック1005)、ブロック1010では、MPIスタックエンコーダ410のMPI圧縮画像エンコーダ425は、上述したように、入力テクスチャ画像スタック140を単一の合成テクスチャ画像430に変換する。ブロック1010で処理を実装する例示的なプログラムは
図11および12に示されており、以下でさらに詳細に説明される。ブロック1015では、MPI圧縮画像エンコーダ425は単一の合成テクスチャ画像430を出力する。その後、制御はブロック1020に進む。しかし、入力テクスチャ画像スタック140が圧縮されない場合(ブロック1005)、ブロック1025では、MPIスタックエンコーダ410はテクスチャ画像スタック140を出力する。その後、制御はブロック1020に進む。
【0074】
ブロック1020では、MPIスタックエンコーダ410は、ソースカメラ視点に対応する生成されたMPIスタック135に含まれる入力アルファ画像スタック150が圧縮されるか否かを決定する。入力アルファ画像スタック150が圧縮される場合(ブロック1020)、ブロック1030では、MPIスタックエンコーダ410のMPI圧縮画像エンコーダ425は、上述したように、入力アルファ画像スタック150を単一の合成アルファ画像435に変換する。ブロック1030で処理を実装する例示的なプログラムは
図13および14に示されており、以下でさらに詳細に説明される。ブロック1035では、MPI圧縮画像エンコーダ425は単一の合成アルファ画像435を出力する。その後、制御はブロック1040に進む。しかし、入力アルファ画像スタック150が圧縮されない場合(ブロック1020)、ブロック1045では、MPIスタックエンコーダ410はアルファ画像スタック150を出力する。その後、制御はブロック1040に進む。
【0075】
ブロック1040では、MPIスタックエンコーダ410は、他のソースカメラ視点に対応する他のMPIスタック135が処理されるか否かを決定する。他のMPIスタック135が処理される場合、制御はブロック1005に戻る。そうでなければ、例示的なプログラム1000の実行が終了する。
【0076】
MPI圧縮画像エンコーダ425のテクスチャスタック圧縮器510および/または
図10のブロック1010での処理を実装するために実行され得る例示的なプログラム1010P1は
図11に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図11の例示的なプログラム1010P1はブロック1105で実行を開始し、ここで、テクスチャスタック圧縮器510は、データインタフェース505から入力テクスチャ画像スタック140にアクセスする。ブロック1110では、テクスチャスタック圧縮器510はデータインタフェース505から入力アルファ画像スタック150にアクセスする。ブロック1115では、テクスチャスタック圧縮器510は、テクスチャ画像スタック140のそれぞれのテクスチャ画像の処理を開始する。例えば、ブロック1120では、テクスチャスタック圧縮器510は、上述したように、与えられたテクスチャ画像に対応するアルファ画像の画素値によってそのテクスチャ画像の画素値を重み付けする。例えば、ブロック1120での処理は、上述した式1の分子項t
i,jα
i,jを計算するテクスチャスタック圧縮器510に対応することができる。ブロック1125では、テクスチャスタック圧縮器510は、テクスチャ画像スタック140のすべてのテクスチャ画像が処理されるまでテクスチャ画像の処理を継続する。
【0077】
ブロック1130では、テクスチャスタック圧縮器510は、単一の合成テクスチャ画像430に対する画素値を決定するために、それぞれの画素位置iを介して反復処理を開始する。例えば、ブロック1135では、テクスチャスタック圧縮器510は、上述したように、単一の合成テクスチャ画像430の画素位置iに対するアルファ加重平均画素値を決定するために、ブロック1120で決定された重み付けされたテクスチャ画像を使用する。例えば、ブロック1120での処理は、テクスチャスタック圧縮器510が上述した式1の出力項pi,jを計算することに対応することができる。ブロック1140では、テクスチャスタック圧縮器510は、単一の合成テクスチャ画像430のすべての画素位置が評価されるまで、画素位置の処理を継続する。ブロック1145では、テクスチャスタック圧縮器510は、データインタフェース505を介して単一の合成テクスチャ画像430を出力し、ここで、それぞれの画素位置iがブロック1135で決定された対応するアルファ加重平均画素値pi,jに設定される。その後、例示的なプログラム1010P1の実行が終了する。
【0078】
MPI圧縮画像エンコーダ425のテクスチャスタック圧縮器510および/または
図10のブロック1010での処理を実装するために実行され得る例示的なプログラム1010P2は
図12に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図12の例示的なプログラム1010P2は、ブロック1205で実行を開始し、ここで、テクスチャスタック圧縮器510は、データインタフェース505を介して、入力テクスチャ画像スタック140に対応するソースカメラ視点に関連付けられたソースカメラテクスチャ画像にアクセスする。ブロック1210では、テクスチャスタック圧縮器510は、データインタフェース505を介して、単一の合成テクスチャ画像430を出力し、ここで、それぞれの画素位置iがソースカメラテクスチャ画像の対応する画素値に設定される。その後、例示的なプログラム1010P2の実行は終了する。
【0079】
MPI圧縮画像エンコーダ425のアルファスタック圧縮器515および/または
図10のブロック1030での処理を実装するために実行され得る例示的なプログラム1030P1は
図13に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図13の例示的なプログラム1030P1は、ブロック1305で実行を開始し、ここで、アルファスタック圧縮器515はデータインタフェース505から入力アルファ画像スタック150にアクセスする。ブロック1310では、アルファスタック圧縮器515は、単一の合成アルファ画像435に対する画素値を決定するために、それぞれの画素位置iの処理を開始する。例えば、ブロック1315では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iにおいて、最も大きいアルファ値(例えば、a
i,m)を有する入力アルファ画像スタック150のアルファプレーンを特定する第1のアルファプレーンインデックス値(例えば、p
i,m)を特定する。ブロック1320では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iにおいて、次に大きいアルファ値(例えば、a
i,2)を有する近傍アルファプレーンを特定する第2のアルファプレーンインデックス値(例えば、p
i,m+1またはp
i,m-1)を特定する。ブロック1325では、アルファスタック圧縮器515は、上述したように、最も大きいアルファ値(例えば、a
i,m)と次に大きいアルファ値(例えば、a
i,2)とに基づいて、与えられた画素位置iに対するバイアス値(例えば、b
i)を決定する。例えば、ブロック1325では、アルファスタック圧縮器515は、上述したように、式2にしたがってバイアス値b
iを決定してよい。ブロック1330では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iに対する合成アルファ値(例えば、d
i)を決定するために、第1のアルファプレーンインデックス値(例えば、p
i,m)とバイアス値(例えば、b
i)とを組み合わせる。例えば、ブロック1330では、アルファスタック圧縮器515は、上述したように、式3にしたがって、与えられた画素位置iに対する合成アルファ値d
iを決定してよい。ブロック1335では、アルファスタック圧縮器515は、単一の合成アルファ画像435のすべての画素位置が評価されるまで、画素位置の処理を継続する。ブロック1340では、アルファスタック圧縮器515は、データインタフェース505を介して、単一の合成アルファ画像435を出力し、ここで、それぞれの画素位置iがブロック1330で決定された対応する合成アルファ値d
iに設定される。その後、例示的なプログラム1030P1の実行は終了する。
【0080】
MPI圧縮画像エンコーダ425のアルファスタック圧縮器515および/または
図10のブロック1030での処理を実装するために実行され得る例示的なプログラム1030P2は
図14に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図14の例示的なプログラム1030P2は、ブロック1405で実行を開始し、ここで、アルファスタック圧縮器515は、データインタフェース505を介して、入力アルファ画像スタック150に対応するソースカメラ視点に関連付けられたソースカメラ深さ画像にアクセスする。ブロック1410では、アルファスタック圧縮器515は、単一の合成アルファ画像435に対する画素値を決定するために、それぞれの画素位置iの処理を開始する。例えば、ブロック1415では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iにおいて、深さ画像値(例えば、d)に基づいて、アルファプレーンインデックス値(例えば、j)を決定する。例えば、ブロック1415では、アルファスタック圧縮器515は、上述したように、式12にしたがって、与えられた画素位置iにおいて、アルファプレーンインデックス値jを決定してよい。ブロック1420では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iにおいて、アルファプレーンインデックス値(例えば、j)と深さ画像値(例えば、d)とに基づいて、与えられた画素位置iに対するバイアス値(例えば、d
j)を決定する。例えば、ブロック1420では、アルファスタック圧縮器515は、上述したように、式d
j=d-j*Iにしたがってバイアス値d
jを決定してよい。ブロック1425では、アルファスタック圧縮器515は、上述したように、与えられた画素位置iに対する合成アルファ値(例えば、d
i)を決定するために、アルファプレーンインデックス値(例えば、j)とバイアス値(例えば、d
i)とを組み合わせる。例えば、ブロック1425では、アルファスタック圧縮器515は、上述したように、式13にしたがって、与えられた画素位置iに対する合成アルファ値d
iを決定してよい。ブロック1430では、アルファスタック圧縮器515は、単一の合成アルファ画像435のすべての画素位置が評価されるまで、画素位置の処理を継続する。ブロック1435では、アルファスタック圧縮器515は、データインタフェース505を介して、単一の合成アルファ画像435を出力し、ここで、それぞれの画素位置iがブロック1425で決定された対応する合成アルファ値d
iに設定される。その後、例示的なプログラム1030P1の実行が終了する。
【0081】
図4および/または
図6のMPIスタックデコーダ420を実装するために実行され得る例示的なプログラム1500は、
図15に示されるフローチャートによって表される。上述の図面および関連付けられた書面の説明を参照すると、
図15の例示的なプログラム1500は、ブロック1505で実行を開始し、ここで、MPIスタックデコーダ420は、ソースカメラ視点に対応する合成テクスチャ画像450が伸張されるか否かを決定する。伸張される合成テクスチャ画像450が存在する場合(ブロック1505)、ブロック1510では、MPIスタックデコーダ420のMPI圧縮画像デコーダ460は、上述したように、非圧縮テクスチャ画像スタック465を取得するために、合成テクスチャ画像450を伸張する。ブロック1510での処理を実装するための例示的なプログラムは
図16に示されており、以下でさらに詳細に説明される。ブロック1015では、MPI圧縮画像デコーダ460は、非圧縮テクスチャ画像スタック465を出力する。その後、制御はブロック1520に進む。しかし、伸張される合成テクスチャ画像450が存在しない場合(ブロック1505)、ブロック1525では、MPIスタックデコーダ420は、(ソースプラットフォーム405にテクスチャスタック圧縮がないため)受信されたテクスチャ画像スタックを出力する。その後、制御はブロック1520に進む。
【0082】
ブロック1520では、MPIスタックデコーダ420は、ソースカメラ視点に対応する合成アルファ画像455が伸張されるか否かを決定する。伸張される合成アルファ画像455が存在する場合(ブロック1520)、ブロック1530では、MPIスタックデコーダ420のMPI圧縮画像デコーダ460は、上述したように、非圧縮アルファ画像スタック470を取得するために、合成アルファ画像455を伸張する。ブロック1530での処理を実装するための例示的なプログラムは
図17に示されており、以下でさらに詳細に説明される。ブロック1535では、MPI圧縮画像デコーダ460は、非圧縮アルファ画像スタック470を出力する。その後、制御はブロック1540に進む。しかし、伸張される合成アルファ画像455が存在しない場合(ブロック1520)、ブロック1545では、MPIスタックデコーダ420は、(ソースプラットフォーム405にアルファスタック圧縮がないため)受信されたアルファ画像スタックを出力する。その後、制御はブロック1520に進む。
【0083】
ブロック1540では、MPIスタックデコーダ420は、他のソースカメラ視点に対してMPI伸張が実行されるか否かを決定する。他のソースカメラ視点がMPI伸張を受ける場合、制御はブロック1505に戻る。そうでなければ、例示的なプログラム1500の実行は終了する。
【0084】
MPI圧縮画像デコーダ460のテクスチャスタック伸張器610および/または
図15のブロック1510での処理を実装するために実行され得る例示的なプログラム1510Pは
図16に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図16の例示的なプログラム1510Pは、ブロック1605で実行を開始し、ここで、テクスチャスタック伸張器610はデータインタフェース605を介して合成テクスチャ画像450にアクセスする。ブロック1610では、テクスチャスタック伸張器610は、上述したように、非圧縮テクスチャ画像スタック465を形成するために、合成テクスチャ画像450を複製する。ブロック1615では、テクスチャスタック伸張器610は、データインタフェース605を介して、非圧縮テクスチャ画像スタック465を出力する。その後、例示的なプログラム1510Pの実行は終了する。
【0085】
MPI圧縮画像デコーダ460のアルファスタック伸張器615および/または
図15のブロック1530での処理を実装するために実行され得る例示的なプログラム1530Pは、
図17に示されている。上述の図面および関連付けられた書面の説明を参照すると、
図17の例示的なプログラム1530Pは、ブロック1705で実行を開始し、ここで、アルファスタック伸張器615は、データインタフェース605を介して合成アルファ画像455にアクセスする。ブロック1710では、アルファスタック伸張器615は、非圧縮アルファ画像スタック470を決定するために、合成アルファ画像455のそれぞれの画素位置iの処理を開始する。例えば、ブロック1715では、アルファスタック伸張器615は、上述したように、画素位置iにおいて、合成アルファ値(例えば、d
i)に基づいて、与えられた画素位置iに対する第1のアルファプレーンインデックス値(例えば、
【数19】
)を決定する。例えば、ブロック1715では、アルファスタック伸張器615は、上述したように、式5にしたがって、第1のアルファプレーンインデックス値
【数20】
を決定してよい。ブロック1720では、アルファスタック伸張器615は、上述したように、画素位置iにおいて、第1のアルファプレーンインデックス値(例えば、
【数21】
)と合成アルファ値(例えば、d
i)とに基づいて、与えられた画素位置iに対するバイアス値(
【数22】
を決定する。例えば、ブロック1720では、アルファスタック伸張器615は、上述したように、式6にしたがって、バイアス値
【数23】
を決定してよい。ブロック1725では、アルファスタック伸張器615は、上述したように、画素位置iに対するバイアス値(
【数24】
)に基づいて、与えられた画素位置iに対する第2のアルファプレーンインデックス値(例えば、
【数25】
または
【数26】
)を決定する。例えば、ブロック1725では、アルファスタック伸張器615は、上述したように、バイアス値
【数27】
が正である場合、第2のアルファプレーンインデックス値を
【数28】
に設定してよく、バイアス値
【数29】
が負である場合、第2のアルファプレーンインデックス値を
【数30】
に設定してよい。
【0086】
ブロック1730では、アルファスタック伸張器615は、上述したように、画素位置iに対するバイアス値(
【数31】
)に基づいて、与えられた画素位置iに対する第2のアルファ値(例えば、
【数32】
)を決定する。例えば、ブロック1730では、アルファスタック伸張器615は、上述したように、式7にしたがって、第2のアルファ値
【数33】
を決定してよい。ブロック1735では、アルファスタック伸張器615は、画素位置iに対して決定された第2のアルファ値(例えば、
【数34】
)に基づいて、与えられた画素位置iに対する第1のアルファ値(
【数35】
)を決定する。例えば、ブロック1735では、アルファスタック伸張器615は、上述したように、式8にしたがって、第1のアルファ値(
【数36】
)を決定してよい。ブロック1740では、アルファスタック伸張器615は、上述したように、第1のアルファプレーンインデックス値(例えば、
【数37】
)によって特定された非圧縮アルファ画像における与えられた画素位置iを、第1のアルファ値(
【数38】
)を有するように設定する。ブロック1745では、アルファスタック伸張器615は、上述したように、第2のアルファプレーンインデックス値(例えば、
【数39】
または
【数40】
)によって特定された非圧縮アルファ画像における与えられた画素位置iを、第2のアルファ値(例えば、
【数41】
)を有するように設定する。ブロック1750では、アルファスタック伸張器615は、上述したように、与えられた画素位置iにおいて、非圧縮アルファ画像スタック470の残りの非圧縮アルファ画像をゼロに設定する。ブロック1755では、アルファスタック伸張器615は、合成アルファ画像455のすべての画素位置が評価されるまで、画素位置の処理を継続する。ブロック1760では、アルファスタック伸張器615は、データインタフェース605を介して、非圧縮アルファ画像スタック470を出力する。その後、例示的なプログラム1530Pの実行は終了する。
【0087】
図18は、上述したようにMPIスタックエンコーダ410のMPI圧縮画像エンコーダ425によって決定された単一の合成アルファ画像435/455および単一の合成テクスチャ画像430/450を使用してターゲット画像をレンダリングするために、
図4の例示的なビデオエンコーディングおよびデコーディングシステム400によって実行される例示的な手順1800を示している。示された例示的な手順1800において、例示的な粗い深さマップとして、MPIスタックデコーダ420は、単一の合成アルファ画像435/455(アルファマップまたは圧縮アルファマップとも称される)をデコードし、例示的な粗い深さマップから例示的な得られた深さマップ1820が作成される。得られた深さマップ1820は、単一の合成テクスチャ画像430/450をターゲット視点のレンダリングされたターゲット画像1815に直接投影することに使用される。
【0088】
示された例において、得られた深さマップ1820は、以下のように決定される。まず、合成アルファ画像435/455(例えば、アルファマップまたは圧縮アルファマップ)は、粗い8ビット深さマップとして扱われる。10ビットまたは16ビット深さマップを取得するために、MPIスタックデコーダ420は、合成アルファ画像435/455(例えば、アルファマップまたは圧縮アルファマップ)の値が4または256でそれぞれ乗算される。画素値dを有する8ビット深さマップから、MPIスタックデコーダ420は、式18にしたがって、生深さzを決定する。
【数42】
式18
【0089】
例示的な手順1800では、生深さは、カメラの固有特性(焦点距離、主点)および外部特性(世界座標に対するカメラ中心の位置)を使用して、各画素を3D空間に投影するために使用される。例えば、ブロック1825では、画素は、ターゲット視野の画像に直接投影されることができ(これは、より少ない計算を含むことができる)、および/またはブロック1830では、生深さは、ターゲットに投影されラスタライズされる3D三角メッシュを作成するために使用することができる(これは、より大きい計算を含むことができる)。
【0090】
ブロック1835では、最終的なレンダリングされたターゲット画像1815を生成するために、複数のカメラを投影することによって取得された画像は、その後にブレンドされる。ブレンディングは、ソースからターゲットカメラ中心までの距離に依存する重み付け関数を使用する。
【0091】
図19は、
図4および/または
図5のMPIスタックエンコーダ410を実装するために、
図10~
図14の命令を実行するように構成された例示的なプロセッサプラットフォーム1900のブロック図である。プロセッサプラットフォーム1900は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(商標)などのタブレット)、携帯情報端末(PDA)、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーム機、パーソナルビデオレコーダ、セットトップボックス、デジタルカメラ、ヘッドセット若しくは他の装着可能デバイス、または任意の他のタイプのコンピューティングデバイスであることができる。
【0092】
示された例のプロセッサプラットフォーム1900は、プロセッサ1912を含む。示された例のプロセッサ1912は、ハードウェアである。例えば、プロセッサ1912は、1つまたは複数の集積回路、ロジック回路、マイクロプロセッサ、GPU、DSP、または任意の所望のファミリ若しくは製造業者からのコントローラにより実装されてよい。ハードウェアプロセッサ1912は、半導体ベース(例えばシリコンベース)のデバイスであり得る。この例において、プロセッサ1912は、MPI圧縮画像エンコーダ425、データインタフェース505、テクスチャスタック圧縮器510およびアルファスタック圧縮器515を実装する。
【0093】
示された例のプロセッサ1912は、ローカルメモリ1913(例えば、キャッシュ)を含む。示された例のプロセッサ1912は、リンク1918を介して、揮発性メモリ1914および不揮発性メモリ1916を含むメインメモリと通信する。リンク1918は、バス、1つまたは複数のポイントツーポイント接続など、またはこれらの組み合わせにより実装されてよい。揮発性メモリ1914は、シンクロナスダイナミックランダムアクセスメモリ(SDRAM)、ダイナミックランダムアクセスメモリ(DRAM)、RAMBUS(登録商標)ダイナミックランダムアクセスメモリ(RDRAM(登録商標))および/または任意の他のタイプのランダムアクセスメモリデバイスにより実装されてよい。不揮発性メモリ1916は、フラッシュメモリおよび/または任意の他の所望のタイプのメモリデバイスにより実装されてよい。メインメモリ1914、1916へのアクセスは、メモリコントローラにより制御される。
【0094】
示された例のプロセッサプラットフォーム1900はまた、インタフェース回路1920も含む。インタフェース回路1920は、イーサネット(登録商標)インタフェース、ユニバーサルシリアルバス(USB)、Bluetooth(登録商標)インタフェース、近距離無線通信(NFC)インタフェースおよび/またはPCIエクスプレスインタフェースなどの任意のタイプのインタフェース規格により実装されてよい。
【0095】
示された例において、1つまたは複数の入力デバイス1922は、インタフェース回路1920に接続される。入力デバイス1922は、ユーザがデータおよび/またはコマンドをプロセッサ1912に入力することを許容する。入力デバイスは、例えば、オーディオセンサ、マイク、カメラ(静止画または動画)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、トラックバー(アイソポイントなど)、音声認識システム、および/または任意の他のヒューマンマシンインタフェースにより実装されてよい。また、プロセッサプラットフォーム1900などの多くのシステムによって、ユーザは、限定されないが、手または身体の動き、顔の表情、および顔認識などの身体的な動作を用いて、コンピュータシステムを制御し、データをコンピュータに提供できるようになってよい。
【0096】
1つまたは複数の出力デバイス1924もまた、示された例のインタフェース回路1920に接続される。出力デバイス1924は、例えば、ディスプレイデバイス(例えば、発光ダイオード(LED)、有機発光ダイオード(OLED)、液晶ディスプレイ(LCD)、陰極線管ディスプレイ(CRT)、インプレースイッチング(IPS)ディスプレイ、タッチスクリーンなど)、触覚出力デバイス、プリンタおよび/またはスピーカによって実装することが可能である。したがって、示された例のインタフェース回路1920は通常、グラフィックスドライバカード、グラフィックスドライバチップ、および/またはグラフィックスドライバプロセッサを含む。
【0097】
示された例のインタフェース回路1920は、ネットワーク1926を介して外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を容易にする伝送器、受信器、トランシーバ、モデム、住居用ゲートウェイ、無線アクセスポイント、および/またはネットワークインタフェースなどの通信デバイスも含む。通信は、例えば、イーサネット接続、デジタル加入者線(DSL)接続、電話回線接続、同軸ケーブルシステム、衛星システム、有視界無線システム、セルラ電話システムなどを介したものであってよい。
【0098】
示された例のプロセッサプラットフォーム1900はまた、ソフトウェアおよび/またはデータを記憶するための1つまたは複数の大容量記憶デバイス1928も含む。このような大容量記憶デバイス1928の例には、フロッピディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイ(登録商標)ディスクドライブ、リダンダントアレイオブインディペンデントディスク(RAID)システム、およびデジタル汎用ディスク(DVD)ドライブが含まれる。
【0099】
図10~
図14の命令に対応する機械実行可能な命令1932は、大容量記憶デバイス1928、揮発性メモリ1914、不揮発性メモリ1916、ローカルメモリ1913および/またはCD若しくはDVD1936などの取り外し可能な非一時的コンピュータ可読記憶媒体に記憶されてよい。
【0100】
図20は、
図4および/または
図6のMPIスタックデコーダ420を実装するために、
図15~
図17の命令を実行するように構成された例示的なプロセッサプラットフォーム2000のブロック図である。プロセッサプラットフォーム2000は、例えば、サーバ、パーソナルコンピュータ、ワークステーション、自己学習機械(例えば、ニューラルネットワーク)、モバイルデバイス(例えば、携帯電話、スマートフォン、iPad(商標)などのタブレット)、PDA、インターネット機器、DVDプレーヤ、CDプレーヤ、デジタルビデオレコーダ、ブルーレイプレーヤ、ゲーム機、パーソナルビデオレコーダ、セットトップボックス、デジタルカメラ、ヘッドセット若しくは他の装着可能デバイス、または任意の他のタイプのコンピューティングデバイスであることができる。
【0101】
示された例のプロセッサプラットフォーム2000は、プロセッサ2012を含む。示された例のプロセッサ2012は、ハードウェアである。例えば、プロセッサ2012は、1つまたは複数の集積回路、ロジック回路、マイクロプロセッサ、GPU、DSP、または任意の所望のファミリ若しくは製造業者からのコントローラにより実装されてよい。ハードウェアプロセッサ2012は、半導体ベース(例えばシリコンベース)のデバイスであり得る。この例において、プロセッサ2012は、MPI圧縮画像デコーダ460、データインタフェース605、テクスチャスタック伸張器610およびアルファスタック伸張器615を実装する。
【0102】
示された例のプロセッサ2012は、ローカルメモリ2013(例えば、キャッシュ)を含む。示された例のプロセッサ2012は、リンク2018を介して、揮発性メモリ2014および不揮発性メモリ2016を含むメインメモリと通信する。リンク2018は、バス、1つまたは複数のポイントツーポイント接続など、またはこれらの組み合わせにより実装されてよい。揮発性メモリ2014は、SDRAM、DRAM、RDRAM(登録商標)および/またはいずれの他のタイプのランダムアクセスメモリデバイスにより実装されてよい。不揮発性メモリ2016は、フラッシュメモリおよび/またはいずれの他の所望のタイプのメモリデバイスにより実装されてよい。メインメモリ2014、2016へのアクセスは、メモリコントローラにより制御される。
【0103】
示された例のプロセッサプラットフォーム2000はまた、インタフェース回路2020も含む。インタフェース回路2020は、イーサネットインタフェース、USB、ブルートゥース(登録商標)インタフェース、NFCインタフェースおよび/またはPCIエクスプレスインタフェースなどのいずれのタイプのインタフェース規格により実装されてよい。
【0104】
示された例において、1つまたは複数の入力デバイス2022は、インタフェース回路2020に接続される。入力デバイス2022は、ユーザがデータおよび/またはコマンドをプロセッサ2012に入力することを許容する。入力デバイスは、例えば、オーディオセンサ、マイク、カメラ(静止画または動画)、キーボード、ボタン、マウス、タッチスクリーン、トラックパッド、トラックボール、トラックバー(アイソポイントなど)、音声認識システム、および/または任意の他のヒューマンマシンインタフェースにより実装されてよい。また、プロセッサプラットフォーム2000などの多くのシステムによって、ユーザは、限定されないが、手または身体の動き、顔の表情、および顔認識などの身体的な動作を用いて、コンピュータシステムを制御し、データをコンピュータに提供できるようになってよい。
【0105】
1つまたは複数の出力デバイス2024もまた、示された例のインタフェース回路2020に接続される。出力デバイス2024は、例えば、ディスプレイデバイス(例えば、LED、OLED、LCD、CRTディスプレイ、IPディスプレイ、タッチスクリーンなど)、触覚出力デバイス、プリンタおよび/またはスピーカにより実装されることができる。したがって、示された例のインタフェース回路2020は通常、グラフィックスドライバカード、グラフィックスドライバチップ、および/またはグラフィックスドライバプロセッサを含む。
【0106】
示された例のインタフェース回路2020は、ネットワーク2026を介して外部機械(例えば、任意の種類のコンピューティングデバイス)とのデータ交換を容易にする伝送器、受信器、トランシーバ、モデム、住居用ゲートウェイ、無線アクセスポイント、および/またはネットワークインタフェースなどの通信デバイスも含む。通信は、例えば、イーサネット接続、DSL接続、電話回線接続、同軸ケーブルシステム、衛星システム、有視界無線システム、セルラ電話システムなどを介したものであってよい。
【0107】
示された例のプロセッサプラットフォーム2000はまた、ソフトウェアおよび/またはデータを記憶するための1つまたは複数の大容量記憶デバイス2028も含む。そのような大容量記憶デバイス2028の例は、フロッピディスクドライブ、ハードドライブディスク、コンパクトディスクドライブ、ブルーレイ(登録商標)ディスクドライブ、RAIDシステム、およびDVDドライブを含む。
【0108】
図10~
図14の命令に対応する機械実行可能な命令2032は、大容量記憶デバイス2028、揮発性メモリ2014、不揮発性メモリ2016、ローカルメモリ2013および/またはCD若しくはDVD2036などの取り外し可能な非一時的コンピュータ可読記憶媒体に記憶されてよい。
【0109】
図19および/または
図20の例示的なコンピュータ可読命令1932および/または2032などのソフトウェアをサードパーティに配布するための例示的なソフトウェア配布プラットフォーム2105を示すブロック図は
図21に示されている。例示的なソフトウェア配布プラットフォーム2105は、ソフトウェアを他のコンピューティングデバイスに記憶および伝送することが可能な任意のコンピュータサーバ、データ設備、クラウドサービスなどによって実装され得る。サードパーティは、ソフトウェア配布プラットフォームを所有および/または運営するエンティティの顧客であってよい。例えば、ソフトウェア配布プラットフォームを所有および/または運営するエンティティは、
図19および/または
図20の例示的なコンピュータ可読命令1932および/または2032などのソフトウェアの開発者、販売者および/またはライセンサであってよい。サードパーティは、使用および/または再販売および/またはサブライセンスするためにソフトウェアを購入および/またはライセンスする消費者、ユーザ、小売業者、OEMなどであり得る。示された例において、ソフトウェア配布プラットフォーム2105は1つまたは複数のサーバおよび1つまたは複数の記憶デバイスを含む。記憶デバイスは、上述したように、
図10~
図14および
図15~
図17の例示的なコンピュータ可読命令に対応し得るコンピュータ可読命令1932および/または2032を記憶する。例示的なソフトウェア配布プラットフォーム2105の1つまたは複数のサーバは、インターネットおよび/または上述した例示的なネットワーク1926および/または2026のうちのいずれか1つまたは複数に対応し得るネットワーク2110と通信している。いくつかの例において、1つまたは複数のサーバは、商業トランザクションの一部としてソフトウェアを要求側に伝送するための要求に応答する。ソフトウェアの伝達、販売、および/またはライセンスのための支払いは、ソフトウェア配布プラットフォームの1つまたは複数のサーバによって、および/または、サードパーティの支払いエンティティを介して処理され得る。サーバは、購入者および/またはライセンサがコンピュータ可読命令1932および/または2032をソフトウェア配布プラットフォーム2105からダウンロードすることを可能にする。例えば、
図10~
図14の例示的なコンピュータ可読命令に対応し得るソフトウェアは、MPIスタックエンコーダ410を実装するためにコンピュータ可読命令1932を実行する例示的なプロセッサプラットフォーム1900にダウンロードされてよい。追加的にまたは代替的に、
図15~
図17の例示的なコンピュータ可読命令に対応し得るソフトウェアは、MPIスタックデコーダ420を実装するためにコンピュータ可読命令2032を実行する例示的なプロセッサプラットフォーム2000にダウンロードされてよい。いくつかの例において、ソフトウェア配布プラットフォーム2105のうちの1つまたは複数のサーバは、改善、パッチ、更新などがエンドユーザデバイスにおいてソフトウェアに配布され適用されることを保証するために、ソフトウェア(例えば、
図19および/または
図20の例示的なコンピュータ可読命令1932および/または2032)の更新を定期的に提供、伝送、および/または強制する。
【0110】
前述より、マルチプレーン画像圧縮を実装する例示的な方法、装置、および製造品が開示されていることが理解されるであろう。開示される方法、装置および製造品は、レンダリングされた画像の品質を維持しつつ、画像レンダリングのためにターゲットプラットフォームに転送されるMPIデータの量を低減することによって、コンピューティングデバイスの使用効率を向上させる。このように、本明細書に開示される例示的なMPI圧縮技術により、他の(例えば、従来の)技術に必要な伝送帯域幅に対して、ターゲットまたはレンダリングノードへの低帯域幅伝送を可能にする。したがって、開示される例示的なMPI圧縮技術は、リソースが制限されたプラットフォーム上での仮想現実および没入型メディアアプリケーションの実行を可能にすることができるが、任意の数の画像処理システムおよびアプリケーションに使用することもできる。開示される方法、装置、および製造品は、したがって、コンピュータの機能における1つまたは複数の改善に向けられている。
【0111】
前述した開示は、マルチプレーン画像圧縮を実装するための例示的な解決策を提供する。マルチプレーン画像圧縮を実装する装置、実行されると少なくとも1つのプロセッサにマルチプレーン画像圧縮を実装させる命令を含む少なくとも1つの非一時的コンピュータ可読媒体、および関連付けられた方法などの主題を含む以下のさらなる例が、本明細書に開示されている。開示される例は、個々に、および/または、1つまたは複数の組み合わせで実装できる。
【0112】
例1は、マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするためのインタフェースであって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つを実行する圧縮画像エンコーダであって、前記インタフェースが前記圧縮マルチプレーン画像スタックを出力する、圧縮画像エンコーダとを備える装置を含む。
【0113】
例2は、前記圧縮画像エンコーダが、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる、例1に記載の装置を含む。
【0114】
例3は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、例2に記載の装置を含む。
【0115】
例4は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、例3に記載の装置を含む。
【0116】
例5は、前記圧縮画像エンコーダは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、例1に記載の装置を含む。
【0117】
例6は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、第1の画素位置における前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置における前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例1に記載の装置を含む。
【0118】
例7は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、第1の画素位置におけるソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例1に記載の装置を含む。
【0119】
例8は、前記圧縮画像エンコーダは、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、例1に記載の装置を含む。
【0120】
例9は、コンピュータ可読命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令は実行されると、少なくとも1つのプロセッサに、少なくとも、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスさせ、前記入力マルチプレーン画像スタックは複数のテクスチャ画像と対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含み、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つをさせ、前記圧縮マルチプレーン画像スタックを出力させる、少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0121】
例10は、前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせる、例9に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0122】
例11は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けして、複数のアルファ重み付けされたテクスチャ画像を決定させる、例10に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0123】
例12は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記命令は、前記少なくとも1つのプロセッサに、前記アルファ重み付けされたテクスチャ画像を平均化して前記単一の合成テクスチャ画像を決定させ、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、例11に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0124】
例13は、前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換えさせる、例9に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0125】
例14は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記命令は、前記少なくとも1つのプロセッサに、第1の画素位置における前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定させ、前記第1の画素位置における前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定させ、前記第1の画素位置に対するバイアス値を決定させ、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定させる、例9に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0126】
例15は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記命令は、前記少なくとも1つのプロセッサに、第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定させ、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、前記第1の画素位置に対するバイアス値を決定させ、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定させる、例9に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0127】
例16は、前記命令は、前記少なくとも1つのプロセッサに、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換させ、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換させる、例9に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0128】
例17は、マルチプレーン画像スタックを圧縮するための方法であって、前記方法は、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスする段階であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、段階と、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換する段階、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換する段階のうちの少なくとも1つと、前記圧縮マルチプレーン画像スタックを出力する段階とを備える方法を含む。
【0129】
例18は、前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる段階を有する、例17に記載の方法を含む。
【0130】
例19は、前記複数のテクスチャ画像を組み合わせる前記段階は、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記テクスチャ画像のうちのいくつかの画素値を、前記テクスチャ画像のうちの前記いくつかに対応する前記アルファ画像のうちのいくつかのそれぞれの画素値で重み付けする段階を有する、例18に記載の方法を含む。
【0131】
例20は、前記複数のテクスチャ画像を組み合わせる前記段階は、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化する段階を有し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、例19に記載の方法を含む。
【0132】
例21は、前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える段階を有する、例17に記載の方法を含む。
【0133】
例22は、前記複数のアルファ画像を変換する前記段階は、第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定する段階と、前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定する段階と、前記第1の画素位置に対するバイアス値を決定する段階であって、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づく、段階と、前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階とを有する、例17に記載の方法を含む。
【0134】
例23は、前記複数のアルファ画像を変換する段階は、第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定する段階であって、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応するソースカメラ視点に関連付けられている、段階と、前記第1の画素位置に対するバイアス値を決定する段階であって、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づく、段階と、前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階とを有する、例17に記載の方法を含む。
【0135】
例24は、前記方法は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換する段階と、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する段階とを備える、例17に記載の方法を含む。
【0136】
例25は、マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、少なくとも1つのメモリと、コンピュータ可読命令と、前記コンピュータ可読命令を実行するための少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは少なくとも、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスし、前記入力マルチプレーン画像スタックは複数のテクスチャ画像と対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含み、(i)圧縮マルチプレーン画像スタックを生成するために前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つのことをし、前記圧縮マルチプレーン画像スタックを出力する装置を含む。
【0137】
例26は、前記少なくとも1つのプロセッサは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせる、例25に記載の装置を含む。
【0138】
例27は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記少なくとも1つのプロセッサは、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、例26に記載の装置を含む。
【0139】
例28は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記少なくとも1つのプロセッサは、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、例27に記載の装置を含む。
【0140】
例29は、前記少なくとも1つのプロセッサは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、例25に記載の装置を含む。
【0141】
例30は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記少なくとも1つのプロセッサは、第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例25に記載の装置を含む。
【0142】
例31は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記少なくとも1つのプロセッサは、第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例25に記載の装置を含む。
【0143】
例32は、前記少なくとも1つのプロセッサは、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、例25に記載の装置を含む。
【0144】
例33は、マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするための手段であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、手段と、前記入力マルチプレーン画像スタックをエンコードするための手段であって、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つのようにエンコードするための手段とを備える装置を含む。
【0145】
例34は、前記エンコードするための手段は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる、例33に記載の装置を含む。
【0146】
例35は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記エンコードするための手段は、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、例34に記載の装置を含む。
【0147】
例36は、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記エンコードするための手段は、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、例35に記載の装置を含む。
【0148】
例37は、前記エンコードするための手段は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、例33に記載の装置を含む。
【0149】
例38は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記エンコードするための手段は、第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例33に記載の装置を含む。
【0150】
例39は、前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記エンコードするための手段は、第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、例33に記載の装置を含む。
【0151】
例40は、前記エンコードするための手段は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、例33に記載の装置を含む。
【0152】
例41は、圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、前記圧縮マルチプレーン画像スタックにアクセスするためのインタフェースであって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、圧縮画像デコーダであって、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することであって、前記インタフェースは前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する、ことのうちの少なくとも1つのことをする圧縮画像デコーダとを備える、装置を含む。
【0153】
例42は、前記圧縮画像デコーダは、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、例41に記載の装置を含む。
【0154】
例43は、前記単一の合成アルファ画像を展開するために、前記圧縮画像デコーダは、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、例41に記載の装置を含む。
【0155】
例44は、前記圧縮画像デコーダは、前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、例43に記載の装置を含む。
【0156】
例45は、前記圧縮画像デコーダは、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、例41に記載の装置を含む。
【0157】
例46は、コンピュータ可読命令を含む少なくとも1つの非一時的コンピュータ可読媒体であって、実行されると、少なくとも1つのプロセッサに少なくとも、圧縮マルチプレーン画像スタックにアクセスさせ、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含み、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つのことをさせ、前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力させる、少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0158】
例47は、前記命令は、前記少なくとも1つのプロセッサに、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製させる、例46に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0159】
例48は、前記単一の合成アルファ画像を展開するために、前記命令は、前記少なくとも1つのプロセッサに、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定させ、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定させ、前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定させる、例46に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0160】
例49は、前記命令は、前記少なくとも1つのプロセッサに、前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定させ、前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定させ、前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定させ、前記第2のアルファ値に基づいて前記第1のアルファ値を決定させる、例48に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0161】
例50は、前記命令は、前記少なくとも1つのプロセッサに、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをさせる、例46に記載の少なくとも1つの非一時的コンピュータ可読媒体を含む。
【0162】
例51は、圧縮マルチプレーン画像スタックを伸張するための方法であって、前記方法は、前記圧縮マルチプレーン画像スタックにアクセスする段階であって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、段階と、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開する段階、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開する段階のうちの少なくとも1つである段階と、前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する段階とを備える、装置を含む。
【0163】
例52は、前記単一の合成テクスチャ画像を展開する段階は、前記単一の合成テクスチャ画像を複製する段階を有する、例51に記載の方法を含む。
【0164】
例53は、前記単一の合成アルファ画像を展開する段階は、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定する段階と、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定する段階と、前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する段階とを有する、例51に記載の方法を含む。
【0165】
例54は、前記単一の合成アルファ画像を展開する段階は、前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定する段階と、前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定する段階と、前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定する段階と、前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定する段階と、前記第2のアルファ値に基づいて前記第1のアルファ値を決定する段階とを有する、例53に記載の方法を含む。
【0166】
例55は、前記方法は、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開する段階と、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開する段階とを備える、例51に記載の方法を含む。
【0167】
例56は、圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、少なくとも1つのメモリと、コンピュータ可読命令と、前記コンピュータ可読命令を実行するための少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは少なくとも、圧縮マルチプレーン画像スタックにアクセスし、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含み、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つのことをし、前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する装置を含む。
【0168】
例57は、前記少なくとも1つのプロセッサは、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、例56に記載の装置を含む。
【0169】
例58は、前記単一の合成アルファ画像を展開するために、前記少なくとも1つのプロセッサは、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、例56に記載の装置を含む。
【0170】
例59は、前記少なくとも1つのプロセッサは、前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、例58に記載の装置を含む。
【0171】
例60は、前記少なくとも1つのプロセッサは、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、例56に記載の装置を含む。
【0172】
例61は、圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、前記圧縮マルチプレーン画像スタックにアクセスするための手段であって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、圧縮マルチプレーン画像スタックをデコードするための手段であって、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つのことをするようにデコードするための手段とを備える装置を含む。
【0173】
例62は、前記デコードするための手段は、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、例61に記載の装置を含む。
【0174】
例63は、前記単一の合成アルファ画像を展開するために、前記デコードするための手段は、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、例61に記載の装置を含む。
【0175】
例64は、前記デコードするための手段は、前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、例63に記載の装置を含む。
【0176】
例65は、前記デコードするための手段は、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、例61に記載の装置を含む。
【0177】
具体的な例示的な方法、装置および製品が本明細書において開示されたが、この特許の及ぶ範囲はこのように限定されることはない。むしろ逆に、この特許は、この特許に係る特許請求の範囲に公平に属するすべての方法、装置および製品に及ぶ。
【0178】
以下の特許請求の範囲は、この参照により本発明を実施するための形態に組み込まれ、各請求項は、本開示の別個の実施形態としてそれ自体で成立する。
[他の可能な項目]
[項目1]
マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするためのインタフェースであって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つを実行する圧縮画像エンコーダであって、前記インタフェースが前記圧縮マルチプレーン画像スタックを出力する、圧縮画像エンコーダと
を備える装置。
[項目2]
前記圧縮画像エンコーダは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる、項目1に記載の装置。
[項目3]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記テクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、項目2に記載の装置。
[項目4]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記圧縮画像エンコーダは、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、項目3に記載の装置。
[項目5]
前記圧縮画像エンコーダは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、項目1に記載の装置。
[項目6]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目1に記載の装置。
[項目7]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記圧縮画像エンコーダは、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目1に記載の装置。
[項目8]
前記圧縮画像エンコーダは、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、項目1に記載の装置。
[項目9]
コンピュータ可読命令を備える少なくとも1つの非一時的コンピュータ可読媒体であって、前記コンピュータ可読命令は実行されると、少なくとも1つのプロセッサに、少なくとも、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスさせ、前記入力マルチプレーン画像スタックは複数のテクスチャ画像と対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含み、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つをさせ、
前記圧縮マルチプレーン画像スタックを出力させる、少なくとも1つの非一時的コンピュータ可読媒体。
[項目10]
前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせる、項目9に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目11]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けして、複数のアルファ重み付けされたテクスチャ画像を決定させる、項目10に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目12]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記命令は、前記少なくとも1つのプロセッサに、前記アルファ重み付けされたテクスチャ画像を平均化して前記単一の合成テクスチャ画像を決定させ、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、項目11に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目13]
前記命令は、前記少なくとも1つのプロセッサに、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換えさせる、項目9に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目14]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記命令は、前記少なくとも1つのプロセッサに、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定させ、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定させ、
前記第1の画素位置に対するバイアス値を決定させ、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定させる、項目9に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目15]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記命令は、前記少なくとも1つのプロセッサに、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定させ、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、
前記第1の画素位置に対するバイアス値を決定させ、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目9に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目16]
前記命令は、前記少なくとも1つのプロセッサに、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換させ、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換させる、項目9に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目17]
マルチプレーン画像スタックを圧縮するための方法であって、前記方法は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスする段階であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、段階と、
(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換する段階、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換する段階のうちの少なくとも1つと、
前記圧縮マルチプレーン画像スタックを出力する段階と
を備える、方法。
[項目18]
前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる段階を有する、項目17に記載の方法。
[項目19]
前記複数のテクスチャ画像を組み合わせる前記段階は、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする段階を有する、項目18に記載の方法。
[項目20]
前記複数のテクスチャ画像を組み合わせる前記段階は、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化する段階を有し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、項目19に記載の方法。
[項目21]
前記複数のテクスチャ画像を変換する前記段階は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える段階を有する、項目17に記載の方法。
[項目22]
前記複数のアルファ画像を変換する前記段階は、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定する段階と、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定する段階と、
前記第1の画素位置に対するバイアス値を決定する段階であって、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づく、段階と、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階と
を有する、項目17に記載の方法。
[項目23]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換する段階は、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定する段階であって、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応するソースカメラ視点に関連付けられている、段階と、
前記第1の画素位置に対するバイアス値を決定段階であって、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づく、段階と、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する段階と
を有する、項目17に記載の方法。
[項目24]
前記方法は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換する段階と、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する段階とを備える、項目17に記載の方法。
[項目25]
マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、
少なくとも1つのメモリと、
コンピュータ可読命令と、
前記コンピュータ可読命令を実行するための少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは少なくとも、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスし、前記入力マルチプレーン画像スタックは複数のテクスチャ画像と対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含み、
(i)圧縮マルチプレーン画像スタックを生成するために前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つのことをし、
前記圧縮マルチプレーン画像スタックを出力する
装置。
[項目26]
前記少なくとも1つのプロセッサは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせる、項目25に記載の装置。
[項目27]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記少なくとも1つのプロセッサは、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、項目26に記載の装置。
[項目28]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記少なくとも1つのプロセッサは、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、項目27に記載の装置。
[項目29]
前記少なくとも1つのプロセッサは、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、項目25に記載の装置。
[項目30]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記少なくとも1つのプロセッサは、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目25に記載の装置。
[項目31]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記少なくとも1つのプロセッサは、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目25に記載の装置。
[項目32]
前記少なくとも1つのプロセッサは、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、項目25に記載の装置。
[項目33]
マルチプレーン画像スタックを圧縮するための装置であって、前記装置は、
ソースカメラ視点に対応する入力マルチプレーン画像スタックにアクセスするための手段であって、前記入力マルチプレーン画像スタックは、複数のテクスチャ画像と、対応する複数のアルファ画像とを有し、前記複数のアルファ画像のアルファ画像は、前記複数のテクスチャ画像のそれぞれにおける対応する画素の透明度を表す画素値を含む、手段と、
前記入力マルチプレーン画像スタックをエンコードするための手段であって、前記エンコードするための手段は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を単一の合成テクスチャ画像に変換すること、または(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を単一の合成アルファ画像に変換することのうちの少なくとも1つをする、手段と
を備える、装置。
[項目34]
前記エンコードするための手段は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のアルファ画像に基づいて、前記複数のテクスチャ画像を組み合わせる、項目33に記載の装置。
[項目35]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記エンコードするための手段は、複数のアルファ重み付けされたテクスチャ画像を決定するために、前記複数のテクスチャ画像のテクスチャ画像の画素値を、前記複数のテクスチャ画像の前記テクスチャ画像に対応する前記複数のアルファ画像のそれぞれの画素値で重み付けする、項目34に記載の装置。
[項目36]
前記複数のアルファ画像に基づいて前記複数のテクスチャ画像を組み合わせるために、前記エンコードするための手段は、前記単一の合成テクスチャ画像を決定するために、前記アルファ重み付けされたテクスチャ画像を平均化し、前記単一の合成テクスチャ画像は前記単一の合成テクスチャ画像のそれぞれの画素位置でのアルファ重み付けされた画素値を含む、項目35に記載の装置。
[項目37]
前記エンコードするための手段は、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換するために、前記複数のテクスチャ画像を、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられたソースカメラ画像に置き換える、項目33に記載の装置。
[項目38]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記エンコードするための手段は、
第1の画素位置における、前記アルファ画像のうち最も大きいアルファ値を有する前記アルファ画像のうちの第1のものに対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置における、前記アルファ画像のうち次に大きいアルファ値を有する前記アルファ画像のうちの前記第1のものの近傍のアルファ画像に対応する第1のアルファプレーンインデックス値を特定し、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置における前記最も大きいアルファ値および前記次に大きいアルファ値に基づき、
前記第1のアルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目33に記載の装置。
[項目39]
前記複数のアルファ画像を前記単一の合成アルファ画像に変換するために、前記エンコードするための手段は、
第1の画素位置における、ソースカメラ深さ画像の値に対応するアルファプレーンインデックス値を特定し、前記ソースカメラ深さ画像は、前記入力マルチプレーン画像スタックに対応する前記ソースカメラ視点に関連付けられており、
前記第1の画素位置に対するバイアス値を決定し、前記バイアス値は、前記第1の画素位置に対する前記アルファプレーンインデックス値および前記第1の画素位置における前記ソースカメラ深さ画像に基づき、
前記アルファプレーンインデックス値と前記バイアス値とを組み合わせて、前記第1の画素位置における前記単一の合成アルファ画像に含める合成アルファ値を決定する、項目33に記載の装置。
[項目40]
前記エンコードするための手段は、(i)圧縮マルチプレーン画像スタックを生成するために、前記複数のテクスチャ画像を前記単一の合成テクスチャ画像に変換し、(ii)前記圧縮マルチプレーン画像スタックを生成するために、前記複数のアルファ画像を前記単一の合成アルファ画像に変換する、項目33に記載の装置。
[項目41]
圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、
前記圧縮マルチプレーン画像スタックにアクセスするためのインタフェースであって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、
圧縮画像デコーダであって、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することであって、前記インタフェースは前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する、ことのうちの少なくとも1つのことをする圧縮画像デコーダと
を備える、装置。
[項目42]
前記圧縮画像デコーダは、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、項目41に記載の装置。
[項目43]
前記単一の合成アルファ画像を展開するために、前記圧縮画像デコーダは、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、
前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、項目41に記載の装置。
[項目44]
前記圧縮画像デコーダは、
前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、
前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、
前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、項目43に記載の装置。
[項目45]
前記圧縮画像デコーダは、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、項目41に記載の装置。
[項目46]
コンピュータ可読命令を含む少なくとも1つの非一時的コンピュータ可読媒体であって、実行されると、少なくとも1つのプロセッサに少なくとも、
圧縮マルチプレーン画像スタックにアクセスさせ、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含み、
(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つのことをさせ、
前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力させる、少なくとも1つの非一時的コンピュータ可読媒体。
[項目47]
前記命令は、前記少なくとも1つのプロセッサに、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製させる、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目48]
前記単一の合成アルファ画像を展開するために、前記命令は、前記少なくとも1つのプロセッサに、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定させ、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定させ、
前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定させる、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目49]
前記命令は、前記少なくとも1つのプロセッサに、
前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定させ、
前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定させ、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定させ、
前記第2のアルファ値に基づいて前記第1のアルファ値を決定させる、項目48に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目50]
前記命令は、前記少なくとも1つのプロセッサに、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをさせる、項目46に記載の少なくとも1つの非一時的コンピュータ可読媒体。
[項目51]
圧縮マルチプレーン画像スタックを伸張するための方法であって、前記方法は、
前記圧縮マルチプレーン画像スタックにアクセスする段階であって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、段階と、
(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開する段階、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開する段階のうちの少なくとも1つである段階と、
前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する段階と
を備える、装置。
[項目52]
前記単一の合成テクスチャ画像を展開する段階は、前記単一の合成テクスチャ画像を複製する段階を有する、項目51に記載の方法。
[項目53]
前記単一の合成アルファ画像を展開する段階は、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定する段階と、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定する段階と、
前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する段階とを有する、項目51に記載の方法。
[項目54]
前記単一の合成アルファ画像を展開する段階は、
前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定する段階と、
前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定する段階と、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定する段階と、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定する段階と、
前記第2のアルファ値に基づいて前記第1のアルファ値を決定する段階とを有する、項目53に記載の方法。
[項目55]
前記方法は、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開する段階と、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開する段階とを備える、項目51に記載の方法。
[項目56]
圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、
少なくとも1つのメモリと、
コンピュータ可読命令と、
前記コンピュータ可読命令を実行するための少なくとも1つのプロセッサとを備え、前記少なくとも1つのプロセッサは少なくとも、
圧縮マルチプレーン画像スタックにアクセスし、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含み、
(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つのことをし、
前記複数の非圧縮テクスチャ画像と前記複数の非圧縮アルファ画像とを有する非圧縮マルチプレーン画像スタックを出力する
装置。
[項目57]
前記少なくとも1つのプロセッサは、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、項目56に記載の装置。
[項目58]
前記単一の合成アルファ画像を展開するために、前記少なくとも1つのプロセッサは、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、
前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、項目56に記載の装置。
[項目59]
前記少なくとも1つのプロセッサは、
前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、
前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、
前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、項目58に記載の装置。
[項目60]
前記少なくとも1つのプロセッサは、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、項目56に記載の装置。
[項目61]
圧縮マルチプレーン画像スタックを伸張するための装置であって、前記装置は、
前記圧縮マルチプレーン画像スタックにアクセスするための手段であって、前記圧縮マルチプレーン画像スタックはソースカメラ視点に対応し、前記圧縮マルチプレーン画像スタックは、(i)複数の非圧縮テクスチャ画像を表現する単一の合成テクスチャ画像、または(ii)複数の非圧縮アルファ画像を表現する単一の合成アルファ画像のうちの少なくとも1つを有し、前記非圧縮アルファ画像のうちのいくつかは前記非圧縮テクスチャ画像のうちのいくつかのそれぞれにおける対応する画素の透明度を表す画素値を含む、インタフェースと、
前記圧縮マルチプレーン画像スタックをデコードするための手段であって、前記デコードするための手段は、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開すること、または(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することのうちの少なくとも1つをする、手段と
を備える、装置。
[項目62]
前記デコードするための手段は、前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開するように前記単一の合成テクスチャ画像を複製する、項目61に記載の装置。
[項目63]
前記単一の合成アルファ画像を展開するために、前記デコードするための手段は、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第1のものの第1の画素位置を第1のアルファ値に設定し、
前記第1の画素位置における、前記単一の合成アルファ画像の値に基づいて、前記非圧縮アルファ画像の第2のものの前記第1の画素位置を第2のアルファ値に設定し、
前記非圧縮アルファ画像のうちの残りのものの前記第1の画素位置におけるアルファ値をゼロに設定する、項目61に記載の装置。
[項目64]
前記デコードするための手段は、
前記第1の画素位置における、前記単一の合成アルファ画像の前記値に基づいて、前記第1の画素位置に対する第1のアルファプレーンインデックス値を決定し、
前記第1の画素位置における、前記第1のアルファプレーンインデックス値および前記単一の合成アルファ画像の前記値に基づいて前記第1の画素位置に対するバイアス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第1の画素位置に対する第2のアルファプレーンインデックス値を決定し、
前記第1の画素位置に対する前記バイアス値に基づいて、前記第2のアルファ値を決定し、
前記第2のアルファ値に基づいて前記第1のアルファ値を決定する、項目63に記載の装置。
[項目65]
前記デコードするための手段は、(i)前記複数の非圧縮テクスチャ画像を取得するために、前記単一の合成テクスチャ画像を展開することと、(ii)前記複数の非圧縮アルファ画像を取得するために、前記単一の合成アルファ画像を展開することとをする、項目61に記載の装置。
【国際調査報告】