JP2012515498A - 画像処理 - Google Patents

画像処理 Download PDF

Info

Publication number
JP2012515498A
JP2012515498A JP2011546228A JP2011546228A JP2012515498A JP 2012515498 A JP2012515498 A JP 2012515498A JP 2011546228 A JP2011546228 A JP 2011546228A JP 2011546228 A JP2011546228 A JP 2011546228A JP 2012515498 A JP2012515498 A JP 2012515498A
Authority
JP
Japan
Prior art keywords
block
compressed
pixel
blocks
image
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.)
Granted
Application number
JP2011546228A
Other languages
English (en)
Other versions
JP5203513B2 (ja
Inventor
ヤコブ ストレム,
ペル ウェンネルステン,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2012515498A publication Critical patent/JP2012515498A/ja
Application granted granted Critical
Publication of JP5203513B2 publication Critical patent/JP5203513B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

画像(1)は、複数のスーパーブロック(20、22)に分解される。ここで、各スーパーブロックは、各々が複数の画素(40)を有する複数の画素ブロック(30A〜30D、32A〜32D)で構成される。スーパーブロック(20)のプロパティ値は、目標ビット長を有する圧縮ブロックを取得するために固定レート圧縮される。圧縮ブロックがスーパーブロック(20)により含まれた複数の画素ブロック(30A〜30D)に割り当てられたメモリロケーション(310、320)に格納されることにより、メモリ(300)において圧縮ブロックの複数のコピーを取得する。複数のコピーの集合が、スーパーブロック(20)の圧縮表現を構成する。復号中にランダムアクセスを使用してメモリロケーション(310)における圧縮ブロックにアクセスする際、更なるメモリアクセスを全く必要とせずに隣接画素ブロック(30B〜30D)に対するプロパティ値が無償で取得される。

Description

本発明は、一般に画像処理に関し、特に画像圧縮及び画像復号化に関する。
グラフィックス処理ユニット(GPU)の性能を向上させようとする場合の1つの解決方法は、メモリ帯域幅消費量を削減するための種々の技術を適用することである。処理能力の性能成長率が帯域幅の性能成長率及びランダムアクセスメモリ(RAM)の遅延時間よりはるかに大きくなるのに伴い、帯域幅削減は更に益々重要になってきている。
テクスチャ圧縮は、帯域幅に対する要求を軽減する1つの一般的な方法である。テクスチャを圧縮した形態でメモリに格納し且つバスを介して圧縮データのブロックを転送することにより、テクスチャ帯域幅は大幅に削減される。
今日、最も使用されているテクスチャ圧縮システムは、Windows(登録商標)ベースのシステム及びXboxに対するDXTC[1]、並びに移動ハンドセットに対するETC[2]である。これらの双方のシステムは、画像、すなわち、示されたテクスチャを4×4画素の画素ブロックに分割し、次いで、画素の赤、緑、青(RGB)データを(8+8+8)×16=384ビットから64ビットに圧縮するものである。従って、各画素ブロックは同一の数のビットを与えられる。これは、伸張するのに使用されたラスタライザが、テクスチャのあらゆる部分にアクセスする必要がある可能性があり、且つ所望の画素ブロックのメモリアドレスを容易に算出できる必要があるため重要である。換言すると、固定レートコーデック、すなわち全ての画素ブロックが同一の量の記憶空間を占めるコーデックは、非常に望ましく、今日のテクスチャ圧縮アルゴリズムの標準となっている。
しかし、固定圧縮レートは非常にコストがかかる。殆どのテクスチャにおいて、それらのいくつかの部分は、通常、テクスチャの他の部分より多くの情報を含む。固定レートが全ての画素ブロックに対して使用されなければならない場合、非常に多くのビットが簡単な領域において費やされるようになるため不必要に高品質になるか、あるいは非常に少ないビットが符号化しにくい領域において費やされるようになるため、これらの部分に対しては低品質となる。
固定レートコーデックのこの問題に対する解決方法は、いわゆる可変長符号化(VLC)を使用することである。VLCにおいて、符号化しやすい画素ブロックにはビットを殆ど与えず、符号化しにくい画素ブロックにはより多くのビットを与える。しかし、画素ブロック圧縮におけるこのような改良は、特定の画素ブロックのメモリアドレスを容易に算出できないという問題がある。
Inada及びMcCool[3]は、各VLC符号化された画素ブロックがメモリにおいて配置される場所を示すルックアップテーブル(LUT)を使用する解決方法を提示している。しかし、LUTを使用することにより、キャッシュの形態で新たな問題が発生する。復号化システムは、メモリから所望の画素ブロックを要求し始める前に、この場合は最初にLUTを使用しなければならない。しかし、LUTは非常に大きく、チップ上に保持できない。従って、復号化システムは、最初にLUTの関連部分を要求しなければならず、メモリからこの情報を受信するまでどこから画素ブロックの関連ビットを要求するのかを認識しない。これは、メモリの間接参照と呼ばれ、非常に厄介である。それにより遅延時間も加わり、近頃のグラフィック処理ユニット(GPU)の主な問題の1つである。
本発明の実施形態は、従来技術の構成のこれらの欠点及び他の欠点を克服する。
一般的な目的は、効率的な画像処理を提供することである。
この目的及び他の目的は、添付の請求の範囲により規定されたように実施形態により達成される。
簡単に説明すると、本発明の実施形態は、画像又はテクセルを複数のスーパーブロックに分解することによりそれを圧縮するステップを含む。ここでスーパーブロックは、各々が規定の数の画素又はテクセルを有するN個の複数の画素ブロック又はテクセルブロックを含む。更に、各画素は関連付けられたプロパティ値を有する。
スーパーブロックは、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮することにより圧縮される。その圧縮ブロックは、スーパーブロックにより含まれたN個の画素ブロックに対して割り当てられたメモリロケーションに割り当てられ且つ格納される。これは、同一の圧縮ブロックのN個のコピーがスーパーブロックに対するメモリに存在することを意味する。これらの圧縮ブロックのN個のコピーの集合が、スーパーブロックの圧縮表現を構成することになる。
復号化中、メモリアドレスは、復号化されるべきプロパティ値を含む画素を有する画素ブロックに対して判定される。固定レート圧縮は、画素ブロックの各メモリロケーションが同一の量のデータを含むことによりランダムアクセスを達成することを保証する。目標ビット長を有し且つ画素ブロックに割り当てられたメモリロケーションに格納される圧縮ブロックは、取り出され且つバスを介してメモリからキャッシュに転送される。その後圧縮ブロックは、複数のプロパティ値を取得するために伸張される。しかし、画素ブロックがスーパーブロックの一部を構成するため少なくとも1個の隣接画素ブロックと共に圧縮された場合、その画素ブロックの少なくとも1個のプロパティ値だけでなく少なくとも1個の隣接画素ブロックは、単一のメモリアクセスから取得される。
一実施形態において、画像圧縮器は、複数の画素を含む画像を圧縮するために提供される。画像圧縮器は、画像を複数のスーパーブロックに分解する画像分解器を備える。そのようなスーパーブロックは、上述したように、複数の画素を有するN個の画素ブロックを含む。固定レート圧縮器は、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮する画像圧縮器に配置される。この圧縮ブロックは、メモリ割当器によりメモリのN個のメモリロケーションに割り当てられる。これらのN個のメモリロケーションは、スーパーブロックにより含まれたN個の画素ブロックに対して割り当てられる。その結果、圧縮ブロックのN個のコピーは、メモリロケーションに存在し、スーパーブロックの圧縮表現を共に構成することとなる。
別の態様は、画像を復号化する画像復号器に関する。この画像復号器は、画像(5)を示す複数の圧縮ブロックを格納するメモリから圧縮ブロックを取り出すメモリアクセッサ、取出し器又はプロセッサを備える。取り出された圧縮ブロックは、複数のプロパティ値を取得するために圧縮ブロックを伸張する伸張器により処理される。これらの複数のプロパティ値は、値割当器により第1の画素ブロックだけでなく少なくとも1個の第2の画素ブロックに割り当てられる。この第1の少なくとも1個の画素ブロックは、画像の同一のスーパーブロックにおいて共に含まれる。次に、画素復号器は、第1の画素ブロックの少なくとも1個のプロパティ値及び少なくとも第2の画素ブロックの少なくとも1個のプロパティ値に基づいて画像を少なくとも部分的に復号化する。
画像復号化中に画像上で単一の画素を描画するために複数の画素又はテクセルが必要な場合が多いため、本明細書において開示されたような実施形態は従来技術よりかなり有利である。これは、時間のかかるメモリアクセスにより全ての所望のプロパティ値を取り出すことなくキャッシュにおいてそれらを有する確率が実施形態を用いることで大幅に向上することを意味する。従って、所定の画素ブロックに関連する圧縮ブロックにアクセスし且つそれを取り出すことにより、更なるメモリアクセスを必要とせずに画像中で隣接画素ブロックに適用される圧縮データが無償で更に得られる。
本発明の実施形態の以下の説明を読むことにより、提案された他の利点が理解されるだろう。
実施形態は、添付の図面と共に以下の説明を参照することにより、実施形態の更なる目的及び利点と共に最もよく理解されるだろう。
図1は、一実施形態に従って画像を圧縮する方法を示すフローチャートである。 図2は、一実施形態に従って圧縮される画像を示す概略図である。 図3A〜図3Iは、画像の一部分をスーパーブロック及び画素ブロックに分解することを概略的に示す図である。 図4は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。 図5は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。 図6は、一実施形態に従って圧縮方法の更なるステップを示すフローチャートである。 図7は、一実施形態に従って画像を復号化する方法を示すフローチャートである。 図8は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。 図9は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。 図10は、一実施形態に従って復号化方法の更なるステップを示すフローチャートである。 図11は、一実施形態に係る画像復号器を備える復号化システムを示す概略図である。 図12は、画像圧縮器の一実施形態を示す概略ブロック図である。 図13は、画像復号器の一実施形態を示す概略ブロック図である。 図14は、2×2画素チャンクを示す16×16カラーバッファを示す図である。 図15は、図14のカラーバッファの画素のテクスチャへのマッピング方法を示す図である。 図16は、左側の画像により示された本発明の一実施形態と右側の画像により示された従来技術との比較を示す図である。 図17は、PSNR対レートを示すグラフである。 図18は、一実施形態に従って処理されたテストシーンを示す図である。 図19は、左が従来技術のDXTCを示し、中央が一実施形態を示し且つ右が第2の実施形態を示すシーンをレンダリングした場合の帯域幅の結果を示す図である。 図20は、中央において従来技術のシステムに従って拡大したテスト画像を示し且つ右側に一実施形態に従って拡大したテスト画像を示す図である。 図21は、重要な領域において品質を向上させ且つ相対的に重要でない領域において品質を低下させることにより主観的な品質を示す図であり、上の行が元の画像を示し、中央の行が一実施形態に従う画像を示し且つ下の行が従来技術に従う画像を示す図である。 図22は、種々のレベルの圧縮の複雑さを有する同様のテクスチャを示す図である。
図中、同一の図中符号は、対応する要素又は類似する要素に対して使用される。
本発明は、一般に画素プロパティ値の符号化及び復号化と呼ばれることもある圧縮及び伸張に関し、特にテクスチャの圧縮及び伸張に適した圧縮及び伸張に関する。
本発明の実施形態は、3次元(3D)グラフィックス、例えば限定しない例であるゲーム、3Dマップ及びシーン、動画メッセージ等の3Dメッセージ、スクリーンセーバ、マンマシンインタフェース(MMI)等と使用するのに非常に適している。従って、実施形態は、1次元(1D)、2次元(2D)又は3D画像等の他の種類の画像又は図形を符号化するために更に採用されてもよい。
また、以下において、用語「画像」は、限定しない例であるバンプマップ、通常のマップ、写真、ゲーム型テクスチャ、文字、図、高ダイナミックレンジ画像及びテクスチャ等を含む本発明の実施形態を使用して符号化及び復号化されるあらゆる1D、2D又は3D画像又はテクスチャを示すために使用される。
画像は、複数、すなわち少なくとも2個のいわゆる画像要素によって構成される。画像要素は、一般に、当技術分野において画像要素の場合は画素、テクスチャ要素の場合はテクセル、又は体素(volume elements)の場合はボクセルで示される。以下において、表示画素は、そのような画像要素を示すために一貫して使用される。しかし、表示画素は、本明細書において例えば処理された画像がテクスチャ又は3D画像の形態である場合にはテクセル及びボクセルを包含すると考えられる。
一般に、画素は、関連付けられた画素パラメータ、あるいは画素プロパティ値又は特徴により特徴付けられる。当技術分野において画素に割り当てられる種々のそのような特徴的なプロパティ値がある。例えばプロパティ値は、画素に割り当てられた色値であってもよい。当技術分野においては既知であるように、種々の色空間が使用可能であり且つ画素色値を示すために使用される。通常のそのような色空間は、いわゆる赤、緑、青(RGB)の色空間である。従って、プロパティ値は、RGBの色であってもよく、すなわち3色成分から構成される。
画素の色は、輝度成分及びクロミナンス成分の形態で表わされてもよい。そのような場合、変換は、RGB色値を輝度値及び一般に2個のクロミナンス成分に変換するか、あるいは輝度値及びクロミナンス値をRGB色値に変換するために使用される。当技術分野における輝度−クロミナンス空間の例には、YUV、YCoCg及びYCrCbが含まれる。従って、プロパティ値は、そのような輝度値(Y)及び関連付けられたクロミナンス値(U、V、Co、Cg、Cr又はCb)であってもよい。
他の画素プロパティ値は、透明度データを搬送するために使用されることが多い深度マップに対する深度値、アルファ(A)値を含み、RGBA等の色値と組み合わせて使用される。
本発明の実施形態は、ランダムアクセスを達成し且つ画素ブロックのメモリアドレスの容易な計算を可能にすることにより画像及びテクスチャ処理に新規な手法を提供するが、依然として帯域幅消費量の削減を実現する。
[圧縮]
図1は、一実施形態に従ってテクスチャ等の画像を圧縮する方法を示すフローチャートである。画像は、各画素がRGB888値等のそれぞれのプロパティ値を有する複数の画素を含む。圧縮は一般にステップS1から開始し、画像は、いわゆるスーパーブロックに分解される。
画像圧縮の当技術分野において、一般に画素ブロック又はタイルの形態の複数の画素は一括して処理される。好適な一実施形態において、そのような画素ブロックはM1×M2画素のサイズを有する。ここで、M1、M2は、M1及びM2の双方が同時に1ではないという条件で整数である。M1=2k及びM2=2lである。ここで、k、lは、k及びlが同時に0ではないという条件で0又は整数であるのが好ましい。一般的な実現例において、M1=M2及び好適なそのような画素ブロックの実施形態は、4×4画素又は8×8画素であってもよい。従来技術の「標準の」圧縮方式、すなわちDXTC及びETCは、4×4画素の画素ブロックを使用する。図2は、テクスチャ1等の画像が複数の画素ブロック30に分割される、このような概念を示している。ここで、各画素ブロック30は複数の画素40を含む。図2において、画素ブロック30のうちの1個のブロックの画素40が、図面を簡略化するために明示的に示されている。
ステップS1において規定されたようなスーパーブロックは、複数の画素から成るそのような画素ブロックをN個を含む。ここで、Nは2以上の整数である。従って、画素ブロックが4×4画素を含む場合、スーパーブロックは、N=4の場合は8×8画素、あるいはN=2の場合は4×8又は8×4画素であってもよい。更なる一実施形態において、N=16の場合は16×16画素のスーパーブロック、あるいはN=8の場合は16×8又は8×16画素のスーパーブロックが更に使用可能であってもよい。それに対応して、画素ブロックが8×8画素のサイズを有する場合、スーパーブロックは、N=4の場合は一般に当技術分野においてマクロブロックを示した16×16画素、あるいはN=2の場合は8×16又は16×8画素であってもよい。更に、奇数の画素ブロックを含むスーパーブロックが本発明の範囲内において可能である。そのような場合、非正方形及び非長方形のスーパーブロックの形状、例えばL又はT形状のスーパーブロックが使用されてもよい。実施形態に従って処理された画像は、画像中でスーパーブロックの領域により占有された画素ブロック数に関して同一のサイズの複数のスーパーブロックを含んでもよい。しかし、実施形態は、本明細書において更に説明されるように必ずしもそれに限定されない。明らかに対照的に、第1のスーパーブロックは16×16画素等の第1のサイズを有してもよく、第2のスーパーブロックは16×8画素等の第2のサイズを有してもよく、あるいは第3のスーパーブロックは8×16画素等の第3のサイズを含む。これらのスーパーブロックの共通の特徴は、これらのスーパーブロックが、各画素ブロックがそれぞれのプロパティ値を有する複数の画素を含む少なくとも2個の画素ブロックにおいて占有される画像の領域を全て含むことである。しかし、本明細書において規定されたようなスーパーブロックのサイズは変動してもよいが、本明細書において規定されたような画素ブロックのサイズは固定されるのが好ましく、これは画像全体にわたって同じであり、例えば全ての画素ブロックに対して4×4画素又は8×8画素である。
次のステップS2において、圧縮ブロックを取得するためにステップS1において規定されたスーパーブロックのプロパティ値を固定レート圧縮する。固定レート圧縮は、結果として得られる圧縮ブロックのサイズ又はビット長が固定され且つ特定の目標ビット長に等しいことを示す。従って、固定レート圧縮器から出力された全ての圧縮ブロックは、同一の目標ビット長を有する。これは、スーパーブロックが例えば16×16画素、16×8画素又は8×16画素のサイズを有したかに関係なく目標ビット長に等しくなることを意味する。
しかし、圧縮ブロックのサイズが非圧縮バージョンのスーパーブロックのサイズより小さいのは当然である。例えば、各画素がRGB888プロパティ値を有するために24ビットを必要とする場合、16×16スーパーブロックは、非圧縮バージョンにおいて256×24=6,144ビットのサイズを有する。目標ビット長は、例示的な例として256ビットであってもよい。
ステップS2において判定された圧縮ブロックは、ステップS3において、スーパーブロックにより含まれたN個の画素ブロックに対して割り当てられたメモリロケーション(記憶場所)に割り当てられる。これは、圧縮ブロックを示す同一のビットシーケンスがN個の画素ブロックに対して割り当てられたN個の異なる記憶場所に存在することを意味する。記憶場所における同一の圧縮ブロックのN個のコピー及び同一のビットシーケンスのN個のコピーは、スーパーブロックの圧縮表現を一括して構成する。
ステップS2においてスーパーブロックを固定レート圧縮すること及びステップS3において結果として得られる圧縮ブロックを複数の種々の記憶場所に割り当てることは、画像中の他のスーパーブロックに対して繰り返される。これを図1の線L1により概略的に示す。尚、これらの種々のスーパーブロックに対して、Nの値は同一であってもよくあるいは実際には異なってもよい。複数のスーパーブロックは、順次処理されてもよく、すなわち基本的にはそのようなスーパーブロック毎に順次ステップS2及びS3を繰り返す。あるいは、複数のスーパーブロックは、線L1により同時に更に示されたステップS2及びS3に従って処理されてもよい。
図4は、画像圧縮方法の更なるステップを示す。これらの更なるステップは、本明細書において更に説明されるように、画像がスーパーブロックを処理するだけでは圧縮されない場合に使用される。例えば、多くの情報及び詳細を含む画像の領域において、スーパーブロックはN個の画素ブロックに更に分解され、そのような画素ブロックの各々は別個に圧縮される。これを図4において示す。従って、第1のステップS10において、スーパーブロックをN個の画素ブロック、例えばスーパーブロックのサイズに依存して2個又は4個の画素ブロックに分解する。そのような画素ブロックの各々は、ステップS11及びS12の手順に従って順次又は同時に処理される。これを線L2により概略的に示す。
ステップS11において、目標ビット長を有する圧縮ブロックを取得するために画素ブロックのプロパティ値を固定レート圧縮する。従って、スーパーブロックが画素ブロックより大きな画像の領域を占有するにもかかわらずステップS2においてスーパーブロックを圧縮する場合のように、画素ブロックを圧縮することにより得られる圧縮ブロックの同一のビット長がステップS11において達成される。実施形態のこの新規な特徴は、圧縮ブロックのランダムアクセスを達成する。
ステップS12において、現在の画素ブロックに割り当てられたメモリの記憶場所に圧縮ブロックを割り当てる。スーパーブロックがN個の画素ブロックを含むため、ステップS11及びS12がN回実行される。これは、殆どの場合、ステップS11の種々の動作において取得された圧縮ブロックが同一の圧縮ブロックを生成しない限り、メモリはN個の異なる圧縮ブロックを含む。記憶場所におけるN個の圧縮ブロックは、スーパーブロックの圧縮表現を一括して構成する。
尚、図1のステップS3において、同一の圧縮ブロックは、N個の記憶場所の各々に提供される。しかし、ステップS12において、それぞれ個別に判定された圧縮ブロックは、N個の記憶場所のうちの1つを占有する。
図3Aは、マーク付けされた画素ブロック30A、30B、30C、30D、32A、32B、32C、32Dを含む画像の一部分を示すことによりこの概念を示す。図3Aにおいて、アルファベットA〜Jは、図1のステップS2に従ってスーパーブロックを固定レート圧縮するかあるいは図4のステップS11に従って画素ブロックを固定レート圧縮することにより取得された圧縮ブロックを示す。これらの圧縮ブロックA〜Jは、ビット長に関して全て同一のサイズを有する。
左上の隅を占有する4個の画素ブロック30A、30B、30C、30Dは、共にスーパーブロック20を構成する。このスーパーブロック20は、圧縮ブロックAを取得するために、図1のステップS2における手順に従って圧縮される。この圧縮ブロックAの符号は、4個の画素ブロック30A、30B、30C、30Dの各々の記憶場所を割り当てられる。図3Aにおいて全てのこれらの画素ブロック30A、30B、30C、30DにAを割り当てることにより、これを概略的に示す。
しかし、画像中の次のスーパーブロック22は、先のスーパーブロック20のように図1に従って圧縮されない。明らかに対照的に、スーパーブロック22は画素ブロック32A、32B、32C、32Dに分解され、これらの画素ブロック32A、32B、32C、32Dの各々は別個の圧縮ブロックB〜Eを取得するために個別に圧縮される。
第1のスーパーブロック20の圧縮された表現の合計ビット数、すなわちAの4倍のビット長が第2のスーパーブロック22の圧縮された表現、すなわちB+C+D+Eのビット長と同一であるため、ランダムアクセスが達成される。これは、画素ブロック序列における画素ブロック数r、すなわち左上の隅から開始する行単位の移動がメモリにおいてアクセスされる場合、(r−1)×Sizeからr×Size−1まで占有するためその場所は容易に識別されることを意味する。ここで、Sizeは、圧縮ブロックA〜Jのビット長を示す。それに対応して、x及びyが画像中の所望の画素の座標である場合、floor(x/8)及びfloor(y/8)により、8×8画素の画素ブロックのサイズの場合に画素を含む画素ブロックの座標が得られる。従って、widthが画素における画像の幅であり且つ圧縮ブロックが256ビットのビット長を有する場合、所望の圧縮ブロックのメモリバイトアドレスは、(floor(y/8)×(width/8)+floor(x/8))×256/8である。従って、実施形態によりランダムアクセスが可能になる。
図3B〜図3Iは、マクロブロックが1つのスーパーブロック、複数のスーパーブロック、1つのスーパーブロック及び複数の画素ブロック、あるいは複数の画素ブロックに分解される種々の可能性を示す。図3Bは、各画素ブロック32が別個に処理され、各々が同一の目標ビット長を有する4個の一般に異なる圧縮ブロックA〜Dを生成する例を示す。
図3Cは、スーパーブロック20が4個の画素ブロック30を含み、単一の圧縮ブロックAが全ての画素ブロックに対して判定される例を示す。しかし、この圧縮ブロックAは、4個の画素ブロック30に割り当てられた記憶場所において繰り返されることにより、4個のバージョンを格納する。
図3Dにおいて、マクロブロックは、各々がそれぞれ2個の画素ブロック34、36の領域を含む2個のスーパーブロック24、26に分割される。第1の圧縮ブロックAは、第1のスーパーブロック24に対して判定され、含まれた2個の画素ブロック34の双方の記憶場所に割り当てられる。それに対応して、第2の圧縮ブロックCは、他のスーパーブロック26に対して判定され、このスーパーブロック26により含まれた2個の画素ブロック36に割り当てられる。
図3Eは図3Dに類似するが、2個のスーパーブロック21、23は2個の異なる列ではなく2個の異なる行の画素ブロック31、33を含む。第1のスーパーブロック21に対して判定された圧縮ブロックAは、スーパーブロック21により含まれた双方の画素ブロック31に割り当てられる。同様に、第2のスーパーブロック23に対して判定された他の圧縮ブロックBは、スーパーブロック23より含まれた双方の画素ブロック33に割り当てられる。
図3Fにおける2個の上部画素ブロック34は、スーパーブロック24として一括して処理されるため、同一の圧縮ブロックAを割り当てられる。2個の下部画素ブロック32は、別個に固定レート圧縮され、2個の異なる圧縮ブロックC、Dを生成する。
図3Gは図3Fに非常に類似するが、上部画素ブロック32は別個に圧縮ブロックA、Bに圧縮され、2個の下部画素ブロック36は、双方の画素ブロック36の記憶場所に割り当てられた圧縮ブロックCを取得するためにスーパーブロック26として共に圧縮される。
図3H及び図3Iは、図3F及び図3Gと同様の概念を示すが、スーパーブロック21、23は異なる行の画素ブロック31、33を占有する。それぞれの他の2個の画素ブロック32は、別個に固定レート圧縮される。
所定の画像は、図3B〜図3Iのうちのいずれかに従って規定された全てのマクロブロック領域を有する。しかし、最も実際的な適応例において、画像のいくつかの部分は図3B〜図3Iのうちの1つにおいて規定されたようなものになり、画像の少なくとも1つの他の部分は図3B〜図3Iのうちの少なくとも他の1つにおいて規定されたようなものになる。従って、画像は、スーパーブロック及び画素ブロックとして圧縮される異なる画像部分のパッチワークである場合がある。
一般に、図3Cにおいて示された実施形態は、通常殆ど詳細を含まない全く同様の画像部分に現れ、個別の画素ブロックを含む図3Bは、画像の非常に詳細な領域において現れる。図3D〜図3Iの他の実施形態は、大きなスーパーブロック全体として効率的に圧縮されないが、図3D及び図3Eのようなより小さなサイズのスーパーブロック又は図3F〜図3Iのようなより小さなサイズのスーパーブロック及び個別の画素ブロックに分解されるのが好ましい他の画像部分に対して示される。
図6は、画像圧縮方法の一実施形態の更なるステップを示すフローチャートである。この方法は、図1のステップS3から継続する。次のステップS30において、図1のステップS2において判定された圧縮ブロックのN個のコピーがスーパーブロックの画像領域においてプロパティ値をどれほど適切に示すかを示す誤差計測値を判定する。
誤差計測値は、一般に、スーパーブロックにおける画素に対する元のプロパティ値の表現を取得するために圧縮ブロックを伸張することにより得られる。これらの表現と元のプロパティ値との平方誤差が算出され且つ合計されることにより、スーパーブロックに対する平方誤差和(SSD)が得られる。あるいは、SSDではなく、当技術分野において既知であり且つ画像及びテクスチャ圧縮の分野内で使用されるのが好ましい他の誤差計測値が使用されてもよい。
次のオプションのステップS31において、最大誤差閾値を規定する。このステップS31は、一般に、ユーザ又はオペレータが画像圧縮に対する目標品質を判定できる場合に使用される。例えば、この目標品質は、画像のX%がスーパーブロックの形態で処理され、画像の残りの100〜X%に対して画素ブロックが個別に固定レート圧縮されることであってもよい。そのような場合、画像全体は、図1において上述したように、最初にスーパーブロックに伸張されて圧縮されるのが好ましい。各誤差計測値は、スーパーブロック毎に判定される。最高品質、すなわち最も低い誤差計測値を有するスーパーブロックのX%が識別される。最大誤差閾値Tは、これらの最も低い誤差計測値のうちの最も高い誤差閾値に等しいものとして規定される。
あるいは、ステップS31は省かれ、最大誤差閾値は、スーパーブロックに対する最大の許容可能な誤差であると考えられる事前定義された誤差値である。
次のステップS32において、ステップS30においてスーパーブロックに対して判定された誤差計測値を最大誤差閾値と比較する。誤差計測値が最大誤差閾値を上回らない場合、スーパーブロックのプロパティ値は、図1のステップS2において判定された圧縮ブロックのN個のコピーにより適切な品質で示される。
しかし、誤差計測値がステップS32において最大誤差閾値を上回る場合、ステップS33に継続する。このステップS33において、スーパーブロックをN個の画素ブロックに分解する。このステップS33は、図4のステップS10と同様に実行されるため、本明細書において更に説明しない。N個の画素ブロックの各々は、ステップS34及びS35において個別に処理され、これをL3により概略的に示す。この場合、処理は、N個の画素ブロックに対して同時に又は順次実行される。ステップS34は、基本的に図4のステップS11に対応し、目標ビット長を有する圧縮ブロックを取得するために画素ブロックのプロパティ値を固定レート圧縮する。ステップS35は、図4のステップS12に対応し、この圧縮ブロックのビットシーケンスを画素ブロックに割り当てられた記憶場所に入力することを含む。
この場合、スーパーブロックのプロパティ値は、図1のステップS2において判定された圧縮ブロックのN個のコピーにより適切な品質で表されない。明らかに対照的に、スーパーブロックは、N個の異なる圧縮ブロックを取得するために個別に圧縮されるN個の画素ブロックに分解されなければならなかった。
種々の画像部分を異なる方法で、すなわち1つのスーパーブロック、複数のスーパーブロック、1つのスーパーブロック及び複数の画素ブロック、あるいは複数の画素ブロックの形態で処理できるようにする別の手順を図7において示す。
この方法は図1のステップS3から継続する。次のステップS40において、図1のステップS2において判定された圧縮ブロックのN個のコピーでスーパーブロックのプロパティ値を表現することを示す第1の誤差計測値を判定する。誤差計測値は、図7のステップS30において判定されたのと同一の種類の誤差計測値であってもよい。別の手法において、誤差計測値は、rd=rate+λ×distortionとして規定されたいわゆるレート歪み値である。ここで、rateは、図3B〜図3Iを参照すると繰り返された圧縮ブロックを全くカウントすることなく2×2画素ブロックを占有する画像部分毎にプロパティ値を圧縮するのに必要なビット数を示す。これは、レートが、図3Bにおいて4×Sizeであり、図3CにおいてSizeであり、図3D及び図3Eにおいて2×Sizeであり、図3F〜図3Iに対して3×Sizeであることを意味する。また、distortionは、圧縮ブロックを伸張することにより取得されたプロパティ値の表現と画素に対する元のプロパティ値と間の平方和:
であり、
及び、
は、圧縮画素ブロック及び元の画素ブロックのそれぞれの赤色成分である。緑及び青色成分に関しても同様である。λは、レート歪み測度に対して歪みの所望の寄与を実現するために使用される重み係数である。λを変動させることにより、種々の品質、従って種々のビットレートが画像に対して達成される。
次のステップS41において、図4及び図6に関連して上述したように、スーパーブロックをN個の画素ブロックに分解する。これらのN個の画素ブロックは、ステップS42においてN個の圧縮画素ブロックに個別に固定レート圧縮される。圧縮画素ブロックは、ステップS43においてメモリの画素ブロックに対して割り当てられたそれぞれの記憶場所に割り当てられる。線L4は、ステップS42及びS43がN個の画素ブロック毎に順次又は同時に実行されることを示す。
ステップS44においてN個の圧縮画素ブロックがどれほど適切に判定されるかを示す第2の誤差計測値は、対応するプロパティ値を示す。画素に対して使用するための圧縮表現、すなわち図1のステップS2の圧縮ブロックのN個のコピー又はステップS42のN個の圧縮ブロックは、2個のレート歪み値であるのが好ましい第1の誤差計測値及び第2の誤差計測値に基づいてステップS45において選択される。
一般的な実現例において、画像の2×2画素ブロック領域の各々は、図3B〜図3Iにおいて示された8個の可能な変形例のうちのいずれかに従ってテストされる。これは、そのような画素ブロック領域の各々が8回圧縮され、8個のレート歪み値が領域に対して判定されることを意味する。画像に対する最も低いレート歪み値により得られたスーパーブロックと画素ブロックとの組合せが選択され、これらのスーパーブロック及び画素ブロックの圧縮ブロックは、画像の圧縮表現又は符号化表現として使用される。
図5は、図1、図4、図6及び図7における固定レート圧縮に関連してモード識別子を割り当てることを含む更なるステップを示すフローチャートである。圧縮ブロックは、ステップS20において、圧縮ブロックがスーパーブロック又は画素ブロックに対して判定されるかに依存して種々の値を有するモード識別子を割り当てられる。従って、2×2画素ブロックのグループが1個の圧縮ブロックを取得するためにスーパーブロックとして共に圧縮され、その後コピーされて4個のバージョン、すなわち画素ブロック毎に1個のバージョンを取得する場合、モード識別子は第1の値を有する。しかし、2×2画素ブロックが4個の圧縮ブロックを取得するために個別に圧縮される場合、これらの4個の圧縮ブロックの各々は、第1の値とは異なる第2の値を有するモード識別子を含む。
それに対応して、図3B〜図3Iにおいて示されたように2×2画素ブロックのグループに対して8個の可能性がある場合、モード識別子は、4個の異なる値を有する必要がある。4個の異なる値は、3つがスーパーブロック型に対するものであり、1つが2ビットのモード識別子により実現される画素ブロックに対するものである。
モード識別子は、圧縮ブロックのビットシーケンスとして圧縮ブロックに含まれると考えられるのが好ましく、目標ビット長にも等しいべきである。
このモード識別子は、画素ブロックに対応する圧縮ブロックがメモリから読み出されると、圧縮画素ブロックを伸張することにより無償で少なくとも1個の隣接画素ブロックに対するプロパティ値が得られるかを判定するために、復号化中に使用される。これは、圧縮中に形成された画素ブロックがスーパーブロックの一部であり、画素ブロックの元のプロパティ値及び更に少なくとも1個の他の画素ブロックの元のプロパティ値が一括して処理されて圧縮ブロックを判定する場合に生じる。これは、本発明の実施形態の主な利点である。すなわち、メモリから単一の画素ブロックのビットシーケンスを自動的に読み出すことにより、ビットシーケンスを伸張する際に意図した画素ブロックのプロパティ値だけでなく1つ又は複数の隣接画素ブロックのプロパティ値が得られる。1つ又は複数の隣接ブロックのプロパティ値が復号化中に更に必要であり且つこれらがメモリにおいてではなくキャッシュから読み出される場合、必要なメモリアクセス数は減少する。従って、実施形態により、メモリ帯域幅及びメモリからGPUキャッシュに転送されるべきデータ量は減少する。
上記において、スーパーブロックのプロパティ値又は画素ブロックのプロパティ値に適用可能な固定レート圧縮を使用することに関連して実施形態を説明した。実施形態は、事前定義された目標ビット長を有する圧縮ブロックを生成する当技術分野におけるあらゆる種類の固定レート圧縮アルゴリズムを実際に使用する。同一の種類の圧縮アルゴリズムは、より小さな画素ブロックを圧縮する場合のようにより大きなスーパーブロックを処理するために使用される。あるいは、第1の固定レート圧縮アルゴリズムはスーパーブロックを圧縮するのに適用可能であり、第2の固定レート圧縮アルゴリズムは画素ブロックに対して使用される。しかし、そのような場合、第1の圧縮アルゴリズムが第2の圧縮アルゴリズムと比較して入力としてより多くのプロパティ値を有するにもかかわらず、双方の圧縮アルゴリズムは、同一の目標ビット長を有する圧縮ブロックを生成すべきである。当然、この概念は、スーパーブロックが16×16画素対8×16又は16×8画素等の種々のサイズである場合にも適用されてもよい。そのような場合、最大3個又は4個の種々の固定レート圧縮アルゴリズムが使用されてもよい。種々の固定レート圧縮アルゴリズムは、それぞれ、16×16スーパーブロック、8×8画素ブロック、8×16及び16×8スーパーブロック又は8×16スーパーブロック、並びに16×8スーパーブロックに対するものである。
本明細書において、実施形態において使用される適切な固定レート圧縮アルゴリズムのいくつかの例示的な例を列挙する。しかし、実施形態はそれらに限定されず、上述の要件を満たす他の種類の固定レート圧縮アルゴリズムを使用できる。
教示が本明細書において参考として取り入れられる圧縮アルゴリズムETC2[2、4、5]は、4×4画素ブロックを符号化して64ビットの圧縮ブロックを生成するために使用される。この圧縮アルゴリズムは、8×8、8×4又は4×8スーパーブロックを処理するために更に使用される。そのような場合、画素は、最初に4×4画素にサブサンプリングされ、次にETC2で通常通り圧縮される。従って、8×8スーパーブロックにおいて、単一のプロパティ値は、好ましくは4個のプロパティ値の平均値としてスーパーブロックにおいてオーバラップしない2×2画素グループ毎に算出される。従って、64個のプロパティ値は、64ビットの圧縮ブロックを取得するためにETC2圧縮器に入力される16個のプロパティ値にまで減少する。伸張中、圧縮ブロックから取得されたプロパティ値の伸張表現の各々は、それぞれの2×2画素グループに割り当てられる。より小さなスーパーブロックの場合、サブサンプリングは1次元でのみ必要である。すなわち、オーバラップしない2×1又は1×2画素グループ毎に単一のプロパティ値を判定する。
ETC2[2、4、5]において、フリップビットは、使用される2個の異なる画素ブロック配列のうちのどちらかを信号伝送するために圧縮ブロックにおいて使用される。あるいは、このフリップビットは、圧縮ブロックが個別に圧縮された画素ブロック又は複数の画素ブロックを含むスーパーブロックから発生するかを判定するために本明細書において識別されたように、モード識別子として使用されてもよい。
2ビットのモード識別子が必要な場合、一方のビットは、上述のフリップビットであってもよい。他方のビットは、例えば色コードワードにおいて青色成分専用のビット数を減少することにより取得される。
別の手段は、4×4画素ブロックを64ビットに圧縮するのに適したDXTC[1]を使用する。DXTCは、特に2個の色コードワードを含む圧縮ブロックを生成する。しかし、第1の値に等しい第1の色コードワード及び第2の値に等しい第2の色コードワードを含む圧縮ブロックは、伸張中、第2の値に等しい第1の色コードワード及び第1の値に等しい第2の色コードワードを含む圧縮ブロックと同一の伸張プロパティ値を生成する。その結果、DXTC圧縮器は、第1の色コードワードの値が常に第2の色コードワードの値より小さく且つ依然として全ての入力画素ブロックを処理できるようにさせられる。この序列トリックは、圧縮ブロックが画素ブロック又はスーパーブロックのいずれを起源とするか示すために使用される。従って、第1の色コードワードが第2の色コードワードより小さい場合、圧縮ブロックは画素ブロックを起源とする。しかし、第1の色コードワードが第2の色コードワードより大きい場合、圧縮ブロックはスーパーブロックを起源とする。これは、この場合モード識別子が色コードワードを含むことを意味する。色コードワードの序列を使用して2個の異なるモードを取得することについての説明は、教示が本明細書において参考として取り入れられる[5]において広範に説明される。
従って、4×4画素ブロックは、DXTCにおけるように圧縮されるが、第1の色コードワードが第2の色コードワードより小さくなければならない。8×8スーパーブロックは、4×4プロパティ値を取得するために、最初に上述のようにサブサンプリングされる。これらは、DXTCにおけるように圧縮されるが、第1の色コードワードが第2の色コードワードより大きくなければならない。
8×8、8×4及び4×8等の3個の異なるサイズのスーパーブロックを含む場合に対してDXTCを使用することが更に可能である。そのような場合、例えば、最初の2個の画素は、教示が本明細書において参考として取り入れられる文献[1]を参照すると、2個の色コードワードにより示された2個のベースカラーの異なる線形組合せとして判定される4個の色表現のうちの1つを識別するために使用された画素指標において同一の最も重要なビットを有するようにさせられる。従って、この手法により1ビットが節減される。次に、このビットは、圧縮画素ブロックが4×4画素ブロック、8×8スーパーブロック、8×4スーパーブロック又は4×8スーパーブロックのいずれを起源とするかを示すするために上述の序列トリックと共に使用される。x方向(列にわたり)及び/又はy方向(行にわたり)におけるサブサンプリングは、上述したように最初にスーパーブロックに対して使用される。
あるいは、モード識別子を信号伝送するために、第1の色コードワード及び第2の色コードワードに対する制限は使用されない。明らかに対照的に、余分なビットは、色コードワードにおいて色成分のうちの1つから取得される。例えば、RGB565ではなく代わりにRGB555を使用することにより、すなわちコードワードにおいて色成分毎に5ビット費やすことにより、2ビットがモード識別子として使用可能になる。
更なる一実施形態は、16×16、16×8又は8×16画素サイズのスーパーブロックにおける、8×8画素を有する画素ブロックである。スーパーブロックに対してサブサンプリングは必要ないが、各ブロックは、H.264[6]においてイントラフレームとして圧縮される。文献[6]は、本明細書において参考として取り入れられる。従来イントラフレームにおいて使用されたヘッダ情報及び他のメタデータは、本実施形態において省略される。代わりに、依然として248ビット以下のビット長が結果として得られる最小の量子化が判明するまで種々の量子化パラメータ(qp)を試行することにより、画素ブロック又はスーパーブロックが圧縮される。ビット長が248ビットを下回る場合、248ビットになるように、一連の0bin又は1bin等のダミービットが例えばビットシーケンスの末尾に付けられる。圧縮ブロックは、上記で列挙された4個の画素グループのうちのいずれかを示す2ビットのモード識別子と、6ビットで識別されたqp値と、最後に最大248ビットを有する圧縮プロパティ値とを含む。従って、圧縮の合計サイズは、8×8画素ブロック、あるいは16×16、16×8又は8×16スーパーブロックのいずれを起源にするかに関係なく256ビットになる。
今日、H.264[6]において、最小の許可された画像サイズは16×16画素である。しかし、これは、圧縮器が目標サイズの画素ブロック又はスーパーサイズに到達すると圧縮器の動作を停止することにより、容易に解決される。
[復号化]
図8は、メモリに格納された複数の圧縮ブロックにより示された画像を復号化する方法を示すフローチャートである。この方法は、一般にステップS50から開始し、画像中で画素のプロパティ値を生成するために必要な少なくとも1個のプロパティ値を有する所望の圧縮ブロックのメモリアドレスが判定される。圧縮の実施形態が同一の目標ビット長を有する圧縮ブロックを生成するため、圧縮ブロックのいずれかへのランダムアクセスは、最初に圧縮ブロックのメモリアドレスを算出することにより容易に実行される。圧縮ブロックのバイトアドレスは、画素ブロックが8×8画素である場合に単に(floor(y/8)×width/8+floor(x/8))×Size/8であるか、あるいは画素ブロックが4×4画素である場合にfloor(y/4)×width/4+floor(x/4))×Size/8である。
従って、復号化されるべきプロパティ値を有する第1の座標(x,y)画素は、画像の幅width及び目標ビット長Sizeと共に上記の式に入力され、画素ブロック又は所望の画素ブロックを含むスーパーブロックから発生する圧縮ブロックの記憶場所を取得する。
圧縮ブロックのSizeビットは、ステップS51においてランダムアクセスメモリ(RAM)から取り出され、メモリバスを介してRAMから圧縮ブロックが復号化中に一時的に格納されるキャッシュに転送される。圧縮ブロックは、ステップS52において伸張され、画素ブロック又はスーパーブロックの元のプロパティ値の表現として使用される複数のプロパティ値を取得する。圧縮ブロックは、上述したようなモード識別子を更に含むのが好ましい。このモード識別子は、基本的に、圧縮ブロックが画素ブロック又はスーパーブロックのいずれを起源にするか、並びにオプションとしてスーパーブロックのサイズ及び形状を規定する。従って、モード識別子の値は、ステップS53において調査されるのが好ましい。
モード識別子がスーパーブロックを示す第1の値を有する場合、伸張中にステップS52において判定された複数のプロパティ値は、目標画素を含む画素ブロックの画素及び少なくとも1個の画素ブロックの画素に割り当てられる。画素ブロック及び少なくとも1個の他の画素ブロックは、共にスーパーブロックに含まれる。これは、メモリアクセス及びステップS51の圧縮ブロックの取出しが画素ブロックに対応する画像又はテクスチャの一部のプロパティ値を判定するために圧縮ブロックを検索する意図があったとしても、画像又はテクスチャの少なくとも1個の隣接部分に対するプロパティ値は無償で、すなわち更なるメモリアクセスを全く使用せずに取得されることを意味する。例えば、単一のメモリアクセスで64個のプロパティ値を取得し、且つ8×8画素ブロックに対して圧縮ブロックを伸張することが期待された。しかし、例示的な一例において、256個又は128個のプロパティ値が16×16スーパーブロック又は16×8/8×16スーパーブロックを起源とする圧縮ブロックとして代わりに取得される。従って、ここで、キャッシュは、画像中で目標画素を含む画素ブロックだけでなく、少なくとも1個の隣接画素ブロックの元のプロパティ値の伸張プロパティ値を含む。
画像の少なくとも1個の画素は、キャッシュに存在する、ここで提供されたプロパティ値に基づいてステップS56において復号化される。このような復号化は、画像の単一のプロパティ値を算出するためにステップS52からの少なくとも2個の伸張プロパティ値を使用することを含むが好ましい。例えば、2次元線形補間において、2×2プロパティ値のチャンクは、復号化された画像中で画素のプロパティ値を判定するために使用される。これは、当技術分野において既知である。それに対応して、3次元線形補間において、8個のプロパティ値は、単一の画素の復号化されたプロパティ値を判定するために使用される。
本明細書における利点は、キャッシュに存在するプロパティ値が同一のスーパーブロックの目標画素ブロックだけでなく少なくとも1個の隣接画素ブロックを含むことである。これは、2次元線形補間のための2×2プロパティ値のチャンクが画素ブロックの境界を越えて存在する場合、プロパティ値を復号化するのに単一のメモリアクセスで十分である場合が多いことを意味する。従って、上部2個の画素及びプロパティ値が第1の画素ブロックに属し且つ下部2個の画素及びプロパティ値が第2の隣接画素ブロックに属すると仮定する。更に、これらの2個の画素ブロックが圧縮中にスーパーブロックとして共に処理されていたと仮定する。そのような場合、ステップS51の単一のメモリの取出しにより、双方の画素ブロックに対するプロパティ値を生成できるようにする圧縮ブロックを実際に提供する。従来技術の従来の手法において、2個の別個のメモリアクセスは、最初に第1の画素ブロックの圧縮ブロックを提供し、次に第2の画素ブロックの圧縮ブロックを提供するのに必要であったと考えられる。メモリアクセス及び帯域幅の削減は、実施形態により達成される。
また、後で復号化中に隣接画素ブロックの少なくとも1個のプロパティ値が画像復号化に必要であることが判定された場合、実施形態は更なる利点を提供する。この隣接画素ブロックに対するプロパティ値は、より最近のデータにより置換されない限り他の画素ブロックに対して前のメモリアクセスにおいて取り出されたため、キャッシュに既に存在する。従って、隣接画素ブロックのプロパティ値を取得するのに新しい時間のかかるメモリアクセス及び圧縮ブロックの伸張は必要ない。テクスチャにおいて互いに隣接する画素ブロックからのプロパティ値を使用することは、画像復号化中非常に一般的である。例えば、第1の画素ブロックからの第1のプロパティ値は、画像の画素を描画するために必要とされ、その後描画される次の画素は、第1の画素ブロックの隣接画素ブロックである第2の画素ブロックからのプロパティ値を必要とする。これらの画素ブロックの双方が同一のスーパーブロックに属する場合、第2の画素ブロックのプロパティ値は、無償で発生し、第1の画素ブロックと同一のメモリアクセスにおいて取得される。
別の一実施形態において、ステップS52の圧縮ブロックの伸張は、画素ブロック及び少なくとも1個の隣接画素ブロックに対する全てのプロパティ値を取得するために圧縮ブロックを伸張する必要はない。明らかに対照的に、伸張は、目標プロパティ値又は目標プロパティ値の集合がステップS52において1回で伸張されるように実現される。そのような場合、ステップS54において、少なくとも1個の目標プロパティ値を画素ブロックにおける少なくとも1個の画素に割り当てる。更に、圧縮中に画素ブロックと共に圧縮された隣接画素ブロックから少なくとも1個のプロパティ値がその後必要とされる場合、隣接画素ブロックに対する圧縮ブロックデータはキャッシュ上に既に存在する。従って、ステップS52が隣接画素ブロックに対して繰り返されるが、ステップS51において取り出され且つキャッシュ上に存在する同一の圧縮ブロック又は圧縮ブロックのコピーを使用する。次に、ステップ54において、少なくとも1個の伸張プロパティ値を隣接画素ブロックにおける少なくとも1個の画素に割り当てる。画像の画素は、画素ブロック及び隣接画素ブロックからの伸張プロパティ値に基づいてステップ56において復号化される。
ステップS53において、モード識別子が、圧縮ブロックが単一の画素ブロックを起源とすることを示す場合、ステップS55に継続する。このステップにおいて、ステップS52から取得された少なくとも1個のプロパティ値は、単一の画素ブロックの少なくとも1個の画素に割り当てられる。従って、圧縮ブロックがスーパーブロック又は画素ブロックに関連するかに関係なく、ステップS51において同一の量のデータがメモリから取り出される。しかし、モード識別子が第2の値ではなく第1の値を有する場合に複数の画素ブロックがスーパーブロックとして共に圧縮されているため、ステップS54において、ステップS55と比較してより多くのプロパティ値が圧縮データから取得可能である。
図9は、復号化方法の更なる好適なステップを示すフローチャートである。この方法は、図8のステップS53から継続する。次のステップS60において、判定されたプロパティ値のうちのいくつかが割り当てられるべき少なくとも1個の他の画素ブロックを識別する。この少なくとも1個の他の画素ブロックは、図8のステップS50において判定された画素ブロックのメモリアドレス及び好ましくはモード識別子に基づいて識別される。従って、モード識別子は、2つ以上が可能である場合に現在の圧縮ブロックが対応するスーパーブロックの種類を判定するために使用される。スーパーブロックの種類により、4個又は2個等のスーパーブロックが含む画素ブロック数、並びに2個の行及び列に編成されるか、あるいは同一の行又は同一の列に互いに隣接して編成される等、画素ブロックが互いに対して画像中でどのように編成されるかに関する情報が更に与えられる。圧縮ブロックのメモリアドレスは、スーパーブロックにおいて画素ブロックの位置を判定するために使用される。例えば、モード識別子が16×16スーパーブロックとして示し、且つ画素ブロックが12個の画素ブロックに対応する幅を有する画像の画素ブロック数6に対応することをメモリアドレスが示すと仮定する。そのような場合、モートン序列又は圧縮ブロックの他の何らかの局所性向上序列が使用されない限り、画素ブロックがスーパーブロックの右上の隅を占有し、且つ圧縮ブロックから更に取得される他のプロパティ値が画素ブロック数5、5+12=17及び6+12=18に割り当てられるべきであると判定する。その後、図8のステップS54に継続する。
キャッシュが単一の画素ブロックのプロパティ値のみを保持するように設計されるが、複数の圧縮ブロックを含む場合、図10は別の手法を示す。そのような場合、メモリから取り出された圧縮ブロックは、画素ブロック専用の第1のキャッシュ場所に入力される。圧縮ブロックはステップS52において伸張され、モードは図8のステップS53において識別される。圧縮ブロックが単一の画素ブロックではなくスーパーブロックに関連すると結論付けられた場合、図10のステップ70に継続する。そのような場合、ステップS51において取り出された圧縮ブロックは、画素ブロックと同一のスーパーブロックの一部を構成する少なくとも1個の他の画素ブロック専用の少なくとも1個の第2のキャッシュ場所にコピーされる。
その後ステップS52に継続し、第2のキャッシュ場所に提供された圧縮ブロックは、少なくとも1個の他の画素ブロックのプロパティ値を取得するように伸張される。スーパーブロックにより含まれた全ての画素ブロックのプロパティ値は、再度取得される。
別の一手法において、第1のメモリアクセスは、メモリから目標画素ブロックに対応する圧縮ブロックを取り出し、それをキャッシュに格納する。後で別の画素ブロックに存在する1個以上の画素が必要とされる場合、復号化方法は、この別の画素ブロックに対応する圧縮ブロックがキャッシュに存在するかを調査するのが好ましい。圧縮ブロックがキャッシュ上になく、すなわちキャッシュミスであり、且つこの別の画素ブロックとして潜在的に共に圧縮された、すなわち双方が同一のスーパーブロックに属する画素ブロックに関連する圧縮ブロックデータに対するキャッシュを復号化方法が代わりに傍観すると仮定する。この場合は、そのような圧縮ブロックは、事前にメモリから取り出されており且つ実際にはキャッシュ上に存在する。圧縮ブロックのモード識別子は、この識別された圧縮ブロックが実際には別の画素ブロックに適用可能であるか、すなわち画素ブロック及び別の画素ブロックが同一のスーパーブロックに属するかを判定するための識別子であるのが好ましい。そのような場合、既にキャッシュ上に存在する圧縮データは、更なるメモリアクセスを全く使用せずに別の画素ブロックに対して使用される。
圧縮に対して説明したように、事前定義された目標ビット長を含む圧縮ブロックに起因するあらゆる固定レート圧縮が使用されてもよい。図8のステップS52において使用された特定の伸張アルゴリズムは、圧縮ブロックを生成するために使用された固定圧縮アルゴリズムにより要求される。
例えば、ETC2又はDXTCは、16個のプロパティ値を取得するように圧縮ブロックを伸張するために使用される。圧縮ブロックが8×8スーパーブロックを起源とすることをモード識別子が示す場合、4×4プロパティ値はアップサンプリングされる。これは、16個のプロパティ値の各々が8×8スーパーブロックにおいてオーバラップしない画素の2×2グループの各々に割り当てられることを意味する。当然、この非常に簡単なアップサンプリングではなく、当技術分野において既知である他のアップスケーリングアルゴリズムが使用されてもよい。他のスーパーブロックのサイズに対して、アップサンプリングは1方向のみで使用される。すなわち、2×1又は1×2のグループにおいてプロパティ値を双方の画素に割り当てる。
H.264の場合、最初の2ビットは、圧縮ブロックが画素ブロック、スーパーブロックのいずれを起源とするかを判定し、スーパーブロックの場合はスーパーブロックの種類を判定するために使用される。その後、6ビットのqpコードワードが、圧縮ブロックの残りの部分に含まれたプロパティ値を伸張するために使用される量子化パラメータを判定するために使用される。
スーパーブロックは、特定の一実施形態において、画素数に関して、実際には画素ブロックの画素数をN倍上回るサイズを有してもよい。そのような場合、スーパーブロックの領域は、実際には画像中で隣接画素ブロック又はスーパーブロックの領域にオーバラップしてもよい。例えば図3Fにおいて、画素ブロック32は8×8画素を有する。そのような場合、スーパーブロック24は、例えば9×16画素を有してもよい。これは、スーパーブロック24が、画像中で自身が全体として含む2個の画素ブロック34の領域及びスーパーブロック24の下側に存在する2個の画素ブロック32の第1の行により更に占有された画像の領域を範囲に含むことを意味する。スーパーブロックのそのようなオーバラップにより、ブロックの境界を越えてよりシームレスに遷移してもよい。
特定の一実施形態において、オーバラップするスーパーブロックは、1個の同一の画素ブロックが実際には2個以上のスーパーブロックに属するように使用される。例えば図3Aを参照すると、第1のスーパーブロック20は画素ブロック30A〜30Dを含み、第2の部分的にオーバラップするスーパーブロックは画素ブロック30B、32A、30D、32Cを含み、第3のスーパーブロック22は画素ブロック32A〜32Dを含む。この例示的な例において、画素ブロック30B、30D、32A及び32Cは2個のスーパーブロックに属する。例えば、画素ブロック30Cに対応する圧縮ブロックが取り出され且つ伸張される場合、更に同一のスーパーブロック20に属する隣接画素ブロック30A、30B、30Dの伸張プロパティ値は無償で取得されてもよい。それに対応して、画素ブロック30Dに対応する圧縮ブロックが代わりに取り出され且つ伸張される場合、更に隣接画素ブロック30B、32A、32Cに対して適用可能なプロパティ値は、同一のスーパーブロックに属するため無償で取得されてもよい。オーバラップするスーパーブロックは、行単位、列単位で使用されるか、あるいは行及び列に沿って双方に適用される。
[実現例]
図11は、一実施形態に係る復号化システムを示す概略図である。システムは、圧縮ブロックを含む記憶場所310〜340を有するRAM300を含む。GPU400は、メモリバスを介してRAM300に接続される。GPU400は、RAMから取り出される画素ブロック及び圧縮ブロックを識別する機能又はデバイス410を含む。この画素ブロック識別子410は、基本的に、RAM300において圧縮ブロックのアドレスを算出し、メモリアクセス要求をバスを介してメモリ300に送出する。画素ブロックに割り当てられたかあるいは画素ブロック専用の記憶場所310に存在する圧縮ブロックは、メモリから読み出され、バスを介してGPUの画像復号器200に転送される。
画像復号器200は、圧縮ブロック及びプロパティ値を格納するキャッシュ場所又は領域422、424を有する少なくとも1個のキャッシュ420を含むかあるいはそれに接続される。GPU400は、一般に、復号化された画像5が表示される表示画面430に接続される。
GPU400及びそれに含まれたユニット200、410、420は、グラフィックスカード、ビデオカード又はマザーボード等の1個以上のチップに提供されてもよい。
[画像圧縮器]
図12は、画像圧縮器100の一実施形態を示す概略ブロック図である。画像圧縮器100は、画像を同一のサイズ又は異なるサイズを有する複数のスーパーブロックに分解する画像分解器110を備える。スーパーブロックはそれぞれ複数の画素ブロックを含むが、この複数の数は種々のスーパーブロック毎に異なってもよい。しかし、各画素ブロックは、4×4画素又は8×8画素等の固定の画素数である。
画像圧縮器100の固定レート圧縮器120は、目標ビット長を有する圧縮ブロックを取得するためにスーパーブロックのプロパティ値を固定レート圧縮する。固定レート圧縮器120は、出力された圧縮ブロックが目標ビット長を有する限り、規定のあらゆる固定レート圧縮アルゴリズムに従ってプロパティ値を圧縮する。
メモリ割当器130は、固定レート圧縮器120からの圧縮ブロックをメモリ140、300の記憶場所に割り当てる。これらの記憶場所は、スーパーブロックにより含まれた複数の画素ブロックに割り当てられるか、あるいは画素ブロック専用である。これは、同一の圧縮ブロックの複数のコピーがこれらの記憶場所に存在し、関連する画素ブロックに対して各記憶場所において1個の圧縮ブロックのコピーが存在することを意味する。メモリ140は画像圧縮器100に存在する。あるいは、メモリ300は外部に又はリモートで提供される。そのような場合、圧縮ブロックは有線で又は無線で送出される。あるいは、メモリ割当器130は、最初に、内部メモリ140の複数の記憶場所に圧縮ブロックを入力し且つ格納する。次に、画像又はテクスチャ全体が圧縮されると、圧縮ブロックデータは、復号化システム等においてリモートメモリ300に転送される。
画像圧縮器100は、一実施形態において圧縮ブロックの複数のコピーを含むスーパーブロックのプロパティ値を表現することを示す誤差計測値を判定する誤差処理器170を備えるのが好ましい。誤差計測値が最大誤差閾値を上回る場合にスーパーブロックを複数の個別の画素ブロックに分解するブロック分解器160が提供されてもよい。そのような場合、固定レート圧縮器120はプロパティ値を再度圧縮するが、ここでは各画素ブロックが別個に処理されるため、複数の一般に異なる圧縮ブロックを生じさせる。これらの圧縮ブロック130は、画素ブロック毎に専用のメモリ140、300の記憶場所に割り当てられる。従って、これらの複数の記憶場所は、一般に種々の圧縮ブロックデータを含む。
別の実施形態において、圧縮ブロックの複数の一致するコピーを含むスーパーブロックのプロパティ値を表現することを示す第1の誤差計測値を判定する誤差処理器170を使用する。スーパーブロックは、ブロック分解器160により個別の複数の画素ブロックに更に分解される。固定レート圧縮器120は、複数の圧縮ブロックを取得するためにそのような各画素ブロックを固定レート圧縮する。次に、誤差処理器170は、複数の圧縮ブロックを含むスーパーブロックのプロパティ値を表現することを示す第2の誤差計測値を算出する。本実施形態において、誤差計測値は上述されたレート歪み値であるのが好ましい。2個以上の種類のスーパーブロックが図3B〜図3Iに関連して上述したように使用可能である場合、画像の一部分が3回以上圧縮されてもよいため、スーパーブロック、スーパーブロックの組合せ、スーパーブロックと画素ブロックとの組合せ又は画素ブロックの組合せ毎の誤差計測値を判定する。
オプションの表現選択器180は、少なくとも2個の誤差計測値を解析し、プロパティ値がスーパーブロックとして共に圧縮されるべきか、あるいは複数の画素ブロックとして個別に圧縮されるべきかを選択する。レート歪み計測値の場合、最も低いレート歪みに起因するバージョンが表現選択器180により選択される。
画像圧縮器100は、モード識別子を圧縮ブロックに割り当てるモード割当器150を更に備えるのが好ましい。このモード識別子は、圧縮ブロックの専用のビット又はビットシーケンスであるか、あるいは圧縮ブロックの色コードワードを更に示す等の2元機能を少なくとも有する。モード識別子は、プロパティ値がスーパーブロックとして共に圧縮された方法、複数のスーパーブロック又は1つのスーパーブロック及び複数の画素ブロックとして部分的に共に圧縮された方法、あるいは複数の画素ブロックとして個別に圧縮された方法を示す値を有する。
画像圧縮器100のユニット110〜130、150〜180は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。画像圧縮器100は、例えば、コンピュータ、ラップトップコンピュータ、移動電話及び他の移動処理ユニット、ゲーム機等のテクスチャ処理端末の中央処理装置(CPU)上に設けられてもよい。ソフトウェアで実現される場合、特定の実施形態は、適切なオペレーティングシステム及びメモリ手段を有するコンピュータ又は他のあらゆるデータ処理端末に導入される場合に本明細書において開示された画像圧縮及び/又は画像ブロック圧縮の機能性を実行するようにコンピュータ又はデータ処理端末を動作可能に構成する機械可読命令の集合を有するコンピュータプログラムに関する。このような状況において、コンピュータは、コンピュータプログラムにより規定された画像(ブロック)圧縮の機能性を実行する手段を有するあらゆる処理デバイス、端末、チップ、ユニット又はシステムを含むように広く解釈されるべきである。
更に画像(ブロック)圧縮の機能性は、コンピュータ可読媒体、コンピュータのハードディスク等のメモリ、あるいは他の画像又はグラフィックス処理ユニット、ROM,RAM等上で具体化されてもよい。
[画像復号器]
図13は、図11において示された画像復号器等の画像復号器200の一実施形態を示す概略ブロック図である。画像復号器200は、少なくとも1個の画素、画像の画素を復号化するのに必要なプロパティ値を含む目標画素ブロックと関連付けられた圧縮ブロックのメモリアドレスを判定するアドレス判定器260を備えるのが好ましい。
アドレス判定器260により判定されたメモリアドレスは、画像復号器200において実現されたメモリアクセッサ210に転送され、メモリにアクセスし且つ判定されたメモリアドレスを占有する圧縮ブロックを取り出す。メモリは、一般に、限られたメモリ帯域幅を有するメモリバスを介してメモリアクセッサ210にアクセス可能なRAMである。
読み出された圧縮ブロックは、少なくとも1個のプロパティ値を取得するために圧縮ブロックのビットシーケンスを伸張するように構成された伸張器220に送られる。少なくとも1個のプロパティ値は、目標画素ブロックの少なくとも1個の画素に割り当てられる。それに対応して、圧縮ブロックに存在するモード識別子が、圧縮ブロックがスーパーブロックを起源とすることを示している場合、伸張から取得された少なくとも1個のプロパティ値は、圧縮中にスーパーブロックとして目標画素ブロックと共に圧縮された少なくとも1個の隣接画素ブロックに割り当てられる。あるいは、伸張器220は、最初に目標画素ブロックの少なくとも1個のプロパティ値を伸張する。その後、伸張器220は、隣接画素ブロックの少なくとも1個のプロパティ値を伸張する必要がある。しかし、隣接画素ブロックの圧縮ブロックは、前の目標画素ブロックに対してメモリアクセッサ210により取り出された圧縮ブロックデータに一致するため、既にキャッシュに存在する。従って、伸張器220は、圧縮ブロックを直接伸張し、別のメモリアクセスを必要とせずに少なくとも1個のプロパティ値を隣接画素ブロックに提供する。
画素復号器250は、取得したプロパティ値のうちの少なくとも1個に基づいて画像の画素を復号化するように構成される。好適な一実現例において、復号化する特定の画素に依存して、目標画素ブロックからの少なくとも1個のプロパティ値及び少なくとも1個の他の画素ブロックからの少なくとも1個の画素は、2次元線形補間又は3次元線形補間等において画像中の画素のプロパティ値を算出するために使用されるのが好ましい。
画像復号器200は、オプションとして、上述したように目標画素ブロックのメモリアドレス及び好ましくはモード識別子に基づいて少なくとも1個の他の画素ブロックを識別するように構成された画素識別器270を備える。
伸張されたプロパティ値を目標画素ブロックと同一のスーパーブロックに存在する少なくとも1個の他の画素ブロックの画素に割り当てるのではなく、メモリアクセッサ210によりアクセスされた圧縮ブロックは、画像復号器200に対して使用可能なキャッシュの少なくとも2個のキャッシュ場所に一時的に入力される。そのような場合、これらのキャッシュ場所のうちの1個は目標画素ブロックに対して使用可能であり、少なくとも1個の他の場所は少なくとも1個の他の画素ブロックに対して使用可能である。そのような場合、後で復号化中に及び少なくとも1個の他の画素ブロックからのプロパティ値が必要とされる場合、圧縮ブロックは、新しいデータにより置換されない限り、新しい時間のかかるメモリアクセスを実行することなくキャッシュ場所から取り出される。
画像復号器200のユニット210〜280は、ソフトウェア、ハードウェア又はそれらの組合せとして提供されてもよい。画像復号器200は、例えばコンピュータ、ラップトップコンピュータ、移動電話又は別の移動処理ユニット、ゲーム機等のテクスチャ処理端末のGPU上に設けられてもよい。
ソフトウェアで実現される場合、特定の実施形態は、適切なオペレーティングシステム及びメモリ手段を有するコンピュータ又は他のあらゆるデータ処理端末に導入される場合に本明細書において開示された画像復号化及び/又は画像ブロック復号化の機能性を実行するようにコンピュータ又はデータ処理端末を動作可能に構成する機械可読命令の集合を有するコンピュータプログラムに関する。このような状況において、コンピュータは、コンピュータプログラムにより規定された画像(ブロック)復号化の機能性を実行する手段を有するあらゆる処理デバイス、端末、チップ、ユニット又はシステムを含むように広く解釈されるべきである。
更に画像(ブロック)復号化の機能性は、コンピュータ可読媒体、コンピュータのハードディスク等のメモリ、あるいは他の画像又はグラフィックス処理ユニット、ROM,RAM等上で具体化されてもよい。
上述したように、画像圧縮器及び/又は画像復号器は、ソフトウェア、ハードウェア又はそれらの組合せとして実現されてもよい。画像圧縮器及び/又は画像復号器、あるいはそれらの一部を実現するコンピュータプログラムは、汎用のあるいは特別に構成されたコンピュータ、プロセッサ又はマイクロプロセッサ上で実行されたソフトウェア又はコンピュータプログラムを含む。ソフトウェアは、コンピュータプログラムコード要素又はソフトウェアコード部分を含む。プログラムは、全体的にあるいは部分的に、1個以上の適切なコンピュータ可読媒体、あるいは磁気ディスク、CD−ROM又はDVDディスク、USBメモリ、ハードディスク、光磁気メモリ記憶媒体等のデータ格納手段上に、あるいはそれらに、RAM又は揮発性メモリに、ファームウェアとしてROM又はフラッシュメモリに、あるいはデータサーバ上に格納されてもよい。画像圧縮器及び/又は画像復号器は、上述したようにコンピュータ又は他のあらゆるデータ処理デバイスにおいて実現されてもよい。
[実現例の態様]
特定の一実施形態において、バーストモードでクロックサイクル毎に2個の8ビットのワード、すなわち16ビットを生成することを意味する「2倍速」である8ビット幅のバスを含む復号化システムを仮定する。通常、メモリ転送を設定するのに3クロックサイクルを要する。これは、当技術分野において「CASサイクル」と呼ばれる。従って、16ビットのメモリ転送を設定するために、この例において4サイクル、以下のCにより示されたCASに対して3サイクル及び以下のT16により示されたデータ転送に対して1サイクルが必要とされる。
C C C T16
しかし、サイズ4のバーストは、3個のCASサイクルがかかるが、更に3個の転送のみを必要とし、以下の結果が得られる:
C C C T16 T16 T16 T16
あるいは7サイクルが得られる。従って、1/2以下のサイクル数の場合、4倍のデータが取得される。従って、8ビットのバスシステムにおいて、64ビットは適度なバーストサイズであるが、16ビットの読み出しは不経済である。これは、各画素ブロックが64ビット幅である多くの固定レート圧縮アルゴリズムに対してうまく適合する。
一実施形態は、本明細書においてテクスチャを4×4画素ブロックに分割し且つETC2又はDXTC等を使用して各ブロックを64ビットに圧縮する従来のテクスチャ圧縮システムと比較される。
テクスチャは、一般に、互いに近接するバイトが多くの場合互いに近接する画像の特徴を示すように、局所性を向上するためにモートン序列で格納される。従って、16×16画素サイズのテクスチャは、m00〜m15の16個の4×4画素ブロックを有する。それらは、モートン序列で配置される場合、以下のように画面上に配列される。
m00 m01 m04 m05
m02 m03 m06 m07
m08 m09 m12 m13
m10 m11 m14 m15
しかし、圧縮されたそれらに対応するものは、m00 m01 m02 m03 m04 m05 m06...m15としてメモリに配列される。
殆どのシステムは、画像の微分係数が算出されるように2×2画素のチャンクにおいて画像をラスタ化する。図14において、16×16ビットのカラーバッファが示される。第1の2×2画素チャンクは4個の白丸でマーク付けされ、第2の2×2画素チャンクは4個の三角形でマーク付けられ、プラス符号及び十字形が後続する。カラーバッファ全体を範囲に含む大きな四辺形がレンダリングされ、且つ白丸でマーク付けされた画素が最初にラスタ化されて三角形でマーク付けられた画素等が後続すると仮定する。
次に、ラスタライザは、一般に画素毎にフラグメントシェーダプログラムを実行する。ラスタライザは、白丸でマーク付けされた4個のフラグメントに対してフラグメントシェーダプログラムにおいて同時に第1の命令を実行することにより開始する。ラスタライザは、テクスチャルックアップに達するまで全ての4個のフラグメントに対して第2の命令、次に第3の命令等を実行することにより継続する。所望のテクセルがキャッシュにない場合、外部メモリへの読み出しコマンドが付与される。しかし、ラスタライザは、データが使用可能になる前にいくつかのクロックを要する。従って、ラスタライザは、キャッシュミスを含むテクスチャルックアップに達するまで、白丸でマーク付けされた4個のフラグメントに対する状態を省き、三角形でマーク付けされたフラグメントに対する命令、全ての4個のフラグメント上のシェーダの第1の命令、次に第2の命令等を代わりに実行し始める。その後ラスタライザは、8×8ブロックにおいて最後の4個の画素に達するまで、プラス、次に十字形等最後まで進む。このように実行される場合、ラスタライザは、白丸でマーク付けされたフラグメントを再考する。この時点で、メモリの要求が提供され且つデータが使用可能である可能性が非常に高い。ここで、ラスタライザは、キャッシュミスを含む別のテクスチャルックアップを終了するか、あるいはそれに達するまで、フラグメントシェーダにおいて次の命令を実行し、その後、三角形等でマーク付けされたフラグメントを継続する。全てのフラグメントが全てのシェーダ命令を有する場合、ラスタライザは終了する。
このように、ラスタライザは、テクスチャアクセスにより発生するメモリ遅延時間の殆どを隠蔽する。
特定の一実現例において、モード識別子は、圧縮ブロックデータの開始又は開始に近接して存在するのが好ましい。そのような場合、モード識別子に対応するビットが受信され且つ調査されると、復号器は、圧縮ブロックがスーパーブロックに対応する単一の画素ブロック又は複数の画素ブロックに適用可能であるかを結論付ける。後者の場合、復号器は、同一のスーパーブロックの他の画素ブロックに関連するあらゆる読み出しコマンドをキューから除去する。これは、これらの他の画素ブロックに対する圧縮データがメモリから読み出される必要はなく、キューにおいて関連付けられた読み出しコマンドを有する他の画素ブロックの圧縮データが代わりに処理されることを意味する。これにより、メモリからキャッシュへの圧縮データの転送を更に加速する。
従来のアーキテクチャは、一般に、DXTC又はETC2を使用し、4×4画素ブロック毎に64ビットを使用する。4×4画素ブロックは、一般にモートン序列で格納される。一例を図15において示す。図15は、図14においてレンダリングされた四辺形が32×32画素サイズのテクスチャにマッピングされる方法を示す。例えば、Aでマーク付けされた図14における左上の隅は、Aで更にマーク付けされた図15において右端の隅にマッピングされる。
図15において各画素をレンダリングするために、図14における4個のテクセル又は画素は、2次元線形ブレンドを実行するために読み出される。例えば、四角形でマーク付けされた4個の画素は、圧縮ブロックm15に存在するテクセル又は画素を必要とする。ラスタライザは圧縮ブロックm15を取り出し、これには64ビット、すなわち7サイクルの1個のバーストアクセスを要する。その後、ラスタライザは、黒丸でマーク付けされたフラグメントを処理する場合、圧縮ブロックm12を読み出す必要があり、これには更に64ビット、すなわち別の7サイクルを要する。従って、四角形及び黒丸でマーク付けされた双方の画素をラスタ化するために、128ビット及び14サイクルは、従来技術に従って外部メモリから読み出される必要がある。
提案された一実施形態において、4個の4×4画素ブロックはスーパーブロックを形成する。例えば、m12、m13 m14及びm15は、モートン序列で互いに隣接し且つ四角形を構成するため、そのようなスーパーブロックを形成する。従って、7サイクルのうちの64ビットのバーストを使用して圧縮ブロックm15を取り出す場合、圧縮ブロックm12、m13及びm14は無償で取り出される。従って、黒丸でマーク付けされた画素が後でラスタ化される際、データが依然としてキャッシュにある場合は別のメモリアクセスは必要ない。7サイクルはそのように節減される。
実際には、バスは、今日一般に8ビット幅ではなく32ビット幅であり、4サイクルのバーストは64ビットではなく256ビットを取り出す。これは、従来の固定レートシステムが経済的なバースト挙動を有するように同時に4個の4×4画素ブロック又は8×8画素ブロックを読み出すことを意味する。提案されたシステムが256ビットの画素ブロックに対して8×8画素及び例えば256ビットの16×16スーパーブロックを有するため、これにより解析は変化しない。
画像Lenaは、画像を8×8スーパーブロックに分割し、且つ8×8スーパーブロックを更にそれぞれ4個の4×4画素ブロックに分割することにより従来技術のETC2に従って圧縮され、ETC2で全ての4×4画素ブロックを符号化する。伸張後の結果を図16の右側に示す。
また、8×8スーパーブロックの各々は、ETC2で符号化された4×4画素ブロックにサブサンプリングされた。SSDはスーパーブロック毎に算出され、最低品質のスーパーブロックは従来技術に従って代わりに圧縮された。すなわち、スーパーブロックの4個の画素ブロックの各々は個別に圧縮される。この処理は、画像の50%がスーパーブロックで処理され且つ残りの半分が個別の画素ブロックを有するまで繰り返された。伸張後の結果を図16の左側に示す。
従来技術に従うビットレートは、4ビット/画素(bpp)である。本発明の例において、ETC2圧縮器から64ビットシーケンスに追加された1ビットのモード識別子を有することにより、スーパーブロック及び画素ブロック毎に65ビットが費やされた。従って、ビットレートは、65/16×0.5+65/64×0.5≒2.54bppとなった。図16において示されるように、品質は依然として非常に高いが、ビットレートはほぼ半分である。
ビットレートの低下は36.5%と大幅に増加した。しかし、バスを介して転送される全てのテクセルが更に使用される場合にのみ、帯域幅がこのように節減される。スーパーブロックを使用する場合もあるため、これに当てはまらない可能性が高い。例えば、スーパーブロックが読み出される回数が半減する場合、画素ブロックを読み出すことは回避されると仮定する。それにより、25%の帯域幅削減が達成され、これは非常に意義深い。例えば10%のより低い削減でさえ意義深いと考えられる。
更なる実現例の一例において、主に写真の64個のテクスチャ及びゲームテクスチャの集合だけでなく、コンピュータにより生成された少数の画像が圧縮されている。固定レート圧縮器はDXT1−565圧縮に対するThe Compressonator 1.50.1731であり、DXT1−555に達するために緑色成分において徹底的に探索された。従って、色コードワードの各々の1ビットは、上述したようにモード識別子として使用された。λを変動させることにより、各画像は、1bppから、すなわち図3Cにおけるような8×8画素のスーパーブロックのみを使用して4bppの多数のレートに圧縮された。ピーク信号対雑音比(PSNR)に関しての品質は、
PSNR=10log(3wh2552/sse)
を使用して算出された。式中、sseは画像にわたる平方誤差和であり、w及びhはテクスチャの幅及び高さである。図17において、2個の破線は、レートに対する2個の異なるテクスチャの品質をグラフ化する。図示されるように、2個の破線はかなり異なる。すなわち、上部の破線の曲線の場合、品質が顕著に低下する前にビットレートを大幅に減少できるが、下部の破線の曲線により示されたテクスチャは、レートが下がる前に品質が急速に低下する。全ての64個のテクスチャに対してsseを平均化することにより、最終的により短い黒色の実線の曲線が得られる。比較すると、従来技術に係る通常の固定レートDXT1−565は、4bpp及び37.9dBでグラフにおいて三角形により示される。尚、PSNRは、提案されたシステムの一実施形態を示す黒色の実線の曲線の端よりわずかに高い。この理由は、モード識別子に対して空間を有するために緑色成分において犠牲にされた2ビットである。通常は、提案されたシステムにより、かなり大きな帯域幅の削減に対して少量の品質を交換できることは、黒色の曲線から更に明らかである。
別の実現例の態様において、固定レートDXT1−565より高いビットレートを有するコーデックは、品質を更に向上するために使用される。実現例の例により、4×4画素ブロックに対して使用される128ビット/ブロックコーデック(8bpp)が提供される。第1の64ビットは、2ビットのモード識別子に対して場所を開けるためにRGB555として格納された色を再度含むDXT1−555ブロックを示す。第2の64ビットは、DXT5において単にアルファ成分として復号化されるが、アルファ値ではなく画素毎に強度変更子値を含む。例えば、第1の64ビットから復号化されたRGB値が(222; 132; 16)であり、対応する画素に対する強度変更子値が178である場合、結果として得られる色はclamp((222; 132; 16)+(178; 178; 178)−(128; 128; 128))=(256; 182; 66)となる。式中、clamp(・)は結果として得られる値が[0; 255]の間隔にあることを確実にし、定数128により負の強度変更子を有することが可能になる。このコーデックは、[7]において示されたYCog−DXT圧縮の簡略化されたバージョンとしてみなされる。このようにDXT1−555分解値を補正することにより実質的に品質が向上するが、結果としてビットレートは倍増する。DXT1−555圧縮の前に各色値を平面R+G+B−384=0上で投影に向けて移動させることにより、いくつかのブロックに対して品質が更に向上する。
これにより、DXT1−555パートがクロミナンスを符号化するのが更に容易になる場合があるため、発生した強度誤差は強度変更子により容易に補正される。個別の色値は、R+G+B−384=0平面まで完全に移動されるか、あるいはいくつかの値が[0; 255]の範囲から外れる場合は早めに停止される。各画素ブロックが投影を用いて且つ投影を用いずに符号化され、結果として最高品質の圧縮が維持された。尚、復号器は、圧縮中に投影が使用されたか否かを認識する必要はない。すなわち、ビットは、このことを復号器に信号伝送する必要はない。本発明の例において、この変更された8bppコーデックは、画素の輝度を変更することにより動作するため、「modlum」と示される。
固定レートコーデックとして適用される場合、この変更された8bppコーデックにより、PSNRは64個の画像上で測定された固定レートDXT1−565に対して5.4dB増加するが、結果としてビットレートは倍増する。しかし、提案されたシステムの一実施形態において、この高いレートは最も複雑な画素ブロックに対して使用されるだけである。すなわちmodlumコーデックは、そのまま4×4画素ブロックに対してのみ使用される。8×8スーパーブロックは、コーデックにより更に符号化されるが、圧縮前に4×4画素に縮小され、分解後に再度8×8に2次元線形的に拡大される。
あるいは、4×8及び8×4スーパーブロックは、各々が64ビットを使用して4×4画素を符号化する並列の(又は互いの上に)2個のDXT1−155画素ブロックから構成される。従って、全てのサイズの画素ブロック及びスーパーブロックは128ビットを使用し、提案されたアーキテクチャが採用される。本明細書において、画素ブロック及び最大のスーパーブロックがmodlumコーデックに基づくため、この8bppバージョンのシステムは「modlum変数」と呼ばれる。図17におけるより長い実線の曲線は、64個のテストテクスチャに対して平均化されたmodlum変数構成のレート歪み挙動を示す。示されるように、曲線は、4bppのレートにおいて通常のDXT1−565より約2.1dB高い。この向上した品質は、2bppを使用する8×8ブロックを使用することにより単純な領域におけるビットを節減し、且つ8bppを使用する4×4ブロックを使用して複雑な領域においてこれらのビットを使用できるという事実によるものである。しかし、「modlum変数」に対するテクスチャはメモリにおいて2倍の空間を取る。
提案されたシステムの実施形態が同一の帯域幅に対する品質を本当に向上するかを評価し、向上する場合にどれくらい向上するかを評価するために、種々のテクスチャ圧縮方法を使用して種々のシーンをラスタ化し且つ消費されたテクスチャ帯域幅を報告するソフトウェアベースのシミュレーションフレームワークが実現された。シミュレーションフレームワークは実際の帯域幅転送のみを示し、遅延時間はモデル化されない。三角形は、空間的コヒーレンスに対してモートン序列でラスタ化される。テクスチャのキャッシュサイズは2048バイトに設定される。これは、キャッシュが固定レートDXT1システムの場合に2048×8/64=256、圧縮画素ブロック又はスーパーブロック及び提案された8bppシステムの場合に2048×8=128=128個の画素ブロック又はスーパーブロックを保持することを意味する。
帯域幅消費量は、図18において示されたティーポットのテストシーンを使用してシミュレートされた。シーンは、平均的なシーンであるように作成されるが、全ての面に対して1つのテクスチャのみが使用される。テストにおいて使用されたテクスチャは、図19において示されたゲーム「Mirror’s Edge」からのライトマップテクスチャの一部である。64ビットの4×4画素ブロックを使用して通常のDXT1−565を実行する基準システムの帯域幅消費量が最初に測定された。レンダリングされた画像の解像度は、最も高い解像度のミップマップがこの場合は1024×1024において少なくとも時々アクセスされるように設定された。テクスチャアクセスに対して測定された帯域幅はDXT1−565基準システムに対して1:27MBであり、最も高い解像度のミップマップレベル、すなわち図19における左端の画像のPSNRスコアは46.7dBであった。テクスチャグラフィックスの従来技術において既知であるように、ミップマップは、事前に算出され、主なテクスチャに付随する画像の集合を最適化され、レンダリング速度の加速及びエイリアシングアーチファクトの減少を意図する。
テクスチャは、「modlum変数」構成を使用して提案されたシステムで圧縮された。ここで、各マクロブロックのビットレートは2bpp〜8bppで変動した。これにより、0.90MBの帯域幅において5.6dB増加した52.3dBのPSNRスコア、すなわち実質的により低いPSNRスコアが得られた。レート歪み最適化がビットをより複雑な領域に自動的に再分配するため、視覚品質は更に非常に良好である。
最後に、8bppの固定レートとmodlum固定コーデックとの比較が実行された。本明細書において、テクスチャアクセスに対する帯域幅は2.735MB、すなわち提案されたシステムよりほぼ1/3高かったが、同様のPSNRレベルにおいては53.8dBであった。
上記の実験例は、128ビットの単一のブロックがメモリから効率的に転送されると仮定して実行された。実際には、バスの幅及びシステムのバースト挙動は、依然としてバスを効率的に使用しつつメモリ転送の大きさを制限する。2倍速の64ビットのメモリバスが仮定されるため、バーストモード中にクロック毎に128ビットのデータを転送できる。3サイクルのCAS遅延時間が更に仮定され、バーストサイクルは効率的になるように少なくとも4サイクルでなければならず、そのようなバーストアクセスに対して512ビットが得られる。これは、テクスチャブロックが「modlum変数」の解決方法に対して使用された128ビットではなく512ビットであるべきであることを意味する。8×8の画素ブロックのサイズ及び16×8、8×16及び16×16のスーパーブロックのサイズを代わりに使用することにより、512ビットの圧縮サイズが得られる。
前の例が再考され、これらの新しい画素ブロック及びスーパーブロックのサイズは読み出された2個の画素ブロック間の境界上の2次元線形パッチであったと仮定する。次に、基準システムがそれぞれ512ビットの8×8画素ブロックを使用すると仮定する。パッチの2個のテクセル又は画素は、図3Bの画素ブロック30Aに位置し且つ2個は画素ブロック30Bに位置するため、基準システムは画素ブロック30A、30Bの双方を読み出さなければならない。それを開始するために、データ転送は、それぞれ128ビットを搬送する画素ブロック30Aに対して4個のデータ転送サイクルにより後続された3CASサイクルを要する。読み出し画素ブロック30B、ビット512〜1023は、サイクル4において画素ブロック30Bを要求し且つ画素ブロック30Bに対してCASサイクルを効率的に隠蔽することにより早く開始されると仮定される。従って、CASサイクルが常に隠蔽されると仮定すると、転送全体は11サイクル又は8サイクルを要する。
提案されたシステムの実施形態は、最初の512ビットを読み出すことにより更に開始する。しかし、システムは、クロック3において2ビットのモード識別子を含む最初の128ビットを既に取得している。このデータから、システムは、これが隣接する8×8画素において対象のテクセルを更に範囲に含む16×8スーパーブロックであることを判定する。従って、ビット512〜1023が要求される必要はないため、システムは4個の128ビット幅のバスサイクルを節減する。
この解析から、最大のスーパーブロックのサイズが8×8から16×16に変化する場合、システムが不要なメモリアクセスを回避する確率が高いことは明らかである。スーパーブロックのサイズを大きくする1つの方法は、前の2つの実施形態の同一のビルディングブロックを使用することであってもよい。すなわち、例えば、16×16スーパーブロック、4個のアップサンプリングされていない8×8modlum画素ブロックが使用されてもよい。しかし、全ての8×8画素ブロックが独立しているため、それは非効率的である。そのため、4個の画素ブロック間で情報を共有したり、画素ブロックの境界にわたり予測したりするのは不可能である。そのような非効率性を回避するために、ビデオ圧縮のために使用されたH.264コーデックに基づいて8×8、8×16、16×8及び16×16画素に対するコーデックの第3の集合が使用される。H.264において考えられる最小の画像サイズが16×16画素であるため、H.264コーデック[8]の基準となる実現例は、画像を8×8画素に圧縮するように変更されている。全ての画素ブロック及びスーパーブロックに対して同一であるヘッダ情報は省略される。画素ブロック又はスーパーブロックを固定レートに圧縮するために、画素ブロック又はスーパーブロックは、品質及びビット数に影響を及ぼす量子化パラメータqp、0〜51の値の種々の設定で数回圧縮される。依然として固定レートより小さい最大のビットサイズが選択される。復号器が画素ブロック又はスーパーブロックを圧縮するために使用されたqpを認識しなければならないため、qpは6ビットを使用して圧縮ブロックに格納される。提案されたシステムの場合、H.264データに対して376ビットを残し、2ビットはモード識別子となり、6ビットはqpとなり、128ビットはアルファに対して確保される。固定レート基準システムは、2ビットのモード識別子を必要としないため、H.264データの378ビットに適合する。
H.264ベースの符号器の第1のテストは、帯域幅における実質的な利得がシステムにとって活用するのが容易であるべきテクスチャに対して構築されるかを確認するためのものである。それを実行するために、図20において示されたテクスチャの帯域幅消費量がシミュレートされている。このため、このテクスチャを使用する全ての面を含むティーポットのシーンが使用された。帯域幅消費量は、最初に8×8画素ブロックを使用する固定レートH.264基準システムに対して測定された。品質の違いを更に明確に示すために、ビットレートが4bppに下げられた。これは、単一の8×8画素ブロックが256ビットを使用して格納されたことを意味する。テクスチャアクセスに対して測定された帯域幅は、基準システムの場合2.298MBであった。
テクスチャは、同一のサイズのキャッシュを使用することにより、提案されたシステムの実施形態を使用して圧縮された。ここで、各マクロブロックのビットレートは変動した。これにより、62%低い0.913MBの帯域幅指数が得られた。レート歪み最適化がビットをより複雑な領域に自動的に分配するため、図20において示されるように依然として非常に良好な品質が重要な領域において維持される。H.264コーデックが種々のビットレートで動作するため、8×8固定レートコーデックにおける画素ブロック毎のビット数は、提案されたシステムの帯域幅に厳密に一致するように下げられる。帯域幅がそのように低いため、16×16の固定ブロックのサイズを使用するほうがよいことが判明するが、そうであっても、測定されたPSNRは提案されたシステム、すなわち最も高い解像度の画像よりほぼフルdB低い。測定データに伴うティーポットのシーンのスクリーンショットは、図18において見られる。図18におけるスクリーンショットに関連する性能値を以下の表Iに示す。
次の実験例が示すように、テクスチャにおける種々の領域に対して帯域幅消費量、すなわち品質を指向する機能は、平均的な品質が同等に分解される場合であっても有用である。本明細書において、提案されたシステムの実施形態は、16×16サイズの画素ブロックの固定レートシステムと比較される。図21において示されたように、16×16固定レートシステムは、平均的なPSNRに関して提案されたシステムより実際に性能が優れている。依然として、テクスチャにおける品質を前景の子供の顔及び体の領域に指向する手段は、提案されたシステムの品質が主観的により優れていると非常に適切に知覚されてもよいことを意味する。図21におけるズームインは、提案されたシステムにおいて好都合な顔の領域及び不都合な砂の領域を示す。
いくつかのテクスチャの場合、全ての領域は、同等に符号化しにくく、同等に主観的に重要である。この場合、固定レート符号器は最適であり、品質をどの程度向上させるかによって無駄にされるビットはない。しかし、このような場合でも、提案されたシステムは、種々のビットレートで種々のテクスチャを圧縮できるため有益である。次の実験例はこれを示す。ゲームシーンは32個のテクスチャを示す。残りの128ビットがアルファに対して確保されると仮定して、画素ブロック毎に384ビットを使用して8×8固定レート基準システムでこれらを圧縮した。テクスチャ毎にPSNRスコアが算出され、中間スコア51.9dBが示された。次に、シーンがレンダリングされ、測定されたテクスチャ帯域幅は2.46MBであった。
提案されたシステムの場合、全てのテクスチャは、目標品質として52dBに切り上げられた中間PSNRスコアで圧縮された。従って、テクスチャの半分は最大ビットレートで、すなわち図3Bに従って符号化され、残りの半分は中間PSNRスコアを目標とし、品質が低下するだろう。このように、テクスチャの最も圧縮しやすい半分のみが変更された。レンダリングする場合、提案されたシステムに対するテクスチャ帯域幅は1.49MBであり、39.2%の削減であった。これは、テクスチャの半分のみを変更するより大きな削減である。実際には、これは、部分的には、フロアテクスチャがある種のキャッシュブースティング効果を享受し、より大きなスーパーブロックがキャッシュにおいて同一の量のビットを取りつつより多くの画素を範囲に含む、すなわち有用なサイズのキャッシュがそのようなスーパーブロックに対して大きくなることを意味するためであった。フロアテクスチャがたまたま符号化しやすいため、そのスーパーブロックは図3Cにおいて示されたようなものである場合が多かった。従って、ミップマップレベル全体は、基準システムより早くフルLODレベルでキャッシュに適合し、帯域幅消費量が大幅に削減される。
更に、いくつかのミップマップレベルは他のものより更に圧縮しにくい可能性があるため、提案されたシステムはミップマップレベル間でビットレートを変動させ、これは有益である。適切な一例は、高周波数のコンテンツを含むテクスチャ、例えば固定レートで圧縮された図22において示されたゲームシーンのテクスチャである。最も高い解像度のミップマップレベルにおいて、テクスチャは、ノイズを伴い圧縮しにくい。すなわち、PSNRは38.18dBである。2ミップマップレベル離れると、画像は、より平滑になり圧縮しやすい。すなわち、ここでPSNRは47.08dBである。このミップマップレベルにおいて多くの品質を低下させずに帯域幅を取得できるのは明らかであるが、これは最も高い解像度のミップマップレベルには当てはまらない。
最後の実験例は、システムをストレステストすることに対して実行された。提案されたシステムの実施形態の主な利点は、システムが余分なコストをかけずに必要以上に多くの画素を読み出すことである。すなわち、これらの画素が全く使用されない場合、帯域幅の削減は小さい。反射のシーンは、この様な場合をテストするために作成された。反射のシーンは、ノイズを伴う反射マップを含む球体を示す。従って、球体からの反射により互いに遠く離れたテクスチャルックアップが得られるため、提案されたシステムが取得するものは殆どない。しかし、完全にインコヒーレントなルックアップであっても、利得はゼロではない。これは、2次元線形パッチが個別のテクセルではなくテクスチャから読み出されるためである。従って、2次元線形パッチは、固定レート基準システムにおいて8×8境界上に配置される場合、提案されたシステムにおいて完全にスーパーブロックの内部にある場合があり、帯域幅の1画素ブロックが節減される。このシーンにおいて、fr=8bppのフルレートが使用された。環境マップを圧縮する場合、レート歪みが目標tr=3:8bppに設定されたため、考えられる最大の節減は1−3.8/8=52.5%となる。このシーンにおいて、球体自体のテクスチャ帯域幅のみが計測され、テクスチャルックアップは最大限にインコヒーレントであるべきである。シーンが320×320画素の解像度にレンダリングされたことにより、最も高い解像度のミップマップの少なくともいくつかのテクスチャアクセスが得られた。測定された結果は期待された以上であり、帯域幅に対する要求が0.56MBから0.38MBに下がり、32%の削減であった。従って、テクスチャコヒーレンスはこの画像中で依然として非常に高く、実際に方法をストレステストするため、球体上でランダムノーマルに完全に切り替える。ランダムノーマルであっても、提案された方法のテクスチャリング帯域幅は基準システムに対してより5.5%低かった。
添付の請求の範囲により規定される本発明の範囲から逸脱せずに、種々の変形及び変更が本発明に対して行われてもよいことは、当業者により理解されるだろう。
[参考資料]
[1]米国特許第5,956,431号公報
[2]Strom及びMoller、「iPACKMAN: High−Quality, Low−Complexity Texture Compression for Mobile Phones」、Grafhics Hardware、2005年、ACM Press、63〜70ページ
[3]Inada及びMcCool、「Compressed Lossless Texture Representation and Caching」、Graphics Hardware、2006年
[4]Strom及びPettersson、「ETC2: Texture Compression using Invalid Combinations」、Grafhics Hardware、2007年、ACM Press、49〜54ページ
[5]国際公開第WO2006/006915号
[6]ITU−T、H.264: Advance video coding for generic audiovisual services、2007年11月
[7]van Waveren及びCastano、「Real−Time YCoCg−DXT Compression」 nVidia Report、2007年、http://developer.nvidia.com/object/real−time−ycocg−dxt−compression.htmにおいて入手可能
[8]Suehring、JM Software H.264/AVC、http://iphome.hhi.de/suehring/tml/

