IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ クゥアルコム・インコーポレイテッドの特許一覧

特表2024-505930GPUデータの可逆圧縮の方法および装置
<>
  • 特表-GPUデータの可逆圧縮の方法および装置 図1
  • 特表-GPUデータの可逆圧縮の方法および装置 図2
  • 特表-GPUデータの可逆圧縮の方法および装置 図3
  • 特表-GPUデータの可逆圧縮の方法および装置 図4
  • 特表-GPUデータの可逆圧縮の方法および装置 図5
  • 特表-GPUデータの可逆圧縮の方法および装置 図6
  • 特表-GPUデータの可逆圧縮の方法および装置 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-08
(54)【発明の名称】GPUデータの可逆圧縮の方法および装置
(51)【国際特許分類】
   G06T 9/00 20060101AFI20240201BHJP
【FI】
G06T9/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023546084
(86)(22)【出願日】2022-01-05
(85)【翻訳文提出日】2023-07-28
(86)【国際出願番号】 US2022011329
(87)【国際公開番号】W WO2022169541
(87)【国際公開日】2022-08-11
(31)【優先権主張番号】17/169,342
(32)【優先日】2021-02-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】シン、アンキテシュ・クマー
(72)【発明者】
【氏名】シェ、チェン-テ
(72)【発明者】
【氏名】カルチェビチ、マルタ
(57)【要約】
本開示は、装置、たとえばGPUを含む、データ処理またはグラフィックス処理のための方法およびデバイスに関する。本装置は、複数のビットを含む少なくとも1つのビットストリームを受信し得、ビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、また、ビットの各々が、色データに関連付けられている。本装置はまた、ビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジし得る。さらに、本装置は、ビットの順序をアレンジすると、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換し得る。本装置はまた、ビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮し得る。
【選択図】図6
【特許請求の範囲】
【請求項1】
データ処理の方法であって、
複数のビットを含む少なくとも1つのビットストリームを受信することと、前記複数のビットの各々は前記少なくとも1つのビットストリーム内の1つの位置に対応し、前記複数のビットの各々は色データに関連付けられている、
前記複数のビットのうちの少なくとも1つが前記少なくとも1つのビットストリーム内の更新された位置に対応するように、前記少なくとも1つのビットストリームの前記複数のビットの順序をアレンジすることと、
前記複数のビットの前記順序をアレンジすると、前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを変換することと、
前記複数のビットの各々と関連付けられた前記色データを変換すると、前記少なくとも1つのビットストリームの前記複数のビットを圧縮することと、
を備える、方法。
【請求項2】
前記複数のビットの前記順序は、前記少なくとも1つのビットストリーム内の1つまたは複数の浮動小数点ビットを移動させることによってアレンジされる、請求項1に記載の方法。
【請求項3】
前記1つまたは複数の浮動小数点ビットは、前記複数のビットの前記順序の先頭、または前記複数のビットの前記順序の末尾に移動される、請求項2に記載の方法。
【請求項4】
前記1つまたは複数の浮動小数点ビットは、赤(R)浮動小数点ビット、緑(G)浮動小数点ビット、および青(B)浮動小数点ビットに対応する、請求項2に記載の方法。
【請求項5】
前記複数のビットは、予測圧縮方式に基づいて圧縮される、請求項1に記載の方法。
【請求項6】
前記予測圧縮方式は、前記複数のビットの各々と関連付けられた前記色データの空間隣接色データに基づいている、請求項5に記載の方法。
【請求項7】
前記予測圧縮方式は、空間隣接予測子または平行四辺形予測子の少なくとも一方と関連付けられる、請求項5に記載の方法。
【請求項8】
前記色データは、赤(R)緑(G)青(B)(RGB)データから、ルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)データに変換される、請求項1に記載の方法。
【請求項9】
前記複数のビットの各々と関連付けられた前記色データは、色空間変換または可逆変換の少なくとも一方に基づいて変換される、請求項1に記載の方法。
【請求項10】
前記複数のビットは、32ビット高ダイナミックレンジ(HDR)フォーマットまたはR11G11B10フォーマットに対応する、請求項1に記載の方法。
【請求項11】
前記複数のビットを圧縮すると、前記少なくとも1つのビットストリームの前記複数のビットを符号化することをさらに備える、請求項1に記載の方法。
【請求項12】
前記複数のビットは、ブロック固定長コーディング(BFLC)プロセスに基づいて符号化される、請求項11に記載の方法。
【請求項13】
前記複数のビットは、ヘッダまたはメタデータの少なくとも一方を前記複数のビットに付加することによって符号化される、請求項11に記載の方法。
【請求項14】
前記圧縮された複数のビットを含む前記少なくとも1つのビットストリームをメモリへ送信することをさらに備える、請求項1に記載の方法。
【請求項15】
前記圧縮された複数のビットを含む前記少なくとも1つのビットストリームを前記メモリから受信することと、
前記少なくとも1つのビットストリーム内の前記圧縮された複数のビットを復号することと、
前記少なくとも1つのビットストリームの前記複数のビットを復元することと、
前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを再変換することと、
前記少なくとも1つのビットストリームの前記複数のビットの順序を再アレンジすることと、
前記複数のビットを含む前記少なくとも1つのビットストリームを送信することと、
をさらに備える、請求項14に記載の方法。
【請求項16】
前記メモリは、グラフィックス処理ユニット(GPU)内のダブルデータレート(DDR)メモリである、請求項14に記載の方法。
【請求項17】
前記少なくとも1つのビットストリームの前記複数のビットは、1つまたは複数のデータパケットに圧縮される、請求項1に記載の方法。
【請求項18】
前記1つまたは複数のデータパケットは、ダブルデータレート(DDR)パケットである、請求項17に記載の方法。
【請求項19】
前記複数のビットの前記圧縮は、可逆圧縮である、請求項1に記載の方法。
【請求項20】
データ処理のための装置であって、
メモリと、
前記メモリに結合された少なくとも1つのプロセッサと、
を備え、前記少なくとも1つのプロセッサは、
複数のビットを含む少なくとも1つのビットストリームを受信することと、前記複数のビットの各々は前記少なくとも1つのビットストリーム内の1つの位置に対応し、前記複数のビットの各々は色データに関連付けられている、
前記複数のビットのうちの少なくとも1つが前記少なくとも1つのビットストリーム内の更新された位置に対応するように、前記少なくとも1つのビットストリームの前記複数のビットの順序をアレンジすることと、
前記複数のビットの前記順序をアレンジすると、前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを変換することと、
前記複数のビットの各々と関連付けられた前記色データを変換すると、前記少なくとも1つのビットストリームの前記複数のビットを圧縮することと、
を行うように構成された、装置。
【請求項21】
前記複数のビットの前記順序は、前記少なくとも1つのビットストリーム内の1つまたは複数の浮動小数点ビットを移動させることによってアレンジされる、請求項20に記載の装置。
【請求項22】
前記1つまたは複数の浮動小数点ビットは、前記複数のビットの前記順序の先頭、または前記複数のビットの前記順序の末尾に移動される、請求項21に記載の装置。
【請求項23】
前記1つまたは複数の浮動小数点ビットは、赤(R)浮動小数点ビット、緑(G)浮動小数点ビット、および青(B)浮動小数点ビットに対応する、請求項21に記載の装置。
【請求項24】
前記複数のビットは、予測圧縮方式に基づいて圧縮される、請求項20に記載の装置。
【請求項25】
前記予測圧縮方式は、前記複数のビットの各々と関連付けられた前記色データの空間隣接色データに基づいている、請求項24に記載の装置。
【請求項26】
前記予測圧縮方式は、空間隣接予測子または平行四辺形予測子の少なくとも一方と関連付けられる、請求項24に記載の装置。
【請求項27】
前記色データは、赤(R)緑(G)青(B)(RGB)データから、ルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)データに変換される、請求項20に記載の装置。
【請求項28】
前記複数のビットの各々と関連付けられた前記色データは、色空間変換または可逆変換の少なくとも一方に基づいて変換される、請求項20に記載の装置。
【請求項29】
前記複数のビットは、32ビット高ダイナミックレンジ(HDR)フォーマットまたはR11G11B10フォーマットに対応する、請求項20に記載の装置。
【請求項30】
前記少なくとも1つのプロセッサは、
前記複数のビットを圧縮すると、前記少なくとも1つのビットストリームの前記複数のビットを符号化すること、
を行うようにさらに構成された、請求項20に記載の装置。
【請求項31】
前記複数のビットは、ブロック固定長コーディング(BFLC)プロセスに基づいて符号化される、請求項30に記載の装置。
【請求項32】
前記複数のビットは、ヘッダまたはメタデータの少なくとも一方を前記複数のビットに付加することによって符号化される、請求項30に記載の装置。
【請求項33】
前記少なくとも1つのプロセッサは、
前記圧縮された複数のビットを含む前記少なくとも1つのビットストリームをメモリへ送信すること、
を行うようにさらに構成された、請求項20に記載の装置。
【請求項34】
前記少なくとも1つのプロセッサは、
前記圧縮された複数のビットを含む前記少なくとも1つのビットストリームを前記メモリから受信することと、
前記少なくとも1つのビットストリーム内の前記圧縮された複数のビットを復号することと、
前記少なくとも1つのビットストリームの前記複数のビットを復元することと、
前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを再変換することと、
前記少なくとも1つのビットストリームの前記複数のビットの順序を再アレンジすることと、
前記複数のビットを含む前記少なくとも1つのビットストリームを送信することと、
を行うようにさらに構成された、請求項33に記載の装置。
【請求項35】
前記メモリは、グラフィックス処理ユニット(GPU)内のダブルデータレート(DDR)メモリである、請求項33に記載の装置。
【請求項36】
前記少なくとも1つのビットストリームの前記複数のビットは、1つまたは複数のデータパケットに圧縮される、請求項20に記載の装置。
【請求項37】
前記1つまたは複数のデータパケットは、ダブルデータレート(DDR)パケットである、請求項36に記載の装置。
【請求項38】
前記複数のビットの前記圧縮は、可逆圧縮である、請求項20に記載の装置。
【請求項39】
データ処理のための装置であって、
複数のビットを含む少なくとも1つのビットストリームを受信する手段と、前記複数のビットの各々は前記少なくとも1つのビットストリーム内の1つの位置に対応し、前記複数のビットの各々は色データに関連付けられている、
前記複数のビットのうちの少なくとも1つが前記少なくとも1つのビットストリーム内の更新された位置に対応するように、前記少なくとも1つのビットストリームの前記複数のビットの順序をアレンジする手段と、
前記複数のビットの前記順序をアレンジすると、前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを変換する手段と、
前記複数のビットの各々と関連付けられた前記色データを変換すると、前記少なくとも1つのビットストリームの前記複数のビットを圧縮する手段と、
を備える、装置。
【請求項40】
データ処理のためのコンピュータ実行可能コードを記憶するコンピュータ可読媒体であって、前記コードは、プロセッサによって実行されたとき、前記プロセッサに、
複数のビットを含む少なくとも1つのビットストリームを受信することと、前記複数のビットの各々は前記少なくとも1つのビットストリーム内の1つの位置に対応し、前記複数のビットの各々は色データに関連付けられている、
前記複数のビットのうちの少なくとも1つが前記少なくとも1つのビットストリーム内の更新された位置に対応するように、前記少なくとも1つのビットストリームの前記複数のビットの順序をアレンジすることと、
前記複数のビットの前記順序をアレンジすると、前記少なくとも1つのビットストリームの前記複数のビットの各々と関連付けられた前記色データを変換することと、
前記複数のビットの各々と関連付けられた前記色データを変換すると、前記少なくとも1つのビットストリームの前記複数のビットを圧縮することと、
を行わせる、コンピュータ可読媒体。
【発明の詳細な説明】
【優先権の主張】
【0001】
関連出願の相互参照
[0001]本出願は、その全体が参照により本明細書に明確に組み込まれる、2021年2月5日に出願された「METHODS AND APPARATUS FOR LOSSLESS COMPRESSION OF GPU DATA」と題する米国特許出願第17/169,342号の利益を主張する。
【技術分野】
【0002】
[0002]本開示は、一般に処理システムに関し、より詳細には、データ処理またはグラフィック処理のための1つまたは複数の技法に関する。
【背景技術】
【0003】
序論
[0003]コンピューティングデバイスは、しばしば、視覚的コンテンツをレンダリングおよび表示するために、グラフィックス処理および/またはディスプレイ処理を実施する(たとえば、グラフィックス処理ユニット(GPU)、中央処理ユニット(CPU)、ディスプレイプロセッサなどを利用して)。そのようなコンピューティングデバイスは、たとえば、コンピュータワークステーション、スマートフォンなどのモバイルフォン、組込みシステム、パーソナルコンピュータ、タブレットコンピュータ、およびビデオゲームコンソールを含み得る。GPUは、グラフィックス処理コマンドを実行し、フレームを出力するために一緒に動作する1つまたは複数の処理段階を含むグラフィックス処理パイプラインを実行するように構成される。中央処理ユニット(CPU)は、1つまたは複数のグラフィックス処理コマンドをGPUに発行することによって、GPUの動作を制御し得る。現代のCPUは、一般に、それらの各々が、実行中にGPUを利用する必要があり得る、複数のアプリケーションをコンカレントに実行することが可能である。ディスプレイプロセッサは、CPUから受信されたデジタル情報をアナログ値に変換するように構成されており、視覚的コンテンツを表示するためのコマンドをディスプレイパネルに発行することができる。ディスプレイ上の視覚的提示のためのコンテンツを提供するデバイスは、GPUおよび/またはディスプレイプロセッサを利用し得る。
【0004】
[0004]デバイスのGPUは、グラフィックス処理パイプラインにおける処理を実施するように構成され得る。さらに、ディスプレイプロセッサまたはディスプレイ処理ユニット(DPU)は、ディスプレイ処理のプロセスを実施するように構成され得る。しかしながら、ワイヤレス通信、およびより小さいハンドヘルドデバイスの出現とともに、改善されたグラフィックスまたはディスプレイ処理の増加された必要が生じた。
【発明の概要】
【0005】
[0005]以下は、1つまたは複数の態様の基本的理解を提供するために、そのような態様の簡略化された概要を提示する。本概要は、すべての企図される態様の広範な概観ではなく、すべての態様の主要なまたはクリティカルな要素を識別するものでも、いずれかまたはすべての態様の範囲を定めるものでもない。その唯一の目的は、後に提示されるより詳細な説明の前置きとして、1つまたは複数の態様のいくつかの概念を簡略化された形で提示することである。
【0006】
[0006]本開示の一態様では、方法、コンピュータ可読媒体、および装置が提供される。本装置は、グラフィックス処理ユニット(GPU)または、データ処理もしくはグラフィックス処理を実施することができる任意の装置であり得る。本装置は、複数のビットを含む少なくとも1つのビットストリームを受信し得、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、また、複数のビットの各々が、色データに関連付けられている。本装置はまた、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジし得る(arrange an order)。さらに、本装置は、複数のビットの順序をアレンジすると(upon)、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換し得る。本装置はまた、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮し得る。本装置はまた、複数のビットを圧縮すると、少なくとも1つのビットストリームの複数のビットを符号化し得る。本装置はまた、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信し得る。本装置はまた、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信し、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号し、少なくとも1つのビットストリームの複数のビットを復元し(decompressing)、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換し(reconverting)、少なくとも1つのビットストリームの複数のビットの順序を再アレンジし(rearranging)、複数のビットを含む少なくとも1つのビットストリームを送信し得る。
【0007】
[0007]本開示の1つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。本開示の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0008】
図1】[0008]本開示の1つまたは複数の技法による、例示的なコンテンツ生成システムを示すブロック図。
図2】[0009]本開示の1つまたは複数の技法による、例示的なGPUを示す図。
図3】[0010]本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのデータ圧縮プロセスを示す図。
図4】[0011]本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのデータ予測プロセスを示す図。
図5】[0012]本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのビット再配置プロセスを示す図。
図6】[0013]本開示の1つまたは複数の技法による、GPUパイプラインとGPU構成要素とメモリの間の例示的な通信を示す通信フロー図。
図7】[0014]本開示の1つまたは複数の技法による、グラフィックス処理の例示的な方法のフローチャート。
【発明を実施するための形態】
【0009】
[0015]データ処理またはグラフィックス処理に利用され得るいくつかの異なるタイプの圧縮技法がある。たとえば、ユニバーサル帯域幅圧縮(UBWC)技法またはユニバーサル帯域幅復元技法が、データ処理またはグラフィックス処理に利用され得る。R11G11B10データフォーマットが、データ処理またはグラフィックス処理に利用され得、このR11G11B10データフォーマットは、圧縮浮動小数点データ、すなわち圧縮浮動小数点赤(R)緑(G)青(B)(RGB)データに対応する。いくつかの態様では、浮動小数点テクスチャまたは頂点データは、高い帯域幅消費に対応し得る。たとえば、浮動小数点テクスチャまたは頂点データは、RGBデータでは、あるピクセル当たりのビット量(bpp)、たとえば96bppになり得る。R11G11B10データフォーマットでは32bppを利用するので、これは高い帯域幅使用量に相当し得る。いくつかの事例では、RGBデータのBチャネルのビット深度が不均一であることにより、これらのフォーマットは可逆的に圧縮するのが容易でないことがある。たとえば、Rチャネル、Gチャネル、およびBチャネルのデータを非相関化することが困難なことがある。本開示の態様は、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットを可逆的に圧縮し得る。本開示の態様はまた、グラフィックス処理またはGPU用途のために、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットを可逆的に圧縮し得る。その上、本開示の態様は、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットに対して、異なる色チャネル、たとえば、Rチャネル、Gチャネル、および/またはBチャネルのデータの非相関化を可能にし得る。本開示の態様はまた、可逆圧縮データフォーマットの場合に消費される帯域幅量を低減し得る。たとえば、本開示の態様は、GPUでR11G11B10データフォーマットによって利用される帯域幅量を低減し得る。
【0010】
[0016]添付の図面を参照しながら、システム、装置、コンピュータプログラム製品、および方法の様々な態様が以下でより十分に説明される。しかしながら、本開示は、多くの異なる形態で実施され得、本開示全体にわたって提示される任意の特定の構造または機能に限定されると解釈されるべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるように提供される。本明細書の教示に基づいて、本開示の範囲は、本開示の他の態様とは無関係に実装されるにせよ、本開示の他の態様と組み合わせられるにせよ、本明細書で開示されるシステム、装置、コンピュータプログラム製品、および方法のいかなる態様をもカバーするものであることを、当業者は諒解されたい。たとえば、本明細書に記載される態様をいくつ使用しても、装置は実装され得、または方法は実践され得る。さらに、本開示の範囲は、本明細書に記載される本開示の様々な態様に加えてまたはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実践されるそのような装置または方法をカバーするものとする。本明細書で開示されるいかなる態様も、請求項の1つまたは複数の要素によって実施され得る。
【0011】
[0017]様々な態様が本明細書で説明されるが、これらの態様の多くの変形および置換が本開示の範囲内に入る。本開示の態様のいくつかの潜在的な利益および利点が述べられるが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、異なるワイヤレス技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であるものとし、それらのうちのいくつかが、例として、図においておよび以下の説明において示される。発明を実施するための形態および図面は、本開示を限定するものではなく説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびそれの均等物によって定義される。
【0012】
[0018]様々な装置および方法に関していくつかの態様が提示される。これらの装置および方法は、以下の詳細な説明において説明され、(「要素」と総称される)様々なブロック、構成要素、回路、プロセス、アルゴリズムなどによって添付の図面に示される。これらの要素は、電子ハードウェア、コンピュータソフトウェア、またはそれらの任意の組合せを使用して実装され得る。そのような要素がハードウェアとして実装されるのか、ソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。
【0013】
[0019]例として、要素、または要素の任意の部分、または要素の任意の組合せは、(処理ユニットと呼ばれることもある)1つまたは複数のプロセッサを含む「処理システム」として実装され得る。プロセッサの例は、マイクロプロセッサ、マイクロコントローラ、グラフィックス処理ユニット(GPU)、汎用GPU(GPGPU)、中央処理ユニット(CPU)、アプリケーションプロセッサ、デジタル信号プロセッサ(DSP)、縮小命令セットコンピューティング(RISC)プロセッサ、システムオンチップ(SOC)、ベースバンドプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、状態機械、ゲート論理、個別ハードウェア回路、および本開示全体にわたって説明される様々な機能を実施するように構成された他の好適なハードウェアを含む。処理システム中の1つまたは複数のプロセッサはソフトウェアを実行し得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、命令、命令セット、コード、コードセグメント、プログラムコード、プログラム、サブプログラム、ソフトウェア構成要素、アプリケーション、ソフトウェアアプリケーション、ソフトウェアパッケージ、ルーチン、サブルーチン、オブジェクト、実行ファイル、実行スレッド、プロシージャ、関数などを意味するように広く解釈され得る。アプリケーションという用語は、ソフトウェアを指し得る。本明細書で説明されるように、1つまたは複数の技法は、アプリケーション、すなわち、ソフトウェアが1つまたは複数の機能を実施するように構成されることを指し得る。そのような例では、アプリケーションは、メモリ、たとえば、プロセッサのオンチップメモリ、システムメモリ、または任意の他のメモリに記憶され得る。プロセッサなど、本明細書で説明されるハードウェアは、アプリケーションを実行するように構成され得る。たとえば、アプリケーションは、ハードウェアによって実行されたとき、ハードウェアに、本明細書で説明される1つまたは複数の技法を実施させるコードを含むものとして説明され得る。一例として、ハードウェアは、本明細書で説明される1つまたは複数の技法を実施するために、メモリからコードにアクセスし、メモリからアクセスされたコードを実行し得る。いくつかの例では、構成要素が本開示において識別される。そのような例では、構成要素は、ハードウェア、ソフトウェア、またはそれらの組合せであり得る。構成要素は、単一の構成要素の別個の構成要素または副構成要素であり得る。
【0014】
[0020]したがって、本明細書で説明される1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上に1つまたは複数の命令またはコードとして符号化され得る。コンピュータ可読媒体はコンピュータ記憶媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、電気的消去可能プログラマブルROM(EEPROM(登録商標))、光ディスクストレージ、磁気ディスクストレージ、他の磁気ストレージデバイス、上述のタイプのコンピュータ可読媒体の組合せ、あるいはコンピュータによってアクセスされ得る、命令またはデータ構造の形態のコンピュータ実行可能コードを記憶するために使用され得る任意の他の媒体を備えることができる。
【0015】
[0021]概して、本開示は、単一のデバイスまたは複数のデバイスにおいてグラフィックス処理パイプラインを有し、グラフィカルコンテンツのレンダリングを改善し、および/または処理ユニット、すなわち、GPUなど、本明細書で説明される1つまたは複数の技法を実施するように構成された任意の処理ユニットの負荷を低減するための技法について説明する。たとえば、本開示は、グラフィックス処理を利用する任意のデバイスにおけるグラフィックス処理のための技法について説明する。他の例示的な利益が本開示全体にわたって説明される。
【0016】
[0022]本明細書で使用される「コンテンツ」という用語のインスタンスは、「グラフィカルコンテンツ」、「画像」を指し得、その逆も同様である。これは、用語が形容詞として使用されているのか、名詞として使用されているのか、他の品詞として使用されているのかにかかわらず当てはまる。いくつかの例では、本明細書で使用される「グラフィカルコンテンツ」という用語は、グラフィックス処理パイプラインの1つまたは複数のプロセスによって作り出されたコンテンツを指し得る。いくつかの例では、本明細書で使用される「グラフィカルコンテンツ」という用語は、グラフィックス処理を実施するように構成された処理ユニットによって作り出されたコンテンツを指し得る。いくつかの例では、本明細書で使用される「グラフィカルコンテンツ」という用語は、グラフィックス処理ユニットによって作り出されたコンテンツを指し得る。
【0017】
[0023]いくつかの例では、本明細書で使用される「ディスプレイコンテンツ」という用語は、表示処理を実施するように構成された処理ユニットによって生成されたコンテンツを指し得る。いくつかの例では、本明細書で使用される「ディスプレイコンテンツ」という用語は、ディスプレイ処理ユニットによって生成されたコンテンツを指し得る。グラフィカルコンテンツは、ディスプレイコンテンツになるように処理され得る。たとえば、グラフィックス処理ユニットは、(フレームバッファと呼ばれることがある)バッファに、フレームなど、グラフィカルコンテンツを出力し得る。ディスプレイ処理ユニットは、バッファからの1つまたは複数のフレームなど、グラフィカルコンテンツを読み取り、ディスプレイコンテンツを生成するために、それに対して1つまたは複数のディスプレイ処理技法を実施し得る。たとえば、ディスプレイ処理ユニットは、フレームを生成するために、1つまたは複数のレンダリングされたレイヤに対して合成を実施するように構成され得る。別の例として、ディスプレイ処理ユニットは、2つまたはそれ以上のレイヤを一緒に単一のフレームに合成するか、ブレンドするか、またはさもなければ組み合わせるように構成され得る。ディスプレイ処理ユニットは、フレームに対してスケーリング、たとえば、アップスケーリングまたはダウンスケーリングを実施するように構成され得る。いくつかの例では、フレームはレイヤを指し得る。他の例では、フレームは、フレームを形成するためにすでに一緒にブレンドされた2つまたはそれ以上のレイヤを指し得、すなわち、フレームは、2つまたはそれ以上のレイヤを含み、2つまたはそれ以上のレイヤを含むフレームは、その後ブレンドされ得る。
【0018】
[0024]図1は、本開示の1つまたは複数の技法を実装するように構成された例示的なコンテンツ生成システム100を示すブロック図である。コンテンツ生成システム100はデバイス104を含む。デバイス104は、本明細書で説明される様々な機能を実施するための1つまたは複数の構成要素または回路を含み得る。いくつかの例では、デバイス104の1つまたは複数の構成要素は、SOCの構成要素であり得る。デバイス104は、本開示の1つまたは複数の技法を実施するように構成された1つまたは複数の構成要素を含み得る。図示の例では、デバイス104は、処理ユニット120と、コンテンツエンコーダ/デコーダ122と、システムメモリ124とを含み得る。いくつかの態様では、デバイス104は、いくつかの随意の構成要素、たとえば、通信インターフェース126、トランシーバ132、受信機128、送信機130、ディスプレイプロセッサ127、および1つまたは複数のディスプレイ131を含むことができる。ディスプレイ131への言及は、1つまたは複数のディスプレイ131を指し得る。たとえば、ディスプレイ131は、単一のディスプレイまたは複数のディスプレイを含み得る。ディスプレイ131は、第1のディスプレイおよび第2のディスプレイを含み得る。第1のディスプレイは左眼ディスプレイであり得、第2のディスプレイは右眼ディスプレイであり得る。いくつかの例では、第1のディスプレイと第2のディスプレイとは、その上での提示のための異なるフレームを受信し得る。他の例では、第1のディスプレイと第2のディスプレイとは、その上での提示のための同じフレームを受信し得る。さらなる例では、グラフィックス処理の結果はデバイス上に表示されないことがあり、たとえば、第1および第2のディスプレイは、その上での提示のためのフレームを受信しないことがある。代わりに、フレームまたはグラフィックス処理結果は、別のデバイスに転送され得る。いくつかの態様では、これは、スプリットレンダリング(split-rendering)と呼ばれることがある。
【0019】
[0025]処理ユニット120は内部メモリ121を含み得る。処理ユニット120は、グラフィックス処理パイプライン107においてなど、グラフィックス処理を実施するように構成され得る。コンテンツエンコーダ/デコーダ122は内部メモリ123を含み得る。いくつかの例では、デバイス104は、1つまたは複数のディスプレイ131による提示の前に処理ユニット120によって生成された1つまたは複数のフレームに対して1つまたは複数のディスプレイ処理技法を実施するために、ディスプレイプロセッサ127など、ディスプレイプロセッサを含み得る。ディスプレイプロセッサ127は、ディスプレイ処理を実施するように構成され得る。たとえば、ディスプレイプロセッサ127は、処理ユニット120によって生成された1つまたは複数のフレームに対して1つまたは複数のディスプレイ処理技法を実施するように構成され得る。1つまたは複数のディスプレイ131は、ディスプレイプロセッサ127によって処理されるフレームを表示するか、またはさもなければ提示するように構成され得る。いくつかの例では、1つまたは複数のディスプレイ131は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、投影ディスプレイデバイス、拡張現実ディスプレイデバイス、仮想現実ディスプレイデバイス、ヘッドマウントディスプレイ、または任意の他のタイプのディスプレイデバイスのうちの1つまたは複数を含み得る。
【0020】
[0026]システムメモリ124など、処理ユニット120およびコンテンツエンコーダ/デコーダ122の外部のメモリは、処理ユニット120およびコンテンツエンコーダ/デコーダ122にとってアクセス可能であり得る。たとえば、処理ユニット120およびコンテンツエンコーダ/デコーダ122は、システムメモリ124など、外部メモリから読み取り、および/または外部メモリに書き込むように構成され得る。処理ユニット120およびコンテンツエンコーダ/デコーダ122は、バス上でシステムメモリ124に通信可能に結合され得る。いくつかの例では、処理ユニット120およびコンテンツエンコーダ/デコーダ122は、バスまたは異なる接続上で互いに通信可能に結合され得る。
【0021】
[0027]コンテンツエンコーダ/デコーダ122は、システムメモリ124および/または通信インターフェース126など、任意のソースからグラフィカルコンテンツを受信するように構成され得る。システムメモリ124は、受信された符号化または復号されたグラフィカルコンテンツを記憶するように構成され得る。コンテンツエンコーダ/デコーダ122は、符号化されたピクセルデータの形態で、たとえば、システムメモリ124および/または通信インターフェース126から、符号化または復号されたグラフィカルコンテンツを受信するように構成され得る。コンテンツエンコーダ/デコーダ122は、任意のグラフィカルコンテンツを符号化または復号するように構成され得る。
【0022】
[0028]内部メモリ121またはシステムメモリ124は、1つまたは複数の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。いくつかの例では、内部メモリ121またはシステムメモリ124は、RAM、SRAM、DRAM、消去可能プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、フラッシュメモリ、磁気データ媒体または光記憶媒体、あるいは任意の他のタイプのメモリを含み得る。
【0023】
[0029]内部メモリ121またはシステムメモリ124は、いくつかの例によれば、非一時的記憶媒体であり得る。「非一時的」という用語は、記憶媒体が、搬送波または伝搬信号では実施されないことを示し得る。ただし、「非一時的」という用語は、内部メモリ121またはシステムメモリ124が非可動であること、またはそれのコンテンツが静的であることを意味すると解釈されるべきではない。一例として、システムメモリ124は、デバイス104から取り外され、別のデバイスに移動され得る。別の例として、システムメモリ124は、デバイス104から取外し可能でないことがある。
【0024】
[0030]処理ユニット120は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、汎用GPU(GPGPU)、またはグラフィックス処理を実施するように構成され得る任意の他の処理ユニットであり得る。いくつかの例では、処理ユニット120は、デバイス104のマザーボードに統合され得る。いくつかの例では、処理ユニット120は、デバイス104のマザーボード中のポート中に設置されたグラフィックスカード上に存在し得るか、または場合によっては、デバイス104と相互動作するように構成された周辺デバイス内に組み込まれ得る。処理ユニット120は、1つまたは複数のマイクロプロセッサ、GPU、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、算術論理ユニット(ALU)、デジタル信号プロセッサ(DSP)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、他の等価な集積またはディスクリート論理回路、あるいはそれらの任意の組合せなど、1つまたは複数のプロセッサを含み得る。本技法が部分的にソフトウェアで実装される場合、処理ユニット120は、好適な非一時的コンピュータ可読記憶媒体、たとえば、内部メモリ121にソフトウェアのための命令を記憶し得、本開示の技法を実施するために1つまたは複数のプロセッサを使用してそれらの命令をハードウェアで実行し得る。ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む上記のいずれも、1つまたは複数のプロセッサであると見なされ得る。
【0025】
[0031]コンテンツエンコーダ/デコーダ122は、コンテンツ復号を実施するように構成された任意の処理ユニットであり得る。いくつかの例では、コンテンツエンコーダ/デコーダ122は、デバイス104のマザーボードに統合され得る。コンテンツエンコーダ/デコーダ122は、1つまたは複数のマイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、算術論理ユニット(ALU)、デジタル信号プロセッサ(DSP)、ビデオプロセッサ、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、他の等価な集積またはディスクリート論理回路、あるいはそれらの任意の組合せなど、1つまたは複数のプロセッサを含み得る。本技法が部分的にソフトウェアで実装される場合、コンテンツエンコーダ/デコーダ122は、好適な非一時的コンピュータ可読記憶媒体、たとえば、内部メモリ123にソフトウェアのための命令を記憶し得、本開示の技法を実施するために1つまたは複数のプロセッサを使用してそれらの命令をハードウェアで実行し得る。ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む上記のいずれも、1つまたは複数のプロセッサであると見なされ得る。
【0026】
[0032]いくつかの態様では、コンテンツ生成システム100は、随意の通信インターフェース126を含むことができる。通信インターフェース126は、受信機128と送信機130とを含み得る。受信機128は、デバイス104に関して本明細書で説明される任意の受信機能を実施するように構成され得る。さらに、受信機128は、別のデバイスから、情報、たとえば、眼または頭部位置情報、レンダリングコマンド、あるいはロケーション情報を受信するように構成され得る。送信機130は、デバイス104に関して本明細書で説明される任意の送信機能を実施するように構成され得る。たとえば、送信機130は、コンテンツについての要求を含み得る情報を別のデバイスに送信するように構成され得る。受信機128と送信機130とは組み合わせられてトランシーバ132になり得る。そのような例では、トランシーバ132は、デバイス104に関して本明細書で説明される任意の受信機能および/または送信機能を実施するように構成され得る。
【0027】
[0033]再び図1を参照すると、いくつかの態様において、処理ユニット120は、複数のビットを含む少なくとも1つのビットストリームを受信するように構成された決定構成要素198を含み得、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、複数のビットの各々が、色データに関連付けられている。決定構成要素198はまた、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジするように構成され得る。決定構成要素198はまた、複数のビットの順序をアレンジすると、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換するように構成され得る。決定構成要素198はまた、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮するように構成され得る。決定構成要素198はまた、複数のビットを圧縮すると、少なくとも1つのビットストリームの複数のビットを符号化するように構成され得る。決定構成要素198はまた、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信するように構成され得る。決定構成要素198はまた、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信し、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号し、少なくとも1つのビットストリームの複数のビットを復元し、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換し、少なくとも1つのビットストリームの複数のビットの順序を再アレンジし、複数のビットを含む少なくとも1つのビットストリームを送信するように構成され得る。以下の説明は、データ処理またはグラフィックス処理に注目されることがあるが、本明細書で説明される概念は、他の同様の処理技法にも適用可能であり得る。
【0028】
[0034]本明細書で説明されるように、デバイス104など、デバイスは、本明細書で説明される1つまたは複数の技法を実施するように構成された任意のデバイス、装置、またはシステムを指し得る。たとえば、デバイスは、サーバ、基地局、ユーザ機器、クライアントデバイス、局、アクセスポイント、コンピュータ、たとえば、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、コンピュータワークステーション、またはメインフレームコンピュータ、最終製品、装置、フォン、スマートフォン、サーバ、ビデオゲームプラットフォームまたはコンソール、ハンドヘルドデバイス、たとえば、ポータブルビデオゲームデバイスまたは携帯情報端末(PDA)、ウェアラブルコンピューティングデバイス、たとえば、スマートウォッチ、拡張現実デバイス、または仮想現実デバイス、非ウェアラブルデバイス、ディスプレイまたはディスプレイデバイス、テレビジョン、テレビジョンセットトップボックス、中間ネットワークデバイス、デジタルメディアプレーヤ、ビデオストリーミングデバイス、コンテンツストリーミングデバイス、車内コンピュータ、任意のモバイルデバイス、グラフィカルコンテンツを生成するように構成された任意のデバイス、あるいは本明細書で説明される1つまたは複数の技法を実施するように構成された任意のデバイスであり得る。本明細書のプロセスは、特定の構成要素(たとえば、GPU)によって実施されるものとして説明され得るが、さらなる実施形態では、開示される実施形態に従って、他の構成要素(たとえば、CPU)を使用して実施され得る。
【0029】
[0035]GPUは、GPUパイプラインにおいて複数のタイプのデータまたはデータパケットを処理することができる。たとえば、いくつかの態様では、GPUは、2つのタイプのデータまたはデータパケット、たとえば、コンテキストレジスタパケットおよび描画呼出しデータを処理することができる。コンテキストレジスタパケットは、グラフィックスコンテキストがどのように処理されるかを調節することができる、グローバル状態情報のセット、たとえば、グローバルレジスタ、シェーディングプログラム、または定数データに関する情報であり得る。たとえば、コンテキストレジスタパケットは、カラーフォーマットに関する情報を含むことができる。コンテキストレジスタパケットのいくつかの態様では、どの作業負荷がコンテキストレジスタに属するかを示すビットがあり得る。また、同時におよび/または並列に稼働する複数の機能またはプログラミングがあり得る。たとえば、機能またはプログラミングは、ある動作、たとえば、カラーモードまたはカラーフォーマットについて説明することができる。したがって、コンテキストレジスタは、GPUの複数の状態を定義することができる。
【0030】
[0036]コンテキスト状態は、個々の処理ユニット、たとえば、頂点フェッチャ(VFD)、頂点シェーダ(VS)、シェーダプロセッサ、またはジオメトリプロセッサがどのように機能するか、および/あるいは処理ユニットがどのモードで機能するかを決定するために利用され得る。そうするために、GPUは、コンテキストレジスタとプログラミングデータとを使用することができる。いくつかの態様では、GPUは、モードまたは状態のコンテキストレジスタ定義に基づいて、パイプラインにおいて、作業負荷、たとえば、頂点またはピクセル作業負荷を生成することができる。いくつかの処理ユニット、たとえば、VFDは、いくつかの機能、たとえば、頂点がどのようにアセンブルされるかを決定するために、これらの状態を使用することができる。これらのモードまたは状態は変化することができるので、GPUは、対応するコンテキストを変更する必要があり得る。さらに、モードまたは状態に対応する作業負荷は、変化するモードまたは状態に従い得る。
【0031】
[0037]図2は、本開示の1つまたは複数の技法による、例示的なGPU200を示す。図2に示されているように、GPU200は、コマンドプロセッサ(CP)210と、描画呼出しパケット212と、VFD220と、VS222と、頂点キャッシュ(VPC)224と、三角形セットアップエンジン(TSE:triangle setup engine)226と、ラスタライザ(RAS)228と、Zプロセスエンジン(ZPE:Z process engine)230と、ピクセル補間器(PI:pixel interpolator)232と、フラグメントシェーダ(FS)234と、レンダーバックエンド(RB:render backend)236と、レベル2(L2)キャッシュ(UCHE)238と、システムメモリ240とを含む。図2は、GPU200が処理ユニット220~238を含むことを表示するが、GPU200は、いくつかの追加の処理ユニットを含むことができる。さらに、処理ユニット220~238は一例にすぎず、本開示によれば、処理ユニットの任意の組合せまたは順序が、GPUによって使用され得る。GPU200は、コマンドバッファ250、コンテキストレジスタパケット260、およびコンテキスト状態261をも含む。
【0032】
[0038]図2に示されているように、GPUは、コマンドバッファを、コンテキストレジスタパケット、たとえば、コンテキストレジスタパケット260、および/または描画呼出しデータパケット、たとえば、描画呼出しパケット212にパースするために、CP、たとえば、CP210、またはハードウェアアクセラレータを利用することができる。CP210は、次いで、コンテキストレジスタパケット260または描画呼出しデータパケット212を、別個の経路を通して、GPU中の処理ユニットまたはブロックに送ることができる。さらに、コマンドバッファ250は、コンテキストレジスタおよび描画呼出しの異なる状態を交互させることができる。たとえば、コマンドバッファは、以下の様式、すなわち、コンテキストNのコンテキストレジスタ、コンテキストNの(1つまたは複数の)描画呼出し、コンテキストN+1のコンテキストレジスタ、およびコンテキストN+1の(1つまたは複数の)描画呼出しで構造化され得る。
【0033】
[0039]データ処理またはグラフィックス処理のいくつかの態様は、可逆圧縮(lossless compression)を利用することがあり、この可逆圧縮は、圧縮されたデータ(すなわち、いかなるデータ損失もなく再構成されるデータ)の正確な再構成に対応するデータ圧縮の1つのタイプである。いくつかの事例では、可逆圧縮は、データが大部分は正しく再構成され得るので、データ圧縮率の向上と結び付けられ得る。この高レベルのデータ再構成は、データサイズの低減またはデータの媒体サイズの低減に対応し得る。可逆圧縮技法はまた、いかなるデータ損失もなくデータが再構成されることを可能にし得る、いくつかの異なるデータ圧縮アルゴリズムを含み得る。
【0034】
[0040]データ処理またはグラフィックス処理に利用され得るいくつかの異なるタイプの圧縮技法がある。たとえば、ユニバーサル帯域幅圧縮(UBWC)技法またはユニバーサル帯域幅復元技法が、データ処理またはグラフィックス処理に利用され得る。さらに、異なるデータフォーマットが、データ処理またはグラフィックス処理で利用されるUBWC圧縮技法と関連付けられ得る。たとえば、R11G11B10データフォーマットが、データ処理またはグラフィックス処理に利用され得、このR11G11B10データフォーマットは、圧縮浮動小数点データ、すなわち圧縮浮動小数点赤(R)緑(G)青(B)(RGB)データに対応する。R11G11B10データフォーマットは、Rチャネルに11ビット、Gチャネルに11ビット、およびBチャネルに10ビットを含み得る。いくつかの態様において、R11G11B10データは、テクスチャファイルおよび/またはレンダリング用の、たとえば、GPUでグラフィックス処理中のテクスチャファイルおよび/またはレンダリング用のフォーマットとして利用され得る。R11G11B10データは、いくつかのGPU構成要素、たとえば、ダブルデータレート(DDR)メモリが、GPUでフェッチまたは取得されるデータ量を低減することを可能にし得る。さらに、R11G11B10データは、利用されるメモリ帯域幅の低減された量に対応し得る。
【0035】
[0041]いくつかの態様では、浮動小数点テクスチャまたは頂点データは、高い帯域幅消費に対応し得る。たとえば、浮動小数点テクスチャまたは頂点データは、RGBデータでは、あるピクセル当たりのビット量(bpp)、たとえば96bppになり得る。このRGBデータは、RGBデータにアルファ値がない点でRGBAデータと異なり得る。帯域幅を節約するためのいくつかの技法では、ハーフフロートデータフォーマット、たとえば、ハーフフロートRGB161616データフォーマット(48bppに対応)、またはR11G11B10データフォーマット(32bppに対応)を利用し得る。R11G11B10データフォーマットでは32bppを利用するので、これは高い帯域幅使用量に相当し得る。いくつかの事例では、RGBデータのBチャネルのビット深度が不均一であることにより、これらのフォーマットは、可逆的に容易に圧縮され得ない。たとえば、Rチャネル、Gチャネル、およびBチャネルのデータを非相関化することが困難であり得る。
【0036】
[0042]上記によれば、いくつかのタイプのデータフォーマット、たとえばR11G11B10データフォーマットを可逆的に圧縮することは有益であり得る。また、グラフィックス処理またはGPU用途のために、これらのデータフォーマットを可逆的に圧縮することも有益であり得る。さらに、これらのタイプのデータフォーマットでは、異なる色チャネル、たとえば、Rチャネル、Gチャネル、および/またはBチャネルのデータの非相関化を可能にすることは有益であり得る。また、可逆圧縮データフォーマットで消費される帯域幅量を低減することも有益であり得る。
【0037】
[0043]本開示の態様は、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットを可逆的に圧縮し得る。本開示の態様はまた、グラフィックス処理またはGPU用途のために、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットを可逆的に圧縮し得る。その上、本開示の態様は、いくつかのタイプのデータフォーマット、たとえば、R11G11B10データフォーマットに対して、異なる色チャネル、たとえば、Rチャネル、Gチャネル、および/またはBチャネルのデータの非相関化を可能にし得る。本開示の態様はまた、可逆圧縮データフォーマットの場合に消費される帯域幅量を低減し得る。たとえば、本開示の態様は、GPUでR11G11B10データフォーマットによって利用される帯域幅量を低減し得る。
【0038】
[0044]本開示のいくつかの態様は、ビット再配置技法(bit rearranging technique)を使用して、いくつかのタイプのデータ、たとえばR11G11B10データまたはRGB111110データに可逆圧縮技法を利用し得る。たとえば、本開示の態様は、特定のビットフォーマット、たとえば、11-11-10ビットフォーマットから別のビットフォーマット、たとえば、10-10-10-2ビットフォーマットへのビット再配置(bit rearranging)を使用して、データ、たとえば、R11G11B10データに可逆圧縮プロセスを利用し得る。このビット再配置プロセスには、非相関プロセス、たとえばRGB非相関プロセスが続くことがあり、この非相関プロセスは、いくつかのタイプの変換、たとえばルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)変換を使用し得る。非相関プロセスに続いて、本開示の態様は、空間相関、たとえば、Y-Co-Cg色空間における空間相関を利用する可逆圧縮技法を利用し得る。
【0039】
[0045]図3は、本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのデータ圧縮プロセスを示す図300である。図3に示されているように、図300は、エンコーダ310と、R11G11B10データフォーマット312と、R11G11B10X2データフォーマット314と、Y10Co11Cg11X2データフォーマット316とを含む。図300はまた、Yチャネル322、Coチャネル324、Cgチャネル326、およびXチャネル328を含む、可逆圧縮プロセス320を含む。図300はまた、ビットストリーム330、デコーダ340と、Y10Co11Cg11X2データフォーマット342と、R11G11B10X2データフォーマット344と、R11G11B10データフォーマット346とを含む。図3は、R11G11B10データの可逆圧縮プロセスを示す。より詳細には、図3は、あるビットフォーマット、たとえば、11-11-10ビットフォーマットから、別のビットフォーマット、たとえば、10-10-10-2ビットフォーマットへのビット再配置を使用する、R11G11B10データの可逆圧縮プロセスを表示する。図3はまた、Y-Co-Cg変換を使用し得る非相関プロセス、たとえばRGB非相関プロセスを示す。図3に示されているように、図300はまた、Y-Co-Cgフォーマットで空間相関を利用する可逆圧縮技法を含み得る。
【0040】
[0046]図3に示されているように、エンコーダ310、たとえばエンコーダ310のエンジンは、色データをより圧縮に適したものにするために、色データを再配置(rearrange、再アレンジ)し得る。たとえば、エンコーダ310は、RGBデータフォーマット312のビットを別のカラーフォーマットに、たとえばRGBAフォーマットと関連付けられたR11G11B10X2データフォーマット314に再配置し得る。このプロセスの間に、エンコーダ310は、別個の平面チャネル、たとえばXチャネルを作るために、RチャネルおよびGチャネル内のビットを分離し得る。この後、エンコーダ310は、RGBからYCoCgRへの変換を実施することによって、データビットを色空間に変換し得る。この色空間変換は、これにより複数のチャネルにわたって相関が得られるので、より圧縮に適しているデータフォーマット、たとえばY10Co11Cg11X2データフォーマット316になり得る。
【0041】
[0047]この色空間変換の後、本開示の態様は、たとえばUBWCエンジンで、可逆圧縮プロセス320を実施し得る。この可逆圧縮プロセス320は、異なるチャネル、たとえば、Yチャネル322、Coチャネル324、Cgチャネル326、およびXチャネル328を利用し得る。また、可逆圧縮プロセス320、すなわち、2D圧縮の後、データは、メモリ、たとえば、DDRメモリに記憶するためのビットストリーム、たとえば、ビットストリーム330になるように形成され得る。それに応じて、データは、DDRメモリに記憶する前に符号化される。
【0042】
[0048]図3に示されているように、DDRメモリに記憶された後、ビットストリーム330はデコーダ340で復号され得る。いくつかの態様では、ビットストリーム330は、ヘッダ、メタデータ、および/または圧縮データを含み得る。ヘッダは、どの色空間変換または圧縮形式を利用するかに関する情報などの、デコーダ340のための情報を含み得る。デコーダ340で、ビットストリーム330は、Y10Co11Cg11X2データフォーマット、たとえば、Y10Co11Cg11X2データフォーマット342であり得る。この場合、デコーダ340は、YCoCgRからRGBへの変換を実施し得、その結果、R11G11B10X2データフォーマット344になり得る。この後、デコーダ340は、R11G11B10データフォーマット346になるビット再配置を実施し得る。それに応じて、デコーダ340は、エンコーダ310によって実施されるステップの各々の逆機能を実施し得る。そうすることによって、デコーダ340は、エンコーダ310によって受信され処理された元のデータを取得し得る。いくつかの態様では、エンコーダ310およびデコーダ340は、GPUパイプラインとDDRメモリの間のGPU内にあり得る。また、エンコーダ310およびデコーダ340は、GPU内のチップセットにあるとともに、ディスプレイと結合されていることがある。
【0043】
[0049]上記のように、色空間変換または補正をあるデータフォーマット、たとえばR11G11B10フォーマットに適用するために、本開示の態様はビット再配置(bit rearrangement)プロセスを適用し得る。たとえば、本開示の態様は、色チャネル、たとえば、R、G、およびBチャネルが同じビット深度を有することを可能にするために、データの特定のビットを再配置し得る。そうすることによって、これが、より色空間変換に適しているデータをもたらし得る。いくつかの態様では、本開示は、RGBデータフォーマットのRビットおよびGビットを、Bビットのフォーマットと整合するように再配置することができる。たとえば、R11G11B10フォーマットでは、RチャネルとGチャネルの両方が11ビットを含むが、Bチャネルは10ビットを含む。そのため、本開示の態様は、RGBデータフォーマットのRチャネルおよびGチャネルの11ビットフォーマットを、Bチャネルの10ビットフォーマットに合致するように再配置し得る。
【0044】
[0050]色空間変換には多くの可能なカラーマッピングがあるので、本開示の態様は、いくつかのチャネルのビット深度、たとえばXチャネルビット深度を最小化し、他のチャネル、たとえば色空間変換に適しているチャネルのビット深度を最大化し得る。一態様では、このプロセスは、ある数のビット、たとえばm個のビットをRチャネルおよびGチャネルから別のチャネル、たとえばXチャネルに移動させることによって達成され得る。この結果、他のチャネル、たとえばXチャネルが、あるビット深度、たとえば2m個のビットのビット深度を有することになり得る。また、ビットの数、たとえばm個のビットは、可逆圧縮率を最大にする結果または実験に基づいて選択され得る。
【0045】
[0051]いくつかの態様では、ビット再配置プロセスの後、本開示の態様は色空間変換を適用し得る。いくつかの色空間、たとえばY-Co-Cg-R色空間は、いくつかのタイプのデータ予測に、たとえば二次元(2D)予測に、より適していることがある。色チャネル、たとえばRGBXチャネルの生成後、いくつかのタイプのデータ、たとえばRGBデータは、ある色空間、たとえばY-Co-Cg色空間へのロスレス色空間変換を経ることがある。また、RGBXチャネルは、ある色データフォーマット、たとえばRGBAフォーマットに対応し得る。たとえば、この変換の間、Yはあるビット量、たとえばn個のビットを占有し、Co/Cgは別のビット量、たとえばn+1個のビットを占有することがあり、ここでnは、RGBXチャネル内のR/G/Bチャネルの元の(original)ビット深度である。上記のように、いくつかのチャネル、たとえばXチャネルが変換プロセスから除外され得る。この変換プロセスの後、Y-Co-Cg-Xデータは、予測エンジン、たとえば空間2D予測エンジンへ送信され得る。さらに、前述の色空間変換におけるデータのすべてがインターリーブされ得、たとえば、RGBデータ、RGBXデータ、およびYCoCgXデータは、インターリーブされ得る。したがって、色空間変換におけるデータは、2D平面変換に対応することができる。
【0046】
[0052]図4は、本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのデータ予測プロセスを示す図400である。図4は、予測エンジン、たとえば空間2D予測エンジンで利用され得るデータ予測プロセスを示す。図4に示されているように、4つすべてのチャネル、たとえば、ピクセルA、B、C、およびXのチャネルは、空間圧縮プロセスを経ることができる。2D予測のために、本開示の態様は、図400に示されているように、空間近傍予測子または平行四辺形予測子を利用し得る。
【0047】
[0053]図400は、予測されるピクセル、たとえばピクセルX、ならびに空間近傍ピクセル、たとえばピクセルA、ピクセルB、およびピクセルCを含む。図4に示されているように、予測されるピクセル、たとえばピクセルXの予測子(たとえばX’)は、空間近傍ピクセル、たとえばピクセルA、B、およびCを使用して生成され得る。予測子(たとえばX’)は次の式、X’=A+B-Cによって計算され得る。いくつかの態様では、予測された残差は、次いで、ブロック固定長コーディング(BFLC)符号化され(すなわち、可逆符号化され)、適切なヘッダがあるビットストリームに配置され得る。その上、デコーディングプロセスは、元のデータを取得するために、前述のステップの各々の逆ステップに続き得る。
【0048】
[0054]図5は、本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理のためのビット再配置プロセスを示す図500である。図5は、ビット配置510と、ビット再配置またはマッピング520、530、540、550、および560とのためのいくつかのビットを含む、ビット再配置プロセスを表示する。すなわち、図500は、初期ビット配置、たとえば、B10G11R11フォーマット510と、いくつかの異なるビット再配置(すなわち、マッピング)、たとえば、マッピング520、530、540、550、および560とを含む。ビット再配置(すなわちマッピング)の各々は、いくつかのタイプの色空間変換または補正、たとえばRGB色空間変換または補正に適していることがある。図5に示されているように、ビット配置510は、R11G11B10フォーマットでいくつかのビットを含み得、これらのビットはチャネルごとに、たとえば、R、G、およびBチャネルごとに、指数ビットおよび浮動小数点ビット(すなわち、仮数ビット)を含み得る。たとえば、R11G11B10フォーマットを含むビット配置510では、RおよびGチャネルは、11ビット(5つの指数ビットおよび6つの仮数ビット)を含み、Bチャネルは、10ビット(5つの指数ビットおよび5つの仮数ビット)を含む。
【0049】
[0055]図5に示されているように、ビット配置510と比較して、ビット再配置またはマッピング520、530、540、550、および560の各々は、R、G、およびBチャネルの異なる数の指数ビットおよび仮数ビットを含む。たとえば、ビットマッピング520は、8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)があるBチャネルと、8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)があるGチャネルと、8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)があるRチャネルとを含む。ビットマッピング520はまた、8つのRGBビットの組合せ(たとえば、2つのB仮数ビットと、3つのG仮数ビットと、3つのR仮数ビット)があるXチャネルを含む。図5に示されているように、マッピング520、530、540、550、および560の各々は、ビット再配置をビット位置に応じて含み得る。ビットマッピング530では、Bチャネルは8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)を含み、Gチャネルは8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)を含み、Rチャネルは8ビット(たとえば、5つの指数ビットおよび3つの仮数ビット)を含む。ビットマッピング530はまた、8つのRGBビット(たとえば、2つのB仮数ビット、3つのG仮数ビット、および3つのR仮数ビット)があるXチャネルを含む。
【0050】
[0056]さらに、ビットマッピング540は、8ビット(たとえば、3つの指数ビットおよび5つの仮数ビット)があるBチャネルと、8ビット(たとえば、3つの指数ビットおよび5つの仮数ビット)があるGチャネルと、8ビット(たとえば、3つの指数ビットおよび5つの仮数ビット)があるRチャネルとを含む。ビットマッピング540はまた、8つのRGBビット(たとえば、2つのB指数ビット、2つのG指数ビット、1つのG仮数ビット、2つのR指数ビット、および1つのR仮数ビット)があるXチャネルを含む。ビットマッピング550は、8つのRGBビット(たとえば、2つのB指数ビット、2つのG指数ビット、1つのG仮数ビット、2つのR指数ビット、および1つのR仮数ビット)の組合せがあるXチャネルを含む。最後に、ビットマッピング560は、10ビット(たとえば、5つの指数ビットおよび5つの仮数ビット)があるBチャネルと、10ビット(たとえば、5つの指数ビットおよび5つの仮数ビット)があるGチャネルと、10ビット(たとえば、5つの指数ビットおよび5つの仮数ビット)があるRチャネルとを含む。ビットマッピング560はまた、2つのRGBビット(1つのG仮数ビットおよび1つのR仮数ビット)があるXチャネルを含む。ビットマッピング560では、RGBチャネルの各々は、同様のビット量、たとえば、同様の量の指数ビット(すなわち、大きさ)と仮数ビット(すなわち、浮動小数点)とを含む8ビットを含む。図5に示されているように、マッピング560は完全なビット再配置に対応する。
【0051】
[0057]本開示の態様は、いくつかの利益および利点を含み得る。たとえば、前述の圧縮プロセス、たとえば図3に示されている圧縮プロセスと、前述のビット再配置、たとえば図5に示されているビット再配置とに基づいて、本開示の態様は、いくつかの利点を含み得る。たとえば、一態様では、様々なファイル、たとえばGPU関連ファイルのデータセットについての平均帯域幅節約は、ある量のロスレスゲイン、たとえば15.93%のロスレスゲインになり得る。したがって、本開示の態様は、メモリ記憶プロセスの時間および/または記憶の量を減少させ得る(たとえば、時間および/または記憶の量の15.93%の減少)。さらに、本開示が、図4に示されているように空間予測プロセスとともに利用される場合には、ある量のロスレスゲイン、たとえば21.64%のロスレスゲインが観察され得る。この空間予測プロセスは、強い水平相関を示すいくつかのGPUファイルに使用され得る。これらの利益および/またはロスレスゲインを達成するために、本開示の態様は、あるデータフォーマット、たとえば、R11G11B10フォーマットを、ある予測および符号化プロセス、たとえば、2D予測およびBFLCコーディングプロセスとともに利用し得る。
【0052】
[0058]図6は、本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理の通信フロー図600である。図6に示されているように、図600は、本開示の1つまたは複数の技法による、GPU構成要素602、たとえば、GPUのチップセットと、GPUパイプライン604と、メモリ606、たとえば、GPUのDDRメモリとの間の例示的な通信を含む。
【0053】
[0059]610で、GPU構成要素602は、複数のビット、たとえばビットストリーム612を含む少なくとも1つのビットストリームをGPUパイプライン604から受信し得、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、複数のビットの各々が、色データに関連付けられている。複数のビットは、32ビット高ダイナミックレンジ(HDR)フォーマットまたはR11G11B10フォーマットに対応し得る。
【0054】
[0060]620で、GPU構成要素602は、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリーム、たとえばビットストリーム612/662の複数のビットの順序(order)をアレンジ(arrange)し得る。複数のビットの順序は、少なくとも1つのビットストリーム内の1つまたは複数の浮動小数点ビットを移動させることによってアレンジされ得る。また、1つまたは複数の浮動小数点ビットは、複数のビットの順序の先頭に、または複数のビットの順序の末尾に移動され得る。1つまたは複数の浮動小数点ビットは、赤(R)浮動小数点ビット、緑(G)浮動小数点ビット、および青(B)浮動小数点ビットに対応し得る。
【0055】
[0061]630で、GPU構成要素602は、複数のビットの順序をアレンジすると、少なくとも1つのビットストリーム、たとえばビットストリーム612/662の複数のビットの各々と関連付けられた色データを変換し得る。色データは、赤(R)緑(G)青(B)(RGB)データから、ルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)データに変換され得る。さらに、複数のビットの各々と関連付けられた色データは、色空間変換または可逆変換の少なくとも一方に基づいて変換され得る。
【0056】
[0062]640で、GPU構成要素602は、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリーム、たとえばビットストリーム612中の複数のビットを圧縮し得る。複数のビットは、予測圧縮方式に基づいて圧縮され得る。予測圧縮方式は、複数のビットの各々と関連付けられた色データの空間隣接色データに基づき得る。また、予測圧縮方式は、空間近傍予測子または平行四辺形予測子の少なくとも一方と関連付けられ得る。いくつかの態様では、少なくとも1つのビットストリーム、たとえばビットストリーム612/662中の複数のビットは、1つまたは複数のデータパケットに圧縮され得る。1つまたは複数のデータパケットは、ダブルデータレート(DDR)パケットであり得る。その上、複数のビットの圧縮は、可逆圧縮であり得る。
【0057】
[0063]650で、GPU構成要素602は、複数のビットを圧縮すると、少なくとも1つのビットストリーム、たとえばビットストリーム612/662中の複数のビットを符号化し得る。複数のビットは、ブロック固定長コーディング(BFLC)プロセスに基づいて符号化され得る。複数のビットはまた、ヘッダまたはメタデータの少なくとも一方をその複数のビットに付加することによって符号化され得る。
【0058】
[0064]660で、GPU構成要素602は、圧縮された複数のビットを含む少なくとも1つのビットストリーム、たとえばビットストリーム662をメモリへ、たとえばメモリ606へ送信し得る。メモリは、グラフィックス処理ユニット(GPU)内のダブルデータレート(DDR)メモリであり得る。
【0059】
[0065]670で、GPU構成要素602は、圧縮された複数のビットを含む少なくとも1つのビットストリーム、たとえばビットストリーム672をメモリから、たとえばメモリ606から受信し、少なくとも1つのビットストリーム、たとえばビットストリーム672/674内の圧縮された複数のビットを復号し、少なくとも1つのビットストリーム、たとえばビットストリーム672/674の複数のビットを復元し、少なくとも1つのビットストリーム、たとえばビットストリーム672/674の複数のビットの各々と関連付けられた色データを再変換し、少なくとも1つのビットストリーム、たとえば、ビットストリーム672/674の複数のビットの順序を再アレンジし、複数のビットを含む少なくとも1つのビットストリーム、たとえば、ビットストリーム674を送信し得る。
【0060】
[0066]図7は、本開示の1つまたは複数の技法による、データ処理またはグラフィックス処理の例示的な方法のフローチャート700である。本方法は、グラフィックス処理用の装置、GPUもしくは他のグラフィックスプロセッサ、チップセット、GPUパイプライン、ワイヤレス通信デバイス、および/または、図1図6の例に関連して使用されるデータ処理もしくはグラフィックス処理を実施できる任意の装置、などの装置によって実施され得る。
【0061】
[0067]702で、本装置は、複数のビットを含む少なくとも1つのビットストリームを受信し得、図1~6の例に関連して説明されたように、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、また、複数のビットの各々が、色データに関連付けられている。たとえば、GPU構成要素602は、複数のビットを含む少なくとも1つのビットストリームを受信し得、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、複数のビットの各々が、色データに関連付けられている。さらに、処理ユニット120は702を実施し得る。複数のビットは、図1~6の例に関連して説明されたように、32ビット高ダイナミックレンジ(HDR)フォーマットまたはR11G11B10フォーマットに対応し得る。
【0062】
[0068]704で、本装置は、図1図6の例に関連して説明されたように、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジし得る。たとえば、GPU構成要素602は、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジし得る。さらに、処理ユニット120は、704を実施し得る。複数のビットの順序は、図1図6の例に関連して説明されたように、少なくとも1つのビットストリーム内の1つまたは複数の浮動小数点ビットを移動させることによってアレンジされ得る。また、1つまたは複数の浮動小数点ビットは、図1図6の例に関連して説明されたように、複数のビットの順序の先頭、または複数のビットの順序の末尾に移動され得る。1つまたは複数の浮動小数点ビットは、図1図6の例に関連して説明されたように、赤(R)浮動小数点ビット、緑(G)浮動小数点ビット、および青(B)浮動小数点ビットに対応し得る。
【0063】
[0069]706で、本装置は、複数のビットの順序をアレンジすると、図1図6の例に関連して説明されたように、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換し得る。たとえば、GPU構成要素602は、複数のビットの順序をアレンジすると、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換し得る。さらに、処理ユニット120は、706を実施し得る。色データは、図1図6の例に関連して説明されたように、赤(R)緑(G)青(B)(RGB)データから、ルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)データに変換され得る。さらに、複数のビットの各々と関連付けられた色データは、図1図6の例に関連して説明されたように、色空間変換または可逆変換の少なくとも一方に基づいて変換され得る。
【0064】
[0070]708で、本装置は、複数のビットの各々と関連付けられた色データを変換すると、図1図6の例に関連して説明されたように、少なくとも1つのビットストリームの複数のビットを圧縮し得る。たとえば、GPU構成要素602は、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮し得る。さらに、処理ユニット120は、708を実施し得る。複数のビットは、図1図6の例に関連して説明されたように、予測圧縮方式に基づいて圧縮され得る。予測圧縮方式は、図1図6の例に関連して説明されたように、複数のビットの各々と関連付けられた色データの空間隣接色データに基づき得る。また、予測圧縮方式は、図1図6の例に関連して説明されたように、空間近傍予測子または平行四辺形予測子の少なくとも一方と関連付けられ得る。いくつかの態様では、少なくとも1つのビットストリームの複数のビットは、図1図6の例に関連して説明されたように、1つまたは複数のデータパケットに圧縮され得る。1つまたは複数のデータパケットは、ダブルデータレート(DDR)パケットであり得る。その上、複数のビットの圧縮は、図1図6の例に関連して説明されたように、可逆圧縮であり得る。
【0065】
[0071]710で、本装置は、複数のビットを圧縮すると、図1図6の例に関連して説明されたように、少なくとも1つのビットストリームの複数のビットを符号化し得る。たとえば、GPU構成要素602は、複数のビットを圧縮すると、少なくとも1つのビットストリームの複数のビットを符号化し得る。さらに、処理ユニット120は、710を実施し得る。複数のビットは、図1図6の例に関連して説明されたように、ブロック固定長コーディング(BFLC)プロセスに基づいて符号化され得る。複数のビットはまた、図1図6の例に関連して説明されたように、ヘッダまたはメタデータの少なくとも一方をその複数のビットに付加することによって符号化され得る。
【0066】
[0072]712で、本装置は、図1図6の例に関連して説明されたように、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信し得る。たとえば、GPU構成要素602は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信し得る。さらに、処理ユニット120は、712を実施し得る。メモリは、図1図6の例に関連して説明されたように、グラフィックス処理ユニット(GPU)内のダブルデータレート(DDR)メモリであり得る。
【0067】
[0073]714で、本装置は、図1図6の例に関連して説明されたように、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信し、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号し、少なくとも1つのビットストリームの複数のビットを復元し、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換し、少なくとも1つのビットストリームの複数のビットの順序を再アレンジし、複数のビットを含む少なくとも1つのビットストリームを送信し得る。たとえば、GPU構成要素602は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信し、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号し、少なくとも1つのビットストリームの複数のビットを復元し、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換し、少なくとも1つのビットストリームの複数のビットの順序を再アレンジし、複数のビットを含む少なくとも1つのビットストリームを送信し得る。さらに、処理ユニット120は、714を実施し得る。
【0068】
[0074]構成では、データ処理またはグラフィックス処理のための方法または装置が提供される。本装置は、GPU、グラフィックプロセッサ、データプロセッサ、またはデータ処理もしくはグラフィック処理を実施し得る何か他のプロセッサであり得る。態様では、装置は、デバイス104内の処理ユニット120であり得るか、あるいはデバイス104または別のデバイス内の何らかの他のハードウェアであり得る。本装置は、複数のビットを含む少なくとも1つのビットストリームを受信する手段を含み得、複数のビットの各々が、少なくとも1つのビットストリーム内の1つの位置に対応し、また、複数のビットの各々が、色データに関連付けられている。本装置は、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジする手段をさらに含み得る。本装置は、複数のビットの順序をアレンジすると、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換する手段をさらに含み得る。本装置は、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮する手段をさらに含み得る。本装置は、複数のビットを圧縮すると、少なくとも1つのビットストリームの複数のビットを符号化する手段をさらに含み得る。本装置は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信する手段をさらに含み得る。本装置は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信する手段をさらに含む。本装置は、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号する手段をさらに含み得る。本装置は、少なくとも1つのビットストリームの複数のビットを復元する手段をさらに含み得る。本装置は、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換する手段をさらに含み得る。本装置は、少なくとも1つのビットストリームの複数のビットの順序を再アレンジする手段をさらに含み得る。本装置は、複数のビットを含む少なくとも1つのビットストリームを送信する手段をさらに含み得る。
【0069】
[0075]本明細書で説明される主題は、1つまたは複数の利益または利点を実現するために実装され得る。たとえば、説明されたデータ処理技法またはグラフィックス処理技法は、GPU、グラフィックスプロセッサ、データプロセッサ、または本明細書で説明された可逆圧縮または色空間変換技法を実装するためのデータ処理もしくはグラフィックス処理を実施できる何らかの他のプロセッサによって、使用され得る。これはまた、他のデータ、またはグラフィックス処理技法と比較して低いコストにおいて達成され得る。その上、本明細書のデータ、またはグラフィックス処理技法は、データ処理または実行を改善するか、またはその速度を上げることができる。さらに、本明細書のデータ、またはグラフィックス処理技法は、リソースまたはデータ利用および/あるいはリソース効率を改善することができる。さらに、本開示の態様は、メモリ帯域幅を改善するために、および/またはGPUにおける性能オーバーヘッドを低減するために、可逆圧縮または色空間変換を利用することができる。
【0070】
[0076]開示されたプロセス/フローチャート内のブロックの特定の順序または階層は、例示的な手法を説明するものであることを理解されたい。設計選好に基づいて、プロセス/フローチャート内のブロックの特定の順序または階層は再アレンジされ得ると理解されたい。さらに、いくつかのブロックが組み合わされ、または省略され得る。添付の方法特許請求の範囲は、様々なブロックの要素を例示的な順序で提示しており、提示された特定の順序または階層に限定されるものではない。
【0071】
[0077]これまでの説明は、当業者が本明細書に記載された様々な態様を実践できるようにするために行われている。これらの態様に対する様々な修正は、当業者には容易に明らかになり、本明細書で定義されている一般的な原理は、他の態様にも適用され得る。したがって、特許請求の範囲は、本明細書に示された態様に限定されるものではなく、特許請求の範囲の文言と一致する全範囲が与えられるべきであり、単数形の要素に言及することは、特にそのように記述されない限り、「1つおよび1つだけ」を意味するものではなく、「1つまたは複数」を意味するものである。本明細書では、「例示的」という語は、「例、事例、または説明として役立つ」という意味で使用される。本明細書で「例示的」として説明されるいずれの態様も、必ずしも他の態様よりも好ましい、または有利であると解釈されるものではない。
【0072】
[0078]特に断らない限り、「いくつか」という用語は、1つ以上を指し、「または」という用語は、文脈で他に指示がない場合、「および/または」と解釈され得る。A、B、またはCのうちの少なくとも1つ」、「A、B、またはCのうちの1つまたは複数」、「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、ならびに「A、B、C、またはそれらの任意の組合せ」などの組合せは、A、B、および/またはCの任意の組合せを含み、Aの倍数、Bの倍数、またはCの倍数を含み得る。具体的には、「A、B、またはCのうちの少なくとも1つ」、「A、B、またはCのうちの1つまたは複数」、「A、B、およびCのうちの少なくとも1つ」、「A、B、およびCのうちの1つまたは複数」、および「A、B、C、またはそれらの任意の組合せ」などの組合せは、Aだけ、Bだけ、Cだけ、AおよびB、AおよびC、BおよびC、またはAおよびBおよびCであり得、いずれのそのような組合せも、A、B、またはCのうちの1つまたは複数のメンバーを含み得る。当業者に知られている、または後で知られる、本開示全体にわたって説明された様々な態様の要素のすべての構造的および機能的等価物は、参照により本明細書に明示的に組み込まれており、また、特許請求の範囲に包含されるものである。その上、本明細書で開示された何物も、そのような開示が特許請求の範囲に明示的に記載されているか否かにかかわらず、公衆に専用であるものではない。「モジュール」、「機構」、「要素」、「装置」などの語は、「手段」という語の代わりになり得ない。そのため、請求項要素は、その要素が「の手段」という語句を用いて明示的に記載されていない限り、手段プラス機能として解釈されるものではない。
【0073】
[0079]1つまたは複数の例では、本明細書で説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。たとえば、「処理ユニット」という用語が本開示全体にわたって使用されているが、そのような処理ユニットは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。任意の機能、処理ユニット、本明細書に記載の技法、または他のモジュールがソフトウェアで実装される場合、その機能、処理ユニット、本明細書に記載の技術、または他のモジュールは、コンピュータ可読媒体上の1つまたは複数の命令もしくはコードとして記憶され、またはそれを介して送信され得る。
【0074】
[0080]本開示によれば、コンテキストが別段に規定しない場合、「または」という用語は「および/または」として中断され得る。さらに、「1つまたは複数の」または「少なくとも1つの」などの句が、本明細書で開示されるいくつかの特徴のために使用され、他の特徴のために使用されていないことがあるが、そのような言い回しがそれのために使用されなかった特徴は、コンテキストが別段に規定しない場合、そのような暗示される意味を有するものと解釈され得る。
【0075】
[0081]1つまたは複数の例では、本明細書で説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。たとえば、「処理ユニット」という用語が本開示全体にわたって使用されたが、そのような処理ユニットは、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。本明細書で説明される任意の機能、処理ユニット、技法、または他のモジュールがソフトウェアで実装される場合、本明細書で説明される機能、処理ユニット、技法、または他のモジュールは、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む、コンピュータデータ記憶媒体または通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイスを備えることができる。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-ray(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0076】
[0082]コードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、算術論理ユニット(ALU)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実装され得る。
【0077】
[0083]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット、たとえば、チップセットを含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュールまたはユニットが説明されたが、それらの構成要素、モジュールまたはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、任意のハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって提供され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造のいずれかを、または本明細書で説明された技法の実装に適している他の任意の構造を指し得る。また、本技法は、1つまたは複数の回路または論理要素において完全に実装され得る。
【0078】
[0084]以下の態様は、例示的なものにすぎず、限定はしないが、本明細書で説明される他の態様または教示と組み合わせられ得る。
【0079】
[0085]態様1は、データ処理またはグラフィックス処理の方法である。本方法は、複数のビットを含む少なくとも1つのビットストリームを受信することと、複数のビットの各々が少なくとも1つのビットストリーム内の1つの位置に対応し、複数のビットの各々が色データに関連付けられている、複数のビットのうちの少なくとも1つが少なくとも1つのビットストリーム内の更新された位置に対応するように、少なくとも1つのビットストリームの複数のビットの順序をアレンジすることと、複数のビットの順序をアレンジすると、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを変換することと、複数のビットの各々と関連付けられた色データを変換すると、少なくとも1つのビットストリームの複数のビットを圧縮することとを含む。
【0080】
[0086]態様2は、態様1に記載の方法であり、ここで、複数のビットの順序が、少なくとも1つのビットストリーム内の1つまたは複数の浮動小数点ビットを移動させることによってアレンジされる。
【0081】
[0087]態様3は、態様1および2のいずれかに記載の方法であり、ここで、1つまたは複数の浮動小数点ビットが複数のビットの順序の先頭、または複数のビットの順序の末尾に移動される。
【0082】
[0088]態様4は、態様1から3のいずれかに記載の方法であり、ここで、1つまたは複数の浮動小数点ビットが赤(R)浮動小数点ビット、緑(G)浮動小数点ビット、および青(B)浮動小数点ビットに対応する。
【0083】
[0089]態様5は、態様1から4のいずれかに記載の方法であり、ここで、複数のビットが予測圧縮方式に基づいて圧縮される。
【0084】
[0090]態様6は、態様1から5のいずれかに記載の方法であり、ここで、予測圧縮方式が、複数のビットの各々と関連付けられた色データの空間隣接色データに基づいている。
【0085】
[0091]態様7は、態様1から6のいずれかに記載の方法であり、ここで、予測圧縮方式が空間隣接予測子または平行四辺形予測子の少なくとも一方と関連付けられる。
【0086】
[0092]態様8は、態様1から7のいずれかに記載の方法であり、ここで、色データが赤(R)緑(G)青(B)(RGB)データから、ルーマ(Y)クロミナンスオレンジ(Co)クロミナンスグリーン(Cg)(YCoCg)データに変換される。
【0087】
[0093]態様9は、態様1から8のいずれかに記載の方法であり、ここで、複数のビットの各々と関連付けられた色データが、色空間変換または可逆変換の少なくとも一方に基づいて変換される。
【0088】
[0094]態様10は、態様1から9のいずれかに記載の方法であり、ここで、複数のビットが32ビット高ダイナミックレンジ(HDR)フォーマットまたはR11G11B10フォーマットに対応する。
【0089】
[0095]態様11は、複数のビットを圧縮すると、少なくとも1つのビットストリームの複数のビットを符号化することをさらに含む、態様1から10のいずれかに記載の方法である。
【0090】
[0096]態様12は、態様1から11のいずれかに記載の方法であり、ここで、複数のビットがブロック固定長コーディング(BFLC)プロセスに基づいて符号化される。
【0091】
[0097]態様13は、態様1から12のいずれかに記載の方法であり、ここで、複数のビットが、ヘッダまたはメタデータの少なくとも一方を複数のビットに付加することによって符号化される。
【0092】
[0098]態様14は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリへ送信することをさらに含む、態様1から13のいずれかに記載の方法である。
【0093】
[0099]態様15は、圧縮された複数のビットを含む少なくとも1つのビットストリームをメモリから受信することと、少なくとも1つのビットストリーム内の圧縮された複数のビットを復号することと、少なくとも1つのビットストリームの複数のビットを復元することと、少なくとも1つのビットストリームの複数のビットの各々と関連付けられた色データを再変換することと、少なくとも1つのビットストリームの複数のビットの順序を再アレンジすることと、複数のビットを含む少なくとも1つのビットストリームを送信することとをさらに含む、態様1から14のいずれかに記載の方法である。
【0094】
[0100]態様16は、態様1から15のいずれかに記載の方法であり、ここで、メモリがグラフィックス処理ユニット(GPU)内のダブルデータレート(DDR)メモリである。
【0095】
[0101]態様17は、態様1から16のいずれかに記載の方法であり、ここで、少なくとも1つのビットストリームの複数のビットが1つまたは複数のデータパケットに圧縮される。
【0096】
[0102]態様18は、態様1から17のいずれかに記載の方法であり、ここで、1つまたは複数のデータパケットがダブルデータレート(DDR)パケットである。
【0097】
[0103]態様19は、態様1から18のいずれかに記載の方法であり、ここで、複数のビットの圧縮が可逆圧縮である。
【0098】
[0104]態様20は、メモリに結合され、態様1から19のいずれかに記載の方法を実装するように構成された少なくとも1つのプロセッサを含む、データ処理またはグラフィックス処理のための装置である。
【0099】
[0105]態様21は、態様1から19のいずれかに記載の方法を実装するための手段を含む、データ処理またはグラフィックス処理のための装置である。
【0100】
[0106]態様22は、コンピュータ実行可能コードを記憶するコンピュータ可読媒体であり、コードが、少なくとも1つのプロセッサによって実行されたとき、少なくとも1つのプロセッサに、態様1から19のいずれかに記載の方法を実装させる。
図1
図2
図3
図4
図5
図6
図7
【国際調査報告】