JP2023156452A - パレットテーブル導出への適用による並列ヒストグラム計算 - Google Patents

パレットテーブル導出への適用による並列ヒストグラム計算 Download PDF

Info

Publication number
JP2023156452A
JP2023156452A JP2023132810A JP2023132810A JP2023156452A JP 2023156452 A JP2023156452 A JP 2023156452A JP 2023132810 A JP2023132810 A JP 2023132810A JP 2023132810 A JP2023132810 A JP 2023132810A JP 2023156452 A JP2023156452 A JP 2023156452A
Authority
JP
Japan
Prior art keywords
pixel component
bits
encoder
bins
histogram
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.)
Pending
Application number
JP2023132810A
Other languages
English (en)
Inventor
パン フェン
Feng Pan
ガオ ウェイ
Wei Gao
リウ ヤン
Yan Liu
ヨンーピャン ソウ クリスタル
Yeong-Pian Sau Crystal
リウ ハイボー
Haibo Liu
エイ. ハロルド エドワード
a harold Edward
ルオ イン
Ying Luo
アメール イハブ
Amer Ihab
シネス ガボール
Sines Gabor
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ATI Technologies ULC filed Critical ATI Technologies ULC
Publication of JP2023156452A publication Critical patent/JP2023156452A/ja
Pending legal-status Critical Current

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/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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding

Landscapes

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

Abstract

【課題】パレットテーブル導出のためのマルチパスヒストグラムを計算する方法、システム及び装置を提供する。【解決手段】パレットテーブル導出のための複数のヒストグラムパスを生成する方法であって、エンコーダは、画像又はビデオフレームのブロックのピクセルコンポーネント値の最上位ビット(MSB)の第1の部分に対する第1のヒストグラムを計算し、第1のヒストグラムから、ピクセル数が最も多いビンの所与の数を選択し、ピクセルコンポーネント値から1つ以上の追加のビットを評価して、これら選択したピクセル数が最も多いビンの粒度を増大させ、該ビン及び1つ以上の追加のビットからの元の第1の部分のMSBの連結に対して第2のヒストグラムを計算し、ピクセル数が最も多いビンを第2のヒストグラムから選択し、選択したピクセル数が最も多いビンに基づいてパレットテーブルを導出し、パレットテーブルを使用してブロックを符号化する。【選択図】図13

Description

