JP6990227B2 - デルタカラー圧縮用のビットパッキング - Google Patents

デルタカラー圧縮用のビットパッキング Download PDF

Info

Publication number
JP6990227B2
JP6990227B2 JP2019501587A JP2019501587A JP6990227B2 JP 6990227 B2 JP6990227 B2 JP 6990227B2 JP 2019501587 A JP2019501587 A JP 2019501587A JP 2019501587 A JP2019501587 A JP 2019501587A JP 6990227 B2 JP6990227 B2 JP 6990227B2
Authority
JP
Japan
Prior art keywords
group
bits
delta value
delta
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019501587A
Other languages
English (en)
Other versions
JP2019525583A (ja
Inventor
サイーディ メーディ
マンモー ハーレド
ハリリ アラシュ
シネス ガボール
ジャン レイ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2019525583A publication Critical patent/JP2019525583A/ja
Application granted granted Critical
Publication of JP6990227B2 publication Critical patent/JP6990227B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

メモリ帯域幅の管理は、システムオンチップ(SOC)の命令プロセッサを相互接続するバス上で、及び、SOCと例えばダイナミックランダムアクセスメモリ(DRAM)等の外部メモリとの間のインタフェースを介して、高帯域幅のフローを生成するSOC等の処理システムにおける課題である。例えば、グラフィックス処理は、スクリーン上に表示されるシーンの三次元(3-D)モデルをピクセルとしてレンダリングするために使用される。以下の目的のために、完全な画像はフレームと呼ばれ、フレーム内のピクセル数は、スクリーンのピクセル解像度によって決定される。フレーム内の各ピクセルの色は、特定の色範囲又は色域に亘る異なる色を表す特定の数のビットによって表される。例示すると、特定のピクセルが256色の何れを表すかを示すために8ビット値を使用することができる。ピクセルを表すために使用されるビット数は、通常、ピクセルの色深度又はビット深度と呼ばれる。各のフレームを表すために使用されるビットの総数は、各ピクセルを表すために使用されるビット数及びディスプレイ内のピクセル数に比例して増加する。シーン内の動きは、例えば30フレーム/秒(fps)等の特定のフレームレートで連続するフレームを表示することによって表される。よって、バス又はインタフェースを介した伝送のためにグラフィックス処理ユニット(GPU)によってビットが生成される速度は、フレーム速度に比例して増加する。次世代のGPUは、より高いピクセル解像度、より大きな色深度又は色域、及び、より高いフレームレートをサポートする等の異なる方法によって、レンダリングされた画像の品質を改善することを試みてきた。したがって、GPU、ディスプレイ及び外部メモリ等のシステム内の異なる要素間で通信されるトラフィックの量が大きくなり、継続的に増加している。
添付の図面を参照することによって本開示をより良く理解することができ、その多くの特徴及び利点が当業者に明らかとなるであろう。異なる図面における同じ参照記号の使用は、類似又は同一のアイテムを示す。
いくつかの実施形態による、処理システムのブロック図である。 いくつかの実施形態による、処理システムの一部のブロック図である。 いくつかの実施形態による、デルタカラー圧縮及びビットパッキングを実行する方法のフローチャートである。 いくつかの実施形態による、異なるグループ構成のピクセルのグループに細分することができるピクセルのブロックのブロック図である。 いくつかの実施形態による、ブロック内のピクセルのデルタ値を表す圧縮ビットストリームのブロック図である。 いくつかの実施形態による、全て正のデルタ値又は全て負のデルタ値を表すのに使用されるビット数を減らす方法のフローチャートである。 いくつかの実施形態による、2の累乗に等しい最大デルタ値を有するグループ内のデルタ値を符号化する方法のフローチャートである。 いくつかの実施形態による、2の累乗に等しい最大デルタ値を有するグループ内のデルタ値を復号する方法のフローチャートである。 いくつかの実施形態による、圧縮アルゴリズムの機能をバイパスするか否かを決定する方法のフローチャートである。
本明細書で説明するように、ビデオ/グラフィックス画像(又は、他のビットストリーム)によって消費される帯域幅は、基準ピクセルの色、及び、他のピクセルの色と基準ピクセルの色との間の差を表すデルタ値に基づいてブロック内のピクセルの色を表すためのデルタカラー圧縮を実行することによって減らすことができる。コンプレッサは、各ブロック内のピクセルを複数のグループに細分する。コンプレッサは、グループi内のピクセルのデルタ値を表すのに必要なビットの最小数B_iを決定し、ブロックのグループ内のデルタ値を表すビットの数の最小値を表すビットの最小数(M)を決定する。また、コンプレッサは、ビットの最小数と、ブロックのグループ内のデルタ値を表すのに必要なビットの数の最大値を表すビットの最大数と、の間の差を示すのに必要なビット数(B)を決定する。M及びBの値は、結果として生じる圧縮されたピクセルデータに関連して、コンプレッサからデコンプレッサに送信されるブロックヘッダに含まれる。M及びBの値は、ブロックヘッダに含めるために別々に符号化されてもよいし、M及びBの値の組み合わせは、M及びBについての全てのとり得る組み合わせを表す符号化を使用して符号化されてもよい。また、コンプレッサは、Mと組み合わせて、対応するグループ内のデルタ値を表すビット数を示す、B_iとM(B_i-M)との間の差の値を含むグループヘッダを生成する。コンプレッサは、対応するグループヘッダによって示されるビット数を使用して、各グループ内のピクセル毎のデルタ値を圧縮することができ、デコンプレッサは、ブロックヘッダ及びグループヘッダ内の情報を使用して、圧縮された情報を展開することができる。コンプレッサのいくつかの実施形態は、圧縮アルゴリズムを異なるグループ構成に適用し、最高レベルの圧縮をもたらす最良のグループ構成を選択する。コンプレッサは、選択されたグループ構成を示すブロックヘッダ内の情報を含む。
各グループ内のデルタ値は、ゼロ、正又は負の数であってもよい。そのため、グループ内のデルタ値毎に1つの符号ビットが必要とされる。コンプレッサのいくつかの実施形態は、グループ内のデルタ値の特性に基づいて、ブロック内のピクセルを表すのに使用されるビット数をさらに減らす。例えば、各デルタ値の符号を表すビットは、グループ内の全てのデルタ値が正(ゼロを含む)又は負(ゼロを含む)の何れかである場合、ドロップ(削除)されてもよい。コンプレッサは、グループが全て正、全て負、又は、混合であるかどうかを示すためのビットをグループヘッダに含めることができ、これにより、デコンプレッサは、デルタ値を展開する方法を知ることができる。コンプレッサのいくつかの実施形態は、選択された1ビットコード及び2ビットコードが異なるビット値で開始する限り、1つの構成(例えば、全てが正)用の1ビット、及び、他の2つの構成(例えば、全てが負及び混合)用の2ビットを使用する。これにより、デコンプレッサは、コードを区別することができる。他の可能性は、異なるグループに対して異なる1ビット及び2ビットコードを使用する代わりに、全てのグループの符号ビットを共に組み合わせて、全ての符号ビットに1つのコードを割り当てることである。デルタ値毎に1ビットを取り除くことによって節約されるビット数が、グループの符号を表すために追加されるビット数よりも多い場合には、圧縮における純益が生じる。本明細書で説明するように、グループ内のピクセルのデルタ値の最大絶対値が2の累乗に等しい場合、グループ内のデルタ値を表すのに使用されるビット数を減らすことができる。いくつかの変形例では、これらの機能を有効又は無効にするために、バイパスビットが各ブロックヘッダに含まれる。ブロック内の全てのデルタ値がゼロの場合(すなわち、ブロック内の全てのピクセルが同じ色値を有する場合)には、バイパスビットがドロップされてもよい。
図1は、いくつかの実施形態による、処理システム100のブロック図である。処理システム100は、例えばダイナミックランダムアクセスメモリ(DRAM)110等の1つ以上の外部メモリに接続された処理デバイス105を含む。処理デバイス105は、CPU又はGPU等の複数の計算ユニット111,112,113,114(まとめて「計算ユニット111~114」と呼ばれる)を含む。例えば、処理デバイス105は、基板上に形成されたアクセラレーテッドプロセッシングユニット(APU)又はアクセラレーテッドプロセッシングデバイス(APD)等のシステムオンチップ(SOC)であってもよい。計算ユニット111~114の各々は、異なる命令を同時に処理することができる複数のプロセッサコアを含む。また、計算ユニット111~114は、キャッシュ、算術論理演算ユニット、浮動小数点演算ユニット、分岐予測ロジック、メモリ又はバスインタフェース等のように、プロセッサコアによって共有される1つ以上のリソースを含む。
処理デバイス105は、計算ユニット111~114又は処理デバイス105内の他のエンティティによって使用され得る命令又はデータを記憶するためのデータ記憶ユニット115,120を含む。データ記憶ユニット115,120のいくつかの実施形態は、DRAMを用いて実装される。メモリコントローラ(MC)125は、メモリインタフェース130を介して処理デバイス105とDRAM110との間のデータフローを調整するために使用される。メモリコントローラ125は、DRAM110から情報を読み出し、DRAM110に情報を書き込むことを制御するために使用されるロジックを含む。計算ユニット111~114は、バス135を使用して、データ記憶ユニット115,120と、メモリコントローラ125と、又は、処理システム100内の他のエンティティと、互いに通信することができる。例えば、計算ユニット111~114は、通常、信号をバス135にアサートし、対応する計算ユニット111~114にアドレス指定された信号をバス135から受信するための物理層インタフェース又はバスインタフェースを含む。また、処理デバイス105のいくつかの実施形態は、処理デバイス105内のエンティティの間の通信を容易にするためのノースブリッジ又はサウスブリッジ等の1つ以上のブリッジを含む。
処理デバイス105は、オペレーティングシステム(OS)、又は、処理デバイス105内でワークロードを生成する1つ以上のアプリケーション140を実装する。OS/アプリケーション140の単一のインスタンスが図1に示されているが、処理デバイス105のいくつかの実施形態は、オペレーティングシステム又は1つ以上のアプリケーションの複数のインスタンスを実装する。例えば、計算ユニット111~114上で実行する仮想マシンは、オペレーティングシステム又は1つ以上のアプリケーションの個別のインスタンスを実行することができる。
処理デバイス105のいくつかの実施形態は、グラフィックス処理を実行して、3Dモデルによって表されるシーンをレンダリングし、スクリーン145上に表示するための画像を生成する。例えば、計算ユニット111~114のうち1つ以上は、バス135及びインタフェース130を介して、DRAM110に記憶された3Dモデルを表す情報にアクセスすることができる。次に、計算ユニット111~114は、アクセスされた情報を使用して、シーンの一部をレンダリングし、スクリーン145上に表示するための画像を生成する。計算ユニット111~114は、レンダリングされた画像を表す情報を、バス135を介してスクリーン145に送信する。情報は、処理システム100内のエンティティ間でビットストリームとして伝達される。本明細書で説明するように、計算ユニット111~114、DRAM110、データ記憶ユニット115、データ記憶ユニット120、スクリーン145、又は、処理システム100内の他のエンティティによって生成されるトラフィック量は、特に、ビデオ又はグラフィックス情報を表すビットストリームを生成するグラフィックスアプリケーションのために、メモリインタフェース130、バス135、又は、処理システム100内の他の相互接続において利用可能な帯域幅に大きな負担をかける可能性がある。
例えばスクリーン145上に表示するための画像を表すピクセルの色等のビデオ又はグラフィックス情報を表すビットストリームを圧縮するために、デルタカラー圧縮及びビットパッキングが使用される。計算ユニット111~114(又は、ビットストリームを生成する処理システム100内の他のエンティティ)のいくつかの実施形態は、デルタカラー圧縮及びビットパッキングを実行するためのコンプレッサ(図1には示されていない)を実装する。コンプレッサは、対応する計算ユニット111~114上で実行可能なハードウェア、ファームウェア、ソフトウェア、又は、これらの組み合わせとして実装される。コンプレッサは、計算ユニット111~114又は他のエンティティから情報を受信するスタンドアロンエンティティとして実装されてもよい。コンプレッサのいくつかの実施形態は、フレームを構成するブロック内のピクセルのデルタ値を計算する。例えば、各ブロックは、画像の正方形部分を表す8×8セットのピクセル(例えば、64ピクセル)を含むことができる。各デルタ値は、対応するピクセルの色と、複数のピクセルから選択された基準ピクセルの基準色と、の間の差を表す。コンプレッサは、ブロック内のピクセルを、8つの8×1グループのピクセル又は8つの4×2グループのピクセル等のグループに細分することができる。次に、コンプレッサは、非圧縮ビットストリームよりも少ないビット数を使用して、デルタ値を表す圧縮ビットストリームを生成することができる。例えば、本明細書で説明するように、コンプレッサは、ピクセルのブロックに関連するブロックヘッダと、細分されたピクセルのグループに関連するグループヘッダと、符号化されたデルタ値と、を含む圧縮ビットストリームを生成することができる。グループ毎のデルタ値は、ブロックヘッダ及び対応するグループヘッダに含まれる情報によって示されるように、異なる数のビットを使用して符号化される。デコンプレッサ(図1には示されていない)は、本明細書で説明するように、圧縮ビットストリームを展開して、非圧縮ビットストリーム内のビットを回復することができる。
図2は、いくつかの実施形態による、処理システムの一部200のブロック図である。一部200は、ハードウェア、ファームウェア、ソフトウェア、又は、これらの組み合わせで実装されたコンプレッサ205及びデコンプレッサ210を含む。コンプレッサ205及びデコンプレッサ210のいくつかの実施形態は、図1に示す処理システム100内の異なる位置に実装される。例えば、コンプレッサ205は、計算ユニット111~114のうち1つの計算ユニットの一部として実装(又は、計算ユニット111~114からビットを受信するように構成)されてもよく、デコンプレッサ210は、DRAM110又はスクリーン145の一部として実装(又は、DRAM110若しくはスクリーン145にビットを提供するように構成)されてもよい。コンプレッサ205は、場合によっては、フレーム内のピクセルの色を表す非圧縮ビットストリーム215を受信する。コンプレッサ205は、本明細書で説明するデルタカラー圧縮及びビットパッキング技術のいくつかの実施形態に従って非圧縮ビットストリーム215を圧縮して、デコンプレッサ210に提供される圧縮ビットストリーム220を生成する。デコンプレッサ210は、圧縮ビットストリーム220を展開して、非圧縮ビットストリーム225を回復する。非圧縮ビットストリーム225は、非圧縮ビットストリーム215と同じビットを含み、又は、圧縮が可逆若しくは不可逆であるか、圧縮ビットストリーム220の伝送においてエラーが発生したか否かに応じて、異なるビットを含む。
図3は、いくつかの実施形態による、デルタカラー圧縮及びビットパッキングを実行する方法300のフローチャートである。方法300は、図2に示すコンプレッサ205のいくつかの実施形態において実施される。方法300は、例えば8×8ブロック(64バイトのブロックサイズを使用することによってメモリのアドレス指定能力を保存する)等のピクセルのブロックに適用される。また、メモリのアドレス指定能力は、他のサイズのピクセルのブロックを選択して、これらが例えば64バイト等の特定のバイト数に揃えられるようにすることによって、他のケースにおいて保存されてもよい。方法300のいくつかの実施形態は繰り返して実行されてもよいし、方法300の複数のインスタンスは、スクリーン上に表示する画像を表すピクセルのブロック等の複数のブロックに対してデルタカラー圧縮及びビットパッキングを実行するために(例えば、図1に示す計算ユニット111~114に実装された複数のプロセッサコア上で)同時又は並行して実行されてもよい。方法300に従って圧縮されたビットストリームの展開は、本明細書で説明するように、図2に示すデコンプレッサ210のいくつかの実施形態によって実行される。
ブロック305において、コンプレッサは、ブロック内のピクセルの中から基準ピクセルを選択し、基準ピクセルの色値を決定する。例えば、8ビットの色深度(又は、色域)がピクセルの色を表すために使用される場合、基準ピクセルの色値を8ビット値によって表してもよい。いくつかの変形例では、コンプレッサは、潜在的な基準ピクセルとして2つ以上のピクセルを選択し、次に、基準として使用するために、潜在的な基準ピクセルから1つのピクセルを選択する。潜在的な基準ピクセルを識別する情報は、対応するブロックヘッダに含まれる。次いで、コンプレッサは、基準ピクセルの色値とブロック内の他のピクセルの色値との間の差を表すデルタ値を定義する。ピクセルのデルタ値は、基準ピクセルの色及びピクセルの色の相対値に応じて、正又は負であってもよい。デルタ値を表すのに十分なピクセル数は、ブロック内のピクセルのとり得るデルタ値の範囲によって異なる。例えば、ピクセルが8ビットの色深度で表される場合、ピクセルのデルタ値は、-255~+255の範囲にある。8ビットは、0~255の範囲にあるデルタ値の絶対値を表すのに十分であり、デルタ値の符号を表すために1つの付加ビットが必要である。いくつかの実施形態では、デルタ値の符号は、負の数を偶数に、正の数を奇数に変換することによって表される。例えば、一連のデルタ値{0,1,-1,2,-2,3,-3}は、正のデルタ値及び負のデルタ値を正の偶数及び正の奇数にそれぞれ符号化する連続数{0,1,2,3,4,5,6}に変換されてもよい。他の例では、値0~2n-1-1を、正のデルタ値を表すために使用してもよく、値2n-1~2-1を、負のデルタ値を表すために使用してもよい。正のデルタ値及び負のデルタ値を全て正の数に変換する他の符号化も使用することができる。
ブロック310において、コンプレッサは、ブロックをピクセルのグループに細分する。例えば、いくつかの変形例では、コンプレッサは、ブロックを、8×1構成で配置されたピクセルの8つのグループ、又は、4×2構成で配置されたピクセルの8つのグループに細分する。いくつかの変形例では、ピクセルグループ内のピクセルの値は、本明細書で説明するように、全て正の数に変換される。
ブロック315において、コンプレッサは、各グループ(i)内のデルタ値を表すのに十分なグループ最小ビット数(B_i)を決定する。正のデルタ値及び負のデルタ値が一連の正の数に変換されている場合、グループ最小ビット数は、
Figure 0006990227000001

を用いて決定される。ここで、M_iは、グループ内のピクセルの最大デルタ値である。例えば、第1グループ(i=1)内のデルタ値は、0~6の範囲のデルタ値を有することができ、そのため、第1グループのデルタ値を3ビット(B_i=3)で表すことができる。第2グループ(i=2)内のデルタ値は、0~13の範囲のデルタ値を有することができ、そのため、第2グループのデルタ値を4ビット(B_i=4)で表すことができる。第3グループ(i=3)内のデルタ値は、0~22の範囲のデルタ値を有することができ、そのため、第3グループのデルタ値を5ビット(B_i=5)で表すことができる。この例では、残りのグループのデルタ値も3~5ビットで表される。
ブロック320において、コンプレッサは、ブロックのグループのうち何れか1つのグループ内のデルタ値を表すのに十分なビットの最小数に等しい最小ビット数(M)を決定する。最小ビット数(M)は、
Figure 0006990227000002

に従って、ブロック内の各グループを表すのに十分なグループの最小ビット数の最小値をとることによって決定される。よって、上記の例のように、グループのデルタ値を3~5ビットで表すことができる場合、ブロックの最小ビット数M=3である。
ブロック325において、コンプレッサは、Mと、ブロック内のデルタ値を表すのに十分なビットの最大数と、の間の差を表すのに十分なビット数(B)を決定する。最大ビット数は、ブロック内の各グループを表すのに十分なグループ最小ビット数の最大値をとることによって決定される。したがって、ビット数(B)は、
Figure 0006990227000003

に従って決定されてもよい。よって、上記の例のように、グループのデルタ値を3~5ビットで表すことができる場合、ブロック内のグループのビット数B=2である。
ブロック330において、コンプレッサは、M及びBを表すビットを含むブロックヘッダを生成する。ブロックヘッダのいくつかの実施形態は、Mを表すための第1ビット数と、Bを表すための第2ビット数と、を含む。例えば、ピクセルが8ビットの色深度で表される場合、ブロックヘッダ内の4ビットを使用してMを表し、ブロックヘッダ内の4ビットを使用してBを表してもよい。この場合、グループ内のデルタ値を表すために最大で9ビットが必要になる可能性がある。ブロックヘッダのいくつかの実施形態は、M及びBの値の全てのとり得る組み合わせを表すために、代替的にいくつかのビットを含む。これは、ブロックヘッダに含まれるビットの総数を減らす。例えば、以下の表は、M及びBの値の個別の符号化と、M及びBの同じ値の組み合わされた符号化と、を示している。
Figure 0006990227000004
ブロック335において、コンプレッサは、グループi毎にグループヘッダを生成する。グループヘッダのいくつかの実施形態は、対応するグループのB-Mの値を表すための1つ以上のビットを含む。同じビット数が量B-M及び量Bを表すために使用されるM=0の場合を除いて、量B-Mを表すには、量Bを表すのに十分なビット数と比較してより少ないビットで十分である。その結果、各グループ内のデルタ値を表すのに十分なビット数を表すために量B-Mを使用することは、コンプレッサからデコンプレッサに送信される必要のあるビット数全体を減らすことができる。例えば、ブロックがピクセルに対して8ビットの色深度を使用している場合、量M及びBが個別に符号化されていれば、量M及びBの各々は4ビットで表される。量B-Mは、8×Bビットが8つのグループ全ての量B-Mを表すのに十分であるように、Bビットを使用して表されてもよい。
ブロック340において、コンプレッサは、デルタ値を表すためにBビットを使用してグループi毎のデルタ値を符号化する。ブロック315の例に戻ると、第1グループ(i=1)内のデルタ値は3ビット(B_i=3)を用いて符号化され、第2グループ(i=2)内のデルタ値は4ビット(B_i=4)を用いて符号化され、第3グループ(i=3)内のデルタ値は5ビット(B_i=5)を用いて符号化される。
ブロック345において、コンプレッサは、ブロックヘッダ、グループヘッダ及び符号化されたデルタ値をデコンプレッサに送信する。例えば、計算ユニット111~114に関連するコンプレッサは、図1に示すように、ブロックヘッダ、グループヘッダ及び符号化されたデルタ値を、バス135を介してメモリコントローラ125又はスクリーン145に送信する。
ブロック350において、デコンプレッサは、ブロックヘッダ、グループヘッダ及び符号化されたデルタ値を表すビットを含むビットストリームを受信する。デコンプレッサは、ブロックヘッダ及びグループヘッダ内の情報を使用してデルタ値を表す非圧縮ビットを回復するために、ビットストリームを展開することができる。例えば、デコンプレッサは、ブロックヘッダからBの値を読み出し、この値を用いて全てのグループの量B-Mを表すビット数(すなわち、ブロックが8つのグループに細分されている場合の8×Bビット)を決定する。また、デコンプレッサは、ブロックヘッダからMの値を読み出す。デコンプレッサは、グループ毎に、対応するグループヘッダから量B-Mの値を読み出し、値B-Mを値Mと組み合わせて、対応するグループの量Bの値を決定する。デコンプレッサは、符号化されたデルタ値を正しく復号することができるように、符号化されたデルタ値を表すビットを解析するために量Bの値を使用する。例えば、或るグループの量B=3である場合、デコンプレッサは、符号化されたデルタ値の各々がビットストリームにおいて3ビットで表されると判別する。
図4は、いくつかの実施形態による、異なるグループ構成においてピクセルのグループに細分することができるピクセルのブロック400のブロック図である。ブロック400は、8×8グリッドで配置された64個のピクセル405(明確にするために、1つのみが参照符号で示されている)を含む。しかしながら、ブロック400の他の実施形態では、異なるパターンで配置された異なる数のピクセルを含む。ブロック400は、例えば、図2に示すコンプレッサ205等のコンプレッサによって、ピクセルのグループに細分される。第1グループ構成では、ブロック400は、それぞれ8×1グリッド構成で配置された8つのグループ410(明確にするために、1つのみが参照符号で示されている)に細分される。第2グループ構成では、ブロック400は、それぞれ4×2グリッド構成で配置された8つのグループ415(明確にするために、1つのみが参照符号で示されている)に細分される。ブロック400をより多くの又はより少ないグループに細分するために、他のグループ構成が使用されてもよい。
コンプレッサのいくつかの実施形態は、ブロック400が2つ以上の異なるグループ構成に従って異なるグループに細分される場合に、ピクセル405のデルタ値を符号化するのに必要なビット数を決定する。例えば、2つの異なるグループ構成の図示の場合では、ブロック400は、第1グループ構成によるグループ410と、第2構成によるグループ415と、に細分されてもよい。次に、コンプレッサは、異なるグループ構成に従ってピクセル405のデルタ値を符号化するのに必要なビット数を推定するために、図3に示す方法300の一部を実行する。次いで、コンプレッサは、ビット数の異なる値を比較し、圧縮ビットストリーム内のビット数が最小になるグループ構成を選択する。次に、選択されたグループ構成は、例えば、図3に示す方法300のいくつかの実施形態に従って、ビットストリームを圧縮するために使用される。
図5は、いくつかの実施形態による、ブロック内のピクセルのデルタ値を表す圧縮ビットストリーム500のブロック図である。ビットストリーム500は、例えば図3に示す方法300のいくつかの実施形態を実行することによって、図2に示す圧縮ビットストリーム220を形成するために、コンプレッサ205のいくつかの実施形態によって生成される。図5に示すビットストリーム500は、8ビットの色深度を有するピクセルの色値に基づいて決定されたピクセルのデルタ値に基づいて、生成される。しかしながら、より多い又はより少ないビット数を有する色深度も使用することができる。
ビットストリーム500は、ブロック内の何れかグループのデルタ値を表すのに十分な最小ビット数(M)を表すビットで形成されたブロックヘッダ505を含む。また、ブロックヘッダ505は、Mと、ブロック内のデルタ値を表すのに十分なビットの最大数と、の間の差を表すのに十分なビット数(B)を表すビットも含む。値M及びBの各々は4ビットで表されるので、ブロックヘッダ505は、8ビットのピクセル深度に対して少なくとも8ビットを含む。しかしながら、本明細書で説明するように、値M及びBを個別に表すのではなく、少数のビットをブロックヘッダ505に含めて、値M及びBの全てのとり得る組み合わせを表すことができる。さらに、後述するように、圧縮アルゴリズムのいくつかの実施形態は、ブロックヘッダ505内のビット数を変更する機能を実施する。
また、ビットストリーム500は、ブロックのデルタ値の各グループに関連するグループヘッダ510,515を含む。例えば、グループヘッダ510は、グループ1のB-Mの値を表すビットを含み、グループヘッダ515は、グループ2のB-Mの値を表すビットを含む。本明細書で説明するように、Bビットは、グループのB-Mの値を表すのに十分であるので、グループヘッダ510,515は、Bビットを含む。しかしながら、後述するように、圧縮アルゴリズムのいくつかの実施形態は、グループヘッダ510,515内のビット数を変更する機能を実施する。
さらに、ビットストリーム500は、グループヘッダ510,515に対応するグループの符号化されたデルタ値を含む。例えば、ビットストリーム500は、グループヘッダ510に関連するグループ1の符号化されたデルタ値520を含む。符号化されたデルタ値520は、符号化されたデルタ値毎にBビットで表されてもよい。例えば、グループ1の8つの符号化されたデルタ値520の各々がB=3ビットで表される場合、符号化されたデルタ値520は24ビットで表される。しかしながら、後述するように、圧縮アルゴリズムのいくつかの実施形態は、符号化されたデルタ値520を表すのに十分なビット数を変更する機能を実施する。
図6は、いくつかの実施形態による、全て正のデルタ値又は全て負のデルタ値を表すのに使用されるビット数を減らす方法600のフローチャートである。方法600の異なる変形例では、デルタ値が全て正の値又は全て負の値であるか否かを判別する目的で、ゼロは正又は負とみなされる。方法600は、図2に示すコンプレッサ205のいくつかの実施形態によって実施される。対応する展開処理は、方法600に従って生成された圧縮ビットストリームを復号するために、図2に示すデコンプレッサ210のいくつかの実施形態において実施される。
ブロック605において、コンプレッサは、グループ内のデルタ値が全て正の値、全て負の値、又は、正の値と負の値との混合を有するかどうかを判別する。次に、コンプレッサは、全て正の値、全て負の値、又は、正の値と負の値との混合を示すためのビットを、対応するグループヘッダに追加することができる。グループ内のデルタ値の3つのとり得る状態を表すには、2ビットで十分である。
判別ブロック610において、コンプレッサは、グループ内のデルタ値が全て正の値を有するか否かを判別する。有する場合、コンプレッサは、ブロック615において、グループ内のデルタ値から符号ビットをドロップする。ブロック620において、コンプレッサは、グループ内のデルタ値が全て正の値を有することを示すために、対応するグループヘッダ内の第1符号ビットを1に設定する。図示した実施形態では、対応するグループヘッダ内の第2符号ビットの値は0又は1の何れかに設定されてもよいし、第2符号ビットは、ビット数をさらに減らすために、対応するグループヘッダから省かれてもよい。グループ内のデルタ値が全て正の値を有しない場合、方法は、判別ブロック625に移行する。
判別ブロック625において、コンプレッサは、グループ内のデルタ値が全て負の値を有するか否かを判別する。有する場合、コンプレッサは、ブロック630において、グループ内のデルタ値から符号ビットをドロップする。ブロック635において、コンプレッサは、グループ内のデルタ値が全て負の値を有することを示すために、対応するグループヘッダ内の第1符号ビット及び第2符号ビットを0に設定する。グループ内のデルタ値が全て負の値を有しない場合、方法は、判別ブロック640に移行する。
ブロック640において、コンプレッサは、グループ内のデルタ値が正の値と負の値との混合を有することを示すために、対応するグループヘッダ内の第1符号ビットを0に設定し、対応するグループヘッダ内の第2符号ビットを1に設定する。
図6に示す方法600は、対応するグループ内のデルタ値が全て正、全て負、又は、混合であるか否かを示すために、各グループヘッダ内の1つ又は2つの符号ビットを使用する。しかしながら、いくつかの実施形態では、コンプレッサは、ブロック内のグループの状態の全てのとり得る組み合わせを表すために、より少ない数のビットを使用する。例えば、8つのグループ内のデルタ値の3つのとり得る状態は、3^8=6561の異なる組み合わせに対応し、これは、2^13=8192であって、2^12=4096であることから、13ビットで表すことができる。グループ及びブロックの状態の組み合わせを表すビットは、ブロックヘッダに含まれてもよい。
図7は、いくつかの実施形態による、2の累乗に等しい最大デルタ値を有するグループ内のデルタ値を符号化する方法700のフローチャートである。方法700は、図2に示すコンプレッサ205のいくつかの実施形態において実施される。
ブロック705において、コンプレッサは、デルタ値を表す非圧縮ビットを読み出す。ブロック710において、コンプレッサは、本明細書で説明するように、デルタ値を全て正の値にマッピングする。コンプレッサは、符号最適化が使用されていることを示すために1つの付加ビットを追加し、デルタ値が全て負の値、又は、正の値と負の値との混合である場合には、デルタ値の符号を示すために1つ以上の付加ビットを追加する。例えば、コンプレッサは、図6に示す方法600のいくつかの実施形態に従って、付加ビットの値を決定することができる。
判別ブロック715において、コンプレッサは、グループ内のピクセルのデルタ値の最大絶対値が2の累乗(例えば、k>0の場合、2)に等しいか否かを判別する。等しい場合、ブロック710においてグループが全て正の値にマッピングされているので、グループ内のデルタ値を表すために、k+1ビットが必要とされる。グループ内のピクセルのデルタ値の最大絶対値が2の累乗に等しくない場合、コンプレッサは、ブロック720において、例えば図3に示す方法300のいくつかの実施形態に従って、非圧縮ビットを圧縮する。グループ内のピクセルのデルタ値の最大絶対値が2の累乗に等しい場合、コンプレッサは、ブロック725において、(k+1ビットを使用する代わりに)kビットを使用して各デルタ値を符号化する。
kビットを使用してデルタ値を符号化することによって、2又は2-1に等しいデルタ値を、同じkビット数で表すことになる。縮退を解決するために、判別ブロック730において、コンプレッサは、デルタ値が2又は2-1に等しいか否かを判別する。等しい場合、コンプレッサは、(ブロック735において)トレーリングビットを追加し、対応するデルタ値が2-1又は2に等しいか否かを示すようにトレーリングビットの値を設定する。デルタ値が2又は2-1に等しくない場合、コンプレッサは、(ブロック740において)トレーリングビットを追加することをバイパスする。
図7に示す例示的な圧縮アルゴリズムは、デルタ値の2つの縮退した符号化値を区別するために、トレーリングビットを使用する。しかしながら、いくつかの変形例では、より少ない数のビットを使用して基本的な符号化を実行することができる(例えば、k>0の場合にデルタ値の最大絶対値2までの範囲のデルタ値を符号化するために、kビット未満のビットを使用することができる)。次に、結果として生じる縮退を解決するために、追加のトレーリングビットが使用される。例えば、ブロック内のデルタ値が0、1、2、3、4、5である場合、デルタ値の最大絶対値は5(2^2+1又はk=2)である。したがって、デルタ値の最大絶対値が2^2=4よりも大きいので、各デルタ値を表すために3ビットが必要である。よって、全てのデルタ値を表すには、合計6×3=18ビットが必要である。しかしながら、ブロック715において評価されたデルタ値の最大絶対値が2^n+1に等しい場合、2^n-1、2^n、2^n+1に等しいデルタ値は全て、2^n-1の縮退値として符号化される。追加のトレーリングビットは、2^n-1、2^n、2^n+1の縮退値を区別するために、デルタ値に追加される。例えば、「1」のトレーリングビットが2^n-1に追加され、「01」の2つのトレーリングビットが2^nに追加され、「00」の2つのトレーリングビットが2^n+1に追加される。次に、入力データストリーム0、1、2、3、4、5は、一連のバイナリ値00、01、10、111、1101、1111に圧縮される。圧縮バイナリストリーム内のビットの総数は、2+2+2+3+4+4=17であり、これは、この例において1ビットの節約となる。
コンプレッサのいくつかの実施形態は、2の累乗の最適化が対応するブロックに対して使用されているかどうかを示すために、ビットをブロックヘッダに追加する。例えば、このビットは、ビット数が減らされていないとコンプレッサが判別した場合に、2の累乗の最適化が使用されていないことを示すために設定(又は、リセット)されてもよい。追加のビットを追加するとアルゴリズムの圧縮レートが低下するが、いくつかの変形例では、2の累乗の最適化が使用されているかどうかを示すために追加ビットが存在する場合、デコンプレッサは、ビットストリームを展開するのに必要な処理サイクルをより少なくすることができ、これにより、デコンプレッサに必要なクロックサイクル数を減らすことができる。
図8は、いくつかの実施形態による、2の累乗に等しい最大デルタ値を有するグループ内のデルタ値を復号する方法800のフローチャートである。方法800は、図2に示すデコンプレッサ210のいくつかの実施形態において実施される。デコンプレッサは、方法800を使用して、図7の方法700に示す圧縮アルゴリズム等の対応する圧縮アルゴリズムに従って圧縮されたビットストリームを展開する。
ブロック805において、デコンプレッサは、ブロックのグループ内のピクセルのデルタ値を表すビットを読み出す。デコンプレッサは、ブロックヘッダ及び対応するグループヘッダに含まれる情報を使用して、量Bの値を事前に決定している。グループ内のデルタ値は、Bビットを使用して符号化される。
判別ブロック810において、デコンプレッサは、デルタ値を表すビットによって示されるビット値が最大の符号化ビット値2^(B)-1に等しいか否かを判別する。等しくない場合、デコンプレッサは、ブロック715において、ビット値に等しいデルタ値を設定する。デコンプレッサが、デルタ値を表すビットによって示されるビット値が2^(B)-1に等しいと判別した場合、方法800は、判別ブロック820に移行する。
判別ブロック820において、デコンプレッサは、トレーリングビットを読み出し、トレーリングビットが0又は1に等しいか否かを判別する。トレーリングビットが0に等しい場合、デコンプレッサは、ブロック825において、デルタ値が2^(B)-1に等しいと判別する。トレーリングビットが1に等しい場合、デコンプレッサは、ブロック830において、デルタ値が2^(B)に等しいと判別する。トレーリングビットとデルタ値との関連付けは任意であり、いくつかの実施形態では、逆のルール(opposite convention)が使用されてもよい。
図9は、いくつかの実施形態による、圧縮アルゴリズムの機能をバイパスするか否かを決定する方法900のフローチャートである。方法900は、図2に示すコンプレッサ205のいくつかの実施形態において実施される。対応する展開処理は、方法900に従って生成された圧縮ビットストリームを復号するために、図2に示すデコンプレッサ210のいくつかの実施形態において実施される。
ブロック905において、コンプレッサは、コンプレッサによって実施される圧縮アルゴリズムの1つ以上の最適化に従ってブロック内のピクセルのデルタ値を符号化することによって、節約されるビット数を決定する。例えば、コンプレッサは、図3に示す方法300のいくつかの実施形態に従って、デルタ値を符号化するのに十分な第1ビット数を決定することができる。また、コンプレッサは、図6に示す方法600、図7に示す方法700又は図8に示す方法800のいくつかの実施形態に従って実施される機能等の追加の最適化機能が実施される場合、デルタ値を符号化するのに十分な第2ビット数を決定することができる。節約されるビット数は、第1ビット数と第2ビット数との間の差に等しい。
ブロック910において、コンプレッサは、1つ以上の最適化に従う、符号化デルタ値の圧縮をサポートするために、ブロックヘッダ又はグループヘッダに追加されるビット数を決定する。例えば、コンプレッサは、図3に示す方法300のいくつかの実施形態に従ってデルタ値を符号化するのをサポートするために、ブロックヘッダ及びグループヘッダ内の値を表すのに必要とされる第1ビット数を決定することができる。また、コンプレッサは、図6に示す方法600、図7に示す方法700又は図8に示す方法800のいくつかの実施形態に従って実施される機能等の追加の最適化機能が実施される場合、デルタ値を符号化するのをサポートするために、ブロックヘッダ及びグループヘッダ内の値を表すのに必要とされる第2ビット数を決定することができる。追加されるビット数は、第1ビット数と第2ビット数との間の差に等しい。
判別ブロック915において、コンプレッサは、節約されるビット数が追加されるビット数より大きいか否かを判別する。大きい場合、コンプレッサは、(ブロック920において)符号化されたデルタ値を圧縮するために追加の機能を使用していることを示すために、ブロックヘッダ内のバイパスビットをFALSE(又は、の他の値)に設定する。節約されるビット数が追加されるビット数未満である場合、方法900は、判別ブロック925に移行する。
判別ブロック925において、コンプレッサは、ブロック内のピクセルのデルタ値の全てがゼロに等しいか否かを判別する。等しくない場合、コンプレッサは、(ブロック930において)符号化されたデルタ値を圧縮するための追加の機能の使用をバイパスしていることを示すために、ブロックヘッダ内のバイパスビットをTRUE(又は、他の値)に設定する。ブロック内のピクセルの全てのデルタ値がゼロに等しい場合、ブロック935においてブロックヘッダからバイパスビットをドロップして、ビット数をさらに減らすことができる。
いくつかの実施形態では、上述したデバイス及び技術は、図1~図8を参照して上述した処理システム等の1つ以上の集積回路(IC)デバイス(集積回路パッケージ又はマイクロチップと呼ばれる)を含むシステムにおいて実施される。これらのICデバイスの設計及び製造において、電子設計自動化(EDA)及びコンピュータ支援設計(CAD)ソフトウェアツールが使用されてもよい。これらの設計ツールは、通常、1つ以上のソフトウェアプログラムとして表される。1つ以上のソフトウェアプログラムは、回路を製造するための製造システムを設計又は適合するための処理の少なくとも一部を実行するように1つ以上のICデバイスの回路を表すコードで動作するようにコンピュータシステムを操作する、コンピュータシステムによって実行可能なコードを含む。このコードは、命令、データ、又は、命令及びデータの組み合わせを含むことができる。設計ツール又は製造ツールを表すソフトウェア命令は、通常、コンピューティングシステムにアクセス可能なコンピュータ可読記憶媒体に記憶される。同様に、ICデバイスの設計又は製造の1つ以上のフェーズを表すコードは、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体に記憶されてもよく、同じコンピュータ可読記憶媒体又は異なるコンピュータ可読記憶媒体からアクセスされてもよい。
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体、又は、非一時的な記憶媒体の組み合わせを含むことができる。かかる記憶媒体には、限定されないが、光媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、キャッシュ)、不揮発性メモリ(例えば、読み出し専用メモリ(ROM)、フラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステム(例えば、システムRAM又はROM)に内蔵されてもよいし、コンピュータシステム(例えば、磁気ハードドライブ)に固定的に取り付けられてもよいし、コンピュータシステム(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)に着脱可能に取り付けられてもよいし、有線又は無線のネットワークを介してコンピュータシステム(例えば、ネットワークアクセス可能なストレージ(NAS))に接続されてもよい。
いくつかの実施形態では、上述した技術の特定の態様は、ソフトウェアを実行する処理システムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、有形に実装された1つ以上の実行可能命令のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行された場合に、1つ以上のプロセッサを操作して、上述した技術の1つ以上の態様を実行する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスクストレージデバイス、フラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)、又は、他の不揮発性メモリデバイス等のソリッドステート記憶デバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある機能は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な機能と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。

