JP5069349B2 - 格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式 - Google Patents

格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式 Download PDF

Info

Publication number
JP5069349B2
JP5069349B2 JP2010515030A JP2010515030A JP5069349B2 JP 5069349 B2 JP5069349 B2 JP 5069349B2 JP 2010515030 A JP2010515030 A JP 2010515030A JP 2010515030 A JP2010515030 A JP 2010515030A JP 5069349 B2 JP5069349 B2 JP 5069349B2
Authority
JP
Japan
Prior art keywords
tile
value
stream
bits
values
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.)
Expired - Fee Related
Application number
JP2010515030A
Other languages
English (en)
Other versions
JP2010533396A (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010533396A publication Critical patent/JP2010533396A/ja
Application granted granted Critical
Publication of JP5069349B2 publication Critical patent/JP5069349B2/ja
Expired - Fee Related 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/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/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/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
    • H04N19/426Methods 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 using memory downsizing methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

この特許出願は、2007年6月28日に提出された米国仮出願第60/946,972号に基づく利益を主張するもので、それはここに引用することで本願に併合される。
この発明は、デジタルビデオの分野に関するもので、特に、格納およびバンド幅要求を最小限に抑える効率的なエンコード方式に関する。
数多くの新たなデジタル無線通信プロトコルの急速な進展と採用により、近年では無線エレクトロニクスの変革がなされている。例えば、符号分割多元接続(CDMA)および移動体通信用グローバルシステム(GSM)はデジタルセルラ電話の人気を大きく押し上げていおり、802.11b、802.11g、802.11aなどのWi−Fiローカルエリアネットワーク(LAN)プロトコルは無線コンピュータネットワークに大変革を起こし、ブルートゥース(Bluetooth(登録商標))は多くの異なるデジタルデバイスに対して極めて有益な短距離無線デジタルプロトコルを提供している。
無線プロトコルにおける進展は、ますます増大する量のデータをダウンロードし表示し格納しおよび/または検索する能力を持った携帯電子デバイスの分野で、大きく広まっている。それゆえ、現代の移動体デバイスは、通常、種々なマルチメディアアプリケーションおよびデータを用いている。現代の携帯および/または移動体デバイスは、チップ上システムあるいはシステムオンチップ(SoCまたはSOC)テクノロジーを用いており、そこでは、コンピュータあるいは他の電子システムのコンポーネンツが多数、単一の集積回路すなわちICチップへ有利に集積されている。この単一チップでは、デジタル、アナログ、混合信号、および、度々高周波(RF)機能を、全て、その1チップ上に含むことがよくある。組み込みシステムは、オンチップテクノロジーの利点を度々享受している。しかしながら、このようなシステムでは、特に格納および/またはバスバンド幅の領域で、能力の限界を持つのが普通である。
ところで、マルチメディアアプリケーションは、かなり大量のバンド幅と格納リソースを用いることができる。例えば、デジタルビデオフレームの送信および/または表示では、大量のビットをサポートできる、メモリ、バッファ、チャネル、およびバスを必要とする。通常、イメージデータは、多数の画素からなるフレーム内で表される。一般的に、高解像度イメージは大量の画素を用いる。さらに、各画素は、例えば色またはルミナンスまたはクロミナンスなどの画素特性を記述する係数のセットを用いて、表される。カラーイメージでは、8ビットの係数3つの各々が、通常、1つの画素に対して用いられる。赤・緑・青システム(RGB)およびその変形システムでは各色を表すのに24ビットが用いられ、それは時に24ビット画素デプスと呼ばれることもある。解像度、表示サイズ、あるいはその他の放送品位が高まると、表示フレームサイズあるいはその他の要求もさらに増加する。特に、現代のデバイスおよび放送は、旧来のQVGA、VGAないしXGAフォーマットを超えるマルチメディア情報を扱えるようになっている。
より高いデータレートのブロードバンド送信は、システムにさらなる要求をしてくる。例えば、LCDコントローラが100Hzに近いリフレッシュレートでフレームバッファからの読み取りをサポートしなければならない場合、バンド幅の境遇は悪くなる。さらに、マルチメディアアプリケーションにより用いられるマルチメディアデータの格納および/または検索でも、似たような問題が生じる。上述した問題に対するこれまでの試みは、ランレングスエンコード(RLE)およびランレングスエンコードの変形のような圧縮技術を用いていた。しかしながら、これら従前の試みには色々な欠点がある。
効率的なフレームバッファ圧縮方式は、移動体システム、特にチップ上のシステムを用いた移動体システムにおける、格納、バスバンド幅、および/または電力消費の要求を最小限にする。幾つかの実施形態では特に効率的なロスレスイメージ圧縮方式が用いられるが、幾つかの実施形態ではさらに、付加的にロッシーなエンコードステージを用いている。ロスレス圧縮アルゴリズムおよびオプションのロッシーステージはともにイメージに対するトータル格納スペースを減らす。このことは、システムバス上のリードライトバンド幅負荷を有利に減らすことにもなる。ロスレスステージもロッシーステージも、イメージおよび/またはビデオデータの再生品位を大きく低下させることはない。エンコードされたイメージデータはさらに、タイトなスペース節約フォーマットでもって、あるいは、例えばタイルベースもしくはストライブベースのフォーマットのような、ランダムにアドレスされおよび/またはアクセスされるフォーマットでもって、フレームバッファ内に選択的にパックされる。
したがい、データ圧縮方法は、イメージを受信しそのイメージをタイルのセットにタイルする。各タイルは画素のセットを含む。この方法は、第1のタイルを選択し、第1のタイル内の画素の値の第1セットを決定する。この方法は、第1のタイル内の各画素の決定された値を、複数のストリームに分ける。第1のストリームに対して、この方法は、バイアス値を決定し、ストリーム内の各値からバイアス値を差し引いて、引算された値のセットを発生する。通常、引算された値は、1以上の先行ゼロを持っている。この方法では、好ましくは、その先行ゼロの少なくとも幾つかを除去し、第1のストリーム内の引算された値を表すのに必要なビット数を減らす。すなわち、第1のストリーム内の1以上の値はより少ないビットでもって有利に表される。
特定の実施形態では、この方法はストリーム内の値の最小値を決定し、値のストリームのうちの最小値がバイアス値となる。この値のストリームは、一般的に、タイル内の画素に関係している。これらの値は、通常、画素の属性に対する係数を含んでいる。例えば、この値は、時には赤・緑・青(RGB)カラーシステムに対する色値であったり、あるいは、ルミナンス、クロミナンス、またはその他のサンプルされ若しくはスケールされたシステム(YCrCb)などに対する他のタイプの値であったりする。
幾つかの実施形態における方法は、エンコードおよび/または圧縮におけるマルチレベルを含んでいる。具体的には、これら実施形態のうちの幾つかは、引算された値を丸めたりおよび/または切り縮めたりして丸められまたは切り縮められた値を発生し、その丸められた値をあるファクタで割る。特定の実施形態では、値が最も近い偶数などの偶数に丸められ、それが2で割られる。好ましくは、この割算処理はビットをシフトすることにより行われる。一旦エンコードされると、イメージデータは、種々な手段を用いてフレームバッファ中にパックされる。フレームバッファで密にパッキングする際は、イメージタイルデータはフレームバッファ中に順次配置され、これにより格納スペースとバス利用が維持される。逆に、タイルデータを粗にパッキングすると、イメージ(画素)データの各タイルへのランダムアクセスが可能になる。あるいは、イメージデータは、ランダムにアクセスおよび/またはアドレス可能なフォーマットで、粗にパックされた中でストライプされる。
第1のストリームは、好ましくは、第1のタイルの画素に対して第1の色を示すための係数のセットを備えている。それゆえ、第1のストリームに対して、幾つかの実施形態では、第1の色を再構成するのに十分な係数情報をバイアス値が含むかどうかを決定している。もしバイアス値が第1の色を再構成するのに十分な係数情報を含むならば、これらの実施形態はバイアス値を用いて第1の色をパケットヘッダにエンコードするが、パケットボディ内の第1の色に対しては係数のエンコードを差し控えている。さらに、第1のタイルの第1の色を忠実に再構成するのに十分な画素情報をヘッダが含むかどうかを示すために、エンコードタイプが選択される。それゆえ、デコーダはパケットヘッダをフェッチしてエンコードタイプを受信し、そのエンコードタイプを用いて第1の色をデコードする。もし、第1の色を再構成するのに十分な情報をパケットヘッダが含むことをエンコードタイプが示すならば、この方法は、有利に、パケットボディから第1の色に対する情報をフェッチするステップを差し控える。
このようなことを考慮して、特定のインプリメンテーションにおけるエンコードタイプは、次のうちの1以上を含む。それは、第1のタイルのための色情報がパケットボディ内にエンコードされていない状況を示す第1の選択、1つの色のための情報がパケットボディ内にエンコードされている状況を示す第2の選択、2つの色のための情報がパケットボディ内にエンコードされている状況を示す第3の選択、および/または、3つの色のための情報がパケットボディ内にエンコードされている状況を示す第4の選択である。状況により、色情報は、例えば、ルミナンス値および/またはクロミナンス値を含む。
さらなる実施形態においては、エンコーダは、メモリおよびステータスブロックを持つ第1のステージを含む。メモリおよびステータスブロックの各々は、入力データのセットを受信する。1つのインプリメンテーションにおいて、入力データは、例えばタイルからのストリームに対応した画素係数のセットを含む。ステータスブロックは、例えば低い側から高い側へ向かって入力データをソートするように構成されている。このエンコーダはまた、メモリの出力およびステータスブロックの出力に接続された第1の引算器を含む。第1の引算器は、メモリの出力およびステータスブロックの出力に対して演算処理を行う。例えば、ある特定の場合、ステータスブロックは最小値を出力し、引算器はその最小値をメモリからのストリームの値から差し引く。好ましくは、その最小値、すなわちバイアス値は、ステータスブロックでもって実行されるソート機能により決定されるストリーム内の最小値とする。
エンコーダは、引算器に接続された第1の論理ユニットを含む。第1の論理ユニットは、引算器の出力を受信し、選択されたフォーマットを持つビットのセットを出力するように構成される。また、エンコーダは、選択されたフォーマット内のビットのセットを受信する論理ユニットに接続されたパッカー(packer)を持っている。このパッカーは、データパケットを形成するために選択されたビットのセットを用いる。好ましくは、第1の論理ユニットは、特定のデータストリームに基づいて減少されたビット数を出力するように構成される。例えば、幾つかのインプリメンテーションでは、第1の論理ユニットは、例えば、制御信号を用いて先行ゼロなしの減少されたビット数を出力するデコードユニットを含む。これらのインプリメンテーションにおける制御信号は、好ましくは、ステータスブロックにより提供される。付加的な実施形態は、送信、受信、表示、格納、および/または検索のために、減少されたビット数を用いてデータをエンコードするエンコーダと、システムと、そして、デコーダを含む。
この発明の新規な特徴は添付された請求項に示されている。しかしながら、説明のため、この発明に係る幾つかの実施形態が以下の図に示される。
図1は、この発明の幾つかの実施形態に従うプロセス100を示す図である。 図2は、タイルイメージを示す図である。 図3は、特定タイル内の各画素に対して3色要素に分割された図2のタイルイメージを示す図である。 図4は、バイアスが除去された後の各画素に対する3色要素を示す図である。 図5は、幾つかの実施形態に従うエンコーダを示すである。 図6は、図4のデータストリームのためのパケットを示す図である。 図7は、マルチステージエンコーダを示す図である。 図8は、図7のエンコーダのためのパケットを示す図である。 図9は、この発明の実施形態に従うデコーダを示す図である。 図10は、デコードプロセスを示す図である。 図11は、フレームバッファ内で密にパックされたタイルを示す図である。 図12は、フレームバッファ内で粗にパックされたタイルを示す図である。 図13は、フレームバッファ内のストライプを示す図である。 図14は、この発明の実施形態に従う幾つかのテストイメージを示す図である。 図15は、幾つかの実施形態における別のエンコードシステムを示す図である。 図16は、図15のエンコード用のパケットを例示する図である。 図17は、図15のエンコードおよび/または図16のパケット用のヘッダを例示する図である。 図18は、幾つかの実施形態におけるエンコードシステムを示す図である。 図19は、図18のエンコード用のパケットを例示する図である。 図20は、図18のエンコードおよび/または図19のパケット用のヘッダを例示する図である。 図21は、幾つかの実施形態におけるデコードシステムを示す図である。 図22は、エンコードフォーマットを例示する図である。
詳細な説明
以下の記述では、説明目的で多くの詳細や変形例が示されている。しかしながら、当業者ならこれらの詳細を用いずともこの発明を実施することは可能である。また、不必要に細かくすることで発明の記述が返って不明瞭にならないよう、周知の構成やデバイスはブロック形式で示すようにしている。
I.方法およびエンコーダ
この発明の幾つかの実施形態は、格納およびバンド幅要求を最小限にする効率的なロスレスイメージ圧縮方式を含んでいる。これらの実施形態は、特に、移動体システムのための1以上のチップ上システム(SOCs)で採用される。例えば、特定のインプリメンテーションは、イメージのためのトータル格納スペースを減らすために単純なロスレス圧縮アルゴリズムを含んでいる。イメージのために要求される減少された格納スペースは、付加的な利益をもたらす。例えば、バス上でのリードおよび/またはライトのバンド幅負荷が減るといった利益がある。このことはさらに、システムのオーバーオールパフォーマンスを有利に改善する。さらに記載されることとして、アルゴリズムの利点を享受するフレームバッファインプリメンテーションがある。
通常、処理されメモリに格納されるイメージはフルにサンプルされたタイプであり、色の画素を表すために8ビットを全て占有する。しかしながら、イメージ内の全ての画素が色の忠実な再現のために8ビット全てを必要とするわけではない。一般的に、イメージには、類似の色の画素あるいは係数値が狭い範囲内にある画素を持っている部分がある。幾つかの実施形態では、イメージのうち、色すなわち係数値の範囲が狭い領域の利点を享受している。これらの実施形態では、好ましくは、減少されたビット数を用いて色係数を量子化する。
この方式において重要な属性の1つであって、色の格納に用いるビット数を減らすことの助けになるものとして、イメージのある領域から他の領域への画素値の大きな遷移に限界をつけあるいは制限するところのタイリングプロセスがある。この発明の実施形態はさらに、好ましくは、ローパスフィルタにかけられたイメージおよび/または類似色の領域を多数持つイメージに対して、高い圧縮比を達成する。さらに、これらの実施形態は、例えばYCbCrあるいはRGBのような種々なデータフォーマットに適用可能である。
図1は、イメージを圧縮するプロセス100を含む特定の実施形態を示す。同図に示すように、プロセス100は、イメージが受信されタイルされるステップ110で始まる。好ましくは、タイリングイメージは、イメージ画素をディスクリートなセットに分割することを備えている。そして、プロセス100は、タイル内の各画素に対する色が分離されるステップ120に遷移する。好ましくは、このタイルは、例えば赤、緑、および青といった3つのカラーストリームに分離される。
特定の実施形態では、各画素の色値は8ビットを用いて表され、タイルの色は8ビット値の3ストリームとして処理される。ここで1つのストリームは各色のために用意されている。それゆえ、もし各タイルのサイズがMxMであるとすれば、8ビット値のM倍の3ストリームが存在することになる。好ましくは、各ストリーム(例えば赤、緑、および青用の)は、圧縮の際は別々に処理される。
タイル用の色およびストリームがステップ120で一旦決定されたら、プロセス100はステップ130に遷移する。ここでは、カラーストリーム各々に対する最小値(バイアス)が決定され、それが各ストリームから差し引かれる。この値が差し引かれた結果のストリームは、減算による残りの値であり、通常は元のストリームよりも小さな値を含む。
次に、プロセス100はステップ140に遷移する。ここでは、各カラーストリーム値から先行ゼロが除去される。これは有利なことで、減算後の各ストリーム内の値の幅がより少なくなり、少ないビット数で表されるようになる。これは、先行するゼロを取り除くことでなされるが、減算の残りにはその最大値がなお残留できるようになっている。このステップ140のあと、プロセス100は終了する。
例えば、タイルが4画素掛ける4画素で構成されている場合、そのタイルに対する単一のカラーストリームは16画素の色値を含む。例えば、もし赤ストリーム内の最大値が6しかないとすれば、先行ゼロを取り除くことにより、このストリーム内の各値を表すのに必要なビット数はたった3となる。というのも、このストリーム内の最大値は、例えば2進表示で“110”となるからである。
II.絵柄の例
図2は、上述した方法および/またはエンコーダの動作におけるイメージ200の例を示す。同図に示すが、このイメージは、好ましくは、第1のタイル201で例示されるように、タイルに分割されている。前述したように、タイリングステップは、通常、ストリームの画素値内の変動を減らす。さらに、図2から気付くであろうが、イメージの領域は画素値内に大きな変動を持たず、タイル内の全ての色を表すのに、フル8ビット画素デプスの全ての値は必要でない。
図3および図4は、イメージ300内の冗長な情報が、バイアスおよび/または先行ゼロの除去を介して、如何に減少されるかを図解している。図3に示すように、タイル301に対するカラーコンポーネンツは、3つのストリーム、すなわち、赤302、緑304、および青306のカラーストリームに分割される。ここでは、各カラーストリームに対する係数が、チャート形式で、グラフ表示されている。これらのチャートのx軸でさらに示されるように、4掛ける4のタイルは16画素を持ち、そのy軸は各画素の強度に対応した係数値を含んでいる。図3では、生のイメージデータは通常通り8ビットフォーマットであり、それゆえ、係数値はおよそ0ないし255の幅を持っている。
図4は、各ストリームのバイアス値が決定されそれがストリームから差し引かれたあとの、各ストリーム402、404、および406のカラーコンポーネンツを示す。これは有利なことであるが、タイル内には各画素に対して差分情報が残されている。したがい、画素係数値の間の差分が図4ではより明確に示されている。さらに、図示するように、3つのストリーム(赤、緑、および青)内の最大値は6より大きくない。そのため、画素値を表す減算の残りをフルに表現するのに、8ビット全ては必要でなく、たった3ビットで済む。図1に関連して前述したように、一旦、バイアス値が各カラーコンポーネントの係数から差し引かれたならば、必要最小限のビット幅で、減算の残りを忠実に表すための計算を有利に行うことができる。さらに、図5ないし図8に関連してさらに後述するが、過剰な先行ゼロは好ましくは除去されもしくは連結される。
図5は、幾つかの実施形態におけるエンコーダ500のブロック図を示す。このエンコーダ500はエンコードされた色情報およびヘッダをタイルにパックする。ヘッダは、タイルをどのようにデコードするのかを記述している。以上を実現するために、エンコーダ500は、それぞれが入力データストリームを受信するところの、メモリ502およびステータスブロック504を含んでいる。メモリ502は、通常、タイルに対するストリーム値を格納するのに十分な規模を持つランダムアクセスメモリ(RAM)の形式を備えている。一方、ステータスブロック504は、例えば、低い側から高い側に向かってタイルの値を格納するように構成されている。
メモリ502は引算器506に出力し、この引算器はステータスブロック504からバイアス入力を受信する。通常、このバイアスは、ステータスブロック504により決定された、タイル内の最小値を備えている。引算器506は、メモリ502からのストリーム値からバイアスを差し引き、デコーダ508に出力する。デコーダ508は、引算器506の結果を表すのに必要な最小限のビット数を有利に出力するもので、そのビットをパッカー(packer)510に出力する。図示されたインプリメンテーションは1−8デコーダ(one-to-eight decoder)508を含んでおり、このデコーダはステータスブロック504から受信した格納サイズに基づき必要最小限のビットを出力する。しかしながら、当業者なら、バス幅およびビット数の変更を含め、システム500のデコーダ508およびその他のコンポーネンツに対して別のインプリメンテーションが可能なことを認識するであろう。
パッカー510はまた、タイルスタートアドレス、バイアス、格納サイズ、およびタイルサイズを(ステータスブロック504から)受信し、特定のタイルに対して圧縮されたデータストリームを出力する。好ましくは、パッカー510の出力は1以上のパケット形式である。これら実施形態のパケットについては、図6に関連してさらに記述される。
図6は、図4のストリームに対する、パケット600を示す。図6に示すように、パケット600は、パケット600のヘッダを構成するところのタイルサイズ602とバイアス604と格納サイズ606に対するフィールド、および、画素データ608に対するフィールドを、含んでいる。特定の図示された例では、タイルサイズと格納サイズを表すには3ビットあれば足りているが、バイアスに対しては8ビットを必要としている。残りを表すのに必要なバイアスおよびビットは、ヘッダにパックされ、各ストリーム(赤、緑、および青)に対する残りの値に連結される。
この例では、格納、検索、および/または表示のために、タイル当たり合計180ビットが必要となっている。この180ビットは、ヘッダに対する36ビットと、各ストリームの画素データに対する48ビットを含んでいる。
180ビット=[36ヘッダビット+3ストリーム*(3ビット/画素 * 16画素/タイル)]
より具体的にいうと、この例のヘッダは、3つのパラメータ、すなわちバイアス、格納サイズ、およびタイルサイズに対して、次のフォーマットを用いている:
24バイアスビット=(各ストリームのバイアス値に対する8ビット*3ストリーム)
9格納サイズビット=(各ストリームに対する格納サイズ3*3ストリーム)
3タイルサイズビット、というのも、この例における各ストリームは同じタイルサイズを用いていることから、3つのストリーム全てに対して1フィールドしか必要としないため。すなわち、この例の3つのストリームに対する合計ヘッダビットは、36=(24バイアスビット+9格納サイズビット+3タイルサイズビット)となる。圧縮なしでは、同じイメージデータを格納するのに合計384ビット必要になる。
384ビット=(16画素/タイル * 24ビット/画素)
すなわち、圧縮比は(180ビット/284ビット)で46.6%になる。
当業者なら、多くの変形が可能であることを認めるであろう。例えば、特定の実施形態の試験中に、4×4タイルサイズは、処理速度と圧縮比など品質と性能のバランスが特に良いことが認められた。それゆえ、幾つかの実施形態では、タイルサイズを4×4に固定し、ヘッダのオーバーヘッドにおいてタイルサイズパラメータのエンコードおよび/または通過をする。これらの実施形態では、それぞれのパケットヘッダ内で3ビットの節約をし、圧縮比および速度の面で改善をしている。
III.ロッシーステージのエンコード
エンコードの第2レベルは、圧縮比をさらに上げるために残りの値に対しオプションとして行われる。この圧縮の第2レベルでは、減算された値を丸めてその値をあるファクタで割ることにより、カラーストリーム内の各値のビット幅をさらに減らしている。例えば、特定の実施形態では、その値は最も近い偶数に丸められ、および/または2で割られる。それゆえ、第2の圧縮はロッシーとなる。なぜなら、元のタイル内の画素係数値からバイアスを差し引いたあと偶数値化された残りの値には、エンコードおよびデコードのプロセス(エンコーダにおける2による割算および、デコーダにおける2による掛算)中に、量子化レベルのあるいは最小桁ビット(LSB)の欠落が生じるからである。しかしながら、このインプリメンテーションでは、奇数の係数を持つ画素だけが僅かなロスを被るだけで、偶数の係数を持つ画素にはロスは生じない。
さらに、以下に述べるように、このインプリメンテーションをテストする実験では、情報のロスがあっても視覚上何ら目立つ効果は認められていない。その上、第2の圧縮ステージは、圧縮比において12.5%もの有利な改善をもたらしている。さらにまた、第2の圧縮は、例えば所望のイメージ品質および/または所望の圧縮比に応じて、ソフトウエアにより、選択的に稼動状態(enabled)または非稼動状態(disabled)にされる。さらに、除数のファクタは、例えば、4,8,16といった任意の2の倍数とすることが好ましい。より大きなファクタを用いるとより高いロッシーステージの圧縮が得られるが、それに対応した品質のロスも伴う。しかしながら、減少された画素情報による解像度の低下は、プレビューモード、ローパワーモード、および/またはスタンバイモードの場合のように、時には望ましいこともある。ビットシフタは、通常、デジタルロジック内に割算機能を提供する。これにより選択可能なNビットロッシーエンコーダのインプリメントが容易になる。1ビットロッシーエンコーダの場合は、シフタは1最小桁ビットをシフトする。
図7は、第1レベル(ロスレス)および第2レベル(ロッシー)のエンコーダ700を含む実施形態を示す。同図に示すように、エンコーダ700は、メモリ702、ステータスブロック704、引算器706、デコードユニット708、およびパッカー710を含んでいる。これらのコンポーネンツは、好ましくは、図5に関連して前述したように接続され動作する。
2ステージエンコーダ700は、シフトモジュール712、引算器714、および2つのマルチプレクサ716および718を含む付加ステージを、さらに含んでいる。2つのマルチプレクサは、第1(ロスレス)ステージのエンコードのみか、第1(ロスレス)および第2(ロッシー)ステージの両方を行うエンコードのいずれかを選択するロッシーイネーブル信号を受信する。シフトモジュール712は、通常、丸めおよび/または切り縮め動作を提供するように構成されている。当業者ならわかるであろうが、選択的なビットのシフトによる割算はよく用いられている。例えば、1ビットの右シフトはレジスタ内のビット上で2による割算操作を都合よくもたらし、2ビットシフトは4による割算操作をもたらす。
シフトモジュール712およびマルチプレクサ716は、引算器706とデコーダ708の間に接続されている。この接続は、マルチプレクサ716が引算器706の出力とシフトモジュール712の出力を受信し、それらのいずれかの出力がロッシーイネーブル信号に応じてデコーダ708へ提供されるように、行われる。
引算器714およびマルチプレクサ718は、ステータスブロック704とパッカー710の間に接続されている。この接続は、マルチプレクサ718がステータスブロック704の出力または引算器714の出力を選択し、選択された出力が格納サイズとしてパッカー710へ提供されるように、行われる。引算器714は、ロッシーステージがイネーブルとなると、選択的に、格納サイズを1だけデクリメントする。
図8は、図7のエンコーダのためのパケット800を例示している。パケット800は、タイルサイズ802とバイアス804と格納サイズ806のフィールドを持つヘッダ、および、画素データ808のフィールドを含んでいる。同図に示すように、4画素掛ける4画素のタイルサイズが、たった2ビットに有利に減らされている。さらに、ロスレスおよびロッシーステージの両方が動作したあとは、各ストリームに対する格納サイズも僅か3ビットとなっている。前述したように、エンコード、送信、処理、および/または格納における付加的なオーバーヘッドの節約のために、固定されたおよび/または所定のタイルサイズを持つ実施形態では、タイルサイズフィールドは省略される。
III.デコーダ
図9は、幾つかの実施形態に係るデコーダ900を示す。同図に示すように、デコーダ900は、入力データを受信しアンパッカー904およびヘッダデコードモジュール906へ出力するデータフェッチ902を含んでいる。アンパッカー904は、受信された入力データ内の各画素に対して8ビット幅フォーマットを形成するために失われた先行ゼロの拡張を行い、8ビット幅データを加算器908へ出力する。
加算器908は、ヘッダフィールド内に含まれる情報を抽出するヘッダデコーダ906から、バイアスを受信する。この加算器908は、バイアス(8ビットフォーマット)を各画素に対する受信値に加算し、合計値をメモリ910へ出力する。前述したように、受信データは度々画素のタイルに対するストリームを備えている。それゆえ、これらの実施形態のメモリ910は、好ましくは、ヘッダデコードモジュール906から受信されるものとして、あるいは、システム900内で予め定められおよび/または固定されたものとしての、画素タイルサイズのタイルの規模(dimensions)を持つ。メモリ910の出力は、特定タイルの特定ストリームに対してデコードされた画素値を持つ。それゆえ、デコーダ900の図示されたインプリメンテーションは、前述したエンコーダとは逆のステップを実行する。
図10は、図9のデコーダのステップを纏めたプロセス1000を示す。このプロセス1000は、やってくるビットのセットが受信されるステップ1010から始まる。その後、プロセス1000はステップ1020へ遷移し、そこで、やってくるビットはヘッダを抽出するために解析される。一旦ヘッダが抽出されると、プロセス1000はステップ1030へ遷移する。そこでは、ヘッダ内のビットが、例えばエンコードされたストリーム毎に使用されるビット数、バイアス、および/またはタイルサイズなどのシステム用パラメータのセットに関する情報を決定するために、使用される。次に、ステップ1040において、画素ビットがアンパックされてバイアスに加算される。こうして、やってくるビットのセット内で送信された特定タイルに属する、特定ストリームのためのデコードされた画素値が得られる。そして、プロセス1000は終了する。
IV.フレームバッファインプリメンテーション
前述したエンコーダおよび/または圧縮方式の利点を享受するために、このセクションでは、2つの択一的インプリメンテーションが示される。これらのインプリメンテーションは、密にパックされたインプリメンテーション(tightly packed implementation)と、租にパックされたインプリメンテーション(loosely packed implementation)を含む。
A.フレームバッファ内の密にパックされたタイル
第1のインプリメンテーションでは、1つの長いビットのストリーム内で、圧縮されたタイルが一緒に密にパックされるべきことが要求される。密にパックされたタイルは、順に、フレームバッファ内で密に格納される。フレームバッファ内の密にパックされたタイルの格納は、格納リソースを効率的に使用するもので、さらに、バスの最も効率的な使用も可能にする。例えば、密にパックされたフレームバッファを用いて、デコーダ内のデータフェッチユニットは、バス上の各トランザクションに対して最大のバーストサイズを用いることが可能になる。この密にパックされたインプリメンテーションはまた、メモリを効率的に使用し、フレームバッファ内のタイルにランダムにアクセスする必要がないアプリケーションに対して特に有用となる。密にパックされたフレームバッファを用いるであろう処理ブロックの1つとして、液晶表示(LCD)コントローラがある。
図11は、フレームバッファ1100内の密にパックされたタイルを示す。同図に示すように、タイル1、タイル2、タイル3、…タイルNのようにラベルが付されて示されている密にパックされたタイルは、元のフレームバッファ境界1102とは異なる境界1104を持っている。このパックされたタイルは、有利に、格納要求を減らしている。
しかしながら、密にパックされたフレームバッファにも不利な点はある。タイルにランダムアクセスする必要があるアプリケーションは、密にパックされたフレームバッファ内から要求されたタイルを見つけ出すために、フェッチエンジンがフレームバッファの先頭からサーチすることを要求する。このことは、大きな遅延をもたらし、バスの非効率的な使用に繋がる。
それゆえ、幾つかの実施形態では、個々のタイルのアドレスを、ある種のパラメータ、例えばタイルの幅(width)、高さ(height)、および/またはy幅(y-stride)を用いて算出できるようにして、租にパックされたフォーマットで圧縮されたタイルを格納するようにしている。
B.フレームバッファ内の租にパックされたタイル
第2のインプリメンテーション方式では、事前配分フォーマット(pre-allocated format)を用いて、メモリ内に圧縮されたタイルを配置する。例えば、これらのインプリメンテーションの幾つかは、隣接するタイルまたはタイルのストライプから一定のバイトオフセットを持つメモリ内の点から始まるように、各タイルの配置を行いまたはアドレスを付与している。各事前配分されたアドレスにおけるタイルは圧縮されており、メモリ内では事前配分されたときよりも少ない格納スペースしか要求しない。
このインプリメンテーションの有利な点は、フレームバッファ内のタイルまたはタイルのストライプ各々の開始点が、例えばy幅、タイルサイズ、および/またはストライプサイズなどの特定の属性を用いたアドレス計算により、容易に決定されることである。したがい、アプリケーションは、フレームバッファ内の個別タイルにランダムアクセスできるようになる。
図12は、フレーム境界1202を持つフレームバッファ1200内で租にパックされたタイルを示す。同図に示すように、フレームバッファ1200は、サイズは可変であるが固定サイズのアドレスロケーションに配置された、圧縮タイル1ないしNを含んでいる。各アドレス可能なロケーションは、所定の固定幅tile_wおよび高さtile_hを持っている。好ましくは、各アドレス可能なロケーション内の未使用スペースは、各ロケーションをランダムにアクセスできるようにするために、ブランクのままにしておく。図12の図解では、y幅パラメータはフレームバッファの幅として定義され、事前配分されたアドレスロケーションはフレームバッファの幅またはy幅の固定倍を占有する。
図13は、圧縮されおよび/またはエンコードされた画素データがストライプされたフォーマットでフレームバッファ1300に交替にパックされた様子を示す。同図に示すように、ストライプ1からストライプNまでの各ストライプに対するアドレス可能なロケーションは、固定された規模(高さと幅)を持つ。図13の図解では、ストライプはタイルの高さ(tile_height)×フレームバッファのフレーム幅(frame_width)として定義され、そのフレームバッファ1300の幅がy幅となっている。
図12に示すようなタイル境界ベースのパッキング方式においてタイルにアクセスする際は、1つのタイルだけアクセスされる。しかしながら、図13に示すようなストライプ境界ベースのパッキング方式においてタイルにアクセスする際は、ストライブ全体が読み取られ、タイル上の操作を行う前に圧縮解凍される必要がある。図13のストライプ構成には有利な点がある。例えば、y幅すなわちイメージ幅がおよそ1024画素であるとき、4掛ける4画素のタイルサイズ(tile_size)に対しては、単一のストライブは好ましくは256のタイルを含む。このような構成では、例えばSDRAMのページ負荷は256タイルの全てに有利に負荷されるが、このことは、バス、メモリ、およびページ負荷のより効率的な利用をもたらす。この効率には、イメージローディング速度の面とパワー効率の面の双方が係る。それというのも、ページメモリの各ローディングおよび/またはリフレッシュには、潜在的に、パワーおよび/または遅延が要求されるからである。
V.結果
RGB888フォーマットの幾つかの異なるイメージはMATLABで記述されたコードを用いて圧縮され、その圧縮比が、他のロスレス圧縮方式、すなわち通常のランレングスエンコードにより得られる結果と比較された。そのシミュレーションにおいて幾つかの異なるタイルサイズが用いられ、前述した例と同様な4×4のタイルサイズでは良好な結果が得られた。以下の表1は、前述したレベル1(ロスレス)およびレベル2(ロッシー)エンコード方式を含めた、通常のRLE24エンコードと本願発明の実施形態との間の比較例を示す。
V. Results
表1に示すように、タイル圧縮方式を評価するのに用いたテストイメージは、休み場所(roost)、モビル(mobile)、qc、Vプレーヤ(vplayer)、友達(friends)、指名手配(wanted)、星の船(starcraft)、ダイアブロ2(diablo2)、アドベテキスト(Adobe text)、アイコン(icons)、hp、hp1、およびhp2を含んでいる。これらのイメージは、図14では、アンパックされデコードされたグループ1400として視覚的に示されているが、ここには知覚できるような画像品質の低下は殆どあるいいは全く見られない。
下記の表1は、通常のRLE24エンコードを用いた場合と幾つかの実施形態のエンコードを用いた場合に得られる結果の例を示している。当業者なら、他の実施形態では圧縮比が変化することを認識するであろう。例えば、この発明の幾つかのインプリメンテーションではより大きな圧縮比を示している。
Figure 0005069349
レベル1およびレベル2(ロッシー)のインプリメンテーションは、動画イメージあるいはビデオに対してさらに有利に適用される。表2では、テストムービークリップは左カラムにリストされ、各クリップに対する圧縮比は、100フレームを超える平均として、右カラムに記載されている。
Figure 0005069349
前述した実施形態のロッシー圧縮方式でもってエンコード(およびデコード)された表2の圧縮解凍ムービークリップは、インターネットあるいはその他のソースから入手可能である。
表1および2において、色における最大のエラーは、バイアスを差し引いた結果としての残り値において奇数値を持つ画素係数値を持った色に対する、1最小桁ビット(LSB)、すなわち1量子化レベルである。バイアスを差し引いた後の残り値において偶数値を持つ画素を持った色に対しては、エラーは生じない。さらに、レベル2(ロッシー)圧縮のイメージであっても目立ったアーチファクト(artifact)は認められていない。したがい、この発明のインプリメンテーションは、品質において大きなトレードオフを伴わない圧縮を提供する。幾つかの実施形態により有利に達成される圧縮比は、次のように表される:
Figure 0005069349
幾つかの実施形態ではデータパケットのヘッダ部分における冗長な情報も除去することにより、また幾つかの実施形態では例えばオプションのタイルサイズパラメータなど固定されたパラメータを含めることを差し控えることにより、上記よりさらに圧縮比を改善する。さらに、この発明の実施形態は、マルチレベルのエンハンスされたエンコードおよび/または圧縮の観点で、従前の技術に対して特定の長所を持つ。例えば表に示すように、YCbCrの例はRGBの例よりも大きな圧縮を示す。これは、YCbCrフォーマットはそれ自身エンコードされたフォーマットであり、前述した実施形態は、存在するエンコードされたフォーマットに対して、大きな付加的マルチレベルエンコードの改善をもたらすからである。
付加的な実施形態についてさらに記載する。例えば、図15は、幾つかの実施形態のエンコードシステム1500の他例を示す。同図に示すように、エンコードシステム1500はメモリ1502とステータスブロック1504を含み、これらは各々入力データストリームを受信する。このインプリメンテーションでは、データは、24ビットの、すなわち3つの色各々に対して8ビットの、RGB、YCbCrなどを含む。メモリ1502は、通常、タイルのストリーム値を格納するのに十分な規模を持つランダムアクセスメモリ(RAM)形式を備え、一方、ステータスブロック1504は、例えば、低い側から高い側への値を格納するようになっている。特定のインプリメンテーションでは、メモリ1502は4×4のタイルを受信する。
ステータスブロック1504は、種々で有用な値を有利に決定する。例えば、ステータスブロック1504は、やってくる3色データ値(tri-chromatic data values)をソートし、好ましくは、色のバイアス値として各色の最小係数を用いる。このバイアス値は、24ビットすなわち各色あたり8ビットを用いて出力される。ステータスブロック1504は、残り用の格納サイズをさらに決定し、それを9ビットを用いてパッカーに出力する。ステータスブロック1504は、圧縮されたタイル内のエンコードタイプとトータルバイトを決定し、これらをヘッダモジュール1520に出力する。ヘッダモジュール1520はまた、ステータスブロック1504からバイアス値を受信し、図17に示すようなヘッダを発生する。
メモリ1502は、ステータスブロック1504からバイアス入力を受信する引算器1506へ、出力を行う。通常、このバイアスは、ステータスブロック1504により決定されたタイル内の最小値を備える。引算器1506は、メモリ1502からのストリーム値からバイアスを差し引いて、パッカー1510へ出力する。パッカー1510はまた、タイルスタートアドレス、バイアス、格納サイズ、およびタイルサイズ(ステータスブロック1504からの)を受信し、特定のタイルに対して圧縮されたデータストリームを出力する。この出力は、好ましくは、ステータスブロック1504から受信した格納サイズに基づき必要とされる最小ビット数を備える。当業者なら、バス幅およびビット数の変更を含め、パッカー1510およびシステム1500のその他のコンポーネンツに対して異なるインプリメンテーションが可能なことを認識するであろう。
パッカー1510の出力は、1以上のパケットの形態であることが好ましい。これらの実施形態のパケットについては図16に関連してさらに記述し、そのヘッダは図17に示す。
図16は、図15のエンコードのためのパケット1600を例示している。このパケット1600は、好ましくは、9ビットの、すなわち、例えばrサイズ、gサイズ、bサイズといった各色毎3ビットの、プレアンブルを持つ。同図に示すように、各色に必要なサイズは、3ビットコードフォーマットを用いて有利にエンコードされている。より具体的にいうと、各色をエンコードするためのビット数は、コード(例えば1ビットに対して000、または8ビットに対して111)に応じて、1から8ビットまで変化する。そのボディはさらに、例えばRGBインターリーブドフォーマットのような、圧縮されたタイル用のデータを含んでいる。
図17は、図15のエンコードおよび/または図16のパケットのためのヘッダ1700を例示している。同図に示すように、ヘッダ1700は、エンコードタイプ、バイト数、および3色のバイアス値(tri-chromatic bias values)を含んでいる。このインプリメンテーションでは、ヘッダ1700は、例えば、エンコードタイプ用の4ビット、たすバイト数用の4ビット、たす3つの色各々のバイアス用の8ビットすなわち24ビットを、用いている。しかしながら、当業者であれば、このヘッダに対して別のインプリメンテーションが可能なことを認識するであろう。この図に示すように、バイト数のフィールドは、8バイト(0001)から56バイト(0111)までの、8ビットの倍数のサイズを表している。同様に、エンコードタイプのフィールドは、図示するように、複合エンコード方式(multiple encoding schemes)を許容している。
図18は、幾つかの実施形態のエンコードシステム1800を示す。具体的には、図18は、第1レベル(ロスレス)および第2レベル(ロッシー)のエンコーダ1800を含む実施形態を示している。同図に示すように、エンコーダ1800は、メモリ1802、ステータスブロック1804、引算器1806、およびパッカー1810を含んでいる。これらのコンポーネンツは、好ましくは、図15に関連して前述したように接続され動作する。
例えば、メモリ1802およびステータスブロック1804は各々入力データストリームを受信する。幾つかのインプリメンテーションでは、そのデータは、24ビット、すなわちRGB、YCbCrなどの3色(three tri-chromatic colors)各々に対して8ビットを含んでいる。メモリ1802は、通常、タイルのストリーム値を格納するのに十分な規模のランダムアクセスメモリ(RAM)形式を備えており、一方、ステータスブロック1804は、例えば低い側から高い側へタイルの値をソートするようになっている。特定のインプリメンテーションでは、メモリ1802は4×4のタイルを受信するようになっている。
ステータスブロック1804は、種々で有用な値を有利に決定する。例えば、ステータスブロック1804は、やってくる3色データ値(tri-chromatic data values)をソートし、好ましくは、色のバイアス値として各色の最小係数を用いる。ステータスブロック1804は、好ましくは、24ビット、すなわち各色あたり8ビットを用いて、バイアス値を出力する。ステータスブロック1804はさらに、残りの格納サイズを決定し、9ビットを用いてそれを引算器1814およびマルチプレクサ1818へ出力する。以下これらについてさらに述べる。ステータスブロック1804は、圧縮されたタイルにおけるエンコードタイプおよびトータルバイトを決定し、それらをヘッダモジュール1820へ出力する。ヘッダモジュール1820はまた、ステータスブロック1804からバイアス値を受信し、図20に示すようなヘッダを発生する。
メモリ1802は、ステータスブロック1804からバイアス入力を受信する引算器1806へ、出力を行う。通常、このバイアスは、ステータスブロック1804で決定されたタイル内の最小値を備える。引算器1806は、バイアス(ステータスブロック1804を介して受信されたもの)をメモリ1802からのストリーム値から差し引き、マルチプレクサ1816およびシフタ1812へ出力する。マルチプレクサ1816は、ロッシー圧縮イネーブル信号(lossy_comp_enable)に基づいて引算器1806の出力またはシフタ1812の出力を選択し、パッカー1810へ出力する。パッカー1810はまた、タイルスタートアドレス、タイルサイズ、および格納サイズ(ステータスブロック1804を介したもの)を受信し、ステータスブロック1804から受信した格納サイズに基づいて必要最小限のビット数で出力する。しかしながら、当業者なら、バス幅およびビット数の変更を含め、パッカー1810およびその他のコンポーネンツに対して異なるインプリメンテーションが可能なことを認識するであろう。
上述したように、パッカー1810は、特定のタイルに対して圧縮されたデータストリームを出力する。パッカー1810の出力は、1以上のパケットの形態であることが好ましい。これらの実施形態のパケットについては図19に関連してさらに記述し、そのヘッダは図20に示す。
それゆえ、2ステージのエンコーダ1800は、シフトモジュール1812、引算器1814、および2つのマルチプレクサ1816および1818を含むところの付加ステージを、さらに含んでいる。この2つのマルチプレクサは、第1(ロスレス)ステージのエンコードだけ、または、第1(ロスレス)および第2(ロッシー)ステージの両方のエンコードを選択するロッシー圧縮イネーブル信号を、受信する。シフトモジュール1812は、通常は、丸め、および/または、2による割算もしくは切り縮め動作を提供するように、構成される。当業者なら認識するであろうが、割算は選択的なビットシフトにより容易に提供される。例えば、1ビットの右シフトはレジスタ内で2による割算動作を有利にもたらし、2ビットシフトは4による割算をもたらす。
シフトモジュール1812およびマルチプレクサ1816は、マルチプレクサ1816が引算器1806の出力とシフトモジュール1812の出力を受信し、ロッシー圧縮イネーブル信号に応じてその一方または他方の出力がパッカー1810に提供されるように、引算器1806およびパッカー1810の間に接続される。
引算器1814およびマルチプレクサ1818は、マルチプレクサ1818がステータスブロック1804の出力または引算器1814の出力を選択し選択された出力が格納サイズとしてパッカー1810に提供されるように、ステータスブロック1804およびパッカー1810の間に接続される。この図にさらに示されるように、ロッシーステージがイネーブルになると、引算器1814は、格納サイズを1だけ選択的にデクリメントする。当業者なら認識するであろうが、別の実施形態では、例えば1、2、3、4、若しくはその他の数Nのような、異なる量で格納サイズをデクリメントすることも可能である。
図19は、図18のエンコード用のパケット1900を例示している。このパケット1900は、好ましくは、9ビットの、すなわち例えばrサイズ、gサイズ、bサイズというように各色毎3ビットのプレアンブルを持つ、ボディを含んでいる。同図に示すように、各色に必要なサイズは、3ビットコードフォーマットを用いて有利にエンコードされている。より具体的にいうと、各色をエンコードするためのビット数は、コード(例えば、1ビットに対して000、または8ビットに対して111)に応じて、1から8ビットまで変化する。そのボディはさらに、例えばRGBインターリーブドフォーマットのような、圧縮されたタイル用のデータを含んでいる。
図20は、図18のエンコードおよび/または図19のパケット用のヘッダを例示している。同図に示すように、ヘッダ2000は、エンコードタイプ、バイト数、および3色のバイアス値(tri-chromatic bias values)を含んでいる。このインプリメンテーションでは、ヘッダ2000は、例えば、エンコードタイプ用の4ビット、たすバイト数用の4ビット、たす3つの色各々のバイアス用の8ビットすなわち24ビットを、用いている。しかしながら、当業者であれば、このヘッダに対して別のインプリメンテーションが可能なことを認識するであろう。この図に示すように、バイト数のフィールドは、例えば、4ビットコードを用い、8バイト(0001)から56バイト(0111)までの8ビットの倍数でもって、サイズを表している。同様に、エンコードタイプのフィールドは、図示するように、複合エンコード方式を許容している。したがい、異なるインプリメンテーションにおけるヘッダおよび/またはパケットは、例えばロッシーおよび/またはロスレスエンコードステージのような単一ステージおよび/またはマルチステージのエンコードの出力を扱うための、フィールドと柔軟性を含む。特定の実施形態におけるデコードシステムは、種々なエンコードを扱う場合と同様に構成される。
例えば、図21は幾つかの実施形態におけるデコードシステム2100を示している。同図に示すように、デコーダ2100は、通常はパケットの形式を持つ入力データを受信しパケットのボディをアンパッカー2104およびプレアンブルデコードモジュール2017へ出力する、ボディフェッチ2102を含んでいる。ヘッダフェッチ2105はまた、入力データを受信し、好ましくはヘッダを解析するヘッダデコードモジュール2106へ出力する。例えば、特定のヘッダデコードモジュール2106は、プレアンブルデコードモジュール2107へ4ビットのエンコードタイプを出力し、加算器2108へ24ビットのバイアス(3つの色(three tri-chromatic colors)各々に対して8ビット)を出力する。
プレアンブルデコードモジュール2107は、アンパッカー2104へ9ビットを出力する。この9ビットは、好ましくは、例えば赤緑青を用いるシステムに対するrgbサイズなどの3ビットコードフォーマットで、3色(three tri-chromatic colors)各々のサイズを示す。アンパッカー2104は、受信した入力データ内の各画素に対して8ビット幅のフォーマットが形成されるように失われた先行ゼロを拡張し、その8ビット幅データを前述した加算器2108へ出力する。
加算器2108は、ヘッダフィールドに含まれる情報を抽出するヘッダデコーダ2106からバイアスを受信する。加算器2108は、各画素に対する受信された値にそのバイアス(8ビットフォーマット)を加え、加算された値をメモリ2110へ出力する。前述したように、受信されたデータは、度々、画素のタイルに対するストリームを備えている。それゆえ、これら実施形態のメモリ2110は、好ましくは、画素のタイルの規模、すなわちヘッダデコードモジュール2106から受信されたものとしての、あるいは、システム2100内で所定のおよび/または固定されたものとしての、タイルサイズを持つ。こうして、これら固定されたサイズを送信する必要性を有利に減らしている。
メモリ2110の出力は、特定タイルの特定ストリームに対するデコードされた画素値である。例えば、幾つかの実施形態は、3つの色各々に対して8ビットを含んだ24ビットを出力する。メモリ2110は、好ましくは、マルチプレクサ2112および、例えばマルチプレクサ2112へ出力を行うN倍シフタ(multiply-by-N shifter)のようなシフタ2114へ、出力する。マルチプレクサ2112は、ロッシー圧縮イネーブル信号(lossy_comp_enable)に基づいて、メモリ2110の出力、または(マルチプレクサ2114を介した)シフト出力を選択する。それゆえ、デコーダ2100の図示されたインプリメンテーションは、図15および18に関連して前述したエンコーダ1500および1800とは逆のステップを実行し、ロスレスおよび/またはロッシーエンコードのデコードに対してさらに選択性を提供する。
図22は、エンコードされたフォーマット2200を例示している。同図に示すように、非圧縮のタイルは、例えば前述した実施形態の幾つかを用いることにより、より小さなフォーマットへ有利に圧縮される。特定のインプリメンテーションでは、16×16の非圧縮タイルが4×4の圧縮タイルへ圧縮される。各タイルは、好ましくは、例えば4バイトのヘッダを含む。あるインプリメンテーションでは、そのヘッダは、3つの色(three tri-chromatic colors)各々のバイアスに対して3バイト、すなわち青バイアス、緑バイアス、および赤バイアス各々に対して8ビットを用いている。1バイトは、エンコードタイプおよびバイト数のフィールドのために設けられている。この場合、これらのフィールド各々は、2つのフィールドに対してそのバイトの4ビットを用いている。
図示された例においては、48タイルが有利に圧縮され、フレームバッファにパックされる。より具体的には、図示されたインプリメンテーション2200は、前述した速度とランダムアクセスの利点を含むところの、租にパックされたフォーマットを用いている。さらに、租にパックされたインプリメンテーションでは、各タイルに配分された未使用スペースは、意図的にブランクのままとされている。図示された特定のフレームバッファは、12タイル幅と4タイル高となっている。それゆえ、4×4画素を持つタイルに対しては、フレームバッファは、16画素幅3つ分、すなわち48画素幅と、16画素高となる。
種々な異なる科学技術および技法のいずれかを用いることにより情報および信号を表すことができることは、当業者ならば理解するであろう。例えば、上記の記述を通して参照することができるところの、データ、インストラクション、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、電磁場またはその粒子、光の場またはその粒子、もしくはそれらの任意の組合せにより、表されてもよい。
当業者はまた、次のことも認識するであろう。すなわち、ここに開示される実施形態に関連して記載された種々な論理ブロック、モジュール、回路、およびアルゴリズムのステップは、電子ハードウエア、コンピュータソフトウエア、あるいはそれら両方の組合せとしてインプリメントすることができる。このハードウエアとソフトウエアの互換性を明確に示すために、種々図解されたコンポーネンツ、ブロック、モジュール、回路、およびステップが、その機能性でもって一般的に説明されている。このような機能性がハードウエアとしてインプリメントされるのかソフトウエアとしてインプリメントされるのかは、システム全体に課せられる特定のアプリケーションおよび設計上の制約に依存する。経験を積んだ技術者なら、記載された機能性を個々の特定アプリケーションに対応して種々な方法でインプリメントできるだろうが、そのようなインプリメンテーションの決定はこの発明からの逸脱を意味するものではない。
ここに開示される実施形態に関連して記述され、図解された種々な論理ブロック、モジュール、および回路は、ここに記載された機能を実行するように設計された、汎用プロセサ、デジタル信号プロセサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいはその他のプログラマブル論理デバイス、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウエアコンポーネンツ、またはそれらの任意の組合せにより、インプリメントすることができ、あるいは実行することができる。汎用プロセサとしてはマイクロプロセサがあるが、それに限らず、このプロセサは、一般的なプロセサ、コントローラ、もしくはステートマシンのどれでもよい。プロセサは、計算デバイスの組合せとして、例えば、DSPとマイクロプロセサの組合せ、複数のマイクロプロセサの組合せ、DSPコアに関連した1以上のマイクロプロセサの組合せ、あるいはそのような任意の構成の組合せとして、インプリメントすることもできる。
ここに開示される実施形態に関連して記述された方法あるいはアルゴリズムのステップは、直接ハードウエアで具現することができ、あるいはプロセサにより実行されるソフトウエアで具現することができ、あるいはそれら2つの組合せで具現することができる。ソフトウエアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、あるいは、当該技術分野で知られているその他の形態の格納媒体の中に存在できる。一例としての格納媒体は、プロセサがその格納媒体から情報を読むことができかつ情報を書き込むことができるように、プロセサに接続される。あるいは、その格納媒体はプロセサに組み込まれていてもよい。このプロセサおよび格納媒体はASIC内に存在していてもよい。このASICは、ユーザ端末、パーソナルコンピュータ、あるいは移動体計算機および/または電気通信デバイス内に存在していてもよい。あるいは、プロセサおよび格納媒体は、ユーザ端末内でディスクリートコンポーネンツとして存在していてもよい。
ここに開示された実施形態の上記記載は、どの当業者でもこの発明品を作成し使用することができるようにしている。これら実施形態の種々な変形が当業者にとって容易なことは明かであり、ここに定義される一般原則は、この発明の趣旨と範囲から逸脱することなく他の実施形態に適用できる。例えば、移動体デバイスのためのイメージおよび/またはビデオデータに関連して種々な実施形態が記載されている。しかしながら、当業者なら他のデータタイプや他のプラットフォームも認識できる。すなわち、この発明をここに示された実施形態に限定する意図はなく、この発明はここに記載された原理および新規な特徴に矛盾しない範囲で最大限広く扱われるべきである。
以下に、本願出願当初の特許請求の範囲に記載された発明を付記する。
[1] 以下を備えたエンコード方法:
イメージを受信し、
前記イメージをタイルのセットにタイリングし、ここで各タイルは画素のセットを具備し、
第1のタイルを選択し、
前記第1のタイル内の画素に対する値の第1セットを決定し、
前記第1のタイル内の各画素の決定された値を複数のストリームに分け、
第1のストリームに対して、バイアス値を決定し、そして、
前記ストリーム内の各値からバイアス値を差し引いて、引き算された値のセットを発生する。
[2] [1]の方法において、前記引き算された値は1以上の先行ゼロを含み、この方法が、さらに以下を備える:
先行するゼロを除去し、前記第1のストリーム内の前記引き算された値を表すために要求されるビット数を減らして、
前記第1のストリーム内の値をより少ないビットで表す。
[3] [1]の方法が、さらに以下を備える:
ストリーム内の値に対して、最小の値を決定する、ここで前記バイアス値が前記最小の値を備える。
[4] [1]の方法が、さらに以下を備える:
前記引き算された値を丸めて、丸められた値のセットを発生し、そして、
前記丸められた値をあるファクタで割る。
[5] [4]の方法において、前記ファクタは2の倍数を備え、Nをシフトされた最小桁ビット数としたときに、Nビットロッシーエンコーダがインプリメントされるようにして、前記割り算がシフト動作により行われる。
[6] [1]の方法において、前記複数のストリームが、赤、緑、および青各々のストリームを備える。
[7] [1]の方法において、前記複数のストリームが、Y、Cr、およびCb各々のストリームを備える。
[8] [1]の方法が、さらに以下を備える:
フレームバッファ内において、タイルのエンコードされたセットをパッキングする。
[9] [8]の方法において、各タイルにより占有されるスペースが可変となるよう、前記
タイルが密にパックされる。
[10] [8]の方法において、前記タイルは所定のアドレス可能な場所にパックされる。
[11] [1]の方法において、前記第1のストリームは前記第1のタイルの画素に対する第1の色を示す係数のセットを備え、この方法が、さらに以下を備える: 前記第1のストリームに対して、前記第1の色を再構成するのに十分な係数情報を前記バイアス値が含むかどうかを、決定する。
[12] [11]の方法において、さらに以下を備える:前記バイアス値が前記第1の色を再構成するのに十分な係数情報を含むならば、
前記バイアス値を用いて前記第1の色をパケットヘッダにエンコードし、
パケットボディ内における前記第1の色に対する係数のエンコードを差し控え、
前記第1のタイルの前記第1の色を忠実に再構成するのに十分な画素情報をヘッダが含むかどうかを示すためのエンコードタイプを選択する。
[13] [12]の方法において、さらに以下を備える:前記パケットヘッダをフェッチし、
前記エンコードタイプを受信し、そして、
前記エンコードタイプを用いて前記第1の色をデコードする、ここで、前記第1の色を再構成するのに十分な情報を前記パケットヘッダが含むことを前記エンコードタイプが示すならば、この方法は、前記パケットボディから前記第1の色のための情報をフェッチする処理を差し控える。
[14] [12]の方法において、前記エンコードタイプが、以下のうちの少なくとも1つを備える:
前記パケットボディ内に前記第1のタイルのための色情報がエンコードされていないという状況に対する第1の選択、
前記パケットボディ内に1つの色のための情報がエンコードされていないという状況に対する第2の選択、
前記パケットボディ内に2つの色のための情報がエンコードされていないという状況に対する第3の選択、
前記パケットボディ内に3つの色のための情報がエンコードされていないという状況に対する第4の選択。
[15] [12]の方法において、前記係数情報はルミナンス値とクロミナンス値のうちの1つを備える。
[16] エンコードのためのプログラムを格納するコンピュータ読取可能媒体であって、前記プログラムが、以下のための命令を備える:
イメージを受信すること、
前記イメージをタイルのセットにタイリングすること、ここで各タイルは画素のセットを具備する、
第1のタイルを選択すること、
前記第1のタイル内の画素に対する値の第1セットを決定すること、
前記第1のタイル内の各画素の決定された値を複数のストリームに分けること、
第1のストリームに対して、バイアス値を決定すること、そして、
前記ストリーム内の各値からバイアス値を差し引いて、引き算された値のセットを発生すること。
[17] イメージ圧縮システムであって、このシステムが以下を備える:
イメージを受信する手段、
前記イメージをタイルのセットにタイリングする手段、ここで各タイルは画素のセットを具備する、
第1のタイルを選択する手段、
前記第1のタイル内の画素に対する値の第1セットを決定する手段、
前記第1のタイル内の各画素の決定された値を複数のストリームに分ける手段、
第1のストリームに対して、バイアス値を決定する手段、そして、
前記ストリーム内の各値からバイアス値を差し引く手段、これにより引き算された値のセットを発生する。
[18] 以下のものを持つ第1のステージを備えたエンコーダ:
入力データのセットを受信するメモリ、
前記入力データのセットを受信するステータスブロック、このステータスブロックは前記入力データをソートするように構成される、
前記メモリの出力および前記ステータスブロックの出力に接続される第1の引算器、この第1の引算器は前記メモリの出力および前記ステータスブロックの出力に対して演算処理を行う、
前記第1の引算器に接続される第1の論理ユニット、この第1の論理ユニットは前記第1の引算器の出力を受信し複数のビットを出力する、そして、
前記論理ユニットに接続され前記複数のビットを受信してデータパケットを形成するパッカー、
ここで前記第1の論理ユニットは特定のデータストリームに基づいて減少されたビット数を出力するように構成される。
[19] [18]のエンコーダにおいて、前記メモリはタイルからデータストリームを受信するように構成され、ここで、タイルは1以上のデータストリームを備え、前記メモリは前記タイルからのデータストリームに基づくサイズとされる。
[20] [18]のエンコーダにおいて、前記演算処理は前記ステータスブロックの出力を前記メモリの出力から差し引いて引き算された値を発生することを備え、この引き算された値が1以上の先行ゼロを備え、前記エンコーダはさらに以下のことをするように構成される:
先行ゼロを除去して、第1のストリーム内の引き算された値を表すのに必要なビット数を減らす、そして、
前記第1のストリーム内の値をより少ないビットで表す。
[21] [18]のエンコーダにおいて、前記第1の論理ユニットはデコードユニットを備え、このデコードユニットにより出力されるビット数はこのデコードユニットへの制御入力により決定されるようになっており、この制御入力は前記ステータスブロックにより提供される。
[22] [18]のエンコーダにおいて、前記ステータスブロックは前記入力データ内の値を用いてバイアス値を決定するように構成され、このステータスブロックは、さらに、前記第1の引算器による引算のためのバイアス値を提供するように構成される。
[23] 請求項18のエンコーダはフレームバッファをさらに備え、このエンコーダは前記フレームバッファ内のタイルのエンコードされたセットをパッキングするように構成される。
[24] [18]のエンコーダは、以下のものを具備する第2のステージをさらに備える:
前記第1の引算器の出力に接続された第2の論理ユニット、この第2の論理ユニットは丸め機能と割算機能を提供するように構成されている、
前記第1の引算器および前記第2の論理ユニットに接続された第1のマルチプレクサ、この第1のマルチプレクサは前記第1の引算器および前記第2の論理ユニットの出力を選択的に提供するように構成されている、
前記ステータスブロックの出力に接続された第2の引算器、この第2の引算器は1づつデクリメントするように構成されている、
前記ステータスブロックおよび前記第2の引算器に接続された第2のマルチプレクサ、この第2のマルチプレクサは前記ステータスブロックおよび前記第2の引算器の出力を選択的に提供するように構成されている、
前記第1および第2のマルチプレクサ各々に接続されたロッシーイネーブルライン、ここで、
前記ロッシーイネーブルラインがある状態にあるときは、前記第1のマルチプレクサは前記第1の引算器の出力を提供し、前記第2のマルチプレクサは前記ステータスブロックの出力を提供し、
前記ロッシーイネーブルラインが他の状態にあるときは、前記第1のマルチプレクサは前記第2の論理ユニットの出力を提供し、前記第2のマルチプレクサは前記第2の引算器の出力を提供する。
[25] 以下のものを備えたシステム:
減少された数のデータビットを用いてデータをエンコードするように構成されたエンコーダを持つ送信機;
送信チャネル;そして、
次のものを備えたデコーダを含む受信機:
入力データを受信するデータフェッチ、
前記データフェッチに接続されたアンパッカー、前記データフェッチは前記アンパッカーに出力する、前記アンパッカーは、受信された入力データに対して所定のフォーマットを形成するように失われた先行ゼロを拡張して、8ビット幅のデータを出力する、
前記入力データからヘッダ情報を抽出するヘッダデコードモジュール、そして、
前記ヘッダデコードモジュールおよび前記アンパッカーに接続される加算器、この加算器は前記ヘッダデコードモジュールからバイアス値を受信しそのバイアス値を前記パッカーの出力に加算する。

Claims (8)

  1. 以下を備えたエンコード方法:
    イメージを受信し、
    前記イメージをタイルのセットにタイリングし、ここで各タイルは画素のセットを具備し、
    第1のタイルを選択し、
    前記第1のタイル内の画素に対する値の第1セットを決定し、
    前記第1のタイル内の各画素の決定された値を複数のストリームに分け、
    第1のストリームに対して、バイアス値を決定し
    前記ストリーム内の各値からバイアス値を差し引いて、引き算された値のセットを発生し、ここで、前記引き算された値は1以上の先行ゼロを含み、
    先行するゼロを除去し、前記第1のストリーム内の前記引き算された値を表すために要求されるビット数を減らして、
    前記第1のストリーム内の値をより少ないビットで表し、ここで、前記第1のストリームは、前記第1のタイルのための情報がパケットボディ内にエンコードされているかどうかを示すエンコードタイプおよび前記第1のストリームのバイアス値の情報を含むように構成されたヘッダを備える
  2. 請求項1の方法が、さらに以下を備える:
    ストリーム内の値に対して、最小の値を決定する、ここで前記バイアス値が前記最小の値を備える
  3. 請求項1の方法が、さらに以下を備える:
    前記引き算された値を丸めて、丸められた値のセットを発生し、そして、
    前記丸められた値をあるファクタで割る
  4. 請求項3の方法において、前記ファクタは2の倍数を備え、Nをシフトされた最小桁ビット数としたときに、Nビットロッシーエンコーダがインプリメントされるようにして、前記割り算がシフト動作により行われる
  5. 請求項1の方法において、前記複数のストリームが、赤、緑、および青各々のストリームを備える
  6. 請求項1の方法において、前記複数のストリームが、Y、Cr、およびCb各々のストリームを備える
  7. エンコードのためのプログラムを格納するコンピュータ読取可能媒体であって、前記プログラムが、以下のための命令を備える:
    イメージを受信すること、
    前記イメージをタイルのセットにタイリングすること、ここで各タイルは画素のセットを具備する、
    第1のタイルを選択すること、
    前記第1のタイル内の画素に対する値の第1セットを決定すること、
    前記第1のタイル内の各画素の決定された値を複数のストリームに分けること、
    第1のストリームに対して、バイアス値を決定すること、
    前記ストリーム内の各値からバイアス値を差し引いて、引き算された値のセットを発生すること、ここで、前記引き算された値は1以上の先行ゼロを含み、
    先行するゼロを除去し、前記第1のストリーム内の前記引き算された値を表すために要求されるビット数を減らすこと、
    前記第1のストリーム内の値をより少ないビットで表すこと、ここで、前記第1のストリームは、前記第1のタイルのための情報がパケットボディ内にエンコードされているかどうかを示すエンコードタイプおよび前記第1のストリームのバイアス値の情報を含むように構成されたヘッダを備える
  8. イメージ圧縮システムであって、このシステムが以下を備える:
    イメージを受信する手段、
    前記イメージをタイルのセットにタイリングする手段、ここで各タイルは画素のセットを具備する、
    第1のタイルを選択する手段、
    前記第1のタイル内の画素に対する値の第1セットを決定する手段、
    前記第1のタイル内の各画素の決定された値を複数のストリームに分ける手段、
    第1のストリームに対して、バイアス値を決定する手段、
    前記ストリーム内の各値からバイアス値を差し引く手段、これにより引き算された値のセットを発生する、ここで、前記引き算された値は1以上の先行ゼロを含む、
    先行するゼロを除去する手段、これにより前記第1のストリーム内の前記引き算された値を表すために要求されるビット数を減らす、
    前記第1のストリーム内の値をより少ないビットで表す手段、ここで、前記第1のストリームは、前記第1のタイルのための情報がパケットボディ内にエンコードされているかどうかを示すエンコードタイプおよび前記第1のストリームのバイアス値の情報を含むように構成されたヘッダを備える
JP2010515030A 2007-06-28 2008-06-24 格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式 Expired - Fee Related JP5069349B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US94697207P 2007-06-28 2007-06-28
US60/946,972 2007-06-28
US11/855,578 US8331663B2 (en) 2007-06-28 2007-09-14 Efficient image compression scheme to minimize storage and bus bandwidth requirements
US11/855,578 2007-09-14
PCT/US2008/068010 WO2009006099A2 (en) 2007-06-28 2008-06-24 An efficient image compression scheme to minimize storage and bus bandwidth requirements

Publications (2)

Publication Number Publication Date
JP2010533396A JP2010533396A (ja) 2010-10-21
JP5069349B2 true JP5069349B2 (ja) 2012-11-07

Family

ID=40011156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010515030A Expired - Fee Related JP5069349B2 (ja) 2007-06-28 2008-06-24 格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式

Country Status (7)

Country Link
US (1) US8331663B2 (ja)
EP (1) EP2012544A3 (ja)
JP (1) JP5069349B2 (ja)
KR (1) KR101139563B1 (ja)
CN (1) CN101796842B (ja)
TW (1) TW200910974A (ja)
WO (1) WO2009006099A2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8699808B2 (en) * 2007-10-15 2014-04-15 Chih-Ta Star Sung Method and apparatus of temporary image frame compression
US20110249959A1 (en) * 2010-04-09 2011-10-13 Korea Electronics Technology Institute Video storing method and device based on variable bit allocation and related video encoding and decoding apparatuses
US8989275B2 (en) * 2010-11-10 2015-03-24 Qualcomm Incorporated Video processing architecture
PL2725797T3 (pl) 2011-06-23 2019-01-31 Huawei Technologies Co., Ltd. Urządzenie do dekodowania przesunięcia, urządzenie do kodowania przesunięcia, urządzenie do filtrowania obrazu i struktura danych
US8724913B2 (en) * 2012-07-19 2014-05-13 Omnivision Technologies, Inc. Decoder and method for decoding run-length-encoded data
US20140029864A1 (en) * 2012-07-30 2014-01-30 Dror Reif Compression encoding and decoding method and apparatus
US9754560B2 (en) * 2012-08-20 2017-09-05 Open Invention Network, Llc Pooling and tiling data images from memory to draw windows on a display device
US9584792B2 (en) 2013-01-04 2017-02-28 Qualcomm Incorporated Indication of current view dependency on reference view in multiview coding file format
US9087410B2 (en) * 2013-01-17 2015-07-21 Qualcomm Incorporated Rendering graphics data using visibility information
EP2951674B1 (en) * 2013-02-01 2019-08-14 Hitachi Vantara Corporation Method and apparatus to enable finer-grained, scalable allocation of storage in a data storage system
EP4072136A1 (en) 2013-03-01 2022-10-12 intoPIX s.a. Method and device for display stream compression
US9332258B2 (en) 2013-03-01 2016-05-03 intoPIX SA Method and device for display stream compression
KR20140109128A (ko) * 2013-03-05 2014-09-15 삼성전자주식회사 데이터 리드 방법과 상기 방법을 수행할 수 있는 장치들
US9135727B2 (en) 2013-05-07 2015-09-15 Adobe Systems Incorporated Method and apparatus for reconstructing indexed color spaces
US11425395B2 (en) * 2013-08-20 2022-08-23 Google Llc Encoding and decoding using tiling
CN103796018B (zh) * 2014-01-14 2017-09-15 齐齐哈尔大学 一种遥感影像实时压缩及渐进传输系统
WO2015109598A1 (en) * 2014-01-27 2015-07-30 Mediatek Singapore Pte. Ltd. Methods for motion parameter hole filling
GB2530312B (en) * 2014-09-19 2016-09-14 Imagination Tech Ltd Data compression
WO2017016526A1 (en) * 2015-07-30 2017-02-02 Zhejiang Dahua Technology Co., Ltd. Methods and systems for image compression
US9794574B2 (en) * 2016-01-11 2017-10-17 Google Inc. Adaptive tile data size coding for video and image compression
CN105959503A (zh) * 2016-05-25 2016-09-21 西北工业大学 远程图像预览传输方法及装置
US10511858B2 (en) * 2016-07-13 2019-12-17 Ati Technologies Ulc Bit packing for delta color compression
KR102646906B1 (ko) 2016-11-17 2024-03-12 삼성전자주식회사 타일 기반 렌더링 방법 및 장치
US10438597B2 (en) * 2017-08-31 2019-10-08 Dolby International Ab Decoder-provided time domain aliasing cancellation during lossy/lossless transitions
GB2569645B (en) * 2017-12-22 2022-02-23 Displaylink Uk Ltd Managing data for transportation
CN111869205B (zh) 2018-01-19 2022-06-10 Pcms控股公司 具有变化位置的多焦平面
EP4266113A3 (en) 2018-03-23 2023-12-27 InterDigital VC Holdings, Inc. Multifocal plane based method to produce stereoscopic viewpoints in a dibr system (mfp-dibr)
US10812828B2 (en) * 2018-04-10 2020-10-20 At&T Intellectual Property I, L.P. System and method for segmenting immersive video
CN112585963B (zh) * 2018-07-05 2024-04-09 Pcms控股公司 用于2d显示器上的内容的3d感知的近眼焦平面覆盖层的方法和系统
CN110769253A (zh) * 2018-07-26 2020-02-07 晨星半导体股份有限公司 影像压缩电路及方法
KR102167360B1 (ko) * 2019-05-24 2020-10-19 서울과학기술대학교 산학협력단 화면 전송 방법 및 장치
US11663730B2 (en) * 2021-02-19 2023-05-30 Toyota Motor Engineering & Manufacturing North America, Inc. Systems and methods for an improved camera system using a graded lens and filters to estimate depth
CN114465826B (zh) * 2022-04-11 2022-07-15 深圳市天兴诚科技有限公司 编码技术的数据加密方法、系统及储存介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0793724B2 (ja) 1984-12-21 1995-10-09 ソニー株式会社 テレビジョン信号の高能率符号化装置及び符号化方法
JPS6370682A (ja) 1986-09-12 1988-03-30 Sony Corp コンポ−ネント信号の高能率符号化装置
US5166987A (en) * 1990-04-04 1992-11-24 Sony Corporation Encoding apparatus with two stages of data compression
JP2844861B2 (ja) 1990-06-29 1999-01-13 ソニー株式会社 画像信号の高能率符号化装置及び符号化方法
GB9113469D0 (en) 1991-06-21 1991-08-07 Anamartic Ltd Data storage management systems
JP3162792B2 (ja) * 1992-04-17 2001-05-08 キヤノン株式会社 画像処理装置
JP3874544B2 (ja) * 1998-07-10 2007-01-31 三菱電機株式会社 色変換装置および色変換方法
JPH07274021A (ja) * 1994-03-31 1995-10-20 Canon Inc 画像処理装置
US5878168A (en) * 1995-06-05 1999-03-02 Sony Corporation Method and apparatus for picture encoding and decoding
US5793314A (en) * 1996-07-03 1998-08-11 Motorola, Inc. Method and apparatus for bound-based adaptive entropy encoding/decoding
JP3748088B2 (ja) * 1996-07-17 2006-02-22 ソニー株式会社 画像処理装置および方法、並びに学習装置および方法
JP3687080B2 (ja) 1996-07-17 2005-08-24 ソニー株式会社 画像符号化装置および画像符号化方法、画像復号化装置および画像復号化方法、並びに記録媒体
JPH1032495A (ja) 1996-07-18 1998-02-03 Sony Corp データ処理装置および方法
JP3342380B2 (ja) 1997-12-24 2002-11-05 キヤノン株式会社 符号化及び復号装置とそれを適用した画像処理装置
AUPP686598A0 (en) 1998-10-30 1998-11-26 Canon Kabushiki Kaisha A method and apparatus for representing a digital image to provide a coded representation
US20040136600A1 (en) * 1999-08-24 2004-07-15 Yfantis Evangelos A. Visually lossless still image compression for RGB, YUV, YIQ, YCrCb, K1K2K3 formats
KR100344900B1 (ko) * 2000-05-15 2002-07-20 주식회사 이시티 영상 압축/복원 장치 및 그 방법
JP2003189109A (ja) 2001-10-09 2003-07-04 Canon Inc 画像処理装置及び方法、並びにコンピュータ・プログラム
JP4061917B2 (ja) 2002-02-12 2008-03-19 ソニー株式会社 符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラム
JP2003259393A (ja) 2002-03-01 2003-09-12 Sony Corp 符号化処理装置、復号処理装置、および方法、並びにコンピュータ・プログラム
US7764832B2 (en) * 2003-12-16 2010-07-27 Seiko Epson Corporation System and method for processing image data for color space conversion
KR100679027B1 (ko) * 2005-01-19 2007-02-05 삼성전자주식회사 Dc 성분의 손실 없이 영상을 코딩하는 방법 및 장치
JP4321496B2 (ja) * 2005-06-16 2009-08-26 ソニー株式会社 画像データ処理装置、画像データ処理方法およびプログラム

Also Published As

Publication number Publication date
KR101139563B1 (ko) 2012-04-27
TW200910974A (en) 2009-03-01
EP2012544A2 (en) 2009-01-07
JP2010533396A (ja) 2010-10-21
CN101796842B (zh) 2012-11-14
WO2009006099A3 (en) 2009-02-19
CN101796842A (zh) 2010-08-04
US20090003714A1 (en) 2009-01-01
KR20100030660A (ko) 2010-03-18
EP2012544A3 (en) 2009-03-11
US8331663B2 (en) 2012-12-11
WO2009006099A2 (en) 2009-01-08

Similar Documents

Publication Publication Date Title
JP5069349B2 (ja) 格納およびバスバンド幅の要求を最小限に抑える効率的な画像圧縮方式
US7158679B2 (en) Image compression with tile alignment
US9232226B2 (en) Systems and methods for perceptually lossless video compression
US8923613B2 (en) Image compression device, image compression method, integrated circuit, program, and picture display apparatus
US7570819B2 (en) Method and apparatus for displaying images with compression mechanism
RU2710873C2 (ru) Способ и устройство для декодирования цветного изображения
US8989275B2 (en) Video processing architecture
CN106464923B (zh) 用于用信号通知画面/视频格式的方法和设备
CN106412595B (zh) 用于编码高动态范围帧以及施加的低动态范围帧的方法和设备
US7751617B2 (en) Image compression and decompression method capable of encoding and decoding pixel data based on a color conversion method
EP2222087A1 (en) Bit depth upscaling in RGB colour space for reducing propagation of errors due to transformation to YUV colour space
US11190810B2 (en) Device and method for compressing image data using quantization parameter and entropy tables
WO2010005360A1 (en) Method for compressing images and a format for compressed images
JP2011151572A (ja) 画像データ処理装置およびその動作方法
JP2009530896A (ja) 修飾子電子透かしを用いた圧縮方式、及びこの圧縮方式を用いて画像をフレームメモリに一次記憶する装置
US10721484B2 (en) Determination of a co-located luminance sample of a color component sample, for HDR coding/decoding
KR20100013142A (ko) 프레임 메모리 압축방법
EP4443879A1 (en) Image processing device and operating method thereof
WO2023236936A1 (zh) 一种图像编解码方法及装置
WO2005074146A1 (en) Data encoding using multi-dimensional redundancies
JP2011193192A (ja) データ処理装置
CN102497557A (zh) 基于2x2编码单元的影像压缩、解压缩方法及系统

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120214

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120514

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120614

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120816

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

Free format text: PAYMENT UNTIL: 20150824

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees