JP2018532319A - パレットモードビデオコーディングにおけるエスケープピクセルシグナリング値の制限 - Google Patents

パレットモードビデオコーディングにおけるエスケープピクセルシグナリング値の制限 Download PDF

Info

Publication number
JP2018532319A
JP2018532319A JP2018513861A JP2018513861A JP2018532319A JP 2018532319 A JP2018532319 A JP 2018532319A JP 2018513861 A JP2018513861 A JP 2018513861A JP 2018513861 A JP2018513861 A JP 2018513861A JP 2018532319 A JP2018532319 A JP 2018532319A
Authority
JP
Japan
Prior art keywords
value
escape
video data
determining
bit depth
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.)
Ceased
Application number
JP2018513861A
Other languages
English (en)
Other versions
JP2018532319A5 (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 JP2018532319A publication Critical patent/JP2018532319A/ja
Publication of JP2018532319A5 publication Critical patent/JP2018532319A5/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

ビデオデータを記憶するように構成されたメモリと、1つまたは複数のプロセッサとを備える、ビデオデータを復号するように構成された装置。1つまたは複数のプロセッサは、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信することと、ここにおいて、ビットストリームが、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成することとを行うように構成される。【選択図】図4

Description

関連出願
[0001]本出願は、その全体が参照により本明細書に組み込まれる、2015年9月18日に出願された米国仮特許出願第62/220,675号の利益を主張する。
[0002]本開示は、コンテンツを符号化および復号することに関し、より詳細には、パレットベースコーディングモードに従ってコンテンツを符号化および復号することに関する。
[0003]デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、ITU−T H.265,高効率ビデオコーディング(HEVC:High Efficiency Video Coding)によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実行する。ブロックベースビデオコーディングの場合、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)がビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差係数が生じ得、その残差係数は、次いで量子化され得る。
[0005]画像またはビデオなど、コンテンツは、パレットモードを使用して符号化および復号され得る。概して、パレットモードは、ピクチャ中のピクセルをコーディングするための別の技法である。パレットモードは、ピクセルのコンテンツを表すための色値のパレットの使用を伴う。コンテンツは、コンテンツピクセルが、パレット中の色値に対応する表された値であるように、符号化され得る。パレット中の色値にピクセルをマッピングし、それにより、コンテンツを再構成するための色値を取得するために、インデックスマップが復号され得る。
[0006]本開示の技法は、パレットベースビデオコーディングに関する。たとえば、パレットベースコーディングでは、ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)が、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、「パレット」を形成し得る。パレットベースコーディングは、比較的少数の色を有するビデオデータのエリアをコーディングするために特に有用であり得る。実際のピクセル値(またはそれらの残差)をコーディングするのではなく、ビデオコーダは、ピクセルの色を表すパレット中のエントリにピクセルを関係付ける、ピクセルのうちの1つまたは複数についてのパレットインデックスをコーディングし得る。本開示で説明される技法は、パレットベースビデオコーディングモードをシグナリングすること、パレットを送信すること、パレットを導出すること、ならびにパレットベースコーディングマップおよび他のシンタックス要素を送信することのうちの1つまたは複数の様々な組合せのための技法を含み得る。
[0007]一例では、ビデオデータを復号する方法は、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信することと、ここにおいて、ビットストリームが、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成することとを備える。
[0008]別の例では、ビデオデータを符号化する方法は、ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定することと、ここにおいて、エスケープ値が、符号化されるべきビデオデータのブロック中のサンプルを表す、最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、符号化ビデオデータビットストリーム中で1つまたは複数のエスケープ値を符号化することとを備える。
[0009]別の例では、ビデオデータを復号する方法は、ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信することと、ここにおいて、ビットストリームは、少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、制限に基づいてビットストリームから少なくとも1つのエスケープ値を決定することと、少なくとも1つのエスケープ値を使用してビデオデータのサンプルを再構成することとを備える。
[0010]別の例では、ビデオデータを符号化する方法は、ビデオデータのための量子化パラメータ値を決定することと、量子化パラメータ下限を決定することと、量子化パラメータ値が量子化パラメータ下限よりも小さい場合、量子化パラメータ下限に従ってビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化することと、ここにおいて、エスケープ値が、符号化されるべきビデオデータのブロック中のサンプルを表す、符号化ビデオデータビットストリーム中でエスケープ値を符号化することとを備える。
[0011]別の例では、ビデオデータを復号するように構成された装置であって、本装置は、ビデオデータを記憶するように構成されたメモリと、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信することと、ここにおいて、ビットストリームが、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成することとを行うように構成された1つまたは複数のプロセッサとを備える。
[0012]別の例では、ビデオデータを符号化するように構成された装置であって、本装置は、ビデオデータを記憶するように構成されたメモリと、ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定することと、ここにおいて、エスケープ値が、符号化されるべきビデオデータのブロック中のサンプルを表す、最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、符号化ビデオデータビットストリーム中で1つまたは複数のエスケープ値を符号化することとを行うように構成された1つまたは複数のプロセッサとを備える。
[0013]別の例では、ビデオデータを復号するように構成された装置であって、本装置は、ビデオデータを記憶するように構成されたメモリと、ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信することと、ここにおいて、ビットストリームは、少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、制限に基づいてビットストリームから少なくとも1つのエスケープ値を決定することと、少なくとも1つのエスケープ値を使用してビデオデータのサンプルを再構成することとを行うように構成された1つまたは複数のプロセッサとを備える。
[0014]別の例では、ビデオデータを符号化するように構成された装置であって、本装置は、ビデオデータを記憶するように構成されたメモリと、ビデオデータのための量子化パラメータ値を決定することと、量子化パラメータ下限を決定することと、量子化パラメータ値が量子化パラメータ下限よりも小さい場合、量子化パラメータ下限に従ってビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化することと、ここにおいて、エスケープ値が、符号化されるべきビデオデータのブロック中のサンプルを表す、符号化ビデオデータビットストリーム中でエスケープ値を符号化することとを行うように構成された1つまたは複数のプロセッサとを備える。
[0015]別の例では、ビデオデータを復号するように構成された装置であって、本装置は、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信するための手段と、ここにおいて、ビットストリームが、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成するための手段とを備える。
[0016]別の例では、ビデオデータを復号するように構成された装置であって、本装置は、ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信するための手段と、ここにおいて、ビットストリームは、少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、制限に基づいてビットストリームから少なくとも1つのエスケープ値を決定するための手段と、少なくとも1つのエスケープ値を使用してビデオデータのサンプルを再構成するための手段とを備える。
[0017]別の例では、実行されたとき、1つまたは複数のプロセッサに、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信することと、ここにおいて、ビットストリームが、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成することとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
[0018]別の例では、実行されたとき、1つまたは複数のプロセッサに、ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信することと、ここにおいて、ビットストリームは、少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、制限に基づいてビットストリームから少なくとも1つのエスケープ値を決定することと、少なくとも1つのエスケープ値を使用してビデオデータのサンプルを再構成することとを行わせる命令を記憶した非一時的コンピュータ可読媒体。
[0019]本開示の1つまたは複数の例の詳細が添付の図面および以下の説明に記載されている。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
本開示で説明される技法を利用し得る例示的なビデオコーディングシステムを示すブロック図。 本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。 本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。 本開示の技法に従って、パレットベースビデオコーディングのためのパレットエントリを決定することの一例を示す概念図。 本開示の技法に従って、ピクセルのブロックについてのパレットへのインデックスを決定することの一例を示す概念図。 本開示の1つまたは複数の態様による、エスケープピクセル値が制限される例示的な符号化プロセスを示すフローチャート。 本開示の1つまたは複数の態様による、エスケープピクセル値が制限される例示的な復号プロセスを示すフローチャート。 本開示の1つまたは複数の態様による、下限が量子化パラメータに適用される例示的な符号化プロセスを示すフローチャート。 本開示の1つまたは複数の態様による、下限が量子化パラメータに適用される例示的な復号プロセスを示すフローチャート。
[0029]本開示は、ビデオコーディングおよび圧縮のための技法について説明する。特に、本開示は、ビデオデータのパレットベースコーディングのための技法について説明する。いくつかの例では、本技法の態様は、個々のピクチャなど、他のコンテンツのコーディングのためにも使用され得る。旧来のビデオコーディングでは、画像は、連続トーンであり空間的に滑らかである自然画像であると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。
[0030]しかしながら、リモートデスクトップ、協調作業、およびワイヤレスディスプレイのような適用例では、コンピュータ生成スクリーンコンテンツが、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーンを有し、鋭いラインおよび高コントラストオブジェクト境界を特徴とする傾向がある。連続トーンおよび滑らかさの仮定はもはや適用されないことがあり、したがって、旧来のビデオコーディング技法は、コンテンツを圧縮するための非効率的な方法であり得る。
[0031]いくつかの例では、パレットベースコーディング技法は、1つまたは複数のビデオコーディング規格とともに使用するために構成され得る。たとえば、ITU−T H.265、高効率ビデオコーディング(HEVC)は、ITU−Tビデオコーディングエキスパートグループ(VCEG:Video Coding Experts Group)とISO/IECモーションピクチャエキスパートグループ(MPEG:Motion Picture Experts Group)とのジョイントコラボレーションチームオンビデオコーディング(JCT−VC:Joint Collaboration Team on Video Coding)によって開発された新しいビデオコーディング規格である。HEVC規格は、ITU-T H.265, Series H: Audiovisual and Multimedia Systems, Infrastructure of audiovisual services--Coding of moving video, High Efficiency Video Coding、国際電気通信連合。2015年4月(以下、「HEVC」)として発行されている。
[0032]HEVCフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得る。したがって、CUコーディングのコンテキストにおいて説明される以下の開示されるプロセスのすべてが、追加または代替として、PUコーディングに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
[0033]パレットベースコーディングでは、ビデオデータの特定のエリアが比較的少数の色を有すると仮定され得る。ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆる「パレット」をコーディングし得る。ブロック中の各ピクセルは、ピクセルの色値を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオコーダは、ブロック中のピクセルの色値をパレット中の適切な色値に関係付けるピクセルについてのインデックスをコーディングし得る。
[0034]上記の例では、ビデオエンコーダは、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについての(パレットインデックス値とも呼ばれる)パレットインデックスを用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダは、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのパレットインデックスを取得し得る。ビデオデコーダは、ブロックのピクセル値を再構成するために、ピクセルのパレットインデックスをパレットのエントリに関係付け得る。ピクセル(および/またはピクセル値を示す関係するパレットインデックス)は、概して、サンプルと呼ばれることがある。
[0035]ブロック中のサンプルは、あるスキャン順序を使用して処理(たとえば、スキャン)されると仮定される。たとえば、ビデオエンコーダは、スキャン順序を使用してパレットインデックスをスキャンすることによって、パレットインデックスの2次元ブロックを1次元アレイに変換し得る。同様に、ビデオデコーダは、スキャン順序を使用してパレットインデックスのブロックを再構成し得る。したがって、本開示は、スキャン順序でブロック中の現在コーディングされているサンプルに先行するサンプルとして前のサンプルを参照し得る。たとえば、スキャン順序は、水平スキャン順序、垂直スキャン順序、トラバース/トランスバース(ヘビ様の)スキャン順序、順方向または逆方向スキャン順序などであり得る。前述のもの以外のスキャンも適用可能であり得ることを諒解されたい。上記の例は、パレットベースコーディングの概略的な説明を与えるように意図されている。
[0036]パレットは、一般に、インデックスによって番号を付けられ、色成分(たとえば、RGB、YUVなど)値または強度を表すエントリを含む。ビデオエンコーダとビデオデコーダの両方が、パレットエントリの数と、各パレットエントリのための色成分値と、現在ブロックのためのパレットエントリの厳密な順序付けとを決定する。本開示では、各パレットエントリがサンプルのすべての色成分のための値を指定すると仮定される。ただし、本開示の概念は、色成分ごとに別個のパレットを使用することに適用可能である。
[0037]いくつかの例では、パレットは、前にコーディングされたブロックからの情報を使用して構成され得る。すなわち、パレットは、前の(1つまたは複数の)ブロックをコーディングするために使用された(1つまたは複数の)パレットから予測される、予測されたパレットエントリを含んでいることがある。たとえば、規格提案ドキュメント、Wei Puら、「AHG10: Suggested Software for Palette Coding based on RExt6.0」、JCTVC−Q0094、バレンシア、スペイン、2014年3月27日〜4月4日(以下、JCTVC−Q0094)に記載されているように、パレットは、予測子パレットからコピーされたエントリを含み得る。予測子パレットは、パレットモードを使用して前にコーディングされたブロックまたは他の再構成されたサンプルからのパレットエントリを含み得る。予測子パレット中の各エントリについて、バイナリフラグが、そのフラグに関連付けられたエントリが現在パレットにコピーされる(たとえば、フラグ=1によって示される)かどうかを示すようにコーディングされ得る。バイナリフラグのストリングは、バイナリパレット予測ベクトルと呼ばれることがある。現在ブロックをコーディングするためのパレットは、(たとえば、パレット予測ベクトルとは別に)明示的にコーディングされ得る、いくつかの新しいパレットエントリをも含み得る。新しいエントリの数のインジケーションもコーディングされ得る。予測されたエントリと新しいエントリとの和が、ブロックのための総パレットサイズを示し得る。
[0038]いくつかの例では、パレットベースコーディングモードを用いてコーディングされたブロック中の各サンプルは、以下に記載されるように、3つのパレットモードのうちの1つを使用してコーディングされ得る。
[0039]エスケープモード:このモードでは、サンプル値がパレットエントリとしてパレットに含まれないことがあり、被量子化サンプル値がすべての色成分について明示的にエンコーダによってビットストリーム中でシグナリングされる。エスケープモードは、新しいパレットエントリのシグナリングと同様であるが、新しいパレットエントリについて、色成分値が量子化されない。
[0040](コピーアバブ(Copy Above)モードとも呼ばれる)コピートップ(Copy Top)モード:このモードでは、現在のサンプルについてのパレットエントリインデックスが、ブロック中ですぐ上に位置するサンプルからコピーされる。コピーの長さ(ランレングス)を指定するシンタックス要素のみが、コピートップモードについてエンコーダによってビットストリーム中でシグナリングされる。
[0041](値モードまたは左モードとも呼ばれる)インデックスモード:このモードでは、パレットエントリインデックスの値が、たとえば、切捨てバイナリコードと、後続の、スキャン順序でのいくつの後続のピクセルが、シグナリングされたものと同じインデックスを共有するか(ランレングス)を指定する別のシンタックス要素とを使用して、エンコーダによってビットストリーム中で明示的にシグナリングされる。
[0042]本明細書で説明されるように、パレットエントリインデックスは、パレットインデックスまたは単にインデックスと呼ばれることがある。これらの用語は、本開示の技法について説明するために互換的に使用され得る。さらに、以下でより詳細に説明されるように、パレットインデックスは、1つまたは複数の関連付けられた色値または強度値を有し得る。たとえば、パレットインデックスは、ピクセルの単一の色成分または強度成分(たとえば、RGBデータの赤成分、YUVデータのY成分など)に関連付けられた単一の関連付けられた色値または強度値を有し得る。別の例では、パレットインデックスは、複数の関連付けられた色値または強度値を有し得る。いくつかの事例では、パレットベースコーディングは、モノクロームビデオをコーディングするために適用され得る。したがって、「色値」は、概して、ピクセル値を生成するために使用される任意の色成分または(モノクロームの場合)非色成分を指し得る。
[0043]コピートップモードおよびインデックスモードの場合、(単にランと呼ばれることもある)ラン値もシグナリングされ得る。ラン値は、一緒にコーディングされるパレットコード化ブロック中の特定のスキャン順序での連続するサンプルの数(たとえば、サンプルのラン)を示し得る。いくつかの事例では、サンプルのランは、ランの各サンプルが、パレットへの関連付けられたインデックスを有するので、パレットインデックスのランと呼ばれることもある。
[0044]ラン値は、同じパレットコーディングモードを使用してコーディングされるパレットインデックスのランを示し得る。たとえば、インデックスモードに関して、ビデオコーダ(ビデオエンコーダまたはビデオデコーダ)は、(パレットインデックス値または単にインデックス値とも呼ばれる)パレットインデックスと、同じパレットインデックスを有し、パレットインデックスを用いてコーディングされている、スキャン順序での連続するサンプルの数を示すラン値とをコーディングし得る。コピートップモードに関して、ビデオコーダは、現在サンプル値のためのインデックスが上隣接サンプル(たとえば、ブロック中で現在コーディングされているサンプルの上に位置するサンプル)のインデックスに基づいてコピーされるというインジケーションと、上隣接サンプルからのパレットインデックスをもコピーするスキャン順序での連続するサンプルの数を示すラン値とをコーディングし得る。したがって、上記の例では、パレットインデックスのランは、同じ値を有するパレットインデックスのラン、または上隣接パレットインデックスからコピーされたパレットインデックスのランを指す。
[0045]したがって、ランは、所与のモードについて、同じモードに属する後続のサンプルの数を指定し得る。いくつかの事例では、インデックスとラン値とをシグナリングすることはランレングスコーディングと同様であり得る。説明の目的の一例では、ブロックの連続するパレットインデックスのストリングは、0、2、2、2、2、5であり得る(たとえば、ここで、各インデックスはブロック中のサンプルに対応する)。この例では、ビデオコーダは、インデックスモードを使用して第2のサンプル(たとえば、2の第1のパレットインデックス)をコーディングし得る。2に等しいインデックスをコーディングした後に、ビデオコーダは、3つの後続のサンプルも2の同じパレットインデックスを有することを示す、3のランをコーディングし得る。同様にして、コピートップモードを使用してインデックスをコーディングした後に4つのパレットインデックスのランをコーディングすることは、合計5つのパレットインデックスが、現在コーディングされているサンプル位置の上の行中の対応するパレットインデックスからコピーされることを示し得る。
[0046](エスケープピクセルとも呼ばれる)エスケープサンプルは、ブロックをコーディングするためのパレット中で表される対応する色を有しないブロックのサンプル(またはピクセル)であり得る。したがって、エスケープサンプルは、パレットからの色エントリ(またはピクセル値)を使用して再構成されないことがある。代わりに、エスケープサンプルのための色値が、パレットの色値とは別にビットストリーム中でシグナリングされる。
[0047]ビデオコーダ(たとえば、ビデオエンコーダおよびビデオデコーダ)は、パレットコード化ブロックのサンプルが、たとえば、上記の「エスケープモード」と呼ばれるプロセスを使用して、ブロックについてのパレット中に含まれていないサンプルの色に基づいてコーディングされるかどうかを示す、サンプルごとのデータをコーディングし得る。いくつかの例では、ビデオコーダは、パレットエントリに対応しないパレットに特殊インデックスを適応させるために、パレットのパレットエントリの数を1だけ増加させるように構成され得る。ビデオコーダは、所与のブロックについての増加されたパレット中の最後のパレットインデックスとして、追加のインデックスを含め得る。追加のインデックスは、エスケープモードのインジケーションとして使用され得る。
[0048]上記で説明された例では、ビデオコーダは、ブロックの特定のサンプル値について、追加のサンプルがエスケープサンプル(たとえば、ブロックをコーディングするためのパレット中で表される色値を有しないサンプル)としてコーディングされることを示すために、追加のインデックスを表すデータをコーディングし得る。ビデオコーダはまた、エスケープサンプルの(1つまたは複数の)色値をコーディングし得る。この例では、明示的シンタックスを使用してシグナリングされるべき2つの可能なモード(たとえば、コピートップモード、あるいは(インデックスモードまたは値モードとも呼ばれる)インデックスモード)のみがある。たとえば、サンプルがインデックスモードでコーディングされ、インデックスモードのためのインデックスがエスケープインデックス(たとえば、パレットへの上述の追加のインデックス)に等しい場合、ビデオコーダは、コーディングされるべきサンプルをエスケープサンプルと推論し得る。いくつかの事例では、ランは、エスケープサンプルとともにシグナリングされない。
[0049]パレットコード化ブロックについて、1つまたは複数のシンタックス要素は、ブロックレベル(たとえば、CUレベルまたはLCUレベル)において、ブロックのサンプルが、パレット中に含まれていないサンプルの色値に基づいてコーディングされるかどうか、たとえば、エスケープサンプルとしてコーディングされるかどうかを示し得る。1つまたは複数のシンタックス要素は、ブロックレベルエスケープシンタックスと呼ばれることがある。たとえば、ブロックレベルシンタックスは、CUまたはLCUなど、ビデオデータのブロックをコーディングする間にコーディングまたは決定されるシンタックスを指し得る。ブロックレベルシンタックスは、ヘッダ中に含まれるか、またはブロックに関連付けられた他のデータ(たとえば、ブロックの特性について説明するブロックより前にまたはその後にコーディングされるデータ)とともにあり得る。対照的に、ブロックレベルシンタックスでない他のシンタックスは、スライスヘッダ中に含まれるか、またはビデオデータの個々のピクセルとともにあり得る。
[0050]一例では、ビデオコーダは、ブロックのサンプルがエスケープモードでコーディングされるかどうかを示す(ブロックレベルエスケープフラグと呼ばれることがある)フラグをコーディングおよび/または決定するように構成され得る。たとえば、0のフラグ値は、ブロックのサンプルのいずれもエスケープモードを使用してコーディングされないことを示し得る。すなわち、ブロックのすべてのサンプルの値は、ブロックをコーディングするためのパレット中に含まれる色値に基づいて決定され得る。1のフラグ値は、ブロックの少なくとも1つのサンプルが、エスケープモードを使用してコーディングされることを示し得る。すなわち、少なくとも1つのサンプルの値が、エスケープサンプルとしてコーディングされる。したがって、フラグは、ビデオデータのブロックのすべてのサンプルについて、ブロックの少なくとも1つのサンプルが、ブロックをコーディングするためのパレット中に含まれない色値を有するかどうかを示し得る。
[0051]したがって、いくつかの例では、現在CUがエスケープピクセルを有し得るか否かを指定するCUレベルエスケープフラグが、ビットストリーム中でシグナリングされ得る。たとえば、CUレベルエスケープフラグは、エスケープ値が特定のCUのために有効にされるかどうかを示し得る。上述のように、CU中のエスケープサンプルの存在は、CUのためのパレットインデックスの数に影響を及ぼし得る。たとえば、CUのためのパレットは、たとえば、インデックスが両端値を含んで{0,1,...,N}から選定され得るように、最大インデックスNをもついくつかのインデックスを有し得る。
[0052]しかしながら、いくつかの事例では、CUレベルエスケープフラグが、現在ブロック中にエスケープピクセルがあり得ることを示す場合、現在ブロック中の可能なインデックス値は{0,1,...,N,N+1}であり得、ここで、N+1に等しいインデックスは、現在ピクセルがエスケープピクセルであることを示す。そのような事例では、コーディングされている特定のサンプルについて、インデックスN+1を有するシンタックス要素は、量子化ピクセル値であり得る。上述のように、N+1よりも小さいインデックスは、現在ピクセルが、そのインデックスに関連付けられたパレットからの色によって表されることを示し得る。
[0053]本開示の技法は、一般にエスケープピクセルコーディングに関する。エスケープピクセルは、ブロック中のエスケープピクセル位置、および4:4:4、4:2:2、4:2:0などのクロマフォーマット、および/またはモノクロームに応じて、ルーマサンプル、またはルーマサンプルと2つのクロマサンプルとの組合せを備え得る。色成分サンプルは、パレットモードの一部としてコーディングされるべき元のピクセルを表し、シグナリングされる値は量子化され得る。ルーマサンプルおよびクロマサンプルは、元のピクセルが有し得る最大可能値を表す異なるビット深度を有し得る。パレットエスケープ値は、エスケープコード化ピクセル値の色成分ごとのシグナリングされた値を表すpalette_escape_valによって表され得、この値は、エスケープピクセルを再構成するために逆量子化され得る。
[0054]いくつかの例では、(cu_transquant_bypass_flagが偽であるときの)不可逆コード化コーディングユニット(CU)のための次数3の指数ゴロム符号は、palette_escape_val2値化のために使用され得、上限を含んでいないことがある。たとえば、規格提案ドキュメント、Bin Liら、「On the Palette Escape Pixel Coding」、JCTVC−U0052、ワルシャワ、ポーランド、2015年6月19日〜26日(以下、JCTVC−U0052)は、上限を含んでいないそのようなコードについて説明している。
[0055]そのような事例では、palette_escape_valは、デコーダが復号するように要求される大きい値を取り得る。また、無限に大きいシンタックス要素をパースすることは、図2および図3に関して以下でより詳細に説明されるように、コンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)エンジンにとって問題であり得る。たとえば、無制限の大きい値は、エスケープ再構成プロセス中にオーバーフローを生じ得る。本開示の技法は、ビットストリーム中でシグナリングされ得るpalette_escape_valの値を規範的に制限するために使用され得る。これは、たとえば、コンフォーマントビットストリームが、ある値よりも大きいpalette_escape_valを含んでいないものとするか、または2値化の後にある数よりも大きい数のビンによって表されないものとするというビットストリーム制約によって定義され得る。他の例では、そのような制約は、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/またはエスケープ値、ならびに/あるいは他の形式のエスケープ値にも適用され得る。
[0056]本開示の他の態様は量子化パラメータ(QP)に関する。たとえば、ある値、たとえば、4よりも小さいQPの使用は、入力値が低減されるのではなく拡大されることを生じ得る。QPがそのある値(上記の例では4)に等しいとき、名目上、対応する量子化器ステップサイズ(qStep)は1に等しくなり得、これは、量子化プロセスが、それの入力値と同じ変更されていない値を出力することを意味する。QPがある値、たとえば、4よりも小さいとき、入力値を量子化する代わりに、量子化プロセスは、入力値を拡大し、すなわち、それをqStep<1で除算し得る。これは、(たとえば、(1つまたは複数の)入力値が変換係数であるときの)入力値の正確さを増加させるために使用され得る。しかしながら、1に等しいqStepを用いたエスケープコード化ピクセルは、ひずみまたはエラーがない完全な精度の入力値をすでに表し得る。これらの事例では、精度をさらに高めることは、高められた正確さに関して改善をもたらさないことがある。これは、エスケープコード化ピクセルについてのみ起こるのではなく、変換スキップが使用されるとき、ある値、たとえば、4よりも小さいQPについても起こり得る。
[0057]本開示の例は、QPのレンジに対する制限を備える。たとえば、より低いQP値は、1のqStepに名目上対応するQP値にクリッピングされ得る。別の例では、より低いQP値は、そのようなシナリオにおいて使用されるのを制限され得る。
[0058]図1は、本開示の技法を利用し得る例示的なビデオコーディングシステム10を示すブロック図である。本明細書で使用される「ビデオコーダ」という用語は、ビデオエンコーダとビデオデコーダの両方を総称的に指す。本開示では、「ビデオコーディング」または「コーディング」という用語は、ビデオ符号化またはビデオ復号を総称的に指し得る。ビデオコーディングシステム10のビデオエンコーダ20およびビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの例を表す。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースコーディングモードは、HEVCによって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。
[0059]図1に示されているように、ビデオコーディングシステム10は、ソースデバイス12と宛先デバイス14とを含む。ソースデバイス12は符号化ビデオデータを生成する。したがって、ソースデバイス12は、ビデオ符号化デバイスまたはビデオ符号化装置と呼ばれることがある。宛先デバイス14は、ソースデバイス12によって生成された符号化ビデオデータを復号し得る。したがって、宛先デバイス14は、ビデオ復号デバイスまたはビデオ復号装置と呼ばれることがある。ソースデバイス12および宛先デバイス14は、ビデオコーディングデバイスまたはビデオコーディング装置の例であり得る。
[0060]ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、モバイルコンピューティングデバイス、ノートブック(たとえば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、車内コンピュータなどを含む、広範囲にわたるデバイスを備え得る。
[0061]宛先デバイス14は、チャネル16を介してソースデバイス12から符号化ビデオデータを受信し得る。チャネル16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な1つまたは複数の媒体またはデバイスを備え得る。一例では、チャネル16は、ソースデバイス12が符号化ビデオデータを宛先デバイス14にリアルタイムで直接送信することを可能にする1つまたは複数の通信媒体を備え得る。この例では、ソースデバイス12は、ワイヤレス通信プロトコルなどの通信規格に従って符号化ビデオデータを変調し得、変調されたビデオデータを宛先デバイス14に送信し得る。1つまたは複数の通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、ワイヤレスおよび/またはワイヤード通信媒体を含み得る。1つまたは複数の通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはグローバルネットワーク(たとえば、インターネット)など、パケットベースネットワークの一部を形成し得る。1つまたは複数の通信媒体は、ソースデバイス12から宛先デバイス14への通信を可能にする、ルータ、スイッチ、基地局、または他の機器を含み得る。
[0062]別の例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶する記憶媒体を含み得る。この例では、宛先デバイス14は、たとえば、ディスクアクセスまたはカードアクセスを介して記憶媒体にアクセスし得る。記憶媒体は、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオデータを記憶するための他の好適なデジタル記憶媒体など、様々なローカルにアクセスされるデータ記憶媒体を含み得る。
[0063]さらなる一例では、チャネル16は、ソースデバイス12によって生成された符号化ビデオデータを記憶するファイルサーバまたは別の中間記憶デバイスを含み得る。この例では、宛先デバイス14は、ストリーミングまたはダウンロードを介して、ファイルサーバまたは他の中間記憶デバイスに記憶された、符号化ビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイス14に送信することとが可能なタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続ストレージ(NAS)デバイス、およびローカルディスクドライブがある。
[0064]宛先デバイス14は、インターネット接続などの標準的なデータ接続を通して符号化ビデオデータにアクセスし得る。例示的なタイプのデータ接続としては、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せがあり得る。ファイルサーバからの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはその両方の組合せであり得る。
[0065]本開示の技法はワイヤレス適用例または設定に限定されない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのビデオデータの符号化、データ記憶媒体に記憶されたビデオデータの復号、または他の適用例など、様々なマルチメディア適用例をサポートするビデオコーディングに適用され得る。いくつかの例では、ビデオコーディングシステム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0066]図1に示されているビデオコーディングシステム10は一例にすぎず、本開示の技法は、符号化デバイスと復号デバイスとの間のデータ通信を必ずしも含むとは限らないビデオコーディング設定(たとえば、ビデオ符号化またはビデオ復号)に適用され得る。他の例では、データがローカルメモリから取り出されること、ネットワークを介してストリーミングされることなどが行われる。ビデオ符号化デバイスがデータを符号化し、メモリに記憶し得、および/またはビデオ復号デバイスがメモリからデータを取り出し、復号し得る。多くの例では、符号化および復号は、互いに通信しないが、単にメモリにデータを符号化し、および/またはメモリからデータを取り出し、復号するデバイスによって実行される。
[0067]図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。いくつかの例では、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオデータを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオデータを受信するためのビデオフィードインターフェース、および/またはビデオデータを生成するためのコンピュータグラフィクスシステム、あるいはビデオデータのそのようなソースの組合せを含み得る。
[0068]ビデオエンコーダ20は、ビデオソース18からのビデオデータを符号化し得る。いくつかの例では、ソースデバイス12は、出力インターフェース22を介して宛先デバイス14に符号化ビデオデータを直接送信する。他の例では、符号化ビデオデータは、復号および/または再生のための宛先デバイス14による後のアクセスのために記憶媒体またはファイルサーバ上にも記憶され得る。
[0069]図1の例では、宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。いくつかの例では、入力インターフェース28は受信機および/またはモデムを含む。入力インターフェース28は、チャネル16を介して符号化ビデオデータを受信し得る。ディスプレイデバイス32は、宛先デバイス14と一体化され得るかまたはその外部にあり得る。概して、ディスプレイデバイス32は復号ビデオデータを表示する。ディスプレイデバイス32は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスを備え得る。
[0070]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ハードウェアなど、様々な好適な回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装される場合、デバイスは、好適な非一時的コンピュータ可読記憶媒体にソフトウェアの命令を記憶し得、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。(ハードウェア、ソフトウェア、ハードウェアとソフトウェアの組合せなどを含む)上記のいずれも、1つまたは複数のプロセッサであると見なされ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0071]本開示では、概して、ビデオエンコーダ20が、ある情報をビデオデコーダ30などの別のデバイスに「シグナリングすること」または「送信すること」に言及することがある。「シグナリングすること」または「送信すること」という用語は、概して、圧縮されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータの通信を指すことがある。そのような通信は、リアルタイムまたはほぼリアルタイムに行われ得る。代替的に、そのような通信は、符号化時に符号化ビットストリーム中でシンタックス要素をコンピュータ可読記憶媒体に記憶するときに行われることがあるなど、ある時間期間にわたって行われ得、次いで、これらの要素は、この媒体に記憶された後の任意の時間に復号デバイスによって取り出され得る。
[0072]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、上記で述べられ、HEVCに記載されているHEVC規格など、ビデオ圧縮規格に従って動作する。ベースHEVC規格に加えて、スケーラブルビデオコーディング、マルチビュービデオコーディング、およびHEVCのための3Dコーディング拡張、ならびにいわゆるレンジ拡張(RExt:Range Extension)およびスクリーンコンテンツコーディング(SCC:Screen Content Coding)がある。さらに、たとえば、本開示で説明されるようなパレットベースコーディングモードが、HEVC規格の拡張のために与えられ得る。いくつかの例では、パレットベースコーディングのための本開示で説明される技法が、ITU−T−H.264/AVC規格または将来の規格など、他のビデオコーディング規格に従って動作するように構成されたエンコーダおよびデコーダに適用され得る。したがって、HEVCコーデックにおけるコーディングユニット(CU)または予測ユニット(PU)のコーディングのためのパレットベースコーディングモードの適用が、例として説明される。
[0073]HEVCおよび他のビデオコーディング規格では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、SL、SCbおよびSCrと示される3つのサンプルアレイを含み得る。SLはルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbはCbクロミナンスサンプルの2次元アレイである。SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
[0074]ピクチャの符号化表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロック、クロマサンプルの2つの対応するコーディングツリーブロック、およびコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造であり得る。コーディングツリーブロックは、サンプルのN×Nブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタスキャンにおいて連続的に順序付けられた整数個のCTUを含み得る。
[0075]コード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するためにCTUのコーディングツリーブロックに対して4分木区分を再帰的に実行し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのN×Nブロックである。CUは、ルーマサンプルアレイ、CbサンプルアレイおよびCrサンプルアレイ、ならびにコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造を有するピクチャのルーマサンプルのコーディングブロックおよびクロマサンプルの2つの対応するコーディングブロックであり得る。ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックであり得る。CUの予測ユニット(PU)は、ピクチャのルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、予測ブロックサンプルを予測するために使用されるシンタックス構造とであり得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロックとCb予測ブロックとCr予測ブロックとのための予測ルーマブロックと予測Cbブロックと予測Crブロックとを生成し得る。
[0076]ビデオエンコーダ20は、PUのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャの復号サンプルに基づいてPUの予測ブロックを生成し得る。
[0077]ビデオエンコーダ20が、PUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連付けられたピクチャ以外の1つまたは複数のピクチャの復号サンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20は、PUの予測ブロックを生成するために単予測または双予測を使用し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために単予測を使用するとき、PUは単一の動きベクトル(MV:motion vector)を有し得る。ビデオエンコーダ20が、PUのための予測ブロックを生成するために双予測を使用するとき、PUは2つのMVを有し得る。
[0078]ビデオエンコーダ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コーディングブロック中の対応するサンプルとの間の差分を示し得る。
[0079]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックとCb残差ブロックとCr残差ブロックとを1つまたは複数のルーマ変換ブロックとCb変換ブロックとCr変換ブロックとに分解するために4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形ブロックであり得る。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とであり得る。したがって、CUの各TUは、ルーマ変換ブロックとCb変換ブロックとCr変換ブロックとに関連し得る。TUに関連付けられたルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。
[0080]ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するためにTUのCr変換ブロックに1つまたは複数の変換を適用し得る。
[0081]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC)を実行し得る。ビデオエンコーダ20は、エントロピー符号化シンタックス要素をビットストリーム中に出力し得る。
[0082]ビデオエンコーダ20は、エントロピー符号化シンタックス要素を含むビットストリームを出力し得る。ビットストリームは、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含み得る。ビットストリームは、ネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニットのシーケンスを備え得る。NALユニットの各々はNALユニットヘッダを含み、ローバイトシーケンスペイロード(RBSP:raw byte sequence payload)をカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、RBSPはゼロビットを含む。
[0083]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはピクチャパラメータセット(PPS:picture parameter set)のためのRBSPをカプセル化し得、第2のタイプのNALユニットはコード化スライスのためのRBSPをカプセル化し得、第3のタイプのNALユニットはSEIのためのRBSPをカプセル化し得、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、ビデオコーディングレイヤ(VCL)NALユニットと呼ばれることがある。
[0084]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を復号するために、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから復号されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構成し得る。ビデオデータを再構成するための処理は、概して、ビデオエンコーダ20によって実行されるプロセスの逆であり得る。たとえば、ビデオデコーダ30は、現在CUのPUのための予測ブロックを決定するためにPUのMVを使用し得る。加えて、ビデオデコーダ30は、現在CUのTUに関連付けられた変換係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連付けられた変換ブロックを再構成するために、変換係数ブロックに対して逆変換を実行し得る。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構成し得る。ピクチャの各CUのためのコーディングブロックを再構成することによって、ビデオデコーダ30はピクチャを再構成し得る。
[0085]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。たとえば、パレットベースコーディングでは、上記で説明されたイントラ予測またはインター予測コーディング技法を実行するのではなく、ビデオエンコーダ20およびビデオデコーダ30は、特定のエリア(たとえば、所与のブロック)のビデオデータを表すための色のテーブルとして、いわゆるパレットをコーディングし得る。ブロック中の各ピクセルは、ピクセルの色を表すパレット中のエントリに関連付けられ得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ピクセル値をパレット中の適切な値に関係付けるインデックスをコーディングし得る。
[0086]上記の例では、ビデオエンコーダ20は、ブロックについてのパレットを決定することと、各ピクセルの値を表すためのパレット中のエントリの位置を特定することと、ピクセル値をパレットに関係付けるピクセルについてのパレットインデックスを用いてパレットを符号化することとによって、ビデオデータのブロックを符号化し得る。ビデオデコーダ30は、符号化ビットストリームから、ブロックについてのパレット、ならびにブロックのピクセルについてのパレットインデックスを取得し得る。ビデオデコーダ30は、ブロックのピクセル値を再構成するために、ピクセルのパレットインデックスをパレットのエントリに関係付け得る。
[0087]上述のように、ビデオエンコーダ20およびビデオデコーダ30は、パレットのパレットインデックスをコーディングするために、いくつかの異なるパレットコーディングモードを使用し得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、ブロックのパレットインデックスをコーディングするために、エスケープモード、(コピーアバブモードとも呼ばれる)コピートップモード、あるいは(値モードまたは左モードとも呼ばれる)インデックスモードを使用し得る。概して、「エスケープモード」を使用してサンプルをコーディングすることは、概して、ブロックをコーディングするためのパレット中で表される対応する色を有しないことがあるブロックのサンプルをコーディングすることを指し得る。上述のように、そのようなサンプルは、エスケープサンプルまたはエスケープピクセルと呼ばれることがある。
[0088]エスケープシグナリングに関して、ビデオエンコーダ20は、ブロックの特定のサンプル値について、追加のサンプルがエスケープサンプル(たとえば、ブロックをコーディングするためのパレット中で表される色値を有しないサンプル)としてコーディングされることを示すように、追加のパレットインデックスを表すデータを符号化し得る。ビデオエンコーダ20はまた、エスケープサンプルの(1つまたは複数の)色値を符号化し得る。したがって、この例では、ビデオエンコーダ20およびビデオデコーダ30は、コピートップモードとインデックスモードとを区別するためにシンタックスをコーディングし得る。さらに、ビデオエンコーダ20およびビデオデコーダ30は、次いで、コーディングされているピクセルのインデックス値に基づいて(たとえば、インデックス値がパレット中のN個のエントリ中に含まれるかどうか、またはインデックス値が追加のインデックスN+1であるかどうかに基づいて)、エスケープコード化ピクセルとインデックスモード(またはコピートップモード)とを区別し得る。
[0089]エスケープモードの場合、ビデオエンコーダ20はビットストリーム中でシグナリングし、ビデオデコーダ30は、明示的にシグナリングされたピクセル値をビットストリーム中で受信する。いくつかの例では、本開示の態様によれば、ビデオエンコーダ20およびビデオデコーダ30は、図5に関して以下で説明される技法など、エスケープピクセルコーディングのための本明細書で説明される技法の任意の組合せを実行するように構成され得る。いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、シグナリングされるビットストリームエスケープピクセル値のための規範制限(normative restriction)を導入し得、さもなければ、無制限のときに構文解析問題を生じ得る。たとえば、ビデオエンコーダ20は、16個、32個、または別の数のビンなど、最大ビット深度に基づいてエスケープピクセル値を符号化し得る。同様に、ビデオデコーダ30は、ビットストリームからのエスケープ値をパースし、最大ビット深度に基づいてエスケープ値を復号し得る。他の例では、ビデオエンコーダ20およびビデオデコーダ30は、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値のための規範制限を導入し得る。
[0090]さらに、ビデオエンコーダ20およびビデオデコーダ30は、量子化パラメータを制限するように構成され得る。すなわち、以下でより詳細に説明されるように、ビデオエンコーダ20およびビデオデコーダ30は、エスケープピクセルをコーディングするためのQPを決定するとき、本開示の技法を実装し得る。
[0091]図2は、本開示の技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。図2は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオエンコーダ20について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0092]ビデオエンコーダ20は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオエンコーダ20は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUなど、ビデオデータの様々なブロックを選択的にコーディングするように構成され得る。非パレットベースコーディングモードは、HEVCによって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオエンコーダ20は、一例では、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションのピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロック中のピクセルロケーションのうちの少なくともいくつかをパレット中の選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。シグナリングされた情報は、ビデオデータを復号するためにビデオデコーダ30によって使用され得る。
[0093]図2の例では、ビデオエンコーダ20は、予測処理ユニット100と、ビデオデータメモリ101と、残差生成ユニット102と、変換処理ユニット104と、量子化ユニット106と、逆量子化ユニット108と、逆変換処理ユニット110と、再構成ユニット112と、フィルタユニット114と、復号ピクチャバッファ116と、エントロピー符号化ユニット118とを含む。予測処理ユニット100は、インター予測処理ユニット120と、イントラ予測処理ユニット126とを含む。インター予測処理ユニット120は、動き推定ユニットと、動き補償ユニットとを含む(図示せず)。ビデオエンコーダ20は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース符号化ユニット122をも含む。他の例では、ビデオエンコーダ20は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0094]ビデオデータメモリ101は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ101に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。復号ピクチャバッファ116は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ101および復号ピクチャバッファ116は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ101は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそのような構成要素に対してオフチップであり得る。
[0095]ビデオエンコーダ20はビデオデータを受信し得る。ビデオエンコーダ20はビデオデータのピクチャのスライス中の各CTUを符号化し得る。CTUの各々は、等しいサイズのルーマコーディングツリーブロック(CTB:coding tree block)と、ピクチャの対応するCTBとに関連し得る。CTUを符号化することの一部として、予測処理ユニット100は、CTUのCTBを徐々により小さいブロックに分割するために4分木区分を実行し得る。より小さいブロックはCUのコーディングブロックであり得る。たとえば、予測処理ユニット100は、CTUに関連付けられたCTBを4つの等しいサイズのサブブロックに区分し、サブブロックのうちの1つまたは複数を4つの等しいサイズのサブブロックに区分し得、以下同様である。
[0096]ビデオエンコーダ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サイズに対する非対称区分をもサポートし得る。
[0097]インター予測処理ユニット120は、CUの各PUに対してインター予測を実行することによって、PUのための予測データを生成し得る。PUのための予測データは、PUの予測ブロックとPUのための動き情報とを含み得る。インター予測ユニット121は、PUがIスライス中にあるのか、Pスライス中にあるのか、Bスライス中にあるのかに応じて、CUのPUに対して異なる動作を実行し得る。Iスライス中では、すべてのPUがイントラ予測される。したがって、PUがIスライス中にある場合、インター予測ユニット121は、PUに対してインター予測を実行しない。したがって、Iモードで符号化されたブロックの場合、予測ブロックは、同じフレーム内の前に符号化された隣接ブロックからの空間予測を使用して形成される。
[0098]PUがPスライス中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUの参照領域について参照ピクチャのリスト(たとえば、「RefPicList0」)中の参照ピクチャを探索し得る。PUのための参照領域は、PUのサンプルブロックに最も密接に対応するサンプルブロックを含んでいる、参照ピクチャ内の領域であり得る。動き推定ユニットは、PUのための参照領域を含んでいる参照ピクチャのRefPicList0中の位置を示す参照インデックスを生成し得る。さらに、動き推定ユニットは、PUのコーディングブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMVを生成し得る。たとえば、MVは、現在の復号ピクチャ中の座標から参照ピクチャ中の座標までのオフセットを与える2次元ベクトルであり得る。動き推定ユニットは、PUの動き情報として、参照インデックスとMVとを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照ロケーションにおける実際のまたは補間されたサンプルに基づいて、PUの予測ブロックを生成し得る。
[0099]PUがBスライス中にある場合、インター予測処理ユニット120の動き推定ユニットは、PUについての単予測または双予測を実行し得る。PUについての単予測を実行するために、動き推定ユニットは、PUのための参照領域についてRefPicList0または第2の参照ピクチャリスト(「RefPicList1」)の参照ピクチャを探索し得る。動き推定ユニットは、PUの動き情報として、参照領域を含んでいる参照ピクチャのRefPicList0またはRefPicList1中の位置を示す参照インデックスと、PUの予測ブロックと参照領域に関連付けられた参照ロケーションとの間の空間変位を示すMVと、参照ピクチャがRefPicList0中にあるのかRefPicList1中にあるのかを示す1つまたは複数の予測方向インジケータとを出力し得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成し得る。
[0100]PUについての双方向インター予測を実行するために、動き推定ユニットは、PUのための参照領域についてRefPicList0中の参照ピクチャを探索し得、PUのための別の参照領域についてRefPicList1中の参照ピクチャをも探索し得る。動き推定ユニットは、参照領域を含んでいる参照ピクチャのRefPicList0およびRefPicList1中の位置を示す参照ピクチャインデックスを生成し得る。さらに、動き推定ユニットは、参照領域に関連付けられた参照ロケーションとPUのサンプルブロックとの間の空間変位を示すMVを生成し得る。PUの動き情報は、PUの参照インデックスとMVとを含み得る。インター予測処理ユニット120の動き補償ユニットは、PUの動きベクトルによって示された参照領域における実際のまたは補間されたサンプルに少なくとも部分的に基づいて、PUの予測ブロックを生成し得る。
[0101]ビデオエンコーダ20は、パレットベースコーディングを実行するように構成され得る。HEVCフレームワークに関して、一例として、パレットベースコーディング技法は、コーディングユニット(CU)モードとして使用されるように構成され得る。他の例では、パレットベースコーディング技法は、HEVCのフレームワーク中でPUモードとして使用されるように構成され得る。したがって、CUモードのコンテキストにおいて(本開示全体にわたって)本明細書で説明される開示されるプロセスのすべてが、追加または代替として、PUに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコーディング技法が、独立して、あるいは他の既存のまたはまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限または限定であると見なされるべきではない。これらの場合、パレットコーディングのためのユニットは、正方形ブロック、非正方形ブロック、矩形ブロック、さらには非矩形形状の領域であり得る。
[0102]パレットベース符号化ユニット122は、たとえば、パレットベース符号化モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース符号化ユニット122は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくともいくつかの位置のピクセル値を表すためにパレット中のピクセル値を選択し、ビデオデータのブロックの位置のうちの少なくともいくつかを選択されたピクセル値にそれぞれ対応するパレット中のエントリに関連付ける情報をシグナリングするように構成され得る。様々な機能が、パレットベース符号化ユニット122によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
[0103]いくつかの例では、本開示の態様によれば、パレットベース符号化ユニット122は、ビットストリーム中でシグナリングされ得る、シグナリングされたビットストリームエスケープピクセル値(たとえば、palette_escape_val)のための規範制限を導入するように構成され得る。この規範制限は、たとえば、コンフォーマントビットストリームが、ある値よりも大きいエスケープピクセル値、たとえば、palette_escape_valを含んでいないことがあるか、またはエントロピーコーディング2値化、たとえば、CABACコーディングのための2値化の後にある数よりも大きい数のビンによって表されないことがあるというビットストリーム制約によって定義され得る。いくつかの例では、パレットベース符号化ユニット122は、本開示の技法が、以下で説明されるエントロピー符号化ユニット118を使用することを課し得る。
[0104]たとえば、ビンの数は、16個または32個以内のビンになるように、あるいは、概して、特定のビデオコーディングアーキテクチャがサポートすることができるビンの最大数になるように制限され得る。いくつかの例では、ビンの最大数は、コーディングされているビデオデータに関連付けられた特定のレベルまたはプロファイルに基づいて変動し得る。
[0105]ビットストリーム中でシグナリングされ得るエスケープピクセル値、たとえば、palette_escape_valのための最大値が制限されるとき、これは、シンタックス要素表現(たとえば、2値化)におけるビンの数に対する限定に対応し得る。別の例では、シンタックス要素表現におけるビンの数に対して限定を課することは、ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値に対する制限に対応する。
[0106]イントラ予測処理ユニット126は、PUに対してイントラ予測を実行することによって、PUのための予測データを生成し得る。PUのための予測データは、PUのための予測ブロックと、様々なシンタックス要素とを含み得る。イントラ予測処理ユニット126は、Iスライス、Pスライス、およびBスライス中のPUに対してイントラ予測を実行し得る。
[0107]PUに対してイントラ予測を実行するために、イントラ予測処理ユニット126は、PUのための予測データの複数のセットを生成するために複数のイントラ予測モードを使用し得る。イントラ予測処理ユニット126は、PUのための予測ブロックを生成するために隣接PUのサンプルブロックからのサンプルを使用し得る。隣接PUは、PU、CU、およびCTUについて左から右、上から下の符号化順序を仮定すると、PUの上、右上、左上、または左にあり得る。イントラ予測処理ユニット126は、様々な数のイントラ予測モード、たとえば、33個の方向性イントラ予測モードを使用し得る。いくつかの例では、イントラ予測モードの数は、PUに関連付けられた領域のサイズに依存し得る。
[0108]予測処理ユニット100は、PUのためにインター予測処理ユニット120によって生成された予測データ、またはPUのためにイントラ予測処理ユニット126によって生成された予測データの中からCUのPUのための予測データを選択し得る。いくつかの例では、予測処理ユニット100は、予測データのセットのレート/ひずみメトリックに基づいてCUのPUのための予測データを選択する。選択された予測データの予測ブロックは、本明細書では、選択された予測ブロックと呼ばれることがある。
[0109]残差生成ユニット102は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックと、CUのPUの選択された予測ルーマブロック、予測Cbブロックおよび予測Crブロックとに基づいて、CUのルーマ残差ブロックと、Cb残差ブロックと、Cr残差ブロックとを生成し得る。たとえば、残差生成ユニット102は、残差ブロック中の各サンプルが、CUのコーディングブロック中のサンプルとCUのPUの対応する選択された予測ブロック中の対応するサンプルとの間の差分に等しい値を有するように、CUの残差ブロックを生成し得る。
[0110]変換処理ユニット104は、CUに関連付けられた残差ブロックをCUのTUに関連付けられた変換ブロックに区分するために、4分木区分を実行し得る。したがって、TUは、ルーマ変換ブロックと2つのクロマ変換ブロックとに関連付けられ得る。CUのTUのルーマ変換ブロックとクロマ変換ブロックとのサイズおよび位置は、CUのPUの予測ブロックのサイズおよび位置に基づくことも基づかないこともある。「残差4分木」(RQT:residual quad-tree)として知られる4分木構造は、領域の各々に関連付けられたノードを含み得る。CUのTUはRQTのリーフノードに対応し得る。
[0111]変換処理ユニット104は、TUの変換ブロックに1つまたは複数の変換を適用することによって、CUの各TUのための変換係数ブロックを生成し得る。変換処理ユニット104は、TUに関連付けられた変換ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット104は、離散コサイン変換(DCT)、方向変換、または概念的に同様の変換を変換ブロックに適用し得る。いくつかの例では、変換処理ユニット104は変換ブロックに変換を適用しない。そのような例では、変換ブロックは変換係数ブロックとして扱われ得る。
[0112]量子化ユニット106は、係数ブロック中の変換係数を量子化し得る。量子化プロセスは、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、量子化中にnビットの変換係数がmビットの変換係数に切り捨てられることがあり、ここで、nはmよりも大きい。量子化ユニット106は、CUに関連付けられた量子化パラメータ(QP)値に基づいて、CUのTUに関連付けられた係数ブロックを量子化し得る。ビデオエンコーダ20は、CUに関連付けられたQP値を調整することによって、CUに関連付けられた係数ブロックに適用される量子化の程度を調整し得る。量子化は情報の損失をもたらし得、したがって、被量子化変換係数は、元の係数よりも低い精度を有し得る。いくつかの例では、本開示の態様によれば、量子化ユニット106は、エスケープピクセルのためのQPを決定するために、本明細書で説明される技法を適用し得る。
[0113]逆量子化ユニット108および逆変換処理ユニット110は、係数ブロックから残差ブロックを再構成するために、それぞれ、係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット112は、TUに関連付けられた再構成された変換ブロックを生成するために、再構成された残差ブロックを、予測処理ユニット100によって生成された1つまたは複数の予測ブロックからの対応するサンプルに加算し得る。このようにCUの各TUについて変換ブロックを再構成することによって、ビデオエンコーダ20は、CUのコーディングブロックを再構成し得る。
[0114]フィルタユニット114は、CUに関連付けられたコーディングブロック内のブロッキングアーティファクトを低減するために1つまたは複数のデブロッキング演算を実行し得る。復号ピクチャバッファ116は、フィルタユニット114が、再構成されたコーディングブロックに対して1つまたは複数のデブロッキング演算を実行した後に、再構成されたコーディングブロックを記憶し得る。インター予測処理ユニット120は、他のピクチャのPUに対してインター予測を実行するために、再構成されたコーディングブロックを含んでいる参照ピクチャを使用し得る。さらに、イントラ予測処理ユニット126は、CUと同じピクチャ中の他のPUに対してイントラ予測を実行するために、復号ピクチャバッファ116中の再構成されたコーディングブロックを使用し得る。
[0115]エントロピー符号化ユニット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)コーディング演算、指数ゴロム符号化演算、または別のタイプのエントロピー符号化演算をデータに対して実行し得る。ビデオエンコーダ20は、エントロピー符号化ユニット118によって生成されたエントロピー符号化データを含むビットストリームを出力し得る。たとえば、ビットストリームは、CUのための残差4分木(RQT)を表すデータを含み得る。
[0116]いくつかの例では、本開示の態様によれば、パレットベース符号化ユニット122および/またはエントロピー符号化ユニット118は、ビットストリーム中でシグナリングされ得る、シグナリングされたビットストリームエスケープピクセル値(たとえば、palette_escape_val)のための規範制限を導入するように構成され得る。これは、たとえば、コンフォーマントビットストリームが、ある値よりも大きいpalette_escape_valを含んでいないことがあるか、または2値化の後にある数よりも大きい数のビンによって表されないことがあるというビットストリーム制約によって定義され得る。たとえば、エンコーダ20は、一例では16個のビンに、または別の例では32個に、あるいは、概して、特定のアーキテクチャがサポートすることができるビンの最大数にビンの数を制限し得る。したがって、エンコーダ20は、ビンの特定の数よりも大きくない数を有するエスケープ値をシグナリングし得る。デコーダ30は、説明された様式で制限されたビットストリームを受信するように構成され得、デコーダ30は、エンコーダ20によって課された制限に従ってビットストリームを復号し得る。
[0117]ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値が制限されるとき、これは、シンタックス要素表現(2値化)におけるビンの数に対する限定に対応し得る。別の例では、シンタックス要素表現におけるビンの数に対して限定を課することは、ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値に対する制限に対応する。いくつかの態様がpalette_escape_valに関して上記で説明されたが、本開示の1つまたは複数の態様による他の例では、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値に適用される制限が導入され得る。
[0118]図3は、本開示の技法を実装するように構成された例示的なビデオデコーダ30を示すブロック図である。図3は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、HEVCコーディングのコンテキストにおいてビデオデコーダ30について説明する。ただし、本開示の技法は、他のコーディング規格または方法に適用可能であり得る。
[0119]ビデオデコーダ30は、本開示で説明される様々な例に従ってパレットベースビデオコーディングのための技法を実行するように構成され得るデバイスの一例を表す。たとえば、ビデオデコーダ30は、パレットベースコーディングまたは非パレットベースコーディングのいずれかを使用して、HEVCコーディングにおけるCUまたはPUなど、ビデオデータの様々なブロックを選択的に復号するように構成され得る。非パレットベースコーディングモードは、HEVCによって規定される様々なコーディングモードなど、様々なインター予測時間コーディングモードまたはイントラ予測空間コーディングモードを指し得る。ビデオデコーダ30は、一例では、(たとえば、ビットストリーム中のシグナリングされたまたは予測された情報に基づいて)ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。
[0120]図3の例では、ビデオデコーダ30は、エントロピー復号ユニット150と、ビデオデータメモリ151と、予測処理ユニット152と、逆量子化ユニット154と、逆変換処理ユニット156と、再構成ユニット158と、フィルタユニット160と、復号ピクチャバッファ162とを含む。予測処理ユニット152は、動き補償ユニット164と、イントラ予測処理ユニット166とを含む。ビデオデコーダ30は、本開示で説明されるパレットベースコーディング技法の様々な態様を実行するように構成された、パレットベース復号ユニット165をも含む。他の例では、ビデオデコーダ30は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0121]ビデオデータメモリ151は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ151に記憶されるビデオデータは、たとえば、コンピュータ可読媒体から、たとえば、カメラなどのローカルビデオソースから、ビデオデータのワイヤードまたはワイヤレスネットワーク通信を介して、あるいは物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ151は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。復号ピクチャバッファ162は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM)、または他のタイプのメモリデバイスなど、様々なメモリデバイスのうちのいずれかによって形成され得る。ビデオデータメモリ151および復号ピクチャバッファ162は、同じメモリデバイスまたは別個のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ151は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0122]たとえば、ビデオデータメモリ151によって形成されたコード化ピクチャバッファ(CPB)は、ビットストリームの符号化ビデオデータ(たとえば、NALユニット)を受信し、記憶し得る。エントロピー復号ユニット150は、CPBから符号化ビデオデータ(たとえば、NALユニット)を受信し、シンタックス要素を復号するためにNALユニットをパースし得る。エントロピー復号ユニット150は、NALユニット中のエントロピー符号化シンタックス要素をエントロピー復号し得る。予測処理ユニット152、逆量子化ユニット154、逆変換処理ユニット156、再構成ユニット158、およびフィルタユニット160は、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
[0123]ビットストリームのNALユニットはコード化スライスNALユニットを含み得る。ビットストリームを復号することの一部として、エントロピー復号ユニット150は、コード化スライスNALユニットからシンタックス要素を抽出し、エントロピー復号し得る。コード化スライスの各々は、スライスヘッダとスライスデータとを含み得る。スライスヘッダは、スライスに関するシンタックス要素を含んでいることがある。スライスヘッダ中のシンタックス要素は、スライスを含んでいるピクチャに関連付けられたPPSを識別するシンタックス要素を含み得る。
[0124]ビットストリームからシンタックス要素を復号することに加えて、ビデオデコーダ30は、区分されていないCUに対して再構成演算を実行し得る。区分されていないCUに対して再構成演算を実行するために、ビデオデコーダ30はCUの各TUに対して再構成演算を実行し得る。CUの各TUに対して再構成演算を実行することによって、ビデオデコーダ30はCUの残差ブロックを再構成し得る。
[0125]CUのTUに対して再構成演算を実行することの一部として、逆量子化ユニット154は、TUに関連付けられた係数ブロックを逆量子化、すなわち、量子化解除し得る。逆量子化ユニット154は、量子化の程度を決定し、同様に、逆量子化ユニット154が適用すべき逆量子化の程度を決定するために、TUのCUに関連付けられたQP値を使用し得る。すなわち、圧縮比、すなわち、元のシーケンスと圧縮されたシーケンスとを表すために使用されるビット数の比は、変換係数を量子化するときに使用されるQPの値を調整することによって制御され得る。圧縮比はまた、採用されたエントロピーコーディングの方法に依存し得る。いくつかの例では、本開示の態様によれば、逆量子化ユニット154は、エスケープピクセルのためのQPを決定するために、本明細書で説明される技法を適用し得る。
[0126]逆量子化ユニットが係数ブロックを逆量子化した後に、逆変換処理ユニット156は、TUに関連付けられた残差ブロックを生成するために係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット156は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT:Karhunen-Loeve transform)、逆回転変換、逆方向変換、または別の逆変換を係数ブロックに適用し得る。
[0127]イントラ予測を使用してPUが符号化される場合、イントラ予測処理ユニット166は、PUのための予測ブロックを生成するためにイントラ予測を実行し得る。イントラ予測処理ユニット166は、空間的に隣接するPUの予測ブロックに基づいてPUのための予測ルーマブロック、予測Cbブロックおよび予測Crブロックを生成するためにイントラ予測モードを使用し得る。イントラ予測処理ユニット166は、ビットストリームから復号された1つまたは複数のシンタックス要素に基づいてPUのためのイントラ予測モードを決定し得る。
[0128]予測処理ユニット152は、ビットストリームから抽出されたシンタックス要素に基づいて、第1の参照ピクチャリスト(RefPicList0)と第2の参照ピクチャリスト(RefPicList1)とを構成し得る。さらに、PUがインター予測を使用して符号化される場合、エントロピー復号ユニット150はPUのための動き情報を抽出し得る。動き補償ユニット164は、PUの動き情報に基づいて、PUのための1つまたは複数の参照領域を決定し得る。動き補償ユニット164は、PUのための1つまたは複数の参照ブロックにおけるサンプルブロックに基づいて、PUのための予測ルーマブロック、予測Cbブロックおよび予測Crブロックを生成し得る。
[0129]再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、適用可能なとき、CUのTUに関連付けられたルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロック、ならびにCUのPUの予測ルーマブロック、予測Cbブロックおよび予測Crブロック、すなわち、イントラ予測データまたはインター予測データのいずれかを使用し得る。たとえば、再構成ユニット158は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを再構成するために、ルーマ変換ブロック、Cb変換ブロックおよびCr変換ブロックのサンプルを、予測ルーマブロック、予測Cbブロックおよび予測Crブロックの対応するサンプルに加算し得る。
[0130]フィルタユニット160は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックに関連付けられたブロッキングアーティファクトを低減するためにデブロッキング演算を実行し得る。ビデオデコーダ30は、CUのルーマコーディングブロック、CbコーディングブロックおよびCrコーディングブロックを復号ピクチャバッファ162に記憶し得る。復号ピクチャバッファ162は、後続の動き補償、イントラ予測、および図1のディスプレイデバイス32などのディスプレイデバイス上での提示のために、参照ピクチャを与え得る。たとえば、ビデオデコーダ30は、復号ピクチャバッファ162中のルーマブロック、CbブロックおよびCrブロックに基づいて、他のCUのPUに対してイントラ予測演算またはインター予測演算を実行し得る。
[0131]ビデオデコーダ30は、パレットベースコーディングを実行するように構成され得る。パレットベース復号ユニット165は、たとえば、パレットベース復号モードが、たとえば、CUまたはPUのために選択されるとき、パレットベース復号を実行し得る。たとえば、パレットベース復号ユニット165は、ピクセル値を示すエントリを有するパレットを生成し、ビデオデータのブロック中の少なくともいくつかのピクセルロケーションをパレット中のエントリに関連付ける情報を受信し、情報に基づいてパレット中のピクセル値を選択し、パレット中の選択されたピクセル値に基づいてブロックのピクセル値を再構成するように構成され得る。様々な機能が、パレットベース復号ユニット165によって実行されるものとして説明されたが、そのような機能の一部または全部は、他の処理ユニット、または異なる処理ユニットの組合せによって実行され得る。
[0132]パレットベース復号ユニット165は、パレットコーディングモード情報を受信し、パレットコーディングモードがブロックに適用されることをパレットコーディングモード情報が示すとき、上記の動作を実行し得る。パレットコーディングモードがブロックに適用されないことをパレットコーディングモード情報が示すとき、または他のモード情報が異なるモードの使用を示すとき、予測処理ユニット152は、たとえば、HEVCインター予測またはイントラ予測コーディングモードなど、非パレットベースコーディングモードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、たとえば、HEVCコーディングプロセスに従って生成されるCUまたはPUであり得る。パレットベースコーディングモードは、複数の異なるパレットベースコーディングモードのうちの1つを備え得るか、または単一のパレットベースコーディングモードがあり得る。
[0133]いくつかの例では、本開示の態様によれば、パレットベース復号ユニット165および/またはエントロピー復号ユニット150は、ビットストリーム中でシグナリングされ得る、シグナリングされたビットストリームエスケープピクセル値(たとえば、palette_escape_val)のための規範制限(normative restriction)を導入するように構成され得る。これは、たとえば、コンフォーマントビットストリームが、ある値よりも大きいpalette_escape_valを含んでいないことがあるか、または2値化の後にある数よりも大きい数のビンによって表されないことがあるというビットストリーム制約によって定義され得る。たとえば、ビンの数は、一例では16個以内のビン、または別の例では32個以内のビンになるように、あるいは、概して、特定のアーキテクチャがサポートすることができるビンの最大数になるように制限され得る。
[0134]ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値が制限されるとき、これは、値のシンタックス要素表現(2値化)におけるビンの数に対する限定に対応し得る。別の例では、シンタックス要素表現におけるビンの数に対して限定を課することは、ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値に対する制限に対応する。
[0135]palette_escape_valが最大許容値よりも大きいような事例では、ビデオデコーダ30は、エラーが生じたと決定し得る。そのような例では、エラーをシグナリングするためのフラグが使用され得る。代替的に、さらなる実施形態では、デコーダ30は、検出された状態を、バイト整合が失われていることがあるというインジケーションと見なし得、ビットストリーム中の後の位置におけるバイト整合の検出までのすべてのビットストリームデータを廃棄し得る。
[0136]一例では、ビデオエンコーダ20、パレットベース符号化ユニット122および/またはエントロピー符号化ユニット118は、ビットストリーム中でシグナリングされる色成分入力ビット深度に基づいて、エスケープピクセル値を符号化し得る。そのような例では、所与の色成分のためのエスケープ値は、両端値を含む、0〜(1<<ビット深度)−1のレンジ内に入るように制限され得る。この式では、ビット深度は、当該の色成分のためのビット深度であり得る。そのようなビット深度は、エンコーダに対する入力パラメータであり得、それは、エンコーダによって生成されたビットストリーム中のシーケンスパラメータセット(SPS)中でシグナリングされるか、または別の方法で決定され得る。他の例では、ビデオエンコーダ20は、エスケープピクセル値を、それらが、出力ビット深度(すなわち、入力ビット深度ではなく)に基づく、あるいは処理のためにエンコーダまたはデコーダによって使用される内部ビット深度に基づく最大値を超えないように符号化し得る。ビデオデコーダ30、パレットベース復号ユニット165、および/またはエントロピー復号ユニット150は、ビットストリームを受信し、エスケープピクセル値のこの制限に基づいてビットストリームを復号し得る。
[0137]別の例では、ビデオエンコーダ20、パレットベース符号化ユニット122および/またはエントロピー符号化ユニット118は、1つまたは複数の色成分(たとえば、ルーマ色成分またはクロマ色成分)のためのコーデック(たとえば、ビデオエンコーダ20またはビデオデコーダ30)によってサポートされる最大ビット深度に対応する色成分ビット深度に基づいて、エスケープピクセル値を符号化し得る。そのような例では、ビット深度は、1つの色成分、あるいはスクリーンコンテンツコーディングプロファイルなど、あるプロファイル、および/またはいくつかのレベルのためのすべての色成分のための最大のサポートされるビット深度に対応し得る。ビデオデコーダ30、パレットベース復号ユニット165、および/またはエントロピー復号ユニット150は、ビットストリームを受信し、エスケープピクセル値のそのような制限に基づいてビットストリームを復号し得る。いくつかの例が、palette_escape_valの値に対する制限を適用することおよび/または実施することに関して説明されてきたが、本開示の1つまたは複数の態様による他の例では、同様の制限が、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値に適用され得ることを理解されたい。
[0138]他の例は、エスケープ値またはエスケープ値のための最大値に対する量子化の影響を考慮する。たとえば、ビデオエンコーダ20および/または量子化ユニット106は、値を量子化ステップサイズ(qStep)で除算し、次いで結果を丸めることによって、エスケープ値など、値を量子化し得る。ビデオデコーダ30および逆量子化ユニット154は、そのような値にqStep値を乗算することによって、値を逆量子化し得る。qStep値は、量子化パラメータの関数として決定される。しばしば、qStep値は1よりも大きくなり得、したがって、量子化(たとえば、qStepで除算すること)は、エスケープ値など、量子化された値を表すために使用されるビット数を低減することになり得る。しかしながら、いくつかの量子化パラメータ値について、qStepは1よりも小さくなり得、このことは、量子化が、エスケープ値を表すために使用されるビット数を低減せず、むしろ、量子化が、エスケープ値を表すために使用されるビット数を拡大するかまたは増加させることを意味し得る。言い換えれば、qStepが1よりも小さい場合、値をqStepで除算する量子化プロセスは、値に1よりも大きい数を事実上乗算している。
[0139]したがって、他の例では、ビデオエンコーダ20、パレットベース符号化ユニット122、エントロピー符号化ユニット118、および/または量子化ユニット106は、色成分ビット深度に基づくだけでなく、量子化パラメータにも基づいてエスケープピクセル値を符号化し得る。たとえば、ビデオエンコーダ20、パレットベース符号化ユニット122および/またはエントロピー符号化ユニット118は、エスケープピクセル値のための最大値を決定し得、ここで、最大値は、成分ビット深度と量子化パラメータの両方に基づいて決定される。一例では、所与の色成分のためのエスケープ値を、両端値を含む、0〜((1<<ビット深度−1)*kのレンジ内に入るように制限することによって、1よりも小さいqStepを用いた量子化から生じる増加された正確さが適応され得、ここで、kは、量子化パラメータおよび/またはqStep値に基づく拡大ファクタであり、ビット深度は、当該の色成分のための(または別の色成分のための、またはすべての色成分のための)ビット深度である。別の例では、所与の色成分のためのエスケープ値を、両端値を含む、0〜((1<<ビット深度+b)−1)のレンジ内に入るように制限することによって、量子化から生じる増加された正確さが適応され得、ここで、bは、量子化パラメータおよび/またはqStep値に基づく拡大ファクタであり、ビット深度は、当該の色成分のための(または別の色成分のための、またはすべての色成分のための)ビット深度である。ビデオデコーダ30、パレットベース復号ユニット165、エントロピー復号ユニット150、および/または逆量子化ユニット154は、ビットストリームを受信し、エスケープピクセル値の制限に基づいてビットストリームを復号し得る。
[0140]他の例では、1よりも小さいqStepを用いた量子化から生じる増加された正確さに適応するのではなく、ビデオエンコーダ20および/または量子化ユニット106は、qStep値が1以上であることを保証するために量子化パラメータの値を変更または制限し得る。上記で説明されたように、qStepが1よりも小さい場合、ビデオエンコーダ20および/または量子化ユニット106による量子化は、量子化されている値の拡大を生じ得る。しかしながら、いくつかの場合には、ビットストリーム中でコーディングされたエスケープ値は、ひずみまたはエラーがない完全な精度のエスケープ値をすでに表し得る。したがって、1よりも小さいqStep値を用いてエスケープ値を量子化することは、完全な精度のエスケープ値がビットストリーム中ですでにコーディングされ得るので、逆効果であり得る。そのようなエスケープ値を拡大することは、コード成分値の増加された正確さに関する改善を与えないことがあり、ビットストリームサイズを望ましくなく増加させ得る。
[0141]したがって、いくつかの例では、エスケープ値を符号化または復号するとき、qStep値は、それが1以上になるように制限され得る。qStep値は量子化パラメータ(QP)の関数であり得るので、そのような制限は、いくつかの例では、QPのための下限を決定することによって実行され得、ここで、下限は1のqStep値に対応し、ここで、QPのより高い値が、1よりも大きいqStep値に対応する。エスケープ値を符号化または復号するとき、QP値は、QP下限以上になるように制限され得る。言い換えれば、エスケープピクセルをコーディングするための量子化プロセスまたは逆量子化プロセスにおいてQP値を使用する前に、下限よりも小さいQP値は、下限に等しいように変更され、それにより、qStepが1以上であることを保証し得る。そのような例では、ビデオエンコーダ20および/または量子化ユニット106は、変更されたQPを適用することによって、エスケープ値などの値を量子化し得、ビデオデコーダ30および逆量子化ユニット154は、変更されたQPを適用することによって値を逆量子化し得る。
[0142]別の例では、ビデオエンコーダ20、パレットベース符号化ユニット122および/またはエントロピー符号化ユニット118は、エスケープピクセル値を、それらが、精度情報(たとえば、extended_precision_processing_flag)に基づく、および色成分ビット深度にも基づく最大値に制限されるように符号化し得る。そのような例に対応する特定の例示的な計算が、以下でさらに説明される。ビデオデコーダ30、パレットベース復号ユニット165および/またはエントロピー復号ユニット150は、ビットストリームを受信し、精度情報(たとえば、extended_precision_processing_flag)に基づいて、および色成分ビット深度にも基づいて決定された最大値に従ってビットストリームを復号し得る。
[0143]さらなる例では、エスケープ値は、変換係数として扱われ得、変換係数に課されるすべての制限が、エスケープ値の値を限定するために適用され得る。またさらなる例では、エスケープ値の2値化が、extended_precision_processing_flagに基づいて制御され得る。extended_precision_processing_flagの値に応じて、エスケープ値の2値化は別様に導出され得る。異なる2値化プロセスに対応する特定の例が、以下でさらに説明される。
[0144]図4は、本開示の技法に従って、ビデオデータをコーディングするためのパレットを決定することの一例を示す概念図である。図4の例は、第1のパレット184に関連付けられた第1のコーディングユニット(CU)180と第2のパレット192に関連付けられた第2のCU188とを有するピクチャ178を含む。第1のCU180および第2のCU188は、パレットモード(PAL)を使用してコーディングされる。以下でより詳細に説明されるように、および本開示の技法によれば、第2のパレット192は第1のパレット184に基づく。ピクチャ178は、イントラ予測コーディングモードを用いてコーディングされるブロック196と、インター予測コーディングモードを用いてコーディングされるブロック200とをも含む。
[0145]図4の技法は、ビデオエンコーダ20(図1および図2)とビデオデコーダ30(図1および図3)のコンテキストにおいて、説明の目的でHEVCビデオコーディング規格に関して、説明される。しかしながら、本開示の技法はこのように限定されず、他のビデオコーディングプロセスおよび/または規格において他のビデオコーディングプロセッサおよび/またはデバイスによって適用され得ることを、理解されたい。
[0146]概して、パレットは、現在コーディングされているCU、図4の例では第2のCU188について支配的である、および/またはそのCUを表現する、いくつかのピクセル値を指す。第1のパレット184および第2のパレット192は、複数のパレットを含むものとして示されている。いくつかの例では、本開示の態様によれば、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーダは、CUの各色成分について別々にパレットをコーディングし得る。たとえば、ビデオエンコーダ20は、CUのルーマ(Y)成分のためのパレットと、CUのクロマ(U)成分のための別のパレットと、CUのクロマ(V)成分のためのまた別のパレットとを符号化し得る。この例では、YパレットのエントリはCUのピクセルのY値を表し得、UパレットのエントリはCUのピクセルのU値を表し得、VパレットのエントリはCUのピクセルのV値を表し得る。
[0147]他の例では、ビデオエンコーダ20は、CUのすべての色成分について単一のパレットを符号化し得る。この例では、ビデオエンコーダ20は、Yiと、Uiと、Viとを含む、トリプル値であるi番目のエントリを有するパレットを符号化し得る。この場合、パレットは、ピクセルの成分の各々についての値を含む。したがって、複数の個々のパレットを有するパレットのセットとしての第1のパレット184および第2のパレット192の表現は、一例にすぎず、限定することは意図されない。
[0148]図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によって送信される。
[0149]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、第1のパレット184に基づいて第2のパレット192を決定し得る。たとえば、ビデオエンコーダ20および/またはビデオデコーダ30は、1つまたは複数のブロックの位置を特定し得、そのブロックから、予測パレット、この例では第1のパレット184が決定される。予測の目的で使用されているエントリの組合せは、予測子パレットと呼ばれることがある。
[0150]図4の例では、第2のパレット192は、それぞれ、エントリインデックス値1、エントリインデックス値2、およびエントリインデックス値3を有する3つのエントリ208〜212を含む。エントリ208〜212は、それぞれ、ピクセル値A、ピクセル値B、およびピクセル値Dを含むピクセル値に、パレットインデックスを関係付ける。この例では、ビデオエンコーダ20は、(予測子パレットを表す、ただし、予測子パレットはいくつかのブロックのエントリを含み得る)第1のパレット184のどのエントリが第2のパレット192中に含まれるかを示す1つまたは複数のシンタックス要素をコーディングし得る。
[0151]図4の例では、1つまたは複数のシンタックス要素は、ベクトル216として示される。ベクトル216は、いくつかの関連付けられたビン(またはビット)を有し、各ビンは、そのビンに関連付けられたパレット予測子が現在パレットのエントリを予測するために使用されるかどうかを示す。たとえば、ベクトル216は、第1のパレット184の最初の2つのエントリ(202および204)が、第2のパレット192中に含まれる(ベクトル216中の「1」の値)が、第1のパレット184の第3のエントリが、第2のパレット192中に含まれない(ベクトル216中の「0」の値)ことを示す。図4の例では、ベクトルは、ブールベクトルである。ベクトルはパレット予測ベクトルと呼ばれることがある。
[0152]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、パレット予測を実行するとき、(パレット予測子テーブルと呼ばれることもある)パレット予測子リストを決定し得る。パレット予測子リストは、現在ブロックをコーディングするためのパレットの1つまたは複数のエントリを予測するために使用される1つまたは複数の隣接ブロックのパレットからのエントリを含み得る。ビデオエンコーダ20およびビデオデコーダ30は、同じ様式でリストを構成し得る。ビデオエンコーダ20およびビデオデコーダ30は、パレット予測子リストのどのエントリが現在ブロックをコーディングするためのパレット中に含まれるべきであるかを示すために、(ベクトル216などの)データをコーディングし得る。
[0153]図5は、本開示の技法に従って、ピクセルのブロックについてのパレットへのパレットインデックスを決定することの一例を示す概念図である。たとえば、図5は、パレットインデックスに関連付けられたピクセルのそれぞれの位置をパレット244のエントリに関係付けるパレットインデックスのマップ240を含む。たとえば、インデックス1が値Aに関連付けられ、インデックス2が値Bに関連付けられ、インデックス3が値Cに関連付けられる。さらに、エスケープサンプルが暗黙的エスケープシグナリングを使用して示されるとき、ビデオエンコーダ20およびビデオデコーダ30はまた、インデックス4として図5に示されている追加のインデックスをパレット244に追加し得、これは、インデックス4に関連付けられたマップ240のサンプルがエスケープサンプルであることを示し得る。この場合、ビデオエンコーダ20は、ピクセル値がパレット244中に含まれない場合、マップ240中の位置についての実際のピクセル値(またはそれの量子化バージョン)のインジケーションを符号化し得る(および、ビデオデコーダ30は、符号化ビットストリームからそのインジケーションを取得し得る)。
[0154]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、どのピクセル位置がパレットインデックスに関連付けられるかを示す追加のマップをコーディングするように構成され得る。たとえば、マップ中の(i,j)のエントリがCUの(i,j)の位置に対応すると仮定する。ビデオエンコーダ20は、エントリが、関連付けられたインデックス値を有するかどうかを示す、マップの各エントリ(すなわち、各ピクセル位置)のための1つまたは複数のシンタックス要素を符号化し得る。たとえば、ビデオエンコーダ20は、CU中の(i,j)のロケーションにおけるピクセル値がパレット244中の値のうちの1つであることを示すために、1の値を有するフラグを符号化し得る。そのような例では、ビデオエンコーダ20はまた、パレット中のそのピクセル値を示し、ビデオデコーダがピクセル値を再構成することを可能にするために、(値1〜3として図5の例に示されている)パレットインデックスを符号化し得る。
[0155]パレット244が単一のエントリと関連付けられたピクセル値とを含む事例では、ビデオエンコーダ20は、インデックス値のシグナリングをスキップし得る。ビデオエンコーダ20は、CU中の(i,j)のロケーションにおけるピクセル値がパレット244中の値のうちの1つではないことを示すために、0の値を有するようにフラグを符号化し得る。この例では、ビデオエンコーダ20はまた、ピクセル値を再構成する際にビデオデコーダ30によって使用するために、ピクセル値のインジケーションを符号化し得る。たとえば、ビデオエンコーダ20はピクセル値を明示的にコーディングし得る。いくつかの事例では、ピクセル値は不可逆様式でコーディングされ得る。
[0156]CUの1つの位置におけるピクセルの値は、CUの他の位置における1つまたは複数の他のピクセルの値のインジケーションを与え得る。たとえば、CUの隣接ピクセル位置が、同じピクセル値を有するか、または(2つ以上のピクセル値が単一のインデックス値にマッピングされ得る、不可逆コーディングの場合)同じインデックス値にマッピングされ得る確率が比較的高くなり得る。
[0157]したがって、ビデオエンコーダ20は、一緒にコーディングされる、所与のスキャン順序での連続するピクセルまたはパレットインデックスの数を示す1つまたは複数のシンタックス要素を符号化し得る。上述のように、パレットインデックス(またはパレットインデックスによって示されるピクセル値)のストリングは、本明細書ではランと呼ばれることがある。ビデオデコーダ30は、符号化ビットストリームからランを示すシンタックス要素を取得し、同じピクセル値またはインデックス値を有する連続するロケーションの数を決定するためにそのデータを使用し得る。
[0158]上述のように、ランは、コピートップモードまたはインデックスモードとともに使用され得る。説明の目的のための一例では、マップ240の行264および268について考える。水平方向の左から右へのスキャン方向を仮定すると、行264は、「1」の3つのパレットインデックスと、「2」の2つのパレットインデックスと、「3」の3つのパレットインデックスとを含む。行268は、「1」の5つのパレットインデックスと、「3」の2つのパレットインデックスと、エスケープサンプルと呼ばれることがある(インデックス4によって表される)パレット244中に含まれない1つのサンプルとを含む。
[0159]この例では、ビデオエンコーダ20は、行268のためのデータを符号化するためにコピートップモードを使用し得る。たとえば、ビデオエンコーダ20は、行268の第1の位置(行268の一番左の位置)が行264の第1の位置と同じであることを示す、1つまたは複数のシンタックス要素を符号化し得る。ビデオエンコーダ20はまた、行268中のスキャン方向での2つの連続するエントリの次のランが行264の第1の位置と同じであることを示す、1つまたは複数のシンタックス要素を符号化し得る。
[0160](上述の)行264の第1の位置と2つのエントリのランとを示す1つまたは複数のシンタックス要素を符号化した後に、ビデオエンコーダ20は、値モードを使用して、(左から右に)行268中の第4の位置と第5の位置とを符号化し得る。たとえば、ビデオエンコーダ20は、第4の位置について1の値を示す1つまたは複数のシンタックス要素と、1のランを示す1つまたは複数のシンタックス要素とを符号化し得る(たとえば、値モード)。したがって、ビデオエンコーダ20は、別のラインと無関係にこれらの2つの位置を符号化する。
[0161]ビデオエンコーダ20は、次いで、上の行264に対してコピートップモードを使用して、行268中の3のインデックス値を有する第1の位置を符号化し得る。たとえば、ビデオエンコーダ20は、コピートップモードと1のランとをシグナリングし得る。したがって、ビデオエンコーダ20は、たとえば、ランを使用して、ラインのピクセル値またはパレットインデックスをラインの他の値に対してコーディングすること、ラインのピクセル値またはパレットインデックスを別のライン(または列)の値に対してコーディングすること、あるいはそれらの組合せの間で選択し得る。ビデオエンコーダ20は、いくつかの例では、この選択を行うために、レート/ひずみ最適化を実行し得る。
[0162]ビデオエンコーダ20は、次いで、(左から右に)行268の最終サンプルのためのエスケープサンプルを符号化し得、これはパレット244中に含まれない。たとえば、ビデオエンコーダ20は、エスケープサンプルとして行268の最終位置を符号化し得る。すなわち、ビデオエンコーダ20は、行268の最終位置がエスケープサンプル(たとえば、インデックス4)であるというインジケーション、ならびにサンプル値のインジケーションを符号化し得る。ビデオデコーダ30は、符号化ビットストリームから上記で説明されたシンタックスを取得し、そのようなシンタックスを使用して行268を再構成し得る。
[0163]一例では、エスケープサンプルをシグナリングまたはコーディングするために、ビデオエンコーダ20およびビデオデコーダ30は、パレット244に追加のインデックスを追加し得る(エントリインデックス4)。ビデオエンコーダ20およびビデオデコーダ30は、サンプルがエスケープサンプルとしてコーディングされることを示すために、パレット244への追加のインデックス、たとえば、インデックス4を使用し得る。しかしながら、追加のインデックスは、関連付けられた色値を有しない。そうではなく、ビデオエンコーダ20およびビデオデコーダ30はまた、追加のインデックスに関連付けられた各サンプルのための色値をコーディングする。サンプルがエスケープサンプルとしてコーディングされない場合、ビデオエンコーダ20およびビデオデコーダ30は、palette_modeシンタックス要素など、モードがコピートップモードであるのかインデックスモードであるのかを示すためのデータをコーディングし得る。
[0164]いくつかの例では、ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータのブロックのすべてのサンプルについて、ブロックの少なくとも1つのサンプルが、ブロックのための色のパレット中に含まれていない色値に基づいてコーディングされるかどうかを示す、1つまたは複数のブロックレベルシンタックス要素をコーディングするように構成され得る。図5の例に関して、ビデオエンコーダ20およびビデオデコーダ30は、マップ240の少なくとも1つのサンプルが、エスケープサンプル、すなわち、行268の最終サンプルとしてコーディングされることを示す、マップ240に関連付けられた1つまたは複数のシンタックス要素をコーディングし得る。
[0165]一例では、1つまたは複数のシンタックス要素は、ブロックレベルエスケープフラグであり得る。たとえば、ビデオエンコーダ20は、マップ240が、エスケープサンプルとしてコーディングされるサンプルを含むことを示すための、1の値を有するエスケープフラグを符号化し得る。同様に、ビデオデコーダ30は、マップ240が、エスケープサンプルとしてコーディングされるサンプルを含むことを示す、1の値を有するエスケープフラグを復号し得る。したがって、エスケープフラグに従って、ビデオエンコーダ20はマップ240を符号化し得、ビデオデコーダ30はマップ240を復号し得る。たとえば、ビデオエンコーダ20およびビデオデコーダ30は、インデックス4をパレット244に追加し得、インデックス4は、エスケープサンプルとしてコーディングされるサンプルを表すために使用され得る。ビデオエンコーダ20およびビデオデコーダ30は、マップ240のコーディング中に、この追加のインデックスを使用し得る。
[0166]一例として、ビデオデコーダ30は、ビットストリームからのマップ240に関連付けられたパレットコード化ブロックのためのデータをパースし得る。ビデオデコーダ30は、ブロック中の1つまたは複数のサンプルがエスケープピクセルとしてコーディングされ得るかどうかを示す、ブロックのためのブロックレベルエスケープフラグを復号し得る。ブロックレベルエスケープフラグが、エスケープサンプルとしてコーディングされるサンプルがあり得ることを示す場合、ビデオデコーダ30は、パレット244にインデックス4を追加し得る。ビデオデコーダ30はまた、他のサンプルのラン中でコーディングされないサンプル(たとえば、行264および行268に関して上記で説明されたものなど、明示的にコーディングされているサンプル)について、パレットコーディングモードを示す1つまたは複数のシンタックス要素(たとえば、palette_modeフラグなど)を復号し得る。
[0167]上記の例では、ビデオデコーダ30はまた、サンプルのためのパレットインデックスを復号し得る。ビデオデコーダ30は、復号されているサンプルのためのサンプル値をどのように復号すべきかを決定するために、復号されたパレットインデックスを使用し得る。たとえば、サンプルが4のインデックス(たとえば、エスケープサンプルに関連付けられたインデックス)を有する場合、ビデオデコーダ30は、サンプルがエスケープコード化サンプルであると決定し得、サンプルのためのサンプル値を復号し得る。サンプルが4以外のインデックスを有する場合、ビデオデコーダ30は、復号されたインデックスに基づいてパレット244から適切なサンプル値を決定し得る。ビデオデコーダ30はまた、所与のスキャン順序で現在のサンプルとともにコーディングされている他のサンプルのランを示す1つまたは複数のシンタックス要素を復号し得る。ビデオデコーダ30は、パレット244のサイズ、たとえば、4つのインデックスに等しい入力パラメータを有する切捨てバイナリコードを使用してインデックスを復号し得る。得られた切捨てバイナリコードは、プレフィックスとサフィックス(たとえば、末尾の1または0)とを含み得る。
[0168]本開示の技法は、(たとえば、ビデオエンコーダ20によって)ビットストリーム中で符号化されるか、または(たとえば、ビデオデコーダ30によって)符号化ビットストリームから復号され得る、palette_escape_valの値を規範的に制限することを含み得る。この制限は、たとえば、コンフォーマントビットストリームが、ある値よりも大きいpalette_escape_valを含んでいないものとするか、または2値化の後にある数よりも大きい数のビンによって表されないものとするというビットストリーム制約によって定義され得る。
[0169]そのような制限は、シグナリングされるエスケープ値(すなわち、palette_escape_val)にだけでなく、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値にも適用され得る。(再構成されたエスケープ値は、量子化エスケープ値に逆量子化を適用することによって決定され得る。)説明の目的で、値を制限するための1つまたは複数の技法が、palette_escape_valまたは他の値に関して説明され得るが、同じまたは同様の技法が、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/またはエスケープ値など、他の量に適用され得る。したがって、所与の最大値に値を規範的に制限するための本明細書で説明される技法は、シグナリングされるエスケープ値(すなわち、palette_escape_val)にだけでなく、量子化信号エスケープ値、再構成されたエスケープ値、非量子化エスケープ値、および/または他の形式のエスケープ値にも適用され得る。
[0170]たとえば、ビンの数は、16個以内の(すなわち、16個よりも小さいかまたはそれに等しい)ビン、または32個以内のビンになるように、あるいは、概して、特定のアーキテクチャがサポートすることができるビンの最大数になるように制限され得る。
[0171]ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値が制限されるとき、これは、シンタックス要素表現(2値化)におけるビンの数に対する限定に対応する。代替的に、シンタックス要素表現におけるビンの数に対して限定を課することは、ビットストリーム中でシグナリングされ得るpalette_escape_valのための最大値に対する制限に対応する。
[0172]palette_escape_valシンタックス要素の値は、たとえば、少なくとも、以下のうちの1つによって限定され得る。
[0173]色成分ごとのシーケンスパラメータセット(SPS)中でシグナリングされ得る入力ビット深度が知られているので、色成分の最大可能値も知られていることがある。色成分のこの最大可能値は、(1<<bitDepth)−1として計算され得、ここで、bitDepthは色成分ビット深度であり、「<<」演算子は2の補数整数表現の算術左シフトを表す。再構成されたエスケープコード化サンプル色成分値は、両端値を含む、0から(1<<bitDepth)−1の間にわたり得る。したがって、エスケープピクセルサンプル値の量子化表現であり得るpalette_escape_valは、入力または再構成されたピクセル値と同じレンジ内にあるように制限され得る。言い換えれば、コンフォーマントビットストリームは、(1<<bitDepth)−1よりも大きいpalette_escape_val値を含んでいないことがあり、ここで、bitDepthは色成分入力ビット深度である。さらなる例では、bitDepthはまた、出力ビット深度、または処理のために使用される内部ビット深度であり得る。
[0174]上記で説明されたものに加えて、palette_escape_valのレンジは、たとえば、QP値が4よりも小さいとき、正確さの増加に適応するように拡張され得る。この場合、palette_escape_val値のレンジは、0から((1<<bitDepth)−1)*kの間で定義され得、ここで、k(>1)は拡大ファクタである。たとえば、palette_escape_valは1/qStep0として定義され得、ここで、qStep0は、0に等しいQPのための量子化ステップである。代替例では、palette_escape_valは、他のあらかじめ定義されたQP値であり得る。
[0175]別の例では、QPが4よりも小さい場合など、いくつかのQP値に関連付けられたレンジ増加は、表されたpalette_escape_val値を、0から(1<<(bitDepth+b))−1の間のレンジ内に制限することによって対処され得、ここで、bは、たとえば、1/qStep0に関連付けられた正確さの増加を表す自然数である。一例では、bの値は1に等しく設定される。しかしながら、他の例では、bの値は別の値に設定される。
[0176]代替的に、本開示の別の例では、エスケープサンプルに適用されるものと同様の量子化プロセスが、変換係数のために使用され得る。そのような例では、シンタックス要素palette_escape_valは、変換係数として扱われ得、変換係数に課される制限は、このシンタックス要素のシグナリングされる値を限定するために適用され得る。より詳細には、さらなる一例では、エスケープピクセルコーディングは、変換係数コーディングの変換スキップ部分に従うことができ、ここで、大きさに対する制限を含むこと、シグナリング、および随意に同じライスパラメータ適応を使用することを伴う2値化など、プロセスのすべての態様が借りられる。いくつかの例では、プロセスのいくつかの態様のみが借りられ、一例では、たとえば、大きさに対する制限のみが再利用される。別の例では、係数コーディングのために使用される2値化は、大きさ制限とともに使用される。固定ライスパラメータは、ライスパラメータの適応の代わりに使用され得る。別の例では、使用される固定ライスパラメータは3であり得る。代替例では、固定ライスパラメータは、3よりも大きくまたは小さくなり得る。
[0177]一例では、変数Palette_escape_val_MinY、Palette_escape_val_MinC、Palette_escape_val_MaxY、およびPalette_escape_val_MaxCが、以下のように導出され得る。
[0178]
Palette_escape_val_MinY=−(1<<(extended_precision_processing_flag ? Max(15,BitDepthY+6):15))
[0179]
Palette_escape_val_MinC=−(1<<(extended_precision_processing_flag ? Max(15,BitDepthC+6):15))
[0180]
Palette_escape_val_MaxY=(1<<(extended_precision_processing_flag ? Max(15,BitDepthY+6):15))−1
[0181]
Palette_escape_val_MaxC=(1<<(extended_precision_processing_flag ? Max(15,BitDepthC+6):15))−1
[0182]ここで、ステートメントx?y:zは、xが真であるのか0に等しくないのかを表し、ステートメントはyの値に対して評価し、さもなければ、ステートメントはzの値に対して評価する。extended_precision_processing_flagは、拡張されたダイナミックレンジが使用されるとき、真に設定され、それが使用されないとき、偽に設定される。
[0183]本開示の一例では、エンコーダ20は、シンタックス要素PaletteEscapeVal[cIdx][xC][yC]の値を、0に等しいcIdxについて、両端値を含む、Palette_escape_val_MinY〜Palette_escape_val_MaxYのレンジ内にあるように、および0に等しくないcIdxについて、両端値を含む、Palette_escape_val_MinC〜Palette_escape_val_MaxCのレンジ内にあるように制約し得る。PaletteEscapeVal[cIdx][xC][yC]は、(現在パレット中のi番目の要素を指定する、CurrentPaletteEntries[cIdx][i]によって表されるアレイへのインデックスである、パレットインデックスを指定する)PaletteIndexMap[xC][yC]が、(現在コーディングユニットのためのパレットインデックスのための最大可能値を指定する)MaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい、サンプルのエスケープ値を指定する。アレイインデックスcIdxは色成分を指定する。アレイインデックスcIdxは色成分を指定し得る。アレイインデックスxCおよびyCは、ピクチャの左上ルーマサンプルに対するサンプルのロケーション(xC,yC)を指定し得る。デコーダ30は、エンコーダによって課された制約を受けたビットストリームを受信し得、デコーダ30は、制約に基づいてPaletteEscapeVal[cIdx][xC][yC]を再構成し得る。
[0184]代替例では、エンコーダ20は、palette_escape_valまたはPaletteEscapeVal[cIdx][xC][yC]のレンジを、両端値を含む、0から(1<<bitDepthMax)−1までのレンジに制限し得る。bitDepthMaxは、最大ビット深度、たとえば、ルーマ成分またはクロマ成分あるいはその両方についてコーデックによってサポートされる最大ビット深度、たとえば、8、9、10、11、12、13、14、15、16など、bitDepthMax値であり得る。一例では、bitDepthMaxは、スクリーンコンテンツコーディング(SCC)プロファイルなどのあるプロファイル、および/またはいくつかのレベルのためのすべての色成分の間の最大のサポートされるビット深度であり得る。別の例では、bitDepthMaxは常に15に等しい。
[0185]本開示のさらなる一例では、PaletteEscapeVal[cIdx][xC][yC]の値は、0に等しいcIdxについて、両端値を含む、0〜(1<<bitdepthMax)−1のレンジ内に、および0に等しくないcIdxについて、両端値を含む、0〜(1<<bitdepthMax)−1のレンジ内に制約され得る。
[0186]代替例では、palette_escape_valまたはPaletteEscapeVal[cIdx][xC][yC]のレンジは、両端値を含む、0から(1<<(extended_precision_processing_flag?Max(15,BitDepth+6):15))−1までのレンジに制限される。レンジは、以下で定義されるビット深度およびextended_precision_processing_flagに基づき得る。
[0187]変数Palette_escape_val_MinY、Palette_escape_val_MinC、Palette_escape_val_MaxY、およびPalette_escape_val_MaxCは、以下のように導出され得る。
[0188]
Palette_escape_val_MinY=0
[0189]
Palette_escape_val_MinC= 0
[0190]
Palette_escape_val_MaxY=(1<<(extended_precision_processing_flag ? Max(15,BitDepthY+6):15))−1
[0191]
Palette_escape_val_MaxC=(1<<(extended_precision_processing_flag?Max(15,BitDepthC+6):15))−1
[0192]さらなる一例では、PaletteEscapeVal[cIdx][xC][yC]の値は、0に等しいcIdxについて、両端値を含む、Palette_escape_val_MinY〜Palette_escape_val_MaxYのレンジ内に、および0に等しくないcIdxについて、両端値を含む、Palette_escape_val_MinC〜Palette_escape_val_MaxCのレンジ内に制約され得る。
[0193]さらなる代替例では、palette_escape_valの2値化は、下記のようにextended_precision_processing_flagに基づいて制御される。
[0194]extended_precision_processing_flagが0に等しい一例では、palette_escape_valの2値化は、k次指数ゴロム(EGk:k-th order Exponential-Golomb)2値化プロセスを呼び出すことによって導出され得る。一例では、kは3に等しく設定され得る。代替例では、kは、任意の値、たとえば、0、1、2、3、4、5、6などに設定され得る。
[0195]extended_precision_processing_flagが1に等しい一例では、palette_escape_valの2値化は、限定k次EGk2値化プロセスを呼び出すことによって導出される。例示的な例では、palette_escape_valの2値化は、3に等しく設定された変数riceParamと、色成分cIdxとを用いて実行される。たとえば、利用される2値化プロセスは、Rajan Joshiら、「High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 4」JCTVC−U1005、ワルシャワ、ポーランド、2015年6月19日〜6月26日に記載されている、k次指数ゴロム(EGk)2値化プロセスおよび/または限定k次指数ゴロム(EGk)2値化プロセスであり得る。
[0196]本開示のいくつかの例では、4よりも小さい量子化パラメータ(QP)が、値拡大の問題を提示し得る。そのような例では、QPが4に等しいとき、名目上、対応する量子化器ステップサイズ(qStep)は1に等しい。しかしながら、QPが4よりも小さいとき、入力値を量子化する代わりに、量子化プロセスは、入力値を拡大している、すなわち、それをqStep<1で除算している。これは、変換係数の正確さを増加させるために使用され得る。しかしながら、いくつかの例では、1に等しいqStepを用いたエスケープコード化ピクセルは、ひずみまたはエラーがない完全な精度の入力値をすでに表す。したがって、そのような例では、さらなる拡大はメモリを浪費するにすぎないことがある。
[0197]いくつかのQP値に関連付けられた値拡大に対処し得る一例では、QP値が4よりも小さい一例では、QP値は、エスケープピクセルのための所望のQP値レンジ内になるようにクリッピングされ得る。そのような例では、たとえば、この場合、量子化プロセスおよび逆量子化プロセスのために使用される所望のQP値レンジの下限は、4に等しく設定され得る。したがって、エスケープピクセルコーディングまたは変換スキップのための量子化プロセスまたは逆量子化プロセスにおいてQP値を使用する前に、最初に、QP値は、所望のQPレンジ内になるようにクリッピングされ得る。たとえば、0に等しいQP値が使用される場合、QP値は、最初に、4の値にクリッピングされ得、その後、クリッピングされたQP値は、関係するコーディングまたは復号プロセスにおいて使用される。8以外のビット深度について、4と等価と見なされ得るQPは、4−6*(bitDepth−8)によって指定され得ることに留意されたい。10のビット深度について、QP値は、下から−8の値にクリッピングされ得る。一例では、より低いQP値が、1のqStepに名目上対応するQP値にクリッピングされ得る。
[0198]さらなる一例では、QPレンジの制限はまた、変換スキップ、すなわち、変換処理ユニット104の変換ステップをバイパスするためのプロセスに適用可能である。
[0199]図6は、本開示の1つまたは複数の態様による、エスケープピクセル値が制限される例示的な符号化プロセスを示すフローチャートである。図6のプロセスは、概して、説明の目的でビデオエンコーダ20によって実行されるものとして説明されるが、様々な他のプロセッサのうちのいずれか1つまたは複数も、図6に示されているプロセスを行い得る。
[0200]図6の例では、ビデオエンコーダ20は、ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定し、ここにおいて、エスケープ値は、符号化されるべきビデオデータのブロック中のサンプルを表す(602)。たとえば、ビデオエンコーダ20は、ルーマ成分またはクロマ成分のためのシグナリングされる入力ビット深度に基づいて、エスケープ値のための最大値を決定し得る。別の例では、ビデオエンコーダ20は、エンコーダによってサポートされる最大ビット深度に基づいて、エスケープ値のための最大値を決定し得る。
[0201]ビデオエンコーダ20は、最大値よりも大きくならないように1つまたは複数のエスケープ値を制限する(604)。たとえば、ビデオエンコーダ20は、シグナリングされたpalette_escape_valに基づいて決定された再構成されたエスケープ値の値が、決定された最大値以下になるように、1つまたは複数のエスケープ値を規範的に制限し得る。ビデオエンコーダ20は、符号化ビデオデータビットストリーム中でエスケープ値を符号化する(606)。
[0202]図7は、本開示の1つまたは複数の態様による、エスケープピクセル値が制限される例示的な復号プロセスを示すフローチャートである。図7のプロセスは、概して、説明の目的でビデオデコーダ30によって実行されるものとして説明されるが、様々な他のプロセッサのうちのいずれか1つまたは複数も、図7に示されているプロセスを行い得る。
[0203]図7の例では、ビデオデコーダ30は、ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信し、ここにおいて、ビットストリームは、復号されるべきビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む(702)。たとえば、ビデオデコーダ30は、エスケープ値が、ルーマ成分またはクロマ成分のためのシグナリングされる入力ビット深度に基づいて決定された最大値よりも大きくならないように制約されたビットストリームを受信し得る。別の例では、ビデオデコーダ30は、エスケープ値が、ビデオエンコーダ20および/またはビデオデコーダ30によってサポートされる最大ビット深度に基づいて決定された最大値よりも大きくならないように制約されたビットストリームを受信し得る。
[0204]ビデオデコーダ30は、少なくとも1つのエスケープ値を決定するための情報を使用して、ビデオデータのブロック中のサンプルを再構成する(704)。たとえば、ビデオデコーダ30は、シグナリングされた最大ビット深度に基づいてビットストリームからエスケープ値を決定し、サンプルを再構成し得る。別の例では、ビデオデコーダ30は、エンコーダおよび/またはデコーダによってサポートされる最大ビット深度に基づいて、ビットストリームからエスケープ値を決定し得る。
[0205]図8は、本開示の1つまたは複数の態様による、下限が量子化パラメータに適用される例示的な符号化プロセスを示すフローチャートである。図8のプロセスは、概して、説明の目的でビデオエンコーダ20によって実行されるものとして説明されるが、様々な他のプロセッサのうちのいずれか1つまたは複数も、図8に示されているプロセスを行い得る。
[0206]図8の例では、ビデオエンコーダ20は、ビデオデータのための量子化パラメータ値を決定する(802)。たとえば、ビデオエンコーダ20は、ビデオエンコーダ20によって使用される設定に基づいて、および/または符号化されるべきコンテンツに基づいて、量子化パラメータ値を決定し得る。
[0207]ビデオエンコーダ20は量子化パラメータ下限を決定する(804)。たとえば、ビデオエンコーダ20は、1のqStepに対応する量子化パラメータを決定し得、ビデオエンコーダ20は、その量子化パラメータを下限として選定し得る。いくつかの例では、ビデオエンコーダ20は、4の量子化パラメータを量子化パラメータのための下限として決定し得る。
[0208]ビデオエンコーダ20は、量子化パラメータ値が量子化パラメータ下限よりも小さい場合、量子化パラメータ下限に従ってビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化し、ここにおいて、エスケープ値は、符号化されるべきビデオデータのブロック中のサンプルを表す(806)。たとえば、下限が4であると決定された場合、ビデオエンコーダ20は、4よりも小さい量子化パラメータが遭遇された場合、エスケープ値のための、または変換スキップのための量子化プロセスにおいて量子化パラメータを使用する前に、量子化パラメータを4の値に変更またはクリッピングし得る。ビデオエンコーダ20は、符号化ビデオデータビットストリーム中でエスケープ値を符号化する(808)。
[0209]図9は、本開示の1つまたは複数の態様による、下限が量子化パラメータに適用される例示的な復号プロセスを示すフローチャートである。図9のプロセスは、概して、説明の目的でビデオデコーダ30によって実行されるものとして説明されるが、様々な他のプロセッサのうちのいずれか1つまたは複数も、図9に示されているプロセスを行い得る。
[0210]図9の例では、ビデオデコーダ30は、ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信し、ここにおいて、ビットストリームは、それが、少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される(902)。たとえば、ビデオデコーダ30は、エスケープ値が、1のqStepに対応する量子化パラメータ以上の量子化パラメータを用いて量子化されるように制約されたビットストリームを受信し得る。8に等しいビット深度値についてなど、いくつかの例では、量子化パラメータ下限は4であり得る。したがって、そのような例では、ビデオデコーダ30は、エスケープ値が、4以上の量子化パラメータを用いて量子化されるように制約されたビットストリームを受信し得る。
[0211]ビデオデコーダ30は、制限に基づいてビットストリームから少なくとも1つのエスケープ値を決定する(904)。たとえば、ビデオデコーダ30は、エスケープ値が、4以上の量子化パラメータを用いて量子化されるように制限されたビットストリームからエスケープ値を復号し得る。ビデオデコーダ30は、少なくとも1つのエスケープ値を使用してビデオデータのサンプルを再構成する(906)。
[0212]本明細書で説明されるプロセス、装置、および他の例または説明について、本明細書で説明される技法のいずれかに含まれるフローチャートまたは流れ図、いくつかの動作、行為、ステップ、あるいはイベントに含めることは、異なるシーケンスで実行され得、全体的に追加、マージ、または除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない)。その上、いくつかの例では、動作、行為、ステップ、またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。さらなるいくつかの動作、行為、ステップ、またはイベントが、自動的に実行されるものとして特に識別されない場合でも、自動的に実行され得る。また、自動的に実行されるものとして説明されたいくつかの動作、行為、ステップ、またはイベントは、代替的に、自動的に実行されないことがあり、むしろ、そのような動作、行為、ステップ、またはイベントは、いくつかの例では、入力または別のイベントに応答して実行され得る。
[0213]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、または除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実行され得る。さらに、本開示のいくつかの態様は、明快のために単一のモジュールまたはユニットによって実行されるものとして説明されたが、本開示の技法は、ビデオコーダに関連付けられたユニットまたはモジュールの組合せによって実行され得ることを理解されたい。
[0214]本開示のいくつかの態様は、説明の目的で、開発中のHEVC規格に関して説明された。ただし、本開示で説明された技法は、まだ開発されていない他の規格またはプロプライエタリビデオコーディングプロセスを含む、他のビデオコーディングプロセスのために有用であり得る。
[0215]上記で説明された技法は、その両方が一般にビデオコーダと呼ばれることがある、ビデオエンコーダ20(図1および図2)および/またはビデオデコーダ30(図1および図3)によって実行され得る。同様に、ビデオコーディングは、適用可能なとき、ビデオ符号化またはビデオ復号を指すことがある。
[0216]技法の様々な態様の特定の組合せが上記で説明されたが、これらの組合せは、本開示で説明された技法の例を示すために与えたものにすぎない。したがって、本開示の技法は、これらの例示的な組合せに限定されるべきでなく、本開示で説明された技法の様々な態様の任意の考えられる組合せを包含し得る。
[0217]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[0218]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0219]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0220]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
[0220]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
を備える、方法。
[C2]
前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
[C1]に記載の方法。
[C3]
前記少なくとも1つのエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C1]に記載の方法。
[C4]
前記最大値は、少なくとも成分ビット深度に基づく、
[C1]に記載の方法。
[C5]
前記成分ビット深度は、色成分入力ビット深度である、
[C4]に記載の方法。
[C6]
前記ビットストリーム中でシグナリングされた前記成分ビット深度を受信することをさらに備える、
[C4]に記載の方法。
[C7]
シーケンスパラメータセット中でシグナリングされた前記成分ビット深度を受信することをさらに備える、
[C4]に記載の方法。
[C8]
前記最大値は、(1<<n)−1に従って計算され、nは、前記成分ビット深度である、
[C4]に記載の方法。
[C9]
前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、整数である、
[C4]に記載の方法。
[C10]
bは、1に等しい、
[C9]に記載の方法。
[C11]
前記成分ビット深度は、デコーダによってサポートされる最大ビット深度である、
[C4]に記載の方法。
[C12]
前記最大値は、少なくとも、成分ビット深度と量子化パラメータ値とに基づく、
[C1]に記載の方法。
[C13]
前記最大値は、((1<<n)−1)*kに従って計算され、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
[C12]に記載の方法。
[C14]
前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
[C12]に記載の方法。
[C15]
前記最大値は、変換係数にも課される制限を前記エスケープ値に課することによって決定される、
[C1]に記載の方法。
[C16]
前記最大値は、少なくとも、成分ビット深度と精度情報とに基づく、
[C1]に記載の方法。
[C17]
前記精度情報は、extended_precision_processing_flagを含む、
[C16]に記載の方法。
[C18]
少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することをさらに備える、
[C16]に記載の方法。
[C19]
ビデオデータを符号化する方法であって、
前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
前記最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、
符号化ビデオデータビットストリーム中で前記1つまたは複数のエスケープ値を符号化することと
を備える、方法。
[C20]
前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
[C19]に記載の方法。
[C21]
前記1つまたは複数のエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C19]に記載の方法。
[C22]
前記最大値を決定することは、
少なくとも成分ビット深度に基づいて、エスケープ値のための前記最大値を決定することを備える、
[C19]に記載の方法。
[C23]
前記成分ビット深度は、色成分入力ビット深度である、
[C22]に記載の方法。
[C24]
前記成分ビット深度をシグナリングすることをさらに備える、
[C22]に記載の方法。
[C25]
シーケンスパラメータセット中で前記成分ビット深度をシグナリングすることをさらに備える、
[C22]に記載の方法。
[C26]
前記最大値を決定することは、
(1<<n)−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度である、
[C22]に記載の方法。
[C27]
前記最大値を決定することは、
(1<<(n+b))−1に従って前記最大値を決定することを備え、ここにおいて、nが前記成分ビット深度であり、bは、整数である、
[C22]に記載の方法。
[C28]
bは、1に等しい、
[C23]に記載の方法。
[C29]
前記成分ビット深度は、エンコーダによってサポートされる最大ビット深度である、
[C22]に記載の方法。
[C30]
前記最大値を決定することは、
少なくとも、成分ビット深度と量子化パラメータ値とに基づいて、エスケープ値のための前記最大値を決定することを備える、
[C19]に記載の方法。
[C31]
前記最大値を決定することは、
((1<<n)−1)*kに従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
[C30]に記載の方法。
[C32]
前記最大値を決定することは、
(1<<(n+b))−1に従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
[C30]に記載の方法。
[C33]
前記最大値を決定することは、
変換係数にも課される制限を前記エスケープ値に課することを備える、
[C19]に記載の方法。
[C34]
前記最大値を決定することは、
少なくとも、成分ビット深度と精度情報とに基づいて、前記エスケープ値のための前記最大値を決定することを備える、
[C19]に記載の方法。
[C35]
前記精度情報は、extended_precision_processing_flagを含む、
[C34]に記載の方法。
[C36]
少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することをさらに備える、
[C34]に記載の方法。
[C37]
ビデオデータを復号する方法であって、
前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
を備える、方法。
[C38]
前記少なくとも1つのエスケープ値は、復号されるべきビデオデータのブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C37]に記載の方法。
[C39]
前記量子化パラメータ下限は、1のqStep値に対応する、
[C37]に記載の方法。
[C40]
前記量子化パラメータ下限は、成分ビット深度に基づく、
[C37]に記載の方法。
[C41]
前記量子化パラメータ下限は、前記成分ビット深度が8であるときに4に等しい、
[C40]に記載の方法。
[C42]
ビデオデータを符号化する方法であって、
前記ビデオデータのための量子化パラメータ値を決定することと、
量子化パラメータ下限を決定することと、
前記量子化パラメータ値が前記量子化パラメータ下限よりも小さい場合、前記量子化パラメータ下限に従って前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
符号化ビデオデータビットストリーム中で前記エスケープ値を符号化することと
を備える、方法。
[C43]
前記エスケープ値は、前記ビデオデータの前記ブロックのサンプル値を表すために使用されるパレット中のエントリに関連付けられない、
[C42]に記載の方法。
[C44]
前記量子化パラメータ下限を決定することは、
1のqStep値に対応する前記量子化パラメータ下限を選定することを備える、
[C42]に記載の方法。
[C45]
前記量子化パラメータ下限を決定することは、
成分ビット深度に基づいて前記量子化パラメータ下限を決定することを備える、
[C42]に記載の方法。
[C46]
前記量子化パラメータ下限を決定することは、
前記成分ビット深度が8であるときに4に等しい前記量子化パラメータ下限を選定することを備える、
[C45]に記載の方法。
[C47]
ビデオデータを復号するように構成された装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
を行うように構成された1つまたは複数のプロセッサと
を備える、装置。
[C48]
前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
[C47]に記載の装置。
[C49]
前記少なくとも1つのエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C47]に記載の装置。
[C50]
前記最大値は、少なくとも成分ビット深度に基づく、
[C47]に記載の装置。
[C51]
前記成分ビット深度は、色成分入力ビット深度である、
[C50]に記載の装置。
[C52]
前記1つまたは複数のプロセッサは、
前記ビットストリーム中でシグナリングされた前記成分ビット深度を受信することを行うようにさらに構成された、
[C50]に記載の装置。
[C53]
前記1つまたは複数のプロセッサは、
シーケンスパラメータセット中でシグナリングされた前記成分ビット深度を受信することを行うようにさらに構成された、
[C50]に記載の装置。
[C54]
前記最大値は、(1<<n)−1に従って計算され、nは、前記成分ビット深度である、
[C50]に記載の装置。
[C55]
前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは整数である、
[C50]に記載の装置。
[C56]
bは、1に等しい、
[C55]に記載の装置。
[C57]
前記成分ビット深度は、デコーダによってサポートされる最大ビット深度である、
[C50]に記載の装置。
[C58]
前記最大値は、少なくとも、成分ビット深度と量子化パラメータ値とに基づく、
[C47]に記載の装置。
[C59]
前記最大値は、((1<<n)−1)*kに従って計算され、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
[C58]に記載の装置。
[C60]
前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
[C58]に記載の装置。
[C61]
前記最大値は、変換係数にも課される制限を前記エスケープ値に課することによって決定される、
[C47]に記載の装置。
[C62]
前記最大値は、少なくとも、成分ビット深度と精度情報とに基づく、
[C47]に記載の装置。
[C63]
前記精度情報は、extended_precision_processing_flagを含む、
[C62]に記載の装置。
[C64]
前記1つまたは複数のプロセッサは、
少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することを行うようにさらに構成された、
[C62]に記載の装置。
[C65]
ビデオデータを符号化するように構成された装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
前記最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、
符号化ビデオデータビットストリーム中で前記1つまたは複数のエスケープ値を符号化することと
を行うように構成された1つまたは複数のプロセッサと
を備える、装置。
[C66]
前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
[C65]に記載の装置。
[C67]
前記1つまたは複数のエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C65]に記載の装置。
[C68]
前記最大値を決定することは、
少なくとも成分ビット深度に基づいて、エスケープ値のための前記最大値を決定することを備える、
[C65]に記載の装置。
[C69]
前記成分ビット深度は、色成分入力ビット深度である、
[C68]に記載の装置。
[C70]
前記1つまたは複数のプロセッサは、
前記成分ビット深度をシグナリングすることを行うようにさらに構成された、
[C68]に記載の装置。
[C71]
前記1つまたは複数のプロセッサは、
シーケンスパラメータセット中で前記成分ビット深度をシグナリングすることを行うようにさらに構成された、
[C68]に記載の装置。
[C72]
前記最大値を決定することは、
(1<<N)−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度である、
[C68]に記載の装置。
[C73]
前記最大値を決定することは、
(1<<(n+b))−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度であり、bが整数である、
[C68]に記載の装置。
[C74]
bは、1に等しい、
[C73]に記載の装置。
[C75]
前記成分ビット深度は、エンコーダによってサポートされる最大ビット深度である、
[C68]に記載の装置。
[C76]
前記最大値を決定することは、
少なくとも、成分ビット深度と量子化パラメータ値とに基づいて、エスケープ値のための前記最大値を決定することを備える、
[C65]に記載の装置。
[C77]
前記最大値を決定することは、
((1<<n)−1)*kに従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
[C76]に記載の装置。
[C78]
前記最大値を決定することは、
(1<<(n+b))−1に従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、bが、前記量子化パラメータ値に基づく拡大ファクタである、
[C76]に記載の装置。
[C79]
前記最大値を決定することは、
変換係数にも課される制限を前記エスケープ値に課することを備える、
[C65]に記載の装置。
[C80]
前記最大値を決定することは、
少なくとも、成分ビット深度と精度情報とに基づいて、前記エスケープ値のための前記最大値を決定することを備える、
[C65]に記載の装置。
[C81]
前記精度情報は、extended_precision_processing_flagを含む、
[C80]に記載の装置。
[C82]
前記1つまたは複数のプロセッサは、
少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することを行うようにさらに構成された、
[C80]に記載の装置。
[C83]
ビデオデータを復号するように構成された装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
を行うように構成された1つまたは複数のプロセッサと
を備える、装置。
[C84]
前記少なくとも1つのエスケープ値は、復号されるべきビデオデータのブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
[C83]に記載の装置。
[C85]
前記量子化パラメータ下限は、1のqStep値に対応する、
[C83]に記載の装置。
[C86]
前記量子化パラメータ下限は、成分ビット深度に基づく、
[C83]に記載の装置。
[C87]
前記量子化パラメータ下限は、前記成分ビット深度が8であるときに4に等しい、
[C86]に記載の装置。
[C88]
ビデオデータを符号化するように構成された装置であって、
前記ビデオデータを記憶するように構成されたメモリと、
前記ビデオデータのための量子化パラメータ値を決定することと、
量子化パラメータ下限を決定することと、
前記量子化パラメータ値が前記量子化パラメータ下限よりも小さい場合、前記量子化パラメータ下限に従って前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
符号化ビデオデータビットストリーム中で前記エスケープ値を符号化することと
を行うように構成された1つまたは複数のプロセッサと
を備える、装置。
[C89]
前記エスケープ値は、前記ビデオデータの前記ブロックのサンプル値を表すために使用されるパレット中のエントリに関連付けられない、
[C88]に記載の装置。
[C90]
前記量子化パラメータ下限を決定することは、
1のqStep値に対応する前記量子化パラメータ下限を選定することを備える、
[C88]に記載の装置。
[C91]
前記量子化パラメータ下限を決定することは、
成分ビット深度に基づいて前記量子化パラメータ下限を決定することを備える、
[C88]に記載の装置。
[C92]
前記量子化パラメータ下限を決定することは、
前記成分ビット深度が8であるときに4に等しい前記量子化パラメータ下限を選定することを備える、
[C91]に記載の装置。
[C93]
ビデオデータを復号するように構成された装置であって、
前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信するための手段、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成するための手段と
を備える、装置。
[C94]
ビデオデータを復号するように構成された装置であって、
前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信するための手段、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定するための手段と、
前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成するための手段と
を備える、装置。
[C95]
実行されたとき、1つまたは複数のプロセッサに、
前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
を行わせる命令を記憶した非一時的コンピュータ可読媒体。
[C96]
実行されたとき、1つまたは複数のプロセッサに、
前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
を行わせる命令を記憶した非一時的コンピュータ可読媒体。

