Methods, apparatus, and computer programs for reducing context models for entropy coding of transformation coefficient significance flags

By optimizing context model selection for entropy coding using a monotonically non-decreasing function on transformation coefficients, the method addresses redundancy in video encoding and decoding, enhancing compression efficiency and reducing bitrate.

JP2026076203APending Publication Date: 2026-05-11TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2026-01-14
Publication Date
2026-05-11

AI Technical Summary

Technical Problem

Existing video encoding and decoding techniques face challenges in efficiently reducing redundancy and improving compression efficiency, particularly in intra-prediction and motion vector prediction, which affect the bitrate and storage requirements of video data.

Method used

The method involves determining an offset value based on a monotonically non-decreasing function of partially reconstructed transformation coefficients to select a context model for entropy coding, optimizing the selection of context models for transformation coefficient significance flags.

Benefits of technology

This approach enhances compression efficiency by reducing the bitrate and storage requirements of video data, improving the effectiveness of entropy coding in video encoders and decoders.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026076203000001_ABST
    Figure 2026076203000001_ABST
Patent Text Reader

Abstract

This invention provides a method and apparatus for reducing the context model for entropy coding of conversion coefficient significance flags. [Solution] A video decoding method performed in a video decoder includes the step of receiving an encoded video bitstream which includes a current picture and at least one syntax element corresponding to a conversion coefficient of a conversion block in the current picture. The method further includes the step of determining an offset value based on the output of a monotonically non-decreasing f(x) function performed on the sum (x) of a group of partially reconstructed transformation coefficients. The method further includes the step of determining a context model index based on the sum of the determined offset value and the base value. The method further includes the step of selecting a context model from among several context models based on the determined context model index for at least one syntax of the current transformation coefficients.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Cross-reference of related applications This disclosure claims priority under U.S. Patent Application No. 16 / 904,000, filed on June 17, 2020, titled "METHOD AND APPARATUS FOR REDUCING CONTEXT MODELS FOR ENTROPY CODING OF TRANSFORM COEFFICIENT SIGNIFICANT FLAG," filed on June 19, 2019, titled "METHOD OF REDUCING CONTEXT MODELS FOR ENTROPY CODING OF TRANSFORM COEFFICIENT SIGNIFICANT FLAG," which is incorporated herein by reference in its entirety.

[0002] This disclosure generally describes embodiments related to video coding. [Background technology]

[0003] The background art provided herein is intended to provide a general context for this disclosure. The inventors' research, to the extent described in this background art section, and any aspects of the description that may not be recognized as prior art at the time of filing, are not expressly or implicitly recognized as prior art to this disclosure.

[0004] Video encoding and decoding can be performed using picture-to-picture prediction with motion compensation. Uncompressed digital video can contain a series of pictures, each picture having spatial dimensions of, for example, 1920×1080 lumens and associated chromens. The series of pictures may have a fixed or variable picture rate (informally also known as frame rate), for example, 60 pictures per second or 60 Hz. Uncompressed video has considerable bitrate requirements. For example, 1080p60 4:2:0 video with 8 bits per sample (1920×1080 lumens resolution at a frame rate of 60 Hz) requires a bandwidth of nearly 1.5 Gbit / s. One hour of such video requires more than 600 GByte of storage space.

[0005] One of the purposes of video encoding and decoding may be to reduce the redundancy of the input video signal through compression. Compression can help reduce the aforementioned bandwidth or storage space requirements by more than two orders of magnitude, in some cases. Both lossless and lossy compression, as well as combinations thereof, can be used. Lossless compression refers to a technique that allows an exact copy of the original signal to be reconstructed from the compressed original signal. When using lossy compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough to make the reconstructed signal useful for its intended purpose. In the case of video, lossy compression is widely adopted. The amount of acceptable distortion depends on the application; for example, users of certain consumer streaming applications may tolerate higher distortion than users of television distribution applications. The achievable compression ratio can reflect that higher acceptable / tolerable distortion can result in a higher compression ratio.

[0006] Video encoders and decoders can utilize techniques from several broad categories, including, for example, motion compensation, transformation, quantization, and entropy coding.

[0007] Video codec techniques may include a technique known as intra-coding. In intra-coding, sample values ​​are represented without referencing other data from the sample or a previously reconstructed reference picture. In some video codecs, the picture is subdivided spatially into blocks of samples. If all blocks of samples are coded in intra-mode, the picture may be an intra-picture. Intra-pictures and derivatives of intra-pictures, such as independent decoder refresh pictures, may be used to reset the decoder state and thus can be used as the first picture in the coded video bitstream and video session, or as a still image. Samples in intra-blocks may be subjected to transformations, and transformation coefficients may be quantized before entropy coding. Intra-prediction may be a technique to minimize the sample values ​​in the pre-transformation region. In some cases, smaller post-transformation DC values ​​and smaller AC coefficients result in fewer bits being required at a given quantization step size to represent the post-entropy coding block.

[0008] Traditional intra-prediction, such as that known from MPEG-2 generation coding techniques, does not use intra-prediction. However, some newer video compression techniques include, for example, techniques that try from surrounding sample data and / or metadata obtained during the encoding / decoding of blocks of data that are spatially nearby and preceding in the decoding order. Such techniques will hereafter be called “intra-prediction” techniques. It should be noted that in at least some cases, intra-prediction uses only reference data from the current picture being reconstructed, and not from the reference picture.

[0009] Intra-prediction can take many different forms. When two or more such techniques can be used in a given video coding technique, the techniques used can be encoded in intra-prediction mode. In certain cases, a mode may have submodes and / or parameters, which may be encoded individually or included in the mode codeword. The choice of codeword for a given mode / submode / parameter combination can affect the gain in coding efficiency via intra-prediction, and the entropy coding technique used to convert the codeword into a bitstream can also have an effect.

[0010] Specific modes of intra-prediction were introduced in H.264, improved in H.265, and further refined with newer coding techniques such as Joint Exploration Models (JEM), Versatile Video Coding (VVC), and Benchmark Sets (BMS). A predictor block can be formed using neighboring sample values ​​belonging to an already available sample. The sample values ​​of neighboring samples are replicated in the predictor block according to the direction. References to the direction in use can be encoded within the bitstream or predicted themselves.

[0011] Motion compensation can be a lossy compression technique that involves using blocks of sample data from a previously reconstructed picture or a portion of it (a reference picture) to predict a newly reconstructed picture or portion of a picture after the data has been spatially shifted in the direction indicated by a motion vector (MV). In some cases, the reference picture may be the same as the picture currently being reconstructed. The MV can have two dimensions (X and Y) or three dimensions, where the third dimension is an indication of the reference picture in use (the latter indirectly being the time dimension).

[0012] In some video compression techniques, a motion vector (MV) applicable to a particular region of sample data can be predicted from other MVs, such as MVs related to another region of sample data that is spatially adjacent to the region being reconstructed and precedes that MV in the decoding order. This substantially reduces the amount of data required to encode the MV, thereby eliminating redundancy and increasing compression. For example, when encoding an input video signal derived from a camera (known as natural video), there is a statistical likelihood that regions larger than the region to which a single MV is applicable will move in a similar direction, and therefore, in some cases, can be predicted using similar motion vectors derived from the MVs of neighboring regions; thus, MV prediction can function effectively. This results in the found MV for a given region being similar to or identical to the MV predicted from the surrounding MVs, and after entropy coding, it can be represented with fewer bits than would be used if the MV were encoded directly. In some cases, MV prediction can be an example of lossless compression of the signal (i.e., MV) derived from the original signal (i.e., sample stream). In other cases, MV prediction itself may be lossy, for example, due to rounding errors when calculating the predictor from some surrounding MVs.

[0013] Various MV prediction mechanisms are described in H.265 / HEVC (ITU-T Rec.H.265, High Efficiency Video Coding, December 2016). This specification describes a technique called "spatial merging," one of the many MV prediction mechanisms provided by H.265.

[0014] Referring to Figure 1, the current block (101) contains samples found by the encoder during the motion search process so that it is predictable from the previous block of the same size, which has been spatially shifted. Instead of directly encoding its MV, the MV can be derived from metadata associated with one or more reference pictures, for example from the most recent reference picture (in decoding order), using the MV associated with one of the five surrounding samples indicated by A0, A1, and B0, B1, B2 (102-106, respectively). In H.265, the MV prediction can use a predictor from the same reference picture used by the neighboring blocks. [Overview of the project] [Means for solving the problem]

[0015] According to an exemplary embodiment, a video decoding method performed in a video decoder includes the step of receiving an encoded video bitstream, which includes a current picture and at least one syntax element corresponding to the transformation coefficients of the transformation blocks in the current picture. The method further includes the step of determining an offset value based on the output of a monotonically non-decreasing f(x) function performed on the sum (x) of a group of partially reconstructed transformation coefficients. The method further includes the step of determining a context model index based on the sum of the determined offset value and a base value. The method further includes the step of selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficients.

[0016] According to an exemplary embodiment, a video decoding method performed in a video decoder includes the step of receiving an encoded video bitstream, which includes a current picture and at least one syntax element corresponding to the transformation coefficients of the transformation blocks in the current picture. The method further includes the step of determining the output of a monotonically non-decreasing function performed on each context model region from a plurality of context model regions, on the sum (x) of a group of partially reconstructed transformation coefficients and the number of context models associated with each context model region. The method further includes the step of determining a context model index based on the output of the monotonically non-decreasing function for each context model region. The method further includes the step of selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficients.

[0017] According to an exemplary embodiment, a video decoder for video decoding includes a processing circuit configured to receive an encoded video bitstream, which includes a current picture and at least one syntax element corresponding to the transformation coefficients of the transformation blocks in the current picture. The processing circuit is further configured to determine an offset value based on the output of a monotonically non-decreasing f(x) function performed on the sum (x) of a group of partially reconstructed transformation coefficients. The processing circuit is further configured to determine a context model index based on the sum of the determined offset value and a base value. The processing circuit is further configured to select a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficients.

