JP2018505590A - サブサンプリングフォーマットのためのパレットモード - Google Patents

サブサンプリングフォーマットのためのパレットモード Download PDF

Info

Publication number
JP2018505590A
JP2018505590A JP2017532825A JP2017532825A JP2018505590A JP 2018505590 A JP2018505590 A JP 2018505590A JP 2017532825 A JP2017532825 A JP 2017532825A JP 2017532825 A JP2017532825 A JP 2017532825A JP 2018505590 A JP2018505590 A JP 2018505590A
Authority
JP
Japan
Prior art keywords
current block
pixel
palette
color values
chroma
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
JP2017532825A
Other languages
English (en)
Other versions
JP6625644B2 (ja
JP2018505590A5 (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 JP2018505590A publication Critical patent/JP2018505590A/ja
Publication of JP2018505590A5 publication Critical patent/JP2018505590A5/ja
Application granted granted Critical
Publication of JP6625644B2 publication Critical patent/JP6625644B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • 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/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/59Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • 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/96Tree coding, e.g. quad-tree coding

Abstract

パレットモードコーディング技法を、クロマ成分がルーマ成分とは異なる解像度にある場合に拡張するための技法が説明される。パレットテーブルのエントリは3つの色値を含み、ピクセルがルーマ成分とクロマ成分の両方を含むのかルーマ成分のみを含むのかに基づいて、3つの色値または3つの色値のうちの単一の色値が選択される。

Description

[0001] 本出願は、その内容全体が参照により本明細書に組み込まれる、2014年12月19日に出願された米国仮出願第62/094,737号の利益を主張する。
[0002] 本開示は、ビデオ符号化および復号(video encoding and decoding)に関する。
[0003] デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイス(device)に組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、現在開発中の高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法など、ビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004] ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ(intra-picture))予測および/または時間(インターピクチャ(inter-picture))予測を実行する。ブロックベースのビデオコーディングでは、ビデオスライス(video slice)(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分され得る。ピクチャ(picture)のイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データはコード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差係数が生じ得、その残差係数は、次いで量子化され得る。
[0005] 本開示は、クロマ成分(chroma component)の解像度(resolution)がルーマ成分(luma component)の解像度よりも小さいパレットモードコーディング(palette-mode coding)のための例示的な技法について説明する。パレットテーブル(palette table)のエントリ(entry)は3つの色値(three color values)を含み、ルーマ成分および2つのクロマ成分の各々に対して1つを含む(include)。ブロックのピクセル(pixel)がルーマ成分および2つのクロマ成分を有する場合、すべての3つの色値がピクセルのパレットモードコーディングのために使用される。しかしながら、ブロックのピクセルがルーマ成分のみを有し、クロマ成分を有しない場合、単一の色値(single color value)(たとえば、3つの色値のうちの第1の色値)のみがピクセルのパレットモードコーディングのために使用される。
[0006] 一例では、本開示は、ビデオデータ(video data)を復号(decode)する方法について説明し、本方法は、ビデオデータの現在ブロック(current block)について、3つの色値を有するエントリを含む単一のパレットテーブル(single palette table)を導出(derive)することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出す(retrieve)べき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号する(palette-mode decode)こととを備える。
[0007] 一例では、本開示は、ビデオデータを復号するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、3つの色値を有するエントリを含むパレットテーブルを記憶する(store)ように構成されたメモリユニット(memory unit)と、メモリユニットに記憶するために、ビデオデータの現在ブロックについてのパレットテーブルを導出し、現在ブロックについての他のいかなるパレットテーブルをも導出しないことと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号することとを行うように構成されたビデオデコーダ(video decoder)とを備える。
[0008] 一例では、本開示は、実行されたとき、ビデオデータを復号するためのデバイスの1つまたは複数のプロセッサに、ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出すべき色値の数を決定することと、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号することとを行わせる、命令(instruction)を記憶した非一時的コンピュータ可読記憶媒体(non-transitory computer-readable storage medium)について説明する。
[0009] 一例では、本開示は、ビデオデータを復号するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するための手段と、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、単一のパレットテーブルから取り出すべき色値の数を決定するための手段と、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号するための手段とを備える。
[0010] 一例では、本開示は、ビデオデータを符号化する(encode)方法について説明し、本方法は、単一のパレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム(bitstream)中でシグナリングすべき色値の数を決定することと、色値の決定された数に基づいて、現在ブロックを再構成する(reconstruct)ために使用される、ビットストリーム中のピクセルについての色値をシグナリングすることとを備える。
[0011] 一例では、本開示は、ビデオデータを符号化するためのデバイスについて説明し、本デバイスは、ビデオデータの現在ブロックについて、パレットテーブルを記憶するように構成されたメモリユニットと、パレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングすること(signaling)とを行うように構成されたビデオエンコーダ(video encoder)とを備える。
[0012] 1つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
[0013] 本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。 [0014] 本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。 [0015] 本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。 [0016] パレットベースビデオコーディング(palette-based video coding)のためのパレットエントリ(palette entry)を決定することの一例を示す概念図。 [0017] パレット予測の一例を示す図。 [0018] ピクセルのブロックについてのパレットへのインデックス(index)を決定することの一例を示す概念図。 [0019] 前にコーディングされた行からパレットインデックス(palette indices)をコピーすることの一例を示す概念図。 [0020] 位相整合事例(phase aligned case)の場合の4:2:0クロマサブサンプリングフォーマット(chroma subsampling format)の一例を示す概念図。 [0021] 位相不整合事例(phase misaligned case)の場合の4:2:0クロマサブサンプリングフォーマットの一例を示す概念図。 [0022] ビデオデータを復号することの一例を示すフローチャート。 [0023] ビデオデータを符号化することの一例を示すフローチャート。
[0024] 本開示は、ビデオコーディングおよび圧縮のための技法について説明する。特に、本開示は、ビデオデータのパレットベースビデオコーディングのための技法について説明する。パレットベースビデオコーディングでは、ビデオコーダ(video coder)(たとえば、ビデオエンコーダまたはビデオデコーダ)は、ピクセルのブロックについてのパレットテーブルを導出し、ここで、パレットテーブル中の各エントリは、パレットテーブルへのインデックスによって識別される色値を含む。パレットモードコーディング技法が4:4:4サンプリングフォーマット(sampling format)に適用される場合、ブロック中の各ピクセルについて、3つの色値、すなわち、1つのルーマ成分と2つのクロマ成分とがある。したがって、パレットテーブル中の各エントリは3つの色値を含む。
[0025] しかしながら、コーディング効率は、非4:4:4サンプリングフォーマットを使用するパレットモードコーディング技法を用いて獲得され得る。非4:4:4サンプリングフォーマットでは、クロマ成分は、4:2:2または4:2:0サンプリングフォーマットなどにおいて、ルーマ成分に対してサブサンプリングされ得る。したがって、非4:4:4サンプリングフォーマットでは、ビデオデータのブロック中のいくつかのピクセルは、すべての3つの色値、すなわち、ルーマ成分と2つのクロマ成分とを含み、ビデオデータのブロック中のいくつかのピクセルは、単一の色値、すなわち、ルーマ成分のみを含む。
[0026] 本開示で説明される技法は、非4:4:4サンプリングフォーマットのためのパレットモードコーディングを使用するための方法について説明する。非4:4:4サンプリングフォーマットでは、ビデオコーダはパレットテーブルを導出し、パレットテーブル中の各エントリは3つの色値を含む。しかしながら、すべての3つの色値が取り出されるのか3つの色値のうちの単一の色値が取り出されるのかは、ビデオデータのブロック中のピクセルがすべての3つの色値を含むのか単一の色値を含むのかに基づく。ピクセルが単一の色のみを含む場合、単一の色値が取り出される。ピクセルがすべての3つの色を含む場合、すべての3つの色値が取り出される。
[0027] いくつかの例では、パレットベースコーディング(palette-based coding)技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得る。最近、新しいビデオコーディング規格、すなわち、高効率ビデオコーディング(HEVC)の設計「ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services- Coding of moving video, High efficiency video coding」、国際電気通信連合、2014年10月が、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって確定された。HEVCバージョン1と呼ばれる最新のHEVC仕様は、http://www.itu.int/rec/T-REC-H.265-201304-Iから入手可能である。HEVCに対する範囲拡張(Range Extension)、すなわちHEVC−Rextも、JCT−VCによって開発されている。RExt WD7と呼ばれる、範囲拡張の最近のワーキングドラフト(WD:Working Draft)が、
http://phenix.int-evry.fr/jct/doc_end_user/documents/17_Valencia/wg11/JCTVC-Q1005-v4.zipから入手可能である。最近、JCT−VCは、HEVC−Rextに基づく、スクリーンコンテンツコーディング(SCC:screen content coding)の開発を開始した。スクリーンコンテンツコーディング(SCC)についてのワーキングドラフトが、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2」、JCTVC−S1005、Joshiらへの、ITU−T SG16WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC:Joint Collaborative Team on Video Coding)において与えられ、http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=9793.から入手可能である。
[0028] 本開示で説明される技法は、たとえば、HEVC拡張または他のスクリーンコンテンツ関連ビデオコーデックを用いた、スクリーンコンテンツコーディング(SCC)に関係する。普及している国際ビデオコーディング規格は、ITU−T H.261、ISO/IEC MPEG−1Visual、ITU−T H.262またはISO/IEC MPEG−2Visual、ITU−T H.263、ISO/IEC MPEG−4Visual、および(ISO/IEC MPEG−4AVCとしても知られる)ITU−T H.264、高効率ビデオコーディング(HEVC)などを含む。上記で説明されたように、SCCと称される、HEVCに対するスクリーンコンテンツコーディング拡張が開発されている。同じく上述のように、パレットモードの説明を含むSCCの最近のワーキングドラフト(WD)は、JCTVC−S1005「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2」ITU−T SG16WP3とISO/IEC JTC1/SC29/WG11とのジョイントコラボレーティブチームオンビデオコーディング(JCT−VC)第18回会議、札幌、日本、2014年6月30日〜7月9日において入手可能である。
[0029] 旧来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかである自然画像であると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。しかしながら、リモートデスクトップ、協調作業、およびワイヤレスディスプレイ(wireless display)のような適用例では、コンピュータ生成スクリーンコンテンツ(computer generated screen content)が、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーン(discrete-tone)を有し、鋭いライン(sharp line)および高コントラストオブジェクト境界(high contrast object boundary)を特徴とする傾向がある。連続トーンおよび滑らかさの仮定はもはや適用されないことがあり、したがって、旧来のビデオコーディング技法は、コンテンツを圧縮するための非効率的な方法であり得る。
[0030] 本開示は、スクリーン生成コンテンツコーディングに特に好適であり得る、パレットベースコーディングについて説明する。たとえば、ビデオデータの特定のエリアが比較的少数の色を有すると仮定する。ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆる「パレット(palette)」をコーディングし得る。各ピクセルは、ピクセル(たとえば、以下でより詳細に説明されるように、ルーマ(luma)およびクロマ(chroma)またはルーマだけ)の色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオコーダは、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。本明細書で説明されるように、パレットエントリインデックスは、パレットインデックスまたは単にインデックスと呼ばれることがある。したがって、パレットモードでは、パレットは、ブロックサンプルのための予測子(predictor)としてまたは最終再構成済みブロックサンプル(final reconstructed block sample)として使用され得る色値を表すインデックスによって番号を付けられたエントリを含み得る。パレット中の各エントリは、使用されている特定の色フォーマットに応じて、1つの色成分(たとえば、ルーマ値)、2つの色成分(たとえば、2つのクロマ値)、または3つの色成分(たとえば、RGB、YUVなど)を含んでいることがある。本開示で説明されるように、(パレットテーブルとも呼ばれる)パレットは、各エントリについて3つの色成分を含むが、1つの色成分が取り出されるのかすべての3つの色成分が取り出されるのかは、ピクセルがルーマ成分のみを含むのかルーマ成分とクロマ成分との組合せを含むのかに基づく。
[0031] HEVCフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット(CU:coding unit)モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得る。したがって、CUモードのコンテキストにおいて説明される以下の開示されるプロセスのすべてが、追加または代替として、PUに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
[0032] パレットコーディングモード(palette coding mode)を使用して、ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについてのインデックス値を用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのインデックス値を取得し得る。ビデオデコーダは、ブロックのピクセル値を再構成するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。たとえば、パレットインデックスをもつパレットのエントリは、ブロックの1つまたは複数のピクセル成分の値または「サンプル(sample)」を決定するために使用され得る。上記の例は、パレットベースコーディングの概略的な説明を与えることを意図されている。
[0033] 本開示は、ビデオエンコーダがビデオデコーダに情報を与える方法を示すために「信号(signal)」または「シグナリング(signaling)」という用語を使用する。シンタックス要素(またはデータの他のタイプ)のシグナリングは、ビデオデコーダがビデオエンコーダからのシグナリングされた情報を直ちに受信することを意味すると解釈されるべきではなく、しかしながら、それは可能であり得る。いくつかの例では、ビデオエンコーダは、ストレージデバイスに記憶される情報(たとえば、シンタックス要素または他のビデオデータ)をシグナリングし得る。次いで、ビデオデコーダは、後でストレージデバイスから情報を取り出し得る。
[0034] パレットモードでは、COPY_INDEX_MODEまたはESCAPEモードのみが可能であるときの、おそらくブロックの最初の行を除いて、ブロックのあらゆるピクセルが、COPY_INDEX_MODE、COPY_ABOVE_MODE、またはESCAPEモードを用いてコーディングされ得る。シンタックス要素palette_run_type_flagは、COPY_INDEX_MODEが使用されるのかCOPY_ABOVE_MODEが使用されるのかを示す。コピーインデックスモード(すなわち、palette_run_type_flagがCOPY_INDEX_MODEに等しい)では、パレットインデックス(すなわち、シンタックス要素palette_index)がシグナリングされ、その後にパレットラン値palette_runが続く。ラン値(run value)は、同じパレットインデックスを有する後続のピクセルの数を示す。COPY_ABOVE_MODEでは、現在ピクセルのすぐ上に位置するピクセルからパレットインデックスがコピーされる後続のピクセルの数を示すラン値のみがシグナリングされ得る。ESCAPEモードは、このモードを示すために特定のパレットインデックスが使用される、COPY_INDEX_MODEまたはCOPY_ABOVE_MODE内でコーディングされる。現在のパレットバージョンでは、このインデックスはパレットサイズに等しい。ESCAPEモードでは、ピクセルトリプレット(pixel triplet)(YCbCrまたはRGB)またはそれの量子化バージョンが、palette_escape_valとしてシグナリングされる。
[0035] エスケープピクセル(escape pixel)の使用を示すために、フラグpalette_escape_val_present_flagがブロックごとにシグナリングされる。1に等しいこのフラグは、パレットコーディングされたブロック中に少なくとも1つのエスケープピクセルがあることを示し、他の場合、フラグは0に等しい。
[0036] パレットサイズは、0〜max_palette_sizeの範囲内にあるように制限される。最大サイズがシグナリングされ得る。
[0037] パレットモードを用いてコーディングされたブロックでは、パレットが、前にパレットコーディングされたブロックのパレットエントリから予測され得、新しいエントリとして明示的にシグナリングされ得るか、または前にコーディングされたブロックのパレットが完全に再利用され得る。後者の場合はパレット共有(palette sharing)と呼ばれ、前のブロックのパレット全体が変更なしにそのままで再利用されることを示すために、フラグpalette_share_flagがシグナリングされる。
[0038] パレットモードでは、ブロック中のピクセル走査は、2つのタイプ、すなわち、垂直トラバース走査または(ヘビ状の)水平トラバース走査であり得る。ブロック中で使用される走査パターンは、ブロックユニットごとにシグナリングされるフラグpalette_transpose_flagに従って導出される。
[0039] 上記で説明されたコーディングモードでは、値の「ラン(run)」は、概して、一緒にコーディングされるピクセル値のストリング(string)を指すことがある。ランは、概して、ラン中に含まれる要素の数に関して説明され得、それは、グループ(たとえば、ランレングス(run length))として一緒に処理されるか、またはコーディングされる。いくつかの例では、ランは同様の値のピクセル値を含み得る。たとえば、インデックスモードでのランは、値のストリングが(上述のように)同じインデックス値を有することを示し得る。説明の目的のための一例では、所与の走査順序での2つの連続するピクセルが異なる値を有する場合、ランレングスは0に等しい。所与の走査順序での2つの連続するピクセルが同じ値を有するが、その走査順序での3番目のピクセルが異なる値を有する場合、ランレングスは1に等しく、以下同様である。
[0040] 図1は、本開示の技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用される「ビデオコーダ(video coder)」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング(video coding)」または「コーディング(coding)」という用語は、ビデオ符号化(video encoding)またはビデオ復号(video decoding)を総称的に指すことがある。ビデオコーディングシステム10のビデオエンコーダ20およびビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、クロマ成分がルーマ成分に対してサブサンプリングされるブロックのピクセルをコーディングするように構成され得る。
[0041] 図1に示されているように、ビデオコーディングシステム10は、ソースデバイス(source device)12と宛先デバイス(destination device)14とを含む。ソースデバイス12は符号化ビデオデータ(encoded video data)を生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
[0042] ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたるデバイスを備え得る。
[0043] 宛先デバイス14は、チャネル16を介してソースデバイス12から符号化ビデオデータを受信し得る。チャネル16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にする1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコル(wireless communication protocol)などの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス14に送信し得る。1つまたは複数の通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送線路など、ワイヤレスおよび/またはワイヤード通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)など、パケットベースネットワークの一部を形成し得る。1つまたは複数の通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
[0044] 別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、たとえば、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の好適なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
[0045] さらなる一例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブがある。
[0046] 宛先デバイス14は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
[0047] 本開示の技法はワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の適用例など、様々なマルチメディア適用例をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0048] 図1に示されているビデオコーディングシステム10は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスがデータを符号化し、メモリに記憶し得、および/またはビデオ復号デバイスがメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、単にメモリにデータを符号化し、および/またはメモリからデータを取り出し、復号するデバイスによって実行される。
[0049] 図1の例では、ソースデバイス12は、ビデオソース(video source)18と、ビデオエンコーダ20と、出力インターフェース(output interface)22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス(たとえば、ビデオカメラ)、以前にキャプチャ(capture)されたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィクスシステム、あるいはビデオデータのそのようなソースの組合せを含み得る。
[0050] ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータは、復号および/または再生のための宛先デバイス14による後のアクセスのために記憶媒体またはファイルサーバ上にも記憶され得る。
[0051] 図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を介して符号化ビデオデータ(encoded video data)を受信し得る。ディスプレイデバイス32は、宛先デバイス14と一体化され得るかまたはその外部にあり得る。概して、ディスプレイデバイス32は復号ビデオデータ(decoded video data)を表示する(display)。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスを備え得る。
[0052] ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、本開示の技法を実行するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアとの組合せなどを含む)上記のいずれも、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0053] 本開示は、概して、ビデオエンコーダ20が、ある情報をビデオデコーダ30などの別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリングすること」または「送信すること」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指すことがある。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時に符号化ビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
[0054] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、上記で述べられ、HEVCバージョン1に記載されているHEVC規格など、ビデオ圧縮規格に従って動作する。ベースHEVC規格(HEVCバージョン1)に加えて、HEVCのためのスケーラブルビデオコーディング拡張、マルチビュービデオコーディング拡張、および3Dコーディング拡張を作成するための作業が進行中である。さらに、(たとえば、本開示で説明されるような)パレットベースコーディングモードが、HEVC規格の拡張(たとえば、HEVCに対するスクリーンコンテンツコーディング拡張)のために与えられ得る。いくつかの例では、パレットベースコーディングのための本開示で説明される技法が、ITU−T−H.264/AVC規格または将来の規格など、他のビデオコーディング規格に従って動作に構成されたエンコーダおよびデコーダに適用され得る。したがって、HEVCコーデックにおけるコーディングユニット(CU:coding unit)または予測ユニット(PU:prediction unit)のコーディングのためのパレットベースコーディングモード(palette-based coding mode)の適用が、例として説明される。
[0055] HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム(frame)」と呼ばれることもある。ピクチャは、SL、SCbおよびSCrと示される、3つのそれぞれのサンプルアレイを表す3つの成分を含み得る。SLはルーマサンプル(luma sample)の2次元アレイ(すなわち、ブロック(block))である。SCbはCbクロミナンスサンプル(chrominance sample)の2次元アレイである。SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ(chroma)」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
[0056] ピクチャの符号化表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック(coding tree block)、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造(syntax structure)であり得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。CTUは「ツリーブロック(tree block)」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタ走査において連続的に順序付けられた整数個のCTUを含み得る。
[0057] コード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロック(coding block)に分割するためにCTUのコーディングツリーブロックに対して4分木区分(quad-tree partitioning)を再帰的に実行し得、したがって「コーディングツリーユニット(coding tree unit)」という名称がある。コーディングブロックはサンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャのルーマサンプルの1つのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロックであり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とであり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロックとCb予測ブロックとCr予測ブロックとのための予測ルーマブロックと予測Cbブロックと予測Crブロックとを生成し得る。
[0058] ビデオエンコーダ20は、PUのための予測ブロックを生成(たとえば、決定)するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいてPUの予測ブロックを生成し得る。
[0059] ビデオエンコーダ20が、PUの予測ブロックを生成(たとえば、決定)するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20は、PUの予測ブロックを生成するために単予測または双予測を使用し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは単一の動きベクトル(MV:motion vector)を有し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために双予測を使用するとき、PUは2つのMVを有し得る。
[0060] ビデオエンコーダ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コーディングブロック中の対応するサンプルとの間の差分を示し得る。
[0061] さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックとCb残差ブロックとCr残差ブロックとを1つまたは複数のルーマ変換ブロックとCb変換ブロックとCr変換ブロックとに分解するために4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU:transform unit)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とであり得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連付けられ得る。TUに関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。
[0062] ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
[0063] 係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実行し得る。ビデオエンコーダ20は、エントロピー符号化シンタックス要素をビットストリーム中に出力し得る。
[0064] ビデオエンコーダ20は、エントロピー符号化シンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのシーケンスを備え得る。NALユニットの各々はNALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP:raw byte sequence payload)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、RBSPは0ビットを含む。
[0065] 異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS:picture parameter set)のためのRBSPをカプセル化し得、第2のタイプのNALユニットはコード化スライスのためのRBSPをカプセル化し得、第3のタイプのNALユニットはSEIのためのRBSPをカプセル化し得、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。
[0066] ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパース(parse)し得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するためのプロセスは、概して、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPUのための予測ブロックを決定するためにPUのMVを使用し得る。さらに、ビデオデコーダ30は、現在CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連付けられた変換ブロックを再構成するために変換係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャの各CUのためのコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成し得る。
[0067] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明されたイントラ予測またはインター予測コーディング技法を実行することではなく、またはそれに加えて、ビデオエンコーダ20およびビデオデコーダ30は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得る。各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ピクセル値をパレット中の適切なエントリに関係付けるインデックスをコーディングし得る。
[0068] 上記の例では、ビデオエンコーダ20は、ブロックのためのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについてのインデックス値を用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダ30は、符号化ビットストリームから、ブロックのためのパレット、ならびにブロックのピクセルについてのインデックス値を取得し得る。ビデオデコーダ30は、ブロックのピクセル値を再構成するために、ピクセルのインデックス値をパレットのエントリに関係付け得る。
[0069] いくつかの例では、ビデオエンコーダ20は、同じピクセル値を有する所与の走査順序での連続するピクセルの数を示す1つまたは複数のシンタックス要素を符号化し得る。同様の値のピクセル値のストリングは、本明細書では「ラン(run)」と呼ばれることがある。説明の目的のための一例では、所与の走査順序での2つの連続するピクセルが異なる値を有する場合、ランは0に等しい。所与の走査順序での2つの連続するピクセルが同じ値を有するが、その走査順序での3番目のピクセルが異なる値を有する場合、ランは1に等しい。ビデオデコーダ30は、符号化ビットストリームからランを示すシンタックス要素を取得し、同じインデックス値を有する連続するピクセルロケーションの数を決定するためにそのデータを使用し得る。
[0070] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、マップの1つまたは複数のエントリのためのラインコピー(line copying)を実行し得る。たとえば、ビデオエンコーダ20は、マップ中の特定のエントリのためのピクセル値が、特定のエントリの上のライン中のエントリに等しいことを示し得る。ビデオエンコーダ20はまた、特定のエントリの上のライン中のエントリに等しい走査順序でのインデックスの数を、ランとして示し得る。この例では、ビデオエンコーダ20および/またはビデオデコーダ30は、指定された隣接ラインから、および現在コーディングされているインデックスマップのラインのためのエントリの指定された数から、インデックス値をコピーし得る。
[0071] 本開示の態様によれば、ビデオエンコーダ20およびビデオデコーダ30は、図4〜図7に関して以下で説明されるか、または本開示で他の方法で説明されるパレットコーディングのための技法の任意の組合せを実行し得る。言い換えれば、図4〜図7に関して説明される例は、本開示で説明される技法を限定する、または場合によっては、その技法によって必要とされるものと見なされるべきではない。
[0072] 本開示は、パレットモードで現在ブロックをコーディングするための例示的な技法について説明する。本開示では、「現在ブロック(current block)」という用語は、通常、ルーマ成分を有するルーマブロック(luma block)とそれぞれのクロマ成分を有する2つのクロマブロック(chroma block)とを指すために使用される。本開示で使用される、「現在ブロック」の一例は、上記の定義されたコーディングユニット(CU)である。HEVC規格は、3つのサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、クロマサンプルの2つの対応するコーディングブロック、あるいは、モノクロームピクチャ(monochrome picture)またはサンプルをコーディングするために使用される3つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのコーディングブロックのようにCUを定義する。
[0073] 上記で説明されたように、スクリーンコンテンツコーディング(SCC)のための現在のワーキングドラフトがある。現在のSCCワーキングドラフト、JCTVC−S1005では、パレットモードは、4:4:4クロマサブサンプリングフォーマットのみのために定義され、ここで、ルーマブロックサイズとクロマブロックサイズとは等しい。コーディング効率を改善するために、4:2:0または4:2:2など、非4:4:4クロマサブサンプリングフォーマットのためのパレットモードを設計することが望ましいことがあり、ここで、クロマサンプルブロックは概してルーマサンプルブロックよりも小さい。たとえば、4:2:0クロマサブサンプリングフォーマットおよび8×8ブロックの場合、ルーマサンプルブロックサイズは8×8であり、対応するクロマサンプルブロックサイズは4×4である(たとえば、垂直クロマと水平クロマの両方が1/2にされる)。4:2:2クロマサブサンプリングフォーマットおよび8×8の場合、ルーマサンプルブロックサイズは8×8であり、対応するクロマサンプルブロックサイズは4×8である(たとえば、水平クロマが1/2にされる)。一例として、パレットモードコーディングされる現在ブロックがサイズ8×8のCUであると仮定する。この8×8サイズのCUの場合、1つの8×8サイズのルーマブロックと、4:2:2サブサンプリングフォーマットのための2つの4×8クロマブロックまたは4:2:0サブサンプリングのための2つの4×4クロマブロックとがある。
[0074] 本開示は、非4:4:4クロマサブサンプリングフォーマットのためのパレットモードを設計するためのいくつかの技法について説明する。これらの技法はいくつかの部分に分割され得、ここで、各部分は、別々に、または他のものとの任意の組合せで適用され得る。各部分は、現在のパレットモード設計に関して行われ得る変更を表すことができ、本開示で述べられないパレットモードの態様は、限定はしないが、4:4:4パレットモードの場合と同じであると仮定され得る。
[0075] パレットテーブル導出の場合、4:4:4パレットモードでは、各パレットエントリは、色トリプレット(color triplet)、たとえばY、Cb、およびCrからなる。ブロック中のあらゆる非エスケープピクセルについて、パレットテーブル中のエントリを指すパレットインデックスがそれに割り当てられる。対応する色トリプレットが再構成のために使用され得る。しかしながら、非4:4:4の場合には、ルーマサンプル(ルーマ成分)の数がクロマサンプル(クロマ成分)の数よりも大きくなり得、ブロック中のあらゆるピクセルが3つの色成分を有するとは限らない。
[0076] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、パレットテーブルを導出し得る。本開示で使用される「パレットテーブルを導出する(derive a palette table)」という句またはそれの相当語句は、ビデオエンコーダ20またはビデオデコーダ30がパレットテーブルについての値を決定する方法を指す。たとえば、ビデオエンコーダ20の観点から、ビデオエンコーダ20は、符号化されているブロックの色値に基づいて、パレットテーブルについての値を決定し得る。ビデオデコーダ30の観点から、ビデオデコーダ30は、受信されたビットストリーム中に含まれている情報に基づいて、パレットテーブルについての値を決定し得る。これらの例の両方では、ビデオエンコーダ20はパレットテーブルを導出するものと見なされ得、ビデオデコーダ30はパレットテーブルを導出するものと見なされ得る。パレットテーブルの値を決定するための他の方法が可能であり、「パレットテーブルを導出する」という句またはそれの相当語句によって包含されると見なされる。
[0077] この同じパレットテーブルは、ルーマサンプルおよびクロマサンプルについての色値を含む。本開示では、色値と色成分という用語は互換的に使用される。パレットテーブル中の各エントリは、3つの色成分(たとえば、3つの色値)、すなわち、ルーマサンプルのための第1の色成分と、第1のクロマ成分のための第2の色成分と、第2のクロマ成分のための第3の色成分とを含む。
[0078] ビデオデコーダ30が、パレットモードでコーディングされた現在ブロックを復号(たとえば、パレットテーブルに基づいて現在ブロックを再構成)すべきであるとき、ビデオデコーダ30は、現在ブロックを再構成するためにこの単一のパレットテーブルを利用し得る。たとえば、ビデオデコーダ30は、ルーマブロックのルーマ成分およびそれぞれのクロマブロックのための2つのクロマ成分についての色値(たとえば、色成分)を含むこのパレットテーブルを使用してこの現在ブロックのルーマブロックおよび2つのクロマブロックを再構成するために、この単一のパレットテーブルを利用し、他のパレットテーブルを利用しないことがある。
[0079] N×NサイズのCU(たとえば、N×Nサイズの現在ブロック)の場合、ルーマ成分を有する対応するN×Nルーマブロックがある。したがって、CU中の各ピクセルについて1つの対応するルーマサンプルがある。しかしながら、サブサンプリングの場合、CU中の各ピクセルについて1つの対応するクロマサンプルがない。たとえば、4:2:2サブサンプリングの場合、対応するクロマブロックはN/2×Nクロマサンプルを有し、したがって、CU中の2つのピクセルごとに、それぞれのクロマブロック中に1つの対応するサンプルがある。4:2:0サブサンプリングの場合、対応するクロマブロックはN/2×N/2クロマサンプルを有し、したがって、CU中の4つのピクセルごとに、それぞれのクロマブロック中に1つの対応するサンプルがある。
[0080] いくつかの例では、現在ブロック(たとえば、CU)の各ピクセルについて、ビデオデコーダ30は、現在ブロックのピクセルが、対応するルーマ成分およびクロマ成分を含むのか対応するルーマ成分だけを含むのかを決定し得る。現在ブロックのピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビデオデコーダ30は、パレットテーブルから取り出すべき色値の数を決定し得る。たとえば、現在ブロックのピクセルがルーマ成分およびクロマ成分を含むとビデオデコーダ30が決定した場合、ビデオデコーダ30は、パレットテーブルからすべての3つの色値を取り出し得る。しかしながら、現在ブロックのピクセルがルーマ成分を含み、クロマ成分を含まないとビデオデコーダ30が決定した場合、ビデオデコーダ30は、パレットテーブルから3つの色値のうちの1つ(たとえば、3つの色値のうちの第1の色値)を取り出し得、すべての3つを取り出すとは限らない。
[0081] ビデオデコーダ30は、取り出すべき色値の数の決定に基づいて、現在ブロック中のピクセルをパレットモード復号し得る。たとえば、ビデオデコーダ30は、パレットテーブル中への1つのエントリを識別する単一のインデックスを受信し得る。3つの色値が取り出されるべきであるとビデオデコーダ30が決定した場合、ビデオデコーダ30は、パレットテーブル中への識別されたエントリ(identified entry)からすべての3つの色値を取り出し、各それぞれの色値を、ルーマブロック中の対応するサンプルとそれぞれのクロマブロック中の対応するサンプルとに割り当て得る。1つの色値が取り出されるべきであるとビデオデコーダ30が決定した場合、ビデオデコーダ30は、パレットテーブル中への識別されたエントリから3つの色値のうちの1つの色値を取り出し、その色値を、ルーマブロック中の対応するサンプルに割り当て得る。
[0082] 上記の例によれば、サブサンプリングフォーマット(subsampling format)の場合、ビデオデコーダ30は、非サブサンプリングフォーマット(non-subsampling format)と比較してビデオ復号プロセスへの大幅な変更を必要とすることなしに、現在ブロックのピクセルを再構成する(たとえば、CUに対応するそれぞれのルーマブロックおよびクロマブロックのルーマサンプルおよびクロマサンプルを再構成する)ことが可能であり得る。たとえば、4:4:4サンプリングフォーマットの場合、現在ブロック(たとえば、CU)中のピクセルごとに、ルーマブロックおよび2つのクロマブロック中に対応するサンプルがある。そのような4:4:4サンプリングフォーマットの場合、ビデオエンコーダ20は、単一のパレットテーブル中の単一のインデックスをシグナリングし、ビデオデコーダ30は、インデックスによって識別されたパレットテーブル中のエントリに基づいてすべての3つの色値を取り出し、ルーマサンプルおよびクロマサンプルの各々をそれぞれの色値に割り当てる(assign)。
[0083] サブサンプリングフォーマットの場合、ビデオデコーダ30は、非サブサンプリングフォーマットと同様に、単一のパレットテーブルを導出し、このパレットテーブル中への信号エントリを受信し得る。しかしながら、ビデオデコーダ30が取り出す色値の数は、現在ブロックのピクセルごとに異なり得る。このようにして、ビデオエンコーダ20が、4:4:4サンプリングフォーマットのために、およびサブサンプリングフォーマットのためにシグナリングするビットストリームは、同じであるが、ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかの決定に基づいて、異なる数の色値を選択的に取り出し得る。
[0084] サブサンプリングフォーマットのためのビットストリームは、エスケープピクセルについて、パレットテーブル中のエントリに基づいてピクセルをパレットモードコーディングするとき、非サブサンプリングフォーマットに対して変化する必要がないことがあるが、サブサンプリングフォーマットのためのビットストリームは、非サブサンプリングフォーマットのためのビットストリームとは異なり得る。エスケープピクセルは、それについての色値が、導出されたパレットテーブル中にないピクセルである。エスケープピクセルについて、ビデオエンコーダ20は、ルーマ成分およびクロマ成分についての(場合によっては量子化された(quantized))色値を明示的にシグナリングする。
[0085] 非サブサンプリングフォーマットの場合、エスケープピクセルについて、ビデオエンコーダ20は、それぞれのルーマブロックおよびクロマブロック中の対応するルーマサンプルおよびクロマサンプルの各々についての色値をシグナリングし得、ビデオデコーダ30はそれらを受信し得る。サブサンプリングフォーマットの場合、いくつかの例では、ビデオエンコーダ20は、それについてルーマ成分のみがあるエスケープピクセルについての1つの色値のみをシグナリングし、それについてルーマ成分および両方のクロマ成分があるエスケープピクセルについてのすべての3つの色値をシグナリングし得る。これらの例では、ビデオデコーダ30は、現在ブロックのエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。ビデオデコーダ30は、次いで、ビットストリームからパースすべき色値の数の決定に基づいて、ピクセルを復号(たとえば、ピクセルを再構成)し得る。
[0086] 上記の例示的な技法は以下のように要約され得る。これらの例示的な技法は、4:2:2および4:2:0パレットブロックについてのデコーダ観点(すなわち、ビデオデコーダ30の観点)から説明される。この場合、各パレットエントリは色成分(すなわち、3つの色値)からなる。ブロック(たとえば、CU)中の各ピクセルについて、インデックスが決定される(たとえば、復号によって決定される、あるいはコピーインデックスまたはコピーアバブ(copy above)ランの一部であり得る)。ビットストリームシンタックスは、4:4:4の場合、シンタックスと同様である。ピクセルがルーマ成分とクロマ成分の両方からなり、ピクセルインデックスがESCAPEピクセルを示さない場合、対応するパレットエントリのすべての3つの色成分が、予測または再構成のために使用される。ピクセルがルーマ成分のみからなり、ピクセルインデックスがESCAPEピクセルを示さない場合、対応するパレットエントリの第1の色成分のみが、予測または再構成のために使用される。ESCAPEピクセルの場合、ピクセルがルーマ成分のみからなる場合、(場合によっては量子化された)単一の成分値がビットストリームから読み取られる。同様に、ESCAPEピクセルがルーマ成分ならびにクロマ成分からなる場合、(場合によっては量子化された)3つの成分値がビットストリームから読み取られる。
[0087] 上記の例では、ビデオデコーダ30は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかの決定に基づいて、いくつの色値をパレットテーブルから読み取るべきか、またはいくつの色値をビットストリームからパースすべきかを決定し得る。ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかをビデオデコーダ30が決定し得る様々な方法があり得、本開示で説明される技法は1つのそのような技法に限定されない。1つの例示的な方法として、ビデオデコーダ30は、位相整合(phase alignment)に基づいて、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定し得る。
[0088] 図8および図9に関してより詳細に説明されるように、位相整合は、概して、現在ブロックのルーマ成分とクロマ成分との間の関連付けを指す。たとえば、4:2:0サブサンプリングの場合、CU中の4つのピクセルのグループ(たとえば、ピクセルの2×2サブブロック)について、ルーマブロック中にサンプルの2×2サブブロックの対応するグループがあり、それぞれのクロマブロック中に1つのサンプルのみがある。したがって、それぞれのクロマブロック中の1つのサンプルは、ルーマブロックの2×2サブブロック中の4つのピクセルのうちのいずれか1つに対応し得る(たとえば、1つのクロマ成分が4つのルーマ成分に対応する)。
[0089] たとえば、CU中の2×2サブブロックについて、左上、右上、左下、および右下ピクセルがある。位相整合は、クロマブロック中のサンプルが、ルーマブロック中の同じサブブロックである、CU中の2×2サブブロック中の左上、右上、左下、または右下ピクセルに対応するかどうかを示す。ビデオデコーダ30は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定するために、位相整合を利用し得る。この位相整合は、コーディング目的でのみ使用される。クロマサンプルの実際の物理的ロケーションは、位相整合によって示された物理的ロケーションとは異なり得る。クロマロケーションは、偶数の分数ピクセル位置に整合され得る。
[0090] たとえば、クロマブロック中のサンプルはCUの2×2サブブロックの左上ピクセルと整合されると仮定する。この例では、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合は、ルーマブロック中の2×2サブブロックの左上サンプルがクロマブロック中のサンプルに関連付けられることを示す。ビデオデコーダ30が2×2サブブロックの左上ピクセルをパレットモード復号しているとき、ビデオデコーダ30は、パレットテーブルからのすべての3つの色値が取り出されるべきであると決定するか、またはビットストリームからのすべての3つの色値がエスケープピクセルについてパースされるべきであると決定し得る。CUの2×2サブブロックの右上、右下、および左下ピクセルについて、ビデオデコーダ30は、パレットテーブルからの1つの色値のみが取り出されるべきであると決定するか、またはビットストリームからの1つの色値のみがエスケープピクセルについてパースされるべきであると決定し得る。
[0091] 上記の例は、2×2サブブロックの左上ピクセルとの位相整合について説明するが、本開示で説明される技法はそのように限定されず、位相整合は、2×2サブブロックの右上、右下、または左下ピクセルについてのものであり得る。より一般的には、4:2:0サブサンプリングの場合、ある位相整合は、偶数のx座標および偶数のy座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のx座標および偶数のy座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。別の位相整合は、偶数のx座標および奇数のy座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のx座標および奇数のy座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。別の位相整合は、奇数のx座標および偶数のy座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のx座標および偶数のy座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。別の位相整合は、奇数のx座標および奇数のy座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のx座標および奇数のy座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。
[0092] 4:2:2についての位相整合は、クロマブロック中の1つのサンプルごとに現在ブロック中の2つのピクセルがあることを除いて、同様であり得る。4:2:2事例の場合、ある位相整合は、偶数のx座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の偶数のx座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。別の位相整合は、奇数のx座標を有する現在ブロック中のあらゆるピクセルが、クロマブロックと位相整合されることであり得る(たとえば、現在ブロックのルーマ成分とクロマ成分との間の位相整合は、ルーマブロック中の奇数のx座標を有するサンプルが、クロマブロック中のサンプルに対応することを示す)。4:2:2サブサンプリングフォーマットにおけるy座標の値は、水平部分のみが1/2サンプリングされ、垂直部分が同じであるので、関連がないことがある。
[0093] ピクチャについての特定の位相整合がプリセットされ得る。別の例として、ビデオエンコーダ20は、位相整合を示す情報(たとえば、4つの可能な位相整合があるとき4:2:0サブサンプリングについての2ビット値、または2つの可能な位相整合があるとき4:2:2サブサンプリングについての1ビット値)をシグナリングし得る。ビデオデコーダ30は、位相整合を示す信号情報に基づいて位相整合を決定し得る。別の例として、ビデオエンコーダ20およびビデオデコーダ30は、ビデオエンコーダ20が位相整合を明示的に示す必要がなく、位相整合がプリセットされる必要がないように、隣接ブロックのコンテンツ、前のブロックの位相整合など、他のファクタに基づいて位相整合を暗黙的に決定し得る。
[0094] このようにして、ビデオデコーダ30は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するために、ビデオデコーダ30は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
[0095] 単一のパレットテーブルを使用してパレットモード復号し、現在ブロックのルーマ成分と現在ブロックのクロマ成分との位相整合に基づいて、パレットテーブルエントリからすべての3つの色値が取り出されるべきであるのか1つの色値のみが取り出されるべきであるのかを決定するための一例について、上記で説明した。現在ブロックのルーマ成分と現在ブロックのクロマ成分との位相整合に基づいて、エスケープピクセルについてビットストリームから3つの色値がパースされるべきであるのか1つの色値がパースされるべきであるのかを決定することの例についても、上記で説明した。
[0096] ただし、本開示で説明される例示的な技法はそのように限定されない。以下は、追加の例について説明し、上記で説明された例のいくつかを繰り返す。以下の技法は、適用可能なとき、上記のこととともに、または上記のこととは別々に使用され得る。
[0097] いくつかの例では、単一のパレットテーブルを有するのではなく、複数のパレットテーブル(たとえば、すべての3つの色をもつ1つのパレット、ルーマ成分のための1つのパレット、およびクロマ成分のための別のパレット)が使用され得る。パレットテーブル導出は、3つよりも少ない色成分を有するパレットエントリを可能にすることによって、この差分を考慮するために変更され得、たとえば、パレットエントリは、色トリプレット(たとえば、Y、U、V)、色ペア(たとえばU、V)または単一の色(たとえばY)、あるいは任意の他の色の組合せであり得る。ビデオエンコーダ20は、たとえば、0−トリプレット、10−ペア、および11−単一のエントリまたは他の手段を使用して、パレットエントリタイプ、またはパレットエントリ中に含まれる色成分の数を示し得る。この指示によれば、新しいパレットエントリがシグナリングされる場合、ビデオエンコーダ20は、対応する色成分のみをシグナリングし得る。たとえば、エントリがペアである場合、2つの新しい色成分のみが新しいパレットエントリとしてシグナリングされる。
[0098] より特定の場合、パレットエントリは、2つのタイプ、すなわち、トリプレットおよび単一の成分のもののみであり得、ビデオエンコーダ20は、エントリタイプを示すための1ビットフラグをシグナリングし得る。いくつかの例示的な技法が、この特定の場合のために説明されるが、(トリプレットまたは単一のエントリよりも多くのエントリを使用する)より一般的な手法が、本開示の範囲内で考慮されるべきである。
[0099] トリプレット(triplet)、ペア、または単一の成分などの同様のエントリが、パレット予測子リスト(palette predictor list)中で使用され得る。代替または追加として、パレット予測子リストは常にトリプレットからなることができる。ペアおよび単一の成分エントリは、対応する色のみをおそらく使用することによってトリプレットから予測され得る。たとえば、単一の成分エントリがトリプレット(A、B、C)から予測される場合、単一の成分パレットエントリの対応する成分値はAに等しい。この例はまた、(たとえば、パレット予測子リストを使用して)単一のパレットを導出するための方法として、単一のパレットを使用することの上記の例に適用可能である。
[0100] いくつかの例では、トリプレットおよび単一の成分パレットエントリのために別個のパレットおよびパレット予測子リストが維持される。この場合、ビデオエンコーダ20は、それぞれ、トリプレットおよび単一の成分パレットエントリのためにパレット予測子再利用フラグおよび新しいパレットエントリを、別々にシグナリングし得る。
[0101] パレットインデックスは、ブロック中のピクセルを予測する(または表す)ために使用されるパレットエントリを示すために使用され得、パレットエントリに関連付けられた(1つまたは複数の)色は、ビデオデコーダ30の段においてピクセルに割り当てられ得る。
[0102] パレットインデックス付けの場合、パレットテーブル導出のための上記の説明の代替または追加として、パレットエントリ中のすべての色が、ブロック中の特定のピクセルを予測するために使用されるとは限らないが、パレットエントリはトリプレットのみからなり得る。本開示で説明される技法では、ビデオエンコーダ20およびビデオデコーダ30は、ブロック内のピクセル位置およびクロマ色フォーマット(たとえば、位相整合)に従って、あるピクセルを予測する(表す)のに必要な色の数を導出し得る。たとえば、4:2:0クロマ色フォーマットでは、4つのルーマサンプルは1つの対応するクロマペア(UおよびV)を有し、すなわち、あらゆる第2の行およびあらゆる第2の列は3つの色成分を有するピクセルを有し得、すべての他のピクセルはルーマ成分のみを有する。したがって、一例では、クロマサンプルは、行インデックスと列インデックスの両方が偶数であるときに存在し得る。同様に、クロマサンプルとのルーマサンプルの異なる整合が可能である。したがって、パレットインデックスは、最初に、パレットテーブル中の3つの色成分を示し得る。特定のピクセル位置がルーマサンプルのみを有する場合、トリプレットの第1の色成分のみが、ピクセルを予測する(表す)ために使用され得る。
[0103] 同様の方法で、COPY_INDEX_MODEまたはCOPY_ABOVE_MODEを用いてコーディングされたピクセルのグループについて、コピーすべき色成分の数が、ピクセル位置とクロマ色フォーマットとに基づいて導出され得る。パレットモードのラン値は、モード内でのルーマピクセルの連続の長さ(すべてのルーマサンプルが、対応するクロマサンプルを有するとは限らない)、または、概してより完全な色成分の長さを示し得る。
[0104] ピクセルがESCAPEピクセルである(すなわち、色値が明示的にシグナリングされる)場合、シグナリングされるべき色の数は、ピクセル位置とクロマ色フォーマットとに基づいて導出され得る。したがって、ピクセル位置がクロマサンプルを有しない場合、ルミナンス値のみが、エスケープピクセルについてコーディングされる。
[0105] パレットテーブルは、ルーマサンプルの数がクロマサンプルの数の4倍であり、精度に関して、より多くの重みが、ルーマ成分に割り当てられ得ることを考慮に入れることによって、導出され得る。しかしながら、パレット導出の1つの方法のみを有する必要がある場合、パレットテーブルは、クロマピクセルに一致するようにルーマ成分をサブサンプリングすることによって、またはルーマサンプルの数に一致するようにクロマ成分をアップサンプリングすることによって、4:4:4パレット導出方法を使用することによって導出され得る。
[0106] 色固有パレット(color specific palette)およびパレット予測子の場合、ピクセルが異なる数の関連付けられた色成分を有するとき、パレットエントリのタイプごとに別個のパレットテーブルが維持され得る。たとえば、トリプレット専用エントリおよび単一のエントリを有する2つのパレットテーブルが使用され得る。あるピクセルのために使用されるべきパレット成分の数は、ピクセル位置とクロマ色フォーマットとに従って導出され得、色成分は、パレットインデックスに従って、導出されたパレットテーブルタイプから選択(select)され得る。ラン値は、一般にルーマ(luma)である、より長い色成分に対応し得る。
[0107] たとえば、ピクセルのグループがCOPY_INDEX_MODEを用いてコーディングされる場合、ビデオエンコーダ20はパレットインデックスおよびラン値をシグナリングし得、ビデオデコーダ30はそれらを受信し得る。シグナリングされたラン値内のあらゆるルーマピクセルについて、ビデオデコーダ30は、最初にピクセルに関連付けられた色成分の数(すなわち、それがトリプレットエントリであるのか単一のエントリであるのか)を導出し得る。次いで、ビデオデコーダ30は、対応するパレットテーブルから(1つまたは複数の)色の適切な数を選択し得る。
[0108] パレット予測子は、トリプレットベースのみであり得るか、または、パレットエントリタイプに従って分離され、別々に維持され得る。パレット予測子がトリプレットのみからなる場合、およびパレットエントリがパレット予測子から予測されるとき、必要とされる色のみがコピーされる。
[0109] 代替または追加として、パレットテーブルは、ピクセルタイプ(たとえば、トリプレットまたは単一のエントリ)に従って分離され得るが、テーブルは、依然としてトリプレットを有し得、必要とされる色のみが、ピクセルタイプに従って使用され得る。この場合、すべてのエントリはトリプレットベースであるので、共通パレット予測子(common palette predictor)は、単に、すべての使用されるエントリから構成され得る。
[0110] 波面同期(wavefront synchronization)では、波面並列処理(WPP:wavefront parallel processing)が可能にされる場合、最後のパレットコードディングされたブロックのパレット予測子およびパレットサイズは、次のコーディングツリーユニット(CTU)行同期の目的で、CTU行中のあらゆる第2のCTUの終わりに記憶される。パレットまたはパレット予測子が、エントリタイプに従って分離される場合、最後のパレットコードディングされたブロックのパレット予測子の各タイプおよび/またはパレットサイズの各タイプは、WPP同期のために記憶される必要があり得る。
[0111] 以下は、理解をさらに支援するためのいくつかの例示的な態様について説明する。これらの例は、別々に、または、任意の組合せで一緒に適用され得る。1つの例示的な技法は、各パレットエントリが3つの色値を含む、上記で説明されたものであり、ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかに基づいて、取り出すべき色値の数を決定する。ビデオデコーダ30はまた、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかに基づいて、エスケープピクセルについてビットストリームからパースすべき色値の数を決定し得る。
[0112] 上記で説明されたように、ビデオエンコーダ20およびビデオデコーダ30は、ピクセルがルーマ成分およびクロマ成分を含むのか、ルーマ成分を含み、クロマ成分を含まないのかを決定するために、位相整合情報を使用し得る。ビデオエンコーダ20は、パラメータセット(たとえば、シーケンスパラメータセット(SPS:sequence parameter set)またはピクチャパラメータセット(PPS))、スライスヘッダ中の位相整合情報をシグナリングし得、ビデオデコーダ30はそれを受信し得るか、または、位相整合を伝達するために、ビデオユーザビリティ情報(VUI:video usability information)が使用され得る。たとえば、トリプレットのみがパレットテーブル中で使用される場合、異なる位相整合を示すためにSPSまたはPPSあるいはスライスヘッダ中のシンタックス要素を使用することが提案される。代替または追加として、VUIが、そのような情報を伝達するために使用され得る。
[0113] たとえば、図8では、ルーマピクセル位置A、C、I、およびKは、3つの色成分(たとえば、ルーマ成分および2つのクロマ成分)を有すると見なされ、ルーマピクセル位置の残りは、単一の色成分を有する(たとえば、ルーマ成分を有し、クロマ成分を有しない)と見なされる。別の例では、図9に示されているように、ロケーションにおけるルーマピクセル位置E、G、M、およびOは、3つの色成分(たとえば、ルーマ成分および2つのクロマ成分)を有すると見なされ、ルーマピクセル位置の残りは、単一の色成分を有する(たとえば、ルーマ成分を有し、クロマ成分を有しない)と見なされる。
[0114] したがって、そのような差分事例を示すためのシンタックス要素(たとえば、位相整合を示すためのシンタックス要素)が提案される。たとえば、要素が「00」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置A、C、I、Kが使用される。要素が「01」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置B、D、J、Lが使用される。要素が「10」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置E、G、M、Oが使用される。要素が「11」に等しいとき、クロマピクセル値を導出するために、ルーマピクセル位置F、H、N、Pが使用される。
[0115] 上記の例では、クロマピクセル値を導出するために、1つのルーマ位置のみが使用される。ただし、本開示で説明される技法はそのように限定されない。別の例では、ビデオエンコーダ20およびビデオデコーダ30は、クロマピクセル値を導出するために2つ以上のルーマ位置を使用し得る。たとえば、図9では、ビデオエンコーダ20またはビデオデコーダ30がルーマ位置A、B、E、Fについてのインデックスを得た後、これらのインデックス値は、パレットテーブルを使用して4色トリプレットにマッピングされ得る。したがって、4つのクロマペア(たとえば、ルーマ位置Aについての2つのクロマ色値、ルーマ位置Bについての2つのクロマ色値、ルーマ位置Eについての2つのクロマ色値、およびルーマ位置Fについての2つのクロマ色値)がある。
[0116] 一例では、ビデオエンコーダ20およびビデオデコーダ30は、これらの4つのクロマペアの平均値を、再構成済みクロマピクセル値として使用し得る。代替または追加として、ビデオエンコーダ20およびビデオデコーダ30は、2つまたは3つのクロマペアを選択し、それらの平均を、再構成済みクロマピクセル値として使用し得る。代替または追加として、ビデオエンコーダ20およびビデオデコーダ30は、これらの4つのクロマペアを4タップフィルタに使用し、フィルタ処理されたピクセル値を、再構成済みクロマピクセル値として使用し得る。
[0117] 別の例では、4:4:4パレットモードでは、COPY_ABOVE_MODEの場合、現在ピクセルは、それの上のネイバーピクセルと同じ色トリプレットを共有する。非4:4:4モードでは、すべての3つの成分を有するピクセル位置について、クロマ成分をコピーするために、ビデオエンコーダ20およびビデオデコーダ30は、すべての3つの成分を有する、現在ピクセル位置の上の最も近い位置からクロマ成分をコピーし得る。
[0118] たとえば、図8では、ルーマ位置Kがコピーアバブモード(copy above mode)にある場合、Gからインデックスをコピーし、パレットテーブルをルックアップすることによって対応するクロマ成分値を得る代わりに、ビデオデコーダ30は位置Cのクロマ成分をコピーする。
[0119] 図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0120] ビデオエンコーダ20は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ20は、パレットモードを利用する現在ブロックをコーディングするように構成され得、ここにおいて、対応するクロマブロックのサイズは、対応するルーマブロックのサイズとは異なる。
[0121] 図2の例では、ビデオエンコーダ20は、予測処理ユニット(prediction processing unit)100と、ビデオデータメモリ(video data memory)101と、残差生成ユニット(residual generation unit)102と、変換処理ユニット(transform processing unit)104と、量子化ユニット(quantization unit)106と、逆量子化ユニット(inverse quantization unit)108と、逆変換処理ユニット(inverse transform processing unit)110と、再構成ユニット(reconstruction unit)112と、フィルタユニット(filter unit)114と、復号ピクチャバッファ(decoded picture buffer)116と、エントロピー符号化ユニット(entropy encoding unit)118とを含む。予測処理ユニット100は、インター予測処理ユニット(Inter-prediction processing unit)120と、イントラ予測処理ユニット(intra-prediction processing unit)126とを含む。インター予測処理ユニット(Inter-prediction processing unit)120は、動き推定ユニットと、動き補償ユニット(motion compensation unit)とを含む(図示せず)。ビデオエンコーダ20は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース符号化ユニット(palette-based encoding unit)122をも含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0122] ビデオデータメモリ101は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ101に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同期(synchronous)DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗(magnetoresistive)RAM(MRAM)、抵抗性(resistive)RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ101は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0123] ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20はビデオデータのピクチャのスライス中の各CTUを符号化し得る。CTUの各々は、等しいサイズのルーマコーディングツリーブロック(CTB:coding tree block)と、ピクチャの対応するCTBとに関連付けられ得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために4分木区分を実行し得る。より小さいブロックはCUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分し、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブブロックに区分し得、以下同様である。
[0124] ビデオエンコーダ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サイズに対する非対称区分をもサポートし得る。
[0125] インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUのための予測データを生成し得る。PUのための予測データは、PUの予測ブロックとPUのための動き情報とを含み得る。インター予測ユニット121は、PUがIスライス中にあるのか、Pスライス中にあるのか、Bスライス中にあるのかに応じて、CUのPUに対して異なる動作を実行し得る。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測ユニット121はPUに対してインター予測を実行しない。したがって、Iモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間予測を使用して形成される。
[0126] PUがPスライス中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUの参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索し得る。PUのための参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含んでいる、参照ピクチャ内の領域であり得る。動き推定ユニットは、PUのための参照領域を含んでいる参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニットは、PUのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMVを生成し得る。たとえば、MVは、現在の復号ピクチャ中の座標から参照ピクチャ中の座標までのオフセットを与える2次元ベクトルであり得る。動き推定ユニットは、PUの動き情報として、参照インデックスとMVとを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、PUの予測ブロックを生成し得る。
[0127] PUがBスライス中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUについての単予測または双予測を実行し得る。PUについての単予測を実行するために、動き推定ユニットは、PUのための参照領域についてRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索し得る。動き推定ユニットは、PUの動き情報として、参照領域を含んでいる参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMVと、参照ピクチャがRefPicList0中にあるのかRefPicList1中にあるのかを示す1つまたは複数の予測方向インジケータとを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成し得る。
[0128] PUについての双方向インター予測を実行するために、動き推定ユニットは、PUのための参照領域についてRefPicList0中の参照ピクチャを探索し得、PUのための別の参照領域についてRefPicList1中の参照ピクチャをも探索し得る。動き推定ユニットは、参照領域を含んでいる参照ピクチャのRefPicList0およびRefPicList1中の位置を示す参照ピクチャインデックスを生成し得る。さらに、動き推定ユニットは、参照領域に関連付けられた参照ロケーションとPUのサンプルブロックとの間の空間変位を示すMVを生成し得る。PUの動き情報は、PUの参照インデックスとMVとを含み得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成し得る。
[0129] 本開示の様々な例によれば、ビデオエンコーダ20は、パレットベースコーディングを実行するように構成され得る。HEVCフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得る。したがって、CUモードのコンテキストにおいて(本開示全体にわたって)本明細書で説明される開示されるプロセスのすべてが、追加または代替として、PUに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
[0130] パレットベース符号化ユニット122は、たとえば、パレットベース符号化モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース符号化を実行し得る。たとえば、パレットベース符号化ユニット122は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。様々な機能が、パレットベース符号化ユニット122によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
[0131] 本開示の態様によれば、パレットベース符号化ユニット122は、図4〜図7に関して以下で説明されるか、または他の方法で本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。一例として、パレットベース符号化ユニット122は、現在ブロックについてのパレットテーブルを導出し、そのパレットテーブルをビデオデータメモリ101に記憶し得る。いくつかの場合には、パレットベース符号化ユニット122は、パレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されないである(たとえば、ピクセルがエスケープピクセルである)と決定し得る。この例では、パレットベース符号化ユニット122は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。たとえば、パレットベース符号化ユニット122は、ルーマ成分とクロマ成分との位相整合を決定し、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
[0132] パレットベース符号化ユニット122は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定し得、ビデオエンコーダ20は、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングし得る。この場合、ピクセルは、このピクセルについてのルーマおよび/またはクロマ値がパレット中にないことを意味するエスケープピクセルである。ルーマ/クロマ値がパレット中にある場合、ビデオエンコーダ20は、パレットインデックスをシグナリングするであろう。
[0133] 一例として、パレットベース符号化ユニット122は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、3つの色値が、エスケープピクセルについてビットストリーム中でシグナリングされるべきであると決定し得る。この例では、ビデオエンコーダ20は、ビデオデコーダ30が、現在ブロックを再構成するために使用するエスケープピクセルについての3つの色値をシグナリングする。別の例として、パレットベース符号化ユニット122は、現在ブロック中のエスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリーム中でシグナリングされるべきであると決定し得る。この例では、ビデオエンコーダ20は、ビデオデコーダ30が、エスケープピクセルを再構成するために使用するピクセルについての1つの色値のみをシグナリングする。
[0134] イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUのための予測データを生成し得る。PUのための予測データは、PUのための予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行し得る。
[0135] PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PUのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット126は、PUのための予測ブロックを生成するために隣接PUのサンプルブロックからのサンプルを使用し得る。隣接PUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば、様々な方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存し得る。
[0136] 予測処理ユニット100は、PUのためにインター予測処理ユニット120によって生成された予測データ、またはPUのためにイントラ予測処理ユニット126によって生成された予測データの中からCUのPUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリックに基づいて、CUのPUのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
[0137] 残差生成ユニット102は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックと、CUのPUの選択された予測ルーマブロック、予測Cbブロックおよび予測Crブロックとに基づいて、CUのルーマ残差ブロック、Cb残差ブロックおよびCr残差ブロックを生成し得る。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルが、CUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成し得る。
[0138] 変換処理ユニット104は、CUに関連付けられた残差ブロックをCUのTUに関連付けられた変換ブロックに区分するために、4分木区分を実行し得る。したがって、TUは、ルーマ変換ブロックと2つのクロマ変換ブロックとに関連付けられ得る。CUのTUのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差4分木」(RQT:residual quad-tree)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
[0139] 変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUのための変換係数ブロックを生成し得る。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
[0140] 量子化ユニット106は、係数ブロック中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度(bit depth)を低減し得る。たとえば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられることがあり、ここで、nはmよりも大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP:quantization parameter)値に基づいて、CUのTUに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得、したがって、量子化変換係数は、量子化の前の元の変換係数よりも低い精度を有し得る。
[0141] 逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット112は、TUに関連付けられた再構成済み変換ブロックを生成するために、再構成済み残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにCUの各TUについて変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコーディングブロックを再構成し得る。
[0142] フィルタユニット114は、CUに関連付けられたコーディングブロック内のブロッキングアーティファクト(blocking artifact)を低減するために1つまたは複数のデブロッキング演算(deblocking operation)を実行し得る。復号ピクチャバッファ116は、フィルタユニット114が、再構成済みコーディングブロックに対して1つまたは複数のデブロッキング演算を実行した後、再構成済みコーディングブロックを記憶し得る。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構成済みコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット126は、CUと同じピクチャの中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116中の再構成済みコーディングブロックを使用し得る。
[0143] エントロピー符号化ユニット118は、ビデオエンコーダ20の他の機能構成要素からデータを受信し得る。たとえば、エントロピー符号化ユニット118は、量子化ユニット106から係数ブロックを受信し得、予測処理ユニット100からシンタックス要素を受信し得る。エントロピー符号化ユニット118は、エントロピー符号化データを生成するために、データに対して1つまたは複数のエントロピー符号化演算を実行し得る。たとえば、エントロピー符号化ユニット118は、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)演算、CABAC演算、可変対可変(V2V:variable-to-variable)長コーディング演算、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)演算、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング演算、指数ゴロム符号化演算(Exponential-Golomb encoding operation)、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、CUのためのRQTを表すデータを含み得る。
[0144] 図3は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図3は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0145] ビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオデコーダ30は、パレットモードを利用する現在ブロックをコーディングするように構成され得、ここにおいて、対応するクロマブロックのサイズは、対応するルーマブロックのサイズとは異なる。
[0146] 図3の例では、ビデオデコーダ30は、エントロピー復号ユニット(entropy decoding unit)150と、ビデオデータメモリ151と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。ビデオデコーダ30は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース復号ユニット(palette-based decoding unit)165をも含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0147] ビデオデータメモリ151は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリーム(encoded video bitstream)などのビデオデータを記憶し得る。ビデオデータメモリ151に記憶されるビデオデータは、たとえば、コンピュータ可読媒体16から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB:coded picture buffer)を形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ151は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0148] ビデオデータメモリ151中のコード化ピクチャバッファ(CPB)は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信し、記憶し得る。エントロピー復号ユニット150は、CPBから符号化ビデオデータ(たとえば、NALユニット)を受信し、シンタックス要素を復号するためにNALユニットをパースし得る。エントロピー復号ユニット150は、NALユニット中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
[0149] ビットストリームのNALユニットはコード化スライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたPPSを識別するシンタックス要素を含み得る。
[0150] ビットストリームからシンタックス要素を復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成演算(reconstruction operation)を実行し得る。区分されていないCUに対して再構成演算を実行するために、ビデオデコーダ30はCUの各TUに対して再構成演算を実行し得る。CUの各TUに対して再構成演算を実行することによって、ビデオデコーダ30はCUの残差ブロックを再構成し得る。
[0151] CUのTUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化(inverse quantize)、すなわち、量子化解除(de-quantize)し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。
[0152] 逆量子化ユニット154が係数ブロックを逆量子化した後、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
[0153] イントラ予測を使用してPUが符号化される場合、イントラ予測処理ユニット166は、PUのための予測ブロックを生成するためにイントラ予測を実行し得る。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいてPUのための予測ルーマブロック、予測Cbブロックおよび予測Crブロックを生成するためにイントラ予測モードを使用し得る。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいてPUのためのイントラ予測モードを決定し得る。
[0154] 予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構成し得る。さらに、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150はPUのための動き情報を抽出し得る。動き補償ユニット164は、PUの動き情報に基づいて、PUのための1つまたは複数の参照領域を決定し得る。動き補償ユニット164は、PUのための1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUのための予測ルーマブロック、予測Cbブロックおよび予測Crブロックを生成し得る。
[0155] 再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、適用可能なとき、CUのTUに関連付けられたルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロックおよび予測Crブロック、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックのサンプルを、予測ルーマブロック、予測Cbブロックおよび予測Crブロックの対応するサンプルに加算し得る。
[0156] フィルタユニット160は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。ビデオデコーダ30は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162中のルーマブロック、Cbブロック、およびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行し得る。
[0157] 本開示の様々な例によれば、ビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。パレットベース復号ユニット165は、たとえば、パレットベース復号モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース復号ユニット165は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。様々な機能が、パレットベース復号ユニット165によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
[0158] パレットベース復号ユニット165は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実行し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット152は、たとえば、HEVCインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、HEVCコーディングプロセスに従って生成されるCUまたはPUであり得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの1つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
[0159] 本開示の態様によれば、パレットベース復号ユニット165は、図4〜図7に関して以下で説明されるか、または他の方法で本開示で説明されるパレットコーディングのための技法の任意の組合せを実行するように構成され得る。たとえば、パレットベース復号ユニット165は、ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出し得る。ビデオデータメモリ151は、3つの色値を有するエントリを含むパレットテーブルを記憶し得る。
[0160] パレットベース復号ユニット165は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。たとえば、パレットベース復号ユニット165は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。パレットベース復号ユニット165は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
[0161] いくつかの例では、パレットベース復号ユニット165は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定し得る。パレットベース復号ユニット165は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、3つの色値がパレットテーブルから取り出されるべきであると決定する。パレットベース復号ユニット165は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、3つの色値のうちの単一の色値のみがパレットテーブルから取り出されるべきであると決定する。概して、ビデオデコーダ30は、パレットテーブル中への1つのエントリを識別する単一のインデックスを受信し得る。パレットベース復号ユニット165は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブル中への識別されたエントリから取り出すべき色値の数を決定し得る。
[0162] パレットベース復号ユニット165は、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号し得る。たとえば、ピクセルがルーマ成分およびクロマ成分を含むとパレットベース復号ユニット165が決定した場合、パレットベース復号ユニット165は、パレットテーブルから3つの色値を取り出し、3つの色値の各々をピクセルのそれぞれのルーマ成分およびクロマ成分に割り当て得る。ピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないとパレットベース復号ユニット165が決定した場合、パレットベース復号ユニット165は、パレットテーブルから単一の色値(たとえば、3つの色値のうちの第1の識別された色値(identified color value))を取り出し、単一の色値をピクセルのルーマ成分に割り当て得る。
[0163] 上記の例では、現在ブロックのピクセルは、パレットテーブル中の1つまたは複数の色値に基づいて復号された。しかしながら、いくつかの例では、現在ブロック中のピクセルは、パレットテーブルに基づいて復号されないことがある(たとえば、エスケープピクセル)。そのような例では、パレットベース復号ユニット165は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
[0164] パレットベース復号ユニット165は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。たとえば、パレットベース復号ユニット165は、現在ブロック中のエスケープピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、(場合によっては量子化された)3つの色値がビットストリームからパースされるべきであると決定し得る。別の例として、パレットベース復号ユニット165は、現在ブロック中のエスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、(場合によっては量子化された)単一の色値のみがビットストリームからパースされるべきであると決定し得る。
[0165] エスケープピクセルについて、パレットベース復号ユニット165は、ビットストリームからパースすべき色値の決定された数に基づいて、エスケープピクセルを復号し得る。エスケープピクセルがルーマ成分およびクロマ成分を含む場合、パレットベース復号ユニット165は、(場合によっては量子化された)3つの色値をパースし、それぞれの色値をルーマ成分および2つのクロマ成分に割り当て得る。エスケープピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まない場合、パレットベース復号ユニット165は、(場合によっては量子化された)1つの色値のみをパースし、その色値をルーマ成分に割り当て得る。
[0166] 図4は、ビデオデータをコーディングするためのパレットを決定することの一例を示す概念図である。図4の例は、第1のパレット184に関連付けられる第1のコーディングユニット(CU)180と第2のパレット192に関連付けられる第2のCU188とを有するピクチャ178を含む。第1のCU180および第2のCU188は、パレットモード(PAL)を使用してコーディングされる。以下でより詳細に説明されるように、第2のパレット192は第1のパレット184に基づく。ピクチャ178は、イントラ予測コーディングモードを用いてコーディングされるブロック196と、インター予測コーディングモードを用いてコーディングされるブロック200とをも含む。
[0167] スクリーンコンテンツビデオの特性に基づいて、パレットコーディングは、ドキュメントJCTVC−M0323(「Palette Mode for Screen Content Coding」、L.Guoら、JCTVC−M0323、Incheon、KR、2013年4月18〜26日)において第1に提案されたSCC効率を改善するために導入され、その内容全体は参照により本明細書に組み込まれる。詳細には、パレットコーディングは、SCCにおいて、1つのCU内の色が、通常、数個のピーク値に集中するという事実に基づいて繰返しピクセル値を圧縮するために、ルックアップテーブル、すなわち、カラーパレットを導入する。特定のCUのためのパレットを仮定すれば、CU内のピクセルは、パレットインデックスにマッピングされる。第2の段では、インデックスブロックの繰返しパターンを効果的に圧縮するために、コピーフロムレフト(copy from left)ランレングス技法が提案される。ドキュメントJCTVC−N0249(「Non-RCE3: Modified Palette Mode for Screen Content Coding」、Guoら、JCTVC−N0249、Vienna、AT、2013年7月25日〜8月2日)では、パレットインデックスコーディングモードは、ランレングスコーディングを用いたコピーフロムレフトとコピーフロムアバブ(copy from above)の両方を可能にするために一般化された。いくつかの事例では、変換プロセスが、シャープエッジを不鮮明にすることを回避するためにパレットコーディングのために呼び出されず、これがスクリーンコンテンツの視覚的品質に悪影響を与えることに留意されたい。
[0168] 概して、パレットは、(インデックス、ピクセル値)ペアを記憶するデータ構造である。設計されたパレットは、たとえば、現在CU中のピクセル値のヒストグラムによって、ビデオエンコーダ20において決定され得る。たとえば、ヒストグラム中のピーク値はパレット中に追加されるが、低度数ピクセル値はパレット中に含まれない。
[0169] 図4の技法は、ビデオエンコーダ20(図1および図2)とビデオデコーダ30(図1および図3)のコンテキストにおいて、説明の目的でHEVCビデオコーディング規格に関して、説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび/または規格において他のビデオコーディングプロセッサおよび/またはデバイスによって適用され得ることを、理解されたい。
[0170] 概して、パレットは、現在コーディングされているCU、図4の例ではCU180について支配的な(dominant)、および/または代表的な(representative)、いくつかのピクセル値を指す。第1のパレット184および第2のパレット192は、複数のパレットを含むものとして示されている。いくつかの例では、本開示の態様によれば、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、CUの各色成分について別々にパレットをコーディングし得る。たとえば、ビデオエンコーダ20は、CUのルーマ(Y)成分のためのパレットと、CUのクロマ(U)成分のための別のパレットと、CUのクロマ(V)成分のためのまた別のパレットとを符号化し得る。この例では、YパレットのエントリはCUのピクセルのY値を表し得、UパレットのエントリはCUのピクセルのU値を表し得、VパレットのエントリはCUのピクセルのV値を表し得る。
[0171] 他の例では、ビデオエンコーダ20は、CUのすべての色成分について単一のパレットを符号化し得る。この例では、ビデオエンコーダ20は、Yiと、Uiと、Viとを含む、トリプル値であるi番目のエントリを有するパレットを符号化し得る。この場合、パレットは、ピクセルの成分の各々についての値を含む。したがって、複数の個々のパレットを有するパレットのセットとしてのパレット184および192の表現は、一例にすぎず、限定することは意図されない。
[0172] 図4の例では、第1のパレット184の各々は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ202〜206を含む。エントリ202〜206は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Cを含むピクセル値に、インデックス値を関係付ける。本明細書で説明されるように、第1のCU180の実際のピクセル値をコーディングするのではなく、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、インデックス1〜3を使用してブロックのピクセルをコーディングするためにパレットベースコーディングを使用し得る。すなわち、第1のCU180の各ピクセル位置について、ビデオエンコーダ20はピクセルについてのインデックス値を符号化し得、インデックス値は、第1のパレット184のうちの1つまたは複数の中のピクセル値に関連付けられる。ビデオデコーダ30は、ビットストリームからインデックス値を取得し、インデックス値と第1のパレット184のうちの1つまたは複数とを使用してピクセル値を再構成し得る。したがって、第1のパレット184は、パレットベース復号におけるビデオデコーダ30による使用のために、符号化ビデオデータビットストリーム中でビデオエンコーダ20によって送信される。
[0173] いくつかの例では、パレットの1つまたは複数のエントリは、別のパレット(たとえば、コーディング中に前に使用されたパレット)から予測され得る。たとえば、パレットは、予測子パレットからコピーされるエントリを含み得る。予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成済みサンプルからのパレットエントリを含み得る。予測子パレット中の各エントリについて、そのエントリが現在パレット(current palette)にコピーされる(フラグ=1によって示される)かどうかを示すために、バイナリフラグがビットストリーム中に含まれ得る。それぞれのパレットエントリのための一連のバイナリフラグは、バイナリパレット予測ベクトル(binary palette prediction vector)と呼ばれることがある。さらに、現在パレットは、明示的にシグナリングされる新しいエントリを含み得る。新しいエントリの数もシグナリングされ得る。
[0174] 図4の例では、ビデオエンコーダ20およびビデオデコーダ30は、第1のパレット184に基づいて第2のパレット192を決定し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数のブロックの位置を特定し得、そのブロックから、予測パレット、この例では第1のパレット184が決定される。図4に示されている例など、いくつかの例では、ビデオエンコーダ20および/またはビデオデコーダ30は、第2のCU188のための予測パレットを決定するとき、左の隣接CU(第1のCU180)など、前にコーディングされたCUの位置を特定し得る。
[0175] 図4の例では、第2のパレット192は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ208〜212を含む。エントリ208〜212は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Cを含むピクセル値に、インデックス値を関係付ける。この例では、ビデオエンコーダ20は、第1のパレット184のどのエントリが第2のパレット192中に含まれるかを示す1つまたは複数のシンタックス要素をコーディングし得る。図4の例では、1つまたは複数のシンタックス要素は、ベクトル216として示される。ベクトル216は、いくつかの関連するビン(またはビット)を有し、各ビンは、そのビンに関連付けられたパレット予測子が現在パレットのエントリを予測するために使用されるかどうかを示す。たとえば、ベクトル216は、第1のパレット184の最初の2つのエントリ(202および204)が、第2のパレット192中に含まれる(ベクトル216中の「1」の値)が、第1のパレット184の第3のエントリが、第2のパレット192中に含まれない(ベクトル216中の「0」の値)ことを示す。図4の例では、ベクトルは、ブールベクトル(Boolean vector)である。
[0176] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレット予測を実行するとき、(パレット予測子テーブルと呼ばれることもある)パレット予測子リストを決定し得る。パレット予測子リストは、現在ブロックをコーディングするためのパレットの1つまたは複数のエントリを予測するために使用される1つまたは複数の隣接ブロックのパレットからのエントリを含み得る。ビデオエンコーダ20およびビデオデコーダ30は、同様の方法でリストを構成し得る。ビデオエンコーダ20およびビデオデコーダ30は、パレット予測子リストのどのエントリが現在ブロックをコーディングするためのパレット中に含まれるべきかを示すために、(ベクトル216などの)データをコーディングし得る。
[0177] 図5に、パレット予測の一例を示す。たとえば、SCCについて、1つのスライス内のCUブロックは多くの支配的な色(dominant color)を共有し得る。したがって、図4に関して上述したように、(CU復号順序での)前のパレットモードCUのパレットを参照として使用して、現在ブロックのパレットを予測することが可能であり得る。詳細には、0〜1バイナリベクトルが、参照パレット(reference palette)中のピクセル値が現在パレットによって再利用されるか否かを示すためにシグナリングされ得る。一例として、図5では、参照パレットが6つの項目を有すると仮定される。ベクトル(1,0,1,1,1,1)が現在パレットを用いてシグナリングされ得、これは、v0、v2、v3、v4、およびv5は現在パレット中で再利用されるが、v1は再利用されないことを示す。現在パレットが参照パレットから予測可能でない色を含んでいる場合、予測されない色の数がコーディングされ、次いで、これらの色は直接シグナリングされ得る。たとえば、図5では、u0およびu1が、ビットストリーム中で直接シグナリングされ得る。
[0178] 図6は、ピクセルのブロックについてのパレットへのインデックスを決定することの一例を示す概念図である。たとえば、現在のHEVCスクリーンコンテンツコーディングテストモデル2(SCM2:Screen Content Coding Test Model 2)参照ソフトウェアでは、規範的観点からの、パレットコーディングの2つの主要な態様は、パレットモードでコーディングされているブロック中の各サンプルについての、パレットのコーディングおよびパレットインデックスのコーディングである。上述のように、パレットインデックスのコーディングは、インデックスモードとコピーフロムアバブモードとを含む、2つの主要なモードを使用して実行され得る。インデックスモードでは、たとえば、パレットインデックスが最初にシグナリングされ得る。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各構成要素についてのサンプル値または量子化サンプル値がシグナリングされる。コピーフロムアバブモードでは、現在のピクセルを含む後続のm個のピクセルが、それぞれ、すぐ上のそれらのネイバーとしてパレットインデックスを共有することを示すために、非負ランレングス値m−1のみが送信され得る。
[0179] いくつかの例では、特定のブロックのためのパレットモードが、palette_modeフラグを使用してシグナリングされ得る。上述のように、インデックスモードはまた、エスケープサンプル、すなわち、パレットに属さないサンプルを示すために使用される。現在の設計では、コピーフロムアバブモードは、パレットブロックの第1の行のために可能でない。さらに、コピーフロムアバブモードは、別のコピーフロムアバブモードに続かないことがある。これらの場合、インデックスモードが推論される。
[0180] 現在の設計では、パレットモードはCUレベルでシグナリングされるが、それをPUレベルでシグナリングすることが可能であり得る。現在ブロック中のエスケープサンプルの存在を示すために、フラグ、palette_esc_val_present_flagもシグナリングされ得る。異なる方法でパレットモードをシグナリングすることも可能である。たとえば、ドキュメントJCTVC−P0231(W.Pu、F.Zou、M.Karczewicz、およびR.Joshi、「Non-RCE4: Refinement of the palette in RCE4 Test 2」、JCTVC−P0231)では、現在のサンプルがエスケープサンプルであったかどうかを示すために明示的フラグを使用することが提案された。現在のサンプルが非エスケープであった場合、パレットモードがコピーフロムアバブモードであったのかインデックスモードであったのかを示すために、別のフラグがシグナリングされた。
[0181] 図6の例は、インデックス値に関連付けられたピクセルのそれぞれの位置をパレット244のエントリに関係付ける、インデックス値(値1、2、および3)のマップ240を含む。マップ240は、各ピクセル位置についてのインデックス値を含むものとして図6の例に示されているが、他の例では、すべてのピクセル位置が、ピクセル値をパレット244のエントリに関係付けるインデックス値に関連付けられ得るとは限らないことを理解されたい。すなわち、上述のように、いくつかの例では、ビデオエンコーダ20は、ピクセル値がパレット244中に含まれない場合、マップ240中の位置についての実際のピクセル値(またはそれの量子化バージョン)の指示を符号化し得る(および、ビデオデコーダ30は、符号化ビットストリームからその指示を取得し得る)。
[0182] いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、どのピクセル位置がインデックス値に関連付けられるかを示す追加のマップをコーディングするように構成され得る。たとえば、マップ中の(i,j)のエントリがCUの(i,j)の位置に対応すると仮定する。ビデオエンコーダ20は、エントリが、関連付けられたインデックス値を有するかどうかを示す、マップの各エントリ(すなわち、各ピクセル位置)のための1つまたは複数のシンタックス要素を符号化し得る。そのような例では、ビデオエンコーダ20はまた、パレット中の対応するピクセル値を示し、ビデオデコーダ30がピクセル値を再構成することを可能にするために、(値1〜3として図6の例に示されている)パレットインデックスを符号化し得る。
[0183] CUの1つの位置におけるピクセルの値は、CUの他の位置における1つまたは複数の他のピクセルの値の指示を与え得る。たとえば、CUの隣接ピクセル位置が、同じピクセル値を有するか、または(2つ以上のピクセル値が単一のインデックス値にマッピングされ得る、不可逆コーディングの場合)同じインデックス値にマッピングされ得る確率が比較的高くなり得る。
[0184] したがって、ビデオエンコーダ20は、グループとしてコーディングされる、所与の走査順序での連続するピクセルまたはインデックス値の数を示す1つまたは複数のシンタックス要素を符号化し得る。値のいわゆる「ストリング(string)」は、ランレングスを有するランと呼ばれることがある。たとえば、インデックスモードでのランが、同じインデックス値を有するピクセルのストリングを示し得る。別の例では、コピーフロムアバブモードでのランレングスが、上に隣接するピクセルと同じ値を共有するピクセル値のストリングを示し得る。ビデオデコーダ30は、符号化ビットストリームからランを示すシンタックス要素を取得し、一緒にコーディングされる連続するロケーションの数を決定するためにそのデータを使用し得る。
[0185] 上述のように、ランは、(コピーフロムアバブとも呼ばれる)コピートップ(Copy Top)または(インデックスモードとも呼ばれる)コピーレフト(Copy Left)モードとともに使用され得る。説明の目的のための一例では、マップ240の行264および268について考える。水平方向の左から右への走査方向を仮定すると、行264は、「1」の3つのインデックス値と、「2」の2つのインデックス値と、「3」の3つのインデックス値とを含む。行268は、「1」の5つのインデックス値と「3」の3つのインデックス値とを含む。この例では、ビデオエンコーダ20は、行264の特定のエントリを識別し、その後、行268のためのデータを符号化するとき(たとえば、コピートップモード)にランを識別し得る。たとえば、ビデオエンコーダ20は、行268の第1の位置(行268の一番左の位置)が行264の第1の位置と同じであることを示す、1つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ20はまた、行268中の走査方向での2つの連続するエントリの次のランが行264の第1の位置と同じであることを示す、1つまたは複数のシンタックス要素を符号化し得る。
[0186] (上述の)行264の第1の位置と2つのエントリのランとを示す1つまたは複数のシンタックス要素を符号化した後に、ビデオエンコーダ20は、(左から右に)ライン268中の第4および第5の位置について、第4の位置についての1の値を示す1つまたは複数のシンタックス要素と、1のランを示す1つまたは複数のシンタックス要素とを符号化し得る(たとえば、コピーレフトモード)。したがって、ビデオエンコーダ20は、別のラインと無関係にこれらの2つの位置を符号化する。いくつかの例では、コピーレフトモードは「バリュー(Value)」モードと呼ばれることもある。
[0187] ビデオエンコーダ20は、次いで、上の行264に対する(たとえば、上の行264からのコピーと、同じインデックス値を有する、走査順序での連続する位置のランとを示す)行268中の3のインデックス値を有する第1の位置を符号化し得る。したがって、ビデオエンコーダ20は、たとえば、ランを使用して、ラインのピクセルまたはインデックス値をラインの他の値に対してコーディングすること、ラインのピクセルまたはインデックス値を別のライン(または列)の値に対してコーディングすること、あるいはそれらの組合せの間で選択し得る。ビデオエンコーダ20は、いくつかの例では、この選択を行うために、レート/ひずみ最適化(rate/distortion optimization)を実行し得る。
[0188] ビデオデコーダ30は、上記で説明されたシンタックス要素を受信し、行268を再構成し得る。たとえば、ビデオデコーダ30は、現在コーディングされているマップ240の位置についての関連付けられたインデックス値をそこからコピーするための、隣接する行中の特定のロケーションを示すデータを取得し得る。ビデオデコーダ30は、たとえば、ランレングスを有するランにおいて、グループとして処理されている走査順序での連続する位置の数を示すデータをも取得し得る。水平方向の走査順序に関して説明されるが、本開示の技法はまた、垂直または対角(たとえば、ブロックにおいて対角方向に45度または135度)の走査方向など、別の走査方向に適用され得る。
[0189] 図7は、前にコーディングされた行からパレットインデックスをコピーすることの一例を示す概念図である。図7の例は、概して、コピープリビアスロウ(Copy Previous Row)モードを示し得る。たとえば、上述のように、コピープリビアスロウモードは、コピーフロムアバブモードと同様に動作し得るが、インデックスがそこからコピーされる行は、明示的にシグナリングされ得る。コピープリビアスロウモードは、ピクセル値が、現在コーディングされているピクセルのすぐ上の行以外の、前にコーディングされた行からコピーされることを可能にし得る。
[0190] たとえば、より良いコーディング効率を達成するために、コピープリビアスロウモードは、前にコーディングされた行が参照として使用されることを可能にする。コピープリビアスロウモードは、利用可能なパレットモード候補リスト中に追加され得る。コピープリビアスロウモードが選択されるとき、行インデックス情報がコーディングされ得る。行インデックスは、短縮されたバイナリコードワードを使用してコーディングされ得る。より短いコードワードが、現在の行のより近くに配置された行のために指定され得る。他のパレットモードの場合と同様に、マッチングレングス(matching length)(たとえば、一緒にコーディングされている位置のランレングス)はビットストリーム中でコーディングされ得る。コピーフロムアバブモードの場合の冗長性を低減するために、コピープリビアスロウモードは、現在CUの第3の行からの有効な開始であり得る。
[0191] 2014年6月20日に出願された米国仮出願第62/015,177号(“the 177 provisional)および2014年6月27日に出願された米国仮出願第62/018,477号(“the 477 provisional)、ならびに、ドキュメントJCTVC−R0202(F.Zou、M.Karczewicz、R.Joshi、およびJ.Sole、「Non-SCCE3: Copy from previous row mode for palette coding」、JCTVC−R0202)では、限定はしないが、「インデックス」、「コピーフロムアバブ」、および「コピープリビアスロウ」モードを表すために使用され得るモードコーディング/シグナリング技法を含む、(「コピーフロムプリビアスロウ(Copy from Previous Row)」とも呼ばれる)コピープリビアスロウのいくつかの態様が提案された。いくつかの例では、短縮された単項コーディングがこれらの3つのモードのために使用され得る。そのような例では、モードのうちのいくつかが利用可能でないとき、最大シンボル値が低減され、したがって、オーバーヘッドコストが低減し得る。
[0192] 図10は、ビデオデータを復号することの一例を示すフローチャートである。ビデオデコーダ30は、ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出する(1000)。ビデオデータメモリ151はパレットテーブルを記憶し得る。
[0193] ビデオデコーダ30は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定する(1002)。たとえば、ビデオデコーダ30は、現在ブロックのルーマ成分と現在ブロックのクロマ成分との間の位相整合を決定し得る。ビデオデコーダ30は、決定された位相整合に基づいて、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し得る。
[0194] ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブルから取り出すべき色値の数を決定する(1004)。ビデオデコーダ30は、取り出すべき色値の数の決定に基づいて、ビデオデータの現在ブロック中のピクセルをパレットモード復号する(1006)。
[0195] たとえば、ビデオデコーダ30は、パレットテーブル中への1つのエントリを識別する単一のインデックスを受信し得る。この例では、ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、パレットテーブル中への識別されたエントリから取り出すべき色値の数を決定し得る。
[0196] 一例では、ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、3つの色値がパレットテーブルから取り出されるべきであると決定し得る。この例では、ピクセルをパレットモード復号するために、ビデオデコーダ30は、パレットテーブルから3つの色値を取り出し、3つの色値の各々をピクセルのそれぞれのルーマ成分およびクロマ成分に割り当て得る。
[0197] 別の例では、ビデオデコーダ30は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、3つの色値のうちの単一の色値のみがパレットテーブルから取り出されるべきであると決定し得る。この例では、ピクセルをパレットモード復号するために、ビデオデコーダ30は、パレットテーブルから単一の色値を取り出し、単一の色値をピクセルのルーマ成分に割り当て得る。たとえば、単一の色値は、パレットテーブルに記憶された3つの色値のうちの第1の識別された色値であり得る。
[0198] 図10に示されている上記の例では、現在ブロックのピクセルは第1のピクセルと見なされ得る。いくつかの例では、ビデオデコーダ30は、パレットテーブルに基づいて、現在ブロック中の第2のピクセルが復号されるべきでない(たとえば、第2のピクセルがエスケープピクセルである)と決定し得る。ビデオデコーダ30は、現在ブロック中の第2のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し、現在ブロック中の第2のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリームからパースすべき色値の数を決定し得る。色値は、場合によっては量子化され得、以下の説明では、明示的に述べられていないが、色値が場合によっては量子化され得ると仮定されるべきである。しかしながら、色値は、必ずしも常に量子化される必要があるとは限らない。
[0199] ビデオデコーダ30は、ビットストリームからパースすべき色値の決定された数に基づいて、現在ブロック中の第2のピクセルを復号し得る。ビデオデコーダ30は、現在ブロック中の第2のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、3つの色値がビットストリームからパースされるべきであると決定し、ビデオデコーダ30は、現在ブロック中の第2のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリームからパースされるべきであると決定する。
[0200] 図11は、ビデオデータを符号化することの一例を示すフローチャートである。ビデオエンコーダ20は、ビデオデータメモリ101に記憶されるパレットテーブルに基づいて、ビデオデータの現在ブロック中のピクセルが符号化されるべきでない(たとえば、エスケープピクセル)と決定する(1100)。ビデオエンコーダ20は、ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定し(1102)、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかの決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定する(1104)。ビデオエンコーダ20は、色値の決定された数に基づいて、現在ブロックを再構成するために使用される、ビットストリーム中のピクセルについての色値をシグナリングする(1106)。
[0201] 一例として、ビットストリーム中でシグナリングすべき色値の数を決定するために、ビデオエンコーダ20は、現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むという決定に基づいて、3つの色値がビットストリーム中でシグナリングされるべきであると決定し得る。色値をシグナリングするために、ビデオエンコーダ20は、ビデオデコーダ30が、現在ブロックを再構成するために使用するピクセルについての3つの色値をシグナリングし得る。
[0202] 別の例として、ビットストリーム中でシグナリングすべき色値の数を決定するために、ビデオエンコーダ20は、現在ブロック中のピクセルがルーマ成分のみを含み、クロマ成分のいずれをも含まないという決定に基づいて、単一の色値のみがビットストリーム中でシグナリングされるべきであると決定し得る。シグナリングするために、ビデオエンコーダ20は、ビデオデコーダ30が、現在ブロックを再構成するために使用するピクセルについての1つの色値のみをシグナリングし得る。
[0203] 上記で説明された技法は、その両方が一般にビデオコーダと呼ばれることがある、ビデオエンコーダ20(図1および図2)および/またはビデオデコーダ30(図1および図3)によって実行され得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。さらに、ビデオ符号化およびビデオ復号は、ビデオデータを「処理すること(processing)」と総称的に呼ばれることがある。
[0204] 本明細書で説明された技法のすべては、個々にまたは組合せで使用され得ることを理解されたい。本開示は、ブロックサイズ、パレットサイズ、スライスタイプなど、いくつかのファクタに応じて変化し得るいくつかのシグナリング方法を含む。シンタックス要素をシグナリングまたは推論することにおけるそのような変形形態は、エンコーダおよびデコーダにアプリオリに知られ得るか、あるいはタイルレベルでまたは他の場所で、ビデオパラメータセット(VPS:video parameter set)、シーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、スライスヘッダ中で明示的にシグナリングされ得る。
[0205] 上記例に応じて、本明細書で説明された技法のうちのいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。さらに、本開示のいくつかの態様は、明快のために単一のモジュールまたはユニットによって実行されるものとして説明されたが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
[0206] 技法の様々な態様の特定の組合せが上記で説明されたが、これらの組合せは、本開示で説明された技法の例を示すために与えられるものにすぎない。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきでなく、本開示で説明された技法の様々な態様の任意の想起可能な組合せを包含し得る。
[0207] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0208] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
[0209] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0210] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0211] 様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
[0211] 様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、前記方法は、
前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を備える、方法。
[C2]
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することを備える、
C1に記載の方法。
[C3]
色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを備える、C1に記載の方法。
[C4]
色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを備える、C1に記載の方法。
[C5]
前記単一の色値が、前記3つの色値のうちの第1の識別された色値を備える、C4に記載の方法。
[C6]
前記ピクセルが第1のピクセルを備え、前記方法は、
前記単一のパレットテーブルに基づいて、前記現在ブロック中の第2のピクセルが復号されるべきでないと決定することと、
前記現在ブロック中の前記第2のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第2のピクセルを復号することと
をさらに備える、C1に記載の方法。
[C7]
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリームからパースされるべきであると決定することを備える、C6に記載の方法。
[C8]
前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定することを備える、C6に記載の方法。
[C9]
前記単一のパレットテーブル中の1つのエントリを識別する単一のインデックスを受信すること
をさらに備え、
ここにおいて、取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定することを備える、
C1に記載の方法。
[C10]
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含むパレットテーブルを記憶するように構成されたメモリユニットと、
前記メモリユニットに記憶するために、前記ビデオデータの前記現在ブロックについての前記パレットテーブルを導出し、前記現在ブロックについての他のいかなるパレットテーブルをも導出しないことと、
前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を行うように構成されたビデオデコーダと
を備える、デバイス。
[C11]
前記ビデオデコーダは、
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
を行うように構成され、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するために、前記ビデオデコーダは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するように構成された、
C10に記載のデバイス。
[C12]
色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行うように構成された、C10に記載のデバイス。
[C13]
色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行うように構成された、C10に記載のデバイス。
[C14]
前記単一の色値が、前記3つの色値のうちの第1の識別された色値を備える、C13に記載のデバイス。
[C15]
前記ピクセルが第1のピクセルを備え、ここにおいて、前記ビデオデコーダは、
前記パレットテーブルに基づいて、前記現在ブロック中の第2のピクセルが復号されるべきでないと決定することと、
前記現在ブロック中の前記第2のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第2のピクセルを復号することと
を行うように構成された、C10に記載のデバイス。
[C16]
前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリームからパースされるべきであると決定するように構成された、C15に記載のデバイス。
[C17]
前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定するように構成された、C15に記載のデバイス。
[C18]
前記ビデオデコーダは、
前記パレットテーブル中の1つのエントリを識別する単一のインデックスを受信すること
を行うように構成され、
ここにおいて、取り出すべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定するように構成された、
C10に記載のデバイス。
[C19]
前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャを表示するように構成されたディスプレイのうちの少なくとも1つを備える、C10に記載のデバイス。
[C20]
実行されたとき、ビデオデータを復号するためのデバイスの1つまたは複数のプロセッサに、
前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
を行わせる、命令を記憶した非一時的コンピュータ可読記憶媒体。
[C21]
前記1つまたは複数のプロセッサに、
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
を行わせる命令をさらに備え、
ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる前記命令は、前記1つまたは複数のプロセッサに、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる命令を備える、
C20に記載の非一時的コンピュータ可読記憶媒体。
[C22]
前記1つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記1つまたは複数のプロセッサに、前記単一のパレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行わせる命令を備える、C20に記載の非一時的コンピュータ可読記憶媒体。
[C23]
前記1つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記1つまたは複数のプロセッサに、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行わせる命令を備える、C20に記載の非一時的コンピュータ可読記憶媒体。
[C24]
ビデオデータを復号するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、
前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するための手段と、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定するための手段と、
取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号するための手段と
を備える、デバイス。
[C25]
前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定するための手段
をさらに備え、
ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための前記手段は、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための手段を備える、
C24に記載のデバイス。
[C26]
色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記3つの色値を取り出すための手段と、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てるための手段とを備える、C24に記載のデバイス。
[C27]
色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記単一の色値を取り出すための手段と、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てるための手段とを備える、C24に記載のデバイス。
[C28]
ビデオデータを符号化する方法であって、前記方法は、
単一のパレットテーブルに基づいて、前記ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、
前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることとを備える、方法。
[C29]
前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、色値をシグナリングすることが、前記ピクセルについての3つの色値をシグナリングすることを備える、C28に記載の方法。
[C30]
前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、シグナリングすることが、前記ピクセルについての1つの色値のみをシグナリングすることを備える、C28に記載の方法。
[C31]
色値をシグナリングすることが、量子化色値をシグナリングすることを備える、C28に記載の方法。
[C32]
ビデオデータを符号化するためのデバイスであって、前記デバイスは、
前記ビデオデータの現在ブロックについて、パレットテーブルを記憶するように構成されたメモリユニットと、
前記パレットテーブルに基づいて、前記ビデオデータの前記現在ブロック中のピクセルが符号化されるべきでないと決定することと、
前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることと
を行うように構成されたビデオエンコーダと
を備える、デバイス。
[C33]
前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、色値をシグナリングするために、前記ビデオエンコーダは、前記ピクセルについての3つの色値をシグナリングするように構成された、C32に記載のデバイス。
[C34]
前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、シグナリングするために、前記ビデオエンコーダは、前記ピクセルについての1つの色値のみをシグナリングするように構成された、C32に記載のデバイス。
[C35]
色値をシグナリングするために、前記ビデオエンコーダが、量子化色値をシグナリングするように構成された、C32に記載のデバイス。
[C36]
前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャをキャプチャするように構成されたカメラのうちの少なくとも1つを備える、C32に記載のデバイス。