Claims (96)

  1. ビデオデータを復号する方法であって、
    前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
    前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
    を備える、方法。
  2. 前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
    請求項1に記載の方法。
  3. 前記少なくとも1つのエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項1に記載の方法。
  4. 前記最大値は、少なくとも成分ビット深度に基づく、
    請求項1に記載の方法。
  5. 前記成分ビット深度は、色成分入力ビット深度である、
    請求項4に記載の方法。
  6. 前記ビットストリーム中でシグナリングされた前記成分ビット深度を受信することをさらに備える、
    請求項4に記載の方法。
  7. シーケンスパラメータセット中でシグナリングされた前記成分ビット深度を受信することをさらに備える、
    請求項4に記載の方法。
  8. 前記最大値は、(1<<n)−1に従って計算され、nは、前記成分ビット深度である、
    請求項4に記載の方法。
  9. 前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、整数である、
    請求項4に記載の方法。
  10. bは、1に等しい、
    請求項9に記載の方法。
  11. 前記成分ビット深度は、デコーダによってサポートされる最大ビット深度である、
    請求項4に記載の方法。
  12. 前記最大値は、少なくとも、成分ビット深度と量子化パラメータ値とに基づく、
    請求項1に記載の方法。
  13. 前記最大値は、((1<<n)−1)*kに従って計算され、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項12に記載の方法。
  14. 前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項12に記載の方法。
  15. 前記最大値は、変換係数にも課される制限を前記エスケープ値に課することによって決定される、
    請求項1に記載の方法。
  16. 前記最大値は、少なくとも、成分ビット深度と精度情報とに基づく、
    請求項1に記載の方法。
  17. 前記精度情報は、extended_precision_processing_flagを含む、
    請求項16に記載の方法。
  18. 少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することをさらに備える、
    請求項16に記載の方法。
  19. ビデオデータを符号化する方法であって、
    前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
    前記最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、
    符号化ビデオデータビットストリーム中で前記1つまたは複数のエスケープ値を符号化することと
    を備える、方法。
  20. 前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
    請求項19に記載の方法。
  21. 前記1つまたは複数のエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項19に記載の方法。
  22. 前記最大値を決定することは、
    少なくとも成分ビット深度に基づいて、エスケープ値のための前記最大値を決定することを備える、
    請求項19に記載の方法。
  23. 前記成分ビット深度は、色成分入力ビット深度である、
    請求項22に記載の方法。
  24. 前記成分ビット深度をシグナリングすることをさらに備える、
    請求項22に記載の方法。
  25. シーケンスパラメータセット中で前記成分ビット深度をシグナリングすることをさらに備える、
    請求項22に記載の方法。
  26. 前記最大値を決定することは、
    (1<<n)−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度である、
    請求項22に記載の方法。
  27. 前記最大値を決定することは、
    (1<<(n+b))−1に従って前記最大値を決定することを備え、ここにおいて、nが前記成分ビット深度であり、bは、整数である、
    請求項22に記載の方法。
  28. bは、1に等しい、
    請求項23に記載の方法。
  29. 前記成分ビット深度は、エンコーダによってサポートされる最大ビット深度である、
    請求項22に記載の方法。
  30. 前記最大値を決定することは、
    少なくとも、成分ビット深度と量子化パラメータ値とに基づいて、エスケープ値のための前記最大値を決定することを備える、
    請求項19に記載の方法。
  31. 前記最大値を決定することは、
    ((1<<n)−1)*kに従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項30に記載の方法。
  32. 前記最大値を決定することは、
    (1<<(n+b))−1に従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項30に記載の方法。
  33. 前記最大値を決定することは、
    変換係数にも課される制限を前記エスケープ値に課することを備える、
    請求項19に記載の方法。
  34. 前記最大値を決定することは、
    少なくとも、成分ビット深度と精度情報とに基づいて、前記エスケープ値のための前記最大値を決定することを備える、
    請求項19に記載の方法。
  35. 前記精度情報は、extended_precision_processing_flagを含む、
    請求項34に記載の方法。
  36. 少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することをさらに備える、
    請求項34に記載の方法。
  37. ビデオデータを復号する方法であって、
    前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
    前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
    前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
    を備える、方法。
  38. 前記少なくとも1つのエスケープ値は、復号されるべきビデオデータのブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項37に記載の方法。
  39. 前記量子化パラメータ下限は、1のqStep値に対応する、
    請求項37に記載の方法。
  40. 前記量子化パラメータ下限は、成分ビット深度に基づく、
    請求項37に記載の方法。
  41. 前記量子化パラメータ下限は、前記成分ビット深度が8であるときに4に等しい、
    請求項40に記載の方法。
  42. ビデオデータを符号化する方法であって、
    前記ビデオデータのための量子化パラメータ値を決定することと、
    量子化パラメータ下限を決定することと、
    前記量子化パラメータ値が前記量子化パラメータ下限よりも小さい場合、前記量子化パラメータ下限に従って前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
    符号化ビデオデータビットストリーム中で前記エスケープ値を符号化することと
    を備える、方法。
  43. 前記エスケープ値は、前記ビデオデータの前記ブロックのサンプル値を表すために使用されるパレット中のエントリに関連付けられない、
    請求項42に記載の方法。
  44. 前記量子化パラメータ下限を決定することは、
    1のqStep値に対応する前記量子化パラメータ下限を選定することを備える、
    請求項42に記載の方法。
  45. 前記量子化パラメータ下限を決定することは、
    成分ビット深度に基づいて前記量子化パラメータ下限を決定することを備える、
    請求項42に記載の方法。
  46. 前記量子化パラメータ下限を決定することは、
    前記成分ビット深度が8であるときに4に等しい前記量子化パラメータ下限を選定することを備える、
    請求項45に記載の方法。
  47. ビデオデータを復号するように構成された装置であって、
    前記ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
    前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
    を行うように構成された1つまたは複数のプロセッサと
    を備える、装置。
  48. 前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
    請求項47に記載の装置。
  49. 前記少なくとも1つのエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項47に記載の装置。
  50. 前記最大値は、少なくとも成分ビット深度に基づく、
    請求項47に記載の装置。
  51. 前記成分ビット深度は、色成分入力ビット深度である、
    請求項50に記載の装置。
  52. 前記1つまたは複数のプロセッサは、
    前記ビットストリーム中でシグナリングされた前記成分ビット深度を受信することを行うようにさらに構成された、
    請求項50に記載の装置。
  53. 前記1つまたは複数のプロセッサは、
    シーケンスパラメータセット中でシグナリングされた前記成分ビット深度を受信することを行うようにさらに構成された、
    請求項50に記載の装置。
  54. 前記最大値は、(1<<n)−1に従って計算され、nは、前記成分ビット深度である、
    請求項50に記載の装置。
  55. 前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは整数である、
    請求項50に記載の装置。
  56. bは、1に等しい、
    請求項55に記載の装置。
  57. 前記成分ビット深度は、デコーダによってサポートされる最大ビット深度である、
    請求項50に記載の装置。
  58. 前記最大値は、少なくとも、成分ビット深度と量子化パラメータ値とに基づく、
    請求項47に記載の装置。
  59. 前記最大値は、((1<<n)−1)*kに従って計算され、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項58に記載の装置。
  60. 前記最大値は、(1<<(n+b))−1に従って計算され、nは、前記成分ビット深度であり、bは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項58に記載の装置。
  61. 前記最大値は、変換係数にも課される制限を前記エスケープ値に課することによって決定される、
    請求項47に記載の装置。
  62. 前記最大値は、少なくとも、成分ビット深度と精度情報とに基づく、
    請求項47に記載の装置。
  63. 前記精度情報は、extended_precision_processing_flagを含む、
    請求項62に記載の装置。
  64. 前記1つまたは複数のプロセッサは、
    少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することを行うようにさらに構成された、
    請求項62に記載の装置。
  65. ビデオデータを符号化するように構成された装置であって、
    前記ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値のための最大値を決定すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
    前記最大値よりも大きくならないように1つまたは複数のエスケープ値を制限することと、
    符号化ビデオデータビットストリーム中で前記1つまたは複数のエスケープ値を符号化することと
    を行うように構成された1つまたは複数のプロセッサと
    を備える、装置。
  66. 前記パレットモードで使用される前記エスケープ値は、前記ビットストリーム中でシグナリングされたエスケープ値を備える、
    請求項65に記載の装置。
  67. 前記1つまたは複数のエスケープ値は、前記ビデオデータの前記ブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項65に記載の装置。
  68. 前記最大値を決定することは、
    少なくとも成分ビット深度に基づいて、エスケープ値のための前記最大値を決定することを備える、
    請求項65に記載の装置。
  69. 前記成分ビット深度は、色成分入力ビット深度である、
    請求項68に記載の装置。
  70. 前記1つまたは複数のプロセッサは、
    前記成分ビット深度をシグナリングすることを行うようにさらに構成された、
    請求項68に記載の装置。
  71. 前記1つまたは複数のプロセッサは、
    シーケンスパラメータセット中で前記成分ビット深度をシグナリングすることを行うようにさらに構成された、
    請求項68に記載の装置。
  72. 前記最大値を決定することは、
    (1<<N)−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度である、
    請求項68に記載の装置。
  73. 前記最大値を決定することは、
    (1<<(n+b))−1に従って前記最大値を決定することを備え、nは、前記成分ビット深度であり、bが整数である、
    請求項68に記載の装置。
  74. bは、1に等しい、
    請求項73に記載の装置。
  75. 前記成分ビット深度は、エンコーダによってサポートされる最大ビット深度である、
    請求項68に記載の装置。
  76. 前記最大値を決定することは、
    少なくとも、成分ビット深度と量子化パラメータ値とに基づいて、エスケープ値のための前記最大値を決定することを備える、
    請求項65に記載の装置。
  77. 前記最大値を決定することは、
    ((1<<n)−1)*kに従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、kは、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項76に記載の装置。
  78. 前記最大値を決定することは、
    (1<<(n+b))−1に従って前記最大値を決定することをさらに備え、nは、前記成分ビット深度であり、bが、前記量子化パラメータ値に基づく拡大ファクタである、
    請求項76に記載の装置。
  79. 前記最大値を決定することは、
    変換係数にも課される制限を前記エスケープ値に課することを備える、
    請求項65に記載の装置。
  80. 前記最大値を決定することは、
    少なくとも、成分ビット深度と精度情報とに基づいて、前記エスケープ値のための前記最大値を決定することを備える、
    請求項65に記載の装置。
  81. 前記精度情報は、extended_precision_processing_flagを含む、
    請求項80に記載の装置。
  82. 前記1つまたは複数のプロセッサは、
    少なくとも前記精度情報に基づいて、指数ゴロム2値化プロセスを呼び出すことによって前記エスケープ値の2値化を導出することを行うようにさらに構成された、
    請求項80に記載の装置。
  83. ビデオデータを復号するように構成された装置であって、
    前記ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
    前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
    前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
    を行うように構成された1つまたは複数のプロセッサと
    を備える、装置。
  84. 前記少なくとも1つのエスケープ値は、復号されるべきビデオデータのブロック中のサンプルを表すために使用されるパレット中のエントリに関連付けられない、
    請求項83に記載の装置。
  85. 前記量子化パラメータ下限は、1のqStep値に対応する、
    請求項83に記載の装置。
  86. 前記量子化パラメータ下限は、成分ビット深度に基づく、
    請求項83に記載の装置。
  87. 前記量子化パラメータ下限は、前記成分ビット深度が8であるときに4に等しい、
    請求項86に記載の装置。
  88. ビデオデータを符号化するように構成された装置であって、
    前記ビデオデータを記憶するように構成されたメモリと、
    前記ビデオデータのための量子化パラメータ値を決定することと、
    量子化パラメータ下限を決定することと、
    前記量子化パラメータ値が前記量子化パラメータ下限よりも小さい場合、前記量子化パラメータ下限に従って前記ビデオデータを符号化するためにパレットモードで使用されるエスケープ値を量子化すること、ここにおいて、前記エスケープ値は、符号化されるべき前記ビデオデータのブロック中のサンプルを表す、と、
    符号化ビデオデータビットストリーム中で前記エスケープ値を符号化することと
    を行うように構成された1つまたは複数のプロセッサと
    を備える、装置。
  89. 前記エスケープ値は、前記ビデオデータの前記ブロックのサンプル値を表すために使用されるパレット中のエントリに関連付けられない、
    請求項88に記載の装置。
  90. 前記量子化パラメータ下限を決定することは、
    1のqStep値に対応する前記量子化パラメータ下限を選定することを備える、
    請求項88に記載の装置。
  91. 前記量子化パラメータ下限を決定することは、
    成分ビット深度に基づいて前記量子化パラメータ下限を決定することを備える、
    請求項88に記載の装置。
  92. 前記量子化パラメータ下限を決定することは、
    前記成分ビット深度が8であるときに4に等しい前記量子化パラメータ下限を選定することを備える、
    請求項91に記載の装置。
  93. ビデオデータを復号するように構成された装置であって、
    前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信するための手段、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
    前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成するための手段と
    を備える、装置。
  94. ビデオデータを復号するように構成された装置であって、
    前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信するための手段、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
    前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定するための手段と、
    前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成するための手段と
    を備える、装置。
  95. 実行されたとき、1つまたは複数のプロセッサに、
    前記ビデオデータを復号するためにパレットモードで使用されるエスケープ値が最大値よりも大きくならないように制約されたビットストリームを受信すること、ここにおいて、前記ビットストリームは、復号されるべき前記ビデオデータのブロック中のサンプルを表す少なくとも1つのエスケープ値を決定するための情報を含む、と、
    前記少なくとも1つのエスケープ値を決定するための前記情報を使用して、前記ビデオデータの前記ブロック中の前記サンプルを再構成することと
    を行わせる命令を記憶した非一時的コンピュータ可読媒体。
  96. 実行されたとき、1つまたは複数のプロセッサに、
    前記ビデオデータを復号するためにパレットモードで使用される少なくとも1つのエスケープ値を決定するための情報を含むビットストリームを受信すること、ここにおいて、前記ビットストリームは、前記少なくとも1つのエスケープ値が、量子化パラメータ下限以上である量子化パラメータに従って量子化されることを保証する制限に準拠するように制約される、と、
    前記制限に基づいて前記ビットストリームから前記少なくとも1つのエスケープ値を決定することと、
    前記少なくとも1つのエスケープ値を使用して前記ビデオデータのサンプルを再構成することと
    を行わせる命令を記憶した非一時的コンピュータ可読媒体。