[0018] According to an exemplary embodiment, a video decoder device for video decoding includes a processing circuit configured to receive an encoded video bitstream including a current picture and at least one syntax element corresponding to transform coefficients of transform blocks within the current picture. The processing circuit is further configured to determine an output of a monotonically non-decreasing function executed on a sum (x) of a group of partially reconstructed transform coefficients and the number of context models associated with each context model region from a plurality of context model regions. The processing circuit is further configured to determine a context model index based on the output of the monotonically non-decreasing function for each context model region. The processing circuit is further configured to select a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transform coefficients.

[0019] Further features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and the accompanying drawings.

Brief Description of the Drawings

[0020] [Figure 1] It is a schematic diagram of a current block and spatial merge candidates around it in an example. [Figure 2] It is a schematic diagram of a simplified block diagram of a communication system according to an embodiment. [Figure 3] It is a schematic diagram of a simplified block diagram of a communication system according to an embodiment. [Figure 4] It is a schematic diagram of a simplified block diagram of a decoder according to an embodiment. [Figure 5] It is a schematic diagram of a simplified block diagram of an encoder according to an embodiment. [Figure 6] The block diagram of an encoder according to other embodiments is shown. [Figure 7] The block diagram of a decoder according to other embodiments is shown. [Figure 8A] This figure shows an exemplary context-based adaptive binary arithmetic coding (CABAC) based entropy encoder according to one embodiment. [Figure 8B] This figure shows an exemplary CABAC-based entropy decoder according to one embodiment. [Figure 9] An example of a subblock scan sequence according to one embodiment is shown. [Figure 10] This figure shows an example of a subblock scan process according to one embodiment, in which different types of syntax elements of the conversion coefficients are generated. [Figure 11] An example of a local template used for context selection of the current coefficients is shown. [Figure 12] Indicates the diagonal position of a coefficient or coefficient level within a coefficient block. [Figure 13] This figure shows the context index calculation of the Luma component according to one embodiment. [Figure 14] This figure shows the context index calculation of the Luma component according to one embodiment. [Figure 15] This figure shows the context index calculation of the Luma component according to one embodiment. [Figure 16] This is a flowchart illustrating the entropy decoding process according to one embodiment. [Figure 17] This is a flowchart illustrating the entropy decoding process according to one embodiment. [Figure 18] This is a schematic diagram of a computer system according to one embodiment. [Modes for carrying out the invention]

[0021] Figure 2 shows a simplified block diagram of a communication system (200) according to one embodiment of the present disclosure. The communication system (200) includes a plurality of terminal devices that can communicate with each other, for example, via a network (250). For example, the communication system (200) includes a first pair of terminal devices (210) and (220) interconnected via the network (250). In the example of Figure 2, the first pair of terminal devices (210) and (220) perform one-way transmission of data. For example, terminal device (210) may encode video data (e.g., a stream of video pictures captured by terminal device (210)) for transmission to other terminal devices (220) via the network (250). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. Terminal device (220) can receive the encoded video data from the network (250), decode the encoded video data to restore the video pictures, and display the video pictures according to the restored video data. One-way data transmission can be common in applications such as media serving.

[0022] In another example, the communication system (200) includes a second pair of terminal devices (230) and (240) that perform bidirectional transmission of encoded video data, which may occur, for example, during a video conference. For bidirectional transmission of data, in one example, each terminal device of terminal devices (230) and (240) may encode video data (e.g., a stream of video pictures captured by the terminal device) for transmission to the other terminal device of terminal devices (230) and (240) via the network (250). Each terminal device of terminal devices (230) and (240) may also receive encoded video data transmitted by the other terminal device of terminal devices (230) and (240), decode the encoded video data to restore video pictures, and display the video pictures on an accessible display device according to the restored video data.

[0023] In the example in Figure 2, terminal devices (210), (220), (230), and (240) may be represented as a server, a personal computer, and a smartphone, but the principles of this disclosure are not limited thereto. Embodiments of this disclosure find applications using laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. Network (250) represents any number of networks that transmit encoded video data between terminal devices (210), (220), (230), and (240), including, for example, wired and / or wireless communication networks. Communication network (250) may exchange data over circuit-switched and / or packet-switched channels. Typical networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this discussion, the architecture and topology of network (250) may not be important to the operation of this disclosure unless described below herein.

[0024] Figure 3 shows an example of the application of the disclosed subject matter, illustrating the arrangement of a video encoder and video decoder in a streaming environment. The disclosed subject matter is equally applicable to other video-enabled applications, including, for example, video conferencing, digital television, and the storage of compressed video on digital media such as CDs, DVDs, and memory sticks.

[0025] The streaming system may include a capture subsystem (313), which may include, for example, a digital camera, that creates a video source (301), for example, a stream (302) of uncompressed video pictures. In one example, the stream (302) of video pictures includes a sample captured by the digital camera. The stream (302) of video pictures, shown as a thick line to highlight the higher data volume compared to the encoded video data (304) (or encoded video bitstream), can be processed by an electronic device (320) which includes a video encoder (303) coupled to the video source (301). The video encoder (303) may include hardware, software, or a combination thereof, enabling or implementing embodiments of the disclosed subject as will be described in more detail below. The encoded video data (304) (or encoded video bitstream (304)) is drawn as a thin line to highlight the lower data volume compared to the stream (302) of video pictures and may be stored in a streaming server (305) for future use. One or more streaming client subsystems, such as client subsystems (306) and (308) in Figure 3, can access a streaming server (305) to obtain copies (307) and (309) of the encoded video data (304). Client subsystem (306) may include, for example, a video decoder (310) in an electronic device (330). The video decoder (310) decodes the input copy (307) of the encoded video data and creates an output stream (311) of a video picture that can be rendered on a display (312) (e.g., a display screen) or another rendering device (not shown). In some streaming systems, the encoded video data (304), (307), and (309) (e.g., video bitstreams) can be encoded according to a specific video encoding / compression standard, such as ITU-T Recommendation H.265. For example, a video coding standard under development is informally known as Multipurpose Video Coding (VVC).The disclosed subject matter may be used in the context of VVC.

[0026] It should be noted that the electronic devices (320) and (330) may include other components (not shown). For example, electronic device (320) may include a video decoder (not shown), and electronic device (330) may also include a video encoder (not shown).

[0027] Figure 4 shows a block diagram of a video decoder (410) according to one embodiment of the present disclosure. The video decoder (410) may be included in an electronic device (430). The electronic device (430) may include a receiver (431) (e.g., a receiving circuit). The video decoder (410) may be used in place of the video decoder (310) in the example of Figure 3.

[0028] Receiver (431) may receive one or more encoded video sequences to be decoded by video decoder (410), and in the same or other embodiments, may receive one encoded video sequence at a time, with the decoding of each encoded video sequence being independent of other encoded video sequences. Encoded video sequences may be received from channel (401), which may be a hardware / software link to a storage device that stores encoded video data. Receiver (431) may receive encoded video data together with other data that may be transferred to their respective usage entities (not shown), e.g., encoded audio data and / or auxiliary data streams. Receiver (431) may isolate the encoded video sequences from other data. To counteract network jitter, a buffer memory (415) may be coupled between receiver (431) and entropy decoder / parser (420) (hereinafter, "Parser (420)"). In certain applications, the buffer memory (415) is part of the video decoder (410). In other cases, it may be located outside the video decoder (410) (not shown). Further variations may include a buffer memory (not shown) outside the video decoder (410) to counteract network jitter, for example, and another buffer memory (415) inside the video decoder (410) to handle playback timing. When the receiver (431) receives data from a storage / transmission device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (415) may be unnecessary or small. For use in best-effort packet networks such as the Internet, the buffer memory (415) may be required, may be relatively large, and may be adaptively sized, and may be at least partially implemented in an operating system or similar element (not shown) outside the video decoder (410).

[0029] The video decoder (410) may include a parser (420) for reconstructing symbols (421) from the encoded video sequence. These categories of symbols include information used to manage the operation of the video decoder (410) and potentially information for controlling rendering devices, such as a renderer (412) (e.g., a display screen), which is not an integral part of the electronic device (430) but can be coupled to the electronic device (430), as shown in Figure 4. The control information for the rendering device(s) may be in the form of supplemental enhancement information (SEI messages) or video usability information (VUI) parameter set fragments (not shown). The parser (420) may analyze / entropy decode the received encoded video sequence. The encoding of the encoded video sequence may follow video coding techniques or standards and may follow various principles, including variable-length coding, Huffman coding, and arithmetic coding with or without context dependency. The parser(420) may extract from the encoded video sequence a set of at least one subgroup parameters for a subgroup of pixels in the video decoder, based on at least one parameter corresponding to a group. Subgroups may include picture groups (GOP), pictures, tiles, slices, macroblocks, coding units (CU), blocks, transform units (TU), and predictive units (PU). The entropy decoder / parser(420) may also extract from the encoded video sequence information such as transform coefficients, quantizer parameter values, and motion vectors.

[0030] The parser (420) can perform entropy decoding / syntax analysis operations on the video sequence received from buffer memory (415) to create symbols (421).

[0031] The reconstruction of symbol (421) may involve multiple different units, depending on the type of the encoded video picture or part thereof (inter-picture and intra-picture, inter-block and intra-block, etc.) and other factors. How each unit is involved can be controlled by subgroup control information parsed from the video sequence encoded by parser (420). The flow of such subgroup control information between parser (420) and the following multiple units is not depicted for clarity.

[0032] Beyond the functional blocks already described, the video decoder (410) can be conceptually subdivided into several functional units, as described below. In actual implementations operating under commercial constraints, many of these units can interact closely with each other and, at least partially, integrate with one another. However, for the sake of illustrating the disclosed subject, the following conceptual subdivision into functional units is appropriate.

[0033] The first unit is the scaler / inverse unit (451). The scaler / inverse unit (451) receives control information from the parser (420) as symbols (421), including the quantized transformation coefficients, as well as the transformation to be used, block size, quantization factor, and quantization scaling matrix. The scaler / inverse unit (451) may output a block containing sample values ​​that can be input to the aggregator (455).

