JP6730187B2 - データ符号化及び復号化 - Google Patents

データ符号化及び復号化 Download PDF

Info

Publication number
JP6730187B2
JP6730187B2 JP2016542255A JP2016542255A JP6730187B2 JP 6730187 B2 JP6730187 B2 JP 6730187B2 JP 2016542255 A JP2016542255 A JP 2016542255A JP 2016542255 A JP2016542255 A JP 2016542255A JP 6730187 B2 JP6730187 B2 JP 6730187B2
Authority
JP
Japan
Prior art keywords
data
encoded
value
prefix
length
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.)
Active
Application number
JP2016542255A
Other languages
English (en)
Other versions
JP2017507519A (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JP2017507519A publication Critical patent/JP2017507519A/ja
Application granted granted Critical
Publication of JP6730187B2 publication Critical patent/JP6730187B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • H03M7/4075Golomb codes
    • 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/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

[関連出願の相互参照]
本願は、2014年3月5日出願のGB1403854.1号及び2013年12月23日出願のGB1322947.1号の優先権を主張するものであり、参照によってそれらの全体が本明細書に援用される。
本発明は、データ符号化及び復号化に関する。
本明細書の「背景技術」の記載は、本出願における背景を一般的に説明するためのものである。本発明者らの技術は、この背景技術の欄で説明される範囲において、本出願の出願時点で従来技術でないのであれば従来技術と見なしてはならない説明の側面と同様に、明示又は黙示を問わず、本出願に対する従来技術として認められるものではない。
ビデオデータを周波数領域表現に変換し、得られた周波数領域係数を量子化し、その後、当該量子化された係数にある種のエントロピー符号化を適用するビデオデータ圧縮システム及びビデオデータ解凍システムが存在する。
これに関して、エントロピーは1つのデータシンボル又は一連のシンボルの情報量を表していると考えられる。エントロピー符号化の目的は、(理想的には)一連のデータシンボルの情報量を表すのに必要な最小数の符号化データビットを用いた無損失な方法で、当該一連のデータシンボルを符号化することである。実際には、エントロピー符号化は、符号化されたデータのサイズが元の量子化係数のデータサイズよりも(ビット数に関して)小さくなるように実行される。より効率的なエントロピー符号化処理を行うことができれば、入力データサイズが同じ場合でも、出力データサイズを小さくすることができる。
ビデオデータをエントロピー符号化する技術の1つとして、いわゆるコンテキスト適応バイナリ算術符号化(CABAC:context adaptive binary arithmetic coding)と呼ばれる技術がある。
本発明の目的は、効率的なエントロピー符号化処理を行うことができるデータ復号化装置及びデータ復号化装置の動作方法を提供することである。
本開示によれば、請求項1に記載のデータ復号化装置、すなわち、入力される符号化データ値を、ビット深度を有する復号化データ値に復号化するように構成されるデコーダを具備し、前記入力される符号化データ値は、データセット、及び前記データセットによって符号化されない値のためのエスケープコードとして符号化され、前記エスケープコードはそれぞれ、前記データ値の前記ビット深度に依存する最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の長さが、前記プレフィックス部分の前記ビット長より長くなる関係にある、非α符号化サフィックス部分とを有するデータ復号化装置が提供される。
本発明の各側面及び特徴は、添付の特許請求の範囲において定義される。
なお、上述の一般的な説明及び以降の詳細な説明は、本発明の一例であり、本発明を限定するものではないことが理解されるべきである。
ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオ(A/V)データ送受信システムを示す概略図である。 ビデオデータ解凍を行うビデオ表示システムを示す概略図である。 ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオ記憶システムを示す概略図である。 ビデオデータ圧縮を行うビデオカメラを示す概略図である。 ビデオデータ圧縮・解凍装置を示す概略図である。 予測画像の生成を示す概略図である。 最大符号化ユニット(LCU:Largest Coding Unit)を示す概略図である。 4つの符号化ユニット(CU:Coding Unit)の組を示す概略図である。 小さな符号化ユニットに細分された図8の符号化ユニットを示す概略図である。 小さな符号化ユニットに細分された図8の符号化ユニットを示す概略図である。 予測ユニット(PU:Prediction Unit)の配列を示す概略図である。 変換ユニット(TU:Transform Unit)の配列を示す概略図である。 部分的に符号化された画像を示す概略図である。 考えられる一連の予測方向を示す概略図である。 一連の予測モードを示す概略図である。 ジグザグスキャンを示す概略図である。 CABACエントロピーエンコーダを示す概略図である。 符号化技術を示す概略フローチャートである。 符号化技術を示す概略フローチャートである。 符号化技術を示す概略フローチャートである。 符号化技術を示す概略フローチャートである。
添付図面と共に以降の詳細な説明を参照することによって、本発明の完全な理解及びその優位性の多くが容易に理解される。
次に各図面を参照すると、図1〜図4には、以下に説明する各実施形態に係る圧縮装置及び/又は解凍装置を利用する装置又はシステムが概略的に示されている。
以下に説明する全てのデータ圧縮装置及び/又はデータ解凍装置は、ハードウェアで実現されてもよいし、例えば、特定用途向け集積回路(ASIC:application specific integrated circuit)又はフィールドプログラマブルゲートアレイ(FPGA:field programmable gate array)、あるいはこれらの組み合わせ等のようなプログラム可能なハードウェアとして、汎用コンピュータ等の汎用データ処理装置上で動作するソフトウェアで実現されてもよい。ソフトウェア及び/又はファームウェアで実現される実施形態の場合、このようなソフトウェア及び/又はファームフェア、並びに、このようなソフトウェア及び/又はファームウェアが記憶又は提供される非一時的な機械可読データ記憶媒体が、本発明の実施形態であると考えられることが理解されよう。
図1は、ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオデータ送受信システムを示す概略図である。
入力オーディオ/ビデオ信号10は、少なくともオーディオ/ビデオ信号10のビデオ要素を圧縮するビデオデータ圧縮装置20に供給され、例えば、ケーブル、光ファイバ、無線リンク等の送信ルート30に沿って送信される。圧縮された信号は、解凍装置40によって処理され、これにより、出力オーディオ/ビデオ信号50が提供される。リターンパスでは、圧縮装置60がオーディオ/ビデオ信号を圧縮し、当該オーディオ/ビデオ信号は送信ルート30に沿って解凍装置70に送信される。
したがって、圧縮装置20及び解凍装置70は、送信リンクにおける1つのノードを構成することができる。また、解凍装置40及び圧縮装置60は、送信リンクにおける他の1つのノードを構成することができる。もちろん、送信リンクが単方向である場合は、一方のノードのみが圧縮装置を要求し、他方のノードのみが解凍装置を要求することになる。
図2は、ビデオデータ解凍を行うビデオ表示システムを示す概略図である。具体的には、圧縮されたオーディオ/ビデオ信号100は解凍装置110によって処理され、これにより、表示装置120上で表示することができる解凍信号が提供される。解凍装置110は、例えば、表示装置120と同じケーシング内に設けることにより、表示装置120と一体的に形成してもよい。あるいは、解凍装置110は、(例えば)いわゆるセットトップボックス(STB:Set Top Box)として提供されてもよい。なお、「セットトップ」という表現は、当該ボックスを表示装置120に対して特定の方向又は位置に配置する必要があることを意味するわけではない。この用語は、単に、周辺機器として表示部に接続可能なデバイスを示すために当該技術分野において使用しているに過ぎない。
図3は、ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオ記憶システムを示す概略図である。入力オーディオ/ビデオ信号130は、圧縮信号を生成する圧縮装置140に供給され、例えば、磁気ディスク装置、光ディスク装置、磁気テープ装置、又は半導体メモリやその他の記憶装置等の固体記憶装置等の記憶装置150に記憶される。再生時においては、圧縮データが記憶装置150から読み出され、解凍装置160に渡されて解凍される。これにより、出力オーディオ/ビデオ信号170が提供される。
圧縮信号又は符号化信号、及び当該信号を記憶する記憶媒体又はデータキャリアは、本発明の実施形態であると考えられることが理解されよう。
図4は、ビデオデータ圧縮を行うビデオカメラを示す概略図である。図4において、CCD(Charge Coupled Device)イメージセンサ及びそれに付随する制御・読出電子機器等の画像キャプチャ装置180は、圧縮装置190に渡されるビデオ信号を生成する。1つのマイクロフォン(あるいは複数のマイクロフォン)200は、圧縮装置190に渡されるオーディオ信号を生成する。圧縮装置190は、記憶及び/又は送信される(図4においては、ステージ220として包括的に表されている)圧縮オーディオ/ビデオ信号210を生成する。
以下に説明する技術は、主に、ビデオデータ圧縮に関する。オーディオデータ圧縮を行うために、以降に説明するビデオデータ圧縮技術とともに多くの既存の技術を用いて圧縮オーディオ/ビデオ信号を生成してもよいことが理解されよう。したがって、オーディオデータ圧縮について別途説明は行わない。また、特に、放送品質ビデオデータにおいて、ビデオデータに関連するデータレートは、(圧縮及び非圧縮を問わず)一般的に、オーディオデータに関連するデータレートよりもはるかに高いことも理解されよう。したがって、非圧縮オーディオデータは、圧縮ビデオデータに追加することができ、これにより、圧縮オーディオ/ビデオ信号を形成できることが理解されよう。さらに、本発明の実施形態(図1〜図4参照)はオーディオ/ビデオデータに関するものであるが、以下に説明する技術は、単にビデオデータを扱う(すなわち、圧縮、解凍、記憶、表示、及び/又は送信する)システムに使用してもよいことが理解されよう。すなわち、これらの実施形態は、必ずしもオーディオデータ処理と関連している必要はなく、ビデオデータ圧縮に適用することができる。
図5は、制御部345の制御下で動作するビデオデータ圧縮・解凍装置を示す概略図である。
連続画像の入力ビデオ信号300は、加算部310及び画像予測部320に供給される。画像予測部320については、図6を参照して後で詳述する。加算部310は、「+」入力上で入力ビデオ信号300を受信し、「−」入力上で画像予測部320の出力を受信する事実上の減算(負の加算)動作を実行する。これにより、入力画像から予測画像が減算される。この結果、実画像と予測画像との差を表すいわゆる残差画像信号330が生成される。
残差画像信号を生成する理由の1つは次の通りである。説明を行うデータ符号化技術、すなわち、残差画像信号に適用される技術は、符号化される画像において「エネルギー」が少ない場合に、より効率的に作用する傾向がある。ここで、「効率的」という用語は、生成した符号化データの量が少ないことを指す。特定の画像品質レベルにおいては、生成するデータができるだけ少ないことが望ましい(かつ、「効率的」と考えられる)。残差画像における「エネルギー」は、残差画像に含まれる情報量に関連する。仮に、予測画像と実画像とが同一だとすると、これら2つの画像の差(すなわち、残差画像)は、ゼロの情報(ゼロエネルギー)を含み、非常に容易に少量の符号化データに符号化できる。一般的に、予測処理をある程度良好に実行できる場合、残差画像データは、入力画像よりも情報が小さく(エネルギーが少ない)、容易に少量の符号化データに符号化することができると予想される。
残差画像データ330は、残差画像データの離散コサイン変換(DCT:Discrete Cosine Transform)表現を生成する変換部340に供給される。このDCT技術自体は広く知られており、ここでの詳細な説明は行わない。しかしながら、特に、DCT動作が適用されるデータの様々なブロックの選択に関して、以降で詳細に説明する装置で用いられる技術の側面が存在する。これらについては、図7〜図12を参照して以降で説明する。
なお、いくつかの実施形態では、DCTの代わりに、離散サイン変換(DST:discrete sine transform)を用いる。他の実施形態においては、変換を実行しなくてもよい。この変換は選択的に行うことができ、例えば、「変換スキップ」コマンド/モードの制御により、変換ステージが事実上バイパスされる。
変換部340の出力、すなわち、画像データにおける各変換ブロックに対する一連の変換係数は、量子化部350に供給される。量子化スケーリング要素による単純な乗算から、量子化パラメータの制御下における複雑なルックアップテーブルの応用に至るまで、様々な量子化技術がビデオデータ圧縮の分野において広く知られている。その目的として一般的なものには2つある。1つ目は、変換データが取り得る値を量子化処理により減少させることである。2つ目は、変換データの値がゼロである可能性を量子化処理により増加させることである。これらにより、少量の圧縮ビデオデータの生成において、以下に説明するエントロピー符号化処理をより効率的に行うことができる。
スキャン部360により、データスキャン処理が適用される。スキャン処理の目的は、非ゼロの量子化変換係数をできるだけひとまとめにするため、また、もちろん、これにより、ゼロ値の係数をできるだけひとまとめにするために、量子化変換データを再整理することである。これらの機能により、いわゆるランレングス符号化、又は同様の技術を効率的に適用することができる。したがって、スキャン処理は、(a)スキャンの一部として全ての係数が一度は選択されるように、かつ、(b)スキャンにより所望の再整理を行うことができるように、「スキャン順」に従って、量子化変換データ、及び、特に、変換及び量子化された画像データのブロックに対応する係数のブロックから係数を選択することを含む。スキャン順を選択する技術について以下に説明する。有効な結果をもたらすスキャン順の1つの例は、いわゆるジグザグスキャン順である。
スキャンされた係数は、その後、エントロピーエンコーダ(EE)370に渡される。この場合もやはり、各種のタイプのエントロピー符号化を実行してもよい。以下に説明する2つの例は、いわゆるCABAC(Context Adaptive Binary Coding)システムの変形、及び、いわゆるCAVLC(Context Adaptive Variable-Length Coding)システムの変形である。一般的に、CABACは効率がよいと考えられている。ある研究では、CABACにおける符号化出力データの量は、同等の画像品質に対して、CAVLCよりも10〜20%少ないことが示されている。しかしながら、CAVLCが示す(実行する上での)複雑性のレベルは、CABACの複雑性のレベルよりもはるかに低いと考えられている。CABAC技術については、図17を参照して以降に説明し、CAVLC技術については、図18及び図19を参照して以降に説明する。
なお、スキャン処理及びエントロピー符号化処理は、別々の処理として示されているが、実際には、組み合わせるか、又は、一緒に扱うことができる。すなわち、エントロピーエンコーダへのデータの読み出しは、スキャン順で行うことができる。これと同様の事は、以下に説明する各逆処理にも当てはまる。
エントロピーエンコーダ370の出力により、例えば、予測部320が予測画像を生成する方法を定義する(上述及び/又は後述の)追加データと共に、圧縮出力ビデオ信号380が提供される。
一方、予測部320自身の動作は解凍された圧縮出力データに依存するため、リターンパスも提供される。
この機能の理由は以下の通りである。解凍処理(後述)における適切なステージで、解凍された残差データが生成される。この解凍残差データは、出力画像を生成するために、予測画像に追加する必要がある(なぜなら、元の残差データは、入力画像と予測画像との差であったため)。圧縮側と解凍側との間でこの処理が同等となるように、予測部320によって生成される予測画像は、圧縮処理中及び解凍処理中において、同一であるべきである。もちろん、装置は、解凍時において元の入力画像にアクセスすることができない。装置がアクセスできるのは、解凍画像のみである。したがって、圧縮時において、予測部320は、解凍された圧縮画像に基づいて(少なくとも、インター画像符号化について)その予測を行う。
エントロピーエンコーダ370により実行されるエントロピー符号化処理は、「無損失(lossless)」であると考えられる。すなわち、エントロピーエンコーダ370に最初に供給されたデータと全く同じデータに置き換えることができる。したがって、リターンパスは、エントロピー符号化ステージよりも前に実装することができる。実際、スキャン部360によって実行されるスキャン処理も無損失であると考えられるが、本実施形態では、リターンパス390は、量子化部350の出力から、補足逆量子化部420の入力までとされている。
一般的には、エントロピーデコーダ(ED)410、逆スキャン部400、逆量子化部420、逆変換部430は、それぞれ、エントロピーエンコーダ370、スキャン部360、量子化部350、及び変換部340の逆機能を提供する。ここでは、圧縮処理について説明を続け、入力圧縮ビデオ信号を解凍するための処理については、これとは別に後述する。
圧縮処理において、量子化された係数は、リターンパス390により量子化部350から、スキャン部360の逆動作を実行する逆量子化部420に渡される。逆量子化処理及び逆変換処理がユニット420、430により実行され、圧縮−解凍残差画像信号440が生成される。
画像信号440は、加算部450で予測部320の出力に追加され、再構築出力画像460が生成される。これにより、以下に説明するように、画像予測部320への1つの入力が構成される。
受信した圧縮ビデオ信号470に適用される処理について説明する。圧縮ビデオ信号470は、まず、エントロピーデコーダ410に供給され、そこから逆スキャン部400、逆量子化部420、及び逆変換部430の順に供給される。その後、加算部450により画像予測部320の出力に追加される。単刀直入に言うと、加算部450の出力460は、出力解凍ビデオ信号480を形成する。実際には、信号の出力の前に、さらにフィルタリングを施してもよい。
図5をエンコーダに関して説明したが、復号化リターンパス(400、410、420、430、450、320(すべて制御部345の制御下で動作する))は、デコーダの一例をなすことを理解されたい。上述した動作及び以下で説明する動作は、符号化動作及び復号化動作に関する(適用可能な)方法ステップの例である。
図5(及び図6)に示す構成の動作(及び後述する他の動作)は、制御部345によって制御することができる。
図6は、予測画像の生成を示す概略図であり、特に、画像予測部320の動作を示している。
いわゆるイントラ画像予測、及びいわゆるインター画像予測又は動き補償(MC:Motion-Compensated)予測という2つの基本的な予測モードが存在する。
イントラ画像予測は、同一画像内から得られるデータにおける画像ブロックの内容の予測を基礎としている。これは、他のビデオ圧縮技術における、いわゆるIフレーム符号化に対応する。画像全体がイントラ符号化されるIフレーム符号化とは対照的に、本実施形態では、イントラ符号化及びインター符号化の選択を、ブロック毎に行うことができる。他の実施形態では、当該選択が依然として画像毎に行われる。
動き補償予測においては、他の隣接画像又は近接画像において、現在の画像において符号化される画像詳細のソースを定義しようとする動き情報が用いられる。したがって、理想的な例では、予測画像における画像データのブロックの内容は、隣接画像における同じ位置もしくはわずかに異なる位置にある対応ブロックを示す参照(動きベクトル)として、非常に容易に符号化することができる。
図6に戻る。図6には(イントラ画像予測及びインター画像予測に対応する)2つの画像予測構成が示されており、その予測結果が、加算部310及び450に供給するための予測画像のブロックを提供するように、モード信号510の制御下において乗算部500によって選択される。当該選択は、どちらを選択すれば最小の「エネルギー」(上述のように、符号化を要求する情報量と考えてもよい)となるかに基づいて行われ、また、当該選択は、符号化出力データストリーム内でエンコーダに通知される。これに関して、例えば、入力画像から、2つのバージョンの予測画像の領域を試行減算し、差分画像の各ピクセル値を2乗し、乗算値を合計し、当該2つのバージョンのうち、その画像領域に関連する差分画像の平均乗算値が低いのはどちらのバージョンかを特定することによって、画像エネルギーを検出することができる。
イントラ予測システムにおいて、実際の予測は、信号460の一部として受信された画像ブロックに基づいて行われる。すなわち、予測は、解凍装置において全く同じ予測を行うことができるように、符号化−復号化画像ブロックに基づいて行われる。しかしながら、データを入力ビデオ信号300から抽出して、イントラモード選択部520により、イントラ画像予測部530の動作を制御することもできる。
インター画像予測では、動き補償(MC)予測部540は、例えば、動き推定部550によって入力ビデオ信号300から抽出された動きベクトル等の動き情報を用いる。これら動きベクトルは、インター画像予測のブロックを生成する動き補償予測部540によって、処理された再構築画像460に適用される。
ここで、信号460に適用される処理について説明する。まず、信号460は、フィルタ部560によってフィルタリングされる。この処理では、変換部340により実行されるブロックに基づく処理及び後続の動作に対する影響を除去するか、少なくとも低減させるために「非ブロック化(deblocking)」フィルタが適用される。また、再構築信号460及び入力ビデオ信号300を処理することによって得られた係数を使用して、適応ループフィルタが適用される。この適応ループフィルタは、公知の技術を使用して、フィルタリング対象のデータに対して適応フィルタ係数を適用するフィルタの一種である。すなわち、フィルタ係数は、各種要素に基づいて変化し得る。どのフィルタ係数を用いるかを定義するデータは、符号化出力データストリームの一部に挿入される。
フィルタ部560からのフィルタリングされた出力は、実際には、出力ビデオ信号480を形成する。この信号は、1つ又は複数の画像記憶部570に記憶される。連続画像の記憶は、動き補償予測処理、特に、動きベクトルの生成において要求される。必要メモリを確保するため、画像記憶部570内の記憶画像は、圧縮形式で保持され、その後、動きベクトルの生成に用いるために解凍されてもよい。この特定の目的のために、公知のいかなる圧縮/解凍システムを用いてもよい。記憶画像は、より高い解像度の記憶画像を生成する補間フィルタ580に渡される。この例では、補間フィルタ580によって出力される補間画像の解像度が、画像記憶部570に記憶された画像の8倍(各寸法)となるように、中間サンプル(サブサンプル)が生成される。補間画像は、動き推定部550及び動き補間予測部540への入力として渡される。
いくつかの実施形態では、乗算部600を使用して、入力ビデオ信号のデータ値に因数4を乗算し(効率的には、単にデータ値を2ビット左にシフトさせる)、除算部又は右シフト部610を使用して、装置の出力で、対応する除算動作(2ビット右にシフト)を適用する任意のステージがさらに提供される。したがって、左へのシフト及び右へのシフトにより、単に装置の内部動作に対して、データが変更される。この方法により、あらゆるデータ丸め誤差の影響も低減されるので、装置内における高い計算精度を提供することができる。
ここで、圧縮処理のために画像を分割する方法について説明する。基本的なレベルでは、圧縮される画像はサンプルブロックの配列として考えることができる。検討されているこのようなブロックの中で最大のものは、便宜的に、64×64サンプルの正方形配列を表すいわゆる最大符号化ユニット(LCU:largest coding unit)700とする(図7参照)。ここで、輝度サンプルについて説明する。4:4:4、4:2:2、4:2:0、又は4:4:4:4(GBR+キーデータ)等のクロミナンスモードによって、輝度ブロックに対応する、対応クロミナンスサンプルの数が異なる。
符号化ユニット、予測ユニット、及び変換ユニットという基本的な3つの種類のブロックについて説明する。一般的には、LCUの再帰的な分割により、例えば、ブロックサイズ及びブロック符号化パラメータ(予測又は残差符号化モード等)が、符号化される画像の特定の特徴に応じて設定されるといった方法で、入力画像が分割される。
LCUは、いわゆる符号化ユニット(CU)に分割されてもよい。符号化ユニットは、常に正方形であり、また、8×8サンプルから最大サイズのLCU700までのサイズを有している。符号化ユニットは、ある種のツリー構造として配置されてもよい。その結果、例えば、第1の分割が図8に示すように行われて、32×32サンプルの符号化ユニット710が与えられる。続いて行われる分割は、16×16サンプルの符号化ユニット720(図9)及び潜在的な8×8サンプルの符号化ユニット730(図10)が与えられるように、選択的な基準に基づいて行われてもよい。全体としては、この処理により、LCUと同じ大きさ、あるいは、8×8サンプルと同じ大きさを有するCUブロックの容量適応符号化ツリー構造を提供することができる。出力ビデオデータの符号化は、符号化ユニット構造に基づいて行われる。
図11は、予測ユニット(PU)の配列を示す概略図である。予測ユニットは、画像予測処理に関連する情報を伝達するための基本的なユニットであり、換言すると、図5の装置からの出力ビデオ信号を形成するためのエントロピー符号化された残差画像データに追加される追加データである。一般的に、予測ユニットの形状は、正方形に限られない。これらは、最小(8×8)サイズより大きい限り、特に、1つの正方形符号化ユニットの半分を形成する長方形等、他の形状を採ることができる。その目的は、隣接する予測ユニットの境界が画像内の実オブジェクトの境界に(できるだけ近くに)合わせられるようにすることであり、その結果、様々な予測パラメータを異なる実オブジェクトに適用することができる。各符号化ユニットは、1つ又は複数の予測ユニットを含んでいてもよい。
図12は、変換ユニット(TU)の配列を示す概略図である。変換ユニットは、変換・量子化処理における基本的なユニットである。変換ユニットは、常に正方形であり、4×4サンプルから32×32サンプルまでのサイズを採ることができる。各符号化ユニットは1つ又は複数の変換ユニットを含むことができる。図12における頭字語SDIP−Pは、いわゆる短距離イントラ予測分割を示している。この配列では、1次元の変換のみが行われる。したがって、4×NブロックがN回の変換により渡され、変換における入力データは、現在のSDIP−P内の既に復号化されている隣接ブロック及び既に符号化されている隣接線に基づく。
ここで、イントラ予測処理について説明する。一般的に、イントラ予測には、同一画像内における既に符号化及び復号化されたサンプルから、サンプルの現在のブロック(予測ユニット)を予測することが含まれる。図13は、部分的に符号化された画像800を示す概略図である。ここで、画像800は、LCU基準で、左上から右下へと符号化されている。画像全体の処理により部分的に符号化されたLCUの一例がブロック810として示されている。ブロック810の上部及び左側の陰影領域820は既に符号化されている。ブロック810の内容のイントラ画像予測においては、いずれの陰影領域820も利用することができるが、その下部の陰影が付されていない領域を利用することはできない。
ブロック810は、上述のように、イントラ画像予測処理を行うためのLCUを表しており、より小さな一連の予測ユニットに分割されてもよい。予測ユニット830の一例がLCU810内に示されている。
イントラ画像予測においては、現在のLCU810の上部及び/又は左側に位置するサンプルが考慮される。要求されるサンプルは、ソースサンプルから予測される。当該ソースサンプルは、LCU810内の現在の予測ユニットに対して異なる位置又は方向に位置していてもよい。現在の予測ユニットに対してどの方向が適切であるかを決定するために、候補とされる各方向に基づく試行予測の結果を比較して、どの方向が入力画像の対応ブロックに最も近い結果をもたらすかを確認する。
画像は、「スライス」基準で符号化されてもよい。1つの例では、スライスは、水平隣接グループのLCUである。しかしながら、より一般的には、残差画像全体でスライスを構成することができ、あるいは、スライスを単一のLCU又はLCUの行等とすることもできる。スライスは、独立ユニットとして符号化されるので、誤差に復元性をもたらすことができる。エンコーダ及びデコーダの状態は、スライス境界で完全にリセットされる。例えば、イントラ予測はスライス境界をまたいで実行されない。このため、スライス境界は、画像境界として扱われる。
図14は、考えられる(候補となる)一連の予測方向を示す概略図である。8×8、16×16、又は32×32サンプルの予測ユニットに対して、全部で34の方向候補を利用可能である。予測ユニットサイズが、4×4サンプル又は64×64サンプルである特殊なケースでは、数を減らした一連の方向候補(それぞれ、17つの方向候補及び5つの方向候補)を使用することができる。方向は、現在のブロック位置に対する水平及び垂直移動により決定されるが、予測「モード」として符号化される。当該一連の方向を図15に示す。なお、いわゆるDCモードは、周囲にある上部及び左側のサンプルの単純算術平均を表す。
図16は、スキャンパターンであるジグザグスキャンを示す概略図である。当該スキャンパターンは、スキャン部360により適用されてもよい。図16においては、DC係数がブロックの左上の位置840に位置し、増加する水平及び垂直空間周波数が左上の位置840の下側及び右側への距離を増加させる係数により表される、8×8変換係数のブロックの例についてのパターンが示されている。
なお、いくつかの実施形態では、当該係数を逆順(図16の順番表記を利用すると右下から左上)にスキャンしてもよい。また、いくつかの実施形態では、最上段からいくつか(例えば、1から3)の水平行をまたいで左から右にスキャンを実行して、その後、残りの係数のジグザグスキャンを実行してもよい。
図17は、CABACエントロピーエンコーダの動作を示す概略図である。
いくつかの実施形態に係る本機能のコンテキスト適応符号化において、データビットが1又は0である可能性の期待値又は予測値を表す確率モデル、すなわち、コンテキストに関してわずかなデータを符号化することがある。このため、入力データビットには、様々なコード値の2つ(又は、より一般的には、複数)の補足サブレンジのうち選択した1つのサブレンジ内のコード値が割り当てられ、サブレンジのそれぞれのサイズ(いくつかの実施形態では、一連のコード値に対するサブレンジそれぞれの比率)は、コンテキスト(入力値に関連付けられ、そうでなければ関連のあるコンテキスト変数により順に定義される)により定義される。次のステップで、選択されたサブレンジの割り当てコード値及び現在のサイズに応答して、全範囲、すなわち、(次の入力データビット又は値に対して使用される)一連のコード値が修正される。その後、修正した範囲が所定の最小サイズ(例えば、元の範囲サイズの半分)を表す閾値よりも小さい場合、例えば修正した範囲を2倍(左にシフト)することによりサイズを増加させる。この倍増処理は、必要があれば、当該範囲が少なくとも当該所定の最小サイズになるまで連続して(2回以上)行うことができる。この時点で、出力符号化データビットが生成され、これにより、(複数の場合、それぞれの)倍増動作、すなわち、サイズ増加動作が行われたことが示される。別のステップにおいて、次の入力データビット又は値と共に使用するために、又は当該入力データビット又は値に関して(いくつかの実施形態では、符号化されるデータビット又は値の次のグループに関して)、当該コンテキストが修正される(すなわち、いくつかの実施形態では、コンテキスト変数が修正される)。これは、現在のコンテキスト及び現在の「最も可能性の高いシンボル」の識別子(コンテキストによりどちらが現在0.5より高い確率を有するかが示されていたとしても、1又は0)を新しいコンテキスト値のルックアップテーブルへの指数又は新しいコンテキスト変数を得られる適切な数式への入力として用いて実行してもよい。いくつかの実施形態においては、コンテキスト変数の修正により、現在のデータ値のために選択されたサブレンジにおける一連のコード値の比率が増加する。
CABACエンコーダは、バイナリデータ、すなわち、0及び1の2つのシンボルのみで表されるデータに関して動作する。当該エンコーダは、既に符号化されたデータに基づいて、次のデータに対する「コンテキスト」、すなわち、確率モデルを選択するいわゆるコンテキストモデリング処理を実行する。コンテキストの選択は、既に復号化されたデータに基づいて、デコーダに渡される符号化データストリームに追加される(コンテキストを特定する)別のデータを必要とすることなく、デコーダにおいて同じ決定が行われるように決定論的な方法で実行される。
図17を参照して、符号化される入力データは、既にバイナリ形式でない限りバイナリコンバータ900に渡してもよい。データが既にバイナリ形式である場合、コンバータ900は(図のスイッチ910により)バイパスされる。本実施形態では、バイナリ形式への変換は、実際には、量子化変換係数データを一連のバイナリ「マップ」として表現することにより行う。バイナリマップについては後述する。
バイナリデータは、その後、(別々の経路として概略的に示されているが、後述するいくつかの実施形態では、わずかに異なるパラメータを用いるだけで同じ処理ステージで実際に実行することができる)「正規」経路及び「バイパス」経路の2つの処理経路のうちの1つにより処理してもよい。バイパス経路では、必ずしも正規経路と同じ形式のコンテキストモデリングを利用しないいわゆるバイパスコーダ920が用いられる。CABAC符号化のいくつかの例では、一連のデータを特に急速に処理する必要がある場合、当該バイパス経路を選択することができる。しかしながら、本実施形態では、いわゆる「バイパス」データの2つの特徴について言及する。1つ目の特徴は、バイパスデータは、50%の確率を表す固定コンテキストモデルを利用するだけでCABACエンコーダ(950,960)により処理されることである。2つ目の特徴は、バイパスデータは、一定のカテゴリのデータに関するということである。当該データの特定例は、係数符号データである。バイパス経路を選択しない場合、図に示すスイッチ930,940により正規経路が選択される。これには、コンテキストモデラ950によって処理され、続いて符号化エンジン960によって処理されるデータが含まれる。
図17に示すエントロピーエンコーダは、ブロック全体が0値のデータから構成される場合、データのブロック(すなわち、例えば、残差画像のブロックに関する係数のブロックに対応するデータ)を単一値として符号化する。このカテゴリに含まれない各ブロック、すなわち、少なくともいくつかの非ゼロのデータを含むブロックに対しては、「重要性マップ(significance map)」を作成する。重要性マップは、符号化されるデータのブロックにおける各位置に対して、ブロック内の対応する係数が非ゼロであるか否かを示す。(したがって、これは、データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップの一例である。)重要性マップは、データ値の配列の所定の順序で、非ゼロ値を有する最上位データ部分の最後の位置を示すデータフラグを含んでもよい。
バイナリ形式である重要性マップデータ自体は、CABAC符号化される。重要性マップを利用することは、重要性マップによってゼロであると示される大きさの係数に対してデータを符号化する必要はないため、圧縮に役立つ。また、重要性マップには、ブロックにおける最後の非ゼロ係数を示す特別なコードを含めることもできる。これにより、最後の高周波数/後置ゼロ(トレーリングゼロ)係数の全てを符号化から省略することができる。符号化ビットストリームにおいて、重要性マップの後には、重要性マップにより規定される非ゼロ係数の値を定義するデータが続く。
また、別のレベルのマップデータも作成され、CABAC符号化される。その一例としては、重要性マップによって「非ゼロ」であると示されたマップ位置における係数データが実際には「1」の値を有するか否かをバイナリ値(1=yes,0=no)として定義するマップがある。他のマップは、重要性マップによって「非ゼロ」であると示されたマップ位置における係数データが実際には「2」の値を有するか否かを規定する。さらに別のマップは、重要性マップによって当該係数データが「非ゼロ」であると示されたこれらマップ位置に対し、当該データが「3以上の」値を有するか否かを示す。また、さらに別のマップは、「非ゼロ」として特定されたデータに対して、(+に対して1、−に対して0、あるいはその逆、等の所定のバイナリ表記を用いて)データ値の符号を示す。
いくつかの実施形態では、重要性マップ及びその他のマップは、例えば、スキャン部360により量子化変形係数から生成され、ジグザグスキャン処理(又はイントラ予測モードに係るジグザグ、水平ラスター、及び垂直ラスタースキャンから選択されたスキャン処理)を受け、その後、CABAC符号化される。
いくつかの実施形態では、HEVC CABACエントロピーコーダは、以下の処理によりシンタックス要素を符号化する。
TU内において(スキャン順に)最後の重要係数の位置を符号化する。
各4×4係数グループ(これらグループは逆スキャン順に処理される)に対して、当該グループが非ゼロ係数を含むか否かを示す重要係数グループフラグを符号化する。このフラグは、最後の重要係数を含むグループには必要なく、(DC係数を含む)左上のグループに対して1であると仮定される。当該フラグが1である場合、そのグループに関する以下のシンタックス要素をそれに続いて直ちに符号化する。
重要性マップ:
グループにおける各係数に対して、当該係数が重要である(非ゼロ値を有する)か否かを示すフラグを符号化する。最後の重要位置で示される係数に対して、フラグは必要ない。
2以上マップ:
重要性マップの値が1である(グループの終端から逆に数えて)8つまでの係数に対して、その大きさが2以上であるか否かを示す。
3以上マップ:
2以上マップの値が1である(グループの終端に最も近い)1つの係数に対して、その大きさが3以上であるか否かを示す。
符号ビット:
全ての非ゼロ係数に対して、確率が等しいCABACビンとして符号ビットを符号化する。(逆スキャン順における)最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。
エスケープコード:
初期のシンタックス要素により大きさが完全には表せない係数に対して、残りの係数をエスケープコードとして符号化する。
一般的に、CABAC符号化は、既に符号化されている他のデータに基づいて、符号化対象の次のビットに対して、コンテキスト、すなわち、確率モデルを予測することを含む。次のビットが、確率モデルにより「最も確率が高い」と特定されたビットと同じである場合、「次のビットは確率モデルと一致する」という情報は、非常に効率よく符号化することができる。それと比較して、「次のビットは確率モデルと一致しない」という情報を符号化するのは効率的ではない。したがって、エンコーダの良好な動作のために、コンテキストデータの由来は重要である。「適用可能(adaptive)」という用語は、(まだ符号化されていない)次のデータに良好に適合させようとして、そのコンテキスト、すなわち、確率モデルを適用、又は符号化の間に変更することを意味する。
簡単な例示として、書き言葉の英語において、「U」という文字は比較的珍しい。しかしながら、「Q」という文字の直後に位置する文字では、「U」は実際、一般的に用いられる。したがって、確率モデルは「U」の確率を非常に低い値に設定する可能性があるが、現在の文字が「Q」であれば、次の文字としての「U」に対する確率モデルは、非常に高い確率値に設定することができる。
本構成では、少なくとも重要性マップ及び非ゼロ値が1又は2であるか否かを示すマップに対してCABAC符号化を行う。しかし、これらの各シンタックス要素は係数毎に符号化されなくてもよい。これらの実施形態においてバイパス処理はCABAC符号化と同一であるが、確率モデルは1及び0の等しい(0.5:0.5)確率分布で固定されるという事実に対しては、少なくとも符号データと、先行のシンタックス要素によって記述されていない係数の大きさのいくつかの部分とに対して用いられる。十分には記述されない係数の大きさのいくつかの部分を有するものとして識別されたこれらデータ位置に対して、いわゆるエスケープデータ符号化を個別に実行して、そのデータの実際の残りの値を符号化することができる。ここで、実際の大きさの値は、この残りの大きさの値に、符号化された各シンタックス要素から導出されたオフセットを足したものである。この符号化は、ゴロムライス符号化技術を含んでもよい。
CABACコンテキストモデリング及び符号化処理は、WD4:Working Draft 4 of High-Efficiency Video Coding, JCTVC-F803_d5, Draft ISO/IEC 23008-HEVC; 201x(E) 2011-10-28に詳細に記載されている。
エスケープビットの符号化(escape bit encoding)の実施形態に関するさらなる技術又はこれに関連した技術について図18を参照して説明する。
しかしながら、先に、エスケープコードの符号化に用いられる技術について説明する。
現行(本願の優先権主張日現在)のHEVC規格では、エスケープコードは、次の2つのメカニズムによって符号化される。
(1)最大プレフィックス長2を有するゴロムライス符号。
(2)その符号化値をゴロムライス符号によって完全には記述することができない場合、k次の指数ゴロムを用いて「エスケープ−エスケープ」コードが符号化される。
いわゆるゴロムライス符号化によって、任意の値vが、サフィックスのk(rParamとも称される)ビットが続くα符号化されたプレフィックス(1個の「0」に続く可変数の「1」(又はその逆))として符号化される。
符号化領域(coding space)は、いくつかの区間に分割される。この区間のサイズは、次のようにライスパラメータrParamによって決定される。
区間サイズ=1<<rParam
通常では、表記「<<n」は、値nに等しいビット数分の左シフトを意味する。同様に、表記「>>n」は、nビット分の右シフトを意味する。したがって、例えば、rParamが0である場合、符号化区間のサイズは1となる。rParamが3である場合、符号化区間のサイズは、例えば、8となる。
rParamの値は、エンコーダ及びデコーダに別々に保持され、所定の条件下で修正される。
プレフィックスは、α符号化で符号化され、いずれの符号化区間に最終値が配置されるかを示すものである。
例えば、プレフィックス値=2、rParam=2、区間サイズ=4の場合、上記最終値は、8〜11の範囲(8と11も範囲に含む)内となる。プレフィックスは、当該最終値をおおまかに示すものと言える。
他方、サフィックスは、バイナリ符号化で符号化される(サフィックス長は、rParamに等しい)。このサフィックス値は、指定された区間における最終値の位置を示す。
例えば、プレフィックス値=2、rParam=2、サフィックス値=3の場合、これは、最終値が8〜11の区間に配置されることを表す。サフィックス値が0である場合、最終値は8となり、サフィックス値が3である場合(本例と同様)、最終値は11となる。
したがって、サフィックスは、最終値を細かく示すものと言える。
prefix_length(プレフィックス長)を、α符号化されたプレフィックスにおける1の総数とし、Kを最下位rParamビットの値とすると、次式が成り立つ。
最終値=(プレフィックス長<<rParam)+K
上述のように、現行(本願の優先権主張日現在)のHEVC規格では、ゴロムライス符号化の最大プレフィックス長に(2という)制限が課される(したがって、3つの区間しか存在しない)。より長いプレフィックスが送信された場合、その値(プレフィックスの値はその長さに等しい)から3が減算され、プレフィックスは代わりにk次の指数ゴロムプレフィックスとして処理される(rParamは値kとして機能する)。k次の指数ゴロム符号は、通常のエスケープ符号化メカニズムから逃れたもの(escape)と考えられる。すなわち、「エスケープ−エスケープ」コードである。
k次の指数ゴロムが続く最大長さが2のゴロムライスプレフィックスも、k+1次の指数ゴロムが続く最大長さが3のゴロムライスプレフィックスと同等であることが理解されるであろう。
さらに、最終値は、エスケープ−エスケープ符号化が用いられていることから当該最終値が少なくともその程度の大きさを有することが分かるため、ゴロムライス符号化で符号化することができない最小値を追加するか(デコーダ側)又は減算する(エンコーダ側)ことによって修正もされる。
次に、いわゆるk次の指数ゴロム符号について説明する。当該符号では、符号化対象の数字が、可変長のα符号化されたプレフィックスと、可変長のサフィックスとに分割される。サフィックスビットの数=プレフィックス長+kである。ここで、プレフィックス長は、またしてもα符号の「1」の個数である。
ゴロムライス符号化と同様に、符号化領域はいくつかの区間に分割される。しかし、これらの区間は、サイズが等しくなく、例えば、(区間0=0、区間1=1〜2、区間2=3〜6)といった具合に指数関数的にサイズが増加する。
プレフィックスは、α符号化で符号化され、いずれの符号化区間に最終値が配置されるかを示すものである。
サフィックスは、バイナリ符号化で符号化される。ここでは、サフィックス長はプレフィックス長に等しい。サフィックス値は、指定された区間における最終値の位置を示すものである。
kに等しい余分なビット数は、バイナリ符号化で符号化される。これらのビットは、最終値の追加のLSBとして機能する。
符号におけるビットの総数=プレフィックス長+1+プレフィックス長+kである。
Kを最後のkビットの値とする。
プレフィックス長が0の場合、vはKと等しくなる。
プレフィックス長が1の場合、vは(1<<k)+Kから(3<<k)+Kまでの範囲にある(上限値及び下限値は範囲に含まれない)。
プレフィックス長が2の場合、vは(3<<k)+Kから(7<<k)+Kまでの範囲にある(上限値及び下限値は範囲に含まれない)。
プレフィックス長が3の場合、vは(7<<k)+Kから(15<<k)+Kまでの範囲にある(上限値及び下限値は範囲に含まれない)。
したがって、v=((2^プレフィックス長)−1)<<k)+サフィックスとなる。
例えば、最終バイナリ符号=110011である。
本例では、rParam=1、プレフィックス長=2(最初の0の前の2つの1)、符号化区間=3〜6、サフィックス=0b01=1、kの前の値=4=0b100、余分なビット=0b1=1、最終値=0b1001=9となる(0bは、二進表記を示す)。
HEVCにおいて、ゴロムライス符号及び指数ゴロム符号の両方が使用される。プレフィックス長が3より小さい場合、符号はゴロムライス符号として解釈される。しかしながら、プレフィックス長が3以上の場合、符号はk次の指数ゴロム符号として解釈される。ここで、上述したrParam値は、値kとして機能する。
(どちらかのシステムにおける)プレフィックスは、α符号の例である。サフィックスは、非α符号の例である。当該2つのシステムはそれぞれ、2値可変長符号の例である。
この場合、指数ゴロム符号を復号化するために使用されるプレフィックス長の値は3減らされ、復号化動作から得られる値は(3<<k)増加される。なぜなら、これはゴロムライス符号を用いて表すことができない最小の値だからである。
HEVCのエスケープコード及びエスケープ−エスケープコードに用いられる値「k」は可変である。16個の係数から成る各グループについて、値kは0から始まり、係数値の大きさが3<<kより大きい場合は常に増加する。このような状況を受けて、kは最大4まで増分される。なお、係数の符号を表す符号ビットは別途送信されるため、係数の大きさについて説明を行っている。kを初期化及び調節するための他の方式を適用してもよい。
図18は、上述のようにエスケープコードを生成する処理を示す概略フローチャートである。
この方法は、(例えば)周波数変換画像係数のシーケンス、当該シーケンスの非ゼロ要素、又は各データ値の大きさが1減らされた(この場合、重要性マップは1の値から構成されるため、さらなる処理の前に各係数が1減らされるように重要性マップを最初に生成してもよい)当該シーケンスの非ゼロ要素を含む1群のデータ値に関して動作可能である。
ステップ2000において、kの初期値を設定する。通常のHEVCバージョン1システムにおいて、kは最初に0に設定される。しかし、代替方式を用いてHEVC規格を拡張してもよい。ステップ2010において、CABACエンコーダは、現在のグループがDC係数の等価物を含む左上のグループであるか否か、又は、現在のグループが先行の処理で最後の重要係数とみなされる係数を含むか否かを確認する。現在のグループがDC係数の等価物を含む左上のグループである、又は、現在のグループが先行の処理で最後の重要係数とみなされる係数を含む場合、処理は、ステップ2030に進む。現在のグループがDC係数の等価物を含む左上のグループである、又は、現在のグループが先行の処理で最後の重要係数とみなされる係数を含む場合、ステップ2020において、CABACエンコーダは、現在のグループが非ゼロ係数を含むか否かを確認する。現在のグループが非ゼロ係数を含まない場合、各重要性グループフラグを0に符号化して処理を終了する。現在のグループが非ゼロ係数を含む場合、処理は、各重要性グループフラグを1に符号化してステップ2030に進む。ステップ2030において、当該グループの係数毎に重要性マップを生成する(しかし、最後の重要係数を含むグループについては、いくつかの係数は推定可能であるため、重要性マップエントリは不要である)。ステップ2040において、重要性マップの値が1である、当該グループの終端から逆に数えて8つの係数について、その大きさが1より大きいか否かを示す2以上マップを生成する。ステップ2050において、3以上マップを生成する。この3以上マップは、(グループの終端に最も近い)2以上マップの値が1である1つの係数に対して、大きさが2より大きいか否かを示す。ステップ2060において、全ての重要係数について符号ビットを生成する(しかしながら、(逆スキャン順における)最後の符号ビットは、場合により、隠れている符号ビットを用いる際にパリティから推測される。符号ビットハイディング(sign bit hiding)と呼ばれる方式を用いて、当該グループの符号化された値の偶数及び奇数パリティから符号化されていたであろう最後の符号ビットを推定してもよい)。ステップ2070[y2]において、初期のシンタックス要素により大きさが完全には記載されなかったあらゆる係数(すなわち、ステップ2030〜2060のいずれかにおいて生成されたデータ)に対するエスケープコードが生成される。なお、図18では、HEVCに関するいくつかの例示的な実施態様では、各係数に対して上記マップの全てを生成する必要はない。例えば、1群の(つまり16個の)係数のうちの1つ又は複数の係数について、いくつかのマップが生成されない場合がある。
上記マップは、データ値の配列に対する、1より大きい最上位データ部分の位置を示す2以上マップ、及び、データ値の配列に対する、2より大きい最上位データ部分の位置を示す3以上マップの例である。
ステップ2070において、エスケープコードが必要とされる場合、上記各技術を用いて現在の値kに基づいてエスケープコードを生成する。特に、エスケープコードの使用を必要とする係数は、重要性マップ及び任意選択で他のマップの1つ又は複数を用いて最初に処理される。なお、エスケープ符号化を必要とする係数の場合、使用する重要性マップ、2以上マップ及び3以上マップのいずれかが、「1」としてフラグ化される。これは、定義上、エスケープ符号化を必要とする任意の係数は、当該係数に対していずれのマップが利用可能であるにせよ、符号化され得る値よりも大きいためである。
現在のデータ値が完全に符号化されなかった場合、エスケープコードが必要となる。こ
こで、「完全に」符号化された、という言葉は、(当該マップ、又は例えばマップ及び固定ビットによって)既に符号化されたデータ値より小さいデータ値がゼロであることを意味する。すなわち、既に生成された要素を考慮して、データ値の残りの量がゼロである場合、データ値は当該要素により完全に符号化される。
したがって、例の係数に対して、重要性マップ、2以上マップ、3以上マップを利用できると仮定すると、各マップは当該係数に関して「重要」、「2以上」、及び「3以上」としてフラグ化される。
つまり、当該係数が少なくとも3であることが示される。
したがって、エスケープ符号化前に上記係数から3を減算することで、情報損失を回避することができる。3(又は、広義的に、当該係数に適用された上記各マップが定義する数値範囲を示す変数base_level)は、復号化の際にまた元に戻される(つまり、加算される)。
例えば、係数値を10進法の15(2進法の1111)とすると、重要性マップは「1」、2以上マップは「1」、3以上マップは「1」となる。変数base_levelは3となる。この係数値からbase_levelを減算することによって、10進法の12(1100バイナリ)という値が得られる。この値がエスケープ符号化に用いられる。
値k(上記参照)は、サフィックスのビット数を定義するものである。サフィックスビットは、base_levelを減算した後の係数値の最下位ビットから得られる。(例えば)k=2の場合、残りの値1100の2つの最下位ビットが、サフィックスビットとして扱われる。すなわち、本例では、サフィックスビットは00である。その残りのビット(本例では、11)は、プレフィックスとして処理及び符号化される。
したがって、要約すると、エスケープコードに関係する処理では、任意の係数の1つ又は複数の最下位ビットを定義する1つ又は複数のマップを(エスケープコードが必要な場合に)当該係数の値が少なくともbase_levelであるように生成し、この係数からbase_levelを減算し、減算後の係数の最下位kビットをサフィックスビットとして符号化すると共に、残りの最上位ビットをプレフィックスとして符号化する処理が行われる。
本開示のいくつかの実施形態において、任意の係数に対してエスケープコードを符号化する場合に起こり得る最悪の場合のコード長を認識することができる。
16ビットのビデオに精度拡張処理を行う場合、エントロピーコーダのmaxTrDynamicRangeの係数範囲は22ビットとなるため、次のように、rParamが0であり、且つ係数の大きさが最大(1<<22)である場合、本方式では、或る係数について符号化され得るエスケープコードビットの数が最大になる。
最大指数ゴロム符号d値=
(1<<22)(初期の係数の大きさ)
−1(重要性マップによって既に符号化された値のため、1を差し引く)
−3(上述のようにゴロムライス符号ではないため、3を差し引く)
=4194300
HEVCの指数ゴロム符号化では、この値は、ゴロムライス符号ではないことを示す1ビットのセパレータ(separator:区切り記号)及び余分な3ビットのプレフィックスに加え、21ビットのサフィックス(したがって、21ビットのプレフィックスも)を必要とする。つまり、最悪の場合のビット総数は46ビットである。これは、デコーダにとっては過度の負担となり得る。
本開示のいくつかの実施形態では、エスケープ符号化の指数ゴロム部分(part)に対して、最悪の場合のエスケープコード長(HEVCバージョン1における最悪の場合のエスケープコード長に等しい)を32まで減らすことができる1つ又は複数の代替方式が適用される。可能性としてコード長はさらに短くすることができるが、これは、コード長と符号化効率とのトレードオフとなる。バージョン2のデコーダは、バージョン1をサポートする必要があるため、バージョン2のデコーダの拡張プロファイルにおける最大コード長をバージョン1規格の最大コード長よりも短かくしようという要望は存在しない。
上述のように、現行(本願の優先権主張日現在)のHEVC規格では、エスケープコード(CABAC符号化されたシンタックス要素によって記述されない係数の大きさの任意の部分)は、2値(two part)ゴロムライス/指数ゴロム方法によって符号化される。拡張精度処理(extended precision)によって16ビットのビデオを符号化する場合、この方法では、上述のように最大エスケープコード長が46ビットとなり、これは、1つの係数に対する復号化としては相当な負担となり得る。
いくつかの実施形態では、エスケープ符号化方式の指数ゴロム部分におけるプレフィックス長及びサフィックス長間のマッピングを修正することによって、符号化効率又は処理効率にあまり悪影響を及ぼすことなく、最悪の場合の最大エスケープコード長を、例えば、32ビットまで短くすることができる。他の実施形態では、ゴロムライスは、調節するか又は完全に消すこともできる。
いわゆる拡張精度処理によって16ビットのビデオを符号化する場合、変換及び量子化部のダイナミックレンジ、したがって、エントロピーコーダ(maxTrDynamicRange)に入力される係数のダイナミックレンジは、16+6=22となる。したがって、係数の大きさは最大で、222=4194304となる。重要性マップエントリの場合は1を減算し、ゴロムライス符号(最悪の場合では、ライスパラメータrParamは0)の場合は3を減算することによって調節を行うと、指数ゴロム符号化で符号化され得る最大値は、4194300となる。
つまり、HEVCにおいて指数ゴロムを用いてこの値を符号化するには、指数ゴロム符号化を用いていることを示す1ビットのセパレータ及び余分な3ビットのプレフィックスに加えて、21ビットのサフィックス(したがって、21ビットのプレフィックスも)が必要となる。したがって、46という最悪の場合の総コード長になる。
しかし、ここでは、プレフィックス長をサフィックス長に対して直接(1:1マッピングとして)、単純にマッピングするのではなく、様々な代替方式が用いられる。
いくつかの実施形態では、サフィックス長は、プレフィックス長の関数(例えば、指数関数)とすることができる。指数関数の一例としては、suffixLength=(1<<prefixLength)>>1である。このようにすると、例えば、16個のサフィックスビットを示すのに5ビットのプレフィックスしか送信しなくて済む。最大値を5としてα符号化を用いるか又は切り捨てα符号化(truncated unary coding)を用いるかに応じて、セパレータ「0」も必要な場合がある。これは、非α符号化サフィックス部分の長さがプレフィックス部分によって符号化された値の指数関数となるように、プレフィックス部分によって符号化された値が非α符号化サフィックス部分の長さに関係付けられている構成の一例である。
いくつかの実施形態では、プレフィックスはそれ自体が、α符号の代わりに指数ゴロム符号であり得る。
いくつかの実施形態では、プレフィックス長は、表を用いてサフィックス長に対してマッピングすることができる。この方法によって、一連の区間サイズを、当該データに適合させることができる。上記表は、所定のものであってもよい(すなわち、エンコーダ及びデコーダに予め供給されていてもよい)。あるいは、上記表は、符号化されたデータストリームで又は符号化されたデータストリームに関係付けられて送信されてもよい(これによって、プレフィックス部分の長さとサフィックス部分の長さとの関係が、符号化されるデータに関係付けられて送信される情報によって定義付けられる)。またあるいは、上記表は、事前に符号化された係数又は他のデータから導出されてもよい。さらにあるいは、これらの組合せ又は他の技術(ストリームで送信されたデータを用いて所定の表のセットから選択される等)によって提供されてもよい。いくつかの実施形態では、プレフィックス部分によって符号化された値及び非α符号化サフィックス部分の長さは、1つ又は複数の表によって関係付けられる。いくつかの実施形態は、(i)符号化されたデータ値と関係付けられたデータフラグ符号化されたデータ値と、(ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータとから成る群の1つ又は複数のデータ値に応じて、プレフィックス部分によって符号化された値及び非α符号化サフィックス部分の長さを関係付ける表から1つの表を選択するステップを含む。
いくつかの他の実施形態では、以下のような処理が行われ得る。拡張精度処理によって16ビットのビデオを符号化する場合、変換及び量子化部のダイナミックレンジ、したがって、エントロピーコーダ(maxTrDynamicRange)に入力される係数のダイナミックレンジは、16+6=22となる。したがって、上述のように、係数の大きさは最大で、222=4194304となる。重要性マップエントリの場合に1を減算し、ゴロムライス符号(最悪の場合では、ライスパラメータrParamは0)の場合に3を減算することによって調節を行うと、指数ゴロム符号化によって符号化され得る最大値は、4194300であり、上述のように、46の最悪の場合の総コード長となる。
しかし、単純に無制限にプレフィックス長を拡張させる代わりに、拡張精度処理が可能な場合に代替方式を用いて、最悪の場合を示すのに必要とされるプレフィックスのビット数を制限することができる。最大プレフィックス長(maximumPrefixLength)は、次の式で表される。
maximumPrefixLength=32−(3+MAX_TR_DYNAMIC_RANGE)
このプレフィックス長に達した場合、対応するサフィックス長(suffixLength)は、次の式で表される。
suffixLength=MAX_TR_DYNAMIC_RANGE−rParam
また、最大プレフィックス長は、符号化又は復号化の開始時から把握されているため、プレフィックスは、切り捨てα符号化によって符号化することができる(最大プレフィックス長に達した場合、セパレータを省く)。
したがって、最悪の場合のエスケープコード長は次のように短縮される。
(32−(3+MAX_TR_DYNAMIC_RANGE))(プレフィックス)
+(MAX_TR_DYNAMIC_RANGE−rParam)(サフィックス)
+rParam(固定ビット)
+3(非ゴロムライス符号ビット)
=32
これによって、任意のエスケープコードを、単一の32ビットの整数に収めることができ、最大エスケープコード長がHEVCバージョン1における最大エスケープコード長と同じになる。なお、高ビット深度処理(16ビットのビデオの使用等)をサポートするHEVCデコーダは、依然として、少なくともいくつかの実施形態では、HEVCバージョン1で符号化されたデータの使用をサポートしなければならないことが想定される。それゆえ、上述したように、エスケープコードのビット数が、HEVCバージョン1で可能とされる最大値に限定されるということは、係る構成において、エスケープコード長は、既にサポートされている最大値以下となることを意味する。
これらの実施形態は、上記マッピング表構成と同様の利点をもたらすことができる。しかし、本例は、ルックアップテーブルを必要とすることなく、最悪の場合のコード長を同様に削減し、同様の符号化性能を実現することができる。しかし、(符号化される又は復号化時の)データ値のビット深度に依存する最大長さにプレフィックス長を制限する原則は、上述のように、1つ又は複数の表と合わせて、又は、プレフィックス長とサフィックス長との関係の他の数式と共に用いることもできる。
したがって、これらの実施形態は、プレフィックス長がプレフィックス長最大値で制限される技術の一例である。例えば、プレフィックス長最大値は、値maxTrDynamicRangeに依存し得る。この場合、値maxTrDynamicRangeは、符号化用のデータ値のダイナミックレンジである。いくつかの例では、最大プレフィックス長は、29からmaxTrDynamicRangeを差し引いた値に等しい。他の例では、最大プレフィックス長は、28からmaxTrDynamicRangeを差し引いた値に等しい。
なお、これらの技術のいくつかを表現する別法として、ビデオデータは、或るビット深度(16ビット等、つまり、各チャネル内のサンプル毎のビット数の表現)を有する。このビット深度は、デコーダによって復号化された復号化サンプルに対応しており、元のビデオデータのサンプル(つまり、エンコーダによって符号化されるサンプル)に適用される。当該ビット深度は、エンコーダ又はデコーダに供給されたデータ構造から暗に示されてもよいし、フラグ又はパラメータ等の1つ又は複数のインジケータによってエンコーダ又はデコーダに対してフラグ化されたり、別の方法で示されたりしてもよい。いくつかの例では、maxTrDynamicRangeは、6ビットのずれ等のずれを足したビット深度に等しく設定される(したがって、ビット深度が16ビットである場合、例えば、変数maxTrDynamicRangeは、16+6=22ビットとなり得る)。したがって、プレフィックス長は、場合に応じて、符号化用のデータ値又は復号化されたデータ値のビット深度に依存する最大プレフィックス長に制限される。つまり、より詳細には、いくつかの例では、プレフィックス長は、場合に応じて、6ビットを足した符号化用のデータ値又は復号化されたデータ値のビット深度に依存する最大プレフィックス長に制限される。
したがって、係る構成によって、最大プレフィックス長が、所定の定数から符号化用のデータ値のダイナミックレンジに等しい値を差し引いた値に等しくなる、符号化又は復号化システム及び方法の例を提供することができる。例えば、上記所定の定数は29であってもよく、28であってもよい。
上述した技法及び/又は以下で説明する技法を組み合わせて用いてもよい。
制御部345は、(デコーダ及びエンコーダのいずれか一方の場合、又はこれに対応の方法の場合、)プレフィックス長及び/又はプレフィックス長とサフィックス長との関係が依存する任意のパラメータを検出し、最大プレフィックス長及びプレフィックス長とサフィックス長との関係を設定するように又は別の方法で実施するように動作可能とすることができる。
これらの方式は全て、データ符号化装置の動作方法が、データ符号化装置によって、データセット、及びデータセットによって符号化されない値のためのエスケープコードをデータ値の配列として符号化することを含み、エスケープコードはそれぞれ、プレフィックス部分と、プレフィックス部分によって符号化される値に依存するビット長を有する非α符号化サフィックス部分であって、プレフィックス部分によって符号化される少なくともいくつかの値に関して、非α符号化サフィックス部分の長さがプレフィックス部分のビット長よりも長くなるような関係になる非α符号化サフィックス部分とを有する、技術の実施形態である。本明細書に記載の各例は、プレフィックス長が、符号化中のデータ値又は復号化されたデータ値のビット深度に依存する最大プレフィックス長に制限される、技術の実施形態を提供する。
(デコーダ側又はエンコーダの復号化経路側の)対応の復号化処理に関して、これらの方式は全て、データ復号化装置の動作方法が、データ復号化装置によって、データセットとして符号化される入力される符号化データ値と、データセットによって符号化されない値のためのエスケープコードとを復号化することを含み、エスケープコードはそれぞれ、プレフィックス部分と、プレフィックス部分によって符号化される値に依存するビット長を有する非α符号化サフィックス部分であって、プレフィックス部分によって符号化される少なくともいくつかの値に関して、非α符号化サフィックス部分の長さがプレフィックス部分のビット長よりも長くなるような関係になる非α符号化サフィックス部分とを有する、技術の実施形態である。
実施形態は、上記方法を実施する符号化装置及び/又は復号化装置と、上記方法をコンピュータに実行させるソフトウェアと、係るソフトウェアを提供する(磁気又は光ディスク等の)非一過性の機械可読記憶媒体と、係る装置を具備するビデオデータキャプチャ装置、送信装置、表示装置、及び記憶装置とを包含する。
上述のように、プレフィックス部分は、α符号化値を含んでもよい。
いくつかの実施形態では、拡張精度処理が可能な場合、マッピングを用い、最悪の場合を示すのに必要とされるプレフィックスのビット数を制限することができる。係るマッピングは、拡張精度処理のためにサフィックス長をプレフィックス長に対してマッピングする以下の表で提示される。
方式(i)は、通常の指数ゴロム符号化の挙動を再現したものである。
方式(ii)は、上述のように、プレフィックス長の指数関数であるサフィックス長を模したものである。
なお、方式(ii)は、16ビットのビデオ符号化(MAX_TR_DYNAMIC_RANGEは22ビット)の最悪の場合のビット数を、46ビット(α符号化の場合の方式(i))から、プレフィックスビットを最大5として、プレフィックスにα符号化を用いる場合は31ビットに、プレフィックスに切り捨てα符号化を用いる場合は30ビットに低減することができる。しかし、これによって、各小さい値に関して区間精度が損なわれるため、方式(iii)の場合よりも符号化効率の損失が大きくなる。しかしながら、GB1320775.8号(その内容が本明細書に参照によって援用される)に開示されているゴロムライスパラメータの適合方法も採用すれば、上記各方式の損失を低減することができる。
方式(iii)を用いることによって、各小さい値に関して精度の高い(fine grained)符号化区間が維持されると共に、可能性として最大のサフィックスを示すのに(21の代わりに)7以下のプレフィックスビットが必要とされる。さらに、最大プレフィックス長は把握されているため、プレフィックスは、切り捨てα符号化値として、切り捨てα符号化を用いて符号化することができる(最大プレフィックス長に達した場合はセパレータを除く)。しかし、maxTrDynamicRangeの[y3]最大サフィックス長である。rParamが非ゼロである場合は、最大サフィックス長は、サフィックスに続くさらなるrParamビットを有するmaxTrDynamicRange−rParamである。したがって、この方式に関するいくつかの実施形態では、上記表に示される値の一部又は全ては、rParamの関数である。
制御部345は、プレフィックス長とサフィックス長との適切な関係を検出するために、表セット(上記表(i)〜(iii)等)の1つ又は複数の表にアクセスするように構成されてもよい。
したがって、最悪の場合のエスケープコード長は、7(プレフィックス)+22(最大サフィックス)+3(非ゴロムライス符号ビット)=32まで減る。なお、切り捨てα符号化されたプレフィックス用のセパレータはなく、任意のエスケープコードを1つの32ビットの整数に収めることができる。
いくつかの実施形態のさらなる特徴は、以下のようなものである。最大サフィックス長は把握されているため、プレフィックスは、単純なα符号化の代わりに切り捨てα符号化を用いて送信することができる(すなわち、プレフィックスの最大ビット数に達した場合、プレフィックス及びサフィックス間に通常配置されるセパレータは不要となる)。
プレフィックス長が、必要以上に大きい(例えば、maxTrDynamicRangeより大きい)サフィックス長に対してマッピングされる方式では、代わりに、プレフィックス長をこの値に制限することができる。その結果、maxTrDynamicRangeより大きいプレフィックス長とサフィックス長との関係によって得られる任意の値は、maxTrDynamicRangeに等しくなるように設定される。一般的には、いくつかの実施形態では、プレフィックス部分によって符号化された値と、非α符号化サフィックス部分の長さとの関係は、非α符号化サフィックス部分の最大長さが符号化されるデータ値のそれぞれの最大ビット数より大きくならないように設定される。
maxTrDynamicRangeが16ビット未満の構成では、例えば、上記関係において最大サフィックス長を15に設定することによって16の値を除去することができる。一例として、これを、サフィックスが16ビットになり得る値4の指数プレフィックスを解釈するために用いてもよい。
これより、第1の実施例について説明する。
この処理には、符号なしの値synValと、ライスパラメータriceParamと、現在のシンタックス要素がクロマ係数に関するか否かを示すフラグisChromaとを有するシンタックス要素のための表に基づく2値化の要求が入力される。
この処理の出力は、シンタックス要素synValの上記表に基づく2値化である。
変数maxTrDynamicRangeは、次のように導出される。
isChromaが0である場合、maxTrDynamicRange=extended_precision_processing_flag?Max(15、BitDepthY+6):15
isChromaが0ではない場合、maxTrDynamicRange=extended_precision_processing_flag?Max(15、BitDepthC+6):15
個々で用いる表記は以下のようなものである。「A=フラグ?B:C」は、変数Aがそれぞれ、バイナリ値「フラグ」のtrue又はfalseに応じて値B又は値Cに割り当てられることを示す。BitDepthYは、ルマ(輝度)又はグリーンチャンネルのビット深度である。BitDepthCは、クロマ(彩度)又はブルー及びレッドチャンネルのビット深度である。値extended_precision_processing_flagは、拡張精度処理が可能であるか否かを示すフラグである。
変数suffixLength[x]及び変数minimumUncodeableValue[x](すなわち、上述のようにエスケープ−エスケープコードの最小値を示す値)が下記の表(一例として)から導出される。
シンタックス要素synValの上記表に基づく2値化処理のビンストリング(bin string)は、以下のように指定される。ここで、関数put(X)(Xは0又は1)の呼び出しによって、ビンストリングの終端にバイナリ値Xが追加されている。
suffix=synVal>>riceParam
prefixLength=0
while((prefixLength<7)&&(suffix>=minimumUncodeableValue[prefixLength]))

prefixLength++
put(1)

put((prefixLength==7)?1:0)
if(prefixLength>0)

synVal−=minimumUncodeableValue[prefixLength−1]<<riceParam

totalSuffixLength=suffixLength[prefixLength]+riceParam
while((totalSuffixLength−−)>0)

put((synVal>>totalSuffixLength)&1)
[coeff_abs_level_remainingの2値化処理]
次のように、変数cMaxは、cRiceParamから導出される。変数cMaxは、上記で使用したrParamと等価である。
cMax=43<<cRiceParam
シンタックス要素coeff_abs_level_remaining[n]の2値化は、プレフィックスビンストリング及び(存在する場合は)サフィックスビンストリングの連鎖である。
プレフィックスビンストリングを導出するためには、次のような処理が行われる。cu_qp_delta_absのプレフィックス値、すなわち、プレフィックスValが次のように導出される。
プレフィックスVal=Min(cMax、coeff_abs_level_remaining[n])
入力値として変数cMaxと変数cRiceParamとを有するプレフィックスValのTR2値化処理を実施することによってプレフィックスビンストリングを指定する。
プレフィックスビンストリングは、全てのビットが1に等しい長さ43のビット列に等しい場合、サフィックスビンストリングが存在し、次のように導出される。cu_qp_delta_absのサフィックス値、すなわち、サフィックスValが次のように導出される。
サフィックスVal=coeff_abs_level_remaining[n]−cMax
extended_precision_processing_flagが1である場合、サフィックスビンストリングは、cIdxが0以上である場合に1に等しくなるように設定された変数isChromaを有するサフィックスValの表に基づく2値化処理を実行することによって指定される。
他方、extended_precision_processing_flagが0に等しい場合、cRiceParamに等しくなるように設定されたk次の指数ゴロムを有するサフィックスValのEGk2値化処理を実行することによってサフィックスビンストリングが指定される。
これより、プレフィックス長が制限される実施形態に関連する別の実施例について説明する。この処理に入力されるのは、符号なしの値synValと、ライスパラメータriceParamと、現在のシンタックス要素がクロマ係数に関しているか否かを示すフラグisChromaとを有するシンタックス要素のための限定された指数ゴロム2値化の要求である。この処理の出力は、シンタックス要素synValの、限定されたk次の指数ゴロムの2値化である。
変数maxTrDynamicRangeは、次のように導出される。
Chromaが0である場合、maxTrDynamicRange=extended_precision_processing_flag?Max(15、BitDepth+6):15
Chromaが0ではない場合、maxTrDynamicRange=extended_precision_processing_flag?Max(15、BitDepth+6):15
変数maximumPrefixLengthは、(29−maxTrDynamicRange)に等しく設定される。
シンタックス要素synValの限定されたk次の指数ゴロムの2値化処理のビンストリングは、以下のように指定される。ここで、関数put(X)(Xは0又は1)の呼び出しによって、ビンストリングの終端にバイナリ値Xが追加されている。
codeValue=synVal>>riceParam
prefixLength=0
while((prefixLength<maximumPrefixLength)&&(codeValue>((2<<prefixLength)−2)))

prefixLength++
put(1)

if(prefixLength==maximumPrefixLength)

totalSuffixLength=maxTrDynamicRange
put(1)

else

totalSuffixLength=prefixLength+riceParam
put(0)

synVal=synVal−(((1<<prefixLength)−1)<<riceParam)
while((totalSuffixLength−−)>0)

put((synVal>>totalSuffixLength)&1)
通常の指数ゴロム符号では、上述のように、サフィックスは、より小さいサフィックス長によって符号化されることができない可能性がある最小値を、符号化される値から減算することによって形成される。例えば、k=0である(又はkを適用しない)9(0b1001)(0bプレフィックスは二進表記を示す)を符号化する場合、以下のようになる。
0ビットのプレフィックス/サフィックスコードは値0まで
1ビットのプレフィックス/サフィックスコードは値2まで
2ビットのプレフィックス/サフィックスコードは値6まで
したがって、3ビットのプレフィックス/サフィックス(値14までの符号)が必要となる。2ビットのプレフィックス/サフィックスで符号化することができない最小値は、7(6+1)であるため、サフィックスは、3ビットとしての9−7=2(0b010)として形成され、最終符号化値は111−0−010となる。
本開示によれば、最大プレフィックス長に関係付けられるサフィックス長は、この減算が不要とされるほど(必然的に)十分な長さとされる。したがって、サフィックスは単純に、符号化される値に等しくすることができる。
例えば、最大プレフィックス長=3、すなわち、これに関連するサフィックス長=4である。
符号化された値は、符号化される値に等しいサフィックスが続く、切り捨てα符号化されたプレフィックスに等しくなる。例えば、10進法の9を111−1001として符号化することができる。
さらに別の実施例では、「ゴロムライス符号ではないこと」を示すのに用いられる1の個数は、4であるが、その符号は、(k+1)次指数ゴロム符号として解釈される。上述した技術の場合の最大プレフィックス長は、次のように導出される。
maximumPrefixLength=32(所望の最大コード長)−(「非ゴロムライス符号」を示すビット数)−maxTrDynamicRange
=28−maxTrDynamicRange
以下のコードを検討する。
(i)110X…
(ii)1110X…
(iii)111X…
(Xは、「当該ビットの値は問わないこと」を示す)
符号(i)では、先行する1の個数(先行する1の個数)が2である場合、上記構成のいずれも、これを指数ゴロム符号とは解釈しない。
符号(ii)では、先行する1の個数が3である場合、最初に上述したシステムは、これを指数ゴロム符号として解釈するが、2番目に上述したシステム[y4]は指数ゴロム符号として解釈しない。しかし、ちょうど3個の先行する1が存在するため、指数ゴロム符号のプレフィックス長は0である(最初の0の前には1は存在しない)。しかし、プレフィックス長が0である場合、k次指数ゴロム符号の解釈は、k次ゴロムライス符号の解釈と同じである。
符号(iii)では、先行する1の個数が4である場合、両方の技術は、これを指数ゴロム符号として解釈する。第1のシステムでは、これは、少なくとも1のプレフィックス長を有するk次符号として解釈される。第2のシステムでは、これは、少なくとも0のプレフィックス長を有する(k+1)次符号として解釈される。いずれの場合も、プレフィックス長は、この符号の冒頭に続く追加の1の個数に依存する。しかし、指数ゴロム符号化では、プレフィックスビットによって効果的に値kが増加するため、理解されるように、両方の解釈が等価になる。したがって、指数ゴロム符号を復号化する場合の値kも1だけ増加されるとすると、「非ゴロムライス符号」の閾値を1(以下)だけ増加させることに等しい。
図19は、符号化技術を示す概略フローチャートである。ステップ2200において、上述した技術のいずれか1つを用いて、(例えば、データビット深度等の1つ又は複数のパラメータに応じて制御部345によって)プレフィックス長及び/又は最大プレフィックス長を定義する。ステップ2210において、1つ又は複数のデータ値を、このようにして定義されたプレフィックス長に応じて符号化する。
図20は、別の符号化技術を示す概略フローチャートである。ステップ2220において、プレフィックスを、α符号化値(例えば、切り捨てα符号化値)として符号化する。ステップ2230において、これに対応するサフィックスを符号化する。
図21は、さらに別の符号化技術を示す概略フローチャートである。ステップ2240において上述したような表を参照し、ステップ2250においてサフィックス長を取得する。
上記に対応する技術が、各復号化ステージに適用される。
本開示の各特徴及び/又は実施形態は、以下の番号付けされた項によって定義される。
1. データ符号化装置の動作方法であって、
前記データ符号化装置によって、データセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値の配列を符号化し、
前記エスケープコードはそれぞれ、プレフィックス部分と、前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の前記長さが、前記プレフィックス部分の前記ビット長よりも長くなるような関係になる、非α符号化サフィックス部分とを含む
データ符号化装置の動作方法。
2. 上記1に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分はα符号化値を含む
データ符号化装置の動作方法。
3. 上記2に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分は、切り捨てα符号化(truncated unary coding)値を含む
データ符号化装置の動作方法。
4. 上記1〜3のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分の前記長さと、前記サフィックス部分の前記長さとの前記関係は、符号化される前記データに関係付けて送信される情報によって定義される
データ符号化装置の動作方法。
5. 上記1〜4のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分によって符号化される前記値及び前記非α符号化サフィックス部分の前記長さは、1つ又は複数の表によって関係付けられる
データ符号化装置の動作方法。
6. 上記5のいずれか一項に記載のデータ符号化装置の動作方法であって、さらに、
(i)前記符号化データ値に関係付けられるデータフラグと、
(ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータと
から成る群の1つ又は複数に応じて前記プレフィックス部分によって符号化される前記値及び前記非α符号化サフィックス部分の前記長さを関係付ける前記1つ又は複数の表から1つの表を選択する
データ符号化装置の動作方法。
7. 上記1〜6のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分によって符号化される前記値は、前記非α符号化サフィックス部分の前記長さが、前記プレフィックス部分によって符号化される前記値の指数関数であるように、前記非α符号化サフィックス部分の前記長さに関係付けられる
データ符号化装置の動作方法。
8. 上記1〜7のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分によって符号化される前記値と、前記非α符号化サフィックス部分の前記長さとの前記関係は、前記非α符号化サフィックス部分の最大長さが、符号化される前記データ値のそれぞれの最大ビット数と、所定の最大値とから成るリストから選択される最大値より大きくならないように設定される
データ符号化装置の動作方法。
9. 上記1〜8のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス部分はそれ自体が指数ゴロム符号として符号化される
データ符号化装置の動作方法。
10. 上記1〜9のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記プレフィックス長は、プレフィックス長最大値に制限される
データ符号化装置の動作方法。
11. 上記10に記載のデータ符号化装置の動作方法であって、
前記プレフィックス長最大値は、符号化のための前記データ値の前記ダイナミックレンジである値maxTrDynamicRangeに依存する
データ符号化装置の動作方法。
12. 上記11に記載のデータ符号化装置の動作方法であって、
前記最大プレフィックス長は、29から前記値maxTrDynamicRangeを差し引いた値に等しい
データ符号化装置の動作方法。
13. 上記1〜12のいずれか一項に記載のデータ符号化装置の動作方法であって、
前記データセットのうちの1つは、前記データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップである
データ符号化装置の動作方法。
14. 上記13に記載のデータ符号化装置の動作方法であって、
前記重要性マップは、前記データ値の前記配列の所定の順序で、非ゼロ値を有する前記最上位データ部分の最後の位置を示すデータフラグを含む
データ符号化装置の動作方法。
15. 上記13に記載のデータ符号化装置の動作方法であって、
前記データセットは、
前記データ値の前記配列に対する、1より大きい最上位データ部分の位置を示す2以上マップと、
前記データ値の前記配列に対する、2より大きい最上位データ部分を示す位置を示す3以上マップと
を含む
データ符号化装置の動作方法。
16. データ復号化装置の動作方法であって、
前記データ復号化装置によって、データセット及び前記データセットによって符号化されない値のためのエスケープコードとして符号化された入力される符号化データ値を復号化し、
前記エスケープコードはそれぞれ、プレフィックス部分と、前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の前記長さが、前記プレフィックス部分の前記ビット長よりも長くなるような関係になる、非α符号化サフィックス部分とを含む
データ符号化装置の動作方法。
17. コンピュータに、上記1〜16のいずれか一項に記載のデータ符号化装置の動作方法の各ステップを実行させるプログラム。
18. データセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値の配列を符号化するように構成されるエンコーダを具備し、
前記エスケープコードはそれぞれ、プレフィックス部分と、前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の前記長さが、前記プレフィックス部分の前記ビット長よりも長くなるような関係になる、非α符号化サフィックス部分とを含む
データ符号化装置。
19. データセット及び前記データセットによって符号化されない値のためのエスケープコードとして符号化された入力される符号化データ値を復号化するように構成されるデコーダを具備し、
前記エスケープコードはそれぞれ、プレフィックス部分と、前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の前記長さが、前記プレフィックス部分の前記ビット長よりも長くなるような関係になる、非α符号化サフィックス部分とを含む
データ復号化装置。
20. 上記18に記載のデータ符号化装置又は19に記載のデータ復号化装置を具備する装置であって、ビデオデータキャプチャ装置、送信装置、表示装置、及び記憶装置のうち少なくとも1つの機能を有する装置。
本開示のさらなる態様及び特徴は、以下の番号付けされた項によって定義される。
1. 入力される符号化データ値を、ビット深度を有する復号化データ値に復号化するように構成されるデコーダを具備し、
前記入力される符号化データ値は、データセット、及び前記データセットによって符号化されない値のためのエスケープコードとして符号化され、
前記エスケープコードはそれぞれ、
前記データ値の前記ビット深度に依存する最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の長さが、前記プレフィックス部分の前記ビット長より長くなる関係にある、非α符号化サフィックス部分と
を有する
データ復号化装置。
2. 上記1に記載のデータ復号化装置であって、
前記プレフィックス部分は、α符号化値を含む
データ復号化装置。
3. 上記2に記載のデータ復号化装置であって、
前記プレフィックス部分は、切り捨てα符号化(truncated unary coding)値を含む
データ復号化装置。
4. 上記1〜3のいずれか一項に記載のデータ復号化装置であって、
前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる1つ又は複数の表にアクセスするように構成される制御部
をさらに具備する
データ復号化装置。
5. 上記4に記載のデータ復号化装置であって、
前記制御部は、
(i)前記符号化データ値に関係付けられるデータフラグと、
(ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータと
から成る群のうちの1つ又は複数に応じて、前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる前記表のうちの1つを選択するように構成される
データ復号化装置。
6. 上記1〜3のいずれか一項に記載のデータ復号化装置であって、
前記プレフィックス部分によって符号化された前記値は、前記非α符号化サフィックス部分の前記長さが、前記プレフィックス部分によって符号化された前記値の指数関数であるように、前記非α符号化サフィックス部分の前記長さに関係付けられる
データ復号化装置。
7. 上記1〜3のいずれか一項に記載のデータ復号化装置であって、
前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとの前記関係は、前記非α符号化サフィックス部分の最大長さが、符号化される前記データ値のそれぞれの最大ビット数と、所定の最大値とから成るリストから選択される最大値より大きくならないように設定される
データ復号化装置。
8. 上記1〜7のいずれか一項に記載のデータ復号化装置であって、
前記プレフィックス部分はそれ自体が指数ゴロム符号として符号化される
データ復号化装置。
9. 上記1〜8のいずれか一項に記載のデータ復号化装置であって、
前記プレフィックス長は、前記データ値の前記ビット深度に6を足した値に依存する最大プレフィックス長を上限とする
データ復号化装置。
10. 上記1〜9のいずれか一項に記載のデータ復号化装置であって、
前記最大プレフィックス長は、所定の定数から符号化用の前記データ値の前記ダイナミックレンジに等しい値を差し引いた値に等しい
データ復号化装置。
11. 上記10に記載のデータ復号化装置であって、
前記所定の定数は、29に等しい
データ復号化装置。
12. 上記10に記載のデータ復号化装置であって、
前記所定の定数は、28に等しい
データ復号化装置。
13. 上記1〜12のいずれか一項に記載のデータ復号化装置であって、
前記データセットのうちの1つは、前記データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップである
データ復号化装置。
14. 上記13に記載のデータ復号化装置であって、
前記重要性マップは、前記データ値の配列の所定の順序で、非ゼロの値を有する前記最上位データ部分の最後の位置を示すデータフラグを含む
データ復号化装置。
15. データ復号化装置の動作方法であって、
前記データ復号化装置によって、入力される符号化データ値を、ビット深度を有する復号化データ値に復号化し、
前記入力される符号化データ値は、データセット、及び前記データセットによって符号化されない値のためのエスケープコードとして符号化され、
前記エスケープコードはそれぞれ、
前記データ値の前記ビット深度に依存する最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の長さが、前記プレフィックス部分の前記ビット長より長くなる関係にある、非α符号化サフィックス部分とを有する
データ復号化装置の動作方法。
16. コンピュータに、上記15に記載のデータ復号化装置の動作方法の各ステップを実行させるプログラム。
17. 上記16に記載のプログラムが記録された機械可読記憶媒体。
18. ビット深度を有するデータセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値のアレイを符号化するように構成されるエンコーダを具備し、
前記エスケープコードはそれぞれ、
前記データ値の前記ビット深度に依存する最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の長さが、前記プレフィックス部分の前記ビット長より長くなる関係にある
データ符号化装置。
19. 上記18に記載のデータ符号化装置であって、
前記プレフィックス部分は、α符号化値を含む
データ符号化装置。
20. 上記19に記載のデータ符号化装置であって、
前記プレフィックス部分は、切り捨てα符号化を含む
データ符号化装置。
21. 上記18〜20のいずれか一項に記載のデータ符号化装置であって、
前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる1つ又は複数の表にアクセスするように構成される制御部
をさらに具備する
データ符号化装置。
22. 上記21に記載のデータ符号化装置であって、
前記制御部は、
(i)前記符号化データ値に関係付けられるデータフラグと、
(ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータと
に応じて、前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる前記表のうちの1つを選択するように構成される
データ符号化装置。
23. 上記18〜20のいずれか一項に記載のデータ符号化装置であって、
前記プレフィックス部分によって符号化された前記値は、前記非α符号化サフィックス部分の前記長さが、前記プレフィックス部分によって符号化された前記値の指数関数であるように、前記非α符号化サフィックス部分の前記長さに関係付けられる
データ符号化装置。
24. 上記18〜20のいずれか一項に記載のデータ符号化装置であって、
前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとの前記関係は、前記非α符号化サフィックス部分の最大長さが、符号化される前記データ値のそれぞれの最大ビット数と、所定の最大値とから成るリストから選択される最大値より大きくならないように設定される
データ符号化装置。
25. 上記18〜24のいずれか一項に記載のデータ符号化装置であって、
前記プレフィックス部分はそれ自体が指数ゴロム符号として符号化される
データ符号化装置。
26. 上記18〜25のいずれか一項に記載のデータ符号化装置であって、
前記最大プレフィックス長は、所定の定数から符号化用の前記データ値の前記ダイナミックレンジに等しい値を差し引いた値に等しい
データ符号化装置。
27. 上記26に記載のデータ符号化装置であって、
前記所定の定数は、29に等しい
データ符号化装置。
28. 上記26に記載のデータ符号化装置であって、
前記所定の定数は、28に等しい
データ符号化装置。
29. 上記18〜28のいずれか一項に記載のデータ符号化装置であって、
前記データセットのうちの1つは、前記データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップである
データ符号化装置。
30. 上記29に記載のデータ符号化装置であって、
前記重要性マップは、前記データ値の配列の所定の順序で、非ゼロの値を有する前記最上位データ部分の最後の位置を示すデータフラグを含む
データ符号化装置。
31. 上記29又は30に記載のデータ符号化装置であって、
前記データセットは、
前記データ値の前記配列に対する、1より大きい最上位データ部分の位置を示す2以上マップと、
前記データ値の前記配列に対する、2より大きい最上位データ部分の位置を示す3以上マップと
を含む
データ符号化装置。
32. データ符号化装置の動作方法であって、
前記データ符号化装置によって、ビット深度を有するデータセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値のアレイを符号化し、
前記エスケープコードはそれぞれ、
前記データ値の前記ビット深度に依存する最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
前記プレフィックス部分によって符号化された値に依存するビット長を有する非α符号化サフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該非α符号化サフィックス部分の長さが、前記プレフィックス部分の前記ビット長より長くなる関係にある
データ符号化装置の動作方法。
33. コンピュータに、上記32に記載のデータ符号化装置の動作方法の各ステップを実行させるプログラム。
34. 上記33に記載のプログラムが記録された機械可読記憶媒体。
35. 請求項1〜14及び18〜31のいずれか一項に記載のデータ復号化装置を具備する装置であって、ビデオデータキャプチャ装置、送信装置、表示装置、及び記憶装置のうち少なくとも1つの機能を有する装置。
プレフィックス長とサフィックス長との関係を選択又は確立するため、且つ/又は、最大プレフィックス長を選択又は確立するための、デコーダ若しくはエンコーダの各機能又は復号化方法若しくは符号化方法の各機能的なステップは、例えば、(いくつかの上述の例では)制御部345等の制御部が実行してもよいことが理解されるであろう。
上述のように、上記の項の装置特徴は、上述のエンコーダ又はデコーダの特徴により実行されてもよいことが理解されるであろう。

Claims (35)

  1. 入力される符号化データ値を、ビット深度を有する復号化データ値に拡張精度処理により復号化するように構成されるデコーダを具備し、
    前記入力される符号化データ値は、データセット、及び前記データセットによって符号化されない値のためのエスケープコードとして符号化され、
    前記エスケープコードはそれぞれ、
    前記符号化データ値の前記ビット深度に依存する最大プレフィックス長であって所定の計算により算出される前記最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
    前記プレフィックス部分によって符号化された値に依存するビット長を有するサフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該サフィックス部分の前記ビット長が、前記プレフィックス部分のビット長より長くなる関係にある場合に、非α符号化サフィックス部分として処理されるサフィックス部分
    を有する
    データ復号化装置。
  2. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス部分は、α符号化値を含む
    データ復号化装置。
  3. 請求項2に記載のデータ復号化装置であって、
    前記プレフィックス部分は、切り捨てα符号化(truncated unary coding)値を含む
    データ復号化装置。
  4. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる1つ又は複数の表にアクセスするように構成される制御部
    をさらに具備する
    データ復号化装置。
  5. 請求項4に記載のデータ復号化装置であって、
    前記制御部は、
    (i)前記符号化データ値に関係付けられるデータフラグと、
    (ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータと
    から成る群のうちの1つ又は複数に応じて、前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる前記表のうちの1つを選択するように構成される
    データ復号化装置。
  6. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス部分によって符号化された前記値は、前記非α符号化サフィックス部分の前記長さが、前記プレフィックス部分によって符号化された前記値の指数関数であるように、前記非α符号化サフィックス部分の前記長さに関係付けられる
    データ復号化装置。
  7. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとの前記関係は、前記非α符号化サフィックス部分の最大長さが、符号化される前記データ値のそれぞれの最大ビット数と、所定の最大値とから成るリストから選択される最大値より大きくならないように設定される
    データ復号化装置。
  8. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス部分はそれ自体が指数ゴロム符号として符号化される
    データ復号化装置。
  9. 請求項1に記載のデータ復号化装置であって、
    前記プレフィックス長は、前記データ値の前記ビット深度に6を足した値に依存する最大プレフィックス長を上限とする
    データ復号化装置。
  10. 請求項1に記載のデータ復号化装置であって、
    前記最大プレフィックス長は、所定の定数から符号化用の前記データ値のダイナミックレンジに等しい値を差し引いた値に等しい
    データ復号化装置。
  11. 請求項10に記載のデータ復号化装置であって、
    前記所定の定数は、29に等しい
    データ復号化装置。
  12. 請求項10に記載のデータ復号化装置であって、
    前記所定の定数は、28に等しい
    データ復号化装置。
  13. 請求項1に記載のデータ復号化装置であって、
    前記データセットのうちの1つは、前記データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップである
    データ復号化装置。
  14. 請求項13に記載のデータ復号化装置であって、
    前記重要性マップは、前記データ値の配列の所定の順序で、非ゼロの値を有する前記最上位データ部分の最後の位置を示すデータフラグを含む
    データ復号化装置。
  15. データ復号化装置の動作方法であって、
    前記データ復号化装置によって、入力される符号化データ値を、ビット深度を有する復号化データ値に拡張精度処理により復号化し、
    前記入力される符号化データ値は、データセット、及び前記データセットによって符号化されない値のためのエスケープコードとして符号化され、
    前記エスケープコードはそれぞれ、
    前記符号化データ値の前記ビット深度に依存する最大プレフィックス長であって所定の計算により算出される前記最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
    前記プレフィックス部分によって符号化された値に依存するビット長を有するサフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該サフィックス部分の前記ビット長が、前記プレフィックス部分のビット長より長くなる関係にある場合に、非α符号化サフィックス部分として処理されるサフィックス部分とを有する
    データ復号化装置の動作方法。
  16. コンピュータに、請求項15に記載のデータ復号化装置の動作方法の各ステップを実行させるプログラム。
  17. 請求項16に記載のプログラムが記録された機械可読記憶媒体。
  18. ビット深度を有するデータセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値のアレイを拡張精度処理により符号化するように構成されるエンコーダを具備し、
    前記エスケープコードはそれぞれ、
    前記データ値の前記ビット深度に依存する最大プレフィックス長であって所定の計算により算出される前記最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
    前記プレフィックス部分によって符号化された値に依存するビット長を有するサフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該サフィックス部分の前記ビット長が、前記プレフィックス部分のビット長より長くなる関係にある場合に、非α符号化サフィックス部分として処理されるサフィックス部分とを有する
    データ符号化装置。
  19. 請求項18に記載のデータ符号化装置であって、
    前記プレフィックス部分は、α符号化値を含む
    データ符号化装置。
  20. 請求項19に記載のデータ符号化装置であって、
    前記プレフィックス部分は、切り捨てα符号化を含む
    データ符号化装置。
  21. 請求項18に記載のデータ符号化装置であって、
    前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる1つ又は複数の表にアクセスするように構成される制御部
    をさらに具備する
    データ符号化装置。
  22. 請求項21に記載のデータ符号化装置であって、
    前記制御部は、
    (i)前記符号化データ値に関係付けられるデータフラグと、
    (ii)先に符号化された1つ又は複数のデータ値から導出されるパラメータと
    に応じて、前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとが関係付けられる前記表のうちの1つを選択するように構成される
    データ符号化装置。
  23. 請求項18に記載のデータ符号化装置であって、
    前記プレフィックス部分によって符号化された前記値は、前記非α符号化サフィックス部分の前記長さが、前記プレフィックス部分によって符号化された前記値の指数関数であるように、前記非α符号化サフィックス部分の前記長さに関係付けられる
    データ符号化装置。
  24. 請求項18に記載のデータ符号化装置であって、
    前記プレフィックス部分によって符号化された前記値と、前記非α符号化サフィックス部分の前記長さとの前記関係は、前記非α符号化サフィックス部分の最大長さが、符号化される前記データ値のそれぞれの最大ビット数と、所定の最大値とから成るリストから選択される最大値より大きくならないように設定される
    データ符号化装置。
  25. 請求項18に記載のデータ符号化装置であって、
    前記プレフィックス部分はそれ自体が指数ゴロム符号として符号化される
    データ符号化装置。
  26. 請求項18に記載のデータ符号化装置であって、
    前記最大プレフィックス長は、所定の定数から符号化用の前記データ値のダイナミックレンジに等しい値を差し引いた値に等しい
    データ符号化装置。
  27. 請求項26に記載のデータ符号化装置であって、
    前記所定の定数は、29に等しい
    データ符号化装置。
  28. 請求項26に記載のデータ符号化装置であって、
    前記所定の定数は、28に等しい
    データ符号化装置。
  29. 請求項18に記載のデータ符号化装置であって、
    前記データセットのうちの1つは、前記データ値の配列に対する、非ゼロである最上位データ部分の位置を示す重要性マップである
    データ符号化装置。
  30. 請求項29に記載のデータ符号化装置であって、
    前記重要性マップは、前記データ値の配列の所定の順序で、非ゼロの値を有する前記最上位データ部分の最後の位置を示すデータフラグを含む
    データ符号化装置。
  31. 請求項29に記載のデータ符号化装置であって、
    前記データセットは、
    前記データ値の前記配列に対する、1より大きい最上位データ部分の位置を示す2以上マップと、
    前記データ値の前記配列に対する、2より大きい最上位データ部分の位置を示す3以上マップと
    を含む
    データ符号化装置。
  32. データ符号化装置の動作方法であって、
    前記データ符号化装置によって、ビット深度を有するデータセット及び前記データセットによって符号化されない値のためのエスケープコードとしてデータ値のアレイを拡張精度処理により符号化し、
    前記エスケープコードはそれぞれ、
    前記データ値の前記ビット深度に依存する最大プレフィックス長であって所定の計算により算出される前記最大プレフィックス長に制限されるプレフィックス長を有するプレフィックス部分と、
    前記プレフィックス部分によって符号化された値に依存するビット長を有するサフィックス部分であって、前記プレフィックス部分によって符号化された少なくともいくつかの値に関して、当該サフィックス部分の前記ビット長が、前記プレフィックス部分のビット長より長くなる関係にある場合に、非α符号化サフィックス部分として処理されるサフィックス部分とを有する
    データ符号化装置の動作方法。
  33. コンピュータに、請求項32に記載のデータ符号化装置の動作方法の各ステップを実行させるプログラム。
  34. 請求項33に記載のプログラムが記録された機械可読記憶媒体。
  35. 請求項1に記載のデータ復号化装置を具備する装置であって、ビデオデータキャプチャ装置、送信装置、表示装置、及び記憶装置のうち少なくとも1つの機能を有する装置。
JP2016542255A 2013-12-23 2014-11-07 データ符号化及び復号化 Active JP6730187B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1322947.1 2013-12-23
GB1322947.1A GB2521828A (en) 2013-12-23 2013-12-23 Data encoding and decoding
GB1403854.1A GB2521685A (en) 2013-12-23 2014-03-05 Data encoding and decoding
GB1403854.1 2014-03-05
PCT/GB2014/053326 WO2015097425A1 (en) 2013-12-23 2014-11-07 Data encoding and decoding

Publications (2)

Publication Number Publication Date
JP2017507519A JP2017507519A (ja) 2017-03-16
JP6730187B2 true JP6730187B2 (ja) 2020-07-29

Family

ID=50114704

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016542255A Active JP6730187B2 (ja) 2013-12-23 2014-11-07 データ符号化及び復号化

Country Status (12)

Country Link
US (2) US10237556B2 (ja)
EP (1) EP3087739B1 (ja)
JP (1) JP6730187B2 (ja)
KR (2) KR102343621B1 (ja)
CN (2) CN111083476B (ja)
AU (1) AU2014372362B2 (ja)
CA (2) CA2933395C (ja)
GB (2) GB2521828A (ja)
MX (1) MX367071B (ja)
RU (1) RU2679784C2 (ja)
TW (1) TWI662830B (ja)
WO (1) WO2015097425A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2513111A (en) * 2013-04-08 2014-10-22 Sony Corp Data encoding and decoding
US10425659B2 (en) 2015-01-30 2019-09-24 Qualcomm Incorporated Coding escape pixels for palette coding
US11368720B2 (en) * 2016-05-13 2022-06-21 Sony Corporation Image processing apparatus and method
EP3264763A1 (en) 2016-06-29 2018-01-03 Thomson Licensing Method and apparatus for improved significance flag coding using simple local predictor
CN115297325A (zh) * 2017-04-13 2022-11-04 Lg 电子株式会社 熵编码和解码视频信号的方法和设备
US10795836B2 (en) * 2017-04-17 2020-10-06 Microsoft Technology Licensing, Llc Data processing performance enhancement for neural networks using a virtualized data iterator
US20180316938A1 (en) * 2017-04-26 2018-11-01 Canon Kabushiki Kaisha Method and apparatus for k-th order exp-golomb binarization
GB2567427B (en) * 2017-10-06 2020-10-07 Imagination Tech Ltd Data compression
GB2567861A (en) * 2017-10-27 2019-05-01 Sony Corp Image data encoding and decoding
GB2570711B (en) 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
US11477486B2 (en) 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
US11012701B2 (en) * 2019-02-22 2021-05-18 Tencent America LLC Residual coding for transform skip mode and block differential pulse-code modulation
CN111865487B (zh) 2019-04-29 2022-07-29 华为技术有限公司 一种编码方法及通信设备
US11496745B2 (en) 2019-06-24 2022-11-08 Qualcomm Incorporated Binarization in transform skip residual coding
WO2021058655A1 (en) * 2019-09-24 2021-04-01 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Arithmetic encoders and decoders, video encoders and decoders, methods for encoding or decoding symbols, and methods for encoding or decoding video content
GB2590723A (en) * 2019-12-31 2021-07-07 Sony Corp Data encoding and decoding
US11637685B2 (en) 2021-08-31 2023-04-25 Samsung Display Co., Ltd. System and method for transition encoding with flexible word-size

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455577A (en) * 1993-03-12 1995-10-03 Microsoft Corporation Method and system for data compression
EP1267581B1 (en) * 1995-03-15 2007-05-02 Kabushiki Kaisha Toshiba Moving picture decoding systems
US7099881B2 (en) * 2002-12-06 2006-08-29 Stmicroelectronics, Inc. Method for increasing average storage capacity in a bit-mapped tree-based storage engine by using remappable prefix representations and a run-length encoding scheme that defines multi-length fields to compactly store IP prefixes
WO2005013493A1 (en) * 2003-07-29 2005-02-10 Zakrytoe Aktsionernoe Obschestvo Intel A method for efficient variable length decoding
US7660355B2 (en) * 2003-12-18 2010-02-09 Lsi Corporation Low complexity transcoding between video streams using different entropy coding
FR2875042B1 (fr) * 2004-09-03 2006-11-24 Canon Kk Procede et dispositif d'acces aleatoire a une zone d'une image codee en vue de la decoder et procede et dispositif de codage d'une image
US20060198322A1 (en) * 2005-03-03 2006-09-07 Susan Hares Method and apparatus for BGP peer prefix limits exchange with multi-level control
KR100718134B1 (ko) * 2005-07-21 2007-05-14 삼성전자주식회사 비트율에 적응적인 영상 데이터 이진 산술 부호화/복호화장치 및 방법
US7540430B2 (en) * 2005-09-27 2009-06-02 The Boeing Company System and method for string distance measurement for alphanumeric indicia
JP4732203B2 (ja) * 2006-03-17 2011-07-27 キヤノン株式会社 画像符号化装置及び復号装置及びそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
RU2505938C2 (ru) * 2008-04-10 2014-01-27 Квэлкомм Инкорпорейтед Интерполяция на основе искажений в зависимости от скорости передачи для кодирования видео на основе неперестраиваемого фильтра или адаптивного фильтра
EP2112764A1 (en) * 2008-04-25 2009-10-28 Thomson Licensing Method for encoding a sequence of integers, storage device and signal carrying an encoded integer sequence and method for decoding a sequence of integers
CN102238387B (zh) * 2011-05-25 2017-07-18 深圳市云宙多媒体技术有限公司 一种视频熵编码、熵解码方法、装置
PT2721819T (pt) * 2011-06-16 2023-11-22 Ge Video Compression Llc Codificação de entropia suportando comutação de modo
US8737499B2 (en) * 2011-10-17 2014-05-27 Qualcomm Incorporated Advanced interference cancellation for precoded GSM edge radio access network (GERAN)
PL3849199T3 (pl) * 2011-11-07 2023-04-17 Tagivan Ii Llc Sposób kodowania obrazu i urządzenie kodujące obraz
KR20140097969A (ko) * 2011-11-07 2014-08-07 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 화상 부호화 방법, 화상 복호 방법, 화상 부호화 장치, 화상 복호 장치, 및 화상 부호화 복호 장치
US9154792B2 (en) 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
KR101843087B1 (ko) * 2012-03-05 2018-03-28 삼성전자주식회사 디코딩 장치 및 방법
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
US20130336386A1 (en) * 2012-06-18 2013-12-19 Qualcomm Incorporated Sample adaptive offset (sao) coding
US9894385B2 (en) * 2013-01-02 2018-02-13 Lg Electronics Inc. Video signal processing method and device
US9930348B2 (en) * 2014-03-14 2018-03-27 Qualcomm Incorporated Coefficient level coding in a video coding process
CA2950818C (en) * 2014-06-20 2020-12-22 Hfi Innovation Inc. Method and apparatus of binarization and context-adaptive coding for syntax in video coding
US10142629B2 (en) * 2015-12-28 2018-11-27 Mediatek Inc. Method and apparatus for entropy coding in image compression
US10110931B2 (en) * 2016-04-27 2018-10-23 Aspeed Technology Inc. Variable length coding and decoding methods and devices for grouped pixels
AU2016231584A1 (en) * 2016-09-22 2018-04-05 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding video data
US10484695B2 (en) * 2017-10-23 2019-11-19 Google Llc Refined entropy coding for level maps

Also Published As

Publication number Publication date
CN111083476A (zh) 2020-04-28
RU2016130271A3 (ja) 2018-07-10
TWI662830B (zh) 2019-06-11
KR20160101925A (ko) 2016-08-26
CN111083476B (zh) 2022-02-08
KR102343621B1 (ko) 2021-12-28
KR102462386B1 (ko) 2022-11-03
JP2017507519A (ja) 2017-03-16
CA3114216A1 (en) 2015-07-02
RU2679784C2 (ru) 2019-02-12
EP3087739B1 (en) 2023-08-02
GB2521685A (en) 2015-07-01
US20190253714A1 (en) 2019-08-15
GB201403854D0 (en) 2014-04-16
AU2014372362A1 (en) 2016-05-05
CN105850125A (zh) 2016-08-10
MX2016007334A (es) 2016-08-19
AU2014372362B2 (en) 2018-12-20
RU2016130271A (ru) 2018-01-30
CA2933395A1 (en) 2015-07-02
CA2933395C (en) 2023-06-27
US10237556B2 (en) 2019-03-19
US10893273B2 (en) 2021-01-12
GB201322947D0 (en) 2014-02-12
WO2015097425A1 (en) 2015-07-02
CA3114216C (en) 2023-09-05
GB2521828A (en) 2015-07-08
EP3087739A1 (en) 2016-11-02
MX367071B (es) 2019-08-05
TW201540049A (zh) 2015-10-16
CN105850125B (zh) 2019-11-05
KR20210158427A (ko) 2021-12-30
US20160295214A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
JP6730187B2 (ja) データ符号化及び復号化
JP6655579B2 (ja) データ符号化及び復号化
JP6400092B2 (ja) データ符号化及び復号化
JP6465903B2 (ja) データ符号化及び復号化
KR20160093061A (ko) 비디오 코덱에서 신택스 요소 인코딩을 위한 방법 및 장치
GB2496201A (en) Context adaptive data encoding and decoding
JP2022539311A (ja) ピクチャのサブセクション用の独立したcabac
WO2013068733A1 (en) Context adaptive data encoding
JP2022538007A (ja) 画像データ符号化及び復号化
JP2022548685A (ja) 画像データの符号化及び復号化
CN117157979A (zh) 编解码方法、编码器、解码器以及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171017

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180828

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181130

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190409

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190705

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191009

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20191119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200423

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200507

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200602

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200702

R150 Certificate of patent or registration of utility model

Ref document number: 6730187

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250