JP2024023581A - パレット・エスケープ・シンボルのためのエントロピーコーディング - Google Patents

パレット・エスケープ・シンボルのためのエントロピーコーディング Download PDF

Info

Publication number
JP2024023581A
JP2024023581A JP2023206688A JP2023206688A JP2024023581A JP 2024023581 A JP2024023581 A JP 2024023581A JP 2023206688 A JP2023206688 A JP 2023206688A JP 2023206688 A JP2023206688 A JP 2023206688A JP 2024023581 A JP2024023581 A JP 2024023581A
Authority
JP
Japan
Prior art keywords
palette
block
video
current
video block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2023206688A
Other languages
English (en)
Inventor
ズゥー,ウェイジア
Weijia Zhu
シュイ,ジィジォン
Jizheng Xu
ザン,リー
Li Zhang
チアン チュアン,シャオ
Hsiao Chiang Chuang
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.)
ByteDance Inc
Original Assignee
ByteDance 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 ByteDance Inc filed Critical ByteDance Inc
Publication of JP2024023581A publication Critical patent/JP2024023581A/ja
Pending 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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/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

Landscapes

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

Abstract

【課題】パレット・エスケープ・シンボルのエントロピー符号化を実行するための方法、システムおよび装置を提供する。【解決手段】ビデオ処理方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含む。ビットストリーム表現は、現在のビデオ・ブロックがパレット・モード符号化ツールを使用して符号化されるというフォーマット規則に適合し、現在のビデオ・ブロックのためのエスケープ・シンボルのバイナリ化は、次数Kの指数ゴロム(EG)符号を使用する。Kは、3と等しくない負でない整数であり、前記パレット・モード符号化ツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずに符号化される現在のビデオ・ブロックのサンプルのために使用される。【選択図】図14

Description