Claims (36)

  1. ビデオデータを復号する方法であって、前記方法は、
    前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
    前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
    取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
    を備える、方法。
  2. 前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
    をさらに備え、
    ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定することを備える、
    請求項1に記載の方法。
  3. 色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを備える、請求項1に記載の方法。
  4. 色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定することを備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号することが、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを備える、請求項1に記載の方法。
  5. 前記単一の色値が、前記3つの色値のうちの第1の識別された色値を備える、請求項4に記載の方法。
  6. 前記ピクセルが第1のピクセルを備え、前記方法は、
    前記単一のパレットテーブルに基づいて、前記現在ブロック中の第2のピクセルが復号されるべきでないと決定することと、
    前記現在ブロック中の前記第2のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
    前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第2のピクセルを復号することと
    をさらに備える、請求項1に記載の方法。
  7. 前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリームからパースされるべきであると決定することを備える、請求項6に記載の方法。
  8. 前記ビットストリームからパースすべき色値の前記数を決定することは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定することを備える、請求項6に記載の方法。
  9. 前記単一のパレットテーブル中の1つのエントリを識別する単一のインデックスを受信すること
    をさらに備え、
    ここにおいて、取り出すべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定することを備える、
    請求項1に記載の方法。
  10. ビデオデータを復号するためのデバイスであって、前記デバイスは、
    前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含むパレットテーブルを記憶するように構成されたメモリユニットと、
    前記メモリユニットに記憶するために、前記ビデオデータの前記現在ブロックについての前記パレットテーブルを導出し、前記現在ブロックについての他のいかなるパレットテーブルをも導出しないことと、
    前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブルから取り出すべき色値の数を決定することと、
    取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
    を行うように構成されたビデオデコーダと
    を備える、デバイス。
  11. 前記ビデオデコーダは、
    前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
    を行うように構成され、
    ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するために、前記ビデオデコーダは、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するように構成された、
    請求項10に記載のデバイス。
  12. 色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行うように構成された、請求項10に記載のデバイス。
  13. 色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記パレットテーブルから取り出されるべきであると決定するように構成され、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するために、前記ビデオデコーダは、前記パレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行うように構成された、請求項10に記載のデバイス。
  14. 前記単一の色値が、前記3つの色値のうちの第1の識別された色値を備える、請求項13に記載のデバイス。
  15. 前記ピクセルが第1のピクセルを備え、ここにおいて、前記ビデオデコーダは、
    前記パレットテーブルに基づいて、前記現在ブロック中の第2のピクセルが復号されるべきでないと決定することと、
    前記現在ブロック中の前記第2のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリームからパースすべき色値の数を決定することと、
    前記ビットストリームからパースすべき色値の前記決定された数に基づいて、前記現在ブロック中の前記第2のピクセルを復号することと
    を行うように構成された、請求項10に記載のデバイス。
  16. 前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリームからパースされるべきであると決定するように構成された、請求項15に記載のデバイス。
  17. 前記ビットストリームからパースすべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記第2のピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリームからパースされるべきであると決定するように構成された、請求項15に記載のデバイス。
  18. 前記ビデオデコーダは、
    前記パレットテーブル中の1つのエントリを識別する単一のインデックスを受信すること
    を行うように構成され、
    ここにおいて、取り出すべき色値の前記数を決定するために、前記ビデオデコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記パレットテーブル中の前記識別されたエントリから取り出すべき色値の前記数を決定するように構成された、
    請求項10に記載のデバイス。
  19. 前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャを表示するように構成されたディスプレイのうちの少なくとも1つを備える、請求項10に記載のデバイス。
  20. 実行されたとき、ビデオデータを復号するためのデバイスの1つまたは複数のプロセッサに、
    前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出することと、
    前記ビデオデータの前記現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定することと、
    取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号することと
    を行わせる、命令を記憶した非一時的コンピュータ可読記憶媒体。
  21. 前記1つまたは複数のプロセッサに、
    前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定すること
    を行わせる命令をさらに備え、
    ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる前記命令は、前記1つまたは複数のプロセッサに、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定させる命令を備える、
    請求項20に記載の非一時的コンピュータ可読記憶媒体。
  22. 前記1つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記1つまたは複数のプロセッサに、前記単一のパレットテーブルから前記3つの色値を取り出すことと、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てることとを行わせる命令を備える、請求項20に記載の非一時的コンピュータ可読記憶媒体。
  23. 前記1つまたは複数のプロセッサに、色値の前記数を決定させる前記命令は、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定させる命令を備え、ここにおいて、前記1つまたは複数のプロセッサに、前記現在ブロック中の前記ピクセルをパレットモード復号させる前記命令は、前記1つまたは複数のプロセッサに、前記単一のパレットテーブルから前記単一の色値を取り出すことと、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てることとを行わせる命令を備える、請求項20に記載の非一時的コンピュータ可読記憶媒体。
  24. ビデオデータを復号するためのデバイスであって、前記デバイスは、
    前記ビデオデータの現在ブロックについて、3つの色値を有するエントリを含む単一のパレットテーブルを導出するための手段と、
    前記ビデオデータの現在ブロック中のピクセルがルーマ成分およびクロマ成分を含むかどうかを決定するための手段と、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、前記単一のパレットテーブルから取り出すべき色値の数を決定するための手段と、
    取り出すべき色値の前記数の前記決定に基づいて、前記ビデオデータの前記現在ブロック中の前記ピクセルをパレットモード復号するための手段と
    を備える、デバイス。
  25. 前記現在ブロックのルーマ成分と前記現在ブロックのクロマ成分との間の位相整合を決定するための手段
    をさらに備え、
    ここにおいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための前記手段は、前記決定された位相整合に基づいて、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかを決定するための手段を備える、
    請求項24に記載のデバイス。
  26. 色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記3つの色値を取り出すための手段と、前記3つの色値の各々を前記ピクセルのそれぞれのルーマ成分およびクロマ成分に割り当てるための手段とを備える、請求項24に記載のデバイス。
  27. 色値の前記数を決定するための前記手段は、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、前記3つの色値のうちの単一の色値のみが前記単一のパレットテーブルから取り出されるべきであると決定するための手段を備え、ここにおいて、前記現在ブロック中の前記ピクセルをパレットモード復号するための前記手段は、前記単一のパレットテーブルから前記単一の色値を取り出すための手段と、前記単一の色値を前記ピクセルの前記ルーマ成分に割り当てるための手段とを備える、請求項24に記載のデバイス。
  28. ビデオデータを符号化する方法であって、前記方法は、
    単一のパレットテーブルに基づいて、前記ビデオデータの現在ブロック中のピクセルが符号化されるべきでないと決定することと、
    前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
    色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることと
    を備える、方法。
  29. 前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、色値をシグナリングすることが、前記ピクセルについての3つの色値をシグナリングすることを備える、請求項28に記載の方法。
  30. 前記ビットストリーム中でシグナリングすべき色値の前記数を決定することは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定することを備え、ここにおいて、シグナリングすることが、前記ピクセルについての1つの色値のみをシグナリングすることを備える、請求項28に記載の方法。
  31. 色値をシグナリングすることが、量子化色値をシグナリングすることを備える、請求項28に記載の方法。
  32. ビデオデータを符号化するためのデバイスであって、前記デバイスは、
    前記ビデオデータの現在ブロックについて、パレットテーブルを記憶するように構成されたメモリユニットと、
    前記パレットテーブルに基づいて、前記ビデオデータの前記現在ブロック中のピクセルが符号化されるべきでないと決定することと、
    前記ビデオデータの前記現在ブロック中の前記ピクセルがルーマ成分およびクロマ成分を含むかどうかを決定することと、
    前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むかどうかの前記決定に基づいて、ビットストリーム中でシグナリングすべき色値の数を決定することと、
    色値の前記決定された数に基づいて、前記現在ブロックを再構成するために使用される、前記ビットストリーム中の前記ピクセルについての色値をシグナリングすることと
    を行うように構成されたビデオエンコーダと
    を備える、デバイス。
  33. 前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分および前記クロマ成分を含むという前記決定に基づいて、3つの色値が前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、色値をシグナリングするために、前記ビデオエンコーダは、前記ピクセルについての3つの色値をシグナリングするように構成された、請求項32に記載のデバイス。
  34. 前記ビットストリーム中でシグナリングすべき色値の前記数を決定するために、前記ビデオエンコーダは、前記現在ブロック中の前記ピクセルが前記ルーマ成分のみを含み、前記クロマ成分のいずれをも含まないという前記決定に基づいて、単一の色値のみが前記ビットストリーム中でシグナリングされるべきであると決定するように構成され、ここにおいて、シグナリングするために、前記ビデオエンコーダは、前記ピクセルについての1つの色値のみをシグナリングするように構成された、請求項32に記載のデバイス。
  35. 色値をシグナリングするために、前記ビデオエンコーダが、量子化色値をシグナリングするように構成された、請求項32に記載のデバイス。
  36. 前記デバイスが、マイクロプロセッサ、集積回路、ワイヤレス通信デバイス、または前記現在ブロックを含むピクチャをキャプチャするように構成されたカメラのうちの少なくとも1つを備える、請求項32に記載のデバイス。