Claims (20)

  1. プロパティ値を有する複数の画素(40)を含む画像(1)を圧縮する方法であって、
    前記画像(1)を複数のスーパーブロック(20、22)に分解するステップと、
    ここで、スーパーブロック(20、22)はN個の画素ブロック(30A−30D,32A−32D)で構成され、各画素ブロックは複数の画素(40)で構成され、Nは2以上の整数である;
    目標ビット長を有する圧縮ブロックを取得するため、前記スーパーブロック(20)のプロパティ値を固定レート圧縮するステップと、
    前記スーパーブロック(20)が包含する前記N個の画素ブロックに割り当てられたメモリロケーション(310、320)に、前記圧縮ブロックのN個のコピーを取得するために、前記圧縮ブロックを割り当てるステップとを有し、
    前記圧縮ブロックのN個のコピーの集合が、前記スーパーブロック(20)の圧縮表現を構成することを特徴とする方法。
  2. 前記圧縮ブロックがN個の画素ブロック(30A〜30D)に適用可能であることを示す第1の値を有するモード識別子を前記圧縮ブロックに割り当てるステップを更に含むことを特徴とする請求項1に記載の方法。
  3. 前記複数のスーパーブロック(20、22)のうちの少なくとも他方のスーパーブロック(22)に対して、
    前記他方のスーパーブロック(22)を、複数の画素(40)のN個の画素ブロック(32A〜32D)に分解するステップと、
    前記目標ビット長を有する圧縮ブロックを取得するため、画素ブロック(32A〜32D)のプロパティ値を固定レート圧縮するステップと、
    前記圧縮ブロックを、前記画素ブロックに割り当てられたメモリロケーションに割り当てるステップと、
    ここで、前記圧縮ブロックのN個のコピーの集合が、前記他方のスーパーブロック(22)の圧縮表現を構成する
    を更に有することを特徴とする請求項1又は2に記載の方法。
  4. 前記圧縮ブロックの前記N個のコピーを含む前記スーパーブロック(20)の前記プロパティ値を表現を示す誤差計測値を判定するステップと、
    前記誤差計測値が最大誤差閾値を上回る場合、
    前記スーパーブロック(20)を、複数の画素(40)を有する前記N個の画素ブロック(30A〜30D)に分解するステップと、
    前記スーパーブロック(20)の前記N個の画素ブロック(30A〜30D)の画素ブロック(30A〜30D)毎に、
    前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック(30A〜30D)のプロパティ値を固定レート圧縮するステップと、
    前記画素ブロック(30A〜30D)に対して割り当てられたメモリロケーション(310、320)に前記圧縮ブロックを割り当てるステップとを更に有し、
    前記メモリロケーション(310、320)における前記N個の圧縮ブロックの集合が、前記スーパーブロック(20)の前記圧縮表現を構成することを特徴とする請求項1乃至3のいずれか1項に記載の方法。
  5. 前記圧縮ブロックが1個の画素ブロック(30A〜30D)に適用可能であることを示す第2の値を有するモード識別子を、前記N個の圧縮ブロックの各圧縮ブロックに割り当てるステップを更に有することを特徴とする請求項3又は4に記載の方法。
  6. 前記圧縮ブロックの前記N個のコピーを含む前記スーパーブロック(20)の前記プロパティ値を表現することを示す第1の誤差計測値を判定するステップと、
    前記スーパーブロック(20)を、複数の画素(40)を有する前記N個の画素ブロック(30A〜30D)に分解するステップと、
    前記スーパーブロック(20)の前記N個の画素ブロック(30A〜30D)の画素ブロック(30A〜30D)毎に、
    前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック(30A〜30D)のプロパティ値を固定レート圧縮するステップと、
    前記画素ブロック(30A〜30D)に対して割り当てられたメモリロケーション(310、320)に前記圧縮ブロックを割り当てるステップと、
    ここで、前記メモリロケーション(310、320)における前記N個の圧縮ブロックの集合が、前記スーパーブロック(20)の前記圧縮表現を構成する;
    前記N個の圧縮ブロックを含む前記スーパーブロック(20)の前記プロパティ値を表現を示す第2の誤差計測値を判定するステップと、
    前記第1の誤差計測値及び前記第2の誤差計測値に基づいて、前記圧縮ブロックの前記N個のコピー及び前記N個の圧縮ブロックのうちの1つを選択するステップと
    を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の方法。
  7. メモリ(300)に格納された複数の圧縮ブロックにより表わされる画像(5)を復号する方法であって、
    前記メモリ(300)から圧縮ブロックを取り出すステップと、
    複数のプロパティ値を取得するために前記圧縮ブロックを伸張するステップと、
    前記複数のプロパティ値を画素ブロック(30A)、及び、スーパーブロック(20)において前記画素ブロック(30A)と共に含まれる少なくとも1個の他の画素ブロック(30B〜30D)に割り当てるステップと、
    前記画素ブロック(30A)の少なくとも1個のプロパティ値及び前記他の画素ブロック(30B〜30D)の少なくとも1個のプロパティ値に基づいて前記画像(5)を復号するステップと
    を有することを特徴とする方法。
  8. 前記伸張するステップは、前記複数のプロパティ値及びモード識別子を取得するために前記圧縮ブロックを伸張するステップを含み、
    前記割り当てるステップは、前記モード識別子が第1の値を有する場合、前記複数のプロパティ値を前記画素ブロック(30A)及び前記スーパーブロック(20)において前記画素ブロック(30A)と共に含まれる前記少なくとも1個の他の画素ブロック(30B〜30D)に割り当てるステップを有することを特徴とする請求項7に記載の方法。
  9. 前記メモリ(300)において前記画素ブロック(30A)に割り当てられたアドレスを判定するステップと、
    前記アドレスに基づいて前記少なくとも1個の他の画素ブロック(30B〜30D)を識別するステップと
    を更に有することを特徴とする請求項7又は8に記載の方法。
  10. 前記画素ブロック(30A)に割り当てられたキャッシュ(420)のキャッシュロケーション(422)に前記圧縮ブロックを入力するステップと、
    前記少なくとも1個の他の画素ブロック(30B〜30D)に割り当てられた前記キャッシュ(420)のキャッシュロケーション(424)に前記圧縮ブロックをコピーするステップと
    を更に有することを特徴とする請求項7乃至9のいずれか1項に記載の方法。
  11. プロパティ値を有する複数の画素(40)を含む画像(1)を圧縮する画像圧縮器(100)であって、
    前記画像(1)を複数のスーパーブロック(20、22)に分解する画像分解器(110)と、
    ここで、前記スーパーブロック(20、22)は、各々が複数の画素で構成されるN個の画素ブロック(30A〜30D、32A〜32D)を含み、前記Nは2以上の整数である;
    前記複数のスーパーブロック(20、22)うちの少なくともスーパブロック(20)について、目標ビット長を有する圧縮ブロックを得るため、前記スーパーブロックのプロパティ値を固定レート圧縮する固定レート圧縮器(120)と、
    メモリ(140、300)の、
    前記圧縮ブロックをメモリ(140、300)のメモリロケーション(310、320)に割り当てるメモリ割り当て器(130)と、
    ここで、前記メモリロケーションは、前記圧縮ブロックのN個のコピーを得るため前記スーパーブロック(20)で包含される前記N個の画素ブロック(30A〜30D)にそれぞれ割り当てられている;
    前記圧縮ブロックのN個のコピーの集合が、前記スーパーブロック(20)の圧縮表現を構成する
    ことを特徴とする画像圧縮器。
  12. 前記圧縮ブロックがN個の画素ブロック(30A〜30D)に適用可能であることを示す第1の値を有するモード識別子を前記圧縮ブロックに割り当てるモード割当器(150)を更に備えることを特徴とする請求項11記載の画像圧縮器。
  13. 前記複数のスーパーブロック(20、22)のうちの少なくとも他方のスーパーブロック(22)に対して、それぞれが複数の画素(40)で構成されるN個の画素ブロック(32A〜32D)に分解するブロック分解器(160)を更に備え、
    前記固定レート圧縮器(120)は、前記他方のスーパーブロック(22)の前記N個の画素ブロック(32A〜32D)の各画素ブロック(32A〜32D)毎に、前記目標ビット長を有する圧縮ブロックを取得するために、画素ブロック(32A〜32D)のプロパティ値を固定レート圧縮するように構成され、
    前記メモリ割り当て器(130)は、前記画素ブロック(32A〜32D)に対して割り当てられた前記メモリ(300)のメモリロケーション(330、340)に前記圧縮ブロックを割り当てるように構成され、
    前記メモリロケーション(300、340)における前記N個の圧縮ブロックの集合が前記他方のスーパーブロック(22)の前記圧縮表現を構成することを特徴とする請求項11又は12に記載の画像圧縮器。
  14. 前記圧縮表現で前記スーパーブロック(20)の前記プロパティ値を表現を示す示す誤差計測値を判定する誤差処理器(170)と、
    前記誤差計測値が最大誤差閾値を上回る場合に、前記スーパーブロック(20)を前記N個の画素ブロック(30A〜30D)に分解するように構成されるブロック分解器(160)とを更に備え、
    前記固定レート圧縮器(120)は、前記スーパーブロック(20)の前記N個の画素ブロック(30A〜30D)の画素ブロック(30A〜30D)毎に及び前記誤差計測値が最大誤差閾値を上回る場合に、前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック(30A〜30D)のプロパティ値を固定レート圧縮するように構成され、
    前記メモリ割当器(130)は、前記誤差計測値が最大誤差閾値を上回る場合、前記画素ブロック(30A〜30d)に対して割り当てられた前記メモリ(300)のメモリロケーション(310、320)に、前記圧縮ブロックを割り当てるように構成され、
    前記メモリロケーション(310、320)における前記N個の圧縮ブロックの集合が、前記スーパーブロック(20)の前記圧縮表現を構成することを特徴とする請求項11乃至13のいずれか1項に記載の画像圧縮器。
  15. 前記圧縮ブロックが、前記N個の圧縮ブロックの各圧縮ブロックに、当該圧縮ブロックが1つの画素ブロックに適用されたことを示す第2の値を有するモード識別子を割り当てるモード割当器(150)を更に備えることを特徴とする請求項13又は14記載の画像圧縮器。
  16. 前記スーパーブロック(20)を前記N個の画素ブロック(30A〜30D)に分解するように構成されたブロック分解器(160)と、
    ここで、前記固定レート圧縮器(120)は、前記スーパーブロック(20)の前記N個の画素ブロック(30A〜30D)の画素ブロック(30A〜30D)毎に、前記目標ビット長を有する圧縮ブロックを取得するために画素ブロック(30A〜30D)のプロパティ値を固定レート圧縮するように構成され、
    前記メモリ割り当て器(130)は、前記画素ブロック(30A〜30D)に対して割り当てられた前記メモリ(300)のメモリロケーション(310、320)に前記圧縮ブロックを割り当てるように構成され、前記メモリロケーション(310、320)における前記N個の圧縮ブロックの集合が前記スーパーブロック(20)の前記圧縮表現を構成する;
    前記N個の圧縮ブロックのコピーで前記スーパーブロック(20)の前記プロパティ値を表現を示す第1の誤差計測値を判定し、且つ前記N個の圧縮ブロックで前記スーパーブロック(20)の前記プロパティ値を表現をお示す第2の誤差計測値を判定する誤差処理器(170)と;
    前記第1の誤差計測値及び前記第2の誤差計測値に基づいて、前記N個の圧縮ブロックのコピー及び前記N個の圧縮ブロックのうちの1個に選択する表現選択器(180)と
    を更に備えることを特徴とする請求項11乃至13のいずれか1項に画像圧縮器。
  17. 画像(5)を復号する画像復号器(200)であって、
    前記画像(5)を示す複数の圧縮ブロックを格納するメモリ(300)から圧縮ブロックを取り出すメモリアクセッサ(210)と、
    複数のプロパティ値を取得するために前記圧縮ブロックを伸張する伸張器(220)と、
    前記複数のプロパティ値を画素ブロック(30A)、及び、スーパーブロック(20)に前記画素ブロック(30A)と共に含まれる少なくとも1個の他の画素ブロック(30B〜30D)に割り当てる値割当器(240)と、
    前記画素ブロック(30A)の少なくとも1個のプロパティ値及び前記他の画素ブロック(30B〜30D)の少なくとも1個のプロパティ値に基づいて前記画像(5)を復号する画素復号器(250)と
    を備えることを特徴とする画像復号器(200)。
  18. 前記伸張器(220)は前記複数のプロパティ値及びモード識別子を取得するために前記圧縮ブロックを伸張するように構成され、前記値割当器(240)は、前記モード識別子が第1の値を有する場合、前記複数のプロパティ値を前記画素ブロック(30A)及び前記スーパーブロック(20)において前記画素ブロック(30A)と共に含まれる前記少なくとも1個の他の画素ブロック(30B〜30D)に割り当てるように構成されることを特徴とする請求項17に記載の画像復号器。
  19. 前記メモリ(300)において前記画素ブロック(30A)に割り当てられたアドレスを判定するアドレス判定器(260)と、
    前記アドレスに基づいて前記少なくとも1個の他の画素ブロック(30B〜30D)を識別する画素識別器(270)と
    を更に備えることを特徴とする請求項17又は18に記載の画像復号器。
  20. 前記画素ブロック(30A)に割り当てられたキャッシュ(420)のキャッシュ場所(422)に前記圧縮ブロックを入力し、且つ前記少なくとも1個の他の画素ブロック(30B〜30D)に割り当てられた前記キャッシュ(420)のキャッシュ場所(424)に前記圧縮ブロックをコピーするキャッシュアクセッサ(280)を更に備えることを特徴とする請求項17乃至19のいずれか1項に記載の画像復号器。