関連出願への相互参照
この出願は、特願2022-509093の分割出願であり、同出願は2020年8月15日に出願された国際特許出願第PCT/US2020/046581号に基づき、同出願は、2019年8月15日に出願された国際特許出願第PCT/CN2019/100850号、2019年9月29日に出願された同PCT/CN2019/106700号、2019年9月24日に出願された同PCT/CN2019/107494号、2019年9月27日に出願された同PCT/CN2019/108736号、2019年10月1日に出願された同PCT/CN2019/109793号、2019年10月29日に出願された同PCT/CN2019/113931号および2020年1月9日に出願された同PCT/CN2020/071221の優先権および利益を適時に主張してなされる。前述した特許出願はすべて、ここに、参照により本願に組み込まれる。
技術分野
本稿は、ビデオおよび画像のコーディング・復号技術に関する。
デジタル・ビデオは、インターネットおよび他のデジタル通信ネットワークにおける最大の帯域幅使用を占める。ビデオを受信および表示できる接続されたユーザー装置の数が増加するにつれて、デジタル・ビデオの利用のための帯域幅需要は増加し続けることが予想される。
開示される技法は、パレット・モードコーディングおよび復号においてパレット・エスケープ・シンボルのエントロピーコーディングを実行するために、ビデオまたは画像のデコーダまたはエンコーダの実施形態によって使用されうる。
ある例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのためのエスケープ・シンボルのバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
別の例示的側面では、ビデオ処理の方法が開示される。本方法は、一つまたは複数のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、前記一つまたは複数のビデオ・ブロックのうちの現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされ、現在のビデオ・ブロックについてのエスケープ・シンボルのバイナリ化が固定長バイナリ化を用いるというフォーマット規則に適合し、前記パレット・モードコーディングツールは代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのエスケープ・シンボルのバイナリ化は、可変長コーディングを使用し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記変換は、現在のビデオ・ブロックに対する量子化または逆量子化プロセスの適用を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるかどうかに基づいて、前記量子化または逆量子化プロセスの適用を構成するフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックのエスケープ・シンボルがバイナリシフト演算を使用して量子化および/または脱量子化されるように表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの一つまたは複数のパレット・インデックスは、参照インデックスを用いずにコーディングされ、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされ、エスケープ・シンボルのインデックスと非エスケープ・シンボルのインデックスとの間の導出を制約するというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの導出されるパレット・インデックスは最大値をもち、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックがエスケープ・シンボルを含む構文要素を用いて表現されるというフォーマット規則に適合し、前記エスケープ・シンボルを示すインデックスの値は、前記一つまたは複数のビデオ領域のそれぞれについて変更されず、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在インデックスおよび参照インデックスに基づいてコーディングされる構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、予測的にコーディングされるエスケープ・シンボルを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックが、パレット項目をインデックス付けするためのパレット・インデックスに基づくコンテキストでランレングスコーディングされる構文要素を用いて表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、前の諸パレット・インデックスとは独立して信号伝達される現在のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。この方法は、整列規則に基づいて、ビデオの一つまたは複数のビデオ領域の現在のビデオ・ブロックのための量子化パラメータを予測するために使用される第1の近傍ビデオ・ブロックと、現在のビデオ・ブロックのコーディングモードを予測的に決定するために使用される第2の近傍ビデオ・ブロックとを決定するステップと、該決定に基づいて、前記ビデオと前記ビデオのビットストリーム表現との間の変換を実行するステップとを含む。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックがエスケープ・シンボルを含むかどうかにかかわらず、ブロック・レベル量子化パラメータ(QP)差を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、パレット・ブロックのための一つまたは複数のコーディングブロック・フラグ(CBF)を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、一つまたは複数のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記一つまたは複数のパレット・インデックスの数(NumPltIdx)は、K以上であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、Kは正の整数である。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のブロックのためのパレットの最大サイズ、現在のビデオ・ブロックのサイズ、無損失モードの使用、または量子化パラメータ(QP)に基づく構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
さらに別の例示的では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換のために、現在のビデオ・ブロックがブロックベースの差動パルス符号変調(BDPCM)モードでコーディングされ、複数の変換ブロックまたはサブブロックに分割されることを決定するステップと、前記変換を実行することの一部として、ブロック・レベルでの残差予測と、前記決定に基づいて、一つまたは複数の残差を前記ビットストリーム表現にサブブロックまたは変換ブロック・レベルで含めることとを実行するステップとを含む。
さらに別の例示的側面では、ビデオ処理の方法が開示される。本方法は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがライン・ベースの係数グループ(CG)パレット・モードを使用してコーディングされるというフォーマット規則に適合し、前記ライン・ベースのCGパレット・モードは、代表的な色値のパレットを使用して、現在のビデオ・ブロックの各コーディング単位(CU)の複数のセグメントを表す。
さらに別の例示的側面では、上述の方法は、プロセッサを備えるビデオ・エンコーダ装置によって実装されてもよい。
さらに別の例示的側面では、上述の方法は、プロセッサを備えるビデオ・デコーダ装置によって実装されてもよい。
さらに別の例示的側面では、これらの方法は、プロセッサ実行可能命令の形で具現され、コンピュータ読み取り可能なプログラム媒体に記憶されてもよい。
これらおよび他の側面は、本稿においてさらに説明される。
パレット・モードでコーディングされるブロックの例を示す図である。
パレット項目を信号伝達するためのパレット予測子の使用例を示す。
水平および垂直横断走査の例を示す。
パレット・インデックスの例示的なコーディングを示す。
AおよびBは、最小クロマ・イントラ予測単位(SCIPU)の例を示す。
ビデオ処理におけるループ内フィルタリングの一例のブロック図を示す。
ローカル・デュアル・ツリーの場合における反復されるパレット項目の例を示す。
コンテキスト導出のプロセスにおける左および上のブロックの例を示す。
本稿に記載される技法を実装するために使用されるハードウェア・プラットフォームの例のブロック図である。
開示された技法が実装されうる例示的なビデオ処理システムのブロック図である。
本開示のいくつかの実施形態によるビデオコーディングシステムを示すブロック図である。
本開示のいくつかの実施形態によるエンコーダを示すブロック図である。
本開示のいくつかの実施形態によるデコーダを示すブロック図である。
ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。 ビデオ処理の例示的方法のフローチャートを示す。
本稿は、圧縮解除または復号されたデジタル・ビデオまたは画像の品質を改善するために、画像またはビデオ・ビットストリームのデコーダによって使用されることのできるさまざまな技法を提供する。簡潔のため、本明細書では、用語「ビデオ」は、ピクチャーのシーケンス(伝統的にビデオと呼ばれる)および個々の画像の両方を含むために使用される。さらに、ビデオ・エンコーダも、さらなるエンコードのために使用されるデコードされたフレームを再構成するために、エンコードのプロセス中にこれらの技法を実装しうる。
セクション見出しは、理解の容易のために本稿で使用されており、実施形態および技法を対応するセクションに限定するものではない。よって、あるセクションからの実施形態は、他のセクションからの実施形態と組み合わせることができる。
1. 概要
本稿は、ビデオコーディング技術に関する。具体的には、パレットコーディングにおけるインデックスおよびエスケープ・シンボルコーディングに関する。これは、HEVCのような既存のビデオコーディング規格、またはこれから最終化される規格(多用途ビデオコーディング)に適用されてもよい。これは、将来のビデオコーディング規格またはビデオ・コーデックにも適用可能でありうる。
2. 背景
ビデオコーディング規格は、主に、周知のITU-TおよびISO/IEC規格の開発を通じて発展してきた。ITU-TはH.261とH.263を生み出し、ISO/IECはMPEG-1とMPEG-4 Visualを生み出し、両組織は合同して、H.262/MPEG-2 VideoとH.264/MPEG-4 Advanced Video Coding(AVC)とH.265/HEVC規格とを生み出した。H.262以来、ビデオコーディング規格は、時間的予測と変換コーディングが利用されるハイブリッドビデオコーディング構造に基づいている。HEVCを越えた将来のビデオコーディング技術を探求するため、2015年にVCEGとMPEGが合同で合同ビデオ探査チーム(JVET)を設立した。それ以来、JVETによって多くの新しい方法が採用され、合同探査モデル(Joint Exploration Model、JEM)と名付けられた参照ソフトウェアに入れられた。2018年4月には、VCEG(Q6/16)とISO/IEC JTC1 SC29/WG11(MPEG)の間の合同ビデオエキスパートチーム(JVET)が発足し、HEVCに比べ50%のビットレート削減を目指すVVC規格に取り組んでいる。
VVCドラフトの最新バージョン、すなわち、Versatile Video Coding(Draft 6)は下記の場所に見出せる:
http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/15_Gothenburg/wg11/JVET-O2001-v14.zip
VVCの最新の参照ソフトウェア(VTM)は、下記の場所に見出せる:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/tags/VTM-5.0
2.1 HEVCスクリーン・コンテンツコーディング拡張(HEVC-SCC)におけるパレット・モード
2.1.1 パレット・モードの概念
パレット・モードの背後にある基本的な発想は、CU内のピクセルが代表的な色値の小さな集合によって表現されるということである。この集合はパレットと呼ばれる。エスケープ・シンボルおよびそれに続く(可能性としては量子化された)成分値を信号伝達することによって、パレットの外側にあるサンプルを示すことも可能である。この種のピクセルはエスケープ・ピクセルと呼ばれる。パレット・モードは図1に示されている。図1に示されるように、3つの色成分(ルーマおよび2つのクロマ成分)を有する各ピクセルについて、パレットへのインデックスが設立され、ブロックは、パレットにおける設立された値に基づいて再構成されることができる。
2.1.2 パレット項目のコーディング
パレット項目のコーディングのために、パレット予測子が維持される。パレットの最大サイズとパレット予測子は、SPSにおいて信号伝達される。HEVC-SCCでは、palette_predictor_initializer_present_flagがPPSにおいて導入される。このフラグが1である場合、パレット予測子を初期化するための項目が、ビットストリームにおいて信号伝達される。パレット予測子は、各CTU行、各スライスおよび各タイルの先頭において初期化される。palette_predictor_initializer_present_flagの値に依存して、パレット予測子は0にリセットされるか、PPSにおいて信号伝達されたパレット予測子初期化子項目(palette predictor initializer entries)を使用して初期化される。HEVC-SCCでは、サイズ0のパレット予測子初期化子により、PPSレベルでパレット予測子初期化の明示的な無効化を許容することができるようにされた。
パレット予測子における各項目について、再利用フラグは、それが現在のパレットの一部であるかどうかを示すために信号伝達される。これは図2に示される。再利用フラグは、ゼロのランレングスコーディングを使用して送信される。その後、新しいパレット項目の数が、次数0の指数ゴロム(Exponential Golomb、EG)符号、すなわちEG-0を使用して信号伝達される。最後に、新しいパレット項目のための成分値が信号伝達される。
2.1.3 パレット・インデックスのコーディング
パレット・インデックスは、図3に示されるように水平および垂直横断走査を用いてコーディングされる。走査順序は、palette_transpose_flagを使用してビットストリームにおいて明示的に信号伝達される。サブセクションの残りについては、走査は水平であると想定される。
パレット・インデックスは、'COPY_LEFT'〔左をコピー〕と'COPY_ABOVE'〔上をコピー〕という2つのパレット・サンプル・モードを使用してコーディングされる。'COPY_LEFT'モードでは、パレット・インデックスはデコードされたインデックスに割り当てられる。'COPY_ABOVE'モードでは、上の行のサンプルのパレット・インデックスがコピーされる。'COPY_LEFT'モードと'COPY_ABOVE'モードの両方について、やはり同じモードでコーディングされる後続のサンプルの数を指定するラン値が信号伝達される。
パレット・モードでは、エスケープ・シンボルについてのインデックスの値は、パレット項目の数である。また、エスケープ・シンボルが'COPY_LEFT'または'COPY_ABOVE'モードにおけるランの一部である場合、エスケープ成分値は、各エスケープ・シンボルについて信号伝達される。パレット・インデックスのコーディングが図4に示される。
この構文順序(syntax order)は、次のように達成される。まず、CUについてのインデックス値の数が信号伝達される。これに続いて、打ち切りされたバイナリコーディングを使用して、CU全体についての実際のインデックス値が信号伝達される。インデックスの数とインデックス値の両方がバイパス・モードでコーディングされる。これは、インデックスに関連したバイパス・ビンをグループ化する。次いで、パレット・サンプル・モード(必要な場合)およびランが、インターリーブされた仕方で信号伝達される。最後に、CU全体についての諸エスケープ・シンボルのための成分エスケープ値が一緒にグループ化され、バイパス・モードでコーディングされる。エスケープ・シンボルのバイナリ化は、3次のEGコーディング、すなわちEG-3である。
追加的な構文要素last_run_type_flagが、インデックス値を信号伝達した後に信号伝達される。この構文要素は、インデックスの数とともに、ブロックにおける最後のランに対応するラン値を信号伝達する必要をなくす。
HEVC-SCCでは、パレット・モードは4:2:2、4:2:0、およびモノクロ・クロマ・フォーマットについても有効にされる。パレット項目とパレット・インデックスの信号伝達は、すべてのクロマ・フォーマットについてほぼ同一である。非モノクロ・フォーマットの場合、各パレット項目は3つの成分で構成される。モノクロ・フォーマットの場合、各パレット項目は単一の成分で構成される。サブサンプリングされたクロマ方向については、クロマ・サンプルは2で割れるルーマ・サンプル・インデックスと関連付けられる。CUのためのパレット・インデックスを再構成した後、サンプルが、それに関連する単一の成分をもつだけである場合、パレット項目の最初の成分のみが使用される。信号伝達における唯一の違いは、エスケープ成分値についてである。各エスケープ・シンボルについて、信号伝達されるエスケープ成分値の数は、そのシンボルに関連する成分の数に依存して異なる可能性がある。
さらに、パレット・インデックスコーディングにはインデックス調整プロセスがある。パレット・インデックスを信号伝達するとき、左近傍インデックスまたは上近傍インデックスは、現在インデックスとは異なるはずである。よって、1つの可能性を除去することにより、現在のパレット・インデックスの範囲を1だけ減らすことができる。その後、インデックスは、打ち切りされたバイナリ(truncated binary、TB)バイナリ化で信号伝達される。
この部分に関連するテキストは次のように示される。ここで、CurrPaletteIndexは現在のパレット・インデックスであり、adjustedRefPaletteIndexは予測インデックスである。
変数PaletteIndexMap[xC][yC]は、パレット・インデックスを指定する。これは、CurrentPaletteEntries
によって表現される配列へのインデックスである。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。PaletteIndexMap[xC][yC]の値は、0からMaxPaletteIndexの範囲である(両端含む)。変数adjustedRefPaletteIndexは次のように導出される:
adjustedRefPaletteIndex=MaxPaletteIndex+1
if(PaletteScanPos>0){
xcPrev=x0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][0]
ycPrev=y0+TraverseScanOrder[log2CbWidth][log2bHeight][PaletteScanPos-1][1]
if(CopyAboveIndicesFlag[xcPrev][ycPrev]==0){
adjustedRefPaletteIndex=PaletteIndexMap[xcPrev][ycPrev]{ (7-157)
else{
if(!palette_transpose_flag)
adjustedRefPaletteIndex=PaletteIndexMap[xC][yC-1]
else
adjustedRefPaletteIndex=PaletteIndexMap[xC-1][yC]
}
}
CopyAboveIndicesFlag[xC][yC]が0に等しい場合、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++
さらに、パレット・モードにおけるランレングス要素はコンテキストコーディングされる。JVET-O2011-vEにおいて記載される関連するコンテキスト導出プロセスは、以下のように示される。
構文要素palette_run_prefixについてのctxIncの導出プロセス
このプロセスへの入力は、ビン・インデックスbinIdxならびに構文要素copy_above_palette_indices_flagおよびpalette_idx_idcである。
このプロセスの出力は変数ctxIncである。
変数ctxIncは次のように導出される:
・copy_above_palette_indices_flagが0に等しく、binIdxが0に等しい場合、ctxIncは以下のように導出される:
ctxInc=(palette_idx_idc<1)? 0:((palette_idx_idc<3)?1:2) (9-69)
・それ以外の場合、ctxIncは表1によって与えられる:
Figure 2024023581000002
2.2 VVCにおけるパレット・モード
2.2.1 デュアル・ツリーにおけるパレット
VVCでは、デュアル・ツリーコーディング構造がイントラスライスのコーディングに使用されるため、ルーマ成分と2つのクロマ成分は、異なるパレットおよびパレット・インデックスをもつことがある。さらに、2つのクロマ成分は、同じパレットおよびパレット・インデックスを共有する。
2.2.2 別個のモードとしてのパレット
JVET-N0258および現在のVTMでは、コーディング単位についての予測モードはMODE_INTRA、MODE_INTER、MODE_IBC、MODE_PLTとすることができる。予測モードのバイナリ化はそれに応じて変更される。
IBCがオフにされるときは、Iタイル上で、最初の1ビンが、現在の予測モードがMODE_PLTであるか否かを示すために使用される。P/Bタイル上では、最初のビンは現在の予測モードがMODE_INTRAであるか否かを示すために使用される。そうでない場合、現在の予測モードがMODE_PLTまたはMODE_INTERであることを示すために、1つの追加的なビンが使用される。IBCがオンにされるときは、Iタイル上で、最初のビンが、現在の予測モードがMODE_IBCであるか否かを示すために使用される。もしそうでなければ、現在の予測モードがMODE_PLTかMODE_INTRAかを示すために第2のビンが使われる。P/Bタイル上では、最初のビンは現在の予測モードがMODE_INTRAであるか否かを示すために使用される。イントラモードである場合、現在の予測モードがMODE_PLTまたはMODE_INTRAであることを示すために第2のビンが使用される。もしそうでなければ、現在の予測モードがMODE_IBCまたはMODE_INTERであることを示すために第2のビンが使用される。
JVET-O2001-vEにおける関連するテキストを以下に示す。
コーディング単位構文
Figure 2024023581000003
2.2.3 パレット・モード構文
Figure 2024023581000004
Figure 2024023581000005
Figure 2024023581000006
Figure 2024023581000007
Figure 2024023581000008
2.2.4 パレット・モードのセマンティクス
以下のセマンティクスでは、配列インデックスx0、y0は、ピクチャーの左上のルーマ・サンプルに対する、考慮されるコーディングブロックの左上のルーマ・サンプルの位置(x0,y0)を指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対する、サンプルの位置(xC,yC)を指定する。配列インデックスstartCompは、現在のパレット・テーブルの最初の色成分を指定する。0に等しいstartCompはY成分を示し、1に等しいstartCompはCb成分を示し、2に等しいstartCompはCr成分を示す。numCompsは、現在のパレット・テーブルにおける色成分の数を指定する。
予測子パレットは、現在のパレット内の項目を予測するために使用される、以前のコーディング単位からのパレット項目で構成される。
変数PredictorPaletteSize[startComp]は、現在のパレット・テーブルの最初の色成分startCompについての予測子パレットのサイズを指定する。PredictorPaletteSizeは、節8.4.5.3において規定されるように導出される。
変数PalettePredictorEntryReuseFlags[i]が1に等しいことは、予測子パレットにおけるi番目の項目が現在のパレットにおいて再利用されることを指定する。PalettePredictorEntryReuseFlags[i]が0に等しいことは、予測子パレットのi番目の項目が現在のパレットにおける項目ではないことを指定する。配列PalettePredictorEntryReuseFlags[i]のすべての要素が0に初期化される。
palette_predictor_runは、配列PalettePredictorEntryReuseFlagsにおけるゼロでない項目の前にあるゼロの数を決定するために使用される。
palette_predictor_runの値は、0から(PredictorPaletteSize-predictorEntryIdx)の範囲内(両端含む)であることがビットストリーム適合性の要件である。ここで、predictorEntryIdxは、配列PalettePredictorEntryReuseFlagsにおける現在位置に対応する。変数NumPredictedPaletteEntriesは、予測子パレットから再利用される現在のパレットにおける項目数を指定する。NumPredictedPalletteEntriesの値は、0からpalette_max_sizeの範囲内(両端含む)である。
num_signalled_palette_entriesは、現在のパレット・テーブルの最初の色成分startCompについて明示的に信号伝達される、現在のパレットにおける項目の数を指定する。
num_signalled_palette_entriesが存在しない場合、0に等しいと推定される。
変数CurrentPaletteSize[startComp]は、現在のパレット・テーブルの最初の色成分startCompについての現在のパレットのサイズを指定し、次のように導出される:
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries+num_signalled_palette_entries (7-155)
CurrentPaletteSize[startComp]の値は、0からpalette_max_sizeの範囲内(両端含む)である。
new_palette_entries[cIdx][i]は、色成分cIdxについてのi番目の信号伝達されるパレット項目についての値を指定する。
変数PredictorPaletteEntries[cIdx][i]は、色成分cIdxについての予測子パレットにおけるi番目の要素を指定する。
変数CurrentPaletteEntries[cIdx][i]は、色成分cIdxについての現在のパレットにおけるi番目の要素を指定し、次のように導出される:
Figure 2024023581000009
palette_escape_val_present_flagが1に等しいことは、現在のコーディング単位が少なくとも1つのエスケープコーディングサンプルを含むことを指定する。escape_val_present_flagが0に等しいことは、現在のコーディング単位においてエスケープコーディングされたサンプルがないことを指定する。存在しない場合、palette_escape_val_present_flagの値は1に等しいと推定される。
変数MaxPaletteIndexは、現在のコーディング単位についてのパレット・インデックスの可能な最大値を指定する。MaxPaletteIndexの値は
CurrentPaletteSize[startComp]-1+palette_escape_val_presen_flag
に等しく設定される。
num_palette_indices_minus1に1を加えたものは、現在のブロックについて明示的に信号伝達されるまたは推定されるパレット・インデックスの数である。num_palette_indices_minus1が存在しない場合、0に等しいと推定される。
palette_idx_idcは、パレット・テーブル、CurrentPaletteEntriesへのインデックスの指示である。palette_idx_idcの値は、ブロック内の最初のインデックスについては0からMaxPaletteIndexの範囲内(両端含む)であり、ブロック内の残りのインデックスについては0から(MaxPaletteIndex-1)の範囲内(両端含む)である。
palette_idx_idcが存在しない場合、0に等しいと推定される。
変数PaletteIndexIdc[i]は、明示的に信号伝達されるまたは推定されるi番目のpalette_idx_idcを格納する。配列PaletteIndexIdc[i]のすべての要素は0に初期化される。
copy_above_indices_for_final_run_flagが1に等しいことは、コーディング単位の最後の諸位置のパレット・インデックスが、水平横断走査が使用される場合は上の行におけるパレット・インデックスから、垂直横断走査が使用される場合は左の列におけるパレット・インデックスから、コピーされることを指定する。
copy_above_indices_for_final_run_flagが0に等しいことは、コーディング単位における最後の諸位置のパレット・インデックスがPaletteIndexIdc[num_palette_indices_minus1]からコピーされることを指定する。
copy_above_indices_for_final_run_flagが存在しない場合、0に等しいと推定される。
palette_transpose_flagが1に等しいことは、現在のコーディング単位内のサンプルについてのインデックスを走査するために垂直横断走査が適用されることを指定する。palette_transpose_flagが0に等しいことは、現在のコーディング単位内のサンプルについてのインデックスを走査するために水平横断走査が適用されることを指定する。存在しない場合、palette_transpose_flagの値は0に等しいと推定される。
配列TraverseScanOrderは、パレットコーディングのための走査順序配列を指定する。palette_transpose_flagが0に等しい場合、TraverseScanOrderは水平走査順序HorTravScanOrderを割り当てられ、palette_transpose_flagが1に等しい場合、TraverseScanOrderは垂直走査順序VerTravScanOrderを割り当てられる。
copy_above_palette_indices_flagが1に等しいことは、パレット・インデックスが、水平横断走査が使用される場合には、上の行における同じ位置、または垂直横断走査が使用される場合には、左の列における同じ位置にあるパレット・インデックスに等しいことを指定する。copy_above_palette_indices_flagが0に等しいことは、サンプルのパレット・インデックスの指示がビットストリームにおいてコーディングされるか、または推定されることを指定する。
変数CopyAboveIndicesFlag[xC][yC]が1に等しいことは、パレット・インデックスが上の行(水平走査)または左の列(垂直走査)におけるパレット・インデックスからコピーされることを指定する。
CopyAboveIndicesFlag[xC][yC]が0に等しいことは、パレット・インデックスがビットストリームにおいて明示的にコーディングされるか、推定されることを指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対する、サンプルの位置(xC,yC)を指定する。PaletteIndexMap[xC][yC]の値は、0から(MaxPaletteIndex-1)の範囲内(両端含む)とする。
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表される配列へのインデックスであるパレット・インデックスを指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。PaletteIndexMap[xC][yC]の値は、0からMaxPaletteIndexの範囲内(両端含む)である。
変数adjustedRefPaletteIndexは次のように導出される:
Figure 2024023581000010
CopyAboveIndicesFlag[xC][yC]が0に等しい場合、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++ (7-158)
palette_run_prefixは、存在する場合、PaletteRunMinus1のバイナリ化におけるプレフィックス部分を指定する。
palette_run_suffixは、変数PaletteRunMinus1の導出において使用される。存在しない場合、palette_run_suffixの値は0に等しいと推定される。
RunToEndが0に等しい場合、変数PaletteRunMinus1は次のように導出される:
・PaletteMaxRunMinus1が0に等しい場合、PaletteRunMinus1は0に等しく設定される。
・それ以外の場合(PaletteMaxRunMinus1が0より大きい場合)、次が適用される:
・palette_run_prefixが2より小さい場合、次が適用される:
PaletteRunMinus1=palette_run_prefix (7-159)
・それ以外の場合(palette_run_prefixが2以上)、次が適用される:
PrefixOffset=1<<(palette_run_prefix-1)
PaletteRunMinus1=PrefixOffset+palette_run_suffix (7-160)
変数PaletteRunMinus1は次のように使用される:
・CopyAboveIndicesFlag[xC][yC]が0に等しい場合、PaletteRunMinus1は、同じパレット・インデックスをもつ連続する位置の数から1を引いた数を指定する。
・それ以外の場合、palette_transpose_flagが0に等しい場合、PaletteRunMinus1は、上の行における対応する位置で使用されるのと同じパレット・インデックスをもつ、連続する位置の数から1を引いた数を指定する。
・それ以外の場合、PaletteRunMinus1は、左の列における対応する位置で使用されるのと同じパレット・インデックスをもつ、連続する位置の数から1を引いた数を指定する。
RunToEndが0に等しい場合、変数PaletteMaxRunMinus1はPaletteRunMinus1について可能な最大値を表し、PaletteMaxRunMinus1の値が0以上であることはビットストリーム適合性の要件である。
palette_escape_valは、ある成分についての量子化されたエスケープコーディングされたサンプル値を指定する。
変数PaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しいサンプルのエスケープ値を指定する。配列インデックスcIdxは、色成分を指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。
PaletteEscapeVal[cIdx][xC][yC]が、0に等しいcIdxについては0から(1<<(BitDepthY+1)-1の範囲内(両端含む)であり、0に等しくないcIdxについては0から(1<<((BitDepthC+1))-1)の範囲内(両端含む)であることがビットストリーム適合性の要件である。
1.1.1 ライン・ベースのCGパレット・モード
ライン・ベースのCGパレット・モードがVVCに採用された。この方法では、パレット・モードの各CUは、横断走査モードに基づいて複数のサンプル・セグメント(この試験では)に分割される。各セグメントにおけるパレット・ランコーディングのためのエンコード順序は、次のとおり:各ピクセルについて、1つのコンテキストコーディングされたビンrun_copy_flag=0が信号伝達されて、ピクセルが前のピクセルと同じモードであるかどうか、すなわち前の走査されたピクセルと現在のピクセルが両方ともラン・タイプCOPY_ABOVEであるかどうか、または前の走査されたピクセルと現在のピクセルが両方ともラン・タイプINDEXであり、同じインデックス値であるかどうかを示す。そうでない場合、run_copy_flag=1が信号伝達される。ピクセルと前のピクセルが異なるモードである場合、1つのコンテキストコーディングされたビンcopy_above_palette_indices_flagが信号伝達されて、ピクセルのラン・タイプ、すなわち、INDEXまたはCOPY_ABOVEを示す。VTM6.0におけるパレット・モードと同じく、サンプルが最初の行(水平横断走査)または最初の列(垂直横断走査)にある場合、デフォルトでINDEXモードが使用されるため、デコーダはラン・タイプをパースする必要はない。また、前にパースされたラン・タイプがCOPY_ABOVEである場合も、デコーダはラン・タイプをパースする必要はない。1つのセグメントにおけるピクセルのパレット・ランコーディングの後、インデックス値(INDEXモードについて)および量子化されたエスケープ色は、各ラインCG内のスループットを改善するために、コンテキストコーディングされたビンのエンコード/パースとは別に、バイパスコーディングおよびグループ化される。インデックス値は、VTMのようにパレット・ランコーディングの前に処理されるのではなく、今やランコーディングの後にコーディング/パースされるので、エンコーダは、インデックス値の数num_palette_indices_minus1と最後のラン・タイプcopy_above_indices_for_final_run_flagを信号伝達する必要はない。
JVET-P0077におけるライン・ベースのCGパレット・モードのテキストを以下に示す。
パレットコーディング構文
Figure 2024023581000011
Figure 2024023581000012
Figure 2024023581000013
Figure 2024023581000014
Figure 2024023581000015
7.4.9.6 パレットコーディングのセマンティクス
以下のセマンティクスでは、配列インデックスx0、y0は、ピクチャーの左上のルーマ・サンプルに対する、考慮されるコーディングブロックの左上のルーマ・サンプルの位置(x0,y0)を指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。配列インデックスstartCompは、現在のパレット・テーブルの最初の色成分を指定する。0に等しいstartCompはY成分を示し、1に等しいstartCompはCb成分を示し、2に等しいstartCompはCr成分を示す。numCompsは、現在のパレット・テーブルにおける色成分の数を指定する。
予測子パレットは、現在のパレット内の項目を予測するために使用される、以前のコーディング単位からのパレット項目で構成される。
変数PredictorPaletteSize[startComp]は、現在のパレット・テーブルの最初の色成分startCompについての予測子パレットのサイズを指定する。PredictorPaletteSizeは、節8.4.5.3において規定されるように導出される。
変数PalettePredictorEntryReuseFlags[i]が1に等しいことは、予測子パレットにおけるi番目の項目が現在のパレットにおいて再利用されることを指定する。PalettePredictorEntryReuseFlags[i]が0に等しいことは、予測子パレットのi番目の項目が現在のパレットにおける項目ではないことを指定する。配列PalettePredictorEntryReuseFlags[i]のすべての要素が0に初期化される。
palette_predictor_runは、配列PalettePredictorEntryReuseFlagsにおけるゼロでない項目の前にあるゼロの数を決定するために使用される。
palette_predictor_runの値は、0から(PredictorPaletteSize-predictorEntryIdx)の範囲内(両端含む)であることがビットストリーム適合性の要件である。ここで、predictorEntryIdxは、配列PalettePredictorEntryReuseFlagsにおける現在位置に対応する。変数NumPredictedPaletteEntriesは、予測子パレットから再利用される現在のパレットにおける項目数を指定する。NumPredictedPalletteEntriesの値は、0からpalette_max_sizeの範囲内(両端含む)である。
num_signalled_palette_entriesは、現在のパレット・テーブルの最初の色成分startCompについて明示的に信号伝達される、現在のパレットにおける項目の数を指定する。
num_signalled_palette_entriesが存在しない場合、0に等しいと推定される。
変数CurrentPaletteSize[startComp]は、現在のパレット・テーブルの最初の色成分startCompについての現在のパレットのサイズを指定し、次のように導出される:
CurrentPaletteSize[startComp]=NumPredictedPaletteEntries+num_signalled_palette_entries (7-155)
CurrentPaletteSize[startComp]の値は、0からpalette_max_sizeの範囲内(両端含む)である。
new_palette_entries[cIdx][i]は、色成分cIdxについてのi番目の信号伝達されるパレット項目についての値を指定する。
変数PredictorPaletteEntries[cIdx][i]は、色成分cIdxについての予測子パレットにおけるi番目の要素を指定する。
変数CurrentPaletteEntries[cIdx][i]は、色成分cIdxについての現在のパレットにおけるi番目の要素を指定し、次のように導出される:
Figure 2024023581000016
palette_escape_val_present_flagが1に等しいことは、現在のコーディング単位が少なくとも1つのエスケープコーディングサンプルを含むことを指定する。escape_val_present_flagが0に等しいことは、現在のコーディング単位においてエスケープコーディングされたサンプルがないことを指定する。存在しない場合、palette_escape_val_present_flagの値は1に等しいと推定される。
変数MaxPaletteIndexは、現在のコーディング単位についてのパレット・インデックスの可能な最大値を指定する。MaxPaletteIndexの値は
CurrentPaletteSize[startComp]-1+palette_escape_val_presen_flag
に等しく設定される。
palette_idx_idcは、パレット・テーブル、CurrentPaletteEntriesへのインデックスの指示である。palette_idx_idcの値は、ブロック内の最初のインデックスについては0からMaxPaletteIndexの範囲内(両端含む)であり、ブロック内の残りのインデックスについては0から(MaxPaletteIndex-1)の範囲内(両端含む)である。
palette_idx_idcが存在しない場合、0に等しいと推定される。
palette_transpose_flagが1に等しいことは、現在のコーディング単位内のサンプルについてのインデックスを走査するために垂直横断走査が適用されることを指定する。palette_transpose_flagが0に等しいことは、現在のコーディング単位内のサンプルについてのインデックスを走査するために水平横断走査が適用されることを指定する。存在しない場合、palette_transpose_flagの値は0に等しいと推定される。
配列TraverseScanOrderは、パレットコーディングのための走査順序配列を指定する。palette_transpose_flagが0に等しい場合、TraverseScanOrderは水平走査順序HorTravScanOrderを割り当てられ、palette_transpose_flagが1に等しい場合、TraverseScanOrderは垂直走査順序VerTravScanOrderを割り当てられる。
run_copy_flagが1に等しいことは、copy_above_palette_indices_flagが0に等しい場合、パレット・ラン・タイプが前に走査された位置でのラン・タイプと同じであり、パレット・ラン・インデックスが前の位置でのインデックスと同じであることを指定する。それ以外の場合は、run_copy_flagは0に等しい。
copy_above_palette_indices_flagが1に等しいことは、パレット・インデックスが、水平横断走査が使用される場合には、上の行における同じ位置、または垂直横断走査が使用される場合には、左の列における同じ位置にあるパレット・インデックスに等しいことを指定する。copy_above_palette_indices_flagが0に等しいことは、サンプルのパレット・インデックスの指示がビットストリームにおいてコーディングされるか、または推定されることを指定する。
変数CopyAboveIndicesFlag[xC][yC]が1に等しいことは、パレット・インデックスが上の行(水平走査)または左の列(垂直走査)におけるパレット・インデックスからコピーされることを指定する。
CopyAboveIndicesFlag[xC][yC]が0に等しいことは、パレット・インデックスがビットストリームにおいて明示的にコーディングされるか、推定されることを指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対する、サンプルの位置(xC,yC)を指定する。
変数PaletteIndexMap[xC][yC]は、CurrentPaletteEntriesによって表される配列へのインデックスであるパレット・インデックスを指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。PaletteIndexMap[xC][yC]の値は、0からMaxPaletteIndexの範囲内(両端含む)である。
変数adjustedRefPaletteIndexは次のように導出される:
Figure 2024023581000017
CopyAboveIndicesFlag[xC][yC]が0に等しい場合、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++ (7-158)
palette_escape_valは、ある成分についての量子化されたエスケープコーディングされたサンプル値を指定する。
変数PaletteEscapeVal[cIdx][xC][yC]は、PaletteIndexMap[xC][yC]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しいサンプルのエスケープ値を指定する。配列インデックスcIdxは、色成分を指定する。配列インデックスxC、yCは、ピクチャーの左上のルーマ・サンプルに対するサンプルの位置(xC,yC)を指定する。
PaletteEscapeVal[cIdx][xC][yC]が、0に等しいcIdxについては0から(1<<(BitDepthY+1)-1の範囲内(両端含む)であり、0に等しくないcIdxについては0から(1<<((BitDepthC+1))-1)の範囲内(両端含む)であることがビットストリーム適合性の要件である。
2.3 VVCにおけるローカル・デュアル・ツリー
典型的なハードウェア・ビデオ・エンコーダおよびデコーダでは、ピクチャーがより多くの小さなイントラブロックを有する場合、近傍のイントラブロック間のサンプル処理データ依存性のため、処理スループットが低下する。イントラブロックの予測子生成は、近傍ブロックからの上部および左の境界の再構成されたサンプルを必要とする。よって、イントラ予測はブロックごとに順次処理されなければならない。
HEVCでは、最小のCUは8×8ルーマ・サンプルである。最小のイントラCUのルーマ成分は、4つの4×4ルーマ・イントラ予測単位(PU)にさらに分割できるが、最小のイントラCUのクロマ成分はそれ以上分割できない。したがって、最悪ケースのハードウェア処理スループットは、4×4クロマ・イントラブロックまたは4×4ルーマ・イントラブロックが処理されるときに発生する。
VTM5.0では、単一コーディングツリーでは、クロマ・パーティションは常にルーマに従い、最小のイントラCUは4×4ルーマ・サンプルであるため、最小のクロマ・イントラCBは2×2である。したがって、VTM5.0では、単一コーディングツリーにおける最小のクロマ・イントラCBは2×2である。VVC復号のための最悪ケースのハードウェア処理スループットは、HEVC復号の場合の1/4だけである。さらに、クロマ・イントラCBの再構成プロセスは、成分横断線形モデル(cross-component linear model、CCLM)、4タップ補間フィルタ、位置依存イントラ予測結合(position-dependent intra prediction combination、PDPC)、および復号インター・イントラ予測(combined inter intra prediction、CIIP)を含むツールを採用した後、HEVCの場合よりはるかに複雑になる。ハードウェア・デコーダにおいて高い処理スループットを達成することは困難である。本節では、最悪ケースのハードウェア処理スループットを改善する方法が提案される。
この方法の目標は、クロマ・イントラCBのパーティション分割を制約することにより、16クロマ・サンプルより小さいクロマ・イントラCBを禁止することである。
単一コーディングツリーでは、SCIPUは、クロマ・ブロック・サイズがTHクロマ・サンプル以上であり、4THルーマ・サンプルより小さい少なくとも1つの子ルーマ・ブロックをもつコーディングツリー・ノードとして定義される。ここで、THはこの寄稿では16に設定される。各SCIPUでは、すべてのCBがインターであるか、またはすべてのCBが非インターである、すなわちイントラまたはIBCのいずれかであることが要求される。非インターSCIPUの場合、さらに、非インターSCIPUのクロマがそれ以上分割されず、SCIPUのルーマがさらに分割されることが許されることが要求される。このようにして、最小のクロマ・イントラCBサイズは16クロマ・サンプルであり、2×2、2×4、および4×2クロマCBが除去される。さらに、クロマ・スケーリングは、非インターSCIPUの場合には適用されない。さらに、ルーマ・ブロックがさらに分割され、クロマ・ブロックが分割されない場合、ローカルのデュアル・ツリーコーディング構造が構築される。
2つのSCIPUの例を図5のAおよびBに示されている。図5のAにおいては、8×4クロマ・サンプルの1つのクロマCBと3つのルーマCB(4×8、8×8、4×8のルーマCB)が1つのSCIPUを形成するが、これは、8×4クロマ・サンプルからの三分木(TT)分割は、16クロマ・サンプルより小さなクロマCBを生じるためである。図5のBでは、4×4クロマ・サンプルの一方のクロマCB(8×4クロマ・サンプルの左側)と3つのルーマCB(8×4、4×4、4×4のルーマCB)が1つのSCIPUを形成し、4×4サンプルの他方のクロマCB(8×4クロマ・サンプルの右側)と2つのルーマCB(8×4、8×4のルーマCB)が1つのSCIPUを形成する。これは、4×4クロマ・サンプルからの二分木(BT)分割は、16のクロマ・サンプルよりも小さなクロマCBを生じるためである。
提案される方法では、現在のスライスがIスライスであるか、または現在のSCIPUがさらに1回分割した後に4×4ルーマ・パーティションをその中に有する場合、SCIPUのタイプは非インターであると推定される(VVCではインター4×4は許可されないため);それ以外の場合、SCIPUのタイプ(インターまたは非インター)は、SCIPUにおいてCUをパースする前に、1つの信号伝達されるフラグによって示される。
上記の方法を適用することにより、2×2のクロマ・ブロックの代わりに4×4、2×8、または8×2のクロマ・ブロックが処理する場合に、最悪ケースのハードウェア処理スループットが発生する。最悪ケースのハードウェア処理スループットはHEVCの場合と同じであり、VTM5.0の場合の4倍である。
2.4 変換スキップ(TS)
HEVCの場合と同様に、ブロックの残差は変換スキップ・モードでコーディングされることができる。構文コーディングの冗長性を避けるために、CUレベルMTS_CU_flagがゼロに等しくない場合、変換スキップ・フラグは信号伝達されない。変換スキップのためのブロック・サイズ制限は、JEM4におけるMTSについての場合と同じである。このことは、ブロック幅と高さの両方が32以下の場合に、変換スキップがCUに適用できることを示している。現在のCUについてLFNSTまたはMIPがアクティブ化される場合、暗黙的なMTS変換がDCT2に設定されることに注意されたい。また、暗黙的なMTSは、インターコーディングされたブロックについてMTSが有効にされている場合でも、有効にされることができる。
また、変換スキップ・ブロックについて、最小の許容される量子化パラメータ(QP)は6*(internalBitDepth-inputBitDepth)+4と定義される。
2.5 代替的なルーマ半画素補間フィルタ
JVET-N0309では、代替的な半画素補間フィルタが提案されている。
半画素ルーマ補間フィルタのスイッチングは、動きベクトル精度に依存して行われる。既存の1/4画素、フル画素、および4画素AMVRモードに加えて、新しい半画素精度AMVRモードが導入される。半画素動きベクトル精度の場合にのみ、代替的な半画素ルーマ補間フィルタが選択されることができる。
半画素動きベクトル精度(すなわち、半画素AMVRモード)を使用する非アフィン非マージ・インターコーディングされるCUについて、HEVC/VVC半画素ルーマ補間フィルタと一つまたは複数の代替的な半画素補間との間の切り換えが、新しい構文要素hpelIfIdxの値に基づいて行われる。構文要素hpelIfIdxは、半画素AMVRモードの場合にのみ信号伝達される。空間的マージ候補を使用するスキップ/マージ・モードの場合、構文要素hpelIfIdxの値は近傍ブロックから継承される。
2.6 適応色変換(Adaptive Color Transform、ACT)
図6は、ACTが適用される復号フローチャートを示す。図6に示されるように、色空間変換は、残差ドメインで実行される。具体的には、1つの追加的な復号モジュール、すなわち逆ACTが、YCgCoドメインからの残差をもとのドメインに戻す変換をするための逆変換の後に、導入される。
VVCでは、最大変換サイズが1コーディング単位(CU)の幅または高さより小さいのでない限り、1つのCUリーフノードも、変換処理の単位として使用される。よって、提案される実装では、ACTフラグは、残差をコーディングするための色空間を選択するために、1つのCUについて信号伝達される。さらに、HEVC ACT設計に従い、インターおよびIBC CUについて、ACTは、CU内に少なくとも1つのゼロでない係数がある場合にのみ有効にされる。イントラCUについては、ACTは、クロマ成分がルーマ成分の同じイントラ予測モード、すなわちDMモードを選択する場合にのみ、有効にされる。
色空間変換のために使用されるコア変換は、HEVCのために使用されるものと同じに保たれる。具体的には、以下の順方向および逆方向YCgCo色変換行列が適用される。
Figure 2024023581000018
さらに、色変換前後の残差信号のダイナミックレンジ変化を補償するために、(-5,-5,-3)のQP調整が変換残差に適用される。
他方、順色変換と逆色変換は、3つの成分すべての残差にアクセスする必要がある。対応して、提案される実装では、ACTは、3つの成分のすべての残差が利用可能ではない以下の2つのシナリオでは無効にされる。
1.別個木パーティション(separate-tree partition):別個の木が適用される場合、1つのCTU内のルーマおよびクロマ・サンプルは、異なる構造によって分割される。その結果、ルーマ・ツリー内のCUはルーマ成分のみを含み、クロマ・ツリー内のCUは2つのクロマ成分のみを含むことになる。イントラ・サブパーティション予測(Intra sub-partition prediction、ISP):ISPサブパーティションはルーマに適用されるだけであり、一方、クロマ信号は分割なしにコーディングされる。現在のISP設計では、最後の諸ISPサブパーティションを除いて、他のサブパーティションはルーマ成分だけを含む。
3. 本明細書に記載される技術的解決策および実施形態によって解決される技術的問題
1. エスケープ・シンボルの現在のバイナリ化は固定長ではなく、このことは、一様分布をもつ源に好適でありうる。
2. 現在のパレットコーディング設計は、可能性のある冗長性を除去するためにインデックス調整プロセスを実行し、これは、たとえばエスケープ値インデックスが誤って導出された場合に、パース依存性(parsing dependency)を導入する可能性がある。
3. 現在インデックスを導出するために使用される参照インデックスは、エンコーダ制約条件を必要とすることがあり、これは、現在の設計では考慮されず、コーデック設計のために望ましくない。
4. ローカル・デュアル・ツリーが有効にされる場合、前のブロックと現在のブロックのパレット項目は、異なる数の色成分をもつ可能性がある。そのような場合の対処方法は不明である。
5. ローカル・デュアル・ツリーとPLTは、単一ツリー領域からデュアル・ツリー領域にコーディングする際に、いくつかのパレット項目が繰り返される可能性があるため、同時に適用できなかった。一例が図7に示される。
6. joint_cbcrモードのためのクロマQPテーブルが制約される可能性がある。
7. ある種の条件下では、エスケープ・サンプルが冗長になることがある。
8. ライン・ベースのCGモードは、高スループットで処理できなかった。
4. 実施形態および解決策のリスト
以下のリストは、一般的な概念を説明するための例として考慮されるべきである。これらの項目は狭義に解釈すべきではない。さらに、これらの項目は、任意の仕方で組み合わせることができる。
以下の例は、VVCにおけるパレット方式および他のすべてのパレット関連方式に適用されうる。
以下の項目では、Qpは、JVET-P2001-vEのセクション8.4.5.3におけるqPを示しうる。
以下の項目では、QpPrimeTsMinは、変換スキップ・モードのための許容される最小量子化パラメータである。
Modulo(x,M)は、xが正の整数の場合は(x%M)として定義され、そうでない場合はM-(-x)%Mとして定義される。
以下では、無損失モードでコーディングされたブロックは、1に等しいtranquant_bypass_flagでコーディングされたブロック、または所与の閾値より大きくないQPおよび1に等しいtransform_skip_flagでコーディングされたブロックを意味しうる。
以下の例は、VVCにおけるパレット方式および他のすべてのパレット関連方式に適用されうる。
1.固定長コーディングが、エスケープ・シンボルをコーディングするために適用されてもよい。
a.一例では、エスケープ・シンボルは、固定長バイナリ化で信号伝達されてもよい。
b.一例では、エスケープ・シンボルは、Nビットを使用して固定長バイナリ化で信号伝達されてもよい。
c.一例では、エスケープ・シンボルを信号伝達するための符号長(たとえば、項目1.bで言及されているN)は、内部ビット深さに依存しうる。
i.あるいはまた、エスケープ・シンボルを信号伝達するための符号長は、入力ビット深さに依存してもよい。
ii.あるいはまた、エスケープ・シンボルを信号伝達するための符号長は、内部ビット深さと入力ビット深さとの間の差に依存してもよい。
iii.一例では、Nは入力/内部ビット深さに等しく設定される。
d.一例では、固定長コーディングの長さは、ビデオ処理単位レベル、たとえば、スライス・サブピクチャー、タイル、ピクチャー、ビデオにおいて信号伝達されてもよい。
e.一例では、エスケープ・シンボルを信号伝達するための符号長(たとえば、項目1.bで言及されているN)は、量子化パラメータ、すなわちQpに依存してもよい。
i.一例では、エスケープ・シンボルを信号伝達するための符号長は、f(Qp)で示されるような量子化パラメータの関数であってもよい。
1.一例では、関数fは(内部ビット深さ-g(Qp))と定義されてもよい。
2.一例では、Nは(内部ビット深さ-max(16,(Qp-4)/6))に設定されてもよい。
3.一例では、Nは(内部ビット深さ-max(QpPrimeTsMin,(Qp-4)/6))に設定されてもよい。ここで、qPは、デコードされた量子化パラメータであり、QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータである。
4.あるいはまた、さらに、符号長Nは、max(A,内部ビット深さ-(Max(QpPrimeTsMin,Qp)-4)/6)に設定されてもよく、ここで、Aは、0または1のような負でない整数値である。
ii.上記サブ項目において言及されたQpは、スライスQPを指してもよい。
1.あるいはまた、Qpは、スライスQPに一定値を加えたものを指してもよい。
f.上記の諸例において、Nは、0以上であってもよい。
2.エスケープ・シンボルのための脱量子化Qpは、スライス/ピクチャー/PPSレベルQpに基づいていてもよい。
a.一例では、エスケープ・シンボルのための脱量子化Qpは、スライス/ピクチャー/PPSレベルQpに所与のオフセットを加えたものに基づいていてもよい。
i.オフセットは定数であってもよい。
ii.オフセットは、暗黙的にまたは明示的に、ビットストリームにおいて示されてもよい。
b.一例では、ブロック・レベルのQp差はビットストリームにおいてスキップされてもよい。
i.一例では、cbfは、0と推定されてもよい。
3.エスケープ・シンボルについて、脱量子化の前に左シフトが適用されてもよい。
a.一例では、Nビットの左シフト(N>=0)が、脱量子化の前に適用されてもよい。
i.一例では、NはMin(bitDepth-1,(QpPrimeTsMin-4)/6)に等しくてもよい。ここで、bitDepthは内部ビット深さであり、ここで、bitDepthは内部ビット深さである。
ii.あるいはまた、Nは、bitDepth-inputBDに等しくてもよく、ここで、inputBDは、入力ビット深さである。
1.一例では、inputBDがビットストリームにおいて示されてもよい。
iii.あるいはまた、Nは、deltaBDと等しくてもよく、ここで、deltaBDは、ビットストリームにおいて示される。
4.エスケープ・シンボルの脱量子化は(Qp-QpPrimeTsMin)に依存してもよい。
a.一例では、(Qp-QpPrimeTsMin+4)は、脱量子化Qpとしてエスケープ・シンボルの脱量子化のために適用されてもよい。
b.一例では、Min(Qp-QpPrimeTsMin+4,63+QpBdOffset)は、脱量子化Qpとしてエスケープ・シンボルの脱量子化のために適用されてもよい。
5.エスケープ・シンボルの脱量子化は(Qp-N*6)に依存してもよい。
a.一例では、Nは、項目3.aにおける左方シフトの数を指してもよい。
b.一例では、Max(0,Qp-N*6)が脱量子化Qpとして適用されてもよい。
6.エスケープ・シンボルの脱量子化は、deltaBD、すなわち、内部ビット深さと入力ビット深さの差に依存してもよい。
a.一例では、(Qp-deltaBD*6)は、脱量子化Qpとしてエスケープ・シンボルの脱量子化のために適用されてもよい。
b.一例では、Min(Max(0,Qp-deltaBD*6),63+QpBdOffset)は、脱量子化Qpとしてエスケープ・シンボルの脱量子化のために適用されてもよい。
7.一つのビデオ単位(たとえば、CU)におけるエスケープ・シンボルの使用を無効にすることが提案される。
a.あるいはまた、さらに、エスケープ・シンボルの存在 の指示を信号伝達することはスキップされる。
b.一例では、エスケープ・シンボルの使用を有効/無効にするかどうかは、量子化パラメータおよび/またはビット深さに依存してもよい。
i.一例では、(内部ビット深さ-(Max(QpPrimeTsMin,Qp)-4)/6)が0より大きくない場合、エスケープ・シンボルの使用は無効にされてもよい。
8.3次のEGを除く可変長コーディングが、エスケープ・シンボルをコーディングするために適用されてもよい。
a.一例では、エスケープ・シンボルのバイナリ化は、入力パラメータKをもつ打ち切りされたバイナリ(truncated binary、TB)であってもよい。
b.一例では、エスケープ・シンボルのバイナリ化は、K次のEGであってもよい。ここで、Kは3に等しくない。
i.一例では、エスケープ・シンボルのバイナリ化は、0次のEGであってもよい。
1.あるいはまた、一例では、エスケープ・シンボルのバイナリ化は、1次のEGであってもよい。
2.あるいはまた、一例では、エスケープ・シンボルのバイナリ化は、2次のEGであってもよい。
c.上記の諸例では、Kは整数であってもよく、以下に依存してもよい。
i.SPS/VPS/PPS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/LCU行/LCUのグループ/ブリックにおいて信号伝達されるメッセージ。
ii.内部ビット深さ
iii.入力ビット深さ
iv.内部ビット深さと入力深さの差
v.現在ブロックのブロック寸法
vi.現在ブロックの現在の量子化パラメータ
vii.カラー・フォーマットの指示(4:2:0、4:4:4、RGBまたはYUVなど)
viii.コーディング構造(単一ツリーまたはデュアル・ツリーなど)
ix.色成分(ルーマ成分および/またはクロマ成分など)
9.エスケープ・シンボルをコーディングするための複数のバイナリ化方法が、ビデオ単位(たとえば、シーケンス/ピクチャー/スライス/タイル/ブリック/サブピクチャー/CTU行/CTU/CTB/CB/CU/ピクチャー内のサブ領域)および/またはエスケープ・シンボルの一つまたは複数の値に対して適用されてもよい。
a.一例では、複数のバイナリ化方法のうちの1つをどのようにして選択するかが、ビデオ単位および/またはエスケープ・シンボルの一つまたは複数の値について信号伝達されてもよい。
b.一例では、複数のバイナリ化方法のうちの1つをどのようにして選択するかが、ビデオ単位および/またはエスケープ・シンボルの一つまたは複数の値について導出されてもよい。
c.一例では、1つのビデオ単位および/またはエスケープ・シンボルの一つまたは複数の値について、2つ以上のバイナリ化方法が適用されてもよい。
i.一例では、インデックスまたはフラグが、選択されたバイナリ化方法を知らせるためにエンコード/デコードされてもよい。
以下の項目では、pは色成分のシンボル値を表してもよく、bdはビット深さ(たとえば、内部ビット深さまたは入力ビット深さ)を表してもよく、ibdは入力ビット深さを表してもよく、Qpは変換スキップ・ブロックまたは変換ブロックについての量子化パラメータを表してもよい。さらに、ルーマ成分とクロマ成分についてのQPは、異なっていても、同じであってもよい。ビット深さは、所与の色成分に関連付けられていてもよい。
10.量子化および/または逆量子化プロセスをどのように適用するかは、ブロックがパレット・モードでコーディングされるか否かに依存してもよい。
a.一例では、エスケープ・シンボルについての量子化および/または逆量子化プロセスは、量子化が適用された通常のイントラ/インターコーディングされたブロックについて使用されるものとは異なっていてもよい。
11.エスケープ・シンボルについての量子化および/または逆量子化プロセスは、ビットシフトを使用してもよい。
a.一例では、エスケープ・シンボルを量子化するために右ビットシフトが使用されてもよい。
i.一例では、エスケープ・シンボルは、f(p,Qp)として信号伝達されてもよく、ここで、pは入力シンボル値(たとえば、入力ルーマ/クロマ・サンプル値)であり、Qpは、対応する色成分についての導出された量子化パラメータである。
1.一例では、関数fはp>>g(Qp)として定義されてもよい。
2.一例では、関数fは(p+(1<<(g(QP)-1))>>g(Qp))として定義されてもよい。
3.一例では、関数fは、(0,(1<<bd)-1,(p+(1<<(g(QP)-1)))>g(Qp))として定義されてもよい。
ii.一例では、エスケープ・シンボルは、h(p)として信号伝達されてもよい。
1.一例では、関数hは、p>>Nとして定義されてもよい。
2.一例では、関数hは、(p+(1<<(N-1)))>>Nとして定義されてもよい。
3.一例では、cu_transquant_bypass_flagが1に等しい場合、Nは0に設定されてもよい。
4.一例では、cu_transquant_bypass_flagが1に等しい場合、Nは(bd-ibd)に等しくてもよい。ここで、bdは内部ビット深さであり、ibdは入力ビット深さである。
5.一例では、関数hはclip(0,(1<<(bd-N)-1,p>>N)として定義されてもよく、ここで、bdは現在の色成分についての内部ビット深さである。
6.一例では、関数hはclip(0,(1<<(bd-N)-1,(p+(1<<(N-1)))>>N)として定義されてもよく、ここで、bdは現在の色成分についての内部ビット深さである。
7.上記の例において、Nは[0,(bd-1)]の範囲であってもよい。
b.一例では、左ビットシフトは、エスケープ・シンボルを逆量子化するために使用されてもよい。
i.一例では、エスケープ・シンボルは、f(p,Qp)として脱量子化されてもよい。ここで、pは、復号されたエスケープ・シンボルであり、Qpは、対応する色成分についての導出された量子化パラメータである。
1.一例では、fはp<<g(Qp)として定義されてもよい。
2.一例では、fは(p<<g(Qp))+(1<<(g(Qp)-1))として定義されてもよい。
ii.一例では、エスケープ・シンボルは、f(p,Qp)として再構成されてもよい。ここで、pは、復号されたエスケープ・シンボルである。
1.一例では、fはclip(0,(1<<bd)-1,p<<g(Qp))として定義されてもよい。
2.一例では、fは、clip(0,(1<<bd)-1,(p<<g(Qp))+(1<<(g(Qp)-1)))として定義されてもよい。
iii.一例では、エスケープ・シンボルはh(p)として再構成されてもよい。
1.一例では、関数hはp<<Nとして定義されてもよい。
2.一例では、関数hは、(p<<N)+(1<<(N-1))として定義されてもよい。
3.一例では、cu_transquant_bypass_flagが1に等しい場合、Nは0に設定されてもよい。
4.一例では、cu_transquant_bypass_flagが1に等しい場合、Nは(bd-ibd)に等しくてもよく、ここで、bdは内部ビット深さであり、ibdは入力ビット深さである。
5.一例では、Nは(max(QpPrimeTsMin,qP)-4)/6に設定され、ここで、qPは復号された量子化パラメータであり、QpPrimeTsMinは変換スキップ・モードのための最小の許容される量子化パラメータである。
a)上記の例では、ルーマとクロマの両方が変換スキップ・モードをもつ場合、変換スキップ・モードのための異なる最小の許容される量子化パラメータが、異なる色成分について適用されてもよい。
6.あるいはまた、上記の諸例について、Nは、min(bd-1,N)のように、さらにクリップされてもよい。
7.上記の例では、Nは[0,(bd-1)]の範囲であってもよい。
12.脱量子化として左シフトを適用する場合、エスケープ・シンボルpの再構成オフセットはビット深さ情報に依存してもよい。
a.一例では、それは、内部ビット深さと入力ビット深さの間の差、すなわち、deltaBD=内部ビット深さ-入力ビット深さに依存してもよい。
b.KがdeltaBD以下である場合、再構成された値はp<<Kであってもよい。
c.KがdeltaBDより大きい場合、再構成値は(p<<K)+(1<<(K-1))であってもよい。
d.KがT0以下である場合(たとえば、T0=2)、再構成された値はp<<Kであってもよい。
e.KがT1より大きい場合(たとえば、T1=2)、再構成値は(p<<K)+(1<<(K-1))であってもよい。
f.一例では、項目dおよびeにおけるT0およびT1は、シーケンス/ピクチャー/スライス/タイル/ブリック/サブピクチャー・レベルなどで、ビットストリームにおいて信号伝達されてもよい。
g.一例では、再構成値は、(p<<K)+((1<<(K-1)>>deltaBD<<deltaBD))であってもよい。
h.一例では、再構成値は、((p<<(K+1))+(1<<K))>>(deltaBD+1)<<deltaBD)であってもよい。
i.一例では、deltaBDは、シーケンス/ピクチャー/スライス/タイル/ブリック/サブピクチャー・レベルなどでビットストリームにおいて信号伝達されてもよい。
j.一例では、どの再構成値が使用されるか(たとえば、項目bないしe)は、現在のブロックの量子化パラメータに依存してもよい。
k.一例では、どの再構成値が使用されるか(たとえば、項目bないしe)は、deltaBDの値に依存してもよい。
l.一例では、Kは、g(Qp)に設定されてもよい。
13.上記の諸例では、以下が適用されてもよい:
a.一例では、エスケープ・シンボルは、コンテキストコーディングされてもよい。
b.一例では、エスケープ・シンボルはバイパスコーディングされてもよい。
c.一例では、g(Qp)は、(Qp-4)/6またはQP/8として定義されてもよい。
i.あるいはまた、g(Qp)はQp/6またはQP/8として定義されてもよい。
ii.あるいはまた、g(Qp)はmax(16,Qp/6)として定義されてもよい。
iii.あるいはまた、g(Qp)はmax(16,(Qp-4)/6)として定義されてもよい。
iv.あるいはまた、g(Qp)はmax((bd-ibd)*6+4,(Qp-4)/6)として定義されてもよい。
v.あるいはまた、g(Qp)はmax(M,(Qp-4)/6)として定義されてもよい。
1.一例では、Mはデコーダに信号伝達されてもよい。
vi.あるいはまた、g(Qp)はmax((M,Qp)-4)/6として定義されてもよい。
1.一例では、MはSPSにおいて示されてもよい。
2.一例では、ルーマ成分およびクロマ成分に同じMまたは異なるMが適用されうる。
3.一例では、Mは(bd-ibd)*6+4に等しくてもよい。
vii.あるいはまた、g(Qp)はQp/6またはQP/8として定義されてもよい。
viii.あるいはまた、g(Qp)は(max(16,Qp)/6)として定義されてもよい。
ix.あるいはまた、g(Qp)は(max(16,Qp)-4)/6として定義されてもよい。
d.一例では、g(Qp)の値は[0,(bd-1)]の範囲であってもよい。
e.一例では、最大関数max(a,i)は(i<=a?a:i)として定義されてもよい。
i.あるいはまた、一例では、最大関数max(a,i)は(i<a?a:i)として定義されてもよい。
f.一例では、Nは整数(たとえば、8または10)であってもよく、以下に依存してもよい。
i.SPS/VPS/PPS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/LCU行/LCUのグループ/ブリックにおいて信号伝達されるメッセージ
ii.内部ビット深さ
iii.入力ビット深さ
iv.内部ビット深さと入力深さの差
v.現在ブロックのブロック寸法
vi.現在ブロックの現在の量子化パラメータ
vii.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
viii.コーディング構造(単一ツリーまたはデュアル・ツリーなど)
ix.色成分(ルーマ成分および/またはクロマ成分など)
x.スライス/タイル・グループ・タイプおよび/またはピクチャー・タイプ
g.一例では、Nはデコーダに信号伝達されてもよい。
14.エスケープ値についてのQpはクリップされてもよい。
a.一例では、エスケープ値に適用される最低のQpは、min_qp_prime_ts_minus4と等しくてもよい。
b.一例では、エスケープ値に適用される最低のQpは、min_qp_prime_ts_minus4に関係してもよい。
i.一例では、エスケープ値に適用される最低のQpは、min_qp_prime_ts_minus4+4と等しくてもよい。
c.一例では、各色成分についての最低のQpは、SPS/PPS/VPD/DPS/タイル/スライス・ヘッダにおいて示されてもよい。
d.一例では、エスケープ値に適用される最低のQpは、(bd-ibd)*6+4であってもよい。ここで、bdは、内部ビット深さであり、ibdは、ある色成分についての入力ビット深さを示す。
e.一例では、上記の諸例は、ある色成分に適用されてもよい。
15.上記の諸例では、エスケープ値についてのクロマQpは、マッピングの前/後にQpを使用してもよい。
16.パレット・モードで現在のパレット・インデックスを導出する際に参照インデックスを使用しないことが提案される。
a.一例では、パレット・インデックスは、参照インデックス(たとえば、adjustedRefPaletteIndex)の可能性を排除することなく、直接的に信号伝達されてもよい。
i.あるいはまた、一例では、エンコーダは、参照インデックスが常に現在インデックスと異なることを可能にするように制約されてもよい。そのような場合、パレット・インデックスは、参照インデックスの可能性を排除することによって、信号伝達されてもよい。
b.一例では、パレット・インデックスのバイナリ化は、バイナリ化入力パラメータとして最大パレット・インデックスを用いることを伴う打ち切りされたバイナリ(TB)であってもよい。
c.一例では、パレット・インデックスのバイナリ化は固定長であってもよい。
d.一例では、パレット・インデックスのバイナリ化は、K次のEGであってもよい。
i.一例では、Kは整数(たとえば、1、2または3)であってもよく、以下に依存してもよい
1.SPS/VPS/PPS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/LCU行/LCUのグループ/ブリックにおいて信号伝達されるメッセージ
2.内部ビット深さ
3.入力ビット深さ
4.内部ビット深さと入力深さの差
5.現在ブロックのブロック寸法
6.現在ブロックの現在の量子化パラメータ
7.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
8.コーディング構造(単一ツリーまたはデュアル・ツリーなど)
9.色成分(ルーマ成分および/またはクロマ成分など)
e.一例では、上記の諸例は、現在のブロックが少なくとも、1つのエスケープ・サンプルを有する場合にのみ適用されうる。
17.現在のパレット・インデックスは、以前の諸パレット・インデックスとは独立して信号伝達されてもよい。
a.一例では、以前の諸パレット・インデックスを使用するかどうか、および/または、どのように使用するかは、現在のブロックにおいてエスケープ・サンプル(単数または複数)があるかどうかに依存してもよい。
18.エスケープ・シンボルについてのインデックスから非エスケープ・シンボルについてのインデックスへの導出は許可されなくてもよい。
a.一例では、エスケープ・シンボルが適用され、パレット・インデックスがエスケープ・シンボルについてのインデックスと等しくない場合、それらのシンボルをエスケープ・シンボルとしてデコードすることは許されなくてもよい。
19.非エスケープ・シンボルについてのインデックスからエスケープ・シンボルについてのインデックスへの導出は、許されなくてもよい。
a.一例では、エスケープ・シンボルが適用され、パレット・インデックスがエスケープ・シンボルについてのインデックスと等しい場合、それらのシンボルを非エスケープ・シンボルとしてデコードすることは許されなくてもよい。
20.導出されたパレット・インデックスは、現在のパレット・テーブル・サイズによってキャップされてもよい。
a.一例では、パレット・インデックスがMaxPaletteIndexより大きい場合、MaxPaletteIndexと等しくなるように修正されてもよい。
21.導出されたパレット・インデックスは、エスケープ・シンボルについてのインデックスを除き、現在のパレット・テーブル・サイズによってキャップされてもよい。
a.一例では、エスケープ・シンボルが適用されず、パレット・インデックスがMaxPaletteIndexより大きい場合、MaxPaletteIndexと等しくなるように修正されてもよい。
b.一例では、エスケープ・シンボルが適用され、パレット・インデックスが(MaxPaletteIndex-1)より大きい場合、(MaxPaletteIndex-1)と等しくなるように修正されてもよい。
22.エスケープ・シンボルを示すインデックスは、修正されることが許されなくてもよい。
a.一例では、インデックスがMaxPaletteIndexと等しいことは、現在のブロックにエスケープ・シンボルが存在する場合、常に、エスケープ・シンボルを示してもよい。
b.一例では、MaxPaletteIndexと等しくないインデックスは、エスケープ・シンボルを示すインデックスとしてデコードされることはできない。
23.参照インデックスと現在のインデックスとの間の差をコーディングすることが提案される。
a.一例では、0に等しい差は、コーディングされることが許されなくてもよい。
b.あるいはまた、パレットコーディングされたブロック内の最初のインデックスについて、インデックスは直接コーディングされてもよい。
24.参照インデックス(Rと記される)と現在のインデックス(Cと記される)との間の差のモジュロをコーディングすることが提案される。
a.一例では、I=Modulo(C-R,MaxPaletteIndex)がコーディングされてもよい。
i.一例では、インデックスは、Modulo(I+R,MaxPaletteIndex)として再構成されてもよい。
ii.一例では、0に等しいModulo(C-R,MaxPaletteIndex)は、ビットストリームにおいて許されなくてもよい。
iii.一例では、cMax=MaxPaletteIndexである打ち切りされたバイナリ符号が、前記値をコーディングするために使用されてもよい。
iv.あるいはまた、パレットコーディングされたブロック内の最初のインデックスについては、インデックスは直接コーディングされてもよい。
b.一例では、I=Modulo(C-R,MaxPaletteIndex)-1がコーディングされてもよい。
i.一例では、インデックスは、Modulo(I+1+R,MaxPaletteIndex)として再構成されてもよい。
ii.一例では、0より小さいModulo(C-R,MaxPaletteIndex)-1は、ビットストリームにおいて許されなくてもよい。
iii.一例では、cMax=(MaxPaletteIndex-1)である打ち切りされたバイナリ符号が、値Iをコーディングするために使用されてもよい。
iv.あるいはまた、パレットコーディングされたブロック内の最初のインデックスについて、Modulo(C-R,MaxPaletteIndex)がコーディングされてもよい。
v.あるいはまた、パレットコーディングされたブロック内の最初のインデックスについては、インデックスは直接コーディングされてもよい。
25.パレット・ブロックのデコードの開始時には、参照インデックスRは-1に等しく設定されてもよい。
a.あるいはまた、参照インデックスRは0に等しく設定されてもよい。
26.パレット・モードとローカル・デュアル・ツリーを排他的に有効にすることが提案される。
a.一例では、パレット・モードが有効にされている場合、ローカル・デュアル・ツリーは許容されなくてもよい。
i.あるいはまた、一例では、ローカル・デュアル・ツリーが有効にされている場合、パレット・モードは許容されなくてもよい。
b.一例では、ローカル・デュアル・ツリーは、4:4:4のような特定のカラー・フォーマットでは有効にされない。
c.一例では、パレット・モードは、コーディングツリーがMODE_TYPE_INTRAの場合には、許されなくてもよい。
d.ローカル・デュアル・ツリーの使用に基づいてパレット予測子をリセットすることが提案される。
i.一例では、パレット予測子は、単一ツリーがローカル・デュアル・ツリーに切り換えられるときにリセットされてもよい。
ii.一例では、パレット予測子は、ローカル・デュアル・ツリーが単一ツリーに切り換えられるときにリセットされてもよい。
iii.あるいはまた、さらに、パレット予測子における諸項目の使用(たとえば、palette_predictor_run)を信号伝達するかどうかは、ツリー・タイプに依存してもよい。
1.一例では、ローカル・デュアル・ツリーと単一ツリーとの間の切り換えに出会うとき、パレット予測子における諸項目の使用(たとえば、palette_predictor_run)の信号伝達は省略される。
27.ローカル・デュアル・ツリーが適用されるとき、パレット予測テーブルにおける反復されるパレット項目を除去することが提案される。
a.一例では、パレット予測テーブルは、ローカル・デュアル・ツリーが適用される場合にリセットされてもよい。
i.あるいはまた、一例では、デコーダは、ローカル・デュアル・ツリーが適用されるときに、予測テーブル内のすべてのパレット項目をチェックし、反復される項目を除去してもよい。
ii.あるいはまた、一例では、デコーダは、ローカル・デュアル・ツリーが適用されるときに、予測テーブル内の部分的なパレット項目をチェックし、反復された項目を除去してもよい。
iii.一例では、パレット項目をチェックする際に、フル剪定(full pruning)または部分剪定(partial pruning)が適用されてもよい。
1.一例では、選択された項目の集合がチェックされてもよい(たとえば、該集合は、パレット予測子における全部のパレット項目または部分的なパレット項目を含む)。
a)一例では、フル剪定または部分剪定は、選択された項目に対して適用されてもよい。
2.一例では、フル剪定は、1つの項目が、追加されうるすべての項目と比較されることを表してもよい。
3.一例では、部分剪定は、1つの項目が、追加されうる部分的な項目と比較されることを表してもよい。
iv.一例では、2つのパレット項目が同じであるかどうかは、それらのルーマ成分値が同じであるかどうかだけに基づいていてもよい。
1.あるいはまた、一例では、2つのパレット項目が同じであるかどうかは、それらのクロマ成分値が同じであるかどうかのみに基づいていてもよい。
2.あるいはまた、一例では、2つのパレット項目が同じであるかどうかは、それらのルーマとクロマ成分値の両方が同じであるかどうかに基づいていてもよい。
v.一例では、上記の方法は、ローカル・デュアル・ツリーがルーマ成分を処理し始めるときにのみ、ルーマ・ブロックに対して適用されてもよい。
1.あるいはまた、一例では、上記の方法は、ローカル・デュアル・ツリーがクロマ成分を処理し始めるときにのみ、クロマ・ブロックに適用されてもよい。
vi.あるいはまた、一例では、エンコーダは、項目の3つの成分が異なる場合に、2つのパレット項目を異なると考える制約条件を追加してもよい。
28.現在のパレット項目が、パレット予測テーブルの項目と異なる数の色成分をもつ場合、パレット予測テーブルは使用されることが許されなくてもよい。
a.一例では、パレット予測テーブル内のすべての項目についての再利用フラグ(reused flag)が真であるとマークされることがありうるが、現在のパレット項目が予測とは異なる数の色成分を有する場合には、現在のブロックについては使用されなくてもよい。
b.一例では、パレット予測テーブル内のすべての項目についての再利用フラグは、現在のパレット項目が予測とは異なる数の色成分を有する場合には、偽としてマークされてもよい。
29.予測テーブルと現在のパレット・テーブルが異なる色成分(単数または複数)をもつ場合、パレット予測テーブルは使用されることが許されなくてもよい。
a.一例では、パレット予測テーブル内のすべての項目についての再利用フラグが真であるとマークされることがありうるが、予測テーブルと現在のパレット・テーブルが異なる色成分を有する場合には、現在のブロックについては使用されなくてもよい。
b.一例では、パレット予測テーブル内のすべての項目についての再利用フラグは、予測テーブルと現在のパレット・テーブルが異なる色成分を有する場合には、偽としてマークされてもよい。
30.エスケープ・シンボルは、たとえば以前にコーディングされたエスケープ・シンボルに基づいて、予測的にコーディングされてもよい。
a.一例では、ある成分のエスケープ・シンボルは、同じ色成分におけるコーディングされた値によって予測されてもよい。
i.一例では、エスケープ・シンボルは、同じ成分における前にコーディングされたあるエスケープ・シンボルを予測子として使用してもよく、それらの間の残差が信号伝達されてもよい。
ii.代替的に、エスケープ・シンボルは、同じ成分における前にコーディングされたK番目のエスケープ・シンボルを予測子として使用してもよく、それらの間の残差が信号伝達されてもよい。
iii.あるいはまた、エスケープ・シンボルは、同じ成分における複数の(たとえば、K個の)コーディングされたエスケープ・シンボルから予測されてもよい。
1.一例では、Kは整数(たとえば、1、2または3)であってもよく、以下に依存してもよい
a)SPS/VPS/PPS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/LCU行/LCUのグループ/ブリックにおいて信号伝達されるメッセージ
b)内部ビット深さ
c)入力ビット深さ
d)内部ビット深さと入力深さの差
e)現在ブロックのブロック寸法
f)現在ブロックの現在の量子化パラメータ
g)カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
h)コーディング構造(単一ツリーまたはデュアル・ツリーなど)
i)色成分(ルーマ成分および/またはクロマ成分など)
b.一例では、ある成分のエスケープ・シンボルは、別の成分のコーディングされた値によって予測されてもよい。
c.一例では、ピクセルは複数の色成分を有してもよく、ピクセルがエスケープ・シンボルとして扱われる場合、ある成分の値は、他の成分のサンプルの値によって予測されてもよい。
i.一例では、エスケープ・シンボルのU成分が、そのシンボルのV成分によって予測されてもよい。
d.一例では、上記の諸方法は、ある色成分に対して(たとえば、ルーマ成分またはクロマ成分に対して)、またはコーディングされた情報などに基づくある種の条件のもとで適用されるだけであってもよい。
31.パレットに関連する構文要素の信号伝達は、パレットの最大サイズ、および/またはブロック寸法、および/または無損失モードの使用および/または量子化パラメータ(QP)に依存してもよい。
a.一例では、無損失符号ブロックの場合および/またはQPが閾値以下である場合および/または変換スキップが適用される場合、ブロックのパレット・サイズはブロック寸法と等しいと推定される。
i.あるいはまた、無損失符号ブロックの場合および/またはQPが閾値以下である場合、ブロックのパレット・サイズはmin(ブロック寸法,最大パレット・サイズ)に等しいと推定される。
b.ブロック内のエスケープ・サンプルの使用を信号伝達するかどうかは、ブロック寸法および/または無損失コーディングモードの使用(たとえば、QPが所与の値(たとえば4)に等しいか否か;および/またはtransform_skip_flagが1に等しいか;またはtransquant_bypass_flagがtrueに等しいか否か)および/またはQPに依存してもよい。
i.あるいはまた、さらに、エスケープ・サンプルの使用を信号伝達するかどうかは、現在のブロックのブロック寸法と現在のパレット・サイズとの間の関係に依存してもよい。
1.一例では、それを信号伝達するかどうかは、ブロック寸法が現在のパレット・サイズに等しいかどうかに依存してもよい。
a)あるいはまた、さらに、ブロック寸法が現在のパレット・サイズに等しい場合、それは信号伝達されず、偽であると推定される。
2.あるいはまた、それを信号伝達するかどうかは、ブロック寸法が現在のパレット・サイズより小さくないかどうかに依存してもよい。
a)あるいはまた、さらに、ブロック寸法が現在のパレット・サイズよりも小さくない場合、それは信号伝達されず、偽であると推定される。
ii.あるいはまた、さらに、エスケープ・サンプルの使用を信号伝達するかどうかは、ブロック寸法、パレットの最大サイズ、および/または無損失モードの間の関係に依存してもよい。
1.一例では、あるブロックが無損失モードでコーディングされ、かつブロック寸法がパレットの最大サイズより小さい場合、エスケープ・サンプルの使用の信号伝達は省略されてもよく、それは偽であると推定される。
2.一例では、あるブロックが閾値より大きくないQPでコーディングされ、かつブロック寸法がパレットの最大サイズより小さい場合、エスケープ・サンプルの使用の信号伝達は省略されてもよく、それは偽であると推定される。
iii.エスケープ・サンプルの使用の指示(たとえば、palette_escape_val_present_flag)は、ある種の条件下では推定されてもよい。
1.一例では、現在のブロック・サイズが最大許容されるパレット・サイズ(たとえば、palette_max_size)以下である場合、エスケープ・サンプルの使用の指示は偽に推定されてもよい。
a)あるいはまた、一例では、現在のブロック・サイズが最大許容されるパレット・サイズより大きい場合、エスケープ・サンプルの使用の指示が信号伝達されてもよい。
b)あるいはまた、一例では、現在のブロック・サイズが最大許容されるパレット・サイズより大きい場合、エスケープ・サンプルの使用の指示は偽に推定されてもよい。
2.一例では、上記の諸方法は、無損失コーディング条件の下で適用されうる。
3.一例では、上記の諸方法は、無損失コーディングされるCUに適用されうる。
4.一例では、現在のブロック・サイズが現在のブロックのパレット・サイズ以下である場合、エスケープ・サンプルの使用の指示は偽に推定されてもよい。
5.一例では、エスケープ・サンプルの使用フラグが推定されるとき、対応する構文要素、たとえばpalette_escape_val_present_flagはビットストリームにおいてスキップされてもよい。
32.パレット・モードにおけるランレングスコーディングのためのコンテキストは、パレット項目をインデックス付けするためのパレット・インデックスに依存してもよい。
a.一例では、デコーダでのインデックス調整プロセス(セクション2.1.3において述べた)の後のパレット・インデックスが、長さ要素のプレフィックス(たとえば、palette_run_prefix)のためのコンテキストを導出するために用いられてもよい。
b.あるいはまた、一例では、項目13で定義されたIは、長さ要素のプレフィックス(たとえば、palette_run_prefix)のためのコンテキストを導出するために、パレット・インデックスを置き換えてもよい。
33.量子化パラメータ予測子のための導出プロセスにおいて使用される左近傍ブロックおよび/または上近傍ブロックの位置を、モード/MV(たとえばMPM)導出において使用される近傍左ブロックおよび/または上近傍ブロックの位置と整列させることが提案される。
a.量子化パラメータのための導出プロセスで使用される左近傍ブロックおよび/または上近傍ブロックの位置は、マージ/AMVP候補リスト導出プロセスにおいて使用される位置と整列されてもよい。
b.一例では、量子化パラメータのための導出プロセスにおいて使用される近傍左ブロックおよび/または上ブロックの位置は、図8に示される左/上の隣接ブロックであってもよい。
34.ブロック・レベルのQP差は、エスケープ・サンプルが現在のブロックに存在するかどうかに関係なく、送信されてもよい。
a.一例では、ブロック・レベルのQP差を送信するかどうか、および/またはどのように送信するかは、パレット以外のモードでコーディングされたブロックに従うことができる。
b.一例では、ブロック・レベルのQP差は、あるパレット・ブロックについて常に送信されないのでもよい。
c.一例では、ブロック幅が閾値よりも大きい場合、ブロック・レベルのQP差がパレット・ブロックについて送信されてもよい。
d.一例では、ブロック高さが閾値よりも大きい場合、ブロック・レベルのQP差がパレット・ブロックについて送信されてもよい。
e.一例では、ブロック・サイズが閾値より大きい場合、ブロック・レベルのQP差がパレット・ブロックについて送信されてもよい。
f.一例では、上記の諸例はルーマ・ブロックまたはクロマ・ブロックにのみ適用されうる。
35.パレット・ブロックについてのコーディングブロック・フラグ(coded block flag、CBF)(たとえば、cbf_luma、cbf_cb、cbf_cr)のうちの一つまたは複数が1に設定されてもよい。
a.一例では、パレット・ブロックについてのCBFは、常に1に等しく設定されてもよい。
b.パレット・ブロックについてのCBFのうちの一つまたは複数は、エスケープ・ピクセルが現在のブロックに存在するかどうかに依存してもよい。
i.一例では、パレット・ブロックがエスケープ・サンプルを有する場合、そのcbfを1に設定されてもよい。
ii.あるいはまた、パレット・ブロックがエスケープ・サンプルを有しない場合、そのcbfは0に設定されてもよい。
c.あるいはまた、近傍のパレットコーディングされたブロックにアクセスするとき、それは、1に等しいCBFを有するイントラコーディングされたブロックとして扱われてもよい。
36.パレット・ブロックに適用されるルーマおよび/またはクロマQPと、そのブロックについて導出されるQP(たとえば、JVET-O2001-vE仕様におけるQpYまたはQp'Y)との間の差は、諸パレット・ブロックのための固定された値に等しく設定されてもよい。
a.一例では、ルーマおよび/またはクロマQPオフセットが0に設定されてもよい。
b.一例では、CbとCrについてのクロマQPオフセットが異なっていてもよい。
c.一例では、ルーマQPオフセットとクロマQPオフセットは異なっていてもよい。
d.一例では、クロマQPオフセット(単数または複数)がDPS/VPS/SPS/PPS/スライス/ブリック/タイル・ヘッダにおいて示されてもよい。
37.NumPltIdxで示される、現在のブロックについて明示的に信号伝達されるまたは推測されるパレット・インデックスの数(たとえば、num_palette_indices_minus1+1)は、K以上に制約されてもよい。
a.一例では、Kは、現在のパレット・サイズ、エスケープ・フラグ、および/またはパレットコーディングされたブロックの他の情報に基づいて決定されてもよい。Sを現在のブロックの現在のパレット・サイズ、Eをエスケープ存在フラグ(たとえば、palette_escape_val_present_flag)の値とする。BlkSを現在のブロック・サイズとする。
i.一例では、KはSに等しく設定されてもよい。
ii.あるいはまた、一例では、Kは、S+Eに等しく設定されてもよい。
iii.あるいはまた、一例では、Kは(予測されたパレット項目の数+信号伝達されたパレット項目の数+palette_escape_val_present_flag)(たとえば、NumPredictedPaletteEntries+num_signalled_palette_entries+palette_escape_val_present_flag)に等しく設定されてもよい。
iv.あるいはまた、一例では、Kは、(パレット・インデックスの最大値(たとえば、MaxPaletteIndex)+1)に等しく設定されてもよい。
v.あるいはまた、一例では、Kはデコーダに信号伝達されてもよい。
i.一例では、Kは固定された整数値であってもよい。
ii.一例では、Kは整数であり、以下に基づいて決定されてもよい
1.以前にコーディングされたブロック/現在のブロックのデコードされた情報
2.現在ブロック/近傍(隣接または非隣接)ブロックの量子化パラメータ
3.ビデオ・コンテンツ(たとえば、スクリーン・コンテンツまたは自然コンテンツ)
4.DPS/SPS/VPS/PPS/APS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/最大コーディング単位(Largest coding unit、LCU)/コーディング単位(CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディング単位において信号伝達されるメッセージ
5.CU/PU/TU/ブロック/ビデオコーディング単位の位置
6.現在ブロックおよび/またはその近傍ブロックのブロック寸法
7.現在ブロックおよび/またはその近傍ブロックのブロック形状
8.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
9.コーディングツリー構造(デュアル・ツリーまたは単一ツリーなど)
10.スライス/タイル・グループ・タイプおよび/またはピクチャー・タイプ
11.色成分(たとえば、ルーマ成分および/またはクロマ成分に対してのみ適用されうる)
12.時間的レイヤーID
13.規格のプロファイル/レベル/層(Tier)
b.一例では、num_palette_indices_minus1の代わりに(NumPltIdx-K)が信号伝達/パースされてもよい。
i.あるいはまた、さらに、それは、(S+E)が1より小さくない場合にのみ、信号伝達されてもよい。
ii.一例では、(NumPltIdx-K)の値は、バイナリ化されたビン・ストリングがプレフィックス(たとえば、打ち切りされた単進(truncated unary))および/または第m EG符号をもつサフィックスを有していてもよいというバイナリ化方法で信号伝達されてもよい。
iii.一例では、(NumPltIdx-K)の値は、打ち切りされたバイナリ・バイナリ化法(truncated binary binarization method)で信号伝達されてもよい。
iv.一例では、(NumPltIdx-K)の値は、打ち切りされた単進バイナリ化法(truncated unary binarization method)で信号伝達されてもよい。
v.一例では、(NumPltIdx-K)の値は、第m EGバイナリ化法(m-th EG binarization method)で信号伝達されてもよい。
vi.一例では、BlkS-Kの値は、打ち切りされた単進/打ち切りされたバイナリ・バイナリ化方法に対する最大値として使用されるなど、上記の諸バイナリ化方法における入力パラメータ(たとえば、cMax)として使用されてもよい。
c.一例では、適合ビットストリームは、NumPltIdxがK以上であることを満たす。
d.一例では、適合ビットストリームは、NumPltIdxがK'以下であることを満たす。
i.一例では、K'は(ブロック幅*ブロック高さ)に設定される。
ii.一例では、K'は(ブロック幅*ブロック高さ-K)に設定される。
38.上記の諸方法を適用するかどうか、および/または、どのように適用するかは、下記に基づいていてもよい:
a.ビデオ・コンテンツ(たとえば、スクリーン・コンテンツまたは自然コンテンツ)
b.DPS/SPS/VPS/PPS/APS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/最大コーディング単位(Largest coding unit、LCU)/コーディング単位(CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディング単位において信号伝達されるメッセージ
c.CU/PU/TU/ブロック/ビデオコーディング単位の位置
d.現在ブロックおよび/またはその近傍ブロックのブロック寸法
e.現在ブロックおよび/またはその近傍ブロックのブロック形状
f.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
g.コーディングツリー構造(デュアル・ツリーまたは単一ツリーなど)
h.スライス/タイル・グループ・タイプおよび/またはピクチャー・タイプ
i.色成分(たとえば、ルーマ成分および/またはクロマ成分に対してのみ適用されうる)
j.時間的レイヤーID
k.規格のプロファイル/レベル/層(Tier)
l.現在のブロックが1つのエスケープ・サンプルをもつか否か
i.一例では、上記の諸方法は、現在のブロックが少なくとも、1つのエスケープ・サンプルを有する場合にのみ適用されうる。
m.現在のブロックが無損失モードでコーディングされるか否か(たとえば、cu_transquant_bypass_flag)
i.一例では、上記の諸方法は、現在のブロックが無損失モードでコーディングされない場合にのみ適用されうる。
n.無損失コーディングが有効にされているか否か(たとえば、transquant_bypass_enabled、cu_transquant_bypass_flag)
i.一例では、上記の諸方法は、無損失コーディングが無効にされている場合にのみ適用されうる。
ライン・ベースのCGパレット・モード関連
39.これらがエスケープ・サンプルであるかどうかは、各CGについて示されてもよい。
a.一例では、各CGについて、構文要素、たとえばpalette_escape_val_present_flagが、エスケープ・サンプルが存在するか否かを示すためにビットストリームにおいて送られてもよい。
i.一例では、palette_escape_val_present_flagは、CGサイズ、現在のブロック中のデコードされたサンプルの数、および/または現在のブロックのパレット・サイズに基づいて推定される、または信号伝達されるのでもよい。
b.一例では、現在のCGについて、エスケープ・サンプルが存在しない場合、インデックス調整が適用されてもよい。
c.一例では、現在のCGについて、エスケープ・サンプルが存在する場合、インデックス調整は適用されるべきではない。
d.あるいはまた、上記の諸方法は、現在のブロックがエスケープ・サンプルを含む場合にのみ適用されうる。
40.ライン・ベースのCGパレット・モードでは、上のインデックスをコピーの使用の指示(たとえばcopy_above_palette_indices_flag)は、コンテキストコーディングされなくてもよい。
e.あるいはまた、一例では、上のインデックスをコピーの使用の指示(たとえば、copy_above_palette_indices_flag)は、いかなるコンテキストも使用することなくバイパスコーディングされてもよい。
i.一例では、上のインデックスをコピーの使用の指示(たとえば、copy_above_palette_indices_flag)および現在のセグメントにおけるコピー・フラグ(たとえば、run_copy_flag)は、インターリーブされて信号伝達されてもよい。
f.一例では、上のインデックスをコピーの使用の指示(たとえば、copy_above_palette_indices_flag)は、現在のセグメントにおけるすべてのコピー・フラグ(たとえば、run_copy_flag)の後にコーディングされてもよい。
g.一例では、上のインデックスをコピーの使用の指示(たとえば、copy_above_palette_indices_flag)および信号伝達されるインデックスは、インターリーブされてコーディングされてもよい。
h.上記の諸方法は、他のパレット・ベースのコーディングモードにも適用されうる。
41.コピー・フラグ、ラン・タイプ、上のインデックスをコピーの使用の指示、およびエスケープ値は、インターリーブされて信号伝達されてもよい。
i.一例では、第1のコピー・フラグ、ラン・タイプ、上のインデックスをコピーの使用の指示、およびエスケープ値が順にコーディングされてもよく;続いて第2のコピー・フラグ、ラン・タイプ、上のインデックスをコピーの使用の指示、およびエスケープ値がコーディングされてもよい。
j.あるいはまた、さらに、所与のCGについて、上記の方法が適用されてもよい。
42.ライン・ベースのCGパレット・モードは、Thと記される所与の閾値以下のサイズのブロックについては無効にされてもよい。
k.一例では、Thは、ライン・ベースのCGパレット・モードにおけるセグメントのサンプル数に等しい。
l.一例では、Thは固定した数(たとえば16)であり、以下に基づいてもよい
i.ビデオ・コンテンツ(たとえば、スクリーン・コンテンツまたは自然コンテンツ)
ii.DPS/SPS/VPS/PPS/APS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/最大コーディング単位(Largest coding unit、LCU)/コーディング単位(CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディング単位において信号伝達されるメッセージ
iii.CU/PU/TU/ブロック/ビデオコーディング単位の位置
iv.現在ブロックおよび/またはその近傍ブロックのブロック寸法
v.現在ブロックおよび/またはその近傍ブロックのブロック形状
vi.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
vii.コーディングツリー構造(デュアル・ツリーまたは単一ツリーなど)
viii.スライス/タイル・グループ・タイプおよび/またはピクチャー・タイプ
ix.色成分(たとえば、ルーマ成分および/またはクロマ成分に対してのみ適用されうる)
x.時間的レイヤーID
xi.規格のプロファイル/レベル/層(Tier)
xii.現在のブロックの量子化パラメータ
xiii.現在のブロックが1つのエスケープ・サンプルをもつか否か
xiv.無損失コーディングが有効にされているか否か(たとえば、transquant_bypass_enabled、cu_transquant_bypass_flag)
BDPCM関連
43.1つのブロックがBDPCMでコーディングされ、それが複数の変換ブロックまたはサブブロックに分割される場合、残差予測はブロック・レベルで行われてもよく、残差の信号伝達はサブブロック/変換ブロック・レベルで行われる。
a.あるいはまた、さらに、あるサブブロックの再構成は、別のサブブロックの再構成プロセスにおいては許可されない。
b.あるいはまた、残差予測および残差の信号伝達は、サブブロック/変換ブロック・レベルで行われる。
i.このようにして、あるサブブロックの再構成は、別のサブブロックの再構成プロセスにおいて利用されうる。
クロマQPテーブル関連
44.所与のインデックスについて、joint_cb_crモードについてのクロマQPテーブルの値は、CbについてのクロマQPテーブルの値とCrについてのクロマQPテーブルの値の両方によって制約されうる。
c.一例では、joint_cb_crモードについてのクロマQPテーブルの値の値は、CbについてのクロマQPテーブルの値とCrについてのクロマQPテーブルの値との間(両端含む)に制約されうる。
ブロッキング解除関連
45.ブロッキング解除におけるMVの比較は、代替的な半画素補間フィルタが使用されるかどうか(たとえば、JVET-O2001-vE仕様におけるhpelIfIdxによって示される)に依存してもよい。
d.一例では、異なる補間フィルタを使用するブロックは、異なるMVを有するものとして扱われてもよい。
e.一例では、代替的な半画素補間フィルタが関与する場合、ブロッキング解除比較のためにMV差に一定のオフセットが加算されてもよい。
一般的なクレーム
46.上記の諸方法を適用するかどうか、および/または、どのように適用するかは下記に基づいていてもよい:
a.ビデオ・コンテンツ(たとえば、スクリーン・コンテンツまたは自然コンテンツ)
b.DPS/SPS/VPS/PPS/APS/ピクチャー・ヘッダ/スライス・ヘッダ/タイル・グループ・ヘッダ/最大コーディング単位(Largest coding unit、LCU)/コーディング単位(CU)/LCU行/LCUのグループ/TU/PUブロック/ビデオコーディング単位において信号伝達されるメッセージ
c.CU/PU/TU/ブロック/ビデオコーディング単位の位置
d.現在ブロックおよび/またはその近傍ブロックのブロック寸法
e.現在ブロックおよび/またはその近傍ブロックのブロック形状
f.現在ブロックの量子化パラメータ
g.カラー・フォーマットの指示(4:2:0、4:4:4、RGB、またはYUVなど)
h.コーディングツリー構造(デュアル・ツリーまたは単一ツリーなど)
i.スライス/タイル・グループ・タイプおよび/またはピクチャー・タイプ
j.色成分(たとえば、ルーマ成分および/またはクロマ成分に対してのみ適用されうる)
k.時間的レイヤーID
l.規格のプロファイル/レベル/層(Tier)
m.現在のブロックが1つのエスケープ・サンプルをもつか否か
i.一例では、上記の諸方法は、現在のブロックが少なくとも、1つのエスケープ・サンプルを有する場合にのみ適用されうる。
n.現在のブロックが無損失モードでコーディングされるか否か(たとえば、cu_transquant_bypass_flag)
ii.一例では、上記の諸方法は、現在のブロックが無損失モードでコーディングされない場合にのみ適用されうる。
o.無損失コーディングが有効にされているか否か(たとえば、transquant_bypass_enabled、cu_transquant_bypass_flag)
5. 実施形態
実施形態は、JVET-O2001-vEに基づく。新しく追加されたテキストは、二重括弧で囲まれる。たとえば、{{a}}は、"a"が追加されたことを示す。削除されるテキストは、二重ブラケットで囲まれる。たとえば、[[b]]は、"b"が削除されることを示す。
5.1 実施形態#1
パレット・モードについてのデコード・プロセス
このプロセスへの入力は以下の通り:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のブロックの左上のルーマ・サンプルを指定する位置(xCb,yCb)
・パレット・テーブルにおける最初の色成分を指定する変数startComp
・現在のブロックの色成分を指定する変数cIdx、
・現在のブロックの幅と高さをそれぞれ指定する2つの変数nCbWとnCbH
このプロセスの出力は、ブロックについての再構成されたサンプル値を指定する配列recSamples[x][y]であり、x=0..nCbW-1、y=0..nCbH-1
cIdxの値に依存して、変数nSubWidthおよびnSubHeightは次のように導出される:
・cIdxが0に等しい場合、nSubWidthは1に設定され、nSubHeightは1に設定される。
・それ以外の場合、nSubWidthはSubWidthCに設定され、nSubHeightはSubHeightCに設定される。
位置(xCb,yCb)における再構成されたサンプル配列recSamplesの(nCbW×nCbH)ブロックは、recSamples[x][y](x=0..nCTbW-1およびy=0..nCbH-1)によって表され、0からnCTbW-1の範囲(両端含む)における各xおよび0からnCbH-1の範囲(両端含む)における各yについてのrecSamples[x][y]の値は、以下のように導出される:
・変数xLおよびyLは次のように導出される:
xL=palette_transpose_flag ? x*nSubHeight : x*nSubWidth (8-268)
yL=palette_transpose_flag ? y*nSubWidth : y*nSubHeight (8-269)
・変数bIsEscapeSampleは、次のように導出される:
・PaletteIndexMap[xCb+xL][yCb+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1に等しく設定される。
・それ以外の場合、bIsEscapeSampleは0に等しく設定される。
・bIsEscapeSampleが0に等しい場合、以下が適用される:
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (8-270)
・それ以外の場合、cu_transquant_bypass_flagが1に等しい場合、以下が適用される:
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL] (8-271)
・それ以外の場合(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい)、次の順序付けられたステップが適用される:
1.量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、
qP=Max(0,Qp'Y) (8-272)
・それ以外で、cIdxが1に等しい場合、
qP=Max(0,Qp'Cb) (8-273)
・それ以外の場合(cIdxが2に等しい)、
qP=Max(0,Qp'Cr) (8-274)
2.変数bitDepthは次のように導出される:
bitDepth=(cIdx==0) ? BitDepthY : BitDepthC (8-275)
3.[[リストlevelScale[]はlevelScale[k]={40,45,51,57,64,72}として指定される。ここで、k=0..5]]
4.下記が適用される:
[[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-276)]]
{{Tは、成分cIdxについて(internal_bit_depth-input_bit_depth)〔内部ビット深さ-入力ビット深さ〕に等しく設定される。
Nbits=max(T,(qP-4)/6)
・NbitsがTに等しい場合、
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]<<Nbits
・それ以外の場合、
recSamples[x][y]=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]<<Nbits)+(1<<(Nbits-1)}}
[[recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (8-277)]]
以下の条件:
・cIdxが0に等しく、numCompsが1に等しい;
・cIdxが2に等しい
のいずれかが真である場合、
変数PredictorPaletteSize[startComp]と配列PredictorPaletteEntriesは次のように導出または修正される:
Figure 2024023581000019
PredictorPaletteSize[startComp]の値が0からPaletteMaxPredictorSizeまでの範囲(両端含む)であることはビットストリーム適合性の要件である。
5.2 実施形態#2
この実施形態は、パレット・インデックス導出を記載する。
パレットコーディングのセマンティクス
[[変数adjustedRefPaletteIndex]は次のように導出される:
Figure 2024023581000020
CopyAboveIndicesFlag[xC][yC]が0に等しい場合、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++]]
palette_idx_idcについてのバイナリ化プロセス
このプロセスへの入力は、構文要素palette_idx_idcについてのバイナリ化の要求と変数MaxPaletteIndexである。
このプロセスの出力は、前記構文要素のバイナリ化である。
変数cMaxは次のように導出される:
・[[このプロセスが現在のブロックについて初めて呼び出される場合、]]cMaxはMaxPaletteIndexに等しく設定される。
・[[それ以外の場合(このプロセスが現在のブロックについて初めて呼び出されたのでない)、cMaxはMaxPaletteIndexから1を引いたものに等しく設定される。]]
palette_idx_idcについてのバイナリ化は、cMaxで節9.3.3.4で規定されているTBバイナリ化プロセスを呼び出すことによって導出される。
5.3 実施形態#3
Figure 2024023581000021
8.4.5.3 パレット・モードについてのデコード・プロセス
このプロセスへの入力は以下の通り:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のブロックの左上のルーマ・サンプルを指定する位置(xCb,yCb)
・パレット・テーブルにおける最初の色成分を指定する変数startComp
・現在のブロックの色成分を指定する変数cIdx、
・現在のブロックの幅と高さをそれぞれ指定する2つの変数nCbWとnCbH
このプロセスの出力は、ブロックについての再構成されたサンプル値を指定する配列recSamples[x][y]であり、x=0..nCbW-1、y=0..nCbH-1
cIdxの値に依存して、変数nSubWidthおよびnSubHeightは次のように導出される:
……
・それ以外の場合(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい)、次の順序付けられたステップが適用される:
5.量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、
qP=Max(0,Qp'Y) (8-272)
・それ以外で、cIdxが1に等しい場合、
qP=Max(0,Qp'Cb) (8-273)
・それ以外の場合(cIdxが2に等しい)、
qP=Max(0,Qp'Cr) (8-274)
6.変数bitDepthは次のように導出される:
bitDepth=(cIdx==0) ? BitDepthY : BitDepthC (8-275)
3.[[リストlevelScale[]はlevelScale[k]={40,45,51,57,64,72}として指定される。ここで、k=0..5]]
4.下記が適用される:
[[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-276)]]
{{shift=(max(QpPrimeTsMin,qP)-4)/6
tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]<<shift)}}
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (8-277)
5.4 実施形態#4
copy_above_palette_indices_flagが1に等しいことは、パレット・インデックスが、水平横断走査が使用される場合は上の行における同じ位置、または垂直横断走査が使用される場合は左の列における同じ位置にあるパレット・インデックスに等しいことを指定する。copy_above_palette_indices_flagが0に等しいことは、サンプルのパレット・インデックスの指示がビットストリームにおいてコーディングされるか、または推定されることを指定する。
……
変数adjustedRefPaletteIndexは次のように導出される:
Figure 2024023581000022
CopyAboveIndicesFlag[xC][yC]が0に等しい場合、変数CurrPaletteIndexは次のように導出される:
if(CurrPaletteIndex>=adjustedRefPaletteIndex)
CurrPaletteIndex++ (7-158)
5.5 実施形態#5
Figure 2024023581000023
8.4.5.3 パレット・モードについてのデコード・プロセス
このプロセスへの入力は以下の通り:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のブロックの左上のルーマ・サンプルを指定する位置(xCb,yCb)
・パレット・テーブルにおける最初の色成分を指定する変数startComp
・現在のブロックの色成分を指定する変数cIdx、
・現在のブロックの幅と高さをそれぞれ指定する2つの変数nCbWとnCbH
このプロセスの出力は、ブロックについての再構成されたサンプル値を指定する配列recSamples[x][y]であり、x=0..nCbW-1、y=0..nCbH-1
cIdxの値に依存して、変数nSubWidthおよびnSubHeightは次のように導出される:
……
・それ以外の場合(bIsEscapeSampleが1に等しく、cu_transquant_bypass_flagが0に等しい)、次の順序付けられたステップが適用される:
9.量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、
qP=Max(0,Qp'Y) (8-272)
・それ以外で、cIdxが1に等しい場合、
qP=Max(0,Qp'Cb) (8-273)
・それ以外の場合(cIdxが2に等しい)、
qP=Max(0,Qp'Cr) (8-274)
10.変数bitDepthは次のように導出される:
bitDepth=(cIdx==0) ? BitDepthY : BitDepthC (8-275)
11.[[リストlevelScale[]はlevelScale[k]={40,45,51,57,64,72}として指定される。ここで、k=0..5]]
12.下記が適用される:
[[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-276)]]
{{shift=min(bitDepth-1,(max(QpPrimeTsMin,qP)-4)/6)
tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]<<shift)}}
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (8-277)
5.6 実施形態#6
この実施形態は、変換スキップのための変換シフトをスキップするための設計を示しており、JVET-O2001-vEに基づいている。
8.7.2 スケーリングおよび変換プロセス
このプロセスへの入力は以下の通りである:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のルーマ変換ブロックの左上のサンプルを指定するルーマ位置(xTbY,yTbY)
・現在のブロックの色成分を指定する変数cIdx
・変換ブロック幅を指定する変数nTbW
・変換ブロック高さを指定する変数nTbH。
このプロセスの出力は、x=0..nTbW-1、y=0..nTbH-1として、残差サンプルの(nTbW)×(nTbH)配列resSamples[x][y]である。
変数bitDepth、bdShiftおよびtsShiftは、次のように導出される:
bitDepth=(cIdx==0) ? BitDepthY : BitDepthC (8-942)
bdShift=Max(20-bitDepth,0) (8-943)
[[tsShift=5+((Log2(nTbW)+Log2(nTbH))/2) (8-944)
変数codedCIdxは次のように導出される:
・cIdxが0に等しい、またはTuCResMode[xTbY][yTbY]が0に等しい場合、codedCIdxはcIdxに等しく設定される。
・それ以外で、TuCResMode[xTbY][yTbY]が1または2に等しい場合、codedCIdxは1に等しく設定される。
・それ以外の場合、codedCIdxは2に等しく設定される。
変数cSignは(1-2*slice_joint_cbcr_sign_flag)に等しく設定される。
残差サンプルの(nTbW)×(nTbH)配列resSampleは以下のように導出される:
1.節8.7.3に規定される変換係数についてのスケーリング・プロセスは、変換ブロック位置(xTbY,yTbY)、変換ブロック幅nTbW、変換ブロック高さnTbH、codedCIdxに等しく設定された色成分変数cIdx、および現在の色成分ビット深さbitDepthを入力として呼び出され、出力はスケーリングされた変換係数dの(nTbW)×(nTbH)配列である。
2.残差サンプルrの(nTbW)×(nTbH)配列は以下のように導出される:
・[[transform_skip_flag[xTbY][yTbY]が1に等しく、cIdxが0に等しい場合、x=0..nTbW-1、y=0..nTbH-1として、残差サンプル配列値r[x][y]は次のように導出される:
r[x][y]=d[x][y]<<tsShift (8-945)]]
・[[それ以外の場合(transform_skip_flag[xTbY][yTbY]が0に等しい、またはおよびcIdxが0に等しくない場合]]節8.7.4.1で規定されたスケーリングされた変換係数のための変換プロセスが、変換ブロック位置(xTbY,yTbY)、変換ブロック幅nTbWおよび変換ブロック高さnTbH、色成分変数cIdxならびにスケーリングされた変換係数dの(nTbW)×(nTbH)配列を入力として呼び出され、出力は、残差サンプルrの(nTbW)×(nTbH)配列である。
3.x=0..nTbW-1、y=0..nTbH-1として、中間残差サンプルres[x][y]は、次のように導出される:
・{{transform_skip_flag[xTbY][yTbY]が1に等しく、かつcIdxが0に等しい場合、次が適用される:
res[x][y]=d[x][y]}}
・{{それ以外の場合(transform_skip_flag[xTbY][yTbY]が0に等しい、またはおよびcIdxが0に等しくない)、次が適用される:}}
res[x][y]=(r[x][y]+(1<<(bdShift-1)))>>bdShift (8-946)
4.x=0..nTbW-1、y=0..nTbH-1として、残差サンプルresSamples[x][y]は次のように導出される:
・cIdxがcodedCIdxに等しい場合、次が適用される:
resSamples[x][y]=res[x][y] (8-947)
・それ以外で、TuCResMode[xTbY][yTbY]が2に等しい場合、次が適用される:
resSamples[x][y]=cSign*res[x][y] (8-948)
・それ以外の場合、次が適用される:
resSamples[x][y]=(cSign*res[x][y])>>1
8.7.3 変換係数のためのスケーリング・プロセス
……
変数rectNonTsFlagは次のように導出される:
rect[[NonTs]]Flag=(((Log2(nTbW)+Log2(nTbH))&1)==1[[&&]]
(8-955)
[[transform_skip_flag[xTbY][yTbY]=]]=0)
変数bdShift、rectNormおよびbdOffsetは次のように導出される:
・{{transform_skip_flag[xTbY][yTbY]が1に等しく、かつcIdxが0に等しい場合、次が適用される:
bdShift=10}}
・{{それ以外の場合、次が適用される:}}
bdShift=bitDepth+((rect[[NonTs]]Flag ? 1 : 0)+
(Log2(nTbW)+Log2(nTbH))/2)-5+dep_quant_enabled_flag (8-956)
dOffset=(1<<bdShift)>>1 (8-957)
リストlevelScale[][]は、levelScale[j][k]={{40,45,51,57,64,72},{57,64,72,80,90,102}として指定される。ここで、j=0..1、k=0..5。
(nTbW)×(nTbH)配列dzは、(nTbW)×(nTbH)配列TransCoeffLevel[xTbY][yTbY][cIdx]に等しく設定される。
x=0..nTbW-1、y=0..nTbH-1として、スケーリングされた変換係数d[x][y]の導出については、以下が適用される:
・中間スケーリング因子m[x][y]は以下のように導出される:
・次の条件のうちの一つまたは複数が真である場合、m[x][y]は16に等しく設定される:
・sps_scaling_list_enabled_flagが0に等しい。
・transform_skip_flag[xTbY][yTbY]が1に等しい。
・それ以外の場合、次が適用される:
m[x][y]=ScalingFactor[Log2(nTbW)][Log2(nTbH)][matrixId][x][y]
ここで、matrixIdはテーブル7において指定される (8-958)
・スケーリング因子ls[x][y]は次のように導出される:
・dep_quant_enabled_flagが1に等しい場合、次が適用される:
ls[x][y]=(m[x][y]*levelScale[rect[[NonTs]]Flag][(qP+1)%6])<<((qP+1)/6) (8-960)
・それ以外の場合(dep_quant_enabled_flagが0に等しい)、次が適用される:
ls[x][y]=(m[x][y]*levelScale[rect[[NonTs]]Flag][qP%6])<<(qP/6) (8-961)
・BdpcmFlag[xTbY][yYbY]が1に等しい場合、dz[x][y]は次のように修正される:
・BdpcmDir[xTbY][yYbY]が0に等しく、xが0より大きい場合、次が適用される:
dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x-1][y]+dz[x][y]) (8-961)
・それ以外で、BdpcmDir[xTbY][yYbY]が1に等しく、yが0より大きい場合、次が適用される:
dz[x][y]=Clip3(CoeffMin,CoeffMax,dz[x][y-1]+dz[x][y]) (8-962)
・値dnc[x][y]は次のように導出される:
dnc[x][y]=(dz[x][y]*ls[x][y]+bdOffset)>>bdShift (8-963)
・スケーリングされた変換係数d[x][y]は次のように導出される:
d[x][y]=Clip3(CoeffMin,CoeffMax,dnc[x][y]) (8-964)
5.7 実施形態#7
この実施形態は、パレット・インデックスの数を信号伝達するための設計を示す。
7.3.8.6 パレットコーディング構文
Figure 2024023581000024
Figure 2024023581000025
num_palette_indices{{_diff}}[[_minus1]]に[[1]]({{MaxPaletteIndex+1}})を加えたものは、現在のブロックについて明示的に信号伝達されるまたは推定されるパレット・インデックスの数である。
{{NumPaletteIndicesは(num_palette_indices_diff+MaxPaletteIndex+1)に設定される。}}
num_palette_indices{{_diff}}[[_minus1]]が存在しない場合は、0に等しいと推定される。
{{num_palette_indices_diffの値は、0からcbWidth*cbHeight-(MaxPaletteIndex+1)(両端含む)の範囲とする。}}
copy_above_indices_for_final_run_flagが1に等しいことは、コーディング単位における最後の諸位置のパレット・インデックスが、水平横断走査が使用される場合は上の行におけるパレット・インデックスから、垂直横断走査が使用される場合は左の列におけるパレット・インデックスからコピーされることを指定する。
copy_above_indices_for_final_run_flagが0に等しいことは、コーディング単位における最後の諸位置のパレット・インデックスがPaletteIndexIdc[ [[num_palette_indices_minus1]]{{NumPaletteIndices-1}} ]からコピーされることを指定する。
9.5.3.13 num_palette_indices{{_diff}}[[_minus1]]についてのバイナリ化プロセス
このプロセスへの入力は、構文要素num_palette_indices{{_diff}}[[_minus1]]についてのバイナリ化の要求およびMaxPaletteIndexである。
このプロセスの出力は、前記構文要素のバイナリ化である。
変数cRiceParamは次のように導出される:
cRiceParam=3+((MaxPaletteIndex+1)>>3) (9-26)
変数cMaxは、cRiceParamから次のように導出される:
cMax=4<<cRiceParam (9-27)
構文要素num_palette_indices{{_diff}}[[_minus1]]のバイナリ化は、プレフィックスのビン・ストリングと(存在する場合は)サフィックスのビン・ストリングの連結である。
プレフィックス・ビン・ストリングの導出のためには、次が適用される:
・num_palette_indices{{_diff}}[[_minus1]]のプレフィックス値prefixValは次のように導出される:
prefixVal=Min(cMax,num_palette_indices{{_diff}}[[_minus1]]) (9-28)
・プレフィックス・ビン・ストリングは、prefixValについて節9.3.3.3で規定されるTRバイナリ化プロセスを、変数cMaxとcRiceParamを入力として呼び出すことによって指定される。
プレフィックス・ビン・ストリングが長さ4ですべてのビットが1に等しいビット・ストリングに等しい場合、サフィックス・ビン・ストリングが存在し、それは次のように導出される:
・num_palette_indices{{_diff}}[[_minus1]]のサフィックス値suffixValは次のように導出される:
suffixVal=num_palette_indices{{_diff}}[[_minus1]]-cMax (9-29)
・サフィックス・ビン・ストリングは、指数ゴロム次数kをcRiceParam+1に等しく設定して、suffixValのバイナリ化について節9.3.3.5で規定されたk次のEGkバイナリ化プロセスを呼び出すことによって指定される。
Figure 2024023581000026
5.8 実施形態#8
この実施形態は、ライン・ベースのCGパレット・モードにおけるインターリーブされた信号伝達の設計を示す。本実施形態は、JVET-P2001-v4で提供されるドラフトに基づく。
Figure 2024023581000027
Figure 2024023581000028
Figure 2024023581000029
Figure 2024023581000030
Figure 2024023581000031
5.9 実施形態#9
変更はJVET-P2001-vEに基づく。
8.4.5.3 パレット・モードについてのデコード・プロセス
このプロセスへの入力は以下の通り:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のコーディングブロックの左上のサンプルを指定する位置(xCbComp,yCbComp)
・単一ツリーか使用されるかデュアル・ツリーが使用されるかを指定する変数treeType。デュアル・ツリーが使用される場合、これは、現在のツリーがルーマ成分に対応するかクロマ成分に対応するかを指定する。
・現在のブロックの色成分を指定する変数cIdx、
・現在のコーディングブロックの幅および高さをそれぞれ指定する2つの変数nCbWおよびnCbH
このプロセスの出力は、x=0..nCbW-1、y=0..nCbH-1として、ブロックについての再構成されたサンプル値を指定する配列recSamples[x][y]である。
treeTypeの値に依存して、変数startCompおよびnumCompsは次のように導出される:
・treeTypeがSINGLE_TREEに等しい場合:
startComp=0 (444)
numComps=3 (445)
・それ以外の場合、treeTypeはDUAL_TREE_LUMAに等しい:
startComp=0 (446)
numComps=1 (447)
・それ以外の場合、treeTypeはDUAL_TREE_CHROMAに等しい:
startComp=1 (448)
numComps=2 (449)
cIdxの値に依存して、変数nSubWidthおよびnSubHeightは次のように導出される:
・cIdxが0より大きく、startCompが0に等しい場合、nSubWidthはSubWidthCに設定され、nSubHeightはSubHeightCに設定される。
・それ以外の場合は、nSubWidthは1に設定され、nSubHeightは1に設定される。
位置(xCbComp,yCbComp)における再構成されたサンプル配列recSamplesの(nCbW×nCbH)ブロックは、recSamples[x][y](ここで、x=0..nCTbW-1およびy=0..nCbH-1)によって表され、0からnCTbW-1の範囲(両端含む)における各xおよび0からnCbH-1の範囲(両端含む)における各yについてのrecSamples[x][y]の値は、次のように導出される:
・変数xL、yL、xCbL、yCbLは次のように導出される:
xL=x*nSubWidth (450)
yL=y*nSubHeight (451)
xCbL=xCbComp*nSubWidth (452)
yCbL=yCbComp*nSubHeight (453)
・変数bIsEscapeSampleは、次のように導出される:
・PaletteIndexMap[xCbL+xL][yCbL+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1に等しく設定される。
・それ以外の場合、bIsEscapeSampleは0に設定される。
・bIsEscapeSampleが0に等しい場合、以下が適用される:
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCbL+xL][yCbL+yL]] (454)
・それ以外の場合(bIsEscapeSampleが1に等しい)、以下の順序付けられたステップが適用される:
1.量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、
qP=Max(QpPrimeTsMin,Qp'Y) (455)
・それ以外で、cIdxが1に等しい場合、
qP=Max(QpPrimeTsMin,Qp'Cb) (456)
・それ以外の場合(cIdxは2に等しい)、
qP=Max(QpPrimeTsMin,Qp'Cr) (457)
2.リストlevelScale[]は、k=0..5として、levelScale[k]={40,45,51,57,64,72}として指定される。
3.次が適用される:
{{shift=Min(bitDepth-1,(QpPrimeTsMin-4)/6)}}
[[tmpVal=(PaletteEscapeVal[cIdx][xCbL+xL][yCbL+yL]*
levelScale[qP%6])<<(qP/6)+32)>>6 (458)]]
{{tmpVal=((PaletteEscapeVal[cIdx][xCbL+xL][yCbL+yL]<<shift)*
levelScale[(qP-QpPrimeTsMin+4)%6])<<((qP-QpPrimeTsMin+4)/6)+32)>>6 (458)}}
recSamples[x][y]=Clip3(0,(1<<BitDepth)-1,tmpVal) (459)
5.10 実施形態#10
変更はJVET-P2001-vEに基づく。
8.4.5.3 パレット・モードについてのデコード・プロセス
このプロセスへの入力は以下の通り:
・現在のピクチャーの左上のルーマ・サンプルに対して現在のコーディングブロックの左上のサンプルを指定する位置(xCbComp,yCbComp)
・単一ツリーか使用されるかデュアル・ツリーが使用されるかを指定する変数treeType。デュアル・ツリーが使用される場合、これは、現在のツリーがルーマ成分に対応するかクロマ成分に対応するかを指定する。
・現在のブロックの色成分を指定する変数cIdx、
・現在のコーディングブロックの幅および高さをそれぞれ指定する2つの変数nCbWおよびnCbH
このプロセスの出力は、x=0..nCbW-1、y=0..nCbH-1として、ブロックについての再構成されたサンプル値を指定する配列recSamples[x][y]である。
treeTypeの値に依存して、変数startCompおよびnumCompsは次のように導出される:
・treeTypeがSINGLE_TREEに等しい場合:
startComp=0 (444)
numComps=3 (445)
・それ以外の場合、treeTypeはDUAL_TREE_LUMAに等しい:
startComp=0 (446)
numComps=1 (447)
・それ以外の場合、treeTypeはDUAL_TREE_CHROMAに等しい:
startComp=1 (448)
numComps=2 (449)
cIdxの値に依存して、変数nSubWidthおよびnSubHeightは次のように導出される:
・cIdxが0より大きく、startCompが0に等しい場合、nSubWidthはSubWidthCに設定され、nSubHeightはSubHeightCに設定される。
・それ以外の場合は、nSubWidthは1に設定され、nSubHeightは1に設定される。
位置(xCbComp,yCbComp)における再構成されたサンプル配列recSamplesの(nCbW×nCbH)ブロックは、recSamples[x][y](ここで、x=0..nCTbW-1およびy=0..nCbH-1)によって表され、0からnCTbW-1の範囲(両端含む)における各xおよび0からnCbH-1の範囲(両端含む)における各yについてのrecSamples[x][y]の値は、次のように導出される:
・変数xL、yL、xCbL、yCbLは次のように導出される:
xL=x*nSubWidth (450)
yL=y*nSubHeight (451)
xCbL=xCbComp*nSubWidth (452)
yCbL=yCbComp*nSubHeight (453)
・変数bIsEscapeSampleは、次のように導出される:
・PaletteIndexMap[xCbL+xL][yCbL+yL]がMaxPaletteIndexに等しく、palette_escape_val_present_flagが1に等しい場合、bIsEscapeSampleは1に等しく設定される。
・それ以外の場合、bIsEscapeSampleは0に設定される。
・bIsEscapeSampleが0に等しい場合、以下が適用される:
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCbL+xL][yCbL+yL]] (454)
・それ以外の場合(bIsEscapeSampleが1に等しい)、以下の順序付けられたステップが適用される:
4.量子化パラメータqPは次のように導出される:
・cIdxが0に等しい場合、
qP=Max(QpPrimeTsMin,Qp'Y) (455)
・それ以外で、cIdxが1に等しい場合、
qP=Max(QpPrimeTsMin,Qp'Cb) (456)
・それ以外の場合(cIdxは2に等しい)、
qP=Max(QpPrimeTsMin,Qp'Cr) (457)
5.リストlevelScale[]は、k=0..5として、levelScale[k]={40,45,51,57,64,72}として指定される。
6.次が適用される:
{{shift=Min(bitDepth-1,(QpPrimeTsMin-4)/6)}}
[[tmpVal=(PaletteEscapeVal[cIdx][xCbL+xL][yCbL+yL]*
levelScale[qP%6])<<(qP/6)+32)>>6 (458)]]
{{qP'=Max(0,qP-6*shift)
tmpVal=((PaletteEscapeVal[cIdx][xCbL+xL][yCbL+yL]<<shift)*
levelScale[qP'%6])<<(qP'/6)+32)>>6 (458)}}
recSamples[x][y]=Clip3(0,(1<<BitDepth)-1,tmpVal) (459)
図9は、ビデオ処理装置900のブロック図である。装置900は、本明細書に記載される方法のうちの一つまたは複数を実装するために使用されてもよい。装置900は、スマートフォン、タブレット、コンピュータ、モノのインターネット(IoT)受信機などにおいて具現されてもよい。装置900は、一つまたは複数のプロセッサ902、一つまたは複数のメモリ904、およびビデオ処理ハードウェア906を含んでいてもよい。プロセッサ902は、本稿に記載される一つまたは複数の方法を実装するように構成されてもよい。メモリ(単数または複数)904は、本明細書に記載される方法および技法を実装するために使用されるデータおよびコードを記憶するために使用されてもよい。ビデオ処理ハードウェア906は、ハードウェア回路において、本稿に記載されるいくつかの技法を実装するために使用されてもよい。いくつかの実施形態では、ハードウェア906は、プロセッサ902、たとえばグラフィックスコプロセッサに対して少なくとも部分的に内部であってもよい。
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを有効にする判断または決定を行うことを含む。一例では、ビデオ処理ツールまたはモードが有効にされている場合、エンコーダは、ビデオのブロックの処理においてそのツールまたはモードを使用または実装するが、必ずしもそのツールまたはモードの使用に基づく、結果として生じるビットストリームを修正しなくてもよい。すなわち、ビデオのブロックからビデオのビットストリーム表現への変換は、前記判断または決定に基づいて有効にされているとき、そのビデオ処理ツールまたはモードを使用する。別の例では、ビデオ処理ツールまたはモードが有効にされている場合、デコーダは、ビットストリームがそのビデオ処理ツールまたはモードに基づいて修正されているという知識を用いて、そのビットストリームを処理する。すなわち、ビデオのビットストリーム表現からビデオのブロックへの変換は、前記判断または決定に基づいて有効にされたビデオ処理ツールまたはモードを使用して実行される。
開示された技術のいくつかの実施形態は、ビデオ処理ツールまたはモードを無効にする判断または決定を行うことを含む。一例では、ビデオ処理ツールまたはモードが無効にされている場合、エンコーダは、ビデオのブロックをビデオのビットストリーム表現に変換する際に、そのツールまたはモードを使用しない。別の例では、ビデオ処理ツールまたはモードが無効にされている場合、デコーダは、ビットストリームが、判断または決定に基づいて有効にされたビデオ処理ツールまたはモードを使用して修正されていないという知識を用いて、そのビットストリームを処理する。
図10は、本明細書に開示されるさまざまな技法が実装されうる例示的なビデオ処理システム1000を示すブロック図である。さまざまな実装は、システム1000の構成要素の一部または全部を含んでいてもよい。システム1000は、ビデオ・コンテンツを受信するための入力1002を含んでいてもよい。ビデオ・コンテンツは、生または非圧縮フォーマット、たとえば、8または10ビットの多成分ピクセル値の形で受領されてもよく、または圧縮またはエンコードされたフォーマットで受領されてもよい。入力1002は、ネットワークインターフェース、周辺バスインターフェース、または記憶インターフェースを表すことができる。ネットワークインターフェースの例は、イーサネット、受動光ネットワーク(PON)などの有線インターフェース、およびWi-Fiまたはセルラーインターフェースなどの無線インターフェースを含む。
システム1000は、本稿に記載されるさまざまなコーディングまたはエンコード方法を実装しうるコーディングコンポーネント1004を含んでいてもよい。コーディングコンポーネント1004は、入力1002からコーディングコンポーネント1004の出力へ、ビデオの平均ビットレートを低減して、ビデオのコーディング表現を生成してもよい。よって、コーディング技法は、時に、ビデオ圧縮またはビデオトランスコード技法と呼ばれる。コーディングコンポーネント1004の出力は、コンポーネント1006によって表されるように接続された通信を介して、記憶されるか、または送信されてもよい。入力1002で受信されたビデオの記憶されたまたは通信されたビットストリーム(またはコーディングされた)表現は、ディスプレイインターフェース1010に送られるピクセル値または表示可能なビデオを生成するために、コンポーネント1008によって使用されうる。ビットストリーム表現からユーザーが見ることができるビデオを生成するプロセスは、時に、ビデオ圧縮解除と呼ばれる。さらに、ある種のビデオ処理動作は、「コーディング」操作またはツールと称されるが、コーディングツールまたは操作は、エンコーダにおいて使用され、コーディングの結果を反転させる対応する復号ツールまたは操作がデコーダにおいて実行されることが理解されるであろう。
周辺バスインターフェースまたはディスプレイインターフェースの例は、ユニバーサルシリアルバス(USB)または高精細度マルチメディアインターフェース(MDMI)またはディスプレイポートなどを含む。記憶インターフェースの例は、SATA(シリアルアドバンストテクノロジーアタッチメント)、PCI、IDEインターフェースなどを含む。本稿に記載される技法は、携帯電話、ラップトップ、スマートフォン、またはデジタルデータ処理および/またはビデオ表示を実行することができる他の装置のようなさまざまな電子装置において具現されうる。
図11は、本開示の技表を利用することができる例示的なビデオコーディングシステム100を示すブロック図である。
図11に示されるように、ビデオコーディングシステム100は、源装置110および宛先装置120を含んでいてもよい。源装置110は、ビデオ・エンコード装置と称されてもよく、エンコードされたビデオ・データを生成する。宛先装置120は、ビデオ・デコード装置と称されてもよく、源装置110によって生成されたエンコードされたビデオ・データをデコードしてもよい。
源装置110は、ビデオ源112、ビデオ・エンコーダ114、および入出力(I/O)インターフェース116を含むことができる。
ビデオ源112は、ビデオ捕捉装置のような源、ビデオ・コンテンツ・プロバイダーからビデオ・データを受信するためのインターフェース、および/またはビデオ・データを生成するためのコンピュータ・グラフィックス・システム、またはそのような源の組み合わせを含んでいてもよい。ビデオ・データは、一つまたは複数のピクチャーを含んでいてもよい。ビデオ・エンコーダ114は、ビデオ源112からのビデオ・データをエンコードしてビットストリームを生成する。ビットストリームは、ビデオ・データのコーディング表現を形成するビットのシーケンスを含んでいてもよい。ビットストリームは、コーディングされたピクチャーおよび関連するデータを含んでいてもよい。コーディングピクチャーは、ピクチャーのコーディング表現である。関連するデータは、シーケンスパラメータセット、ピクチャーパラメータセット、および他の構文構造を含んでいてもよい。I/Oインターフェース116は、変調器/復調器(モデム)および/または送信器を含んでいてもよい。エンコードされたビデオ・データは、ネットワーク130aを通じてI/Oインターフェース116を介して宛先装置120に直接送信されてもよい。エンコードされたビデオ・データはまた、宛先装置120によるアクセスのために記憶媒体/サーバー130b上に記憶されてもよい。
宛先装置120は、I/Oインターフェース126、ビデオ・デコーダ124、および表示装置122を含んでいてもよい。
I/Oインターフェース126は、受信機および/またはモデムを含んでいてもよい。I/Oインターフェース126は、源装置110または記憶媒体/サーバー130bから、エンコードされたビデオ・データを取得してもよい。ビデオ・デコーダ124は、エンコードされたビデオ・データをデコードしてもよい。表示装置122は、デコードされたビデオ・データをユーザーに対して表示してもよい。表示装置122は、宛先装置120と一体化されてもよく、または外部表示装置とインターフェースするように構成された宛先装置120の外部にあってもよい。
ビデオ・エンコーダ114およびビデオ・デコーダ124は、高効率ビデオコーディング(HEVC)標準、多用途ビデオコーディング(VVC)標準、およびその他の現行のおよび/またはさらなる標準のようなビデオ圧縮標準に従って動作してもよい。
図12は、図11に示されるシステム100内のビデオ・エンコーダ114であってもよいビデオ・エンコーダ200の一例を示すブロック図である。
ビデオ・エンコーダ200は、本開示の技法のいずれかまたはすべてを実行するように構成されてもよい。図12の例では、ビデオ・エンコーダ200は、複数の機能コンポーネントを含む。本開示に記載される技法は、ビデオ・エンコーダ200のさまざまなコンポーネント間で共有されてもよい。いくつかの例では、プロセッサが、本開示に記載される技法のいずれかまたはすべてを実行するように構成されてもよい。
ビデオ・エンコーダ200の機能コンポーネントは、分割部201と、モード選択部203、動き推定部204、動き補償部205、およびイントラ予測部206を含みうる予測部202と、残差生成部207と、変換部208と、量子化部209と、逆量子化部210と、逆変換部211と、再構成部212と、バッファ213と、エントロピーエンコーディング部214とを含んでいてもよい。
他の例では、ビデオ・エンコーダ200は、より多くの、より少ない、または異なる機能コンポーネントを含んでいてもよい。一例では、予測部202は、イントラブロックコピー(IBC)部を含んでいてもよい。IBC部は、少なくとも1つの参照ピクチャーが現在のビデオ・ブロックが位置するピクチャーであるIBCモードで予測を実行することができる。
さらに、動き推定部204や動き補償部205のようないくつかのコンポーネントは、高度に統合されてもよいが、説明のために図12の例では別個に表現されている。
分割部201は、ピクチャーを一つまたは複数のビデオ・ブロックにパーティション分割することができる。ビデオ・エンコーダ200およびビデオ・デコーダ300は、さまざまなビデオ・ブロック・サイズをサポートすることができる。
モード選択部203は、たとえば誤差結果に基づいて、コーディングモードのうちの1つ、イントラまたはインターを選択し、結果として得られるイントラまたはインターコーディングされたブロックを、残差ブロック・データを生成する残差生成部207に、また、参照ピクチャーとして使用するためにエンコードされたブロックを再構成する再構成部212に提供することができる。いくつかの例では、モード選択部203は、予測がインター予測信号およびイントラ予測信号に基づく、イントラおよびインター予測の組み合わせ(CIIP)モードを選択してもよい。モード選択部203は、また、インター予測の場合、ブロックについての動きベクトルの分解能(たとえば、サブピクセルまたは整数ピクセル精度)を選択してもよい。
現在のビデオ・ブロックに対してインター予測を実行するために、動き推定部204は、バッファ213からの一つまたは複数の参照フレームを現在のビデオ・ブロックと比較することによって、現在のビデオ・ブロックについての動き情報を生成してもよい。動き補償部205は、現在のビデオ・ブロックに関連するピクチャー以外のバッファ213からのピクチャーのデコードされたサンプルと前記動き情報とに基づいて、現在のビデオ・ブロックについて予測されるビデオ・ブロックを決定することができる。
動き推定部204と動き補償部205は、たとえば、現在のビデオ・ブロックがIスライス内にあるか、Pスライス内にあるか、Bスライス内にあるかによって、現在のビデオ・ブロックについて異なる動作を実行してもよい。
いくつかの例では、動き推定部204は、現在のビデオ・ブロックについて一方向の予測を実行してもよく、動き推定部204は、現在のビデオ・ブロックについての参照ビデオ・ブロックを求めて、リスト0またはリスト1の参照ピクチャーを探索してもよい。次いで、動き推定部204は、参照ビデオ・ブロックを含むリスト0またはリスト1内の参照ピクチャーを示す参照インデックスと、現在のビデオ・ブロックと参照ビデオ・ブロックとの間の空間的変位を示す動きベクトルとを生成することができる。動き推定部204は、参照インデックス、予測方向指示子、および動きベクトルを現在のビデオ・ブロックの動き情報として出力することができる。動き補償部205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のブロックの予測されたビデオ・ブロックを生成することができる。
他の例では、動き推定部204は、現在のビデオ・ブロックについて双方向予測を実行してもよく、動き推定部204は、現在のビデオ・ブロックについての参照ビデオ・ブロックを求めてリスト0内の参照ピクチャーを探索してもよく、現在のビデオ・ブロックについての別の参照ビデオ・ブロックを求めてリスト1内の参照ピクチャーをも探索してもよい。次いで、動き推定部204は、参照ビデオ・ブロックを含むリスト0およびリスト1における参照ピクチャーを示す参照インデックスと、参照ビデオ・ブロックと現在のビデオ・ブロックとの間の空間的変位を示す動きベクトルとを生成してもよい。動き推定部204は、現在のビデオ・ブロックの参照インデックスおよび動きベクトルを、現在のビデオ・ブロックの動き情報として、出力することができる。動き補償部205は、現在のビデオ・ブロックの動き情報によって示される参照ビデオ・ブロックに基づいて、現在のビデオ・ブロックの予測ビデオ・ブロックを生成することができる。
いくつかの例では、動き推定部204は、デコーダのデコード処理のための動き情報のフルセットを出力してもよい。
いくつかの例では、動き推定部204は、現在のビデオについての動き情報のフルセットは出力しなくてもよい。むしろ、動き推定部204は、別のビデオ・ブロックの動き情報を参照して現在のビデオ・ブロックの動き情報を信号伝達してもよい。たとえば、動き推定部204は、現在のビデオ・ブロックの動き情報が近傍のビデオ・ブロックの動き情報と十分に類似していると判断することができる。
一例では、動き推定部204は、現在のビデオ・ブロックに関連する構文構造において、現在のビデオ・ブロックが別のビデオ・ブロックと同じ動き情報を有することをビデオ・デコーダ300に対して示す値を示してもよい。
別の例では、動き推定部204は、現在のビデオ・ブロックに関連する構文構造において、別のビデオ・ブロックおよび動きベクトル差(MVD)を同定してもよい。動きベクトル差は、現在のビデオ・ブロックの動きベクトルと示されたビデオ・ブロックの動きベクトルとの間の差を示す。ビデオ・デコーダ300は、示されたビデオ・ブロックの動きベクトルと動きベクトル差とを使用して、現在のビデオ・ブロックの動きベクトルを決定することができる。
上述のように、ビデオ・エンコーダ200は、動きベクトルを予測的に信号伝達してもよい。ビデオ・エンコーダ200によって実装されうる予測的な信号伝達技法の2つの例は、先進動きベクトル予測(AMVP)およびマージ・モード信号伝達を含む。
イントラ予測部206は、現在のビデオ・ブロックに対してイントラ予測を実行することができる。イントラ予測部206が現在のビデオ・ブロックに対してイントラ予測を実行するとき、イントラ予測部206は、同じピクチャー内の他のビデオ・ブロックのデコードされたサンプルに基づいて、現在のビデオ・ブロックのための予測データを生成することができる。現在のビデオ・ブロックのための予測データは、予測されるビデオ・ブロックおよびさまざまな構文要素を含んでいてもよい。
残差生成部207は、現在のビデオ・ブロックから現在のビデオ・ブロックの予測ビデオ・ブロックを差し引くことによって(たとえば、マイナス記号によって示される)、現在のビデオ・ブロックのための残差データを生成することができる。現在のビデオ・ブロックの残差データは、現在のビデオ・ブロック内のサンプルの異なるサンプル成分に対応する残差ビデオ・ブロックを含んでいてもよい。
他の例では、たとえばスキップ・モードにおいて、現在のビデオ・ブロックのための現在のビデオ・ブロックのための残差データが存在しないことがあり、残差生成部207は減算演算を実行しないことがある。
変換処理部208は、現在のビデオ・ブロックに関連する残差ビデオ・ブロックに一つまたは複数の変換を適用することによって、現在のビデオ・ブロックのための一つまたは複数の変換係数ビデオ・ブロックを生成することができる。
変換処理部208が現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを生成した後、量子化部209は、現在のビデオ・ブロックに関連する一つまたは複数の量子化パラメータ(QP)値に基づいて、現在のビデオ・ブロックに関連する変換係数ビデオ・ブロックを量子化することができる。
逆量子化部210および逆変換部211は、変換係数ビデオ・ブロックから残差ビデオ・ブロックを再構成するために、変換係数ビデオ・ブロックに対してそれぞれ逆量子化および逆変換を適用することができる。再構成部212は、再構成された残差ビデオ・ブロックを、予測部202によって生成された一つまたは複数の予測ビデオ・ブロックからの対応するサンプルに加算して、バッファ213に記憶するために現在のブロックに関連する再構成されたビデオ・ブロックを生成する。
再構成部212がビデオ・ブロックを再構成した後、ビデオ・ブロック内のビデオ・ブロッキング・アーチファクトを低減するためにループ・フィルタリング動作が実行されてもよい。
エントロピーエンコーディング部214は、ビデオ・エンコーダ200の他の機能コンポーネントからデータを受領することができる。エントロピーエンコーディング部214がデータを受領すると、エントロピーエンコーディング部214は、一つまたは複数のエントロピーエンコーディング動作を実行してエントロピーエンコーディングデータを生成し、エントロピーエンコーディングデータを含むビットストリームを出力することができる。
図13は、図11に示されるシステム100内のビデオ・デコーダ114であってもよいビデオ・デコーダ300の例を示すブロック図である。
ビデオ・デコーダ300は、本開示の技法のいずれかまたはすべてを実行するように構成されうる。図13の例では、ビデオ・デコーダ300は、複数の機能的コンポーネントを含む。本開示に記載される技法は、ビデオ・デコーダ300のさまざまなコンポーネント間で共有されてもよい。いくつかの例では、プロセッサが、本開示に記載される技法のいずれかまたはすべてを実行するように構成されてもよい。
図13の例では、ビデオ・デコーダ300は、エントロピー復号部301、動き補償部302、イントラ予測部303、逆量子化部304、逆変換部305、再構成部306、バッファ307を含む。ビデオ・デコーダ300は、いくつかの例では、ビデオ・エンコーダ200(図12)に関して説明したエンコード・パス(pass)とおおむね逆のデコード・パスを実行することができる。
エントロピー復号部301は、エンコードされたビットストリームを取り出すことができる。エンコードされたビットストリームはエントロピーコーディングされたビデオ・データ(たとえば、ビデオ・データのエンコードされたブロック)を含むことができる。エントロピー復号部301はエントロピーコーディングされたビデオ・データを復号することができ、エントロピー復号されたビデオ・データから、動き補償部302は、動きベクトル、動きベクトル精度、参照ピクチャー・リスト・インデックス、および他の動き情報を含む動き情報を決定することができる。動き補償部302は、たとえば、AMVPおよびマージ・モードを実行することによって、そのような情報を決定することができる。
動き補償部302は、可能性としては補間フィルタに基づく補間を実行して、動き補償されたブロックを生成することができる。サブピクセル精度で使用される補間フィルタのための識別子が、構文要素に含まれてもよい。
動き補償部302は、ビデオ・ブロックのエンコード中にビデオ・エンコーダ20によって使用される補間フィルタを使用して、参照ブロックの整数未満ピクセルについての補間された値を計算することができる。動き補償部302は、受領された構文情報に従ってビデオ・エンコーダ200によって使用される補間フィルタを決定し、該補間フィルタを使用して予測ブロックを生成することができる。
動き補償部302は、構文情報の一部を使用して、エンコードされたビデオ・シーケンスのフレームおよび/またはスライスをエンコードするために使用されるブロックのサイズ、エンコードされたビデオ・シーケンスのピクチャーの各マクロブロックがどのようにパーティション分割されるかを記述する分割情報、各パーティションがどのようにエンコードされるかを示すモード、各インターコーディングされたブロックについての一つまたは複数の参照フレーム(および参照フレーム・リスト)、およびエンコードされたビデオ・シーケンスをデコードするための他の情報を決定することができる。
イントラ予測部303は、たとえばビットストリームにおいて受領されたイントラ予測モードを使用して、空間的に隣接するブロックから予測ブロックを形成してもよい。逆量子化部303は、ビットストリーム内で提供され、エントロピー復号部301によって復号された量子化ビデオ・ブロック係数を逆量子化する、すなわち、脱量子化する。逆変換部303は、逆変換を適用する。
再構成部306は、残差ブロックを、動き補償部202またはイントラ予測部303によって生成された対応する予測ブロックと加算して、デコードされたブロックを形成することができる。所望であれば、ブロック性アーチファクトを除去するために、デコードされたブロックをフィルタリングするようブロッキング解除フィルタも適用されてもよい。次いで、デコードされたビデオ・ブロックはバッファ307に格納され、バッファ307は、その後の動き補償/イントラ予測のための参照ブロックを提供し、表示装置上に提示するためのデコードされたビデオをも生成する。
いくつかの実施形態では、以下の方法は、上記に列挙した例および実施形態のリストに基づく。一例では、これらの方法は、図9~図13に示される実装を使用して実施できるが、これに限定されない。
図14は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1400は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(1410)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのためのエスケープ・シンボルのバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図15は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1500は、一つまたは複数のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(1510)を含み、前記ビットストリーム表現は、前記一つまたは複数のビデオ・ブロックのうちの現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされ、現在のビデオ・ブロックについてのエスケープ・シンボルのバイナリ化が固定長バイナリ化を用いるというフォーマット規則に適合し、前記パレット・モードコーディングツールは代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される
図16は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1600は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(1610)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのエスケープ・シンボルのバイナリ化は、可変長コーディングを使用し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図17は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1700は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(1710)を含み、前記変換は、現在のビデオ・ブロックに対する量子化または逆量子化プロセスの適用を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるかどうかに基づいて、前記量子化または逆量子化プロセスの適用を構成するフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
図18は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1800は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行すること(1810)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックのエスケープ・シンボルがバイナリシフト演算を使用して量子化および/または脱量子化されるように表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図19は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法1900は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(1910)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの一つまたは複数のパレット・インデックスは、参照インデックスを用いずにコーディングされ、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
図20は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2000は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2010)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされ、エスケープ・シンボルのインデックスと非エスケープ・シンボルのインデックスとの間の導出を制約するというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図21は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2100は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2110)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの導出されるパレット・インデックスは最大値をもち、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
図22は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2200は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2210)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックがエスケープ・シンボルを含む構文要素を用いて表現されるというフォーマット規則に適合し、前記エスケープ・シンボルを示すインデックスの値は、前記一つまたは複数のビデオ領域のそれぞれについて変更されず、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図23は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2300は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2310)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在インデックスおよび参照インデックスに基づいてコーディングされる構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
図24は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2400は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2410)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、予測的にコーディングされるエスケープ・シンボルを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図25は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2500は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行すること(2510)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックが、パレット項目をインデックス付けするためのパレット・インデックスに基づくコンテキストでランレングスコーディングされる構文要素を用いて表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する。
図26は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2600は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2610)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、前の諸パレット・インデックスとは独立して信号伝達される現在のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
図27は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2700は、整列規則に基づいて、ビデオの一つまたは複数のビデオ領域の現在のビデオ・ブロックのための量子化パラメータを予測するために使用される第1の近傍ビデオ・ブロックと、現在のビデオ・ブロックのコーディングモードを予測的に決定するために使用される第2の近傍ビデオ・ブロックとを決定するステップ(2710)と、該決定に基づいて、前記ビデオと前記ビデオのビットストリーム表現との間の変換を実行するステップ(2720)とを含む。
図28は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2800は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行すること(2810)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックがエスケープ・シンボルを含むかどうかにかかわらず、ブロック・レベル量子化パラメータ(QP)差を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される。
図29は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法2900は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(2910)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、パレット・ブロックのための一つまたは複数のコーディングブロック・フラグ(CBF)を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
図30は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法3000は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(3010)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、一つまたは複数のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記一つまたは複数のパレット・インデックスの数(NumPltIdx)は、K以上であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、Kは正の整数である。
図31は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法3100は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行すること(3110)を含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のブロックのためのパレットの最大サイズ、現在のビデオ・ブロックのサイズ、無損失モードの使用、または量子化パラメータ(QP)に基づく構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する。
図32は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法3200は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換のために、現在のビデオ・ブロックがブロックベースの差動パルス符号変調(BDPCM)モードでコーディングされ、複数の変換ブロックまたはサブブロックに分割されることを決定するステップ(3210)と、前記変換を実行することの一部として、ブロック・レベルでの残差予測と、前記決定に基づいて、一つまたは複数の残差を前記ビットストリーム表現にサブブロックまたは変換ブロック・レベルで含めることとを実行するステップ(3220)とを含む。
図33は、ビデオ処理のための例示的方法のフローチャートである。そこに示されるように、方法3300は、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行すること(3310)を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがライン・ベースの係数グループ(CG)パレット・モードを使用してコーディングされるというフォーマット規則に適合し、前記ライン・ベースのCGパレット・モードは、代表的な色値のパレットを使用して、現在のビデオ・ブロックの各コーディング単位(CU)の複数のセグメントを表す。
以下の解決策は、いくつかの実施形態の好ましい特徴として、前のセクションに列挙されている項目(たとえば、項目1)に記載されている追加の技法とともに実装されてもよい。
1.ビデオ処理の方法であって:現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのためのエスケープ・シンボルのバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
2.K=0である、解決策1の方法。
3.K=1である、解決策1の方法。
4.K=2である、解決策1の方法。
ビデオ処理の方法であって、一つまたは複数のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、前記一つまたは複数のビデオ・ブロックのうちの現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされ、現在のビデオ・ブロックについてのエスケープ・シンボルのバイナリ化が固定長バイナリ化を用いるというフォーマット規則に適合し、前記パレット・モードコーディングツールは代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
6.前記固定長バイナリ化は、Nビットを使用し、Nは1より大きい整数である、解決策5の方法。
7.Nが、内部ビット深さに基づく、解決策6の方法。
8.Nの値が、スライス・サブピクチャー、タイル、ピクチャー、またはビデオにおいて信号伝達される、解決策6の方法。
9.Nが量子化パラメータに基づいている、解決策6の方法。
10.Nが、f(Qp)として示される量子化パラメータ(Qp)の関数(f())に基づく、解決策9の方法。
11.Nが(ibd-max(16,(Qp-4)/6))に設定され、ここで、ibdが内部ビット深さである、解決策9の方法。
12.Nが(ibd-max(QpPrimeTsMin,(Qp-4)/6))に設定され、ここで、ibdは内部ビット深さであり、QpPrimeTsMinは変換スキップ・モードのための最小の許容される量子化パラメータである、解決策9の方法。
13.Nがmax(A,(ibd-max(16,(QpPrimeTsMin-4)/6)))に設定され、ここで、ibdは内部ビット深さであり、QpPrimeTsMinは変換スキップ・モードのための最小の許容される量子化パラメータであり、Aは負でない整数である、解決策9の方法。
14.A=0またはA=1である、解決策13の方法。
15.前記量子化パラメータが、前記ビデオのスライスの量子化パラメータと定数値との和であり、前記定数値が整数値である、解決策9ないし14のうちいずれか一項の方法。
16.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるというフォーマット規則に適合し、前記現在のビデオ・ブロックのエスケープ・シンボルのバイナリ化は、可変長コーディングを使用し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
17.前記可変長コーディングが次数3の指数ゴロム符号を除外する、解決策16の方法。
18.前記可変長コーディングが、入力パラメータKをもつ打ち切りされたバイナリ(TB)符号であり、Kは整数である、解決策16の方法。
19.Kは、(a)シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャーパラメータセット(PPS)、ピクチャー・ヘッダ、スライス・ヘッダ、タイル・グループ・ヘッダ、最大コーディング単位(LCU)行、LCUのグループ、またはブリック、(b)内部ビット深さ、(c)入力ビット深さ、(d)内部ビット深さと入力ビット深さとの間の相違、(e)現在ビデオ・ブロックの寸法、(f)現在ビデオ・ブロックの現在の量子化パラメータ、(g)前記ビデオのカラー・フォーマットの指示、(h)コーディングツリー構造、または(i)前記ビデオの色成分に基づいている、解決策18の方法。
20.前記エスケープ・シンボルの複数の値が、複数のバイナリ化方法を使用して信号伝達される、解決策5の方法。
21.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記変換は、現在のビデオ・ブロックに対する量子化または逆量子化プロセスの適用を含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされるかどうかに基づいて、前記量子化または逆量子化プロセスの適用を構成するフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する、方法。
ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックのエスケープ・シンボルがバイナリシフト演算を使用して量子化および/または脱量子化されるように表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
23.前記量子化が右ビットシフトに対応する、解決策22の方法。
24.前記エスケープ・シンボルがf(p,Qp)としてコーディングされ、f()は関数であり、pは入力シンボル値であり、Qpは、現在のビデオ・ブロックを表す対応する色成分についての導出された量子化パラメータである、解決策22の方法。
25.fがp>>g(Qp)として定義される、解決策24の方法。
26.fが、(p+(1<<(g(QP)-1)))>>g(Qp)として定義される、解決策24の方法。
27.fは、clip(0,(1<<bd)-1,(p+(1<<(g(QP)-1)))>>g(Qp))として定義され、clip(x,min,max)はクリッピング関数であり、x、min、maxは整数である、解決策24の方法。
28.前記エスケープ・シンボルはh(p)としてコーディングされ、h()は関数であり、pは入力値シンボルである、解決策22の方法。
29.hがp>>Nとして定義され、Nは負でない整数である、解決策28の方法。
30.hは、(p+(1<<(N-1)))>>Nとして定義され、Nは負でない整数である、解決策28の方法。
31.cu_transquant_bypass_flag=1のときN=0である、解決策29または30の方法。
32.cu_transquant_bypass_flag=1のときN=(bd-ibd)であり、bdは内部ビット深さであり、ibdは入力ビット深さである、解決策29または30の方法。
33.hは、clip(0,(1<<(bd-N)-1,p>>N)として定義され、ここで、bdは、現在のビデオ・ブロックの現在の色成分の内部ビット深さであり、Nは負でない整数であり、clip(x,min,max)は、クリッピング関数であり、x、min、およびmaxは整数である、解決策28の方法。
34.hは、clip(0,(1<<(bd-N)-1,(p+(1<<(N-1)))>>N)として定義され、ここで、bdは、現在のビデオ・ブロックの現在の色成分についての内部ビット深さであり、Nは、負でない整数であり、clip(x,min,max)はクリッピング関数であり、x、min、maxは整数である、解決策28の方法。
35.Nが[0,(bd-1)]の範囲内であり、bdは、現在のビデオ・ブロックの現在の色成分についての内部ビット深さである、解決策29ないし34のうちいずれか一項の方法。
36.前記脱量子化は、左ビットシフトに対応する、解決策22の方法。
37.前記エスケープ・シンボルは、f(p,Qp)として脱量子化され、ここで、f()は関数であり、pはデコードされたエスケープ・シンボルであり、Qpは、現在のビデオ・ブロックを表す対応する色成分についての導出された量子化パラメータである、解決策36の方法。
38.fがp<<g(Qp)として定義される、解決策37の方法。
39.前記エスケープ・シンボルはf(p,Qp)として再構成され、ここで、f()は関数であり、pはデコードされたエスケープ・シンボルであり、Qpは、現在のビデオ・ブロックを表す対応する色成分についての導出された量子化パラメータである、解決策36の方法。
40.fは、clip(0,(1<<bd)-1,p<<g(Qp))として定義され、bdは、現在のビデオ・ブロックの現在の色成分についての内部ビット深さであり、clip(x,min,max)はクリッピング関数であり、x、min、maxは整数である、解決策39の方法。
41.クリッピング関数clip(x,min,max)は
Figure 2024023581000032
として定義される、解決策27、33、34または40の方法。
42.前記エスケープ・シンボルはh(p)として再構成され、h()は関数であり、pはデコードされたエスケープ・シンボルである、解決策36の方法。
43.hはp<<Nとして定義され、Nは負でない整数である、解決策42の方法。
44.cu_transquant_bypass_flag=1のときN=0である、解決策42または43の方法。
45.cu_transquant_bypass_flag=1のときN=(bd-ibd)であり、bdは内部ビット深さであり、ibdは入力ビット深さである、解決策42または43の方法。
46.N=(max(QpPrimeTsMin,qP)-4)/6であって、qPはデコードされた量子化パラメータであり、QpPrimeTsMinは変換スキップ・モードのための最小の許容される量子化パラメータである、解決策42または43の方法。
47.Nがさらにmin(bd-1,N)としてクリップされ、bdが現在のビデオ・ブロックの現在の色成分についての内部ビット深さである、解決策43ないし46のうちいずれか一項の方法。
48.Nが[0,(bd-1)]の範囲内であり、bdは現在のビデオ・ブロックの現在の色成分の内部ビット深さである、解決策43ないし47のうちいずれか一項の方法。
49.前記エスケープ・シンボルの再構成オフセットは、ビット深さ情報に基づく、解決策36の方法。
50.前記ビット深さ情報は、内部ビット深さと入力ビット深さとの間の差(ΔBDと記される)を含む、解決策49の方法。
51.K≦ΔBDである場合、再構成されたオフセットはp<<Kに等しく、ここで、pは、デコードされたエスケープ・シンボルであり、Kは、整数である、解決策50の方法。
52.前記再構成されたオフセットは、K≦T0の場合、p<<Kに等しく、pは、デコードされたエスケープ・シンボルであり、KおよびT0は整数である、解決策49の方法。
53.T0=2である、解決策50の方法。
54.再構成されたオフセットは、(p<<K)+((1<<(K-1))>>ΔBD<<ΔBD)に等しく、pはデコードされたエスケープ・シンボルであり、Kは整数である、解決策50の方法。
55.ΔBDが、シーケンス・レベル、ピクチャー・レベル、スライス・レベル、タイル・レベル、ブリック・レベル、またはサブピクチャー・レベルでビットストリーム表現において信号伝達される、解決策50の方法。
56.前記エスケープ・シンボルがコンテキストコーディングされる、解決策22ないし55のうちいずれか一項の方法。
57.前記エスケープ・シンボルがバイパスコーディングされる、解決策22ないし55のうちいずれか一項の方法。
58.g(Qp)が(Qp-4)/6として定義される、解決策25ないし27、38または40のうちいずれか一項の方法。
59.g(Qp)が(max(M,Qp)-4)/6として定義され、Mは整数である、解決策25ないし27、39または40のうちいずれか一項の方法。
60.Mが、シーケンスパラメータセット(SPS)において信号伝達される、解決策59の方法。
61.g(Qp)が[0,(bd-1)]の範囲内であり、bdが、現在のビデオ・ブロックの現在の色成分についての内部ビット深さである、解決策58ないし60のうちいずれか一項の方法。
62.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの一つまたは複数のパレット・インデックスは、参照インデックスを用いずにコーディングされ、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する、方法。
63.前記一つまたは複数のパレット・インデックスのバイナリ化が、バイナリ化入力パラメータとして最大パレット・インデックスを有する打ち切りされたバイナリ(TB)符号である、解決策62の方法。
64.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを使用してコーディングされ、エスケープ・シンボルのインデックスと非エスケープ・シンボルのインデックスとの間の導出を制約するというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
65.前記非エスケープ・シンボルのインデックスから前記エスケープ・シンボルのインデックスを導出することが許されない、解決策64の方法。
66.前記エスケープ・シンボルのインデックスから前記非エスケープ・シンボルのインデックスを導出することが許されない、解決策64の方法。
67.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがパレット・モードコーディングツールを用いてコーディングされるというフォーマット規則に適合し、前記パレット・モードコーディングツールの導出されるパレット・インデックスは最大値をもち、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する、方法。
68.前記最大値は、現在のパレット・テーブル・サイズである、解決策67の方法。
69.前記最大値は、一つまたは複数のエスケープ・シンボルについてのインデックスを除外する現在のパレット・テーブル・サイズであり、前記一つまたは複数のエスケープ・シンボルのうちのあるエスケープ・シンボルが、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、解決策67の方法。
70.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックがエスケープ・シンボルを含む構文要素を用いて表現されるというフォーマット規則に適合し、前記エスケープ・シンボルを示すインデックスの値は、前記一つまたは複数のビデオ領域のそれぞれについて変更されず、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を用いずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
71.前記インデックスがMaxPaletteIndexに等しい、解決策70の方法。
72.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在インデックスおよび参照インデックスに基づいてコーディングされる構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する、方法。
73.前記現在インデックスと前記参照インデックスとの間の差がコーディングされる、解決策72の方法。
74.前記差のコーディングされた表現は、ゼロ値の差を除外する、解決策73の方法。
75.前記現在インデックスと前記参照インデックスとの間の差のモジュロがコーディングされる、解決策72の方法。
76.前記モジュロがI=modulo(C-R,MaxPaletteIndex)として表され、Cは前記現在インデックスであり、Rは前記参照インデックスであり、MaxPaletteIndexは所定の負でない整数である、解決策75の方法。
77.前記パレット・モードコーディングツールのパレット・ブロックの始めにおいて、前記参照インデックスが-1に設定される、解決策72の方法。
78.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、予測的にコーディングされるエスケープ・シンボルを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
79.前記エスケープ・シンボルは、以前にコーディングされたエスケープ・シンボルに基づいて予測的にコーディングされる、解決策78の方法。
80.前記ビデオのある色成分における前記エスケープ・シンボルは、同じ色成分における値に基づいて予測的にコーディングされる、解決策78の方法。
81.前記ビデオの第1の色成分における前記エスケープ・シンボルは、前記第1の色成分とは異なる前記ビデオの第2の色成分における値に基づいて予測的にコーディングされる、解決策78の方法。
82.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを用いてコーディングされる現在のビデオ・ブロックが、パレット項目をインデックス付けするためのパレット・インデックスに基づくコンテキストでランレングスコーディングされる構文要素を用いて表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを用いて現在のビデオ・ブロックを表現する、方法。
83.長さ要素のプレフィックスについてのコンテキストは、デコーダにおけるインデックス調整プロセスの後のパレット・インデックスに基づく、解決策82の方法。
84.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、前の諸パレット・インデックスとは独立して信号伝達される現在のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する、方法。
85.前記前の諸パレット・インデックスを使用することは、現在のビデオ・ブロックが一つまたは複数のエスケープ・シンボルを含むかどうかに基づき、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのためにエスケープ・シンボルが使用される、解決策84の方法。
86.ビデオ処理の方法であって、整列規則に基づいて、ビデオの一つまたは複数のビデオ領域の現在のビデオ・ブロックのための量子化パラメータを予測するために使用される第1の近傍ビデオ・ブロックと、現在のビデオ・ブロックのコーディングモードを予測的に決定するために使用される第2の近傍ビデオ・ブロックとを決定するステップと、該決定に基づいて、前記ビデオと前記ビデオのビットストリーム表現との間の変換を実行するステップとを含む、方法。
87.前記第1の近傍ビデオ・ブロックが、左上の近傍ビデオ・ブロックまたは上の近傍ビデオ・ブロックである、解決策86の方法。
88.前記第2の近傍ビデオ・ブロックが、左上の近傍ビデオ・ブロックまたは上の近傍ビデオ・ブロックである、解決策86または87の方法。
89.前記コーディングモードが、現在のビデオ・ブロックについての最確モード(most probable mode、MPM)を含む、解決策86ないし88のうちいずれか一項の方法。
90.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間で変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のビデオ・ブロックがエスケープ・シンボルを含むかどうかにかかわらず、ブロック・レベル量子化パラメータ(QP)差を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、方法。
91.前記QP差が、閾値よりも大きい幅を有するパレット・ブロックについてコーディングされる、解決策90の方法。
92.前記QP差が、閾値よりも高い高さを有するパレット・ブロックについてコーディングされる、解決策90の方法。
93.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、パレット・ブロックのための一つまたは複数のコーディングブロック・フラグ(CBF)を含む構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する、方法。
94.前記CBFのそれぞれが1に等しく設定される、解決策93の方法。
95.前記一つまたは複数のCBFの値は、前記現在のビデオ・ブロックがエスケープ・シンボルを含むかどうかに基づいており、前記エスケープ・シンボルは、前記代表的な色値を使用せずにコーディングされる前記現在のビデオ・ブロックのサンプルのために使用される、解決策93の方法。
96.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、一つまたは複数のパレット・インデックスを含む構文要素を使用して表現されるというフォーマット規則に適合し、前記一つまたは複数のパレット・インデックスの数(NumPltIdx)は、K以上であり、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現し、Kは正の整数である、方法。
97.Kは、現在のパレット・サイズ(S)、エスケープ・フラグ(E)、または現在のビデオ・ブロックのサイズ(BlkS)に基づく、解決策96の方法。
98.K=S+Eである、解決策97の方法。
99.Kが、パレット・インデックスの最大値(MaxPaletteIndex)に1を加えたものに等しい、解決策96の方法。
100.前記構文要素の1つがNumPltIdx-Kを含む、解決策96の方法。
101.(NumPltIdx-K)の値のバイナリ化が、打ち切りされたバイナリ符号である、解決策100の方法。
102.(NumPltIdx-K)の値のバイナリ化が打ち切りされた単進符号である、解決策100の方法。
103.(BlkS-K)がバイナリ化入力パラメータであり、BlkSが現在のビデオ・ブロックのサイズである、解決策101または102の方法。
104.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、パレット・モードコーディングツールを使用してコーディングされる現在のビデオ・ブロックが、現在のブロックのためのパレットの最大サイズ、現在のビデオ・ブロックのサイズ、無損失モードの使用、または量子化パラメータ(QP)に基づく構文要素を使用して表現されるというフォーマット規則に適合し、前記パレット・モードコーディングツールは、代表的な色値のパレットを使用して現在のビデオ・ブロックを表現する、方法。
105.無損失モードが適用されたこと、QPが閾値より大きいこと、または変換スキップが適用されたことを判別したとき、現在のブロックのためのパレットのサイズは、現在のビデオ・ブロックのサイズに等しいと推定される、解決策104の方法。
106.前記変換を実行することが、前記ビデオのビデオ・コンテンツ、デコーダパラメータセット(DPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャーパラメータセット(PPS)、適応パラメータセット(APS)、ピクチャー・ヘッダ、スライス・ヘッダ、タイル・グループ・ヘッダ、最大コーディング単位(LCU)、コーディング単位(CU)、LCU行、LCUのグループ、変換単位(TU)、予測単位(PU)ブロック、またはビデオコーディング単位において信号伝達されるメッセージ、前記ビデオのカラー・フォーマットの指示、コーディングツリー構造、時間的IDレイヤー、または標準のプロファイル、レベル、もしくは階層のうちの一つまたは複数にさらに基づいている、解決策1ないし105のうちいずれか一項の方法。
107.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、該ビデオのビットストリーム表現との間の変換のために、現在のビデオ・ブロックがブロックベースの差動パルス符号変調(BDPCM)モードでコーディングされ、複数の変換ブロックまたはサブブロックに分割されることを決定するステップと、前記変換を実行することの一部として、ブロック・レベルでの残差予測と、前記決定に基づいて、一つまたは複数の残差を前記ビットストリーム表現にサブブロックまたは変換ブロック・レベルで含めることとを実行するステップとを含む、方法。
108.ビデオ処理の方法であって、現在のビデオ・ブロックを含む一つまたは複数のビデオ領域を含むビデオと、前記ビデオのビットストリーム表現との間の変換を実行することを含み、前記ビットストリーム表現は、現在のビデオ・ブロックがライン・ベースの係数グループ(CG)パレット・モードを使用してコーディングされるというフォーマット規則に適合し、前記ライン・ベースのCGパレット・モードは、代表的な色値のパレットを使用して、現在のビデオ・ブロックの各コーディング単位(CU)の複数のセグメントを表す、方法。
109.前記ビットストリーム表現は、各係数グループについてエスケープ・サンプルが存在するかどうかの指示を含み、エスケープ・サンプルは、前記代表的な色値を使用せずにコーディングされる現在のビデオ・ブロックのサンプルのために使用される、解決策108の方法。
110.前記ビットストリーム表現は、コンテキストコーディングされない上のインデックスをコピーの使用の指示を含む、解決策108の方法。
111.前記指示がバイパスコーディングされる、解決策110の方法。
112.一つまたは複数のコピー・フラグ、一つまたは複数のラン・タイプ、上のインデックスをコピーすること使用の一つまたは複数の指示、およびエスケープ値が、前記ビットストリーム表現において、インターリーブされた仕方で信号伝達される、解決策108の方法。
113.前記ライン・ベースのCGパレット・モードは、前記現在のビデオ・ブロックのサイズが閾値(Th)以下であると判定されると、無効にされる、解決策108の方法。
114.前記変換を実行することが、前記ビデオのビデオ・コンテンツ、デコーダパラメータセット(DPS)、シーケンスパラメータセット(SPS)、ビデオパラメータセット(VPS)、ピクチャーパラメータセット(PPS)、適応パラメータセット(APS)、ピクチャー・ヘッダ、スライス・ヘッダ、タイル・グループ・ヘッダ、最大コーディング単位(LCU)、コーディング単位(CU)、LCU行、LCUのグループ、変換単位(TU)、予測単位(PU)ブロック、またはビデオコーディング単位において信号伝達されるメッセージ、前記ビデオのカラー・フォーマットの指示、コーディングツリー構造、時間的IDレイヤー、または標準のプロファイル、レベル、もしくは階層のうちの一つまたは複数にさらに基づいている、解決策107ないし113のうちいずれか一項の方法。
115.前記変換を実行することが、前記一つまたは複数のビデオ領域から前記ビットストリーム表現を生成することを含む、解決策1ないし114のうちいずれか一項の方法。
116.前記変換を実行することが、前記ビットストリーム表現から前記一つまたは複数のビデオ領域を生成することを含む、解決策1ないし114のうちいずれか一項の方法。
117.プロセッサと、命令を有する非一時メモリとを備えるビデオ・システム内の装置であって、前記命令は、前記プロセッサによる実行の際に、前記プロセッサに、解決策1ないし116のうちいずれか一項の方法を実施させる、装置。
118.非一時的なコンピュータ読み取り可能媒体に記憶されたコンピュータ・プログラム・プロダクトであって、解決策1ないし116のうちいずれか一項の方法を実行するためのプログラム・コードを含む、コンピュータ・プログラム・プロダクト。
本明細書に記載された、開示されたおよびその他の解決策、例、実施形態、モジュール、および機能的な動作は、デジタル電子回路において、または本明細書に開示された構造およびそれらの構造的等価物を含むコンピュータ・ソフトウェア、ファームウェア、またはハードウェアにおいて、またはそれらの一つまたは複数の組み合わせにおいて実装されることができる。開示されたおよびその他の実施形態は、一つまたは複数のコンピュータ・プログラム・プロダクト、すなわち、データ処理装置による実行のため、またはデータ処理装置の動作を制御するために、コンピュータ読み取り可能媒体上にエンコードされたコンピュータ・プログラム命令の一つまたは複数のモジュールとして実装されることができる。コンピュータ読み取り可能媒体は、機械読み取り可能な記憶デバイス、機械読み取り可能な記憶基板、メモリ装置、機械読み取り可能な伝搬信号を実現する物質の組成、またはそれらの一つまたは複数の組み合わせでありうる。用語「データ処理装置」は、たとえば、プログラム可能なプロセッサ、コンピュータ、または複数のプロセッサまたはコンピュータを含む、データを処理するためのすべての装置、デバイス、および機械を包含する。装置は、ハードウェアに加えて、問題のコンピュータ・プログラムのための実行環境を生成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、またはそれらの一つまたは複数の組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、たとえば、好適な受信器装置に送信するための情報をエンコードするために生成される機械生成された電気信号、光信号、または電磁信号である。
コンピュータ・プログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、またはコードとしても知られる)は、コンパイルされるまたはインタープリットされる言語を含む、任意の形のプログラミング言語で書くことができ、それは、スタンドアローン・プログラムとして、またはコンピューティング環境での使用に好適なモジュール、コンポーネント、サブルーチン、または他のユニットとして展開することを含め、任意の形で展開できる。コンピュータ・プログラムは、必ずしもファイルシステム内のファイルに対応するものではない。プログラムは、他のプログラムまたはデータを保持するファイルの一部分に(たとえば、マークアップ言語文書に格納される一つまたは複数のスクリプト)、問題のプログラム専用の単一のファイルに、または複数の協調させられるファイル(たとえば、一つまたは複数のモジュール、サブプログラム、またはコード部分を格納するファイル)に格納されることができる。コンピュータ・プログラムは、1つのコンピュータ上で、または1つのサイトに位置するか、または複数のサイトに分散され、通信ネットワークによって相互接続される複数のコンピュータ上で実行されるように展開されることができる。
本稿に記載されるプロセスおよび論理フローは、一つまたは複数のコンピュータ・プログラムを実行する一つまたは複数のプログラム可能なプロセッサによって実行されて、入力データに対して作用し、出力を生成することによって機能を実行することができる。プロセスおよび論理フローは、特殊目的の論理回路、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることもでき、装置もそのようなものとして実装されることができる。
コンピュータ・プログラムの実行に好適なプロセッサは、たとえば、汎用および専用マイクロプロセッサの両方、および任意の種類のデジタル・コンピュータの任意の一つまたは複数のプロセッサを含む。一般に、プロセッサは、読み出し専用メモリまたはランダムアクセスメモリまたはその両方から命令およびデータを受領する。コンピュータの必須の要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための一つまたは複数のメモリデバイスである。一般に、コンピュータはまた、データを記憶するための一つまたは複数の大容量記憶装置、たとえば、磁気ディスク、磁気光ディスク、または光ディスクをも含む、またはそれらからデータを受領したり、またはそれにデータを転送したり、またはその両方をしたりするよう、動作上結合される。しかしながら、コンピュータは、そのような装置を有する必要はない。コンピュータ・プログラム命令およびデータを記憶するのに好適なコンピュータ読み取り可能媒体は、あらゆる形の不揮発性メモリ、媒体およびメモリデバイスを含み、たとえば、半導体メモリデバイス、たとえばEPROM、EEPROM、およびフラッシュメモリデバイス;磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク;光磁気ディスク;ならびにCD-ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足されるか、またはそれに組み込まれることができる。
この特許文献は多くの個別的事項を含んでいるが、これらは、いずれかの主題の範囲または特許請求されうるものの範囲に対する限定として解釈されるべきではなく、むしろ特定の技法の特定の実施形態に特有でありうる特徴の記述と解釈されるべきである。この特許文献において別個の実施形態の文脈で記載されているある種の特徴は、単一の実施形態において組み合わせて実施されることもできる。逆に、単一の実施形態の文脈において記載されるさまざまな特徴が、複数の実施形態において別個に、または任意の好適なサブコンビネーションにおいて実施されることもできる。さらに、特徴は、ある種の組み合わせにおいて作用するものとして上述され、さらには当初はそのようなものとして請求項に記載されることがあるが、請求項に記載された組み合わせからの一つまたは複数の特徴が、場合によっては、組み合わせから削除されてもよく、請求項に記載された組み合わせは、サブコンビネーションまたはサブコンビネーションの変形に向けられてもよい。
同様に、図面には特定の順序で動作が示されているが、これは、所望の結果を達成するために、そのような動作が示されている特定の順序で、あるいは逐次順に実行されること、あるいはすべての示されている動作が実行されることを要求すると解釈されるべきではない。さらに、この特許文献に記載されている実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とするものとして理解されるべきではない。
少数の実装および例のみが記述されており、この特許文献に記載され、説明されている内容に基づいて、他の実装、向上および変形がなされてもよい。

Claims (18)

  1. ビデオ・データを処理する方法であって:
    ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換のために、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、前記予測モードでは、再構成されたサンプルは代表的な色値の集合によって表現され、代表的な色値の前記集合は、前記ビットストリームに含まれる1)パレット予測子、2)エスケープされたサンプル、または3)パレット情報のうちの少なくとも1つを含む、段階と;
    少なくとも前記予測モードに基づいて前記変換を実行する段階とを含み、
    前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数である、
    方法。
  2. K=5である、請求項1に記載の方法。
  3. 前記エスケープされたサンプルは、クリップ関数と、前記エスケープされたサンプルの前記量子化された値とに基づいて再構成される、請求項1または2に記載の方法。
  4. 再構成されたエスケープ・サンプルが、Clip3(0,(1<<BitDepth)-1,tmpVal)に基づいて決定され、
    tmpValは、m<<(qP/6)+32)>>6に基づいて決定され、
    qPは量子化パラメータを指定し、
    mは前記エスケープされたサンプルの前記量子化された値に基づいて決定される、
    請求項3に記載の方法。
  5. 前記qPは、Max(QpPrimeTsMin,Qp'Y)に基づいて決定され、
    QpPrimeTsMinは、変換スキップ・モードのための最小の許容される量子化パラメータを表し、
    Qp'Yは、ルーマ量子化パラメータを表す、
    請求項4に記載の方法。
  6. QpPrimeTsMinは6*n+4として定義され、ここで、nは前記ビットストリームに含まれる第2の構文要素の値である、請求項5に記載の方法。
  7. 前記第2の構文要素は前記ビットストリームのシーケンス・レベルで含まれる、請求項6に記載の方法。
  8. 現在のビデオ・ブロックはルーマ・ブロックであり、
    パレット予測テーブルから導出される一つまたは複数のパレット予測子を含む現在のパレットが現在のビデオ・ブロックについて構築され、前記変換はさらに該現在のパレットに基づいて実行され、
    現在のビデオ・ブロックにローカル・デュアル・ツリー・コーディングが適用されるとの決定がなされ、
    前記決定に基づいて、前記パレット予測テーブルは現在のパレットに従って修正され、前記パレット予測テーブルを修正することはリセット・プロセスを含む、
    請求項1ないし7のうちいずれか一項に記載の方法。
  9. 前記ローカル・デュアル・ツリー・コーディングはクロマ親ブロックのパーティション分割を無効にし、前記クロマ親ブロックのサイズに基づいて対応するルーマ親ブロックのパーティション分割を有効にし、
    前記ルーマ親ブロックは、再帰的なパーティション操作を含むルーマ・パーティション方式に基づいてルーマ・コーディング・ツリー・ブロックから生成され、前記クロマ親ブロックは、前記ルーマ・パーティション方式と同じ再帰的なパーティション操作を有するクロマ・パーティション方式に基づいてクロマ・コーディング・ツリー・ブロックから生成される、
    請求項8に記載の方法。
  10. 前記リセット・プロセスは、前記パレット予測テーブルのエントリーを固定値にリセットすることを含む、請求項8に記載の方法。
  11. 前記エスケープされたサンプルを導出するために使用される量子化パラメータが現在のビデオ・ブロックについて決定され、前記変換はさらに少なくとも該量子化パラメータに基づいて実行され、
    現在のビデオ・ブロックがクロマ・ブロックであるときは、前記量子化パラメータは、現在のビデオ・ブロックに対応するルーマ・ビデオ・ブロックのルーマ量子化パラメータに対してマッピング操作を実行することによって得られる変数から導出される、
    請求項1ないし10のうちいずれか一項に記載の方法。
  12. 前記量子化パラメータは、前記変数およびクリップ関数に基づいて導出される、請求項11に記載の方法。
  13. 前記最小の許容される量子化パラメータは、前記ビットストリームにおけるシーケンスパラメータセットにおいて示される、請求項5に記載の方法。
  14. 前記変換は、現在のビデオ・ブロックを前記ビットストリームにエンコードすることを含む、請求項1ないし13のうちいずれか一項に記載の方法。
  15. 前記変換は、現在のビデオ・ブロックを前記ビットストリームからデコードすることを含む、請求項1ないし13のうちいずれか一項に記載の方法。
  16. プロセッサおよび命令を有する非一時的なメモリを有する、ビデオ・データを処理する装置であって、前記命令は、前記プロセッサによって実行されると、前記プロセッサに:
    ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換のために、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、前記予測モードでは、再構成されたサンプルは代表的な色値の集合によって表現され、代表的な色値の前記集合は、前記ビットストリームに含まれる1)パレット予測子、2)エスケープされたサンプル、または3)パレット情報のうちの少なくとも1つを含む、段階と;
    少なくとも前記予測モードに基づいて前記変換を実行する段階とを実行させるものであり、
    前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数である、
    装置。
  17. 命令を記憶している非一時的なコンピュータ読み取り可能な記憶媒体であって、前記命令は、プロセッサに:
    ビデオの現在のビデオ・ブロックと、該ビデオのビットストリームとの間の変換について、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、前記予測モードでは、再構成されたサンプルが代表的な色値の集合によって表現され、代表的な色値の前記集合は、前記ビットストリームに含まれる1)パレット予測子、2)エスケープされたサンプル、または3)パレット情報のうちの少なくとも1つを含む、段階と;
    少なくとも前記予測モードに基づいて前記変換を実行する段階とを実行させるものであり、
    前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数である、
    記憶媒体。
  18. ビデオのビットストリームを記憶する方法であって、前記方法は:
    ビデオの現在のビデオ・ブロックについて、現在のビデオ・ブロックにある予測モードが適用されることを決定する段階であって、前記予測モードでは、再構成されたサンプルは代表的な色値の集合によって表現され、代表的な色値の前記集合は、前記ビットストリームに含まれる1)パレット予測子、2)エスケープされたサンプル、または3)パレット情報のうちの少なくとも1つを含む、段階と;
    少なくとも前記予測モードに基づいて前記ビットストリームを生成する段階と;
    前記ビットストリームを非一時的なコンピュータ可読記録媒体に記憶する段階とを含み、
    前記エスケープされたサンプルの量子化された値を指定する第1の構文要素が前記ビットストリームに含まれ、前記第1の構文要素のバイナリ化は、次数Kの指数ゴロム(EG)符号を使用し、Kは、3と等しくない負でない整数である、
    方法。
