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

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

Info

Publication number
JP6655579B2
JP6655579B2 JP2017083360A JP2017083360A JP6655579B2 JP 6655579 B2 JP6655579 B2 JP 6655579B2 JP 2017083360 A JP2017083360 A JP 2017083360A JP 2017083360 A JP2017083360 A JP 2017083360A JP 6655579 B2 JP6655579 B2 JP 6655579B2
Authority
JP
Japan
Prior art keywords
data
value
range
bit
encoding
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
JP2017083360A
Other languages
English (en)
Other versions
JP2017184239A (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 JP2017184239A publication Critical patent/JP2017184239A/ja
Application granted granted Critical
Publication of JP6655579B2 publication Critical patent/JP6655579B2/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/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/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • 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/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [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
    • 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
    • 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/4081Static prefix 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/4087Encoding of a tuple of symbols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/18Methods 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 set of transform coefficients
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/93Run-length coding
    • HELECTRICITY
    • 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
    • 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/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Landscapes

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

Description

本発明は、データ符号化及び復号化に関する。
本明細書の「背景技術」の記載は、本出願における背景を一般的に説明するためのもの
である。本発明者らの技術は、この背景技術の欄で説明される範囲において、本出願の出
願時点で従来技術でないのであれば従来技術と見なしてはならない説明の側面と同様に、
明示又は黙示を問わず、本出願に対する従来技術として認められるものではない。
ビデオデータを周波数領域表現に変換し、得られた周波数領域係数を量子化し、その後
、当該量子化された係数にある種のエントロピー符号化を適用するビデオデータ圧縮シス
テム及びビデオデータ解凍システムが存在する。
これに関して、エントロピーは1つのデータシンボル又は一連のシンボルの情報量を表
していると考えられる。エントロピー符号化の目的は、(理想的には)一連のデータシン
ボルの情報量を表すのに必要な最小数の符号化データビットを用いた無損失な方法で、当
該一連のデータシンボルを符号化することである。実際には、エントロピー符号化は、符
号化されたデータのサイズが元の量子化係数のデータサイズよりも(ビット数に関して)
小さくなるように実行される。より効率的なエントロピー符号化処理を行うことができれ
ば、入力データサイズが同じ場合でも、出力データサイズを小さくすることができる。
ビデオデータをエントロピー符号化する技術の1つとして、いわゆるコンテキスト適応
バイナリ算術符号化(CABAC:context adaptive binary arithmetic coding)と呼
ばれる技術がある。
本発明の目的は、効率的なエントロピー符号化処理を行うことができるデータ符号化装
置及びデータ符号化方法を提供することである。
本発明によれば、請求項1に記載のデータ符号化装置、すなわち、符号化のためのデー
タセットの入力データ値を符号化するデータ符号化装置であって、現在の入力データ値の
値に従って、範囲変数によって定義される一連のコード値の複数の補足サブレンジのうち
の1つを選択し、前記現在の入力データ値を前記選択されたサブレンジ内のコード値に割
り当てるように構成された選択部と、前記割り当てられたコード値及び前記選択されたサ
ブレンジのサイズに基づいて前記一連のコード値を修正するように構成された修正部と、
前記一連のコード値を定義する前記範囲変数が所定の最小サイズより小さいか否かを検出
し、小さい場合、前記一連のコード値のサイズが少なくとも前記所定の最小サイズになる
まで前記範囲変数を連続的に増加させるように構成され、このようなサイズ増加動作に応
答して、符号化されたデータビットを出力する検出部と、1群の入力データ値を符号化し
た後、前記範囲変数をゼロに等しい少なくとも1つの最下位ビットを有する利用可能な範
囲変数値の所定のサブセットから選択された値に設定するように構成された範囲変数設定
部とを具備するデータ符号化装置が提供される。
本発明の各側面及び特徴は、添付の特許請求の範囲において定義される。
なお、上述の一般的な説明及び以降の詳細な説明は、本発明の一例であり、本発明を限
定するものではないことが理解されるべきである。
ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオ(A/V)データ送受信システムを示す概略図である。 ビデオデータ解凍を行うビデオ表示システムを示す概略図である。 ビデオデータ圧縮及びビデオデータ解凍を行うオーディオ/ビデオ記憶システムを示す概略図である。 ビデオデータ圧縮を行うビデオカメラを示す概略図である。 ビデオデータ圧縮・解凍装置を示す概略図である。 予測画像の生成を示す概略図である。 最大符号化ユニット(LCU:Largest Coding Unit)を示す概略図である。 4つの符号化ユニット(CU:Coding Unit)の組を示す概略図である。 小さな符号化ユニットに細分された図8の符号化ユニットを示す概略図である。 小さな符号化ユニットに細分された図8の符号化ユニットを示す概略図である。 予測ユニット(PU:Prediction Unit)の配列を示す概略図である。 変換部(TU:Transform Unit)の配列を示す概略図である。 部分的に符号化された画像を示す概略図である。 考えられる一連の予測方向を示す概略図である。 一連の予測モードを示す概略図である。 ジグザグスキャンを示す概略図である。 CABACエントロピーエンコーダを示す概略図である。 図18A〜図18Dは、CABAC符号化及び復号化動作を示す概略図である。 CABACエンコーダを示す概略図である。 CABACデコーダを示す概略図である。 符号化システムの概要を示す概略図である。 量子化パラメータ(QP)に対するビットレートのグラフである。 変換スキップモードを有効にした6つのテストビットデプスについてのグリーンチャネルPSNRについてのビットレートのグラフである。 変換スキップモードを無効にした6つのテストビットデプスについてのグリーンチャネルPSNRに対するビットレートのグラフである。 14ビット変換行列による6つのテストビットデプスについてのグリーンチャネルPSNRに対するビットレートのグラフである。 様々な精度DCT行列を比較する1つのテストシーケンスについてのビットレートに対するPSNRのグラフである。 バイパス固定ビット符号化の使用を示す1つのテストシーケンスについてのビットレートに対するPSNRのグラフである。 符号化プロファイルの例を提供する表である。 CABAC処理の一部のバージョンを概略的に示すフローチャートである。 CABAC処理の一部のバージョンを概略的に示すフローチャートである。 CABAC処理の一部のバージョンを概略的に示すフローチャートである。 図32A〜図32Fは、異なるCABAC配列スキームを示す概略図である。 CABAC処理の終了ステージのバージョンを概略的に示すフローチャートである。 CABAC処理の終了ステージのバージョンを概略的に示すフローチャートである。 CABAC処理の終了ステージのバージョンを概略的に示すフローチャートである。 符号化技術を概略的に示すフローチャートである。 適用技術を概略的に示すフローチャートである。 変換ダイナミックレンジ及びデータ精度パラメータを選択する処理を概略的に示すフローチャートである。 変換ダイナミックレンジ及びデータ精度パラメータを選択する処理を概略的に示すフローチャートである。
添付図面と共に以降の詳細な説明を参照することによって、本発明の完全な理解及びそ
の優位性の多くが容易に理解される。
次に各図面を参照すると、図1〜図4には、以下に説明する各実施形態に係る圧縮装置
及び/又は解凍装置を利用する装置又はシステムが概略的に示されている。
以下に説明する全てのデータ圧縮装置及び/又はデータ解凍装置は、ハードウェアで実
現されてもよいし、例えば、特定用途向け集積回路(ASIC:application specific i
ntegrated circuit)又はフィールドプログラマブルゲートアレイ(FPGA:field pro
grammable 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において、C
CD(Charge Coupled Device)イメージセンサ及びそれに付随する制御・読出電子機器
等の画像キャプチャ装置180は、圧縮装置190に渡されるビデオ信号を生成する。1
つのマイクロフォン(あるいは複数のマイクロフォン)200は、圧縮装置190に渡さ
れるオーディオ信号を生成する。圧縮装置190は、記憶及び/又は送信される(図4に
おいては、ステージ220として包括的に表されている)圧縮オーディオ/ビデオ信号2
10を生成する。
以下に説明する技術は、主に、ビデオデータ圧縮に関する。オーディオデータ圧縮を行
うために、以降に説明するビデオデータ圧縮技術とともに多くの既存の技術を用いて圧縮
オーディオ/ビデオ信号を生成してもよいことが理解されよう。したがって、オーディオ
データ圧縮について別途説明は行わない。また、特に、放送品質ビデオデータにおいて、
ビデオデータに関連するデータレートは、(圧縮及び非圧縮を問わず)一般的に、オーデ
ィオデータに関連するデータレートよりもはるかに高いことも理解されよう。したがって
、非圧縮オーディオデータは、圧縮ビデオデータに追加することができ、これにより、圧
縮オーディオ/ビデオ信号を形成できることが理解されよう。さらに、本発明の実施形態
(図1〜図4参照)はオーディオ/ビデオデータに関するものであるが、以下に説明する
技術は、単にビデオデータを扱う(すなわち、圧縮、解凍、記憶、表示、及び/又は送信
する)システムに使用してもよいことが理解されよう。すなわち、これら実施形態は、必
ずしもオーディオデータ処理と関連している必要はなく、ビデオデータ圧縮に適用するこ
とができる。
図5は、ビデオデータ圧縮・解凍装置を示す概略図である。
連続画像の入力ビデオ信号300は、加算部310及び画像予測部320に供給される
。画像予測部320については、図6を参照して後で詳述する。加算部310は、「+」
入力上で入力ビデオ信号300を受信し、「−」入力上で画像予測部320の出力を受信
する事実上の減算(負の加算)動作を実行する。これにより、入力画像から予測画像が減
算される。この結果、実画像と予測画像との差を表すいわゆる残差画像信号330が生成
される。
残差画像信号を生成する理由の1つは以下のとおりである。説明を行うデータ符号化技
術、すなわち、残差画像信号に適用される技術は、符号化される画像において「エネルギ
ー」が少ない場合に、より効率的に作用する傾向がある。ここで、「効率的」という用語
は、生成した符号化データの量が少ないことを指す。特定の画像品質レベルにおいては、
生成するデータができるだけ少ないことが望ましい(かつ、「効率的」と考えられる)。
残差画像における「エネルギー」は、残差画像に含まれる情報量に関連する。仮に、予測
画像と実画像とが同一だとすると、これら2つの画像の差(すなわち、残差画像)は、ゼ
ロの情報(ゼロエネルギー)を含み、非常に容易に少量の符号化データに符号化できる。
一般的に、予測処理をある程度良好に実行できる場合、残差画像データは、入力画像より
も情報が小さく(エネルギーが少ない)、容易に少量の符号化データに符号化することが
できると予想される。
残差画像データ330は、残差画像データの離散コサイン変換(DCT:Discrete Cos
ine Transform)表現を生成する変換部340に供給される。このDCT技術自体は広く
知られており、ここでの詳細な説明は行わない。しかしながら、特に、DCT動作が適用
されるデータの様々なブロックの選択に関して、以降で詳細に説明する装置で用いられる
技術の側面が存在する。これらについては、図7〜図12を参照して以降で説明する。
なお、いくつかの実施形態では、DCTの代わりに、離散サイン変換(DST:discre
te 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は効率がよいと考えられている。ある研究では、CA
BACにおける符号化出力データの量は、同等の画像品質に対して、CAVLCよりも1
0〜20%少ないことが示されている。しかしながら、CAVLCが示す(実行する上で
の)複雑性のレベルは、CABACの複雑性のレベルよりもはるかに低いと考えられてい
る。CABAC技術については、図17を参照して以降に説明し、CAVLC技術につい
ては、図18及び図19を参照して以降に説明する。
なお、スキャン処理及びエントロピー符号化処理は、別々の処理として示されているが
、実際には、組み合わせるか、又は、一緒に扱うことができる。すなわち、エントロピー
エンコーダへのデータの読み出しは、スキャン順で行うことができる。これと同様の事は
、以下に説明する各逆処理にも当てはまる。
エントロピーエンコーダ370の出力により、例えば、予測部320が予測画像を生成
する方法を定義する(上述及び/又は後述の)追加データと共に、圧縮出力ビデオ信号3
80が提供される。
一方、予測部320自身の動作は解凍された圧縮出力データに依存するため、リターン
パスも提供される。
この機能の理由は以下の通りである。解凍処理(後述)における適切なステージで、解
凍された残差データが生成される。この解凍残差データは、出力画像を生成するために、
予測画像に追加する必要がある(なぜなら、元の残差データは、入力画像と予測画像との
差であったため)。圧縮側と解凍側との間でこの処理が同等となるように、予測部320
によって生成される予測画像は、圧縮処理中及び解凍処理中において、同一であるべきで
ある。もちろん、装置は、解凍時において元の入力画像にアクセスすることができない。
装置がアクセスできるのは、解凍画像のみである。したがって、圧縮時において、予測部
320は、解凍された圧縮画像に基づいて(少なくとも、インター画像符号化について)
その予測を行う。
エントロピーエンコーダ370により実行されるエントロピー符号化処理は、「無損失
(lossless)」であると考えられる。すなわち、エントロピーエンコーダ370に最初に
供給されたデータと全く同じデータに置き換えることができる。したがって、リターンパ
スは、エントロピー符号化ステージよりも前に実装することができる。実際、スキャン部
360によって実行されるスキャン処理も無損失であると考えられるが、本実施形態では
、リターンパス390は、量子化部350の出力から、補足逆量子化部420の入力まで
とされている。
一般的には、エントロピーデコーダ(ED)410、逆スキャン部400、逆量子化部
420、逆変換部430は、それぞれ、エントロピーエンコーダ370、スキャン部36
0、量子化部350、及び変換部340の逆機能を提供する。ここでは、圧縮処理につい
て説明を続け、入力圧縮ビデオ信号を解凍するための処理については、これとは別に後述
する。
圧縮処理において、量子化された係数は、リターンパス390により量子化部350か
ら、スキャン部360の逆動作を実行する逆量子化部420に渡される。逆量子化処理及
び逆変換処理がユニット420、430により実行され、圧縮−解凍残差画像信号440
が生成される。
画像信号440は、加算部450で予測部320の出力に追加され、再構築出力画像4
60が生成される。これにより、以下に説明するように、画像予測部320への1つの入
力が構成される。
受信した圧縮ビデオ信号470に適用される処理について説明する。圧縮ビデオ信号4
70は、まず、エントロピーデコーダ410に供給され、そこから逆スキャン部400、
逆量子化部420、及び逆変換部430の順に供給される。その後、加算部450により
画像予測部320の出力に追加される。単刀直入に言うと、加算部450の出力460は
、出力解凍ビデオ信号480を形成する。実際には、信号の出力の前に、さらにフィルタ
リングを施してもよい。
図6は、予測画像の生成を示す概略図であり、特に、画像予測部320の動作を示して
いる。
いわゆるイントラ画像予測、及びいわゆるインター画像予測又は動き補償(MC:Moti
on-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からのフィルタリングされた出力は、実際には、出力ビデオ信号48
0を形成する。この信号は、1つ又は複数の画像記憶部570に記憶される。連続画像の
記憶は、動き補償予測処理、特に、動きベクトルの生成において要求される。必要メモリ
を確保するため、画像記憶部570内の記憶画像は、圧縮形式で保持され、その後、動き
ベクトルの生成に用いるために解凍されてもよい。この特定の目的のために、公知のいか
なる圧縮/解凍システムを用いてもよい。記憶画像は、より高い解像度の記憶画像を生成
する補間フィルタ580に渡される。この例では、補間フィルタ580によって出力され
る補間画像の解像度が、画像記憶部570に記憶された画像の8倍(各寸法)となるよう
に、中間サンプル(サブサンプル)が生成される。補間画像は、動き推定部550及び動
き補間予測部540への入力として渡される。
諸実施形態では、乗算部600を使用して、入力ビデオ信号のデータ値に因数4を乗算
し(効率的には、単にデータ値を2ビット左にシフトさせる)、除算部又は右シフト部6
10を使用して、装置の出力で、対応する除算動作(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サンプルの符号化ユニット7
20(図9)及び潜在的な8×8サンプルの符号化ユニット730(図10)が与えられ
るように、選択的な基準に基づいて行われてもよい。全体としては、この処理により、L
CUと同じ大きさ、あるいは、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、1
6×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に渡してもよい。データが既にバイナリ形式である場合、コンバータ9
00は(図のスイッチ910により)バイパスされる。本実施形態では、バイナリ形式へ
の変換は、実際には、量子化変換係数データを一連のバイナリ「マップ」として表現する
ことにより行う。バイナリマップについては後述する。
バイナリデータは、その後、(別々の経路として概略的に示されているが、後述する諸
実施形態では、わずかに異なるパラメータを用いるだけで同じ処理ステージで実際に実行
することができる)「正規」経路及び「バイパス」経路の2つの処理経路のうちの1つに
より処理してもよい。バイパス経路では、必ずしも正規経路と同じ形式のコンテキストモ
デリングを利用しないいわゆるバイパスコーダ920が用いられる。CABAC符号化の
いくつかの例では、一連のデータを特に急速に処理する必要がある場合、当該バイパス経
路を選択することができる。しかしながら、本実施形態では、いわゆる「バイパス」デー
タの2つの特徴について言及する。1つ目の特徴は、バイパスデータは、50%の確率を
表す固定コンテキストモデルを利用するだけでCABACエンコーダ(950,960)
により処理されることである。2つ目の特徴は、バイパスデータは、一定のカテゴリーの
データに関するということである。当該データの特定例は、係数符号データである。バイ
パス経路を選択しない場合、図に示すスイッチ930,940により正規パスが選択され
る。これには、コンテキストモデラ950によって処理され、続いて符号化エンジン96
0によって処理されるデータが含まれる。
図17に示すエントロピーエンコーダは、ブロック全体が0値のデータから構成される
場合、データのブロック(すなわち、例えば、残差画像のブロックに関する係数のブロッ
クに対応するデータ)を単一値として符号化する。このカテゴリーに含まれない各ブロッ
ク、すなわち、少なくともいくつかの非ゼロのデータを含むブロックに対しては、「重要
性マップ」を作成する。重要性マップは、符号化されるデータのブロックにおける各位置
に対して、ブロック内の対応する係数が非ゼロであるか否かを示す。バイナリ形式である
重要性マップデータ自体は、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)確率分布で固
定されるという事実に対しては、少なくとも符号データ及び値が2を超えるか否かを示す
マップに対して用いられる。2を超える値として特定されたこれらデータ位置に対して、
いわゆるエスケープデータ符号化を個別に実行して、そのデータの実際の値を符号化する
ことができる。この符号化は、ゴロムライス符号化技術を含んでもよい。
CABACコンテキストモデリング及び符号化処理は、WD4:Working Draft 4 of High-
Efficiency Video Coding, JCTVC-F803_d5, Draft ISO/IEC 23008-HEVC; 201x(E) 2011-1
0-28に詳細に記載されている。
ここで、CABAC処理についてより詳細に説明する。
少なくとも提案されているHEVCシステムで使用される限り、CABACは、符号化
対象の次のビットに関する「コンテキスト」、すなわち確率モデルを得ることを含む。コ
ンテキスト変数(CV:context variable)で定義されるコンテキストは、当該ビットを
符号化する方法に影響を与える。一般的に、CVによって高確率予測値と定義される値と
次のビットとが同一である場合、そのデータビットを定義するのに必要な出力ビットの数
を低減する観点で利点がある。
符号化処理には、符号化対象のビットをコード値の範囲にある位置にマッピングするこ
とが含まれる。コード値の範囲は、図18Aに、下限のm_Lowから上限のm_hig
hまでの一連の隣接整数として概略的に示されている。これら上限値と下限値との差はm
_rangeであり、m_range=m_high−m_Lowである。以下に説明す
る様々な技術により、基本的なCABACシステムにおいて、m_rangeは128か
ら254の間に制限される。より大きなビット数でm_rangeを表す別の実施形態で
は、m_rangeは256から510の間に制限されてもよい。m_Lowはいかなる
値も取り得る。(例えば、)ゼロからスタートすることもできるが、後述の符号化処理の
一部として変化し得る。
コード値m_rangeの範囲は、コンテキスト変数に関して定義される境界1100
により2つのサブレンジに分割される。当該境界の定義は以下のとおりである。
境界=m_Low+(CV*m_range)。
したがって、コンテキスト変数により、全範囲は2つの補足サブレンジ、すなわち、一
連のコード値のサブ位置に分割される。各サブレンジに割り当てられた一連のコード値の
比率は、変数CVによって決定され、1つのサブレンジは、ゼロの(次のデータビットの
)値と関連付けられ、他のサブレンジは、1の(次のデータビットの)値と関連付けられ
る。範囲の分割は、符号化対象の次のビットに対する2つのビット値のCVの生成により
仮定される確率を表す。したがって、ゼロの値に関連するサブレンジが全範囲の半分より
小さい場合、これは、次のシンボルとしてのゼロの可能性が1の可能性よりも少ないと考
えられることを示す。
考えられるデータビット値にサブレンジがどの方法を適用するかを定義するために、様
々な確率が存在する。1つの例では、範囲の下側の領域(すなわち、m_Lowから境界
まで)が、従来、ゼロのデータビット値に関連があるとして定義される。
2以上のビットが単一の動作で符号化される場合、符号化対象の入力データの考えられ
る各値に対応するサブレンジをもたらすように3以上のサブレンジを提供することができ
る。
エンコーダ及びデコーダは、どのデータビット値の確率が少ないか(多くの場合、「最
小確率シンボル(LPS:least probable symbol)と称される)についての記録を維持
する。CVはLPSを指す。したがって、CVは常に0から0.5の値を表す。
ここで、次のビットは、境界により分割される時に、範囲m_rangeにマッピング
される。これは、以下に詳細に説明する技術を用いてエンコーダ及びデコーダにおいて確
定的に行われる。次のビットが0である場合、m_Lowから境界までのサブレンジ内の
位置を表す特定のコード値がそのビットに割り当てられる。次のビットが1である場合、
境界1100からm_highまでのサブレンジにおける特定のコード値がそのビットに
割り当てられる。これは、諸実施形態において現在の入力データビットの値に係る一連の
コード値の複数のサブレンジの1つを選択する技術の一例、及び諸実施形態において現在
の入力データ値を選択されたサブレンジの範囲内のコード値に割り当てる技術の一例を表
している。
下限m_Low及び範囲m_rangeは、その後、割り当てられたコード値(例えば
、割り当てられたコード値がどのサブレンジに入るか)及び選択されたサブレンジのサイ
ズに基づいて、一連のコード値を修正するように再定義される。符号化されたばかりのビ
ットがゼロである場合、m_Lowは変化しないが、m_rangeはm_range*
CVと等しくなるように再定義される。符号化されたばかりのビットが1である場合、m
_Lowは、境界位置に移動させられ(m_Low+(CV*m_range))、m_
rangeは、境界とm_highとの差分(すなわち、(1−CV)*m_range
)として再定義される。
このような修正を行った後、一連のコード値が所定の最小サイズより小さい(例えば、
m_rangeが少なくとも128)か否かを検出する。
これら変形例は、図18B及び図18Cに概略的に示されている。
図18Bにおいて、データビットは1であり、そのため、m_Lowは以前の境界の位
置に移動している。これにより、次のビット符号化配列で使用するための修正した一連の
コード値が提供される。なお、いくつかの実施形態では、CVの値は、符号化されたばか
りのビットの値に関して次のビット符号化のために少なくとも部分的に変えられる。これ
が、本技術が「適用可能」コンテキストを指す理由である。CVの修正値を利用して、新
しい境界1100'を生成する。
図18Cにおいて、0の値が符号化される。したがって、m_Lowは変化しないが、
m_highは、以前の境界の位置に移動させられる。値m_rangeは、m_hig
h−m_Lowの新しい値として再定義又は修正される。
これにより、本例において、m_rangeが(128等の)最小可能値を下回ること
になる。この結果が検出されたとき、値m_rangeは再正規化又はサイズ増加される
。これは、本実施形態において、128から256の必要な範囲にm_rangeを修復
するのに必要な限り何度でも倍増、すなわち、左に1ビットシフトされたm_range
で表される。この一例を、図18Dに示す。図18Dは、必要な制限に準拠するように倍
増した図18Cの範囲を表す。新しい境界1100''は、CVの次の値及び修正したm_
rangeに由来する。なお、m_rangeが再正規化される場合、m_Lowも同様
に再正規化又はサイズ増加される。これは、m_Lowとm_rangeとの比率を同一
に維持するために行われる。
このようにして範囲を倍増する必要があるときはいつでも、出力符号化データビットを
各再正規化ステージに対して1つずつ生成する。
このようにして、間隔m_range及び下限m_Lowは(デコーダで再生できる)
CV値及び符号化ビットストリームの適応に基づいて、連続して修正され、再正規化され
る。一連のビットが符号化された後、得られた間隔及び再正規化ステージの数により、符
号化ビットストリームは一意に定義される。このような最後の間隔を識別しているデコー
ダは、原理上、符号化データを再構築することができる。しかしながら、基本的な計算に
より、実際には、デコーダに間隔を定義する必要はないが、その間隔内にある1つの位置
を定義する必要があることが実証されている。これが、エンコーダで維持されデータ符号
化の終了時にデコーダに渡される、割り当てコード値の目的である。
簡単な例を示すために、100の間隔に分割された確率空間について考える。この場合
、m_Lowは確率空間の下部を表し、0及びm_Rangeは、そのサイズ(100)
を表す。便宜的に、コンテキスト変数が(バイパス経路に関して)0.5に設定されると
仮定すると、確率空間は50%の固定確率でバイナリビットを符号化するために用いられ
ることになる。しかしながら、コンテキスト変数の適用可能値を用いる場合、エンコーダ
及びデコーダにおいて同じ適応処理が行われるように、同じ原理が適用される。
第1のビットに対して、各シンボル(0又は1)は50のシンボル範囲を有する。入力
符号0は(例えば、)0から49(49を含む)までの値を割り当てられ、入力シンボル
1は(例えば、)50から99(99を含む)までの値を割り当てられる。1が符号化対
象の第1のビットである場合、ストリームの最後の値は50から99までの範囲に入る必
要がある。したがって、m_Lowは50となり、m_Rangeも50となる。
第2のビットを符号化するために、当該範囲は25のシンボル範囲にさらに分割される
。0の入力シンボルは50から74の値を取り、1の入力シンボルは75から99の値を
取る。以上のように、第2のビットとしてどのシンボルが符号化されても、最後の値は5
0から99までの範囲の値であり、第1のビットが保存される。しかしながら、第2のビ
ットは同一の数字に符号化されている。同様に、第2のビットが第1のビットと異なる確
率モデルを用いた場合でも、分割される範囲は50から99であるので、第1のビットの
符号化に影響を及ぼさない。
この処理は、各入力ビットに対して、エンコーダ側で続行され、必要なときはいつでも
、例えば、m_Rangeが50を下回ったことに応答して、m_Range及びm_L
owを再正規化(例えば、倍増)する。符号化処理の終了時(ストリームが終了するとき
)までに、最後の値がストリームに書き込まれる。
デコーダ側では、最後の値がストリームから読み出される(したがって、m_Valu
eと呼ぶ)。例えば、その値は68である。デコーダは、最初の確率空間に分割された同
一のシンボル範囲を適用し、どのシンボル範囲にあるか確認するため、その値を比較する
。68は50から99までの範囲にあるため、1を第1のビットに対するシンボルとして
復号化する。エンコーダと同一の方法により分割された第2の範囲を適用し、68は50
から74までの範囲にあるので、例えば、0を第2のビットとして復号化する。
実際の処理においては、エンコーダがm_Valueから各復号化シンボルの範囲の最
小値を減算する(この場合、m_Valueから50が減算され、差が18となる)こと
によりm_Lowを維持するので、デコーダはm_Lowを維持しなくてもよい。このシ
ンボル範囲は、その後、常に0から(m_range−1)範囲の細分区分となる(した
がって、50から74までの範囲は0から24となる)。
このように、たとえ2ビットのみが符号化されたとしても、エンコーダは50から74
までの範囲のあらゆる最終値を取ることができ、当該2ビットは同じ2ビットの「10」
(1の後に0)に復号化されることが重要である。別のビットを符号化する場合にのみ、
より高い精度が求められ、実際には、HEVCエンコーダは常に当該範囲の最小値の50
を取る。本願において説明される実施形態は、残りのビットの値が何であるかに関わらず
、適切に設定されたときに最終値が正確に復号化されることを保証する一定のビットを発
見し、他の情報を伝達するために当該残りのビットを解放することにより未使用の範囲を
利用しようとする。例えば、上述のサンプル符号化において、第1の数字が6(又は5)
に設定された場合、第2の数字に関わらず、最終値は常に50から74までの範囲にある
。したがって、第2の数字を使用して、他の情報を伝達することができる。
以上のように、終わりのないビットのストリームを、同じ確率範囲(所与の無限精度比
)を用いて繰り返し分割することにより符号化することができる。しかしながら、実際に
は無限精度は不可能であり、非整数は避けられる。このため、再正規化を行う。50から
74までの範囲で第3のビットを復号化する場合、当該シンボル範囲は、通常、それぞれ
12.5間隔を有する必要がある。しかしながら、その代わりに、m_Range及びm
_Lowを倍増(そうでなければ、公約数で乗算)して、それぞれ、50及び100とす
ることができ、当該シンボル範囲は、100から149までの範囲の細分区分、すなわち
、それぞれ25間隔となる。この動作は、最初の確率空間のサイズを遡及的に100から
200に倍増することと等しい。デコーダは同一のm_Rangeを維持するので、エン
コーダと同時に再正規化を適用することができる。
コンテキスト変数CVは、CV=63における(1%等の)下限値からCV=0におけ
る50%の確率まで、様々な確率を連続的に示す(一実施形態では)64通りの考えられ
る状態を有するものとして定義される。
適用可能システムにおいて、CVは、符号化対象のデータのブロックサイズによって異
なる様々な周知の因子にしたがって、1ビットから次のビットに変更又は修正される。い
くつかの例では、近隣及び以前の画像ブロックの状態を考慮してもよい。したがって、本
明細書に記載の技術は、現在のデータ値に対して選択されたサブレンジにおける一連のコ
ード値の比率を増加させるように、次の入力データ値に関して使用するためのコンテキス
ト変数を修正する例を示す。
サブレンジを選択し、コード値に現在のビットを割り当て、一連のコード値を修正し、
当該一連のコード値が最小サイズより小さいか否かを検出し、コンテキスト変数を修正す
る機能は、全て、一緒に動作するコンテキストモデラ950及び符号化エンジン960に
より実行されてもよい。したがって、それらは図17において説明を容易にするために別
々の要素として記載されているが、協働してコンテキストモデリング及び符号化機能を提
供してもよい。しかしながら、さらに明確にするため、これらの動作及び機能をより詳細
に示す図19を参照する。
割り当てコード値は、考えられるCVの値並びにm_rangeのビット6及びビット
7の考えられる値それぞれに対して(なお、m_rangeのビット8は、m_rang
eのサイズが限られるため、常に1である)、新しく符号化されたビットが関連するサブ
レンジにおけるコード値を割り当てられるべき位置又は位置のグループを定義するテーブ
ルから生成される。
図19は、上述の技術を用いたCABACエンコーダを示す概略図である。
CVは、CV抽出部1120により、(第1のCVの場合)開始又は(それ以後のCV
の場合)修正される。コード生成部1130は、CVにしたがって現在のm_range
を分割し、サブレンジを選択し、例えば、上述のテーブルを用いて、適切なサブレンジの
割り当てデータコードを生成する。範囲リセット部1140は、上述のように一連のコー
ド値を修正するように、選択されたサブレンジのm_rangeにm_rangeをリセ
ットする。正規化部1150は、得られたm_rangeの値が最小許容値を下回ってい
るか否かを検出し、必要に応じて、m_rangeを1回又は2回以上、再正規化する。
このような再正規化動作に対して、各出力符号化データビットが出力される。上述のよう
に、処理の終了時に、割り当てコード値も出力される。
図20に概略的に示すデコーダでは、CVは、エンコーダにおけるCV抽出部1120
と同様に動作するCV抽出部1220により、(第1のCVの場合)開始又は(それ以後
のCVの場合)修正される。コード適用部1230は、CVにしたがって、現在のm_r
angeを分割し、当該データコードがどのサブレンジにあるかを検出する。範囲リセッ
ト部1240は、割り当てコード値及び選択されたサブレンジのサイズに基づいて一連の
コード値を修正するように、選択されたサブレンジのm_rangeにm_rangeを
リセットする。必要に応じて、正規化部1250は、受信したデータビットに応答して、
m_rangeを正規化する。
諸実施形態では、CABACストリームを終了させる技術が提供される。これら実施形
態については、コード値の範囲が(上述の128ではなく)最大値である512を有し、
そのため、当該範囲の上半分、すなわち、256から510に制限される1つ例のシステ
ムに関連して説明する。
当該技術により引き起こされる損失は、平均1.5ビットである(すなわち、従来のス
トリーム終了技術が引き起こす損失よりもはるかに少ない)。平均損失が1ビットである
第2の変形例に係る方法も提案される。これら技術の適用には、IPCM(非周波数分離
)データの送信前のCABACストリームの終了、及びスライス毎の行のためのストリー
ムの終了が含まれることが示唆されている。当該技術は、ストリームの終了の際にCAB
AC変数を正確な範囲のあらゆる値に設定できるという認識に基づいている。したがって
、CABAC変数は、多くの後置(最下位ビット)ゼロを有する値に設定される。その結
果、当該値がデータストリームに流れていく際、ゼロは無視できるので効率的である。
現在の技術では、CABACストリームを終了させると、8ビットがデータ・ストリー
ムに流れる(すなわち、当該8ビットが損失又は無駄になる)。この技術は、各LCU又
は画像スライスの後(すなわち、特定の各画像サブ領域に関する1群のデータ値を符号化
した後)で、イントラフレームを終了し、係数バイパスデータ(符号ビット/エスケープ
コード)がRAW形式でビットストリームに配置される例として示される。
CABACストリームを終了させる処理は、各スライスの終端においてIPCMデータ
に先立ち適用される。諸実施形態では、(便宜的に)この処理は、当該ストリームが終了
される確率が平均0.54%で固定されると仮定する(データ値(1又は0)を符号化す
る場合、現在のm_rangeは、1又は0の確率をそれぞれ示す2つのシンボル範囲に
分割される。特別な「終端ストリームフラグ」値について、1に対するシンボル範囲は常
に2である。したがって、1であるデータ値の確率は、現在のm_rangeの値に依存
する。いくつかの実施形態では、上述のように、m_rangeは256から510まで
の範囲で変化してもよいので、終了確率は、2/510=0.3922%及び2/256
=0.7813%の範囲で変化する)。
エンコーダに対して、この処理は、以下のように行われる。
ストリームが終了されない場合、CABAC範囲m_rangeは2ずつ減らされ、C
ABACエンジンは、必要に応じて、1つの場所で再正規化され(すなわち、m_Low
及びm_rangeが再正規化される)、現在のCABACストリームにおける処理が続
行される。
ストリームが終了される場合、CABAC「m_Low」は、「範囲−2」ずつ増やさ
れ、当該範囲は2に設定され、CABACエンジンは、7カ所で再正規化され、それに続
いて、バイナリ「1」を出力する。この処理は、8カ所の再正規化と等しく、再正規化さ
れた値は奇数にさせられる。
上記処理が理想的でない、すなわち、ストリームの確率が変化し、又はより高い確率で
固定され、又は確実(1の確率)である場合もある。
諸実施形態によれば、たった2回の再正規化で、CABACストリームを速やかに終了
できる方法が提供される。この方法における損失は(平均で)1.5ビットであり、デコ
ーダ及びエンコーダの複雑性への影響は無視できるほど小さい。CABACデコーダの複
雑性は増加するものの、オーバーヘッドをたった1ビットに減らすことができる変形例の
方法も示されている。当該2つの方法は、終了の変数確率がある場合、一般的な適用可能
コンテキスト変数とともに用いることができる。また、当該2つの方法は、(非適用可能
コンテキスト変数と類似した)固定確率メカニズムとともに用いることもできる。
なお、上述のように、m_Low及びm_Rangeは一緒に再正規化される。
1 アルゴリズム
1.1 方法
エンコーダのステップは以下のとおりである。
m_Low=(m_Low+128)&〜127{又はm_Low=(m_Low+1
27)&〜127}
m_Lowの再正規化を2ステージ強制的に行い、test_write_out()
を呼び出す[その値をストリームに書き込む]。
次のCABACストリームの符号化に先立ち、m_Rangeを510,m_Lowを
0に設定する。
注記:&はAND操作であり、〜はバイナリ反転を示す(したがって、〜127は10
進法の127に対応するバイナリ値をバイナリ反転させたものである。その結果、(最下
位ビット又は1に等しいLSBを複数有する)10進法における127等の数字のバイナ
リ反転を伴うAND操作は、得られる値のLSBの数をゼロに設定することと等しくなる
)。test_write_out()関数は、m_Lowの先端(MSB終端)の任意
のビットが出力ストリームに送信されるのに適しているか否かを確認し、適している場合
、それらを書き込む。上述の擬似コードに関連して、「強制再正規化」により作成された
新しいビットが、この操作により書き込まれる。
デコーダのステップは以下のとおりである。
入力ストリームを7ビット戻す(すなわち、読み込み位置を7ビット移動させる)。
次のCABACストリームの復号化に先立ち、m_Rangeを0に設定し、ビットス
トリームからm_Valueを読み込む。
この方法は、デコーダ及びエンコーダに対する処理の影響が少ない。
なお、m_Lowに関して、繰り返しm_Lowに追加することで、エンコーダはスト
リームを生成する。デコーダは、エンコーダの最終結果で開始し、それから繰り返し減算
することで、当該ストリームを読み出す。デコーダは、m_Lowではなくストリーム「
m_uiValue」(又は、本明細書の注記にあるm_Value)から読み出したビ
ットを呼び出す。当該ビットは、ビットストリームから読み込むべきものである。これは
、諸実施形態において、デコーダがm_uiValueと同様にm_Lowを保持する必
要があり、エンコーダの動作を把握している場合に関連する。この場合、エンコーダのm
_Lowと全く同じ方法で、m_Lowはデコーダで生成される。
変形例に係る方法
この方法では、デコーダがm_Lowを保持する必要があるので、現在のデコーダの複
雑性が増加する。m_Lowの維持が他の提案で必要になる場合、複雑性の増加量は最小
になる。
エンコーダのステップは以下のとおりである。
test256を(m_Low+255)&〜255にする。
(test256+256<m_Low+m_Range)の場合、
m_Low=m_test256
m_Lowの再正規化を1ステージ強制的に行い、test_write_out(
)を呼び出す。
それ以外の場合(上述のように)
m_Low=(m_Low+128)&〜127{又はm_Low=(m_Low+
127)&〜127}
m_Lowの再正規化を2ステージ強制的に行い、test_write_out(
)を呼び出す。
次のCABACストリームの符号化に先立ち、m_Rangeを510,m_Low
を0に設定する。
デコーダのステップは以下のとおりである。
test256を(m_Low+255)&〜255にする。
(test256+256<m_Low+m_Range)の場合、
ストリームを8ビット戻す
それ以外の場合(上述のように)
ストリームを7ビット戻す
次のCABACストリームの復号化に先立ち、m_Rangeを0,m_Lowを0
に設定し、ビットストリームからm_Valueを読み出す。
理論
CABACエンコーダについて、m_Lowに連結されるストリームに書き込まれ(又
は記憶され)るデータは、最終出力が取ることができる最小値を示すnビット値のlow
である。最大値highは、low及びm_Rangeの合計であり、エンコーダによっ
て256(256を含む)から511(511を除く)までの範囲に維持される変数であ
る。ストリームの終端において、low(lowを含む)からhigh(highを除く
)のあらゆる値を、復号化に影響することなく、最終出力値として選択することができる
。復号化がn個のLSBの値に依存することなく行われる場合、当該n個のLSBは、ビ
ットストリームの次のセクションから得られるデータで置き換えることができる。
vをlowからhighの値とすると、n個のLSBは0であり、最後のn個のLSB
が1の場合、得られる値Vは、依然としてhighより小さい。「high−low」は
少なくとも256なので、値vは、常に、0である少なくとも7個のLSBを有するlo
wからhighまでの範囲にある。すなわち、値vは、128で割り切れるlowからh
ighまでの範囲にある第1の値である。
これを実現する最も単純な方法は、一般的な2の累乗配列ルーチンである。例えば、v
=(low+127)&〜127である。しかしながら、範囲は少なくとも256なので
、v=(low+128)&〜127でも十分である(その結果、エンコーダは、わずか
に小さくなる)。
ビットストリームの現在の部分について、エンコーダは、下位7ビットを除いて、値「
v」を出力する。これは、m_Lowを2箇所で再正規化することで実現される。ビット
ストリームの終端において、デコーダは、ビットストリームの次のセクションから7ビッ
ト読み込み、したがって、当該ビットストリームを7ビット「戻す」必要がある。
ストリームを完全に復号化するために、下位8ビットが必要ない場合もある。最も簡単
な実例は、「m_Low=0」であり、これらは代替アルゴリズムにより調査される。当
該代替アルゴリズムにおいて、0のLSBを8個有するlowからhighまでの範囲に
ある値vが計算され、対応する値Vが存在するか否かを確認するためにtestが適用さ
れる。この決定処理には、low及びhighにおけるテストが必要である。また、デコ
ーダも同じ決定をしなければならないので、当該デコーダはm_Lowを追跡する必要が
ある。
エンコーダアルゴリズムの両方のバージョンにおいて、7ビットパスに対して異なるビ
ットストリームをもたらす選択があるが、当該選択は同じデコーダで復号化することがで
きる。
上述の図19を参照して、ユニット1120及び1130は、一連のコード値の複数の
補足サブレンジの1つを選択する諸実施形態のセレクタ及び現在の入力値をコード値に割
り当てるデータ割り当て部を指す。ユニット1140は、一実施形態のデータ修正部を表
す。ユニット1150は、一連のコード値が最小サイズより小さいか否かを検出する一実
施形態の検出部を表し、これにより当該検出部の他の機能を実行する。また、ユニット1
150は、上述及び下記のデータ終了機能を実行し、特に、いつストリームを終了するか
に関する決定を行うことで、一実施形態のデータ終了部を表す。
上述の図20を参照して、ユニット1220,1230,1240、及び1250は、
これらのユニットに関して上述の機能を実行するよう動作可能である点で、まとめて諸実
施形態のポインタコントローラ及び設定部を表す。
適用例
上記構成について考えられる適用例は、以下のものを含む。
1.特に、確率が0.54%よりも著しく高いことがある「スライス毎の行(row−p
er−slice)」スタイルの構成におけるスライスに対する最後の符号化LCUの終
了。
この構成において、諸実施形態では、ビデオデータを表す連続入力データ値を符号化す
るデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード
値の複数の補足サブレンジの1つを選択し(当該一連のコード値に関連するサブレンジの
比率は、当該入力データ値と関連するコンテキスト変数によって定義される)、現在の入
力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコード値及
び選択されたサブレンジのサイズに基づいて一連のコード値を修正し、一連のコード値が
所定の最小サイズより小さいか否かを検出し、小さい場合、少なくとも当該所定の最小サ
イズとなるまで一連のコード値のサイズを連続的に増加させ、各サイズ増加動作に応答し
て符号化データビットを出力し、現在のデータ値について選択されたサブレンジ内の一連
のコード値の比率を増加させるように次の入力データビット又は値に関して使用するため
にコンテキスト変数を修正し、他のビデオデータを参照することなく符号化されたビデオ
データのスライス内にあるビデオデータの一連のブロックに対応する1群の入力データ値
を符号化した後、一連のコード値の終端を定義する値をゼロに等しい複数の最下位ビット
を有する値に設定し、一連のコード値のサイズを増加させ、一連のコード値の終端を定義
する値を出力データに書き込むことで、出力データを終了することを含む。
2.考えられる最後のスライスのLCUが確実になった後の、スライスに対する考えら
れる最後のLCUの終了。
この構成において、諸実施形態では、ビデオデータを表す連続入力データ値を符号化す
るデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一連のコード
値の複数の補足サブレンジの1つを選択し(一連のコード値に関連するサブレンジの比率
は、入力データ値に関連するコンテキスト変数で定義される)、現在の入力データ値を選
択されたサブレンジ内のコード値に割り当て、割り当てコード値及び選択されたサブレン
ジのサイズに基づいて一連のコード値を修正し、一連のコード値が所定の最小サイズより
小さいか否かを検出し、小さい場合、少なくとも当該所定の最小サイズまで一連のコード
値のサイズを連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力
し、現在のデータ値について選択されたサブレンジにおける一連のコード値の比率を増加
するように、次の入力データビット又は値に関して使用できるようにコンテキスト変数を
修正し、他のビデオデータを参照することなく符号化されるビデオデータのスライス全体
を表す1群の入力データ値を符号化した後、一連のコード値の終端を定義する値をゼロに
等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、一
連のコード値の終端を定義する値を出力データに書き込むことにより、出力データを終了
させることを含む。
3.可能であればコンテキスト変数とともに行うIPCMデータに先立つ終了。
この構成において、諸実施形態では、周波数分離ビデオデータを表す連続入力データ値
を符号化するデータ符号化方法が提供される。当該方法は、現在の入力データ値に係る一
連のコード値の複数の補足サブレンジの1つを選択し(一連のコード値に関連するサブレ
ンジの比率は、当該入力データ値と関連するコンテキスト変数によって定義される)、現
在の入力データ値を選択されたサブレンジ内のコード値に割り当て、割り当てられたコー
ド値及び選択されたサブレンジのサイズに基づいて、一連のコード値を修正し、一連のコ
ード値が所定の最小サイズより小さいか否かを検出し、小さい場合、当該一連のコード値
のサイズが少なくとも当該所定の最小サイズとなるまで連続的に増加させ、各サイズ増加
動作に応答して符号化データビットを出力し、現在のデータ値について選択されたサブレ
ンジ内の一連のコード値の比率を増加させるように、次の入力データビット又は値に関し
て使用するために、コンテキスト変数を修正し、符号化対象の次のグループのデータ値が
非周波数分離ビデオデータを表すように1群の入力データ値を符号化した後、一連のコー
ド値の終端を定義する値をゼロに等しい複数の最下位ビットを有する値に設定し、一連の
コード値のサイズを増加させ、一連のコード値の終端を定義する値を出力データに書き込
むことによって、出力データを終了することを含む。
4.「未処理ビット」メカニズムが長くなるのを防ぐためのストリームの終了。
この構成において、諸実施形態では、連続入力データ値を符号化するデータ符号化方法
が提供される。当該方法は、現在の入力データ値に係る一連のコード値の複数の補足サブ
レンジから1つを選択し(一連のコード値に関連するサブレンジの比率は、当該入力デー
タ値と関連するコンテキスト変数によって定義される)、現在の入力データ値を選択され
たサブレンジ内のコード値に割り当て、割り当てられたコード値及び選択されたサブレン
ジのサイズに基づいて、一連のコード値を修正し、一連のコード値が所定の最小サイズよ
り小さいか否かを検出し、小さい場合、一連のコード値のサイズを少なくとも当該所定の
最小サイズとなるまで連続的に増加させ、各サイズ増加動作に応答して符号化データビッ
トを出力し、現在のデータ値について選択されたサブレンジにおける一連のコード値の比
率を増加させるように、次の入力データビット又は値に関して使用するためにコンテキス
ト変数を修正し、異なる符号化技術により符号化される一連のデータ値が所定のサイズを
超えているか否かを検出し、超えている場合、一連のコード値の終端を定義する値をゼロ
に等しい複数の最下位ビットを有する値に設定し、一連のコード値のサイズを増加させ、
一連のコード値の終端を定義する値を出力データに書き込むことにより、出力データを終
了することを含む。
本明細書の以降の説明は、上述したエンコーダ及びデコーダ等の動作を、よりビデオ解
像度が高く、それに応じて(負のQPを含む)QPが低い動作に発展させることに関する
。コーデックが高いビット深さを正確にサポートする場合、動作QPは、場合により、低
い必要がある。HEVCにより定義されるエンコーダ及びデコーダ等に存在する内部の精
度制限により引き起こされる可能性がある、考えられる誤差源について説明する。これら
精度に変化を与えることで、誤差を緩和することができ、これにより、HEVCの動作範
囲が拡張される。また、エントロピー符号化における変化も提示される。
本願の出願時点において、HEVCバージョン1は、8ビット及び10ビットのコーデ
ックを表す。バージョン2は、12ビット及び14ビットの動作を含むことになっている
。入力データビット深さを14まで可能にするために試験ソフトウェア又は実証ソフトウ
ェアが書き込まれているが、14ビットを符号化するコーデックの能力は、コーデックが
8ビット又は10ビット解像度データを処理する方法に対応するとは限らない。いくつか
の例では、内部処理により、解像度の事実上の損失を招くノイズが発生することがある。
例えば、14ビットの入力データに対するピーク信号対雑音比(PSNR:peak signal
to noise ratio)が非常に低ければ、最下位2ビットはノイズに対して事実上低減され、
コーデックは12ビットの解像度でのみ事実上動作する。したがって、出力データの事実
上の(有効な)解像度を著しく減少させることに関して多くのノイズ、誤差、又は他の副
作用を発生させることなしに、高解像度入力データ(例えば、12ビット又は14ビット
解像度入力データ)を使用できるようにする内部動作機能をシステムに持たせようとする
ことは適切である。
「ビットデプス」という用語及び変数bitDepthは、ここでは、入力データ及び
/又はコーデック内で実行されるデータ処理の(文字に係る)解像度を示すために使用さ
れる(後者は、HEVCソフトウェア実証モデル用語を用いた「内部ビットデプス」とし
ても知られている)。例えば、14ビットのデータ処理に対して、bitDepthは1
4である。
8ビット及び10ビットのコーデックに関連して、正の範囲(0より大きい)の量子化
パラメータ(QP)について説明する。しかしながら、入力データの解像度における(8
を超える)各追加ビットに対して、最小可能QP(minQP)は、0よりも6小さくて
もよい。すなわち、minQP=−6*(bitDepth−8)である。
変数「PSNR」又はピークSNRは、平均2乗誤差(MSE)及びビットデプスの関
数として以下のように定義される。
PSNR=10*log10(((2bitDepth)−1)/MSE)
以下に説明する図23から分かるように、コーデック実行例の内部処理ビットデプスが
どのような値を取っても、一般的な傾向として、PSNR曲線は90dB付近でピークを
迎える。(PSNR曲線のピークに対応するQPよりも)負のQPに対しては、実際、P
SNRパフォーマンスが低下する。
PSNRの式を用いて、以下のような、所与のビットデプス及びMSEに対するPSN
Rの表が得られる。
14ビットのコーデックが、72.2dBのPSNRを実現できるのみである場合、各
出力値は、対応する元の値の±4の範囲でのみ正確となる。したがって、2つの最下位ビ
ットは、事実上のノイズであり、コーデックは、出力に2つの追加ランダムビットを追加
した12ビットのコーデックと同等のものとなる(なお、この分析は、平均に基づくもの
であり、実際には、画像のいくつかの部分において、平均よりも良好又は低質のものが得
られることがある)。
この議論を拡張して、純粋に数字上の方法でPSNRを比較すると、最善のシステムは
、実際には、無損失な符号化を実行でき、無限のPSNR(MSE=0)を実現する8ビ
ットシステムであると考えられる。しかしながら、これは最初にnビット(nはもともと
、8ビットより大きい)から8ビットにビデオを丸める損失、あるいは切り取る損失を考
慮していない。この手法は、以下の例によって一般化できる。
無損失な(n−1)ビットシステムをnビットのデータを符号化するのに利用できる場
合、出力において、観察されるnビットのMSEは(0+1)/2=0.5となる。
無損失な(n−2)ビットシステムをnビットのデータを符号化するのに利用できる場
合、出力において、観察されるnビットのMSEは(0+1+2+1)/4=1.
5となる。
無損失な(n−3)ビットシステムをnビットのデータを符号化するのに利用できる場
合、出力において、観察されるnビットのMSEは(0+1+2+3+4+3
+2+1)/8=5.5となる。
無損失な(n−4)ビットシステムをnビットのデータを符号化するのに利用できる場
合、出力において、観察されるnビットのMSEは(0+1+2+3+4+5
+6+7+8+7+6+5+4+3+2+1)/16=21.5と
なる。
したがって、前述の例に戻ると、14ビットシステムが21.5又はそれより少ない(
71.0dBに等しい)MSEを実現しない場合、及び無損失な10ビットシステムのビ
ットレートが類似している場合、数字的に言って、10ビットのみが事実上符号化される
「m」のMSEを有する損失の多い、低いビットデプスの(n−r)ビットシステムを
考慮する。このシステムを用いてより高いビットデプスのnビットのデータを符号化する
場合、(2mのMSEが与えられる。
例えば、損失の多い(n−1)ビットシステムに対して、nビットシステムにおけるM
SEは4m。損失の多い(n−2)ビットシステムに対して、nビットシステムにおける
MSEは16m。損失の多い(n−3)ビットシステムに対して、nビットシステムにお
けるMSEは64m。損失の多い(n−4)ビットシステムに対して、nビットシステム
におけるMSEは256m。
したがって、損失の多い低いビットデプスのシステムがより高い(n−ビット)ビット
デプスのデータを符号化する場合について、一般的にnビットドメインにおいて観察され
るMSEに影響を与えるのは、主にその損失である。したがって、単純なPSNR図を用
いて、確実に品質を比較することができる。
(本願の出願時における)HEVCエンコーダの実行は、(図23に示すように)90
dBでピークを迎える。これは、11ビットデータの符号化には適切であると考えられる
。この動作点において、これ以上の改善が得られるか否かについての問題については、以
下に説明する。
最初に、誤差の原因について説明する。
コアHEVCシステム(バージョン1)は、8ビット及び10ビット動作に対して設計
されている。ビット数が増えるにつれ、システムの部分の内部精度が、誤差、ノイズ、又
は全解像度の事実上の損失につながる副作用の誤差の原因に関連性を有することがある。
図21は、HEVCエンコーダ等の上述のタイプのエンコーダを通過するデータのフロ
ーを簡単に示す概略図である。図21に示す形式で、この処理を要約する目的は、システ
ムにおける動作解像度の制限の可能性を示すことである。なお、このため、全てのエンコ
ーダの機能性を図21に示しているわけではない。なお、図21もデータセットの入力デ
ータ値(ビデオデータ値でもよい)を符号化する装置の例を示す。さらに、(上述のよう
に)図21に示したもの等の転送符号化経路で使用される技術をエンコーダの補足逆復号
化経路及びデコーダの転送復号化パスに用いてもよい。
一定のビットデプスの入力データ1300は、イントラ予測又はインター予測を実行し
て実際の入力画像から予測画像を減算する予測ステージ1310に供給され、これにより
、一定のビットデプスの残差データ1320が生成される。したがって、ステージ130
0は、一般的に、図5に示すユニット320及び310に対応する。
残差データ1320は、2D変換式における左右の行列乗算に対応する(ステージ1及
びステージ2として表される)変換処理の複数のステージを含み、一定の解像度を有する
1つ又は複数の組の変換行列1340にしたがって動作する変換ステージ1330により
周波数変換される(変換は行列乗算処理により実行される)。MAX_TR_DYNAM
IC_RANGEと称される変換処理の最大ダイナミックレンジ1350は、本処理にお
いて実行される計算に適用される。変換ステージの出力は、MAX_TR_DYNAMI
C_RANGEに係る一連の変換係数1360である。変換ステージ1330は、一般的
に、図5に示す変換部340に対応する。
係数1360は、その後、一般的に図5に示す量子化部350に対応する量子化ステー
ジ1370に渡される。当該量子化ステージは、(諸実施形態では、MAX_TR_DY
NAMIC_RANGEと同じ)最大ダイナミックレンジENTROPY_CODING
_DYNAMIC_RANGEのクリッピングを含む量子化係数・スケーリングリスト1
380の制御のもと、乗算シフトメカニズムを用いてもよい。当該量子化ステージの出力
は、(図示しないフルエンコーダにおいて)図5に示すスキャンユニット360及びエン
トロピーエンコーダ370によって表されたもの等のエントロピー符号化ステージに渡さ
れるENTROPY_CODING_DYNAMIC_RANGEに係る一連の量子化係
数1390である。
図21に関して記載された表記を用いて、様々な予測及びRQT(残差四分木)によっ
て引き起こされるノイズ形成及びレート歪み最適化による量子化(RDOQ:rate disto
rtion optimized quantisation)決定処理を(便宜的に)無視して、HEVCにおける計
算ノイズの主な原因について以下に説明する。
・変換行列係数値
理想的には、変換係数に適用される逆変換により、元の入力値を再生する。しかしなが
ら、これは計算上の整数の機能により制限される。HEVCにおいて、変換行列係数は6
つの分数ビットを有する(すなわち、これらは既に6の左シフトを有する)。
・各変換ステージ後のMAX_TR_DYNAMIC_RANGEへのシフト結果
先の変換により、bitDepth+log(size)ビットのサイズの値が得ら
れる。第1ステージの変換後、ビットにおける係数の幅は、(追加ビットにより精度をよ
り高く維持できるものの)少なくともbitDepth+log(size)である。
しかしながら、HEVCにおいて、これら中間物は、MAX_TR_DYNAMIC_R
ANGEを超えないように先の(エンコーダのみ)変換においてシフトされる。第2ステ
ージにおいても同様である。逆変換において、各ステージの出力における値は、MAX_
TR_DYNAMIC_RANGEにクリップされる。
MAX_TR_DYNAMIC_RANGEがbitDepth+log(size
)より小さい場合、先の変換により得られる値は、実際には、量子化ステージにおいて(
右ではなく)左にシフトされ、15ビット(ENTROPY_CODING_DYNAM
IC_RANGE)にクリップされる。実際には、ENTROPY_CODING_DY
NAMIC_RANGEがbitDepth+log2(size)+1より小さい場合
、クリッピングはQPが(4−(6*(bitDepth−8)))より小さい場合に実
行される。
HEVCにおいて、32x32ブロックの係数はQP<−8のためにクリップされるこ
ともあるが、15のMAX_TR_DYNAMIC_RANGE(及びENTROPY_
CODING_DYNAMIC_Range)が10ビットまでの動作に用いられる。ま
た、内部精度のための上部空間が欠乏していると、低いQPに対して誤差が発生すること
もある。
・量子化の際に追加されるノイズ
エンコーダ及びデコーダの量子化部及び逆量子化部は、量子化の際にノイズを追加させ
るものの、追加ノイズはスケーリングリストが適用される際に気付かずに追加されること
があり、また、アレイ「quantScales」及び「invQuantScales
」において定義される量子化係数は必ずしも完全な逆数ではないので、気付かずに追加さ
れることもある。
変換行列の精度及びMAX_TR_DYNAMIC_RANGEの効果について以下に
説明する。
経験的データは、いわゆるSVTテストセット(4Kビデオからスケールダウンした1
6ビットで1920x1080 50p)からの5つのビデオシーケンスの符号化の(い
わゆるイントラ符号化プロファイルにしたがった)分析により得られた。これらのシーケ
ンスの中で、最初の150フレームのみが試験において使用された。Traffic_R
GB(12ビットにおいて2560x1600 30p)と称される6番目の配列は、本
願の出願時点でHEVCに適用可能な、一般的な範囲拡張(Range extensi
ons)試験の条件によって定義される。
経験的テストにおいて、ファイル(入力データ)ビットデプスが試験中の内部ビットデ
プス(コーデックの入力ビットデプス)よりも小さかった場合、サンプルにパディングを
した(LSBを0に設定した)。ファイルビットデプスが内部ビットデプスより大きい場
合、サンプルを縮小し、丸めた。
以下の説明では、bitDepthを用いて入力データのビットデプスではなく内部ビ
ットデプスについて記載している。16までの内部ビットデプス(bitDepth)を
有するシステムについて考える。
図22は、図21に示すエンコーダシステムの経験的性能を内部ビットデプスの数で概
略的に示す量子化パラメータ(QP)に対するビットレートのグラフである。図23は、
QPに対する(1つのチャンネルに対する経験的データを取得するのはより簡単であるこ
と、及びグリーンは出力ビデオの視聴者の認識に最も貢献するチャンネルであることに基
づく)グリーンチャンネルについてのPSNRのグラフである。図22のグラフは、16
ビット(QPは−48〜−26)、14ビット(QPは−24〜−14)、12ビット(
QPは−12〜−2)、10ビット(QPは0〜10)及び8ビット(QPは12〜22
)の処理に対するデータの合成により形成される。垂直ライン1400は、ビットデプス
が変化する点を概略的に示す。図22における複数の曲線は、異なるテストシーケンスで
得られる結果に対応する。
図22は、ビットレートが一般的にQPに対して単調に変化することを示している。
図23を参照して、bitDepth=8及びbitDepth=10に対するPSN
Rは、4以下(各曲線における1番右から3つのデータ点)のQPで明確に増加する。Q
P4において、8ビットに対する量子化約数は1(10ビットに対してQPは−8)であ
り、考えられる唯一の誤差源としてDCT及びIDCT並びに量子化及び逆量子化係数の
間の不整合をもたらす。システムが無損失処理に向かうと、MSEはゼロに接近し、SN
Rは急上昇する。図24は、一連の異なる内部ビットデプス(8,10,12,14,1
6)における1つのテストシーケンスについてのビットレートに対するPSNRのグラフ
である。5つの曲線は、そのほとんどの範囲において相互にほぼ正確に重なっており、そ
のため、容易に区別することができない。
同様の動作点における10ビットシステムは、主に2つの最下位ビットにおいて誤差を
有し、8ビットの精度のみを考慮すると無損失な処理に近づいていることを示す。しかし
ながら、本明細書において示すように、10ビットビデオを8ビットビデオに変換する動
作についても考慮しなければならない。これは、低い精度を考慮すると隠れている(すな
わち、経験テストにおける結果として明確に示されていないが、依然としてより高い全S
NRをもたらす)1.5のMSEを追加することになる。
ピークSNRに対する内部精度に制限されないシステムにおいて、無損失処理に向かう
増加は、QPが(4−(6*(bitDepth−8)))未満に減少する際の各bit
Depthについて確認することができる。これは、MAX_TR_DYNAMIC_R
ANGE=21,ENTROIPY_CODING_DYNAMIC_RANGE=21
ビット及び14ビット変換行列,RDOQ無効、及び変換スキップ無効のビットデプス(
8,10,12,14,16)の範囲のビットレートに対するグリーンチャネルPSNR
のグラフである図25に示されている。5つのカーブは、(8ビット曲線の)部分142
0、(10ビット曲線の)部分1430、(12ビット曲線の)部分1440、(14ビ
ット曲線の)部分1450、及び(16ビット曲線の)部分1460を除いて相互に重な
っている。同じ数のビットについて、図24に示すものよりも著しく高いSNRが得られ
ることが分かる。
経験的結果により、本発明の諸実施形態では、変換行列の精度は、少なくともbitD
epth−2であることが示された。図26は、様々な精度DCT行列と比較する、bi
tDepth=10及びMAX_TR_DYNAMIC_RANGE=17の1つのテス
トシーケンスのグリーンチャネルのビットレートに対するPSNRのグラフである。
諸実施形態では、MAX_TR_DYNAMIC_RANGEは、bitDepthよ
りも少なくとも(log(size)の最小値である)5大きくすべきである。符号化
効率をさらに改善するための追加精度について示した。
諸実施形態では、ENTROPY_CODING_DYNAMIC_RANGEは、少
なくともbitDepth(log(size)の最大値に対して(4−(6*(bi
tDepth−8)))+5より小さいQPによって適用された「量子化因子」について
1)よりも6大きくすべきである。最小QP値に対するクリッピングと関係ない他の実施
形態では、ENTROPY_CODING_DYNAMIC_RANGEは、少なくとも
bitDepthよりも5(log(size)の最小値)大きくすべきである。
16ビットシステムに対して、変換行列精度は、14に設定すべきであり、MAX_T
R_DYNAMIC_RANGEは21に設定すべきであり、ENTROPY_CODI
NG_DYNAMIC_RANGEは22に設定すべきである。より高い内部精度を有す
ることが有害とは考えにくいので、これらパラメータについても異なるbitDepth
sで試験し、同じ数のビットについては著しく高いSNRが得られ、精度を上昇させたシ
ステムは16までのbitDepthsに適したPSNR/MSE動作点を有することを
実証する結果を得た。
範囲拡張(Range Extensions)が全てのビットデプスに対する単一の
新しいプロファイルの生成を意図している場合、上述のシステムは適切である。しかしな
がら、異なるプロファイルを異なる最大bitDepthsについて記載しようとする場
合、異なるパラメータ値を有することは、最も高いプロファイルを必要としないシステム
におけるハードウェアの複雑性を低減するのに有用である可能性がある。いくつかの実施
形態では、異なるプロファイルが変換行列精度、MAX_TR_DYNAMIC_RAN
GE及びENTROPY_CODING_DYNAMIC_RANGEについて異なる値
を定義することがある。
他の実施形態では、プロファイルは、いくつか又は全ての変換行列精度、MAX_TR
_DYNAMIC_RANGE及びENTROPY_CODING_DYNAMIC_R
ANGEの値を(選択基準となる実行コストを有する)エンコーダ、又はbitDept
h等のサイド情報の機能によって可能値のリストから選択することを可能にする。しかし
ながら、変換行列精度が変化し、そのため別の実施形態においてたった1つの変換行列精
度がプロファイルに対して定義される場合、これは、複数組の変換行列を必要とすること
がある。その変換行列精度は、プロファイルが設計される最大ビットデプスに対する最大
ビットデプスの推奨値に対応する。考えられる一連のプロファイルを図28を参照して以
下に示す。
変換行列精度、MAX_TR_DYNAMIC_RANGE,ENTROPY_COD
ING_DYNAMIC_RANGE、及びbitDepthの値の例を以下の表に示す
このテーブルにおいて、「*」が付された値は、現在のHEVCの記述に一致して、1
5の最小値にクリップされる。「†」及び「‡」が付された値は、現在のHEVCの記述
について規定されたものより大きく、それぞれ15及び6である。
異なるプロファイルを用いようとする場合、本発明の諸実施形態では、これら仕様を最
小値として用いることができる(なお、HEVCバージョン1の10ビットシステムは、
これら標的に全く適合しない)。より高いビットレート(低いQP)についてPSNRを
劣化させるものの、これら表示された最小値よりも低い値を用いることもできる。
したがって、上記の表により、精度及び/又は1つ又は複数の符号化(及び補足復号化
)ステージのダイナミックレンジがビデオデータのビットデプスに従って設定される構成
の例が提供される。
しかしながら、いくつかの実施形態では、ルマ及びクロマのデータは、異なるビットデ
プスを有することがある。
したがって、このような場合、精度及び又はダイナミックレンジの値を(ルマデ−タと
クロマデータの間で)異なるように設定することができ、1組の値をルマ等に適用し、異
なる組の値をクロマデータに適用することができるものの、本発明の実施形態では、この
問題を違う方法で処理する。
いくつかの実施形態では、ビットデプスに従って値を変える能力を維持しながら、ルマ
データ及びクロマデータに対して同一の精度及び/又はダイナミックレンジの値を使用す
るのが実行効率の点で有利であると認識される。ルマデータ及びクロマデータの間で同一
のパラメータを使用することで、2つの異なるプログラム可能な又は制御可能な経路を(
ソフトウェア又はハードウェアの実行において)配置する必要なしに、ルマデータ及びク
ロマデータに対して単一の符号化経路を構築することができる。
どの組のパラメータを使用するかの選択は、所定のルールに従って実行してもよい。例
えば、ルマデータに関連するパラメータを選択することができる。あるいは、動作の柔軟
性が改善すれば、ビットデプスが最も大きいビデオ要素に係るパラメータ(例えば、ルマ
、クロマ)を選択することができる。したがって、例えば、上述の表を用いて、ルマビッ
トデプスが(例えば)16でクロマビットデプスが(例えば)14であった場合、16の
ビットデプスに関連するパラメータの列がルマ処理及びクロマ処理に用いられるであろう
ビットデプス及び/又は上述のパラメータ及び/又は上述の表等のパラメータの表の指
数に対するビットデプスの関係は、1つ又は複数のビデオデータの「パラメータセット」
により定義することができる。最高レベルはビデオパラメータセット(VPS)であり、
(精度に対応して、減少するレベルで)、シーケンスが1つ又は複数のピクチャを含むシ
ーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、ピクチャ
が1つ又は複数のスライスを含むスライスパラメータセットが続く。この関係、ビットデ
プス、精度、及び/又はダイナミックレンジの値は、これらのどれにより定義してもよい
。しかしながら、いくつかの実施形態では、SPSにより定義される。
したがって、上述の実施形態では、1つ又は複数の符号化ステージに対する精度及び/
又はダイナミックレンジの値は、ビデオ要素(例えば、ルマデータとクロマデータ)でビ
ットデプスが異なる場合、所定のルールを用いてビデオ要素の全てと共に使用するために
単一の組の精度及び/又はダイナミックレンジの値を選択できるように、ビデオビットデ
プスに従って変化するように構成される。これと同様の事が、(ビデオデータではなく)
画像データに関して、適用される。同様の原理は、エンコーダ及びデコーダに適用される
。したがって、これら構成により、異なるビットデプスの画像要素を含む画像データの入
力又は出力に対して、全ての画像要素のと共に用いるために変換行列の最大ダイナミック
レンジ及び/又はデータ精度の単一の組が選択される構成の例が提供される。
いくつかの実施形態では、変換行列の最大ダイナミックレンジ及び/又はデータ精度の
単一の組は、最大ビットデプスを有する画像要素の1つに関連する値として選択される。
なお、いくつかの実施形態では、デコーダ側及びエンコーダの逆経路において、同一の
変換行列の最大ダイナミックレンジ及び/又は同一のデータ精度をエンコーダ側で用いら
れるものとして用いてもよい。他の実施形態では、逆(デコーダ側)変換行列のデータ精
度が6等の所定の値に設定される。
これら構成の例について、図38及び図39を参照して以下に説明する。
CABACシステムの説明に戻る。上述のように、CABACシステムは、現在の入力
データ値に従って範囲変数により定義される一連のコード値の複数の補足サブレンジのう
ちの1つを選択し、現在の入力データ値を選択されたサブレンジ内のコード値に割り当て
、割り当てられたコード値及び選択されたサブレンジのサイズに基づいて一連のコード値
を修正し、一連のコード値を定義する範囲変数が所定の最小サイズより小さいか否かを検
出し、小さい場合、一連のコード値のサイズが少なくとも所定の最小サイズになるまで範
囲変数を連続的に増加させ、各サイズ増加動作に応答して符号化データビットを出力する
ことに関わる符号化技術の例を提供する。諸実施形態では、一連のコード値い関連するサ
ブレンジの比率は、入力データ値に関連付けられたコンテキスト変数により定義される。
諸実施形態におけるCABAC構成は、入力データ値を符号化した後、現在の入力データ
値に対して選択されたサブレンジ内の一連のコード値の比率を増加させるように次の入力
データ値に関して使用するためにコンテキスト変数を修正し、
ことを含む。
上述のCABACシステムの説明に戻り、いくつかの実施形態では、HEVC CAB
ACエントロピーコーダは、以下の処理によりシンタックス要素を符号化する。
TU内の(スキャン順において)最後の重要係数の位置が符号化される。
各4x4係数グループ(グループは逆スキャン順で処理される)に対して、当該グルー
プが非ゼロ係数を含むか否かを示す重要係数グループフラグが符号化される。このフラグ
は、最後の重要な係数を含むグループについては必要とされず、(DC係数を含む)左上
のグループについては1であると仮定される。フラグが1である場合、当該グループに関
する重要性マップ、2以上マップ、3以上マップ、シンボルビット、及びエスケープコー
ドのシンタックス要素は、それに続いて即座に符号化される。
この構成は、図29に概略的に示されている。ステップ1500では、現在のグループ
が最後の重要係数を含むか否かをCABACエンコーダが確認する。現在のグループが最
後の重要係数を含む場合、処理は終了する。現在のグループが最後の重要係数を含まない
場合、処理はステップ1510に進み、エンコーダは、現在のグループがDC係数を含む
左上のグループか否かを確認する。現在のグループがDC係数を含む左上のグループであ
る場合、処理はステップ1530に進む。現在のグループがDC係数を含む左上のグルー
プでない場合、ステップ1520において、エンコーダは、現在のグループが非ゼロ係数
を含むか否かを検出する。現在のグループが非ゼロ係数を含まない場合、処理は終了する
。現在のグループが非ゼロ係数を含む場合、ステップ1530で、重要性マップが生成さ
れる。ステップ1540において、重要性マップの値が1である、当該グループの終端か
ら逆に数えて8までの係数について、その大きさが1より大きいか否かを示す2以上マッ
プが生成される。ステップ1550において3以上マップが生成される。(グループの終
端に最も近い)2以上マップの値が1である1つの係数に対して、これは、大きさが2よ
り大きいか否かを示す。ステップ1560において、符号ビットが生成され、ステップ1
570において、初期のシンタックス要素により大きさが完全には記載されなかったあら
ゆる係数(すなわち、ステップ1530−1560のいずれかにおいて生成されたデータ
)に対するエスケープコードが生成される。
MSEが1より小さい動作点における16ビット、14ビット、又は12ビットシステ
ム(QPは、典型的には、−34,−22、及び−10)に対して、当該システムでは、
典型的には、ほとんど圧縮が行われない(16ビットに対して、実際には、ソースデータ
を膨張させる)。係数は、一般的に大きな数字であり、したがって、ほぼエスケープ符号
化される。このため、各係数に対してビットストリーム内に固定数のLSB,Bを配置
することでより高いビットデプスを可能にするために、エントロピーコーダに対して2つ
の変更が提案されている。基本的に、当該スキームにより、8ビット及び10ビット動作
のために開発された現在のHEVC CABACエントロピーコーダは、16ビット等の
より高いビットシステムを追加精度に対する代替パスを用いて10ビット等の低いビット
システムに事実上変換することにより、そのために設計された元のbitDepthで動
作することができる。低いビットシステムの値は容易に予測でき、より複雑な符号化スキ
ームを用いた符号化に適しているので、採用する分割方法の有効性が改善される。一方、
より高いビットシステムに必要とされる追加精度は予測が難しく、したがって、圧縮が難
しく、複雑な符号化スキームは有効でない。例えば、16ビットシステムは、Bが8と
なるような構成を有することができる。
固定ビットスキームを用いることは、ビットストリーム内においてエンコーダにより示
される。固定ビットの数の判定方法は、スキームを用いる場合、デコーダに対するエンコ
ーダにより示される。これらの方法は、その数を直接符号化すること、又は、ビットスト
リームにおいて既に符号化された(QP、ビットデプス、及び/又はプロファイルを含む
)ビットストリームに存在するパラメータから値Bを得る方法を示すこと、又はそれら
の組み合わせを示す。エンコーダは、同じ方法を用いて、又はシーケンス、画像、スライ
ス、又は先行のCUについて得られるB値に対するΔ値を示すことにより、異なる画像
、スライス、及びCuに対して異なるB値を示す選択肢も有する。Bの値は、異なる
変換部ブロックサイズ、異なる予測タイプ(インター/イントラ)、及び異なる色チャネ
ル毎に異なるように構成することもできる。そこでは、ソースビデオの機能により、異な
るパラメータの選択においてエンコーダが操作される。
QPに基づくBの取得例は、以下のとおりである。
=max(0,int(QP/−6))
ビットデプスに基づくBの取得例は、以下のとおりである。
=bitDepth−8
変換部ブロックサイズ及びQPに基づくBの取得例は、以下のとおりである。
=max(0,int(QP/−6)+2−log(size))
様々な値のBを、エンコーダにおいてプリコーダ(試行)構成を用いて決定、又は予
め決まったルールに従うよう構成することができる。
[エントロピー符号化の実施形態1]
より高いビットデプスでの処理を可能にするために、bitDepthより少ない数の
固定ビットBに対するHEVCエントロピーコーダの処理を以下のように変更した。
TUにおける(スキャン順で)最後の重要係数の位置を符号化する。
各4x4係数グループ(グループは逆スキャン順で処理される)に対して、各係数Cを
最高重要部分CMSB及び最下位部分CLSBに分割する。なお、CMSB=abs(C
)>>B、CLSB=abs(C)−(CMSB<<B)であり、Bは、ビットス
トリームから決定される、使用する固定ビットの数である。
上述のCMSB及びCLSBの生成により、値の最上位データ部分が当該値の複数の最上位ビッ
トを表し、値の最下位データ部分が当該値の残りの最下位ビットを表すように、入力デー
タ値から各補足の最上位データ部分及び最下位データ部分を生成する(データ値のシーケ
ンスを符号化する技術に関する)例が提供される。
グループがCMSBの非ゼロ値を含有するか否かを示す重要係数グループフラグを符号
化する。このフラグは、最後の重要係数を含むグループに必要であり、(DC係数を含む
)左上のグループに対して1であると仮定される。フラグが1である場合、当該グループ
に関連する以下のシンタックス要素は、それに続いて即座に符号化される。
重要性マップ:
当該グループにおける各係数に対して、CMSBの値が重要か否か(非ゼロ値を有する
か否か)を示すフラグを符号化する。このフラグは、最後の重要位置によって示される係
数に対して符号化される。
2以上マップ:
重要性マップの値が1である(グループの終端から後ろにカウントして)8までの係数
に対して、このマップはCMSBが1より大きいか否かを示す。
3以上マップ:
2以上マップの値が1である(グループの終端に最も近い)1つの係数に対して、この
マップはCMSBが2より大きいか否かを示す。
固定ビット:
グループにおける各係数に対して、等確率のCABACビンを用いて、CLSBの値を
バイパスデータとして符号化する。
符号ビット:
全ての非ゼロ係数に対して、確率が等しいCABACビンとして符号ビットを符号化す
る。(逆スキャン順における)最後の符号ビットは、場合により、隠れている符号ビット
を用いる際にパリティから推測される。
エスケープコード:
初期のシンタックス要素によってその大きさが完全には記載されないあらゆる係数に対
して、残りのビットをエスケープコードとして符号化する。
しかしながら、重要係数グループフラグが0である場合、当該グループに関連する固定
ビット、符号ビットのシンタックス要素が、それに続いて即座に符号化される。
固定ビット:
グループにおける各係数に対して、CLSBの値は等確率CABACビンとして符号化
される。
符号ビット:
全ての非ゼロ係数に対して、符号ビットが等確率CABACビンとして符号化される。
(逆スキャン順で)最後の符号ビットは、場合により、隠れている符号ビットを用いる際
にパリティから推測される。
1つ又は複数のマップ及びフラグの生成により、所定の重要度の最上位データ部分の値
の配列に関連する位置を示す1つ又は複数のデータセットを生成する例が提供される。C
ABACを用いて1つ又は複数のマップを符号化することにより、バイナリ符号化により
出力データストリームに対してデータセットを符号化する例が提供される。等確率CAB
ACビンを用いて他のデータを符号化することにより、出力データストリームにおける低
重要部分を定義するデータを含める例が提供され、また、(他の用語を用いて)出力デー
タストリームにおける下位データ部分を定義するデータを含める例は、コード値範囲の比
率に従って最下位データ部分を表すシンボルを符号化する算術符号化により最下位データ
部分を符号化することを含む。最下位データ部分を表す各シンボルに対するコード値範囲
の比率は同等のサイズである。しかしながら、等確率CABAC符号化の変形例として、
出力データストリームに低重要部分を定義するデータを含めることは、出力データストリ
ームに最下位データ部分をRAWデータとして直接含めることを含むことができる。
本発明の実施形態によれば、係数が非ゼロ(単にCMSBと同等ではない)であるか否
かを示すために、重要係数グループフラグの解釈を変えることができる。この場合、逆ス
キャン順で最後の係数を含む係数グループは、(1となるから)示される必要はない。重
要係数グループフラグが0である場合、追加シンタックス要素があったとしても符号化す
る必要はない。これにより、値の配列の所定の順番に従って、非ゼロ値を有する最後の最
上位データ部分の位置を示すデータフラグを含む重要性マップの例が提供される。
図30に後者の構成を概略的に示す。図30は多くの点で図29に対応する。2つの図
面を比較すると、図30には図29のステップ1500に該当するものが記載されていな
いことが分かり、当該処理が最後の重要係数を含むグループに対しても実行されるという
事実と一致する。ステップ1610及び1620は、一般的に、図29のステップ151
0及び1520と対応する。新しく導入されたステップ1625において、係数は上述の
ようにMSB及びLSB部分に分割される。ステップ1630,1640、及び1650
は、分割された係数のMSB部分でのみ作用する点を除いて、一般的に、図29のステッ
プ1530,1540、及び1550にそれぞれ対応する。新たに導入したステップ16
55は、分割された係数の上述の固定ビットとしてのLSB部分を符号化することに関与
する。ステップ1660及び1670は、図29のステップ1560及び1570に対応
する。
この修正により、CABACエントロピーコーダがそのために設計された元のbitD
epthで動作するシステムを、バイパス符号化されたより高いビットデプスのLSB(
最も予測できないので、最も圧縮が難しい)を用いて、エンコーダの設計ビットデプスに
等しい多くのMSBをCABAC符号化を通して渡せるようにBを選択することにより
効果的に生成することができる。例えば、エンコーダが8ビット又は10ビットデプスエ
ンコーダである場合、Bは8又は10と等しい。これにより、データ値のシーケンスが
画像データビットデプスを有する画像データを表すシステムの例が提供され、当該方法は
、画像データビットデプスと等しい各最上位データ部分において使用するビット数を複数
の最上位ビットとして設定することを含む。
上述のように、(いくつかの実施形態では)データ値のシーケンスが周波数変換画像係
数のシーケンスを含む構成に当該技術を適用してもよい。しかしながら、(音声データ又
は単に数字データ等の)他の種類のデータを用いることもできる。この提案の結果は、図
27で確認することができる。図27は、バイパス固定ビット符号化を行う場合(曲線1
680)と行わない場合(曲線1690)で同等の動作を示す、ビットデプスに係るDC
T行列精度及びMAX_TR_DYNAMIC_RANGEの組を用いた1つのテストシ
ーケンスについてのQPに対するPSNRのグラフである。(固定ビットを有しないシス
テムと関連する)固定ビットを有するシステムに対するビットレートの節約量は、QPが
0における5%からQPが−48における37%まで変化する。Bの最良値は、シーケ
ンス依存する。Bの1つの例は、上述のように8又は10である。
[エントロピー符号化実施形態2]
他の実施形態において、同様のスキームが同様の処理ステップの多くに適用される。し
かしながら、当該スキームは、重要性マップの元の機能を保持し、0のフラグ値は(エン
トロピー符号化実施形態1のように、係数のMSB部分に対する0の値ではなく)0の係
数値を示す。これは、(典型的にはスムーズ)コンピュータにより生成されたビデオ(ゼ
ロはより頻度が高いと予測される)を考慮する際に、より有用である。本実施形態は、b
itDepthより小さい多くの固定ビットBに対する以下の処理ステップを含む。
TUにおける(スキャン順において)最後の重要係数の位置が符号化される。
各4x4係数グループ(グループは逆スキャン順で処理される)に対して、グループが
非ゼロ係数か否かを示す重要係数グループフラグが符号化される。このフラグは、最後の
重要係数を含むグループには必要なく、(DC係数を含む)左上のグループに対しては1
であると仮定される。フラグが1である場合、各係数Cは、最上位部分CMSB及び最下
位部分CLSBに分割される。なお、CMSB=(abs(C)−1)>>B、CLS
=(abs(C)−1)−(CMSB<<B)である。
上述のCMSB及びCLSBの生成により、値の最上位データ部分が当該値の複数の最上位ビッ
トを表し、各最下位データ部分が当該値の残りの最下位ビットを表す用に、入力データ値
から各補足の最上位データ部分及び最下位データ部分を生成する(データ値のシーケンス
を符号化する技術に関する)例が提供される。
当該グループに関連する以下のシンタックス要素が、それに続いて即座に符号化される
重要性マップ:
グループの各係数に対して、係数Cが重要である(非ゼロ値を有する)か否かを示すフ
ラグが符号化される。最後の重要位置によって示される係数については、フラグは必要な
い。
2以上マップ:
重要性マップの値が1である(グループの終端から後ろにカウントして)8までの係数
に対して、CMSBが1以上か否かを示す。
3以上マップ:
2以上マップの値が1である(グループの終端に最も近い)1つの係数に対して、C
SBが2以上か否かを示す。
符号ビット:
全ての非ゼロ係数に対して、確率が等しいCABACビンとして符号ビットを符号化す
る。(逆スキャン順における)最後の符号ビットは、場合により、隠れている符号ビット
を用いる際にパリティから推測される。
固定ビット:
グループにおける各非ゼロ係数に対して、CLSBの値が符号化される。
エスケープコード:
初期のシンタックス要素によってその大きさが完全には記載されないあらゆる係数に対
して、残りのビットがエスケープコードとして符号化される。
1つ又は複数のマップ及びフラグを生成することにより、値の配列に関連する所定の重
要度の最上位データ部分の位置を示す1つ又は複数のデータセットを提供する例が提供さ
れる。CABACを用いて1つ又は複数のマップを符号化することで、バイナリ符号化に
より出力データストリームに対してデータセットを符号化する例が提供される。等確率C
ABACビンを用いて他のデータを符号化することにより、出力データストリームにおけ
る下位部分を定義するデータを含める例が提供される。
なお、出力ストリームにおけるデータの様々な要素の順番については様々な選択肢があ
る。例えば、符号ビット、固定ビット、及びエスケープコードを参照して、1群の(例え
ば)n(nは例えば16である)個の係数についての順番は、n x 符号ビット、n x 固定
ビットの組、それからn x エスケープコード、又はn x 符号ビット、それからn x (1つ
の係数に対してエスケープコード及び固定ビット)である。
この構成を図31のフローチャートに概略的に示す。ここで、ステップ1700−17
70は、違いが特定されない限り、以下のように図31及び図32の各ステップに対応す
る。なお、ステップ1755は、図31のステップ1760(同様のステップ1655は
、図30のステップ1660に先行する)に続く。
ステップ1700は、一般的に、図29のステップ1500に対応する。これが最後の
重要係数を含むグループでない場合、処理はステップ1710に移行する。ステップ17
10及び1720は、図30のステップ1610及び1620にそれぞれ対応する。係数
は、図30のステップ1625に対応するステップ1725で分割される。しかしながら
、ステップ1730において、上述のステップ1630の構成とは対照的に、重要性マッ
プの抽出に係数全体(ステップ1725で実行される分割は当面の間無視する)が用いら
れる。ステップ1740及び1750は、分割係数のMSB部分でのみ作用し、その機能
はステップ1640及び1650に対応する。ステップの順番は図32と図33でわずか
に異なるように(一例として)示されているという事実以外は、ステップ1755,17
60、及び1770は、ステップ1655,1660、及び1670の機能に対応する。
これら2つのエントロピー符号化実施形態を比較した結果を、図28に示す。図28は
、6つのテストシーケンスについて、エントロピー符号化実施形態1で得られる結果に対
して(同一のパラメータにも関わらず)エントロピー符号化実施形態2で得られるビット
レート%の改善を示すグラフである。
エントロピー符号化実施形態2は、負のQPに対して、エントロピー符号化実施形態1
よりもいくつかの原因物質に対する効果が平均で1%低いことが示されている。正のQP
に対しては約3%上昇する。しかしながら、いくつかの軟らかい原因物質に対して、係数
におけるゼロの数が増えることにより、その逆の現象が観察される。一実施形態では、エ
ンコーダは、エントロピー符号化方法を選択し、当該選択をデコーダに通知することがで
きる。
正のQPに対する節約量は負のQPに対する節約量と比較して小さいので、エントロピ
ー符号化の修正は、QPが負であるときにのみ有効とする。エントロピー符号化実施形態
1が負のQPに対して37%までのビットの節約量を示すことを考慮して、エントロピー
符号化変形を有しないシステムと比較すると、これら動作点において2つのエントロピー
符号化実施形態にほとんど違いはない。
したがって、周波数変換入力画像係数が利用可能な様々な量子化パラメータから選択さ
れた変数量子化パラメータに従って量子化された周波数変換入力画像係数である実施形態
において、当該技術は、利用可能な量子化パラメータの第1の所定のサブレンジにおける
量子化パラメータを用いて生産された係数、及び利用可能な量子化パラメータの第1の所
定のサブレンジ内にない量子化パラメータを用いて生産された係数について、最上位デー
タ部分及び最下位データ部分に従って周波数変換入力画像係数を符号化すること、並びに
各最上位データ部分のビット数が当該係数のビット数と等しくなり、各最下位データ部分
がビットを含まないように周波数変換入力画像係数の配列を符号化することを含むことが
できる。
符号化されるデータの量は一般的なHEVCバージョン1の動作点について観察される
ものよりやや高いので、提案された両システムに適用可能な追加ステージ及び実際には既
に提案されたシステムを有効にできない又は有効でないシステムについて、本発明の別の
実施形態に関連して説明する。
当該追加ステージは、各係数グループに対してバイパスデータを符号化するに先立ち、
CABACストリームをビット配列させる。これにより、値をストリームから直接読むこ
とができるので、バイパスデータの復号化をより早く(並列して)実行することができ、
バイパスビンを復号化する際の長い除算の必要性がなくなる。
これを実現する1つのメカニズムは、上述のCABAC終了方法を適用することである
しかしながら、本実施形態では、ビットストリームを終了する代わりに、CABAC状
態をビット境界に配列する。
諸実施形態において、一連のCABACコード値は、0から範囲変数により定義される
上限値までの範囲の値を含む。当該上限値は、所定の最小サイズ(例えば、256)から
第2の所定の値(例えば、510)までの範囲にある。
ストリームをビット配列するために、エンコーダ及びデコーダにおいて、m_Rang
eは単純に256に設定される。これにより、符号化及び復号化処理は著しく容易になり
、バイナリデータをRAW形式のm_Valueから直接読むことが可能となる。したが
って、デコーダにより、多くのビットを同時に処理することができる。いくつかの例にお
いて、値256は範囲変数m_Rangeの所定の最小値の一例と考えてもよい。
なお、m_Rangeを256に設定する動作は、平均で、0.5ビットの損失を招く
(m_Rangeが既に256であれば、損失はない。m_Rangeが510であれば
、約1ビットの損失がある。したがってm_Rangeの有効値全ての平均は0.5ビッ
トである)。
多くの方法を用いて、これら技術により引き起こされる損失又は考えられるコストを緩
和することができる。図33−図35は、CABACエンコーダにより実行されるCAB
A処理の終了ステージのバージョンを概略的に示すフローチャートである。
図33によれば、バイパス符号化データの予測量の推定値(例えば、2以上フラグの数
が1に等しいこと)に応じて、ビット配列するか否かを選択することができる。予測され
るバイパス符号化データがほとんどない場合、ビット配列するには(配列につき平均0.
5ビット無駄にするので)コストがかかり、ビットレートが低くなる可能性が高いので不
必要である。したがって、図33において、ステップ1800は、設定された2以上フラ
グの数を検出することでバイパス符号化データの推定量を検出し、並びにその数を閾値T
hrと比較することに関する。推定値が閾値Thrを超えた場合、処理はステップ181
0に移行する。ステップ1810では、ビット配列モードが選択される。推定値が閾値T
hr以下である場合、処理はステップ1820に移る。ステップ1820において、非ビ
ット配列モードが選択される。図34に示すステップは、例えば、各TUにおける各サブ
グループにおいて繰り返すことができる。
図34を参照して、各係数グループの終端におけるコードバイパスデータではなく、T
Uに対するCABACビンデータの後にTUに対する全てのバイパスデータを合わせて符
号化することができる。したがって、損失は、係数グループにつき0.5ビットではなく
符号化TUにつき0.5ビットである。したがって、図34におけるステップ1830に
おいて、現在のグループがTU符号化の終端にあるか否かを検出するためにテストを適用
する。現在のグループがTU符号化の終端になければ、ビット配列は適用されず(ステッ
プ1840で概略的に示されている)、処理はステップ1830に戻る。しかしながら、
現在のグループがTU符号化の終端にある場合、ビット配列はステップ1850で適用さ
れる。これにより、入力データ値が画像データを表し、当該画像データが係数の複数の配
列を含む変換ユニットとして符号化される構成の例が提供され、当該方法は、上記設定を
変換ユニットの符号化の終了時に適用することを含む。
この配列メカニズムは、効率性を減少させる可能性があるがストリームの符号化を単純
化することもある等確率のメカニズムで符号化されるストリーム内の他のデータ又は全て
のデータに先立って用いてもよい。
図35を参照し、変形例としての配列として、m_Rangeを単に256とするので
はなく所定の値の数Nの1つに設定することができる(例えば、384は半ビットに配列
する)。配列値は(再正規化を除いて範囲は増加することができないので)m_Rang
eの元の値以下である必要があるので、配列毎損失は定期的に間隔をあけた値に対して(
0.5/N)である。この方法は、依然として256以外の値に対して除算を必要とする
。しかしながら、分母は予め知られており、したがって、当該除算はルックアップテーブ
ルを用いて評価することができる。したがって、(ビット配列状態で適用される)ステッ
プ1860において、m_rangeの値が検出され、ステップ1870において、ビッ
ト配列処理において使用するために、m_rangeにしたがって配列値が選択される。
この変形例の配列方法に対するさらなる改良として、配列の直後の(1つ又は複数の)
ビンを2の累乗の(同等でない)シンボル範囲を用いて符号化することができる。このよ
うにして、次のビンに対する除算の全ての必要性を、ビット効率において(0.5/N)
を超えるさらなる損失を招くことなく除去することができる。
例えば、384に配列する際、次のビンに対する[0,1]のシンボル範囲は[256
,128]とすることができる。
0を符号化する場合、m_Rangeは256に設定され、ビンを符号化するコストを
0.5ビットとなる。
1を符号化する場合、m_Rangeは128に設定され(さらに、256がm_Va
lueに追加され)、システムは再正規化され(m_Rangeは再び256となる)、
ビンを符号化するコストは1.5ビットとなる。
0及び1は等しい確率で予測されるので、配列直後のビンを符号化する平均コストは、
依然として1ビットである。N=2であり、2つの配列点が256及び384である場合
に対して、当該方法を用いれば、現在のm_Range以下の最大配列点を取得できる。
配列点が256の場合、CABACエンジンを配列するために、m_Rangeはちょう
ど256に設定される。配列点が384の場合、上記処理が必要となり、1つのシンボル
の符号化が必要となる。
これは、図32A及び32Bに示され、N=4の別の例は、図32C−32Fに示され
ている。
CABACエンジンを配列する利点を示すために、当該配列ステージなしに等確率(E
P:equiprobable)ビンを復号化する方法を以下のように表すことができる。
(m_Value>=m_Range/2)の場合、
復号化EP値は1である。m_Range/2ずつm_Valueを減少させる。
それ以外の場合
復号化 EP値は0である。
ビットストリームから次のビットを読み込む。
m_Value=(m_Value*2)+ストリーム内の次のビット
この変形例は以下のとおりである。
m_Range=458、m_Value=303とし、ビットストリームにおける次
のビットは1である。
サイクル1
m_Value>=229。したがって、次の符号化EP値は1である。m_Valu
e=74
ビットストリームから次のビットを読み込む。m_Value=74*2+1=149
サイクル2
m_Value<229。したがって、EP値は0である(m_Value変化なし)

ビットストリームから次のビットを読み込む。m_Value=149*2+1=29
復号化等確率ビンは、長い除算の1つのステージに等しく、不等をテストするには計算
が必要。2つのビンを復号化するために、本例の処理は2回実行され、2段階の長い除算
処理が実行される。
しかしながら、m_Rangeを2の最大有効累乗(9ビットHEVC CABACに
対して256等)とする配列ステージを適用する場合、上記処理が簡略化される。
符号化EP値は、m_Valueの最も重要なビットである。
シフトレジスタとして処理することにより、ストリーム内の次のビットを最下位位置
にシフトして、m_Valueを更新する。
したがって、m_Valueは基本的にシフトレジスタとなり、EPビンは最上位位置
から読み込まれる。一方、ビットストリームは最下位位置にシフトされる。したがって、
単にm_Valueの上端からさらに複数ビットシフトすることで、複数のEPビットを
読み込むことができる。
この配列例の変形例は以下のように示される。
m_Range=256、m_Value=189とし、ビットストリームの次の2ビ
ットは1である。
サイクル1
次の符号化EP値は、m_Valueのビット7であり、1である。
ビット7をシフトし、ビットストリームから最下位位置に1をシフトすることでm_
Valueを更新する。m_Valueは123となる。
サイクル2
次の符号化EP値は、0であるm_Valueのビット7である。
ビット7をシフトし、ビットストリームから最下位位置に1をシフトすることでm_
Valueを更新する。m_Valueは247となる。
選択された配列点の数Nは、実行の複雑性と配列のビットコストとのトレードオフとし
て確認することができる。配列点毎に多くのEPビンが存在する動作点については、損失
はそれほど重要でなく、動作点が少ない配列システムでも十分である。逆に、配列点毎の
EPビンが少ない動作点については、損失がより重要になり、動作点の多い配列システム
が好ましい可能性がある。いくつかの動作点に対しては、配列アルゴリズムを完全に無効
にするのが好ましいことがある。エンコーダ及びビットストリームは、データストリーム
のセクションの動作点に従って選択可能な、デコーダに使用される配列点の数を示すこと
ができる。あるいは、当該示された数は、プロファイル及びレベル等のビットストリーム
に存在する他の情報から推測されてもよい。
配列位置がちょうど256及び384である単純なケースでは、複数の配列位置を用い
て、以下のように配列する。
m_Range<384の場合、m_Rangeを256に設定し、復号化のために上
述の変更例を参照する。
それ以外の場合、m_Range=384に設定し、以下の処理を次のEPビンを符号
化するために実行する。
m_Range=384=256+128
256のシンボル範囲を0の値に割り当て、128のシンボル範囲を次の符号化対象の
EPビンに対して1の値に割り当てる。
m_Value>=256の場合、(MSBビットテスト動作)
次のEP値は1である。
m_Value−=256(実際には、ビットクリア動作)
m_Range=128
再正規化(m_Range<256なので)
m_Range=256
m_Value=(m_Value*2)+ストリーム内の次のビット
それ以外の場合、
次のEP値は0である。
m_Range=256.
m_Range=256であり、上記単純な処理を次のEPビンの全てに対して実行す
ることができる。
上述のCABACビット配列メカニズムを有するエントロピー符号化実施形態1の結果
を、図27に示す。図27は、N=1に対するビット配列メカニズムを有する又は有しな
い6つのシーケンスについてのQPに対するビットレートの違いを表すグラフである。正
のビットレートの違い(垂直軸)は、ビット配列を有するシステムにより、ビット配列メ
カニズムを有しないスキームより高いビットレートが生成されることを示している。各シ
ーケンスに対するビットレートの違いは、1秒につき1000の係数グループの数の約0
.5倍である(トラフィックは、2560x1600 30p=11520、その他は1
920x1080 50p=9720)。
上述の配列技術は、1群の入力データ値を符号化した後、ゼロに等しい少なくとも1つ
の最下位ビットを含む利用可能な範囲変数値の所定のサブセットから選択された値に範囲
変数を設定する例である。サブセットは、最小サイズ(例えば、256)を含んでもよい
。サブセットは、所定の最小サイズ(256等)から第2の所定値(510等)の範囲に
ある2つ以上の値を含んでもよい。範囲変数の現在の値に従って値を選択してもよい。実
施形態は、(例えば、図32A〜32Fに示すように)範囲変数の現在の値が当該特定の
値からサブセットにおける次に高い値より1少ない値までの範囲にある場合、サブセット
から特定の値を選択することを含む。特別な例では、利用可能な値のサブセットは、25
6、320、384、及び448の組を含む。範囲変数を設定することには、範囲変数の
現在の値が256から319までの範囲にある場合、範囲変数が256に設定されるよう
に、範囲変数の現在の値が384から447までの範囲にある場合、範囲変数が384に
設定されるように、範囲変数の現在の値が448から510までの範囲にある場合、範囲
変数が448に設定されるように、範囲変数の現在の値に従ってサブセットから値を選択
することが含まれる。他の例では、範囲変数を設定することには、範囲変数の現在の値が
256から383までの範囲にある場合、範囲変数が256に設定されるように、範囲変
数の現在の値が384から510までの範囲にある場合、範囲変数が384に設定される
ように、範囲変数の現在の値に従ってサブセットから値を選択することが含まれる。
図30で設定される選択肢はプロファイルとして提案される。
(1つ又は複数の)高いプロファイルが14までのbitDepthsをサポートする
必要がある場合、変換行列係数精度、MAX_TR_DYNAMIC_RANGE及びE
NTROPY_CODING_DYNAMIC_RANGEが12、19、及び20にそ
れぞれ設定されるよう提案される。
これらプロファイルに加えて、イントラのみメイン(Main)/拡張(Extend
ed)プロファイルを定義することができるが、イントラのみデコーダはイントラ・イン
ターデコーダより著しく複雑性が少ないので、高いイントラプロファイルのみをここでは
説明する。
同様に、静止画を符号化するためのExtended/Highプロファイルは、依然
として様々なクロマ形式で定義できる。
低いプロファイルは、高いプロファイルで使用されるのと同様に、同じ行列精度、MA
X_TR_DYNAMIC_RANGE及びENTROP_CODING_DYNAMI
C_RANGEを使用する必要がある。そうでなければ、2つのプロファイルで生産され
たビットストリームは適合しない。
ここで、様々な選択肢について説明する。
選択肢1
この選択肢では、ビットデプスが変換行列精度、MAX_TR_DYNAMIC_RA
NGE及びENTROPY_CODING_DYNAMIC_RANGEに影響する。こ
れは、16までのビットデプスを支持する必要があるデコーダが異なる組の行列で13ビ
ットのデータを処理する必要があり、当該デコーダは21までサポートすることができる
ものの、MAX_TR_DYNAMIC_RANGEに対して内部精度が18ビットに限
定されることを意味する。しかしながら、高いプロファイルを用いて符号化された12ビ
ットデータは、低いプロファイルに準拠したデコーダにより復号化することができる。
選択肢2
この選択肢では、オーバーラップビットデプスに対するビットパラメータが、低いプロ
ファイルにより決定され、これにより、拡張プロファイルに準拠したデコーダを用いて復
号可能な高いプロファイルを用いて符号化された12ビットデータを復号化する。また、
13ビットデータの内部精度は、16ビットデータに対するものと同じである。また、行
列精度は、選択肢1よりもサポートされる必要はない。
この場合、1組の変換行列値を保存することができ、他の値は全てこれから得られる。
なお、変換行列が14ビットの最初の精度を有する場合、一般的に、2で除算されるか
丸められることにより低い精度が得られる。
高い精度行列から低い精度行列を得るためにこの一般側を用いると、以下の例が与えら
れる。
例1
選択肢1:High4:4:4 変換行列精度=14を定義する。
14から変換行列精度=13を得る。
Ext4:4:4 変換行列精度=14を定義する。
14から変換行列精度=10を定義する。
すなわち、「高い(High)」精度で記憶する。
例2
選択肢1:High4:4:4 変換行列精度=10を定義する。
10から変換行列精度=14を得る。
Ext4:4:4 変換行列精度=10を定義する。
14から変換行列精度=10を得る。
すなわち、「拡張された(Extended)」精度で記憶する。
よりよい品質のためには、「例1」が好ましい。しかしながら、例2は記憶必要メモリ
が少なくて済む。
なお、変形例として、もちろん、各精度について変換行列の組を記憶することもできる
。「例1」及び「例2」のルールは、「選択肢2」にも用いることができる。
目的の1つは、品質を増加し、プロファイルに除算することであるので、1つの精度に
おいて1つの組から各変換行列の組が得られる場合、スケーリングエラーが生じる。
「例1」の場合、システムは変換行列を14ビットからダウンスケールし、「例2」の
場合、システムは、変換行列を10ビットからアップスケール若しくはダウンスケールす
る。
選択肢3
すなわち、12ビットビデオのビットデプスは、high4:4:4デコーダのみがh
igh4:4:4スキームを用いて符号化されたストリームを復号化できるものの、「H
igh4:4:4」又は「Ext4:4:4」として符号化することができる。
選択肢4
すなわち、「High4:4:4プロファイル」は、低い「Ext4:4:4プロファ
イル」をサポートする必要がある。この選択肢では、12ビットビデオを符号化するため
の選択肢は1つしかない。
選択肢5
この選択肢において、行列精度はプロファイルごとの1の値に限られ、エンコーダに対
するオーバーヘッドを低減させる。また、MAX_TR_DYNAMIC_RANGE及
びENTROPY_CODING_DYNAMIC_RANGEはビットデプスにより決
定されるので、13ビットデータを符号化する必要があるエンコーダは、追加の内部計算
精度を用いることの実行オーバーヘッドを含むことを必要としない。
選択肢6
選択肢6は、選択肢5と同様であるが、拡張プロファイルのみが12ビットデータの符
号化に対して定義される。
まとめると、本発明の諸実施形態に係る提案された変化は、以下のとおりである。
高い精度に対して設定された少なくとも1つの追加変換行列を用いる。
マルチプロファイルエンコーダ・デコーダを簡略化するために、全ての高い精度のため
に、単一の組を有するのが好ましい。
提案された変換行列は、変換行列精度7〜14のために提供される。以下の説明を参照
する。
14ビット精度変換行列はソフトウェアに対する16ビットデータタイプに適合し、1
6ビットビデオへの拡張を可能にするのに十分な精度をもたらすので、これらを使用する
ことが示唆される。
変換行列精度の選択は、入力データのビットデプス及びプロファイルにより構成され、
あるいは、シーケンス、画像、又はスライスレベルで規定されるパラメータで交互に決定
される。
MAX_TR_DYNAMIC_RANGE及びENTROPY_CODING_DY
NAMIC_RANGEは、高い精度に対して変更できる。(すなわち、これらのうち少
なくとも1つ)。
MAX_TR_DYNAMIC_RANGE及びENTROPY_CODING_DY
NAMIC_RANGEの複数の値は、マルチプロファイルエンコーダ・デコーダに対す
る問題を提起するべきではない。
MAX_TR_DYNAMIC_RANGE=bitDepth+5及びENTROP
Y_CODING_DYNAMIC_RANGE=bitDepth+6を得ることが示
唆されている。
MAX_TR_DYNAMIC_RANGE = bitDepth + 5 を用いることは、多くの場合及び多くの種類の
ビデオ素材に対して適切である。しかしながら、これを変更することに関する考えられる
必要性について説明する。
経験的なテストにより、いくつかの例において、ビデオシーケンスのサブセット、特に
、低ノイズな内容のいくつかのビデオシーケンスに対して、MAX_TR_DYNAMIC_RANGE = bit
Depth + 5を用いることにより、単調でない(出力ビットレートと量子化パラメータの関
係を与える)反応曲線を生じることが分かった。
通常、このような反応曲線は、量子化のレベルが高いほど出力ビットレートが低く、量
子化のレベルが低いほど出力ビットレートが高いように、出力ビットレートと量子化パラ
メータの間で単調である。この単調な関係により、レート制御システムにより量子化パラ
メータを調整して出力ビットレートを所望の範囲又は所望の閾値に維持するレート制御ア
ルゴリズムの基礎が形成される。
しかし、MAX_TR_DYNAMIC_RANGE = bitDepth + 5を用いるいくつかの例では、例えば、
量子化のレベルを低くする変更により実際に低い出力ビットレートがもたらされ、この単
調な関係が崩れることが発見された。また、特定の出力ビットレートに対して、2つの考
えられるピクチャSNRの値が存在することも発見された。このような例外により、レー
ト制御アルゴリズムが所望のビットレートに達するのに苦労し、又は達することができな
いことがある。
経験的なテストにより、このような問題はMAX_TR_DYNAMIC_RANGE = bitDepth + 6を用
いることにより解決できることが発見された。したがって、いくつかの実施形態では、こ
のMAX_TR_DYNAMIC_RANGEとbitDepthの関係が用いられる。
32x32DCT行列の特別な例において、DCT処理を実行するには、bitDepth + 5
の値が得られる方法であるbitDepthを超えるlog2(32)ビットの精度を必要とする傾向があ
る。しかしながら、量子化プロセスにより、他のビットの精度の同等物を追加することが
ある。この追加ビットをDCT処理における追加の精度として提供すれば、少なくともい
くつかのビデオ素材に対して、著しく良好な結果を得ることができる。
しかしながら、経験的なテストにより、この問題及びMAX_TR_DYNAMIC_RANGE = bitDept
h + 6を用いることの解決法は、より大きいDCT行列サイズにのみ関連することも発見
されている。MAX_TR_DYNAMIC_RANGEとbitDepthの異なる関係を可能にすることの利点は、
追加精度が必要ない例において不必要な処理のオーバーヘッドを避けられることである。
特に、本例において、上記問題及び提案された解決法は、特に32x32DCT行列サ
イズと関連する。より小さな行列に対しては、MAX_TR_DYNAMIC_RANGE = bitDepth + 5の
関係を用いることができる。
より一般的には、オフセット(MAX_TR_DYNAMIC_RANGEを生成するためにbitDepthに追加
された値)を行列サイズに従って変更できるように、MAX_TR_DYNAMIC_RANGEとdbitDepth
の関係の適用可能な変更を用いることができる。したがって、MAX_TR_DYNAMIC_RANGE = b
itDepth + offsetであり、offsetは行列サイズの関数である。1つの例では、オフセット
値は以下のように選択することができる。
他の例では、低い精度を小さい行列サイズに用いることができる一方、高い精度には大
きな行列サイズを用いる必要性を認識できるように、累進的な関係を用いることができる
オフセットと行列サイズの関係は、エンコーダの逆(復号化)経路とデコーダの復号化
経路とで同一とすべきである。したがって、当該技術のこれら3つの領域で、この関係を
構築し、又は明らかにする必要がある。
1つの例では、この関係をエンコーダ及びデコーダで所定のハードコードされた関係と
して構築することができる。
他の例においては、ビデオデータの一部として(又はこれに関連して)、この関係を明
確にすることができる。
他の例では、エンコーダ及びエンコーダにおいて、この関係を符号化ビデオデータに関
連付けられた「プロファイル」の識別子から推測することができる。ここで、この説明の
他の場所で説明したように、プロファイルはビデオデータを符号化又は復号化するために
使用される一連のパラメータの識別子である。プロファイル識別子と当該プロファイル識
別子により設定される実際のパラメータのマッピングは、エンコーダ及びデコーダに予め
記憶される。このプロファイル識別子は、例えば、符号化データの一部として伝達するこ
とができる。
しかしながら、一般的に、(いくつかの例では、第2のオフセットと称される)オフセ
ットの値は、変換行列の行列サイズに依存する。
変換行列精度と同様に、MAX_TR_DYNAMIC_RANGE及び/又はENT
ROPY_CODING_DYNAMIC_RANGEの選択は、入力データのビットデ
プス及びプロファイルで構成され、あるいは、シーケンス、画像、又はスライスレベルで
規定されるパラメータ(場合により、DCT行列を選択したのと同一のパラメータ)によ
り交互に決定される。
これら構成により、変換データの最大ダイナミックレンジに従って、データ精度を有す
る変換行列を用いて、並びに入力画像データのビットデプスに従って最大ダイナミックレ
ンジ及び/又は変換行列のデータ精度を選択して、行列乗算処理により周波数変換入力画
像係数の配列を生成するための周波数変換入力画像データの例が提供される。
諸実施形態では、変換行列のデータ精度を入力画像データのビットデプスより小さい(
2等の)第1のオフセット数のビットに設定することができ、変換データの最大ダイナミ
ックレンジを入力画像データのビットデプスより大きい(5等の)第2のオフセット数の
ビットに設定することができる
エントロピー符号化は、低いQPでの圧縮を増加させるためにいくつかの固定ビット処
理(エントロピー符号化実施形態1及び2を参照)を含むように変更することができる。
固定ビットの有無は、シーケンスレベルで構成することができる。
固定ビットBの数は、シーケンス、(画像パラメータセットは、シーケンスレベル設
定を知らないので難しいものの)画像、スライス、又はCUレベルで(場合により、以前
のシーケンス・画像・スライス・CU,ペアレントエンティティ、又はプロファイル定義
に対する固定ビットの数からデルタを伝達することにより)構成することができる。
エントロピー符号化は、長い除算を使用することなくバイパスビットをストリームから
抽出できるようにCABACビット配列を含むように変更することができる(1つ又は複
数の上述のビット損失緩和方法を適用するのも好ましい)。
したがって、本発明の諸実施形態によれば、HEVCを通してより高いビットデプスの
ための範囲拡張(Range Extensions)権限に必要性を適応させるために
、内部精度を上昇させることができる。様々なソースの誤差が研究され、推奨がなされて
いる。また、符号化効率を改善するための変化が提供され、スループットを改善する変化
も提供されている。
正確変換行列の増加
以下においては、変換行列を様々なレベルの精度で説明する。
4x4 DST
組み合わせ行列は、以下の形式である。
格子内の値は、以下のテーブルに係る行列係数精度(比較のために含まれる6ビットH
EVCバージョン1行列値)により定義される。
組み合わせDCT行列
実行を容易にするために、単一の32x32DCT行列M32を記載することができる
。それからは、(各ソース変換行列からそれぞれ異なる必要なデータ精度で変換行列を得
る例として)以下のサブサンプリングを通して各小さいNxN DCT行列Mを得るこ
とができる。
x,y=0..(N−1)に対して、M[x][y]=M32[x][(2(5 −
log2(N)))y].
組み合わせ行列M32は、以下の形式である。
以下のテーブルに係る行列係数精度で定義される格子の値(比較のために含まれる6ビ
ットHEVCバージョン1行列値)
情報に対して、32x32行列由来のより小さいDCT行列をここに示す。各格子の値
は、上記テーブルに係る行列係数精度で定義される。
4x4DCT
行列Mは、組み合わせ行列M32の8番目の行ごとの第1の4係数として定義される
8x8DCT
行列Mは、組み合わせ行列M32の全ての4番目の行の第1の8係数として定義され
る。
16x16DCT
行列M16は、組み合わせ行列M32の全ての偶数行の第1の16係数として定義され
る。
固定ビット符号化の実施形態に関する別の技術又は関連技術について、図36及び図3
7を参照して説明する。
しかしながら、最初に、エスケープコードを符号化するために使用される技術について
説明する。
いわゆるゴロムライス符号化は、値vをその後にkビットのサフィックスが続くα符号
化プレフィックス(1つの0に続く可変数の1、逆の場合も同様である)として符号化す
る。
プレフィックス長をα符号化プレフィックス内の1の総数にする。Kを最下位kビット
の値にする。
v=(プレフィックス長<<k)+K(ただし、<<nは、nビットの左シフトを表し
、同様の表記である>>nは、nビットの右シフトを表す)
ビットの総数は、プレフィックス長+1+kと等しい。
次に、いわゆるk次の指数ゴロム符号について説明する。当該符号では、符号化対象の
数字が変数長α符号化プレフィックスと変数長サフィックスとに分割される。サフィック
スビットの数=プレフィックス長+kである。ここで、プレフィックス長は、またしても
α符号における1の数である。
符号におけるビットの総数=プレフィックス長+1+プレフィックス長+kである。
Kを最後のkビットの値とする。
プレフィックス長が0の場合、vはKと等しくなる。
プレフィックス長が1の場合、vは(1<<k)+Kから(3<<k)+Kまでの範囲
にある((3<<k)+Kを含まない)。
プレフィックス長が2の場合、vは(3<<k)+Kから(7<<k)+Kまでの範囲
にある((7<<k)+Kを含まない)。
プレフィックス長が3の場合、vは(7<<k)+Kから(15<<k)+Kまでの範
囲にある((15<<k)+Kを含まない)。
したがって、v=((2^プレフィックス長)−1)<<k)+サフィックスとなる。
HEVCにおいて、ゴロムライス符号及び指数ゴロム符号の両方が使用される。プレフ
ィックス長が3より小さい場合、符号はゴロムライス符号として解釈される。しかしなが
ら、プレフィックス長が3以上の場合、符号はk次の指数ゴロム符号として解釈される。
(どちらかのシステムにおける)プレフィックスは、α符号の例である。サフィックス
は、非α符号の例である。当該2つのシステムは、2部変数長符号の例である。
この場合、指数ゴロム符号を復号化するために使用されるプレフィックス長の値は3減
らされ、復号化動作から得られる値は(3<<k)増加される。なぜなら、これはゴロムライス
符号を用いて表すことができない最小の値だからである。
HEVC EscapeとEscape−Escapeで使用される「k」の値は異な
る。16係数の各グループのために、値kは0で始まり、係数値の重要度が3<<kより
大きい時はいつでも増加される。この状態に応答して(すなわち、現在のデータ値の重要
度に応答して)、kは最大値の4までインクリメントされる。なお、係数の符号を表す符
号ビットは別途伝達されるので、この説明は係数の重要度に関するものである。
図36は、上述のエスケープコードを生成する処理を示す概略フローチャートである。
当該フローチャートのステップのいくつかは、上述のものと同様であるため、詳細な説明
は省略する。
この方法は、(例えば)周波数変換画像係数のシーケンス又は各データ値の重要度が1
減らされた(この場合、重要性マップは1の値から構成されるため、さらなる処理の前に
各係数が1減らされるように重要性マップを最初に生成してもよい)当該シーケンスの非
ゼロ要素を含む1群のデータ値に関して動作可能である。
ステップ2000において、kの初期値を設定する。通常のHEVCシステムにおいて
、kは最初に0に設定される。ステップ2010、2020、2030、2040、20
50、及び2060は図29〜図31のフローチャートにおける同様のステップに対応す
るため、ここでは説明を行わない。なお、図29〜31及び図36において、HEVCの
いくつかの実行例では、各係数に対してマップの全てを生成する必要はない。例えば、1
群の(例えば)16係数内において、マップが生成されない1つ又は複数の係数が存在し
てもよい。
ステップ2070において、エスケープコードが必要な場合、上述の技術を用いてkの
現在の値に基づいて生成される。特に、エスケープコードを用いる必要がある係数は、重
要性マップ及び任意に1つ又は複数の他のマップを用いて最初に処理される。なお、エス
ケープ符号化が必要な係数の場合、使用する重要性マップ、2以上マップ、3以上マップ
のいずれかが「1」としてフラグ化される。これは、エスケープ符号化する必要がある係
数は、その係数に関して利用できるどのマップを用いたとしても、当該マップにより符号
化できる値より定義上大きいからである。
現在のデータ値が完全に符号化されなかった場合、エスケープコードが必要となる。こ
こで、「完全に」符号化された、という言葉は、(当該マップ、又は例えばマップ及び固
定ビットによって)既に符号化された値より小さいデータ値がゼロであることを意味する
。すなわち、既に生成された要素を考慮して、データ値の残りの量がゼロである場合、デ
ータ値は当該要素により完全に符号化される。
したがって、例の係数に対して、重要性マップ、2以上マップ、3以上マップを利用で
きると仮定すると、各マップは当該係数に関して「重要」、「2以上」、及び「3以上」
としてフラグ化される。
これは、(本例において)当該係数が少なくとも3でなければならないことを示す。
したがって、エスケープ符号化の前に、情報を喪失することなく、3の値を係数から減
算することができる。3の値(又は、より一般的には、当該係数に適用されるマップによ
って定義される数字範囲を示す可変基準レベル)は、復号化において元に戻すことができ
る。
10進法における15(2進法の1111)の係数値を例にすると、重要性マップは「
1」であり、2以上マップは「1」であり、3以上マップは「1」である。基準レベルの
値は3である。基準レベルは係数値から減算され、エスケープ符号化に渡される10進法
の12(2進法の1100)の値が提供される。
ここで、値k(上記参照)は、サフィックスビットの数を定義する。サフィックスビッ
トは、基準レベルの減算後、係数値の最下位ビットから得られる。(例えば)k=2の場
合、残りの値1100の2つの最下位ビットがサフィックスビットとして処理される。す
なわち、本例のサフィックスビットは00である。残りのビット(本例では11)は、プ
レフィックスとして処理される。
したがって、まとめると、エスケープコードに関連する処理は、(エスケープコードが
必要な場合)係数が少なくとも基準レベルの値を有しなければならないように、当該係数
の1つ又は複数の最下位ビットを定義する1つ又は複数のマップを生成することと、当該
係数から基準レベルを減算することと、当該係数の残りの部分の最下位kビットをサフィ
ックスビットとして符号化することと、当該係数の残りの部分の最上位ビットをプレフィ
ックスとして符号化することとを含む。
そして、kの値を変更する必要がある場合、この変更は、上述のテストにより、ステッ
プ2080で実行され、ステップ2070の次の動作のためにkの新たな値が提供される
これと同等の効果を固定ビットのユーザ(図30及び図31)にもたらすことができる
エスケープ符号化技術の変形例は、エスケープコードに用いられるサフィックスビットの
数を定義する値kにオフセットを適用することである。
例えば、HEVCシステムにおける値kは0から4の範囲を有し、出発点の0から最大
値4まで(1群の係数に関する)推移する。諸実施形態では、kの値にオフセットが追加
される。例えば、1群の係数の符号化の過程でkを変更する従来技術により、kを0から
4に変更するのではなく、kをparam_offsetから4+param_offs
etに変更するように、オフセットを3等の値param_offsetとして予め定め
てもよい。
値param_offsetは、エンコーダ及びデコーダの間で予め定めることができる。
あるいは、値param_offsetは、エンコーダ及びデコーダから、例えばストリーム、ピク
チャ、スライス、又はブロック(TU等)ヘッダとして伝達することができる。
あるいは、値param_offsetは、エンコーダ及びデコーダから、(例えば)ビットデプス≦10に対してparam_offset=0、ビットデプス>10に対してparam_offset=ビットデプス−10等、ビデオデータのビットデプスの所定の関数として得ることができる。








あるいは、値param_offsetはエンコーダ及びデコーダで、係数のブロック又はグループ
に適用可能な量子化の程度(Qp)の所定の関数として得ることができる。
あるいは、値param_offsetは(例えば、所定の方法で)1つ又は複数のどのビデオ要素
が符号化されるか、ブロックサイズ、モード(例えば、無損失又は損失の多い)、ピクチ
ャタイプ等によって決めることができる。
あるいは、値param_offsetはエンコーダ及びデコーダで、所定の出発点、ヘッダ内で伝
達できる出発点、又は(例えば)ビットデプスから得られる出発点をとって、所定の適用
基準で得ることができる。このような適用処理の例について、図37を参照して以下に説
明する。
あるいは、複数の基準を適用してもよい。特に、値param_offsetが(ブロックサイズ)
他のパラメータに依存し、図37に示すように適用可能に変更される場合、適用可能な変
更は、param_offsetの各可能値に対して個別に(すなわち、各ブロックサイズに対して個
別に)適用することができる。
なお、これら依存関係のいずれか又は全てを図30及び図31の構成において用いられ
る固定ビットの数に関して適用することができる。
この変更例の技術と上述の固定ビットの技術を図30及び図31に関して比較すると、
(a)図30及び図31の固定ビット技術において、いずれかのマップの生成前に、係数
がより上位の部分とより下位の部分に分割され、その後、より上位の部分から1つ又は複
数のマップが生成され、より下位の部分は直接符号化される(そうでなければ、上述のよ
うに処理される)が、(b)param_offsetを用いたエスケープ符号の生成において、1つ
又は複数のマップが最初に生成され、その後、残りの部分の係数値(基準レベルを減算し
た値)がサフィックス又はプリフィックスのどちらかとして処理されることがわかる。サ
フィックスとプレフィックスとの境界は k + param_offsetによって決まり、サフィック
スは残りの部分の最下位ビットを表す。
いずれかの例において、固定ビット符号化に関連するパラメータ、又は値param_offset
は、適用可能な方法により変更することができる。ここで、これを実現する方法の例につ
いて、図37を参照して説明する。上述の説明から、図37において、(図37において
「NFB」と称され、図30及び図31のステップ1625及び1725で得られる最下
位部分のビットの数を指す)固定ビットの数又は(図37では「オフセット」と省略して
表される)値param_offsetのどちらかに対して同様の技術を適用することができる。
以下に説明する構成例において、オフセット又はNFB値の適用は、スライス毎に行わ
れると仮定される。なお、スライスはシステムのHEVCファミリー内において1つのL
CUからピクチャ全体までのあらゆるものとして定義することができる。しかしながら、
スライスの基本的な特徴は、個々のスライスを他のスライスを参照することなく復号化で
きるように、符号化が他のスライスに適用される符号化と無関係であることである。しか
しながら、この適用をブロック毎又はピクチャ毎に実施できるのは勿論である。
なお、図37の処理はエンコーダで実行され、また、オフセット/NFB変数の値がエ
ンコーダとデコーダの間で等しく追跡できるように、補足復号化方式によりデコーダで実
行される。
ステップ2100において、スライスの処理が開始される。
ステップ2110において、オフセット/NFB値がリセットされる。この処理には、
当該値を0等の固定値にリセットすることが含まれる。変形例の構成において、当該値は
1つ又は複数の前のスライスに関するオフセット/NFB変数の最終値から得られる初期
値にリセットすることができる。この場合、各スライスを独立して復号化する能力を維持
するために、本発明の諸実施形態によれば、スライスヘッダにおけるオフセット/NFB
変数の初期値の通知が提供される。なお、このような初期値を取得するための様々な技術
を利用することができる。例えば、オフセット/NFB変数の初期値は、前のスライスに
対する変数の最終値が2を超えなかった場合、0に設定することができ、その他の場合、
1に設定することができる。同様の構成を先行のピクチャに関するすべてのスライスから
得られた変数の最終値の平均に適用することができる。当業者であれば、他の様々な可能
性を利用できることを理解するであろう。勿論、所定の初期値を用いる場合、エンコーダ
及びデコーダに適用可能な一般定義によって予めどちらかに同意しておくこともできる。
あるいは、所定の初期値をストリーム又はピクチャヘッダに規定することもできる。
ヘッダデータに関して、図37の適用処理がストリーム、ピクチャ、又はスライスに関
して実行されるか否かを示すために、当該ストリーム、ピクチャ、又はスライスヘッダ内
にフラグを含めてもよい。
ステップ2120において、第1の変換ユニット(TU)の処理を開始する。スライス
の処理は、上述のように、TU上でTU毎に実行される。
ステップ2130において、さらに3つの変数を今回は0にリセットする。これら変数
はアンダー、オーバー、及びトータルと称される。これら変数の目的について以下に説明
する。
TU内において、各係数を順々に符号化する。ステップ2140において、次の係数を
符号化する。係数の符号化は、図30/31のフローチャート又は図36のフローチャー
トに続いて実施してもよい。各例において、当該処理のステージで利用できるオフセット
又はNFB値を利用する。勿論、符号化される最初の係数に対して、オフセット/NFB
値はステップ2110で設定されたものと等しい。後ろの係数に対しては、オフセット/
NFBの現在の値を用いる。
ステップ2140の符号化の結果に関して、テストを適用する。テストの結果によって
、処理はステップ2150、2160、又は2170に進み、あるいは、直接ステップ2
180に進む。まず、当該テストについて説明する。なお、当該テストは図30/31の
固定ビットシステム又は図37及び付随して説明したparam_offsetシステムが用いられる
か否かによってわずかに異なる。
固定ビットテスト
固定ビットストリームの場合、一連の固定ビットが符号化される時はいつでも(ステッ
プ1655又はステップ1755を実行するときはいつでも)変数「トータル」がインク
リメントされる。これにより、変数が最後にリセットされ、固定ビットが符号化された時
から、変数「トータル」は機会の数を指す。
このテストにより、remaining_magnitude=(magnitude
−1)>>NFBとなるように、固定ビットとして符号化されない変数の重要度の一部と
して定義される変数remaining_magnitudeが得られる。
他の値である基準レベルが(上述のように)エスケープコートを用いずに表現できる最
大の重要度として定義される。ここで、特定の係数は、1つ、2つ、若しくは3つのフラ
グ、又は当該係数に関して符号化されたマップエントリを有してもよい。したがって、係
数が3以上フラグを有していた場合、基準レベルは3であり、係数が2以上フラグを有し
ていた場合、基準レベルは2であり、その他の場合、基準レベルは1である。
その後、値remaining_magnitudeを基準レベルに対してテストする
((remaining_magnitude>>1)?基準レベル)の場合、変数「
アンダー」をインクリメントする。図37において、これはステップ2150に該当する
。このステップの基礎にある意味は、固定ビット(NFB)の数が現在の係数を符号化す
るのに十分でないようないわゆるアンダーシュートが検出されたことである。テストにお
ける右シフト(>>1)の重要性は、変数NFBが2ビット以上不十分である場合、当該
アンダーシュートが注目すべきアンダーシュートしてのみフラグ化されることである。
同様に、((NFB>0)AND((remaining_magnitude<<1
)?0))である場合、変数「オーバー」をインクリメントする。図37において、これ
はステップ2160に該当する。このステップの基礎にある意味は、たとえ1ビット少な
い固定ビット(上記の式における<<1シフトで検出される)で固定ビット要素が当該係数
の全体の重要度を符号化できたとしても、オーバーシュートが検出されることである。言
い換えれば、固定ビットの数は当該係数を符号化するのに必要な数を著しく超えている。
これらテストで使用される様々なパラメータ、特に適用されるビットシフトの数は、当
業者の設計技能に従って変更できることが理解されよう。
アンダーシュートテストもオーバーシュートテストも実行されないが固定ビットが符号
化される場合、処理はステップ2170に移り、変数トータルのみがインクリメントされ
る。
完全を期すために、処理は直接、固定ビット動作が可能でない図37のステップ218
0に移り、変数アンダー、オーバー、及びトータルのいずれも変化しない。
Param_Offsetテスト
param_offsetに基づくシステムの場合、基本的な原理は同様であるが、詳細が上述のも
のとわずかに異なる。
エスケープ値を符号化するときはいつでも、変数「トータル」をインクリメントする。
上述のようにオフセットparam_offsetの効果を考慮するように定義されるパラメータk
に対して係数値をテストする。
(係数>(3<<k))の場合、変数「アンダー」をインクリメントする。これは、図37のス
テップ2150に該当し、上述のアンダーシュート状態を示す。言い換えれば、param_of
fsetを考慮して、変数kはエスケープコードをサフィックスとして符号化するのに不十分
であった。
そうでなければ、((係数*3)< (1<<k))の場合、変数「オーバー」をインクリメントする
。これは、図37のステップ2160に該当する。これは、param_offsetを考慮して、変
数kがエスケープコードを符号化するのに必要なサフィックスビットをさらに提供したオ
ーバーシュート状態を表す。
アンダーシュートテストもオーバーシュートテストも実行されないがエスケープコード
を符号化する場合、処理はステップ2170に移り、変数トータルのみがインクリメント
される。
なお、処理は直接、エスケープコードが符号化されない図37のステップ2180に移
り、変数アンダー、オーバー、及びトータルのいずれも変化しない
なお、いずれかの一連のテストにおいて、NFB又はparam_offsetがより
高い又は低い場合、アンダーシュート又はオーバーシュートが発生するか否かを確認する
ことにより、アンダーシュート又はオーバーシュートが重要であるか否かを確認する。し
かしながら、この追加マージンは必要ない。これらテストは、単に「アンダー(オーバー
)シュートが発生した?」とすることができる。
ステップ2180において、TU内で符号化のために利用できる他の係数がある場合、
処理はステップ2140に戻る。そうでなければ、処理は各TUの末端であるが、次のT
Uが符号化される前に実行されるステップ2190に移る。このステップ2190におい
て、変数オフセット/NFBを、変数アンダー、オーバー、及びトータルに従って適用可
能に変更する可能性がある。ここで、同様の適用が、((アンダー*4)>トータルの場
合、オフセット/NFB値を(1)インクリメントし、((オーバー*2)>トータルの
場合、オフセット/NFB値を最小値を0として(1)デクリメントするように、オフセ
ット値及びNFB値のどちらかに適用される。
なお、両テストが単一のTUに関して実行される場合、NFB又はparam_off
setの値は同じままである。
なお、スライス及びTUによる分割は必須ではない。値のどのグループ(ビデオデータ
値でなくてもよい)も同様に処理することができ、本明細書におけるTU分割の代わりに
、サブセットに再分割することができる。
これは、25%を超えるアンダーシュートを経験する場合、オフセット/NFBのイン
クリメントに、50%を超えるオーバーシューt−の場合オフセット/NFB値のデクリ
メントに等しい。したがって、アンダーシュートのテストに用いられる比率は、オーバー
シュートのテストに用いられる比率よりも低い。この非対称性の理由は、アンダーシュー
トの場合に用いられるエスケープ符号化法の機能により、アンダーシュートがオーバーシ
ュートよりも非効率なことである。しかしながら、同一の閾値を使用でき、あるいは、異
なる値を使用できることが理解されよう。
最後に、ステップ2200において、スライスにおいて他のTUがある場合、処理はス
テップ2120に戻る。スライス内に他のTUがない場合、処理はステップ2100に戻
る。なお、上述のように、オフセット/NFBにたいする出発点は、終了したばかりの符
号化処理の間に得られた結果に基づいて、(次のスライス又はその後のスライスのために
、ステップ2120の次の過程で使用するために)任意に設定することができる。
デコーダ側(又はエンコーダの復号化経路)で補足ステップを実行する。例えば、復号
化方法には、所定の重要度の範囲の第1の部分を示し、バイナリ符号化により入力データ
ストリームに符号化される1つ又は複数のデータセットから各データ値の第1の部分を復
号化し、少なくともデータセットにより完全には符号化されなかったこれらデータ値の、
ビット数が整数である値nに依存する第2の部分、及び入力データストリームに含まれる
第2の部分を定義するデータを復号化し、データ値が各第1及び第2の部分により完全に
は復号化されなかった場合、入力データストリームからデータ値の残りの第3の部分を復
号化し、2以上のデータ値のサブセットに対して、(i)第3の部分が符号化され、高い値
のnが使用された場合に依然として必要とされるデータ値のインスタンスの数及び(ii)第
2の部分が符号化されるがnの値はデータ値が低い値のnを用いて第1及び第2の部分によ
って完全に符号化される値であるデータ値のインスタンスの数を検出し、データ値のサブ
セットを復号化した後、当該検出の結果に従って次のデータ値に関して使用するためにn
を変化させることが含まれる。
上述のステップは、(符号化処理の場合)エントロピーエンコーダ370及びエントロ
ピーデコーダ410により、又は(復号化処理の場合)エントロピーピーデコーダ410
のみにより実行することができる。この処理は、ハードウェア、ソフトウェア、プログラ
ム可能なハードウェア等により実行されてもよい。なお、エントロピーエンコーダ370
はエンコーダ、生成部、検出部、及び符号化技術を実行するためのプロセッサとして動作
することができる。エントロピーデコーダ410は、1つ又は複数のデコーダ、及び上述
の復号化技術を実行するためのプロセッサとして動作することができる。
したがって、上述の構成は、1群(例えば、スライス)のデータ値(例えば、画像デー
タ)を復号化するデータ復号化方法の例を表す。当該方法は、所定の重要度の範囲の第1
の部分を示し、バイナリ符号化により入力データストリームに符号化される1つ又は複数
のデータセット(例えば、マップ)から各データ値の第1の部分を復号化し、少なくとも
データセットにより完全には符号化されなかったこれらデータ値の、ビット数が整数であ
る値nに依存する第2の部分、及び入力データストリームに含まれる第2の部分を定義す
るデータを復号化し、データ値が各第1及び第2の部分により完全には復号化されなかっ
た場合、入力データストリームからデータ値の残りの第3の部分を復号化し(ここで、例
えば、第2の部分は固定ビット又はサフィックス部分表してもよく、値nは(ゴロムライ
ス符号化におけるお)固定ビットの数若しくはサフィックス長、又は上述の指数ゴロム符
号化の次数を表すことができ、第3の部分は、ゴロムライス又は指数ゴロムシステムにお
けるプレフィックス又は固定ビットの例におけるエスケープコードを表すことができる)
、2以上のデータ値のサブセットに対して、(i)第3の部分が符号化され、高い値のnが使
用された場合に依然として必要とされるデータ値のインスタンスの数(例えば、変数「ア
ンダー」)及び(ii)第2の部分が符号化されるがnの値はデータ値が低い値のnを用いて第
1及び第2の部分によって完全に符号化される値であるデータ値のインスタンスの数(例
えば、変数「アンダー」)を検出し、データ値のサブセットを復号化した後、当該検出の
結果に従って次のデータ値に関して使用するためにnを変化(例えば、インクリメント又
はデクリメント)させることを含む。
変数「トータル」は、第2の部分が符号化されたデータ値のサブセットに関して検出さ
れたインスタンスの総数の例を表す。
上記実施形態は、データ値の配列をデータセット及びデータセットにより符号化されな
い値に対するα符号化部分と非α符号化部分とを含むエスケープコードとして符号化する
データ符号化方法の例も表す。当該データ符号化方法は、(ゴロムライス又は指数ゴロム
における;kは最小サフィックス長又は次数を示す)非α符号化部分のビットの最小数を
定義する0から所定の上限値までの範囲の符号化パラメータ(例えば、param_offset)を
設定し、最下位データ部分サイズの最小値を定義するように1以上のオフセット値(本例
ではparam_offset)を符号化パラメータに追加し、各データ値の少なくとも1つの最下位
ビットの値を符号化するようにデータ値の配列に関する所定の重要度の範囲のデータ値の
位置を示す1つ又は複数のデータセット(例えば、重要性マップ、2以上マップ、3以上
マップ)を生成し、値の最上位データ部分がゼロ又は当該部分の最上位部分を表し、各最
下位データ部分が最小の最下位データ部分サイズ以上の当該部分の最下位ビットの数によ
って決まるように、少なくとも1つ又は複数のデータセットで符号化されない各データ値
の部分から、補足の最上位データ部分及び最下位データ部分をそれぞれ生成し、データセ
ットを出力データストリームに(例えば、バイナリ符号化データとして)符号化し、最上
位データ部分を出力データストリームに(例えば、プレフィックスとして)符号化し、最
下位部分を出力データストリームに(例えば、サフィックスとして)符号化することを含
む。
なお、(いくつかの実施形態において)上記処理は、(処理を行う)データ値が各入力
値から、入力値の配列に関連する非ゼロ入力値の位置を示す重要性マップである別のデー
タセットを生成し、各入力値から1を減算して各データ値を生成することで生成されるよ
うに、重要性マップの生成後に実行することができる。
図38及び図39は、変換ダイナミックレンジ及びデータ精度パラメータを選択する処
理を概略的に示すフローチャートである。
図38を参照して、上述のように、ステップ2400で最大ダイナミックレンジ及び/
又は変換行列のデータ精度等のパラメータが各画像又はビデオ要素のビットデプスに従っ
て選択される。ステップ2410において、異なるビットデプスの画像又はビデオ要素を
有する入力画像又は出力画像に対して、全ての画像又はビデオ要素で使用するための1組
の最大ダイナミックレンジ及び/又は変換行列のデータ精度が選択される。
図39を参照して、ステップ2420はステップ2410と同様であるが、1組の最大
ダイナミックレンジ及び/又は変換行列のデータ精度が最大ビットデプスを有する画像又
はビデオ要素の1つに関する値として選択されるという特徴をさらに有する。
本発明の実施形態は、周波数変換入力画像係数の配列に依存する入力データ値のシーケ
ンスに関して動作してもよい。
上述の実施形態は、以下の番号付けされた項によって定義される。
1.データ値のシーケンスを符号化する方法であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残り
の最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力
データ値からそれぞれ生成し、
所定の重要度の最上位データ部分の上記値の配列に関連する位置を示す1つ又は複数の
データセットを生成し、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに低重要位置を定義するデータを含める
符号化方法。
2.上記1に記載の符号化方法であって、
上記データセットの1つは、非ゼロである最上位データ部分のデータ値に関連する位置
を示す重要性マップである
符号化方法。
3.上記2に記載の符号化方法であって、
上記重要性マップは、値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位
データ部分の位置を示すデータフラグを含む
符号化方法。
4.上記2又は3に記載の符号化方法であって、
上記データセットは、2以上の最上位データ部分の値の配列に関連する位置を示す2以
上マップと、3以上の最上位データ部分の値の配列に関連する位置を示す3以上マップと
を含む
符号化方法。
5.上記1に記載の符号化方法であって、
上記データセットは、1以上の最上位データ部分の値の配列に関連する位置を示す2以
上マップと、2以上の最上位データ部分の値の配列に関連する位置を示す3以上マップと
を含む
符号化方法。
6.上記5に記載の符号化方法であって、
非ゼロ値の値に関連する位置を示す重要性マップである他のデータセットを生成するこ
とをさらに含む
符号化方法。
7.上記6に記載の符号化方法であって、
上記重要性マップは、値の配列の所定の順番に従って、非ゼロ値を有する最後の最上位
データ部分の位置を示すデータフラグを含む
符号化方法。
8.上記1〜7のいずれか1つに記載の符号化方法であって、
上記出力データストリームに低重要位置を定義するデータを含めることは、上記最下位
データ部分を表すシンボルがコード値範囲の比率に従って符号化される算術符号化により
、上記最下位データ部分を符号化することを含み、
上記最下位データ部分を表す上記各シンボルに対する上記コード値範囲の上記比率はそ
れぞれ等しいサイズである
符号化方法。
9.上記1〜7のいずれか1つに記載の符号化方法であって、
上記出力データストリームに低重要位置を定義するデータを含めることは、上記出力デ
ータストリーム内に上記最下位データ部分をRAWデータとして直接含めることを含む
符号化方法。
10.上記1〜9のいずれか1つに記載の符号化方法であって、
上記データ値のシーケンスは、画像データビットデプスを有する画像データを表し、
上記符号化方法は、さらに、各最上位データ部分における上記複数の最上位ビットとし
て使用するビットの数を上記画像データビットデプスと等しくなるように設定することを
含む
符号化方法。
11.上記1〜10のいずれか1つに記載の符号化方法であって、
上記データ値のシーケンスは、周波数変換画像係数のシーケンスを含む
符号化方法。
12.上記11に記載の符号化方法であって、
上記周波数変換入力画像係数は、利用可能な様々な量子化パラメータから選択された変
数量子化パラメータに従って量子化された周波数変換入力画像係数であり、
上記符号化方法は、さらに、上記利用可能な量子化パラメータの範囲の第1の所定のサ
ブレンジにおける量子化パラメータを用いて生成された係数に対して、上記最上位データ
部分及び上記最下位データ部分に従って上記周波数変換入力画像係数の配列を符号化し、
上記利用可能な量子化パラメータの範囲の上記第1の所定のサブレンジにない量子化パ
ラメータを用いて生成された係数に対して、各最上位データ部分におけるビットの数が当
該係数のビットの数と等しくなり、各最下位データ部分がビットを含まないように上記周
波数変換入力画像係数の配列を符号化することを含む
符号化方法。
13.上記12に記載の符号化方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従って
データ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列
を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択する
符号化方法。
14.上記13に記載の符号化方法であって、
上記選択は、
上記変換行列の上記データ精度を上記入力画像データの上記ビットデプスよりも小さ
い第1のビットオフセット数に設定することと、
上記変換データの上記最大ダイナミックレンジを上記入力画像データの上記ビットデ
プスよりも大きい第2のビットオフセット数に設定することとを含む
符号化方法。
15.上記14に記載の符号化方法であって、
上記第1のビットオフセット数は2に等しく、上記第2のビットオフセット数は5に等
しい
符号化方法。
16.上記13〜15のいずれか1つに記載の符号化方法であって、
ソース変換行列から、それぞれ異なる必要とされるデータ精度で変換行列を得ることを
さらに含む
符号化方法。
17.上記1〜16のいずれか1つに記載の符号化方法であって、
上記符号化は、
範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの1つを
符号化のためのデータセットの現在の入力データ値に従って選択することと、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当てること
と、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記
一連のコード値を修正することと、
上記一連のコード値を定義する上記範囲変数が、所定の最小サイズより小さいか否か
を検出し、小さい場合、上記一連のコード値が少なくとも上記所定の最小サイズとなるま
で上記範囲変数を連続的に増加させ、そのようなサイズ増加動作に応答して符号化データ
ビットを出力することと、
1群の入力データ値を符号化した後、ゼロに等しい少なくとも1つの最下位ビットを
含む利用可能な範囲変数値の所定のサブセットから選択された値に上記範囲変数を設定す
ることと
を含む
符号化方法。
18.上記17に記載の符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付け
られたコンテキスト変数によって定義される
符号化方法。
19.上記18に記載の符号化方法であって、
データ値の符号化に続いて、上記現在のデータ値のために選択された上記サブレンジに
おける上記一連のコード値の比率を増加させるように、次の入力データ値に関して使用す
るために上記コンテキスト変数を修正することを含む
符号化方法。
20.上記17〜19のいずれか1つに記載の符号化方法であって、
上記一連のコード値は、0から上限値までの範囲にある値を含み、上記上限値は、上記
範囲変数で定義され256から510までの範囲にある
符号化方法。
21.上記20に記載の符号化方法であって、
上記範囲変数の利用可能な値のサブセットは、256の値を有する
符号化方法。
22.上記20に記載の符号化方法であって、
上記利用可能な値のサブセットは、256と384の組を含み、
上記範囲変数の設定は、上記サブセットから上記範囲変数の現在の値に従って値を選択
し、上記範囲変数の現在の値が256から383までの範囲にある場合、上記範囲変数を
256に設定し、上記範囲変数の現在の値が384から510までの範囲にある場合、上
記範囲変数を384に設定することを含む。
符号化方法。
23.上記20に記載の符号化方法であって、
上記利用できる値のサブセットは、256,320,384、及び448の組を含み、
上記範囲変数の設定は、上記範囲変数の現在の値に従って上記サブセットから値を選択
し、上記範囲変数の現在の値が256から319までの範囲にある場合、上記範囲変数を
256に設定し、上記範囲変数の現在の値が320から383までの範囲にある場合、上
記範囲変数を320に設定し、上記範囲変数の現在の値が384から447までの範囲に
ある場合、上記範囲変数を384に設定し、上記範囲変数の現在の値が448から510
までの範囲にある場合、上記範囲変数を448に設定することを含む
符号化方法。
24.上記17〜23のいずれか1つに記載の符号化方法であって、
データセットにおいてバイパスデータとして表されない値を示すデータを符号化し、
現在の配列と関連付けられたバイパスデータの量を検出し、
上記バイパスデータの量が閾値を超える場合、上記設定を適用し、それ以外の場合、上
記設定を適用しない
符号化方法。
25.上記17〜24のいずれか1つに記載の符号化方法であって、
上記データは、データ値の複数の配列を含む変換ユニットとして符号化され、
上記符号化方法はさらに、変換ユニットの符号化の終了時に、上記設定を適用すること
を含む
符号化方法。
26.画像データを符号化する方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従って
データ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列
を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択する
符号化方法。
27.上記1〜26のいずれか1つに記載の符号化方法により符号化された画像データ。
28.上記27に記載のビデオデータを記憶するデータキャリア。
29.データ値の配列を提供するためのデータを復号化するデータ復号化方法であって、
入力データストリームから上記データ値の最下位データ部分及び1つ又は複数の符号化
データセットを分離し、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分
を生成し、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、
各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が
当該データの残りの最下位ビットを表すように、上記データ値を生成する
データ復号化方法。
30.画像データ復号化方法であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレン
ジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配
列を生成し、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択する
31.コンピュータによって実行される際に、上記コンピュータに上記1〜30のいずれ
か1つに記載の方法を実行させるコンピュータソフトウェア。
32.上記31に記載のコンピュータソフトウェアが記憶された非一時的な機械可読記憶
媒体。
33.データ値のシーケンスを符号化するデータ符号化装置であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残り
の最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力
データ値からそれぞれ生成し、所定の重要度の最上位データ部分の上記値の配列に関連す
る位置を示す1つ又は複数のデータセットを生成するように構成された生成部と、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに低重要位置を定義するデータを含めるエンコーダと
を具備するデータ符号化装置。
34.画像データを符号化するデータ符号化装置であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従って
データ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列
を生成するように構成された周波数変換部と、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択するように構成された選択部と
を具備するデータ符号化装置。
35.データを復号化してデータ値の配列を提供するデータ復号化装置であって、
入力データストリームから、データ値の最下位データ部分及び1つ又は複数の符号化デ
ータセットを分離するように構成されたデータ分離部と、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分
を生成するように構成されたデコーダと、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、
各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が
当該データの残りの最下位ビットを表すように、上記データ値を生成するように構成され
た結合部と
を具備するデータ復号化装置。
36.画像データ復号化装置であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレン
ジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配
列を生成するように構成された周波数変換部と、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択するように構成された選択部と
を具備する画像データ復号化装置。
37.上記33〜36のいずれか1つに記載の装置を具備するビデオデータキャプチャ・
送信・表示及び/又は記憶装置。
他の実施形態は、以下の番号付けされた項によって定義される。
1. 符号化のためのデータセットの入力データ値のデータ符号化方法であって、
現在の入力データ値に従って、範囲変数により定義される一連のコード値の複数の補足
サブレンジのうちの1つを選択し、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当て、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記一
連のコード値を修正し、
上記一連のコード値を定義する上記範囲変数が所定の最小サイズより小さいか否かを検
出し、上記範囲変数が上記所定の最小サイズより小さい場合、上記一連のコード値が少な
くとも上記所定の最小サイズになるまで上記範囲変数を連続的に増加させ、当該サイズ増
加動作に応じて、符号化データビットを出力し、
1群の入力データ値を符号化した後、上記範囲変数をゼロに等しい少なくとも1つの最
下位ビットを有する所定の利用可能な範囲変数値のサブセットから選択された値に設定す

データ符号化方法。
2.上記1に記載のデータ符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付け
られたコンテキスト変数により定義される
データ符号化方法。
3.上記2に記載のデータ符号化方法であって、
入力データ値を符号化した後、次の入力データ値に関して使用するために、上記現在の
入力データ値のために選択された上記サブレンジ内の上記一連のコード値の比率を増加さ
せるように上記コンテキスト変数を修正する
データ符号化方法。
4.上記1〜3のいずれか1つに記載のデータ符号化方法であって、
上記一連のコード値は、0から上限値までの範囲の値を含み、
上記上限値は、上記範囲変数で定義され、上記所定の最小サイズから第2の所定値まで
の範囲にある
データ符号化方法。
5.上記4に記載のデータ符号化方法であって、
上記所定の最小サイズは256であり、上記第2の所定値は510である
データ符号化方法。
6.上記1〜5のいずれか1つに記載のデータ符号化方法であって、
上記利用可能な範囲変数値のサブセットは、上記所定の最小サイズを含む
データ符号化方法。
7.上記1〜5のいずれか1つに記載のデータ符号化方法であって、
上記サブセットは、上記所定の最小サイズから上記第2の所定値までの範囲にある2つ
以上の値を含む
データ符号化方法。
8.上記7に記載のデータ符号化方法であって、
上記設定は、上記範囲変数の現在の値に従って、上記サブセットから1つの値を選択す
ることを含む
データ符号化方法。
9.上記7に記載のデータ符号化方法であって、
上記設定は、上記範囲変数の上記現在の値が特定の値から上記サブセット内の次に高い
値より1低い値までの範囲にある場合、上記サブセットから上記特定の値を選択すること
を含む
データ符号化方法。
10.上記1〜9のいずれか1つに記載のデータ符号化方法であって、
データセット内で表されない係数を表すデータをバイパスデータとして符号化し、
現在の配列と関連付けられた上記バイパスデータの量を検出し、
上記バイパスデータの量が閾値を超えた場合、上記設定を適用するが、上記バイパスデ
ータの量が上記閾値以下である場合、上記設定を適用しない
データ符号化方法。
11.上記1〜10のいずれか1つに記載のデータ符号化方法であって、
上記入力データ値は、画像データを表し、
上記画像データは、係数の複数の配列を含む変換ユニットとして符号化され、
上記変換ユニットの符号化の終了時に、上記設定を適用する
データ符号化方法。
12.上記1〜11のいずれか1つに記載のデータ符号化方法によって符号化されるデー
タ。
13.上記12に記載のビデオデータを記憶するデータキャリア。
14.符号化のためのデータセットの入力データ値を符号化するデータ符号化装置であっ
て、
現在の入力データ値に従って範囲変数で定義される一連のコード値の複数の補足サブレ
ンジのうちの1つを選択し、上記現在の入力データ値を上記選択されたサブレンジ内のコ
ード値に割り当てるように構成された選択部と、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて、上記
一連のコード値を修正するように構成された修正部と、
上記一連のコード値を定義する上記範囲変数が所定の最小サイズより小さいか否かを検
出し、小さい場合、上記一連のコード値のサイズが少なくとも当該所定の最小サイズとな
るまで上記範囲変数を連続的に増加させるように構成され、各サイズ増加動作に応答して
符号化データビットを出力する検出部と、
1群の入力データ値を符号化した後、上記範囲変数をゼロに等しい少なくとも1つの最
下位ビットを有する利用可能な範囲変数値の所定のサブセットから選択された値に設定す
るように構成された範囲変数設定部と
を具備するデータ符号化装置。
15.上記14に記載のデータ符号化装置を含む、ビデオデータキャプチャ・送信及び又
は記憶装置。
他の実施形態は、以下の番号付けされた項によって定義される。
データ値の配列を符号化するデータ符号化方法であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が当該
値の残りの最下位ビットによって決まるように、補足の最上位データ部分及び最下位デー
タ部分を上記入力データ値からそれぞれ生成し、
所定の重要度範囲の最上位データ部分の上記値の配列に関連する位置を示す1つ又は複
数のデータセットを生成し、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに上記最下位データ部分を定義するデータを含める
データ符号化方法。
2.上記1に記載のデータ符号化方法であって、
上記データセットの1つは、データ値の配列に関連する非ゼロである最上位データ部分
の位置を示す重要性マップである
データ符号化方法。
3.上記2に記載のデータ符号化方法であって、
上記重要性マップは、データ値の配列の所定の順番に従って、非ゼロ値を有する最後の
最上位データ部分の位置を示すデータフラグを含む
データ符号化方法。
4.上記2又は3に記載のデータ符号化方法であって、
上記データセットは、
2以上の最上位データ部分のデータ値の配列に関連する位置を示す2以上マップと、
3以上の最上位データ部分のデータ値の配列に関連する位置を示す3以上マップと
を含む
データ符号化方法。
5.上記1に記載のデータ符号化方法であって、
上記データセットは、
1以上の最上位データ部分の値の配列に関連する位置を示す2以上マップと、
2以上の最上位データ部分の値の配列に関連する位置を示す3以上マップとを含む
データ符号化方法。
6.上記5に記載のデータ符号化方法であって、
入力値の配列に関連する非ゼロ入力値の位置を示す重要性マップである他のデータセ
ットを生成し、
各入力値から1を減算して各データ値を生成する
ことによって、各入力値からデータ値を生成する
データ符号化方法。
7.上記5又は6に記載のデータ符号化方法であって、
上記重要性マップは、上記入力値の配列の所定の順番に従って、非ゼロ値を有する最後
の入力値の位置を示すデータフラグを含む
データ符号化方法。
8.上記1〜7のいずれか1つに記載のデータ符号化方法であって、
上記出力データストリームに上記最下位データ部分を定義するデータを含めることは、
上記最下位データ部分を表すシンボルがコード値範囲の比率に従って符号化される算術符
号化により、上記最下位データ部分を符号化することを含み、
上記最下位データ部分を表す各シンボルに対する上記コード値範囲の比率はそれぞれ等
しいサイズである
データ符号化方法。
9.上記1〜8のいずれか1つに記載のデータ符号化方法であって、
上記出力データストリームに上記最下位データ部分を定義するデータを含めることは、
上記出力データストリーム内に上記最下位データ部分をRAWデータとして直接含めるこ
とを含む
データ符号化方法。
10.上記1〜9のいずれか1つに記載のデータ符号化方法であって、
上記データ値のシーケンスは、画像データビットデプスを有する画像データを表し、
上記データ符号化方法は、さらに、各最上位データ部分における上記複数の最上位ビッ
トとして使用するビットの数を上記画像データビットデプスと等しくなるように設定する
ことを含む
データ符号化方法。
11.上記1〜10のいずれか1つに記載のデータ符号化方法であって、
上記データ値のシーケンスは、周波数変換画像係数のシーケンスを表す
データ符号化方法。
12.上記11に記載のデータ符号化方法であって、
上記周波数変換入力画像係数は、利用可能な様々な量子化パラメータから選択された変
数量子化パラメータに従って量子化された周波数変換入力画像係数であり、
上記データ符号化方法は、さらに、上記利用可能な様々な量子化パラメータの第1の所
定のサブレンジにおける量子化パラメータを用いて生成された係数に対して、上記最上位
データ部分及び上記最下位データ部分に従って上記周波数変換入力画像係数の配列を符号
化し、上記利用可能な様々な量子化パラメータの上記第1の所定のサブレンジにない量子
化パラメータを用いて生成された係数に対して、各最上位データ部分におけるビットの数
が当該係数のビットの数と等しくなり、各最下位データ部分がビットを含まないように上
記周波数変換入力画像係数の配列を符号化することを含む
データ符号化方法。
13.上記11に記載のデータ符号化方法であって、
入力画像データを周波数変換して、上記変換されたデータの最大ダイナミックレンジに
従ってデータ精度を有する変換行列を用いて、行列乗算処理により周波数変換入力画像係
数の配列を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列のデータ精度を選択する
データ符号化方法。
14.上記13に記載のデータ符号化方法であって、
上記選択は、
上記変換行列のデータ精度を上記入力画像データの上記ビットデプスよりも小さい第
1のビットオフセット数に設定することと、
上記変換されたデータの最大ダイナミックレンジを上記入力画像データの上記ビット
デプスよりも大きい第2のビットオフセット数に設定することとを含む
データ符号化方法。
15.上記14に記載のデータ符号化方法であって、
上記第1のビットオフセット数は2に等しく、上記第2のビットオフセット数は5に等
しい
データ符号化方法。
16.上記14に記載のデータ符号化方法であって、
上記第1のビットオフセット数は2に等しく、上記第2のビットオフセット数は6に等
しい
データ符号化方法。
17.上記14に記載のデータ符号化方法であって、
上記第2のビットオフセット数は上記変換行列の行列サイズに依存する
データ符号化方法。
18.上記13〜17のいずれか1つに記載のデータ符号化方法であって、
各ソース変換行列からそれぞれ異なる必要なデータ精度で変換行列を得る
データ符号化方法。
19.データ値の配列をデータセット及び上記データセットで符号化されない値に対する
α符号化部分と非α符号化部分とを含むエスケープコードとして符号化するデータ符号化
方法であって、
非α符号化部分のビットの最小数を定義する、0から所定の上限値までの範囲にある符
号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、上記符号化パラメータに1以上のオ
フセット値を追加し、
各データ値の少なくとも1つの最下位ビットの値を符号化するように、データ値の配列
に関連する所定の重要度範囲のデータ値の位置を示す1つ又は複数のデータセットを生成
し、
少なくとも上記1つ又は複数のデータセットによって符号化されない各データ値の部分
から、値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、最下位データ部
分が上記最下位データ部分サイズ以上の当該部分の最下位ビットの数を表すように、補足
の最上位データ部分及び最下位データ部分を生成し、
上記データセットを出力データストリームに符号化し、
上記最上位データ部分を上記出力データストリームに符号化し、
上記最下位データ部分を上記出力データストリームに符号化する
データ符号化方法。
20. 上記19に記載のデータ符号化方法であって、
上記最上位データ部分の上記出力データストリームにおける符号化は、上記最上位デー
タ部分をα符号により上記出力データストリームに符号化することを含み、
上記最下位データ部分の上記出力データストリームにおける符号化は、上記最下位デー
タ部分を非α符号により上記出力データストリームに符号化することを含む
データ符号化方法。
21.上記19又は20に記載のデータ符号化方法であって、
上記データセットの上記出力データストリームにおける符号化は、上記データセットを
バイナリコードにより上記出力データストリームに符号化することを含む
データ符号化方法。
22.上記19〜21のいずれか1つに記載のデータ符号化方法であって、
上記設定は、上記配列における現在のデータ値の重要度に基づいて上記符号化パラメー
タをインクリメントすることを含む
データ符号化方法。
23.上記20〜22のいずれか1つに記載のデータ符号化方法であって、
上記最上位データ部分及び上記最下位データ部分の符号化は、上記最上位データ部分及
び上記最下位データ部分をゴロムライス符号又は指数ゴロム符号により符号化することを
含む
データ符号化方法。
24.上記23に記載のデータ符号化方法であって
上記ゴロムライス符号のサフィックス長は、上記最小の最下位データ部分サイズに等し
く、
上記指数ゴロム符号は、上記最小の最下位データ部分サイズに等しい次数を有する
データ符号化方法。
25.上記19〜24のいずれか1つに記載のデータ符号化方法であって、
上記データ値の配列のパラメータに基づいて上記オフセット値を生成する
データ符号化方法。
26.上記25に記載のデータ符号化方法であって、
上記データ値の配列のパラメータは、
上記配列におけるデータ値の数と、
上記データ値によって表されるデータの種類と、
上記データ値の配列に適用可能な量子化パラメータと、
符号化モードと
からなる群から選択された1つ又は複数のパラメータを含む
データ符号化方法。
27.上記19〜26のいずれか1つに記載のデータ符号化方法であって、
上記オフセット値を定義するデータヘッダにデータを含める
データ符号化方法。
28.上記1に記載のデータ符号化方法であって、
上記符号化は、
範囲変数によって定義される一連のコード値の複数の補足サブレンジのうちの1つを
符号化のためのデータセットの現在の入力データ値に従って選択することと、
上記現在の入力データ値を上記選択されたサブレンジ内のコード値に割り当てること
と、
上記割り当てられたコード値及び上記選択されたサブレンジのサイズに基づいて上記
一連のコード値を修正することと、
上記一連のコード値を定義する上記範囲変数が、所定の最小サイズより小さいか否か
を検出し、小さい場合、上記一連のコード値が少なくとも上記所定の最小サイズとなるま
で上記範囲変数を連続的に増加させ、そのようなサイズ増加動作に応答して符号化データ
ビットを出力することと、
1群の入力データ値を符号化した後、ゼロに等しい少なくとも1つの最下位ビットを
含む利用可能な範囲変数値の所定のサブセットから選択された値に上記範囲変数を設定す
ることと
を含む
データ符号化方法。
29.上記28に記載のデータ符号化方法であって、
上記一連のコード値に関連する上記サブレンジの比率は、上記入力データ値に関連付け
られたコンテキスト変数によって定義される
データ符号化方法。
30.上記29に記載のデータ符号化方法であって、
データ値の符号化に続いて、上記現在のデータ値のために選択された上記サブレンジに
おける上記一連のコード値の比率を増加させるように、次の入力データ値に関して使用す
るために上記コンテキスト変数を修正する
データ符号化方法。
31.上記28〜30のいずれか1つに記載のデータ符号化方法であって、
上記一連のコード値は、0から上限値までの範囲にある値を含み、上記上限値は、上記
範囲変数で定義され256から510までの範囲にある
データ符号化方法。
32.上記31に記載のデータ符号化方法であって、
上記範囲変数の利用可能な値のサブセットは、256の値を有する
データ符号化方法。
33.上記31に記載のデータ符号化方法であって、
上記利用可能な値のサブセットは、256と384の組を含み、
上記範囲変数の設定は、上記サブセットから上記範囲変数の現在の値に従って値を選択
し、上記範囲変数の現在の値が256から383までの範囲にある場合、上記範囲変数を
256に設定し、上記範囲変数の現在の値が384から510までの範囲にある場合、上
記範囲変数を384に設定することを含む
データ符号化方法。
34.上記31に記載のデータ符号化方法であって、
上記利用できる値のサブセットは、256,320,384、及び448の組を含み、
上記範囲変数の設定は、上記範囲変数の現在の値に従って上記サブセットから値を選択
し、上記範囲変数の現在の値が256から319までの範囲にある場合、上記範囲変数を
256に設定し、上記範囲変数の現在の値が320から383までの範囲にある場合、上
記範囲変数を320に設定し、上記範囲変数の現在の値が384から447までの範囲に
ある場合、上記範囲変数を384に設定し、上記範囲変数の現在の値が448から510
までの範囲にある場合、上記範囲変数を448に設定することを含む
データ符号化方法。
35.上記28〜34のいずれか1つに記載のデータ符号化方法であって、
データセットにおいてバイパスデータとして表されない値を示すデータを符号化し、
現在の配列と関連付けられたバイパスデータの量を検出し、
上記バイパスデータの量が閾値を超える場合、上記設定を適用し、それ以外の場合、上
記設定を適用しない
データ符号化方法。
36.上記28〜35のいずれか1つに記載のデータ符号化方法であって、
上記データは、データ値の複数の配列を含む変換ユニットとして符号化され、
上記データ符号化方法はさらに、変換ユニットの符号化の終了時に、上記設定を適用す
ることを含む
データ符号化方法。
37.画像データを符号化するデータ符号化方法であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従って
データ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列
を生成し、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択する
データ符号化方法。
38.上記37に記載のデータ符号化方法であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択は、全ての
画像要素で使用するための1組の上記最大ダイナミックレンジ及び/又は上記変換行列の
データ精度を選択することを含む
データ符号化方法。
39.上記38に記載のデータ符号化方法であって、
上記選択は、上記1組の最大ダイナミックレンジ及び/又は変換行列のデータ精度とし
て、最大ビットデプスを有する画像要素の1つに関する値を選択することを含む
データ符号化方法。
40.上記1〜39のいずれか1つに記載のデータ符号化方法により符号化された画像デ
ータ。
41.上記40に記載の画像データを記憶するデータキャリア。
42.データ値の配列を提供するためのデータを復号化するデータ復号化方法であって、
入力データストリームから上記データ値の最下位データ部分及び1つ又は複数の符号化
データセットを分離し、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分
を生成し、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、
各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が
当該データの残りの最下位ビットを表すように、上記データ値を生成する
データ復号化方法。
43.データセット及び上記データセットで符号化されない値に対するα符号化部分及び
非α符号化部分を含むエスケープコードとして符号化される入力データを復号化してデー
タ値の配列を提供するデータ復号化方法であって、
非α符号化部分のビットの最小数を定義する0から所定の上限値までの範囲にある符号
化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、1以上のオフセット値を上記符号化
パラメータに追加し、
各データ値の少なくとも1つの最下位ビットの値を復号化するように、上記データ値の
配列に関する所定の重要度範囲のデータ値の位置を示す1つ又は複数のデータセットを復
号化し、
値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、上記最下位データ部
分が当該部分の上記最小の最下位データ部分サイズ以上の最下位ビットの数を表すように
、上記α符号化部分及び上記非α符号化部分並びに補足の最上位データ部分及び最下位デ
ータ部分から、少なくとも上記1つ又は複数のデータセットによって符号化されない各デ
ータ値の部分を復号化する
データ復号化方法。
44.画像データ復号化方法であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレン
ジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配
列を生成し、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列のデータ精度を選択する
画像データ復号化方法。
45.上記44に記載の画像データ復号化方法であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択は、全ての
画像要素で使用するための1組の上記最大ダイナミックレンジ及び/又は上記変換行列の
データ精度を選択することを含む
画像データ復号化方法。
46.上記45に記載の画像データ復号化方法であって、
上記選択は、上記1組の最大ダイナミックレンジ及び/又は変換行列のデータ精度とし
て、最大ビットデプスを有する画像要素の1つに関する値を選択することを含む
画像データ復号化方法。
47.コンピュータによって実行される際に、上記コンピュータに上記1〜39及び42
〜46のいずれか1つに記載の方法を実行させるコンピュータソフトウェア。
48.上記47に記載のコンピュータソフトウェアが記憶された非一時的な機械可読記憶
媒体。
49.データ値のシーケンスを符号化するデータ符号化装置であって、
値の最上位データ部分が当該値の複数の最上位ビットを表し、最下位データ部分が残り
の最下位ビットを表すように、補足の最上位データ部分及び最下位データ部分を上記入力
データ値からそれぞれ生成し、所定の重要度範囲の最上位データ部分の上記値の配列に関
連する位置を示す1つ又は複数のデータセットを生成するように構成された生成部と、
バイナリ符号化により、出力データストリームに対して上記データセットを符号化し、
上記出力データストリームに最下位位置を定義するデータを含めるエンコーダと
を具備するデータ符号化装置。
50.データ値の配列をデータセット及び上記データセットで符号化されない値に対する
α符号化部分と非α符号化部分とを含むエスケープコードとして符号化するデータ符号化
装置であって、
非α符号化部分のビットの最小数を定義する、0から所定の上限値までの範囲にある
符号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、上記符号化パラメータに1以上の
オフセット値を追加し、
各データ値の少なくとも1つの最下位ビットの値を符号化するように、データ値の配
列に関連する所定の重要度範囲のデータ値の位置を示す1つ又は複数のデータセットを生
成し、
少なくとも上記1つ又は複数のデータセットによって符号化されない各データ値の部
分から、値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、最下位データ
部分が上記最下位データ部分サイズ以上の当該部分の最下位ビットの数を表すように、補
足の最上位データ部分及び最下位データ部分を生成する
ように構成されたプロセッサと、
上記データセットを出力データストリームに符号化し、
上記最上位データ部分を上記出力データストリームに符号化し、
上記最下位データ部分を上記出力データストリームに符号化する
ように構成されたエンコーダと
を具備するデータ符号化装置。
51.画像データを符号化するデータ符号化装置であって、
入力画像データを周波数変換して、上記変換データの最大ダイナミックレンジに従って
データ精度を有する変換行列を用いて行列乗算処理により周波数変換入力画像係数の配列
を生成するように構成された周波数変換部と、
上記入力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列のデータ精度を選択するように構成された選択部と
を具備するデータ符号化装置。
52.上記51に記載のデータ符号化装置であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択部は、全て
の画像要素で使用するための1組の上記最大ダイナミックレンジ及び/又は上記変換行列
のデータ精度を選択するように構成される
データ符号化装置。
53.上記52に記載のデータ符号化装置であって、
上記選択部は、上記1組の最大ダイナミックレンジ及び/又は上記変換行列のデータ精
度として、最大ビットデプスを有する画像要素の1つに関する値を選択するように構成さ
れる
データ符号化装置。
54.データを復号化してデータ値の配列を提供するデータ復号化装置であって、
入力データストリームから、データ値の最下位データ部分及び1つ又は複数の符号化デ
ータセットを分離するように構成されたデータ分離部と、
バイナリ復号化により上記データセットを復号化して上記データ値の最上位データ部分
を生成するように構成されたデコーダと、
上記最上位データ部分と上記最下位データ部分とを組み合わせて、データ値に対して、
各最上位データ部分が当該データ値の複数の最上位ビットを表し、各最下位データ部分が
当該データの残りの最下位ビットを表すように、上記データ値を生成するように構成され
た結合部と
を具備するデータ復号化装置。
55.データセット及び上記データセットで符号化されない値に対するα符号化部分及び
非α符号化部分を含むエスケープコードとして符号化される入力データを復号化してデー
タ値の配列を提供するデータ復号化装置であって、
非α符号化部分のビットの最小数を定義する0から所定の上限値までの範囲にある符
号化パラメータを設定し、
最小の最下位データ部分サイズを定義するように、1以上のオフセット値を上記符号
化パラメータに追加し、
各データ値の少なくとも1つの最下位ビットの値を復号化するように、上記データ値
の配列に関する所定の重要度範囲のデータ値の位置を示す1つ又は複数のデータセットを
復号化し、
値の最上位データ部分がゼロ又は当該部分の最上位ビットを表し、上記最下位データ
部分が当該部分の上記最小の最下位データ部分サイズ以上の最下位ビットの数を表すよう
に、上記α符号化部分及び上記非α符号化部分並びに補足の最上位データ部分及び最下位
データ部分から、少なくとも上記1つ又は複数のデータセットによって符号化されない各
データ値の部分を復号化する
ように構成されたプロセッサ
を具備するデータ復号化装置。
56.画像データ復号化装置であって、
入力周波数変換画像データを周波数変換して、上記変換データの最大ダイナミックレン
ジに従ってデータ精度を有する変換行列を用いて行列乗算処理により出力画像データの配
列を生成するように構成された周波数変換部と、
上記出力画像データのビットデプスに従って、上記最大ダイナミックレンジ及び/又は
上記変換行列の上記データ精度を選択するように構成された選択部と
を具備する画像データ復号化装置。
57.上記56に記載の画像データ復号化装置であって、
異なるビットデプスの画像要素を有する入力画像データに対して、上記選択部は、全て
の画像要素で使用するための1組の上記最大ダイナミックレンジ及び/又は上記変換行列
のデータ精度を選択するように構成される
画像データ復号化装置。
58.上記57に記載の画像データ復号化装置であって、
上記選択部は、上記1組の最大ダイナミックレンジ及び/又は変換行列のデータ精度と
して、最大ビットデプスを有する画像要素の1つに関する値を選択する
画像データ復号化装置。
59.上記49〜58のいずれか1つに記載の装置を具備するビデオデータキャプチャ・
送信・表示及び/又は記憶装置。
上述のように、上記の項の装置機能は、上述のエンコーダ又はデコーダの機能により実
行されてもよいことが理解されよう。

Claims (12)

  1. 変換係数により表されるビデオの係数であって、他の符号化値で記述されていない残りの係数を符号化する方法であって、
    プレフィックスと組み合わされたとき、サフィックスのビットにおける長さを定義するパラメータ値を用いて、その後に前記サフィックスが続く前記プレフィックスを含む前記残りの係数を生成し、前記パラメータ値は、前の係数グループに含まれる係数における前の符号化状態に基づいて変化され、
    前記係数グループは、順に処理され、
    前記前の係数グループは、同じスライスの一部を形成し、
    前記パラメータ値は、変化を示すためのオフセットが追加され、
    前記パラメータ値のオフセットは、次のスライスでリセットされ、
    オフセットが、全ての係数グループでリセットされないことを確保することによって、前記パラメータ値が変化される
    方法。
  2. 請求項1に記載の方法であって、
    前記前の係数グループは、4×4ブロックの係数である
    方法。
  3. 請求項1に記載の方法であって、
    前記他の符号化値は、重要性マップにより表される
    方法。
  4. 請求項1に記載の方法であって、
    前記残りの係数は、係数値から、前記他の符号化値を記述する重要性マップに関する基準レベル値を引いた値である
    方法。
  5. 請求項1に記載の方法であって、
    前記他の符号化値を記述する重要性マップに関する基準レベルは、その係数に利用可能な重要性マップの数に依存する
    方法。
  6. 変換係数により表されるビデオの係数であって、他の符号化値で記述されていない残りの係数を符号化するデータ符号化装置であって、
    プレフィックスと組み合わされたとき、サフィックスのビットにおける長さを定義するパラメータ値を用いて、その後に前記サフィックスが続く前記プレフィックスを含む前記残りの係数を生成する処理部を備え、前記パラメータ値は、前の係数グループに含まれる係数における前の符号化状態に基づいて変化され、
    前記係数グループは、順に処理され、
    前記前の係数グループは、同じスライスの一部を形成し、
    前記パラメータ値は、変化を示すためのオフセットが追加され、
    前記パラメータ値のオフセットは、次のスライスでリセットされ、
    オフセットが、全ての係数グループでリセットされないことを確保することによって、前記パラメータ値が変化される
    装置。
  7. 請求項に記載の装置であって、
    前記前の係数グループは、4×4ブロックの係数である
    装置。
  8. 請求項に記載の装置であって、
    前記他の符号化値は、重要性マップにより表される
    装置。
  9. 請求項に記載の装置であって、
    前記残りの係数は、係数値から、前記他の符号化値を記述する重要性マップに関する基準レベル値を引いた値である
    装置。
  10. 請求項に記載の装置であって、
    前記他の符号化値を記述する重要性マップに関する基準レベルは、その係数に利用可能な重要性マップの数に依存する
    装置。
  11. 請求項に記載の装置を含むビデオ処理装置。
  12. 請求項に記載の装置を含むビデオキャプチャ装置であって、
    前記残りの係数をビットストリームにCABAC符号化(CABAC:Context Adaptive Binary Arithmetic Coding)するためのCABACエンコーダと、
    前記ビットストリームを復号化するデコーダと
    を具備する装置。
JP2017083360A 2013-04-08 2017-04-20 データ符号化及び復号化 Active JP6655579B2 (ja)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
GB1306335.9 2013-04-08
GB1306335.9A GB2513111A (en) 2013-04-08 2013-04-08 Data encoding and decoding
GB1307121.2 2013-04-19
GB1307121.2A GB2513186A (en) 2013-04-08 2013-04-19 Data encoding and decoding
GB1312330.2 2013-07-09
GB1312330.2A GB2512955A (en) 2013-04-08 2013-07-09 Data encoding and decoding
GB1320775.8 2013-11-25
GB1320775.8A GB2512966A (en) 2013-04-08 2013-11-25 Data encoding and decoding

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2016507050A Division JP6134055B2 (ja) 2013-04-08 2014-04-04 データ符号化及び復号化

Publications (2)

Publication Number Publication Date
JP2017184239A JP2017184239A (ja) 2017-10-05
JP6655579B2 true JP6655579B2 (ja) 2020-02-26

Family

ID=48483538

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2016507049A Active JP6636909B2 (ja) 2013-04-08 2014-04-04 データ符号化及び復号化
JP2016507050A Active JP6134055B2 (ja) 2013-04-08 2014-04-04 データ符号化及び復号化
JP2017083360A Active JP6655579B2 (ja) 2013-04-08 2017-04-20 データ符号化及び復号化

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2016507049A Active JP6636909B2 (ja) 2013-04-08 2014-04-04 データ符号化及び復号化
JP2016507050A Active JP6134055B2 (ja) 2013-04-08 2014-04-04 データ符号化及び復号化

Country Status (12)

Country Link
US (4) US10136136B2 (ja)
EP (2) EP2984829B1 (ja)
JP (3) JP6636909B2 (ja)
CN (3) CN105103548B (ja)
AU (1) AU2014252876B2 (ja)
BR (1) BR112015025478B1 (ja)
CA (2) CA3096273A1 (ja)
GB (5) GB2513111A (ja)
MX (1) MX352879B (ja)
RU (2) RU2637879C2 (ja)
TW (2) TWI658702B (ja)
WO (2) WO2014167297A1 (ja)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2517416A (en) * 2013-08-15 2015-02-25 Sony Corp Data encoding and decoding
US9521423B2 (en) 2014-06-26 2016-12-13 Sony Corporation Data encoding and decoding apparatus, method and storage medium
CN105592313B (zh) * 2014-10-21 2018-11-13 广东中星电子有限公司 一种分组自适应熵编码压缩方法
FR3029333A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
TW201711475A (zh) * 2015-09-02 2017-03-16 矽創電子股份有限公司 哥倫布-萊斯編碼電路與解碼電路
US11223852B2 (en) 2016-03-21 2022-01-11 Qualcomm Incorporated Coding video data using a two-level multi-type-tree framework
US11368720B2 (en) 2016-05-13 2022-06-21 Sony Corporation Image processing apparatus and method
US9705521B1 (en) * 2016-07-27 2017-07-11 Silicon Laboratories Inc. Noise shaping signed digital-to-analog converter
CN107801033B (zh) * 2016-09-06 2021-05-11 联发科技股份有限公司 应用于数字音视频编解码技术标准系统的解码方法及解码装置
US10848788B2 (en) * 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding
DE102017204946A1 (de) * 2017-03-23 2018-09-27 Volkswagen Aktiengesellschaft Verfahren zur Bestimmung eines Wertes einer Integer-Skalierung in einer Verknüpfung von Eingangsmengen zu Ausgangsmengen und Computerprogrammprodukt
CN107181963B (zh) * 2017-03-31 2019-10-22 武汉斗鱼网络科技有限公司 一种视频压缩方法及装置
CN107094022B (zh) * 2017-04-25 2023-02-10 福州大学 一种用于VLSI设计的Huffman编码系统的实现方法
KR102395669B1 (ko) * 2017-12-05 2022-05-09 한국전자통신연구원 오류 벡터 크기 계산을 기반으로 한 데이터 압축 및 복원 장치와 그 방법
GB2570711B (en) * 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
GB2570710B (en) * 2018-02-05 2022-10-12 Sony Corp Data encoding and decoding
US11109046B2 (en) * 2018-02-14 2021-08-31 Sony Corporation Image processing apparatus and image processing method
WO2020003268A2 (en) * 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Definition of zero unit
US10812102B2 (en) * 2018-06-29 2020-10-20 Apple Inc. Efficient data encoding
US10922026B2 (en) * 2018-11-01 2021-02-16 Fungible, Inc. Data processing unit having hardware-based range encoding and decoding
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) * 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations
US10606775B1 (en) * 2018-12-28 2020-03-31 Micron Technology, Inc. Computing tile
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
KR102639936B1 (ko) 2019-03-08 2024-02-22 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 처리에서 모델-기반 변형에 대한 제약들
US10587286B1 (en) * 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
CN110109615B (zh) * 2019-03-28 2022-08-30 西南电子技术研究所(中国电子科技集团公司第十研究所) 字节流转义字符硬件处理方法
CN110110535B (zh) * 2019-04-24 2021-01-01 湖北工业大学 一种基于像素矩阵的低失真隐写方法
EP3973707A4 (en) 2019-06-22 2022-08-31 Beijing Bytedance Network Technology Co., Ltd. CHROMA REST SCALE SYNTAX ELEMENT
GB2585044A (en) * 2019-06-25 2020-12-30 Sony Corp Image data encoding and decoding
US11218700B2 (en) * 2019-07-01 2022-01-04 Qualcomm Incorporated Minimum allowed quantization parameter for transform skip mode and palette mode in video coding
JP7460748B2 (ja) 2019-07-07 2024-04-02 北京字節跳動網絡技術有限公司 クロマ残差スケーリングのシグナリング
GB2589066B (en) * 2019-10-24 2023-06-28 Advanced Risc Mach Ltd Encoding data arrays
CN115104305A (zh) * 2020-02-12 2022-09-23 谷歌有限责任公司 用于图压缩的多上下文熵编码
JP2021150788A (ja) * 2020-03-18 2021-09-27 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
GB2593778A (en) * 2020-04-03 2021-10-06 Sony Group Corp Video data encoding and decoding
CN111681192B (zh) * 2020-06-09 2022-08-02 天津大学 一种基于残差图像条件生成对抗网络的比特深度增强方法
US11523137B2 (en) * 2020-06-09 2022-12-06 FG Innovation Company Limited Device and method for decoding video data using general constraints information
GB2599447A (en) * 2020-10-05 2022-04-06 Sony Group Corp Data encoding and decoding
US20220086445A1 (en) * 2020-12-03 2022-03-17 Intel Corporation Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding
US20240064303A1 (en) * 2021-04-26 2024-02-22 Yue Yu Bypass alignment in video coding
US11818353B2 (en) * 2021-05-13 2023-11-14 Qualcomm Incorporated Reduced complexity transforms for high bit-depth video coding
US20230101542A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with coding for last significant coefficient
CN115002461B (zh) * 2022-08-03 2023-08-11 杭州微帧信息科技有限公司 一种视频编码量化方法、装置、电子设备和存储介质
CN117498873B (zh) * 2023-11-07 2024-03-29 东莞市杜氏诚发精密弹簧有限公司 一种血管栓塞弹簧组件智能加工系统

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
US7095783B1 (en) * 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
IL129725A (en) 1999-05-02 2011-06-30 Nds Ltd Watermark system
US6396422B1 (en) * 1999-06-09 2002-05-28 Creoscitex Corporation Ltd. Methods for quantizing and compressing digital image data
JP4086424B2 (ja) * 1999-08-31 2008-05-14 キヤノン株式会社 符号化装置
JP2001298739A (ja) * 2000-04-14 2001-10-26 Canon Inc 符号化装置及びその方法
GB0007781D0 (en) * 2000-03-30 2000-05-17 Sony Uk Ltd Data compression
US7185037B2 (en) * 2001-08-23 2007-02-27 Texas Instruments Incorporated Video block transform
US6744387B2 (en) * 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
WO2006004847A2 (en) * 2004-06-30 2006-01-12 Comet Video Technology Method of data compression including compression of video data
US7620103B2 (en) * 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
US20080151885A1 (en) 2005-02-08 2008-06-26 Uwe Horn On-Demand Multi-Channel Streaming Session Over Packet-Switched Networks
JP4468858B2 (ja) * 2005-06-01 2010-05-26 オリンパスイメージング株式会社 データ符号化装置、データ符号化方法、プログラム
GB0524983D0 (en) * 2005-12-07 2006-01-18 Imagination Tech Ltd Recompression and decompression of a data stream for rate smoothing
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
US7884742B2 (en) * 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
KR100831959B1 (ko) 2006-07-31 2008-05-23 티유미디어 주식회사 채널 전환 화면을 제공하는 디지털 방송 시스템 및 그 방법
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
CN101127910B (zh) * 2007-10-08 2013-01-02 威盛电子股份有限公司 编码图块标志参数运算方法和装置
TWI388218B (zh) * 2007-10-30 2013-03-01 Nippon Telegraph & Telephone 影像編碼方法與解碼方法、其程式及記錄有程式的記錄媒體
KR20110003549A (ko) * 2008-04-25 2011-01-12 톰슨 라이센싱 깊이 신호의 코딩
JP4918103B2 (ja) * 2009-01-09 2012-04-18 日本電信電話株式会社 符号化方法、復号方法、それらの装置、プログラム及び記録媒体
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
US8615043B2 (en) * 2010-03-04 2013-12-24 Texas Instruments Incorporated Fixed length coding based image data compression
JP2011193335A (ja) * 2010-03-16 2011-09-29 Sony Corp 画像符号化装置および方法、画像復号化装置および方法、並びにプログラム
US9049450B2 (en) * 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
US9100661B2 (en) * 2010-04-05 2015-08-04 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
KR101885258B1 (ko) * 2010-05-14 2018-08-06 삼성전자주식회사 비디오 신호의 부호화 방법과 그 장치, 및 비디오 복호화 방법과 그 장치
EP2445214A1 (en) * 2010-10-19 2012-04-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video coding using temporally coherent dynamic range mapping
JP2012129827A (ja) 2010-12-15 2012-07-05 Sony Corp 送信装置、送信方法、受信装置および受信方法
US8437581B2 (en) * 2011-03-04 2013-05-07 General Instrument Corporation Method and system for interpolating fractional video pixels
CN107517384B (zh) 2011-06-16 2020-06-30 Ge视频压缩有限责任公司 解码器、编码器、解码方法、编码方法以及存储介质
CN107835431B (zh) * 2011-06-28 2021-05-25 三星电子株式会社 对视频编码的方法和设备以及对视频解码的方法和设备
US9491469B2 (en) * 2011-06-28 2016-11-08 Qualcomm Incorporated Coding of last significant transform coefficient
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
AP2016009466A0 (ja) * 2011-07-15 2016-09-30
CN103650510B (zh) * 2011-07-15 2018-05-22 谷歌技术控股有限责任公司 用于变换系数级编码的上下文建模技术
US9363535B2 (en) * 2011-07-22 2016-06-07 Qualcomm Incorporated Coding motion depth maps with depth range variation
KR101579831B1 (ko) 2011-10-20 2015-12-23 돌비 레버러토리즈 라이쎈싱 코오포레이션 비디오 등화를 위한 방법 및 시스템
GB2496201A (en) 2011-11-07 2013-05-08 Sony Corp Context adaptive data encoding and decoding
EP2779646A4 (en) * 2011-11-07 2015-08-19 Samsung Electronics Co Ltd INVERSE TRANSFORM METHOD FOR REVERSE QUANTIFICATION DATA STRETCHING, REVERSE TRANSFORMATION DURING VIDEO DECODING STEP AND CORRESPONDING DEVICE
GB201119180D0 (en) 2011-11-07 2011-12-21 Sony Corp Data encoding and decoding
CN107257463B (zh) * 2011-11-07 2020-02-28 太阳专利托管公司 图像编码方法和图像编码装置
US9154792B2 (en) * 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
BR112014011151B1 (pt) * 2011-11-09 2023-02-07 Fraunhofer-Gesellschaft zur Förderung der Angewandten Forschung Ev Previsão intercamadas entre camadas de diferentes faixas de valor de amostras dinâmicas
US9743116B2 (en) * 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9749633B2 (en) * 2012-01-19 2017-08-29 Vid Scale, Inc. System and method of video coding quantization and dynamic range control
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
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
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN102801974B (zh) * 2012-07-19 2014-08-20 西安电子科技大学 基于cabac的图像压缩熵编码器
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
WO2015116168A1 (en) * 2014-01-31 2015-08-06 Hewlett-Packard Development Company, L.P. Rendering data invalid in a memory array
JP5836424B2 (ja) 2014-04-14 2015-12-24 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
EP3678359A1 (en) 2014-05-16 2020-07-08 Panasonic Intellectual Property Management Co., Ltd. Converting method and converting apparatus
JP2015217628A (ja) * 2014-05-20 2015-12-07 セイコーエプソン株式会社 液体噴射装置
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding

Also Published As

Publication number Publication date
CN109889835B (zh) 2021-10-29
MX352879B (es) 2017-12-13
JP2017184239A (ja) 2017-10-05
EP2984828B1 (en) 2021-06-16
US20190014322A1 (en) 2019-01-10
GB201320767D0 (en) 2014-01-08
MX2015014134A (es) 2016-04-07
TWI658702B (zh) 2019-05-01
CN105103549A (zh) 2015-11-25
GB2512966A (en) 2014-10-15
US10136136B2 (en) 2018-11-20
RU2751570C2 (ru) 2021-07-15
US20190089959A1 (en) 2019-03-21
EP2984828A1 (en) 2016-02-17
GB201306335D0 (en) 2013-05-22
RU2015147886A (ru) 2017-05-15
US20160353109A1 (en) 2016-12-01
EP2984829B1 (en) 2019-10-30
AU2014252876A1 (en) 2015-09-10
RU2017141156A (ru) 2019-02-13
GB2513186A (en) 2014-10-22
CA3096273A1 (en) 2014-10-16
CN105103548A (zh) 2015-11-25
CN109889835A (zh) 2019-06-14
GB2512965A (en) 2014-10-15
US20160050427A1 (en) 2016-02-18
WO2014167298A1 (en) 2014-10-16
BR112015025478B1 (pt) 2022-12-06
TW201505423A (zh) 2015-02-01
EP2984829A1 (en) 2016-02-17
JP6636909B2 (ja) 2020-01-29
GB2512955A (en) 2014-10-15
TWI685245B (zh) 2020-02-11
RU2017141156A3 (ja) 2020-10-23
GB201320775D0 (en) 2014-01-08
AU2014252876B2 (en) 2016-09-22
US11039142B2 (en) 2021-06-15
TW201511480A (zh) 2015-03-16
CN105103548B (zh) 2019-03-15
GB201307121D0 (en) 2013-05-29
JP2016519515A (ja) 2016-06-30
US10097834B2 (en) 2018-10-09
GB2513111A (en) 2014-10-22
US11463698B2 (en) 2022-10-04
JP6134055B2 (ja) 2017-05-24
JP2016519514A (ja) 2016-06-30
CN105103549B (zh) 2019-03-12
WO2014167297A1 (en) 2014-10-16
GB201312330D0 (en) 2013-08-21
CA2908301A1 (en) 2014-10-16
RU2637879C2 (ru) 2017-12-07
CA2908301C (en) 2020-10-27
BR112015025478A2 (pt) 2017-07-18

Similar Documents

Publication Publication Date Title
JP6655579B2 (ja) データ符号化及び復号化
JP6400092B2 (ja) データ符号化及び復号化
US20220217351A1 (en) Data encoding and decoding
JP2017507519A (ja) データ符号化及び復号化

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170522

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190402

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20191002

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191101

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191210

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200203

R150 Certificate of patent or registration of utility model

Ref document number: 6655579

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