JP2017514365A - ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングの決定 - Google Patents

ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングの決定 Download PDF

Info

Publication number
JP2017514365A
JP2017514365A JP2016558785A JP2016558785A JP2017514365A JP 2017514365 A JP2017514365 A JP 2017514365A JP 2016558785 A JP2016558785 A JP 2016558785A JP 2016558785 A JP2016558785 A JP 2016558785A JP 2017514365 A JP2017514365 A JP 2017514365A
Authority
JP
Japan
Prior art keywords
palette
block
value
entries
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016558785A
Other languages
English (en)
Other versions
JP6640105B2 (ja
JP2017514365A5 (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 JP2017514365A publication Critical patent/JP2017514365A/ja
Publication of JP2017514365A5 publication Critical patent/JP2017514365A5/ja
Application granted granted Critical
Publication of JP6640105B2 publication Critical patent/JP6640105B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/40Image enhancement or restoration using histogram techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • 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/94Vector quantisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/40Analysis of texture
    • G06T7/41Analysis of texture based on statistical description of texture
    • G06T7/44Analysis of texture based on statistical description of texture using image operators, e.g. filters, edge density metrics or local histograms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image 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/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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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
    • 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/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Probability & Statistics with Applications (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Image Processing (AREA)

Abstract

パレットベースのコーディングのための技法が説明される。パレットベースのコーディングでは、ビデオコーダは、所与のブロックのビデオデータを表す色のテーブルとして、パレットを形成することができる。パレットベースのコーディングは、比較的少数の色を有するビデオデータのブロックをコーディングするのに有用であり得る。所与のブロックに対する実際のピクセル値またはそれらの残差をコーディングするのではなく、ビデオコーダは、ピクセルのうちの1つまたは複数に対するインデックス値をコーディングすることができる。インデックス値は、ピクセルの色を表すパレット中のエントリに対してピクセルをマッピングする。ビデオエンコーダまたはビデオデコーダにおけるパレットコード化ブロックのフィルタリング、たとえばデブロッキングフィルタリングまたはサンプル適応オフセット(SAO)フィルタリングをディセーブルにするかどうかを決定するための技法が説明される。また、レートひずみコストに基づいてビデオエンコーダにおけるパレットのパレットサイズとパレットエントリとを修正するための技法が説明される。【選択図】図5

Description

優先権の主張
本出願は、その内容全体が参照により本明細書に組み込まれる、2014年3月26日出願の米国仮特許出願第61/970,838号の利益を主張するものである。
本開示は、ビデオ符号化および復号に関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.188/MPEG−4、Part10、アドバンストビデオコーディング(AVC)、現在開発中の高効率ビデオコーディング(HEVC)規格によって定義された規格、およびそのような規格の拡張に記載されているもののような、ビデオ圧縮技法を実装する。これらのビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信し、受信し、符号化し、復号し、および/または記憶することができる。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために、空間的(ピクチャ内)予測および/または時間的(ピクチャ間)予測を実施する。ブロックベースのビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライスの中のビデオブロックは、同じピクチャの中の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示している。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換されて残差係数をもたらすことができ、その残差係数が次いで量子化され得る。最初に2次元アレイで構成される量子化係数は、係数の1次元ベクトルを生成するために走査される場合があり、なお一層の圧縮を達成するためにエントロピーコーディングが適用される場合がある。
[0006]マルチビューコーディングビットストリームは、たとえば、複数の視点からのビューを符号化することによって生成され得る。マルチビューコーディング態様を利用するいくつかの3次元(3D)ビデオ規格が開発されている。たとえば、3Dビデオをサポートするために、異なるビューが左眼ビューと右眼ビューとを送信し得る。代替的に、いくつかの3Dビデオコーディングプロセスは、いわゆるマルチビュー+深度コーディング(multiview plus depth coding)を適用し得る。マルチビュープラス深度コーディングでは、3Dビデオビットストリームは、テクスチャビュー成分だけでなく深度ビュー成分も含み得る。たとえば、各ビューは、1つのテクスチャビュー成分と1つの深度ビュー成分とを備え得る。
[0007]概して、本開示では、パレットベースのビデオコーディングのための技法について説明する。パレットベースのコーディングでは、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆる「パレット(palette)」を形成することができる。パレットベースのコーディングは、比較的少数の色を有するビデオデータのエリアをコーディングするのに特に有用であり得る。所与のブロックに対する実際のピクセル値またはそれらの残差をコーディングするのではなく、ビデオコーダは、ピクセルのうちの1つまたは複数に対するインデックス値をコーディングすることができる。インデックス値は、ピクセルの色を表すパレット中のエントリに対してピクセルをマッピングする。パレットは、明示的に符号化されてデコーダに送られてよく、以前のパレットのエントリから予測されてよく、またはこれらの組合せであってよい。本開示では、ビデオエンコーダまたはビデオデコーダにおけるパレットコード化ブロックのフィルタリング、たとえばデブロッキングフィルタリングまたはサンプル適応オフセット(SAO)フィルタリングを無効(ディセーブル(disable))にするかどうかを決定するための技法を説明する。加えて、レートひずみコストに少なくとも部分的に基づいて、ビデオエンコーダにおけるパレットのパレットサイズとパレットエントリとを修正するための技法を説明する。
[0008]一例では、本開示は、ビデオデータを処理する方法を対象とし、その方法は、ビデオデータのブロックがパレットコード化ブロックであると決定することと;1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む前記ブロックに対するパレットを決定することと;前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は前記ブロックの前記ピクセルのうちの1つに対する色値を示す前記パレットエントリのうちの1つに対応する;前記ブロックに対する前記パレットおよび前記インデックス値に基づいてビデオデータの前記ブロックを再構築することと;前記ブロックがパレットコード化ブロックであることに基づいて再構築されたブロックのフィルタリングをディセーブルにすることを決定することとを備える。
[0009]別の例では、本開示は、ビデオデータを記憶するように構成されたメモリと、前記メモリと通信している1つまたは複数のプロセッサとを備えるビデオ処理デバイスを対象とする。1つまたは複数のプロセッサは、ビデオデータのブロックがパレットコード化ブロックであると決定することと;1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む前記ブロックに対するパレットを決定することと;前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は前記ブロックの前記ピクセルのうちの1つに対する色値を示す前記パレットエントリのうちの1つに対応する;前記ブロックに対する前記パレットおよび前記インデックス値に基づいてビデオデータの前記ブロックを再構築することと;前記ブロックがパレットコード化ブロックであることに基づいて再構築されたブロックのフィルタリングをディセーブルにすることを決定することとを行うように構成される。
[0010]さらなる例では、本開示は、ビデオデータのブロックがパレットコード化ブロックであると決定するための手段と;1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む前記ブロックに対するパレットを決定するための手段と;前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定するための手段と、前記インデックス値の各々は前記ブロックの前記ピクセルのうちの1つに対する色値を示す前記パレットエントリのうちの1つに対応する;前記ブロックに対する前記パレットおよび前記インデックス値に基づいてビデオデータの前記ブロックを再構築するための手段と;前記ブロックがパレットコード化ブロックであることに基づいて再構築されたブロックのフィルタリングをディセーブルにすることを決定するための手段とを備えるビデオ処理デバイスを対象とする。
[0011]追加の例では、本開示は、ビデオデータを処理するための命令を記憶したコンピュータ可読媒体を対象とし、その命令は、実行されたとき、1つまたは複数のプロセッサに、ビデオデータのブロックがパレットコード化ブロックであると決定することと;1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む前記ブロックに対するパレットを決定することと;前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は前記ブロックの前記ピクセルのうちの1つに対する色値を示す前記パレットエントリのうちの1つに対応する;前記ブロックに対する前記パレットおよび前記インデックス値に基づいてビデオデータの前記ブロックを再構築することと;前記ブロックがパレットコード化ブロックであることに基づいて再構築されたブロックのフィルタリングをディセーブルにすることを決定することとを行わせる。
[0012]本開示の1つまたは複数の例の詳細は、添付図面および下の説明の中に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになるであろう。
本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。 本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。 本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。 本開示の技法に従った、パレットベースのビデオコーディングに対するパレットエントリを決定する一例を示す概念図。 本開示の技法による、パレットコード化ブロックのフィルタリングを決定するビデオコーダの例示的な動作を示すフローチャート。 本開示の技法による、ビデオデータのパレットコード化ブロックに対するパレットを決定するビデオエンコーダの例示的な動作を示すフローチャート。
[0019]本開示は、ビデオコーディングおよび圧縮のための技法を含む。特に、本開示は、ビデオコンテンツ、特にパレットベースのコーディングを有するスクリーンコンテンツのコーディングをサポートするための技法を説明する。本開示は、ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングを決定するための技法を含む、パレットベースのコーディングの複数の技術的態様を説明する。
[0020]従来のビデオコーディングでは、画像は、色調が連続的であり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベースの変換、フィルタリングなどのような様々なツールが開発されており、そのようなツールは、自然のコンテンツのビデオのコーディングに対して良好な性能を示している。ただし、リモートデスクトップ、協調作業、およびワイヤレスディスプレイのような用途では、コンピュータにより生成されたスクリーンコンテンツ(たとえば、テキストまたはコンピュータグラフィックスのような)は、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、不連続な色調を有し、鋭利なラインと高コントラストのオブジェクト境界とを特徴とする傾向がある。連続的な色調および滑らかさという仮定はもはやスクリーンコンテンツに対しては当てはまらないことがあるので、従来のビデオコーディング技法は、スクリーンコンテンツを含むビデオデータを圧縮するための効率的な方法ではないことがある。
[0021]本開示は、スクリーンにより生成されたコンテンツのコーディングに特に好適であり得る、パレットベースのコーディングを説明する。たとえば、ビデオデータの特定のエリアが比較的少数の色を有し、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)が、特定のエリアのビデオデータを表すためのいわゆる「パレット」を形成し得ると仮定する。パレットは、特定のエリア(たとえば、所与のブロック)のビデオデータを表す色のテーブルとして表され得る。たとえば、パレットは、所与のブロック中の最も支配的な色(たとえば、ピクセル値)を含み得る。いくつかの場合、最も支配的な色は、ブロック内で最も頻繁に現れる1つまたは複数の色を含み得る。さらに、いくつかの場合には、ビデオコーダが、ある色がブロック中の最も支配的な色のうちの1つとして含まれるべきかどうかを決定するために、しきい値を適用し得る。パレットベースのコーディングの様々な態様によれば、ビデオコーダは、現在のブロックについて実際のピクセル値またはそれらの残差をコーディングするのではなく、現在のブロックのピクセルのうちの1つまたは複数を示すインデックス値をコーディングし得る。パレットベースのコーディングのコンテキストにおいて、インデックス値は、現在のブロックの個々のピクセルの色を表すのに使われる、パレット中のそれぞれのエントリを示す。
[0022]たとえば、ビデオエンコーダは、ブロックに対するパレットを決定することと、当該ブロックのピクセルのうちの1つまたは複数の色を表す、当該パレット中のエントリを、位置特定すること(locating)と、当該パレット中の当該エントリを示すインデックス値を有する当該ブロックを符号化することとによってビデオデータのブロックを符号化し得る。パレット中のエントリに対してマッピングする色値を有するブロックのそれらのピクセルに対して、ビデオエンコーダは、それぞれのピクセルに対するエントリのインデックス値を符号化し得る。パレット中のエントリに対してマッピングしない色値を有するブロックのそれらのピクセルに対して、ビデオエンコーダは、ピクセルに対する特別なインデックスを符号化し得、実際のピクセル値またはその残差値(またはそれらの量子化バージョン)を符号化し得る。これらのピクセルは、「エスケープピクセル」と呼ばれることがある。いくつかの例では、ビデオエンコーダは、符号化されたビットストリーム中でパレットと、インデックス値と、任意のエスケープピクセルとをシグナリングし得る。今度は、ビデオデコーダは、ブロックに対するパレット、ならびにブロックのピクセルのうちの1つまたは複数に対するインデックス値およびブロックの任意のエスケープピクセルに対するピクセル値を、符号化されたビットストリームから取得し得る。ビデオデコーダは、ブロックのピクセル値を再構築するために、インデックス値をパレットのエントリにマッピングして、エスケープピクセルを復号し得る。
[0023]ビデオデータのパレットベースのコーディングのための技法は、インター予測コーディングまたはイントラ予測コーディングのための技法のような、1つまたは複数の他のコーディング技法とともに使用され得る。たとえば、下でより詳細に説明されるように、ビデオエンコーダもしくはビデオデコーダ、または複合エンコーダ−デコーダ(コーデック)は、インター予測コーディングおよびイントラ予測コーディングと、さらにはパレットベースのコーディングとを実施するように構成され得る。
[0024]いくつかの例では、パレットベースのコーディング技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得る。たとえば、High Efficiency Video Coding(HEVC)は、ITU−T Video Coding Experts Group(VCEG)およびISO/IEC Motion Picture Experts Group(MPEG)のJoint Collaboration Team on Video Coding(JCT−VC)によって開発された新しいビデオコーディング規格である。最近のHEVCテキスト仕様ドラフトは、http://phenix.int−evry.fr/jct/doc_end_user/documents/12_Geneva/wg11/JCTVC−L1003−v34.zip.から利用可能である、Brossら、「High Efficiency Video Coding(HEVC)text specification draft 10(for FDIS & Last Call)」、ITU−T SG16 WP3およびISO/IEC JCT1/SC29/WG11のJCT−VCの第12回会合、スイス ジュネーブ、2013年1月14〜23日、JCTVC−L1003_v34(「HEVC Draft10」)に記載されている。確定したHEVC規格文書は、「ITU−T H.265、SERIES H:AUDIOVISUAL AND MULTIMEDIA SYSTEMS Infrastructure of audiovisual services−Coding of moving video−High efficiency video coding」、国際電気通信連合(ITU)の電気通信標準化部門、2013年4月として公開されている。
[0025]HEVCフレームワークに関して、例として、パレットベースのコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースのコーディング技法は、HEVCのフレームワークにおいてPUモードとして使用されるように構成され得る。したがって、CUモードの状況において説明される以下の開示されるプロセスのすべてが、追加で、または代替的に、PUに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースのコーディング技法の制約または制限であると見なされるべきではなく、それは、そのような技法は、他の既存のシステム/規格もしくはまだ開発されていないシステム/規格とは独立に、またはそれらの一部として機能するように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形のブロック、長方形のブロック、または非長方形の領域であってもよい。
[0026]パレットベースのコーディングの基本的な考えは、各CU用に、現在のCU中の最も支配的な(dominant)色(すなわち、ピクセル値)を含むパレットが導出されるというものである。パレットのパレットサイズおよびパレットエントリは、ビデオエンコーダからビデオデコーダに送信され得る。パレットのパレットサイズおよびパレットエントリは、1つまたは複数の隣接するCU(たとえば、上および/または左のコード化CU)に対するパレットのサイズおよびエントリをそれぞれ使用して直接コーディングされてよく、または予測コーディングされてもよい。次いで、CUのピクセルは、一定の走査順序に従うパレットに基づいて符号化され得る。CU中の各ピクセル位置(location)に対して、フラグは、ピクセルの色がパレット中に含まれるかどうかを示すために送信され得る。パレット中のエントリに対してマッピングするそれらのピクセルに対して、そのエントリと関連付けられるパレットインデックスは、CU中の所与のピクセル位置についてシグナリングされ得る。パレット中のエントリに対してマッピングしない色値を有するそれらのピクセル(すなわち、エスケープピクセル)に対して、特別なインデックスがピクセルに割り当てられ得、実際のピクセル値またはその残差値(またはそれらの量子化バージョン)が、CU中の所与のピクセル位置について送信され得る。エスケープピクセルは、固定長コーディング、単項コーディングなど、任意の既存のエントロピーコーディング法を使ってコーディングされ得る。
[0027]パレットベースのビデオコーディングでは、ビデオコーダ(たとえば、ビデオエンコーダまたはビデオデコーダ)は、コーディングされるべき所与のビデオブロックに対するパレットを導出する。上記で説明したように、パレットは、所与のブロック中の最も支配的な色値またはピクセル値を含むように導出される。いくつかの例では、最も支配的な色を決定するために、ヒストグラムが、所与のブロックのピクセルを異なるグループにクラスタ化する(cluster)ために使用され得る。パレットを導出するために適切なアルゴリズムを使用することは、パレットベースのコーディングにおける重要な手順の1つと見なされてよい。本開示の技法は、パレットベースのコーディングに対するパレットの導出における改善を対象とする。
[0028]http://phenix.it−sudparis.eu/jct/doc_end_user/documents/16_San Jose/wg11/JCTVC−P0035−v1.zip(以下、「JCTVC−P0035」)から利用可能である、Guoら、「RCE4:Summary report of HEVC Range Extensions Core Experiments 4(RCE4)on palette coding for screen content」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Collaboration Team on Video Coding(JCT−VC)、第16回会合:米国サンノゼ、2014年1月9〜17日、JCTVC−P0035は、特にスクリーンコンテンツに対する著しいビョンテガードひずみ率(BD率:Bjontegaard Distortion-rate)低減を達成するために報告されたパレットベースのコーディングの2つの方法を記載している。2つの方法が、以下に簡単に要約される。
[0029]http://phenix.int−evry.fr/jct/doc_end_user/documents/16_San Jose/wg11/JCTVC−P0108−v1.zip(以下、「JCTVC−P0108」)から利用可能である、Guoら、「RCE4:Test 1.Major−color−based screen content coding」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT−VC、第16回会合:米国サンノゼ、2014年1月9〜17日、JCTVC−P0108により詳細に記載されている第1の方法において、コーディングされるべきCUのピクセルを分類するために、ヒストグラムベースのアルゴリズムが使用される。特に、ヒストグラムにおける最上位のNピーク値が、CUに対する主要な色として選択される。主要な色のうちの1つに近いピクセル値が、当該主要な色に対して量子化され得る。主要な色のいずれにも属さないピクセルはエスケープピクセルと見なされ、エスケープピクセルも同様に、コーディング前に量子化される。無損失コーディングに対し、量子化は使用されない。
[0030]第1の方法によれば、分類(classification)を使用することによって、CUのピクセルが、色インデックスに変換され得る。主要な色の数および値がコーディングされ、次いで、色インデックスがコーディングされる。CUの各ピクセルラインに対して、コーディングモードを示すために、フラグがシグナリングされる。水平モード、垂直モード、および通常モードの3つのモードがある。モードが水平モードである場合、CUのすべてのピクセルラインは同じ色インデックスを共有し、各ピクセルラインに対する色インデックスが送信される。モードが垂直モードである場合、すべてのピクセルラインは、上記のピクセルラインと同じである。この場合、現在のピクセルラインは、上記のピクセルラインの色インデックスをコピーするので、何も送信されない(たとえば、符号化されたビットストリーム中に何もシグナリングされない)。モードが通常モードである場合、ピクセル位置が左および上のピクセルのうちの1つと同じ位置であるかどうかを示すために、各ピクセル位置に対してフラグがシグナリングされる。現在のピクセルが左および上のピクセルと異なる場合、現在のピクセルに対するインデックスが送信される。加えて、現在のピクセルがエスケープピクセルである場合、そのピクセル値が送信される。
[0031]http://phenix.int−evry.fr/jct/doc_end_user/documents/16_San Jose/wg11/JCTVC−P0198−v3.zip(以下、「JCTVC−P0198」と呼ばれる)から利用可能である、Guoら、「RCE4:Results of Test 2 on Palette Mode for Screen Content Coding」、ITU−T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJCT−VC、第16回会合:米国サンノゼ、2014年1月9〜17日、JCTVC−P0198により詳細に記載されている第2の方法において、パレットベースのビデオコーディングが、CUモードとして紹介されている。第2の方法の符号化プロセスは、最初に、現在のCUに対するパレットの送信を含む。エントリ単位(entry-wise)の予測方式は、左のCU(すなわち、現在のCUの左に現在隣接するCU)のパレットに基づいて現在のパレットを符号化するために使用される。その後、パレットの非予測エントリ(non-predicted entry)が送信される。
[0032]第2の方法の符号化プロセスもまた、現在のCUのピクセル値の送信を含む。現在のCU中のピクセルは、以下の3つのモードを使用してラスタ走査順序で符号化される。「ランモード」では、パレットインデックスが最初にシグナリングされ、長さMの「palette_run」によって後続される。後続のMパレットインデックスは、シグナリングされたパレットインデックスと同じである。「上コピーモード(copy above mode)」では、後続のNパレットインデックスがそれぞれ、上のピクセルライン中のそれぞれのパレットインデックスと同じであることを示すために、長さNの値「copy_run」が送信される。「ピクセルモード」では、予測フラグが、最初に送信される。1に等しい予測フラグは、予測残差が、予測子として再構築された上部隣接ピクセルを使用して現在のピクセル値に対して送信されることを示す。予測フラグが0に等しい場合、現在のピクセル値が、予測なしに送信される。
[0033]本開示の技法は、パレットベースのコーディングに対するパレットの導出における改善を対象とする。より具体的には、本開示の技法は、ビデオエンコーダにおいてパレットのパレットサイズとパレットエントリとを修正することと、ビデオエンコーダまたはビデオデコーダにおいてパレットコード化ブロックのフィルタリングをディセーブル(無効)にするかどうかを決定することとを含む。
[0034]いくつかの例では、パレットサイズおよびパレットエントリが、JCTVC−P0108に記載のクラスタリング法を使用して現在のブロックに対して決定された後、本開示の技法は、ビデオエンコーダが、レートひずみコストに従ってパレットサイズを適応的に決定し、パレットエントリを変更することを可能にする。このようにして、本技法は、クラスタリング法によってパレットに対して当初決定されたパレットサイズおよびパレットエントリの修正を可能にする。たとえば、本技法は、パレットの所与のインデックス値を保持するかまたは除去するかを決定することと、所与のインデックス値を隣接するインデックス値に併合(merge)させるかどうかを決定することと、計算されたパレットエントリを洗練することとを含む。本開示は、主に、ビデオエンコーダによって実施される、パレットサイズおよびパレットエントリの修正のための技法を説明するが、他の例では、パレット修正技法は、ビデオデコーダによって実施されてもよい。その場合、たとえば、ビデオデコーダは、パレットを別々に導出して修正してよく、または本開示の技法に従ってビデオエンコーダによってシグナリングされるパレットを修正してもよい。
[0035]加えて、本技法は、ビデオエンコーダおよびビデオデコーダが、パレットコード化ブロックのフィルタリング、たとえばデブロッキングフィルタリングまたはサンプル適応オフセット(SAO)フィルタリングをディセーブルにすることを可能にする。従来、パレットコード化ブロックは、インターコード化ブロックと同様に取り扱われており、したがって、復号ピクチャバッファに記憶される前、または表示のために出力される前に、フィルタリングが、再構築されたブロックに対して自動的に適用された。本開示の技法によれば、ビデオエンコーダおよびビデオデコーダは、再構築されたブロックがパレットコード化ブロックであると決定してよく、その決定に基づいて、ブロックを記憶または出力する前にフィルタリングをディセーブルにしてよい。パレットコード化ブロックに対してフィルタリングを適用することは、(たとえば、パレットコーディングに通常と関連付けられる比較的離散的な色調を仮定すると)インターコード化ブロックと同じ方式で改善された出力をもたらさないことがある。したがって、本開示の技法は、品質に影響を及ぼすことなく(または比較的小さい影響を及ぼして)パレットコード化ブロックに対するコーディングの複雑さを低減するために使用され得る。
[0036]図1は、本開示の技法を利用することができる例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用される「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。ビデオコーディングシステム10のビデオエンコーダ20およびビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実施するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUのような、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースのコーディングモードは、HEVC規格によって規定される様々なコーディングモードのような、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。
[0037]図1に示すように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は、符号化ビデオデータを生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれ得る。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号することができる。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれ得る。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
[0038]ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ワイヤレス通信デバイス、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲のデバイスを備え得る。
[0039]宛先デバイス14は、チャネル16を介してソースデバイス12から符号化ビデオデータを受信することができる。チャネル16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動させることが可能な、1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12がリアルタイムで符号化ビデオデータを直接宛先デバイス14に送信することを可能にする、1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って、符号化ビデオデータを変調することができ、変調されたビデオデータを宛先デバイス14に送信することができる。1つまたは複数の通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路などのワイヤレスおよび/もしくはワイヤード通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)などの、パケットベースネットワークの一部を形成し得る。1つまたは複数の通信媒体は、ソースデバイス12から宛先デバイス14への通信を容易にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
[0040]別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の適切なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
[0041]さらなる例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する、ファイルサーバまたは別の中間記憶デバイスを含む場合がある。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブを含む。
[0042]宛先デバイス14は、インターネット接続などの標準的なデータ接続を介して符号化ビデオデータにアクセスすることができる。例示的なタイプのデータ接続は、ファイルサーバに記憶されている符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
[0043]本開示の技法は、ワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の用途などの、様々なマルチメディア用途をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの用途をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0044]図1は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データが、ローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスはデータを符号化し、メモリに記憶し得、および/またはビデオ復号デバイスはメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、メモリにデータを符号化し、および/またはメモリからデータを取り出して復号するだけであるデバイスによって実行される。
[0045]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえばビデオカメラ、以前にキャプチャされたビデオデータを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/もしくは、ビデオデータを生成するためのコンピュータグラフィックスシステム、またはビデオデータのそのようなソースの組合せを含み得る。
[0046]ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化することができる。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータはまた、復号および/または再生のための宛先デバイス14による後のアクセスのために、記憶媒体またはファイルサーバ上に記憶され得る。
[0047]図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は、受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信することができる。ディスプレイデバイス32は、宛先デバイス14に統合されることがあり、またはその外部にあることがある。一般に、ディスプレイデバイス32は復号ビデオデータを表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなどの、様々なディスプレイデバイスを備え得る。
[0048]本開示は全般に、ビデオエンコーダ20が、ある情報をビデオデコーダ30のような別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリング」または「送信」という用語は、一般に、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指し得る。そのような通信は、リアルタイムまたはほぼリアルタイムに起こり得る。代替的に、そのような通信は、符号化のときに符号化されたビットストリームの中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに起こり得るなど、ある時間の長さにわたって起こることがあり、これらの要素は次いで、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。したがって、ビデオデコーダ30は、ある情報を「受信する」ものとして呼ばれ得るが、情報の受信は、必ずしもリアルタイムまたはほぼリアルタイムで起こるとは限らず、記憶の後の何らかの時間に媒体から取り出されることがある。
[0049]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つもしくは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェア、またはそれらの任意の組合せなどの、様々な適切な回路のいずれかとして実装され得る。本技法がソフトウェアで部分的に実装される場合、デバイスは、適切な非一時的コンピュータ可読記憶媒体にソフトウェア用の命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェア内で実行して、本開示の技法を実行することができる。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)上記のいずれもが、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つもしくは複数のエンコーダまたはデコーダの中に含まれてよく、そのいずれかが、ワイヤレス通信デバイスなど、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合されてよい。
[0050]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、上で言及されHEVC規格に記載されるHEVC規格のような、ビデオ圧縮規格に従って動作する。基本的なHEVC規格に加えて、HEVCのためのスケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、および3Dコーディング拡張を作成するための作業が進行中である。加えて、たとえば本開示で説明されるような、パレットベースのコーディングモードは、HEVC規格の拡張のために提供され得る。いくつかの例では、パレットベースのコーディングのために本開示で説明される技法は、ITU−T−H.188/AVC規格または将来の規格のような、他のビデオコーディング規格に従って動作するように構成される、エンコーダおよびデコーダに適用され得る。したがって、HEVCコーデックにおけるコーディングユニット(CU)または予測ユニット(PU)のコーディングのためのパレットベースのコーディングモードの適用が、例として説明される。
[0051]HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは、一般に、一連のピクチャを含む。ピクチャは「フレーム」と呼ばれる場合もある。ピクチャは、SL、SCb、およびSCrと表記される3つのサンプルアレイを含む場合がある。SLは、ルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれる場合もある。他の事例では、ピクチャは、モノクロームであってよく、ルーマサンプルのアレイのみを含み得る。
[0052]ピクチャの符号化表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU)のセットを生成することができる。各CTUは、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするのに使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nのブロックであり得る。CTUは、「ツリーブロック」または「最大コーディングユニット」(LCU)とも呼ばれることがある。HEVCのCTUは、H.188/AVCのような、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズには限定されず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のCTUを含み得る。
[0053]コード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するように、CTUのコーディングツリーブロックに対して4分木区分を再帰的に実施することができ、したがって「コーディングツリーユニット」という名称である。コーディングブロックは、サンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャの、ルーマサンプルの1つのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロックであり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分することができる。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロック、ピクチャのクロマサンプルの2つの対応する予測ブロック、および予測ブロックサンプルを予測するために使用されるシンタックス構造であり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのために、予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成することができる。
[0054]ビデオエンコーダ20は、PUに関する予測ブロックを生成するためにイントラ予測またはインター予測を使用することができる。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。
[0055]ビデオエンコーダ20がPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20は、PUの予測ブロックを生成するために、単予測または双予測を使用し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは単一のMVを有し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために双予測を使用するとき、PUは2つのMVを有し得る。
[0056]ビデオエンコーダ20がCUの1つまたは複数のPUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成した後、ビデオエンコーダ20は、CUのルーマ残差ブロックを生成することができる。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックの1つの中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20は、CUのためのCb残差ブロックを生成し得る。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つの中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20は、CUのためのCr残差ブロックを生成することもできる。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つの中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
[0057]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを、1つまたは複数のルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに分解するために、4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、および変換ブロックサンプルを変換するために使用されるシンタックス構造であり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであってよい。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであってよい。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであってよい。
[0058]ビデオエンコーダ20は、TUに関するルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1回または複数回の変換を適用し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに1回または複数回の変換を適用して、TUのCb係数ブロックを生成し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
[0059]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後、ビデオエンコーダ20は、係数ブロックを量子化することができる。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピーエンコーディングし得る。たとえば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行し得る。ビデオエンコーダ20は、エントロピー符号化シンタックス要素をビットストリームの中に出力し得る。
[0060]ビデオエンコーダ20は、エントロピー符号化シンタックス要素を含むビットストリームを出力することができる。ビットストリームは、コード化ピクチャおよび関連データの表現を形成するビットのシーケンスを含む場合がある。ビットストリームは、ネットワークアブストラクションレイヤ(NAL)ユニットのシーケンスを備える場合がある。NALユニットの各々は、NALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含む場合がある。NALユニットのNALユニットヘッダによって規定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含む、シンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
[0061]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化することができる。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS)に関するRBSPをカプセル化することができ、第2のタイプのNALユニットはコード化スライスに関するRBSPをカプセル化することができ、第3のタイプのNALユニットはSEIに関するRBSPをカプセル化し得、以下同様である。ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれ得る。
[0062]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するためにビットストリームを解析し得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構築し得る。ビデオデータを再構築するための処理は、全般に、ビデオエンコーダ20によって実行される処理の逆であり得る。
[0063]たとえば、ビデオデコーダ30は、PUのMVを使用して、現在のCUのPUの予測サンプルブロックを決定することができる。加えて、ビデオデコーダ30は、現在のCUのTUと関連付けられる変換係数ブロックを逆量子化することができる。ビデオデコーダ30は、現在のCUのTUと関連付けられる変換ブロックを再構築するために、変換係数ブロックに対して逆変換を実施することができる。ビデオデコーダ30は、現在のCUのPUのための予測サンプルブロックのサンプルを現在のCUのTUの変換ブロックの対応するサンプルに加算することによって、現在のCUのコーディングブロックを再構築し得る。ピクチャの各CUのコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築することができる。
[0064]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースのコーディングを実施するように構成され得る。たとえば、パレットベースのコーディングでは、上で説明されたイントラ予測コーディング技法またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ20およびビデオデコーダ30は、特定の領域(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングすることができる。各ピクセルは、ピクセルの色を表すパレット中のエントリと関連付けられ得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ピクセル値をパレット中の適切な値と関連付けるインデックスをコーディングすることができる。
[0065]上の例では、ビデオエンコーダ20は、ブロックのためのパレットを決定すること、各ピクセルの値を表すためのパレット中のエントリを位置特定すること、および、ピクセル値をパレットに関連付ける、ピクセルのインデックス値によってパレットを符号化することによって、ビデオデータのブロックを符号化することができる。ビデオデコーダ30は、符号化されたビットストリームから、ブロックのためのパレットと、さらにはブロックのピクセルのインデックス値とを取得することができる。ビデオデコーダ30は、ブロックのピクセル値を再構築するために、ピクセルのインデックス値をパレットのエントリに関連付けることができる。
[0066]いくつかの例では、ビデオエンコーダ20は、同じピクセル値を有する所与の走査順序のいくつかの連続するピクセルを示す1つまたは複数のシンタックス要素を符号化することができる。同様の値のピクセル値の列は、本明細書では「ラン」と呼ばれることがある。例示を目的とする例では、所与の走査順序の2つの連続するピクセルが異なる値を有する場合、ランは0に等しい。所与の走査順序の2つの連続するピクセルが同じ値を有するが、その走査順序の3番目のピクセルが異なる値を有する場合、ランは1に等しい。ビデオデコーダ30は、符号化されたビットストリームからランを示すシンタックス要素を取得し、そのデータを使用して、同じインデックス値を有する連続するピクセルの場所の数を決定することができる。
[0067]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、インデックス値のマップの1つまたは複数のエントリに対するラインコピーを実施し得る。たとえば、ビデオエンコーダ20は、インデックスマップ中の特定のエントリに対するピクセル値が、特定のエントリの上のライン中のエントリに等しいことを示し得る。ビデオエンコーダ20はまた、特定のエントリの上のラインの中のエントリに等しい走査順序におけるインデックスの数をランとして示すことができる。この例では、ビデオエンコーダ20およびまたはビデオデコーダ30は、規定された隣接するラインから、および、現在コーディングされているマップのラインに対する規定された数のエントリから、インデックス値をコピーすることができる。
[0068]本開示の技法によれば、ビデオエンコーダ20およびビデオデコーダ30は、再構築されたブロックがパレットコード化ブロックであるかどうかに基づいて、再構築されたブロックのフィルタリングをディセーブルにするか否かを決定し得る。加えて、ビデオエンコーダ20は、パレットコード化ブロックに対するパレットを導出してよく、レートひずみコストに少なくとも部分的に基づいて、パレットのパレットサイズまたは1つまたは複数のパレットエントリのうちの少なくとも1つを修正するかどうかを決定してよい。特に、いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、図4〜図6に関して以下でより詳細に説明される本開示の技法を実施するように構成され得る。
[0069]図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明のために、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20を説明する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
[0070]ビデオエンコーダ20は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実行するように構成され得る、デバイスの例を代表する。たとえば、ビデオエンコーダ20は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUのような、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースのコーディングモードは、HEVC規格によって規定される様々なコーディングモードのような、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオエンコーダ20は、一例では、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置の少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリと関連付ける情報をシグナリングするように構成され得る。シグナリングされた情報は、ビデオデータを復号するためにビデオデコーダ30によって使用され得る。
[0071]図2の例では、ビデオエンコーダ20は、ビデオデータメモリ98と、予測処理ユニット100と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構築ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニットと、動き補償ユニットと(図示せず)を含む。ビデオエンコーダ20はまた、本開示で説明されるパレットベースのコーディング技法の様々な態様を実施するように構成される、パレットベースの符号化ユニット122を含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能的な構成要素を含み得る。
[0072]ビデオデータメモリ98は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶することができる。ビデオデータメモリ98内に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ98および復号ピクチャバッファ116は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ98および復号ピクチャバッファ116は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ98は、ビデオエンコーダ20の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
[0073]ビデオエンコーダ20は、ビデオデータを受信することができる。ビデオエンコーダ20は、ビデオデータのピクチャのスライス内の各CTUを符号化することができる。CTUの各々は、ピクチャの等しいサイズのルーマコーディングツリーブロック(CTB)と、対応するCTBとに関連付けられる場合がある。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために、4分木区分化を実行することができる。より小さいブロックはCUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分し得、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブサブブロックに区分し得、以下同様である。
[0074]ビデオエンコーダ20は、CUの符号化表現(すなわち、コード化CU)を生成するために、CTUのCUを符号化し得る。CUを符号化することの一部として、予測処理ユニット100は、CUの1つまたは複数のPUの間でCUに関連付けられたコーディングブロックを区分し得る。したがって、各PUは、ルーマ予測ブロックおよび対応するクロマ予測ブロックに関連付けられ得る。ビデオエンコーダ20およびビデオデコーダ30は、様々なサイズを有するPUをサポートすることができる。上で示されたように、CUのサイズはCUのルーマコーディングブロックのサイズを指すことがあり、PUのサイズはPUのルーマ予測ブロックのサイズを指すことがある。特定のCUのサイズを2N×2Nと仮定すると、ビデオエンコーダ20およびビデオデコーダ30は、イントラ予測の場合は2N×2NまたはN×NのPUサイズをサポートすることができ、インター予測の場合は2N×2N、2N×N、N×2N、N×N、または同様の対称のPUサイズをサポートすることができる。ビデオエンコーダ20およびビデオデコーダ30はまた、インター予測の場合は2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズ向けの非対称区分化をサポートすることができる。
[0075]インター予測処理ユニット120は、CUの各PUに対してインター予測を実施することによって、PUのための予測データを生成し得る。PUの予測データは、PUの予測サンプルブロックと、PUの動き情報とを含み得る。インター予測ユニット121は、PUがIスライス中にあるか、Pスライス中にあるか、Bスライス中にあるかに応じて、CUのPUに対して異なる動作を実行することができる。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されるブロックでは、予測されるブロックは、同じフレーム内の以前に符号化された隣接ブロックからの空間的予測を使用して形成される。
[0076]PUがPスライス中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUの参照領域について参照ピクチャリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索することができる。PUの参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含む参照ピクチャ内の領域であり得る。動き推定ユニットは、PUの参照領域を含んでいる参照ピクチャのRefPicList0中での位置を示す参照インデックスを生成することができる。加えて、動き推定ユニットは、PUのコーディングブロックと、参照領域に関連付けられた参照場所との間の空間変位を示すMVを生成することができる。たとえば、MVは、現在の復号されたピクチャ中の座標から参照ピクチャ中の座標までのオフセットを提供する2次元ベクトルであり得る。動き推定ユニットは、PUの動き情報として、参照インデックスとMVとを出力することができる。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照場所における実際のまたは補間されたサンプルに基づいて、PUの予測サンプルブロックを生成することができる。
[0077]PUがBスライス中にある場合、動き推定ユニットは、PUについての単予測または双予測を実施することができる。PUについての単予測を実施するために、動き推定ユニットは、PUの参照領域についてRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索することができる。動き推定ユニットは、PUの動き情報として、参照領域を含んでいる参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUのサンプルブロックと参照領域と関連付けられた参照場所との間の空間変位を示すMVと、参照ピクチャがRefPicList0中にあるかまたはRefPicList1中にあるかを示す1つまたは複数の予測方向インジケータとを出力することができる。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0078]PUについての双方向インター予測を実施するために、動き推定ユニットは、PUの参照領域についてRefPicList0中の参照ピクチャを探索することができ、またPUの別の参照領域についてRefPicList1中の参照ピクチャを探索することができる。動き推定ユニットは、参照領域を含んでいる参照ピクチャのRefPicList0およびRefPicList1中での位置を示す参照ピクチャインデックスを生成することができる。加えて、動き推定ユニットは、参照領域に関連付けられる参照場所とPUのサンプルブロックとの間の空間変位を示すMVを生成することができる。PUの動き情報は、PUの参照インデックスとMVとを含み得る。動き補償ユニットは、PUの動きベクトルによって示される参照領域における実際のサンプルまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測サンプルブロックを生成することができる。
[0079]イントラ予測処理ユニット126は、PUに対してイントラ予測を実施することによって、PUのための予測データを生成し得る。PUの予測データは、PUの予測サンプルブロックと様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライスの中のPUに対してイントラ予測を実施し得る。
[0080]PUに対してイントラ予測を実施するために、イントラ予測処理ユニット126は、PUのための予測データの複数のセットを生成するのに複数のイントラ予測モードを使用し得る。イントラ予測モードを使用してPUのための予測データのセットを生成するために、イントラ予測処理ユニット126は、そのイントラ予測モードと関連付けられた方向へ、PUのサンプルブロック全体にわたって、隣接PUのサンプルブロックからのサンプルを延ばすことができる。隣接PUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば33個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存し得る。
[0081]予測処理ユニット100は、PUに対してインター予測処理ユニット120によって生成された予測データ、またはPUに対してイントラ予測処理ユニット126によって生成された予測データの中から、CUのPUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/歪みの尺度に基づいて、CUのPUのための予測データを選択する。選択された予測データの予測サンプルブロックは、本明細書では、選択された予測サンプルブロックと呼ばれ得る。
[0082]残差生成ユニット102は、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロック、ならびにCUのPUの選択された予測ルーマブロック、予測Cbブロック、および予測Crブロックに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成することができる。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルがCUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測サンプルブロック中の対応するサンプルとの間の差分に等しい値を有するようにCUの残差ブロックを生成することができる。
[0083]変換処理ユニット104は、CUと関連付けられる残差ブロックをCUのTUと関連付けられる変換ブロックに区分するために、4分木区分を実行することができる。したがって、TUは、ルーマ変換ブロックおよび2つのクロマ変換ブロックに関連付けられ得る。CUのTUのルーマ変換ブロックおよびクロマ変換ブロックのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づく場合も、または基づかない場合もある。「残差4分木」(RQT)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUは、RQTのリーフノードに対応し得る。
[0084]変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUに関する変換係数ブロックを生成し得る。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に類似の変換を、変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は、変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われる場合がある。
[0085]量子化ユニット106は、係数ブロック内の変換係数を量子化することができる。量子化プロセスは、変換係数の一部またはすべてに関連付けられたビット深度を低減し得る。たとえば、nビット変換係数は量子化の間にmビットの変換係数に切り捨てられてよく、ただし、nはmよりも大きい。量子化ユニット106は、CUと関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUと関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整することができる。量子化は情報の損失をもたらす場合があり、したがって、量子化変換係数は、元の係数よりも低い精度を有する場合がある。
[0086]逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構築するために、それぞれ、係数ブロックに逆量子化と逆変換とを適用することができる。再構築ユニット112は、再構築された残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測サンプルブロックからの対応するサンプルに追加して、TUに関連付けられる再構築された変換ブロックを生成することができる。ビデオエンコーダ20は、このようにCUの各TUのための変換ブロックを再構築することによって、CUのコーディングブロックを再構築することができる。
[0087]フィルタユニット114は、CUに関連付けられたコーディングブロックの中のブロッキングアーティファクトを低減するために、1つまたは複数のデブロッキング動作を実施し得る。復号ピクチャバッファ116は、フィルタユニット114が、再構築されたコーディングブロックに対して1つまたは複数のデブロッキング動作を実施した後、再構築されたコーディングブロックを記憶することができる。インター予測ユニット120は、再構築されたコーディングブロックを含む参照ピクチャを使用して、他のピクチャのPUに対してインター予測を実行し得る。加えて、イントラ予測処理ユニット126は、CUと同じピクチャ内の他のPUに対してイントラ予測を実施するために、復号ピクチャバッファ116内の再構築されたコーディングブロックを使用することができる。
[0088]エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能的な構成要素からデータを受信することができる。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信することができ、予測処理ユニット100からシンタックス要素を受信することができる。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化演算を実施することができる。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コーディング(CAVLC)演算、CABAC演算、変数−変数(V2V)レングスコーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)演算、確率間隔区分化エントロピー(PIPE)コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行することができる。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力することができる。たとえば、ビットストリームは、CUのためのRQTを表すデータを含み得る。
[0089]本開示の例によれば、ビデオエンコーダ20は、パレットベースのコーディングを実施するように構成され得る。HEVCフレームワークに関して、例として、パレットベースのコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースのコーディング技法は、HEVCのフレームワークにおいてPUモードとして使用されるように構成され得る。したがって、CUモードの状況において(本開示全体で)本明細書で説明される開示されるプロセスのすべてが、追加で、または代替的に、PUに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースのコーディング技法の制約または制限であると見なされるべきではなく、それは、そのような技法は、他の既存のシステム/規格もしくはまだ開発されていないシステム/規格とは独立に、またはそれらの一部として機能するように適用され得るからである。これらの場合、パレットコーディングのためのユニットは、正方形のブロック、長方形のブロック、または非長方形の領域であってもよい。
[0090]パレットベースの符号化ユニット122は、たとえば、パレットベースの符号化モードがたとえばCUまたはPUのために選択されるとき、パレットベースの符号化を実施することができる。たとえば、パレットベースの符号化ユニット122は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置の少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリと関連付ける情報をシグナリングするように構成することができる。様々な機能がパレットベースの符号化ユニット122によって実施されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実施され得る。
[0091]本開示のいくつかの態様によれば、パレットベースの符号化ユニット122は、パレットコード化ブロックに対するパレットを導出し、レートひずみコストに少なくとも部分的に基づいて、パレットのパレットサイズまたは1つまたは複数のパレットエントリのうちの少なくとも1つを修正するかどうかを決定するように構成され得る。たとえば、パレットエントリおよびパレットサイズが、図4に関して以下でより詳細に説明されるピクセル値クラスタリング法を使用して現在のブロックに対して決定された後、パレットベースの符号化ユニット122は、ピクセル値クラスタリング法によって当初決定されたパレットのパレットサイズを低減するかどうかを決定する。一例では、パレットベースの符号化ユニット122は、ピクセルの量子化ピクセル値を符号化することを含めて、所与のインデックス値を使用してピクセルを符号化するための、またはエスケープピクセルとしてピクセルを符号化するためのレートひずみコストの比較に基づいて、所与のインデックス値を保持するかまたは除去するかを決定する。別の例では、パレットベースの符号化ユニット122は、所与のインデックス値を使用してピクセルを符号化するためのレートひずみコスト、または隣接するインデックス値を使用してピクセルを符号化するためのレートひずみコストの比較に基づいて、所与のインデックス値を隣接するインデックス値に併合させる(たとえば、単一のインデックス値を形成するためにインデックス値を組み合わせる(combine)かどうかを決定する。
[0092]別の例として、パレットベースの符号化ユニット122は、ピクセル値クラスタリング法によって当初決定されたパレットのパレットエントリのうちの1つまたは複数を修正するかどうかを決定する。この例では、パレットベースの符号化ユニット122は、以下で図4に関してより詳細に説明されるk平均クラスタリング法を使用して、パレットコード化ブロックに対する代表的パレットを決定する。代表的パレットは、ブロックのピクセルに対する平均ピクセル値を示す代表的パレットエントリを含む。パレットベースの符号化ユニット122は、代表的パレットの対応する代表的パレットエントリによって示される平均ピクセル値に基づいて、当初のパレットの所与のパレットエントリを修正するかどうかを決定する。
[0093]パレットコード化ブロックに対するパレットのパレットサイズとパレットエントリとを決定するための技法が、図4および図6に関して以下でより詳細に説明される。本開示は、主に、ビデオエンコーダによって実施される、パレットサイズおよびパレットエントリの修正のための技法を説明するが、他の例では、パレット修正技法は、ビデオデコーダ30などのビデオデコーダによって実施されてもよい。その場合、たとえば、ビデオデコーダ30は、パレットを別々に導出して修正してよく、または本開示の技法に従ってビデオエンコーダ20によってシグナリングされるパレットを修正してもよい。
[0094]本開示の他の態様によれば、ビデオエンコーダ20は、再構築されたブロックを復号ピクチャバッファ116に記憶する前に、フィルタユニット114による再構築されたパレットコード化ブロックのフィルタリングをディセーブルにするかどうかを決定するように構成され得る。たとえば、ビデオエンコーダ20は、フィルタユニット114によるパレットコード化ブロックのデブロッキングフィルタリングおよび/またはSAOフィルタリングをディセーブルにし得る。従来、パレットコード化ブロックは、インターコード化ブロックと同様に取り扱われており、したがって、復号ピクチャバッファに記憶される前、または表示のために出力される前に、フィルタリングが、再構築されたブロックに自動的に適用された。本開示の技法によれば、ビデオエンコーダ20は、再構築されたブロックがパレットコード化ブロックであると決定してよく、その決定に基づいて、復号ピクチャバッファ116にブロックを記憶する前にフィルタユニット114によるフィルタリングをディセーブルにしてよい。パレットコード化ブロックのフィルタリングを決定するための技法が、図4および図5に関して以下でより詳細に説明される。
[0095]図3は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図3は、説明のために提供されるものであり、本開示において広く例示され説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30を記載する。ただし、本開示の技法は他のコーディング規格または方法に適用可能であり得る。
[0096]ビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースのビデオコーディングのための技法を実行するように構成され得る、デバイスの例を代表する。たとえば、ビデオデコーダ30は、パレットベースのコーディングまたは非パレットベースのコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUのような、ビデオデータの様々なブロックを選択的に復号するように構成され得る。非パレットベースのコーディングモードは、HEVC規格によって規定される様々なコーディングモードのような、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオデコーダ30は、一例では、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置をパレット中のエントリと関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、選択されたピクセル値に基づいてブロックのピクセル値を再構築するように構成され得る。
[0097]図3の例では、ビデオデコーダ30は、ビデオデータメモリ148と、エントロピー復号ユニット150と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構築ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164とイントラ予測処理ユニット166とを含む。ビデオデコーダ30はまた、本開示で説明されるパレットベースのコーディング技法の様々な態様を実施するように構成された、パレットベースの復号ユニット165を含む。他の例では、ビデオデコーダ30は、より多いか、より少ないか、または異なる機能的な構成要素を含み得る。
[0098]ビデオデータメモリ148は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ148に記憶されるビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードもしくはワイヤレスネットワーク通信を介して、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ148は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶する、コード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ148および復号ピクチャバッファ162は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM)、または他のタイプのメモリデバイスを含む、ダイナミックランダムアクセスメモリ(DRAM)のような様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ148および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ148は、ビデオデコーダ30の他のコンポーネントとともにオンチップであるか、またはそれらのコンポーネントに対してオフチップであり得る。
[0099]ビデオデータメモリ148、すなわちCPBは、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受け取り、記憶することができる。エントロピー復号ユニット150は、ビデオデータメモリ148から符号化ビデオデータ(たとえば、NALユニット)を受け取り、NALユニットを解析してシンタックス要素を復号することができる。エントロピー復号ユニット150は、NALユニット内のエントロピー符号化シンタックス要素をエントロピー復号することができる。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構築ユニット158、およびフィルタユニット160は、ビットストリームから取得(たとえば、抽出)されたシンタックス要素に基づいて、復号ビデオデータを生成し得る。
[0100]ビットストリームのNALユニットは、コード化スライスNALユニットを含む場合がある。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号することができる。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関係するシンタックス要素を含み得る。スライスヘッダの中のシンタックス要素は、スライスを含むピクチャに関連付けられたPPSを識別するシンタックス要素を含み得る。
[0101]ビデオデコーダ30は、ビットストリームからのシンタックス要素を復号することに加えて、区分されていないCUに対して再構築動作を実施することができる。区分されていないCUに対して再構築動作を実行するために、ビデオデコーダ30は、CUの各TUに対して再構築動作を実行することができる。CUの各TUに対して再構築動作を実施することによって、ビデオデコーダ30はCUの残差ブロックを再構築することができる。
[0102]CUのTUに対して再構成演算を実施することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化、すなわち量子化解除することができる。逆量子化ユニット154は、量子化の程度を決定するために、また同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比は、利用されるエントロピーコーディングの方法に依存し得る。
[0103]逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために、係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を、係数ブロックに適用し得る。
[0104]イントラ予測を使用してPUが符号化される場合、イントラ予測処理ユニット166は、PUの予測ブロックを生成するためにイントラ予測を実行することができる。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいて、PUのための予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成するために、イントラ予測モードを使用し得る。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいて、PUのためのイントラ予測モードを決定し得る。
[0105]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構築することができる。さらに、PUがインター予測を使用して符号化された場合、エントロピー復号ユニット150は、PUについての動き情報を抽出することができる。動き補償ユニット164は、PUの動き情報に基づいて、PU用の1つまたは複数の参照領域を決定することができる。動き補償ユニット164は、PUの1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUの予測ルーマブロックと、予測Cbブロックと、予測Crブロックとを生成し得る。
[0106]再構築ユニット158は、CUのTUと関連付けられたルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロック、および予測Crブロックを、すなわち、イントラ予測データまたはインター予測データのいずれかを適宜使用して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築することができる。たとえば、再構築ユニット158は、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックのサンプルを予測ルーマブロック、予測Cbブロック、および予測Crブロックの対応するサンプルに加算して、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを再構築することができる。
[0107]フィルタユニット160は、デブロッキング動作を実行して、CUのルーマコーディングブロック、Cbコーディングブロック、およびCrコーディングブロックと関連付けられたブロッキングアーティファクトを低減することができる。ビデオデコーダ30は、CUのルーマコーディングブロックと、Cbコーディングブロックと、Crコーディングブロックとを、復号ピクチャバッファ162に記憶することができる。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のための、参照ピクチャを提供し得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行することができる。このようにして、ビデオデコーダ30は、有意なルーマ係数ブロックの変換係数レベルをビットストリームから抽出し、変換係数レベルを逆量子化し、変換係数レベルに変換を適用して変換ブロックを生成し、変換ブロックに少なくとも一部基づいてコーディングブロックを生成し、コーディングブロックを表示のために出力することができる。
[0108]本開示の様々な例によれば、ビデオデコーダ30は、パレットベースのコーディングを実行するように構成され得る。パレットベースの復号ユニット165は、たとえば、パレットベースの復号モードがたとえばCUまたはPUのために選択されるとき、パレットベースの復号を実施することができる。たとえば、パレットベースの復号ユニット165は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置をパレット中のエントリと関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、選択されたピクセル値に基づいてブロックのピクセル値を再構築するように構成することができる。様々な機能がパレットベースの復号ユニット165によって実行されるものとして説明されるが、そのような機能のいくつかまたはすべては、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
[0109]本開示の態様によれば、ビデオデコーダ30は、再構築されたブロックを復号ピクチャバッファ162に記憶する前に、フィルタユニット160による再構築されたパレットコード化ブロックのフィルタリングをディセーブルにするかどうかを決定するように構成され得る。たとえば、ビデオでコーダ30は、フィルタユニット160によるパレットコード化ブロックのデブロッキングフィルタリングおよび/またはSAOフィルタリングをディセーブルにし得る。従来、パレットコード化ブロックは、インターコード化ブロックと同様に取り扱われており、したがって、復号ピクチャバッファに記憶される前、または表示のために出力される前に、フィルタリングが、再構築されたブロックに自動的に適用された。本開示の技法によれば、ビデオデコーダ30は、再構築されたブロックがパレットコード化ブロックであると決定してよく、その決定に基づいて、復号ピクチャバッファ162にブロックを記憶する前にフィルタユニット160によるフィルタリングをディセーブルにしてよい。パレットコード化ブロックのフィルタリングを決定するための技法が、図4および図5に関して以下でより詳細に説明される。
[0110]図4は、本開示の技法に従った、ビデオデータをコーディングするためのパレットを決定する例を示す概念図である。図4の例は、第1のパレット184と関連付けられたパレット(PAL)コード化ブロックとしてコーディングされた第1のコーディングユニット(CU)180と、第2のパレット192と関連付けられたパレット(PAL)コード化ブロックをコーディングされた第2のCU188とを有するピクチャ178を含む。ピクチャ178はまた、イントラ予測コーディングモードによりコーディングされるイントラブロック196と、インター予測コーディングモードによりコーディングされるインターブロック200とを含む。図4の技法は、ビデオエンコーダ20(図1および図2)とビデオデコーダ30(図1および図3)とのコンテキストにおいて、説明を目的としてHEVC規格に関して説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび/または規格において他のビデオコーディングプロセッサおよび/またはデバイスによって適用され得ることを、理解されたい。
[0111]一般に、パレットは、現在コーディングされているCU、図4の例ではCU188について支配的である、および/またはそのCUを表現する、いくつかのピクセル値を指す。第1のパレット184および第2のパレット192は、複数のパレットを含むものとして示されている。いくつかの例では、本開示の態様によれば、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30のような)は、CUの各々の色成分に対して別々にパレットをコーディングすることができる。たとえば、ビデオエンコーダ20は、CUのルーマ(Y)成分のためのパレットと、CUのクロマ(U)成分のための別のパレットと、CUのクロマ(V)成分のためのさらに別のパレットとを符号化することができる。この例では、YパレットのエントリはCUのピクセルのYの値を表すことができ、UパレットのエントリはCUのピクセルのUの値を表すことができ、VパレットのエントリはCUのピクセルのVの値を表すことができる。
[0112]他の例では、ビデオエンコーダ20は、CUのすべての色成分に対して単一のパレットを符号化することができる。この例では、ビデオエンコーダ20は、Yiと、Uiと、Viとを含む、三重の値(a triple value)であるi番目のエントリを有するパレットを符号化することができる。この場合、パレットは、ピクセルの成分の各々の値を含む。したがって、複数の個々のパレットを有するパレットのセットとしてのパレット184および192の表現は、一例にすぎず、限定することは意図されない。
[0113]図4の例では、第1のパレット184は、インデックス値1、インデックス値2、およびインデックス値3をそれぞれ有する、3つのパレットエントリ202、204、206を含む。パレットエントリ202、204、206は、ピクセル値A、ピクセル値B、およびピクセル値Cをそれぞれ含むピクセル値(すなわち、色値)に、インデックス値を関連付ける。本明細書で説明されるように、第1のCU180の実際のピクセル値をコーディングするのではなく、ビデオコーダ(ビデオエンコーダ20またはビデオデコーダ30など)は、インデックス値1、2、3を使用してブロックのピクセルをコーディングするために、パレットベースのコーディングを使用し得る。すなわち、第1のCU180の各ピクセル位置に対して、ビデオエンコーダ20は、ピクセルに対するインデックス値を符号化することができ、インデックス値は、第1のパレット184のうちの1つまたは複数の中のピクセルに対するピクセル値を示すパレットエントリに対応する。ビデオデコーダ30は、ビットストリームからインデックス値を取得し、インデックス値と第1のパレット184の1つまたは複数とを使用してピクセル値を再構築することができる。したがって、第1のパレット184は、パレットベースの復号におけるビデオデコーダ30による使用のために、符号化されたビデオデータビットストリーム中でビデオエンコーダ20によって送信される。
[0114]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、第1のパレット184に基づいて第2のパレット192を決定し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数のブロックを位置特定し得、そのブロックから、予測パレット、この例では第1のパレット184が決定される。いくつかの例では、図4に示される例のように、ビデオエンコーダ20および/またはビデオデコーダ30は、第2のCU188のための予測パレットを決定するとき、左の隣接CU(第1のCU180)など、前にコーディングされたCUを位置特定し得る。
[0115]図4の例では、第2のパレット192は、インデックス値1、インデックス値2、およびインデックス値3をそれぞれ有する、3つのパレットエントリ208、210、212を含む。パレットエントリ208、210、212は、ピクセル値A、ピクセル値B、およびピクセル値Dをそれぞれ含むピクセル値に、インデックス値を関連付ける。この例では、ビデオエンコーダ20は、第1のパレット184のどのエントリが第2のパレット192内に含まれるかを示す1つまたは複数のシンタックス要素をコーディングし得る。図4の例では、1つまたは複数のシンタックス要素は、ベクトル216として示される。ベクトル216は、いくつかの関連するビン(またはバイナリビット)を有し、各ビンは、そのビンと関連付けられたパレット予測子が現在のパレットのエントリを予測するために使用されるかどうかを示す。たとえば、ベクトル216は、第1のパレット184の最初の2つのエントリ(202および204)が、第2のパレット192中に含まれる(ベクトル216の最初の2つのビン中の「1」の値)一方で、第1のパレット184の第3のエントリは、第2のパレット192中に含まれない(ベクトル216の第3のビン中の「0」の値)ことを示す。図4の例では、ベクトルは、ブールベクトルである。
[0116]本開示の技法は、パレットベースのコーディングに対するパレットの導出における改善を対象とする。より具体的には、本開示の技法は、ビデオエンコーダ20においてパレットのパレットサイズとパレットエントリとを修正することと、ビデオエンコーダ20および/またはビデオデコーダ30においてパレットコード化ブロックのフィルタリングをディセーブルにするかどうかを決定することとを含む。図4の例では、ビデオエンコーダ20は、第1のパレット184を導出するために本開示のパレット修正技法を実施し得る。次いで、第1のパレット184は、パレットベースの復号におけるビデオデコーダ30による使用のために、符号化されたビデオデータビットストリーム中でビデオエンコーダ20によって送信される。本開示において主にビデオエンコーダ20に関して説明されているが、他の例では、本開示のパレット修正技法は、ビデオエンコーダ20とビデオデコーダ30の両方によって実施されてもよい。その場合、たとえば、ビデオデコーダ30は、第1のパレット184を別々に導出してよく、または本開示の技法に従ってビデオエンコーダ20によって送信された第1のパレット184を修正してもよい。説明のために第1のパレット184に関して説明されているが、本技法は、他の構成および/またはサイズの多様な他のパレットを使用して実施されてもよい。
[0117]JCTVC−P0035、JCTVC−P0108およびJCTVC−P0198(上記)に記載されるパレットベースのコーディングモードでは、ビデオエンコーダ20は、ピクセル値クラスタリング法を使用して、パレットコード化ブロック、たとえばCU180に対するパレットを導出し得る。パレット、たとえば第1のパレット184を導出ために適切なアルゴリズムを使用することは、パレットモードのコーディングにおける重要な手順の1つである。たとえば、ビデオエンコーダ20は、複数のエントリを含むヒストグラムを導出してよく、各エントリは、それぞれの色値と、色値にマッピングするブロックのピクセルのそれぞれの量とを含む。一例として、ビデオエンコーダ20は、ビデオデータのブロックに対するヒストグラムHを決定し得る。ヒストグラムHは、H={(vi,fi),i={0,1,2,...,M}}によって表されてよく、ここでM+1は現在のブロック中の異なるピクセル値の数であり、viはi番目のピクセル値であり、fiはviの発生の数(すなわち、現在のブロック中のどれほど多くのピクセルがピクセル値viを有するか)である。いくつかの例では、ヒストグラムの複数のエントリの各々は、同じピクセル値を有するピクセルの量を表す。いくつかの例では、ヒストグラムの複数のエントリの各々は、量子化されるときに、同じピクセル値を有するピクセルの量を表す。
[0118]ヒストグラムを導出した後、ビデオエンコーダ20は、パレットPを空に、すなわちP=φに初期化し得、パレットのインデックス値をゼロに、すなわちidx=0に初期化し得、および/またはヒストグラムのインデックス値をゼロに初期化、すなわちj=0に設定し得る。次いで、ビデオエンコーダ20は、ヒストグラムの第1のエントリが、他の色値に対して最高の量のピクセルを有する色値を含むように、エントリの各々に対するピクセルのそれぞれの量に基づいて、ヒストグラムのエントリを降順に(in descending order)ソートする。たとえば、ビデオエンコーダ20は、現在のブロック中でより多く発生するピクセル値がヒストグラムの前方付近に設置されるように、fiの降順に従ってヒストグラムHをソートし得る。ソートされたヒストグラムは、Ho={(ui,fi),i={0,1,2,...,M},fi≧fi+1}によって表され得る。
[0119]次いで、ビデオエンコーダ20は、ヒストグラムのエントリに基づいて現在のブロックに対するパレットのパレットサイズとパレットエントリとを決定し得る。たとえば、ビデオエンコーダ20は、ソートされたヒストグラムの第1のエントリ(j,uj)をパレットに挿入する、すなわちP=P∪{(idx,uj)}、ことができる。次いで、ビデオエンコーダ20は、パレットインデックスをインクリメントし、すなわちidx=idx+1、ヒストグラムインデックスをインクリメントする、すなわちj=j+1、ことができる。ビデオエンコーダ20は、ソートされたヒストグラム中の次のエントリに対応するピクセル値が、パレット中にすでに含まれているピクセル値のうちのいずれかの近傍内にあるかどうかを決定し得る。たとえば、ビデオエンコーダ20は、ソートされたヒストグラム中の次のエントリに対応するピクセル値とパレット中にすでに含まれているピクセル値のうちの1つまたは複数との間の差分に対応する距離値を決定し得る。決定された差分値がしきい値以上、すなわちDistance(uj,x)≧Threshである場合、ビデオエンコーダ20は、ソートされたヒストグラム中の次のエントリに対応するピクセル値を示すパレットに、新しいエントリを挿入し得る。決定された差分値がしきい値を満足しない、すなわちDistance(uj,x)<Threshである場合、ビデオエンコーダ20は、ソートされたヒストグラム中の次のエントリに対応するピクセル値が、パレット中にすでに含まれているピクセル値の近傍内にあると決定し、新しいエントリをパレットに追加しない。次いで、ビデオエンコーダ20は、ヒストグラムインデックスをインクリメントする、すなわちj=j+1、ことができる。
[0120]いくつかの例では、ビデオエンコーダ20は、1つまたは複数の条件が1つまたは複数のそれぞれのしきい値を満足する場合、パレットを決定することを停止する(たとえば、エントリをパレットに追加することを停止する)ことができる。一例として、ビデオエンコーダ20は、パレットのサイズが所定の値より大きいとき、パレットを決定することを停止することができる。別の例として、ビデオエンコーダ20は、パレットインデックスの値が現在のブロック中の異なるピクセル値の数に等しい、すなわちidx=M、とき、パレットを決定することを停止することができる。別の例として、ビデオエンコーダ20は、ヒストグラムインデックスの値が現在のブロック中の異なるピクセル値の数に等しい、すなわちj=M、とき、パレットを決定することを停止することができる。
[0121]本開示の技法によれば、パレットに対するパレットサイズとパレットエントリとを決定した後、ビデオエンコーダ20は、レートひずみコストに少なくとも部分的に基づいて、パレットに対するパレットサイズ、またはパレットエントリのうちの1つまたは複数、のうちの少なくとも1つを修正するかどうかを決定し得る。このようにして、本技法は、ビデオエンコーダ20が、パレットに対して当初決定されたパレットサイズとパレットエントリとを修正するかどうかを決定することを可能にする。
[0122]たとえば、ビデオエンコーダ20は、インデックス値1を使用してCU180のピクセルを符号化すること、または、CU180の同じピクセルをエスケープピクセル(すなわち、当該ピクセル値を直接量子化し、当該ピクセルに対して量子化された値を送信する)として符号化することのレートひずみコストに基づいて、パレットエントリのうちの所与の1つ、たとえばパレット184中のエントリ202のインデックス値1、に対応する所与のインデックス値を保持するかまたは除去するかを決定し得る。この例では、インデックス値1と、対応するパレットエントリ202とをパレット184から除去すると決定することは、パレットサイズを低減させる、たとえば、パレット184はエントリ204と206とを含むのみである。
[0123]一例では、ビデオエンコーダ20は、ピクセルに対する色値を示すパレットエントリのうちの所与の1つに対応する所与のインデックス値を使用して、現在のブロックのピクセルを符号化するための第1のレートひずみコストを計算する、たとえば、パレットインデックスtにマッピングされたピクセルがインデックスtを用いてコーディングされるとき、RD(idx_coding,t)が、各パレットインデックスtに対して計算される。次いで、ビデオエンコーダ20は、各パレットインデックスtに対して、エスケープピクセルとして現在のブロックの同じピクセルを符号化するための第2のレートひずみコスト、例えば、RD(escape_coding,t)を、パレットインデックスtに属するピクセルが、特別なインデックス値を符号化することと、ピクセル値を直接量子化することと、ピクセルに対して量子化された値を送信することとを含むエスケープモードを用いてコーディングされるとき、計算する。
[0124]次いで、ビデオエンコーダ20は、所与のインデックス値と、パレットのパレットエントリのうちの対応する1つとを保持するかまたは除去するかを決定するために、第1のレートひずみコスト計算値と第2のレートひずみコスト計算値とを比較する。たとえば、第1のレートひずみコストが第2のレートひずみコストより高い場合、ビデオエンコーダ20は、所与のインデックスと、パレットエントリのうちの対応する1つとをパレットから除去し得る、たとえば、エントリ202のインデックス値1をパレット184から除去し得る。この例では、エントリ202の色値Aは、CU180中でまれにしか発生しない可能性が高く、すなわち、パレット184中の他の色値に対して、少ない量のCU180の関連ピクセルを有する。
[0125]いくつかの例では、ビデオエンコーダ20は、パレット184の各パレットエントリ202、204、206に対してこの保持決定または除去決定を実施してよいが、多くの例では、少量の関連ピクセルを有する「低い発生度(low occurrence)」のパレットエントリだけが除去される可能性が高い。これは、低い発生度のパレットエントリを含むより大きいパレットをコーディングするコスト、および低い発生度のパレットエントリに対応する高いインデックス値を使用してピクセルをコーディングするコストは、エスケープピクセルとして少ないピクセルをコーディングするより、大きくなる可能性が高いからである。このようにして、本技法は、ビデオエンコーダ20が、符号化されるべき現在のブロック中でまれにしか発生しない色値を示す当初導出されたパレットから1つまたは複数のパレットエントリを除去することを可能にする。
[0126]別の例として、ビデオエンコーダ20は、インデックス値1を使用してまたは隣接するインデックス値2を使用してCU180のピクセルを符号化するレートひずみコストに基づいて、パレットエントリのうちの所与の1つに対応する所与のインデックス値、たとえばパレット184中のエントリ202のインデックス値1を、パレットエントリの隣接する1つに対応する隣接するインデックス値、たとえばパレット184中のエントリ204のインデックス値2に併合(merge)させるかどうかを決定し得る。一例では、エントリ204の隣接するインデックス値2は、エントリ202の所与のインデックス値1からの最小のユークリッド距離の観点から最も近いインデックス値であり得る。別の例では、エントリ204の隣接するインデックス値2は、エントリ202の所与のインデックス値1に対するインデックス順序の観点から最も近いインデックス値であり得る。この例では、所与のインデックス値1、およびパレット184の対応するパレットエントリ202を、隣接するインデックス値2、およびパレット184の対応する隣接するパレットエントリ204に併合させることを決定することは、パレットサイズを低減させ、たとえば、パレット184は、エントリ204と206とだけを含む。
[0127]一例では、ビデオエンコーダ20は、ピクセルに対する第1の色値を示すパレットエントリのうちの所与の1つに対応する所与のインデックス値を使用して、現在のブロックのピクセルを符号化するための第1のレートひずみコストを計算する、たとえば、パレットインデックスtにマッピングされたピクセルがインデックスtを用いてコーディングされるとき、RD(separate_coding,t)が、各パレットインデックスtに対して計算される。次いで、ビデオエンコーダ20は、ピクセルに対する第2の色値を示すパレットエントリのうちの隣接する1つに対応する隣接するインデックス値を使用して現在のブロックの同じピクセルを符号化するための第2のレートひずみコストを計算する、たとえば、パレットインデックスtにマッピングされたピクセルが隣接するパレットインデックスmを用いてコーディングされるとき、RD(merged_coding,t−>m)が、パレットインデックスtに対して計算される。
[0128]次いで、ビデオエンコーダ20は、所与のインデックス値およびパレットのパレットエントリのうちの対応する1つを、隣接するインデックス値およびパレットのパレットエントリのうちの隣接する1つに併合させるかどうかを決定するために、第1のレートひずみコスト計算値と第2のレートひずみコスト計算値とを比較する。たとえば、第1のレートひずみコストが第2のレートひずみコストより高い場合、ビデオエンコーダ20は、所与のインデックスおよびパレットエントリのうちの対応する1つ、たとえばエントリ202のインデックス値1を、隣接するインデックス値およびパレットエントリのうちの隣接する1つ、たとえばエントリ204のインデックス値2に併合させ得る。この例では、所与のパレットエントリ202の第1の色値Aおよび隣接するパレットエントリ204の第2の色値Bが、実質的に同様の値である可能性が高い。たとえば、第1の色値Aおよび第2の色値Bは、量子化されるとき、同じ色値であり得る。
[0129]いくつかの例では、エントリ202の所与のインデックス値1をエントリ204の隣接するインデックス値2に併合させることは、エントリ202がパレット184から除去され、所与のエントリ202の第1の色値Aに前にマッピングされた任意のピクセルが、隣接するエントリ204の第2の色値Bにマッピングされる結果をもたらすことがある。他の例では、エントリ202の所与のインデックス値1をエントリ204の隣接するインデックス値2に併合させることは、所与のエントリ202と隣接するエントリ204の両方がパレット184から除去されて、単一の新しいパレットエントリがパレット184に追加される結果をもたらすことがある。新しいパレットエントリは、所与のエントリ202の第1の色値Aおよび隣接するエントリ204の第2の色値Bの平均、または何らかの他の組合せである色値を示すことがある。この例では、前にエントリ202またはエントリ204にマッピングされた任意のピクセルは、新しいパレットエントリにマッピングされることになる。
[0130]いくつかの例では、ビデオエンコーダ20は、パレット184の各パレットエントリ202、204、206に対するこの併合の決定を実施してよいが、多くの場合、実質的に同様の色値(すなわち、同じ色値に量子化され得る色値)を示す「非常に類似する」パレットエントリだけが併合される可能性が高い。これは、非常に類似するパレットエントリを含むより大きいパレットをコーディングするコスト、および非常に類似するパレットエントリの各々に対応する別々のインデックス値を使用してピクセルをコーディングするコストは、単一の併合されたインデックス値を使用してピクセルをコーディングするより高い可能性が高いからである。このようにして、本技法は、ビデオエンコーダ20が、符号化されるべき現在のブロック中で実質的に同様の色値を示す当初導出されたパレット中の1つまたは複数のパレットエントリを併合させることを可能にする。
[0131]さらなる例として、ビデオエンコーダ20は、k平均クラスタリング法を使用して決定された代表的パレットに基づいて、パレットのパレットエントリ、たとえばパレット184中のエントリ202、204、206のうちの1つまたは複数を修正するかどうかを決定し得る。ビデオエンコーダ20は、各パレットインデックスに対する代表的パレットのパレットエントリを計算するためにk平均クラスタリング法を使用してよく、ここでk平均クラスタリング法の反復(iterations)の数は、しきい値ベースである。たとえば、当初導出されたパレットのパレットエントリ、たとえばパレット184中のエントリ202、204、206の各々に対して、ビデオエンコーダ20は、パレットエントリ、たとえばエントリ202、204、206のそれぞれの1つによって示されるそれぞれの色値、たとえば色値A、B、CにマッピングされるCU180の1つまたは複数のピクセルの平均ピクセル値を計算する。次いで、ビデオエンコーダ20は、それぞれの平均ピクセル値を示す代表的パレットエントリを含むCU180に対する代表的パレットを決定する。
[0132]いくつかの場合には、ビデオエンコーダ20は、代表的パレットを使用してCUブロック180のピクセルをマッピングまたは分類することと、代表的パレットの最終バージョンを導出するために代表的パレットエントリの各々に対する平均ピクセル値を再び計算することとを含む、k平均クラスタリング法の別の第2の反復を実施することがある。他の場合には、ビデオエンコーダ20は、しきい値によって決定される、いくつかのk平均クラスタリング法の反復を実施することがある。しきい値は、ビデオエンコーダ20において容認可能な計算コストに従って設定され得る。
[0133]それぞれの平均ピクセル値を示す代表的パレットエントリを含むビデオデータのブロックに対する代表的パレットを決定した後、ビデオエンコーダ20は、パレットインデックスの各々にマッピングされたブロックの最も近いピクセル値の探索を実施し、最も近いピクセル値は、パレットインデックスのそれぞれの1つに対する最終パレット中の色値と見なされる。たとえば、代表的パレットの代表的パレットエントリのうちの所与の1つに対して、ビデオエンコーダ20は、代表的パレットエントリのうちの所与の1つによって示される平均ピクセル値に最も近い、代表的パレットエントリのうちの所与の1つにマッピングされたピクセルのうちの1つのピクセル値を決定する。パレットのパレットエントリのうちの対応する1つによって示される色値とは異なる最も近いピクセル値に基づいて、ビデオエンコーダ20は、パレットのパレットエントリのうちの所与の1つによって示される最終色値として最も近いピクセル値を選択する。
[0134]このようにして、ビデオエンコーダ20は、代表的パレット中の平均ピクセル値に最も近いピクセル値が、当初導出されたパレット184中の所与のパレットエントリ202によって示される色値Aと異なることに基づいて、パレットエントリの所与の1つ、たとえば当初のパレット184中のパレットエントリ202を修正することを決定する。当初導出されたパレット184中の所与のパレットエントリ202によって示される代表的パレットおよび色値Aに基づいて決定された最も近いピクセル値が同じである場合、ビデオエンコーダ20は、当初のパレット184中の所与のパレットエントリ202を修正する必要はない。
[0135]加えて、本開示の技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、パレットコード化ブロック、たとえばCU180またはCU188のフィルタリングをディセーブルにするかどうかを決定することがある。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、参照ブロックとして後で使用するために復号ピクチャバッファに記憶する前に、またはビデオデコーダ30の場合、ユーザに表示するために出力する前に、パレットコード化CU180の再構築バージョンのフィルタリング、たとえばデブロッキングフィルタリングおよび/またはサンプル適応オフセット(SAO)フィルタリングをディセーブルにすることがある。いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、CU180のデブロッキングフィルタリングだけをディセーブルにすることがある。他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、CU180のSAOフィルタリングをディセーブルにすることがある。さらに他の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、CU180に対して、デブロッキングフィルタリングとSAOフィルタリングの両方と、任意の他のタイプのフィルタリングとをディセーブルにすることがある。
[0136]従来、パレットコード化ブロックは、復号ピクチャバッファに記憶される前、または表示のために出力される前に、フィルタリングが再構築されたブロックに自動的に適用される、インターコード化ブロックと同様に取り扱われていた。本開示の技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、パレットコード化ブロック、たとえばCU180およびCU188に対するフィルタリングを適用しないが、インターコード化ブロック、たとえばインターブロック200に対するフィルタリングを適用することを継続してよい。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、再構築されたブロックはパレットコード化ブロック、たとえばCU180またはCU188であると決定し、パレットベースのコーディングモードの決定に基づいて再構築されたブロックのフィルタリングをディセーブルにしてよい。いくつかの場合には、本技法は、現在のCUがパレットコード化ブロックである場合、現在のCUに対してフィルタリングがディセーブルにされるように、条件文またはチェックをCUレベルのシンタックスに追加してよい。
[0137]図4の技法はCU(HEVC)のコンテキストにおいて説明されるが、この技法は、予測ユニット(PU)にも、または、他のビデオコーディングプロセスおよび/または規格においても適用され得ることを理解されたい。
[0138]図5は、本開示の技法による、パレットコード化ブロックのフィルタリングを決定するビデオコーダの例示的な動作を示すフローチャートである。図5に示す例示的な動作は、図2からのビデオエンコーダ20または図3からのビデオデコーダ30のいずれかによって実施されてよい。
[0139]図5の例示的な動作は、最初に、ビデオエンコーダ30に関して説明される。ビデオデコーダ30は、少なくとも1つのピクチャに対するビデオデータ、およびビデオデータと関連付けられた1つまたは複数のシンタックス要素の符号化ブロックを含む、ビデオエンコーダ20などのビデオエンコーダから符号化されたビットストリームを受信する。ビデオデコーダ30は、復号されるべきビデオデータの現在のブロックは、パレットコード化ブロックであると決定する(220)。いくつかの例では、ビデオデコーダ30は、ビデオデータの各ブロックがパレットコード化ブロックであるか否かを示すビットストリーム中で少なくとも1つのシンタックス要素(たとえば、フラグ)を受信し得る。他の例では、ビデオデコーダ30は、ビデオデータの各ブロックをコーディングするために使用されるコーディングのタイプを示す1つまたは複数のシンタックス要素、たとえば各ブロックが、パレットコード化ブロックであるか、インターコード化ブロックであるか、またはイントラコード化ブロックであるか、などを受信し得る。
[0140]復号されるべき現在のブロックがパレットコード化ブロックであるとき、ビデオデコーダ30のパレットベースの復号ユニット165は、現在のブロックに対して、1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含むパレットを決定する(222)。上記でより詳細に説明されたように、パレット中に含まれるそれぞれの色値は、現在のブロック中で最も頻繁に発生する主要な色値であり得る。パレットベースの復号ユニット165は、符号化されたビットストリーム中で受信されたパレットサイズおよびパレットエントリに従ってパレットを決定し得る。次いで、パレットベースの復号ユニット165は、符号化されたビットストリーム中で受信された現在のブロックの1つまたは複数のピクセルに対するインデックス値を決定し、インデックス値の各々は、現在のブロックのピクセルのうちの1つに対する色値を示すパレットエントリのうちの1つに対応する(224)。
[0141]ビデオデコーダ30は、現在のブロックに対する決定されたパレットおよび決定されたインデックス値に基づいて、ビデオデータの現在のブロックを再構築する(226)。たとえば、ビデオデコーダ30は、現在のブロックのピクセル値を再構築するために、決定されたインデックス値をパレットのエントリにマッピングし得る。次いで、ビデオデコーダ30は、復号ピクチャバッファ162中の再構築されたブロックのビデオデータを記憶してよく、その後、再構築されたブロックのビデオデータを表示のために出力してよい。
[0142]従来、パレットコード化ブロックは、インターコード化ブロックと同様に取り扱われており、したがって、復号ピクチャバッファに記憶される前、または表示のために出力される前に、フィルタリングが、再構築されたブロックに自動的に適用された。本開示の技法によれば、ビデオデコーダ30は、現在のブロックがパレットコード化ブロックであることに基づいて、再構築されたブロックを記憶または出力する前に、再構築されたブロックのフィルタリングをディセーブルにすることを決定する(228)。いくつかの例では、ビデオデコーダ30は、ビデオデコーダ30のフィルタユニット160によって、現在のパレットコード化ブロックのデブロッキングフィルタリングだけをディセーブルにすることがある。他の例では、ビデオデコーダ30は、現在のパレットコード化ブロックのSAOフィルタリングをディセーブルにすることがある。さらに他の例では、ビデオデコーダ30は、現在のパレットコード化ブロックに対してフィルタユニット160によって実施されるすべてのタイプのフィルタリングをディセーブルにすることがある。
[0143]次に、図5の例示的な動作が、ビデオエンコーダ20に関して説明される。ビデオエンコーダ20は、ビデオデータの現在のブロックが、パレットコード化ブロックとして符号化されるべきであると決定する(220)。いくつかの例では、ビデオエンコーダ20は、ビデオデータの各ブロックがパレットコード化ブロックであるか否かを示す符号化されたビットストリーム中で少なくとも1つのシンタックス要素(たとえば、フラグ)をシグナリングし得る。他の例では、ビデオエンコーダ20は、ビデオデータの各ブロックをコーディングするために使用されるコーディングのタイプを示す符号化されたビットストリーム中の1つまたは複数のシンタックス要素、たとえば各ブロックがパレットコード化ブロックであるか、インターコード化ブロックであるか、またはイントラコード化ブロックであるかなど、をシグナリングし得る。
[0144]現在のブロックがパレットコード化ブロックとして符号化されるべきであるとき、ビデオエンコーダ20のパレットベースの符号化ユニット122は、現在のブロックに対して、1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含むパレットを決定する(222)。上記でより詳細に説明されたように、パレット中に含まれるそれぞれの色値は、現在のブロック中で最も頻繁に発生する主要な色値であり得る。パレットベースの符号化ユニット122は、図4に関して上記でより詳細に説明されたクラスタリング法など、ピクセル値クラスタリング法を使用してパレットのパレットサイズとパレットエントリとを決定し得る。本開示の技法によれば、パレットベースの符号化ユニット122は、レートひずみコストに少なくとも部分的に基づいて、パレットに対するパレットサイズ、またはパレットエントリのうちの1つまたは複数、のうちの少なくとも1つを修正するかどうかを決定し得る。この修正の決定が、図6に関して以下でさらに詳細に説明される。
[0145]パレットを決定した後、パレットベースの符号化ユニット122は、現在のブロックの1つまたは複数のピクセルに対するインデックス値を決定し、インデックス値の各々は、現在のブロックのピクセルのうちの1つに対する色値を示すパレットエントリのうちの1つに対応する(224)。たとえば、ビデオエンコーダ20は、現在のブロックのピクセルの1つまたは複数の色を表すパレット中のエントリを位置特定することと、パレット中のエントリを示すインデックス値を有するブロックを符号化することとによってビデオデータの現在のブロックを符号化し得る。ビデオエンコーダ20は、符号化されたビットストリーム中の現在のパレットコード化ブロックに対するパレットとインデックス値とを、ビデオデコーダ30などのビデオデコーダにシグナリングし得る。
[0146]次いで、復号ループにおいて、ビデオエンコーダ20は、現在のブロックに対する決定されたパレットおよび決定されたインデックス値に基づいて、ビデオデータの現在のブロックを再構築する(226)。たとえば、ビデオエンコーダ20は、現在のブロックのピクセル値を再構築するために、インデックス値をパレットのエントリにマッピングし得る。次いで、ビデオエンコーダ20は、復号ピクチャバッファ116に再構築されたブロックのビデオデータを記憶し得る。本開示の技法によれば、ビデオエンコーダ20は、現在のブロックがパレットコード化ブロックであることに基づいて、再構築されたブロックを記憶する前に再構築されたブロックのフィルタリングをディセーブルにすることを決定する(228)。いくつかの例では、ビデオエンコーダ20は、ビデオエンコーダ20のフィルタユニット114によって現在のパレットコード化ブロックのデブロッキングフィルタリングだけをディセーブルにすることがある。他の例では、ビデオエンコーダ20は、現在のパレットコード化ブロックのSAOフィルタリングをディセーブルにすることがある。さらに他の例では、ビデオエンコーダ20は、現在のパレットコード化ブロックに対してフィルタユニット114によって実施されるすべてのタイプのフィルタリングをディセーブルにすることがある。
[0147]図6は、本開示の技法による、ビデオデータのパレットコード化ブロックに対するパレットを決定するビデオエンコーダの例示的な動作、たとえば図5のステップ220を示すフローチャートである。図6に示す例示的な動作が、図2からのビデオエンコーダ20に関して説明される。
[0148]上記で説明されたように、ビデオデータの現在のブロックがパレットコード化ブロックとして符号化されるべきであるとき、ビデオエンコーダ20のパレットベースの符号化ユニット122は、現在のブロックに対して、1つまたは複数のそれぞれの色値を示し、それぞれのインデックス値に対応する1つまたは複数のパレットエントリを含むパレットを決定する。パレットを決定するために、ビデオエンコーダ20のパレットベースの符号化ユニット122は、最初に、ピクセル値クラスタリング法を使用してパレットのパレットサイズとパレットエントリとを決定する(230)。たとえば、図4に関して上記でより詳細に説明されたように、ビデオデータの現在のブロックに対して、パレットベースの符号化ユニット122は、それぞれの色値と、色値にマッピングするブロックのピクセルのそれぞれの量とを各エントリが含む、複数のエントリを含むヒストグラムを決定することと、他の色値に対してピクセルの最高の量を有する色値をヒストグラムの第1のエントリが含むように、エントリの各々に対するピクセルのそれぞれの量に基づいてヒストグラムのエントリを降順にソートすることと、ヒストグラムのエントリに基づいてパレットのパレットサイズとパレットエントリとを決定することとを行うことができる。
[0149]本開示の技法によれば、パレットに対するパレットサイズとパレットエントリとを決定した後、パレットベースの符号化ユニット122は、レートひずみコストに少なくとも部分的に基づいて、パレットに対するパレットサイズ、またはパレットエントリのうちの1つまたは複数、のうちの少なくとも1つを修正するかどうかを決定し得る。たとえば、パレットベースの符号化ユニット122は、所与のインデックス値を使用してブロックのピクセルを符号化するかまたはエスケープピクセルとして符号化するレートひずみコストに基づいて、パレットのパレットエントリのうちの所与の1つに対応する所与のインデックス値を保持するかまたは除去するかを決定し得る(232)。この例では、所与のインデックス値とパレットエントリのうちの対応する1つとをパレットから除去することを決定することは、パレットサイズを低減させる。
[0150]いくつかの場合には、パレットベースの符号化ユニット122は、所与のインデックス値を除去するかまたは保持するかを決定するために、レートひずみコスト比較を次のように実施し得る。パレットベースの符号化ユニット122は、ピクセルに対する色値を示すパレットエントリのうちの所与の1つに対応する所与のインデックス値を使用して現在のブロックのピクセルを符号化するための第1のレートひずみコストを計算する。次いで、パレットベースの符号化ユニット122は、現在のブロックの同じピクセルを、特別なインデックス値とピクセルに対する量子化ピクセル値とを符号化することを含めて、エスケープピクセルとして符号化するための第2のレートひずみコストを計算する。パレットベースの符号化ユニット122は、第1のレートひずみコスト計算値と第2のレートひずみコスト計算値との比較に基づいて、所与のインデックス値とパレットのパレットエントリのうちの対応する1つとを保持するかまたは除去するかを決定する。たとえば、第1のレートひずみコストが第2のレートひずみコストより高い場合、パレットベースの符号化ユニット122は、所与のインデックスと、パレットエントリのうちの対応する1つとをパレットから除去し得る。この例では、パレットエントリのうちの所与の1つによって示される色値は、現在のブロック中でまれにしか発生しない可能性が高く、すなわち、パレット中の他の色値に対して、少ない量の現在のブロックの関連ピクセルを有する。
[0151]別の例では、パレットベースの符号化ユニット122は、所与のインデックス値を使用してまたは隣接するインデックス値を使用してブロックのピクセルを符号化するレートひずみコストに基づいて、パレットのパレットエントリのうちの所与の1つに対応する所与のインデックス値を、パレットのパレットエントリのうちの隣接する1つに対応する隣接するインデックス値に併合させるかどうかを決定し得る(234)。一例では、隣接するインデックス値は、所与のインデックス値からの最小のユークリッド距離の観点から最も近いインデックス値であり得る。別の例では、隣接するインデックス値は、所与のインデックス値に対するインデックス順序の観点から最も近いインデックス値であり得る。この例では、所与のインデックス値、およびパレットのパレットエントリのうちの対応する1つを、隣接するインデックス値、およびパレットのパレットエントリのうちの隣接する1つに併合させることを決定することは、パレットサイズを低減させる。
[0152]いくつかの場合には、パレットベースの符号化ユニット122は、所与のインデックス値を併合させるかどうかを決定するために、レートひずみコスト比較を次のように実施し得る。パレットベースの符号化ユニット122は、ピクセルに対する第1の色値を示すパレットエントリのうちの所与の1つに対応する所与のインデックス値を使用して現在のブロックのピクセルを符号化するための第1のレートひずみコストを計算する。次いで、パレットベースの符号化ユニット122は、ピクセルに対する第2の色値を示すパレットエントリのうちの隣接する1つに対応する隣接するインデックス値を使用して現在のブロックの同じピクセルを符号化するための第2のレートひずみコストを計算する。パレットベースの符号化ユニット122は、第1のレートひずみコスト計算値と第2のレートひずみコスト計算値との比較に基づいて、所与のインデックス値およびパレットのパレットエントリのうちの対応する1つを、隣接するインデックス値およびパレットのパレットエントリのうちの隣接する1つに併合させるかどうかを決定する。たとえば、第1のレートひずみコストが第2のレートひずみコストより高い場合、パレットベースの符号化ユニット122は、所与のインデックスおよびパレットエントリのうちの対応する1つを、隣接するインデックス値およびパレットエントリのうちの隣接する1つに併合させ得る。この例では、パレットエントリのうちの所与の1つによって示される第1の色値およびパレットエントリのうちの隣接する1つによって示される第2の色値は、実質的に同様の値である可能性が高い。たとえば、第1の色値および第2の色値は、量子化されるとき、同じ色値であり得る。
[0153]さらなる例では、パレットベースの符号化ユニット122は、k平均クラスタリング法を使用して決定された代表的パレットに基づいて、パレットのパレットエントリのうちの1つまたは複数を修正するかどうかを決定し得る(236)。たとえば、図4に関して上記でより詳細に説明されたように、当初導出されたパレットのパレットエントリの各々に対して、パレットベースの符号化ユニット122は、パレットエントリのうちのそれぞれの1つによって示されるそれぞれの色値にマッピングされたブロックの1つまたは複数のピクセルの平均ピクセル値を計算する。次いで、パレットベースの符号化ユニット122は、それぞれの平均ピクセル値を示す代表的パレットエントリを含むビデオデータのブロックに対する代表的パレットを決定する。いくつかの場合には、パレットベースの符号化ユニット122は、しきい値によって決定される、いくつかのk平均クラスタリング法の反復を実施することがある。
[0154]それぞれの平均ピクセル値を示す代表的パレットエントリを含むビデオデータのブロックに対する代表的パレットを決定した後、パレットベースの符号化ユニット122は、代表的パレットの代表的パレットエントリのうちの所与の1つに対して、代表的パレットエントリのうちの所与の1つによって示される平均ピクセル値に最も近い代表的パレットエントリのうちの所与の1つにマッピングされたピクセルのうちの1つのピクセル値を決定する。パレットのパレットエントリのうちの対応する1つによって示される色値とは異なる最も近いピクセル値に基づいて、パレットベースの符号化ユニット122は、パレットのパレットエントリのうちの所与の1つによって示される最終色値として最も近いピクセル値を選択する。このようにして、パレットベースの符号化ユニット122は、代表的パレット中の平均ピクセル値に最も近いピクセル値と、当初導出されたパレット中のパレットエントリのうちの所与の1つによって示される色値のとの比較に基づき、パレットエントリの所与の1つを修正することを決定する。
[0155]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、または除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。加えて、本開示の特定の態様が、明確さの目的のため、単一のモジュールまたはユニットによって実施されるものとして説明されているが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実施され得ることを理解されたい。
[0156]本開示のいくつかの態様が、説明のために開発中のHEVC規格に関して説明された。ただし、本開示で説明される技法は、他の規格またはまだ開発されていないプロプライエタリなビデオコーディング処理を含む、他のビデオコーディング処理にとって有用であり得る。
[0157]上で説明された技法は、ビデオエンコーダ20(図1および図2)ならびに/またはビデオデコーダ30(図1および図3)によって実施されてよく、ビデオエンコーダ20とビデオデコーダ30の両方が全般にビデオコーダと呼ばれ得る。同様に、ビデオコーディングは、適宜、ビデオ符号化またはビデオ復号を指し得る。
[0158]技法の様々な態様の特定の組合せが上で説明されたが、これらの組合せは、本開示で説明される技法の例を単に示すために与えられる。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきではなく、本開示で説明される技法の様々な態様の任意の想起可能な組合せを包含し得る。
[0159]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって処理され得る。コンピュータ可読媒体は、データ記憶媒体のような有形媒体に対応するコンピュータ可読記憶媒体、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的である有形のコンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のために命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含む場合がある。
[0160]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備え得る。また、任意の接続は、コンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、一方、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲の中に含まれるべきである。
[0161]命令は、1つもしくは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路のような、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、前述の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成されるか、または複合コーデックに組み込まれる、専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され得る。また、本技法は、1つもしくは複数の回路または論理要素で十分に実装され得る。
[0162]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)もしくはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。様々な構成要素、モジュール、またはユニットは、開示された技法を実施するように構成されたデバイスの機能的態様を強調するように本開示において記載されているが、様々なハードウェアユニットによる実現を必ずしも必要としない。むしろ、上記に記載されたように、様々なユニットは、コーデックハードウェアユニット内で組み合わされるか、または適切なソフトウェアおよび/もしくはファームウェアとともに、上記に記載された1つもしくは複数のプロセッサを含む、相互動作可能なハードウェアユニットの集合体によって提供される場合がある。
[0163]様々な例が、説明された。これらおよび他の例は、以下の特許請求の範囲に含まれる。