JP2011546228A 2009-01-19 2009-05-29 画像処理 Expired - Fee Related JP5203513B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14561809P 2009-01-19 2009-01-19
SE0900053 2009-01-19
US61/145,618 2009-01-19
SE0900053-0 2009-01-19
PCT/SE2009/050632 WO2010082886A1 (en) 2009-01-19 2009-05-29 Image processing

Publications (2)

Publication Number Publication Date
JP2012515498A true JP2012515498A (ja) 2012-07-05
JP5203513B2 JP5203513B2 (ja) 2013-06-05

Family

ID=42339993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011546228A Expired - Fee Related JP5203513B2 (ja) 2009-01-19 2009-05-29 画像処理

Country Status (4)

Country Link
US (1) US8577164B2 (ja)
EP (1) EP2380353B1 (ja)
JP (1) JP5203513B2 (ja)
WO (1) WO2010082886A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170030968A (ko) * 2015-09-10 2017-03-20 삼성전자주식회사 이미지 처리 방법 및 장치

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2327058A4 (en) * 2008-09-23 2017-03-29 Telefonaktiebolaget LM Ericsson (publ) Pixel block processing
FR2963190B1 (fr) * 2010-07-23 2013-04-26 Canon Kk Procede et dispositif de codage d'une sequence d'images
EP2702561A1 (en) * 2011-04-29 2014-03-05 Telefonaktiebolaget LM Ericsson (PUBL) Encoder, decoder and methods thereof for texture compression
WO2013009224A1 (en) 2011-07-08 2013-01-17 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode processing of texture blocks
US9767642B2 (en) 2011-10-14 2017-09-19 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9672688B2 (en) 2011-10-14 2017-06-06 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US9659437B2 (en) 2012-09-28 2017-05-23 Bally Gaming, Inc. System and method for cross platform persistent gaming sessions using a mobile device
US20130093779A1 (en) * 2011-10-14 2013-04-18 Bally Gaming, Inc. Graphics processing unit memory usage reduction
GB2496423B (en) * 2011-11-11 2016-08-17 Ibm Data compression
GB2526943B (en) 2011-12-20 2016-04-27 Imagination Tech Ltd Method and apparatus for compressing and decompressing data
US20130271465A1 (en) * 2011-12-30 2013-10-17 Franz P. Clarberg Sort-Based Tiled Deferred Shading Architecture for Decoupled Sampling
US9819964B2 (en) 2012-05-04 2017-11-14 Environmental Systems Research Institute, Inc. Limited error raster compression
US9002126B2 (en) 2012-05-04 2015-04-07 Environmental Systems Research Institute (ESRI) Limited error raster compression
KR20140119220A (ko) * 2013-03-27 2014-10-10 한국전자통신연구원 영상 재압축 제공 장치 및 방법
CN105850131B (zh) * 2013-11-14 2019-08-20 寰发股份有限公司 利用基于帧内图片区块复制预测的视频编码方法
US9772848B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Three-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9772850B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Morton coordinate adjustment processors, methods, systems, and instructions
US9772849B2 (en) * 2014-11-14 2017-09-26 Intel Corporation Four-dimensional morton coordinate conversion processors, methods, systems, and instructions
US9990917B2 (en) * 2015-04-13 2018-06-05 Intel Corporation Method and system of random access compression of transducer data for automatic speech recognition decoding
US10244250B2 (en) * 2015-05-29 2019-03-26 Samsung Electronics Co., Ltd. Variable-rate texture compression using fixed-rate codes
US11076153B2 (en) * 2015-07-31 2021-07-27 Stc.Unm System and methods for joint and adaptive control of rate, quality, and computational complexity for video coding and video delivery
US10148972B2 (en) * 2016-01-08 2018-12-04 Futurewei Technologies, Inc. JPEG image to compressed GPU texture transcoder
US10418002B2 (en) * 2016-10-18 2019-09-17 Mediatek Inc. Merged access units in frame buffer compression
KR20180050140A (ko) * 2016-11-04 2018-05-14 삼성전자주식회사 텍스쳐 압축 방법 및 장치, 그리고 텍스쳐 압축 해제 방법 및 장치
US10403003B2 (en) * 2017-04-24 2019-09-03 Intel Corporation Compression mechanism
US11729403B2 (en) * 2017-12-05 2023-08-15 Intel Corporation Lossless pixel compression based on inferred control information
DE102019002951A1 (de) 2018-04-25 2019-10-31 Avago Technologies International Sales Pte. Limited Pixelspeicherung für graphische Bildspeicher
US10593097B2 (en) 2018-05-08 2020-03-17 Qualcomm Technologies, Inc. Distributed graphics processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05199416A (ja) * 1992-01-21 1993-08-06 Canon Inc 画像処理方法及び装置
US5589993A (en) * 1993-02-23 1996-12-31 Matsushita Electric Corporation Of America Digital high definition television video recorder with trick-play features
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US6452602B1 (en) * 1999-12-13 2002-09-17 Ati International Srl Method and apparatus for storing compressed data
JP2008104164A (ja) * 2006-09-19 2008-05-01 Ricoh Co Ltd 画像処理装置及び画像処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5805735A (en) * 1995-03-02 1998-09-08 Apple Computer, Inc. Method and apparatus for compression of digitized image data using variable color fidelity
US6658146B1 (en) * 1997-10-02 2003-12-02 S3 Graphics Co., Ltd. Fixed-rate block-based image compression with inferred pixel values
US5956431A (en) * 1997-10-02 1999-09-21 S3 Incorporated System and method for fixed-rate block-based image compression with inferred pixel values
US6157743A (en) * 1998-07-31 2000-12-05 Hewlett Packard Company Method for retrieving compressed texture data from a memory system
US6768493B1 (en) * 2000-05-31 2004-07-27 Nvidia Corporation System, method and article of manufacture for a compressed texture format that is efficiently accessible
US6940511B2 (en) * 2002-06-07 2005-09-06 Telefonaktiebolaget L M Ericsson (Publ) Graphics texture processing methods, apparatus and computer program products using texture compression, block overlapping and/or texture filtering
EP2320380B1 (en) 2004-07-08 2014-11-12 Telefonaktiebolaget L M Ericsson (Publ) Multi-mode image processing
EP1924970B1 (en) * 2005-08-19 2009-03-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Texture compression based on two hues with modified brightness
US7787691B2 (en) * 2006-04-11 2010-08-31 Telefonaktiebolaget Lm Ericsson (Publ) High quality image processing
US9418450B2 (en) * 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US20110157192A1 (en) * 2009-12-29 2011-06-30 Microsoft Corporation Parallel Block Compression With a GPU
US8532408B2 (en) * 2010-02-17 2013-09-10 University-Industry Cooperation Group Of Kyung Hee University Coding structure

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05199416A (ja) * 1992-01-21 1993-08-06 Canon Inc 画像処理方法及び装置
US5589993A (en) * 1993-02-23 1996-12-31 Matsushita Electric Corporation Of America Digital high definition television video recorder with trick-play features
US6381371B1 (en) * 1999-03-17 2002-04-30 Hewlett-Packard Company Method and apparatus for processing image files
US6452602B1 (en) * 1999-12-13 2002-09-17 Ati International Srl Method and apparatus for storing compressed data
JP2008104164A (ja) * 2006-09-19 2008-05-01 Ricoh Co Ltd 画像処理装置及び画像処理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170030968A (ko) * 2015-09-10 2017-03-20 삼성전자주식회사 이미지 처리 방법 및 장치
KR102453803B1 (ko) 2015-09-10 2022-10-12 삼성전자주식회사 이미지 처리 방법 및 장치