JP2018513861A 2015-09-18 2016-09-16 パレットモードビデオコーディングにおけるエスケープピクセルシグナリング値の制限 Ceased JP2018532319A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562220675P 2015-09-18 2015-09-18
US62/220,675 2015-09-18
US15/266,623 2016-09-15
US15/266,623 US10097842B2 (en) 2015-09-18 2016-09-15 Restriction of escape pixel signaled values in palette mode video coding
PCT/US2016/052186 WO2017049119A1 (en) 2015-09-18 2016-09-16 Restriction of escape pixel signaled values in palette mode video coding

Publications (2)

Publication Number Publication Date
JP2018532319A true JP2018532319A (ja) 2018-11-01
JP2018532319A5 JP2018532319A5 (ja) 2019-10-03

Family

ID=58283640

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018513861A Ceased JP2018532319A (ja) 2015-09-18 2016-09-16 パレットモードビデオコーディングにおけるエスケープピクセルシグナリング値の制限

Country Status (9)

Country Link
US (1) US10097842B2 (ja)
EP (1) EP3350997B1 (ja)
JP (1) JP2018532319A (ja)
KR (1) KR20180056687A (ja)
CN (1) CN108028940B (ja)
AU (1) AU2016323800A1 (ja)
ES (1) ES2866035T3 (ja)
TW (1) TW201722164A (ja)
WO (1) WO2017049119A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020145667A (ja) * 2019-03-08 2020-09-10 ソニー株式会社 画像圧縮のためのハイブリッドパレット−dpcm符号化
WO2021054011A1 (ja) * 2019-09-17 2021-03-25 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム
JP2022538668A (ja) * 2019-06-28 2022-09-05 バイトダンス インコーポレイテッド 変換スキップモードにおける量子化パタメータの修正技術
JP2022546439A (ja) * 2019-08-26 2022-11-04 エルジー エレクトロニクス インコーポレイティド パレットモードに基づく画像またはビデオコーディング
US11765367B2 (en) 2019-05-31 2023-09-19 Bytedance Inc. Palette mode with intra block copy prediction

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102458642B1 (ko) * 2016-12-23 2022-10-24 후아웨이 테크놀러지 컴퍼니 리미티드 지향성 인트라 예측 모드의 세트 내에서 확장 지향성 인트라 예측 모드를 시그널링하는 인코딩 장치
WO2020141856A1 (ko) * 2019-01-02 2020-07-09 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치
CN113475062A (zh) 2019-02-24 2021-10-01 北京字节跳动网络技术有限公司 确定屏幕内容编解码的条件
US10924750B2 (en) 2019-03-01 2021-02-16 Alibaba Group Holding Limited Palette size constraint in palette mode for video compression system
US11423642B2 (en) * 2019-03-01 2022-08-23 Tencent America LLC Method and apparatus for point cloud compression
WO2020207421A1 (en) * 2019-04-09 2020-10-15 Beijing Bytedance Network Technology Co., Ltd. Entry construction for palette mode coding
JP7328373B2 (ja) 2019-06-28 2023-08-16 バイトダンス インコーポレイテッド スクリーンコンテンツ符号化におけるクロマイントラモードの導出
US11218700B2 (en) * 2019-07-01 2022-01-04 Qualcomm Incorporated Minimum allowed quantization parameter for transform skip mode and palette mode in video coding
CN114175662B (zh) * 2019-07-20 2023-11-24 北京字节跳动网络技术有限公司 调色板模式使用指示的条件相关编解码
CN117221536A (zh) 2019-07-23 2023-12-12 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
JP2022543009A (ja) 2019-07-29 2022-10-07 北京字節跳動網絡技術有限公司 予測処理におけるパレットモードの符号化
US11627327B2 (en) * 2019-08-05 2023-04-11 Qualcomm Incorporated Palette and prediction mode signaling
CN114930822A (zh) 2019-08-15 2022-08-19 字节跳动有限公司 用于调色板逸出符号的熵编解码
KR102521034B1 (ko) 2019-08-15 2023-04-13 베이징 다지아 인터넷 인포메이션 테크놀로지 컴퍼니 리미티드 팔레트 모드를 이용한 비디오 코딩의 방법 및 장치
WO2021030786A1 (en) * 2019-08-15 2021-02-18 Bytedance Inc. Palette mode with different partition structures
CN116684634A (zh) * 2019-08-26 2023-09-01 Lg电子株式会社 编码设备、解码设备和比特流发送设备
KR102660881B1 (ko) * 2019-08-26 2024-04-25 엘지전자 주식회사 팔레트 이스케이프 코딩 기반 영상 또는 비디오 코딩
US20220295105A1 (en) * 2019-08-29 2022-09-15 Lg Electronics Inc. Image or video coding based on escape binarization in palette mode
CN114424545A (zh) 2019-09-19 2022-04-29 字节跳动有限公司 用于调色板模式的量化参数推导
US11265536B2 (en) 2019-09-23 2022-03-01 Tencent America LLC Method to extend the range of rice parameter for residual coding in transform skip mode
CN114827605A (zh) * 2019-09-23 2022-07-29 北京达佳互联信息技术有限公司 用于视频解码的方法和计算设备
JP7201873B2 (ja) * 2019-09-24 2023-01-10 ベイジン ダジア インターネット インフォメーション テクノロジー カンパニー リミテッド 残差及び係数符号化の方法、プログラム並びに装置
CN116016936A (zh) * 2019-10-10 2023-04-25 北京达佳互联信息技术有限公司 使用调色板模式的视频编解码的方法和装置
WO2021086023A1 (ko) * 2019-10-28 2021-05-06 엘지전자 주식회사 적응적 변환을 이용하여 레지듀얼 처리를 수행하는 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
KR20220070012A (ko) * 2019-10-28 2022-05-27 엘지전자 주식회사 색공간 변환을 이용한 영상 부호화/복호화 방법, 장치 및 비트스트림을 전송하는 방법
CN115714866A (zh) * 2019-11-01 2023-02-24 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
US11683489B2 (en) * 2019-12-26 2023-06-20 Qualcomm Incorporated Monochrome palette mode for video coding
US11523137B2 (en) * 2020-06-09 2022-12-06 FG Innovation Company Limited Device and method for decoding video data using general constraints information

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7944968B2 (en) * 2005-04-12 2011-05-17 Lsi Corporation Method for specification of quantized coefficient limit
US8410959B2 (en) * 2010-04-09 2013-04-02 Qualcomm, Incorporated Variable length codes for coding of video data
US9363517B2 (en) * 2013-02-28 2016-06-07 Broadcom Corporation Indexed color history in image coding
GB2516021A (en) * 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for pre-encoding and post-decoding high bit-depth content in video encoder and decoder
US10362333B2 (en) * 2014-01-02 2019-07-23 Qualcomm Incorporated Color index coding for palette-based video coding
KR102494913B1 (ko) * 2014-03-14 2023-02-06 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
EP3120556B1 (en) 2014-03-17 2021-01-13 Microsoft Technology Licensing, LLC Encoder-side decisions for screen content encoding
US9654806B2 (en) * 2014-03-26 2017-05-16 Qualcomm Incorporated Determining palette size, palette entries and filtering of palette coded blocks in video coding
US10264285B2 (en) * 2014-05-22 2019-04-16 Qualcomm Incorporated Coding runs in palette-based video coding
US10313684B2 (en) * 2014-06-20 2019-06-04 Qualcomm Incorporated Copy from previous rows for palette mode coding
US9860560B2 (en) * 2014-07-02 2018-01-02 Qualcomm Incorporated Method for palette mode coding
KR102109154B1 (ko) 2014-10-06 2020-05-12 브이아이디 스케일, 인크. 화면 콘텐츠 코딩에 대한 개선된 팔레트 코딩
US9807402B2 (en) * 2014-10-06 2017-10-31 Industrial Technology Research Institute Method of color palette coding applicable to electronic device and electronic device using the same
GB2531005A (en) 2014-10-06 2016-04-13 Canon Kk Improved encoding process using a palette mode
US9596479B2 (en) * 2014-10-07 2017-03-14 Hfi Innovation Inc. Method of pulse-code modulation and palette coding for video coding
JP2018507591A (ja) * 2014-12-31 2018-03-15 ノキア テクノロジーズ オサケユイチア スケーラブルなビデオ符号化および復号化のための層間予測

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
K. SHARMAN ET AL., AHG18: WORST-CASE ESCAPE CODE LENGTH MITIGATION, JPN6020036312, 24 March 2014 (2014-03-24), ISSN: 0004353079 *
XIAOYU XIU ET AL., NON-CE1: ON ESCAPE COLOR CODING FOR PALETTE CODING MODE, JPN6020036311, 6 February 2015 (2015-02-06), ISSN: 0004353078 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020145667A (ja) * 2019-03-08 2020-09-10 ソニー株式会社 画像圧縮のためのハイブリッドパレット−dpcm符号化
US11503311B2 (en) 2019-03-08 2022-11-15 Sony Group Corporation Hybrid palette-DPCM coding for image compression
US11765367B2 (en) 2019-05-31 2023-09-19 Bytedance Inc. Palette mode with intra block copy prediction
JP2022538668A (ja) * 2019-06-28 2022-09-05 バイトダンス インコーポレイテッド 変換スキップモードにおける量子化パタメータの修正技術
JP7359878B2 (ja) 2019-06-28 2023-10-11 バイトダンス インコーポレイテッド 変換スキップモードにおける量子化パタメータの修正技術
JP2022546439A (ja) * 2019-08-26 2022-11-04 エルジー エレクトロニクス インコーポレイティド パレットモードに基づく画像またはビデオコーディング
JP7400082B2 (ja) 2019-08-26 2023-12-18 エルジー エレクトロニクス インコーポレイティド パレットモードに基づく画像またはビデオコーディング
WO2021054011A1 (ja) * 2019-09-17 2021-03-25 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム
JP2021048458A (ja) * 2019-09-17 2021-03-25 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム
JP7358136B2 (ja) 2019-09-17 2023-10-10 キヤノン株式会社 画像符号化装置、画像符号化方法、及びプログラム、画像復号装置、画像復号方法、及びプログラム