Claims (15)

  1. ブロック内の複数のピクセルのデルタ値を決定することであって、各デルタ値は、前記複数のピクセルのうち1つのピクセルの色と前記複数のピクセルから選択された基準ピクセルの基準色との間の差を表す、ことと、
    前記複数のピクセルを複数のグループに細分することと、
    前記デルタ値を表す圧縮ビットストリームを送信することであって、前記圧縮ビットストリームは、前記デルタ値を表すのに十分なビット数の範囲を示すブロックヘッダを表すビットと、前記複数のグループのうち対応するグループの前記デルタ値を表すのに十分なグループ最小ビット数をそれぞれ示す複数のグループヘッダと、前記デルタ値を含む前記グループの前記グループ最小ビット数を使用して符号化された前記デルタ値と、を有する、ことと、を含む、
    方法。
  2. 前記ブロック内の複数のピクセルのデルタ値を決定することは、前記デルタ値によって表される差及び前記デルタ値の符号を表すために所定数のビットを使用して各デルタ値を決定することを含み、前記圧縮ビットストリーム内のビットの総数は、前記複数のピクセルの前記デルタ値を表すために使用される前記所定数のビットの前記複数のピクセルに亘る合計未満である、
    請求項1の方法。
  3. 前記ブロックヘッダは、前記グループのうち何れかのグループの前記デルタ値を表すための最小ビット数(M)と、Mと前記デルタ値を表すのに十分なビット数の最大値を表す第2ビット数との間の差を表すのに十分な第1ビット数(B)と、を示すビットを含み、前記複数のグループヘッダの各々は、Mと前記複数のグループのうち対応するグループの前記デルタ値を表すグループ最小ビット数との間の差を示すビットを含む、
    請求項1の方法。
  4. 前記ブロックヘッダを表すビットは、M及びBの全てのとり得る組み合わせを表すのに十分な第3ビット数を含み、
    前記第3ビット数によって表される符号化値を形成するために、M及びBの値の組み合わせを符号化することであって、前記ブロックヘッダは前記符号化値を含む、ことをさらに含む、
    請求項3の方法。
  5. 前記ブロック内の複数のピクセルを複数のグループに細分することは、
    異なるグループ構成に従って、前記複数のピクセルを前記複数のグループに細分することと、
    前記異なるグループ構成を使用して生成された前記圧縮ビットストリーム内のビットの総数を比較することと、
    前記比較に基づいて、前記複数のグループを細分するための前記異なるグループ構成のうち1つのグループ構成を選択することと、を含む、
    請求項1の方法。
  6. 各グループの前記デルタ値が全て正の値、全て負の値、又は、正の値と負の値との混合であるか否かを判別することと、
    グループの前記デルタ値が全て正の値又は全て負の値であると判別したことに応じて、当該グループの前記グループヘッダから前記デルタ値の符号を示すビットを除くことと、
    グループの前記デルタ値が正の値と負の値との混合であると判別したことに応じて、当該グループの前記デルタ値が正の値と負の値との混合であることを示すビットを、当該グループの前記グループヘッダに含めることと、をさらに含む、
    請求項1の方法。
  7. 前記対応するグループの前記デルタ値が全て正の値、全て負の値、又は、正の値と負の値との混合であるか否かを示すビットを前記グループヘッダが含むか否かを示すバイパスビットを、前記ブロックヘッダに含めることと、
    前記ブロック内の前記複数のピクセルに関連する全ての前記デルタ値がゼロに等しいと判別したことに応じて、前記バイパスビットを前記ブロックヘッダに含めるのをバイパスすることと、をさらに含む、
    請求項6の方法。
  8. グループ内のピクセルの前記デルタ値の最大絶対値が2の累乗に等しいと判別したことに応じて、前記最大絶対値又は前記最大絶対値未満を有する前記デルタ値が最大の符号化ビット値によって表されるように、前記グループ最小ビット数未満のビットを使用して前記グループ内のデルタ値を符号化することと、
    前記最大の符号化ビット値が前記最大絶対値又は前記最大絶対値未満を示すか否かを表すために、トレーリングビットを前記最大の符号化ビット値に追加することと、をさらに含む、
    請求項6の方法。
  9. ブロック内の複数のピクセルのデルタ値を表す圧縮ビットストリームを受信することであって、前記圧縮ビットストリームは、前記デルタ値を表すのに十分なビット数の範囲を示すブロックヘッダを表すビットと、複数のグループのうち対応するグループの前記デルタ値を表すのに十分なグループ最小ビット数をそれぞれ示す複数のグループヘッダと、前記デルタ値を含む前記グループの前記グループ最小ビット数を使用して符号化された前記デルタ値と、を有する、ことと、
    前記複数のピクセルのうち1つのピクセルの色と前記複数のピクセルから選択された基準ピクセルの基準色との間の差を表す前記デルタ値を回復するために、前記ブロックヘッダと、前記複数のグループヘッダと、前記符号化された前記デルタ値と、に基づいて、前記圧縮ビットストリームを展開することと、を含む、
    方法。
  10. 前記圧縮ビットストリームを展開することは、前記デルタ値によって表される差及び前記デルタ値の符号を示す所定数のビットによって表される前記デルタ値を回復することを含み、前記圧縮ビットストリーム内のビットの総数は、前記複数のピクセルの前記デルタ値を表すために使用される前記所定数のビットの前記複数のピクセルに亘る合計未満である、
    請求項9の方法。
  11. コンプレッサを備えるデバイスであって、
    前記コンプレッサは、
    ブロック内の複数のピクセルのデルタ値を決定することであって、各デルタ値は、前記複数のピクセルのうち1つのピクセルの色と前記複数のピクセルから選択された基準ピクセルの基準色との間の差を表す、ことと、
    前記ブロック内の前記複数のピクセルを複数のグループに細分することと、
    前記デルタ値を表す圧縮ビットストリームを送信することであって、前記圧縮ビットストリームは、前記デルタ値を表すのに十分なビット数の範囲を示すブロックヘッダを表すビットと、前記複数のグループのうち対応するグループの前記デルタ値を表すのに十分なグループ最小ビット数をそれぞれ示す複数のグループヘッダと、前記デルタ値を含む前記グループの前記グループ最小ビット数を使用して符号化された前記デルタ値と、を有する、ことと、
    を行うように構成されている、
    デバイス。
  12. 前記ブロックヘッダは、前記グループのうち何れかのグループの前記デルタ値を表すのに十分な最小ビット数(M)と、Mと前記デルタ値を表すのに十分なビット数の最大値を表すのに十分な第2ビット数との間の差を表すのに十分な第1ビット数(B)と、を示すビットを含み、前記複数のグループヘッダの各々は、Mと前記複数のグループのうち対応するグループの前記デルタ値を表すのに十分なグループ最小ビット数との間の差を示すビットを含む、
    請求項11のデバイス。
  13. 前記ブロックヘッダを表すビットは、M及びBの全てのとり得る組み合わせを表すのに十分な第3ビット数を含み、
    前記コンプレッサは、
    前記第3ビット数によって表される符号化値を形成するために、M及びBの値の組み合わせを符号化することであって、前記ブロックヘッダは前記符号化値を含む、ことを行うように構成されている、
    請求項12のデバイス。
  14. 前記コンプレッサは、
    各グループの前記デルタ値が全て正の値、全て負の値、又は、正の値と負の値との混合であるか否かを判別することと、
    全て正の値又は全て負の値であるグループの前記デルタ値の符号を示すビットをドロップすることと、
    前記対応するグループの前記デルタ値が全て正の値、全て負の値、又は、正の値と負の値との混合であるか否かを示すためのビットを、前記グループヘッダに含めることと、
    を行うように構成されている、
    請求項11のデバイス。
  15. デコンプレッサを備えるデバイスであって、
    前記デコンプレッサは、
    ブロック内の複数のピクセルのデルタ値を表す圧縮ビットストリームを受信することであって、前記圧縮ビットストリームは、前記デルタ値を表すのに十分なビット数の範囲を示すブロックヘッダを表すビットと、複数のグループのうち対応するグループの前記デルタ値を表すのに十分なグループ最小ビット数をそれぞれ示す複数のグループヘッダと、前記デルタ値を含む前記グループの前記グループ最小ビット数を使用して符号化された前記デルタ値と、を有する、ことと、
    前記複数のピクセルのうちの1つのピクセルの色と前記複数のピクセルから選択された基準ピクセルの基準色との間の差を表す前記デルタ値を回復するために、前記ブロックヘッダと、前記複数のグループヘッダと、前記符号化された前記デルタ値と、に基づいて、前記圧縮ビットストリームを展開することと、
    を行うように構成されている、
    デバイス。