JP2017532825A 2014-12-19 2015-12-18 サブサンプリングフォーマットのためのパレットモード Active JP6625644B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462094737P 2014-12-19 2014-12-19
US62/094,737 2014-12-19
US14/973,648 US10097839B2 (en) 2014-12-19 2015-12-17 Palette mode for subsampling format
US14/973,648 2015-12-17
PCT/US2015/066763 WO2016100859A1 (en) 2014-12-19 2015-12-18 Palette mode for subsampling format

Publications (3)

Publication Number Publication Date
JP2018505590A true JP2018505590A (ja) 2018-02-22
JP2018505590A5 JP2018505590A5 (ja) 2019-01-17
JP6625644B2 JP6625644B2 (ja) 2019-12-25

Family

ID=55229832

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017532825A Active JP6625644B2 (ja) 2014-12-19 2015-12-18 サブサンプリングフォーマットのためのパレットモード

Country Status (7)

Country Link
US (1) US10097839B2 (ja)
EP (1) EP3235247A1 (ja)
JP (1) JP6625644B2 (ja)
KR (1) KR102478411B1 (ja)
CN (1) CN107113436B (ja)
TW (1) TWI689197B (ja)
WO (1) WO2016100859A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021106612A1 (ja) * 2019-11-28 2021-06-03 ソニーグループ株式会社 画像処理装置および方法

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130034566A (ko) * 2011-09-28 2013-04-05 한국전자통신연구원 제한된 오프셋 보상 및 루프 필터를 기반으로 하는 영상 부호화 및 복호화 방법 및 그 장치
CN107431795B (zh) 2014-12-19 2019-12-06 寰发股份有限公司 视频编码方法
KR20170103924A (ko) * 2015-01-14 2017-09-13 브이아이디 스케일, 인크. 비-4:4:4 화면 콘텐츠 영상의 팔레트 코딩
US11438577B2 (en) * 2018-03-25 2022-09-06 B1 Institute Of Image Technology, Inc. Image encoding/decoding method and device
US11449256B2 (en) 2018-05-15 2022-09-20 Samsung Electronics Co., Ltd. Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US10949087B2 (en) 2018-05-15 2021-03-16 Samsung Electronics Co., Ltd. Method for rapid reference object storage format for chroma subsampled images
MX2021012229A (es) 2019-04-12 2021-11-03 Beijing Bytedance Network Tech Co Ltd Determinacion de modo de codificacion de croma basada en intraprediccion basada en matriz.
CN117499656A (zh) 2019-04-16 2024-02-02 北京字节跳动网络技术有限公司 帧内编解码模式下的矩阵推导
KR20220002318A (ko) 2019-05-01 2022-01-06 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 필터링을 이용한 행렬 기반 인트라 예측
WO2020221372A1 (en) 2019-05-01 2020-11-05 Beijing Bytedance Network Technology Co., Ltd. Context coding for matrix-based intra prediction
JP2022531416A (ja) * 2019-05-03 2022-07-06 ホアウェイ・テクノロジーズ・カンパニー・リミテッド エンコーダ、デコーダ、および対応する方法
EP3949403A4 (en) 2019-05-11 2022-06-22 Beijing Bytedance Network Technology Co., Ltd. INTERACTIONS BETWEEN SEVERAL INTRACODING PROCEDURES
BR112021022868A2 (pt) 2019-05-22 2022-01-04 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeos, aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador
WO2020239017A1 (en) 2019-05-31 2020-12-03 Beijing Bytedance Network Technology Co., Ltd. One-step downsampling process in matrix-based intra prediction
EP3963885A4 (en) 2019-06-05 2022-12-14 Beijing Bytedance Network Technology Co., Ltd. DETERMINING CONTEXT FOR MATRIX-BASED INTRAPREDICTION
US11115658B2 (en) * 2019-06-25 2021-09-07 Qualcomm Incorporated Matrix intra prediction and cross-component linear model prediction harmonization for video coding
CN114175662B (zh) 2019-07-20 2023-11-24 北京字节跳动网络技术有限公司 调色板模式使用指示的条件相关编解码
CN117221536A (zh) * 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
US11330306B2 (en) * 2019-08-07 2022-05-10 Tencent America LLC Method and apparatus for video coding
KR20220082847A (ko) 2019-10-28 2022-06-17 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 색상 성분에 기초한 신택스 시그널링 및 파싱
KR102505301B1 (ko) * 2019-12-05 2023-03-06 한국전자통신연구원 팔레트 모드를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
WO2021112651A1 (ko) * 2019-12-05 2021-06-10 한국전자통신연구원 팔레트 모드를 사용하는 영상 부호화/복호화를 위한 방법, 장치 및 기록 매체
US11683489B2 (en) * 2019-12-26 2023-06-20 Qualcomm Incorporated Monochrome palette mode for video coding
JP2023520645A (ja) * 2020-03-27 2023-05-18 ベイジン ダージャー インターネット インフォメーション テクノロジー カンパニー リミテッド パレットモードを用いたビデオ符号化復号化方法及び装置
US11496731B2 (en) * 2020-06-08 2022-11-08 Tencent America LLC String matching with single color value

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6819793B1 (en) * 2000-06-30 2004-11-16 Intel Corporation Color distribution for texture and image compression
US7343037B1 (en) * 2004-02-04 2008-03-11 Microsoft Corporation Dynamic, locally-adaptive, lossless palettization of color and grayscale images
US20110110416A1 (en) * 2009-11-12 2011-05-12 Bally Gaming, Inc. Video Codec System and Method
US9558567B2 (en) 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
US10313684B2 (en) 2014-06-20 2019-06-04 Qualcomm Incorporated Copy from previous rows for palette mode coding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021106612A1 (ja) * 2019-11-28 2021-06-03 ソニーグループ株式会社 画像処理装置および方法

