JP2018507625A - パレットモードコード化のためのエスケープ画素をコード化すること - Google Patents

パレットモードコード化のためのエスケープ画素をコード化すること Download PDF

Info

Publication number
JP2018507625A
JP2018507625A JP2017540111A JP2017540111A JP2018507625A JP 2018507625 A JP2018507625 A JP 2018507625A JP 2017540111 A JP2017540111 A JP 2017540111A JP 2017540111 A JP2017540111 A JP 2017540111A JP 2018507625 A JP2018507625 A JP 2018507625A
Authority
JP
Japan
Prior art keywords
value
palette
block
pixel
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017540111A
Other languages
English (en)
Other versions
JP2018507625A5 (ja
Inventor
ゾウ、フェン
セレジン、バディム
カークゼウィックズ、マルタ
プ、ウェイ
ジョーシー、ラジャン・ラクスマン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2018507625A publication Critical patent/JP2018507625A/ja
Publication of JP2018507625A5 publication Critical patent/JP2018507625A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一例では、ビデオデータを復号するための機器は、ビデオデータを記憶するように構成されたメモリと、ビデオデコーダとを含み、ビデオデコーダは、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための値が0よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行うように構成される。

Description

[0001]本出願は、その全体が参照により本明細書に組み込まれる、2015年1月31日に出願された米国仮出願第62/110,519号の利益を主張する。
[0002]本開示は、ビデオコード化に関し、より詳細には、パレットモードを使用してビデオデータをコード化することに関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップ又はデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録機器、デジタルメディアプレーヤ、ビデオゲーム機器、ビデオゲームコンソール、セルラー電話又は衛星無線電話、所謂「スマートフォン」、ビデオ遠隔会議機器、ビデオストリーミング機器などを含む、広範囲にわたる機器に組み込まれ得る。デジタルビデオ機器は、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part 10,高度ビデオコード化(AVC:Advanced Video Coding)、高効率ビデオコード化(HEVC:High Efficiency Video Coding)とも呼ばれるITU-T H.265によって定義された規格及びそのような規格の拡張に記載されているビデオコード化技法などのビデオコード化技法を実装する。ビデオ機器は、そのようなビデオコード化技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号及び/又は記憶し得る。
[0004]ビデオコード化技法は、ビデオシーケンスに固有の冗長性を低減又は除去するための空間(イントラピクチャ)予測及び/又は時間(インターピクチャ)予測を含む。ブロックベースのビデオコード化では、ビデオスライス(例えば、ビデオピクチャ又はビデオピクチャの一部分)が、コード化ツリー単位(CTU:coding tree unit)、コード化単位(CU:coding unit)及び/又はコード化ノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(P又はB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測又は他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]空間予測又は時間予測は、コード化されるべきブロックのための予測ブロックを生じる。残差データは、コード化されるべき元のブロックと予測ブロックとの間の画素差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルと、コード化ブロックと予測ブロックとの間の差分を示す残差データとに従って符号化される。イントラコード化ブロックは、イントラコード化モードと残差データとに従って符号化される。更なる圧縮のために、残差データは、画素領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。被量子化変換係数は、最初は2次元アレイで構成され、変換係数の1次元ベクトルを生成するために走査され得、なお一層の圧縮を達成するために、エントロピーコード化が適用され得る。
[0006]概して、本開示は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための値を量子化することに関係する技法について説明する。特に、幾つかの事例では、従来のエスケープモードコード化技法は、2進値が負値によって右シフトされるべきである幾つかの状況になった。負値によるビット単位シフト演算は、概して、エラーを生じ得る定義されていない演算である。本開示の技法は、そのようなエラーが生じるとき、それらを補正するために使用され得る。特に、本開示の技法は、シフト値を負から正に変更し、ビット単位右シフト演算の代わりにビット単位左シフト演算を実行するために使用され得る。
[0007]一例では、方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための元の値が0よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む。
[0008]別の例では、ビデオデータを復号するための機器は、ビデオデータを記憶するように構成されたメモリと、ビデオデコーダとを含み、ビデオデコーダは、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための値が0よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行うように構成される。
[0009]別の例では、ビデオデータを復号するための機器は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定するための手段と、右シフトパラメータのための値が0よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定するための手段と、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化するための手段とを含む。
[0010]別の例では、コンピュータ可読記憶媒体は、実行されたとき、プログラマブルプロセッサに、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための値が0よりも小さいことに基づいて、左シフトパラメータのための値を、右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行わせる命令を用いて符号化される。
[0011]別の例では、ビデオデータを符号化する方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が0よりも小さいと決定することと、左シフトパラメータのための値が0よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを含む。
[0012]1つ又は複数の例の詳細が添付の図面及び以下の説明に記載される。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになろう。
[0013]パレットモードコード化ブロック中のエスケープ画素をコード化するための本開示の技法を利用し得る例示的なビデオ符号化及び復号システムを示すブロック図。 [0014]本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を符号化するための技法を実装し得るビデオエンコーダの一例を示すブロック図。 [0015]本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を復号するための技法を実装し得るビデオデコーダの一例を示すブロック図。 [0016]本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャート。 [0017]本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャート。 [0018]本開示の技法による、パレット復号ユニットがビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化し得る例示的な技法を示すフローチャート。
[0019]概して、本出願は、ビデオコンテンツ、特にパレットモードコード化を用いたスクリーンコンテンツのコード化をサポートするための技法について説明する。より詳細には、これらの技法は、(「パレットコード化」とも呼ばれる)パレットモードコード化のためのエスケープ画素コード化に関する。
[0020]旧来のビデオコード化では、画像は、連続トーンであり空間的に滑らかであると仮定される。これらの仮定に基づいて、ブロックベース変換、フィルタ処理などの様々なツールが開発されており、そのようなツールは、自然コンテンツビデオに対して良好な性能を示している。しかしながら、リモートデスクトップ、協調作業及びワイヤレス表示器のような適用例では、コンピュータ生成スクリーンコンテンツ(例えば、テキスト又はコンピュータグラフィックスなど)が、圧縮されるべき主要なコンテンツであり得る。このタイプのコンテンツは、離散トーンを有し、鋭いラインと高コントラストオブジェクト境界とを特徴とする傾向がある。連続トーン及び滑らかさの仮定はスクリーンコンテンツにもはや適用されないことがあり、従って、旧来のビデオコード化技法は、スクリーンコンテンツを含むビデオデータを圧縮するための効率的な方法でないことがある。
[0021]スクリーンコンテンツビデオの特性に基づいて、パレットコード化がスクリーンコンテンツコード化(SCC)効率を改善するために導入され、Guoら、「Palette Mode for Screen Content Coding」、ITU-T SG13 WP3及びISO/IEC JTC1/SC29/WG11のJCT-VC、第13回会議、JCTVC-M0323、仁川、韓国、2013年4月18日〜26日において最初に提案された。詳細には、パレットコード化は、SCCでは1つのコード化単位(CU)内の色が通常数個のピーク値に集中するということに基づいて、反復的な画素値を圧縮するために、ルックアップテーブル、即ち、カラーパレットを導入する。特定のCUのためのパレットを仮定すれば、CU内の画素はパレットインデックスにマッピングされる。第2の段階では、インデックスブロックの繰返しパターンを効果的に圧縮するために、有効コピーフロムレフトランレングス方法が提案されている。後で、Guoら、「Non-RCE3: Modified Palette Mode for Screen Content Coding」、ITU-T SG16 WP3及びISO/IEC JTC1/SC29/WG11のJCT-VC、JCTVC-N0249、第14回会議、ウィーン、オーストリア、2013年7月25日〜8月2日において、パレットインデックスコード化モードが、ランレングスコード化を用いたコピーフロムレフトとコピーフロムアバブの両方に対して一般化された。スクリーンコンテンツの視覚的品質に莫大な悪影響を及ぼす、シャープエッジを不鮮明にすることを回避するために、パレットコード化のために変換プロセスが呼び出されないことに留意されたい。
[0022]パレットは、{インデックス,画素値}ペアを記憶するデータ構造である。ビデオエンコーダは、例えば、現在CU中の画素値のヒストグラムに基づいてパレットを決定し得る。例えば、ヒストグラム中のピーク値がパレットに追加され得、低頻度画素値がパレット中に含まれる必要はない。パレットサイズは、0から、31に等しいmax_palette_sizeまでの範囲にあるように制限され得る。
[0023]SCCの場合、1つのスライス内のCUブロックが多くの優勢色を共有し得る。従って、(CU復号順序での)前のパレットモードCUのパレットを参照として使用して、現在ブロックのパレットを予測することが可能である。詳細には、参照パレット中の画素値が現在パレットによって再利用されるか否かを示すために、0〜1のバイナリベクトルが信号伝達され得る。一例として、以下の表1及び表2では、参照パレットが6つの項目を有すると仮定される。v0、v2、v3、v4及びv5が現在パレット中で再利用され、v1が再利用されないことを示すベクトル(1,0,1,1,1,1)が、現在パレットを用いて信号伝達される。現在パレットが参照パレットから予測可能でない色を含んでいる場合、予測されない色の数がコード化され、次いで、これらの画素値(例えば、ルーマ値又はクロマ値)は直接信号伝達される。例えば、表1及び表2では、u0及びu1がビットストリームに直接信号伝達される。
Figure 2018507625
Figure 2018507625
[0024]パレットモードを用いてコード化されるブロックの場合、パレットは、前にパレットコード化されたブロックのパレットエントリから予測され得、新しいエントリとして明示的に信号伝達され得るか、又は前にコード化されたブロックのパレットが完全に再利用され得る。後者の場合はパレット共有と呼ばれ、前のブロックのパレット全体が変更なしに再利用されることを示すために、フラグpalette_share_flagが信号伝達される。参照パレット及び現在パレットの例が、上記の表1及び表2中に示されている。特に、表1は例示的な参照パレットを示し、表2は表1の参照パレットから予測され得る例示的な現在パレットを示す。
[0025]現在のSCM3.0参照ソフトウェアでは、規範的観点からのパレットコード化の2つの主要な態様は、パレットのコード化と、パレットモードでコード化されているブロック中の各サンプルのためのパレットインデックスのコード化とである。パレットインデックスのコード化は、2つの主要なモード、「インデックス」モード及び「コピーアバブ」モードを使用して実行される。これは、palette_modeフラグをコード化することによって信号伝達される。「インデックス」モードはまた、エスケープサンプル、即ち、パレットに属さないサンプルを示すために使用される。現在の設計では、「コピーアバブ」モードは、パレットブロックの最初の行のために可能でない。更に、「コピーアバブ」モードは、別の「コピーアバブ」モードに後続しないことがある。これらの場合、「インデックス」モードが推論される。
[0026]詳細には、パレットモードの場合、CU中の画素が、以下のように水平/垂直スネーク走査順序で符号化される。
1.「インデックス」モード:このモードでは、1つのパレットインデックスが最初に信号伝達される。インデックスがパレットのサイズに等しい場合、これは、サンプルがエスケープサンプルであることを示す。この場合、各構成要素(例えば、ルーマ及びクロマ)のためのサンプル値又は被量子化サンプル値が信号伝達される。例えば、パレットサイズが4である場合、非エスケープサンプルについて、パレットインデックスは範囲[0,3]中にある。この場合、4のインデックス値がエスケープサンプルを示す。インデックスが非エスケープサンプルを示す場合、ランレングスを示す非負値n-1によって、同じインデックスを共有する走査順序での後続のサンプルの数を指定するランレングスが信号伝達され、これは、現在画素を含む後続のn個の画素が、最初に信号伝達された画素インデックスと同じ画素インデックスを有することを意味する。
2.「コピーフロムアバブ」ランモード(CA):このモードでは、現在画素を含む後続のm個の画素について、それぞれ、パレットインデックスがすぐ上のそれらの隣接と同じであることを示すために、非負ランレングス値m-1のみが送信される。このモードは、パレットインデックスがコピーフロムアバブランモード内で異なり得るという意味で、「インデックス」モードとは異なることに留意されたい。
[0027]現在の設計では、パレットモードはCUレベルで信号伝達されるが、それをPUレベルで信号伝達することが可能であり得る。現在ブロック中のエスケープサンプルの存在を示すために、フラグpalette_esc_val_present_flagも信号伝達される。
[0028]パレットモードでは、ブロック中の画素走査は、2つのタイプ、即ち、垂直トラバース又は水平トラバース(スネーク状)走査であり得る。ブロック中で使用される走査パターンは、ブロック単位で信号伝達されるフラグpalette_transpose_flagに従って導出される。
[0029]パレットインデックスコード化中に、パレットインデックス調整プロセスが適用され得る。ブロック中の第2の画素から開始すると、パレットインデックス調整プロセスは、前にコード化された画素のパレットモードを検査することからなる。最初に、パレットサイズが1だけ低減され、左モードがランモードに等しい場合、コード化されるべきパレットインデックスは、インデックスが左パレットインデックスよりも大きい場合、1だけ低減されるか、又は左モードがコピーモードである場合、コード化されるべきパレットインデックスは、インデックスが上のパレットインデックスよりも大きい場合、1だけ低減される。説明が符号化側から与えられ、対応するプロセスがデコーダ側において同様に逆順で実行され得る。
[0030]SCM-3.0では、以下のシンタックス最適化が採用された。
・パレットサイズが0である場合、全てのエスケープ画素が導出され、エスケープ存在フラグ、パレットモード、パレットインデックス、パレットラン及びパレット転置フラグは信号伝達されず、エスケープ存在フラグが1に等しいと推論され、パレットモードがINDEXモードに等しいと推論され、パレットインデックスがESCAPEに等しく設定され、パレットラン値がブロックサイズに等しく設定され、パレット転置フラグが0に設定される。
・パレットサイズが1であり、エスケープ画素がブロック中で使用されない場合、パレットモード、パレットラン又はパレット転置フラグは信号伝達されず、パレットモードがINDEXモードに等しく導出され、パレットインデックスが0に設定され、パレットラン値がブロックサイズに等しく設定され、パレット転置フラグが0に設定される。
[0031]本開示は、スクリーン生成コンテンツコード化に特に好適であり得る、パレットベースコード化に関係する技法について説明する。例えば、ビデオデータの特定のエリアが比較的少数の色を有すると仮定すると、ビデオコーダ(例えば、ビデオエンコーダ又はビデオデコーダ)は、特定のエリアのビデオデータを表すための所謂「パレット」を形成し得る。パレットは、特定のエリア(例えば、所与のブロック)のビデオデータを表す色又は画素値のテーブルとして表され得る。例えば、パレットは、所与のブロック中の最も支配的な画素値を含み得る。幾つかの場合には、最も支配的な画素値は、ブロック内で最も頻繁に生じる1つ又は複数の画素値を含み得る。更に、幾つかの場合には、ビデオコーダが、画素値がブロック中の最も支配的な画素値のうちの1つとして含まれるべきであるかどうかを決定するためのしきい値を適用し得る。パレットベースコード化の様々な態様によれば、ビデオコーダは、ビデオデータの現在ブロックのための実際の画素値又はそれらの残差をコード化するのではなく、現在ブロックの画素値のうちの1つ又は複数を示すインデックス値をコード化し得る。パレットベースコード化のコンテキストにおいて、インデックス値は、現在ブロックの個々の画素値を表すために使用される、パレット中のそれぞれのエントリを示す。
[0032]例えば、ビデオエンコーダは、ブロックのためのパレットを決定すること(例えば、パレットを明示的にコード化すること、パレットを予測すること、又はそれらの組合せ)と、画素値のうちの1つ又は複数を表すためのパレット中のエントリの位置を特定することと、ブロックの画素値を表すために使用されるパレット中のエントリを示すインデックス値を用いてブロックを符号化することとによって、ビデオデータのブロックを符号化し得る。幾つかの例では、ビデオエンコーダは、符号化ビットストリーム中でパレット及び/又はインデックス値を信号伝達し得る。次に、ビデオデコーダは、符号化ビットストリームから、ブロックのためのパレット及びブロックの個々の画素のためのインデックス値を取得し得る。ビデオデコーダは、ブロックの様々な画素値を再構成するために、画素のインデックス値をパレットのエントリに関係付け得る。
[0033]より詳細には、パレットモードを使用してコード化されるブロックの画素は、画素がパレットへの参照を使用してコード化される「インデックス」モード、又は画素が上隣接画素への参照を使用してコード化されるコピーフロムアバブモードを使用してコード化され得る。第3のオプションは、画素をエスケープ画素としてコード化することである。この場合、画素の値(又は画素のための被量子化値)が直接信号伝達される。
[0034]本開示の時点での現在のSCM3.0では、パレットモードにおいて被量子化エスケープ画素を再構成するために逆量子化が使用される。詳細には、エスケープ画素を再構成するために以下の手順が使用される。
1.量子化パラメータqPが、以下のように、異なる色成分インデックス(cIdx)値に従って導出される。
qP = ( cIdx = = 0 ) ? Qp′Y : ( ( cIdx = = 1 ) ? Qp′Cb : Qp′Cr )
2.量子化比qPper及び量子化剰余qPremが以下のように導出される。
qPper = qP /6
qPrem = qP%6
3.右シフトパラメータinvQuantRightShift及びオフセットパラメータaddOffsetが以下のように導出した。
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
4.被逆量子化エスケープ画素deQuantEspValueが、以下のように、エントロピー復号されたEspValueに基づいて導出される
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
5.deQuantEspValueは、更に、以下のように、深度範囲内にあるように変更される
deQuantEspValue = clip3 (0, 2bitDepth-1, deQuantEspValue)
[0035]SCM3.0の現在の設計において遭遇され得る1つの問題は、qPperが6よりも大きいとき、invQuantRightShiftが負であることである。負数による右シフトの定義はない。従って、このシナリオは、異なるデコーダのための逆量子化の異なる解釈を生じ得、これは、実際的設計にとって望ましくない。
[0036]本開示の技法によれば、ビデオコーダ(例えば、ビデオエンコーダ及びビデオデコーダ)は、上記で説明された問題を回避するように構成され得る。特に、ビデオコーダは、量子化パラメータ(qP)値の全範囲に対処するように構成され得る。例えば、qPは、両端値を含む[0,1,...,51]の範囲内にあり得る。また、パレットモードのためのエスケープ画素を再構成するために、異なる逆量子化プロセスが使用され得る。これら及び他の技法は以下で更に詳細に説明される。
[0037]図1は、パレットモードコード化ブロック中のエスケープ画素をコード化するための本開示の技法を利用し得る例示的なビデオ符号化及び復号システム10を示すブロック図である。図1に示されているように、システム10は、宛先機器14によって後で復号されるべき符号化ビデオデータを与える発信源機器12を含む。特に、発信源機器12は、コンピュータ可読媒体16を介してビデオデータを宛先機器14に与える。発信源機器12及び宛先機器14は、デスクトップコンピュータ、ノートブック(即ち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、所謂「スマート」フォンなどの電話ハンドセット、所謂「スマート」パッド、テレビジョン、カメラ、表示装置、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミング機器などを含む、広範囲にわたる機器のいずれかを備え得る。幾つかの場合には、発信源機器12及び宛先機器14は、ワイヤレス通信のために装備され得る。
[0038]宛先機器14は、コンピュータ可読媒体16を介して復号されるべき符号化ビデオデータを受信し得る。コンピュータ可読媒体16は、発信源機器12から宛先機器14に符号化ビデオデータを移動させることが可能な任意のタイプの媒体又は機器を備え得る。一例では、コンピュータ可読媒体16は、発信源機器12が、符号化ビデオデータを宛先機器14にリアルタイムで直接送信することを可能にするための通信媒体を備え得る。符号化ビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先機器14に送信され得る。通信媒体は、無線周波数(RF)スペクトル又は1つ又は複数の物理伝送線路など、任意のワイヤレス又はワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク又はインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信媒体は、発信源機器12から宛先機器14への通信を可能にするために有用であり得るルータ、スイッチ、基地局又は任意の他の機器を含み得る。
[0039]幾つかの例では、符号化データは、出力インターフェース22から記憶装置に出力され得る。同様に、符号化データは、入力インターフェースによって記憶装置からアクセスされ得る。記憶装置は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性又は不揮発性メモリ若しくは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散された、又はローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。更なる一例では、記憶装置は、発信源機器12によって生成された符号化されたビデオを記憶し得るファイルサーバ又は別の中間記憶装置に対応し得る。宛先機器14は、ストリーミング又はダウンロードを介して、記憶装置から記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶することと、その符号化ビデオデータを宛先機器14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続記憶(NAS)装置又はローカルディスクドライブがある。宛先機器14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi-Fi(登録商標)接続)、ワイヤード接続(例えば、DSL、ケーブルモデムなど)、又はその両方の組合せを含み得る。記憶装置からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、又はそれらの組合せであり得る。
[0040]本開示の技法は、必ずしもワイヤレス適用例又は設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、又は他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコード化に適用され得る。幾つかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング及び/又はビデオテレフォニーなどの適用例をサポートするために、一方向又は双方向のビデオ送信をサポートするように構成され得る。
[0041]図1の例では、発信源機器12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。宛先機器14は、入力インターフェース28と、ビデオデコーダ30と、表示装置32とを含む。本開示によれば、発信源機器12のビデオエンコーダ20は、パレットモードコード化ブロック中のエスケープ画素をコード化するための技法を適用するように構成され得る。他の例では、発信源機器及び宛先機器は他の構成要素又は構成を含み得る。例えば、発信源機器12は、外部カメラなど、外部ビデオソース18からビデオデータを受信し得る。同様に、宛先機器14は、内蔵表示装置を含むのではなく、外部表示装置とインターフェースし得る。
[0042]図1の図示のシステム10は一例にすぎない。パレットモードにおいてエスケープ画素をコード化するための技法は、任意のデジタルビデオ符号化及び/又は復号機器によって実行され得る。概して、本開示の技法はビデオ符号化機器によって実行されるが、本技法は、一般に「コーデック」と呼ばれるビデオエンコーダ/デコーダによっても実行され得る。その上、本開示の技法はビデオプリプロセッサによっても実行され得る。発信源機器12及び宛先機器14は、発信源機器12が宛先機器14に送信するためのコード化ビデオデータを生成するような、コード化機器の例にすぎない。幾つかの例では、機器12、14は、機器12、14の各々がビデオ符号化構成要素とビデオ復号構成要素とを含むように、実質的に対称的に動作し得る。従って、システム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング又はビデオテレフォニーのための、ビデオ機器12とビデオ機器14との間の一方向又は双方向のビデオ送信をサポートし得る。
[0043]発信源機器12のビデオソース18は、ビデオカメラなどの撮像装置、以前に撮られたビデオを含んでいるビデオアーカイブ及び/又はビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースを含み得る。更なる代替として、ビデオソース18は、ソースビデオとしてのコンピュータグラフィックスベースのデータ又はライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。幾つかの場合には、ビデオソース18がビデオカメラである場合、発信源機器12及び宛先機器14は、所謂カメラフォン又はビデオフォンを形成し得る。但し、上述のように、本開示で説明される技法は、概してビデオコード化に適用可能であり得、ワイヤレス及び/又はワイヤード適用例に適用され得る。各場合において、撮られたビデオ、前に撮られたビデオ又はコンピュータ生成ビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオ情報は、次いで、出力インターフェース22によってコンピュータ可読媒体16上に出力され得る。
[0044]コンピュータ可読媒体16は、ワイヤレスブロードキャスト又はワイヤードネットワーク送信などの一時媒体若しくはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu-rayディスク、又は他のコンピュータ可読媒体などの記憶媒体(即ち、非一時的記憶媒体)を含み得る。幾つかの例では、ネットワークサーバ(図示せず)は、例えば、ネットワーク送信を介して、発信源機器12から符号化ビデオデータを受信し、その符号化ビデオデータを宛先機器14に与え得る。同様に、ディスクスタンピング設備など、媒体製造設備のコンピュータ機器は、発信源機器12から符号化ビデオデータを受信し、その符号化ビデオデータを含んでいるディスクを生成し得る。従って、コンピュータ可読媒体16は、様々な例において、様々な形態の1つ又は複数のコンピュータ可読媒体を含むことが理解されよう。
[0045]宛先機器14の入力インターフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、ビデオエンコーダ20によって定義され、またビデオデコーダ30によって使用される、ブロック及び他のコード化単位の特性及び/又は処理を記述するシンタックス要素を含む、シンタックス情報を含み得る。表示装置32は、復号ビデオデータをユーザに対して表示し、陰極線管(CRT)、液晶表示器(LCD)、プラズマ表示器、有機発光ダイオード(OLED)表示器、又は別のタイプの表示装置など、様々な表示装置のいずれかを備え得る。
[0046]ビデオエンコーダ20及びビデオデコーダ30は、ITU-T H.265とも呼ばれる、高効率ビデオコード化(HEVC)規格など、ビデオコード化規格に従って動作し得る。代替的に、ビデオエンコーダ20及びビデオデコーダ30は、代替的にMPEG-4,Part10,高度ビデオコード化(AVC)と呼ばれるITU-T H.264規格など、他のプロプライエタリ規格又は業界規格、若しくはそのような規格の拡張に従って動作し得る。但し、本開示の技法は、いかなる特定のコード化規格にも限定されない。ビデオコード化規格の他の例としては、MPEG-2及びITU-T H.263がある。図1には示されていないが、幾つかの態様では、ビデオエンコーダ20及びビデオデコーダ30は、それぞれ、オーディオエンコーダ及びデコーダと統合され得、共通のデータストリーム又は別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、又は他のハードウェア及びソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0047]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、機器は、ソフトウェアのための命令を好適な非一時的コンピュータ可読媒体に記憶し、本開示の技法を実行するために1つ又は複数のプロセッサを使用してハードウェアでその命令を実行し得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも、それぞれの機器において複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
[0048]概して、ITU-T H.265に従って、ビデオピクチャが、ルーマサンプルとクロマサンプルの両方を含み得る、コード化ツリーユニット(CTU)(又は最大コード化単位(LCU))のシーケンスに分割され得る。代替的に、CTUはモノクロームデータ(即ち、ルーマサンプルのみ)を含み得る。ビットストリーム内のシンタックスデータが、画素の数に関して最大コード化単位であるCTUのサイズを定義し得る。スライスは、コード化順序で幾つかの連続するCTUを含む。ビデオピクチャは、1つ又は複数のスライスに区分され得る。各CTUは、4分木に従ってコード化単位(CU)にスプリットされ得る。概して、4分木データ構造はCUごとに1つのノードを含み、ルートノードはCTUに対応する。CUが4つのサブCUにスプリットされた場合、CUに対応するノードは4つのリーフノードを含み、リーフノードの各々はサブCUのうちの1つに対応する。
[0049]4分木データ構造の各ノードは、対応するCUのためのシンタックスデータを与え得る。例えば、4分木のノードは、そのノードに対応するCUがサブCUにスプリットされるかどうかを示すスプリットフラグを含み得る。CUのためのシンタックス要素は、再帰的に定義され得、CUがサブCUにスプリットされるかどうかに依存し得る。CUが更にスプリットされない場合、そのCUはリーフCUと呼ばれる。本開示では、元のリーフCUの明示的スプリッティングが存在しない場合でも、リーフCUの4つのサブCUはリーフCUとも呼ばれる。例えば、16×16サイズのCUが更にスプリットされない場合、その16×16CUが決してスプリットされなくても、4つの8×8サブCUはリーフCUとも呼ばれる。
[0050]CUは、CUがサイズ差異を有しないことを除いて、H.264規格のマクロブロックと同様の目的を有する。例えば、CTUは、(サブCUとも呼ばれる)4つの子ノードにスプリットされ得、各子ノードは、今度は親ノードとなり、別の4つの子ノードにスプリットされ得る。4分木のリーフノードと呼ばれる、最後のスプリットされていない子ノードは、リーフCUとも呼ばれるコード化ノードを備える。コード化ビットストリームに関連するシンタックスデータは、最大CU深さと呼ばれる、CTUがスプリットされ得る最大回数を定義し得、また、コード化ノードの最小サイズを定義し得る。それに応じて、ビットストリームは最小コード化単位(SCU:smallest coding unit)をも定義し得る。本開示では、HEVCのコンテキストにおけるCU、予測単位(PU)、又は変換単位(TU)、若しくは他の規格のコンテキストにおける同様のデータ構造(例えば、H.264/AVCにおけるマクロブロック及びそれのサブブロック)のいずれかを指すために「ブロック」という用語を使用する。
[0051]CUは、コード化ノードと、コード化ノードに関連する予測単位(PU:prediction unit)及び変換単位(TU:transform unit)とを含む。CUのサイズは、コード化ノードのサイズに対応し、概して形状が方形である。CUのサイズは、8×8画素から最大サイズ、例えば、64×64以上の画素を有するCTUのサイズまでに及び得る。各CUは、1つ又は複数のPUと、1つ又は複数のTUとを含んでいることがある。CUに関連するシンタックスデータは、例えば、CUを1つ又は複数のPUに区分することを記述し得る。区分モードは、CUが、スキップモード符号化又はダイレクトモード符号化されるか、イントラ予測モード符号化されるか、若しくはインター予測モード符号化されるかの間で異なり得る。PUは、形状が非正方形になるように区分され得る。CUに関連するシンタックスデータは、例えば、4分木に従ってCUを1つ又は複数のTUに区分することをも記述し得る。TUは、形状が正方形又は非正方形(例えば、矩形)であり得る。
[0052]HEVC規格は、CUごとに異なり得るTUに従う変換を可能にする。TUは、一般に、区分されたCTUについて定義された所与のCU内のPUのサイズに基づいてサイズ決定されるが、これは常にそうであるとは限らない。TUは、一般にPUと同じサイズであるか、又はPUよりも小さい。幾つかの例では、CUに対応する残差サンプルは、「残差4分木」(RQT:residual quad tree)として知られる4分木構造を使用して、より小さい単位に再分割され得る。RQTのリーフノードは変換単位(TU)と呼ばれることがある。TUに関連する画素差分値は、変換係数を生成するために変換され得、その変換係数は量子化され得る。
[0053]リーフCUは1つ又は複数の予測単位(PU)を含み得る。概して、PUは、対応するCUの全部又は一部分に対応する空間エリアを表し、そのPUの参照サンプルを取り出し、及び/又は生成するためのデータを含み得る。その上、PUは、予測に関係するデータを含む。例えば、PUがイントラモード符号化されるとき、PUについてのデータは、PUに対応するTUについてのイントラ予測モードを記述するデータを含み得る残差4分木(RQT)中に含まれ得る。RQTは変換ツリーと呼ばれることもある。幾つかの例では、イントラ予測モードは、RQTの代わりに、リーフCUシンタックス中で信号伝達され得る。別の例として、PUがインターモード符号化されるとき、PUは、PUのための、1つ又は複数の動きベクトルなど、動き情報を定義するデータを含み得る。PUの動きベクトルを定義するデータは、例えば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(例えば、1/4画素精度又は1/8画素精度)、動きベクトルが指す参照ピクチャ及び/又は動きベクトルの参照ピクチャリスト(例えば、リスト0又はリスト1)を記述し得る。
[0054]1つ又は複数のPUを有するリーフCUはまた、1つ又は複数の変換単位(TU)を含み得る。変換単位は、上記で説明されたように、(TU4分木構造とも呼ばれる)RQTを使用して指定され得る。例えば、スプリットフラグは、リーフCUが4つの変換単位にスプリットされるかどうかを示し得る。次いで、各変換単位は、更なるサブTUに更にスプリットされ得る。TUが更にスプリットされないとき、そのTUはリーフTUと呼ばれることがある。概して、イントラコード化の場合、リーフCUに属する全てのリーフTUは同じイントラ予測モードを共有する。即ち、概して、リーフCUの全てのTUの予測値を計算するために同じイントラ予測モードが適用される。イントラコード化では、ビデオエンコーダは、イントラ予測モードを使用して各リーフTUの残差値を、TUに対応するCUの一部と元のブロックとの間の差分として計算し得る。TUは、必ずしもPUのサイズに制限されるとは限らない。従って、TUは、PUよりも大きいことも小さいこともある。イントラコード化では、PUは、同じCUの対応するリーフTUとコロケートされ得る。幾つかの例では、リーフTUの最大サイズは、対応するリーフCUのサイズに対応し得る。
[0055]その上、リーフCUのTUはまた、残差4分木(RQT)と呼ばれる、それぞれの4分木データ構造に関連し得る。即ち、リーフCUは、リーフCUがどのようにTUに区分されるかを示す4分木を含み得る。TU4分木のルートノードは概してリーフCUに対応し、CU4分木のルートノードは概してCTU(又はLCU)に対応する。スプリットされないRQTのTUはリーフTUと呼ばれる。概して、本開示では、別段に記載されていない限り、リーフCU及びリーフTUに言及するためにそれぞれCU及びTUという用語を使用する。
[0056]ビデオシーケンスは、一般に、ランダムアクセスポイント(RAP)ピクチャで開始する、一連のビデオフレーム又はピクチャを含む。ビデオシーケンスは、ビデオシーケンスのシーケンスパラメータセット(SPS)その特性中のシンタックスデータを含み得る。ピクチャの各スライスは、それぞれのスライスのための符号化モードを記述するスライスシンタックスデータを含み得る。ビデオエンコーダ20は、一般に、ビデオデータを符号化するために個々のビデオスライス内のビデオブロックに対して動作する。ビデオブロックはCU内のコード化ノードに対応し得る。ビデオブロックは、固定サイズ又は可変サイズを有し得、指定されたコード化規格に応じてサイズが異なり得る。
[0057]一例として、予測は様々なサイズのPUについて実行され得る。特定のCUのサイズが2N×2Nであると仮定すると、イントラ予測が、2N×2N又はN×NのPUサイズに対して実行され得、インター予測が、2N×2N、2N×N、N×2N、又はN×Nの対称的なPUサイズに対して実行され得る。インター予測のための非対称区分は、2N×nU、2N×nD、nL×2N、及びnR×2NのPUサイズについても実行され得る。非対称区分では、CUの一方向は区分されないが、他の方向は25%と75%とに区分される。25%の区分に対応するCUの部分は、「n」とその後ろに付く「Up」、「Down」、「Left」又は「Right」という表示によって示される。従って、例えば、「2N×nU」は、上部の2N×0.5N PUと下部の2N×1.5N PUとで水平方向に区分された2N×2N CUを指す。
[0058]本開示では、「N×N(NxN)」及び「N×N(N by N)」は、垂直寸法及び水平寸法に関するビデオブロックの画素寸法、例えば、16×16(16x16)画素又は16×16(16 by 16)画素を指すために互換的に使用され得る。概して、16×16ブロックは、垂直方向に16画素を有し(y=16)、水平方向に16画素を有する(x=16)。同様に、N×Nブロックは、概して、垂直方向にN画素を有し、水平方向にN画素を有し、ここで、Nは非負整数値を表す。ブロック中の画素は行及び列に配列され得る。その上、ブロックは、必ずしも、水平方向において垂直方向と同じ数の画素を有する必要があるとは限らない。例えば、ブロックはN×M画素を備え得、ここで、Mは必ずしもNに等しいとは限らない。
[0059]CUのPUを使用したイントラ予測コード化又はインター予測コード化の後に、ビデオエンコーダ20は、CUのTUのための残差データを計算し得る。PUは、(画素領域とも呼ばれる)空間領域において予測画素データを生成する方法又はモードを記述するシンタックスデータを備え得、TUは、変換、例えば、残差ビデオデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、又は概念的に同様の変換の適用後に、変換領域において係数を備え得る。残差データは、符号化されていないピクチャの画素と、PUに対応する予測値との間の画素差分に対応し得る。ビデオエンコーダ20は、CUのための残差データを表す被量子化変換係数を含むようにTUを形成し得る。即ち、ビデオエンコーダ20は、(残差ブロックの形態の)残差データを計算し、変換係数のブロックを生成するために残差ブロックを変換し、次いで、被量子化変換係数を形成するために変換係数を量子化し得る。ビデオエンコーダ20は、被量子化変換係数を含むTU、又は他のシンタックス情報(例えば、TUのためのスプリッティング情報)を形成し得る。
[0060]上述のように、変換係数を生成するための任意の変換の後に、ビデオエンコーダ20は、変換係数の量子化を実行し得る。量子化は、概して、係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、更なる圧縮を行うプロセスを指す。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。例えば、量子化中にnビット値がmビット値に切り捨てられ得、ここで、nはmよりも大きい。
[0061]量子化の後に、ビデオエンコーダは、変換係数を走査し、被量子化変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、アレイの前部により高いエネルギー(従って、より低い周波数)係数を配置し、アレイの後部により低いエネルギー(従って、より高い周波数)係数を配置するように設計され得る。幾つかの例では、ビデオエンコーダ20は、エントロピー符号化され得るシリアル化ベクトルを生成するために、被量子化変換係数を走査するために予め定義された走査順序を利用し得る。他の例では、ビデオエンコーダ20は適応型走査を実行し得る。1次元ベクトルを形成するために被量子化変換係数を走査した後に、ビデオエンコーダ20は、例えば、コンテキスト適応型可変長コード化(CAVLC:context-adaptive variable length coding)、コンテキスト適応型バイナリ算術コード化(CABAC:context-adaptive binary arithmetic coding)、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コード化、又は別のエントロピー符号化方法に従って1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ20はまた、ビデオデータを復号する際にビデオデコーダ30が使用するための符号化ビデオデータに関連するシンタックス要素をエントロピー符号化し得る。
[0062]CABACを実行するために、ビデオエンコーダ20は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、例えば、シンボルの隣接値が非0であるか否かに関係し得る。CAVLCを実行するために、ビデオエンコーダ20は、送信されるべきシンボルのための可変長コードを選択し得る。VLC中のコードワードは、比較的より短いコードが優勢シンボルに対応し、より長いコードが劣勢シンボルに対応するように構成され得る。このようにして、VLCの使用は、例えば、送信されるべき各シンボルのための等長コードワードを使用することに勝るビット節約を達成し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0063]概して、ビデオデコーダ30は、符号化データを復号するためにビデオエンコーダ20によって実行されるものと、逆ではあるが、実質的に同様のプロセスを実行する。例えば、ビデオデコーダ30は、残差ブロックを再生するために、受信されたTUの係数を逆量子化及び逆変換する。ビデオデコーダ30は、予測されたブロックを形成するために、信号伝達された予測モード(イントラ予測又はインター予測又はパレットモード)を使用する。次いで、ビデオデコーダ30は、元のブロックを再生するために、(画素ごとに)予測されたブロックと残差ブロックとを組み合わせる。ブロック境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを実行することなど、追加の処理が実行され得る。更に、ビデオデコーダ30は、ビデオエンコーダ20のCABAC符号化プロセスとは逆ではあるが、それと実質的に同様の様式でCABACを使用してシンタックス要素を復号し得る。
[0064]ビデオエンコーダ20は、更に、ブロックベースシンタックスデータ、ピクチャベースシンタックスデータ、及びシーケンスベースシンタックスデータなど、シンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ又はシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)若しくはビデオパラメータセット(VPS)など、他のシンタックスデータ中でビデオデコーダ30に送り得る。ビデオデコーダ30は、ビデオデータを復号するために、これらのパラメータを使用し得る。
[0065]本開示の技法によれば、ビデオエンコーダ20は、パレットモードコード化中にエスケープ画素値を量子化するために、以下のプロセスを実行し得る。
1.ビデオエンコーダ20は、以下のように、異なる色成分インデックス(cIdx)値に従って量子化パラメータqPを導出する。
qP = cIdx = = 0) ? Qp′Y : ( ( cIdx = = 1) ? Qp′Cb : Qp′Cr)
2.ビデオエンコーダ20は、以下のように、量子化比qPper及び量子化剰余qPremを導出する。
qPper = qP /6
qPrem = qP%6
3.ビデオエンコーダ20は、以下のように、右シフトパラメータquantRightShift及びオフセットパラメータOffsetを導出する。
quantRightShift = 14 + qPper
Offset = 1 << (quantRightShift - 1)
4.被量子化エスケープ画素値が以下のように導出される
EspValue = (pixelValue * quantScale[qPrem]+Offset) >> quantRightShift
[0066]同様に、逆のプロセスとして、ビデオデコーダ30は、パレットモードコード化中にエスケープ画素値を逆量子化する(inverse quantize)(又は逆量子化する(dequantize))ために、以下のプロセスを実行し得る。
1.ビデオデコーダ30は、以下のように、異なる色成分インデックス(cIdx)値に従って量子化パラメータqPを導出する。
qP = (cIdx = = 0) ? Qp′Y : (( cIdx = = 1) ? Qp′Cb : Qp′Cr)
2.ビデオデコーダ30は、以下のように、量子化比qPper及び量子化剰余qPremを導出する。
qPper = qP /6
qPrem = qP%6
3.ビデオデコーダ30は、以下のように、右シフトパラメータinvQuantRightShift及びオフセットパラメータaddOffsetを導出する。
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
4A.invQuantRightShiftが0よりも大きい場合、ビデオデコーダ30は以下のプロシージャを実行する。
deQuantEspValue = ( EspValue * invQuantScale[qPrem] + addOffset )>>
invQuantRightShift
4B.他の場合(invQuantRightShift≦0)、ビデオデコーダ30は以下の手順を実行する。
invQuantLeftShift = - invQuantRightShift
deQuantEspValue = EspValue * invQuantScale[qPrem] << nvQuantLeftShift
5.ビデオデコーダ30は、更に、以下のように、deQuantEspValueを深度範囲内にあるように変更する。
deQuantEspValue = clip3 (0, 2bitDepth-1, deQuantEspValue)
[0067]quantScale[.]及びinvQuantScale[.]は、適応量子化スケーリングが有効にされるとき、それぞれ{26214,23302,20560,18396,16384,14564}、{40,45,51,57,64,72}であり得る(例えば、アレイとして実装される)ルックアップテーブル又は6つのエントリの別のルックアップテーブル(又はアレイ)であり得る。例えば、適応量子化スケーリングが有効にされるとき、ビデオデコーダ30は、適応量子化スケーリングによって導入されたスケーリングファクタを正規化するように、invQuantRightShift及び/又はinvQuantLeftShiftを調整し得る。
[0068]ビデオエンコーダ20及びビデオデコーダ30はそれぞれ、適用可能なとき、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ又はデコーダ回路のいずれか、又はそれらの任意の組合せとして実装され得る。ビデオエンコーダ20及びビデオデコーダ30の各々は1つ又は複数のエンコーダ又はデコーダ中に含まれ得、そのいずれも複合ビデオエンコーダ/デコーダ(コーデック)の一部として統合され得る。ビデオエンコーダ20及び/又はビデオデコーダ30を含む機器は、集積回路、マイクロプロセッサ及び/又はセルラー電話などのワイヤレス通信機器を備え得る。
[0069]図2は、本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を符号化するための技法を実装し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコード化及びインターコード化を実行し得る。イントラコード化は、所与のビデオフレーム又はピクチャ内のビデオの空間冗長性を低減又は除去するために空間予測に依拠する。インターコード化は、ビデオシーケンスの隣接フレーム又はピクチャ内のビデオの時間冗長性を低減又は除去するために時間予測に依拠する。イントラモード(Iモード)は、幾つかの空間ベースコード化モードのいずれかを指すことがある。単方向予測(Pモード)又は双方向予測(Bモード)などのインターモードは、幾つかの時間ベースのコード化モードのいずれかを指すことがある。
[0070]図2に示されているように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。図2の例では、ビデオエンコーダ20は、モード選択ユニット40と、(復号ピクチャバッファ(DPB)と呼ばれることもある)参照ピクチャメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、パレットモード符号化ユニット49と、区分ユニット48とを含む。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。再構成されたビデオからブロック歪み(blockiness artifacts)を除去するためにブロック境界をフィルタ処理するための(図2に示されていない)デブロッキングフィルタも含まれ得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタ処理することになる。(ループ中又はループ後の)追加のフィルタもデブロッキングフィルタに加えて使用され得る。そのようなフィルタは、簡潔のために示されていないが、所望される場合、(ループ内フィルタとして)加算器50の出力をフィルタ処理し得る。
[0071]符号化プロセス中に、ビデオエンコーダ20はコード化されるべきビデオフレーム又はスライスを受信する。フレーム又はスライスは複数のビデオブロックに分割され得る。動き推定ユニット42及び動き補償ユニット44は、時間予測を行うために、1つ又は複数の参照フレーム中の1つ又は複数のブロックに対する受信されたビデオブロックのインター予測符号化を実行する。イントラ予測ユニット46は、代替的に、空間予測を行うために、コード化されるべきブロックと同じフレーム又はスライス中の1つ又は複数の隣接ブロックに対する受信されたビデオブロックのイントラ予測符号化を実行し得る。ビデオエンコーダ20は、例えば、ビデオデータのブロックごとに適切なコード化モードを選択するために、複数のコード化パスを実行し得る。
[0072]その上、区分ユニット48は、前のコード化パスにおける前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分し得る。例えば、区分ユニット48は、初めにフレーム又はスライスをCTUに区分し、レート歪み分析(例えば、レート歪み最適化)に基づいてCTUの各々をサブCUに区分し得る。モード選択ユニット40は、更に、サブCUへのCTUの区分を示す4分木データ構造を生成し得る。4分木のリーフノードCUは、1つ又は複数のPUと1つ又は複数のTUとを含み得る。
[0073]モード選択ユニット40は、例えば、誤差結果に基づいて予測モード、即ち、イントラ又はインターのうちの1つを選択し得、残差データを生成するために、得られた予測されたブロックを加算器50に与え、参照フレームとして使用するための符号化ブロックを再構成するために、得られた予測されたブロックを加算器62に与える。更に、モード選択ユニット40は、イントラ予測モード及びインター予測モードの代替としてパレットモードを選択し得る。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、区分情報、及び他のそのようなシンタックス情報など、シンタックス要素をエントロピー符号化ユニット56に与える。
[0074]動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示されている。動き推定ユニット42によって実行される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、例えば、現在フレーム(又は他のコード化単位)内でコード化されている現在ブロックに対する参照フレーム(又は他のコード化単位)内の予測ブロックに対する現在ビデオフレーム又はピクチャ内のビデオブロックのPUの変位を示し得る。予測ブロックは、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of square difference)、又は他の差分メトリックによって決定され得る画素差分に関して、コード化されるべきブロックにぴったり一致することがわかるブロックである。幾つかの例では、ビデオエンコーダ20は、参照ピクチャメモリ64に記憶された参照ピクチャのサブ整数画素位置の値を計算し得る。例えば、ビデオエンコーダ20は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の分数画素位置の値を補間し得る。従って、動き推定ユニット42は、フル画素位置と分数画素位置とに対して動き探索を実行し、分数画素精度で動きベクトルを出力し得る。
[0075]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライス中のビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々が、参照ピクチャメモリ64に記憶された1つ又は複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
[0076]動き補償ユニット44によって実行される動き補償は、動き推定ユニット42によって決定された動きベクトルに基づいて予測ブロックをフェッチ又は生成することを伴い得る。同じく、動き推定ユニット42及び動き補償ユニット44は、幾つかの例では、機能的に統合され得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいて指す予測ブロックの位置を特定し得る。加算器50は、以下で説明するように、コード化されている現在ビデオブロックの画素値から予測ブロックの画素値を減算し、画素差分値を形成することによって、残差ビデオブロックを形成する。概して、動き推定ユニット42はルーマ成分に対して動き推定を実行し、動き補償ユニット44は、クロマ成分とルーマ成分の両方のためにルーマ成分に基づいて計算された動きベクトルを使用する。モード選択ユニット40はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
[0077]イントラ予測ユニット46は、上記で説明されたように、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、現在ブロックをイントラ予測し得る。特に、イントラ予測ユニット46は、現在ブロックを符号化するために使用すべきイントラ予測モードを決定し得る。幾つかの例では、イントラ予測ユニット46は、例えば、別個の符号化パス中に、様々なイントラ予測モードを使用して現在ブロックを符号化し得、イントラ予測ユニット46(又は、幾つかの例では、モード選択ユニット40)は、テストされたモードから使用するのに適切なイントラ予測モードを選択し得る。
[0078]例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードのためのレート歪み分析を使用してレート歪み値を計算し、テストされたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択し得る。レート歪み分析は、概して、符号化ブロックと、符号化ブロックを生成するために符号化された元の符号化されていないブロックとの間の歪み(又は誤差)の量、及び符号化ブロックを生成するために使用されるビットレート(即ち、ビット数)を決定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレート歪み値を呈するかを決定するために、様々な符号化ブロックのための歪み及びレートから比を計算し得る。
[0079]ブロックのためのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックのための選択されたイントラ予測モードを示す情報をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、選択されたイントラ予測モードを示す情報を符号化し得る。ビデオエンコーダ20は、複数のイントラ予測モードインデックステーブル及び複数の変更されたイントラ予測モードインデックステーブル(コードワードマッピングテーブルとも呼ばれる)と、様々なブロックの符号化コンテキストの定義と、コンテキストの各々について使用すべき、最確イントラ予測モード、イントラ予測モードインデックステーブル、及び変更されたイントラ予測モードインデックステーブルの指示とを含み得る構成データを送信ビットストリーム中に含め得る。
[0080]ビデオエンコーダ20は、コード化されている元のビデオブロックから、モード選択ユニット40からの予測データを減算することによって残差ビデオブロックを形成する。加算器50は、この減算演算を実行する1つ又は複数の構成要素を表す。変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を残差ブロックに適用し、変換係数値を備えるビデオブロックを生成する。ウェーブレット変換、整数変換、サブバンド変換、離散サイン変換(DST)、又は他のタイプの変換が、DCTの代わりに使用され得る。いずれの場合も、変換処理ユニット52は、変換を残差ブロックに適用し、変換係数のブロックを生成する。変換は、残差情報を画素領域から周波数領域などの変換領域に変換し得る。変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートを更に低減するために変換係数を量子化する。量子化プロセスは、係数の一部又は全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって変更され得る。
[0081]量子化の後に、エントロピー符号化ユニット56は被量子化変換係数をエントロピーコード化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コード化(CAVLC)、コンテキスト適応型バイナリ算術コード化(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コード化(SBAC)、確率間隔区分エントロピー(PIPE)コード化又は別のエントロピーコード化技法を実行し得る。コンテキストベースエントロピーコード化の場合、コンテキストは隣接ブロックに基づき得る。エントロピー符号化ユニット56によるエントロピーコード化の後に、符号化ビットストリームは、別の機器(例えば、ビデオデコーダ30)に送信されるか、又は後で送信するか、若しくは取り出すためにアーカイブされ得る。
[0082]逆量子化ユニット58及び逆変換ユニット60は、画素領域において残差ブロックを再構成するために、それぞれ逆量子化及び逆変換を適用する。特に、加算器62は、参照ピクチャメモリ64に記憶するための再構成されたビデオブロックを生成するために、動き補償ユニット44又はイントラ予測ユニット46によって前に生成された動き補償予測ブロックに、再構成された残差ブロックを加算する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコード化するために動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして使用され得る。
[0083]本開示の技法によれば、ビデオエンコーダ20は、パレットベースコード化を実行するように構成され得る。より詳細には、パレット符号化ユニット49は、ビデオデータのブロック(例えば、CU又はPU)のパレットモード符号化を実行し得る。HEVCフレームワークに関して、一例として、パレットベースコード化技法は、CUモードとして使用されるように構成され得る。他の例では、パレットベースコード化技法は、HEVCのフレームワークにおいてPUモードとして使用されるように構成され得る。従って、CUモードのコンテキストにおいて(本開示全体にわたって)本明細書で説明される開示されるプロセスの全てが、追加又は代替として、PUモードに適用され得る。しかしながら、これらのHEVCベースの例は、本明細書で説明されるパレットベースコード化技法が、独立して、若しくは他の既存の又はまだ開発されていないシステム/規格の一部として動作するように適用され得るので、そのような技法の制限又は限定であると見なされるべきではない。これらの場合、パレットコード化のためのユニットは、正方形ブロック、矩形ブロック、更には非矩形形状の領域であり得る。
[0084]パレット符号化ユニット49は、例えば、パレットベース符号化モードが、例えば、CU又はPUのために選択されるとき、パレットベース符号化を実行し得る。例えば、パレット符号化ユニット49は、画素値を示すエントリを有するパレットを生成し、ビデオデータのブロックの少なくとも幾つかの位置の画素値を表すためにパレット中の画素値を選択し、ビデオデータのブロックの位置のうちの少なくとも幾つかを選択された画素値にそれぞれ対応するパレット中のエントリに関連付ける情報を信号伝達するように構成され得る。様々な機能が、パレット符号化ユニット49によって実行されるものとして説明されたが、そのような機能の一部又は全部は、他の処理ユニット、又は異なる処理ユニットの組合せによって実行され得る。
[0085]本開示の技法のうちの1つ又は複数によれば、ビデオエンコーダ20、及び詳細にはパレット符号化ユニット49は、予測ビデオブロックのパレットベースビデオコード化を実行し得る。上記で説明されたように、ビデオエンコーダ20によって生成されたパレットは、明示的に符号化されるか、前のパレットエントリから予測されるか、前の画素値から予測されるか、又はこれらの組合せであり得る。
[0086]詳細には、モード選択ユニット40が、インター予測、イントラ予測又はパレットモードなど、ビデオデータのブロック(例えば、CU又はPU)のための符号化モードを決定し得る。パレットモードが選択されたと仮定して、パレット符号化ユニット49は、ブロックのための画素値の統計値に基づいて、ブロックのためのパレットを形成し得る。ブロックの各画素について、パレット符号化ユニット49は、画素がパレット中の対応する値を有するかどうか、及び対応する値を有する場合、画素のための対応する値に対するパレットへのインデックスを信号伝達するかどうかを決定し得る。パレット符号化ユニット49はまた、前の画素と同じ値を有する画素の数を表すラン値を信号伝達し得る。
[0087]代替的に、画素のシーケンスが上隣接画素に等しい値を有する場合、パレット符号化ユニット49は、ランが上隣接画素に等しい値を有する画素の数を表す、「コピーフロムアバブ」モードのためのラン値を信号伝達し得る。
[0088]インデックスモードもコピーフロムアバブモードもパレットモードコード化ブロックの現在画素の値を適切に表さない場合、パレット符号化ユニット49は、画素をエスケープ画素としてコード化するために、本開示の技法を使用し得る。即ち、これらの技法はエスケープ画素値を量子化するために実行され得、エスケープ画素値はコード化されている画素の実際の値(例えば、ルーマ値及び/又はクロマ値)を表す。本開示の技法によれば、ビデオエンコーダ20は、例えば、図1に関して上記で説明された、エスケープ画素としてコード化されるべき画素の値を量子化し得る。即ち、パレット符号化ユニット49は、以下の量子化プロセスを実行し得る。
1.パレット符号化ユニット49は、以下のように、異なる色成分インデックスcIdxに従ってqPを導出する。
qP = ( cIdx = = 0 ) ? Qp′Y : (( cIdx = = 1 ) ? Qp′Cb : Qp′Cr)
2.パレット符号化ユニット49は、以下のように、量子化比qPper及び量子化剰余qPremを導出する。
qPper = qP /6
qPrem = qP%6
3.パレット符号化ユニット49は、以下のように、右シフトパラメータinvQuantRightShift及びオフセットパラメータaddOffsetを導出する。
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
4.パレット符号化ユニット49は、以下のように、エントロピー復号されたEspValueに基づいて、被逆量子化エスケープ画素deQuantEspValueを導出する。
deQuantEspValue = ( EspValue * invQuantScale[qPrem] + addOffset )>>
invQuantRightShift
5.パレット符号化ユニット49は、更に、以下のように、deQuantEspValueを深度範囲内にあるように変更する。
deQuantEspValue = clip3 (0, 2bitDepth-1, deQuantEspValue)
[0089]この例では、「EspValue」は、「pixelValue」によって表される元の値を有する画素のための被量子化エスケープ値を表す。
[0090]このようにして、図2のビデオエンコーダ20は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が0よりも小さいと決定することと、左シフトパラメータのための値が0よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを行うように構成されたビデオエンコーダの一例を表す。
[0091]図3は、本開示の技法による、パレットモードコード化ブロック中のエスケープ画素を復号するための技法を実装し得るビデオデコーダ30の一例を示すブロック図である。図3の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、パレット復号ユニット75と、逆量子化ユニット76と、逆変換ユニット78と、参照ピクチャメモリ82と、加算器80とを含む。ビデオデコーダ30は、幾つかの例では、ビデオエンコーダ20(図2)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルに基づいて予測データを生成し得、イントラ予測ユニット74は、エントロピー復号ユニット70から受信されたイントラ予測モードインジケータに基づいて予測データを生成し得る。
[0092]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビデオビットストリームを受信する。ビデオデコーダ30のエントロピー復号ユニット70は、被量子化係数と、動きベクトル又はイントラ予測モードインジケータと、他のシンタックス要素とを生成するために、ビットストリームをエントロピー復号する。エントロピー復号ユニット70は、動きベクトルと他のシンタックス要素とを動き補償ユニット72に転送する。ビデオデコーダ30は、ビデオスライスレベル及び/又はビデオブロックレベルでシンタックス要素を受信し得る。
[0093]ビデオスライスがイントラコード化(I)スライスとしてコード化されるとき、イントラ予測ユニット74は、信号伝達されたイントラ予測モードと、現在フレーム又はピクチャの、前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化(即ち、B又はP)スライスとしてコード化されるとき、動き補償ユニット72は、エントロピー復号ユニット70から受信された動きベクトルと他のシンタックス要素とに基づいて、現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、参照ピクチャメモリ82に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリスト、即ち、リスト0及びリスト1を構成し得る。動き補償ユニット72は、動きベクトルと他のシンタックス要素とを構文解析する(parsing)ことによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。例えば、動き補償ユニット72は、ビデオスライスのビデオブロックをコード化するために使用される予測モード(例えば、イントラ又はインター予測)と、インター予測スライスタイプ(例えば、Bスライス又はPスライス)と、スライスのための参照ピクチャリストのうちの1つ又は複数のための構成情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちの幾つかを使用する。
[0094]動き補償ユニット72はまた、補間フィルタに基づいて補間を実行し得る。動き補償ユニット72は、参照ブロックのサブ整数画素の補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット72は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するために、その補間フィルタを使用し得る。
[0095]逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された被量子化変換係数を逆量子化(inverse quantize)、即ち、逆量子化(de-quantize)する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオデコーダ30によって計算される量子化パラメータQPYの使用を含み得る。
[0096]逆変換ユニット78は、画素領域において残差ブロックを生成するために、逆変換、例えば、逆DCT、逆整数変換、又は概念的に同様の逆変換プロセスを変換係数に適用する。
[0097]動き補償ユニット72が、動きベクトルと他のシンタックス要素とに基づいて現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換ユニット78からの残差ブロックを動き補償ユニット72によって生成された対応する予測ブロックと加算することによって、復号ビデオブロックを形成する。加算器80は、この加算演算を実行する1つ又は複数の構成要素を表す。所望される場合、ブロック歪みを除去するために、復号ブロックをフィルタ処理するためにデブロッキングフィルタも適用され得る。画素遷移を平滑化するために、又は場合によってはビデオ品質を改善するために、他のループフィルタも(コード化ループ中又はコード化ループ後のいずれかで)使用され得る。所与のフレーム又はピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶する参照ピクチャメモリ82に記憶される。参照ピクチャメモリ82はまた、図1の表示装置32などの表示装置上で後で提示するために復号ビデオを記憶する。
[0098]本開示の様々な例によれば、ビデオデコーダ30は、パレットベース復号を実行するように構成され得る。詳細には、ビデオデコーダ30は、パレットベース復号を実行し得るパレット復号ユニット75を含む。例えば、パレットベース復号ユニット75は、画素値を示すエントリを有するパレットを生成するように構成され得る。更に、この例では、パレット復号ユニット75は、図3に示されているシンタックス要素など、ビデオデータのブロックの少なくとも幾つかの位置をパレット中のエントリに関連付ける情報を受信し得る。この例では、パレット復号ユニット75は、その情報に基づいてパレット中の画素値を選択し得る。更に、この例では、パレット復号ユニット75は、選択された画素値に基づいてブロックの画素値を再構成し得る。様々な機能が、パレット復号ユニット75によって実行されるものとして説明されたが、そのような機能の一部又は全部は、他の処理ユニット、又は異なる処理ユニットの組合せによって実行され得る。
[0099]パレット復号ユニット75は、パレットコード化モード情報を受信し、パレットコード化モードがブロックに適用されることをパレットコード化モード情報が示すとき、上記の動作を実行し得る。パレットコード化モードがブロックに適用されないことをパレットコード化モード情報が示すとき、又は、他のモード情報が異なるモードの使用を示すとき、パレット復号ユニット75は、パレットコード化モードがブロックに適用されないことをパレットコード化モード情報が示すとき、例えば、HEVCインター予測コード化モード又はイントラ予測コード化モードなど、非パレットベースコード化モードを使用してビデオデータのブロックを復号する。ビデオデータのブロックは、例えば、HEVCコード化プロセスに従って生成されるCU又はPUであり得る。ビデオデコーダ30は、インター予測時間予測コード化モード又はイントラ予測空間コード化モードを用いて幾つかのブロックを復号し、パレットベースコード化モードを用いて他のブロックを復号し得る。パレットベースコード化モードは、複数の異なるパレットベースコード化モードのうちの1つを備え得るか、又は単一のパレットベースコード化モードがあり得る。
[00100]本開示の技法のうちの1つ又は複数によれば、ビデオデコーダ30、及び詳細にはパレット復号ユニット75は、パレットコード化ビデオブロックのパレットベースビデオ復号を実行し得る。上記で説明されたように、ビデオデコーダ30によって復号されたパレットは、明示的に符号化及び信号伝達されるか、受信されたパレットコード化ブロックに関してビデオデコーダ30によって再構成されるか、前のパレットエントリから予測されるか、前の画素値から予測されるか、又はそれらの組合せであり得る。
[00101]詳細には、エントロピー復号ユニット150は、ビデオデータのブロック(例えば、PU又はCU)がパレットモードを使用してコード化されることを示す情報を復号し得る。エントロピー復号ユニット150は、ブロックの各画素がパレットモードを使用してどのようにしてコード化されるかを表す情報を更に復号し得る。例えば、エントロピー復号ユニット150は、インデックス値とラン値とを{インデックス,ラン}ペアとして復号し得る。インデックス値は、ブロックのためのパレットのエントリを表し、ここで、エントリは画素値を指定し、ラン値は、現在画素に加えて、同じ値を有する画素の数を示す。
[00102]インデックス値がパレットのサイズに等しい場合、エントロピー復号ユニット150は、現在画素がエスケープ画素であると決定し得る。従って、エントロピー復号ユニット150は、エスケープ画素を表す値をエントロピー復号し得る。詳細には、エントロピー復号ユニット150は、エスケープ画素のための被量子化エスケープ画素値を復号し得る。エントロピー復号ユニット150は、次いで、被量子化エスケープ画素値をパレット復号ユニット75に受け渡し得る。
[00103]本開示の技法によれば、パレット復号ユニット75は、被量子化エスケープ画素値を逆量子化し得る。被量子化エスケープ画素値を逆量子化するために、パレット復号ユニット75は以下のプロセスを実行し得る。
1.パレット復号ユニット75は、以下のように、異なる色成分インデックスcIdxに従ってqPを導出する。
qP = ( cIdx = = 0 ) ? Qp′Y : ((cIdx = = 1) ? Qp′Cb : Qp′Cr)
2.パレット復号ユニット75は、以下のように、量子化比qPper及び量子化剰余qPremを導出する。
qPper = qP /6
qPrem = qP%6
3.パレット復号ユニット75は、以下のように、右シフトパラメータinvQuantRightShift及びオフセットパラメータaddOffsetを導出する。
invQuantRightShift = 6 - qPper
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
4A.invQuantRightShiftが0よりも大きい場合、パレット復号ユニット75は以下のプロシージャを実行する。
deQuantEspValue = ( EspValue * invQuantScale[qPrem] + addOffset )>>
invQuantRightShift
4B.他の場合(invQuantRightShift≦0)、パレット復号ユニット75は以下のプロシージャを実行する。
invQuantLeftShift = - invQuantRightShift
deQuantEspValue = EspValue * invQuantScale[qPrem] << nvQuantLeftShift
5.パレット復号ユニット75は、更に、以下のように、deQuantEspValueを深度範囲内にあるように変更する。
deQuantEspValue = clip3 (0, 2bitDepth-1, deQuantEspValue)
[00104]invQuantScale[.]ルックアップテーブルは、エントリ{40,45,51,57,64,72}を有するアレイ、又は例えば、6つのエントリの別のルックアップテーブルとして実装され得、適応量子化スケーリングが有効にされるときに使用され得る。例えば、適応量子化スケーリングが有効にされるとき、ビデオデコーダ30は、適応量子化スケーリングによって導入されたスケーリングファクタを正規化するように、invQuantRightShift及び/又はinvQuantLeftShiftを調整し得る。
[00105]このようにして、図3のビデオデコーダ30は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための元の値が0よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを行うように構成されたビデオデコーダの一例を表す。
[00106]図4は、本開示の技法による、ビデオデータのブロックを符号化するための例示的な方法を示すフローチャートである。図4の方法は、(例えば、図2に示されている)ビデオエンコーダ20及びそれの構成要素によって実行され得る。
[00107]この例では、モード選択ユニット40は、最初にビデオデータのブロックを受信する(100)。ブロックは、例えば、予測単位(PU)又はコード化単位(CU)であり得る。モード選択ユニット40は、次いで、ブロックのためのコード化モードを決定する(102)。例えば、モード選択ユニット40は、様々なコード化モードをテストし、レート歪み最適化(RDO)プロセスを使用してモードを比較し得る。更に、モード選択ユニット40は、RDOプロセスを使用して、様々なブロックサイズ及びブロック区分方式をも比較し得る。
[00108]モード選択ユニット40は、イントラ予測モード又はインター予測モードを選択し、その場合、動き推定ユニット42及び動き補償ユニット44又はイントラ予測ユニット46は、それぞれ、イントラ予測又はインター予測を使用してブロックの画素を予測し(104)、予測されたブロックを形成する。ビデオエンコーダ20は、次いで、ブロックの残差値を形成し、処理する(106)。例えば、残差生成ユニット50は、画素ごとに、予測されたブロックから元のブロックを減算し、残差ブロックを形成し得る。変換処理ユニット52は、次いで、例えば、DCTなど、変換を使用して、残差ブロックを変換し、変換ブロックを形成し得る。量子化ユニット54は、次いで、変換ブロックの変換係数を量子化し、被量子化変換係数をエントロピー符号化ユニット56に与え得る。また、モード選択ユニット40は、予測モードを表す情報(例えば、イントラ/インター、イントラ予測が使用される場合の選択されたイントラモード、又はインター予測が使用される場合の動きパラメータ)をエントロピー符号化ユニット56に与える。従って、エントロピー符号化ユニット56は、予測情報及び残差値(即ち、被量子化変換係数)をエントロピー符号化する(108)。
[00109]代替的に、モード選択ユニット40は、ブロックをコード化するためにパレットモードを選択し、その場合、パレット符号化ユニット49は、ブロックのための画素統計値を分析する(110)。例えば、パレット符号化ユニット49は、頻繁に使用される画素値を決定し得る。パレット符号化ユニット49は、次いで、統計値に基づいてブロックのためのパレットを形成する(112)。図4には示されていないが、エントロピー符号化ユニット56は、パレットのためのデータをエントロピー符号化し得る。例えば、パレットは、例えば、表1及び表2に関して上記で説明されたように、前に使用されたパレットに対して予測コード化され得る。
[00110]パレット符号化ユニット49は、次いで、画素をどのようにコード化すべきかを決定するために、ブロックの画素を走査する(114)。例えば、パレット符号化ユニット49は、現在画素値がパレット中に含まれるかどうかを決定し得る。画素値がパレット中に含まれる場合、パレット符号化ユニット49は、画素値に対応するパレットからのインデックスをエントロピー符号化ユニット56に与え、エントロピー符号化ユニット56はインデックス値をエントロピー符号化する(116)。その上、パレット符号化ユニット49は、同じ値を有する、前の画素に後続する行中の画素の数を決定し、「ラン」値をエントロピー符号化ユニット56に与え、エントロピー符号化ユニット56は、ラン値をエントロピー符号化する(118)。
[00111]代替的に、現在画素がパレット中の値を有しない場合、パレット符号化ユニット49は、画素のための値が上隣接画素値と同じであるかどうかを決定し得る。幾つかの例では、この決定は、画素値がパレット中の値に対応するかどうかを決定するより前に行われ得る。いずれの場合も、現在画素が上隣接画素値に等しい値を有する場合、パレット符号化ユニット49は、それらの上隣接画素に等しい値を有する画素の数を記述するラン値をエントロピー符号化ユニット56に与え、エントロピー符号化ユニット56はラン値をエントロピー符号化する(120)。
[00112]現在画素がパレット中の値に対応せず、上隣接画素に等しい値を有しない場合、パレット符号化ユニット49は、画素をエスケープ画素として符号化し得る。詳細には、パレット符号化ユニット49は、パレットのサイズに等しいインデックス値をエントロピー符号化ユニット56に与え、エントロピー符号化ユニット56は、インデックス値をパレットのサイズとしてエントロピーコード化する(122)。パレットのサイズに等しいインデックス値は、現在画素がエスケープ画素として符号化されていることを信号伝達し得る。パレット符号化ユニット49は、更に、エスケープ画素の値をエントロピー符号化ユニット56に与え得る。
[00113]本開示の技法によれば、パレット符号化ユニット49は画素値を量子化する(124)。画素値の量子化は、概して、ビット単位シフト演算を含み得る。詳細には、上記で説明されたように、パレット符号化ユニット49が、量子化中に、左シフトパラメータが0よりも小さいか、又はそれに等しいと決定した場合、パレット符号化ユニット49は、代わりに、左シフトパラメータの絶対値に等しい絶対値を有するが、正値をも有する、右シフトパラメータを使用して、ビット単位右シフトを実行し得る。パレット符号化ユニット49は、次いで、被量子化エスケープ画素値をエントロピー符号化ユニット56に与え、エントロピー符号化ユニット56は、被量子化画素値をエントロピー符号化する(126)。
[00114]ビデオエンコーダ20は、パレットモードコード化ブロックの各画素のために、このプロセス(例えば、ステップ116及び118のシーケンス、ステップ120又はステップ122〜126のシーケンスのうちの1つ)を実行し得る。
[00115]このようにして、図4の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための左シフトパラメータのための値が0よりも小さいと決定することと、左シフトパラメータのための値が0よりも小さいことに基づいて、右シフトパラメータのための値を、左シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を量子化することとを含む、ビデオデータを符号化する方法の一例を表す。
[00116]図5は、本開示の技法による、ビデオデータのブロックを復号するための例示的な方法を示すフローチャートである。図5の方法は、(例えば、図3に示されている)ビデオデコーダ30及びそれの構成要素によって実行され得る。
[00117]最初に、エントロピー復号ユニット70は、ビデオデータのブロックのためのコード化モードを示すデータを復号する(150)。エントロピー復号ユニット70は、ブロックのためのコード化モード、例えば、イントラ予測、インター予測、又はパレットモードのうちの1つを決定するためにこのデータを使用する(152)。
[00118]コード化モードがイントラ予測又はインター予測である場合、エントロピー復号ユニット70は、イントラ予測又はインター予測を実行するために、予測情報(例えば、イントラモード又は動きパラメータ)を復号し、動き補償ユニット72又はイントラ予測ユニット74のうちの適切な1つに予測情報を与える(154)。例えば、イントラ予測ユニット74は、ブロックへの隣接画素から予測ブロックを構成するためにイントラ予測モードを使用し得る。別の例として、動き補償ユニット72は、参照ピクチャメモリ82の前に復号されたピクチャから参照ブロックを取り出す(及び潜在的に処理する、例えば、フィルタする)ために、動きパラメータを使用し得る。
[00119]更に、ビデオデコーダ30は、ブロックの残差値を復号し、処理する(156)。例えば、逆量子化ユニット76は、被量子化変換係数を逆量子化し得、逆変換ユニット78は、残差ブロックを再構成するために変換係数を逆変換し得る。加算器80は、次いで、元のブロックを再構成するために、残差ブロックの残差値と予測されたブロックの予測値とを組み合わせる(158)。
[00120]代替的に、エントロピー復号ユニット70は、ブロックのためのコード化モードがパレットモードであると決定し得る。この場合、エントロピー復号ユニット70は、ブロックのパレットのためのデータをエントロピー復号し得、パレット復号ユニット75は、エントロピー復号データを使用してブロックのためのパレットを復号する(160)。表1及び表2に関して上記で説明されたように、パレットは、前のパレットに対して予測コード化され得る。従って、エントロピー復号ユニット70は、パレットのためのエントロピー復号データをパレット復号ユニット75に与え得、パレット復号ユニット75は、復号データを使用してブロックのためのパレットを再構成し得る。
[00121]エントロピー復号ユニット70はまた、ブロックの画素のためのデータを復号する(164)。例えば、復号データは、パレットのサイズよりも小さいインデックス値に対応し得る。この場合、エントロピー復号ユニット70はまた、ラン値を復号し(166)、パレット復号ユニット75にインデックス及びラン値を与える。パレット復号ユニット75は、画素の値と、ラン中の画素の各々とを、インデックス値に対応するパレットの画素値に等しく設定する(168)。
[00122]別の例として、復号データは、インデックス値なしのラン値であり得る。インデックス値なしのそのようなラン値は、コピーフロムアバブモードを使用してコード化された画素の数を示し得る。この場合、エントロピー復号ユニット70は、パレット復号ユニット75にラン値を与え得、パレット復号ユニット75は、ラン中の画素の各々のための値を、それぞれの上隣接画素値の値に等しく設定する(170)。
[00123]別の例として、復号データは、パレットのサイズに等しいインデックス値であり得る。この場合、エントロピー復号ユニット70は、現在画素がエスケープ画素として符号化されたと決定し得る。従って、エントロピー復号ユニット70は、エスケープ画素のための被量子化値をエントロピー復号し(172)、被量子化値をパレット復号ユニット75に与える。パレット復号ユニット75は、今度は、被量子化値を逆量子化する(174)。詳細には、パレット復号ユニット75は、例えば、上記で及び以下の図6に関してより詳細に説明されるように、本開示の技法を使用して、被量子化値を逆量子化し得る。
[00124]ビデオデコーダ30は、パレットモードコード化ブロックの各画素のために、このプロセス(例えば、ステップ166及び168のシーケンス、ステップ170、又はステップ172及び174のシーケンスのうちの1つ)を実行し得、それにより、パレットモードコード化ブロックを復号し得る。
[00125]このようにして、図5の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための元の値が0よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む方法の一例を表す。
[00126]図6は、本開示の技法による、パレット復号ユニット75がビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化し得る例示的な技法を示すフローチャートである。概して、図6の方法は、図5の要素174に対応し得る。即ち、図6は、ビデオデータのパレットモード符号化ブロックの被量子化エスケープ画素値を逆量子化する方法の一例を表す。図6に示されているステップは必ずしも示された順序で実行される必要があるとは限らず、幾つかのステップが並列に実行され得る。
[00127]この例では、最初に、パレット復号ユニット75が、ビデオデータのパレットモード符号化ブロックのための量子化パラメータ(QP)を導出する(200)。例えば、パレット復号ユニット75は、以下の式を使用してQPを決定し得る。
QP = (cIdx = = 0) ? Qp′Y : (( cIdx = = 1) ? Qp′Cb : Qp′Cr)
この例示的な式では、cIdxは、ビデオデータのブロックのためのコンテキストインデックスを表す。cIdxの値は、ブロックがルーマブロックであるのか、青色相クロミナンスブロックであるのか、又は赤色相クロミナンスブロックであるのかに基づいて設定され得る。
[00128]パレット復号ユニット75は、次いで、QP比値及びQP剰余値を決定する(202)。例えば、パレット復号ユニット75は、以下の式に従ってQP比(qPper)値及びQP剰余(qPrem)値を決定し得る。
qPper = qP /6
qPrem = qP%6
[00129]パレット復号ユニット75は、次いで、右シフトパラメータ値を導出する(204)。例えば、パレット復号ユニット75は、以下の式に従って右シフトパラメータ(invQuantRightShift)値を導出し得る。
invQuantRightShift = 6 - qPper
[00130]更に、パレット復号ユニット75はオフセットパラメータ値を導出する(206)。パレット復号ユニット75は、以下の式に従ってオフセットパラメータ(addOffset)値を導出し得る。
addOffset = invQuantRightShift == 0 ? 0 : 1<< (invQuantRightShift - 1)
[00131]パレット復号ユニット75は、次いで、右シフトパラメータ値が0よりも小さいか、又はそれに等しいどうかを決定する(208)。そうでない場合(即ち、右シフトパラメータ値が0よりも大きい場合)(208の「いいえ」分岐)、パレット復号ユニット75は、右シフトパラメータ値及びオフセットパラメータ値を使用して、エスケープ画素のための被量子化値からエスケープ画素のための被逆量子化値を計算する(210)。例えば、パレット復号ユニット75は、以下の式に従って被逆量子化値(deQuantEspValue)を計算し得る。
deQuantEspValue = ( EspValue * invQuantScale[qPrem] + addOffset )>>
invQuantRightShift,
ここで、EspValueは被量子化値を表し、invQuantScale[.]は、{40,45,51,57,64,72}など、ルックアップテーブルを表す。
[00132]一方、右シフトパラメータが0よりも小さいか又はそれに等しい場合(208の「はい」分岐)、パレット復号ユニット75は、右シフトパラメータ値の絶対値に等しい正値であるものとして左シフトパラメータ値を計算する(212)。パレット復号ユニット75は、次いで、左シフトパラメータ値を使用して、被量子化値から被逆量子化値を計算する(214)。例えば、パレット復号ユニット75は、以下の式に従って被逆量子化値(deQuantEspValue)を計算し得る。
deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift
[00133]パレット復号ユニット75は、次いで、被逆量子化値を丸める(216)。例えば、パレット復号ユニット75は、以下の例示的なクリッピング演算を使用して、逆量子化値を丸め得る。
deQuantEspValue = clip3 (0, 2bitDepth-1, deQuantEspValue),
ここで、clip3は、ITU-T H.265において定義されている関数である。詳細には、H.265は、clip3(x、y、z)を以下のように定義する。
Figure 2018507625
他の例では、被逆量子化エスケープ画素の値が対応する深度範囲内にあることを保証するために、他の丸め演算が使用され得る。
[00134]このようにして、図6の方法は、ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、右シフトパラメータのための元の値が0よりも小さいことに基づいて、左シフトパラメータのための値を、元の値の絶対値に等しい絶対値を有する正値に設定することと、左シフトパラメータの値を使用してエスケープモードコード化画素を逆量子化することとを含む方法の一例を表す。
[00135]上記例に応じて、本明細書で説明された技法のうちのいずれかの幾つかの行為又はイベントが、異なるシーケンスで実行され得、全体的に追加、マージ、又は除外され得る(例えば、全ての説明された行為又はイベントが本技法の実施のために必要であるとは限らない)ことを認識されたい。その上、幾つかの例では、行為又はイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、又は複数のプロセッサを通して同時に実行され得る。
[00136]1つ又は複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つ又は複数の命令又はコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含むデータ記憶媒体又は通信媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号又は搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明される技法の実装のための命令、コード及び/又はデータ構造を取り出すために、1つ又は複数のコンピュータあるいは1つ又は複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ可読媒体を含み得る。
[00137]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROM又は他の光ディスクストレージ、磁気ディスクストレージ、又は他の磁気記憶装置、フラッシュメモリ、あるいは命令又はデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は媒体の定義に含まれる。但し、コンピュータ可読記憶媒体及びデータ記憶媒体は、接続、搬送波、信号、又は他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)及びディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、及びBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[00138]命令は、1つ又は複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の等価な集積回路又はディスクリート論理回路など、1つ又は複数のプロセッサによって実行され得る。従って、本明細書で使用される「プロセッサ」という用語は、上記の構造、又は本明細書で説明された技法の実装に好適な他の構造のいずれかを指すことがある。更に、幾つかの態様では、本明細書で説明された機能は、符号化及び復号のために構成された専用ハードウェア及び/又はソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つ又は複数の回路又は論理要素で十分に実装され得る。
[00139]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)又はICのセット(例えば、チップセット)を含む、多種多様な機器又は装置で実装され得る。本開示では、開示される技法を実行するように構成された機器の機能的態様を強調するために様々な構成要素、モジュール、又はユニットが説明されたが、それらの構成要素、モジュール、又はユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェア及び/又はファームウェアとともに、上記で説明された1つ又は複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、又は相互動作ハードウェアユニットの集合によって与えられ得る。
[00140]様々な例が説明された。これら及び他の例は以下の特許請求の範囲内に入る。