Also Published As

Publication number Publication date
WO2017049119A1 (en) 2017-03-23
EP3350997A1 (en) 2018-07-25
ES2866035T3 (es) 2021-10-19
US10097842B2 (en) 2018-10-09
US20170085891A1 (en) 2017-03-23
EP3350997B1 (en) 2021-03-24
CN108028940B (zh) 2021-07-23
CN108028940A (zh) 2018-05-11
TW201722164A (zh) 2017-06-16
AU2016323800A1 (en) 2018-04-26
KR20180056687A (ko) 2018-05-29

Similar Documents

Publication Publication Date Title
US10097842B2 (en) Restriction of escape pixel signaled values in palette mode video coding
JP6246920B2 (ja) パレットベースのビデオコーディングにおけるパレット予測
JP6297671B2 (ja) パレットベースのビデオコード化におけるパレットインデックスの決定
RU2678490C2 (ru) Определение размера палитры, записей палитры и фильтрование блоков, кодированных на основе палитры, при кодировании видео
JP6556732B2 (ja) パレットベースのビデオコーディングのためのカラーインデックスコーディング
JP6571162B2 (ja) パレットモード符号化および復号の設計
JP2018142972A (ja) Bスライス中の予測ユニットの単方向インター予測への制限
JP6227678B2 (ja) 3dビデオコーディングにおける導出視差ベクトル
US20160182913A1 (en) Palette mode for subsampling format
JP2019530367A (ja) ビデオコーディングのための可変数のイントラモード
TW201844004A (zh) 用於轉換係數寫碼之內容脈絡模型建立
JP2018507615A (ja) ビデオコーディングのためのパレットインデックスのグループ化
JP2017520162A (ja) パレットベースのビデオコーディングにおける最大パレットパラメータ
EA035170B1 (ru) Система и способ кодирования и декодирования видеоданных в режиме палитры
JP2017521920A (ja) ビデオコーディングにおけるパレットコード化ブロックの量子化パラメータ(qp)値とデルタqp値の決定
JP2017520160A (ja) パレットベースのビデオコーディングにおけるコーディングのラン
JP2017521919A (ja) ビデオコーディングにおけるパレットコード化ブロックへのデブロッキングフィルタ処理の適用の決定
JP2018507623A (ja) パレットコーディングのためのエスケープピクセルのコーディング
JP2018509071A (ja) ビデオコーディングにおけるパレットブロックサイズに対する制限
JP2017520161A (ja) パレットベースのビデオコーディングにおけるエスケープサンプルのコーディング
JP2017523667A (ja) ビデオコーディングにおけるカラーパレットモード
JP2017532896A (ja) パレットインデックスのコーディングのためのパースの依存性の低減
JP2017535166A (ja) パレットベースのビデオコーディングにおけるパレットラン隠匿
JP2014535218A (ja) ビデオコーディング用の断片化されたパラメータセット
JP2017527168A (ja) 高度パレット予測およびシグナリング

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190823

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190823

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201225

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210625

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210713

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20211130