Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5547335B2 - Variable length code for video data coding - Google Patents
[go: Go Back, main page]

JP5547335B2 - Variable length code for video data coding - Google Patents

Variable length code for video data coding Download PDF

Info

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
Application number
JP2013503996A
Other languages
Japanese (ja)
Other versions
JP2013524693A (en
Inventor
カークゼウィックズ、マルタ
ワン、シャンリン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/979,751 external-priority patent/US8410959B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013524693A publication Critical patent/JP2013524693A/en
Application granted granted Critical
Publication of JP5547335B2 publication Critical patent/JP5547335B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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 is a block diagram illustrating a video encoding and decoding system that implements various aspects of the disclosure. FIG. 図1に示すビデオ符号器の一例を示すブロック図。The block diagram which shows an example of the video encoder shown in FIG. 図1に示すビデオ復号器の一例を示すブロック図。FIG. 2 is a block diagram showing an example of a video decoder shown in FIG. 1. 本開示の態様を実装するように構成されたエントロピー符号化ユニットを示すブロック図。FIG. 4 is a block diagram illustrating an entropy encoding unit configured to implement aspects of the present disclosure. 本開示の態様を実装するように構成されたエントロピー復号ユニットを示すブロック図。FIG. 4 is a block diagram illustrating an entropy decoding unit configured to implement aspects of the present disclosure. 本開示で説明するコーディング技法を示すフローチャート。6 is a flowchart illustrating a coding technique described in this disclosure. 本開示で説明するコーディング技法を示すフローチャート。6 is a flowchart illustrating a coding technique described in this disclosure. 本開示で説明するコーディング技法を示すフローチャート。6 is a flowchart illustrating a coding technique described in this disclosure. ジグザグ走査方式(zig-zag scanning scheme)の例を示す図。The figure which shows the example of a zigzag scanning system (zig-zag scanning scheme). 変換ブロックの例を示す図。The figure which shows the example of a conversion block.

詳細な説明Detailed description

本開示の態様は概して、ビデオコーディングに関し、より詳細には、ブロックベースのビデオコーディングに関する。ソースデバイスから受信デバイスに送信されるのに先立って、ビデオブロックの変換係数などのデジタルビデオブロック係数と、残差ビデオデータとを表す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 decoding system 10 that implements various aspects of the present disclosure. As shown in FIG. 1, the system 10 includes a source device 12 that transmits encoded video data to a receiving device 14 via a communication channel 16. Source device 12 may include a video source 18, a video encoder 20, and a transmitter 22. The receiving device 14 may include a receiver 24, a video decoder 26, and a video display device 28. System 10 may be configured to implement various techniques described in this disclosure.

図1の例では、通信チャネル16は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理的伝送線路など、ワイヤレスまたは有線の任意の通信媒体、あるいはワイヤレスおよび有線の媒体の任意の組合せを含むことができる。チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信チャネル16は、一般に、ビデオデータをソースデバイス12から受信デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。   In the example of FIG. 1, the communication channel 16 includes any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines, or any combination of wireless and wired media. be able to. Channel 16 may form part of a packet-based network, such as a local area network, a wide area network, or a global network such as the Internet. Communication channel 16 generally represents any communication medium or collection of various communication media suitable for transmitting video data from source device 12 to receiving device 14.

ソースデバイス12は、受信デバイス14に送信するためのビデオを生成する。ただし、場合によっては、デバイス12、14は、実質的に対称に動作することができる。たとえば、デバイス12、14の各々は、ビデオ符号化および復号構成要素を含むことができる。したがって、システム10は、たとえば、ビデオストリーミング、ビデオブロードキャスト、またはビデオ電話のためのビデオデバイス12とビデオデバイス14との間の一方向または双方向のビデオ送信をサポートし得る。したがって、本開示の態様は、ソースデバイス12、受信デバイス14のいずれでも、または両方で実装することができる。   Source device 12 generates video for transmission to receiving device 14. However, in some cases, the devices 12, 14 can operate substantially symmetrically. For example, each of the devices 12, 14 can include a video encoding and decoding component. Thus, system 10 may support one-way or two-way video transmission between video device 12 and video device 14 for, for example, video streaming, video broadcast, or video telephony. Accordingly, aspects of the present disclosure can be implemented on either the source device 12, the receiving device 14, or both.

ビデオソース18は、1つまたは複数のビデオカメラなどのビデオキャプチャデバイス(video capture device)、あらかじめキャプチャされたビデオを含んでいるビデオアーカイブ、またはビデオコンテンツプロバイダから供給されたライブビデオ、を含み得る。さらなる代替として、ビデオソース18はソースビデオとしてのコンピュータグラフィックベースのデータ、またはライブビデオとコンピュータ生成ビデオ(computer-generated video)との組合せを生成し得る。場合によっては、ビデオソース18がカメラである場合、ソースデバイス12および受信デバイス14は、いわゆるカメラ付き携帯電話またはビデオ電話を形成し得る。各場合において、キャプチャされたビデオ、プリキャプチャされたビデオ、またはコンピュータ生成ビデオは、送信機22とチャネル16と受信機24とを介してビデオソースデバイス12からビデオ受信デバイス14のビデオ復号器26に送信するために、ビデオ符号器20によって符号化され得る。ディスプレイデバイス28は、液晶ディスプレイ(LCD)、プラズマディスプレイまたは有機発光ダイオード(OLED)ディスプレイなどの様々なディスプレイデバイスのいずれかを含み得る。   Video source 18 may include a video capture device, such as one or more video cameras, a video archive containing pre-captured video, or live video supplied by a video content provider. As a further alternative, video source 18 may generate computer graphic-based data as source video, or a combination of live video and computer-generated video. In some cases, if video source 18 is a camera, source device 12 and receiving device 14 may form so-called camera phones or video phones. In each case, the captured video, pre-captured video, or computer-generated video is transmitted from the video source device 12 to the video decoder 26 of the video receiving device 14 via the transmitter 22, channel 16 and receiver 24. It can be encoded by video encoder 20 for transmission. Display device 28 may include any of a variety of display devices such as a liquid crystal display (LCD), a plasma display, or an organic light emitting diode (OLED) display.

ビデオ符号器20およびビデオ復号器26は、空間、時間および/または信号対雑音比(SNR)スケーラビリティのためのスケーラブル・ビデオコーディング(scalable video coding)(SVC)をサポートするように構成され得る。いくつかの態様では、ビデオ符号器20およびビデオ復号器26は、SVCのためのファイン・グラニュラリティSNRスケーラビリティ(fine granularity SNR scalability)(FGS)コーディングをサポートするように構成できる。いくつかの例では、デオ符号器20およびビデオ復号器26は、ベースレイヤおよび1つまたは複数のスケーラブル・エンハンスメント・レイヤ(scalable enhancement layers)の符号化、送信および復号をサポートすることによって様々な程度のスケーラビリティをサポートすることができる。スケーラブル・ビデオコーディングの場合、ベースレイヤは最小品質レベルでビデオデータを搬送する。1つまたは複数のエンハンスメントレイヤは追加のビットストリームを搬送して、より高い空間的レベル、時間的レベルおよび/またはSNRレベルをサポートする。   Video encoder 20 and video decoder 26 may be configured to support scalable video coding (SVC) for spatial, temporal and / or signal-to-noise ratio (SNR) scalability. In some aspects, video encoder 20 and video decoder 26 may be configured to support fine granularity SNR scalability (FGS) coding for SVC. In some examples, the video encoder 20 and video decoder 26 may vary to varying degrees by supporting base layer and one or more scalable enhancement layers encoding, transmission, and decoding. Can support the scalability of. For scalable video coding, the base layer carries video data with a minimum quality level. One or more enhancement layers carry additional bitstreams to support higher spatial, temporal and / or SNR levels.

ビデオ符号器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 video encoder 20 and the video decoder 26 are MPEG-2, MPEG-4, ITU-TH, H.264, etc. 263, or ITU-T H.264. H.264 / MPEG-4 may operate according to a video compression standard such as Advanced Video Coding (AVC). The video encoder 20 and the video decoder 26 are ITU-T H.264. It may operate according to next generation video coding standards such as H.265.

ビデオ符号器20およびビデオ復号器26はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せとして実装できる。ビデオ符号器20およびビデオ復号器26の各々を1つまたは複数の符号器または復号器中に含めることができ、そのいずれかは複合符号器/復号器(combined encoder/decoder)(コーデック(CODEC))の一部としてそれぞれモバイルデバイス、加入者デバイス、ブロードキャストデバイス、サーバなどに統合できる。さらに、ソースデバイス12および受信デバイス14はそれぞれ、符号化ビデオの送信および受信のために適切な変調、復調、周波数変換、フィルタ処理、および増幅器構成要素を含み、適用可能な場合、ワイヤレス通信をサポートするために十分な無線周波数(RF)ワイヤレス構成要素およびアンテナを含むことができる。ただし、説明しやすいように、そのような構成要素は図1に示していない。   Video encoder 20 and video decoder 26 are each one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, software, hardware Hardware, firmware, or any combination thereof. Each of video encoder 20 and video decoder 26 may be included in one or more encoders or decoders, either of which may be a combined encoder / decoder (CODEC) ) Can be integrated into mobile devices, subscriber devices, broadcast devices, servers, etc., respectively. In addition, source device 12 and receiving device 14 each include appropriate modulation, demodulation, frequency conversion, filtering, and amplifier components for transmission and reception of encoded video, supporting wireless communications where applicable. Sufficient radio frequency (RF) wireless components and antennas can be included. However, for ease of explanation, such components are not shown in FIG.