JP2023206688A 2019-08-15 2023-12-07 パレット・エスケープ・シンボルのためのエントロピーコーディング Pending JP2024023581A (ja)

Applications Claiming Priority (16)

Application Number Priority Date Filing Date Title
CNPCT/CN2019/100850 2019-08-15
CN2019100850 2019-08-15
CN2019106700 2019-09-19
CNPCT/CN2019/106700 2019-09-19
CNPCT/CN2019/107494 2019-09-24
CN2019107494 2019-09-24
CN2019108736 2019-09-27
CNPCT/CN2019/108736 2019-09-27
CN2019109793 2019-10-01
CNPCT/CN2019/109793 2019-10-01
CNPCT/CN2019/113931 2019-10-29
CN2019113931 2019-10-29
CNPCT/CN2020/071221 2020-01-09
CN2020071221 2020-01-09
PCT/US2020/046581 WO2021030788A1 (en) 2019-08-15 2020-08-15 Entropy coding for palette escape symbol
JP2022509093A JP2022544413A (ja) 2019-08-15 2020-08-15 パレット・エスケープ・シンボルのためのエントロピーコーディング

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2022509093A Division JP2022544413A (ja) 2019-08-15 2020-08-15 パレット・エスケープ・シンボルのためのエントロピーコーディング