Claims (29)

  1. ビデオデータを復号する方法であって、前記方法は、
    ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、
    前記右シフトパラメータのための前記値が0よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
    前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
    を備える、方法。
  2. 前記ブロックのための量子化パラメータ(qP)の値に基づいて前記右シフトパラメータのための前記値を決定することを更に備える、請求項1に記載の方法。
  3. 前記エスケープモードコード化画素を含む色成分の色成分インデックス(cIdx)に基づいてqPの前記値を決定することを更に備える、請求項2に記載の方法。
  4. 前記右シフトパラメータのための前記値を決定することが、
    量子化比(qPper)を式qPper=qP/6に従って計算することと、ここにおいて、qPが前記qPの前記値を表す、
    前記右シフトパラメータのための前記値(invQuantRightShift)を式invQuantRightShift=6-qPperに従って計算することと
    を備える、請求項2に記載の方法。
  5. 前記エスケープモードコード化画素を逆量子化することが、前記エスケープモードコード化画素のための値(deQuantEspValue)を以下の式に従って計算することを備え、
    deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,
    ここにおいて、EspValueが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、invQuantScaleが逆量子化スケール値のアレイを表し、qPremが量子化パラメータ剰余値を表し、invQuantLeftShiftが前記左シフトパラメータの前記値を表し、<<がビット単位左シフト演算子を表す、
    請求項1に記載の方法。
  6. invQuantScaleが{40,45,51,57,64,72}を備える、請求項5に記載の方法。
  7. 前記パレットモードコード化ブロックのためのパレットを復号することと、
    前記パレットを使用して前記ブロックの少なくとも1つの他の画素を復号することと、
    前記エスケープモードコード化画素と前記復号された少なくとも1つの他の画素とを使用して前記ブロックを再構成することと
    を更に備える、請求項1に記載の方法。
  8. ビデオデータを復号するための機器であって、前記機器は、
    ビデオデータを記憶するように構成されたメモリと、
    ビデオデコーダと
    を備え、前記ビデオデコーダは、
    前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、
    前記右シフトパラメータのための前記値が0よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
    前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
    を行うように構成された、
    機器。
  9. 前記ビデオデコーダが、前記ブロックのための量子化パラメータ(qP)の値に基づいて前記右シフトパラメータのための前記値を決定するように更に構成された、請求項8に記載の機器。
  10. 前記ビデオデコーダが、前記エスケープモードコード化画素を含む色成分の色成分インデックス(cIdx)に基づいて前記qPの前記値を決定するように更に構成された、請求項9に記載の機器。
  11. 前記右シフトパラメータのための前記値を決定するために、前記ビデオデコーダは、
    量子化比(qPper)を式qPper=qP/6に従って計算することと、ここにおいて、qPが前記qPの前記値を表す、
    前記右シフトパラメータのための前記値(invQuantRightShift)を式invQuantRightShift=6-qPperに従って計算することと
    を行うように構成された、請求項9に記載の機器。
  12. 前記エスケープモードコード化画素を逆量子化するために、前記ビデオデコーダが、前記エスケープモードコード化画素のための値(deQuantEspValue)を以下の式に従って計算するように構成され、
    deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,
    ここにおいて、EspValueが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、invQuantScaleが逆量子化スケール値のアレイを表し、qPremが量子化パラメータ剰余値を表し、invQuantLeftShiftが前記左シフトパラメータの前記値を表し、<<がビット単位左シフト演算子を表す、
    請求項8に記載の機器。
  13. invQuantScaleが{40,45,51,57,64,72}を備える、請求項12に記載の機器。
  14. 前記ビデオデコーダが、
    前記パレットモードコード化ブロックのためのパレットを復号することと、
    前記パレットを使用して前記ブロックの少なくとも1つの他の画素を復号することと、
    前記エスケープモードコード化画素と復号された前記少なくとも1つの他の画素とを使用して前記ブロックを再構成することと
    を行うように更に構成された、請求項8に記載の機器。
  15. 前記機器が、
    集積回路、
    マイクロプロセッサ、又は
    ワイヤレス通信機器
    のうちの少なくとも1つを備える、請求項8に記載の機器。
  16. ビデオデータを復号するための機器であって、前記機器は、
    ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定するための手段と、
    前記右シフトパラメータのための前記値が0よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定するための手段と、
    前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化するための手段と
    を備える、機器。
  17. 前記ブロックのための量子化パラメータ(qP)の値に基づいて前記右シフトパラメータのための前記値を決定するための手段を更に備える、請求項16に記載の機器。
  18. 前記エスケープモードコード化画素を含む色成分の色成分インデックス(cIdx)に基づいて前記qPの前記値を決定するための手段を更に備える、請求項17に記載の機器。
  19. 前記右シフトパラメータのための前記値を決定するための前記手段が、
    量子化比(qPper)を式qPper=qP/6に従って計算するための手段と、ここにおいて、qPが前記qPの前記値を表す、
    前記右シフトパラメータのための前記値(invQuantRightShift)を式invQuantRightShift=6-qPperに従って計算するための手段と
    を備える、請求項17に記載の機器。
  20. 前記エスケープモードコード化画素を逆量子化するための前記手段が、前記エスケープモードコード化画素のための値(deQuantEspValue)を以下の式に従って計算するための手段を備え、
    deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,
    ここにおいて、EspValueが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、invQuantScaleが逆量子化スケール値のアレイを表し、qPremが量子化パラメータ剰余値を表し、invQuantLeftShiftが前記左シフトパラメータの前記値を表し、<<がビット単位左シフト演算子を表す、
    請求項16に記載の機器。
  21. invQuantScaleが{40,45,51,57,64,72}を備える、請求項20に記載の機器。
  22. 前記パレットモードコード化ブロックのためのパレットを復号するための手段と、
    前記パレットを使用して前記ブロックの少なくとも1つの他の画素を復号するための手段と、
    前記エスケープモードコード化画素と前記復号された少なくとも1つの他の画素とを使用して前記ブロックを再構成するための手段と
    を更に備える、請求項16に記載の機器。
  23. 実行されたとき、ビデオデータを復号するための機器のプロセッサに、
    前記ビデオデータのパレットモードコード化ブロックのエスケープモードコード化画素のための右シフトパラメータのための値が0よりも小さいと決定することと、
    前記右シフトパラメータのための前記値が0よりも小さいことに基づいて、左シフトパラメータのための値を、前記右シフトパラメータの絶対値に等しい絶対値を有する正値に設定することと、
    前記左シフトパラメータの前記値を使用して前記エスケープモードコード化画素を逆量子化することと
    を行わせる命令を記憶したコンピュータ可読記憶媒体。
  24. 前記プロセッサに、前記ブロックのための量子化パラメータ(qP)の値に基づいて前記右シフトパラメータのための前記値を決定させる命令を更に備える、請求項23に記載のコンピュータ可読記憶媒体。
  25. 前記プロセッサに、前記エスケープモードコード化画素を含む色成分の色成分インデックス(cIdx)に基づいて前記qPの前記値を決定させる命令を更に備える、請求項24に記載のコンピュータ可読記憶媒体。
  26. 前記プロセッサに前記右シフトパラメータのための前記値を決定させる前記命令は、前記プロセッサに、
    量子化比(qPper)を式qPper=qP/6に従って計算することと、ここにおいて、qPが前記qPの前記値を表す、
    前記右シフトパラメータのための前記値(invQuantRightShift)を式invQuantRightShift=6-qPperに従って計算することと
    を行わせる命令を備える、請求項24に記載のコンピュータ可読記憶媒体。
  27. 前記プロセッサに前記エスケープモードコード化画素を逆量子化させる前記命令が、前記プロセッサに、前記エスケープモードコード化画素のための値(deQuantEspValue)を以下の式に従って計算させる命令を備え、
    deQuantEspValue = EspValue * invQuantScale[qPrem] << invQuantLeftShift,
    ここにおいて、EspValueが、前記エスケープモードコード化画素のためにコード化されたコード化被量子化エスケープ値を表し、invQuantScaleが逆量子化スケール値のアレイを表し、qPremが量子化パラメータ剰余値を表し、invQuantLeftShiftが前記左シフトパラメータの前記値を表し、<<がビット単位左シフト演算子を表す、
    請求項23に記載のコンピュータ可読記憶媒体。
  28. invQuantScaleが{40,45,51,57,64,72}を備える、請求項27に記載のコンピュータ可読記憶媒体。
  29. 前記プロセッサに、
    前記パレットモードコード化ブロックのためのパレットを復号することと、
    前記パレットを使用して前記ブロックの少なくとも1つの他の画素を復号することと、
    前記エスケープモードコード化画素と前記復号された少なくとも1つの他の画素とを使用して前記ブロックを再構成することと
    を行わせる命令を更に備える、請求項23に記載のコンピュータ可読記憶媒体。