ビデオシーケンスは一連のビデオフレームを含む。ビデオ符号器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. Video encoder 20 operates on blocks of pixels within individual video frames to encode video data. Video blocks can be fixed or change in size, and may vary in size depending on the specified coding standard. Each video frame includes a series of slices. Each slice can include a series of macroblocks, which can be arranged in sub-blocks. As an example, ITU-T H.I. The H.264 standard allows intra prediction of various block sizes, such as 16 × 16, 8 × 8, 4 × 4 for luma components, and 8 × 8 for chroma components. Supports various, such as 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 and 4x4 for luma component, and corresponding scaled size for chroma component Supports large block size inter prediction.

ビデオブロックは、小さいほどより良い解像度が得られ、より高い詳細レベルを含むビデオフレームの位置特定に使用することができる。一般に、マクロブロック(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, video encoder 20 applies a transform to the 8 × 8 residual block or 4 × 4 residual block. When the intra_16 × 16 prediction mode is used, an additional transform can be applied to the 4 × 4 block of DC coefficients for the chroma or luma component. Aspects of this disclosure may be described for illustrative purposes at the slice level, but the same techniques can also be applied at the picture level.

概して、ビデオ符号器20は、ブロックに離散コサイン変換(DCT)を適用し、変換係数とも呼ばれ、またはより一般的にはデジタルビデオブロック係数と呼ばれるDCT係数を生成する。DCTは、非ゼロ値をもつ、結果として生じるDCT係数が、グループにまとめられように、および、ゼロ値をもつものがグループにまとめられるように、全体として順序付けられるDCT係数を生成する。ビデオ符号器20は次に、特定の走査順(scanning order)またはパターンに従って、結果として生じるDCT係数を走査することを伴う形のシリアライゼーション(serialization)を実施する。ジグザグ走査を、図9の例を参照して以下で示すが、ゼロおよび非ゼロDCT係数のグループを抽出するように、垂直、水平または他の走査パターンなど、様々な走査パターンが利用され得る。   In general, video encoder 20 applies a discrete cosine transform (DCT) to a block to generate DCT coefficients, also referred to as transform coefficients, or more commonly as digital video block coefficients. The DCT generates DCT coefficients that are generally ordered so that the resulting DCT coefficients with non-zero values are grouped together and those with zero values are grouped together. Video encoder 20 then performs a form of serialization that involves scanning the resulting DCT coefficients according to a particular scanning order or pattern. A zigzag scan is shown below with reference to the example of FIG. 9, but various scan patterns can be utilized, such as vertical, horizontal, or other scan patterns, to extract groups of zero and non-zero DCT coefficients.

抽出されると、ビデオ符号器20は、シリアル化された後に連続する(すなわち、相互に隣接する)ゼロDCT係数の総数(すなわち、いわゆる「ラン(run)」)の計算を通常は伴う、一般に「ランレングスコーディング(run-length coding)」と呼ばれるものを実施する。図9、10の例とともに以下でより詳しく示すように、シリアル化DCT係数(serialized DCT coefficients)を記述する1つまたは複数のシンボル組合せを生成することができる。シンボル組合せは、受信デバイス14によって、シリアル化DCT係数を再構成するのに使われ得るランレングス、GTO、EOB、および他の情報などの情報を表すことができる。シンボル組合せを使って、受信デバイス14は、シリアル化DCT係数を再構成することができ、シンボル組合せを使わずに各DCT係数が別々に送られシグナリングされた場合よりも少ないデータビットを使って、最終的にはデータブロックを再構成することができる。   Once extracted, video encoder 20 typically involves calculating the total number of zero DCT coefficients that are serialized (ie, adjacent to each other) (ie, so-called “runs”), generally Perform what is called "run-length coding". One or more symbol combinations describing serialized DCT coefficients can be generated, as will be described in more detail below with the examples of FIGS. The symbol combination may represent information such as run length, GTO, EOB, and other information that may be used by the receiving device 14 to reconstruct the serialized DCT coefficients. Using symbol combinations, the receiving device 14 can reconstruct serialized DCT coefficients, using fewer data bits than if each DCT coefficient was sent and signaled separately without using symbol combinations, Eventually, the data block can be reconstructed.

次に、ビデオ符号器20は、一般にエントロピーコーディング(entropy coding)と呼ばれる統計的ロスレスコーディング(statistical lossless coding)を実施する。エントロピーコーディングは、受信デバイス14がDCT係数の集合を再構成するためにソースデバイス12から受信デバイス14に送信される必要があるビットの数をさらに低減するのに使われるロスレスプロセス(lossless process)である。エントロピーコーディングは、所与のシンボル組合せ集合のシンボル分布プロパティを使用し、概して、より頻繁に生起するシンボル組合せには、より短いコードワードを、比較的頻繁には生起しないシンボル組合せには、より長いコードワードを割り当てる。   Next, the video encoder 20 performs statistical lossless coding, commonly referred to as entropy coding. Entropy coding is a lossless process that is used to further reduce the number of bits that the receiving device 14 needs to be transmitted from the source device 12 to the receiving device 14 to reconstruct the set of DCT coefficients. is there. Entropy coding uses the symbol distribution properties of a given set of symbol combinations, generally shorter code words for more frequently occurring symbol combinations and longer for symbol combinations that do not occur relatively frequently. Assign a codeword.

ビデオ符号器20およびビデオ復号器26は、いくつかの動的実装形態では、それぞれ、所与のコンテキストに対して、そのコンテキストにおける、最も頻繁に生起するシンボル組合せが、より短いコードワードにマッピングされ得るように、いくつかのシンボル組合せの生起確率(occurrence probabilities)を追跡する機能性を含む。シンボル生起確率は、特定のシンボル組合せが生起した合計回数、または特定のシンボル組合せが生起した重み付き合計回数に基づいて追跡することができ、より最近生起したシンボル組合せは、より以前に生起したシンボル組合せより重く重み付けられる。シンボル生起確率は、T個の最も直近のシンボル組合せなど、特定のシンボル組合せが特定のウィンドウ中に生起した合計回数、または重み付き合計回数に基づいて追跡することもできる。   Video encoder 20 and video decoder 26, in some dynamic implementations, each map a most frequently occurring symbol combination in that context to a shorter codeword for a given context. Includes functionality to track the occurrence probabilities of some symbol combinations to obtain. Symbol probabilities can be tracked based on the total number of times a particular symbol combination has occurred, or the weighted total number of times that a particular symbol combination has occurred, where a more recent occurrence of a symbol combination Weighted more heavily than combinations. Symbol occurrence probabilities can also be tracked based on the total number of times a particular symbol combination has occurred in a particular window, such as the T most recent symbol combinations, or a weighted total number of times.

コードワードへのシンボル組合せのマッピングは、ビデオ符号器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 video encoder 20 and video decoder 26 in multiple VLC tables or any other type of data structure. The mapping stored in the VLC table may be adaptable so that when the tracked occurrence probability for a symbol combination varies, the mapping of the symbol combination to the codeword may also vary. If the probability of occurrence of some symbol combinations is more or less likely than the occurrence of other symbol combinations, video encoder 20 and video decoder 26 may, in this dynamic implementation, The VLC table may be updated by remapping a portion to either a longer or shorter codeword based on its probability of occurrence. In such a dynamic implementation, video encoder 20 and video decoder 26 are subject to fluctuations in the VLC table that occur in video encoder 20 and data that reflects the fluctuations between source device 12 and receiving device 14. Can be configured to implement the same data processing techniques as can be reflected in the video decoder 26 without being sent on.

以下でより詳細に説明するように、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 video encoder 20 must track the probability of occurrence can be much larger, which can reduce the efficiency of symbol adaptation in a dynamic implementation as mentioned above. As a result of the reduced efficiency of symbol adaptation, overall coding efficiency and overall system performance may also be reduced.

ビデオの一部分に対するコンテンツ統計が比較的一定であると仮定すると、ビデオ符号器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 video encoder 20 and video decoder 26 process a sufficiently large number of symbol combinations, the occurrence probability tracked for the symbol combinations is generally compared. Reach a stable value. In such cases, the mapping of codewords to symbol combinations maintained in the VLC table will also be relatively stable, and video encoder 20 and video decoder 26 may remap symbol combinations to codewords. It is only necessary to update the stored VLC table from time to time. However, when there is significant variation in the content statistics for the initial stage of entropy coding or for a portion of the video, the probability of occurrence for some symbol combinations stored in the VLC table reflects the actual probability of occurrence for that video portion. The coding efficiency can be degraded. If a larger number of possible symbol combinations are associated with a transformation greater than 4 × 4, they are processed by video encoder 20 before the number of occurrences of the symbol combination becomes representative of its actual probability of occurrence. The number of required symbol combinations can increase significantly, thus prolonging the period of such inefficient entropy coding. Aspects of the present disclosure can improve coding efficiency by improving the construction and maintenance of VLC tables and thus reducing the impact of such inefficient entropy coding periods on overall coding efficiency.

さらに、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, video encoder 20 stores data defining one or more multi-level VLC tables. Limit the symbol combinations that are candidates for the first level of the multi-level VLC table based on the number of consecutive zero coefficients (ie, run length) represented by the particular symbol combination. This first level of the multi-level VLC table can utilize general VLC techniques to associate symbol combinations with codewords. The second level of the multi-level VLC table can use structured VLC codes such as Golomb-Rice codes. Due to the structured nature of the second level VLC table, it is not necessary to store this second level of the multi-level VLC table. This is because, as an example, the Golomb-Rice code can be determined dynamically based on several parameters that are known to both the encoder and the decoder. The first level of the disclosed multi-level VLC table may be characterized as storing a mapping between symbol combinations and codewords for the most frequently occurring symbol combinations. The second level of the multi-level VLC table described in this disclosure provides a way to dynamically determine codewords for symbol combinations that do not occur relatively frequently without storing any actual table in memory. Can be characterized as

この点について、本開示の態様は、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 video encoder 20 to track the probability of occurrence by limiting the symbol combinations that are candidates for the first level of the multi-level VLC table based on the number of consecutive zero coefficients represented by a particular symbol combination The total number of certain symbol combinations is reduced, thereby allowing the tracking probability to be adapted more quickly, thus reducing the period of inefficient entropy coding discussed above. Furthermore, the amount of memory consumed by the codebook can also be reduced as a result of relying on a second level structured codeword that does not require any stored codebook to be generated. Improved encoding and decoding efficiency reduces the number of bits required to be sent from the source device 12 to the receiving device 14 in order for the video decoder 26 of the receiving device 14 to reconstruct the transform coefficient set. be able to. Furthermore, improved coding and decoding efficiency facilitates more efficient power usage, which is particularly important in the context of battery-powered portable devices, such as handsets or other cellular phones, including so-called “smartphones”. possible.

こうした技法を例示するために、ビデオ符号器20は、複数の変換係数に関して、連続しているとともにゼロの値をもつ係数の数を示すラン情報を判断すればよい。ビデオ符号器20は、上記で述べ、後でより詳しく説明するように、マルチレベルVLCテーブルを定義するデータを記憶する。マルチレベルVLCテーブルは、第1レベルVLCテーブルと第2レベルVLCテーブルとを備える。第1レベルVLCテーブルは、上述したようにして、コードワードをシンボル組合せにマッピングする。カットオフラン値より大きいラン値(run value)を表すシンボル組合せを識別したことに応答して、ビデオ符号器20は、第1レベルVLCテーブルからのエスケープコードと、第2レベルVLCテーブルからのコードワードとを、シンボル組合せに割り当てる。   To illustrate such a technique, video encoder 20 may determine run information indicating the number of coefficients that are continuous and have a value of zero for a plurality of transform coefficients. Video encoder 20 stores data defining a multi-level VLC table, as described above and described in more detail below. The multi-level VLC table includes a first level VLC table and a second level VLC table. The first level VLC table maps codewords to symbol combinations as described above. In response to identifying a symbol combination that represents a run value greater than the cut-off run value, video encoder 20 performs an escape code from the first level VLC table and a code from the second level VLC table. Assign words to symbol combinations.

ラン値は概して、使われるコーディング方式に依存して、非ゼロ係数に先行し、または続く、連続するゼロ係数の数を指す。カットオフラン値は概して、特定のシンボル組合せのラン値に基づいて、その特定のシンボル組合せがどのようにコーディングされるべきかを決定する閾値を指す。たとえば、カットオフラン値は、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 video decoder 26 detects the escape code, it further decodes the codeword from the second level VLC table. Coding a symbol combination as an escape code and a concatenation of codewords from the second level VLC table generally requires more bits than coding a symbol combination as a codeword from the first level VLC table. . Therefore, aspects of the present disclosure code more frequently occurring symbol combinations as codewords in the first level VLC table, and symbol combinations that do not occur relatively frequently are escape codes and second level VLC tables. Coding as a concatenation of codewords from

図2は、図1に示すビデオ符号器20などのビデオ符号器20の一例を示すブロック図である。ビデオ符号器20は、ビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは時間的予測を利用して、ビデオシーケンスの隣接フレーム内のビデオの時間的冗長性を低減または除去する。インターコーディングの場合、ビデオ符号器20は、隣接フレーム間でビデオブロックを一致させる動作を追跡するために動き推定を実行する。   FIG. 2 is a block diagram illustrating an example of a video encoder 20 such as the video encoder 20 shown in FIG. Video encoder 20 may perform intra-coding and inter-coding of blocks within the video frame. Intra coding relies on spatial prediction to reduce or remove the spatial redundancy of video within a given video frame. Intercoding utilizes temporal prediction to reduce or remove temporal redundancy of video in adjacent frames of the video sequence. For inter-coding, video encoder 20 performs motion estimation to track the operation of matching video blocks between adjacent frames.

図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 video encoder 20 receives a current video block 30 in a video frame to be encoded. In the example of FIG. 2, the video encoder 20 includes a motion estimation unit 32, a reference frame store 34, a motion compensation unit 36, a block transform unit 38, a quantization unit 40, an inverse quantization unit 42, and an inverse quantization unit. A transform unit 44 and an entropy coding unit 46 are included. In order to remove blocking artifacts, an in-loop deblocking filter (not shown) can be applied to the filter block. Video encoder 20 also includes adder 48 and adder 50. FIG. 2 shows the temporal prediction components of video encoder 20 for intercoding video blocks. Although not shown in FIG. 2 for ease of explanation, video encoder 20 may also include a spatial prediction component for intra coding of several video blocks.

動き推定ユニット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)を生成する。   Motion estimation unit 32 compares video block 30 with blocks in one or more adjacent video frames to generate one or more motion vectors. One or more adjacent frames may be retrieved from a reference frame store 34 that may include any type of memory or data storage device to store video blocks reconstructed from previously encoded blocks. Motion estimation may be performed on blocks of variable size, eg, 32 × 32, 32 × 16, 16 × 32, 16 × 16, 16 × 8, 8 × 16, 8 × 8 or smaller block sizes. it can. The motion estimation unit 32 identifies, for example, one or more blocks in the adjacent frame that most closely match the current video block 30 based on a rate distortion model, and between the blocks in the adjacent frame and the current video block. Judge the displacement. Based on this, the motion estimation unit 32 determines the magnitude of the displacement between the current video block 30 and one or more matching blocks from the reference frame used to code the current video block 30 and One or more motion vectors (MV) are generated that indicate a trajectory.

