JP5547335B2 - Variable length code for video data coding - Google Patents
Variable length code for video data coding Download PDFInfo
- Publication number
- JP5547335B2 JP5547335B2 JP2013503996A JP2013503996A JP5547335B2 JP 5547335 B2 JP5547335 B2 JP 5547335B2 JP 2013503996 A JP2013503996 A JP 2013503996A JP 2013503996 A JP2013503996 A JP 2013503996A JP 5547335 B2 JP5547335 B2 JP 5547335B2
- Authority
- JP
- Japan
- Prior art keywords
- run
- vlc table
- symbol combination
- video
- level
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 84
- 238000013507 mapping Methods 0.000 claims description 27
- 238000007619 statistical method Methods 0.000 claims description 25
- 230000006978 adaptation Effects 0.000 claims description 17
- 230000033001 locomotion Effects 0.000 description 38
- 239000013598 vector Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000013139 quantization Methods 0.000 description 10
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 230000002123 temporal effect Effects 0.000 description 9
- 101100476210 Caenorhabditis elegans rnt-1 gene Proteins 0.000 description 8
- 238000004891 communication Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 230000000670 limiting effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 241000023320 Luma <angiosperm> Species 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101150115425 Slc27a2 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000003817 vacuum liquid chromatography Methods 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Description
[優先権の主張]
本出願は、その内容全体が参照により本明細書に組み込まれる、2010年4月9日に出願された米国仮出願第61/322,641号の利益を主張する。
[Priority claim]
This application claims the benefit of US Provisional Application No. 61 / 322,641, filed April 9, 2010, the entire contents of which are hereby incorporated by reference.
本開示の態様は概して、ビデオコーディングに関し、より詳細には、ブロックベースのビデオコーディングに関する。 Aspects of the present disclosure relate generally to video coding, and more particularly to block-based video coding.
デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレス通信デバイス、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、ビデオゲームデバイス、セルラー電話または衛星無線電話などを含む、広範囲にわたるデバイスに組み込むことができる。デジタルビデオデバイスは、デジタルビデオをより効率的に送信および受信するために、MPEG−2、MPEG−4、またはH.264/MPEG−4 アドバンスト・ビデオコーディング(Advanced Video Coding)(AVC)など、ビデオ圧縮技法を実装する。ビデオ圧縮技法では、ビデオ信号に固有の冗長性を低減または除去するために空間的予測および時間的予測を実行する。 Digital video capabilities include digital television, digital direct broadcast systems, wireless communication devices, personal digital assistants (PDAs), laptops or desktop computers, digital cameras, digital recording devices, video game devices, cellular phones or satellite radio phones, etc. It can be incorporated into a wide range of devices, including: Digital video devices may be MPEG-2, MPEG-4, or H.264 to transmit and receive digital video more efficiently. Implements video compression techniques such as H.264 / MPEG-4 Advanced Video Coding (AVC). Video compression techniques perform spatial prediction and temporal prediction to reduce or remove redundancy inherent in video signals.
ビデオ符号化では、ビデオ圧縮は概して、空間的予測、動き推定および動き補償を含む。特に、イントラコーディング(intra-coding)は、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディング(inter-coding)は、隣接フレーム内のビデオの時間的冗長性を低減または除去するために時間的予測に依拠する。インターコーディングの場合、ビデオ符号器は、2つ以上の隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。動き推定は、1つまたは複数のリファレンスフレーム(reference frames)中の対応するビデオブロックに対するビデオブロックの変位を示す動きベクトルを生成する。動き補償は、その動きベクトルを使用して、リファレンスフレームから予測ビデオブロックを生成する。動き補償の後、元のビデオブロックから予測ビデオブロックを減算することによって残差ビデオブロックが形成される。 In video coding, video compression generally includes spatial prediction, motion estimation and motion compensation. In particular, intra-coding relies on spatial prediction to reduce or remove the spatial redundancy of video within a given video frame. Inter-coding relies on temporal prediction to reduce or remove temporal redundancy of video in adjacent frames. In the case of intercoding, the video encoder performs motion estimation to track the operation of matching video blocks between two or more adjacent frames. Motion estimation generates a motion vector that indicates the displacement of the video block relative to the corresponding video block in one or more reference frames. Motion compensation uses the motion vector to generate a predictive video block from the reference frame. After motion compensation, a residual video block is formed by subtracting the predicted video block from the original video block.
ビデオ符号器は、残差ブロックのビットレートをさらに低減するために、変換、量子化およびエントロピーコーディングのプロセスを適用する。エントロピーコーディングは、一般に、変換演算および量子化演算によって生成される残差係数をさらに圧縮するために算術コード(arithmetic codes)または可変長コード(variable length codes)(VLC)を適用することを含む。例として、一部の符号器において代替エントロピーコーディングモードとして使用され得る、コンテキスト適応型バイナリ算術コーディング(context-adaptive binary arithmetic coding)(CABAC)およびコンテキスト適応型可変長コーディング(context-adaptive variable length coding)(CAVLC)がある。ビデオ復号器は、逆演算を実施して、ブロックそれぞれに関する動き情報と残差情報とを使って、符号化されたビデオを再構成する。 The video encoder applies a process of transform, quantization and entropy coding to further reduce the bit rate of the residual block. Entropy coding generally involves applying arithmetic codes or variable length codes (VLC) to further compress the residual coefficients generated by the transform and quantization operations. By way of example, context-adaptive binary arithmetic coding (CABAC) and context-adaptive variable length coding that may be used as alternative entropy coding modes in some encoders (CAVLC). The video decoder performs an inverse operation to reconstruct the encoded video using the motion information and residual information for each block.
本開示の態様は、可変長コード(VLC)を使う、変換ブロック係数および残差データなどのデジタルビデオデータのためのコーディング方式を含む。各デジタルビデオブロックからの係数は、一定順で走査し、順序付き配列に並べることができる。本開示は、一態様において、1つまたは複数のVLCパラメータを表すシンボル組合せ(symbol combinations)を使って、デジタルビデオブロック係数のVLCコーディングを実施するように構成された可変長コード(VLC)ユニットを備えるビデオコーディングデバイスを提供する。VLCパラメータは、係数配列中の係数のラン(run)情報、レベル情報、およびブロック終結(end of block)(EOB)情報を含む。本開示は、マルチレベルVLCテーブル(multi-level VLC table)をさらに提供し、第1レベルVLCテーブルは、シンボル組合せの生起確率に基づいて、シンボル組合せをコードワード(codewords)にマッピングし、第2レベルVLCテーブルは、動的に生成することができるとともに記憶される必要がない構造化コードを備える。特定のシンボル組合せによって表されるラン情報(run information)に基づいて、シンボル組合せは、第1レベルVLCテーブルからのコードワードとしても、第1レベルVLCテーブルからのエスケープコード(escape code)および第2レベルVLCテーブルからのコードワードとしてもコーディングすることができる。第1レベルVLCテーブル中のコードワードにマッピングされる候補である、可能なシンボル組合せの数を制限することによって、コーディング効率および全体的なシステム性能が向上され得る。 Aspects of this disclosure include coding schemes for digital video data, such as transform block coefficients and residual data, using variable length codes (VLC). The coefficients from each digital video block can be scanned in a fixed order and arranged in an ordered array. The disclosure provides in one aspect a variable length code (VLC) unit configured to perform VLC coding of digital video block coefficients using symbol combinations that represent one or more VLC parameters. A video coding device is provided. The VLC parameters include coefficient run information, level information, and end of block (EOB) information in the coefficient array. The present disclosure further provides a multi-level VLC table, wherein the first level VLC table maps symbol combinations to codewords based on the probability of occurrence of the symbol combinations, The level VLC table comprises structured code that can be generated dynamically and does not need to be stored. Based on the run information represented by a particular symbol combination, the symbol combination may be an escape code and second code from the first level VLC table, either as a codeword from the first level VLC table. It can also be coded as a code word from the level VLC table. By limiting the number of possible symbol combinations that are candidates to be mapped to codewords in the first level VLC table, coding efficiency and overall system performance may be improved.
ある例では、本開示は、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、ラン情報が、連続するゼロ係数の数を示すことと、マルチレベルVLCテーブルを定義するデータを記憶することであって、マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、第1レベルVLCテーブルが、コードワードをシンボル組合せにマッピングすることと、ならびに連続するゼロ係数の第1の数がカットオフラン値(cut-off-run value)より大きいことを示す第1のラン情報を備える第1のシンボル組合せに対して、第1のコードワードを第1のシンボル組合せに割り当てることであって、第1のコードワードが、第1レベルVLCテーブルからのエスケープコードを備えることとを含む方法を提供する。 In one example, this disclosure identifies run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, the run information indicating a number of consecutive zero coefficients, and multilevel Storing data defining a VLC table, wherein the multi-level VLC table comprises a first level VLC table and a second level VLC table, the first level VLC table mapping codewords to symbol combinations And for a first symbol combination comprising first run information indicating that the first number of consecutive zero coefficients is greater than a cut-off-run value. Assigning a codeword to a first symbol combination, wherein the first codeword is a first level VLC table The method comprising a providing the escape codes.
別の実施例では、本開示は、マルチレベルVLCテーブルを定義するデータを記憶するように構成された可変長コード(VLC)テーブルモジュールであって、マルチレベルテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、第1レベルVLCテーブルが、コードワードをシンボル組合せにマッピングする、モジュールと、第1のシンボル組合せに第1のコードワードを割り当てるように構成されたVLCコーディングモジュールであって、第1のシンボル組合せが、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備え、第1のコードワードが、第1レベルVLCテーブルからのエスケープコードを備える、モジュールとを含む、ビデオデータをコーディングするためのビデオコーディングデバイスを提供する。 In another embodiment, the present disclosure is a variable length code (VLC) table module configured to store data defining a multi-level VLC table, the multi-level table being a first level VLC table and a first level VLC table. A first level VLC table is a module that maps codewords to symbol combinations and a VLC coding module configured to assign a first codeword to the first symbol combination. The first symbol combination comprises first run information indicating that the first number of consecutive zero coefficients is greater than the cutoff run value, and the first codeword is from the first level VLC table For coding video data, including modules, with escape codes To provide a Deo coding device.
ある例では、本開示は、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、ラン情報が、連続するゼロ係数の数を示す、手段と、マルチレベルVLCテーブルを定義するデータを記憶するための手段であって、マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、第1レベルVLCテーブルが、コードワードをシンボル組合せにマッピングする、手段と、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せに対して、第1のコードワードを第1のシンボル組合せに割り当てるための手段であって、第1のコードワードが、第1レベルVLCテーブルからのエスケープコードを備える、手段とを含むビデオコーディング装置を提供する。 In one example, this disclosure provides means for identifying run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, wherein the run information indicates the number of consecutive zero coefficients; Means for storing data defining a multi-level VLC table, the multi-level VLC table comprising a first level VLC table and a second level VLC table, wherein the first level VLC table stores codewords For a first symbol combination comprising means for mapping to a symbol combination and first run information indicating that a first number of consecutive zero coefficients is greater than a cutoff run value, a first codeword is Means for assigning to a first symbol combination, wherein the first codeword is from the first level VLC table; Comprising an escape code, to provide a video coding and means.
本開示で説明する技法は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。ソフトウェアで実装する場合、ソフトウェアは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)など、1つまたは複数のプロセッサで実行できる。本技法を実行するソフトウェアは、最初にコンピュータ可読媒体に記憶し、プロセッサにロードして実行することができる。 The techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the software can execute on one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), or digital signal processor (DSP). Software that implements the techniques may first be stored on a computer readable medium and loaded into a processor for execution.
したがって、本開示は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、コードワードをシンボル組合せにマッピングする第1レベルVLCテーブルと、第2レベルVLCテーブルとを備えるマルチレベルVLCテーブルを定義するデータを記憶させ、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せに対して、第1レベルVLCテーブルからのエスケープコードを備える第1のコードワードを第1のシンボル組合せに割り当てさせる、1つまたは複数の命令を有形に記憶する、非一時的コンピュータ可読記憶媒体も企図する。 Thus, the present disclosure, when executed by one or more processors, indicates to one or more processors the number of consecutive zero coefficients for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block. Storing data defining a multi-level VLC table comprising a first level VLC table and a second level VLC table for identifying run information and mapping codewords to symbol combinations, and a first number of consecutive zero coefficients For a first symbol combination comprising first run information indicating that is greater than a cutoff run value, a first codeword comprising an escape code from the first level VLC table is assigned to the first symbol combination Non-transitory computer that tangibly stores one or more instructions Data-readable storage medium is also contemplated.
本開示で説明する技法の1つまたは複数の態様の詳細を添付の図面および以下の説明に示す。本開示の態様の他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。 The details of one or more aspects of the techniques described in this disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of aspects of the disclosure will be apparent from the description and drawings, and from the claims.
本開示の態様は概して、ビデオコーディングに関し、より詳細には、ブロックベースのビデオコーディングに関する。ソースデバイスから受信デバイスに送信されるのに先立って、ビデオブロックの変換係数などのデジタルビデオブロック係数と、残差ビデオデータとを表す1つまたは複数のシンボルパターンを生成することができる。シンボルパターンは、非ゼロ係数に先行し、または続く、連続するゼロ係数の数を表す、数などの情報を表し得る。この、連続するゼロの数は一般に、ランレングス(run length)と呼ばれる。シンボルパターンによって表される情報は、特定の非ゼロ係数が、1もしくは1以外のどれかの値をもつか否かも含んでよく、1以外の値は、1超過(greater-than-one)(GTO)とも呼ばれ、特定の係数がデータブロック中の最後の非ゼロ係数である場合は、一般にブロック終結(end-of-block)(EOB)と呼ばれる。シンボルパターンから、受信デバイスは、各ブロック係数が別々に送られ、シンボルパターンを使わずにシグナリングされた場合よりも少ないデータビットを使って、データブロックを再構成することができる。ソースデバイスから受信デバイスに送信されるビットの数をさらに低減するために、シンボルパターンは、送信されるのに先立って、一般に「エントロピーコーディング(entropy coding)」と呼ばれるロスレス統計型コーディング(lossless statistical coding)の形を受ければ(undergo)よい。エントロピーコーディングは、所与のデータセット、この事例では1組のシンボルパターンのシンボル分布プロパティ(symbol distribution property)を使用し、概して、データセット中で頻繁に生起するシンボルパターンには、より短いコードワードを、データセット中で頻繁には生起しないシンボルパターンには、より長いコードワードを割り当てる。本開示の態様は、より大きいデータブロック用のシンボルパターンを生成し、そうしたシンボルパターンにコードワードを割り当てる、改善された方法およびシステムを提供することができる。 Aspects of the present disclosure relate generally to video coding, and more particularly to block-based video coding. Prior to being transmitted from the source device to the receiving device, one or more symbol patterns representing digital video block coefficients, such as transform coefficients for video blocks, and residual video data may be generated. A symbol pattern may represent information, such as a number, that represents the number of consecutive zero coefficients that precede or follow a non-zero coefficient. This number of consecutive zeros is commonly referred to as the run length. The information represented by the symbol pattern may also include whether a particular non-zero coefficient has a value of 1 or any value other than 1, a value other than 1 being a greater-than-one ( Also referred to as GTO), if a particular coefficient is the last non-zero coefficient in a data block, it is generally called end-of-block (EOB). From the symbol pattern, the receiving device can reconstruct the data block using fewer data bits than if each block coefficient was sent separately and signaled without the symbol pattern. In order to further reduce the number of bits transmitted from the source device to the receiving device, the symbol pattern is subjected to lossless statistical coding, commonly referred to as “entropy coding”, prior to being transmitted. ) (Undergo). Entropy coding uses the symbol distribution property of a given data set, in this case a set of symbol patterns, and generally has shorter codewords for symbol patterns that occur frequently in the data set. A longer codeword is assigned to symbol patterns that do not occur frequently in the data set. Aspects of the present disclosure can provide improved methods and systems that generate symbol patterns for larger data blocks and assign codewords to such symbol patterns.
シンボルは、情報理論のコンテキストでは、固有または識別可能なビットパターンを指す。例示的シンボルは、文字「a」に対するアスキーコードなどのキャラクタを表すのに使われるビットでよい。本開示で使われるように、シンボルパターンは一般に、1つまたは複数のシンボルを表すビットパターンを指し、ここで1つまたは複数のシンボルは、ランレングス、GTO、またはEOBなど、1つの情報を表す。本開示で使われるように、シンボル組合せは、1つまたは複数のシンボルパターンの情報を表すビットパターンを指す。それゆえ、シンボル組合せは、たとえば、ランレングスまたはEOBを表すビットパターンでよいが、シンボル組合せは、ランレングスとEOBの両方またはランレングスと、EOBと、GTOとを表すビットパターンでもよい。 A symbol refers to a unique or identifiable bit pattern in the context of information theory. An exemplary symbol may be a bit used to represent a character, such as an ASCII code for the letter “a”. As used in this disclosure, a symbol pattern generally refers to a bit pattern that represents one or more symbols, where the one or more symbols represent one piece of information, such as run length, GTO, or EOB. . As used in this disclosure, a symbol combination refers to a bit pattern that represents information of one or more symbol patterns. Therefore, the symbol combination may be, for example, a bit pattern representing run length or EOB, but the symbol combination may be a bit pattern representing both run length and EOB or run length, EOB, and GTO.
図1は、本開示の様々な態様を実装するビデオ符号化および復号システム10を示すブロック図である。図1に示すように、システム10は、通信チャネル16を介して符号化ビデオデータを受信デバイス14に送信するソースデバイス12を含む。ソースデバイス12は、ビデオソース18とビデオ符号器20と送信機22とを含み得る。受信デバイス14は、受信機24と、ビデオ復号器26と、ビデオディスプレイデバイス28とを含み得る。システム10は、本開示で説明する様々な技法を実装するように構成され得る。
FIG. 1 is a block diagram illustrating a video encoding and
図1の例では、通信チャネル16は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理的伝送線路など、ワイヤレスまたは有線の任意の通信媒体、あるいはワイヤレスおよび有線の媒体の任意の組合せを含むことができる。チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル16は、一般に、ビデオデータをソースデバイス12から受信デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。
In the example of FIG. 1, the
ソースデバイス12は、受信デバイス14に送信するためのビデオを生成する。ただし、場合によっては、デバイス12、14は、実質的に対称に動作することができる。たとえば、デバイス12、14の各々は、ビデオ符号化および復号構成要素を含むことができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオブロードキャスト、またはビデオ電話のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。したがって、本開示の態様は、ソースデバイス12、受信デバイス14のいずれでも、または両方で実装することができる。
ビデオソース18は、1つまたは複数のビデオカメラなどのビデオキャプチャデバイス(video capture device)、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダから供給されたライブビデオ、を含み得る。さらなる代替として、ビデオソース18はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとコンピュータ生成ビデオ(computer-generated video)との組合せを生成し得る。場合によっては、ビデオソース18がカメラである場合、ソースデバイス12および受信デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、送信機22とチャネル16と受信機24とを介してビデオソースデバイス12からビデオ受信デバイス14のビデオ復号器26に送信するために、ビデオ符号器20によって符号化され得る。ディスプレイデバイス28は、液晶ディスプレイ(LCD)、プラズマディスプレイまたは有機発光ダイオード(OLED)ディスプレイなどの様々なディスプレイデバイスのいずれかを含み得る。
ビデオ符号器20およびビデオ復号器26は、空間、時間および/または信号対雑音比(SNR)スケーラビリティのためのスケーラブル・ビデオコーディング(scalable video coding)(SVC)をサポートするように構成され得る。いくつかの態様では、ビデオ符号器20およびビデオ復号器26は、SVCのためのファイン・グラニュラリティSNRスケーラビリティ(fine granularity SNR scalability)(FGS)コーディングをサポートするように構成できる。いくつかの例では、デオ符号器20およびビデオ復号器26は、ベースレイヤおよび1つまたは複数のスケーラブル・エンハンスメント・レイヤ(scalable enhancement layers)の符号化、送信および復号をサポートすることによって様々な程度のスケーラビリティをサポートすることができる。スケーラブル・ビデオコーディングの場合、ベースレイヤは最小品質レベルでビデオデータを搬送する。1つまたは複数のエンハンスメントレイヤは追加のビットストリームを搬送して、より高い空間的レベル、時間的レベルおよび/またはSNRレベルをサポートする。
ビデオ符号器20およびビデオ復号器26は、MPEG−2、MPEG−4、ITU−T H.263、またはITU−T H.264/MPEG−4 アドバンスト・ビデオコーディング(Advanced Video Coding)(AVC)などのビデオ圧縮規格に従って動作し得る。ビデオ符号器20およびビデオ復号器26は、ITU−T H.265などの次世代ビデオコーディング標準に従って動作してもよい。
The
ビデオ符号器20およびビデオ復号器26はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装できる。ビデオ符号器20およびビデオ復号器26の各々を1つまたは複数の符号器または復号器中に含めることができ、そのいずれかは複合符号器/復号器(combined encoder/decoder)(コーデック(CODEC))の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。さらに、ソースデバイス12および受信デバイス14はそれぞれ、符号化ビデオの送信および受信のために適切な変調、復調、周波数変換、フィルタ処理、および増幅器構成要素を含み、適用可能な場合、ワイヤレス通信をサポートするために十分な無線周波数(RF)ワイヤレス構成要素およびアンテナを含むことができる。ただし、説明しやすいように、そのような構成要素は図1に示していない。
ビデオシーケンスは一連のビデオフレームを含む。ビデオ符号器20は、ビデオデータを符号化するために個々のビデオフレーム内のピクセルのブロックに作用する。ビデオブロックは、サイズを固定することも変更することもでき、指定のコーディング規格に応じてサイズが異なることがある。各ビデオフレームは一連のスライス(slices)を含む。各スライスは一連のマクロブロックを含むことができ、それらはサブブロック中に配置することができる。一例として、ITU−T H.264規格は、ルーマ成分(luma components)については16×16、8×8、4×4、およびクロマ成分(chroma components)については8×8など、様々なブロックサイズのイントラ予測(intra prediction)をサポートし、ならびにルーマ成分については16×16、16×8、8×16、8×8、8×4、4×8および4×4、およびクロマ成分については対応するスケーリングされたサイズなど、様々なブロックサイズのインター予測(inter prediction)をサポートする。
A video sequence includes a series of video frames.
ビデオブロックは、小さいほどより良い解像度が得られ、より高い詳細レベルを含むビデオフレームの位置特定に使用することができる。一般に、マクロブロック(MB)および様々なサブブロックをビデオブロックと考えることができる。さらに、スライスは、MBおよび/またはサブブロックなど一連のビデオブロックであると考えることができる。各スライスは単独で復号可能なユニットであり得る。予測の後、ビデオ符号器20は、8×8残差ブロックまたは4×4残差ブロックに変換を適用する。イントラ(intra)_16×16予測モードが使われる場合、クロマ成分またはルーマ成分に対する4×4ブロックのDC係数に追加の変換を適用することができる。本開示の態様は、スライスレベルでの説明目的で記載される場合があるが、同じ技法を、ピクチャレベルで適用することもできる。
Smaller video blocks provide better resolution and can be used to locate video frames that contain higher levels of detail. In general, macroblocks (MB) and various sub-blocks can be considered video blocks. Further, a slice can be considered as a series of video blocks such as MBs and / or sub-blocks. Each slice may be a unit that can be decoded independently. After prediction,
概して、ビデオ符号器20は、ブロックに離散コサイン変換(DCT)を適用し、変換係数とも呼ばれ、またはより一般的にはデジタルビデオブロック係数と呼ばれるDCT係数を生成する。DCTは、非ゼロ値をもつ、結果として生じるDCT係数が、グループにまとめられように、および、ゼロ値をもつものがグループにまとめられるように、全体として順序付けられるDCT係数を生成する。ビデオ符号器20は次に、特定の走査順(scanning order)またはパターンに従って、結果として生じるDCT係数を走査することを伴う形のシリアライゼーション(serialization)を実施する。ジグザグ走査を、図9の例を参照して以下で示すが、ゼロおよび非ゼロDCT係数のグループを抽出するように、垂直、水平または他の走査パターンなど、様々な走査パターンが利用され得る。
In general,
抽出されると、ビデオ符号器20は、シリアル化された後に連続する(すなわち、相互に隣接する)ゼロDCT係数の総数(すなわち、いわゆる「ラン(run)」)の計算を通常は伴う、一般に「ランレングスコーディング(run-length coding)」と呼ばれるものを実施する。図9、10の例とともに以下でより詳しく示すように、シリアル化DCT係数(serialized DCT coefficients)を記述する1つまたは複数のシンボル組合せを生成することができる。シンボル組合せは、受信デバイス14によって、シリアル化DCT係数を再構成するのに使われ得るランレングス、GTO、EOB、および他の情報などの情報を表すことができる。シンボル組合せを使って、受信デバイス14は、シリアル化DCT係数を再構成することができ、シンボル組合せを使わずに各DCT係数が別々に送られシグナリングされた場合よりも少ないデータビットを使って、最終的にはデータブロックを再構成することができる。
Once extracted,
次に、ビデオ符号器20は、一般にエントロピーコーディング(entropy coding)と呼ばれる統計的ロスレスコーディング(statistical lossless coding)を実施する。エントロピーコーディングは、受信デバイス14がDCT係数の集合を再構成するためにソースデバイス12から受信デバイス14に送信される必要があるビットの数をさらに低減するのに使われるロスレスプロセス(lossless process)である。エントロピーコーディングは、所与のシンボル組合せ集合のシンボル分布プロパティを使用し、概して、より頻繁に生起するシンボル組合せには、より短いコードワードを、比較的頻繁には生起しないシンボル組合せには、より長いコードワードを割り当てる。
Next, the
ビデオ符号器20およびビデオ復号器26は、いくつかの動的実装形態では、それぞれ、所与のコンテキストに対して、そのコンテキストにおける、最も頻繁に生起するシンボル組合せが、より短いコードワードにマッピングされ得るように、いくつかのシンボル組合せの生起確率(occurrence probabilities)を追跡する機能性を含む。シンボル生起確率は、特定のシンボル組合せが生起した合計回数、または特定のシンボル組合せが生起した重み付き合計回数に基づいて追跡することができ、より最近生起したシンボル組合せは、より以前に生起したシンボル組合せより重く重み付けられる。シンボル生起確率は、T個の最も直近のシンボル組合せなど、特定のシンボル組合せが特定のウィンドウ中に生起した合計回数、または重み付き合計回数に基づいて追跡することもできる。
コードワードへのシンボル組合せのマッピングは、ビデオ符号器20およびビデオ復号器26において、複数のVLCテーブルまたは他のどのタイプのデータ構造にでも記憶することができる。VLCテーブルに記憶されたマッピングは、シンボル組合せに関する、追跡される生起確率が変動したとき、コードワードへのシンボル組合せのマッピングも変動し得るように適応可能であり得る。一部のシンボル組合せの生起確率が、他のシンボル組合せの生起よりも可能性が高く、または低くなった場合、ビデオ符号器20およびビデオ復号器26は、本動的実装形態では、シンボル組合せの一部を、その生起確率に基づいて、より長いまたはより短いコードワードのいずれかに再マッピングすることによって、VLCテーブルを更新すればよい。ビデオ符号器20およびビデオ復号器26は、こうした動的実装形態では、ビデオ符号器20において生起する、VLCテーブルへの変動が、その変動を反映するデータがソースデバイス12と受信デバイス14との間で送られることなく、ビデオ復号器26において反映され得るように、同じデータ処理技法を実装するように構成され得る。
The mapping of symbol combinations to codewords can be stored in
以下でより詳細に説明するように、H.264/MPEG−4 AVC標準は、変換係数をコーディングするための、コンテキスト適応型可変長コーディング(CAVLC)と呼ばれる形のエントロピーコーディングを定義する。CAVLCは特に、4×4変換サイズ向けに設計されるが、4×4より大きい変換に対しては常に効果があるわけではない。具体的には、4×4より大きい変換は通常、単一のVLCテーブルにマッピングされるべき、はるかに大きい数の可能なシンボル組合せをもつ。したがって、ビデオ符号器20が生起確率を追跡しなければならないシンボル組合せの数もはるかに大きくなり得るので、上記で言及したような動的実装形態におけるシンボル適応の効率を低下させる可能性がある。シンボル適応の効率が低下した結果、全体的なコーディング効率および全体的なシステム性能も低下し得る。
As described in more detail below, H.C. The H.264 / MPEG-4 AVC standard defines a form of entropy coding called context adaptive variable length coding (CAVLC) for coding transform coefficients. CAVLC is specifically designed for 4x4 transform sizes, but is not always effective for transforms larger than 4x4. Specifically, transforms larger than 4x4 typically have a much larger number of possible symbol combinations that should be mapped to a single VLC table. Thus, the number of symbol combinations that the
ビデオの一部分に対するコンテンツ統計が比較的一定であると仮定すると、ビデオ符号器20およびビデオ復号器26が、十分に多数のシンボル組合せを処理すると、シンボル組合せに関する、追跡される生起確率は概して、比較的安定な値に達する。このようなケースでは、VLCテーブル中で維持されるシンボル組合せへのコードワードのマッピングも比較的安定になり、ビデオ符号器20およびビデオ復号器26は、シンボル組合せをコードワードに再マッピングすることによって、記憶されたVLCテーブルを時々更新する必要があるだけである。ただし、エントロピーコーディングの初期段階またはビデオの一部分に関するコンテンツ統計に大幅な変動があったとき、VLCテーブルに記憶されたいくつかのシンボル組合せに関する生起確率は、そのビデオ部分に関する実際の生起確率を反映することができず、そのためコーディング効率が悪化し得る。より大きい数の可能なシンボル組合せが、4×4より大きい変換に関連づけられると、シンボル組合せの生起回数がその実際の生起確率を表すようになる前に、ビデオ符号器20によって処理されるのに必要とされるシンボル組合せの数が大幅に増える可能性があり、したがって、こうした、非効率なエントロピーコーディングの期間を長引かせる。本開示の態様は、VLCテーブルの構築および維持を改善し、したがって、こうした非効率なエントロピーコーディング期間が全体的コーディング効率に対して与える影響を減らすことによって、コーディング効率を向上させることができる。
Assuming that the content statistics for a portion of the video are relatively constant, if the
さらに、CAVLCは、4×4変換サイズ向けに特に設計されるので、CAVLCは、高解像度またはいわゆる高精細度(HD)ビデオデータを符号化したいという要望を満たすことができない場合がある。HDビデオデータはしばしば、良好なコーディング効率を達成するために、4×4変換より大幅に大きい変換を利用する。可能なシンボル組合せの数は、適用される変換のサイズに直接比例する、符号化されるデータのサイズとともに増えるので、より大きい変換サイズは、より多くの潜在的シンボル組合せを生じる。この点において、CAVLCは、可能な組合せおよびそれらに関連づけられたコードワードをすべて記憶するための、はるかに大きいテーブルを必要とすることになる。したがって、上記で論じたVLCコードワードマッピングの遅い適応に加え、この高解像度またはHDビデオデータを符号化するためのCAVLCの拡張は結果として、生起確率の追跡に専用の、大幅に多くの計算資源と、一般に「コードブック」と呼ばれる、こうしたより大きいテーブルを記憶するための大幅に多くのメモリ消費とを生じ得る。 Further, since CAVLC is specifically designed for 4 × 4 transform sizes, CAVLC may not be able to meet the desire to encode high resolution or so-called high definition (HD) video data. HD video data often utilizes transforms that are significantly larger than 4x4 transforms in order to achieve good coding efficiency. Larger transform sizes result in more potential symbol combinations because the number of possible symbol combinations increases with the size of the encoded data, which is directly proportional to the size of the transform applied. In this regard, CAVLC will require a much larger table to store all possible combinations and the codewords associated with them. Thus, in addition to the slow adaptation of VLC codeword mapping discussed above, this extension of CAVLC to encode high-resolution or HD video data results in significantly more computational resources dedicated to tracking probability of occurrence. And can result in significantly more memory consumption for storing such larger tables, commonly referred to as “codebooks”.
本開示の態様によると、すべての可能なシンボル組合せに対して単一レベルVLCテーブルを維持するのではなく、ビデオ符号器20は、1つまたは複数のマルチレベルVLCテーブルを定義するデータを記憶し、マルチレベルVLCテーブルの第1のレベルに対する候補であるシンボル組合せを、特定のシンボル組合せによって表される、連続するゼロ係数の数(すなわち、ランレングス)に基づいて制限する。マルチレベルVLCテーブルのこの第1のレベルは、一般的VLC技法を利用して、シンボル組合せをコードワードに関連づけることができる。マルチレベルVLCテーブルの第2のレベルは、ゴロムライスコード(Golomb-Rice codes)などの構造化VLCコードを使用することができる。第2レベルVLCテーブルの構造化性質により、マルチレベルVLCテーブルのこの第2のレベルを記憶する必要はない。というのは、一例として、ゴロムライスコードは、符号器と復号器の両方にとって既知であるいくつかのパラメータに基づいて動的に決定され得るからである。本開示のマルチレベルVLCテーブルの第1のレベルは、シンボル組合せと、最も頻繁に生起するシンボル組合せに対するコードワードとの間のマッピングを記憶するものとして特徴づけられ得る。本開示で説明するマルチレベルVLCテーブルの第2のレベルは、いかなる実際のテーブルもメモリに記憶することなく、比較的頻繁には生起しないシンボル組合せに対するコードワードを動的に決定するやり方を提供するものとして特徴づけられ得る。
In accordance with aspects of this disclosure, rather than maintaining a single level VLC table for all possible symbol combinations,
この点について、本開示の態様は、4×4より大きいサイズの変換の適用から生成された変換係数に対する符号化および復号効率を向上させることができ、第2のレベルの構造化コードを提供することによって、メモリ消費も改善する。コーディング効率の向上は、従来のCAVLCがこのように拡張されていないときに、4×4より大きいサイズの変換の適用から得られた変換係数へのVLCの適用の結果であり得る。特定のシンボル組合せによって表される連続するゼロ係数の数に基づいて、マルチレベルVLCテーブルの第1のレベルに対する候補であるシンボル組合せを制限することにより、ビデオ符号器20が生起確率を追跡する必要があるシンボル組合せの総数が減少し、それによって追跡確率をより素早く適応させることができ、したがって、上記で論じた非効率なエントロピーコーディングの期間が短縮する。さらに、コードブックによって消費されるメモリの量も、記憶されたどのコードブックも生じさせる必要がない第2のレベルの構造化コードワードに依拠した結果、低減することができる。符号化および復号効率の向上により、受信デバイス14のビデオ復号器26が変換係数集合を再構成するために、ソースデバイス12から受信デバイス14に送られるのに必要とされるビットの数を低減することができる。さらに、コーディングおよび復号効率の向上は、より効率的な電力使用を促進するが、このことは、いわゆる「スマートフォン」を含む、ハンドセットまたは他のセルラーホンなど、バッテリ駆動携帯デバイスのコンテキストでは特に重要であり得る。
In this regard, aspects of the present disclosure can improve the encoding and decoding efficiency for transform coefficients generated from the application of transforms of a size greater than 4x4 and provide a second level structured code This also improves memory consumption. The improvement in coding efficiency may be the result of the application of VLC to transform coefficients obtained from the application of transforms of a size larger than 4x4 when conventional CAVLC is not so extended. The need for
こうした技法を例示するために、ビデオ符号器20は、複数の変換係数に関して、連続しているとともにゼロの値をもつ係数の数を示すラン情報を判断すればよい。ビデオ符号器20は、上記で述べ、後でより詳しく説明するように、マルチレベルVLCテーブルを定義するデータを記憶する。マルチレベルVLCテーブルは、第1レベルVLCテーブルと第2レベルVLCテーブルとを備える。第1レベルVLCテーブルは、上述したようにして、コードワードをシンボル組合せにマッピングする。カットオフラン値より大きいラン値(run value)を表すシンボル組合せを識別したことに応答して、ビデオ符号器20は、第1レベルVLCテーブルからのエスケープコードと、第2レベルVLCテーブルからのコードワードとを、シンボル組合せに割り当てる。
To illustrate such a technique,
ラン値は概して、使われるコーディング方式に依存して、非ゼロ係数に先行し、または続く、連続するゼロ係数の数を指す。カットオフラン値は概して、特定のシンボル組合せのラン値に基づいて、その特定のシンボル組合せがどのようにコーディングされるべきかを決定する閾値を指す。たとえば、カットオフラン値は、5にセットされ得る。それゆえ、使われるコーディング方式に依存して、6個のゼロ係数が非ゼロ係数に先行し、または続くことを示すシンボル組合せは、エスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングされ得る。 The run value generally refers to the number of consecutive zero coefficients that precede or follow the non-zero coefficient, depending on the coding scheme used. The cutoff run value generally refers to a threshold that determines how a particular symbol combination should be coded based on the run value of the particular symbol combination. For example, the cutoff run value may be set to 5. Therefore, depending on the coding scheme used, a symbol combination indicating that 6 zero coefficients precede or follow a non-zero coefficient is coded as a concatenation of code words from the escape code and the second level VLC table. Can be done.
ビデオ復号器26は、エスケープコードを検出すると、第2レベルVLCテーブルからのコードワードをさらに復号する。シンボル組合せを、エスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングすることは概して、シンボル組合せを、第1レベルVLCテーブルからのコードワードとしてコーディングするよりも多くのビットを必要とする。それゆえ、本開示の態様は、より頻繁に生起するシンボル組合せを、第1レベルVLCテーブル中のコードワードとしてコーディングし、比較的頻繁には生起しないシンボル組合せを、エスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングすることを含む。
When the
図2は、図1に示すビデオ符号器20などのビデオ符号器20の一例を示すブロック図である。ビデオ符号器20は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。インターコーディングの場合、ビデオ符号器20は、隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。
FIG. 2 is a block diagram illustrating an example of a
図2に示すように、ビデオ符号器20は、符号化すべきビデオフレーム内のカレントビデオブロック(current video block)30を受信する。図2の例では、ビデオ符号器20は、動き推定ユニット32と、リファレンスフレームストア34と、動き補償ユニット36と、ブロック変換ユニット38と、量子化ユニット40と、逆量子化ユニット42と、逆変換ユニット44と、エントロピーコーディングユニット(entropy coding unit)46とを含む。ブロッキングアーティファクト(blocking artifacts)を除去するために、インループ・デブロッキングフィルタ(in-loop deblocking filter)(図示せず)をフィルタブロックに適用することができる。ビデオ符号器20はまた、加算器48と加算器50とを含む。図2は、ビデオブロックのインターコーディングのためのビデオ符号器20の時間的予測構成要素を示す。説明しやすいように図2には示されていないが、ビデオ符号器20は、いくつかのビデオブロックのイントラコーディングのための空間的予測構成要素をも含み得る。
As shown in FIG. 2, the
動き推定ユニット32は、1つまたは複数の動きベクトルを生成するためにビデオブロック30を1つまたは複数の隣接ビデオフレーム中のブロックと比較する。以前に符号化されたブロックから再構成されたビデオブロックを記憶するために任意のタイプのメモリまたはデータ記憶デバイスを含み得るリファレンスフレームストア34から、1つまたは複数の隣接フレームが検索され得る。動き推定は、可変サイズ、たとえば、32×32、32×16、16×32、16×16、16×8、8×16、8×8またはより小さいブロックサイズのブロックに対して実施することができる。動き推定ユニット32は、たとえば、レートひずみモデルに基づいてカレントビデオブロック30に最もぴったり一致する隣接フレーム中の1つまたは複数のブロックを識別し、隣接フレーム中のブロックとカレントビデオブロックとの間の変位を判断する。これに基づいて、動き推定ユニット32は、カレントビデオブロック30と、カレントビデオブロック30をコーディングするために使用されるリファレンスフレームからの1つまたは複数の一致するブロックとの間の変位の大きさおよび軌道(trajectory)を示す、1つまたは複数の動きベクトル(MV)を生成する。
動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有することができ、それによりビデオ符号器20は、整数ピクセルロケーション(integer pixel locations)よりも高い精度で動きを追跡し、より良い予測ブロックを取得することが可能になる。端数の(fractional)ピクセル値をもつ動きベクトルを使用するとき、動き補償ユニット36中で補間演算が実行される。動き推定ユニット32は、レートひずみモデルなど、いくつかの基準を使用して、ビデオブロックについての最良のブロック分割(block patitions)および1つまたは複数の動きベクトルを識別する。たとえば、双方向予測の場合、複数の動きベクトルがあり得る。得られたブロック分割および動きベクトルを使用して、動き補償ユニット36は予測ビデオブロックを形成する。
The motion vectors can have half or quarter pixel accuracy, or even finer accuracy, so that
ビデオ符号器20は、加算器48において、元のカレントビデオブロック30から、動き補償ユニット36によって生成された予測ビデオブロックを減算することによって残差ビデオブロックを形成する。ブロック変換ユニット38は、4×4または8×8などの変換を残差ブロックに適用して、残差変換ブロック係数を生成する。量子化ユニット40は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する。エントロピーコーディングユニット46は、量子化された係数をエントロピーコーディングして、ビットレートをなお一層低減する。
図4を参照して以下でより詳しく説明する本開示の態様によると、エントロピー符号化ユニット(entropy encoding unit)46は、量子化されたブロック係数にVLCコーディングを適用するための可変長コーディング(VLC)ユニットとして動作する。詳細には、エントロピー符号化ユニット46は、図1に関して上記で、図9、10に関して以下で説明する技法による、デジタルビデオブロック係数のVLCコーディングを実施するように構成され得る。エントロピーコーディングユニット46は、ある形のロスレス統計型コーディングを実施し、この理由により、エントロピーコーディングユニット46は、「ロスレス統計型コーディングユニット46」とも呼ばれ得る。概して、図3、5により詳しく記載するビデオ復号器26は、符号化ビデオを復号し再構成するための、VLC復号を含む逆演算を実施する。
In accordance with aspects of the present disclosure, described in more detail below with reference to FIG. 4, an
逆量子化ユニット42および逆変換ユニット44はそれぞれ、逆量子化および逆変換を適用して残差ブロックを再構成する。加算器50は、再構成された残差ブロックを、動き補償ユニット36によって生成された動き補償された予測ブロックに加算して、リファレンスフレームストア34に記憶するための再構成されたビデオブロックを生成する。再構成されたビデオブロックは、後続のビデオフレーム中のブロックを符号化するために動き推定ユニット32および動き補償ユニット36によって使用される。
Inverse quantization unit 42 and inverse transform unit 44 reconstruct the residual block by applying inverse quantization and inverse transformation, respectively.
図3は、図1のビデオ復号器26などのビデオ復号器の一例を示すブロック図である。ビデオ復号器26はビデオフレーム内のブロックのイントラ復号およびインター復号を実行することができる。図1に示すように、ビデオ復号器26は、ビデオ符号器20によって符号化された符号化ビデオビットストリームを受信する。図3の例では、ビデオ復号器26は、エントロピー復号ユニット52と、動き補償ユニット54と、再構成ユニット56と、逆変換ユニット58と、リファレンスフレームストア62とを含む。ビデオ復号器26は、加算器64の出力をフィルタ処理するインループ・デブロッキングフィルタ(in-loop deblocking filter)(図示せず)をも含み得る。ビデオ復号器26は加算器64も含む。図3は、ビデオブロックのインター復号のためのビデオ復号器26の時間的予測構成要素を示す。図3には示されていないが、ビデオ復号器26は、いくつかのビデオブロックのイントラ復号のための空間的予測構成要素も含むことができる。
FIG. 3 is a block diagram illustrating an example of a video decoder such as the
エントロピー復号ユニット52は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化された残差係数、マクロブロックコーディングモード、および動きベクトルとブロック分割とを含むことができる動き情報を復号する。したがって、エントロピー復号ユニット52は、VLC復号ユニットとして機能する。たとえば、符号化ビットストリームから、量子化された残差係数を復号するために、図3のエントロピー復号ユニット52は、図1を参照して上記で説明し、図9、10を参照して以下で説明する本開示の態様を実装するように構成され得る。しかしながら、エントロピー復号ユニット52は、符号化ビットストリームから量子化されたブロック係数を取り出すために、図2のエントロピー符号化ユニット46に対して実質的に逆の方法でVLC復号を実施することができる。
動き補償ユニット54は、リファレンスフレームストア62からの1つまたは複数の再構成されたリファレンスフレームと、 動きベクトルと、ブロック分割と、を受信して、予測ビデオブロックを生成する。再構成ユニット56は、量子化されたブロック係数を逆量子化(inverse quantize)、すなわち量子化解除(de-quantize)する。逆変換ユニット58は、逆変換、たとえば、逆DCT、または逆4×4もしくは8×8整数変換を上記係数に適用して、残差ブロックを生成する。次いで、予測ビデオブロックは、加算器64によって残差ブロックと加算されて、復号ブロックを形成する。復号ブロックをフィルタ処理してブロッキングアーティファクトを除去するために、デブロッキングフィルタ(図示せず)が適用され得る。フィルタ処理されたブロックは次いでリファレンスフレームストア62に入れられ、リファレンスフレームストア62は、後続のビデオフレームの復号のためにリファレンスフレームを与え、また、ディスプレイデバイス28(図1)を駆動するために復号ビデオを生成する。
Motion compensation unit 54 receives one or more reconstructed reference frames from
図4は、図2のエントロピー符号化ユニット46をより詳しく示すブロック図である。エントロピー符号化ユニット46は、図1、2のビデオ符号器20内に常駐し得る。図2に示すように、エントロピー符号化ユニット46は、量子化された残差ブロック係数を、たとえば、量子化ユニット40(図2)から受信し、復号用の別のデバイスへの送信用の、エントロピーコーディングされたビットストリームを生成する。図4の例では、エントロピー符号化ユニット46は、VLC符号化モジュール98と、統計分析モジュール100と、VLC適応モジュール102と、VLCテーブルモジュール104とを含む。VLCテーブルモジュール104は、図1を参照して上記で説明し、図9、10を参照して以下で説明するように、マルチレベルVLCテーブルを定義するデータを記憶する。VLCテーブルモジュール104は、たとえば、コードワードをシンボル組合せにマッピングする第1レベルVLCテーブルを定義するデータを記憶することができる。VLCテーブルモジュール104は、本開示を通して第2レベルVLCテーブルとも呼ばれる、記憶される必要がない構造化コードを動的に生成するようにも構成され得る。統計分析モジュール100は、候補シンボル組合せの集合に関するコーディング統計を収集する。統計分析モジュール100は、所与のコンテキストに対するシンボル組合せの生起確率を追跡し、統計分析モジュール100によって収集されたコーディング統計に基づいて、VLC適応モジュール102は、第1レベルVLCテーブルのコードワードと、候補シンボル組合せ集合の部分集合との間のマッピングを調整することができる。
FIG. 4 is a block diagram illustrating the
図5は、本開示で説明する様々な技法を実装するように構成されたエントロピー復号ユニット52のブロック図である。図1、5の例において上記で示したように、エントロピー復号ユニット52は、ビデオ復号器26内に常駐する。この例示的構成を参照して説明するが、エントロピー復号ユニット52は、統計的ロスレスコーディングを実施することが可能な、どのデバイス内に常駐してもよい。この点において、本技法は、本開示に示す例に限定されるべきではない。図3に示すように、エントロピー復号ユニット52は、符号化ビデオビットストリームを、たとえば、チャネル16(図1)を介してソースデバイス12から受信し、そのビットストリームをエントロピー復号して、量子化された残差係数を生成する。
FIG. 5 is a block diagram of
図5の例では、エントロピー復号ユニット52は、VLC復号モジュール106と、統計分析モジュール108と、VLC適応モジュール110と、VLCテーブルモジュール112とを含む。VLCテーブルモジュール112は、たとえば、コードワードをシンボル組合せにマッピングする第1レベルVLCテーブルを定義するデータを記憶することができる。VLCテーブルモジュール112は、本開示を通して第2レベルVLCテーブルとも呼ばれる、記憶される必要がない構造化コードを動的に復号するようにも構成され得る。VLCテーブルモジュール112によって維持される第1レベルおよび第2レベルVLCテーブルは、ビデオ符号器20において割り当てられたコードワードがビデオ復号器26において復号され得るように、VLCテーブルモジュール104によって維持されるVLCテーブルをマッチングする。統計分析モジュール108は、所与のコンテキストに対するシンボル組合せの生起確率を追跡し、特定のシンボル組合せの生起が、比較的可能性が高く、または低くなった場合、VLC適応モジュール110は、その特定のシンボル組合せを、VLCテーブルモジュール112によって維持されるVLCテーブル中の、より短いまたはより長いコードワードいずれかに再マッピングする。
In the example of FIG. 5, the
エントロピーコーディングは、所与のデータセットを表すのに必要とされるビットの数をさらに低減するのに使われるロスレスプロセスである。エントロピーコーディングは、所与のデータセットのシンボル分布プロパティを使用し、概して、データセットのうち、より頻繁に生起するメンバに、より短いコードワードを割り当てる。この例では、所与のデータセットは、可能なシンボル組合せ集合であり、より短いコードワードが概して、最も頻繁に生起する特定のシンボル組合せに割り当てられる。エントロピー符号化ユニット46の統計分析モジュール100およびエントロピー復号ユニット52の統計分析モジュール108は、特定のシンボル組合せの生起確率を追跡し維持することができ、そうすることによって、所与のコンテキストに対して、そのコンテキストにおける最も頻繁に生起するシンボル組合せが、より短いコードワードにマッピングする。一部のシンボル組合せの生起が、他のシンボル組合せの生起よりも可能性が高く、または低くなった場合、一部のシンボル組合せを、その生起確率に基づいて、より長いまたはより短いコードワードいずれかに再マッピングすることによって、エントロピー符号化ユニット46のVLC適応モジュール102は、VLCテーブルモジュール104によって維持されるVLCテーブルを更新し、エントロピー復号ユニット52のVLC適応モジュール110は、VLCテーブルモジュール112によって維持されるVLCテーブルを更新する。統計分析モジュール100およびVLC適応モジュール102は、統計分析モジュール108およびVLC適応モジュール110と同じデータ処理技法を実装するように構成され得る。したがって、エントロピー符号化ユニット46において起こる、VLCテーブルモジュール104によって維持されるVLCテーブルへの変動は、その変動を反映するデータがエントロピー符号化ユニット46とエントロピー復号ユニット52との間で送られることなく、エントロピー復号ユニット52にあるVLCテーブルモジュール112によって維持されるVLCテーブルにおいて反映することができる。
Entropy coding is a lossless process that is used to further reduce the number of bits needed to represent a given data set. Entropy coding uses the symbol distribution properties of a given data set and generally assigns shorter code words to the more frequently occurring members of the data set. In this example, a given data set is a set of possible symbol combinations, and shorter codewords are generally assigned to specific symbol combinations that occur most frequently. The
エントロピーコーディングに先立って、ブロックからの変換係数が、エントロピー符号化ユニット46によって使われる走査順に基づいて、順序付き1次元配列に並べ替えられる。図9、10の例を参照して以下でより詳しく示すように、変換係数は、1つまたは複数のシンボル組合せを使って記述することができる。エントロピー符号化ユニット46のVLC符号化モジュール98は、シンボル組合せを特定の形でコーディングし、エントロピー復号ユニット52は、コーディングされたデータを復号して、シンボル組合せを再生し、最終的には変換ブロックを再生する。VLCテーブルモジュール104、112によって維持されるVLCテーブルなどのVLCテーブルは、ビデオ符号器20のエントロピー符号化ユニット46とビデオ復号器26のエントロピー復号ユニット52の両方において記憶され、VLCテーブルからの各コードワードは、ある特定のコンテキストにおけるある特定のシンボル組合せを表す。
Prior to entropy coding, the transform coefficients from the block are rearranged into an ordered one-dimensional array based on the scanning order used by
4×4より大きい変換のためのすべての可能なシンボル組合せをカバーするために、VLCテーブルモジュール104、112によって維持されるVLCテーブルには、多数のコードワードが必要とされ得る。ただし、より大きいサイズのVLCテーブルは、コードワードを保存するのに、より多くのメモリを必要とする。このような要件を緩和するために、本開示の態様は、2つ以上のレベルをもつVLCテーブルを維持するVLCテーブルモジュール104、112を含む。2レベルのテーブルでは、たとえば、第1のレベルは、1つの可変長コードがエスケープコードを表す、いくつかの可変長コードからなってよい。第2のレベルは、ゴロムライスコードなど、構造化VLCコードのグループからなってよい。その構造化性質により、第2レベルVLCコードは、エントロピー符号化ユニット46とエントロピー復号ユニット52の両方において、実行中に(on-the-fly)動的に決定することができ、したがって、記憶される必要はない。
Multiple codewords may be required in the VLC table maintained by the
2レベルのVLCテーブルを使うと、可能なシンボル組合せの部分集合のみが、第1レベルVLCテーブル中の可変長コードにマッピングされる。エントロピー符号化ユニット46は、シンボル組合せの残部を、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングする。
With a two-level VLC table, only a subset of possible symbol combinations are mapped to variable length codes in the first level VLC table.
可能なシンボル組合せの数は、第1レベルVLCテーブル中の可変長コードの数より大きくてよい。この場合、可能なシンボル組合せはすべて、第1レベルVLCテーブル中の可変長コードにマッピングされるべき候補シンボル組合せでよい。あるコンテキストの下での生起確率に基づいて、エントロピー符号化ユニット46は、生起確率が最も高い候補シンボル組合せのみを、第1レベルVLCテーブル中のコードワードにマッピングすればよい。エントロピー符号化ユニット46は、候補組合せの残部を、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングすることができる。
The number of possible symbol combinations may be greater than the number of variable length codes in the first level VLC table. In this case, all possible symbol combinations may be candidate symbol combinations to be mapped to variable length codes in the first level VLC table. Based on the probability of occurrence under a certain context,
たとえば、Nが、可能なシンボル組合せの数を表し、Mが、第1レベルVLCテーブル中の可変長コードエントリの数を表し、Nの値がMより大きい場合、N個のシンボル組合せはすべて、候補シンボル組合せでよい。N個の候補シンボル組合せのどれが、第1レベルVLCテーブル中の可変長コードにマッピングされるかは、各候補シンボル組合せの生起確率に基づいて決定することができる。エントロピー符号化ユニット46は、N個の可能な組合せのうち、(M−1)個のシンボル組合せだけを、第1レベルVLCテーブル中の可変長コードにマッピングし、残りの(N−M+1)個のシンボル組合せを、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングする。
For example, if N represents the number of possible symbol combinations, M represents the number of variable length code entries in the first level VLC table, and the value of N is greater than M, then all N symbol combinations are Candidate symbol combinations are acceptable. Which of the N candidate symbol combinations is mapped to the variable length code in the first level VLC table can be determined based on the occurrence probability of each candidate symbol combination. The
本開示の態様は、第1レベルVLCテーブル中のコードワードにマッピングされる候補であるシンボル組合せの総数を低減することによって、コーディング効率を向上させることができる。上述したように、シンボル組合せへのコードワードのマッピングはしばしば、ビデオコーディングの初期段階中に、またはコーディングされるビデオのコンテンツが、ビデオの一部分に、事前コーディングされた部分とは大幅に異なるコンテンツ統計をもたせる変動を受けるとき、準最適(sub-optimal)であり得る。第1レベルVLCテーブルに対する候補組合せを、単一のカットオフラン値または複数のカットオフラン値に基づいて制限することにより、VLCテーブルモジュール104、112によって維持されるVLCテーブルに、コーディングの初期段階中およびコンテンツ統計が変動するときに生起するシンボル組合せの変動生起確率をより素早く追跡させることによって、特に4×4より大きい変換ブロックに対して、コーディングおよび復号効率を向上することができる。
Aspects of the present disclosure can improve coding efficiency by reducing the total number of symbol combinations that are candidates to be mapped to codewords in the first level VLC table. As mentioned above, the mapping of codewords to symbol combinations is often a content statistic during the early stages of video coding or when the content of the video being coded is significantly different from the precoded part of the video. Can be sub-optimal when subject to fluctuations. By limiting the candidate combinations for the first level VLC table to a VLC table maintained by the
さらに、本開示の態様は、統計分析モジュール100および統計分析モジュール108が生起確率を追跡する必要があるシンボル組合せの数を制限することによって、コーディング効率を向上させることができる。たとえば、4×4より大きい変換ブロックが、数千または1万をも超える可能なシンボル組合せをもつ場合がある。本開示の態様は、最も頻繁に生起するシンボル組合せを含むと思われる可能な総シンボル組合せの部分集合を識別することを含む。すると、統計分析モジュール100および統計分析モジュール108は、すべての可能なシンボル組合せではなく、可能なシンボル組合せの部分集合に関する生起確率を追跡するだけでよく、したがって、統計分析モジュール100および統計分析モジュール108に専用である必要がある処理資源の量が低減される。頻繁に生起する一部のシンボル組合せが、可能なシンボル組合せの部分集合から除外される場合であっても、統計分析モジュール100および統計分析モジュール108によって使用される処理資源の低減は、依然として、全体的システム性能において全体として肯定的であり得る。
Further, aspects of the present disclosure can improve coding efficiency by limiting the number of symbol combinations that the
良好なコーディング効率のために、VLCテーブルモジュール104およびVLCテーブルモジュール112は、いくつかの要素に基づいて複数のVLCテーブルを維持すればよく、そうすることによって所与の状況(またはコンテキスト)の場合、コードワード長がその所与の状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるVLCテーブルを使うことができる。
For good coding efficiency, the
図6は、本開示の態様を実施するビデオ符号化方法を示すフローチャートである。こうした態様は、たとえば、図1〜5に示すデバイスによって実施することができ、図1〜5に示すデバイスに関して説明する。ソースデバイス12のビデオ符号器20などのビデオ符号化デバイスの符号器において、ビデオデータのフレームが符号化され、受信デバイス14などのビデオ復号デバイスに送信され得る。ビデオ符号器20は、ビデオデータのフレームを予測ブロックに分割し、予測ブロックを変換し量子化する(ブロック601)。ビデオ符号器20は、変換ブロックの変換係数を表すための1つまたは複数のシンボル組合せからなる集合を判断する(ブロック602)。各シンボル組合せは、変換ブロックの変換係数の一部分に関するラン情報、GTO情報、および/またはEOB情報を示し得る。様々なサイズの変換ブロックに対して、ビデオ符号器20は、VLCテーブルモジュール104によって維持されるVLCテーブルなど、1つまたは複数のマルチレベルVLCテーブルを定義するデータをエントロピー符号化ユニット46に記憶する。コーディングされるべきシンボル組合せに対して、ビデオ符号器20は、コーディングされるべきシンボル組合せに関連づけられたコンテキストならびに変換ブロックのサイズに基づいて、VLCテーブルモジュール104によって維持される特定のVLCテーブルを識別する(ブロック603)。ビデオ符号器20は、たとえば、シンボル組合せに関連づけられたゼロのラン(a run of zeros)の第1のゼロ係数の位置索引、変換ブロックに関する事前コーディングされたランおよびレベル値に基づいてコンテキストを判断してもよく、または、コンテキストがスライスヘッダーに入れられてシグナリングされてもよい。
FIG. 6 is a flowchart illustrating a video encoding method for implementing aspects of the present disclosure. Such aspects can be implemented, for example, by the device shown in FIGS. 1-5 and will be described with respect to the device shown in FIGS. In an encoder of a video encoding device such as
カットオフラン値より大きいランを示すラン情報を示すシンボル組合せを識別したことに応答して(ブロック604、yesのパス)、ビデオ符号器20は、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルのコードワードの連結を備えるコードワードを、シンボル組合せに割り当てる(ブロック605)。第2レベルVLCテーブルは、たとえば、ゴロムライスコードなどの構造化VLCコードを含み得る。特定の変換ブロックに対するカットオフラン値は、変換ブロックのサイズに基づいて決定することができる。たとえば、8×8変換ブロックのシンボル組合せをコーディングするときのカットオフラン値は、16×16変換ブロックまたは8×16変換ブロックのシンボル組合せをコーディングするときのカットオフラン値とは異なってよい。
In response to identifying a symbol combination indicating run information indicative of a run that is greater than the cut-off run value (block 604, yes path),
カットオフラン値以下のラン示すラン情報を示すシンボル組合せを識別したことに応答して(ブロック603、noのパス)、ビデオ符号器20は、そのシンボル組合せに、第1レベルVLCテーブルからのコードワードを割り当てる(ブロック606)。いくつかの実装形態では、シンボル組合せが、やはり第2のカットオフラン値以下であるランを示すラン情報を含む場合、第1レベルVLCテーブルからのコードワードは、ラン情報、GTO情報、およびEOB情報を含んでもよいが、シンボル組合せが、第2のカットオフラン値より大きいランを示すラン情報を含む場合、第1レベルVLCテーブルからのコードワードは、ラン情報のみ、またはラン情報、一部のGTO情報、EOB情報のみを含んでよい。
In response to identifying a symbol combination indicating run information indicating a run below the cut-off run value (block 603, no path),
図7は、本開示で説明する技法を実施するビデオ符号化方法を示すフローチャートである。こうした技法は、たとえば、図1〜5に示すデバイスによって実施することができ、図1〜5に示すデバイスに関して説明する。図7に示す技法は、図6および図8の技法とともに、または単独で実装することができる。ソースデバイス12のビデオ符号器20などのビデオ符号化デバイスの符号器において、変換ブロックの複数のデジタルビデオブロック係数を表すための複数のシンボル組合せを決定することができる。VLC符号化モジュール98は、複数のシンボル組合せに関するラン情報を識別する(ブロック701)。ラン情報は、使われるコーディング方式に依存して、非ゼロ係数に先行し、またはその後に続く、連続するゼロ係数の数を示す。符号化プロセス中、エントロピー符号化ユニット46は、マルチレベルVLCテーブルを定義するデータを記憶する(ブロック702)。マルチレベルVLCテーブルは、第1レベルVLCテーブルと第2レベルVLCテーブルとを含む。第1レベルVLCテーブルは、コードワードをシンボル組合せにマッピングする。
FIG. 7 is a flowchart illustrating a video encoding method that implements the techniques described in this disclosure. Such techniques can be implemented, for example, by the devices shown in FIGS. 1-5 and will be described with respect to the devices shown in FIGS. The technique shown in FIG. 7 may be implemented with the techniques of FIGS. 6 and 8 or alone. In an encoder of a video encoding device, such as
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を含む第1のシンボル組合せの場合、VLC符号化モジュール98は、第1のシンボル組合せに第1のコードワードを割り当てる(ブロック703)。第1のコードワードは、第1レベルVLCテーブルからのエスケープコードを含む。連続するゼロ係数の第2の数が上記カットオフラン値以下であることを示す第2のラン情報を含む第2のシンボル組合せの場合、VLC符号化モジュール98は、第2のシンボル組合せに第2のコードワードを割り当てる(ブロック704)。第2のコードワードは、第1レベルVLCテーブルからのものである。連続するゼロ係数の第3の数が上記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第3のラン情報を備える第3のシンボル組合せの場合、第3のシンボル組合せに第1のタイプのコードワードを割り当てる(ブロック705)。第1のタイプのコードワードは、1超過情報と、ブロック終結情報と、第3のラン情報とを含む。連続するゼロ係数の第4の数が上記カットオフラン値以下であり、第2のカットオフラン値より大きいことを示す第4のラン情報を備える第4のシンボル組合せの場合、第4のシンボル組合せに第2のタイプのコードワードを割り当てる(ブロック706)。第2のタイプのコードワードは、第4のラン情報を含み、1超過情報およびブロック終結情報は含んでも含まなくてもよい。 For a first symbol combination that includes first run information indicating that the first number of consecutive zero coefficients is greater than the cut-off run value, the VLC encoding module 98 includes the first symbol combination in the first symbol combination. A codeword is assigned (block 703). The first codeword includes an escape code from the first level VLC table. For a second symbol combination that includes second run information indicating that the second number of consecutive zero coefficients is less than or equal to the cut-off run value, the VLC encoding module 98 adds the second symbol combination to the second symbol combination. 2 codewords are allocated (block 704). The second codeword is from the first level VLC table. In the case of a third symbol combination having third run information indicating that the third number of consecutive zero coefficients is less than or equal to the cut-off run value and less than or equal to the second cut-off run value, A first type codeword is assigned to the symbol combination (block 705). The first type of codeword includes 1 excess information, block end information, and third run information. In the case of the fourth symbol combination having the fourth run information indicating that the fourth number of consecutive zero coefficients is equal to or smaller than the cut-off run value and greater than the second cut-off run value, the fourth symbol A second type codeword is assigned to the combination (block 706). The second type of codeword includes fourth run information and may or may not include one excess information and block end information.
図8は、本開示で説明する技法を実施するビデオ符号化方法を示すフローチャートである。こうした技法は、たとえば、図1〜5に示すデバイスによって実施することができ、図1〜5に示すデバイスに関して説明する。図8に示す技法は、図7および図8の技法とともに、または単独で実装することができる。図6、7に関して説明したVLCコーディング方法などのVLCコーディングを実施する間(ブロック801)、ビデオ符号器20のエントロピー符号化ユニット46は、複数のマルチレベルVLCテーブルを定義するデータを記憶することができる(ブロック802)。マルチレベルVLCテーブルは、シンボル組合せをコードワードにマッピングする第1レベルVLCテーブルを含み得る。統計分析モジュール100は、候補シンボル組合せの集合の生起確率に関する統計を維持し(ブロック803)、収集された統計に基づいて、VLC適応モジュール102は、第1レベルVLCテーブル中で、シンボル組合せへのコードワードのマッピングを調整する(ブロック804)。上記でより詳しく説明し、図9、10の例に関して以下で説明するように、エントロピー符号化ユニット46は、単一のカットオフラン値または複数のカットオフラン値に基づいて、候補シンボル組合せの集合を制限することができる。図8に関して説明した技法の態様も、エントロピー復号ユニット52の統計分析モジュール108およびVLC適応モジュール110によって、受信デバイス14において同時に実施することができ、そうすることによって、VLCテーブルモジュール104によって維持されるVLCテーブルにおける、シンボル組合せとコードワードとのマッピングへの変動が、その変動を記述するデータも、変動を記述する限られたデータのみも、ソースデバイス12から受信デバイス14に転送されることなく、VLCテーブルモジュール112によって維持されるVLCテーブルに対して同時に実施される。
FIG. 8 is a flowchart illustrating a video encoding method that implements the techniques described in this disclosure. Such techniques can be implemented, for example, by the devices shown in FIGS. 1-5 and will be described with respect to the devices shown in FIGS. The technique shown in FIG. 8 may be implemented with the techniques of FIGS. 7 and 8 or alone. While performing VLC coding, such as the VLC coding method described with respect to FIGS. 6 and 7 (block 801),
図10は、4×4変換ブロックを示し、各正方形中の数字は、変換係数を表す。図1〜5の様々なモジュールおよびユニットの機能性についてここで、図10の例示的4×4変換ブロックに関して説明する。図9に示す走査順に従って、図10の変換ブロック用の変換係数の1次元配列が、ビデオ符号器20によって、[0,3,0,−1,0,0,1,0,0,0,0,0,0,0,0,0]のように生成されることになる。説明を簡単にするために、この例では、4×4変換ブロックを使うが、本開示の態様は、4×4より大きい変換ブロックにも、適用可能でよく、特に有利であり得る。さらに、説明目的のために、この例では変換係数に言及するが、本開示の態様は、残差データなど、他のタイプのビデオブロックデータにも適用可能であり得る。
FIG. 10 shows a 4 × 4 transform block, and the numbers in each square represent transform coefficients. The functionality of the various modules and units of FIGS. 1-5 will now be described with respect to the exemplary 4 × 4 transform block of FIG. In accordance with the scanning order shown in FIG. 9, a one-dimensional array of transform coefficients for the transform block in FIG. 10 is converted into [0, 3, 0, −1, 0, 0, 1, 0, 0, 0 by the
図10の例示的変換ブロックと同様に、変換ブロックは、多数のゼロ係数を含むことが多い。その結果、「ラン」または「ランレングス」とも呼ばれる、各非ゼロ係数に先行する、連続するゼロの数はしばしば、ブロック中の非ゼロ係数のロケーション情報を伝える際に使われる。量子化された非ゼロ係数の絶対振幅(absolute amplitude)は、係数の「レベル」と呼ばれる。普通、順序付き係数配列の終結は、ゼロの値をもつ、かなりの数の連続する変換係数を含む。こうしたゼロを明示的にコーディングするのではなく、ビデオ符号器20のエントロピー符号化ユニット46は、変換ブロック中の残りの変換係数がすべてゼロであることをシグナリングするように、ブロック終結(EOB)シンボルパターンをコーディングすればよい。あるいは、エントロピー符号化ユニット46は、非ゼロ変換係数の数が受信された後の、残りの変換係数がすべてゼロであると仮定され得るように、非ゼロ変換係数の数をコーディングすればよい。
Similar to the exemplary transform block of FIG. 10, the transform block often includes a number of zero coefficients. As a result, the number of consecutive zeros preceding each non-zero coefficient, also called “run” or “run length”, is often used in conveying location information for non-zero coefficients in the block. The absolute amplitude of the quantized non-zero coefficient is called the “level” of the coefficient. Normally, the termination of an ordered coefficient array includes a significant number of consecutive transform coefficients with a value of zero. Rather than explicitly coding such zeros, the
H.264/MPEG−4 AVCは、変換係数をコーディングするためのコンテキスト適応型可変長コーディング(CAVLC)方式を定義する。CAVLCは主に、可変長コードで以下の情報をコーディングすることを含む。 H. H.264 / MPEG-4 AVC defines a context adaptive variable length coding (CAVLC) scheme for coding transform coefficients. CAVLC mainly includes coding the following information with variable length codes.
1.ブロック中の非ゼロ係数および後続係数(trailing ones)(すなわち、振幅が1または−1のいずれかである係数)の数。 1. Number of non-zero coefficients and trailing ones in the block (ie, coefficients whose amplitude is either 1 or -1).
2.各後続係数の符号。 2. The sign of each subsequent coefficient.
3.残りの非ゼロ係数のレベル。 3. The level of the remaining non-zero coefficient.
4.最終係数の前のゼロの総数。 4). The total number of zeros before the final coefficient.
5.ゼロの各ラン(each run of zeros)。 5. Each run of zeros.
上記情報をコーディングするとき、コードワード長は、その時点で使用可能な他の情報に基づいて適応可能に決定される。これは、一般に、コンテキスト適応型VLC(CAVLC)と呼ばれる。このコーディング方式は、16個の変換係数を有する4×4変換ブロック向けに特に設計され、したがってそれらに対してよく機能する。ただし、この方式は、コーディング効率の大幅な損失を招くことなしには、より大きいサイズの変換ブロックに容易には拡張されない。ビデオコーディングの最近の焦点は高解像度コンテンツにあるので、より大きいサイズの予測ブロックならびに変換が、コーディング効率を向上させる上では有益であると思われる。その結果、H.264/MPEG−4 AVC CAVLC技法は、そうしたケースにおいて、競争力のあるコーディング性能を提供するのに十分に柔軟でない場合がある。 When coding the information, the codeword length is adaptively determined based on other information available at that time. This is commonly referred to as context adaptive VLC (CAVLC). This coding scheme is specifically designed for 4 × 4 transform blocks with 16 transform coefficients and thus works well for them. However, this scheme is not easily extended to larger sized transform blocks without incurring significant loss of coding efficiency. Since the recent focus of video coding is on high resolution content, larger sized prediction blocks and transforms may be beneficial in improving coding efficiency. As a result, H.C. The H.264 / MPEG-4 AVC CAVLC technique may not be flexible enough to provide competitive coding performance in such cases.
他の理由の中でも、本開示の態様は、4×4より大きいブロックを変換するように適合され得るので、本開示の態様は、H.264/MPEG−4標準におけるCAVLCよりも有利であり得る。たとえば、本開示の態様は、8×8、16×16、32×32、8×16、16×32、および他の様々なサイズの変換ブロックに対するコーディング効率を向上させ得る。16×16変換ブロックは、たとえば、4×4ブロックの16個の変換係数と比較して、256個の変換係数をもち、したがって可能性としては、H.264/MPEG−4 CAVLC技法を、より大きいブロックサイズに対しては非効率にさせる。本開示の態様によると、ビデオ符号器20は、ソースデバイス12が受信デバイス14にデータを送信するのに先立って、変換ブロックからの係数配列のラン情報、レベル情報およびEOB情報を、可変長コードを使って一緒にコーディングする。各可変長コードは、ラン情報、レベル情報、およびEOB情報のある特定のステータスを表す。より詳細には、各非ゼロ係数に対して、可変長コードワードは、以下の情報の一部または全部を表す。
Among other reasons, aspects of the present disclosure can be adapted to transform blocks larger than 4 × 4, so It may be advantageous over CAVLC in the H.264 / MPEG-4 standard. For example, aspects of this disclosure may improve coding efficiency for 8 × 8, 16 × 16, 32 × 32, 8 × 16, 16 × 32, and various other sized transform blocks. A 16 × 16 transform block has, for example, 256 transform coefficients compared to the 16 transform coefficients of a 4 × 4 block, and thus is potentially H.264. The H.264 / MPEG-4 CAVLC technique is made inefficient for larger block sizes. In accordance with aspects of this disclosure,
a)ラン(run):係数に先行する、連続するゼロの数
b)1超過(greater-than-one)(GTO):非ゼロ係数のレベルが1より大きいかを示す
c)ブロック終結(end of block)(EOB):コーディングされる非ゼロ係数が、1次元の係数配列中の最後の非ゼロ係数であるかを示す。
a) run: number of consecutive zeros preceding the coefficient b) greater-than-one (GTO): indicates whether the level of the non-zero coefficient is greater than 1 c) block end of block) (EOB): indicates whether the non-zero coefficient being coded is the last non-zero coefficient in a one-dimensional coefficient array.
図10の変換ブロックと図9の走査順とを例として使い、係数のコーディング順が走査順と同じ(すなわち、1次元配列において左から右)である場合、ビデオ符号器20によってコーディングされ、受信デバイス14に送信されるべきシンボル組合せは、1次元のジグザグ走査列[0,3,0,−1,0,0,1,0,0,0,0,0,0,0,0,0]に対して、(ラン,GTO,EOB)の形で、(1,1,0),(1,0,0),(2,0,1)のようになる。
Using the transform block of FIG. 10 and the scan order of FIG. 9 as an example, if the coefficient coding order is the same as the scan order (ie, left to right in a one-dimensional array) The symbol combination to be transmitted to the
この例の第1のシンボル組合せ(1,1,0)は、1のラン値を含み、第1の非ゼロ係数の左に1つのゼロがあることを表明する。第1のシンボル組合せは、1のGTO値を含み、非ゼロ係数が、1より大きい値をもつことを示し、この事例では3に等しい。第1のシンボル組合せは、第1のシンボル組合せが、1次元配列の最後の非ゼロ係数を含まないことを示す、0のEOB値を含む。第1のシンボル組合せに基づいて、ビデオ復号器26のエントロピー復号ユニット52は、1次元配列の[0,3,...]部分を再構成することができる。
The first symbol combination (1, 1, 0) in this example contains a run value of 1, asserting that there is one zero to the left of the first non-zero coefficient. The first symbol combination includes a GTO value of 1 and indicates that the non-zero coefficient has a value greater than 1, which is equal to 3 in this case. The first symbol combination includes an EOB value of 0 indicating that the first symbol combination does not include the last non-zero coefficient of the one-dimensional array. Based on the first symbol combination, the
第2のシンボル組合せ(1,0,0)は、1のラン値を含み、次の非ゼロ変換係数(この例では、−1)の左に1つのゼロがあることを示す。第2のシンボル組合せは、非ゼロ変換係数が、1より大きい値をもたないことを示す、0のGTO値を含み、第2のシンボル組合せは、第2のシンボル組合せが、1次元配列の最後の非ゼロ係数を含まないことを示す、0のEOB値を含む。第2のシンボル組合せに基づいて、エントロピー復号ユニット52は、1次元配列の[...0,−1,...]部分を再構成することができる。
The second symbol combination (1, 0, 0) contains a run value of 1, indicating that there is one zero to the left of the next non-zero transform coefficient (-1 in this example). The second symbol combination includes a GTO value of 0 indicating that the non-zero transform coefficient does not have a value greater than 1, and the second symbol combination includes a second symbol combination that is a one-dimensional array. Contains an EOB value of 0, indicating that the last non-zero coefficient is not included. Based on the second symbol combination, the
第3のシンボル組合せ(2,0,1)は2のラン値を含み、この事例では1である非ゼロ変換係数の左に2つのゼロがあることを示す。第3のシンボル組合せは、非ゼロ変換係数が1であることを示す、0のGTO値と、非ゼロ変換係数が、1次元配列中の最後の非ゼロ変換係数であることを示す、1のEOB値とを含む。第3のシンボル組合せに基づいて、エントロピー復号ユニット52は、配列の[...0,0,1,0,0,0,0,0,0,0,0,0]部分を再構成することができ、したがって、3つすべてのシンボル組合せに基づいて、1次元配列全体が再構成され得る。ビデオ符号器20において使われる走査順を知ることによって、ビデオ復号器26は、変換ブロックを同じ順序で再構成することができる。
The third symbol combination (2, 0, 1) contains two run values, indicating that there are two zeros to the left of the non-zero transform coefficient, which in this case is one. The third symbol combination is a GTO value of 0 indicating that the non-zero transform coefficient is 1, and a non-zero transform coefficient of 1 indicating that the non-zero transform coefficient is the last non-zero transform coefficient in the one-dimensional array. EOB value. Based on the third symbol combination,
ビデオ符号器20およびビデオ復号器26は、VLCテーブルを同時に構成し、管理することができ、VLCテーブルからの各コードワードは、(ラン,GTO,EOB)のある特定のステータスを表す。図10の例の場合、たとえば、3つのコードワード、すなわち3つのシンボル組合せそれぞれに1つのコードワードで、上記で言及した情報をすべて、ソースデバイス12から受信デバイス14に伝えるのに十分である。
あるいは、係数のコーディングは、逆走査順で実施することもできる。このような事例では、コーディングされるべきシンボル組合せは、(ラン,GTO,EOB)の形で、(2,0,0)、(1,0,0)、(1,1,1)のようになる。この逆走査順例では、第1のシンボル組合せ(2,0,0)は、第1の非ゼロ係数の左に2つのゼロ係数があることを表明する、2のラン値をもち、この事例では、第1の移動は、1次元配列中で右から左の方向である。第1のシンボル組合せは、非ゼロ変換係数が、1の値をもつことを示す、0のGTO値と、非ゼロ係数が、1次元配列中の最後の非ゼロ係数ではないことを示す、0のEOB値とをもつ。第1のコードワードに基づいて、エントロピー復号ユニット52は、1次元配列の[...0,0,1...]部分を再構成することができる。
Alternatively, the coefficient coding can be performed in reverse scan order. In such cases, the symbol combinations to be coded are (2,0,0), (1,0,0), (1,1,1) in the form of (run, GTO, EOB). become. In this reverse scan order example, the first symbol combination (2, 0, 0) has a run value of 2, which asserts that there are two zero coefficients to the left of the first non-zero coefficient. Then, the first movement is from right to left in the one-dimensional array. The first symbol combination is 0 indicating that the non-zero transform coefficient has a value of 1 and 0 indicating that the non-zero coefficient is not the last non-zero coefficient in the one-dimensional array. With an EOB value of Based on the first codeword, the
第2のシンボル組合せ(1,0,0)は、1のラン値をもち、この場合では−1である次の非ゼロ係数の左に1つのゼロがあることを示す。第2のシンボル組合せは、非ゼロ変換係数が、1以下のレベルをもつことを表明する、0のGTO値をもち、第2のシンボル組合せは、非ゼロ変換係数が、1次元配列中の最後の非ゼロ変換係数ではないことを示す、0のEOB値をもつ。第2のコードワードに基づいて、エントロピー復号ユニット52は、1次元配列の[...0,−1...]部分を再構成することができる。
The second symbol combination (1, 0, 0) has a run value of 1, indicating that there is one zero to the left of the next non-zero coefficient, which in this case is -1. The second symbol combination has a GTO value of 0, asserting that the non-zero transform coefficient has a level of 1 or less, and the second symbol combination is the last non-zero transform coefficient in the one-dimensional array. It has an EOB value of 0, indicating that it is not a non-zero transform coefficient. Based on the second codeword, the
第3のシンボル組合せ(1,1,1)は、1のラン値をもち、次の非ゼロ係数の左に1つのゼロがあることを示す。第3のシンボル組合せは、非ゼロ変換係数が、1より大きいレベルをもつことを示す、1のGTO値をもち、第3のシンボル組合せは、非ゼロ変換係数が、1次元配列中の最後の非ゼロ変換係数ではないことを示す、1のEOB値をもつ。第3のシンボル組合せに基づいて、エントロピー復号ユニット52は、1次元配列の[0,3,....]部分を再構成することができる。ビデオ符号器20において使われる走査順を知ることによって、ビデオ復号器26は、変換ブロックを再構成することができる。
The third symbol combination (1, 1, 1) has a run value of 1 and indicates that there is one zero to the left of the next non-zero coefficient. The third symbol combination has a GTO value of 1 indicating that the non-zero transform coefficient has a level greater than 1, and the third symbol combination has a non-zero transform coefficient of the last in the one-dimensional array. It has an EOB value of 1 indicating that it is not a non-zero transform coefficient. Based on the third symbol combination, the
上記の例は、(ラン,GTO,EOB)のある特定のステータスを表す単一のシンボル組合せを提示するが、シンボル組合せは、ラン、GTO、およびEOB情報のどの組合せも含み得る。たとえば、(ラン,GTO,EOB)のある特定のステータスは、ラン情報を表す第1のシンボル組合せと、GTOおよびEOB情報を表す第2のシンボル組合せとによって表すことができる。第1および第2のシンボル組合せは、別々にエントロピーコーディングし、送信することができる。別の実施例では、シンボル組合せは、ラン情報と、GTOもしくはEOB情報のいずれかを表すことができ、または、後で説明するように、一部のGTOおよびEOB情報とともにラン情報を含むことができる。 Although the above example presents a single symbol combination that represents a particular status of (Run, GTO, EOB), the symbol combination may include any combination of Run, GTO, and EOB information. For example, a particular status of (Run, GTO, EOB) can be represented by a first symbol combination representing run information and a second symbol combination representing GTO and EOB information. The first and second symbol combinations can be separately entropy coded and transmitted. In another embodiment, the symbol combination may represent run information and either GTO or EOB information, or may include run information along with some GTO and EOB information, as will be described later. it can.
上記情報に加え、レベルが1より大きい複数の係数に対して、ソースデバイス12は、そのレベルの値を別々にコーディングし、受信デバイス14にその値を送信することができる。さらに、ソースデバイス12は、1ビットを使って、各非ゼロ係数の符号をコーディングし、受信デバイス14にその符号を送信することができる。より多数の非ゼロ変換係数が1に等しいことにより、この技法は、非ゼロ変換係数に関するレベル情報を転送するのに必要とされるビットの数を低減することによって、コーディング効率をさらに向上させることができる。
In addition to the above information, for multiple coefficients with a level greater than 1, the
所与のサイズの変換ブロック用のラン、GTO、および/またはEOBに対するすべての可能なシンボル組合せをカバーするために、特に変換サイズが大きいとき、多数のコードワードが、ビデオ符号器20およびビデオ復号器26におけるVLCテーブルに対して必要とされ得る。ただし、より大きいサイズのVLCテーブルは、コードワードを保存するのに、より多くのメモリを必要とする。このような要件を緩和するために、本開示の態様は、2つ以上のレベルを含むVLCテーブルを使用することを含む。2レベルのVLCテーブルでは、たとえば、第1レベルのテーブルは、1つの可変長コードが1つのエスケープコードを表す、いくつかの可変長コードを含んでよい。第2レベルのテーブルは、ゴロムライスコードなど、構造化VLCコードのグループを含んでよい。その構造化性質により、第2レベルVLCコードは、VLCテーブルモジュール104およびVLCテーブルモジュール112によって、それぞれ、ビデオ符号器20とビデオ復号器26の両方において動的に生成することができるので、第2レベルVLCコードを保存する必要はない。エスケープコードは、第1レベルVLCテーブルとは反対に、第2レベルVLCテーブルを使って特定のコードワードを復号するよう、ビデオ復号器26に知らせる。
In order to cover all possible symbol combinations for a run, GTO, and / or EOB for a given size transform block, especially when the transform size is large, a large number of codewords are used for
2レベルのVLCテーブルを使うと、本開示で説明したように、ラン、GTO、および/またはEOBのシンボル組合せの部分集合のみが、第1レベルVLCテーブル中の可変長コードにマッピングされる。ビデオ符号器20は、シンボル組合せの残部を、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングする。エスケープコードを検出すると、ビデオ復号器26は、第2レベルVLCテーブルを使ってコードワードを復号する。
Using a two-level VLC table, as described in this disclosure, only a subset of run, GTO, and / or EOB symbol combinations are mapped to variable length codes in the first level VLC table.
ラン、GTO、および/またはEOBに対する可能なシンボル組合せの数は、第1レベルVLCテーブル中の可変長コードの数より大きくてよい。そのような場合、可能なシンボル組合せはすべて、第1レベルVLCテーブル中の可変長コードにマッピングされるべき候補シンボル組合せでよい。ある特定のコンテキストの下での生起確率に基づいて、最もしばしば生起する候補シンボル組合せのみが、それぞれ、第1レベルVLCテーブル中の可変長コードにマッピングされればよい。候補シンボル組合せの残部は、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングすることができる。 The number of possible symbol combinations for a run, GTO, and / or EOB may be greater than the number of variable length codes in the first level VLC table. In such a case, all possible symbol combinations may be candidate symbol combinations to be mapped to variable length codes in the first level VLC table. Based on the probability of occurrence under a particular context, only the most frequently occurring candidate symbol combinations need only be mapped to variable length codes in the first level VLC table, respectively. The remainder of the candidate symbol combination can be coded as a concatenation of an escape code from the first level VLC table and a code word from the second level VLC table.
たとえば、Nが、可能なシンボル組合せの数を表し、Mが、第1レベルVLCテーブル中の可変長コードエントリの数を表し、Nの値がMより大きい場合、N個のシンボル組合せはすべて、候補シンボル組合せでよい。N個の候補シンボル組合せのどれが、第1レベルVLCテーブル中の可変長コードにマッピングされるかは、各候補シンボル組合せの生起確率に基づいて決定することができる。最終的に、N個の可能な組合せのうち、ラン、GTO、および/またはEOBに対する(M−1)個のシンボル組合せのみが、第1レベルVLCテーブル中の可変長コードにマッピングされる。ビデオ符号器20は、残りの(N−M+1)個のシンボル組合せを、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングする。
For example, if N represents the number of possible symbol combinations, M represents the number of variable length code entries in the first level VLC table, and the value of N is greater than M, then all N symbol combinations are Candidate symbol combinations are acceptable. Which of the N candidate symbol combinations is mapped to the variable length code in the first level VLC table can be determined based on the occurrence probability of each candidate symbol combination. Finally, out of the N possible combinations, only (M-1) symbol combinations for the run, GTO, and / or EOB are mapped to variable length codes in the first level VLC table.
本開示のある態様は、ビデオ符号器20が、(ラン,GTO,EOB)ステータスの成分を別々にコーディングして、VLCテーブルに対する候補シンボル組合せの数を低減することを含む。たとえば、ビデオ符号器20は、(ラン,GTO,EOB)ステータスのラン情報を、第1レベルVLCテーブルから、または第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結として、VLCテーブルからのコードワードを使ってコーディングするだけでよい。ビデオ符号器20は、GTOおよびEOB情報を、ラン情報とは別々にコーディングしてよい。別の実施例では、ビデオ符号器20は、ラン情報のみを、第1レベルVLCテーブルからのコードワードを使って、GTOおよびEOBについての一部の情報と一緒にコーティングすればよい。このような一部の情報の例は、OR(GTO,EOB)でよく、ここでORは、論理OR演算を表す。その結果、ランおよびOR(GTO,EOB)の値を、VLCテーブルからのコードワードを使って一緒にコーディングすることができる。GTOおよびEOBについてのより詳細な情報は、別々にコーディングすることができる。GTO値およびEOB値のいずれかまたは両方が非ゼロである(すなわち、OR演算が真である)場合、ビデオ復号器26は、より詳細な情報を処理する。GTO値とEOB値の両方がゼロである(すなわち、OR演算が偽である)場合、ビデオ復号器26は、どの追加情報も、復号される必要がないことを知る。
Certain aspects of the present disclosure include the
本開示の態様は、第1レベルVLCテーブル中のコードワードにマッピングされる候補であるシンボル組合せの総数を低減することによって、コーディング効率を向上させることができる。一態様では、カットオフラン値は、異なる各サイズの変換ブロックごとに定義され得る。次に、変換ブロックサイズおよび関連づけられたカットオフラン値に基づいて、カットオフラン値以下であるランに関連づけられたシンボル組合せのみが、第1レベルVLCテーブル中の可変長コードワードにマッピングされ得る候補組合せである。カットオフラン値より大きいランに関連づけられたシンボル組合せは、第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結としてコーディングすることができる。第1のシンボル組合せが、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す場合、エントロピー符号化ユニット46のVLC符号化モジュール98は、第1レベルVLCテーブルからのエスケープコードを含む第1のコードワードを、第1のシンボル組合せに割り当てる。第2のシンボル組合せが、連続するゼロ係数の第2の数がカットオフラン値以下であることを示す場合、エントロピー符号化ユニット46のVLC符号化モジュール98は、第2のシンボル組合せに第2のコードワードを割り当てる。第2のコードワードは、第1レベルVLCテーブルからのコードワードである。
Aspects of the present disclosure can improve coding efficiency by reducing the total number of symbol combinations that are candidates to be mapped to codewords in the first level VLC table. In one aspect, a cut-off run value may be defined for each different size transform block. Then, based on the transform block size and the associated cutoff run value, only symbol combinations associated with runs that are less than or equal to the cutoff run value can be mapped to variable length codewords in the first level VLC table. Candidate combination. Symbol combinations associated with runs greater than the cut-off run value can be coded as a concatenation of escape codes from the first level VLC table and codewords from the second level VLC table. If the first symbol combination indicates that the first number of consecutive zero coefficients is greater than the cut-off run value, the VLC encoding module 98 of the
別の態様では、2つのカットオフラン値、すなわちrun1およびrun2(run1≦run2)を、異なる各サイズの変換ブロック用に定義することができる。次に、変換ブロックサイズおよび関連づけられたカットオフラン値に基づいて、エントロピー符号化ユニット46は、run2以下のランに関連づけられたシンボル組合せのみを、第1レベルVLCテーブル中の可変長コードワードを使ってコーディングされ得る候補シンボル組合せとして扱う。ただし、エントロピー符号化ユニット46は、run1以下のランに関連づけられたシンボル組合せの成分のみを、ジョイント方式でコーディングする(すなわち、ラン、GTO、およびEOBが、1つのコードワードとして一緒にコーディングされ得る)。エントロピー符号化ユニット46は、run1より大きいランに関連づけられたシンボル組合せの成分を別々にコーディングする。たとえば、エントロピー符号化ユニット46は、VLCテーブルを使って(第1レベルVLCテーブル中のコードワードいずれかで、または第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結として)、シンボル組合せのラン情報のみをコーティングし、シンボル組合せに対するGTOおよびEOB情報を、ラン情報とは別々にコーディングすればよい。
In another aspect, two cutoff run values, run1 and run2 (run1 ≦ run2), can be defined for each different size transform block. Next, based on the transform block size and the associated cut-off run value,
2つのカットオフラン値(run1およびrun2)を使用するとき、エントロピー符号化ユニット46のVLC符号化モジュール98は、連続するゼロ係数の数がrun1以下であり、run2以下であることを示すラン情報をもつシンボル組合せに、第1のタイプのコードワードを割り当てる。第1のタイプのコードワードは、たとえば、1超過情報と、ブロック終結情報と、ラン情報とを含み得る。エントロピー符号化ユニット46のVLC符号化モジュール98は、連続するゼロ係数の数がrun2以下であり、run1より大きいことを示すラン情報を備えるシンボル組合せに、第2のタイプのコードワードを割り当てる。第2のタイプのコードワードは、ラン情報を含み、一部の1超過情報およびブロック終結情報も含み得る。
When using two cut-off run values (run1 and run2), the VLC encoding module 98 of the
別の態様では、run1より大きいがrun2以下のランをもつシンボル組合せに対して、エントロピー符号化ユニット46は、VLCテーブルモジュール104によって維持されるVLCテーブルからのコードワードを、第1レベルVLCテーブル中のコードワードとして、または第1レベルVLCテーブルからのエスケープコードおよび第2レベルVLCテーブルからのコードワードの連結として使って、GTOおよびEOBについての一部の情報と一緒に、ラン情報のみをコーディングする。このような一部の情報の一例は、OR(GTO,EOB)で表すことができ、ここでORは、論理OR演算を表す。その結果、エントロピー符号化ユニット46は、VLCテーブルモジュール104によって維持されるVLCテーブルからのコードワードを使って、ランと、OR(GTO,EOB)の値とを一緒にコーディングし、GTOおよびEOBについてのより詳細な情報を別々にコーディングする。
In another aspect, for symbol combinations that have a run greater than run1 but less than or equal to run2,
単一のカットオフラン値または複数のカットオフラン値に基づく、第1レベルVLCテーブルに対する候補シンボル組合せの数の制限など、本開示の態様は、特に4×4より大きい変換ブロックに対して、コーディングおよび復号効率を向上させることができる。 Aspects of this disclosure, such as limiting the number of candidate symbol combinations for the first level VLC table based on a single cut-off run value or multiple cut-off run values, are particularly for transform blocks larger than 4x4. Coding and decoding efficiency can be improved.
さらに、本開示の態様は、ビデオ符号器20およびビデオ復号器26が生起確率を追跡しなければならないシンボル組合せの数を制限することによって、コーディング効率を向上させることができる。たとえば、4×4より大きい変換ブロックが、ラン、GTO、およびEOBに対して数千または1万をも超える可能なシンボル組合せをもつ場合がある。本開示の態様は、最も頻繁に生起するシンボル組合せを含むと思われる可能な総シンボル組合せの部分集合を識別するのに用いることができる。すると、ビデオ符号器20およびビデオ復号器26は、すべての可能なシンボル組合せではなく、部分集合に関する生起確率を追跡するだけでよく、したがって、生起確率の追跡に専用とされる処理資源の量が低減される。頻繁に生起する一部のシンボル組合せが、部分集合から除外される場合であっても、生起確立の追跡に専用とされる処理資源の低減は、依然として、全体的システム性能において全体として肯定的であり得る。
Further, aspects of the present disclosure may improve coding efficiency by limiting the number of symbol combinations that
良好なコーディング効率のために、ビデオ符号器20は、いくつかの要素に基づいて複数のVLCテーブルから適切なVLCテーブルを選択すればよく、そうすることによって所与の状況(またはコンテキスト)の場合、コードワード長がその所与の各状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるVLCテーブルを使うことができる。
For good coding efficiency,
別の態様は、符号化プロセス中に、VLC符号化モジュール98が、コーディングされるべきシンボル組合せに関連づけられたランの第1のゼロ係数の位置索引に基づいて、VLCテーブルモジュール104によって維持される特定のテーブルVLCテーブルを選択することを含む。コーディングは、係数配列中の第1の係数から始まる。シンボル組合せをコーディングするために、シンボル組合せに関連づけられたランの第1のゼロ係数の位置索引が調べられる。次に、走査順の位置索引値に基づいて、カレント・シンボル組合せをコーディングするためのVLCテーブルが選択される。再度一例として図3を使うと、コーディングされるべきシンボル組合せは、(1,1,0)、(1,0,0)、(2,0,1)である。シンボル組合せ(1,1,0)の場合、ランの第1のゼロ係数の位置索引値は0である。同様に、(1,0,0)および(2,0,1)の場合、位置索引値は、それぞれ2、4である。VLCコードワードを受信したことに応答して、VLC復号モジュール106は、VLCテーブル112内で、VLC符号化モジュール98によって使われる特定のVLCテーブルを識別し、VLCコードワードからシンボル組合せを判断するように構成され得る。
Another aspect is maintained by the
本開示の別の態様は、VLC符号化モジュール98が、ブロック中の事前コーディングされたランおよびレベル値の両方に基づいて、VLCテーブルモジュール104によって維持される特定のVLCテーブルを選択することを含む。コーディングは、係数配列中の最後の非ゼロ係数から始まり、逆走査順で実施される。カレント・シンボル組合せをコーディングするために、ブロック中のすべての事前コーディングされたシンボル組合せのレベル、ならびに事前コーディングされたシンボル組合せのランが調べられる。1のレベルをもつ、事前コーディングされたシンボル組合せの数が、事前コーディングされたシンボル組合せのランと一緒に、カレント・シンボル組合せをコーディングするコンテキストとして使われる。ただし、カレント・ブロックの事前コーディングされたシンボル組合せが、1より大きいレベルを少なくとも含む場合、事前コーディングされたシンボル組合せのランのみが、カレント・シンボル組合せをコーディングするコンテキストとして使われる。具体的には、ブロック中の第1のシンボル組合せをコーディングするコンテキストを形成するとき、1のレベルをもつ、事前コーディングされたシンボル組合せの数が1にセットされ、事前コーディングされたシンボル組合せのランが、いくつかの事前コーディングされたブロック中の、第1のコーディングされたシンボル組合せのランの平均としてセットされる。
Another aspect of the present disclosure includes the VLC encoding module 98 selecting a particular VLC table maintained by the
上述したコンテキスト適応型VLCテーブルは、様々なコーディング条件の下での変換係数用に設計し、構成することができる。それゆえ、各コンテキストに対して複数のVLCテーブルが使用可能であり得る。本開示で説明する一技法の態様は、各コンテキスト向けの最良のVLCテーブルの索引を、スライスヘッダーに入れてシグナリングすることを含む。さらに、各コンテキストの下でのシンボル組合せの生起確率は、スライス中のブロックがコーディングされている間、たとえば、統計分析モジュール100によって累積することができる。各コンテキストの下でのシンボル分布確率は、カレント・スライス中で一定数のブロックがコーディングされるたびに、評価し直し、更新することができる。次に、更新されたシンボル分布プロパティに基づいて、VLCテーブル中のコードワードが、各コンテキスト向けの様々なシンボル組合せに再マッピングされ得る。このようなシンボル組合せの生起確率の累積および再マッピングは、ビデオ符号器20の統計分析モジュール100およびVLC適応モジュール102と、ビデオ復号器26の統計分析モジュール108およびVLC適応モジュール110とによって同じやり方で実施することができる。その結果、どの追加情報も、ビデオ符号器20からビデオ復号器26にシグナリングされる必要がない。
The context adaptive VLC table described above can be designed and configured for transform coefficients under various coding conditions. Therefore, multiple VLC tables may be available for each context. An aspect of one technique described in this disclosure includes signaling the best VLC table index for each context in a slice header. Furthermore, the probability of occurrence of the symbol combination under each context can be accumulated, for example, by the
本開示で説明する技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。たとえば、こうした技法の様々な態様は、1つもしくは複数のマイクロプロセッサ、DSP、ASIC、FPGA、または他のどの均等な統合型もしくは個別論理回路、ならびに、符号器、ラップトップ、デスクトップまたはハンドヘルドコンピュータ、ワイヤレスモバイルハンドセット、セットトップボックス、または他のデバイスでも実施されるこのような構成要素のどの組合せにおいても実装することができる。「プロセッサ」または「処理回路」という用語は、一般に、単独で、あるいは他の論理回路または他の等価回路との組合せで上記の論理回路のいずれかを指すことがある。 The techniques described in this disclosure may be implemented at least in part in hardware, software, firmware, or any combination thereof. For example, various aspects of such techniques include one or more microprocessors, DSPs, ASICs, FPGAs, or any other equivalent integrated or discrete logic circuit, as well as an encoder, laptop, desktop or handheld computer, It can be implemented in any combination of such components that is implemented in a wireless mobile handset, set-top box, or other device. The terms “processor” or “processing circuit” may generally refer to any of the above logic circuits, alone or in combination with other logic circuits or other equivalent circuits.
本開示で説明する技法の態様は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。モジュールまたは構成要素として説明する機能は、集積論理デバイスに一緒に、または個別であるが相互運用可能な論理デバイスとして別々に実装できる。ソフトウェアで実装される場合、本開示で説明したシステムおよびデバイスに帰因する機能性は、RAM、SDRAM、ROM、NVRAM、EEPROM、フラッシュメモリ、磁気媒体、光学媒体などのような非一時的コンピュータ可読記憶媒体上の命令として実施することができる。「非一時的」という用語は、記憶媒体が、搬送波または伝搬信号では具現化されないことを示し得る。ただし、「非一時的」という用語は、記憶媒体が非移動性であることを意味するものと解釈されるべきでない。一例として、記憶媒体は、あるデバイスから取り外され、別のデバイスに移され得る。別の例として、記憶媒体は、あるデバイスに差し込むことができる。いくつかの例では、非一時的記憶媒体は、時間経過に伴って変動し得るデータを(たとえば、RAMに)記憶することができる。命令は、本開示で説明した機能性の1つまたは複数の態様をサポートするように実行することができる。 Aspects of the techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. Functions described as modules or components can be implemented together in an integrated logical device or separately as a separate but interoperable logical device. When implemented in software, the functionality attributable to the systems and devices described in this disclosure may be non-transitory computer readable, such as RAM, SDRAM, ROM, NVRAM, EEPROM, flash memory, magnetic media, optical media, and the like. It can be implemented as instructions on a storage medium. The term “non-transitory” may indicate that the storage medium is not embodied in a carrier wave or a propagated signal. However, the term “non-transitory” should not be construed to mean that the storage medium is non-mobile. As an example, a storage medium may be removed from one device and transferred to another device. As another example, the storage medium can be plugged into a device. In some examples, the non-transitory storage medium may store data (eg, in RAM) that may vary over time. The instructions may be executed to support one or more aspects of the functionality described in this disclosure.
プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルロジックアレイ(FPGA)、または他の等価の集積回路または個別論理回路によって実行され得る。したがって、本開示で使用する「プロセッサ」という用語は、前述の構造、または説明した技法の実装に好適な他の構造のいずれかを指す。さらに、いくつかの態様では、本開示で説明する機能を、符号化および復号のために構成された専用のソフトウェアモジュールまたはハードウェアユニット内に提供することができ、または複合ビデオ符号器/復号器(コーデック(CODEC))に組み込むことができる。 The program code may be one or more processors, such as one or more digital signal processors (DSPs), a general purpose microprocessor, an application specific integrated circuit (ASIC), a field programmable logic array (FPGA), or other equivalent It can be implemented by an integrated circuit or a separate logic circuit. Thus, as used in this disclosure, the term “processor” refers to either the structure described above or other structure suitable for implementing the described techniques. Further, in some aspects, the functionality described in this disclosure may be provided in a dedicated software module or hardware unit configured for encoding and decoding, or a composite video encoder / decoder (CODEC).
本開示の多くの態様について説明した。特許請求の範囲から逸脱することなく、様々な改変を行い得る。これらおよび他の態様は以下の特許請求の範囲内に入る。
なお、本願の出願当初の請求項と同一の記載を以下に付記する。
[C1] 可変長コーディング(VLC)の方法であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、前記ラン情報が、連続するゼロ係数の数を示すことと、
マルチレベルVLCテーブルを定義するデータを記憶することであって、前記マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングすることと、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せの場合、前記第1のシンボル組合せに第1のコードワードを割り当てることであって、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備えることと、を備える方法。
[C2] 連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第2のコードワードを割り当てることであって、前記第2のコードワードが、前記第1レベルVLCテーブルからのものであること、をさらに備える、C1に記載の方法。
[C3] 連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第1のタイプのコードワードを割り当てることであって、前記第1のタイプのコードワードが、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備えることと、
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のシンボル組合せに第2のタイプのコードワードを割り当てることであって、前記第2のタイプのコードワードが、前記第3のラン情報を備えることとをさらに備える、C1に記載の方法。
[C4] 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、C3に記載の方法。
[C5] 候補シンボル組合せの集合に関するコーディング統計を収集することと、
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整することとをさらに備える、C1に記載の方法。
[C6] 候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、C5に記載の方法。
[C7] 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、C1に記載の方法。
[C8] 複数のマルチレベルVLCテーブルを定義するデータを記憶することと、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別することとをさらに備える、C1に記載の方法。
[C9] 前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、C8に記載の方法。
[C10] 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、C8に記載の方法。
[C11] 前記コンテキストがスライスヘッダーに入れてシグナリングされる、C8に記載の方法。
[C12] 前記第2レベルVLCテーブルが構造化VLCコードを備える、C1に記載の方法。
[C13] 前記第2レベルVLCテーブルがゴロムライスコードを備える、C1に記載の方法。
[C14] 前記方法がビデオ符号化デバイスによって実施される、C1に記載の方法。
[C15] 前記方法がビデオ復号デバイスによって実施される、C1に記載の方法。
[C16] ビデオデータをコーディングするためのビデオコーディングデバイスであって、
マルチレベルVLCテーブルを定義するデータを記憶するように構成された可変長コード(VLC)テーブルモジュールであって、前記マルチレベルテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングする、モジュールと、
第1のシンボル組合せに第1のコードワードを割り当てるように構成されたVLCコーディングモジュールであって、前記第1のシンボル組合せが、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備え、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備える、モジュールと、
を備えるビデオコーディングデバイス。
[C17] 前記VLCコーディングモジュールが、
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せに、前記第1レベルVLCテーブルからのものである第2のコードワードを割り当てるようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C18] 前記VLCコーディングモジュールが、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せに、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備える第1のタイプのコードワードを割り当て、
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せに、前記第3のラン情報を備える第2のタイプのコードワードを割り当てるようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C19] 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、C18に記載のビデオコーディングデバイス。
[C20] 候補シンボル組合せの集合に関するコーディング統計を収集するように構成された統計分析モジュールと、
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するように構成されたVLC適応モジュールとをさらに備える、C16に記載のビデオコーディングデバイス。
[C21] 候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、C20に記載のビデオコーディングデバイス。
[C22] 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、C16に記載のビデオコーディングデバイス。
[C23] 前記VLCテーブルモジュールが、複数のマルチレベルVLCテーブルを定義するデータを記憶するようにさらに構成され、
前記VLCコーディングモジュールが、特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記特定のシンボル組合せ向けのコンテキストに基づいて識別するようにさらに構成される、C16に記載のビデオコーディングデバイス。
[C24] 前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、C23に記載のビデオコーディングデバイス。
[C25] 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、C23に記載のビデオコーディングデバイス。
[C26] 前記コンテキストがスライスヘッダーに入れてシグナリングされる、C23に記載のビデオコーディングデバイス。
[C27] 前記第2レベルVLCテーブルが構造化VLCコードを備える、C16に記載のビデオコーディングデバイス。
[C28] 前記第2レベルVLCテーブルがゴロムライスコードを備える、C16に記載のビデオコーディングデバイス。
[C29] 前記ビデオ復号デバイスがビデオ符号器である、C16に記載のビデオコーディングデバイス。
[C30] 前記ビデオ復号デバイスがビデオ復号器である、C16に記載のビデオコーディングデバイス。
[C31] ビデオコーディング装置であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、前記ラン情報が、連続するゼロ係数の数を示す、手段と、
マルチレベルVLCテーブルを定義するデータを記憶するための手段であって、前記マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングする、手段と、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せに対して、前記第1のシンボル組合せに第1のコードワードを割り当てるための手段であって、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備える、手段とを備えるビデオコーディング装置。
[C32] 連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第2のコードワードを割り当てる手段であって、前記第2のコードワードが、前記第1レベルVLCテーブルからのものである、手段をさらに備える、C31に記載のビデオコーディング装置。
[C33] 連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第1のタイプのコードワードを割り当てることであって、前記第1のタイプのコードワードが、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備えることと、
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のシンボル組合せに第2のタイプのコードワードを割り当てることであって、前記第2のタイプのコードワードが、前記第3のラン情報を備えることとをさらに備える、C31に記載のビデオコーディング装置。
[C34] 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、C33に記載のビデオコーディング装置。
[C35] 候補シンボル組合せの集合に関するコーディング統計を収集するための手段と、
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するための手段とをさらに備える、C31に記載のビデオコーディング装置。
[C36] 候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、C35に記載のビデオコーディング装置。
[C37] 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、C31に記載のビデオコーディング装置。
[C38] 複数のマルチレベルVLCテーブルを定義するデータを記憶するための手段と、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別するための手段とをさらに備える、C31に記載のビデオコーディング装置。
[C39] 前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、C38に記載のビデオコーディング装置。
[C40] 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、C38に記載のビデオコーディング装置。
[C41] 前記コンテキストがスライスヘッダーに入れてシグナリングされる、C38に記載のビデオコーディング装置。
[C42] 前記第2レベルVLCテーブルが構造化VLCコードを備える、C31に記載のビデオコーディング装置。
[C43] 前記第2レベルVLCテーブルがゴロムライスコードを備える、C31に記載のビデオコーディング装置。
[C44] 前記ビデオコーディング装置がビデオ符号器の一部である、C31に記載のビデオコーディング装置。
[C45] 前記ビデオコーディング装置がビデオ復号器の一部である、C31に記載のビデオコーディング装置。
[C46] 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、
シンボル組合せにコードワードをマッピングする第1レベルVLCテーブルと第2レベルVLCテーブルとを備えるマルチレベルVLCテーブルを定義するデータを記憶させ、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せの場合、前記第1レベルVLCテーブルからのエスケープコードを備える第1のコードワードを、前記第1のシンボル組合せに割り当てさせる、1つまたは複数の命令を有形に記憶するコンピュータ可読記憶媒体。
[C47] 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第1レベルVLCテーブルからのものである第2のコードワードを、前記第2のシンボル組合せに割り当てさせる1つまたは複数の追加命令を有形に記憶する、C46に記載のコンピュータ可読記憶媒体。
[C48] 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備える第1のタイプのコードワードを前記第2のシンボル組合せに割り当てさせ、
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のラン情報を備える第2のタイプのコードワードを前記第3のシンボル組合せに割り当てさせる、1つまたは複数の追加命令を有形に記憶する、C46に記載のコンピュータ可読記憶媒体。
[C49] 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、C48に記載のコンピュータ可読記憶媒体。
[C50] 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
候補シンボル組合せの集合に関するコーディング統計を収集させ、
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整させる、1つまたは複数の追加命令を有形に記憶する、C46に記載のコンピュータ可読記憶媒体。
[C51] 候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、C50に記載のコンピュータ可読記憶媒体。
[C52] 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、C46に記載のコンピュータ可読記憶媒体。
[C53] 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
複数のマルチレベルVLCテーブルを定義するデータを記憶させ、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別させる、1つまたは複数の追加命令を有形に記憶する、C46に記載のコンピュータ可読記憶媒体。
[C54] 前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、C53に記載のコンピュータ可読記憶媒体。
[C55] 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、C53に記載のコンピュータ可読記憶媒体。
[C56] 前記コンテキストがスライスヘッダーに入れてシグナリングされる、C53に記載のコンピュータ可読記憶媒体。
[C57] 前記第2レベルVLCテーブルが構造化VLCコードを備える、C46に記載のコンピュータ可読記憶媒体。
[C58] 前記第2レベルVLCテーブルがゴロムライスコードを備える、C46に記載のコンピュータ可読記憶媒体。
[C59] 前記1つまたは複数のプロセッサがビデオ符号器の一部である、C46に記載のコンピュータ可読記憶媒体。
[C60] 前記1つまたは複数のプロセッサがビデオ復号器の一部である、C46に記載のコンピュータ可読記憶媒体。
A number of aspects of the disclosure have been described. Various modifications may be made without departing from the scope of the claims. These and other aspects are within the scope of the following claims.
The same description as the claims at the beginning of the application of the present application will be added below.
[C1] A variable length coding (VLC) method,
Identifying run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, wherein the run information indicates a number of consecutive zero coefficients;
Storing data defining a multi-level VLC table, the multi-level VLC table comprising a first level VLC table and a second level VLC table, wherein the first level VLC table encodes a symbol combination Mapping words,
For the first symbol combination with first run information indicating that the first number of consecutive zero coefficients is greater than the cutoff run value, assigning a first codeword to the first symbol combination And wherein the first codeword comprises an escape code from the first level VLC table.
[C2] In the case of the second symbol combination including the second run information indicating that the second number of consecutive zero coefficients is equal to or less than the cutoff run value, a second code is included in the second symbol combination. The method of C1, further comprising assigning a word, wherein the second codeword is from the first level VLC table.
[C3] In the case of the second symbol combination including the second run information indicating that the second number of consecutive zero coefficients is equal to or smaller than the cutoff run value and equal to or smaller than the second cutoff run value. Allocating a first type codeword to the second symbol combination, wherein the first type codeword comprises 1 excess information, block end information, and the second run information. And
For a third symbol combination comprising third run information indicating that a third number of consecutive zero coefficients is less than or equal to the cutoff run value and greater than the second cutoff run value, The method of C1, further comprising: assigning a second type codeword to the symbol combinations, wherein the second type codeword comprises the third run information.
[C4] The method of C3, wherein the second type codeword further comprises some 1 excess information and block termination information.
[C5] collecting coding statistics for a set of candidate symbol combinations;
The method of C1, further comprising adjusting a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics.
[C6] The method of C5, wherein the set of candidate symbol combinations comprises symbol combinations having run information indicating that the number of consecutive zero coefficients is less than or equal to the cutoff run value.
[C7] The method of C1, wherein the cutoff run value is determined based on a size of the transform block.
[C8] storing data defining a plurality of multi-level VLC tables;
Identifying the particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on a context for the symbol combination. .
[C9] The method of C8, wherein the context is determined based on a position index of a first zero coefficient of a run of zero associated with the symbol.
[C10] The method of C8, wherein the context is determined based on precoded run and level values for the transform block.
[C11] The method of C8, wherein the context is signaled in a slice header.
[C12] The method of C1, wherein the second level VLC table comprises a structured VLC code.
[C13] The method of C1, wherein the second level VLC table comprises Golombrice codes.
[C14] The method of C1, wherein the method is performed by a video encoding device.
[C15] The method of C1, wherein the method is performed by a video decoding device.
[C16] A video coding device for coding video data,
A variable length code (VLC) table module configured to store data defining a multi-level VLC table, the multi-level table comprising a first level VLC table and a second level VLC table, A module in which a first level VLC table maps codewords to symbol combinations;
A VLC coding module configured to assign a first codeword to a first symbol combination, wherein the first symbol combination has a first number of consecutive zero coefficients greater than a cutoff run value. A module comprising: first run information indicating: wherein the first codeword comprises an escape code from the first level VLC table;
A video coding device comprising:
[C17] The VLC coding module is
A second code that is from the first level VLC table in a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cutoff run value; The video coding device according to C16, further configured to assign words.
[C18] The VLC coding module is
In a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cut-off run value and less than or equal to a second cut-off run value, 1 excess information and Assigning a first type of codeword comprising block ending information and said second run information;
In a third symbol combination comprising third run information indicating that a third number of consecutive zero coefficients is less than or equal to the cut-off run value and greater than the second cut-off run value, The video coding device according to C16, further configured to allocate a second type codeword comprising run information.
[C19] The video coding device of C18, wherein the second type codeword further comprises some 1 excess information and block termination information.
[C20] a statistical analysis module configured to collect coding statistics for a set of candidate symbol combinations;
The CLC further comprising: a VLC adaptation module configured to adjust a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics. Video coding device.
[C21] The video coding device of C20, wherein the set of candidate symbol combinations comprises symbol combinations having run information indicating that the number of consecutive zero coefficients is less than or equal to the cutoff run value.
[C22] The video coding device according to C16, wherein the cutoff run value is determined based on a size of the transform block.
[C23] the VLC table module is further configured to store data defining a plurality of multi-level VLC tables;
The VLC coding module is further configured to identify a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on a context for the particular symbol combination. The video coding device according to C16, configured.
[C24] The video coding device of C23, wherein the context is determined based on a position index of a first zero coefficient of a run of zero associated with the symbol.
[C25] The video coding device of C23, wherein the context is determined based on precoded run and level values for the transform block.
[C26] The video coding device of C23, wherein the context is signaled in a slice header.
[C27] The video coding device of C16, wherein the second level VLC table comprises structured VLC codes.
[C28] The video coding device according to C16, wherein the second level VLC table comprises a Golombrice code.
[C29] The video coding device according to C16, wherein the video decoding device is a video encoder.
[C30] The video coding device according to C16, wherein the video decoding device is a video decoder.
[C31] A video coding device,
Means for identifying run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, wherein the run information indicates the number of consecutive zero coefficients;
Means for storing data defining a multi-level VLC table, the multi-level VLC table comprising a first level VLC table and a second level VLC table, wherein the first level VLC table is a symbol combination Means for mapping codewords to
For assigning a first codeword to the first symbol combination for a first symbol combination comprising first run information indicating that a first number of consecutive zero coefficients is greater than a cutoff run value Means, wherein the first codeword comprises an escape code from the first level VLC table.
[C32] In the case of the second symbol combination including second run information indicating that the second number of consecutive zero coefficients is equal to or less than the cutoff run value, a second code is included in the second symbol combination. The video coding apparatus of C31, further comprising means for assigning a word, wherein the second codeword is from the first level VLC table.
[C33] In the case of the second symbol combination including second run information indicating that the second number of consecutive zero coefficients is equal to or smaller than the cutoff run value and equal to or smaller than the second cutoff run value. Allocating a first type codeword to the second symbol combination, wherein the first type codeword comprises 1 excess information, block end information, and the second run information. And
For a third symbol combination comprising third run information indicating that a third number of consecutive zero coefficients is less than or equal to the cutoff run value and greater than the second cutoff run value, The video coding apparatus according to C31, further comprising: assigning a second type codeword to the symbol combination of the second type codeword, wherein the second type codeword comprises the third run information.
[C34] The video coding device according to C33, wherein the code word of the second type further includes some 1 excess information and block end information.
[C35] means for collecting coding statistics for a set of candidate symbol combinations;
The video coding apparatus of C31, further comprising means for adjusting a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics.
[C36] The video coding apparatus according to C35, wherein the set of candidate symbol combinations includes symbol combinations having run information indicating that the number of consecutive zero coefficients is equal to or less than the cutoff run value.
[C37] The video coding device according to C31, wherein the cutoff run value is determined based on a size of the transform block.
[C38] means for storing data defining a plurality of multi-level VLC tables;
C31 further comprising means for identifying a particular multilevel VLC table of the plurality of multilevel VLC tables to be used for a particular symbol combination based on context for the symbol combination. Video coding equipment.
[C39] The video coding apparatus of C38, wherein the context is determined based on a position index of a first zero coefficient of a run of zero associated with the symbol.
[C40] The video coding apparatus of C38, wherein the context is determined based on a precoded run value and a level value for the transform block.
[C41] The video coding device according to C38, wherein the context is signaled in a slice header.
[C42] The video coding device according to C31, wherein the second level VLC table comprises a structured VLC code.
[C43] The video coding device according to C31, wherein the second level VLC table includes a Golomb-Rice code.
[C44] The video coding device according to C31, wherein the video coding device is part of a video encoder.
[C45] The video coding device according to C31, wherein the video coding device is part of a video decoder.
[C46] When executed by one or more processors, the one or more processors include:
Identifying run information indicating the number of consecutive zero coefficients for a plurality of symbol combinations of a plurality of digital video block coefficients of the transform block;
Storing data defining a multi-level VLC table comprising a first level VLC table and a second level VLC table mapping code words to symbol combinations;
For a first symbol combination comprising first run information indicating that a first number of consecutive zero coefficients is greater than a cutoff run value, a first code comprising an escape code from the first level VLC table A computer readable storage medium that tangibly stores one or more instructions that cause a word to be assigned to the first symbol combination.
[C47] when executed by the one or more processors, the one or more processors,
For a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cutoff run value, the second symbol combination is from the first level VLC table. The computer readable storage medium of C46, tangibly storing one or more additional instructions that cause a codeword to be assigned to the second symbol combination.
[C48] When executed by the one or more processors, the one or more processors,
In the case of the second symbol combination including second run information indicating that the second number of consecutive zero coefficients is equal to or smaller than the cutoff run value and equal to or smaller than the second cutoff run value, 1 excess information A first type codeword comprising block termination information and the second run information is assigned to the second symbol combination;
For a third symbol combination comprising third run information indicating that a third number of consecutive zero coefficients is less than or equal to the cutoff run value and greater than the second cutoff run value, The computer-readable storage medium of C46, wherein one or more additional instructions that cause a second type codeword comprising run information to be assigned to the third symbol combination are tangibly stored.
[C49] The computer readable storage medium of C48, wherein the second type codeword further comprises some 1 excess information and block termination information.
[C50] When executed by the one or more processors, the one or more processors,
Collect coding statistics for a set of candidate symbol combinations,
Tangibly storing one or more additional instructions that cause a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics; C46 The computer-readable storage medium described in 1.
[C51] The computer readable storage medium of C50, wherein the set of candidate symbol combinations comprises symbol combinations having run information indicating that the number of consecutive zero coefficients is less than or equal to the cutoff run value.
[C52] The computer-readable storage medium according to C46, wherein the cutoff run value is determined based on a size of the transform block.
[C53] When executed by the one or more processors, the one or more processors,
Storing data defining a plurality of multi-level VLC tables;
Tangible one or more additional instructions to identify a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on the context for the symbol combination The computer-readable storage medium according to C46, for storing.
[C54] The computer readable storage medium of C53, wherein the context is determined based on a position index of a first zero coefficient of a zero run associated with the symbol.
[C55] The computer-readable storage medium of C53, wherein the context is determined based on precoded run and level values for the transform block.
[C56] The computer readable storage medium of C53, wherein the context is signaled in a slice header.
[C57] The computer readable storage medium of C46, wherein the second level VLC table comprises structured VLC code.
[C58] The computer readable storage medium of C46, wherein the second level VLC table comprises Golombrice codes.
[C59] The computer readable storage medium of C46, wherein the one or more processors are part of a video encoder.
[C60] The computer readable storage medium of C46, wherein the one or more processors are part of a video decoder.
Claims (60)
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別することであって、前記ラン情報が、連続するゼロ係数の数を示すことと、
マルチレベルVLCテーブルを定義するデータを記憶することであって、前記マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングすることと、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せの場合、前記第1のシンボル組合せに第1のコードワードを割り当てることであって、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備えることと、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第1のタイプのコードワードを割り当てることであって、前記第1のタイプのコードワードが、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備えることと、
を備える方法。 A variable length coding (VLC) method comprising:
Identifying run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, wherein the run information indicates a number of consecutive zero coefficients;
Storing data defining a multi-level VLC table, the multi-level VLC table comprising a first level VLC table and a second level VLC table, wherein the first level VLC table encodes a symbol combination Mapping words,
For the first symbol combination with first run information indicating that the first number of consecutive zero coefficients is greater than the cutoff run value, assigning a first codeword to the first symbol combination The first codeword comprises an escape code from the first level VLC table;
In the case of a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cut-off run value and less than or equal to a second cut-off run value. Assigning a first type of codeword to the symbol combination, wherein the first type of codeword comprises 1 excess information, block ending information, and the second run information;
A method comprising:
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整することとをさらに備える、請求項1に記載の方法。 Collecting coding statistics for a set of candidate symbol combinations;
The method of claim 1, further comprising adjusting a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics.
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別することとをさらに備える、請求項1に記載の方法。 Storing data defining a plurality of multi-level VLC tables;
2. The method of claim 1, further comprising: identifying a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on a context for the symbol combination. the method of.
マルチレベルVLCテーブルを定義するデータを記憶するように構成された可変長コード(VLC)テーブルモジュールであって、前記マルチレベルテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングする、モジュールと、
VLCコーディングモジュールであって、前記VLCコーディングモジュールは、
第1のシンボル組合せに第1のコードワードを割り当てるように構成され、ここにおいて、前記第1のシンボル組合せが、連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備え、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備え、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せに、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備える第1のタイプのコードワードを割り当てるように構成される、モジュールと、
を備えるビデオコーディングデバイス。 A video coding device for coding video data,
A variable length code (VLC) table module configured to store data defining a multi-level VLC table, the multi-level table comprising a first level VLC table and a second level VLC table, A module in which a first level VLC table maps codewords to symbol combinations;
A VLC coding module, the VLC coding module comprising :
A first codeword is configured to be assigned a first codeword, wherein the first symbol combination is a first indicating that a first number of consecutive zero coefficients is greater than a cutoff run value. with the run information, the first codeword, e Bei escape codes from the first level VLC table,
In a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cut-off run value and less than or equal to a second cut-off run value, 1 excess information and A module configured to assign a first type of codeword comprising block ending information and the second run information ;
A video coding device comprising:
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せに、前記第1レベルVLCテーブルからのものである第2のコードワードを割り当てるようにさらに構成される、請求項16に記載のビデオコーディングデバイス。 The VLC coding module is
A second code that is from the first level VLC table in a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cutoff run value; The video coding device of claim 16, further configured to assign words.
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せに、前記第3のラン情報を備える第2のタイプのコードワードを割り当てるようにさらに構成される、請求項16に記載のビデオコーディングデバイス。 The VLC coding module,
And the third number of zero coefficients for continuous following the cut-off run value, the third symbol combination comprising a third run information indicating that larger than the second cut-off run value, the third The video coding device of claim 16, further configured to assign a second type of codeword comprising the following run information.
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するように構成されたVLC適応モジュールとをさらに備える、請求項16に記載のビデオコーディングデバイス。 A statistical analysis module configured to collect coding statistics for a set of candidate symbol combinations;
The VLC adaptation module configured to adjust a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics. Video coding device as described in.
前記VLCコーディングモジュールが、特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記特定のシンボル組合せ向けのコンテキストに基づいて識別するようにさらに構成される、請求項16に記載のビデオコーディングデバイス。 The VLC table module is further configured to store data defining a plurality of multi-level VLC tables;
The VLC coding module is further configured to identify a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on a context for the particular symbol combination. The video coding device of claim 16, wherein the video coding device is configured.
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、前記ラン情報が、連続するゼロ係数の数を示す、手段と、
マルチレベルVLCテーブルを定義するデータを記憶するための手段であって、前記マルチレベルVLCテーブルが、第1レベルVLCテーブルと第2レベルVLCテーブルとを備え、前記第1レベルVLCテーブルが、シンボル組合せにコードワードをマッピングする、手段と、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せに対して、前記第1のシンボル組合せに第1のコードワードを割り当てるための手段であって、前記第1のコードワードが、前記第1レベルVLCテーブルからのエスケープコードを備える、手段と、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第1のタイプのコードワードを割り当てるための手段であって、前記第1のタイプのコードワードが、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備える、手段と、
を備えるビデオコーディング装置。 A video coding device,
Means for identifying run information for a plurality of symbol combinations of a plurality of digital video block coefficients of a transform block, wherein the run information indicates the number of consecutive zero coefficients;
Means for storing data defining a multi-level VLC table, the multi-level VLC table comprising a first level VLC table and a second level VLC table, wherein the first level VLC table is a symbol combination Means for mapping codewords to
For assigning a first codeword to the first symbol combination for a first symbol combination comprising first run information indicating that a first number of consecutive zero coefficients is greater than a cutoff run value Means wherein the first codeword comprises an escape code from the first level VLC table ;
In the case of a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cut-off run value and less than or equal to a second cut-off run value. Means for assigning a first type codeword to the symbol combination of the first type, wherein the first type codeword comprises 1 excess information, block termination information, and the second run information. Means,
A video coding device comprising:
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合の間のマッピングを、前記コーディング統計に基づいて調整するための手段とをさらに備える、請求項31に記載のビデオコーディング装置。 Means for collecting coding statistics for a set of candidate symbol combinations;
The video coding of claim 31, further comprising means for adjusting a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations based on the coding statistics. apparatus.
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別するための手段とをさらに備える、請求項31に記載のビデオコーディング装置。 Means for storing data defining a plurality of multi-level VLC tables;
32. means for identifying a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on a context for the symbol combination. A video coding device according to 1.
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関する、連続するゼロ係数の数を示すラン情報を識別させ、
シンボル組合せにコードワードをマッピングする第1レベルVLCテーブルと第2レベルVLCテーブルとを備えるマルチレベルVLCテーブルを定義するデータを記憶させ、
連続するゼロ係数の第1の数がカットオフラン値より大きいことを示す第1のラン情報を備える第1のシンボル組合せの場合、前記第1レベルVLCテーブルからのエスケープコードを備える第1のコードワードを、前記第1のシンボル組合せに割り当てさせ、
連続するゼロ係数の第2の数が前記カットオフラン値以下であり、第2のカットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、1超過情報と、ブロック終結情報と、前記第2のラン情報とを備える第1のタイプのコードワードを前記第2のシンボル組合せに割り当てさせる、
1つまたは複数の命令を有形に記憶するコンピュータ可読記憶媒体。 When executed by one or more processors, the one or more processors include:
Identifying run information indicating the number of consecutive zero coefficients for a plurality of symbol combinations of a plurality of digital video block coefficients of the transform block;
Storing data defining a multi-level VLC table comprising a first level VLC table and a second level VLC table mapping code words to symbol combinations;
For a first symbol combination comprising first run information indicating that a first number of consecutive zero coefficients is greater than a cutoff run value, a first code comprising an escape code from the first level VLC table the word is allocated to the first symbol combination,
In the case of the second symbol combination including second run information indicating that the second number of consecutive zero coefficients is equal to or smaller than the cutoff run value and equal to or smaller than the second cutoff run value, 1 excess information A first type codeword comprising block termination information and the second run information is assigned to the second symbol combination;
A computer readable storage medium that tangibly stores one or more instructions.
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第1レベルVLCテーブルからのものである第2のコードワードを、前記第2のシンボル組合せに割り当てさせる1つまたは複数の追加命令を有形に記憶する、請求項46に記載のコンピュータ可読記憶媒体。 When executed by the one or more processors, the one or more processors,
For a second symbol combination comprising second run information indicating that a second number of consecutive zero coefficients is less than or equal to the cutoff run value, the second symbol combination is from the first level VLC table. 47. The computer readable storage medium of claim 46, tangibly storing one or more additional instructions that cause a codeword to be assigned to the second symbol combination.
連続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のラン情報を備える第2のタイプのコードワードを前記第3のシンボル組合せに割り当てさせる、1つまたは複数の追加命令を有形に記憶する、請求項46に記載のコンピュータ可読記憶媒体。 When executed by the one or more processors, the one or more processors ,
And the third number of zero coefficients for continuous following the cut-off run value, in the case of the third symbol combination comprising a third run information indicating that larger than the second cut-off run value, the first 47. The computer readable storage medium of claim 46, tangibly storing one or more additional instructions that cause a second type codeword comprising 3 run information to be assigned to the third symbol combination.
候補シンボル組合せの集合に関するコーディング統計を収集させ、
前記第1レベルVLCテーブルのコードワードと、候補シンボル組合せの前記集合の部分集合との間のマッピングを、前記コーディング統計に基づいて調整させる、1つまたは複数の追加命令を有形に記憶する、請求項46に記載のコンピュータ可読記憶媒体。 When executed by the one or more processors, the one or more processors,
Collect coding statistics for a set of candidate symbol combinations,
Tangibly storing one or more additional instructions that cause a mapping between codewords of the first level VLC table and a subset of the set of candidate symbol combinations to be adjusted based on the coding statistics. Item 47. The computer-readable storage medium according to Item 46.
複数のマルチレベルVLCテーブルを定義するデータを記憶させ、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベルVLCテーブルのうち特定のマルチレベルVLCテーブルを、前記シンボル組合せ向けのコンテキストに基づいて識別させる、1つまたは複数の追加命令を有形に記憶する、請求項46に記載のコンピュータ可読記憶媒体。 When executed by the one or more processors, the one or more processors,
Storing data defining a plurality of multi-level VLC tables;
Tangible one or more additional instructions to identify a particular multi-level VLC table of the plurality of multi-level VLC tables to be used for a particular symbol combination based on the context for the symbol combination 48. The computer readable storage medium of claim 46, wherein the storage is a storage medium.
Applications Claiming Priority (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US32264110P | 2010-04-09 | 2010-04-09 | |
| US61/322,641 | 2010-04-09 | ||
| US12/979,751 US8410959B2 (en) | 2010-04-09 | 2010-12-28 | Variable length codes for coding of video data |
| US12/979,751 | 2010-12-28 | ||
| PCT/US2011/031817 WO2011127423A1 (en) | 2010-04-09 | 2011-04-08 | Variable length codes for coding of video data |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2013524693A JP2013524693A (en) | 2013-06-17 |
| JP5547335B2 true JP5547335B2 (en) | 2014-07-09 |
Family
ID=48778623
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2013503996A Expired - Fee Related JP5547335B2 (en) | 2010-04-09 | 2011-04-08 | Variable length code for video data coding |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP5547335B2 (en) |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2959916B2 (en) * | 1992-10-28 | 1999-10-06 | 松下電器産業株式会社 | Versatile escape run level coder for digital video coder |
| JP3217507B2 (en) * | 1992-12-22 | 2001-10-09 | 株式会社東芝 | Image compression device |
| JPH06237184A (en) * | 1993-02-10 | 1994-08-23 | Fujitsu Ltd | Variable length coding circuit |
| KR0155784B1 (en) * | 1993-12-16 | 1998-12-15 | 김광호 | Adaptable variable coder/decoder method of image data |
| JPH09102746A (en) * | 1995-10-04 | 1997-04-15 | Fujitsu Ltd | Variable length coding circuit |
| JP2002118470A (en) * | 2000-08-04 | 2002-04-19 | Matsushita Electric Ind Co Ltd | Variable length encoding device and variable length encoding method |
| FR2879861B1 (en) * | 2004-12-21 | 2007-06-29 | Auteuil Participation Et Conse | IMAGE COMPRESSION METHOD |
-
2011
- 2011-04-08 JP JP2013503996A patent/JP5547335B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2013524693A (en) | 2013-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8410959B2 (en) | Variable length codes for coding of video data | |
| JP6599489B2 (en) | Coding transform coefficients for video coding | |
| JP5944459B2 (en) | Adapting intra block coding frequency transform based on size and intra mode or based on edge detection | |
| JP6271477B2 (en) | Video coding using function-based scan order of transform coefficients | |
| JP5628438B2 (en) | Adaptive scanning of transform coefficients for video coding | |
| CN103718554B (en) | Decoding for the conversion coefficient of video coding | |
| JP6293756B2 (en) | Adjustment of transform criteria in scalable video coding | |
| TW201937926A (en) | Probability initialization and signaling for adaptive arithmetic coding in video coding | |
| US20120147971A1 (en) | Codeword adaptation for variable length coding | |
| JP2015527812A (en) | Adaptive difference domain space and temporal reference reconstruction and smoothing | |
| TW201313031A (en) | VLC coefficient coding for large chroma block | |
| KR20140016983A (en) | Run-mode based coefficient coding for video coding | |
| JP5766817B2 (en) | Variable length coding of video block coefficients | |
| JP5547335B2 (en) | Variable length code for video data coding | |
| HK1189318B (en) | Coding of transform coefficients for video coding |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131129 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131210 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140310 |
|
| 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: 20140415 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140514 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5547335 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| LAPS | Cancellation because of no payment of annual fees |