[0034] In some cases, the output samples of the scaler / inverse transform (451) may relate to intra-encoded blocks, i.e., blocks that do not use predictive information from previously reconstructed pictures but can use predictive information from previously reconstructed portions of the current picture. Such predictive information may be provided by the intra-picture predictive unit (452). In some cases, the intra-picture predictive unit (452) generates a block of the same size and shape as the block being reconstructed, using the surrounding already reconstructed information fetched from the current picture buffer (458). The current picture buffer (458) buffers, for example, partially reconstructed current pictures and / or fully reconstructed current pictures. The aggregator (455) may, sample by sample, add the predictive information generated by the intra-predictive unit (452) to the output sample information provided by the scaler / inverse transform unit (451).

[0035] In other cases, the output samples of the scaler / inverse unit (451) may relate to an intercoded and potentially motion-compensated block. In such cases, the motion-compensated prediction unit (453) can access the reference picture memory (457) to fetch samples to be used for prediction. After motion-compensating the fetched samples according to the symbols (421) associated with the block, these samples can be added to the output of the scaler / inverse unit (451) by the aggregator (455) to generate output sample information (in this case, called residual samples or residual signals). The address in the reference picture memory (457) from which the motion-compensated prediction unit (453) fetches the predicted samples can be controlled by a motion vector, which is available to the motion-compensated prediction unit (453) in the form of a symbol (421) that can have, for example, X, Y, and reference picture components. Motion compensation may also include interpolation of sample values ​​fetched from the reference picture memory (457) when the exact motion vectors of the subsamples are used, a motion vector prediction mechanism, etc.

[0036] The output samples from the aggregator (455) can undergo various loop filtering techniques in the loop filter unit (456). The video compression technique may include in-loop filtering techniques controlled by parameters contained in the encoded video sequence (also called the encoded video bitstream) and available to the loop filter unit (456) as symbols (421) from the parser (420), but may also respond to metadata obtained during decoding of previous (in decoding order) portions of the encoded picture or encoded video sequence, and may also respond to previously reconstructed and loop-filtered sample values.

[0037] The output of the loop filter unit (456) can be a sample stream that can be output to the renderer (412) or stored in the reference picture memory (457) for use in future inter-picture predictions.

[0038] A particular encoded picture, once fully reconstructed, can be used as a reference picture for future predictions. For example, once the encoded picture corresponding to the current picture is fully reconstructed and the encoded picture is identified as a reference picture (e.g., by the parser (420)), the current picture buffer (458) can become part of the reference picture memory (457) and can be reallocated before starting the reconstruction of the next encoded picture.

[0039] The video decoder (410) may perform decoding operations according to a given video compression technique of a standard, such as ITU-T Rec.H.265. The encoded video sequence may conform to the syntax specified by the video compression technique or standard being used, in the sense that the encoded video sequence conforms to both the syntax of the video compression technique or standard and the profile documented in the video compression technique or standard. Specifically, a profile may select a particular tool from all the tools available in the video compression technique or standard as the only tool usable under that profile. Also required for compliance is that the complexity of the encoded video sequence is within the range defined by the level of the video compression technique or standard. In some cases, the level may limit the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limitations set by the level may, in some cases, be further limited by the hypothetical reference decoder (HRD) specification and the HRD buffer management metadata conveyed in the encoded video sequence.

[0040] In one embodiment, the receiver (431) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (410) to properly decode the data and / or to more accurately reconstruct the original video data. The additional data may take the form of, for example, a temporal, spatial, or signal-to-noise ratio (SNR) enhancement layer, redundant slices, redundant pictures, or forward error correction code.

[0041] Figure 5 shows a block diagram of a video encoder (503) according to one embodiment of the present disclosure. The video encoder (503) is included in an electronic device (520). The electronic device (520) includes a transmitter (540) (e.g., a transmitting circuit). The video encoder (503) can be used in place of the video encoder (303) in the example of Figure 3.

[0042] The video encoder (503) can receive video samples from a video source (501) (not part of the electronic device (520) in the example of Figure 5) that can capture video images encoded by the video encoder (503). In other examples, the video source (501) is part of the electronic device (520).

[0043] The video source (501) may provide a source video sequence encoded by a video encoder (503) in the form of a digital video sample stream, which can be of any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601 Y CrCB, RGB, ...), and any suitable sampling structure (e.g., Y CrCb 4:2:0, Y CrCb 4:4:4). In a media serving system, the video source (501) may be a storage device that stores previously prepared video. In a video conferencing system, the video source (501) may be a camera that captures local image information as a video sequence. The video data may be provided as a series of separate pictures that give motion when viewed sequentially. The pictures themselves can be organized as a spatial array of pixels, and each pixel may contain one or more samples, depending on the sampling structure, color space, etc., in use. Those skilled in the art will readily understand the relationship between pixels and samples. The following description focuses on samples.

[0044] According to one embodiment, the video encoder (503) can encode and compress pictures of a source video sequence into an encoded video sequence (543) in real time or under any other time constraints required by the application. Forcing an appropriate encoding rate is one function of the controller (550). In some embodiments, the controller (550) controls and is functionally coupled to other functional units, as described below. For clarity, coupling is not depicted. Parameters set by the controller (550) may include rate control-related parameters (such as picture skip, quantizer, lambda value of rate distortion optimization technique), picture size, Group of Pictures (GOP) layout, maximum motion vector search range, etc. The controller (550) can be configured to have other appropriate functions of the video encoder (503) optimized for a particular system design.

[0045] In some embodiments, the video encoder (503) is configured to operate in an encoding loop. In an overly simplified explanation, in one example, the encoding loop may include a source coder (530) (responsible for generating symbols, such as a symbol stream, based on, for example, the input picture to be encoded and a reference picture) and a (local) decoder (533) incorporated into the video encoder (503). The decoder (533) reconstructs the symbols to create sample data in a similar manner to how the (remote) decoder also creates it (since any compression between the symbols and the encoded video bitstream is reversible in the video compression techniques considered in the disclosed subject). The reconstructed sample stream (sample data) is input to the reference picture memory (534). Since decoding the symbol stream yields a bit-exact result regardless of the decoder's location (local or remote), the contents of the reference picture memory (534) are also bit-exact between the local encoder and the remote encoder. In other words, the predictive part of the encoder "sees" the exact same sample values ​​as the reference picture samples that the decoder "sees" when using the predictions during decoding. This fundamental principle of reference picture synchronization (and the drift that occurs when synchronization cannot be maintained, for example, due to channel errors) is also used in several related techniques.

[0046] The operation of the “local” decoder (533) may be the same as that of a “remote” decoder, such as the video decoder (410), which is described in detail above in relation to Figure 4. However, also briefly referring to Figure 4, symbols may be available, and the encoding / decoding of symbols to the encoded video sequence by the entropy coder (545) and parser (420) may be reversible, and the entropy decoding portion of the video decoder (410), including the buffer memory (415) and parser (420), may not be fully implemented in the local decoder (533).

[0047] One observation that can be made at this point is that decoder techniques other than analysis / entropy decoding present in the decoder must also be present in the corresponding encoder in substantially the same functional form. For this reason, the disclosed subject matter focuses on decoder operation. The description of encoder techniques can be omitted as it is the inverse of the comprehensively described decoder techniques. More detailed explanations are necessary only in specific areas and are provided below.

[0048] During operation, in some examples, the source coder (530) may perform motion-compensated predictive coding, which predictively codes the input picture by referencing one or more previously coded pictures from a video sequence designated as “reference pictures”. In this way, the coding engine (532) codes the difference between the pixel blocks of the input picture and the pixel blocks of the reference picture that may be selected as predictive references to the input picture.

[0049] The local video decoder (533) can decode the encoded video data of a picture that may be designated as a reference picture based on symbols created by the source coder (530). The operation of the encoding engine (532) may, advantageously, be a lossy process. If the encoded video data can be decoded by a video decoder (not shown in Figure 5), the reconstructed video sequence may typically be a replica of the source video sequence with some errors. The local video decoder (533) can replicate the decoding process that may be performed by the video decoder on the reference picture and have the reconstructed reference picture stored in the reference picture cache (534). In this way, the video encoder (503) can locally store a copy of the reconstructed reference picture having common content as the reconstructed reference picture acquired by the far-end video decoder. (No transmission errors).

[0050] The predictor (535) may perform a predictive search of the encoding engine (532). That is, for a new picture to be encoded, the predictor (535) may search the reference picture memory (534) for sample data (as candidate reference pixel blocks) or specific metadata such as reference picture motion vectors and block shapes that can serve as appropriate predictive references for the new picture. The predictor (535) may operate with one sample block per pixel block to find appropriate predictive references. In some cases, the input picture may have predictive references drawn from multiple reference pictures stored in the reference picture memory (534), as determined by the search results obtained by the predictor (535).

[0051] The controller (550) may manage the encoding operation of the source coder (530), including, for example, setting parameters and subgroup parameters used to encode video data.

[0052] The outputs of all the aforementioned functional units may undergo entropy coding in the entropy coder (545). The entropy coder (545) converts the symbols generated by the various functional units into coded video sequences by lossless compression of the symbols according to techniques such as Huffman coding, variable-length coding, and arithmetic coding.

[0053] The transmitter (540) may buffer the encoded video sequence created by the entropy coder (545) and prepare it for transmission over the communication channel (560), which may be a hardware / software link to a storage device for storing the encoded video data. The transmitter (540) may merge the encoded video data from the video coder (503) with other data being transmitted, such as encoded audio data and / or auxiliary data streams (sources not shown).

[0054] The controller (550) may manage the operation of the video encoder (503). During encoding, the controller (550) may assign a specific encoded picture type to each encoded picture, which may affect the coding technique that can be applied to each picture. For example, a picture may often be assigned as one of the following picture types:

[0055] An intra-picture (I-picture) may be one that can be encoded and decoded without using other pictures in the sequence as a source for prediction. Some video codecs can use various types of intra-pictures, such as Independent Decoder Refresh ("IDR") Picture. Those skilled in the art are familiar with these variations of I-pictures and their respective uses and characteristics.