動きベクトルは、ハーフもしくはクォータピクセル精度、またはさらにより微細な精度を有することができ、それによりビデオ符号器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 video encoder 20 tracks motion with better accuracy than integer pixel locations, and better It becomes possible to acquire a prediction block. When using motion vectors with fractional pixel values, an interpolation operation is performed in motion compensation unit 36. Motion estimation unit 32 uses several criteria, such as a rate distortion model, to identify the best block patitions and one or more motion vectors for the video block. For example, in the case of bi-directional prediction, there can be multiple motion vectors. Using the resulting block partitioning and motion vectors, motion compensation unit 36 forms a predictive video block.

ビデオ符号器20は、加算器48において、元のカレントビデオブロック30から、動き補償ユニット36によって生成された予測ビデオブロックを減算することによって残差ビデオブロックを形成する。ブロック変換ユニット38は、4×4または8×8などの変換を残差ブロックに適用して、残差変換ブロック係数を生成する。量子化ユニット40は、ビットレートをさらに低減するために残差変換ブロック係数を量子化する。エントロピーコーディングユニット46は、量子化された係数をエントロピーコーディングして、ビットレートをなお一層低減する。   Video encoder 20 forms a residual video block in adder 48 by subtracting the predicted video block generated by motion compensation unit 36 from the original current video block 30. Block transform unit 38 applies a transform such as 4 × 4 or 8 × 8 to the residual block to generate a residual transform block coefficient. The quantization unit 40 quantizes the residual transform block coefficients to further reduce the bit rate. Entropy coding unit 46 entropy codes the quantized coefficients to further reduce the bit rate.