ビデオデータの圧縮性を高めるために、いくつかのビデオ圧縮標準技術(例えば、HEVC(high efficiency video coding)標準技術、AV1(Alliance for Open Media video 1)コーディング標準技術)においてパレットコーディングが使用される。パレットコーディングは、候補パレットレベルを判定するようにヒストグラムを計算及び分類することを含む。パレットテーブル導出のためにヒストグラム計算に必要な記憶のサイズは、画素ビット深度と共に指数関数的に高まる。本明細書で使用される「パレットテーブル」という用語は、複数のエントリを記憶したデータ構造として定義され、各エントリは、画素成分値にマッピングするインデックスを記憶する。8ビット、10ビット及び12ビットのビデオについて、ヒストグラムビン(histogram bins)の必要とされる数は、従来のパレットコーディング技術に対して、256、1024及び4096である。
添付図面と共に以下の説明を参照することによって、本明細書で説明する方法及びメカニズムの利点をより良好に理解することができる。
コンピューティングシステムの一実施形態のブロック図である。 画像及び対応するピクセル分布の図である。 コンピュータ生成されたスクリーンコンテンツ画像及び対応するピクセル分布の図である。 メモリに結合されたエンコーダの一実施形態のブロック図である。 一実施形態による、所与のブロックのサンプルヒストグラムを示す図である。 一実施形態による、第1のパス後の所与のブロックのためのデシメート(decimated)されたサンプルヒストグラムを示す図である。 一実施形態による、上位のデシメートされた候補ビンの選択を示す図である。 一実施形態による、第2のパスヒストグラムを示す図である。 ピクセルコンポーネントのビットの一実施形態を示す図である。 パレットテーブル導出のため二重パスヒストグラムを生成するプロセスの一実施形態のブロック図である。 パレットテーブル導出のためマルチパスヒストグラムを生成する方法の一実施形態を示す一般化されたフロー図である。 パレットテーブル導出の一部として複数のヒストグラムパスを生成する方法の一実施形態を示す一般化されたフロー図である。 パレットテーブル導出のため複数のヒストグラムパスを生成する方法の一実施形態を示す一般化されたフロー図である。 パレットテーブル導出のためマルチパスヒストグラムを計算する方法の一実施形態を示す一般化されたフロー図である。 パレットテーブルを使用してビデオ/画像ブロックを符号化する方法の一実施形態を示す一般化されたフロー図である。
以下の説明では、本明細書で提示される方法及びメカニズムの十分な理解を提供するために、多数の詳細が示される。しかしながら、当業者は、それらの特定の詳細無しに様々な実施形態が実施されてもよいことを認識すべきである。いくつかの例では、本明細書で説明するアプローチを曖昧にすることを回避するために、周知の構造、構成要素、信号、コンピュータプログラム命令、及び、技術が詳細に示されていない。説明を簡潔及び明確にするために、図に示す要素は、必ずしも同じ縮尺で描かれていない。例えば、いくつかの要素の寸法は、他の要素に対して誇張されてもよい。
パレットテーブル導出のための階層的技術を実装するための様々なシステム、装置及び方法が本明細書に開示される。一実施形態では、エンコーダは、ビデオフレームのピクセルコンポーネント値(すなわち、色値)の最上位ビット(MSB)の第1の部分の第1のパスヒストグラムを計算する。次に、エンコーダは、第1のパスヒストグラムから最もピクセル数が多いビンの所与の数を選択する。本明細書で使用される「ビン」という用語は、1つ以上の値を指定する間隔として定義される。ビンは、典型的には、連続した、重なり合わない間隔の変数として指定される。この場合、変数は、ピクセルコンポーネント値であり、各ビンは、範囲のサイズがMSBの第1の部分から外れるピクセルコンポーネント値ビットの数によって決定された値の範囲を指定する。
第1のパスヒストグラムから最もピクセル数が多いビンの所与の数を選択した後、エンコーダは、ピクセルコンポーネント値から1つ以上の追加のビットを評価することによって、これらの選択された最もピクセル数が多いビンの粒度を増大させる。次に、第2のパスヒストグラムが、ピクセルコンポーネント値及び1つ以上の追加のビットのMSBの元の第1の部分の連結に対して計算され、最もピクセル数の多いビンが、第2のパスヒストグラムから選択される。パレットテーブルが、第2のパスヒストグラムからこれらの最もピクセル数が多いビンに基づいて導出され、ビデオフレームが、パレットテーブルを使用して符号化される。マルチパスヒストグラムアプローチを使用することによって、メモリ要求が、従来のパレットテーブル導出技術と比較して低減される。
一実施形態では、ピクセルビットは、「m」個の最上位ビット(MBS)で始まり、残りのビットに「n1」ビット、「n2ビット」等を追加することによって拡大する、階層的動作のためのいくつかのグループに分割される。第1のヒストグラムは、「m」個のMSBに対して計算され、この第1のヒストグラムからの上位ビンが選択される。これらの上位ビンは、増大されて「n1」ビットを含み、次に、第2のヒストグラムがこれらの増大されたビンに対して計算される。第2のヒストグラムから上位ビンが選択され、これらのビンが増大された、「N2」ビットを含む。一実施形態では、このプロセスは、ピクセルコンポーネント値ビットの全てが評価されるまで続く。この説明のため、「m」、「n1」及び「n2」は、正の整数であると仮定される。「m」、「n1」及び「n2」の値、選択された上位ビンの数、及び、実施されるパスの数は柔軟であり、実施形態によって変化し得る。これらの値は、単純なハードウェア実装と性能との間のトレードオフに基づいて調整される。
図1を参照すると、コンピューティングシステム100の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム100は、少なくともエンコーダ105と、プロセッサ(複数可)110と、入力/出力(I/O)インタフェース120と、バス125と、メモリデバイス(複数可)130と、を含む。他の実施形態では、コンピューティングシステム100は、他のコンポーネントを含んでもよく、及び/又は、コンピューティングシステム100は、異なる構成とすることができる。一実施形態では、エンコーダ105は、ビデオコーデックを実装するロジックを含む。ビデオコーデックは、非圧縮ビデオストリームを符号化し、及び/又は、圧縮されたビデオストリームを復号する。一実施形態では、ビデオコーデックは、1つ以上のビデオ圧縮規格に従って動作する。本明細書で使用される「エンコーダ」及び「ビデオコーデック」という用語は、ビデオ/画像デコーダ、ビデオ/画像エンコーダ、又は、ビデオコーデックを指すことができることに留意されたい。エンコーダ105は、ハードウェア及び/又はソフトウェアの任意の適切な組み合わせを表す。エンコーダ105が、プロセッサ(複数可)110とは異なる別のユニットとして示されているが、エンコーダ105の一部又は全体がプロセッサ(複数可)110上で実行されてもよいし、プロセッサ(複数可)110上に実装されてもよいことを理解されたい。
プロセッサ(複数可)110は、任意の数及びタイプの処理ユニット(例えば、中央処理ユニット(CPU)、グラフィック処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC))を表す。一実施形態では、エンコーダ105に関連する処理の一部は、プロセッサ(複数可)110によって実施される。メモリデバイス(複数可)130は、任意の数及びタイプのメモリデバイスを表す。例えば、メモリデバイス(複数可)130におけるメモリのタイプは、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、NANDフラッシュメモリ、NORフラッシュメモリ、又は、強誘電体ランダムアクセスメモリ(FeRAM)等を含んでもよい。メモリデバイス(複数可)130は、エンコーダ105及びプロセッサ(複数可)110によってアクセス可能である。I/Oインタフェース120は、任意の数及びタイプのI/Oインタフェース(例えば、ペリフェラルコンポーネントインターコネクト(PCI)バス、PCI-X(PCI-Extended)、PCIE(PCI Express)バス、ギガビットイーサネット(登録商標)(GBE)バス、ユニバーサルシリアルバス(USB))を表す。様々なタイプの周辺機器がI/Oインタフェース120に結合されてもよい。そのような周辺装置は、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック又は他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶装置、及び、ネットワークインタフェースカード等を含むが、これらに限定されない。
様々な実施形態において、コンピューティングシステム100は、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、サーバ、ストリーミングデバイス、ウェアラブルデバイス、又は、他の様々なタイプの任意のコンピューティングシステム若しくはデバイスである。コンピューティングシステム100のコンポーネントの数は、実施形態毎に異なることに留意されたい。例えば、他の実施形態では、図1に示す数よりも多い又は少ない各コンポーネントが存在する。また、他の実施形態では、コンピューティングシステム100は、図1に示されていない他のコンポーネントを含むことに留意されたい。さらに、他の実施形態では、コンピューティングシステム100は、図1に示す以外の方法で構成されている。
図2を参照すると、画像205及び対応するピクセル分布210の図が示されている。図2に示す画像205は、画像処理において試験画像として広く使用される周知のレナ画像である。この64×64のレナ画像205に対するピクセル分布210が、図2の下部に示されている。ピクセル分布210は、画像205内のピクセルが異なるピクセル値にわたってどのように分布するかを示す。ピクセル分布210に示すような連続した色調を有することは、カメラによってキャプチャされた自然画像又はビデオフレームに対して一般的である。
図3を参照すると、コンピュータ生成されたスクリーンコンテンツ画像305及び対応するピクセル分布310の図が示されている。画像305は、コンピュータ生成されたスクリーンショットの一例であり、ピクセル分布310は、比較的少ない数のピクセルコンポーネント値にわたってピクセルの狭い分布がどのように存在するかを示す。ピクセル分布に示すように、画像305には、限られたいくつかの異なる色が含まれる。これは、コンピュータ生成されたスクリーンショット及びコンピュータ生成された画像において一般的なタイプの分布であり、パレットコーディングは、高圧縮比を達成するためにこれらの画像を符号化する効率的な方法である。コンピュータ生成されたスクリーンショット以外の他のタイプの画像もパレットコーディングによる利点があり得る。
図4を参照すると、メモリ430に結合されたエンコーダ405の一実施形態のブロック図が示されている。一実施形態では、エンコーダ405は、ビニングコントローラ415と、選択ユニット420と、パレットテーブル生成ユニット425と、を有する制御ロジック410を含む。別の実施形態では、エンコーダ405は、プログラム命令を実行するプロセッサによって実装されており、この実施形態では、ビニングコントローラ415と、選択ユニット420と、パレットテーブル生成ユニット425とは、制御ロジックではなくプログラム命令によって実装される。他の実施形態では、ビニングコントローラ415と、選択ユニット420と、パレットテーブル生成ユニット425とは、ハードウェア及びソフトウェアの組み合わせを使用して実装される。
エンコーダ405は、任意の数及びタイプのメモリデバイスを表すメモリ430に結合されている。一実施形態では、メモリ430は、エンコーダ405によって符号化されるビデオフレームを記憶する。ビデオブロック435は、このビデオフレームの1つのブロックを表す。ビデオブロック435を符号化するために使用される技術は、ビデオフレームの他のブロック及びビデオシーケンス内の他のビデオフレームに使用されてもよい。或いは、ビデオブロック435は、画像の単一のブロックであってもよい。一実施形態では、ビデオブロック435は、複数のピクセルコンポーネント値としてメモリ430に記憶される。符号化プロセスの一部として、ビニングコントローラ415は、ビデオブロック435のピクセルコンポーネント値から第1のパスヒストグラム440Aを生成する。一実施形態では、ビニングコントローラ415は、個別のピクセルコンポーネント(例えば、赤、緑、青)毎に個別の第1のパスヒストグラム440Aを生成する。第1のパスヒストグラム440Aを生成するためにビニングコントローラ415によって実施される第1のステップは、ピクセルコンポーネント値の全体の範囲を一連の間隔に分割することである。また、この第1のステップは、値の範囲を「ビニング」すると呼ばれ、各間隔は「ビン」と呼ばれる。ビンは、典型的には、連続した、重なり合わない値の範囲の間隔として指定される。次に、ビニングコントローラ415は、ビデオブロック435からのピクセルコンポーネント値が各間隔にいくつ含まれるかをカウントする。例えば、一実施形態では、ビニングコントローラ415は、ビデオブロック435のピクセルコンポーネント値を抽出し、次に、ビニングコントローラ415は、各ピクセルコンポーネント値を対応するビンに割り当てる。一実施形態では、各ビンは、ピクセルが各々のビンに割り当てられる毎にインクリメントされるカウンタを使用して実装される。
一実施形態では、第1のパスヒストグラム440Aの各ビンは、所与の数のMSBに対応するピクセルコンポーネント値の範囲を表す。所与の数のMSBは、実施形態に応じて変化し得る。例えば、一実施形態では、第1のパスヒストグラム440Aの各ビンは、ピクセルコンポーネント値毎に合計8ビットのうち6つのMSBに対応する範囲を表す。総数未満のビットを使用して第1のパスヒストグラム440Aのビンを生成することによって、第1のパスヒストグラム440Aをメモリ430に記憶するためのストレージ要求を低減する。例えば、8ビットのうち6つのMSBを使用して第1のパスヒストグラム440Aを生成する場合、8ビット全てが使用される場合の256のビンと比べて64ビットのみが生成される。この例では、各ピクセルコンポーネント値は、値の6つのMSBに基づいて、ビニングコントローラ415によってその各々のビンに割り当てられる。他の実施形態では、より高いビット深度のビデオ(例えば、サンプル当たり12ビット、サンプル当たり16ビット)について、及び/又は、より多くのピクセルコンポーネント値ビットがビンの分類から除外される場合、大量のストレージの節約を達成することができる。
第1のパスヒストグラム440Aが生成され、メモリ430に記憶された後、第1のパスヒストグラム440Aのビンは、選択ユニット420によって分類される。例えば、ビンは、いくつのピクセル値が各ビンに含まれるかに基づいて、最も高いものから最も低いものへ分類される。次に、選択ユニット420は、最大ピクセル値を有する所与の数のビンを選択する。例えば、一実施形態では、選択ユニット420は、最大ピクセル値を有する8つのビンを選択する。他の実施形態では、選択ユニット420は、第1のパスヒストグラム440A内の全てのビンの中で最もピクセル数が多い(すなわち、最も高い数のピクセル値)他の数のビンを選択する。次に、評価されるビットの数は、これらの選択されたビン用に増大され、増大されたビンについて第2のパスヒストグラム440Bが生成される。例えば、上位8つのビンが選択ユニット420によって選択され、これらのビンが2ビットで増大される場合、第2のパスヒストグラム440Bは合計32個のビンを有することになる。次に、これらのビンは、各ビンにいくつのピクセル値が含まれるかに従って分類される。次に、ピクセル値の数に応じて上位ビンが選択される。選択される上位ビンの数は、実施形態に応じて変化する。
一実施形態では、第2のパスヒストグラム440Bから選択される上位ビンは、パレットテーブル生成ユニット425によって使用され、ビデオブロック435を符号化して符号化ブロック455を生成するために使用されるパレットテーブル450を導出する。或いは、ピクセルコンポーネント値について評価されるビットの数を増大することによってより多くのヒストグラムを生成するために、1つ以上の追加のパスを実施することもできる。場合によっては、エンコーダ405は、自然な(すなわち、コンピュータ生成されてない)ビデオフレームに通常見られるように、ピクセル値の分布が多くのビンにわたって広がる場合に、ビデオブロック435に対してパレットモード符号化を使用しないことを決定することができる。一実施形態では、パレットモード符号化を使用しないという決定は、第1のパスヒストグラム440Aが生成された後に行われる。第1のパスヒストグラム440Aの分析により、パレットモード符号化がビデオブロック435に適しているかどうかを判定することができる。パレットモード符号化が使用されない場合、様々な他のタイプの従来の符号化技術の何れかを使用して、ビデオブロック435を符号化することができる。
上記のプロセスは、ビデオフレームの全体又はその一部に対して実施できることに留意されたい。また、ビデオフレーム全体に対して生成されたパレットテーブルは、ビデオストリーム内の後続のビデオフレームを符号化するために使用されてもよい。別の実施形態では、ビデオブロック435は、画像のブロックであってもよいことに留意されたい。制御ロジック410をビニングコントローラ415、選択ユニット420及びパレットテーブル生成ユニット425に区画化することは、一実施形態を示すに過ぎないことを理解されたい。別の実施形態では、単一の制御ユニットが、ビニングコントローラ415、選択ユニット420及びパレットテーブル生成ユニット425の機能を実施してもよい。他の実施形態では、制御ロジック410を個別のユニットに区画化する他の方法が展開されてもよい。
一実施形態では、符号化されたブロック455は、符号化されたバージョンのパレットテーブル450と、パレットテーブル450にビデオブロック435のピクセルをマッピングするインデックス値を有するカラーインデックスマップと、を含む。パレットテーブル450は、ビデオブロック435のピクセルコンポーネントを符号化するための任意の数のパレットテーブルを表す。例えば、一実施形態では、パレットテーブル450は、赤成分に対する第1のテーブルと、緑成分に対する第2のテーブルと、青成分に対する第3のテーブルと、を含む。別の実施形態では、パレットテーブル450は、異なるピクセルコンポーネントの組み合わせを表す単一のテーブルである。生成されたカラーインデックスマップは、任意の適切な符号化技術を使用して符号化されてもよい。例えば、個々のインデックス値は、一実施形態では、ランレングス符号化技術を使用して符号化される。個々のインデックス値を符号化する他の方法が可能であり、考慮される。
図5を参照すると、所与のブロックに対するサンプルヒストグラム500の一実施形態が示されている。ヒストグラム500は、64個の取り得るピクセルレベルに対応する64個の異なるビンを有するヒストグラムの一例である。本明細書で使用される「ヒストグラム」という用語は、画像/フレームの所与のブロックに対する各ピクセルコンポーネント値の発生頻度として定義される。ブロックは、より一般的には「コーディングユニット」と呼ばれてもよく、コーディングユニットのサイズは、実施形態に応じて変化することに留意されたい。一実施形態では、コーディングユニットは、8×8ブロックのピクセルである。別の実施形態では、コーディングユニットは、画像/フレーム全体である。他の実施形態では、コーディングユニットは、ピクセルの他のサイズ及び/又は配置であってもよい。ヒストグラム500の例示的な分布は、説明のために示されている。Y軸は、対応するピクセルレベルを有する所与のブロック内のピクセルの数を測定する。この説明のために、所与のブロックが複数のピクセルを有し、各ピクセルが1つ以上のチャネル(例えば、赤、緑、青)の各々に対する数値を有すると仮定する。
ヒストグラム500を生成するために、64個の別個のビンに対するストレージが必要である。ピクセルコンポーネント毎に他の数のビットを有する他のヒストグラムの場合、取り得るピクセルレベル毎にヒストグラムを生成する場合に他の数のビンが必要である。例えば、10ビットピクセルコンポーネントの場合、1024個のストレージビンが必要である。12ビットピクセルコンポーネントの場合、4096個のストレージビンが必要である。ピクセルコンポーネントレベル当たりのビットの数が増大すると、ストレージ要求が指数関数的に増大する。
図6を参照すると、第1のパス後の所与のブロックに対するデシメートされたサンプルヒストグラム600の一実施形態の図が示されている。図6の説明は、図5のヒストグラム500の説明の続きである。各ビンが複数のピクセルコンポーネントレベルを包含することを除いて、ヒストグラム600は、ヒストグラム500に示したものと同様のピクセルコンポーネントレベルにわたる同じピクセルの分布を含む。したがって、ヒストグラム600は、各ピクセルのビットのサブセットのみを評価することによって、ビンの数が低減される。
ヒストグラム600に示すように、各矩形は、4つのビンの集合である中間ビンである。この例では、ヒストグラム600は、ピクセルコンポーネント値の4つの最上位ビット(MSB)を評価する。4つのMSBのみを使用することは、合計16ビンに対応する。これにより、(図5のヒストグラム500の場合に)64個のビンのストレージ要求をヒストグラム600に対する16個のビンに減らすことに役立つ。他の実施形態では、第1のパスヒストグラムは、他の数のMSBを評価することができる。
図7を参照すると、サンプルヒストグラムからの上位デシメートされた候補ビンの選択の一実施形態の図が示されている。図7の説明は、図6のヒストグラム600の説明の続きである。ヒストグラム600に示すように、ピクセルMSBのサブセットに基づいて候補ビンを生成した後に、最もピクセル数が多い上位4つの候補ビンが選択される。これらの4つの選択されたデシメートされた候補ビン705A~705Dが、ヒストグラム700において縦方向の長方形として示されている。上位4つのデシメートされた候補ビン705A~705Dの選択は、一実施形態を示しているに過ぎないことを理解されたい。他の実施形態では、上位デシメートされた候補ビンの別の数(例えば、2、8)が、デシメートされたヒストグラムから選択されてもよい。
図8を参照すると、第2のパスヒストグラム800の一実施形態の図が示されている。図8の説明は、図7のヒストグラム700の説明の続きである。ヒストグラム700に示すように、上位4つの候補ビン705A~705Dを選択した後に、ヒストグラム800は、評価されるピクセルコンポーネントビットに2つの追加のビットを加えることによって微細化される。これにより、ビンの数が4から16に増える。一実施形態では、8ビット画像又はビデオフレームの場合、マルチパスヒストグラムプロセスがこの時点で停止し、パレットテーブルがこれら16個のビンのうち上位8つのビンから導出される。ピクセルコンポーネント当たり8ビットよりも多い画像の場合、プロセスは、上位候補ビンを選択し、次に追加の2ビットによってこれらのビンを増大することによって、別のパスで継続する。選択される候補ビンの数は、実施形態に応じて変化し得る。
図9を参照すると、ピクセルコンポーネント900のビットの一実施形態の図が示されている。ピクセルコンポーネント900は、ソース画像又はビデオフレームの特定の色空間に対する異なる色値のうち何れかを記憶する任意の数のビットを表す。例えば、一実施形態では、ピクセルコンポーネント900の3つの個別のインスタンスを使用して、赤、緑及び青(RGB)色空間内の画像の各ピクセルの赤、緑及び青を符号化する。或いは、別の実施形態では、ピクセルコンポーネント900の3つの個別のインスタンスは、(YUV)色空間内の各ピクセルに対するルミナンス値及びクロミナンス値を符号化する。他の実施形態では、ピクセルコンポーネント900は、他のタイプの色空間内のピクセルの各ピクセルコンポーネントを記憶することができる。より一般的には、ピクセルコンポーネント900は、色空間へのインデックスと呼ばれてもよい。
一実施形態では、第1のパスヒストグラムは、ピクセルコンポーネント900の他の最下位ビット(LSB)を排除しながら、ピクセルコンポーネント900の「m」グループの1ビットを使用して画像/フレームのブロックに対して計算される。図示したように、「m」は6に等しいが、これは、一実施形態を示すに過ぎないことを理解されたい。上位「p1」候補ビンは、実施形態に応じて変化する「p1」の値を有する第1のパスヒストグラムに対する候補ビンから選択される。次に、第2のパスヒストグラムが、「p1」候補ビンを増大してヒストグラム計算に「n1」グループの2ビットを含むことによって、これらの「p1」候補ビンに対して計算される。図示したように、「n1」は2に等しいが、これは、一実施形態を示すに過ぎないことを理解されたい。上位「p2」候補ビンは、実施形態に応じて変化する「p2」の値を有する第2のパスヒストグラムから選択される。追加のパスが、「n2」グループの3ビット及び「n3」グループの4ビットに対して実施され得る。一実施形態では、ピクセルコンポーネント900の全てのビットが評価された後、パレットテーブルが、最終セットのビンからの上位ビンを使用して導出される。
図10を参照すると、パレットテーブル導出のための二重パスヒストグラムを生成するプロセス1000の一実施形態のブロック図が示されている。プロセス1000の第1のステップでは、第1のヒストグラムを生成する際に評価されるビット数を低減する。これにより、各ビンに含まれるピクセルコンポーネント値の数が増大する。例えば、2ビットが除外される場合、4つの潜在的なピクセルコンポーネント値が各ビンに含まれる。これは、プロセス1000の上部に示される例である。第1のスキャンでは、ヒストグラムは、6つのMSBに対応する64個のビン(B0~B63)のみを有する。次に、ビンB0~B63の中から上位16個のビン(T0~T15)が選択される。上位16個のビンは、処理中のブロックのうち最大ピクセルコンポーネント値を有するビンである。
図10においてT0~T15と示されている上位16個のビンが選択された後、各ビンは、第2のスキャンのためにピクセルコンポーネント値からさらに2つのLSBを評価することによって4つのビンに増大される。これらのビンは、T0の場合、B’(0、0)、B’(0、1)、B’(0、2)及びB’(0、3)として図示されている。T1の場合、ビンは、第2のスキャンに対してB’(1、0)、B’(1、1)、B’(1、2)及びB’(1、3)である。第2のスキャンの他のビンは、第1のスキャンの他の上位ビンT2~T15と同じパターンに従う。第2のスキャンの結果として、上位16個のビンが64個のビンに増大される。これらの64個のビンが分類され、次いで、上位8個のビン(T’0~T’7)が選択される。第2のスキャンから選択された上位ビンの特定の数は、単に一実施形態を表しているに過ぎないことに留意されたい。同様に、プロセス1000に対して使用される他の値は、1つの特定の実施形態を表しているに過ぎない。他の実施形態は、他の値を使用してもよい。
図11を参照すると、パレットテーブル導出のためのマルチパスヒストグラムを生成する方法1100の一実施形態が示されている。説明のために、この実施形態におけるステップ及び図12~図15のステップが順番に示されている。しかしながら、説明する方法の様々な実施形態では、説明する要素のうち1つ以上は、同時に実行されてもよいし、図示した順序とは異なる順序で実行されてもよいし、完全に省略されてもよいことに留意されたい。他の追加の要素も必要に応じて実行される。本明細書に記載された様々なシステム又は装置の何れかは、方法1100を実施するように構成されている。方法1100は、(図10の)プロセス1000に対応することを意図していることに留意されたい。
方法1100が開始されると、エンコーダは、各ピクセルコンポーネント値の上位6つのMSBを使用する(ブロック1105)。次に、エンコーダは、ピクセルコンポーネント値の上位6つのMSBについて、64個のビンを有するヒストグラムを収集する(ブロック1110)。次いで、エンコーダは、64個のビンを降順に分類し、これら64個のビンから上位16個のビンを選択する(ブロック1115)。次に、エンコーダは、6つのMSBを2つのLSBと組み合わせることによって、上位16個のビンを64個のビンに増大させ、次いで、エンコーダは、これら64個のビンを有するヒストグラムを収集する(ブロック1120)。エンコーダは、64個のビン降順に分類し、64個のビンから上位8個のビンを選択する(ブロック1125)。ブロック1125の後に、方法1100は終了する。次に、対応するブロックを符号化する場合に、これらの選択された8個のビンは、パレットテーブル導出のためにエンコーダによって使用される。
図12を参照すると、パレットテーブル導出の一環として複数のヒストグラムパスを生成する方法1200の一実施形態が示されている。エンコーダは、画像のブロックの所与のピクセルコンポーネントのNビットのピクセルコンポーネント値を受け取る(ブロック1205)。ブロックは、より一般的には「コーディングユニット」と呼ばれてもよく、画像はビデオフレームであってもよいことに留意されたい。コーディングユニットのサイズ(例えば、8×8ブロック)は、実施形態に応じて変化し得る。別の実施形態では、コーディングユニットは、画像又はビデオフレーム全体である。他の実施形態では、コーディングユニットは、画像の様々な他の部分の何れかであり、コーディングユニットは、複数の画像(例えば、ビデオシーケンスのビデオフレーム)に対応することができる。この説明のために、「N」は正の整数であると仮定される。Nの値は、実施形態に応じて変化し得る。例えば、8ビット、10ビット、12ビットのピクセルコンポーネントは、通常、様々な実施形態で使用される値である。ピクセルコンポーネント当たりの他のビット数も可能である。一実施形態では、所与のピクセルコンポーネントは、RGB色空間の赤、緑又は青の何れかである。別の実施形態では、所与のピクセルコンポーネントは、YUV又はYCbCr色空間のためのルミナンス値又はクロミナンス値を表す。他のタイプのピクセルコンポーネントが他の実施形態で使用されてもよい。
次に、エンコーダは、ピクセルコンポーネント値を、N個のピクセルコンポーネント値ビットの第1の部分に基づいて、第1の複数のビンにグループ分けする(ブロック1210)。第1の複数のビンは、ブロックのピクセル値のヒストグラムを集合的に表す。各ビンは、ビンに割り当てられた第1の部分のビットに一致するこれらのピクセルコンポーネント値を含む。例えば、一実施形態では、Nは8であり、第1の部分は6ビットであり、第1のビンは、ビット「111111」が割り当てられ、第2のビンは、ビット「111110」が割り当てられる等である。「11111111」、「11111110」、「11111101」、「11111100」のピクセルコンポーネント値が第1のビンに割り当てられ、「11111011」、「11111010」、「11111001」、「11111000」のピクセルコンポーネント値が第2のビンに割り当てられる等である。他の実施形態では、Nは他の数であり、及び/又は、第1の部分は別のビット数を含む。
次に、エンコーダは、第1の複数のビンの中でピクセル数が最も多い第1のセットのビンを選択する(ブロック1215)。例えば、一実施形態では、エンコーダは、ブロック1215において、ピクセル数が最も多い8個のビンを選択する。別の実施形態では、エンコーダは、ブロック1215において、ピクセル数が最も多い16個のビンを選択する。他の実施形態では、エンコーダは、ピクセル数が最も多い他の数のビンを選択する。
次に、エンコーダは、第1のセットのビンからのピクセルコンポーネント値を、ピクセルコンポーネント値ビットの第2の部分(第1の部分よりも大きい)に基づいて、第2の複数のビンにグループ分けする(ブロック1220)。言い換えれば、ブロック1220では、エンコーダは、ピクセルコンポーネント値をビンに分類するために使用されるビット数を増加することによって、第1のセットのビンを第2の複数のビンに増大させる。しかし、第2の複数のビンは、第1のセットのビン内に全て含まれるので、ビット数の増加は、第1のセットのビンにグループ分けされたこれらのピクセルコンポーネント値にのみ適用される。一実施形態では、第2の部分は、第1の部分よりも2ビットだけ大きい。他の実施形態では、第2の部分は、第1の部分よりも他のビット数だけ大きい。
次に、エンコーダは、第2の複数のビンの中でピクセル数が最も多い第2のセットのビンを選択する(ブロック1225)。第2のセットのビンの数は、実施形態に応じて変化する。次に、エンコーダは、第2のセットのビンに割り当てられたピクセルコンポーネント値からパレットテーブルを導出する(ブロック1230)。次いで、エンコーダは、パレットテーブルに基づいて、ブロックのピクセルの所与のピクセルコンポーネントを符号化する(ブロック1235)。ブロック1235の後に、方法1200は終了する。方法1200を使用することにより、従来の技術が使用された場合に他の方法で計算されるよりもより小さい数のビンが計算されるので、パレットテーブル符号化のためのヒストグラムを生成するストレージ要求が低減される。方法1200は、ブロックの各ピクセルコンポーネントに対して実施され得ることに留意されたい。後続の画像のブロックは、同様に符号化することができ、パレットテーブルは、他のブロックに対して再使用され得る。
図13を参照すると、パレットテーブル導出のための複数のヒストグラムパスを生成する方法1300の一実施形態が示されている。エンコーダは、各ビンが複数の潜在的なピクセル値に対応する第1のグループのビンに対する第1のヒストグラムを生成する(ブロック1305)。ビン当たりの潜在的なピクセル値の数は、第1のヒストグラムに対して評価されなかったビット数に依存することに留意されたい。例えば、ビデオフレームがピクセル当たり12ビットを有し、6個のMSBだけが第1のヒストグラムで評価される場合、6個のLSBが残され、ビン当たり64個の潜在的なピクセル値が存在することを意味する。他の実施形態では、第1のヒストグラムの後、ビン当たり他の数の潜在的なピクセル値がある。
次に、エンコーダは、第1のグループのビンからピクセル数が最も多い第1の所与の数のビンを選択する(ブロック1310)。第1の所与の数は、実施形態に応じて変化し得る。次いで、エンコーダは、別のヒストグラムが生成されるかどうかを判定する(条件付きブロック1315)。例えば、一実施形態では、ピクセルコンポーネント値に評価されていない多くのビットがある場合、エンコーダは、別のヒストグラムを生成することを決定し得る。
エンコーダが、別のヒストグラムが生成される必要があると判定した場合(条件付きブロック1315:「はい」)、エンコーダは、N番目のグループのビンを生成するために、(N-1)番目のグループのビンから評価されるピクセル値のビット数を増大させる(ブロック1320)。N番目のグループは、第2のグループ、第3のグループ、第4のグループ等を指し、ヒストグラムが既に生成された数による。そうではなく、エンコーダが、別のヒストグラムが生成される必要がないと判定した場合(条件付きブロック1315:「いいえ」)、エンコーダは、選択されたビンの数に基づいて、ビデオフレームの所与のブロックを符号化するパレットテーブルを導出する(ブロック1335)。
ブロック1320の後で、エンコーダは、N番目のグループのビンに対する別の(すなわち、N番目の)ヒストグラムを生成する(ブロック1325)。次に、エンコーダは、N番目のグループのビンからピクセル数が最も多い所与の数のビンを選択する(ブロック1330)。所与の数は、実施形態及び/又は生成されるヒストグラムの特定の階層的レベルに応じて変化し得る。ブロック1330の後、方法1300は、条件付きブロック1315に戻る。
図14を参照すると、パレットテーブル導出のためにマルチパスヒストグラムを計算する方法1400の別の実施形態が示されている。エンコーダは、ピクセルコンポーネント値の6つの最上位ビット(MSB)のヒストグラムを計算する(ブロック1405)。ヒストグラムは、複数のビンを含み、各ビンは、ビンに対応する同じ6つのMSBを有するピクセルコンポーネント値を有するピクセル数の計算を含むことに留意されたい。次に、エンコーダは、ピクセルコンポーネント値に残りのビットがあるかどうかを判定する(条件付きブロック1410)。例えば、ブロック1405の後に、ピクセルコンポーネント値が8ビットを有する場合、6つのMSBの後にさらに2ビットあるので、条件付きブロック1410は、「はい」と評価される。
ピクセルコンポーネント値に残りのビットがある場合(条件付きブロック1410:「はい」)、エンコーダは、ヒストグラムから複数のビンのうち上位16個のビンを選択する(ブロック1415)。他の実施形態では、エンコーダは、最も多いピクセルを有するいくつかの他の数のビンを選択する。そうではなく、ピクセルコンポーネント値に残りのビットがない場合(条件付きブロック1410:「いいえ」)、エンコーダは、ヒストグラムから複数のビンのうち上位8個のビンを選択する(ブロック1420)。これら上記8個のビンは、ブロック内で最も目立つ色に対応する。ブロック1420の後に、上位8個のビンは、パレットテーブル導出のために使用され(ブロック1430)、方法1400は終了する。ブロック1415の後、エンコーダは、さらに2ビットを追加することによってヒストグラムを計算する(ブロック1425)。ブロック1425の後、方法1400は、条件付きブロック1410に戻る。方法1400で指定されたビット数及びビン数は、1つの特定の実施形態を示していることに留意されたい。他の実施形態では、これらの数は変化し得る。
図15を参照すると、パレットテーブルを使用してビデオ/画像ブロックを符号化する方法1500の一実施形態が示されている。エンコーダは、マルチレベル階層的ヒストグラム生成プロセスを使用して、ブロック内で最も頻繁に発生するピクセルコンポーネント値の所与の数を識別する(ブロック1505)。マルチレベル階層ヒストグラム生成プロセスを使用して、ブロック内で最も頻繁に発生するピクセルコンポーネント値(すなわち、最も目立つ色)の所与の数を識別する様々な例が、(図11~14の)方法1100,1200,1300,1400に記載されている。これらの方法のうち何れか又は他の同様の方法を使用して、ブロック1505を実施することができる。所与の数は、実施形態に応じて値が変化する任意の適切な整数値(例えば、8、16、32)であってもよい。
次に、エンコーダは、最も頻繁に発生するピクセルコンポーネント値の所与の数に基づいて、パレットテーブルを選択する(ブロック1510)。一実施形態では、パレットテーブルは、テーブルへのインデックスが3ビットで符号化されることを可能にし、パレットテーブル内の何れの値にもマッピングされないエスケープピクセルに使用される8番目のインデックスを有する、7つの最も頻繁に発生するピクセルコンポーネント値を含む。他の実施形態では、パレットテーブルは、最も頻繁に発生するピクセルコンポーネント値の他の数に対する他の数のエントリを有する。一実施形態では、各ピクセルコンポーネント(例えば、ルミナンス、クロミナンス)は、それ自身のパレットテーブルを有する。別の実施形態では、単一のパレットテーブルは、個別のピクセルコンポーネントの組み合わせを表すものとして生成される。さらなる実施形態では、パレットテーブルは、単一のピクセルコンポーネント(例えば、赤)に対して選択され、次いで、他のピクセルコンポーネント(例えば、青、緑)と共に使用されるように共有及び/又は修正される。上記の代替案が可能であり、企図される。
次に、ブロックのピクセルをパレットテーブル内のエントリにマッピングするインデックス値を使用して、カラーインデックスマップが生成される(ブロック1515)。例えば、ブロック内の各ピクセルは、パレットテーブルへのインデックスに変換され、カラーインデックスマップは、ブロック内の各ピクセルのインデックスを含む。ピクセルがパレットテーブル内に含まれていない値を有する場合、ピクセルは、エスケープピクセルとして符号化され、ピクセルの実際の値は、カラーインデックスマップ又は別の構造に含まれることが可能である。次に、パレットテーブル及びカラーインデックスマップが、ブロックの表現(representation)として符号化される(ブロック1520)。パレットテーブルを符号化するための、及び、カラーインデックスマップを符号化するための様々な符号化技術のうち何れかを使用することができる。次に、符号化されたパレットテーブル及びカラーインデックスマップが記憶され及び/又はレシーバに伝達される(ブロック1525)。ブロック1525の後に、方法1500は終了する。方法1500は、画像/フレームのブロックだけでなく、画像又はビデオフレーム全体を符号化するために使用可能であることを理解されたい。
符号化されたパレットテーブル及びカラーインデックスマップをレシーバに送信することを含む実施形態の場合、レシーバは、符号化されたパレットテーブル及びカラーインデックスマップからブロックを再生成するために上記のステップを逆にするデコーダを含む。次に、再生成されたブロックは、ディスプレイに送られてもよい。一実施形態では、このプロセスは、ビデオシーケンスの各ビデオフレームのブロックに対して繰り返すことができる。或いは、符号化されたパレットテーブルは、最初のビデオフレーム全体に対して送信され、その後、いくつかの後続のビデオフレームがこのパレットテーブルを再利用することができる。後続のビデオフレームでは、ビデオフレームのカラーインデックスマップのみがレシーバに送信される。さらなる実施形態では、フレームのブロックに対して生成された、符号化されたパレットテーブルは、フレームの他のブロック及び/又は他のフレームのブロックのために再利用される。場合によっては、所与のブロックのパレットテーブルは、別のブロックに対応するパレットテーブルから導出される。例えば、一実施形態では、デルタパレットテーブル(つまり、差分パレットテーブル)が、隣接するブロックのパレットテーブルに適用され、所与のブロックに対するパレットテーブルが生成される。以前に使用されたパレットテーブルから新しいパレットテーブルを導出する他の方法が可能であり、企図される。
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書で説明する方法及び/又はメカニズムを実施する。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態では、そのようなプログラム命令は、高水準プログラミング言語によって表される。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ形式、中間形式又は他の形式にコンパイルされる。或いは、プログラム命令は、ハードウェアの動作又は設計を記述するように書き込まれる。そのようなプログラム命令は、C言語等の高水準プログラミング言語によって表される。或いは、Verilog等のハードウェア設計言語(HDL)が使用される。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、そのようなコンピューティングシステムは、少なくとも1つ以上のメモリと、プログラム命令を実行するように構成された1つ以上のプロセッサと、を含む。
上述した実施形態は、実施形態の非限定的な例示に過ぎないことを強調しておきたい。上記の開示が十分に理解されれば、多くの変形及び修正が当業者に明らかになる。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図されている。