Claims (29)

  1. ビデオデータを処理する方法であって、
    ビデオデータのブロックがパレットコード化ブロックであると決定することと、
    1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む、前記ブロックに対するパレットを決定することと、
    前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は、前記ブロックの前記ピクセルのうちの1つに対する色値を示す、前記パレットエントリのうちの1つに対応し、
    前記ブロックに対する前記パレットおよび前記インデックス値に基づいて、ビデオデータの前記ブロックを再構築することと、
    前記ブロックがパレットコード化ブロックであることに基づいて、前記再構築されたブロックのフィルタリングをディセーブルにすることを決定することと、
    を備える方法。
  2. 前記再構築されたブロックのフィルタリングをディセーブルにすることを決定することは、前記再構築されたブロックのデブロッキングフィルタリングまたは前記再構築されたブロックのサンプル適応オフセット(SAO)フィルタリングのうちの少なくとも1つをディセーブルにすることを備える、請求項1に記載の方法。
  3. 前記ブロックを再構築することは、ビデオデコーダによって前記ビデオデータの前記ブロックを再構築することを備え、前記方法は、前記フィルタリングがディセーブルにされることに基づいて、前記ビデオデータの前記再構築されたブロックをフィルタリングすることなく、表示のために前記ビデオデコーダによって前記ビデオデータを出力すること、または前記ビデオデコーダによって前記ビデオデータを復号ピクチャバッファに記憶することの少なくとも1つをさらに備える、請求項1に記載の方法。
  4. 前記ブロックを再構築することは、ビデオエンコーダによって前記ビデオデータの前記ブロックを再構築することを備え、前記方法は、前記フィルタリングがディセーブルにされることに基づいて、前記ビデオデータの前記再構築されたブロックをフィルタリングすることなく、前記ビデオエンコーダによって前記ビデオデータを復号ピクチャバッファに記憶することをさらに備える、請求項1に記載の方法。
  5. 前記ブロックに対する前記パレットを決定することは、
    ビデオエンコーダによって、ピクセル値クラスタリング法を使用して前記パレットに対するパレットサイズと前記パレットエントリとを決定することと、
    レートひずみコストに少なくとも部分的に基づいて、前記パレットに対する前記パレットサイズ、または前記パレットエントリのうちの1つまたは複数、のうちの少なくとも1つを修正するかどうかを決定することと、を備える、請求項1に記載の方法。
  6. 前記パレットサイズを修正するかどうかを決定することは、前記パレットの前記パレットエントリのうちの所与の1つに対応する所与のインデックス値を保持するかまたは除去するかを決定することを備え、前記所与のインデックス値と、前記パレットの前記パレットエントリのうちの対応する1つとを除去することは、前記パレットサイズを低減させる、請求項5に記載の方法。
  7. 前記ブロックの少なくとも1つのピクセルを符号化するための第1のレートひずみコストを、前記少なくとも1つのピクセルに対する色値を示す、前記パレットエントリのうちの前記所与の1つに対応する前記所与のインデックス値を使用して、計算することと、
    前記ブロックの前記少なくとも1つのピクセルに対する量子化ピクセル値を符号化することを含む、前記少なくとも1つのピクセルをエスケープピクセルとして符号化するための第2のレートひずみコストを、計算することと、
    前記第1のレートひずみコスト計算値と前記第2のレートひずみコスト計算値との比較に基づいて、前記所与のインデックス値と前記パレットの前記パレットエントリのうちの前記対応する1つとを保持するかまたは除去するかを決定することとをさらに備える、請求項6に記載の方法。
  8. 前記パレットサイズを修正するかどうかを決定することは、前記パレットの前記パレットエントリのうちの所与の1つに対応する所与のインデックス値を、前記パレットの前記パレットエントリのうちの隣接する1つに対応する隣接するインデックス値に併合させるかどうかを決定することを備え、前記所与のインデックス値、および前記パレットの前記パレットエントリのうちの前記対応する1つを、前記隣接するインデックス値、および前記パレットの前記パレットエントリのうちの前記隣接する1つに併合させることは、前記パレットサイズを低減させる、請求項5に記載の方法。
  9. 前記隣接するインデックス値は、前記所与のインデックス値からの最小ユークリッド距離の観点から最も近いインデックス値、または前記所与のインデックス値に対するインデックス順序の観点から最も近いインデックス値のうちの1つである、請求項8に記載の方法。
  10. 前記ブロックの少なくとも1つのピクセルを符号化するための第1のレートひずみコストを、前記少なくとも1つのピクセルに対する第1の色値を示す前記パレットエントリのうちの前記所与の1つに対応する前記所与のインデックス値を使用して、計算することと、
    前記ブロックの前記少なくとも1つのピクセルを符号化するための第2のレートひずみコストを、前記少なくとも1つのピクセルに対する第2の色値を示す、前記パレットエントリのうちの前記隣接する1つに対応する前記隣接するインデックス値を使用して、計算することと、ここにおいて、前記第2の色値は、前記第1の色値に類似し、
    前記第1のレートひずみコスト計算値と前記第2のレートひずみコスト計算値との比較に基づいて、前記所与のインデックス値、および前記パレットの前記パレットエントリのうちの前記対応する1つを、前記隣接するインデックス値、および前記パレットの前記パレットエントリのうちの前記隣接する1つに併合させるかどうかを決定することと、をさらに備える、請求項8に記載の方法。
  11. 前記パレットの前記パレットエントリのうちの1つまたは複数を修正するかどうかを決定することは、
    k平均クラスタリング法を使用して、前記ビデオデータの前記ブロックに対する代表的パレットを決定することと、前記代表的パレットは、それぞれの平均ピクセル値を示す代表的パレットエントリを含み、
    前記代表的パレットの前記代表的パレットエントリのうちの所与の1つに対して、前記代表的パレットエントリのうちの前記所与の1つによって示される前記平均ピクセル値に最も近い、前記代表的パレットエントリのうちの前記所与の1つにマッピングされた前記ピクセルのうちの1つのピクセル値を決定することと、
    前記パレットの前記パレットエントリのうちの対応する1つによって示される前記色値とは異なる前記最も近いピクセル値に基づいて、前記パレットの前記パレットエントリのうちの前記所与の1つによって示される最終色値として、前記最も近いピクセル値を選択することと、
    を備える、請求項5に記載の方法。
  12. 前記k平均クラスタリング法を使用して前記代表的パレットを決定することは、
    前記パレットの前記パレットエントリの各々に対して、前記パレットエントリのうちの前記それぞれの1つによって示される前記それぞれの色値にマッピングされた、前記ブロックの1つまたは複数のピクセルの平均ピクセル値を計算することと、
    前記それぞれの平均ピクセル値を示す前記代表的パレットエントリを含む、前記ビデオデータの前記ブロックに対する前記代表的パレットを決定することと、ここにおいて、前記k平均クラスタリング法の反復の数が、しきい値によって決定され、
    を備える、請求項11に記載の方法。
  13. 前記ピクセル値クラスタリング法を使用して、前記パレットに対する前記パレットサイズと前記パレットエントリとを決定することは、
    前記ビデオデータの前記ブロックに対して、複数のエントリを含むヒストグラムを決定することと、各エントリは、それぞれの色値と、前記色値にマッピングする前記ブロックのピクセルのそれぞれの量とを含み、
    前記ヒストグラムの第1のエントリが含む前記色値が、他の色値に対して最高の量のピクセルを有するように、前記エントリの各々に対するピクセルの前記それぞれの量に基づいて、前記ヒストグラムの前記エントリを降順にソートすることと、
    前記ヒストグラムの前記エントリに基づいて、前記パレットの前記パレットサイズと前記パレットエントリとを決定することと、
    を備える、請求項5に記載の方法。
  14. ビデオ処理デバイスであって、
    ビデオデータを記憶するように構成されたメモリと、
    前記メモリと通信している1つまたは複数のプロセッサと、を備え、前記1つまたは複数のプロセッサは、
    ビデオデータのブロックがパレットコード化ブロックであると決定することと、
    1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む、前記ブロックに対するパレットを決定することと、
    前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は、前記ブロックの前記ピクセルのうちの1つに対する色値を示す、前記パレットエントリのうちの1つに対応し、
    前記ブロックに対する前記パレットおよび前記インデックス値に基づいて、ビデオデータの前記ブロックを再構築することと、
    前記ブロックがパレットコード化ブロックであることに基づいて、前記再構築されたブロックのフィルタリングをディセーブルにすることを決定することと、
    を行うように構成される、デバイス。
  15. 前記1つまたは複数のプロセッサは、前記再構築されたブロックのデブロッキングフィルタリングまたは前記再構築されたブロックのサンプル適応オフセット(SAO)フィルタリングのうちの少なくとも1つをディセーブルにするように構成される、請求項14に記載のデバイス。
  16. 前記デバイスはビデオデコーダを備え、前記ビデオデコーダの前記1つまたは複数のプロセッサは、前記フィルタリングがディセーブルにされることに基づいて、前記ビデオデータの前記ブロックを再構築することと、前記ビデオデータの前記再構築されたブロックをフィルタリングすることなく、表示のために前記ビデオデータを出力することまたは復号ピクチャバッファに前記ビデオデータを記憶することのうちの少なくとも1つを行うことと、を行うように構成される、請求項14に記載のデバイス。
  17. 前記デバイスはビデオエンコーダを備え、前記ビデオエンコーダの前記1つまたは複数のプロセッサは、前記フィルタリングがディセーブルにされることに基づいて、前記ビデオデータの前記ブロックを再構築することと、前記ビデオデータの前記再構築されたブロックをフィルタリングすることなく、復号ピクチャバッファに前記ビデオデータを記憶することとを行うように構成される、請求項14に記載のデバイス。
  18. 前記デバイスはビデオエンコーダを備え、前記ブロックに対する前記パレットを決定するために、前記ビデオエンコーダの前記1つまたは複数のプロセッサは、
    ピクセル値クラスタリング法を使用して、前記パレットに対するパレットサイズと前記パレットエントリとを決定することと、
    レートひずみコストに少なくとも部分的に基づいて、前記パレットに対する前記パレットサイズ、または前記パレットエントリのうちの1つまたは複数、のうちの少なくとも1つを修正するかどうかを決定することと、
    を行うように構成される、請求項14に記載のデバイス。
  19. 前記パレットサイズを修正するかどうかを決定するために、前記1つまたは複数のプロセッサは、前記パレットの前記パレットエントリのうちの所与の1つに対応する所与のインデックス値を保持するかまたは除去するかを決定するように構成され、前記所与のインデックス値と、前記パレットの前記パレットエントリのうちの前記対応する1つとを除去することは、前記パレットサイズを低減させる、請求項18に記載のデバイス。
  20. 前記1つまたは複数のプロセッサが、
    前記ブロックの少なくとも1つのピクセルを符号化するための第1のレートひずみコストを、前記少なくとも1つのピクセルに対する色値を示す、前記パレットエントリのうちの前記所与の1つに対応する前記所与のインデックス値を使用して、計算することと、
    前記ブロックの前記少なくとも1つのピクセルに対する量子化ピクセル値を符号化することを含む、前記少なくとも1つのピクセルをエスケープピクセルとして符号化するための第2のレートひずみコストを、計算することと、
    前記第1のレートひずみコスト計算値と前記第2のレートひずみコスト計算値との比較に基づいて、前記所与のインデックス値と前記パレットの前記パレットエントリのうちの前記対応する1つとを保持するかまたは除去するかを決定することとを行うように構成される、請求項19に記載のデバイス。
  21. 前記パレットサイズを修正するかどうかを決定するために、前記1つまたは複数のプロセッサは、前記パレットの前記パレットエントリのうちの所与の1つに対応する所与のインデックス値を、前記パレットの前記パレットエントリのうちの隣接する1つに対応する隣接するインデックス値に併合させるかどうかを決定するように構成され、前記所与のインデックス値、および前記パレットの前記パレットエントリのうちの前記対応する1つを、前記隣接するインデックス値、および前記パレットの前記パレットエントリのうちの前記隣接する1つに併合させることは、前記パレットサイズを低減させる、請求項18に記載のデバイス。
  22. 前記隣接するインデックス値は、前記所与のインデックス値からの最小ユークリッド距離の観点から最も近いインデックス値、または前記所与のインデックス値に対するインデックス順序の観点から最も近いインデックス値のうちの1つである、請求項21に記載のデバイス。
  23. 前記1つまたは複数のプロセッサは、
    前記ブロックの少なくとも1つのピクセルを符号化するための第1のレートひずみコストを、前記少なくとも1つのピクセルに対する第1の色値を示す前記パレットエントリのうちの前記所与の1つに対応する前記所与のインデックス値を使用して、計算することと、
    前記ブロックの前記少なくとも1つのピクセルを符号化するための第2のレートひずみコストを、前記少なくとも1つのピクセルに対する第2の色値を示す、前記パレットエントリのうちの前記隣接する1つに対応する前記隣接するインデックス値を使用して、計算することと、ここにおいて、前記第2の色値は、前記第1の色値に類似し、
    前記第1のレートひずみコスト計算値と前記第2のレートひずみコスト計算値との比較に基づいて、前記所与のインデックス値、および前記パレットの前記パレットエントリのうちの前記対応する1つを、前記隣接するインデックス値、および前記パレットの前記パレットエントリのうちの前記隣接する1つに併合させるかどうかを決定することとを行うように構成される、請求項21に記載のデバイス。
  24. 前記パレットの前記パレットエントリのうちの1つまたは複数を修正するかどうかを決定するために、前記1つまたは複数のプロセッサは、
    k平均クラスタリング法を使用して、前記ビデオデータの前記ブロックに対する代表的パレットを決定することと、前記代表的パレットは、それぞれの平均ピクセル値を示す代表的パレットエントリを含み、
    前記代表的パレットの前記代表的パレットエントリのうちの所与の1つに対して、前記代表的パレットエントリのうちの前記所与の1つによって示される前記平均ピクセル値に最も近い、前記代表的パレットエントリのうちの前記所与の1つにマッピングされた前記ピクセルのうちの1つのピクセル値を決定することと、
    前記パレットの前記パレットエントリのうちの対応する所与の1つによって示される前記色値とは異なる前記最も近いピクセル値に基づいて、前記パレットの前記パレットエントリのうちの前記所与の1つによって示される最終色値として、前記最も近いピクセル値を選択することと、
    を行うように構成される、請求項18に記載のデバイス。
  25. 前記k平均クラスタリング法を使用して前記代表的パレットを決定するために、前記1つまたは複数のプロセッサは、
    前記パレットの前記パレットエントリの各々に対して、前記パレットエントリのうちの前記それぞれの1つによって示される前記それぞれの色値にマッピングされた前記ブロックの1つまたは複数のピクセルの平均ピクセル値を計算することと、
    前記それぞれの平均ピクセル値を示す前記代表的パレットエントリを含む、前記ビデオデータの前記ブロックに対する前記代表的パレットを決定することと、ここにおいて、前記k平均クラスタリング法の反復の数は、しきい値によって決定され、
    を行うように構成される、請求項24に記載のデバイス。
  26. 前記ピクセル値クラスタリング法を使用して、前記パレットに対する前記パレットサイズと前記パレットエントリとを決定するために、前記1つまたは複数のプロセッサは、
    前記ビデオデータの前記ブロックに対して、複数のエントリを含むヒストグラムを決定することと、各エントリは、それぞれの色値と、前記色値にマッピングする前記ブロックのピクセルのそれぞれの量とを含み、
    前記ヒストグラムの第1のエントリが付含む前記色地が、他の色値に対して最高の量のピクセルを有するように、前記エントリの各々に対するピクセルの前記それぞれの量に基づいて、前記ヒストグラムの前記エントリを降順にソートすることと、
    前記ヒストグラムの前記エントリに基づいて、前記パレットの前記パレットサイズと前記パレットエントリとを決定することと、
    を行うように構成される、請求項18に記載のデバイス。
  27. 前記デバイスは、
    集積回路、
    マイクロプロセッサ、または
    ワイヤレス通信デバイスのうちの少なくとも1つを備える、請求項14に記載のデバイス。
  28. ビデオ処理デバイスであって、
    ビデオデータのブロックがパレットコード化ブロックであると決定するための手段と、
    1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む、前記ブロックに対するパレットを決定するための手段と、
    前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定するための手段と、前記インデックス値の各々は、前記ブロックの前記ピクセルのうちの1つに対する色値を示す、前記パレットエントリのうちの1つに対応し、
    前記ブロックに対する前記パレットおよび前記インデックス値に基づいて、ビデオデータの前記ブロックを再構築するための手段と、
    前記ブロックがパレットコード化ブロックであることに基づいて、前記再構築されたブロックのフィルタリングをディセーブルにすることを決定するための手段と、
    を備える、ビデオ処理デバイス。
  29. ビデオデータを処理するための命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
    ビデオデータのブロックがパレットコード化ブロックであると決定することと、
    1つまたは複数のそれぞれの色値を示す1つまたは複数のパレットエントリを含む、前記ブロックに対するパレットを決定することと、
    前記ブロックの1つまたは複数のピクセルに対するインデックス値を決定することと、前記インデックス値の各々は、前記ブロックの前記ピクセルのうちの1つに対する色値を示す、前記パレットエントリのうちの1つに対応し、
    前記ブロックに対する前記パレットおよび前記インデックス値に基づいて、ビデオデータの前記ブロックを再構築することと、
    前記ブロックがパレットコード化ブロックであることに基づいて、前記再構築されたブロックのフィルタリングをディセーブルにすることを決定することと、
    を行わせる、非一時的コンピュータ可読媒体。