図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 entropy encoding unit 46 includes variable length coding (VLC) for applying VLC coding to quantized block coefficients. ) Operates as a unit. In particular, entropy encoding unit 46 may be configured to perform VLC coding of digital video block coefficients according to the techniques described above with respect to FIG. 1 and below with respect to FIGS. Entropy coding unit 46 performs some form of lossless statistical coding, and for this reason entropy coding unit 46 may also be referred to as “lossless statistical coding unit 46”. In general, video decoder 26, described in more detail in FIGS. 3 and 5, performs inverse operations, including VLC decoding, to decode and reconstruct the encoded video.

逆量子化ユニット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. Adder 50 adds the reconstructed residual block to the motion compensated prediction block generated by motion compensation unit 36 to generate a reconstructed video block for storage in reference frame store 34. To do. The reconstructed video block is used by motion estimation unit 32 and motion compensation unit 36 to encode the blocks in subsequent video frames.

図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 video decoder 26 of FIG. Video decoder 26 may perform intra decoding and inter decoding of blocks within the video frame. As shown in FIG. 1, video decoder 26 receives the encoded video bitstream encoded by video encoder 20. In the example of FIG. 3, the video decoder 26 includes an entropy decoding unit 52, a motion compensation unit 54, a reconstruction unit 56, an inverse transform unit 58, and a reference frame store 62. Video decoder 26 may also include an in-loop deblocking filter (not shown) that filters the output of adder 64. Video decoder 26 also includes an adder 64. FIG. 3 shows the temporal prediction components of video decoder 26 for inter decoding of video blocks. Although not shown in FIG. 3, video decoder 26 may also include a spatial prediction component for intra decoding of several video blocks.

エントロピー復号ユニット52は、符号化ビデオビットストリームを受信し、そのビットストリームから、量子化された残差係数、マクロブロックコーディングモード、および動きベクトルとブロック分割とを含むことができる動き情報を復号する。したがって、エントロピー復号ユニット52は、VLC復号ユニットとして機能する。たとえば、符号化ビットストリームから、量子化された残差係数を復号するために、図3のエントロピー復号ユニット52は、図1を参照して上記で説明し、図9、10を参照して以下で説明する本開示の態様を実装するように構成され得る。しかしながら、エントロピー復号ユニット52は、符号化ビットストリームから量子化されたブロック係数を取り出すために、図2のエントロピー符号化ユニット46に対して実質的に逆の方法でVLC復号を実施することができる。   Entropy decoding unit 52 receives the encoded video bitstream and decodes motion information that may include quantized residual coefficients, macroblock coding modes, and motion vectors and block partitioning from the bitstream. . Therefore, the entropy decoding unit 52 functions as a VLC decoding unit. For example, to decode quantized residual coefficients from an encoded bitstream, the entropy decoding unit 52 of FIG. 3 is described above with reference to FIG. 1, and with reference to FIGS. May be configured to implement the aspects of the disclosure described in. However, entropy decoding unit 52 can perform VLC decoding in a substantially opposite manner to entropy encoding unit 46 of FIG. 2 to extract quantized block coefficients from the encoded bitstream. .

動き補償ユニット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 reference frame store 62, motion vectors, and block partitioning to generate a predictive video block. The reconstruction unit 56 performs inverse quantization on the quantized block coefficient, that is, de-quantize. Inverse transform unit 58 applies an inverse transform, eg, an inverse DCT, or an inverse 4 × 4 or 8 × 8 integer transform, to the coefficients to generate a residual block. The predicted video block is then added to the residual block by adder 64 to form a decoded block. A deblocking filter (not shown) may be applied to filter the decoded block to remove blocking artifacts. The filtered block is then placed in a reference frame store 62 that provides a reference frame for decoding of subsequent video frames and also decodes to drive the display device 28 (FIG. 1). Generate video.

図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 entropy encoding unit 46 of FIG. 2 in more detail. Entropy encoding unit 46 may reside within video encoder 20 of FIGS. As shown in FIG. 2, entropy encoding unit 46 receives quantized residual block coefficients from, for example, quantization unit 40 (FIG. 2) and for transmission to another device for decoding. Generate an entropy coded bitstream. In the example of FIG. 4, the entropy encoding unit 46 includes a VLC encoding module 98, a statistical analysis module 100, a VLC adaptation module 102, and a VLC table module 104. The VLC table module 104 stores data defining a multi-level VLC table, as described above with reference to FIG. 1 and as described below with reference to FIGS. The VLC table module 104 may store data defining a first level VLC table that maps codewords to symbol combinations, for example. The VLC table module 104 may also be configured to dynamically generate structured code that need not be stored, also referred to as a second level VLC table throughout this disclosure. The statistical analysis module 100 collects coding statistics for a set of candidate symbol combinations. The statistical analysis module 100 tracks the probability of occurrence of the symbol combination for a given context, and based on the coding statistics collected by the statistical analysis module 100, the VLC adaptation module 102 includes the code words of the first level VLC table, The mapping between subsets of candidate symbol combination sets can be adjusted.

図5は、本開示で説明する様々な技法を実装するように構成されたエントロピー復号ユニット52のブロック図である。図1、5の例において上記で示したように、エントロピー復号ユニット52は、ビデオ復号器26内に常駐する。この例示的構成を参照して説明するが、エントロピー復号ユニット52は、統計的ロスレスコーディングを実施することが可能な、どのデバイス内に常駐してもよい。この点において、本技法は、本開示に示す例に限定されるべきではない。図3に示すように、エントロピー復号ユニット52は、符号化ビデオビットストリームを、たとえば、チャネル16(図1)を介してソースデバイス12から受信し、そのビットストリームをエントロピー復号して、量子化された残差係数を生成する。   FIG. 5 is a block diagram of entropy decoding unit 52 configured to implement various techniques described in this disclosure. As indicated above in the example of FIGS. 1 and 5, entropy decoding unit 52 resides within video decoder 26. While described with reference to this exemplary configuration, entropy decoding unit 52 may reside in any device capable of performing statistical lossless coding. In this regard, the technique should not be limited to the examples shown in this disclosure. As shown in FIG. 3, entropy decoding unit 52 receives an encoded video bitstream from source device 12, for example via channel 16 (FIG. 1), entropy decodes the bitstream and is quantized. Generate residual coefficients.