Claims (20)

  1. エンコーダ回路であって、
    メモリに結合されるように構成されたインタフェースと、
    回路と、を備え、
    前記回路は、
    各ピクセルコンポーネント値の第1のビット数に基づいて、ピクセルコンポーネント値の第1の分布を決定することと、
    ピクセルコンポーネント値の全てのビットが評価されていないと判別したことに応じて、各ピクセルコンポーネント値の第2のビット数に基づいて、ピクセルコンポーネント値の第2の分布を決定することと、
    ピクセルコンポーネント値の全てのビットが評価されたと判別したことに応じて、パレットテーブルを生成することと、
    を行うように構成されている、
    エンコーダ回路。
  2. 前記回路は、選択された数のピクセルコンポーネント値を前記パレットテーブルのエントリにマッピングするカラーインデックスマップを生成するように構成されている、
    請求項1のエンコーダ回路。
  3. 複数のピクセルは、フレームのブロックのピクセルである、
    請求項1のエンコーダ回路。
  4. 前記回路は、前記ピクセルコンポーネント値の全てのビットが評価されるまで、前記ピクセルコンポーネント値の分布を繰り返し決定するように構成されている、
    請求項1のエンコーダ回路。
  5. 前記回路は、複数のピクセルにおけるピクセルコンポーネント値のカウントに基づいて、前記ピクセルコンポーネント値の数を選択するように構成されている、
    請求項1のエンコーダ回路。
  6. 前記回路は、前記第1の分布に基づいて第1のヒストグラムを決定するように構成されている、
    請求項1のエンコーダ回路。
  7. 前記回路は、前記第2の分布に基づいて第2のヒストグラムを決定するように構成されている、
    請求項6のエンコーダ回路。
  8. 方法であって、
    エンコーダが、各ピクセルコンポーネント値の第1のビット数に基づいて、ピクセルコンポーネント値の第1の分布を決定することと、
    前記エンコーダが、ピクセルコンポーネント値の全てのビットが評価されていないと判別したことに応じて、各ピクセルコンポーネント値の第2のビット数に基づいて、ピクセルコンポーネント値の第2の分布を決定することと、
    前記エンコーダが、ピクセルコンポーネント値の全てのビットが評価されたと判別したことに応じて、パレットテーブルを生成することと、を含む、
    方法。
  9. 前記エンコーダが、選択された数のピクセルコンポーネント値を前記パレットテーブルのエントリにマッピングするカラーインデックスマップを生成することを含む、
    請求項8の方法。
  10. 複数のピクセルは、フレームのブロックのピクセルである、
    請求項8の方法。
  11. 前記ピクセルコンポーネント値の第1の分布を複数のビンに分割することを含む、
    請求項8の方法。
  12. 前記エンコーダが、複数のピクセルにおけるピクセルコンポーネント値のカウントに基づいて、前記ピクセルコンポーネント値の数を選択することを含む、
    請求項8の方法。
  13. 前記エンコーダが、前記ピクセルコンポーネント値の第1のビット数に基づいて第1のヒストグラムを計算することを含む、
    請求項12の方法。
  14. 前記エンコーダが、前記ピクセルコンポーネント値の第2のビット数に基づいて第2のヒストグラムを計算することを含む、
    請求項13の方法。
  15. システムであって、
    ピクセルデータを記憶するように構成されたメモリと、
    エンコーダと、を備え、
    前記エンコーダは、
    各ピクセルコンポーネント値の第1のビット数に基づいて、ピクセルコンポーネント値の第1の分布を決定することと、
    ピクセルコンポーネント値の全てのビットが評価されていないと判別したことに応じて、各ピクセルコンポーネント値の第2のビット数に基づいて、ピクセルコンポーネント値の第2の分布を決定することと、
    ピクセルコンポーネント値の全てのビットが評価されたと判別したことに応じて、パレットテーブルを生成することと、
    を行うように構成されている、
    システム。
  16. 前記エンコーダは、前記パレットテーブルを用いて前記ピクセルコンポーネント値を符号化するように構成されている、
    請求項15のシステム。
  17. 複数のピクセルは、フレームのブロックのピクセルである、
    請求項15のシステム。
  18. 前記エンコーダは、前記ピクセルコンポーネント値の全てのビットが評価されるまで、前記ピクセルコンポーネント値の分布を繰り返し決定するように構成されている、
    請求項15のシステム。
  19. 前記エンコーダは、複数のピクセルにおけるピクセルコンポーネント値のカウントに基づいて、前記ピクセルコンポーネント値の数を選択するように構成されている、
    請求項15のシステム。
  20. 前記エンコーダは、前記ピクセルコンポーネント値の総ビット数よりも少ない前記ピクセルコンポーネント値の第1のビット数に基づいて、第1のヒストグラムを計算するように構成されている、
    請求項19のシステム。