JP2019501587A 2016-07-13 2017-07-12 デルタカラー圧縮用のビットパッキング Active JP6990227B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/209,194 2016-07-13
US15/209,194 US10511858B2 (en) 2016-07-13 2016-07-13 Bit packing for delta color compression
PCT/IB2017/054213 WO2018011734A1 (en) 2016-07-13 2017-07-12 Bit packing for delta color compression

Publications (2)

Publication Number Publication Date
JP2019525583A JP2019525583A (ja) 2019-09-05
JP6990227B2 true JP6990227B2 (ja) 2022-01-12

Family

ID=60941550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019501587A Active JP6990227B2 (ja) 2016-07-13 2017-07-12 デルタカラー圧縮用のビットパッキング

Country Status (6)

Country Link
US (1) US10511858B2 (ja)
EP (1) EP3485645A4 (ja)
JP (1) JP6990227B2 (ja)
KR (1) KR102451595B1 (ja)
CN (1) CN109479146B (ja)
WO (1) WO2018011734A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10304155B2 (en) * 2017-02-24 2019-05-28 Advanced Micro Devices, Inc. Delta color compression application to video
US11153578B2 (en) 2018-04-27 2021-10-19 Ati Technologies Ulc Gradient texturing compression codec
JP2021193762A (ja) * 2018-09-28 2021-12-23 ソニーグループ株式会社 受信装置、および受信方法、並びに、画像処理システム
US11568248B2 (en) * 2020-03-31 2023-01-31 Ati Technologies Ulc Feature reordering based on similarity for improved memory compression transfers during machine learning jobs
US11405622B2 (en) * 2020-04-22 2022-08-02 Apple Inc. Lossless compression techniques
KR20230037212A (ko) * 2021-09-09 2023-03-16 주식회사 엘엑스세미콘 디-무라를 위한 보상 정보 제공 장치 및 방법과 보상 정보를 이용하는 디스플레이 구동 장치
US20230334022A1 (en) * 2022-04-14 2023-10-19 The Hospital For Sick Children System and method for processing and storage of a time-series data stream
US20230421173A1 (en) * 2022-06-27 2023-12-28 Ati Technologies Ulc Huffman Packing for Delta Compression
CN116469336B (zh) * 2023-06-20 2023-08-18 联士光电(深圳)有限公司 一种彩色微显示芯片的数字驱动方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067351A (ja) 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム
JP2014027658A (ja) 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
JP2014143655A (ja) 2013-01-25 2014-08-07 Fuji Xerox Co Ltd 画像符号化装置及び画像復号化装置並びにプログラム
WO2016022835A1 (en) 2014-08-08 2016-02-11 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721720A (en) 1994-12-28 1998-02-24 Kabushiki Kaisha Toshiba Optical recording medium recording pixel data as a compressed unit data block
JP3686155B2 (ja) * 1996-03-21 2005-08-24 株式会社ルネサステクノロジ 画像復号装置
US5793427A (en) * 1996-10-11 1998-08-11 Divicom Inc. Processing system with delta-based video data encoding
US6205250B1 (en) * 1998-08-27 2001-03-20 Thomson Licensing S.A. System and method for minimizing clock cycles lost to overhead data in a video decoder
TWI245557B (en) * 2003-09-11 2005-12-11 Matsushita Electric Ind Co Ltd Image compensation apparatus and method for the same
US7920749B1 (en) * 2006-12-20 2011-04-05 Nvidia Corporation Modified high dynamic range color decompression
US8331663B2 (en) * 2007-06-28 2012-12-11 Qualcomm Incorporated Efficient image compression scheme to minimize storage and bus bandwidth requirements
US9326004B2 (en) * 2008-06-03 2016-04-26 Broadcom Corporation Reduced memory mode video decode
JP2010092199A (ja) 2008-10-07 2010-04-22 Sony Corp 情報処理装置および方法、プログラム、並びに記録媒体
EP2284800B1 (en) * 2009-07-23 2018-09-05 Samsung Electronics Co., Ltd. Method and system for creating an image
WO2012077332A1 (ja) * 2010-12-06 2012-06-14 パナソニック株式会社 画像符号化方法、画像復号方法、画像符号化装置及び画像復号装置
US8811759B2 (en) * 2011-01-13 2014-08-19 Sony Corporation System and method for effectively performing an intra prediction procedure
JP2012199652A (ja) 2011-03-18 2012-10-18 Fujitsu Ltd 画像処理装置、方法及びプログラム
TWI671736B (zh) * 2011-10-21 2019-09-11 南韓商三星電子股份有限公司 對信號的包絡進行寫碼的設備及對其進行解碼的設備
US9330475B2 (en) * 2012-05-01 2016-05-03 Qualcomm Incorporated Color buffer and depth buffer compression
CN103002282B (zh) * 2012-11-13 2015-10-28 北京大学 一种颜色数目自适应决策方法和图像压缩方法
US9451257B2 (en) * 2013-03-22 2016-09-20 Stmicroelectronics S.R.L. Method and apparatus for image encoding and/or decoding and related computer program products
US9613394B2 (en) * 2013-08-28 2017-04-04 Intel Corporation Lossy color compression using adaptive quantization
US9106258B2 (en) 2013-11-22 2015-08-11 International Business Machines Corporation Early data tag to allow data CRC bypass via a speculative memory data return protocol
GB2523348B (en) * 2014-02-20 2016-03-30 Gurulogic Microsystems Oy Encoder, decoder and method
US9357232B2 (en) * 2014-10-28 2016-05-31 Sony Corporation Image processing system with binary decomposition and method of operation thereof
JP2017017629A (ja) * 2015-07-03 2017-01-19 富士通株式会社 動画像符号化装置、動画像符号化方法、及びプログラム
US10269326B2 (en) * 2015-12-19 2019-04-23 Intel Corporation Method and apparatus for color buffer compression
CN105959796B (zh) * 2016-04-29 2019-06-04 海尔优家智能科技(北京)有限公司 一种基于图像增量信息的通信方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008067351A (ja) 2006-08-07 2008-03-21 Fuji Xerox Co Ltd 符号化装置、復号化装置、符号化方法及びプログラム
JP2014027658A (ja) 2012-07-30 2014-02-06 Intel Corp 圧縮エンコーディング及びデコーディング方法並びに装置
JP2014143655A (ja) 2013-01-25 2014-08-07 Fuji Xerox Co Ltd 画像符号化装置及び画像復号化装置並びにプログラム
WO2016022835A1 (en) 2014-08-08 2016-02-11 Qualcomm Incorporated Method for video coding with spatial prediction mode for multi-mode video coding

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Li Guo, Dajiang Zhou, and Satoshi Goto,A New Reference Frame Recompression Algorithm and Its VLSI Architecture for UHDTV Video Codec,IEEE TRANSACTIONS ON MULTIMEDIA,IEEE,2014年12月,pp.2323-2332