JP2017540111A 2015-01-31 2016-01-29 パレットモードコード化のためのエスケープ画素をコード化すること Pending JP2018507625A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562110519P 2015-01-31 2015-01-31
US62/110,519 2015-01-31
US15/009,609 2016-01-28
US15/009,609 US10057587B2 (en) 2015-01-31 2016-01-28 Coding escape pixels for palette mode coding
PCT/US2016/015672 WO2016123492A1 (en) 2015-01-31 2016-01-29 Coding escape pixels for palette mode coding

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019194351A Division JP2020039138A (ja) 2015-01-31 2019-10-25 パレットモードコード化のためのエスケープ画素をコード化すること

Publications (2)

Publication Number Publication Date
JP2018507625A true JP2018507625A (ja) 2018-03-15
JP2018507625A5 JP2018507625A5 (ja) 2018-12-27

Family

ID=55359749

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2017540111A Pending JP2018507625A (ja) 2015-01-31 2016-01-29 パレットモードコード化のためのエスケープ画素をコード化すること
JP2019194351A Withdrawn JP2020039138A (ja) 2015-01-31 2019-10-25 パレットモードコード化のためのエスケープ画素をコード化すること

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019194351A Withdrawn JP2020039138A (ja) 2015-01-31 2019-10-25 パレットモードコード化のためのエスケープ画素をコード化すること