JP2023132810A 2019-09-30 2023-08-17 パレットテーブル導出への適用による並列ヒストグラム計算 Pending JP2023156452A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/588,772 US11076151B2 (en) 2019-09-30 2019-09-30 Hierarchical histogram calculation with application to palette table derivation
US16/588,772 2019-09-30
JP2022515817A JP7335427B2 (ja) 2019-09-30 2020-09-30 パレットテーブル導出への適用による並列ヒストグラム計算
PCT/IB2020/059179 WO2021064615A1 (en) 2019-09-30 2020-09-30 Hierarchical histogram calculation with application to palette table derivation

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2022515817A Division JP7335427B2 (ja) 2019-09-30 2020-09-30 パレットテーブル導出への適用による並列ヒストグラム計算

Publications (1)

Publication Number Publication Date
JP2023156452A true JP2023156452A (ja) 2023-10-24

Family

ID=75162692

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022515817A Active JP7335427B2 (ja) 2019-09-30 2020-09-30 パレットテーブル導出への適用による並列ヒストグラム計算
JP2023132810A Pending JP2023156452A (ja) 2019-09-30 2023-08-17 パレットテーブル導出への適用による並列ヒストグラム計算

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2022515817A Active JP7335427B2 (ja) 2019-09-30 2020-09-30 パレットテーブル導出への適用による並列ヒストグラム計算

