Context derivation for arithmetic coding of transform coefficients generated by non-separable transforms

By determining the context model based on the coefficient group in the current transform block in the video decoder, and deriving the context model of the syntax elements associated with the current coefficient group using the transform coefficient level of at least one adjacent coefficient group, the problem of low coding efficiency in the prior art is solved, and more efficient video encoding is achieved.

CN119817107APending Publication Date: 2025-04-11TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202480003849.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-03-28
Filing Date
2024-04-18
Publication Date
2025-04-11

AI Technical Summary

Technical Problem

When existing video encoding technologies deal with inseparable transform coefficients, it is difficult to effectively utilize context information, resulting in low encoding efficiency.

Method used

By determining a context model based on the coefficient set in the current transform block in the video decoder, the context model of the syntax elements associated with the current coefficient set is derived using the transform coefficient level of at least one adjacent coefficient set to result in more efficient transformation coefficient level reconstruction.

Benefits of technology

Improve the efficiency of video encoding, reduce encoding errors and improve decoding quality through more accurate context models.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119817107A_ABST
    Figure CN119817107A_ABST
Patent Text Reader

Abstract

A video bitstream including a current transform block (TB) in a current picture is received. A context model is determined for syntax elements associated with a transform coefficient level of a first coefficient group (CG) in a current TB based on the transform coefficient level of at least one first neighboring CG of the first CG. The first CG is positioned on the first scan line. At least one first adjacent CG is positioned on a second scan line that is scanned before the first scan line. The context model is a probabilistic model for inseparable transformations. The first CG is reconstructed based on a transform coefficient level determined from the determined context model.
Need to check novelty before this filing date? Find Prior Art

Description

Cross-references

[0001] This application claims the benefit of priority to U.S. Patent Application No. 18 / 620,945, filed on March 28, 2024, entitled "CONTEXT DERIVATION FOR ARITHMETIC CODING OF TRANSFORM COEFFICIENTS GENERATED BY NON-SEPARABLE TRANSFORMS," which claims the benefit of priority to U.S. Provisional Application No. 63 / 460,877, filed on April 20, 2023, entitled "Context Derivation for Arithmetic Coding of Transform Coefficients Generated by Non-Separable Transforms." The entire disclosure of the prior application is incorporated herein by reference in its entirety. Technical Field

[0002] This disclosure describes implementations that generally relate to video encoding. Background Art

[0003] The background description provided herein is for the purpose of generally presenting the context of the present disclosure. To the extent the work is described in this background section, the work of the presently named inventors and aspects of the description that might not otherwise be considered prior art at the time of filing are neither explicitly nor implicitly admitted to be prior art against the present disclosure.

[0004] Image / video compression can help to transmit image / video data across different devices, storage devices, and networks with minimal quality degradation. In some examples, video codec technology can compress video based on spatial redundancy and temporal redundancy. In an example, a video codec can use a technique called intra-frame prediction, which can compress images based on spatial redundancy. For example, intra-frame prediction can use reference data from the current picture being reconstructed for sample prediction. In another example, a video codec can use a technique called inter-frame prediction, which can compress images based on temporal redundancy. For example, inter-frame prediction can use motion compensation to predict samples in the current picture based on previously reconstructed pictures. Motion compensation can be indicated by a motion vector (MV). Summary of the invention

[0005] Aspects of the present disclosure include methods and apparatus for video encoding / decoding.In some examples, an apparatus for video decoding includes processing circuitry.

[0006] According to one aspect of the present disclosure, a method of video decoding performed in a video decoder is provided. In the method, a video bitstream including a current transform block (TB) in a current picture is received. A context model is determined for a syntax element associated with the transform coefficient level of at least one first adjacent CG of a first coefficient group (CG) in the current TB. The first CG is positioned on a first scan line. At least one first adjacent CG is positioned on a second scan line scanned before the first scan line. The context model is a probability model for inseparable transforms. The first CG is reconstructed based on the transform coefficient level determined according to the determined context model.

[0007] In an example, the at least one first adjacent CG includes a first adjacent CG positioned on the second scan line and another first adjacent CG positioned on a third scan line scanned before the first scan line and the second scan line.

[0008] In an example, at least one first neighboring CG is positioned farther relative to an upper left sample position of the current TB than the first CG.

[0009] In an example, the first scan line and the second scan line are parallel diagonal lines.

[0010] In an example, the number of at least one first neighboring CG is determined based on the position of the first CG in the current TB.

[0011] In an example, the number of at least one first neighboring CG ranges from 1 to 15.

[0012] In the example, the syntax element is associated with the absolute value of the transform coefficient level of the first CG.

[0013] In an aspect, the non-separable transform is one of a low frequency non-separable transform (LFNST) mode and a non-separable primary transform (NSPT) mode.

[0014] In an example, a context model of a syntax element associated with a transform coefficient level of each of a plurality of CGs positioned on a first scan line is determined based on a transform coefficient level of at least one first neighboring CG of the first CG.

[0015] In the example, a context model of a syntax element associated with a transform coefficient level of at least one second neighboring CG of a second CG on a first scan line is determined based on the transform coefficient level of the second CG. The at least one second neighboring CG includes a second neighboring CG positioned on the second scan line and another second neighboring CG different from the at least one first neighboring CG.

[0016] According to another aspect of the present disclosure, an apparatus is provided. The apparatus includes a processing circuit system. The processing circuit system can be configured to perform any of the methods described for video decoding / encoding.

[0017] Aspects of the present disclosure also provide a non-transitory computer-readable medium storing instructions that, when executed by a computer, cause the computer to perform a method for video decoding / encoding. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] Additional features, properties, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings, in which:

[0019] Figure 1 is a schematic illustration of an exemplary block diagram of a communication system (100).

[0020] Figure 2 is a schematic illustration of an exemplary block diagram of a decoder.

[0021] Figure 3 is a schematic illustration of an exemplary block diagram of an encoder.

[0022] Figure 4 It is a schematic illustration of the Low-Frequency Non-Separable Transform (LFNST).

[0023] Figure 5 is an exemplary template for selecting a context model for coefficient encoding.

[0024] Figure 6 is an exemplary template for selecting a context model for encoding coefficients.

[0025] Figure 7 is a schematic illustration of a reverse diagonal scan.

[0026] Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8F An exemplary process based on a scanline selection probability model is shown.

[0027] Fig. 9A , Fig. 9B and Fig. 9C An exemplary process for selecting a probability model based on the position in a scan line is shown.

[0028] Fig.10 A flowchart outlining a decoding process according to some implementations of the present disclosure is shown.

[0029] Fig.11 A flowchart outlining an encoding process according to some implementations of the present disclosure is shown.

[0030] Fig.12 is a schematic illustration of an exemplary computer system in accordance with an embodiment. DETAILED DESCRIPTION