Publications (1)

Publication Number Publication Date
JP2024023581A true JP2024023581A (ja) 2024-02-21

Family

ID=74570808

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2022509093A Pending JP2022544413A (ja) 2019-08-15 2020-08-15 パレット・エスケープ・シンボルのためのエントロピーコーディング
JP2023206688A Pending JP2024023581A (ja) 2019-08-15 2023-12-07 パレット・エスケープ・シンボルのためのエントロピーコーディング

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2022509093A Pending JP2022544413A (ja) 2019-08-15 2020-08-15 パレット・エスケープ・シンボルのためのエントロピーコーディング

Country Status (6)

Country Link
US (3) US11503344B2 (ja)
EP (1) EP4000263A4 (ja)
JP (2) JP2022544413A (ja)
KR (1) KR20220044279A (ja)
CN (2) CN117395420A (ja)
WO (1) WO2021030788A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015131330A1 (en) * 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Encoding strategies for adaptive switching of color spaces, color sampling rates and/or bit depths
JP7494289B2 (ja) 2019-08-15 2024-06-03 バイトダンス インコーポレイテッド 異なるパーティション構造をもつパレット・モード
MX2022002085A (es) 2019-08-22 2022-03-17 Lg Electronics Inc Metodo de decodificacion de imagen y dispositivo para el mismo.
US20220295105A1 (en) * 2019-08-29 2022-09-15 Lg Electronics Inc. Image or video coding based on escape binarization in palette mode
CN115714866A (zh) * 2019-11-01 2023-02-24 北京达佳互联信息技术有限公司 残差和系数编解码的方法和装置
MX2022012020A (es) * 2020-03-27 2022-10-21 Beijing Dajia Internet Information Tech Co Ltd Metodos y aparatos de codificacion de video que utiliza modo paleta.
US20230328244A1 (en) * 2022-04-12 2023-10-12 Qualcomm Incorporated Flexible activation of multiple transform selection for inter-coding in video coding

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008129855A1 (ja) 2007-04-11 2008-10-30 Panasonic Corporation 画像データ復号化装置、画像データ復号化方法
KR101391661B1 (ko) 2010-05-12 2014-05-07 니폰덴신뎅와 가부시키가이샤 동화상 부호화 제어 방법, 동화상 부호화 장치 및 동화상 부호화 프로그램
CN103004194B (zh) 2010-05-19 2016-08-17 Sk电信有限公司 图像编码/解码设备和方法
US20130272390A1 (en) 2012-04-16 2013-10-17 Qualcomm Incorporated Uniform granularity for quantization matrix in video coding
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US9426466B2 (en) 2012-06-22 2016-08-23 Qualcomm Incorporated Transform skip mode
US9554146B2 (en) 2012-09-21 2017-01-24 Qualcomm Incorporated Indication and activation of parameter sets for video coding
US9805442B2 (en) 2012-10-03 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Fine-grained bit-rate control
GB2513110A (en) 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
KR102027027B1 (ko) 2013-10-07 2019-09-30 브이아이디 스케일, 인크. 다계층 비디오 코딩을 위해 조합된 확장성 프로세싱
WO2015103496A2 (en) 2014-01-02 2015-07-09 Vid Scale, Inc. Two-demensional palette coding for screen content coding
KR102268090B1 (ko) 2014-03-14 2021-06-23 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US9681135B2 (en) 2014-03-14 2017-06-13 Hfi Innovation Inc. Method for palette table initialization and management
US10091512B2 (en) 2014-05-23 2018-10-02 Futurewei Technologies, Inc. Advanced screen content coding with improved palette table and index map coding methods
CN106416257B (zh) * 2014-05-23 2019-05-10 寰发股份有限公司 调色板大小发信和有条件的调色板例外标志发信的方法
US10136141B2 (en) 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
US9900617B2 (en) 2014-06-20 2018-02-20 Qualcomm Incorporated Single color palette mode in video coding
EP3202150B1 (en) 2014-09-30 2021-07-21 Microsoft Technology Licensing, LLC Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US20160100177A1 (en) * 2014-10-06 2016-04-07 Qualcomm Incorporated Non-uniform exponential-golomb codes for palette mode coding
JP2017535169A (ja) 2014-10-06 2017-11-24 ヴィド スケール インコーポレイテッド スクリーンコンテンツコード化のための改善されたパレットコード化
CN105960802B (zh) 2014-10-08 2018-02-06 微软技术许可有限责任公司 切换色彩空间时对编码和解码的调整
KR102150979B1 (ko) 2014-12-19 2020-09-03 에이치에프아이 이노베이션 인크. 비디오 및 이미지 코딩에서의 비-444 색채 포맷을 위한 팔레트 기반 예측의 방법
WO2016115343A2 (en) 2015-01-14 2016-07-21 Vid Scale, Inc. Palette coding for non-4:4:4 screen content video
JP2018510539A (ja) 2015-01-29 2018-04-12 ヴィド スケール インコーポレイテッド パレット符号化モードのためのエスケープカラー符号化
CN107431817B (zh) 2015-01-29 2020-03-24 Vid拓展公司 用于调色板译码的方法及装置
US20160234498A1 (en) 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
WO2016150343A1 (en) 2015-03-20 2016-09-29 Mediatek Singapore Pte. Ltd. Methods of palette coding with inter-prediction in video coding
KR102060871B1 (ko) 2015-04-08 2019-12-30 에이치에프아이 이노베이션 인크. 비디오 코딩에서의 팔레트 모드 콘텍스트 코딩 및 이진화를 위한 방법
CN106664405B (zh) 2015-06-09 2020-06-09 微软技术许可有限责任公司 用调色板模式对经逸出编码的像素的稳健编码/解码
US11146788B2 (en) 2015-06-12 2021-10-12 Qualcomm Incorporated Grouping palette bypass bins for video coding
US10097842B2 (en) 2015-09-18 2018-10-09 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
PL3731527T3 (pl) 2016-05-28 2023-01-09 Hfi Innovation Inc. Sposób i urządzenie do kodowania w trybie palety dla danych kolorowego wideo
JP7164535B2 (ja) 2017-06-29 2022-11-01 ドルビー ラボラトリーズ ライセンシング コーポレイション 統合された画像再構成及び映像符号化
EP4415366A2 (en) 2017-08-03 2024-08-14 Sharp Kabushiki Kaisha Systems and methods for partitioning video blocks in an inter prediction slice of video data
US20190238845A1 (en) 2018-01-26 2019-08-01 Qualcomm Incorporated Adaptive loop filtering on deblocking filter results in video coding
US20190246122A1 (en) 2018-02-08 2019-08-08 Qualcomm Incorporated Palette coding for video coding
EP3831061A4 (en) 2018-08-16 2022-06-15 HFI Innovation Inc. METHODS AND APPARATUS FOR REPORTING QUANTIFICATION PARAMETERS IN A VIDEO PROCESSING SYSTEM
US11025905B2 (en) 2018-09-14 2021-06-01 Tencent America LLC Method and device for decoding with palette mode
CN113366833A (zh) 2019-02-01 2021-09-07 北京字节跳动网络技术有限公司 对环路整形的限制
US11277611B2 (en) 2019-07-24 2022-03-15 Qualcomm Incorporated Delta quantization parameter (QP) signaling in palette mode
US11206413B2 (en) 2019-08-13 2021-12-21 Qualcomm Incorporated Palette predictor updates for local dual trees
JP7494289B2 (ja) 2019-08-15 2024-06-03 バイトダンス インコーポレイテッド 異なるパーティション構造をもつパレット・モード
CN114424545B (zh) 2019-09-19 2024-07-16 字节跳动有限公司 用于调色板模式的量化参数推导

Also Published As

Publication number Publication date
US20230051883A1 (en) 2023-02-16
EP4000263A4 (en) 2022-09-07
US11503344B2 (en) 2022-11-15
JP2022544413A (ja) 2022-10-18
US20220217408A1 (en) 2022-07-07
CN117395420A (zh) 2024-01-12
US20240056609A1 (en) 2024-02-15
US11943481B2 (en) 2024-03-26
EP4000263A1 (en) 2022-05-25
CN114930822A (zh) 2022-08-19
WO2021030788A1 (en) 2021-02-18
KR20220044279A (ko) 2022-04-07

Similar Documents

Publication Publication Date Title
JP7494289B2 (ja) 異なるパーティション構造をもつパレット・モード
US20240056609A1 (en) Entropy coding for palette escape symbol
JP7451731B2 (ja) クロマ成分のためのデブロッキングパラメータ
JP2024096202A (ja) パレット・モードのための量子化パラメータ導出
US20240040119A1 (en) Interaction of multiple partitions
JP2024014958A (ja) ローカルデュアルツリー向けのパレットモード
JP2023523638A (ja) 分割構文のためのエントロピーコーディング
CN115088192A (zh) 视频数据的基于字典的编解码

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20231211