Country Status (6)

Country Link
US (2) US11076151B2 (ja)
EP (1) EP4038878A4 (ja)
JP (2) JP7335427B2 (ja)
KR (2) KR102608814B1 (ja)
CN (2) CN117082251A (ja)
WO (1) WO2021064615A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3873096A1 (en) * 2020-02-25 2021-09-01 Koninklijke Philips N.V. Improved hdr color processing for saturated colors

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274754A (en) 1986-04-14 1993-12-28 Advanced Micro Devices, Inc. Method and apparatus for generating anti-aliased vectors, arcs and circles on a video display
US5818456A (en) 1996-04-30 1998-10-06 Evans & Sutherland Computer Corporation Computer graphics system with adaptive pixel multisampler
US6518981B2 (en) 1997-11-12 2003-02-11 Canon Kabushiki Kaisha Generating and using a color palette
US6525723B1 (en) 1998-02-17 2003-02-25 Sun Microsystems, Inc. Graphics system which renders samples into a sample buffer and generates pixels in response to stored samples at different rates
US6339426B1 (en) 1999-04-29 2002-01-15 Microsoft Corporation Methods, apparatus and data structures for overscaling or oversampling character feature information in a system for rendering text on horizontally striped displays
US6924816B2 (en) 2000-03-17 2005-08-02 Sun Microsystems, Inc. Compensating for the chromatic distortion of displayed images
US6781600B2 (en) 2000-04-14 2004-08-24 Picsel Technologies Limited Shape processor
US6775420B2 (en) 2000-06-12 2004-08-10 Sharp Laboratories Of America, Inc. Methods and systems for improving display resolution using sub-pixel sampling and visual error compensation
US6999619B2 (en) * 2000-07-12 2006-02-14 Canon Kabushiki Kaisha Processing for accurate reproduction of symbols and other high-frequency areas in a color image
US7133565B2 (en) * 2000-08-25 2006-11-07 Canon Kabushiki Kaisha Image processing apparatus and method
US7061507B1 (en) 2000-11-12 2006-06-13 Bitboys, Inc. Antialiasing method and apparatus for video applications
US6636232B2 (en) 2001-01-12 2003-10-21 Hewlett-Packard Development Company, L.P. Polygon anti-aliasing with any number of samples on an irregular sample grid using a hierarchical tiler
US7123277B2 (en) 2001-05-09 2006-10-17 Clairvoyante, Inc. Conversion of a sub-pixel format data to another sub-pixel data format
US7145577B2 (en) 2001-08-31 2006-12-05 Micron Technology, Inc. System and method for multi-sampling primitives to reduce aliasing
US6985159B2 (en) 2002-05-08 2006-01-10 Intel Corporation Arrangements for antialiasing coverage computation
JP3910120B2 (ja) 2002-08-23 2007-04-25 株式会社リコー 画像処理装置、方法、該方法を実行するプログラム及び記録媒体
KR100580624B1 (ko) 2003-09-19 2006-05-16 삼성전자주식회사 영상 표시 방법과 장치 및 컴퓨터 프로그램을 저장하는컴퓨터로 읽을 수 있는 기록 매체
JP4515832B2 (ja) * 2004-06-14 2010-08-04 オリンパス株式会社 画像圧縮装置、及び画像復元装置
US7348996B2 (en) 2004-09-20 2008-03-25 Telefonaktiebolaget Lm Ericsson (Publ) Method of and system for pixel sampling
US8744184B2 (en) 2004-10-22 2014-06-03 Autodesk, Inc. Graphics processing method and system
GB0426170D0 (en) 2004-11-29 2004-12-29 Falanx Microsystems As Processing of computer graphics
US8666196B2 (en) 2005-01-19 2014-03-04 The United States Of America As Represented By The Secretary Of The Army System and method for super-resolution imaging from a sequence of color filter array (CFA) low-resolution images
US8577184B2 (en) 2005-01-19 2013-11-05 The United States Of America As Represented By The Secretary Of The Army System and method for super-resolution imaging from a sequence of color filter array (CFA) low-resolution images
US7456846B1 (en) 2005-06-03 2008-11-25 Nvidia Corporation Graphical processing system, graphical pipeline and method for implementing subpixel shifting to anti-alias texture
US8269788B2 (en) 2005-11-15 2012-09-18 Advanced Micro Devices Inc. Vector graphics anti-aliasing
US7684641B1 (en) 2005-12-13 2010-03-23 Nvidia Corporation Inside testing for paths using a derivative mask
US7612783B2 (en) 2006-05-08 2009-11-03 Ati Technologies Inc. Advanced anti-aliasing with multiple graphics processing units
US8806321B2 (en) * 2007-06-26 2014-08-12 Oracle International Corporation Interactive controls and information visualization using histogram equalization
US7916155B1 (en) 2007-11-02 2011-03-29 Nvidia Corporation Complementary anti-aliasing sample patterns
JP5305641B2 (ja) 2007-11-21 2013-10-02 株式会社ニューフレアテクノロジー パターン検査装置及びパターン検査方法
US8396129B2 (en) 2007-12-28 2013-03-12 Ati Technologies Ulc Apparatus and method for single-pass, gradient-based motion compensated image rate conversion
US8044971B2 (en) 2008-01-31 2011-10-25 Arm Norway As Methods of and apparatus for processing computer graphics
JP5520286B2 (ja) 2008-04-04 2014-06-11 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド アンチエイリアシングのためのフィルタ処理方法及び装置
US8605087B2 (en) 2008-07-03 2013-12-10 Nvidia Corporation Hybrid multisample/supersample antialiasing
WO2010063881A1 (en) 2008-12-03 2010-06-10 Nokia Corporation Flexible interpolation filter structures for video coding
JP4883223B2 (ja) 2009-01-09 2012-02-22 コニカミノルタホールディングス株式会社 動きベクトル生成装置および動きベクトル生成方法
US8773448B2 (en) 2010-04-09 2014-07-08 Intel Corporation List texture
US8368774B2 (en) 2010-11-22 2013-02-05 The Aerospace Corporation Imaging geometries for scanning optical detectors with overlapping fields of regard and methods for providing and utilizing same
US9165526B2 (en) 2012-02-28 2015-10-20 Shenzhen Yunyinggu Technology Co., Ltd. Subpixel arrangements of displays and method for rendering the same
US8928690B2 (en) 2012-03-20 2015-01-06 Advanced Micro Devices, Inc. Methods and systems for enhanced quality anti-aliasing
US8941676B2 (en) 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US9235926B2 (en) 2012-12-24 2016-01-12 Intel Corporation Techniques for improving MSAA rendering efficiency
US9478066B2 (en) 2013-03-14 2016-10-25 Nvidia Corporation Consistent vertex snapping for variable resolution rendering
US9299125B2 (en) 2013-05-03 2016-03-29 Advanced Micro Devices Inc. Variable acuity rendering using multisample anti-aliasing
US9230363B2 (en) 2013-09-11 2016-01-05 Nvidia Corporation System, method, and computer program product for using compression with programmable sample locations
US10291827B2 (en) 2013-11-22 2019-05-14 Futurewei Technologies, Inc. Advanced screen content coding solution
US10055189B2 (en) * 2014-01-02 2018-08-21 Vid Scale, Inc. Two-dimensional palette coding for screen content coding
US10362333B2 (en) * 2014-01-02 2019-07-23 Qualcomm Incorporated Color index coding for palette-based video coding
US9501860B2 (en) 2014-01-03 2016-11-22 Intel Corporation Sparse rasterization
WO2015135484A1 (en) * 2014-03-14 2015-09-17 Mediatek Inc. Method of color index coding with palette stuffing
US9654806B2 (en) * 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
JP6369799B2 (ja) 2014-04-23 2018-08-08 Tianma Japan株式会社 画素アレイ及び電気光学装置並びに電気機器
US10409822B2 (en) 2014-05-06 2019-09-10 Shutterstock, Inc. Systems and methods for presenting ranked search results
US9208534B2 (en) * 2014-05-07 2015-12-08 Cisco Technology Inc. System and method for embedding data
US10091512B2 (en) * 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
WO2015192779A1 (en) * 2014-06-20 2015-12-23 Mediatek Inc. Method and apparatus of binarization and context-adaptive coding for syntax in video coding
US11223832B2 (en) * 2014-07-24 2022-01-11 Qualcomm Incorporated Methods and apparatus for encoding video data using block palettes and sub-block and pixel scanning orders
US9978171B2 (en) 2014-07-29 2018-05-22 Nvidia Corporation Control of a sample mask from a fragment shader program
US10412387B2 (en) 2014-08-22 2019-09-10 Qualcomm Incorporated Unified intra-block copy and inter-prediction
GB2531005A (en) * 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
US20160100179A1 (en) * 2014-10-06 2016-04-07 Vid Scale, Inc. Palette coding for screen content coding
US9363421B1 (en) * 2015-01-12 2016-06-07 Google Inc. Correcting for artifacts in an encoder and decoder
US9536282B2 (en) 2015-01-14 2017-01-03 Lucidlogix Technologies Ltd. Method and apparatus for controlling spatial resolution in a computer system
US9426362B2 (en) 2015-01-16 2016-08-23 Mems Drive, Inc. Three-axis OIS for super-resolution imaging
JP6122516B2 (ja) * 2015-01-28 2017-04-26 財團法人工業技術研究院Industrial Technology Research Institute エンコーディング方法及びエンコーダ
US9659349B2 (en) 2015-06-12 2017-05-23 Gopro, Inc. Color filter array scaler
US9659402B2 (en) 2015-06-26 2017-05-23 Intel Corporation Filtering multi-sample surfaces
US20170132833A1 (en) 2015-11-10 2017-05-11 Intel Corporation Programmable per pixel sample placement using conservative rasterization
KR102635452B1 (ko) 2016-01-18 2024-02-13 어드밴스드 마이크로 디바이시즈, 인코포레이티드 컴퓨팅 시스템에서 안티-에일리어싱 동작 수행
EP3319318B1 (en) * 2016-11-03 2019-08-14 Deutsche Telekom AG Intra compression of screen content based on soft context formation
US10282889B2 (en) * 2016-11-29 2019-05-07 Samsung Electronics Co., Ltd. Vertex attribute compression and decompression in hardware
US10848787B2 (en) * 2018-08-28 2020-11-24 Google Llc Lossy image compression using palettization of locally mixed colors