[0056] A predictive picture (P-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction, which uses up to one motion vector and reference index to predict the sample value of each block.

[0057] A bidirectional predictive picture (B-picture) may be one that can be encoded and decoded using intra-prediction or inter-prediction, which uses up to two motion vectors and reference indices to predict the sample values ​​of each block. Similarly, multiple predictive pictures can use three or more reference pictures and associated metadata for the reconstruction of a single block.

[0058] A source picture can generally be subdivided spatially into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each), and each block can be encoded. Blocks can be predictively encoded by referencing other (already encoded) blocks, as determined by the encoding assignment applied to each picture in the block. For example, blocks in picture I can be non-predictively encoded or predictively encoded by referencing already encoded blocks of the same picture (spatial prediction or intra-prediction). Pixel blocks in picture P can be predictively encoded via spatial prediction or via temporal prediction referencing one previously encoded reference picture. Blocks in picture B can be predictively encoded via spatial prediction or via temporal prediction referencing one or two previously encoded reference pictures.

[0059] The video encoder (503) may perform encoding operations in accordance with a given video coding technique or standard, such as ITU-T Rec.H.265. In this operation, the video encoder (503) may perform various compression operations, including predictive encoding operations that utilize temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may conform to the syntax specified by the video coding technique or standard being used.

[0060] In one embodiment, the transmitter (540) may transmit additional data along with the encoded video. The source coder (530) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, and the like.

[0061] Video may be captured in time series as multiple source pictures (video pictures). Intra-picture prediction (often abbreviated as intra-prediction) utilizes spatial correlations within a given picture, while inter-picture prediction utilizes (temporal or other) correlations between pictures. In one example, a particular picture being encoded / decoded, called the current picture, is divided into blocks. When a block in the current picture is analogous to a reference block in a previously encoded and still-buffered reference picture in the video, the block in the current picture can be encoded by a vector called a motion vector. The motion vector points to a reference block in the reference picture and may have a third dimension to identify the reference picture if multiple reference pictures are used.

[0062] In some embodiments, a dual prediction technique can be used for picture-to-picture prediction. According to the dual prediction technique, two reference pictures are used, such as a first reference picture and a second reference picture, both of which are prior to the decoding order of the current picture in the video (however, the display order may be past and future, respectively). A block in the current picture can be encoded by a first motion vector pointing to a first reference block in the first reference picture, and a second motion vector pointing to a second reference block in the second reference picture. A block can be predicted by a combination of the first and second reference blocks.

[0063] Furthermore, merge mode techniques can be used for picture-to-picture prediction to improve coding efficiency.

[0064] According to some embodiments of this disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed in block units. For example, according to the HEVC standard, pictures in a sequence of video pictures are divided into coded tree units (CTUs) for compression, and the CTUs in a picture have the same size, such as 64x64 pixels, 32x32 pixels, or 16x16 pixels. Generally, a CTU contains three coded tree blocks (CTBs), which are one lumen CTB and two chromen CTBs. Each CTU can be recursively quad-tree-divided into one or more coded units (CUs). For example, a 64x64 pixel CTU can be divided into one 64x64 pixel CU, or four 32x32 pixel CUs, or sixteen 16x16 pixel CUs. In one example, each CU is analyzed to determine the prediction type of the CU, such as inter-prediction type or intra-prediction type. The CU is divided into one or more prediction units (PUs) depending on its temporal and / or spatial predictability. Generally, each PU includes a Luma prediction block (PB) and two Chroma PBs. In one embodiment, the prediction operation in encoding (encoding / decoding) is performed in units of prediction blocks. Using a Luma prediction block as an example of a prediction block, the prediction block includes a matrix of pixel values ​​(e.g., Luma values) such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.

[0065] Figure 6 shows a diagram of a video encoder (603) according to another embodiment of the present disclosure. The video encoder (603) is configured to receive a processing block (e.g., a prediction block) of sample values ​​in the current video picture within a sequence of video pictures, and to encode the processing block into an encoded picture which is part of an encoded video sequence. In one example, the video encoder (603) is used instead of the video encoder (303) in the example of Figure 3.

[0066] In the HEVC example, the video encoder (603) receives a matrix of sample values ​​for a processing block, such as an 8x8 sample prediction block. The video encoder (603) determines whether the processing block is best encoded using intra-mode, inter-mode, or bi-prediction mode, for example, using rate-distortion optimization. If the processing block is encoded in intra-mode, the video encoder (603) may use the intra-prediction technique to encode the processing block into an encoded picture; if the processing block is encoded in inter-mode or bi-prediction mode, the video encoder (603) may use the inter-prediction technique or the bi-prediction technique, respectively, to encode the processing block into an encoded picture. In certain video coding techniques, the merge mode may be an inter-picture prediction submode in which the motion vector is derived from one or more motion vector predictors without benefiting from the encoded motion vector components outside the predictors. In certain other video coding techniques, there may be motion vector components applicable to the target block. In one example, the video encoder (603) includes other components, such as a mode determination module (not shown) for determining the mode of the processing block.

[0067] In the example shown in Figure 6, the video encoder (603) includes an interencoder (630), an intraencoder (622), a residual calculation unit (623), a switch (626), a residual encoder (624), a general controller (621), and an entropy encoder (625), all coupled together as shown in Figure 6.

[0068] The interencoder (630) is configured to receive a sample of the current block (e.g., a processing block), compare that block to one or more reference blocks in a reference picture (e.g., blocks in the previous and subsequent pictures), generate interprediction information (e.g., a description of redundant information by intercoding technique, motion vectors, and merge mode information), and compute an interprediction result (e.g., a predicted block) based on the interprediction information using any appropriate technique. In some examples, the reference picture is a decoded reference picture that is decoded based on encoded video information.

[0069] The intra encoder (622) is configured to receive a sample of the current block (e.g., a processing block), and optionally compare the block to a block already encoded within the same picture, generate quantization coefficients after the transformation, and optionally also generate intra prediction information (e.g., intra prediction direction information by one or more intra coding techniques). In one example, the intra encoder (622) calculates an intra prediction result (e.g., a prediction block) based on the intra prediction information and a reference block within the same picture.

[0070] The general controller (621) is configured to determine general control data and control other components of the video encoder (603) based on the general control data. In one example, the general controller (621) determines the mode of a block and provides control signals to the switch (626) based on the mode. For example, if the mode is intra-mode, the general controller (621) controls the switch (626) to select the intra-mode result to be used by the residual calculation unit (623), and controls the entropy encoder (625) to select the intra-prediction information and include it in the bitstream. If the mode is inter-mode, the general controller (621) controls the switch (626) to select the inter-prediction result to be used by the residual calculation unit (623), and also controls the entropy encoder (625) to select the inter-prediction information and include it in the bitstream.

[0071] The residual calculation unit (623) calculates the difference (residual data) between the received block and the prediction result selected from the intra-encoder (622) or inter-encoder (630). The residual encoder (624) is configured to operate on the residual data and encode it to generate conversion coefficients. In one example, the residual encoder (624) is configured to convert the residual data from the spatial domain to the frequency domain and generate conversion coefficients. The conversion coefficients are then quantized to obtain quantized conversion coefficients. In various embodiments, the video encoder (603) also includes a residual decoder (628). The residual decoder (628) is configured to perform an inverse transform and generate decoded residual data. The decoded residual data can be suitably used by the intra-encoder (622) and inter-encoder (630). For example, an interencoder (630) can generate a decoded block based on decoded residual data and interprediction information, and an intraencoder (622) can generate a decoded block based on decoded residual data and intraprediction information. In some examples, the decoded block is appropriately processed to generate a decoded picture, which can be buffered in a memory circuit (not shown) and used as a reference picture.

[0072] The entropy encoder (625) is configured to format the bitstream to include the encoded blocks. The entropy encoder (625) is configured to include various information according to an appropriate standard such as the HEVC standard. In one example, the entropy encoder (625) is configured to include general control data, selected prediction information (e.g., intra-prediction information or inter-prediction information), residual information, and other appropriate information in the bitstream. Note that, according to the disclosed subject, when encoding blocks in either inter-mode or bi-prediction mode merge submode, residual information is not present.

[0073] Figure 7 shows a diagram of a video decoder (710) according to another embodiment of the present disclosure. The video decoder (710) is configured to receive an encoded picture, which is part of an encoded video sequence, and to decode the encoded picture to produce a reconstructed picture. In one example, the video decoder (710) is used instead of the video decoder (310) in the example of Figure 3.

[0074] In the example shown in Figure 7, the video decoder (710) includes an entropy decoder (771), an interdecoder (780), a residual decoder (773), a reconfiguration module (774), and an intradecoder (772) coupled together as shown in Figure 7.

[0075] The entropy decoder (771) may be configured to reconstruct specific symbols from the encoded picture that represent the syntax elements constituting the encoded picture. Such symbols may include, for example, the mode in which the block is encoded (e.g., intra-mode, inter-mode, the latter two being bidirectional prediction modes, merge sub-mode, or another sub-mode), prediction information (e.g., intra-prediction information or inter-prediction information) that can identify specific samples or metadata used for prediction by the intra-decoder (772) or inter-decoder (780), respectively, and residual information, for example, in the form of quantization transformation coefficients. In one example, if the prediction mode is inter-prediction mode or bidirectional prediction mode, inter-prediction information is provided to the inter-decoder (780), and if the prediction type is intra-prediction type, intra-prediction information is provided to the intra-decoder (772). The residual information may undergo inverse quantization and be provided to the residual decoder (773).

[0076] The interdecoder (780) is configured to receive interprediction information and generate interprediction results based on the interprediction information.

[0077] The intra decoder (772) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.

[0078] The residual decoder (773) is configured to perform inverse quantization to extract the inversely quantized transformation coefficients, and to process the inversely quantized transformation coefficients to convert the residual from the frequency domain to the spatial domain. The residual decoder (773) may also require certain control information (including quantizer parameters (QP)), which may be provided by the entropy decoder (771) (data paths not shown here may only contain low-level control information).

[0079] The reconstruction module (774) is configured to combine the residuals as output from the residual decoder (773) and the prediction results (possibly as output from the inter or intra prediction module) in the spatial domain to form reconstruction blocks that may be part of the reconstruction picture, and the reconstruction blocks may be part of the reconstruction video. Note that other appropriate operations, such as deblocking operations, may be performed to improve visual quality.