図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 entropy decoding unit 52 includes a VLC decoding module 106, a statistical analysis module 108, a VLC adaptation module 110, and a VLC table module 112. The VLC table module 112 can store data defining, for example, a first level VLC table that maps codewords to symbol combinations. The VLC table module 112 may also be configured to dynamically decode structured codes that need not be stored, also referred to as second level VLC tables throughout this disclosure. The first level and second level VLC tables maintained by the VLC table module 112 are the VLCs maintained by the VLC table module 104 such that codewords assigned in the video encoder 20 can be decoded in the video decoder 26. Match tables. The statistical analysis module 108 tracks the probability of occurrence of a symbol combination for a given context, and if the occurrence of a particular symbol combination is relatively likely or low, the VLC adaptation module 110 Remap the symbol combination to either a shorter or longer codeword in the VLC table maintained by the VLC table module 112.

エントロピーコーディングは、所与のデータセットを表すのに必要とされるビットの数をさらに低減するのに使われるロスレスプロセスである。エントロピーコーディングは、所与のデータセットのシンボル分布プロパティを使用し、概して、データセットのうち、より頻繁に生起するメンバに、より短いコードワードを割り当てる。この例では、所与のデータセットは、可能なシンボル組合せ集合であり、より短いコードワードが概して、最も頻繁に生起する特定のシンボル組合せに割り当てられる。エントロピー符号化ユニット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 statistical analysis module 100 of the entropy encoding unit 46 and the statistical analysis module 108 of the entropy decoding unit 52 can track and maintain the probability of occurrence of a particular symbol combination, so that for a given context , The most frequently occurring symbol combinations in that context map to shorter codewords. If the occurrence of some symbol combinations is more likely or lower than the occurrence of other symbol combinations, select some symbol combinations as either longer or shorter codewords based on their probability of occurrence. By remapping, the VLC adaptation module 102 of the entropy encoding unit 46 updates the VLC table maintained by the VLC table module 104, and the VLC adaptation module 110 of the entropy decoding unit 52 is updated by the VLC table module 112. Update the maintained VLC table. Statistical analysis module 100 and VLC adaptation module 102 may be configured to implement the same data processing techniques as statistical analysis module 108 and VLC adaptation module 110. Thus, changes to the VLC table maintained by the VLC table module 104 that occur in the entropy encoding unit 46 are such that no data reflecting that change is sent between the entropy encoding unit 46 and the entropy decoding unit 52. Can be reflected in the VLC table maintained by the VLC table module 112 in the entropy decoding unit 52.

エントロピーコーディングに先立って、ブロックからの変換係数が、エントロピー符号化ユニット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 entropy coding unit 46. As shown in more detail below with reference to the examples of FIGS. 9 and 10, transform coefficients can be described using one or more symbol combinations. The VLC encoding module 98 of the entropy encoding unit 46 codes the symbol combination in a particular way, and the entropy decoding unit 52 decodes the coded data to regenerate the symbol combination, and finally the transform block Play. A VLC table, such as a VLC table maintained by the VLC table modules 104, 112, is stored in both the entropy encoding unit 46 of the video encoder 20 and the entropy decoding unit 52 of the video decoder 26, and each code from the VLC table. A word represents a particular symbol combination in a particular context.

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 VLC table modules 104, 112 to cover all possible symbol combinations for conversions greater than 4x4. However, larger sized VLC tables require more memory to store codewords. To alleviate such requirements, aspects of this disclosure include VLC table modules 104, 112 that maintain VLC tables having more than one level. In a two level table, for example, the first level may consist of several variable length codes, where one variable length code represents an escape code. The second level may consist of a group of structured VLC codes, such as Golomurice codes. Due to its structured nature, the second level VLC code can be determined dynamically on-the-fly in both entropy encoding unit 46 and entropy decoding unit 52 and is therefore stored. There is no need to

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. Entropy encoding unit 46 codes the remainder of the symbol combination as a concatenation of the escape code from the first level VLC table and the codeword from the second 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, entropy encoding unit 46 need only map the candidate symbol combination with the highest probability of occurrence to the codeword in the first level VLC table. Entropy encoding unit 46 may code the remainder of the candidate combination as a concatenation of escape codes from the first level VLC table and codewords from the second level VLC table.

たとえば、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 entropy encoding unit 46 maps only (M−1) symbol combinations out of N possible combinations to variable length codes in the first level VLC table, and the remaining (N−M + 1) symbols. Are coded as a concatenation of the escape code from the first level VLC table and the code word from the second level VLC table.

本開示の態様は、第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 VLC table modules 104, 112 by limiting based on a single cut-off run value or a plurality of cut-off run values, an initial stage of coding Coding and decoding efficiencies can be improved, especially for transform blocks larger than 4 × 4, by making the variation probability of symbol combinations occurring when medium and content statistics vary more quickly.

さらに、本開示の態様は、統計分析モジュール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 statistical analysis module 100 and statistical analysis module 108 need to track the probability of occurrence. For example, transform blocks larger than 4 × 4 may have thousands or even more than 10,000 possible symbol combinations. Aspects of this disclosure include identifying a subset of possible total symbol combinations that are believed to include the most frequently occurring symbol combinations. Then, the statistical analysis module 100 and statistical analysis module 108 need only track the probability of occurrence for a subset of possible symbol combinations, not all possible symbol combinations, and thus the statistical analysis module 100 and statistical analysis module 108. The amount of processing resources that need to be dedicated to is reduced. Even if some frequently occurring symbol combinations are excluded from a subset of possible symbol combinations, the reduction in processing resources used by the statistical analysis module 100 and the statistical analysis module 108 will still be overall. Overall system performance can be positive.

良好なコーディング効率のために、VLCテーブルモジュール104およびVLCテーブルモジュール112は、いくつかの要素に基づいて複数のVLCテーブルを維持すればよく、そうすることによって所与の状況(またはコンテキスト)の場合、コードワード長がその所与の状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるVLCテーブルを使うことができる。   For good coding efficiency, the VLC table module 104 and the VLC table module 112 need only maintain multiple VLC tables based on several factors, so that for a given situation (or context) Different VLC tables can be used so that the codeword length can better match the symbol distribution properties for the given situation.

図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 video encoder 20 of source device 12, a frame of video data may be encoded and transmitted to a video decoding device such as receiving device 14. Video encoder 20 divides the frame of video data into prediction blocks, transforms and quantizes the prediction block (block 601). Video encoder 20 determines a set of one or more symbol combinations to represent transform coefficients of the transform block (block 602). Each symbol combination may indicate run information, GTO information, and / or EOB information for a portion of the transform coefficients of the transform block. For various sized transform blocks, video encoder 20 stores in entropy encoding unit 46 data defining one or more multi-level VLC tables, such as a VLC table maintained by VLC table module 104. . For the symbol combination to be coded, video encoder 20 identifies a particular VLC table maintained by VLC table module 104 based on the context associated with the symbol combination to be coded as well as the size of the transform block. (Block 603). Video encoder 20 may determine the context based on, for example, a first zero coefficient location index of a run of zeros associated with the symbol combination, a precoded run and a level value for the transform block. Or the context may be signaled in a slice header.

カットオフラン値より大きいランを示すラン情報を示すシンボル組合せを識別したことに応答して(ブロック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), video encoder 20 may generate an escape code and a second value from the first level VLC table. A codeword comprising a concatenation of codewords in the level VLC table is assigned to the symbol combination (block 605). The second level VLC table may include structured VLC codes such as Golomurice codes, for example. The cut-off run value for a particular transform block can be determined based on the size of the transform block. For example, the cutoff run value when coding a symbol combination of an 8 × 8 transform block may be different from the cutoff run value when coding a symbol combination of a 16 × 16 transform block or an 8 × 16 transform block.