JP2016558785A 2014-03-26 2015-03-26 ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングの決定 Active JP6640105B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461970838P 2014-03-26 2014-03-26
US61/970,838 2014-03-26
US14/667,900 2015-03-25
US14/667,900 US9654806B2 (en) 2014-03-26 2015-03-25 Determining palette size, palette entries and filtering of palette coded blocks in video coding
PCT/US2015/022771 WO2015148814A1 (en) 2014-03-26 2015-03-26 Determining palette size, palette entries and filtering of palette coded blocks in video coding

Publications (3)

Publication Number Publication Date
JP2017514365A true JP2017514365A (ja) 2017-06-01
JP2017514365A5 JP2017514365A5 (ja) 2018-04-12
JP6640105B2 JP6640105B2 (ja) 2020-02-05

Family

ID=54192242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016558785A Active JP6640105B2 (ja) 2014-03-26 2015-03-26 ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングの決定

Country Status (24)

Country Link
US (1) US9654806B2 (ja)
EP (1) EP3123727A1 (ja)
JP (1) JP6640105B2 (ja)
KR (1) KR102352642B1 (ja)
CN (1) CN106105228B (ja)
AU (1) AU2015235991B2 (ja)
BR (1) BR112016022085B1 (ja)
CA (1) CA2939678C (ja)
CL (1) CL2016002393A1 (ja)
CR (1) CR20160447A (ja)
DO (1) DOP2016000258A (ja)
GT (1) GT201600200A (ja)
HK (1) HK1226229A1 (ja)
IL (1) IL247899B (ja)
MX (1) MX357993B (ja)
MY (1) MY177780A (ja)
PH (1) PH12016501573B1 (ja)
RU (1) RU2678490C2 (ja)
SA (1) SA516371863B1 (ja)
SG (1) SG11201606420TA (ja)
SV (1) SV2016005285A (ja)
TW (1) TWI666918B (ja)
WO (1) WO2015148814A1 (ja)
ZA (1) ZA201607321B (ja)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR112016008044A8 (pt) 2013-10-14 2020-03-17 Microsoft Technology Licensing Llc codificador de vídeo ou imagem, decodificador de vídeo ou imagem e meio legível por computador
JP6465890B2 (ja) * 2013-12-10 2019-02-06 キヤノン株式会社 画素ブロックの符号化または復号の方法および装置
EP3085083B1 (en) 2013-12-18 2021-12-15 HFI Innovation Inc. Method and apparatus for palette initialization and management
WO2015091879A2 (en) * 2013-12-19 2015-06-25 Canon Kabushiki Kaisha Improved encoding process using a palette mode
CA3020374C (en) 2013-12-27 2021-01-05 Hfi Innovation Inc. Method and apparatus for syntax redundancy removal in palette coding
US10182242B2 (en) * 2013-12-27 2019-01-15 Mediatek Inc. Method and apparatus for palette coding with cross block prediction
US10542271B2 (en) 2013-12-27 2020-01-21 Hfi Innovation Inc. Method and apparatus for major color index map coding
CN105850132B (zh) 2014-01-07 2019-10-22 联发科技股份有限公司 编解码视频数据块的方法和装置
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
AU2014202921B2 (en) * 2014-05-29 2017-02-02 Canon Kabushiki Kaisha Method, apparatus and system for de-blocking a block of video samples
US9924175B2 (en) 2014-06-11 2018-03-20 Qualcomm Incorporated Determining application of deblocking filtering to palette coded blocks in video coding
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US9596479B2 (en) * 2014-10-07 2017-03-14 Hfi Innovation Inc. Method of pulse-code modulation and palette coding for video coding
JP6122516B2 (ja) 2015-01-28 2017-04-26 財團法人工業技術研究院Industrial Technology Research Institute エンコーディング方法及びエンコーダ
CN107637057A (zh) * 2015-06-03 2018-01-26 联发科技股份有限公司 图像和视频数据的调色板编解码方法
WO2016197314A1 (en) * 2015-06-09 2016-12-15 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
GB2539486B (en) * 2015-06-18 2019-07-31 Gurulogic Microsystems Oy Encoder, decoder and method employing palette compression
US10097842B2 (en) * 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
JP6613842B2 (ja) * 2015-11-24 2019-12-04 富士通株式会社 画像符号化装置、画像符号化方法、及び画像符号化プログラム
JP6662123B2 (ja) * 2016-03-14 2020-03-11 富士通株式会社 画像符号化装置、画像符号化方法、及び画像符号化プログラム
CN110024383B (zh) * 2016-09-23 2024-03-08 弗劳恩霍夫应用研究促进协会 图像压缩技术
CN106686384B (zh) * 2016-11-29 2019-05-24 西安万像电子科技有限公司 文字块的压缩方法和装置以及图像压缩方法和装置
CN106604032B (zh) * 2016-11-29 2020-02-04 西安万像电子科技有限公司 图像中文字块的压缩方法和装置及图像压缩方法和装置
CN106851294B (zh) * 2017-01-03 2018-08-14 西安万像电子科技有限公司 图像的压缩方法和装置及其文字块的压缩方法和装置
US11004237B2 (en) * 2017-10-12 2021-05-11 Sony Group Corporation Palette coding for color compression of point clouds
US11616962B2 (en) * 2019-07-15 2023-03-28 Tencent America LLC Method and apparatus for video coding
JP7359936B2 (ja) 2019-07-20 2023-10-11 北京字節跳動網絡技術有限公司 パレットモードの使用の指示の条件依存符号化
US20220272333A1 (en) * 2019-07-21 2022-08-25 Lg Electronics Inc. Image encoding/decoding method and apparatus for performing deblocking filtering according to whether palette mode is applied, and method for transmitting bitstream
US11076151B2 (en) * 2019-09-30 2021-07-27 Ati Technologies Ulc Hierarchical histogram calculation with application to palette table derivation
US11120289B2 (en) * 2019-09-30 2021-09-14 Ati Technologies Ulc Parallel histogram calculation with application to palette table derivation
CN115211118A (zh) * 2019-12-31 2022-10-18 抖音视界有限公司 用于视频编解码的基于聚类的调色板模式
WO2021194283A1 (ko) * 2020-03-25 2021-09-30 주식회사 케이티 비디오 신호 처리 방법 및 장치
US11937070B2 (en) 2021-07-01 2024-03-19 Tencent America LLC Layered description of space of interest
CN117834892A (zh) * 2022-09-29 2024-04-05 腾讯科技(深圳)有限公司 视频编码方法和装置、计算设备、存储介质及程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060204086A1 (en) * 2005-03-10 2006-09-14 Ullas Gargi Compression of palettized images
JP4623301B2 (ja) * 2005-12-17 2011-02-02 富士ゼロックス株式会社 画像処理装置、画像処理プログラム
US7903873B2 (en) * 2007-09-13 2011-03-08 Microsoft Corporation Textual image coding
RU2420021C2 (ru) * 2009-03-24 2011-05-27 Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." Способ сжатия изображений и видеопоследовательностей
US9654785B2 (en) * 2011-06-09 2017-05-16 Qualcomm Incorporated Enhanced intra-prediction mode signaling for video coding using neighboring mode
US8571311B2 (en) * 2011-12-15 2013-10-29 Microsoft Corporation Raster graphics image transcoding for file size reduction
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
JP5632431B2 (ja) 2012-09-04 2014-11-26 株式会社東芝 画像符号化装置、及び画像符号化方法