Country Status (11)

Country Link
US (1) US10057587B2 (ja)
EP (1) EP3251365A1 (ja)
JP (2) JP2018507625A (ja)
KR (1) KR102031468B1 (ja)
CN (1) CN107211135A (ja)
AU (1) AU2016211251B2 (ja)
BR (1) BR112017016405A2 (ja)
EA (1) EA035121B1 (ja)
TN (1) TN2017000313A1 (ja)
TW (1) TWI665911B (ja)
WO (1) WO2016123492A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3407606B1 (en) * 2016-02-11 2023-04-26 Samsung Electronics Co., Ltd. Video encoding method and device and video decoding method and device
WO2017205700A1 (en) * 2016-05-25 2017-11-30 Arris Enterprises Llc Binary, ternary and quad tree partitioning for jvet coding of video data
JP6986868B2 (ja) * 2017-06-19 2021-12-22 キヤノン株式会社 画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、プログラム
CA3111156A1 (en) * 2018-08-30 2020-03-05 Huawei Technologies Co., Ltd. An encoding device, a decoding device, and corresponding methods using a palette coding
US11025905B2 (en) * 2018-09-14 2021-06-01 Tencent America LLC Method and device for decoding with palette mode
WO2020169105A1 (en) 2019-02-24 2020-08-27 Beijing Bytedance Network Technology Co., Ltd. Condition dependent coding of palette mode usage indication
EP3987806A4 (en) 2019-07-20 2022-08-31 Beijing Bytedance Network Technology Co., Ltd. CONDITIONAL CODING OF PALETTE MODE USE INDICATION
CN114145013B (zh) 2019-07-23 2023-11-14 北京字节跳动网络技术有限公司 调色板模式编解码的模式确定
US11277611B2 (en) * 2019-07-24 2022-03-15 Qualcomm Incorporated Delta quantization parameter (QP) signaling in palette mode
EP3991411A4 (en) 2019-07-29 2022-08-24 Beijing Bytedance Network Technology Co., Ltd. CODING IN PALETTE MODE IN A PREDICTION PROCESS
WO2021030667A1 (en) * 2019-08-15 2021-02-18 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus of video coding using palette mode
US11323711B2 (en) * 2019-09-20 2022-05-03 Alibaba Group Holding Limited Method and system for signaling chroma quantization parameter offset

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016123262A1 (en) * 2015-01-29 2016-08-04 Vid Scale, Inc. Escape color coding for palette coding mode

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5715470A (en) * 1992-09-29 1998-02-03 Matsushita Electric Industrial Co., Ltd. Arithmetic apparatus for carrying out viterbi decoding at a high speed
US6909744B2 (en) * 1999-12-09 2005-06-21 Redrock Semiconductor, Inc. Processor architecture for compression and decompression of video and images
US7818356B2 (en) * 2001-10-29 2010-10-19 Intel Corporation Bitstream buffer manipulation with a SIMD merge instruction
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7502415B2 (en) * 2003-07-18 2009-03-10 Microsoft Corporation Range reduction
US8014450B2 (en) * 2003-09-07 2011-09-06 Microsoft Corporation Flexible range reduction
US7610472B2 (en) * 2005-06-05 2009-10-27 Apple Inc. Performing variable and/or bitwise shift operation for a shift instruction that does not provide a variable or bitwise shift option
US8385424B2 (en) * 2006-06-26 2013-02-26 Qualcomm Incorporated Reduction of errors during computation of inverse discrete cosine transform
US7554468B2 (en) * 2006-08-25 2009-06-30 Sony Computer Entertainment Inc, Entropy decoding methods and apparatus using most probable and least probable signal cases
US8749409B2 (en) * 2006-08-25 2014-06-10 Sony Computer Entertainment Inc. Entropy decoding methods and apparatus using most probable and least probable signal cases
GB2454201A (en) * 2007-10-30 2009-05-06 Advanced Risc Mach Ltd Combined Magnitude Detection and Arithmetic Operation
WO2009092455A2 (en) * 2008-01-21 2009-07-30 Telefonaktiebolaget Lm Ericsson (Publ) Prediction-based image processing
US8331664B2 (en) * 2008-01-21 2012-12-11 Telefonaktiebolaget Lm Ericsson (Publ) Prediction-based image processing
KR101530284B1 (ko) * 2010-07-16 2015-06-19 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
PL3361725T3 (pl) * 2011-06-23 2020-07-13 Huawei Technologies Co., Ltd. Urządzenie do dekodowania przesunięcia, urządzenie do kodowania przesunięcia, urządzenie do filtrowania obrazu i struktura danych
GB2501535A (en) * 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
US20140286412A1 (en) * 2013-03-25 2014-09-25 Qualcomm Incorporated Intra dc prediction for lossless coding in video coding
US9558567B2 (en) * 2013-07-12 2017-01-31 Qualcomm Incorporated Palette prediction in palette-based video coding
KR102324004B1 (ko) * 2014-03-14 2021-11-09 브이아이디 스케일, 인크. 스크린 콘텐츠 코딩을 위한 팔레트 코딩
US20150264348A1 (en) * 2014-03-17 2015-09-17 Qualcomm Incorporated Dictionary coding of video content
CN106471805A (zh) * 2014-05-09 2017-03-01 诺基亚技术有限公司 用于使用调色板编码进行视频编码和解码的方法和技术设备
CN105323583B (zh) * 2014-06-13 2019-11-15 财团法人工业技术研究院 编码方法、解码方法、编解码系统、编码器与解码器
US20170171560A1 (en) * 2014-06-20 2017-06-15 Sharp Kabushiki Kaisha Efficient palette coding for screen content codings
EP3723378A1 (en) * 2014-10-06 2020-10-14 VID SCALE, Inc. Improved palette coding for screen content coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016123262A1 (en) * 2015-01-29 2016-08-04 Vid Scale, Inc. Escape color coding for palette coding mode

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
FENG ZOU ET AL.: "CE 1 Related: On escape pixel coding for palette mode", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) 20TH MEETING: GENEVA, vol. JCTVC-T0112.doc, JPN6019006098, 31 January 2015 (2015-01-31) *
RAJAN JOSHI ET AL.: "High Efficiency Video Coding (HEVC) Screen Content Coding: Draft 2", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) 18TH MEETING: SAPPORO, vol. JCTVC-S1005.doc, JPN6019006095, 10 December 2014 (2014-12-10) *
XIAOYU XIU ET AL.: "Non-CE1: On escape color coding for palette coding mode", JOINT COLLABORATIVE TEAM ON VIDEO CODING (JCT-VC) 20TH MEETING: GENEVA, vol. JCTVC-T0118.docx, JPN6019006096, 31 January 2015 (2015-01-31) *