[0080] It should be noted that the video encoders (303), (503), and (603), as well as the video decoders (310), (410), and (710), can be implemented using any suitable technique. In one embodiment, the video encoders (303), (503), and (603), as well as the video decoders (310), (410), and (710), can be implemented using one or more integrated circuits. In other embodiments, the video encoders (303), (503), and (603), as well as the video decoders (310), (410), and (710), can be implemented using one or more processors that execute software instructions.

[0081] Entropy coding can be performed in the final stage of video coding (or the first stage of video decoding) after a video signal has been reduced to a set of syntax elements. Entropy coding can be a lossless compression method that uses statistical properties to compress data such that the number of bits used to represent the data is logarithmically proportional to the probability of the data. For example, by performing entropy coding over a set of syntax elements, bits representing the syntax elements (called bins) can be converted to fewer bits in the bitstream (called coded bits). Context-based adaptive binary arithmetic coding (CABAC) is a form of entropy coding. In CABAC, a context model that provides probability estimates can be determined for each bin in a set of bins based on the context associated with each bin. The binary arithmetic coding process can then be performed using the probability estimates to encode the sequence of bins into coded bits in the bitstream. In addition, the context model is updated with new probability estimates based on the coded bins.

[0082] Figure 8A shows an exemplary CABAC-based entropy encoder (800A) according to one embodiment. For example, the entropy encoder (800A) can be implemented in the entropy coder (545) in the example of Figure 5, or in the entropy encoder (625) in the example of Figure 6. The entropy encoder (800A) may include a context modeler (810) and a binary arithmetic encoder (820). In one example, various types of syntax elements are provided as input to the entropy encoder (800A). For example, the bins of a binary syntax element may be directly input to the context modeler (810), while non-binary syntax elements may be first binarized into a binstring before the bins of the binstring are input to the context modeler (810).

[0083] In one example, the context modeler (810) receives a bin of syntax elements and performs context modeling processing to select a context model for each received bin. For example, it receives a bin of binary syntax elements of transformation coefficients within a transformation block. Thus, a context model can be determined for this bin based on, for example, the type of syntax element, the color component type of the transformation component, the position of the transformation coefficient, and previously processed neighboring transformation coefficients. The context model can provide a probability estimate for this bin.

[0084] For example, a set of context models can be constructed for each type of syntax element. These context models can be placed in a context model list (802) stored in memory (801), as shown in Figure 8A. Each entry in the context model list (802) can represent a context model. Each context model on the list can be assigned an index called a context model index or context index. Furthermore, each context model can include a probability estimate, or a parameter that indicates a probability estimate. The probability estimate can indicate the likelihood that a bin is 0 or 1. For example, during context modeling, the context modeler (810) can calculate the context index of a bin, and accordingly, context models can be selected from the context model list (802) according to their context index and assigned to the bin.

[0085] Furthermore, the probability estimates in the context model list can be initialized at the start of operation of the entropy encoder (800A). After the context models on the context model list (802) are assigned to bins and used to encode the bins, the context models can then be updated according to the bin values ​​with updated probability estimates.

[0086] In one example, a binary arithmetic encoder (820) receives bins and a context model assigned to each bin (e.g., probability estimation) and performs a binary arithmetic coding process accordingly. This generates coded bits, which are then transmitted in a bitstream.

[0087] Figure 8B shows an exemplary CABAC-based entropy decoder (800B) according to one embodiment. For example, the entropy decoder (800B) can be implemented in the parser (420) in the example of Figure 4, or in the entropy decoder (771) in the example of Figure 7. The entropy decoder (800B) may include a binary arithmetic decoder (830) and a context modeler (840). The binary arithmetic decoder (830) receives encoded bits from a bitstream and performs a binary arithmetic decoding process to reconstruct the bins from the encoded bits. The context modeler (840) can operate similarly to the context modeler (810). For example, the context modeler (840) can select a context model from a context model list (804) stored in memory (803) and provide the selected context model to the binary arithmetic decoder (830). However, the context modeler (840) determines the context model based on the bins recovered from the binary arithmetic decoder (830). For example, based on the recovered bins, the context modeler (840) can know the type of syntax element of the next bin to be decoded, and the values ​​of previously decoded syntax elements. This information is used to determine the context model of the next bin to be decoded.

[0088] In one embodiment, the residual signal of the conversion block is first converted from the spatial domain to the frequency domain to produce a block of conversion coefficients. Next, quantization is performed to quantize the block of conversion coefficients into a block of conversion coefficient levels. In various embodiments, different techniques may be used to convert the residual signal to conversion coefficient levels. The block of conversion coefficient levels is provided to an entropy encoder and further processed to generate syntax elements that can be encoded into bits of a bitstream. In one embodiment, the process of generating syntax elements from conversion coefficient levels can be carried out as follows:

[0089] A block of conversion coefficient levels can first be divided into subblocks, for example, with a size of 4x4. These subblocks can then be processed according to a predetermined scan order. Figure 9 shows an example of a subblock scan order called the inverse diagonal scan order. As shown, block (910) is divided into 16 subblocks (901). The subblock in the lower right corner is processed first, and the subblock in the upper left corner is processed last. In one example, if all subblocks have a conversion coefficient level of 0, the subblock may be skipped without processing.

[0090] For each subblock, each having at least one non-zero conversion coefficient level, four scans can be performed within each subblock. Between each pass, 16 locations within each subblock can be scanned in reverse diagonal scan order. Figure 10 shows an example of a subblock scan process (1000) that generates different types of syntax elements of the conversion coefficients.

[0091] The 16 coefficient positions (1010) within the subblock are shown in one dimension at the bottom of Figure 10. The positions (1010) are numbered from 0 to 15, reflecting their respective scan order. During the first pass, the scan positions (1010) are scanned, and three types of syntax elements (1001-1003) can be generated at each scan position (1010). (i) A first type of binary syntax element (1001) indicating whether the absolute conversion coefficient level (denoted by absLevel) of each conversion coefficient is 0 or greater than 0 (called the significance flag, denoted by sig_coeff_flag). (ii) A second type of binary syntax element (1002) indicating the parity of the absolute transformation level of each transformation coefficient (called the parity flag, indicated by par_level_flag). The parity flag is generated only if the absolute transformation level of each transformation coefficient is non-zero. (iii)(absLevel-1)>>1 is a third type of binary syntax element (1003) that indicates whether each conversion coefficient is greater than 0 (called the greater than 1 flag, indicated by rem_abs_gt 1_flag). The greater than 1 flag is generated only if the absolute conversion coefficient level of each conversion coefficient is non-zero.

[0092] During the second pass, a fourth type of binary syntax element (1004) may be generated. This fourth type of syntax element (1004) is called the greater-than-2 flag and is represented by rem_abs_gt 2_flag. The fourth type of syntax element (1004) indicates whether the absolute conversion level of each conversion coefficient is greater than 4. The greater-than-2 flag is generated only if (absLevel-1)>>1 is greater than 0 for each conversion coefficient.

[0093] During the third pass, a fifth type of non-binary syntax element (1005) may be generated. The fifth type of syntax element (1005) is represented by abs_remainder and indicates the remaining value of the absolute conversion coefficient level for each conversion coefficient greater than 4. The fifth type of syntax element (1005) is generated only if the absolute conversion coefficient level for each conversion coefficient is greater than 4.

[0094] During the fourth pass, a sixth type of syntax element (1006) having a non-zero coefficient level indicating the sign of each conversion coefficient level may be generated at each scan position (1010).

[0095] The various types of syntax elements (1001-1006) described above can be provided to the entropy encoder according to the order of the passes and the scan order of each pass. Different entropy encoding schemes can be used to encode different types of syntax elements. For example, in one embodiment, the significance flag, parity flag, greater than 1 flag, and greater than 2 flag can be encoded with a CABAC-based entropy encoder as illustrated in the example in Figure 8A. In contrast, syntax elements generated during the third and fourth passes can be encoded with a CABAC bypass entropy encoder (e.g., a binary arithmetic encoder with fixed probability estimates for the input bins).

[0096] Contextual modeling can be performed to determine the contextual model of the bins of several types of transformation coefficient syntax elements. In one embodiment, the contextual model can be determined according to the local template and the diagonal position of each current coefficient (e.g., the coefficient currently being processed), possibly in combination with other factors.

[0097] Figure 11 shows an example of a local template (1130) used for context selection of the current coefficient. The local template (1130) can cover neighborhood locations or sets of coefficients of the current coefficient (1120) within the coefficient block (1110). In the example in Figure 11, the coefficient block (1110) has a size of 8x8 locations and contains coefficient levels for 64 locations. The coefficient block (1110) is divided into four subblocks, each having a size of 4x4 locations. In the example in Figure 11, the local template (1130) is defined as five location templates covering the five coefficient levels to the lower right of the current coefficient (1120). When an inverse diagonal scan order is used for multiple passes across scan locations within the coefficient block (1110), neighborhood locations within the local template (1130) are processed before the current coefficient (1120).

[0098] During context modeling, the context model may be determined using information about the coefficient levels within the local template (1130). For this purpose, a measure called the template size is defined in some embodiments to measure or indicate the magnitude of the transformation coefficients or transformation coefficient levels within the local template (1130). The template size can then be used as a basis for selecting the context model.

[0099] In one example, the size of the template is defined as the sum of the partially reconstructed absolute transformation coefficient levels in the local template (1130), indicated by sumAbs1. The partially reconstructed absolute transformation coefficient levels can be determined according to the bins of the syntax elements of each transformation coefficient: sig_coeff_flag, par_level_flag, and rem_abs_gt 1_flag. These three types of syntax elements are obtained after a first pass of the scan position of the subblock performed by the entropy encoder or entropy decoder. In one embodiment, the partially reconstructed absolute transformation coefficient level at position (x, y) can be determined as follows: Formula (1): absLevel1[x][y]=sig_coeff_flag[x][y]+par_level_flag[x][y]+2*rem_abs_gt 1_flag[x][y], In the formula, x and y are coordinates relative to the upper-left corner of the coefficient block (1110), and absLevel1[x][y] represents the partially restored absolute transformation coefficient level at position (x, y).