カットオフラン値以下のラン示すラン情報を示すシンボル組合せを識別したことに応答して(ブロック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), video encoder 20 adds a code from the first level VLC table to the symbol combination. A word is assigned (block 606). In some implementations, if the symbol combination includes run information indicating a run that is also less than or equal to the second cut-off run value, the codeword from the first level VLC table includes run information, GTO information, and EOB. Information may be included, but if the symbol combination includes run information indicating a run greater than the second cutoff run value, the codeword from the first level VLC table may be run information only, or run information, part Only GTO information and EOB information may be included.

図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 video encoder 20 of source device 12, a plurality of symbol combinations for representing a plurality of digital video block coefficients of a transform block may be determined. VLC encoding module 98 identifies run information for multiple symbol combinations (block 701). The run information indicates the number of consecutive zero coefficients that precede or follow the non-zero coefficient, depending on the coding scheme used. During the encoding process, entropy encoding unit 46 stores data defining a multi-level VLC table (block 702). The multi-level VLC table includes a first level VLC table and a second level VLC table. The first level VLC table maps codewords to symbol combinations.

連続するゼロ係数の第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), entropy coding unit 46 of video encoder 20 may store data defining a plurality of multi-level VLC tables. Yes (block 802). The multi-level VLC table may include a first level VLC table that maps symbol combinations to codewords. The statistical analysis module 100 maintains statistics regarding the probability of occurrence of the set of candidate symbol combinations (block 803), and based on the collected statistics, the VLC adaptation module 102 determines whether the symbol combinations are in the first level VLC table. The codeword mapping is adjusted (block 804). As described in more detail above and as described below with respect to the example of FIGS. 9 and 10, entropy encoding unit 46 may determine a candidate symbol combination based on a single cutoff run value or multiple cutoff run values. You can limit the set. The aspects of the technique described with respect to FIG. 8 can also be performed simultaneously at the receiving device 14 by the statistical analysis module 108 and the VLC adaptation module 110 of the entropy decoding unit 52, thereby maintaining the VLC table module 104. Variations in the mapping of symbol combinations and codewords in the VLC table cause neither the data describing the variations nor limited data describing the variations to be transferred from the source device 12 to the receiving device 14, It is performed simultaneously on the VLC table maintained by the VLC table module 112.

図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 video encoder 20. , 0, 0, 0, 0, 0, 0]. For simplicity of explanation, this example uses 4 × 4 transform blocks, but aspects of the present disclosure may be applicable to transform blocks larger than 4 × 4 and may be particularly advantageous. Further, for illustrative purposes, reference is made to transform coefficients in this example, but aspects of the present disclosure may be applicable to other types of video block data, such as residual data.

図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 entropy encoding unit 46 of video encoder 20 signals an end of block (EOB) symbol to signal that the remaining transform coefficients in the transform block are all zero. Just code the pattern. Alternatively, entropy encoding unit 46 may code the number of non-zero transform coefficients so that after the number of non-zero transform coefficients are received, it can be assumed that the remaining transform coefficients are all zero.

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, video encoder 20 converts the coefficient array run information, level information, and EOB information from the transform block to variable length code prior to source device 12 transmitting data to receiving device 14. Code together using. Each variable length code represents a specific status of run information, level information, and EOB information. More specifically, for each non-zero coefficient, the variable length codeword represents some or all of the following information:

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 device 14 is a one-dimensional zigzag scan sequence [0, 3, 0, −1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0. ] In the form of (Run, GTO, EOB), (1, 1, 0), (1, 0, 0), (2, 0, 1).

この例の第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 entropy decoding unit 52 of the video decoder 26 has a one-dimensional array [0, 3,. . . ] Part can be reconfigured.

第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 entropy decoding unit 52 uses a one-dimensional array [. . . 0, -1,. . . ] Part can be reconfigured.

第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, entropy decoding unit 52 determines the sequence [. . . 0,0,1,0,0,0,0,0,0,0,0,0] parts can be reconstructed, so that based on all three symbol combinations, the entire one-dimensional array Can be reconfigured. Knowing the scan order used in video encoder 20, video decoder 26 can reconstruct the transform blocks in the same order.

ビデオ符号器20およびビデオ復号器26は、VLCテーブルを同時に構成し、管理することができ、VLCテーブルからの各コードワードは、(ラン,GTO,EOB)のある特定のステータスを表す。図10の例の場合、たとえば、3つのコードワード、すなわち3つのシンボル組合せそれぞれに1つのコードワードで、上記で言及した情報をすべて、ソースデバイス12から受信デバイス14に伝えるのに十分である。   Video encoder 20 and video decoder 26 can simultaneously configure and manage the VLC table, and each codeword from the VLC table represents a particular status of (Run, GTO, EOB). In the case of the example of FIG. 10, for example, three codewords, ie one codeword for each of the three symbol combinations, is sufficient to convey all the information referred to above from the source device 12 to the receiving device 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 entropy decoding unit 52 is a [D. . . 0,0,1. . . ] Part can be reconfigured.

第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 entropy decoding unit 52 is a [D. . . 0, -1. . . ] Part can be reconfigured.

第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 entropy decoding unit 52 is a [0, 3,. . . . ] Part can be reconfigured. Knowing the scan order used in video encoder 20, video decoder 26 can reconstruct the transform block.

上記の例は、(ラン,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 source device 12 may separately code the level value and send the value to the receiving device 14. Furthermore, the source device 12 can use one bit to code the sign of each non-zero coefficient and send the sign to the receiving device 14. By having more non-zero transform coefficients equal to 1, this technique further improves coding efficiency by reducing the number of bits required to transfer level information about non-zero transform coefficients. Can do.

所与のサイズの変換ブロック用のラン、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 video encoder 20 and video decoding. May be required for the VLC table in device 26. However, larger sized VLC tables require more memory to store codewords. To alleviate such requirements, aspects of this disclosure include using a VLC table that includes more than one level. In a two level VLC table, for example, the first level table may include several variable length codes, where one variable length code represents one escape code. The second level table may include a group of structured VLC codes, such as Golomurice codes. Due to its structured nature, the second level VLC code can be dynamically generated by both VLC table module 104 and VLC table module 112 in both video encoder 20 and video decoder 26, respectively. There is no need to store the level VLC code. The escape code informs the video decoder 26 to use the second level VLC table to decode a particular codeword, as opposed to the first level VLC table.

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. Video encoder 20 codes the remainder of the symbol combination as a concatenation of the escape code from the first level VLC table and the code word from the second level VLC table. Upon detecting the escape code, video decoder 26 decodes the codeword using the second 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. Video encoder 20 codes the remaining (N−M + 1) symbol combinations as a concatenation of the escape code from the first level VLC table and the codeword from the second 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 video encoder 20 coding the (run, GTO, EOB) status components separately to reduce the number of candidate symbol combinations for the VLC table. For example, video encoder 20 may generate run information of (run, GTO, EOB) status from the first level VLC table or concatenation of escape codes from the first level VLC table and codewords from the second level VLC table. As such, it is only necessary to code using the code word from the VLC table. Video encoder 20 may code GTO and EOB information separately from run information. In another embodiment, video encoder 20 may coat only the run information along with some information about GTO and EOB using codewords from the first level VLC table. An example of some such information may be OR (GTO, EOB), where OR represents a logical OR operation. As a result, the run and OR (GTO, EOB) values can be coded together using codewords from the VLC table. More detailed information about GTO and EOB can be coded separately. If either or both of the GTO and EOB values are non-zero (ie, the OR operation is true), video decoder 26 processes more detailed information. If both the GTO and EOB values are zero (ie, the OR operation is false), video decoder 26 knows that no additional information needs to be decoded.

本開示の態様は、第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 entropy encoding unit 46 determines the escape code from the first level VLC table. Is assigned to the first symbol combination. If the second symbol combination indicates that the second number of consecutive zero coefficients is less than or equal to the cut-off run value, the VLC encoding module 98 of the entropy encoding unit 46 adds the second symbol combination to the second symbol combination. Assign a codeword. The second codeword is a codeword from the first level VLC table.

別の態様では、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, entropy encoding unit 46 converts only the symbol combinations associated with runs below run2 into variable length codewords in the first level VLC table. It is treated as a candidate symbol combination that can be coded using. However, entropy encoding unit 46 only jointly codes the components of the symbol combination associated with the run below run 1 (ie, run, GTO, and EOB may be coded together as one codeword). ). Entropy encoding unit 46 codes the components of the symbol combination associated with a run greater than run1 separately. For example, the entropy encoding unit 46 uses the VLC table (either the codeword in the first level VLC table or concatenation of the escape code from the first level VLC table and the codeword from the second level VLC table). As such, only the run information of the symbol combination may be coated and the GTO and EOB information for the symbol combination may be coded separately from the run information.

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 entropy encoding unit 46 indicates run information indicating that the number of consecutive zero coefficients is less than or equal to run1 and less than or equal to run2. A first type codeword is assigned to a symbol combination having. The first type of codeword may include, for example, 1 excess information, block end information, and run information. The VLC encoding module 98 of the entropy encoding unit 46 assigns a second type codeword to symbol combinations comprising run information indicating that the number of consecutive zero coefficients is less than or equal to run2 and greater than run1. The second type of codeword includes run information and may also include some 1 excess information and block end information.