Also Published As

Publication number Publication date
JP6625644B2 (ja) 2019-12-25
EP3235247A1 (en) 2017-10-25
TW201633784A (zh) 2016-09-16
US10097839B2 (en) 2018-10-09
KR20170097655A (ko) 2017-08-28
WO2016100859A1 (en) 2016-06-23
CN107113436B (zh) 2020-06-23
US20160182913A1 (en) 2016-06-23
CN107113436A (zh) 2017-08-29
TWI689197B (zh) 2020-03-21
KR102478411B1 (ko) 2022-12-15

Similar Documents

Publication Publication Date Title
JP6625644B2 (ja) サブサンプリングフォーマットのためのパレットモード
US10097842B2 (en) Restriction of escape pixel signaled values in palette mode video coding
JP6571162B2 (ja) パレットモード符号化および復号の設計
JP6553090B2 (ja) パレットベースのビデオコーディングにおけるコーディングのラン
JP6625565B2 (ja) パレットベースのビデオコーディングにおける最大パレットパラメータ
JP6556732B2 (ja) パレットベースのビデオコーディングのためのカラーインデックスコーディング
JP6541692B2 (ja) パレットベースのビデオコーディングにおけるパレットインデックスに基づくラン値のコーディング
JP6594903B2 (ja) パレットベースのビデオコーディングにおけるエスケープサンプルのコーディング
JP6557260B2 (ja) パレットベースのビデオコーディングにおけるエスケープを伴うランのコーディング
JP6749925B2 (ja) ビデオコーディングにおけるパレットブロックサイズに対する制限
JP6710691B2 (ja) パレットコーディングのためのエスケープピクセルのコーディング
US10158866B2 (en) Parsing dependency reduction for palette index coding
US10097837B2 (en) Palette run hiding in palette-based video coding
JP2017523667A (ja) ビデオコーディングにおけるカラーパレットモード
JP2017520163A (ja) パレットベースのビデオコーディングにおける予測子パレットの初期化
JP2018507615A (ja) ビデオコーディングのためのパレットインデックスのグループ化
JP2017527168A (ja) 高度パレット予測およびシグナリング
JP2017535134A (ja) ビデオコーディングのためのパレットコーディングモードにおけるエスケープサンプル場所の明示的なシグナリング
US9961351B2 (en) Palette mode coding
JP2017536014A (ja) パレットモードコーディングのための対角方向の複製

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181126

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191127

R150 Certificate of patent or registration of utility model

Ref document number: 6625644

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