[0100] In other examples, the size of a template is defined as the difference between the sum of the partially reconstructed absolute transformation coefficient levels and the number of non-zero coefficients in the local template, denoted by numSig, as shown by tmplCpSum 1 (1130). Thus, the difference can be determined as follows: Equation (2): tmplCpSum 1=sumAbs 1-numSig.

[0101] In other examples, the size of the template may be defined in other ways to indicate the magnitude of the transformation coefficient or transformation coefficient level.

[0102] In some embodiments, to utilize the correlation between transformation coefficients, previously encoded coefficients covered by the local template shown in Figure 11 are used in the context selection of the current coefficient, where a position with square cross-hatching (1120) indicates the current transformation coefficient position (x, y), and a position with diagonal cross-hatching indicates its five neighbors. Let AbsLevelPass1[x][y] represent the partially reconstructed absolute level of the coefficient at position (x, y) after the first pass, d represent the diagonal position of the current coefficient (d=x+y), and sumAbs1 represent the sum of the partially reconstructed absolute levels AbsLevelPass1[x][y] of the coefficients covered by the local template. The syntax element AbsLevelPass 1[x][y] can be calculated from the syntax elements sig_coeff_flag[xC][yC], abs_level_gtx_flag[n][0], par_level_flag[n], and abs_level_gtx_flag[n][1], and abs_level_gtx_flag[n][0] and abs_level_gtx_flag[n][1] are also known as rem_abs_gt 1_flag and rem_abs_gt 2_flag, respectively, for the coefficients at position n in Figure 10.

[0103] Figure 12 shows the diagonal positions of coefficients or coefficient levels within a coefficient block (1210). In one embodiment, the diagonal positions of the scan position (x, y) are defined as follows: Equation (3): d = x + y, In the formula, d represents the diagonal position, and x and y are the coordinates of that position. Using the diagonal position d of each coefficient, different frequency regions within the coefficient block (1210) can be defined based on one or two diagonal position thresholds. As two examples, the low-frequency region (1220) is defined as d <= 3, as shown in Figure 12, while the high-frequency region (1230) is defined as d >= 11.

[0104] In some embodiments, when encoding the current coefficient sig_coeff_flag[x][y], the context model index is selected according to the value of sumAbs1 and its diagonal position d. More specifically, for the Luma component, as shown in Figure 13, the context model index is determined as follows: Equation (4): Offset = min(sumAbs1,5) Equation (5): Base = 18 * max(0, state - 1) + (d < 2 ? 12: (d < 5 ? 6: 0)) Equation (6): ctxSig = base + offset

[0105] For chroma components, the context model index is determined as follows: Equation (7): Offset = min(sumAbs 1, 5) Equation (8): Base = 12 * max(0, state - 1) + (d < 2 ? 6 : 0) Equation (9): ctxSig = base + offset, The state specifies the scalar quantizer to be used, and the operators ? and : are defined similarly to those in the computer language C. If dependent quantization is enabled, the state is derived using a state transition process. Otherwise, dependent quantization is not enabled, and the state is equal to 0.

[0106] In some examples, the number of context models for encoding sig_coeff_flag[x][y] is 54 for luma and 36 for chroma. Therefore, the total number of context models for encoding sig_coeff_flag[x][y] is 90, which is more than 21% of the 424 context models in standardized context modeling schemes such as VVC Draft 5.

[0107] Table 1 shows an example of residual coding syntax. In Table 1, xC corresponds to the x-coordinate of the current coefficient in the transformation block, and yC corresponds to the y-coordinate of the current coefficient in the transformation block.

[0108] [Table 1A] [Table 1B] [Table 1C] [Table 1D]

[0109] As the number of context models increases, so does the complexity of the hardware and software. Therefore, it is desirable to reduce the number of context models without sacrificing coding efficiency. In particular, in the standardized context modeling scheme of VVC Draft 5, it is desirable to reduce the number of context models used for coding for the significance of transformation coefficients, as this exceeds 21% of the 424 context models.

[0110] Embodiments of the present disclosure may be used separately or combined in any order. Furthermore, each of the methods, encoders, and decoders according to embodiments of the present disclosure may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-temporary computer-readable medium. According to embodiments of the present disclosure, a term block may be interpreted as a prediction block, a coding block, or a coding unit (i.e., CU).

[0111] According to some embodiments, the region is defined as a set of connected transform coefficient positions. For example, the region is a set of transform coefficient positions (x, y) such that d0 ≦ x + y < d1 for some non - negative integers d0 and d1 called position thresholds. Embodiments of the present disclosure can be applied to entropy coding techniques of a transform coefficient significance flag (sig_coeff_flag) having the following parameters: (i) N is the number of context models per region. In one exemplary embodiment, N is equal to 4. In other exemplary embodiments, N is equal to 5. (ii) d 0Y and d 1Y are diagonal position thresholds of the luma region. In one exemplary embodiment, d 0Y is 2, and d 1Y is 5. (iii) d 0C is a diagonal position threshold of the chroma region. In one exemplary embodiment, d 0C is 2. (iv) f(x) is a non - decreasing function that maps from the set of non - negative integers to the set of non - negative integers. (v) When N is 5, the embodiment of the function f(x) is defined as follows. f(x)=x-(x>>2) (vi) When N is 4, the embodiment of the function f(x) is defined as follows. f(x)=(x + 1)>>1

[0112] According to some embodiments, when encoding the sig_coeff_flag[x][y] of the current coefficient, the context model index is selected according to the value of sumAbs 1 and the diagonal position d. More specifically, as shown in FIG. 14, for the luma component, in some embodiments, the context model index is determined as follows: Equation (10): offset = min(f(sumAbs 1), N - 1) Equation (11): base = 3*N*max(0, state - 1)+(d < d0 Y?2*N : (d < d1 Y ?N : 0)) Equation (12): ctxSig = base + offset

[0113] For the chroma component, the context model index is determined as follows: Equation (13): offset = min(f(sumAbs1), N - 1) Equation (14): base = 2*N*max(0, state - 1) + (d < d0 C ?N : 0) Equation (15): ctxSig = base + offset In the formula, state specifies the scalar quantizer used when dependent quantization is enabled and the state is derived using the state transition process. When dependent quantization is not enabled, in some examples, state is equal to 0. Further, in some embodiments, as shown in FIG. 15, when N is 4 or 5, the function min(f(sumAbs1), N - 1) can also be implemented for lower hardware complexity than f(min(sumAbs1, 5)).

[0114] The standardized context modeling method in VVC Draft 5 has 90 context models for encoding the significance of transform coefficients. In embodiments of the present disclosure, when N is equal to 5, the number of context models is reduced from 90 to 75, and when N is equal to 4, the number of context models is reduced from 90 to 60.

[0115] According to some embodiments, a non - decreasing monotonic function f(x) of non - negative integer x can be defined as follows: Equation (16):

Number

Number