[0031] Figure 1 A block diagram of a video processing system (100) in some examples is shown. The video processing system (100) is an example of an application of the disclosed subject matter - a video encoder and a video decoder in a streaming environment. The disclosed subject matter can be equally applicable to other video-enabled applications, including, for example, video conferencing, digital TV, streaming services, storing compressed video on digital media including CDs (Compact Discs, CDs), DVDs (Digital Versatile Discs, DVDs), memory sticks, etc.

[0032] The video processing system (100) includes a capture subsystem (113) that may include a video source (101), such as a digital camera, that creates, for example, an uncompressed video picture stream (102). In an example, the video picture stream (102) includes samples captured by the digital camera. The video picture stream (102) is depicted as a thick line to emphasize the high amount of data when compared to the encoded video data (104) (or encoded video bitstream), which may be processed by an electronic device (120) coupled to the video source (101) including a video encoder (103). The video encoder (103) may include hardware, software, or a combination thereof to implement or embody aspects of the disclosed subject matter as described in more detail below. The encoded video data (104) (or encoded video bitstream) is depicted as a thin line to emphasize the lower data volume when compared to the video picture stream (102), and the encoded video data (104) (or encoded video bitstream) can be stored on the streaming server (105) for future use. One or more streaming client subsystems such as Figure 1The client subsystems (106) and (108) in the streaming server (105) can access the streaming server (105) to retrieve copies (107) and (109) of the encoded video data (104). The client subsystem (106) may include, for example, a video decoder (110) in an electronic device (130). The video decoder (110) decodes the incoming copy (107) of the encoded video data and creates an outgoing stream of video pictures (111) that can be presented on a display (112) (e.g., a display screen) or other presentation device (not depicted). In some streaming systems, the encoded video data (104), (107) and (109) (e.g., video bitstreams) can be encoded according to certain video encoding / compression standards. Examples of these standards include ITU-T (International Telecommunication Union-Telecommunication Standardization Sector, ITU-T) H.265 Recommendation. In the example, the developing video coding standard is informally referred to as Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

[0033] Note that the electronic devices (120) and (130) may include other components (not shown). For example, the electronic device (120) may include a video decoder (not shown), and the electronic device (130) may also include a video encoder (not shown).

[0034] Figure 2 An exemplary block diagram of a video decoder (210) is shown. The video decoder (210) may be included in an electronic device (230). The electronic device (230) may include a receiver (231) (e.g., receiving circuitry). The video decoder (210) may be used to replace Figure 1 A video decoder (110) is shown in an example.

[0035] The receiver (231) may receive one or more encoded video sequences, for example, included in a bitstream to be decoded by the video decoder (210). In an embodiment, the encoded video sequences are received one at a time, wherein the decoding of each encoded video sequence is independent of the decoding of the other encoded video sequences. The encoded video sequence may be received from a channel (201), which may be a hardware / software link to a storage device storing the encoded video data. The receiver (231) may receive the encoded video data as well as other data, such as encoded audio data and / or auxiliary data streams, which may be forwarded to their respective consuming entities (not depicted). The receiver (231) may separate the encoded video sequence from the other data. To prevent network jitter, a buffer memory (215) may be coupled between the receiver (231) and the entropy decoder / parser (220) (hereinafter referred to as "parser (220)"). In some applications, the buffer memory (215) is part of the video decoder (210). In other embodiments, the buffer memory may be external to the video decoder (210) (not depicted). In still other applications, there may be a buffer memory (not depicted) external to the video decoder (210) to, for example, prevent network jitter, and additionally there may be another buffer memory (215) internal to the video decoder (210) to, for example, handle playout timing. When the receiver (231) is receiving data from a store / forward device with sufficient bandwidth and controllability or from an isochronous network, the buffer memory (215) may not be needed, or the buffer memory (215) may be small. In order to make the most of packet networks such as the Internet, a buffer memory (215) may be needed, which may be relatively large and may advantageously have an adaptive size, and may be implemented at least in part in an operating system or similar element (not depicted) external to the video decoder (210).

[0036] The video decoder (210) may include a parser (220) to reconstruct symbols (221) from the encoded video sequence. The categories of these symbols include: information for managing the operation of the video decoder (210), and possibly information for controlling a presentation device such as a presentation device (212) (e.g., a display screen), which is not part of the electronic device (230) but can be coupled to the electronic device (230), such as Figure 2As shown. The control information for the rendering device may be in the form of a Supplemental Enhancement Information (SEI) message or a Video Usability Information (VUI) parameter set fragment (not depicted). The parser (220) may parse / entropy decode the received coded video sequence. The coding of the coded video sequence may be performed according to a video coding technique or standard, and may follow various principles, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser (220) may extract a subgroup parameter set for at least one subgroup of the subgroups of pixels in the video decoder from the coded video sequence based on at least one parameter corresponding to the group. The subgroup may include a Group Of Picture (GOP), a picture, a tile, a slice, a macroblock, a Coding Unit (CU), a block, a Transform Unit (TU), a Prediction Unit (PU), etc. The parser (220) may also extract information such as transform coefficients, quantizer parameter values, motion vectors, etc. from the coded video sequence.

[0037] The parser (220) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (215) to create symbols (221).

[0038] Depending on the type of coded video pictures or parts thereof (such as: inter-pictures and intra-pictures, inter-blocks and intra-blocks) and other factors, the reconstruction of the symbol (221) may involve multiple different units. Which units are involved and how they are involved can be controlled by subgroup control information parsed from the coded video sequence by the parser (220). For clarity, this subgroup control information flow between the parser (220) and the following multiple units is not depicted.

[0039] In addition to the functional blocks already mentioned, the video decoder (210) can be conceptually subdivided into a number of functional units as described below. In a practical implementation operating under commercial constraints, many of these units interact closely with each other and may be at least partially integrated with each other. However, for the purposes of describing the disclosed subject matter, the conceptual subdivision into the following functional units is appropriate.

[0040] The first unit is a sealer / inverse transform unit (251). The sealer / inverse transform unit (251) receives quantized transform coefficients as symbols (221) from the parser (220) and control information including which transform to use, block size, quantization factor, quantization scaling matrix, etc. The sealer / inverse transform unit (251) can output blocks including sample values ​​which can be input into an aggregator (255).

[0041] In some cases, the output samples of the scaler / inverse transform unit (251) may belong to an intra-coded block. An intra-coded block is a block that does not use predictive information from a previously reconstructed picture, but may use predictive information from a previously reconstructed portion of a current picture. Such prediction information may be provided by an intra-picture prediction unit (252). In some cases, the intra-picture prediction unit (252) generates a block of the same size and shape as the block being reconstructed using surrounding already reconstructed information extracted from the current picture buffer (258). For example, the current picture buffer (258) buffers, for example, a partially reconstructed current picture and / or a fully reconstructed current picture. In some cases, the aggregator (255) adds the prediction information already generated by the intra-prediction unit (252) to the output sample information provided by the scaler / inverse transform unit (251) on a per-sample basis.

[0042] In other cases, the output samples of the scaler / inverse transform unit (251) may belong to an inter-coded block and potentially to a motion compensated block. In this case, the motion compensated prediction unit (253) may access the reference picture memory (257) to extract samples for prediction. After the extracted samples are motion compensated according to the symbols (221) belonging to the block, these samples may be added to the output of the scaler / inverse transform unit (251) (in this case, referred to as residual samples or residual signals) by the aggregator (255) to generate output sample information. The address within the reference picture memory (257) from which the motion compensated prediction unit (253) extracts the predicted samples may be controlled by a motion vector, which is provided to the motion compensated prediction unit (253) in the form of symbols (221), which may have, for example, an X component, a Y component, and a reference picture component. Motion compensation may also include interpolation of sample values ​​such as those extracted from the reference picture memory (257) when using sub-sample accurate motion vectors, motion vector prediction mechanisms, etc.

[0043] The output samples of the aggregator (255) may be employed by various loop filtering techniques in a loop filter unit (256). The video compression techniques may include in-loop filter techniques controlled by parameters included in the coded video sequence (also referred to as a coded video bitstream) and available to the loop filter unit (256) as symbols (221) from the parser (220). The video compression may also be responsive to meta-information obtained during decoding of a previous portion (in decoding order) of a coded picture or coded video sequence, as well as to previously reconstructed and loop filtered sample values.

[0044] The output of the loop filter unit (256) may be a sample stream that may be output to a rendering device (212) and stored in a reference picture memory (257) for use in future inter-picture prediction.

[0045] Certain coded pictures, once fully reconstructed, can be used as reference pictures for future prediction. For example, once a coded picture corresponding to a current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by a parser (220)), the current picture buffer (258) can become part of the reference picture memory (257) and a new current picture buffer can be reallocated before starting to reconstruct a subsequent coded picture.

[0046] The video decoder (210) may perform decoding operations according to a predetermined video compression technology or standard such as ITU-T H.265 Recommendation. The encoded video sequence may conform to the syntax specified by the video compression technology or standard used in the sense that the encoded video sequence follows both the syntax of the video compression technology or standard and the profile as recorded in the video compression technology or standard. Specifically, the profile may select certain tools from all the tools available in the video compression technology or standard as tools that can only be used under the profile. For compliance, the complexity of the encoded video sequence is also required to be within the range defined by the hierarchy of the video compression technology or standard. In some cases, the hierarchy limits the maximum picture size, the maximum frame rate, the maximum reconstruction sampling rate (measured in, for example, megasamples per second), the maximum reference picture size, etc. In some cases, the limits set by the hierarchy may be further defined by the Hypothetical Reference Decoder (HRD) specification and the metadata of the HRD buffer management signaled in the encoded video sequence.

[0047] In an embodiment, the receiver (231) 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 (210) to properly decode the data and / or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.

[0048] Figure 3 An exemplary block diagram of a video encoder (303) is shown. The video encoder (303) is included in an electronic device (320). The electronic device (320) includes a transmitter (340) (e.g., a transmission circuit system). The video encoder (303) can be used to replace Figure 1 A video encoder (103) in an example.

[0049] The video encoder (303) can be used to obtain the video source (301) (which is not Figure 3 In one example, the video source (301) is a part of the electronic device (320) to receive the video samples, and the video source (301) can capture the video images to be encoded by the video encoder (303). In another example, the video source (301) is a part of the electronic device (320).

[0050] The video source (301) may provide a source video sequence in the form of a digital video sample stream to be encoded by a video encoder (303), the digital video sample stream may have 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., YCrCb 4:2:0, Y CrCb 4:4:4). In a media service system, the video source (301) may be a storage device storing previously prepared videos. In a video conferencing system, the video source (301) may be a camera that captures local image information as a video sequence. The video data may be provided as a plurality of separate pictures that are given motion when viewed sequentially. The pictures themselves may be organized as a spatial pixel array, wherein each pixel may include one or more samples, depending on the sampling structure, color space, etc. used. The following description focuses on samples.

[0051] According to an embodiment, the video encoder (303) can encode and compress the pictures of the source video sequence into an encoded video sequence (343) in real time or under any other time constraints required. Implementing the appropriate encoding speed is a function of the controller (350). In some embodiments, the controller (350) controls other functional units as described below and is functionally coupled to the other functional units. For the sake of brevity, the coupling is not depicted. The parameters set by the controller (350) may include rate control related parameters (picture skipping, quantizer, lambda value of rate distortion optimization technology, ...), picture size, picture group (GOP) layout, maximum motion vector search range, etc. The controller (350) can be configured to have other suitable functions related to the video encoder (303) optimized for a specific system design.

[0052] In some embodiments, the video encoder (303) is configured to operate in a coding loop. As an oversimplified description, in an example, the coding loop may include a source encoder (330) (e.g., responsible for creating symbols, such as a symbol stream, based on an input picture to be encoded and a reference picture) and a (local) decoder (333) embedded in the video encoder (303). The decoder (333) reconstructs the symbols to create sample data in a manner similar to the way the (remote) decoder creates sample data. The reconstructed sample stream (sample data) is input to a reference picture memory (334). Since the decoding of the symbol stream produces a bit-accurate result that is independent of the decoder location (local or remote), the contents of the reference picture memory (334) are also bit-accurate between the local encoder and the remote encoder. In other words, the prediction part of the encoder will "see" as a reference picture sample the same sample value as the sample value that the decoder will "see" when using the prediction during decoding. This basic principle of reference picture synchronization (and the drift caused when synchronization cannot be maintained, such as due to channel errors) is also used in some related technologies.

[0053] The operation of the "local" decoder (333) can be combined with the above Figure 2 The operation of a "remote" decoder such as the video decoder (210) described in detail is the same. However, reference is also briefly made to Figure 2 , since the symbols are available and the encoding / decoding of the symbols into the encoded video sequence by the entropy encoder (345) and the parser (220) can be lossless, the entropy decoding portion of the video decoder (210) including the buffer memory (215) and the parser (220) may not be fully implemented in the local decoder (333).

[0054] In an embodiment, decoder techniques other than parsing / entropy decoding present in a decoder are present in a corresponding encoder in the same or substantially the same functional form. Therefore, the disclosed subject matter focuses on decoder operation. Since encoder techniques are mutually inverse to the fully described decoder techniques, the description of encoder techniques can be simplified. A more detailed description is provided below in certain parts.

[0055] During operation, in some examples, the source encoder (330) may perform motion compensated predictive encoding, which predictively encodes an input picture with reference to one or more previously encoded pictures from a video sequence designated as “reference pictures.” In this manner, the encoding engine (332) encodes the differences between pixel blocks of the input picture and pixel blocks of a reference picture that may be selected as a prediction reference for the input picture.

[0056] The local video decoder (333) can decode the encoded video data of the picture that can be designated as the reference picture based on the symbol created by the source encoder (330). The operation of the encoding engine (332) can advantageously be lossy processing. When the encoded video data can be decoded at the video decoder ( Figure 3 When the video encoder (303) is decoded at a remote end (not shown), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. The local video decoder (333) replicates the decoding process that may be performed by the video decoder on the reference picture and may cause the reconstructed reference picture to be stored in the reference picture memory (334). In this way, the video encoder (303) may locally store a copy of the reconstructed reference picture that has common content (absent transmission errors) with the reconstructed reference picture that will be obtained by the remote video decoder.

[0057] The predictor (335) may perform a prediction search for the encoding engine (332). That is, for a new picture to be encoded, the predictor (335) may search the reference picture memory (334) for sample data (as candidate reference pixel blocks) or certain metadata such as reference picture motion vectors, block shapes, etc. that may be used as appropriate prediction references for the new picture. The predictor (335) may operate on a pixel block by pixel block basis to find an appropriate prediction reference. In some cases, as determined by the search results obtained by the predictor (335), the input picture may have prediction references taken from multiple reference pictures stored in the reference picture memory (334).

[0058] The controller (350) may manage encoding operations of the source encoder (330), including, for example, setting of parameters and subgroup parameters for encoding video data.

[0059] The outputs of all the above mentioned functional units may be entropy encoded in an entropy encoder (345). The entropy encoder (345) transforms the symbols generated by the various functional units into a coded video sequence by applying lossless compression according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc. to the symbols.

[0060] The transmitter (340) can buffer the encoded video sequence created by the entropy encoder (345) in preparation for transmission via a communication channel (360), which can be a hardware / software link to a storage device where the encoded video data will be stored. The transmitter (340) can combine the encoded video data from the video encoder (303) with other data to be transmitted, such as encoded audio data and / or auxiliary data streams (source not shown).

[0061] The controller (350) may manage the operation of the video encoder (303). During encoding, the controller (350) may assign a certain coded picture type to each coded picture, which may affect the coding techniques that may be applied to the corresponding picture. For example, a picture may generally be assigned one of the following picture types:

[0062] Intra pictures (I pictures) can be encoded and decoded without using any other pictures in the sequence as a prediction source. Some video codecs allow different types of intra pictures, including, for example, Independent Decoder Refresh ("IDR") pictures.

[0063] A predictive picture (P picture) may be encoded and decoded using intra prediction or inter prediction for predicting sample values ​​of each block using a motion vector and a reference index.

[0064] Bi-directional predictive pictures (B pictures) can be encoded and decoded using intra-prediction or inter-prediction using two motion vectors and reference indices to predict sample values ​​for each block. Similarly, multi-predictive pictures can use more than two reference pictures and associated metadata for reconstruction of a single block.

[0065] The source picture may typically be spatially subdivided into a number of blocks of samples (e.g., blocks of 4×4, 8×8, 4×8, or 16×16 samples, respectively), and coded block by block. These blocks may be predictively coded with reference to other (already coded) blocks, which are determined by the coding allocation applied to the corresponding picture of the block. For example, blocks of an I picture may be non-predictively coded, or blocks of an I picture may be predictively coded (spatial prediction or intra-prediction) with reference to already coded blocks of the same picture. Pixel blocks of a P picture may be predictively coded via spatial prediction or via temporal prediction with reference to one previously coded reference picture. Blocks of a B picture may be predictively coded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures.

[0066] The video encoder (303) may perform encoding operations according to a predetermined video encoding technique or standard, such as ITU-T H.265 Recommendation. In its operation, the video encoder (303) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancy in an input video sequence. Thus, the encoded video data may conform to the syntax specified by the video encoding technique or standard used.

[0067] In an embodiment, the transmitter (340) may transmit additional data along with the encoded video. The source encoder (330) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc.

[0068] Video can be captured as multiple source pictures (video pictures) in a temporal sequence. Intra-picture prediction (often simplified to intra-prediction) exploits spatial correlations in a given picture, while inter-picture prediction exploits (temporal or other) correlations between pictures. In an example, a particular picture in encoding / decoding, referred to as the current picture, is divided into blocks. When a block in the current picture is similar to a reference block in a reference picture that was previously encoded in the video and is still buffered, 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 a reference picture, and in the case of using multiple reference pictures, may have a third dimension that identifies the reference picture.

[0069] In some embodiments, bidirectional prediction techniques may be used for inter-picture prediction. According to the bidirectional prediction technique, two reference pictures are used, for example, a first reference picture and a second reference picture that are both before the current picture in the video in decoding order (but may be in the past and in the future in display order, respectively). A block in the current picture may 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. The block may be predicted by a combination of the first reference block and the second reference block.

[0070] In addition, merge mode technology can be used in inter-picture prediction to improve coding efficiency.

[0071] According to some embodiments of the present disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed in units of blocks. For example, according to the HEVC (High Efficiency Video Coding, HEVC) standard, a picture in a video picture sequence is divided into coding tree units (Coding Tree Unit, CTU) for compression, and the CTUs in the picture have the same size, such as 64×64 pixels, 32×32 pixels, or 16×16 pixels. Generally, a CTU includes three coding tree blocks (Coding Tree Block, CTB), and the three coding tree blocks are a luminance CTB and two chrominance CTBs. Each CTU can be recursively divided into one or more coding units (CU) in a quadtree. For example, a 64×64 pixel CTU can be divided into a 64×64 pixel CU, or 4 32×32 pixel CUs, or 16 16×16 pixel CUs. In the example, each CU is analyzed to determine the prediction type of the CU, such as an inter-frame prediction type or an intra-frame prediction type. The CU is divided into one or more prediction units (PUs) according to temporal and / or spatial predictability. Typically, each PU includes a luma prediction block (PB) and two chroma PBs. In an embodiment, the prediction operation in decoding (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 8×8 pixels, 16×16 pixels, 8×16 pixels, 16×8 pixels, etc.

[0072] Note that the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using any suitable technology. In an embodiment, the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using one or more integrated circuits. In another embodiment, the video encoders (103) and (303) and the video decoders (110) and (210) may be implemented using one or more processors executing software instructions.

[0073] The present disclosure includes aspects related to context derivation for arithmetic coding of transform coefficients generated by a non-separable transform. For example, a context model for a syntax element associated with a transform coefficient level of a coefficient group (CG) in a transform block (TB) can be derived based on at least one neighboring CG of the CG. At least one neighboring CG is not located in a scan line (e.g., a diagonal scan line) on which the CG is located.

[0074] A low frequency non-separable transform (LFNST) may be applied between the forward primary transform and quantization (e.g., at the encoder) and between dequantization and the inverse primary transform (e.g., at the decoder), which may be Figure 4 For example, Figure 4 As shown, LFNST (400) can be applied as a forward LFNST between a forward primary transform (402) and quantization (404) and an inverse LFNST between an inverse primary transform (406) and dequantization (408). In LFNST, a 4×4 inseparable transform or an 8×8 inseparable transform can be applied according to the block size. For example, a 4×4 LFNST can be applied to a small block (e.g., min(width, height) < 8), and an 8×8 LFNST can be applied to a larger block (e.g., min(width, height) > 4).

[0075] The application of a non-separable transform such as LFNST may be described as follows using the input as an example: To apply a 4×4 LFNST, for example, a 4×4 input block X may be provided in equation (1). The input block X can then be represented as a vector As shown in formula (2). The non-separable transformation can be calculated as in, indicates the transform coefficient vector, and T is the 16×16 transform matrix. 16×1 coefficient vector It can then be reorganized into 4x4 blocks using a scanning order for the block (eg, horizontal scan, vertical scan, or diagonal scan).Coefficients with smaller indices can be placed in a 4x4 coefficient block with smaller scan indices.

[0076] In context modeling for coefficient coding, the choice of a probability model for a syntax element related to the absolute value of a transform coefficient level may depend on the value of the absolute level (or the absolute value of the transform coefficient level) in a local neighborhood or the value of the partially reconstructed absolute level. The template for context modeling may be in Figure 5 As shown in Figure 5 As shown, a probability model (e.g., a context model) for encoding a syntax element associated with a transform coefficient level of a current scanning position (or current CG) (502) can be derived based on the absolute values ​​of transform coefficient levels of neighboring positions (or neighboring CGs), such as neighboring CGs (504), CGs (506), CGs (508), CGs (510), and CGs (512).

[0077] In the context modeling modification, e.g. Figure 6 As shown, the coding efficiency can be improved by using the previous 5 coefficients in the coding order (e.g., the coefficients of the previous 5 scanning positions) (603) to (607) instead of Figure 5 The template shown in models the context of syntax elements related to the absolute value of the transform coefficient level (or quantized transform coefficient) of the current scan position ( 602 ).

[0078] The syntax elements related to the absolute value of the transform coefficient level can be as follows Figure 7 The reverse diagonal scan order is shown. If you use Figure 5 If the template shown in is used for context modeling, all syntax elements associated with the absolute transform coefficient levels along the same diagonal can be parsed in parallel, thereby improving throughput. Figure 6 For the templates proposed in , parallelization (or parallel parsing) may not be possible. Therefore, more efficient context modeling may be needed to capture the encoding efficiency without interrupting parallel parsing.

[0079] In the present disclosure, context modeling is provided. In the provided context modeling, the previous N transform coefficients (or transform coefficients of the previous N CGs) in the coding order (or scan line) can be applied to model the context of the syntax elements related to the absolute value of the transform coefficient level of the current CG. The previous N transform coefficients do not belong to the same diagonal scan line on which the current CG is positioned. The provided context modeling can improve coding efficiency without interrupting parallel parsing.

[0080] In one aspect, the context of syntax elements related to the absolute value of the transform coefficient level may be modeled using the previous N transform coefficients in coding order that do not belong to the same diagonal scan line.

[0081] In an embodiment, the current block (or TB) in the current picture may be divided into multiple CGs. Each CG may include multiple samples, such as 4×4 samples. In order to encode the current block, a method such as Figure 7 The coding order of the reverse diagonal scan is shown. To encode the first CG in the first scan line of the coding order, the transform coefficients of the N neighboring CGs of the first CG can be applied to derive a context model of a syntax element (e.g., sb_coded_flag) associated with the absolute value of the transform coefficient level (or quantized transform coefficient) of the first CG. The N neighboring CGs can be located on one or more scan lines different from the first scan line of the coding order.

[0082] On the one hand, for a coefficient group (CG) with 16 samples, the template used to select the probability model for LFNST / NSPT (Non-Separable Primary Transform, NSPT) is scan-line dependent, such as Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8F As shown, but not limited to.

[0083] In an embodiment, it is possible to Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8F The transform block (TB) (800) shown in FIG. 8 applies a coding order such as reverse diagonal scanning. The TB (800) can be divided into multiple CGs, such as Fig. 8A Each of the CGs may include multiple samples, for example, 16 samples. According to the reverse diagonal scanning, Fig.8FAs shown, the CG (801) positioned at the lower right corner of the TB (800) can be first encoded. For example, the transform coefficient level of the CG (801) can be entropy encoded. According to the reverse diagonal scan, the CG (802) and CG (803) positioned in the scan line, such as the diagonal scan line (804), can be further encoded. In the example, the context model of the syntax element such as sb_coded_flag related to the absolute value of the transform coefficient level (or quantized transform coefficient) of the current scan position, such as CG (802) or CG (803), can be derived based on the transform coefficient level of the CG (801).

[0084] The encoding process can be performed up to Fig. 8E .like Fig. 8E As shown, according to the coding order, CG (805) to (807) in the scan line (or the first scan line) (808) can be encoded. In the example, the context model of the syntax element related to the absolute value of the transform coefficient level of one of CG (805) to CG (807) in the current scan position (or the current CG), such as the first scan line (808), can be derived based on the transform coefficient level of the neighboring CG of the current CG, such as CG (801) to CG (803). Still referring to Fig. 8E , the neighboring CGs may include CGs (e.g., (802) to (803)) located in a scan line (or a second scan line) (804) that is scanned before and different from a scan line (e.g., (808)) on which a current CG (e.g., (805)) is located. In an example, the first scan line (808) and the second scan line (804) may be parallel to a diagonal line of TB (800). In an example, the neighboring CGs, such as CGs (801) to CGs (803), may be located farther from an upper left sample position of TB (800) than a current CG, such as CG (805).

[0085] The encoding process can be performed up to Fig.8D .like Fig.8D As shown, according to the encoding order, CG(809) to CG(812) in the scan line (or the first scan line) (813) can be encoded. In the example, the context model of the syntax element related to the absolute value of the transform coefficient level of one of the current scan position (or the current CG or the first CG), such as CG(809) to CG(812), can be derived based on the transform coefficient levels of the neighboring CGs (or the first neighboring CGs) of the current CG, such as CG(802) to CG(803) and CG(805) to CG(807). Still referring to Fig.8D, the neighboring CG may be located in one or more scan lines, such as the second scan line (804) and the third scan line (808), which are scanned before the first scan line (813) on which the current CG (e.g., (809)) is located and are different from the first scan line (813). In an example, the scan lines (804), (808), and (813) may be parallel to the diagonal line of the TB (800).

[0086] Reference Figure 8C , for example, each of CG(814) to CG(816) along scan line (817) may be encoded based on adjacent CG(809) to CG(812) and CG(805). Figure 8B For example, each of CG(818) to CG(819) along scan line (820) may be encoded based on adjacent CG(809) to CG(810) and CG(814) to CG(816). Fig. 8A For example, the current scan position (or current CG) (821) can be encoded based on the neighboring CGs (814) to (816) and CGs (818) to (819). Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8F As shown, each CG in the current scan line can be encoded based on the same set of adjacent CGs located on one or more scan lines different from the current scan line.

[0087] In one aspect, for coefficient groups (CG) with 16 samples, the template used to select the probability model for LFNST / NSPT is scanline and position (in the scanline) dependent. Examples can be found in Fig. 9A , Fig. 9B and Fig. 9C Shown in.

[0088] In an embodiment, if Fig. 9AAs shown, TB (900) may include multiple CGs, such as CG (902) to CG (904) located in scan line (908). When CG (902) is the current scan position (or the first CG), the context model of the syntax element related to the absolute value of the transform coefficient level of the current scan position (or the current CG) (902) can be derived based on the transform coefficient levels of neighboring CGs (or at least one first neighboring CG) of the current CG, such as CG (910) to CG (912) in scan line (919) and CG (914) to CG (915) in scan line (920). When CG (903) is the current scan position (or the second CG), the context model of the syntax element related to the absolute value of the transform coefficient level of the current scan position (or the current CG) (903) can be derived based on the transform coefficient levels of the neighboring CGs of the current CG (or at least one second neighboring CG), such as CG (910) to CG (913) in scan line (919) and CG (915) in scan line (920). When CG (904) is the current scan position, the context model of the syntax element related to the absolute value of the transform coefficient level of the current scan position (or the current CG) (904) can be derived based on the transform coefficient levels of the neighboring CGs of the current CG, such as CG (911) to CG (913) in scan line (919) and CG (915) to CG (916) in scan line (920). Therefore, each CG in the same scan line can be encoded based on different groups of neighboring CGs, depending on the position of the current scan position in the scan line. In some embodiments, a first CG (e.g., (902)) and a second CG (e.g., (903)) in the same scan line (e.g., (908)) may be encoded based on one or more identical adjacent CGs (e.g., (911) and (912)). In some embodiments, the adjacent CG group of the first CG (e.g., (902)) may include at least one CG (e.g., (914)) that is not included in the adjacent CG group of the second CG (e.g., (903)).

[0089] In one aspect, the value of N is position-dependent. It depends on the position (x, y) of the currently resolved transform coefficient. Here (x, y) corresponds to the Euclidean coordinates of the coefficient relative to the top-left sample position.

[0090] In the example, Fig.8D , Fig. 8E and Fig.8FAs shown, CG(802) to CG(803) can be encoded based on one adjacent CG(801), CG(805) to CG(807) can be encoded based on three adjacent CG(801) to CG(803), and CG(809) to CG(812) can be encoded based on five adjacent CG(805) to CG(808) and CG(802) to CG(803). CG(802) to CG(803) can be positioned farther from the upper left sample position of TB(800) than CG(805) to CG(807). CG(805) to CG(807) can be positioned farther from the upper left sample position of TB(800) than CG(809) to CG(812).

[0091] In one aspect, the value of N may include, but is not limited to, elements of the set {1, 2, 3, 4, 5, ..., 15}.

[0092] For example, CG(802) to CG(803) can be encoded based on one adjacent CG, such as CG(801). CG(805) to CG(807) can be encoded based on three adjacent CGs, such as CG(801) to CG(803). CG(809) to CG(812) can be encoded based on five adjacent CGs, such as CG(805) to CG(808) and CG(802) to CG(803).

[0093] Fig.10 A flow chart outlining a process (1000) according to an embodiment of the present disclosure is shown. The process (1000) may be used in a video decoder. In various embodiments, the process (1000) is performed by a processing circuit system, such as a processing circuit system that performs the functions of a video decoder (110), a processing circuit system that performs the functions of a video decoder (210), etc. In some embodiments, the process (1000) is implemented as software instructions, so when the processing circuit system executes the software instructions, the processing circuit system performs the process (1000). The process starts at (S1001) and proceeds to (S1010).

[0094] At (S1010), a video bitstream including a current transform block (TB) in a current picture is received.

[0095] At (S1020), a context model is determined for a syntax element associated with the transform coefficient level of at least one first neighboring CG of a first coefficient group (CG) in a current TB. The first CG is positioned on a first scan line. At least one first neighboring CG is positioned on a second scan line scanned before the first scan line. The context model is a probability model for inseparable transforms.

[0096] In one aspect, the previous N transform coefficients in coding order that do not belong to the same diagonal scan line may be applied to model the context of syntax elements related to the absolute value of the transform coefficient level. Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8F As shown, the template used to select the probability model for LFNST / NSPT is scanline dependent. In the example, for a coefficient group (CG) with 16 samples, the template used to select the probability model for LFNST / NSPT is scanline and position (in the scanline) dependent. The example can be found in Fig. 9A , Fig. 9B and Fig. 9C Shown in.

[0097] At (S1030), the first CG is reconstructed based on the transformation coefficient level determined according to the determined context model.

[0098] In an example, the at least one first adjacent CG includes a first adjacent CG positioned on the second scan line and another first adjacent CG positioned on a third scan line scanned before the first scan line and the second scan line.

[0099] In an example, at least one first neighboring CG is positioned farther relative to an upper left sample position of the current TB than the first CG.

[0100] In an example, the first scan line and the second scan line are parallel diagonal lines.

[0101] In an example, the number of at least one first neighboring CG is determined based on the position of the first CG in the current TB.

[0102] In an example, the number of at least one first neighboring CG ranges from 1 to 15.

[0103] In the example, the syntax element is associated with the absolute value of the transform coefficient level of the first CG.

[0104] In an aspect, the non-separable transform is one of a low frequency non-separable transform (LFNST) mode and a non-separable primary transform (NSPT) mode.

[0105] In the example, a context model of a syntax element associated with a transform coefficient level of each CG of a plurality of CGs positioned on a first scan line is determined based on a transform coefficient level of at least one first neighboring CG of the first CG.

[0106] In the example, based on the transform coefficient level of at least one second neighboring CG of the second CG on the first scan line, a context model is determined for a syntax element associated with the transform coefficient level of the second CG. The at least one second neighboring CG includes a second neighboring CG positioned on the second scan line and another second neighboring CG different from the at least one first neighboring CG.

[0107] Then, the process proceeds to (S1099) and terminates.

[0108] The process (1000) may be adjusted appropriately. Steps in the process (1000) may be modified and / or omitted. Additional steps may be added. Any suitable order of implementation may be used.

[0109] Fig.11 A flow chart outlining a process (1100) according to an embodiment of the present disclosure is shown. The process (1100) may be used in a video encoder. In various embodiments, the process (1100) is performed by a processing circuit system, such as a processing circuit system that performs the functions of a video encoder (103), a processing circuit system that performs the functions of a video encoder (303), etc. In some embodiments, the process (1100) is implemented as software instructions, so when the processing circuit system executes the software instructions, the processing circuit system performs the process (1100). The process starts at (S1101) and proceeds to (S1110).

[0110] At (S1110), a coding order of a current transform block (TB) in a current picture is determined.

[0111] At (S1120), a context model is determined for a syntax element associated with the transform coefficient level of at least one first neighboring CG of the first CG in the current TB. The first CG is positioned on a first scan line in the coding order. At least one first neighboring CG is positioned on at least a second scan line scanned before the first scan line in the coding order.

[0112] In one aspect, the context of the syntax element related to the absolute value of the transform coefficient level can be modeled using the previous N transform coefficients in coding order that do not belong to the same diagonal scan line. Fig. 8A , Figure 8B , Figure 8C , Fig.8D , Fig. 8E and Fig.8FAs shown, the template used to select the probability model for LFNST / NSPT is scanline dependent. In the example, for a coefficient group (CG) with 16 samples, the template used to select the probability model for LFNST / NSPT is scanline and position (in the scanline) dependent. The example can be found in Fig. 9A , Fig. 9B and Fig. 9C Shown in.

[0113] At (S1130), the syntax elements associated with the transform coefficient levels of the first CG are encoded based on the determined context model.

[0114] Then, the process proceeds to (S1199) and terminates.

[0115] The process (1100) may be adjusted appropriately. Steps in the process (1100) may be modified and / or omitted. Additional steps may be added. Any suitable order of implementation may be used.

[0116] The techniques described above may be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media. Fig.12 A computer system (1200) suitable for implementing certain embodiments of the disclosed subject matter is shown.

[0117] Computer software may be encoded using any suitable machine code or computer language, which may be subjected to mechanisms such as assembly, compilation, linking, etc. to create code comprising instructions that may be executed directly by one or more computer central processing units (CPU), graphics processing units (GPU), etc., or through interpretation, microcode execution, etc.

[0118] The instructions may be executed on various types of computers or components thereof, including, for example, personal computers, tablet computers, servers, smart phones, gaming devices, IoT devices, and the like.

[0119] Fig.12 The components for the computer system (1200) shown in the example are exemplary in nature and are not intended to suggest any limitation on the scope of use or functionality of computer software implementing embodiments of the present disclosure. Nor should the configuration of components be interpreted as having any dependency or requirement relating to any one component or combination of components shown in the exemplary embodiment of the computer system (1200).

[0120] The computer system (1200) may include certain human interface input devices. Such human interface input devices may respond to input by one or more human users through, for example, tactile input (e.g., keystrokes, swipes, data glove movements), audio input (e.g., voice, tapping), visual input (e.g., gestures), olfactory input (not depicted). Human interface devices may also be used to capture certain media that are not necessarily directly related to conscious input by humans, such as audio (e.g., voice, music, ambient sounds), images (e.g., scanned images, photographic images obtained from a still image camera), video (e.g., two-dimensional video, three-dimensional video including stereoscopic video).

[0121] Input human-machine interface devices may include one or more of the following (only one of each item is depicted): keyboard (1201), mouse (1202), touchpad (1203), touch screen (1210), data gloves (not shown), joystick (1205), microphone (1206), scanner (1207), camera (1208).

[0122] The computer system (1200) may also include certain human interface output devices. Such human interface output devices may stimulate one or more senses of a human user through, for example, tactile output, sound, light, and smell / taste. Such human-machine interface output devices may include: tactile output devices (e.g., tactile feedback via a touch screen (1210), a data glove (not shown), or a joystick (1205), but there may also be tactile feedback devices that do not function as input devices); audio output devices (e.g., speakers (1209), headphones (not depicted)); visual output devices (e.g., screens (1210), including CRT (Cathode Ray Tube, CRT) screens, LCD (Liquid Crystal Display, LCD) screens, plasma screens, OLED (Organic Light-Emitting Diode, OLED) screens, each with or without touch screen input capabilities, each with or without tactile feedback capabilities - some of the screens may be able to output two-dimensional visual output or more than three-dimensional output by means such as stereo output; virtual reality glasses (not depicted); holographic displays and smoke generators (not depicted)); and printers (not depicted).

[0123] The computer system (1200) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM (Read Only Memory, ROM) / RW (1220) with CD / DVD and other media (1221), thumb drives (1222), removable hard disk drives or solid-state drives (1223), traditional magnetic media such as magnetic tapes and floppy disks (not depicted), dedicated ROM / ASIC (Application Specific Integrated Circuit, ASIC) / PLD (Programable Logic Device, PLD)-based devices such as security dongles (not depicted), etc.

[0124] Those skilled in the art should also understand that the term "computer-readable media" used in conjunction with the subject matter of the present disclosure does not include transmission media, carrier waves, or other transient signals.

[0125] The computer system (1200) may also include an interface (1254) to one or more communication networks (1255). The network may be, for example, a wireless network, a wired network, an optical network. The network may also be local, wide, metropolitan, vehicular and industrial, real-time, delay-tolerant, etc. Examples of networks include: local area networks such as Ethernet, wireless LAN (Local Area Network, LAN); cellular networks including GSM (Global System for Mobile Communication, GSM), 3G (Third Generation, 3G), 4G (Fourth Generation, 4G), 5G (Fifth Generation, 5G), LTE (Long Term Evolution, LTE), etc.; TV wired or wireless wide area digital networks including cable TV, satellite TV and terrestrial broadcast TV; vehicle-mounted and industrial networks including CAN (Controller Area Network, CAN) bus, etc. Some networks typically require an external network interface adapter that is attached to some universal data port or peripheral bus (1249) such as, for example, a USB (Universal Serial Bus) port of a computer system (1200); other networks are typically attached to (for example, to a PC) as described below. The computer system (1200) may be integrated into the core of the computer system (1200) by using an Ethernet interface to a (Personal Computer, PC) computer system or a cellular network interface to a smart phone computer system) system bus. The computer system (1200) may communicate with other entities using any of these networks. Such communications may be one-way receive only (e.g., broadcast TV), one-way send only (e.g., a CAN bus to certain CAN bus devices), or two-way, for example, to other computer systems using a local area digital network or a wide area digital network. Certain protocols and protocol stacks may be used on each of these networks and network interfaces as described above.

[0126] The above-mentioned human-machine interface devices, human-accessible storage devices, and network interfaces may be attached to the core ( 1240 ) of the computer system ( 1200 ).

[0127] The core (1240) may include one or more central processing units (CPUs) (1241), graphics processing units (GPUs) (1242), dedicated programmable processing units in the form of field programmable gate areas (FPGAs) (1243), hardware accelerators for certain tasks (1244), graphics adapters (1250), etc. These devices, along with read-only memory (ROM) (1245), random access memory (1246), internal large-capacity storage devices such as internal non-user accessible hard drives, SSDs (Solid-State Drives, SSDs), etc. (1247) may be connected via a system bus (1248). In some computer systems, the system bus (1248) may be accessed in the form of one or more physical plugs to enable expansion through additional CPUs, GPUs, etc. Peripheral devices may be directly attached to the core's system bus (1248) or may be attached to the core's system bus (1248) via a peripheral bus (1249). In an example, a screen (1210) may be connected to a graphics adapter (1250). Peripheral bus architectures include PCI (Peripheral Component Interconnect / Interface, PCI), USB, etc.

[0128] The CPU (1241), GPU (1242), FPGA (1243) and accelerator (1244) can execute certain instructions, which can be combined to form the aforementioned computer code. The computer code can be stored in ROM (1245) or RAM (1246). Transient data can also be stored in RAM (1246), while permanent data can be stored in, for example, an internal mass storage device (1247). Fast storage and retrieval to any of the memory devices can be achieved by using a cache memory, which can be used with one or more CPUs. (1241), GPU (1242), large-capacity storage device (1247), ROM (1245), RAM (1246), etc. are closely related.

[0129] The computer readable medium may have computer code thereon for performing various computer-implemented operations. The medium and computer code may be those specially designed and constructed for the purposes of the present disclosure, or they may be of a type well known and available to those skilled in the art of computer software.

[0130] As an example and not a limitation, a computer system (1200) having an architecture and in particular a core (1240) can provide functionality provided by a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such a computer-readable medium can be a medium associated with a user-accessible mass storage device as described above, as well as certain storage devices of the core (1240) having non-transitory properties, for example, a core internal mass storage device (1247) or a ROM (1245). Software implementing various embodiments of the present disclosure can be stored in such a device and executed by the core (1240). Depending on specific needs, the computer-readable medium may include one or more memory devices or chips. The software can cause the core (1240) and in particular the processor therein (including a CPU, GPU, FPGA, etc.) to perform specific processing or specific parts of specific processing described herein, including defining data structures stored in RAM (1246) and modifying such data structures according to processing defined by the software. Additionally or alternatively, a computer system may provide functionality due to logic hardwired or otherwise embodied in circuitry (e.g., accelerator (1244)) that may operate in place of or in conjunction with software to perform a particular process or a particular portion of a particular process described herein. Where appropriate, references to software may include logic, and references to logic may also include software. Where appropriate, references to computer-readable media may include circuitry (e.g., an integrated circuit (IC)) storing software for execution, circuitry implementing logic for execution, or both. The present disclosure includes any suitable combination of hardware and software.

[0131] The use of "at least one of" or "one of" in this disclosure is intended to include any one or combination of the recited elements. For example, references to at least one of A, B, or C; at least one of A, B, and C; at least one of A, B, and / or C; and at least one of A through C are intended to include only A, only B, only C, or any combination thereof. References to one of A or B and one of A and B are intended to include A or B or (A and B). The use of "one of" does not exclude any combination of the recited elements where applicable, such as when the elements are not mutually exclusive.

[0132] Although the present disclosure has described several exemplary embodiments, there are changes, permutations, and various alternative equivalents that fall within the scope of the present disclosure. It will therefore be appreciated that those skilled in the art will be able to conceive of many systems and methods that, although not explicitly shown or described herein, implement the principles of the present disclosure and are therefore within the spirit and scope of the present disclosure.

Claims

1. A video decoding method, the method comprising: Receiving a video bitstream including a current transform block (TB) in a current picture; Determine a context model of a syntax element associated with a transform coefficient level of at least one first neighboring CG of a first coefficient group (CG) in the current TB, the first CG being located on a first scan line, the at least one first neighboring CG being located on a second scan line scanned before the first scan line, the context model being a probability model for non-separable transform; as well as The first CG is reconstructed based on the transform coefficient level determined according to the determined context model.

2. The method according to claim 1, wherein: The at least one first adjacent CG includes a first adjacent CG positioned on the second scan line and another first adjacent CG positioned on a third scan line scanned before the first scan line and the second scan line.

3. The method according to claim 1, wherein: The at least one first neighboring CG is positioned farther relative to the upper left sample position of the current TB than the first CG.

4. The method according to claim 1, wherein: The first scanning line and the second scanning line are parallel diagonal lines.

5. The method according to claim 1, wherein: The number of the at least one first neighboring CG is determined based on the position of the first CG in the current TB.

6. The method according to claim 1, wherein: The number of the at least one first adjacent CG ranges from 1 to 15.

7. The method according to claim 1, wherein: The syntax element is associated with the absolute value of the transform coefficient level of the first CG.

8. The method according to claim 1, wherein: The non-separable transform is one of a low frequency non-separable transform (LFNST) mode and a non-separable primary transform (NSPT) mode.

9. The method according to claim 1, further comprising: A context model of a syntax element associated with a transform coefficient level of each CG of a plurality of CGs positioned on the first scan line is determined based on the transform coefficient level of the at least one first neighboring CG of the first CG.

10. The method according to claim 1, further comprising: A context model of a syntax element associated with a transform coefficient level of a second CG on the first scan line is determined based on a transform coefficient level of at least one second neighboring CG of the second CG, the at least one second neighboring CG including a second neighboring CG positioned on the second scan line and another second neighboring CG different from the at least one first neighboring CG.

11. A device, comprising: processing circuitry configured to: Receiving a video bitstream including a current transform block (TB) in a current picture; Determine a context model of a syntax element associated with a transform coefficient level of at least one first neighboring CG of a first coefficient group (CG) in the current TB, the first CG being located on a first scan line, the at least one first neighboring CG being located on a second scan line scanned before the first scan line, the context model being a probability model for non-separable transform; as well as The first CG is reconstructed based on the transform coefficient level determined according to the determined context model.

12. The device according to claim 11, wherein The at least one first adjacent CG includes a first adjacent CG positioned on the second scan line and another first adjacent CG positioned on a third scan line scanned before the first scan line and the second scan line.

13. The device according to claim 11, wherein: The at least one first neighboring CG is positioned farther relative to the upper left sample position of the current TB than the first CG.

14. The device according to claim 11, wherein: The first scanning line and the second scanning line are parallel diagonal lines.

15. The device according to claim 11, wherein The number of the at least one first neighboring CG is determined based on the position of the first CG in the current TB.

16. The device according to claim 11, wherein The number of the at least one first adjacent CG ranges from 1 to 15.

17. The device according to claim 11, wherein: The syntax element is associated with the absolute value of the transform coefficient level of the first CG.

18. The device according to claim 11, wherein The non-separable transform is one of a low frequency non-separable transform (LFNST) mode and a non-separable primary transform (NSPT) mode.

19. The device according to claim 11, wherein: The processing circuit system is also configured to: A context model of a syntax element associated with a transform coefficient level of each CG of a plurality of CGs positioned on the first scan line is determined based on the transform coefficient level of the at least one first neighboring CG of the first CG.

20. The device according to claim 11, wherein The processing circuit system is also configured to: A context model of a syntax element associated with a transform coefficient level of a second CG on the first scan line is determined based on a transform coefficient level of at least one second neighboring CG of the second CG, the at least one second neighboring CG including a second neighboring CG positioned on the second scan line and another second neighboring CG different from the at least one first neighboring CG.