Also Published As

Publication number Publication date
AU2015235991B2 (en) 2019-07-25
TWI666918B (zh) 2019-07-21
CL2016002393A1 (es) 2017-04-17
RU2016137792A (ru) 2018-04-26
RU2016137792A3 (ja) 2018-11-23
US20150281703A1 (en) 2015-10-01
SG11201606420TA (en) 2016-10-28
CA2939678C (en) 2022-10-18
MX2016011213A (es) 2016-11-30
SA516371863B1 (ar) 2019-08-05
IL247899B (en) 2018-03-29
CN106105228A (zh) 2016-11-09
HK1226229A1 (zh) 2017-09-22
NZ723093A (en) 2022-03-25
MY177780A (en) 2020-09-23
TW201603562A (zh) 2016-01-16
KR20160138102A (ko) 2016-12-02
BR112016022085B1 (pt) 2024-04-30
BR112016022085A2 (pt) 2017-08-15
SV2016005285A (es) 2017-04-24
PH12016501573A1 (en) 2016-09-14
WO2015148814A1 (en) 2015-10-01
MX357993B (es) 2018-08-01
GT201600200A (es) 2018-11-27
CN106105228B (zh) 2019-05-31
JP6640105B2 (ja) 2020-02-05
BR112016022085A8 (pt) 2021-07-13
DOP2016000258A (es) 2016-12-31
CR20160447A (es) 2016-11-08
RU2678490C2 (ru) 2019-01-29
PH12016501573B1 (en) 2016-09-14
CA2939678A1 (en) 2015-10-01
ZA201607321B (en) 2019-04-24
KR102352642B1 (ko) 2022-01-17
EP3123727A1 (en) 2017-02-01
AU2015235991A1 (en) 2016-09-01
US9654806B2 (en) 2017-05-16

Similar Documents

Publication Publication Date Title
JP6640105B2 (ja) ビデオコーディングにおけるパレットサイズ、パレットエントリ、およびパレットコード化ブロックのフィルタリングの決定
US10097842B2 (en) Restriction of escape pixel signaled values in palette mode video coding
KR101977450B1 (ko) 팔레트 코딩 모드에서의 비디오 블록의 이스케이프 픽셀들의 양자화
US9900617B2 (en) Single color palette mode in video coding
KR102338145B1 (ko) 팔레트 모드 인코딩 및 디코딩 설계
US9558567B2 (en) Palette prediction in palette-based video coding
KR102142181B1 (ko) 비디오 코딩에서의 팔레트 블록 사이즈에 대한 제한
EP3155815A1 (en) Determining quantization parameter (qp) values and delta qp values for palette coded blocks in video coding
EP3155814A1 (en) Determining application of deblocking filtering to palette coded blocks in video coding
KR20170097655A (ko) 서브샘플링 포맷을 위한 팔레트 모드
US9961351B2 (en) Palette mode coding

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180228

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190613

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191225

R150 Certificate of patent or registration of utility model

Ref document number: 6640105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250