Also Published As

Publication number Publication date
EP3485645A4 (en) 2020-04-15
CN109479146A (zh) 2019-03-15
KR102451595B1 (ko) 2022-10-06
WO2018011734A1 (en) 2018-01-18
CN109479146B (zh) 2020-11-17
US10511858B2 (en) 2019-12-17
US20180020232A1 (en) 2018-01-18
JP2019525583A (ja) 2019-09-05
EP3485645A1 (en) 2019-05-22
KR20190025928A (ko) 2019-03-12

Similar Documents

Publication Publication Date Title
JP6990227B2 (ja) デルタカラー圧縮用のビットパッキング
US10796458B2 (en) Compression of point clouds via a novel hybrid coder
JP7431742B2 (ja) 三次元物体を表すポイントクラウドを符号化/復号する方法及び装置
CN102708574A (zh) 图像数据的压缩
KR20130018413A (ko) 랜덤 액세스 능력을 갖는 이미지 압축 방법
US10009606B2 (en) Low power context adaptive binary arithmetic decoder engine
US20220014767A1 (en) Bit plane encoding of data arrays
JP7389751B2 (ja) 三次元物体を表すポイントクラウドを符号化/復号する方法及び装置
JP2022526232A (ja) 点群圧縮のための方法並びにその、装置およびコンピュータプログラム
KR20190120166A (ko) 델타 색상 압축의 비디오 적용
US20240119641A1 (en) In-tree geometry quantization of point clouds
CN109937573B (zh) 用于光场压缩和解压缩的系统和方法
KR102231975B1 (ko) 순방향 변환 행렬을 사용하여 비디오 인코더에 의해 순방향 변환을 수행하는 기술
KR102238091B1 (ko) 3d 모델 압축 및 압축해제 시스템 및 방법
US11153578B2 (en) Gradient texturing compression codec
US10250892B2 (en) Techniques for nonlinear chrominance upsampling
WO2019131880A1 (ja) 符号化方法、復号方法、情報処理方法、符号化装置、復号装置、及び、情報処理システム
CN104093027A (zh) 用于彩色图像的联合标量嵌入式图形编码
CN105791819B (zh) 一种图像的帧压缩方法、图像的解压缩方法及装置
WO2023172703A1 (en) Geometry point cloud coding
WO2023028177A1 (en) Attribute coding in geometry point cloud coding
US10375398B2 (en) Lightfield compression for per-pixel, on-demand access by a graphics processing unit
KR20220048459A (ko) 데이터 어레이들의 디코딩
US20210075440A1 (en) System, Apparatus and Method for Data Compaction and Decompaction
WO2023107868A1 (en) Adaptive attribute coding for geometry point cloud coding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190411

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200706

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210727

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211022

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211203

R150 Certificate of patent or registration of utility model

Ref document number: 6990227

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150