別の態様では、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, entropy encoding unit 46 transmits codewords from the VLC table maintained by VLC table module 104 in the first level VLC table. Code only run information, together with some information about GTO and EOB, either as a codeword or as a concatenation of escape codes from the first level VLC table and codewords from the second level VLC table . An example of such partial information can be represented by OR (GTO, EOB), where OR represents a logical OR operation. As a result, entropy encoding unit 46 uses the codeword from the VLC table maintained by VLC table module 104 to code the run and the value of OR (GTO, EOB) together for GTO and EOB. Code more detailed information separately.

単一のカットオフラン値または複数のカットオフラン値に基づく、第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 video encoder 20 and video decoder 26 must track the probability of occurrence. For example, transform blocks larger than 4x4 may have thousands or even more than 10,000 possible symbol combinations for runs, GTOs, and EOBs. Aspects of the present disclosure can be used to identify a subset of possible total symbol combinations that are likely to include the most frequently occurring symbol combinations. Then, video encoder 20 and video decoder 26 need only track the occurrence probabilities for the subset, but not all possible symbol combinations, and thus the amount of processing resources dedicated to tracking the occurrence probabilities. Reduced. Even if some frequently occurring symbol combinations are excluded from the subset, the reduction in processing resources dedicated to tracking occurrence establishment is still overall positive in overall system performance. possible.

良好なコーディング効率のために、ビデオ符号器20は、いくつかの要素に基づいて複数のVLCテーブルから適切なVLCテーブルを選択すればよく、そうすることによって所与の状況(またはコンテキスト)の場合、コードワード長がその所与の各状況に対してシンボル分布プロパティに良好にマッチングし得るように、異なるVLCテーブルを使うことができる。   For good coding efficiency, video encoder 20 may select an appropriate VLC table from a plurality of VLC tables based on several factors, so that for a given situation (or context) Different VLC tables can be used so that the codeword length can better match the symbol distribution properties for each given situation.

別の態様は、符号化プロセス中に、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 table module 104 during the encoding process, where the VLC encoding module 98 is based on the location index of the first zero coefficient of the run associated with the symbol combination to be coded. Including selecting a specific table VLC table. Coding begins with the first coefficient in the coefficient array. To code a symbol combination, the position index of the first zero coefficient of the run associated with the symbol combination is examined. Next, a VLC table for coding the current symbol combination is selected based on the position index value in scan order. Using FIG. 3 again as an example, the symbol combinations to be coded are (1, 1, 0), (1, 0, 0), (2, 0, 1). For the symbol combination (1, 1, 0), the position index value of the first zero coefficient of the run is zero. Similarly, in the case of (1, 0, 0) and (2, 0, 1), the position index values are 2, 4 respectively. In response to receiving the VLC codeword, the VLC decoding module 106 identifies the particular VLC table used by the VLC encoding module 98 within the VLC table 112 and determines the symbol combination from the VLC codeword. Can be configured.

本開示の別の態様は、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 table module 104 based on both precoded runs and level values in the block. . Coding starts at the last non-zero coefficient in the coefficient array and is performed in reverse scan order. To code the current symbol combination, the levels of all precoded symbol combinations in the block, as well as the run of precoded symbol combinations, are examined. The number of precoded symbol combinations having a level of 1 is used as a context for coding the current symbol combination along with a run of precoded symbol combinations. However, if the pre-coded symbol combination of the current block includes at least a level greater than 1, only the run of the pre-coded symbol combination is used as the context for coding the current symbol combination. Specifically, when forming the context for coding the first symbol combination in the block, the number of precoded symbol combinations having a level of 1 is set to 1, and the precoded symbol combination run Is set as the average of the runs of the first coded symbol combination in several precoded blocks.

上述したコンテキスト適応型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 statistical analysis module 100 while the blocks in the slice are being coded. The symbol distribution probability under each context can be re-evaluated and updated each time a certain number of blocks are coded in the current slice. Then, based on the updated symbol distribution properties, the codewords in the VLC table can be remapped to various symbol combinations for each context. The accumulation and remapping of the occurrence probability of such symbol combinations is done in the same way by the statistical analysis module 100 and VLC adaptation module 102 of the video encoder 20 and the statistical analysis module 108 and VLC adaptation module 110 of the video decoder 26. Can be implemented. As a result, no additional information needs to be signaled from the video encoder 20 to the video decoder 26.