Also Published As

Publication number Publication date
JP7335427B2 (ja) 2023-08-29
CN117082251A (zh) 2023-11-17
EP4038878A4 (en) 2023-07-26
WO2021064615A1 (en) 2021-04-08
JP2022548838A (ja) 2022-11-22
KR102608814B1 (ko) 2023-12-04
CN114450952B (zh) 2023-07-21
US20210352282A1 (en) 2021-11-11
US20210099699A1 (en) 2021-04-01
KR20230167141A (ko) 2023-12-07
CN114450952A (zh) 2022-05-06
EP4038878A1 (en) 2022-08-10
KR20220070454A (ko) 2022-05-31
US11076151B2 (en) 2021-07-27

Similar Documents

Publication Publication Date Title
US20210397874A1 (en) Parallel histogram calculation with application to palette table derivation
Wan et al. A novel framework for optimal RGB to grayscale image conversion
US11961267B2 (en) Color conversion between color spaces using reduced dimension embeddings
JP2023156452A (ja) パレットテーブル導出への適用による並列ヒストグラム計算
JP2014053654A (ja) 画像符号化装置、及び画像符号化方法
EP3783894A1 (en) Methods and decompression units for decompressing a compressed block of image data
US11663743B2 (en) Image data decompression
US20170054990A1 (en) Encoding device, decoding device, and image processing device
US20210304446A1 (en) Image Data Compression
US11153578B2 (en) Gradient texturing compression codec
US20230245347A1 (en) Parent-child cluster compression
US20220094951A1 (en) Palette mode video encoding utilizing hierarchical palette table generation
WO2016049843A1 (zh) 调色板的编码方法、装置以及图像处理设备
JP4623104B2 (ja) 画像圧縮装置
US20230412814A1 (en) Recursive image compression
WO2012105882A1 (en) Pixel block compression and decompression
US20240212217A1 (en) Random accessible image data compression
US8983212B2 (en) Method for image data compression of image block

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230817