[0116] According to some embodiments, the context region depends on the diagonal position d, so the number of context models per region depends on the diagonal position d, which can further reduce the number of contexts. For example, (d <d 0Y ), (d 0Y ≤d <d 1Y ), (d 1Y ≤d <d 2Y The number of context models for each domain is N1, N2, and N3, respectively. In particular, the number of context models may change based on the value of d. In this case, the context model index is Equation (17): g1(x)=min(f1(x),N1-1) Equation (18): g2(x)=min(f2(x),N2-1) Equation (19): g3(x) = min(f3(x), N3-1) Equation (20): ctxSig = (N1 + N2 + N3) * max(0, state - 1) + (d <d 0Y ?(N2+N3)+g1(sumAbs 1): (d <d 1Y ?N3+g2(sumAbs 1):g3(sumAbs 1))), In the formulas, f1(x), f2(x), and f3(x) are monotonically non-decreasing functions of a non-negative integer x. Examples of values ​​for N1, N2, and N3 can be integer values ​​from 1 to 16. Embodiments including formulas (17) to (20) offer greater flexibility by reducing the number of contexts having the same bitrate.

[0117] Alternative embodiments of this disclosure can be applied to entropy coding techniques for transformation coefficient significance flags having the following parameters: (i) N is the number of context models per domain. In this embodiment, N is equal to 4. (ii)d 0Y is the diagonal position threshold of the Luma region. In this embodiment, d 0Y It is 5. (iii)d0C is the diagonal position threshold of the chroma region. In this embodiment, d 0C The answer is 2. (iv) When N is 4, the function f(x) of a non-negative integer x is defined as follows: f(x)=(x+1)>>1

[0118] According to some embodiments, when encoding the current coefficient sig_coeff_flag[x][y], the context model index is selected according to sumAbs 1 and diagonal position d, and for the Luma component, the context model index is determined as follows: Equation (21): Offset = min(f(sumAbs 1), N-1) Equation (22): Base = 2 * N * max (0, state - 1) + (d <d 0Y ?N:0) Equation (23): ctxSig = base + offset

[0119] For chroma components, the context model index is determined as follows: Equation (24): offset = min(f(sumAbs 1), N-1) Equation (25): Base = 2 * N * max (0, state - 1) + (d <d 0C ?N:0) Equation (26): ctxSig = base + offset In the formula, state specifies the scalar quantizer used when dependent quantization is enabled and the state is derived using a state transition process. Otherwise, dependent quantization is not enabled, and state is equal to 0.

[0120] In some embodiments, the function min(f(sumAbs 1),N-1) can also be implemented for lower hardware complexity than f(min(sumAbs 1,5)).

[0121] The standardized context modeling scheme in VVC Draft 5 has 90 context models for encoding the significance of the transformation coefficients. In the previously disclosed alternative embodiments (i.e., equations (21) to (26)), when N is equal to 4, the number of context models is reduced from 90 to 48.

[0122] Figure 16 shows one embodiment of the process performed by a decoder, such as a video decoder (710). The process can begin in step (S1600), in which an encoded video bitstream is received, which includes the current picture and at least one syntax element corresponding to the transformation coefficients of the transformation blocks in the current picture. For example, at least one syntax may be sig_coeff_flag. The process proceeds to step (S1602), in which an offset value is determined based on the output of a monotonically non-decreasing function f(x) performed on the sum (x) of a group of partially reconstructed transformation coefficients. The process proceeds to step (S1604), in which a context model index is determined based on the sum of the determined offset value and the base value. For example, the context model index may be determined according to the process shown in either Figure 14 or Figure 15, or according to the alternative embodiments disclosed above (i.e., equations (21) to (26)). The process proceeds to step (S1606), in which a context model is selected from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficients.

[0123] Figure 17 shows one embodiment of a process performed by a decoder, such as a video decoder (710). The process can begin in step (S1700), in which an encoded video bitstream is received, which includes the current picture and at least one syntax element corresponding to the transformation coefficients of the transformation blocks in the current picture. For example, the at least one syntax may be sig_coeff_flag. The process proceeds to step (S1702), in which, for each context model region from a plurality of context model regions, the output of a monotonically non-decreasing function is determined, which is performed on the sum (x) of a group of partially reconstructed transformation coefficients and the number of context models associated with each context model region. For example, the functions g1(x)=min(f1(x),N1-1), g2(x)=min(f2(x),N2-1), and g3(x)=min(f3(x),N3-1) disclosed above can be used for their respective context model regions, and the number of context models per region (i.e., N1, N2, N3) varies based on the distance of the current coefficients from the upper left corner of the transformation block. The process proceeds to step (S1704), in which a context model index is determined based on the output of the monotonically non-decreasing function for each context model region. The process proceeds to step (S1706), in which a context model is selected from multiple context models based on the determined context model index for at least one syntax of the current transformation coefficients.

[0124] The above techniques may be implemented as computer software using computer-readable instructions and physically stored on one or more computer-readable media. For example, Figure 18 shows a computer system (1800) suitable for carrying out a particular embodiment of the disclosed subject matter.

[0125] Computer software can be encoded using any suitable machine language or computer language that may be subject to assembly, compilation, linking, or similar mechanisms to create code containing instructions that can be executed directly or by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., via translation, microcode execution, etc.

[0126] The instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, game consoles, and Internet of Things devices.

[0127] The components shown in Figure 18 for the computer system (1800) are essentially illustrative and are not intended to imply any limitations on the scope or functionality of computer software implementing embodiments of this disclosure. Furthermore, the configuration of the components should not be construed as having any dependencies or requirements relating to any one or combination of components shown in the exemplary embodiment of the computer system (1800).

[0128] The computer system (1800) may include certain human interface input devices. Such human interface input devices may respond to input from one or more human users, for example, through tactile input (keystrokes, swipes, data glove movements, etc.), voice input (voices, applause, etc.), visual input (gestures, etc.), and olfactory input (not shown). The human interface device may also be used to capture certain media that are not necessarily directly related to conscious human input, such as voice (speech, music, ambient sounds, etc.), images (scanned images acquired from a still camera, photographic images, etc.), and video (2D video, 3D video including stereoscopic video, etc.).

[0129] Input human interface devices may include one or more of the following: keyboard (1801), mouse (1802), trackpad (1803), touchscreen (1810), data glove (not shown), joystick (1805), microphone (1806), scanner (1807), and camera (1808).

[0130] The computer system (1800) may also include certain human interface output devices. Such human interface output devices may stimulate the senses of one or more human users, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may include tactile output devices (e.g., which may include tactile feedback via a touchscreen (1810), data glove (not shown), or joystick (1805), but which may not function as an input device), audio output devices (e.g., speakers (1809), headphones (not shown)), visual output devices (screens (1810), including CRT screens, LCD screens, plasma screens, and OLED screens, with or without touchscreen input functionality, with or without tactile feedback functionality, some of which may be capable of two-dimensional visual output or three-dimensional or more output through means such as stereographic output, virtual reality glass (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

[0131] A computer system (1800) may also include human-accessible storage devices and associated media, such as optical media including CD / DVD ROM / RW (1820) with CD / DVD or similar media (1821), thumb drives (1822), removable hard drives or solid-state drives (1823), legacy magnetic media such as tapes and floppy disks (not shown), and special ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0132] Those skilled in the art should also understand that the term “computer-readable medium” as used in relation to the subject matter currently disclosed does not include a transmission medium, carrier wave, or other transient signal.

[0133] The computer system (1800) may also include interfaces to one or more communication networks. These networks may be, for example, wireless, wired, or optical. Networks can further be local, wide-area, metropolitan, vehicle and industrial, real-time, latency-tolerant, etc. Examples of networks include local area networks such as Ethernet and wireless LANs; cellular networks including global systems for GSM, 3G, 4G, 5G, LTE, etc.; wired or wireless wide-area digital television networks including cable television, satellite television, and terrestrial television; and vehicle and industrial networks including CANBus. Certain networks typically require an external network interface adapter attached to a specific general data port or peripheral bus (1849) (e.g., a USB port on the computer system (1800)); others are generally integrated into the core of the computer system (1800) by connecting to a system bus as described below (e.g., an Ethernet interface to a PC computer system or a cellular network interface to a smartphone computer system). Using any of these networks, the computer system (1800) can communicate with other entities. Such communications can be one-way, receive-only (e.g., television broadcasting), one-way transmit-only (e.g., CANbus to a specific CANbus device), or two-way, for example, to other computer systems using a local or wide-area digital network. As described above, specific protocols and protocol stacks can be used for each of these networks and network interfaces.

[0134] The aforementioned human interface device, human-accessible storage device, and network interface can be connected to the core (1840) of the computer system (1800).

[0135] A core (1840) may include one or more central processing units (CPUs) (1841), graphics processing units (GPUs) (1842), special programmable processing units in the form of field-programmable gate areas (FPGAs) (1843), hardware accelerators (1844) for specific tasks, etc. These devices may be connected via a system bus (1848) along with read-only memory (ROM) (1845), random access memory (1846), internal mass storage devices such as built-in hard drives that are not accessible to the user, SSDs, etc. (1847). In some computer systems, the system bus (1848) can be accessed in the form of one or more physical plugs to enable expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (1848) or via a peripheral bus (1849). Peripheral bus architectures include PCI, USB, etc.

[0136] The CPU (1841), GPU (1842), FPGA (1843), and accelerator (1844) can execute specific instructions that, when combined, constitute the aforementioned computer code. This computer code can be stored in ROM (1845) or RAM (1846). Transitional data can also be stored in RAM (1846), while permanent data can be stored, for example, in internal mass storage (1847). High-speed storage and retrieval of any memory device can be enabled through the use of cache memory, which may be closely associated with one or more CPUs (1841), GPUs (1842), mass storage (1847), ROMs (1845), RAM (1846), etc.

[0137] Computer-readable media may contain computer code for performing various computer operations. The media and computer code may be specifically designed and constructed for the purposes of this disclosure, or they may be of a type well known and available to those skilled in the computer software technology.

[0138] As an example, but not limited to, a computer system having an architecture (1800), specifically a core (1840), can provide functionality as a result of a processor (including CPUs, GPUs, FPGAs, accelerators, etc.) that runs software embedded in one or more tangible computer-readable media. Such computer-readable media may be user-accessible mass storage devices as described above, as well as media associated with specific storage devices of the core (1840) of a non-transient nature, such as core internal mass storage (1847) or ROM (1845). Software implementing various embodiments of the present disclosure may be stored in such devices and run by the core (1840). The computer-readable media may include one or more memory devices or chips, depending on the specific needs. The software may cause the core (1840), in particular the processor (including CPUs, GPUs, FPGAs, etc.) therein, to run specific processes or specific parts of specific processes described herein, including defining data structures stored in RAM (1846) and modifying such data structures according to processes defined by the software. In addition, or as an alternative, a computer system may provide functionality as a result of being logically wired to or embodied circuits (e.g., accelerator 1844) that can operate in place of or in conjunction with software to perform a particular process or a particular part of a particular process described herein. References to software may include logic, and vice versa, as necessary. References to computer-readable media may, as necessary, include circuits that house software for execution (such as integrated circuits (ICs)), circuits that embody logic for execution, or both. This disclosure encompasses any suitable combination of hardware and software. Note A: Acronym JEM: Joint Exploration Model VVC:versatile video coding BMS:benchmark set MV: Motion Vector HEVC: High Efficiency Video Coding SEI: Supplementary Enhancement Information VUI: Video Usability Information GOP: Groups of Pictures TU: Transform Units PU: Prediction Units CTU: Coding Tree Units CTB: Coding Tree Blocks PB: Prediction Blocks HRD: Hypothetical Reference Decoder SNR: Signal Noise Ratio CPU: Central Processing Units GPU: Graphics Processing Units CRT: Cathode Ray Tube LCD: Liquid-Crystal Display OLED: Organic Light-Emitting Diode CD: Compact Disc DVD: Digital Video Disc ROM: Read-Only Memory RAM: Random Access Memory ASIC: Application-Specific Integrated Circuit PLD: Programmable Logic Device LAN: Local Area Network GSM: Global System for Mobile communications LTE: Long-Term Evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect FPGA: Field Programmable Gate Areas SSD: solid-state drive IC: Integrated Circuit CU: Coding Unit

[0139] While this disclosure describes several exemplary embodiments, there are variations, rearrangements, and various alternative equivalents that fall within the scope of this disclosure. Those skilled in the art will therefore understand that numerous systems and methods not expressly shown or described herein can be devised to embody the principles of the disclosure and thus fall within its spirit and scope.

[0140] (1) A video decoding method performed in a video decoder, the method comprising: receiving an encoded video bitstream including a current picture and at least one syntax element corresponding to a transformation coefficient of a transformation block in the current picture; determining an offset value based on the output of a monotonically non-decreasing f(x) function performed on a sum (x) of a group of partially reconstructed transformation coefficients; determining a context model index based on the sum of the determined offset value and a base value; and selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficient.

[0141] (2) The method of feature (1), wherein one of the base value and the offset value is determined based on the number of context models included in multiple context models.

[0142] (3) The method according to feature (2), further comprising the step of determining whether dependent quantization is enabled for the current coefficient, and in response to the determination that dependent quantization is enabled for the current coefficient, the base value is based on the state of the quantizer.

[0143] (4) The current coefficient is located in the Luma region, and the base value is determined by the method described in feature (3), based on a comparison between the distance of the current coefficient from the upper left corner of the transformation block and a first diagonal position threshold.

[0144] (5) The base value is determined by the method of feature (4), further based on a comparison of distance with a second diagonal position threshold.

[0145] (6) The method described in feature (3), wherein the current coefficient is located in the chroma region, and the base value is based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position threshold.

[0146] (7) A monotonically non-decreasing function is defined as x-(x>>2) in any one of the ways of (1) to (6).

[0147] (8) A monotonically non-decreasing function is defined as (x+1)>>1, and is a method of any one of features (1) to (6).

[0148] (9) The method according to any one of features (1) to (8), wherein the current coefficients and the group of partially reconstructed transformation coefficients form a template that constitutes a contiguous set of transformation coefficients.

[0149] (10) The method of any one of features (1) to (9), wherein at least one syntax element is a conversion coefficient significance flag (sig_coeff_flag).

[0150] (11) The method according to any one of features (1) to (10), wherein the bitstream comprises a plurality of syntax elements, each containing at least one syntax element, and the sum (x) of a group of partially reconstructed transformation coefficients is based on one or more syntax elements from the plurality of syntax elements.

[0151] (12) A video decoding method performed in a video decoder, the method comprising: receiving an encoded video bitstream including a current picture and at least one syntax element corresponding to a transformation coefficient of a transformation block in the current picture; determining the output of a monotonically non-decreasing function performed for each context model region from a plurality of context model regions on the sum (x) of a group of partially reconstructed transformation coefficients and the number of context models associated with each context model region; determining a context model index based on the output of the monotonically non-decreasing function for each context model region; and selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficient.

[0152] (13) The step of determining the context model index is the method of feature (12), further based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position threshold and a second diagonal position threshold.

[0153] (14) The step of determining the context model index is the method described in feature (12), further based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with the first diagonal position.

[0154] (15) A video decoder for video decoding, comprising a processing circuit configured to receive an encoded video bitstream including a current picture and at least one syntax element corresponding to a transformation coefficient of a transformation block in the current picture; determine an offset value based on the output of a monotonically non-decreasing f(x) function performed on a sum (x) of a group of partially reconstructed transformation coefficients; determine a context model index based on the sum of the determined offset value and a base value; and for at least one syntax of the current transformation coefficient, select a context model from a plurality of context models based on the determined context model index.

[0155] (16) A video decoder as described in feature (15), wherein one of the base value and the offset value is determined based on the number of context models included in multiple context models.

[0156] (17) The processing circuit is further configured to determine whether dependent quantization is enabled for the current coefficient, and in response to the determination that dependent quantization is enabled for the current coefficient, the base value is based on the state of the quantizer, as described in feature (16), video decoder.

[0157] (18) The current coefficient is located in the Luma region, and the base value is based on a comparison of the distance of the current coefficient from the upper left corner of the transform block with a first diagonal position threshold, as described in feature (17).

[0158] (19) The base value is based on a comparison of distance and a second diagonal position threshold, as described in feature (18), for the video decoder.

[0159] (20) A video decoder device for video decoding, comprising a processing circuit configured to receive an encoded video bitstream including a current picture and at least one syntax element corresponding to a transformation coefficient of a transformation block in the current picture; determine the output of a monotonically non-decreasing function performed on the sum (x) of a group of partially reconstructed transformation coefficients and the number of context models associated with each context model region for each of a plurality of context model regions; determine a context model index based on the output of the monotonically non-decreasing function for each context model region; and select a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficient. [Explanation of symbols]

[0160] 101 Currently Blocked 200 Communication Systems 210 Terminal device 220 Terminal devices 230 Terminal devices 250 Networks 301 Video Source Stream 302 Video Picture 303 Video Encoder 304 Video Data 305 Streaming Server 306 Client Subsystem 307 Video Data 313 Capture Subsystem 320 Electronic equipment 401 Channel 410 Video Decoder 412 Rendering device 415 buffer memory 420 Parsa 421 Symbols 430 Electronic equipment 431 Receiver 451 Scaler / Inverse Unit 452 IntraPicture Prediction Units 453 Motion Compensation Prediction Unit 455 Aggregator 456 Loop Filter Unit 457 Reference Picture Memory 458 Current picture buffer 501 Video Sources 503 Video Encoder / Video Coder 530 Source Coder 532 coding engine 533 Local Video Decoder 534 Reference Picture Memory 535 Predictor 540 Transmitter 543 Encoded Video Sequence 545 Entropy Coder 550 Controller 560 communication channels 603 Video Encoder 621 General Controller 622 Intra Encoders 623 Residual Calculation Unit 624 residual encoder 625 Entropy Encoder 626 switches 628 Residual Decoder 630 Interencoders 710 Video Decoder 771 Entropy Decoder 772 Intra Decoder 773 Residual Decoder 774 Reconfiguration Module 780 Interdecoder 800A Entropy Encoder 800B Entropy Decoder 801 memory 802 Context Model List 803 memory 804 Context Model List 810 Context Modeler 820 Binary Arithmetic Encoder 830 Binary Arithmetic Decoder 840 Context Modeler 1000 subblock scan processes 1130 Local Templates 1800 Computer System 1801 Keyboard 1802 Mouse 1803 Trackpad 1805 Joystick 1806 Mike 1807 Scanner 1808 Camera 1809 Speaker 1810 Touchscreen 1821 Medium 1822 Sam Drive 1823 Solid State Drive 1840 cores 1843 Field-Programmable Gate Area (FPGA) 1844 Accelerator 1845 Read-only memory (ROM) 1846 Random Access Memory (RAM) 1847 Internal mass storage 1848 System Bus 1849 Local buses

Claims

1. A video decoding method performed in a video decoder, wherein the method is: The steps include receiving an encoded video bitstream which includes a current picture and at least one syntax element corresponding to a conversion coefficient of a conversion block in the current picture, The steps include determining the offset value based on the output of a monotonically non-decreasing f(x) function performed on the sum (x) of a group of partially reconstructed transformation coefficients, The steps include determining the context model index based on the sum of the determined offset value and the base value, For the current transformation coefficient, the step of selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficient. Methods that include...

2. The method according to claim 1, wherein one of the base value and the offset value is determined based on the number of context models included in the plurality of context models.

3. The aforementioned method, The process further includes the step of determining whether dependent quantization is effective for the current coefficients, The method according to claim 2, wherein, in response to the determination that dependent quantization is effective for the current coefficient, the base value is based on the state of the quantizer.

4. The method according to claim 3, wherein the current coefficient is located in the Luma region, and the base value is based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position threshold.

5. The method according to claim 4, wherein the base value is further based on a comparison of the distance and a second diagonal position threshold.

6. The method according to claim 3, wherein the current coefficient is located in the chroma region, and the base value is based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position threshold.

7. The method according to claim 1, wherein the monotonically non-decreasing function is defined as x - (x >> 2).

8. The method according to claim 1, wherein the monotonically non-decreasing function is defined as (x+1) >> 1.

9. The method according to claim 1, wherein the group of current coefficients and partially reconstructed transformation coefficients forms a template constituting a contiguous set of transformation coefficients.

10. The method according to claim 1, wherein the at least one syntax element is a conversion coefficient significance flag (sig_coeff_flag).

11. The method according to claim 1, wherein the bitstream comprises a plurality of syntax elements, each containing at least one syntax element, and the sum (x) of the group of partially reconstructed conversion coefficients is based on one or more syntax elements from the plurality of syntax elements.

12. A video decoding method performed in a video decoder, wherein the method is: The steps include receiving an encoded video bitstream which includes a current picture and at least one syntax element corresponding to a conversion coefficient of a conversion block in the current picture, For each context model region from multiple context model regions, the step of determining the output of a monotonically non-decreasing function performed on the sum (x) of a partially reconstructed group of transformation coefficients and the number of context models associated with each context model region, A step of determining a context model index based on the output of the monotonically non-decreasing function for each context model domain, For the current transformation coefficient, the step of selecting a context model from a plurality of context models based on the determined context model index for at least one syntax of the current transformation coefficient. Methods that include...

13. The method according to claim 12, wherein the step of determining the context model index is further based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position threshold and a second diagonal position threshold.

14. The method according to claim 12, wherein the step of determining the context model index is further based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block with a first diagonal position.

15. A currently encoded video bitstream is received, which includes a current picture and at least one syntax element corresponding to a conversion coefficient of a conversion block within the current picture. The offset value is determined based on the output of the monotonically non-decreasing f(x) function performed on the sum (x) of the partially reconstructed group of transformation coefficients. Based on the sum of the determined offset value and base value, the context model index is determined. For at least one syntax of the current conversion coefficient, select a context model from among multiple context models based on the determined context model index. Processing circuit configured as follows A video decoder for video decoding, equipped with the necessary components.

16. The video decoder according to claim 15, wherein one of the base value and offset value is determined based on the number of context models included in the plurality of context models.

17. The aforementioned processing circuit is It is further configured to determine whether dependent quantization is effective for the current coefficients, The video decoder according to claim 16, wherein, in response to the determination that dependent quantization is effective for the current coefficient, the base value is based on the state of the quantizer.

18. The video decoder according to claim 17, wherein the current coefficient is located in the Luma region, and the base value is based on a comparison of the distance of the current coefficient from the upper left corner of the transformation block and a first diagonal position threshold.

19. The video decoder according to claim 18, wherein the base value is further based on a comparison of the distance and a second diagonal position threshold.

20. A currently encoded video bitstream is received, which includes a current picture and at least one syntax element corresponding to a conversion coefficient of a conversion block within the current picture. For each context model region from multiple context model regions, the output of a monotonically non-decreasing function is determined for the sum (x) of a partially reconstructed group of transformation coefficients and the number of context models associated with each context model region. Based on the output of the monotonically non-decreasing function for each context model domain, the context model index is determined. A processing circuit configured to select a context model from a plurality of context models based on the determined context model index for at least one syntax of the current conversion coefficient. A video decoder device for video decoding, comprising the following components.