Also Published As

Publication number Publication date
TW201644277A (zh) 2016-12-16
WO2016123492A1 (en) 2016-08-04
KR102031468B1 (ko) 2019-10-11
TWI665911B (zh) 2019-07-11
EA201791499A1 (ru) 2017-11-30
US20160227225A1 (en) 2016-08-04
US10057587B2 (en) 2018-08-21
AU2016211251A1 (en) 2017-07-13
BR112017016405A2 (pt) 2018-03-27
KR20170115529A (ko) 2017-10-17
JP2020039138A (ja) 2020-03-12
EA035121B1 (ru) 2020-04-29
CN107211135A (zh) 2017-09-26
EP3251365A1 (en) 2017-12-06
TN2017000313A1 (en) 2019-01-16
AU2016211251B2 (en) 2019-09-26

Similar Documents

Publication Publication Date Title
US11431968B2 (en) Variable number of intra modes for video coding
KR102334126B1 (ko) 인트라 블록 복사를 위한 레지듀얼 예측
US9667994B2 (en) Intra-coding for 4:2:2 sample format in video coding
US9432696B2 (en) Systems and methods for low complexity forward transforms using zeroed-out coefficients
KR102352638B1 (ko) 비디오 코딩 프로세스에서의 계수 레벨 코딩
US9883203B2 (en) Adaptive overlapped block motion compensation
US9807401B2 (en) Transform unit partitioning for chroma components in video coding
KR102031468B1 (ko) 팔레트 모드 코딩을 위한 이스케이프 픽셀들 코딩
US20150071357A1 (en) Partial intra block copying for video coding
US10334253B2 (en) Sample adaptive offset scaling based on bit-depth
JP2018509035A (ja) 適応型成分間残差予測
CA2913797A1 (en) Rice parameter initialization for coefficient level coding in video coding process
JP2016534649A (ja) イントラブロックコピー実行時の領域決定
JP2016511975A (ja) イントラ予測のためのモード決定の簡略化
JP2015512600A (ja) クロマスライスレベルqpオフセットおよびデブロッキング
JP2013546257A (ja) ビデオコーディングのためのシンタックス要素のジョイントコーディング
US20150098504A1 (en) Block vector coding for intra block copying
US20130188698A1 (en) Coefficient level coding
KR20160135756A (ko) 레지듀 차분 펄스 코드 변조을 위한 양자화 프로세스들
OA18379A (en) Coding escape pixels for palette mode coding.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181112

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191025

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20191025

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20191105

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20191112

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20191213

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20191217

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20200324

C13 Notice of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: C13

Effective date: 20200901

C23 Notice of termination of proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C23

Effective date: 20210105

C03 Trial/appeal decision taken

Free format text: JAPANESE INTERMEDIATE CODE: C03

Effective date: 20210209

C30A Notification sent

Free format text: JAPANESE INTERMEDIATE CODE: C3012

Effective date: 20210209