本開示で説明する技法は、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実装できる。たとえば、こうした技法の様々な態様は、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テーブルを定義するデータを記憶することであって、前記マルチレベル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:
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第2のコードワードを割り当てることであって、前記第2のコードワードが、前記第1レベルVLCテーブルからのものであること、をさらに備える、請求項1に記載の方法。   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, a second codeword is assigned to the second symbol combination The method of claim 1, further comprising: the second codeword is from the first level VLC table. 続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のシンボル組合せに第2のタイプのコードワードを割り当てることであって、前記第2のタイプのコードワードが、前記第3のラン情報を備えることをさらに備える、請求項1に記載の方法。 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 the third symbol combination the method comprising allocating a second type of code words, the second type of code words further comprises a call with the third run information, the method of claim 1 . 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、請求項3に記載の方法。   4. The method of claim 3, wherein the second type codeword further comprises some 1 excess information and block termination information. 候補シンボル組合せの集合に関するコーディング統計を収集することと、
前記第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.
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項5に記載の方法。   6. The method of claim 5, wherein the set of candidate symbol combinations comprises symbol combinations with run information indicating that the number of consecutive zero coefficients is less than or equal to the cutoff run value. 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項1に記載の方法。   The method of claim 1, wherein the cutoff run value is determined based on a size of the transform block. 複数のマルチレベルVLCテーブルを定義するデータを記憶することと、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベル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.
前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、請求項8に記載の方法。   9. The method of claim 8, wherein the context is determined based on a position index of a first zero coefficient of a zero run associated with a symbol. 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項8に記載の方法。   The method of claim 8, wherein the context is determined based on precoded run and level values for the transform block. 前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項8に記載の方法。   The method of claim 8, wherein the context is signaled in a slice header. 前記第2レベルVLCテーブルが構造化VLCコードを備える、請求項1に記載の方法。   The method of claim 1, wherein the second level VLC table comprises structured VLC code. 前記第2レベルVLCテーブルがゴロムライスコードを備える、請求項1に記載の方法。   The method of claim 1, wherein the second level VLC table comprises Golombrice codes. 前記方法がビデオ符号化デバイスによって実施される、請求項1に記載の方法。   The method of claim 1, wherein the method is performed by a video encoding device. 前記方法がビデオ復号デバイスによって実施される、請求項1に記載の方法。   The method of claim 1, wherein the method is performed by a video decoding device. ビデオデータをコーディングするためのビデオコーディングデバイスであって、
マルチレベル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:
前記VLCコーディングモジュールが、
連続するゼロ係数の第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.
前記VLCコーディングモジュールが
続するゼロ係数の第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.
前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、請求項18に記載のビデオコーディングデバイス。   The video coding device of claim 18, wherein the second type codeword further comprises some 1 excess information and block termination 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.
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項20に記載のビデオコーディングデバイス。   21. The video coding device of claim 20, wherein the set of candidate symbol combinations comprises symbol combinations with run information indicating that the number of consecutive zero coefficients is less than or equal to the cutoff run value. 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項16に記載のビデオコーディングデバイス。   The video coding device of claim 16, wherein the cutoff run value is determined based on a size of the transform block. 前記VLCテーブルモジュールが、複数のマルチレベルVLCテーブルを定義するデータを記憶するようにさらに構成され、
前記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.
前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、請求項23に記載のビデオコーディングデバイス。   24. The video coding device of claim 23, wherein the context is determined based on a position index of a first zero coefficient of a zero run associated with a symbol. 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項23に記載のビデオコーディングデバイス。   24. The video coding device of claim 23, wherein the context is determined based on precoded run and level values for the transform block. 前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項23に記載のビデオコーディングデバイス。   The video coding device of claim 23, wherein the context is signaled in a slice header. 前記第2レベルVLCテーブルが構造化VLCコードを備える、請求項16に記載のビデオコーディングデバイス。   The video coding device of claim 16, wherein the second level VLC table comprises structured VLC codes. 前記第2レベルVLCテーブルがゴロムライスコードを備える、請求項16に記載のビデオコーディングデバイス。   The video coding device of claim 16, wherein the second level VLC table comprises Golombrice codes. 前記ビデオ復号デバイスがビデオ符号器である、請求項16に記載のビデオコーディングデバイス。   The video coding device of claim 16, wherein the video decoding device is a video encoder. 前記ビデオ復号デバイスがビデオ復号器である、請求項16に記載のビデオコーディングデバイス。   The video coding device of claim 16, wherein the video decoding device is a video decoder. ビデオコーディング装置であって、
変換ブロックの複数のデジタルビデオブロック係数の複数のシンボル組合せに関するラン情報を識別するための手段であって、前記ラン情報が、連続するゼロ係数の数を示す、手段と、
マルチレベル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:
連続するゼロ係数の第2の数が前記カットオフラン値以下であることを示す第2のラン情報を備える第2のシンボル組合せの場合、前記第2のシンボル組合せに第2のコードワードを割り当てる手段であって、前記第2のコードワードが、前記第1レベルVLCテーブルからのものである、手段をさらに備える、請求項31に記載のビデオコーディング装置。   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, a second codeword is assigned to the second symbol combination 32. The video coding apparatus of claim 31, further comprising means, wherein the second codeword is from the first level VLC table. 続するゼロ係数の第3の数が前記カットオフラン値以下であり、前記第2のカットオフラン値より大きいことを示す第3のラン情報を備える第3のシンボル組合せの場合、前記第3のシンボル組合せに第2のタイプのコードワードを割り当てることであって、前記第2のタイプのコードワードが、前記第3のラン情報を備えることをさらに備える、請求項31に記載のビデオコーディング装置。 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 the third symbol combination the method comprising allocating a second type of code words, the second type of code words, further comprising a call with a third run information, video according to claim 31 Coding device. 前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、請求項33に記載のビデオコーディング装置。   34. The video coding apparatus of claim 33, wherein the second type codeword further comprises some 1 excess information and block termination information. 候補シンボル組合せの集合に関するコーディング統計を収集するための手段と、
前記第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.
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項35に記載のビデオコーディング装置。   36. The video coding apparatus of claim 35, 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. 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項31に記載のビデオコーディング装置。   The video coding apparatus according to claim 31, wherein the cutoff run value is determined based on a size of the transform block. 複数のマルチレベルVLCテーブルを定義するデータを記憶するための手段と、
特定のシンボル組合せに対して使われるべき、前記複数のマルチレベル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のゼロ係数の位置索引に基づいて決定される、請求項38に記載のビデオコーディング装置。   40. The video coding apparatus of claim 38, wherein the context is determined based on a position index of a first zero coefficient of a zero run associated with a symbol. 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項38に記載のビデオコーディング装置。   40. The video coding apparatus of claim 38, wherein the context is determined based on precoded run and level values for the transform block. 前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項38に記載のビデオコーディング装置。   The video coding apparatus according to claim 38, wherein the context is signaled in a slice header. 前記第2レベルVLCテーブルが構造化VLCコードを備える、請求項31に記載のビデオコーディング装置。   32. The video coding apparatus of claim 31, wherein the second level VLC table comprises structured VLC codes. 前記第2レベルVLCテーブルがゴロムライスコードを備える、請求項31に記載のビデオコーディング装置。   32. The video coding apparatus of claim 31, wherein the second level VLC table comprises Golombrice codes. 前記ビデオコーディング装置がビデオ符号器の一部である、請求項31に記載のビデオコーディング装置。   32. The video coding device of claim 31, wherein the video coding device is part of a video encoder. 前記ビデオコーディング装置がビデオ復号器の一部である、請求項31に記載のビデオコーディング装置。   32. The video coding device of claim 31, wherein the video coding device is part of a video decoder. 1つまたは複数のプロセッサによって実行されると、前記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.
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
連続するゼロ係数の第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.
前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに
続するゼロ係数の第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.
前記第2のタイプのコードワードが、一部の1超過情報およびブロック終結情報をさらに備える、請求項48に記載のコンピュータ可読記憶媒体。   49. The computer readable storage medium of claim 48, wherein the second type codeword further comprises some 1 excess information and block termination information. 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
候補シンボル組合せの集合に関するコーディング統計を収集させ、
前記第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.
候補シンボル組合せの前記集合が、連続するゼロ係数の数が前記カットオフラン値以下であることを示すラン情報をもつシンボル組合せを備える、請求項50に記載のコンピュータ可読記憶媒体。   51. The computer readable storage medium of claim 50, 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. 前記カットオフラン値が、前記変換ブロックのサイズに基づいて決定される、請求項46に記載のコンピュータ可読記憶媒体。   47. The computer readable storage medium of claim 46, wherein the cutoff run value is determined based on a size of the transform block. 前記1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
複数のマルチレベル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.
前記コンテキストが、シンボルに関連づけられたゼロのランの第1のゼロ係数の位置索引に基づいて決定される、請求項53に記載のコンピュータ可読記憶媒体。   54. The computer readable storage medium of claim 53, wherein the context is determined based on a position index of a first zero coefficient of a zero run associated with a symbol. 前記コンテキストが、前記変換ブロックに関する、事前コーディングされたラン値およびレベル値に基づいて決定される、請求項53に記載のコンピュータ可読記憶媒体。   54. The computer readable storage medium of claim 53, wherein the context is determined based on precoded run and level values for the transform block. 前記コンテキストがスライスヘッダーに入れてシグナリングされる、請求項53に記載のコンピュータ可読記憶媒体。   54. The computer readable storage medium of claim 53, wherein the context is signaled in a slice header. 前記第2レベルVLCテーブルが構造化VLCコードを備える、請求項46に記載のコンピュータ可読記憶媒体。   47. The computer readable storage medium of claim 46, wherein the second level VLC table comprises structured VLC code. 前記第2レベルVLCテーブルがゴロムライスコードを備える、請求項46に記載のコンピュータ可読記憶媒体。   47. The computer readable storage medium of claim 46, wherein the second level VLC table comprises Golombrice codes. 前記1つまたは複数のプロセッサがビデオ符号器の一部である、請求項46に記載のコンピュータ可読記憶媒体。   48. The computer readable storage medium of claim 46, wherein the one or more processors are part of a video encoder. 前記1つまたは複数のプロセッサがビデオ復号器の一部である、請求項46に記載のコンピュータ可読記憶媒体。   47. The computer readable storage medium of claim 46, wherein the one or more processors are part of a video decoder.
JP2013503996A 2010-04-09 2011-04-08 Variable length code for video data coding Expired - Fee Related JP5547335B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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