Also Published As

Publication number Publication date
EP2380353A4 (en) 2016-03-16
US20110235928A1 (en) 2011-09-29
JP5203513B2 (ja) 2013-06-05
EP2380353A1 (en) 2011-10-26
EP2380353B1 (en) 2017-11-08
WO2010082886A1 (en) 2010-07-22
US8577164B2 (en) 2013-11-05

Similar Documents

Publication Publication Date Title
JP5203513B2 (ja) 画像処理
US10748510B2 (en) Framebuffer compression with controllable error rate
KR102371799B1 (ko) 데이터 처리 시스템
US11792405B2 (en) Codec
US7397946B2 (en) Color distribution for texture and image compression
JP5722761B2 (ja) 動画圧縮装置、画像処理装置、動画圧縮方法、画像処理方法、および動画圧縮ファイルのデータ構造
US8270736B2 (en) Depth buffer compression
JP5228111B2 (ja) 画素ブロック処理
US7760936B1 (en) Decompressing image-based data compressed using luminance
US11568572B2 (en) Texture compression
Rasmusson et al. Exact and error-bounded approximate color buffer compression and decompression
US8594441B1 (en) Compressing image-based data using luminance
US20200258264A1 (en) Data processing systems
US9129543B2 (en) Texture compression and decompression
JP4995969B2 (ja) 行傾きコードワード及び列傾きコードワードを使用する画素ブロック値の可逆圧縮のための方法、圧縮器、伸張器及び信号表現
US20180096513A1 (en) Method and apparatus for determining number of bits assigned to channels based on variations of channels
US7742646B1 (en) Modified high dynamic range color decompression
JP2009111821A (ja) 画像符号化装置、画像復号化装置、画像データ処理装置、画像符号化方法、及び、画像復号化方法
US11515961B2 (en) Encoding data arrays
Jiang et al. Texture compression with variable data formats
Chen et al. An Improved Texture Compression Method for Graphics Hardware

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120427

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: 20130204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130213

R150 Certificate of patent or registration of utility model

Ref document number: 5203513

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160222

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees