Method and apparatus for video coding

JP2024133061A5Active Publication Date: 2025-06-09TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024094299
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-09-22
Filing Date
2024-06-11
Publication Date
2025-06-09
Estimated Expiration
2041-10-04

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies face challenges in efficiently reducing redundancy and improving compression ratios, particularly in handling intra-frame prediction and motion compensation, especially with the increasing number of possible directions for intra-frame prediction and motion vectors, which can lead to inefficiencies in bit usage.

Method used

Implementing a super-resolution coding mode that applies downsampling and upsampling to video blocks, allowing for efficient encoding and decoding by transforming blocks from high to low spatial resolution and back, thereby reducing the number of samples processed and improving compression efficiency.

Benefits of technology

The super-resolution coding mode enhances compression efficiency by reducing the number of samples processed, leading to improved coding efficiency and reduced bandwidth requirements without significant loss of video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide methods and apparatuses for video encoding and decoding.SOLUTION: Processing circuitry of an apparatus decodes coded information for one or more blocks from a coded video bitstream. The coded information indicates whether to apply a super resolution coding mode to the one or more blocks. The super resolution coding mode is applied in response to the one or more blocks having been downsampled from a high spatial resolution to a low spatial resolution by an encoder. Based on the coded information indicating that the super resolution coding mode has been applied to the one or more blocks, the processing circuitry can generate, using the super resolution coding mode, a reconstructed block having the high spatial resolution by upsampling information of a first block having the low spatial resolution in the one or more blocks including transform coefficients.SELECTED DRAWING: Figure 1A
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [CROSS-REFERENCE TO RELATED APPLICATIONS] This application claims priority to U.S. Patent Application No. 17 / 482,018, entitled "METHOD AND APPARATUS FOR VIDEO CODING," filed September 22, 2021, which claims priority to U.S. Provisional Application No. 63 / 130,265, entitled "SUPER-RESOLUTION BASED CODING," filed December 23, 2020. The entire disclosures of the prior applications are hereby incorporated by reference in their entireties.

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

[0003] The discussion of the background art provided herein is intended to provide an overall context for the present disclosure. The extent of the work of the currently signed inventors described in this background section and in each aspect of this specification has not been presented as prior art at the time of the filing of this disclosure, and is not expressly or impliedly admitted as prior art to this disclosure.

[0004] Video encoding and decoding can be performed using interframe image prediction with motion compensation. Uncompressed digital video can include a sequence of images, each having spatial dimensions of, for example, 1920x1080 luma samples and associated chroma samples. The sequence of images can have a fixed or variable image rate (informally known as frame rate), for example, 60 images per second or 60 Hertz (Hz). Uncompressed video has certain bitrate requirements. For example, 1080p60 4:2:0 video (1920x1080 luma sample resolution at a frame rate of 60 Hz) with 8 bits per sample requires close to 1.5 Gbit / s of bandwidth. Such a video requires more than 600 GB of storage space per hour.

[0005] One goal of video encoding and decoding is to reduce redundant information in the input video signal by compression. Compression can help reduce the bandwidth and / or storage space requirements, in some cases by more than two orders of magnitude. Both lossless and lossy compression, as well as a combination of both, can be used. Lossless compression refers to techniques where an exact copy of the original signal can be reconstructed from the compressed original signal. When lossy compression is used, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough that it can be utilized for applications where a reconstructed signal is expected. For video, lossy compression is widely used. The amount of distortion that is tolerated depends on the application, e.g., a user consuming a streaming application can tolerate higher distortion than a user of a television distribution application. The achievable compression ratio reflects that a higher permitted / tolerable distortion can produce a higher compression ratio.

[0006] Video encoders and decoders can utilize techniques from a number of broad categories, including, for example, motion compensation, transform, quantization, and entropy coding.

[0007] Video encoding / decoding techniques can include a technique known as intraframe coding. In intraframe coding, sample values ​​are represented without reference to samples or other data from a previously reconstructed reference picture. In some video codecs, an image is spatially subdivided into sample blocks. If all sample blocks are coded in intraframe mode, the image can be an intraframe image. Intraframe images and their derivatives, such as independent decoder refresh images, can be used to reset the decoder state and thus can be used as the first image or still image in the coded video bitstream and video session. Samples of intraframe blocks are used in the transform and the transform coefficients can be quantized before entropy coding. Intraframe prediction can be a technique that minimizes sample values ​​in the pre-transform domain. In some cases, the smaller the DC value after the transform and the smaller the AC coefficients, the fewer bits are needed for a given quantization step size to represent the block after entropy coding.

[0008] Conventional intraframe coding, as known for example from MPEG-2 coding techniques, does not use intraframe prediction. However, some newer video compression techniques include techniques that attempt to obtain a data block from, for example, surrounding sample data and / or metadata obtained during the encoding and / or decoding of spatially adjacent blocks and prior to the decoding order. Such techniques are hereafter referred to as "intraframe prediction" techniques. It should be noted that, at least in some cases, intraframe prediction does not use reference data from a reference picture, but only reference data from the current picture being reconstructed.

[0009] There can be many different forms of intra prediction. If a given video coding technique can use more than one of such techniques, the technique in use can code in an intra prediction mode. In some cases, a mode may have sub-modes and / or parameters, which may be coded alone or included in a mode codeword. This may be the case for the entropy coding technique used to convert the codeword to a bitstream, since which codeword is used for a given mode, sub-mode and / or parameter combination affects the coding efficiency gain with intra prediction.

[0010] A specific mode of intraframe prediction was introduced in H.264, improved in H.265, and further improved in modern encoding / decoding techniques such as the joint exploration model (JEM), versatile video coding (VVC), and benchmark set (BMS). A prediction block can be formed using neighboring sample values ​​belonging to already available samples. The sample values ​​of the neighboring samples are copied into the prediction block according to a certain direction. The reference to the direction in use may be coded in the bitstream or may itself be predicted.

[0011] Referring to FIG. 1A, in the lower right corner, a subset of 9 known prediction directions from the 33 possible prediction directions (corresponding to the 33 angular modes of the 35 intraframe modes) of H.265 is depicted. The point (101) where the arrows converge represents the sample being predicted. The arrows represent the direction in which the sample is predicted. For example, arrow (102) indicates that sample (101) is predicted from one or more samples to the upper right, which are at an angle of 45 degrees from the horizontal. Similarly, arrow (103) indicates that sample (101) is predicted from one or more samples to the lower left of sample (101), which are at an angle of 22.5 degrees from the horizontal.

[0012] Continuing to refer to FIG. 1A, a square block (104) of 4×4 samples is depicted at the top left (indicated by a thick dashed line). The square block (104) contains 16 samples, each labeled with an “S” and its position in the Y dimension (e.g., row index) and its position in the X dimension (e.g., column index). For example, sample S21 is the second sample in the Y dimension (from the top) and the first sample in the X dimension (from the left). Similarly, sample S44 is the fourth sample of the block (104) in both the Y and X dimensions. S44 is at the bottom right because this block is a 4×4 sized sample. Additionally, reference samples are shown that follow a similar numbering scheme. The reference samples are labeled with “R” and their Y position (e.g., row index) and X position (e.g., column index) relative to the block (104). In both H.264 and H.265, since the predicted samples are adjacent to the block being reconstructed, it is not necessary to use negative values.

[0013] Intraframe prediction can work by copying reference sample values ​​from neighboring samples according to a signaled prediction direction. For example, assume that the coded video bitstream includes signaling indicating for this block the prediction direction consistent with the arrow (102), i.e., the sample is predicted from one or more prediction samples in the upper right corner that are at a 45 degree angle with the horizontal. In this case, samples S41, S32, S23, and S14 are predicted from the same reference sample R05. And sample S44 is predicted from reference sample R08.

[0014] In some cases, to calculate a reference sample, the values ​​of multiple reference samples may be combined, for example through interpolation, particularly when the orientation is not evenly divisible by 45 degrees.

[0015] With the development of video coding technology, the number of possible directions has already been increased. In H.264 (2003), nine different directions could be represented. This increased to 33 in H.265 (2013), and JEM / VVC / BMS can support up to 65 directions at the time of disclosure. Experiments were performed to identify the most possible directions, and some techniques in entropy coding are used to represent those possible directions with a small number of bits, at the expense of some less likely directions. Furthermore, the direction itself may be predicted from the neighboring directions used in neighboring already decoded blocks.

[0016] FIG. 1B shows a schematic diagram (180) depicting 65 intra-frame prediction directions according to JEM to illustrate the increasing number of prediction directions over time.

[0017] The mapping from intra prediction directions to bits representing directions in the coded video bitstream can vary between video coding techniques and can range, for example, from a simple direct mapping to the prediction directions to complex adaptation schemes involving intra prediction modes, codewords, most likely modes, and similar techniques. In all cases, however, there may be certain directions that are statistically less likely to occur in the video content than other certain directions. Because the goal of video compression is to reduce redundancy, these less likely directions are represented with more bits than more likely directions in a well-performing video coding technique.

[0018] Motion compensation may be a lossy compression technique and may be related to the following technique, in which sample data blocks from a previously reconstructed image or part thereof (reference image) are used to predict a newly reconstructed image or part of an image after being spatially shifted in a direction indicated by a motion vector (hereinafter referred to as MV). In some cases, the reference image may be the same as the image currently being reconstructed. The MV may have two dimensions, X and Y, or it may have three dimensions, with the third dimension being an indication of the reference image in use (the latter may indirectly be the temporal dimension).

[0019] In some video compression techniques, the MV applicable to a particular region of sample data may be predicted from other MVs, for example, from an MV associated with another sample data region that is spatially adjacent to the region being reconstructed and precedes it in decoding order. By doing so, the amount of data required to code the MV may be significantly reduced, thereby removing redundancy and improving compression ratio. MV prediction may work effectively, for example, when coding an input video signal derived from a video camera (called natural video), there is a statistical possibility that regions larger than the region to which a single MV is applicable move in a similar direction, and therefore, in some cases, can be predicted using similar motion vectors derived from MVs of neighboring regions. As a result, the MV found for a given region is similar or the same as the MV predicted from the surrounding MVs, and after entropy coding, it may be represented with fewer bits than would be used to code the MV directly. In some cases, MV prediction may be an example of lossless compression of a signal (i.e., MV) derived from the original signal (i.e., sample stream). In other cases, the MV prediction itself may be a lossy compression, for example due to rounding errors in computing the predictor from several surrounding MVs.

[0020] Various MV prediction mechanisms are described in H.265 / HEVC (ITU-T Rec. H.265, "High Efficiency Video Coding", December 2016). Among the many MV prediction mechanisms provided by H.265, the one described in this specification is a technique hereinafter referred to as "spatial merging".

[0021] Referring to Figure 2, the current block (201) contains samples found by the encoder during the motion search process, which may be predicted from a spatially shifted previous block of the same size. Instead of coding the MV directly, the MV may be derived from metadata associated with one or more reference pictures, e.g., from the nearest (in decoding order) reference picture using the MV associated with A0, A1 and any of the five surrounding samples denoted as B0, B1, B2 (202-206, respectively). In H.265, MV prediction may use predictors from the same reference picture used by the neighboring blocks. Summary of the Invention [Means for solving the problem]

[0022] Aspects of the present disclosure provide a method and apparatus for video encoding / decoding. In some examples, the apparatus for video decoding includes a processing circuit. The processing circuit can decode coded information for one or more blocks from a coded video bitstream. The coded information can indicate whether a super-resolution coding mode is applied to the one or more blocks. The super-resolution coding mode can be applied in response to the one or more blocks being downsampled from a high spatial resolution to a low spatial resolution by an encoder. Based on the coded information indicating that the super-resolution coding mode is applied to the one or more blocks, the processing circuit can generate a reconstructed block by upsampling information of a first block in the one or more blocks using the super-resolution coding mode. The first block has a low spatial resolution, and the reconstructed block has a high spatial resolution that is higher than the low spatial resolution. The one or more blocks include transform coefficients, and the reconstructed block can include sample values ​​in the spatial domain.

[0023] In one embodiment, the one or more blocks are coding blocks (CB), coding units (CU), predictive blocks (PB), or transform blocks (TB), and the coded information indicates whether a super-resolution coding mode is applied to each of the one or more blocks.

[0024] In one embodiment, the encoded information indicates whether the super-resolution coding mode applies to a coding unit (CU), a coding block (CB), a superblock, a predictive block (PB), a transform block (TB), a tile, a coded segment, a frame, or a sequence that includes one or more blocks.

[0025] In one embodiment, the processing circuitry can inverse transform the first block into a downsampled residual block having a lower spatial resolution.

[0026] In one example, the processing circuitry obtains a downsampled reference block by downsampling a reference block for the first block, where the reference block and the downsampled reference block have high and low spatial resolutions, respectively. The processing circuitry generates a downsampled reconstructed block based on the downsampled residual block and the downsampled reference block, where the downsampled reconstructed block has low spatial resolution. The processing circuitry can generate the reconstructed block by upsampling the downsampled reconstructed block.

[0027] In one example, the processing circuit may obtain a residual block having a high spatial resolution by upsampling the downsampled residual block. The processing circuit may generate a reconstructed block based on the obtained residual block and a reference block for the first block, the reference block having the high spatial resolution.

[0028] In one embodiment, the one or more blocks are a subset of blocks in the current image being reconstructed, and the super-resolution coding mode is not applied to blocks in the current image that are different from the one or more blocks.

[0029] In some examples, an apparatus for video encoding includes a processing circuit. The processing circuit can determine whether a super-resolution coding mode is applied to a first block in a video. The first block can include sample values ​​in a spatial domain and have a high spatial resolution. Based on determining that the super-resolution coding mode is applied to the first block, the processing circuit in the apparatus for video encoding can generate a downsampled coefficient block based on the first block using the super-resolution coding mode, where the downsampled coefficient block includes transform coefficients and has a low spatial resolution that is lower than the high spatial resolution. The processing circuit in the apparatus for video encoding can encode information for the first block in the video bitstream, where the encoded information indicates that the super-resolution coding mode was applied to the first block.

[0030] In one embodiment, the first block is a coding block (CB), a coding unit (CU), a prediction block (PB), or a transform block (TB).

[0031] In one embodiment, the coded information indicates that a super-resolution coding mode has been applied to a coding unit (CU), coding block (CB), superblock, predictive block (PB), transform block (TB), tile, coded segment, frame, or sequence including the first block.

[0032] In one embodiment, a processing circuit in the apparatus for video encoding generates a downsampled residual block based on a first block and a reference block for the first block. The reference block has a high spatial resolution. The downsampled residual block includes residual values ​​and has a low spatial resolution. The processing circuit in the apparatus for video encoding transforms the downsampled residual block to obtain a downsampled coefficient block.

[0033] In one example, a processing circuit in the apparatus for video encoding downsamples a first block to obtain a downsampled block having a low spatial resolution, downsamples a reference block to obtain a downsampled reference block having a low spatial resolution, and generates a downsampled residual block based on the downsampled block and the downsampled reference block.

[0034] In one example, a processing circuit in the apparatus for video encoding generates a residual block based on a first block and a reference block, where the residual block has a high spatial resolution. The processing circuit in the apparatus for video encoding downsamples the residual block to obtain a downsampled residual block.

[0035] Aspects of the present disclosure also provide a non-transitory computer-readable medium having instructions stored thereon that, when executed by a computer, cause the computer to perform a method for decoding and / or encoding video. [Brief description of the drawings]

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

[0037] [Figure 1A]FIG. 2 is a schematic diagram of an example subset of intra-frame prediction modes. [Figure 1B] 2 is a schematic diagram of an exemplary intra-frame prediction direction; [Diagram 2] FIG. 2 is a schematic diagram of a current block and its surrounding spatial merge candidates in one example. [Diagram 3] FIG. 3 is a schematic diagram of a simplified block diagram of a communication system (300) according to one embodiment. [Figure 4] FIG. 4 is a schematic diagram of a simplified block diagram of a communication system (400) according to one embodiment. [Diagram 5] FIG. 2 is a schematic diagram of a simplified block diagram of a decoder according to one embodiment. [Figure 6] FIG. 2 is a schematic diagram of a simplified block diagram of an encoder according to one embodiment. [Figure 7] FIG. 2 shows a block diagram of an encoder according to another embodiment. [Figure 8] FIG. 4 shows a block diagram of a decoder according to another embodiment. [Figure 9] FIG. 2 illustrates an example of a partition technique used in an example video coding format. [Figure 10] FIG. 11 illustrates an example of a partition technique used in another example of a video coding format. [Figure 11A] FIG. 11 illustrates an example of a partition technique used in another example of a video coding format. [Figure 11B] FIG. 11 illustrates an example of a partition technique used in another example of a video coding format. [Figure 12A] FIG. 13 is a diagram showing an example of vertical center side triple tree partitioning and horizontal center side triple tree partitioning. [Figure 12B] FIG. 13 is a diagram showing an example of vertical center side triple tree partitioning and horizontal center side triple tree partitioning. [Figure 13]FIG. 2 illustrates an exemplary loop filtering pipeline including a frame-level super-resolution coding mode, according to one embodiment of the present disclosure. [Figure 14] FIG. 2 illustrates a process for coding a block using a block-based super-resolution coding mode according to one embodiment of this disclosure. [Figure 15A] FIG. 2 illustrates a process for coding a block using a block-based super-resolution coding mode according to one embodiment of this disclosure. [Figure 15B] FIG. 2 illustrates a process for coding a block using a block-based super-resolution coding mode according to one embodiment of this disclosure. [Figure 16] FIG. 2 illustrates an example of a block-level super-resolution coding mode according to one embodiment of the present disclosure. [Figure 17] FIG. 2 illustrates an example of a block-level super-resolution coding mode according to one embodiment of the present disclosure. [Figure 18] FIG. 18 shows a flowchart outlining a process (1800) according to one embodiment of the present disclosure. [Figure 19] FIG. 19 shows a flowchart outlining a process (1900) according to one embodiment of the present disclosure. [Figure 20] FIG. 1 is a schematic diagram of a computer system according to one embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0038] FIG. 3 is a simplified block diagram of a communication system (300) according to an embodiment of the present disclosure. The communication system (300) includes a plurality of terminal devices that can communicate with each other, for example, via a network (350). For example, the communication system (300) includes a first pair of terminal devices (310) and (320) interconnected via the network (350). In the example of FIG. 3, the first pair of terminal devices (310) and (320) perform unidirectional transmission of data. For example, the terminal device (310) can code video data (e.g., a video image stream captured by the terminal device (310)) for transmission to another terminal device (320) via the network (350). The encoded video data can be transmitted in the form of one or more coded video bitstreams. The terminal device (320) can receive the coded video data from the network (350), decode the coded video data to reconstruct the video image, and display the video image based on the reconstructed video data. Unidirectional data transmission is common, such as in media serving applications.

[0039] In another example, the communication system (300) includes a second pair of terminal devices (330) and (340) performing bidirectional transmission of coded video data, such as may occur during a video conference. For bidirectional transmission of data, in one example, each of the terminal devices (330) and (340) can code video data (e.g., a video image stream captured by the terminal device) for transmission to the other of the terminal devices (330) and (340) over the network (350). Each of the terminal devices (330) and (340) can also receive the coded video data transmitted by the other of the terminal devices (330) and (340) and can also decode the coded video data to recover a video image and display the video image on an accessible display device based on the recovered video data.

[0040] In the example of FIG. 3, the terminal devices (310), (320), (330), and (340) may be depicted as a server, a personal computer, and a smartphone, although the principles of the present disclosure are not so limited. Embodiments of the present disclosure find application with laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. The network (350) represents any number of networks that transmit coded video data between the terminal devices (310), (320), (330), and (340), including wired and / or wireless communication networks. The communication network (350) may exchange data over circuit-switched and / or packet-switched channels. Representative networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For purposes of the present disclosure, the architecture and topology of the network (350) may not be important to the operation of the present disclosure, unless otherwise described herein below.

[0041] 4 illustrates the arrangement of a video encoder and a video decoder in a streaming environment as an example application for the disclosed subject matter. The disclosed subject matter is equally applicable to other video-supported applications including, for example, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc., video conferencing, digital TV, etc.

[0042] The streaming system may include a capture subsystem (413), which may include a video source (401), such as a digital camera, that creates, for example, an uncompressed video image stream (402). In one example, the video image stream (402) includes samples taken by a digital camera. The video image stream (402), depicted with thick lines to emphasize its high data volume when compared to the encoded video data (404) (or coded video bitstream), may be processed by an electronic device (420) that includes a video encoder (403) coupled to the video source (401). The video encoder (403) may include hardware, software, or a combination thereof to enable or realize various aspects of the disclosed subject matter, as described in more detail below. The encoded video data (404) (or coded video bitstream (404)), depicted with thin lines to emphasize its lower data volume when compared to the video image stream (402), may be stored in a streaming server (405) for future use. One or more streaming client subsystems, such as the client subsystems (406) and (408) of FIG. 3, can access the streaming server (405) to retrieve copies (407) and (409) of the encoded video data (404). The client subsystem (406) can include, for example, a video decoder (410) in an electronic device (430). The video decoder (410) decodes the incoming copy of the encoded video data (407) to generate an outgoing video image stream (411) that can be displayed on a display (412) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (404), (407), and (409) (e.g., a video bitstream) can be encoded according to a particular video coding / compression standard.Examples of these standards include ITU-T Recommendation H.265. In one example, a video coding standard under development is informally referred to as Next Generation Video Coding (VVC). The disclosed subject matter can be used in the context of VVC.

[0043] It should be noted that the electronic devices (420) and (430) can include other components (not shown). For example, the electronic device (420) can include a video decoder (not shown), and the electronic device (430) can also include a video encoder (not shown).

[0044] 5 shows a block diagram of a video decoder (510) according to an embodiment of the present disclosure. The video decoder (510) can be included in an electronic device (530). The electronic device (530) can include a receiver (531) (e.g., a receiving circuit). The video decoder (510) can be used in place of the video decoder (510) in the example of FIG. 3.

[0045] The receiver (531) can receive one or more coded video sequences that are decoded by the video decoder (510), in the same or another embodiment, one coded video sequence at a time being decoded, where the decoding of each coded video sequence is independent of the other coded video sequences. The coded video sequences can be received from a channel (501), which may be a hardware / software link to a storage device that stores the coded video data. The receiver (531) can receive the coded video data along with other data, such as coded audio data and / or auxiliary data streams, that can be transmitted to a respective using entity (not shown). The receiver (531) can separate the coded video sequences from the other data. To prevent network jitter, a buffer memory (515) can be coupled between the receiver (531) and the entropy decoder / parser (520) (hereinafter "parser (520)"). In some applications, the buffer memory (515) is part of the video decoder (510). In other cases, the buffer memory (515) may be located outside the video decoder (510) (not shown). In still other cases, there may be a buffer memory (not shown) outside the video decoder (510), e.g., to prevent network jitter, and there may be another buffer memory (515) inside the video decoder (510), e.g., to handle playback timing. If the receiver (531) receives data from a store-and-forward device with sufficient bandwidth and controllability or from an isosynchronous network, the buffer memory (515) may not be necessary or may be small.For use in a best-effort packet network such as the Internet, the buffer memory (515) may be necessary and may be relatively large, advantageously of adaptive size, and may be implemented at least in part in an operating system or similar element (not shown) external to the video decoder (510).

[0046] The video decoder (510) may include a parser (520) for reconstructing symbols (521) from the coded video sequence. These categories of symbols include information used to manage the operation of the video decoder (510) and potential information for controlling a rendering device, such as a rendering device (512) (e.g., a display screen) that is not an integral part of the electronic device (530) but may be coupled to the electronic device (530) as shown in FIG. 5. The rendering device control information may be in the form of a supplemental enhancement information (SEI message) or a visual usability information (VUI) parameter set fragment (not shown). The parser (520) may perform parsing / entropy decoding on the received coded video sequence. The coding of the coded video sequence may follow 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 analyzer (520) can extract from the coded video sequence a set of subgroup parameters for at least one of the subgroups of pixels in the video decoder based on at least one parameter corresponding to the group. The subgroups can include a group of pictures (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 analyzer (520) can also extract information such as transform coefficients, quantizer parameter values, MVs, etc. from the coded video sequence.

[0047] The analyzer (520) can perform entropy decoding / analysis operations on the video sequence received from the buffer memory (515) to produce symbols (521).

[0048] The reconstruction of the symbols (521) may relate to different units depending on the type of coded video image or part thereof (e.g., inter-frame and intra-frame images, inter-frame and intra-frame blocks) and other factors. What units relate to and how they relate to may be controlled by subgroup control information parsed by the parser (520) from the coded biosequence. The flow of such subgroup control information between the parser (520) and the following units is not shown for clarity.

[0049] In addition to the functional blocks already mentioned, the video decoder (510) may be conceptually subdivided into several functional units, as described below. In an actual embodiment operating within commercial constraints, many of these units may interact closely with each other and may be at least partially integrated with each other. However, for purposes of describing the disclosed subject matter, the following conceptual subdivision into functional units is appropriate.

[0050] The first unit is a scalar / inverse transform unit (551), which receives quantized transform coefficients and control information from the analyzer (520) including what transform to use, block size, quantization factor, quantization scaling matrix, etc. as symbols (521). The scalar / inverse transform unit (551) can output blocks containing sample values ​​that can be input to an aggregator (555).

[0051] In some cases, the output samples of the scalar / inverse transform unit (551) may belong to intra-coded blocks, i.e., blocks that do not use prediction information from a previously reconstructed image, but may use prediction information from a previously reconstructed portion of the current image. Such prediction information may be provided by an intra-image prediction unit (552). In some cases, the intra-image prediction unit (552) uses surrounding already reconstructed information extracted from a current image buffer (558) to generate a block of the same size and shape as the block being reconstructed. The current image buffer (558) buffers, for example, a partially reconstructed current image and / or a fully reconstructed current image. The aggregator (555) adds the prediction information generated by the intra-frame prediction unit (552) to the output sample information provided by the scalar / inverse transform unit (551), in some cases on a sample-by-sample basis.

[0052] In other cases, the output samples of the scalar / inverse transform unit (551) may belong to an inter-frame coded block and potentially a motion compensated block. In such cases, the motion compensation prediction unit (553) may access the reference picture memory (557) to extract samples used for prediction. After the extracted samples are motion compensated based on the symbols (521) associated with the block, these samples may be added to the output of the scalar / inverse transform unit (551) (in this case called residual samples or residual signals) by the aggregator (555) to generate output sample information. The addresses in the reference picture memory (557) from which the motion compensation prediction unit (553) extracts the prediction samples may be controlled by the MVs available to the motion compensation prediction unit (553), for example in the form of symbols (521) that may have X, Y, and reference picture components. Motion compensation may also include interpolation of sample values ​​extracted from the reference picture memory (557) when sub-sample accurate motion vectors are in use, MV prediction mechanisms, etc.

[0053] The output samples of the aggregator (555) may be employed by various loop filtering techniques in a loop filter unit (556). Video compression techniques may include in-loop filter techniques controlled by parameters contained in the coded video sequence (also called a coded video bitstream) and made available to the loop filter unit (556) as symbols (521) from the analyzer (520), may be responsive to meta-information obtained during decoding of a coded image or previous portions of the coded video sequence (in decoding order), and may be responsive to previously reconstructed loop filtered sample values.

[0054] The output of the loop filter unit (556) may be a sample stream that can be output to a rendering device (512) and stored in a reference image memory (557) for use in future interframe image prediction.

[0055] Once a particular coded picture has been fully reconstructed, it can be used as a reference picture for future predictions. For example, once a coded picture corresponding to a current picture has been fully reconstructed and the coded picture has been identified (e.g., by the analyzer (520)) as a reference picture, the current picture buffer (558) can become part of the reference picture memory (557) and a new current picture buffer can be reallocated prior to commencing reconstruction of the subsequent coded picture.

[0056] The video decoder (510) may perform decoding operations according to a given video compression technique in a standard, such as ITU-T Rec. H.265. The coded video sequence may conform to a syntax specified by the video compression technique or standard being used, in the sense that the coded video sequence conforms to both the syntax of the video compression technique or standard and the profile as a document of the video compression technique or standard. Specifically, the profile may select some tools from all tools available in the video compression technique or standard as the only tools available in the profile. Compliance also requires that the complexity of the coded video sequence is within a range defined by the hierarchy of the video compression technique or standard. In some cases, the hierarchy limits the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in mega samples per second), maximum reference picture size, etc. The limitations set by the hierarchy may be further limited in some cases by a Hypthetical Reference Decoder (HRD) specification and HRD buffer management metadata signaled in the coded video sequence.

[0057] In one embodiment, the receiver (531) can receive additional (redundant) data along with the encoded video. The additional data can be included as part of the coded video sequence. The additional data can be used by the video decoder (510) to properly decode the data and / or more accurately reconstruct the original video data. The additional data can be in forms such as, for example, temporal, spatial, or signal noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.

[0058] 6 shows a block diagram of a video encoder (603) according to one embodiment of the present disclosure. The video encoder (603) is included in an electronic device (620). The electronic device (620) includes a transmitter (640) (e.g., a transmission circuit). The video encoder (603) can be used in place of the video encoder (403) in the example of FIG. 4.

[0059] The video encoder (603) can receive video samples from a video source (601) (which is not part of the electronic device (620) in the example of FIG. 6) that captures video images that are coded by the video encoder (603). In another example, the video source (601) is part of the electronic device (620).

[0060] The video source (601) may provide a source video sequence coded by the video encoder (603) in the form of a digital video sample stream, said digital video sample stream having 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 service system, the video source (601) may be a storage device that stores previously prepared video. In a video conferencing system, the video source (601) may be a camera that captures local image information as a video sequence. The video data may be provided as a number of separate images that give motion when viewed in sequence. The images themselves may be organized as a spatial pixel array, where each pixel may contain one or more samples, depending on the sampling structure, color space, etc. in use. Those skilled in the art can easily understand the relationship between pixels and samples. The following description focuses on samples.

[0061] According to one embodiment, the video encoder (603) can code and compress images of a source video sequence into a coded video sequence (643) in real-time or under any other time constraint required by the application. Enforcing an appropriate coding rate is one function of the controller (650). In some embodiments, the controller (650) controls and is operatively coupled to other functional units as described below, which are not shown for clarity. Parameters set by the controller (650) can include rate control related parameters (picture skip, quantizer, lambda value for rate distortion optimization techniques...), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (650) can be configured to have other appropriate functions associated with the video encoder (603) optimized for a particular system design.

[0062] In some embodiments, the video encoder (603) is configured to operate in a coding loop. As an oversimplified explanation, in one example, the coding loop can include a source coder (630) (e.g., responsible for creating symbols, such as a symbol stream, based on an input image to be coded and a reference image) and a (local) decoder (633) embedded in the video encoder (603). The decoder (633) reconstructs the symbols to create sample data in a similar manner to how the (remote) decoder creates the sample data (because in the video compression techniques contemplated in the disclosed subject matter, any compression between the symbols and the coded video bitstream is lossless). The reconstructed sample stream (sample data) is input to a reference image memory (634). The decoding of the symbol stream provides bit-exact results regardless of the location of the decoder (local or remote), so that the contents of the reference image memory (634) correspond bit-exactly between the local and remote encoders. In other words, the reference image samples "seen" by the prediction part of the encoder are exactly the same as the sample values ​​"seen" by the decoder when it uses the prediction during decoding. This basic principle of reference image synchrony (and the drift that occurs when synchrony is not maintained, e.g., due to channel errors) is also used in several related technologies.

[0063] The operation of the "local" decoder (633) may be the same as the operation of a "remote" decoder, such as the video decoder (510), already described in detail above in connection with Figure 4. However, with further brief reference to Figure 5, because symbols are available and the encoding / decoding of symbols into a coded video sequence by the entropy coder (645) and analyzer (520) can be lossless, the entropy decoding portion of the video decoder (510), including the buffer memory (515) and analyzer (520), may not be performed entirely in the local decoder (633).

[0064] At this point, it is observed that any decoder technique other than analysis / entropy decoding present in the decoder must necessarily be present in a corresponding encoder in substantially identical functional form. For this reason, the disclosed subject matter focuses on the decoder operation. A description of the encoder technique can be omitted, since it is the inverse of the decoder technique described generically. Only in certain areas is a more detailed description necessary, which is provided below.

[0065] During operation, in some embodiments, the source coder (630) can perform motion-compensated predictive coding, which predictively codes an input image with reference to one or more previously coded images from the video sequence designated as “reference images.” In this manner, the coding engine (632) codes differences between pixel blocks of the input image and pixel blocks of reference images that can be selected as predictive references for the input image.

[0066] The local video decoder (633) can decode the coded video data of the image that can be designated as a reference image based on the symbols generated by the source coder (630). The operation of the coding engine (632) can advantageously be a lossy process. When the coded video data is decoded in a video decoder (not shown in FIG. 6), the reconstructed video sequence can be a replica of the source video sequence, usually with some errors. The local video decoder (633) can copy the decoding process that can be performed by the video decoder on the reference image and store the reconstructed reference image in the reference image cache (634). In this way, the video encoder (603) can locally store a copy of the reconstructed reference image that has a common content with the reconstructed reference image obtained by the far-end video decoder (in the absence of transmission errors).

[0067] The predictor (635) can perform a prediction search for the coding engine (632). That is, for a new image to be coded, the predictor (635) can search the reference image memory (634) for sample data (as candidate reference pixel blocks) or specific metadata, such as reference image motion vectors, block shapes, etc., that serve as suitable prediction references for the new image. The predictor (635) can operate on a pixel block by pixel block basis to find suitable prediction references. In some cases, as determined by the search results obtained by the predictor (635), the input image can have prediction references drawn from multiple reference images stored in the reference image memory (634).

[0068] The controller (650) can manage the coding operations of the source coder (630), including, for example, setting the parameters and subgroup parameters used to encode the video data.

[0069] The output of all of the above functional units can be entropy coded in an entropy coder (645), which converts the symbols produced by the various functional units into a coded video sequence by losslessly compressing the symbols according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc.

[0070] The transmitter (640) can buffer the coded video sequence produced by the entropy coder (645) for transmission over a communication channel (660), which can be a hardware / software link to a storage device that stores the coded video data. The transmitter (640) can merge the coded video data from the video coder (603) with other data to be transmitted, such as coded audio data and / or auxiliary data streams (sources not shown).

[0071] A controller (650) can manage the operation of the video encoder (603). During coding, the controller (650) can assign a particular coded picture type to each coded picture, which can affect the coding technique that can be applied to each picture. For example, pictures are often assigned as one of the following picture types: An intraframe picture (I-picture) may be one that can be coded and decoded without using any other picture in the sequence as a source of prediction. Some video codecs allow different types of intraframe pictures, such as Independent Decoder Refresh ("IDR") pictures. Those skilled in the art understand the variants of I-pictures and their applications and functions.

[0072] A predicted image (P-image) may be one that can be encoded and decoded using intra-frame or inter-frame prediction, which predicts the sample values ​​of each block using at most one motion vector and reference index.

[0073] Bidirectionally predicted images (B-pictures) may be those that can be encoded and decoded using intra-frame or inter-frame prediction, which predicts the sample values ​​of each block using at most two motion vectors and reference indices. Similarly, multiple predicted images can use more than one reference image and associated metadata to reconstruct a single block.

[0074] A source image is generally spatially subdivided into a number of sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples, respectively) and can be coded block by block. These blocks can be predictively coded with reference to other (already coded) blocks, as determined by the coding assignment applied to the respective image of the block. For example, blocks of an I image may be non-predictively coded, or they may be predictively coded with reference to already coded blocks of the same image (spatial prediction or intraframe prediction). Pixel blocks of a P image may be predictively coded via spatial prediction or via temporal prediction with reference to the previous coded reference image. Blocks of a B image may be predictively coded via spatial prediction or via temporal prediction with reference to the previous coded reference image or to the next previous coded reference image.

[0075] The video encoder (603) may perform coding operations in accordance with a given video coding technique or standard, such as ITU-T H.265, etc. In its operations, the video encoder (603) may perform various compression operations, including predictive coding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the coded video data may conform to a syntax specified by the video coding technique or standard used.

[0076] In one embodiment, the transmitter (640) can transmit additional data along with the encoded video. The source coder (630) can include such data as part of the coded video sequence. The additional data can include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures or slices, SEI messages, VUI parameter set fragments, etc.

[0077] A video can be captured as multiple source images (video images) in a time sequence. Intraframe image prediction (often abbreviated as intraframe prediction) exploits spatial correlation in a given image, while interframe image prediction exploits correlation (temporal or other) between images. In one example, a particular image being coded / decoded, called a current image, is partitioned into blocks. If a block of the current image is similar to a reference block in a previously coded and still buffered reference image in the video, the block of the current image can be coded by a vector called a motion vector. The motion vector points to a reference block in the reference image, and can have a third dimension that identifies the reference image if multiple reference images are used.

[0078] In some embodiments, bidirectional prediction techniques can be used for interframe image prediction. According to bidirectional prediction techniques, two reference images are used, such as a first reference image and a second reference image, both of which are before the current image in the video in decoding order (but may be in the past and future, respectively, in display order). A block in the current image can be coded by a first motion vector that points to a first reference block in the first reference image and a second motion vector that points to a second reference block in the second reference image. A block can be predicted by a combination of the first reference block and the second reference block.

[0079] Furthermore, to improve coding efficiency, merge mode techniques can be used in inter-frame image prediction.

[0080] According to some embodiments of the present disclosure, prediction, such as inter-frame image prediction or intra-frame image prediction, is performed on a block-by-block basis. For example, according to the HEVC standard, images in a sequence of video images are partitioned into coding tree units (CTUs) for compression, and the CTUs in an image have the same size, for example, 64×64 pixels, 32×32 pixels, or 16×16 pixels. Generally, a CTU includes three coding tree blocks (CTBs), one luma CTB and two chroma CTBs. Each CTU may be recursively divided into one or more coding units (CUs) in a quad tree. For example, a 64×64 pixel CTU can be divided into one 64×64 pixel CU, four 32×32 pixel CUs, or sixteen 16×16 pixel CUs. In one example, each CU is analyzed to determine a prediction type for the CU, such as an inter-frame prediction type or an intra-frame prediction type. A CU is divided into one or more prediction units (PUs) according to temporal and / or spatial predictability. Usually, each PU includes a luma prediction block (PB) and two chroma PBs. In one embodiment, prediction operations in coding (encoding / decoding) are performed in units of prediction blocks. Using a luma prediction block as an example of a prediction block, a 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.

[0081] 7 shows a diagram of a video encoder (703) according to another embodiment of the present disclosure. The video encoder (703) is configured to receive a processed block of sample values ​​(e.g., a predictive block) in a current video image in a video image sequence and to encode the processed block into a coded image that is part of the coded video sequence. In one example, the video encoder (703) is used in place of the video encoder (403) in the example of FIG. 4.

[0082] In an HEVC example, the video encoder (703) receives a matrix of sample values ​​for a processing block, such as a predictive block of 8×8 samples. The video encoder (703) determines whether to code the processing block using an intra mode, an inter mode, or a bidirectional prediction mode, for example using rate-distortion optimization. If the processing block is coded in an intra mode, the video encoder (703) can encode the processing block into a coded image using an intra prediction technique, and if the processing block is coded in an inter mode or a bidirectional prediction mode, the video encoder (703) can encode the processing block into a coded image using an inter prediction or bidirectional prediction technique, respectively. In certain video coding techniques, the merge mode can be an inter image prediction submode in which a motion vector is derived from one or more motion vector predictors, without taking advantage of any coded motion vector components other than the predictors. In certain other video coding techniques, there may be motion vector components applicable to the subject block. In one example, the video encoder (703) includes other components, such as a mode decision module (not shown) for determining the mode of the processing block.

[0083] In the example of FIG. 7, the video encoder (703) includes an interframe encoder (730), an intraframe encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a general controller (721), and an entropy encoder (725), coupled together as shown in FIG. 7.

[0084] The inter-frame encoder (730) is configured to receive samples of a current block (e.g., a processing block), compare the block to one or more reference blocks in reference images (e.g., blocks in previous and subsequent images), generate inter-frame prediction information (e.g., redundant information description from inter-frame coding techniques, motion vectors, merge mode information), and calculate an inter-frame prediction result (e.g., a predicted block) based on the inter-frame prediction information using any suitable technique. In some examples, the reference image is a decoded reference image that has been decoded based on the encoded video information.

[0085] The intraframe encoder (722) is configured to receive samples of a current block (e.g., a processing block), in some cases compare the block with previously coded blocks in the same image, generate transformed and quantized coefficients, and in some cases generate intraframe prediction information (e.g., intraframe prediction direction information according to one or more intraframe coding techniques). In one example, the intraframe encoder (722) also calculates intraframe prediction results (e.g., predicted blocks) based on the intraframe prediction information and reference blocks in the same image.

[0086] The generic controller (721) is configured to determine generic control data and control other components of the video encoder (703) based on the generic control data. In one example, the generic controller (721) determines the mode of the block and provides a control signal to the switch (726) based on the mode. For example, if the mode is an intra mode, the generic controller (721) controls the switch (726) to select the intra mode result to be used by the residual calculator (723) and controls the entropy encoder (725) to select intra prediction information and include the intra prediction information in the codestream. Also, if the mode is an inter mode, the generic controller (721) controls the switch (726) to select the inter prediction result to be used by the residual calculator (723) and controls the entropy encoder (725) to select inter prediction information and include the inter prediction information in the codestream.

[0087] The residual calculator (723) is configured to calculate a difference (residual data) between a received block and a prediction result selected from the intraframe encoder (722) or the interframe encoder (730). The residual encoder (724) is configured to operate on the residual data and generate transform coefficients by encoding the residual data. In one example, the residual encoder (724) is configured to transform the residual data from a spatial domain to a frequency domain to generate transform coefficients. The transform coefficients then undergo a quantization process to obtain quantized transform coefficients. In various embodiments, the video encoder (703) also includes a residual decoder (728). The residual decoder (728) is configured to perform an inverse transform and generate decoded residual data. The decoded residual data can be used by the intraframe encoder (722) and the interframe encoder (730) as appropriate. For example, the inter-frame encoder (730) may generate decoded blocks based on the decoded residual data and the inter-frame prediction information, and the intra-frame encoder (722) may generate decoded blocks based on the decoded residual data and the intra-frame prediction information. The decoded blocks are appropriately processed to generate a decoded image, and in some examples, the decoded image may be buffered in a memory circuit (not shown) and used as a reference image.

[0088] The entropy encoder (725) is configured to format the bitstream to include the encoded block. The entropy encoder (725) is configured to include various information in the bitstream according to an appropriate standard, such as the HEVC standard. In one example, the entropy encoder (725) is configured to include general control data, selected prediction information (e.g., intraframe prediction information or interframe prediction information), residual information, and other appropriate information in the bitstream. It should be noted that, in accordance with the disclosed subject matter, there is no residual information when coding a block in an interframe mode or a merged sub-mode of a bi-predictive mode.

[0089] 8 shows a diagram of a video decoder (810) according to another embodiment of the present disclosure. The video decoder (810) is configured to receive a coded image that is part of a coded video sequence and decode the coded image to generate a reconstructed image. In one example, the video decoder (810) is used in place of the video decoder (410) in the example of FIG. 4.

[0090] In the example of FIG. 8, the video decoder (810) includes an entropy decoder (871), an interframe decoder (880), a residual decoder (873), a reconstruction module (874), and an intraframe decoder (872), coupled together as shown in FIG. 8.

[0091] The entropy decoder (871) may be configured to reconstruct from the coded image certain symbols that represent syntax elements that make up the coded image. Such symbols may include, for example, a mode for coding the block (e.g., intra mode, inter mode, bi-predictive mode, merged submode of the latter two or another submode), prediction information (e.g., intra prediction information or inter prediction information, etc.) that may identify certain samples or metadata used for prediction by the intra decoder (872) or the inter decoder (880), respectively, and residual information, for example in the form of quantized transform coefficients. In one example, if the prediction mode is an inter prediction mode or a bi-predictive mode, the inter prediction information is provided to the inter decoder (880). And if the prediction type is an intra prediction type, the intra prediction information is provided to the intra decoder (872). The residual information may be inverse quantized and provided to the residual decoder (873).

[0092] The inter-frame decoder (880) is configured to receive the inter-frame prediction information and to generate an inter-frame prediction result based on the inter-frame prediction information.

[0093] The intraframe decoder (872) is configured to receive the intraframe prediction information and to generate a prediction result based on the intraframe prediction information.

[0094] The residual decoder (873) is configured to perform inverse quantization to extract inverse quantized transform coefficients, and process the inverse quantized transform coefficients to transform the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require certain control information (to include quantizer parameters (QP)), which may be provided by the entropy decoder (871) (data path not shown as this is only low volume control information).

[0095] The reconstruction module (874) is configured to combine, in the spatial domain, the residual as output by the residual decoder (873) and a prediction result (possibly as output by an inter-frame prediction module or an intra-frame prediction module) to form a reconstructed block, which may be part of a reconstructed image, which may then be part of a reconstructed video. It should be noted that it may perform other appropriate operations, such as a deblocking operation, to improve visual quality.

[0096] It should be noted that the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be realized using any suitable technology. In one embodiment, the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be realized using one or more integrated circuits. In another embodiment, the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented using one or more processors executing software instructions.

[0097] Video coding techniques related to super-resolution based coding, such as adaptation methods for super-resolution based coding, are disclosed. The video coding format may include any suitable video coding format, such as an open video coding format designed for video transmission over the Internet, such as Alliance for Open Media (AOMedia) Video 1 (AV1) or a next-generation AOMedia video format beyond AV1. The video coding standard may include the High Efficiency Video Coding (HEVC) standard, a next-generation video coding beyond HEVC (e.g., Generic Video Coding (VVC)), and the like.

[0098] In general, an image or frame is partitioned into blocks, which may be units for various processing, such as partitioning, prediction, transformation, etc. Various block partition techniques may be used.

[0099] FIG. 9 shows an example of a partition technique used in the video coding format VP9 by AOMedia. For example, an image (910) is partitioned into multiple blocks (920) of size 64×64 (e.g., 64 samples×64 samples). Furthermore, the 4-way partition tree can start from the 64×64 level and continue to smaller blocks, with the lowest level being the 4×4 level (e.g., block size of 4 samples×4 samples). In some examples, additional restrictions may be applied for blocks 8×8 and below. In the example of FIG. 9, the 64×64 block (920) may be partitioned into smaller blocks using one of the first way (921), second way (922), third way (923), and fourth way (924). The partition designated as R (shown in the fourth way (924)) is called a recursive partition, where the same partition tree may be repeated at lower scales until the lowest 4×4 level is reached.

[0100] FIG. 10 shows an example of a partition technique used in AV1, designed for video transmission over the Internet. AV1 was developed as a successor to VP9. For example, an image (1010) is partitioned into multiple blocks (1020) of size 128×128 (e.g., 128 samples×128 samples). Furthermore, a 10-way partition structure can start with 128×128 and continue to smaller blocks. In the example of FIG. 10, the 128×128 block can be partitioned into smaller blocks using one of the 10 ways (1021)-(1030). AV1 not only extends the partition tree to a 10-way structure, but also increases the maximum size (called a superblock in VP9 / AV1) to start at 128×128. A partition designated as R (shown in way (1029)) is called a recursive partition, where the same partition tree can be repeated at a lower scale. The 10-way structure can include 4:1 and 1:4 rectangular partitions, such as those shown by (1021) and (1028). In one example, none of these rectangular partitions can be further subdivided. Additionally, AV1 adds flexibility to use partitions below the 8x8 level. For example, in certain cases, 2x2 chrominance interframe prediction is possible.

[0101] In some examples, the block partitioning structure is called a coding tree. In one example (e.g., HEVC), the coding tree may have a quad-tree structure, where each partition divides a large square block into four small square blocks. In some examples, an image is divided into coding tree units (CTUs), and then the CTUs are divided into smaller blocks using a quad-tree structure. According to the quad-tree structure, the coding tree units (CTUs) are divided into coding units (CUs) to adapt to various local features. The decision to code a screen region using inter-frame image prediction (or inter-frame prediction) (temporal) or intra-frame image prediction (or intra-frame prediction) (spatial) may be performed at the CU level. Each CU may be further divided into one, two, or four prediction units (PUs) depending on the PU partition type. Within one PU, the same prediction process is applied, and related information (e.g., prediction information) is sent to the decoder on a PU basis.

[0102] After the residual block is obtained by applying a prediction process based on the PU partition type, the CU may be partitioned into transform units (TUs) according to another quad tree structure. In the example of HEVC, there is a concept of multi-partition, including CU, PU, ​​and TU. In some embodiments, a CU or TU only has a square shape, but a PU can have a square or rectangular shape. In some embodiments, one coding block may be further divided into four square sub-blocks, and a transform may be performed on each sub-block, such as a TU. Each TU may be further recursively divided into smaller TUs using a quad tree structure called residual quad tree (RQT).

[0103] At image boundaries, in some instances (e.g., HEVC), an implicit quadtree partitioning is employed, whereby a block retains the quadtree partition until its size fits the image boundary.

[0104] In some examples (e.g., VVC), the block partitioning structure may use a quad tree plus binary tree (QTBT) block partitioning structure. In the QTBT structure, the concept of multiple partition types (CU, PU, ​​and TU concepts) is eliminated, and more flexibility for CU partition shapes may be supported. In the QTBT block partitioning structure, a CU may have either a square or rectangular shape.

[0105] FIG. 11A shows a CTU (1110) partitioned using the QTBT block partitioning structure (1120) shown in FIG. 11B. The CTU (1110) is first partitioned by a quadtree structure. The leaf nodes of the quadtree are further partitioned by a binary tree structure or a quadtree structure. In the binary tree partitioning, there can be two partition types: symmetric horizontal partitioning (e.g., labeled as "0" in the QTBT block partitioning structure (1120)) and symmetric vertical partitioning (e.g., labeled as "1" in the QTBT block partitioning structure (1120)). The leaf nodes that are not further partitioned are called CUs and can be used for prediction and transformation processes without the need for further partitioning. Thus, in the QTBT block partitioning structure, CUs, PUs, and TUs have the same block size.

[0106] In some examples (e.g., JEM), a CU may include coding blocks of different color components. For example, for P slices and B slices in 4:2:0 chrominance format, a CU includes one luma CB and two chroma CBs. A CU may include a CB of a single color component. For example, for an I slice, a CU includes only one luma CB or only two chroma CBs.

[0107] In some embodiments, the following parameters are defined for the QTBT block partitioning scheme: - CTU size: The size of the root node of the quadtree, e.g. the same concept as in HEVC. - MinQTSize: The minimum allowed size of a leaf node in a quadtree. - MaxBTSize: The maximum allowed size of the root node of a binary tree. - MaxBTDepth: The maximum allowed depth of a binary tree. - MinBTSize: The minimum allowed size of a leaf node in a binary tree.

[0108] In one example of a QTBT block partitioning structure, the CTU size is set as 128×128 luma samples with two corresponding 64×64 blocks of chroma samples, MinQTSize is set as 16×16, MaxBTSize is set as 64×64, MinBTSize (both width and height) is set as 4×4, and MaxBTDepth is set as 4. The quad-tree partitioning is first applied to the CTU to generate a quad-tree leaf node. The quad-tree leaf node can have a size from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size). If the quad-tree leaf node is 128×128, the quad-tree leaf node is not further partitioned by the binary tree because its size exceeds MaxBTSize (i.e., 64×64). Otherwise, the quad-tree leaf node is further partitioned by the binary tree. Thus, the leaf nodes of the quadtree are also the root nodes of the binary tree and have a binary tree depth of 0.

[0109] If the binary tree depth reaches MaxBTDepth (i.e., 4), no further splits are considered. If the width of a binary tree node is equal to MinBTSize (i.e., 4), no further horizontal splits are considered. Similarly, if the height of a binary tree node is equal to MinBTSize, no further vertical splits are considered. Leaf nodes of the binary tree are further processed by the prediction and transformation processes without requiring further partitioning. In one embodiment, the maximum CTU size is 256x256 luma samples.

[0110] In Figures 11A and 11B, solid lines indicate quad-tree splits and dotted lines indicate binary tree splits. At each split (i.e., non-leaf) node of the binary tree, one flag is signaled to indicate which split type (i.e., horizontal or vertical) is used. For example, 0 indicates horizontal split and 1 indicates vertical split. In the case of quad-tree splits, there is no need to indicate the split type because the quad-tree split can split a block both horizontally and vertically to generate four sub-blocks with the same size.

[0111] In some embodiments, the QTBT block partitioning scheme supports the flexibility for luma and chroma to have separate QTBT block partitioning structures. For example, for P and B slices, the luma chroma and chroma blocks in one CTU share the same QTBT block partitioning structure. However, for I slices, the luma CTB is partitioned into CUs by the QTBT block partitioning structure, and the chroma blocks are partitioned into chroma CUs by the other QTBT block partitioning structure. Thus, a CU in an I slice is composed of coding blocks of the luma component or coding blocks of two chroma components, and a CU in a P or B slice is composed of coding blocks of all three chroma components.

[0112] In some instances (e.g., HEVC), inter-frame prediction for small blocks is limited to reduce memory accesses for motion compensation, e.g., bidirectional prediction is not supported for 4×8 and 8×4 blocks, and inter-frame prediction is not supported for 4×4 blocks.

[0113] Additionally, in some examples (e.g., VCC), a multi-type tree (MTT) block partitioning structure is used. In some examples, the MTT block partitioning structure is a more flexible tree structure than the QTBT block partitioning structure. In addition to quad-tree and binary-tree partitioning, ternary tree (TT) partitioning may be used in the MTT. The TT may include horizontal center-side triple-tree partitioning and vertical center-side triple-tree partitioning.

[0114] FIG. 12A shows an example of vertical center-side triple tree partitioning, and FIG. 12B shows an example of horizontal center-side triple tree partitioning. TT partitioning can complement quad-tree partitioning and binary tree partitioning. For example, triple-tree partitioning can capture objects located in the center of a block, while quad-tree and binary trees split across the center of the block. In one example, the width and height of the triple-tree partition are powers of two, so no additional transformation partitions are needed.

[0115] Block partitioning designs such as two-level trees are primarily motivated by reducing complexity. The complexity of traversing a tree is T D where T denotes the number of split types and D is the depth of the tree.

[0116] In this disclosure, the terms "resolution" and "spatial resolution" may be used interchangeably.

[0117] The super-resolution coding mode may be used in a video coding format, such as AV1. Figure 13 shows an example loop filtering pipeline (1300) including a frame-level (or image-level) super-resolution coding mode according to one embodiment of the present disclosure.

[0118] A frame-level (or image-level) super-resolution coding mode can include downsampling (also called downscaling) a source image to be encoded into a downsampled image, and encoding the downsampled image at the encoder side with a lower spatial resolution (also called reduced spatial resolution or downsampled spatial resolution). The source image has a full spatial resolution (also called high spatial resolution or original spatial resolution) that is higher than the low spatial resolution. The encoded downsampled image with the low spatial resolution can be transmitted to a decoder and decoded at the decoder side with the lower spatial resolution. The decoded downsampled image can then be upsampled (or scaled up) to a decoded image with a higher spatial resolution.

[0119] Referring to FIG. 13, at the encoder side, a source frame (also called a source image) has a source image size (e.g., 4K×2K or 4000 samples×2000 samples) corresponding to a high spatial resolution (e.g., 4K×2K). The source frame may first be downscaled (or downsampled) by a downscaler (also called a downsampler) (1311) in a non-prescriptive manner and thus encoded at a low spatial resolution (e.g., 2k×2k). After being downsampled, the downsampled image has a downscaled image size corresponding to the low spatial resolution, e.g., 2K×2K or 2000 samples×2000 samples, etc. The downsampled image is encoded using an encoding tool (1312), which may include intraframe or interframe prediction, transformation, quantization, entropy coding, etc. The encoded downsampled image may be filtered by a filter tool (1313) including one or more filters, such as a deblocking filter and a Constrained Directional Enhancement Filter (CDEF). The filtered downsampled image may be upscaled (or upsampled) by an upscaler (1314) to generate an upscaled (or upsampled) image having a high spatial resolution (e.g., 4K×2K). The upscaled image may be used as a reference image having a high spatial resolution (e.g., 4K×2K), for example, to predict another image. The upscaler (1314) may be a linear upscaler (also called a linear upscaling filter) in a canonical manner. In some examples, a loop restoration tool (1315) is applied to the upscaled image at a high spatial resolution to restore high frequency details lost during downsampling and quantization.

[0120] If a super-resolution coding mode or a frame-based super-resolution coding mode is applied, the filtered downsampled image with low spatial resolution may be transmitted to the decoder in a video bitstream. At the decoder side, a decoding tool (1322) is used to decode the filtered downsampled image received by the decoder. The decoded downsampled image may be further filtered by a filter tool (1323) including one or more filters, such as a deblocking filter and a CDEF. The deblocking filter and the CDEF may be applied to remove coding artifacts while preserving edges at low resolution. Then, for example, an upscaler (132) is applied, for example, only along the horizontal direction to obtain a full spatial resolution reconstruction (e.g., an upscaled reconstructed image) with high spatial resolution. The upscaler (1324) may be a linear upscaling filter in a canonical manner. A loop restoration tool (or loop restoration filter) (1325) is optionally applied to the upscaled reconstructed image at high spatial resolution to restore high frequency details lost during downsampling and quantization.

[0121] The frame-level super-resolution coding mode may be applied in the horizontal direction and / or the vertical direction. In one example, the frame-level super-resolution coding mode is applied in the horizontal direction, where the spatial resolution of the image along the horizontal direction is changed and the spatial resolution along the vertical direction remains the same throughout the coding process, and is therefore referred to as a horizontal-only frame-level super-resolution coding mode.

[0122] In some examples (e.g., AV1), the super-resolution coding mode is a special mode signaled at the frame level (also called picture level). Each coded frame can use a horizontal-only super-resolution coding mode with a selected resolution within a ratio constraint. The signaled information can indicate whether linear upsampling is applied after decoding of the frame and the scaling ratio to be used.

[0123] When the super-resolution coding mode is applied in only one direction (e.g., horizontal or vertical), the scaling ratio can refer to an upsampling ratio or a corresponding downsampling ratio. The upsampling ratio can have nine possible values, given as d / 8. In one example, d is an integer in the range of 8 to 16, so d is 8, 9, ..., or 16. The corresponding downsampling ratio before encoding can be a ratio of 1 to the upsampling ratio (e.g., 8 / d), so it can be in the range of 1 / 2 to 1. Referring to FIG. 13, when the super-resolution coding mode is applied in only the horizontal direction, the downsampling ratio is 1 / 2, and the upsampling ratio is 2, corresponding to d=16.

[0124] Given the output frame dimension W×H (corresponding to the high spatial resolution) and the upsampling ratio d / 8, the encoder and decoder can calculate the low resolution coded frame dimension as w×H, where the reduced (or downsampled) width w is (8w+d / 2) / d. The input to the linear upscaling process performed by the upscaler (e.g., (1314) or (1324)) is a reduced frame of low spatial resolution w×H, and the output from the linear upscaling process performed by the upscaler (e.g., (1314) or (1324)) is a frame with high spatial resolution W×H, specified in the frame head (also called image head). The standard horizontal linear upscaler in AV1 (e.g., (1314) or (1324)) can use a 1 / 16 phase linear 8-tap filter for the interpolation of each row.

[0125] When the super-resolution coding mode is applied in the horizontal and vertical directions, the scaling ratio may include a horizontal scaling ratio and a vertical scaling ratio. The horizontal scaling ratio refers to the horizontal upsampling ratio or the corresponding horizontal downsampling ratio as described above. The vertical scaling ratio refers to the vertical upsampling ratio or the corresponding vertical downsampling ratio, and the above description may also be applied to the vertical scaling ratio.

[0126] Residual values ​​(also referred to as residual data) in the residual block may be transformed (or forward transformed) into transform coefficients in the coefficient block. The transform coefficients in the coefficient block may be transformed (or inverse transformed) into residual values ​​in the residual block. An example of transform coding, e.g., in AV1, may be described below.

[0127] To support extended coding block partitions, multiple transform sizes (ranging from 4-support to 64-support for each dimension) and transform shapes (e.g., square, rectangular shapes with width / height ratios of 2:1, 1:2, 4:1, or 1:4) may be used for the primary transforms, for example in AV1. The 2D transform process may use hybrid transform kernels (e.g., including a different 1D transform for each dimension of the coded residual block). The primary 1D transforms may include a) 4-point, 8-point, 16-point, 32-point, 64-point DCT-2; b) 4-point, 8-point, 16-point asymmetric DSTs (e.g., DST-4, DST-7) and corresponding flipped versions; and c) 4-point, 8-point, 16-point, 32-point identity transforms.

[0128] The availability of hybrid transform kernels can be based on transform block size and prediction mode. For chroma components, the selection of the transform type may be performed in an implicit manner. For intra-frame prediction residuals, the transform type may be selected according to the intra-frame prediction mode. For inter-frame prediction residuals, the transform type may be selected according to the transform type selection of the co-located luma block. Therefore, for chroma components, there is no transform type signaling in the bitstream.

[0129] Residual coding can refer to the coding of transform coefficients. In some examples, for example in AV1, for each transform unit (TU), the coefficient coder starts with coding of a skip symbol, followed by coding of a transform kernel type and coding of the end-of-block (EOB) position of all non-zero coefficients if the transform coding is not skipped. The skip symbol can indicate whether the transform coding is skipped. Then, each coefficient value can be mapped to multiple level maps (e.g., three level planes) and symbol maps (or symbol planes). The symbol plane can cover the symbols of the coefficients, and the three level planes can correspond to different ranges of coefficient magnitudes, including a low level plane, a mid level plane, and a high level plane. The low level plane can correspond to a range of 0 to 2, the mid level plane can correspond to a range of 3 to 14, and the high level plane can cover a range of 15 or more.

[0130] After the EOB position is coded, the low-level plane and the mid-level plane may be coded together in a reverse scan order. The low-level plane may indicate whether the coefficient magnitude is between 0 and 2, and the mid-level plane may indicate whether this range is between 3 and 14. The symbol plane and the high-level plane may then be coded together in a forward scan order, with the high-level plane indicating residual values ​​with a magnitude greater than 14, and the remainder being entropy coded using an Exp-Golomb code. A conventional zigzag scan order may be used, such as in AV1.

[0131] Such a separation (e.g., coefficient values ​​mapped to three level planes and one symbol plane) allows a rich context model to be assigned to the low-level plane, which improves compression efficiency with moderate context model size by considering transform directions such as bidirectional, horizontal and vertical, transform size, and up to five neighboring coefficients. The mid-level plane can use a similar context model as the low-level plane with the number of context neighboring coefficients reduced from five to two. The high-level plane can be coded with Exp-Golomb codes without using a context model. In the symbol plane, the DC symbol is coded using the DC symbols of the neighboring transform units of the TU as context information, and other symbol bits are coded directly without using a context model.

[0132] In some examples (e.g., AV1), the super-resolution coding mode is performed at the frame level and therefore is applied to all regions in the image with a fixed scaling ratio. The signal statistics in different regions in the image can vary significantly, and therefore, in some examples, applying downsampling and / or upsampling to all regions may not be a good rate-distortion tradeoff.

[0133] In some examples (e.g., AV1), the maximum CU size is 128x128 (e.g., 128 samples x 128 samples), but the maximum transform size is only 64x64 (e.g., 64 samples x 64 samples). To benefit from the use of large CUs, a correspondingly large transform kernel (e.g., 128x128) can be used. Alternatively, other methods can be used that can achieve energy compaction similar to that achieved by large transform kernels.

[0134] According to various aspects of the present disclosure, whether a super-resolution coding mode is applied may be adaptively determined for a portion of a frame (or image) at a sub-picture level (or sub-frame level). The portion may include a subset of blocks or a single block in a frame. In one embodiment, the portion of a frame is a block, and whether a super-resolution coding mode is applied may be adaptively determined for the block. The block may refer to a coding block (CB), a coding unit (CU), a prediction block (PB), a transform block (TB), etc. The block may correspond to a luma component, a chroma component, or any other component (e.g., one of an RGB signal) of a multi-channel signal. In one example, the block is a luma block or a chroma block. The block may be intraframe coded or interframe coded. If it is determined that a super-resolution coding mode is applied to the block, the super-resolution coding mode is applied to the block and is referred to as a block-level super-resolution coding mode. In a block-level super-resolution coding mode, whether a super-resolution coding mode is applied to a block in an image may be determined individually for each block. In some examples, a first subset of blocks in the image is coded using a super-resolution coding mode, and a second subset of blocks in the image is coded without using the super-resolution coding mode. The first subset of blocks in the image coded using the super-resolution coding mode can have the same or different scaling ratios. In one example, whether the super-resolution coding mode is applied can be adaptively determined for each block in the image.

[0135] In this disclosure, the term "source block" may refer to a block that is encoded by an encoder and may be an input signal to the encoder. The term "reconstructed block" may refer to a block that is reconstructed by a decoder and may be an output signal from the decoder. The reconstructed block may correspond to a source block, and the reconstructed block and the source block may have high spatial resolution or full spatial resolution.

[0136] If it is determined that a super-resolution coding mode is applied to a block (e.g., a source block) having a high spatial resolution, the downsampling process may be performed at the block level by the encoder. A transform, such as a forward transform or an inverse transform, may be performed at the low spatial resolution. Upsampling may be performed at the block level by the decoder.

[0137] 14 illustrates a process of coding a block using a super-resolution coding mode according to one embodiment of the present disclosure. At the encoder side, a downsampled version of the source signal and the reference signal (also called a prediction signal) can be used to generate a reduced-resolution residual signal (or a downsampled residual signal). The reduced-resolution residual signal can then be transformed and coded.

[0138] When decoding an image at the decoder side, a downsampled prediction signal may be generated first, and the decoded reduced-resolution residual signal may be added to generate a downsampled reconstructed block. Finally, the reduced-resolution reconstructed block may be upsampled to a reconstructed block with the original resolution.

[0139] More specifically, referring to FIG. 14, at the encoder side, a source signal such as a source block (1401) is downsampled by a downsampler (1402), thus generating a downsampled signal (e.g., a downsampled source block (1403)). A reference signal such as a reference block (1405) is downsampled by a downsampler (1406), thus generating a downsampled signal (e.g., a downsampled reference block (1407)). Subsequently, a downsampled residual block (1404) is generated using a residual calculator (1418). The residual calculator (1418) may be configured to calculate a difference (residual data or residual value) between the downsampled source block (1403) and the downsampled reference block (1407). This difference is referred to as a downsampled residual block (1404). The downsampled residual block (1404) may be transformed, quantized, and entropy coded by a tool (1408) to generate a downsampled coefficient block (1409). The downsampled coefficient block (1409) may include transform coefficients in the spatial frequency domain. The downsampled coefficient block (1409) may be transmitted from the encoder to a decoder.

[0140] Referring again to FIG. 14, at the decoder side, a downsampled coefficient block (1409) is received by the decoder. In some examples, the received downsampled coefficient block differs from the downsampled coefficient block (1409) due to transmission loss, distortion, etc. For simplicity, the downsampled coefficient block (1409) is used as an input signal to a tool (1410) at the decoder. Entropy decoding, inverse quantization, and inverse transform (Inv-Transform) may be performed on the downsampled coefficient block (1409) to generate a downsampled residual block (1411). The reference block (1412) may be downsampled by a downsampler (1413) to generate a downsampled reference block (1414). Subsequently, an aggregator (1419) may generate a downsampled reconstructed block (1415) based on the downsampled residual block (1411) and the downsampled reference block (1414). In one example, the downsampled residual block (1411) and the downsampled reference block (1414) are added to generate a downsampled reconstructed block (1415). Finally, the downsampled reconstructed block (1415) may be upsampled by an upsampler (1416) to generate a reconstructed block (1417). The downsampled reconstructed block (1415) and the reconstructed block (1417) may include sample values ​​in the spatial domain, such as luma sample values, chroma sample values, RGB signal sample values, etc.

[0141] Referring to Figure 14, the source block (1401), the corresponding reconstructed block (1417), and the reference blocks (1405) and (1412) have high spatial resolution. The remaining blocks in Figure 14 have low spatial resolution, and therefore, both the encoding process at the encoder side and the decoding process at the decoder side can achieve high coding efficiency by reducing the number of samples to be processed.

[0142] In some examples, the encoding and decoding processes shown in Figure 14 are similar or similar to those not using the super-resolution coding mode, except for the processes performed by the downsamplers (1402), (1406), (1413) and the upsampler (1416). In one example, the downsampler (1406) is the same as the downsampler (1413), the reference block (1405) is the same as the reference block (1412), and thus the downsampled reference block (1407) is the same as the downsampled reference block (1414). The downsampler (1402) may be the same as or different from the downsampler (1406).

[0143] In one embodiment, the set of downsampling filter coefficients used in the downsampler (1413) to downsample the reference block before reduced resolution reconstruction may be signaled directly, or an index indicating the set of downsampling filter coefficients may be signaled. The index may indicate a set of downsampled filter coefficients from a first set of predefined coefficients. An identity-filter (e.g., no filtering) may be included in the first set of predefined coefficients.

[0144] The block-based super-resolution coding mode may be appropriately adapted. According to aspects of the present disclosure, at the encoder side, a reference signal of the original spatial resolution may be subtracted from a source signal of the original spatial resolution to generate a difference signal (or residual signal) of the original spatial resolution. This difference signal may be downsampled to generate a residual signal of a reduced resolution. When decoding a block at the decoder side, the residual signal of the reduced resolution may be upsampled and added to the reference signal of the original resolution to generate a reconstructed block. Figure 15A illustrates a process of coding a block using an alternative embodiment of the block-based super-resolution coding mode according to an embodiment of the present disclosure.

[0145] Referring to FIG. 15A, at the encoder side, a residual block (1504) may be generated using a residual calculator (1503) based on a source signal, such as a source block (1501), and a reference signal, such as a reference block (1502). The residual calculator (1503) may be configured to calculate a difference (residual data or residual values) between the source block (1501) and the reference block (1502). The residual block (1504) may be downsampled by a downsampler (1505) to generate a downsampled residual block (1506). The downsampled residual block (1506) may then be transformed, quantized, and entropy coded by a tool (1507) to generate a downsampled coefficient block (1508). The downsampled coefficient block (1508) may be transmitted from the encoder to a decoder.

[0146] Referring again to FIG. 15A, at the decoder side, a downsampled coefficient block (1508) is received by the decoder. In some examples, the received downsampled coefficient block differs from the downsampled coefficient block (1508) due to transmission loss, distortion, etc. For simplicity, the downsampled coefficient block (1508) is used as an input signal to a tool (1509) at the decoder. Entropy decoding, inverse quantization, and inverse transform (Inv-Transform) may be performed on the downsampled coefficient block (1508) to generate a downsampled residual block (1510). The downsampled residual block (1510) may be upsampled by an upsampler (1511) to generate a residual block (1512). Subsequently, an aggregator (1514) may generate a reconstructed block (1515) based on the residual block (1512) and the reference block (1513). In one example, the residual block (1512) and the reference block (1513) are added together to generate a reconstructed block (1515).

[0147] Referring to Figure 15A, the source block (1501), the corresponding reconstructed block (1515), the reference blocks (1502), (1513), and the residual blocks (1504), (1512) have high spatial resolution. The remaining blocks in Figure 15A have low spatial resolution, so that both the encoding process at the encoder side and the decoding process at the decoder side can achieve high coding efficiency by reducing the number of samples to be processed.

[0148] In some examples, the encoding and decoding processes shown in FIG. 15A are similar or equivalent to those not using the super-resolution coding mode, except for the processes performed by the downsampler (1505) and upsampler (1511).

[0149] The block-based super-resolution coding mode described in FIG. 14 and FIG. 15A may be adapted appropriately. In one embodiment, whether the block-level super-resolution coding mode is applied is determined for a block, such as a TB, on which a transform is performed. Meanwhile, a prediction process, such as inter-frame prediction or intra-frame prediction, is performed for another block (e.g., a CB) having a size different from that of the TB. In one example, one CB includes multiple transform blocks (TBs). Prediction is performed on this CB. The block-level super-resolution coding mode is enabled or disabled for each TB in this CB individually. For example, one CB includes four TBs, and the block-level super-resolution coding mode is enabled for one of the four TBs and disabled for the remaining three of the four TBs.

[0150] FIG. 15B illustrates a process of coding a block using a block-based super-resolution coding mode according to one embodiment of the present disclosure. At the encoder side, a source block (1501B) is a CB (1501B). In the example illustrated in FIG. 15B, the source CB (1501B) includes four source TBs. A residual CB (1504B) may be generated using a residual calculator (1503) based on a source signal, such as the source CB (1501B), and a reference signal, such as the reference CB (1502B). The residual calculator (1503) may be configured to calculate a difference (residual data or residual value) between the source CB (1501B) and the reference CB (1502B).

[0151] Referring to FIG. 15B, the residual CB (1504B) includes residuals TB (e.g., TB1-TB4) corresponding to four source TBs, respectively. The block-level super-resolution coding mode is enabled or disabled for each TB individually. In the example of FIG. 15B, the block-level super-resolution coding mode is enabled for TB1 and disabled for TB2-TB4. Thus, TB1 may be downsampled by the downsampler (1505) to generate a downsampled residual TB (1506B). The downsampled residual TB (1506B) may then be transformed, quantized, and entropy coded by the tool (1507) to generate a downsampled coefficient TB (1508B). The downsampled coefficient TB (1508B) may be transmitted from the encoder to the decoder. The remaining TBs (e.g., TB2 to TB4) in the residual CB (1504B) may be further coded, for example by a tool (1507), to generate coefficients TB (e.g., coefficients TB2 to TB4), which may then be transmitted from the encoder to the decoder.

[0152] Referring again to FIG. 15B, at the decoder side, the downsampled coefficients TB (1508B) are received by the decoder. In some examples, the received downsampled coefficients TB differ from the downsampled coefficients TB (1508B) due to transmission loss, distortion, etc. For simplicity, the downsampled coefficients TB (1508B) are used as an input signal to the tool (1509) at the decoder. Entropy decoding, inverse quantization and inverse transform (Inv-Transform) may be performed on the downsampled coefficients TB (1508B) to generate a downsampled residual TB (1510B). The downsampled residual TB (1510B) may be upsampled by an upsampler (1511) to generate a residual TB1′. Further, the received coefficients TB (eg, coefficients TB2 to TB4) corresponding to TB2 to TB4 may be decoded, for example, by the tool (1509), to generate residuals TB (eg, TB2' to TB4') corresponding to TB2 to TB4, respectively.

[0153] The residual TB1' and the residual TB (e.g., TB2'-TB4') may be combined to form a residual CB (1512B). The aggregator (1514) may then generate a reconstructed CB (1515B) based on the residual CB (1512B) and the reference CB (1513B). In one example, the residual CB (1512B) and the reference CB (1513B) may be added together to generate the reconstructed CB (1515B).

[0154] Referring to FIG. 15B, the source CB (1501B), the corresponding reconstructed CB (1515B), the reference CB (1502B), (1513B), and the residual CB (1504B), (1512B) have high spatial resolution. Also, TB1-TB4, the coefficients TB2-TB4, and TB1'-TB4' have high spatial resolution. The downsampled residual TB (1506B), the downsampled coefficients TB (1508B), and the downsampled residual TB (1510B) have low spatial resolution.

[0155] In some examples, the encoding and decoding processes shown in FIG. 15B are similar or equivalent to those not using the super-resolution coding mode, except for the processes performed by the downsampler (1505) and upsampler (1511).

[0156] According to aspects of the present disclosure, a block-based super-resolution coding mode, e.g., as described with reference to FIG. 14 and FIG. 15A, may be applied to a source block having an original spatial resolution of M×N (also referred to as an M×N block) and having a size of (M / D X )×(N / D Y ) (e.g., downsampled coefficient block (1409) or (1508)) may be coded. X and D. Y refers to the downsampling factor along the horizontal and vertical directions, respectively. In one example, the parameter D X and parameter D Y correspond to the horizontal and vertical upsampling ratios, respectively. Exemplary values ​​of M and N can include, but are not limited to, 256, 128, 64, 32, 16, and 8, and the parameter D X Or D Y may be a positive integer, including but not limited to 2, 4, 8, etc.

[0157] In one example, for example, in AV1 and H.266 / VVC, the CU size may be 128x128, and a large transform kernel of the same size as the CU (e.g., 128x128) is avoided. Instead, a 64x64 transform is applied to each of the four quadrants of the 128x128 CU, which is one of the four evenly divided regions within the 128x128 CU. According to aspects of the present disclosure, a block-level super-resolution coding mode may be applied to code a 128x128 CU as follows, as shown in Figure 16.

[0158] Figure 16 shows an example of a block-level super-resolution coding mode according to one embodiment of the present disclosure. Referring to Figure 16, the source block (1401), the reference blocks (1405), (1413), and the reconstructed block (1417) correspond to a CU (or CB) with a size of 128x128. Therefore, the original spatial resolution is 128x128. The downsampling factor D of the downsamplers (1402) and (1406) is X and D. Y is 2. Thus, the low spatial resolution is 64x64. Thus, the downsampled source block (1403), the downsampled reference block (1407), the downsampled residual block (1404), the downsampled coefficient block (1409), the downsampled residual block (1411), the downsampled reconstructed block (1415), and the downsampled reference block (1414) have a size of 64x64. The detailed description of FIG. 16 is similar or similar to that of FIG. 14, except for the processes associated with blocks (1600) and (1610), and thus the differences between FIG. 14 and FIG. 16 (associated with blocks (1600) and (1610)) are explained below.

[0159] Block (1600) is a residual block (1600) corresponding to a CU having a size of 128×128, and has a size of 128×128. Specifically, one of the four quadrants (1601)-(1604) of the residual block (1600) is replaced with a downsampled 64×64 version (e.g., the downsampled residual block (1404)), and the remaining three quadrants (1602)-(1604) may be zeroed. For example, the remaining three quadrants (1602)-(1604) are transform-skipped. Thus, only one 64×64 transform (as opposed to four 64×64 transforms) is applied to the 128×128 CU, and at the same time, energy compaction is facilitated by the downsampling and upsampling processes in FIG. 16. In some examples (e.g., AV1), transform subdivision is allowed within a CU and the remaining three 64×64 quadrants (1602)-(1604) have no residual, so a transform skip may be selected for the remaining three 64×64 quadrants (1602)-(1604). With reference to FIG. 16, the three 64×64 quadrants (1602)-(1604) are zero blocks, where the residual values ​​are zero. The transform skip does not need to be signaled because it could have been estimated if the CU was coded using a block-level super-resolution coding mode.

[0160] On the decoder side, the block (1610) includes a quadrant (1611), which is the downsampled reconstructed block (1415), and three quadrants (1612)-(1614). Each of the three quadrants (1612)-(1614) is a zero block, where the residual value is zero. Quadrant (1611) is then upsampled to obtain the reconstructed block (1417).

[0161] Alternatively, a downsampled 64x64 version of a 128x128 residual block corresponding to a 128x128 CU may be encoded and / or decoded. An upsampled version of the downsampled reconstructed block may be used at a decoder to fill a 128x128 reconstructed block corresponding to a 128x128 CU without using a process involving quadrant or transform skipping if the CU was coded using the method in Figure 16.

[0162] In some examples, as shown in the tool (1408), when a 64x64 transform is applied to a downsampled residual block, zeroing of high-frequency transform coefficients (e.g., as normatively specified in AV1) may be disabled to avoid discarding too much information.

[0163] The block-level super-resolution coding mode in FIG. 15A may be adapted similarly as shown in FIG. 17. The detailed description of FIG. 17 is similar or equivalent to that of FIG. 15A, except for the process associated with blocks (1600) and (1610), and thus the differences (associated with blocks (1600) and (1610)) between FIG. 15A and FIG. 17 are described below. Furthermore, the detailed description of blocks (1600) and (1610) is similar or equivalent to that of FIG. 16, and is omitted for brevity. Specifically, one of the four quadrants (1601)-(1604) of the residual block (1600) (e.g., (1601)) (e.g., downsampled residual block (1506)) may be replaced with a downsampled 64×64 version, and the remaining three quadrants (1602)-(1604) may be zeroed in the same manner as described in FIG. 16.

[0164] On the decoder side, the block (1610) is a residual block (1610) that includes quadrant (1611), which is the downsampled residual block (1510), and three quadrants (1612)-(1614). Each of the three quadrants (1612)-(1614) is a zero block, where the residual value is zero. The quadrant (1611) is then upsampled to obtain the residual block (1512).

[0165] According to aspects of the disclosure, an upsampler (e.g., upsampler (1416) in FIGS. 14 and 16 for upsampling a reduced-resolution reconstructed block, or upsampler (1511) in FIGS. 15A, 15B, and 17 for upsampling a reduced-resolution residual block) may be an upsampling filter indicated by a set of upsampling filter coefficients. The set of upsampling filter coefficients may be signaled directly, or an index indicating the set of upsampling filter coefficients may be signaled. The index may indicate a set of upsampling filter coefficients from a predefined set of coefficients, including, for example, an identity filter (e.g., no filtering).

[0166] According to aspects of the present disclosure, whether a block-level super-resolution coding mode (e.g., such as those described with reference to FIG. 14, FIG. 15A, FIG. 15B, FIG. 16, FIG. 17, etc.) is applied may depend on the CU size. The CU size may refer to any size information such as CU width, CU height, CU area (e.g., CU width x CU height, etc.). The decision regarding which CU size the block-level super-resolution coding mode applies to may be signaled. For example, in a high level syntax (e.g., a level above the CU level, such as a sub-picture level, a picture header, a picture parameter set, a sequence parameter set, etc.), the CU size to which the block-level super-resolution coding mode applies may be signaled.

[0167] According to aspects of the present disclosure, a block-level super-resolution coding mode (e.g., such as those described with reference to FIG. 14, FIG. 15A, FIG. 15B, FIG. 16, FIG. 17, etc.) may be adaptively enabled or disabled at any appropriate level for one or more blocks within the level. The level may correspond to a sub-image region, a block, an image, or multiple images that include multiple blocks. According to aspects of the present disclosure, a block-level super-resolution coding mode may be enabled or disabled per CU at a CU level, per superblock at a superblock level, per PB at a PB level, per TB at a TB level, per tile at a tile level, per coded segment at a segment level, per frame (or image) at a frame (or image) level, per sequence at a sequence level, etc. Whether a block-level super-resolution coding mode is enabled or disabled for one or more blocks within the level may be signaled or inferred.

[0168] In one example, the level is a tile level, and the tile includes multiple CBs. One or more blocks are multiple CBs. Whether a block-level super-resolution coding mode is enabled for multiple CBs may be signaled for the tile. If it is determined that a block-level super-resolution coding mode is enabled for multiple CBs, each CB in the tie may be coded and / or decoded in a super-resolution coding mode, as shown in Figures 14, 15A, 16, and 17.

[0169] In one example, one CB includes multiple TBs, and the level is a TB level. One or more blocks may be TBs. Whether the block-level super-resolution coding mode is enabled for a TB may be signaled at the TB level. Thus, the block-level super-resolution coding mode is enabled or disabled individually for each TB in the CB, as shown in FIG. 15B.

[0170] According to aspects of the present disclosure, when a block-level super-resolution coding mode (e.g., such as those described with reference to FIG. 14, FIG. 15A, FIG. 16, FIG. 17) is enabled, (i) the type of downsampler and / or upsampler and / or (ii) the scaling ratio used in the block-level super-resolution coding mode may be determined based on a feature of a portion of the image, such as a CU, a tile, or a coded segment. The downsampler and the upsampler are also referred to as downsampling filters and upsampling filters, respectively. The feature may be indicated by a feature indicator, such as, for example, a directionality or a signal statistic (e.g., signal variance) of the CU, tile, or coded segment. The feature indicator may be signaled or derived at the encoder and decoder. In one example, different downsampling filters, upsampling filters, and / or scaling ratios may be used based on the feature indicator.

[0171] In one example, for each CU of size N×N (e.g., N samples×N samples, where N is a positive integer) with top-left sample position r, horizontal and vertical 1-D Laplacian activities (H NXN and V NXN , may be computed using prediction samples at the encoder and decoder using only the (N-2)×(N-2) interior samples, as shown below:

[0172]

number

number

[0173] Here, hor(r,i,j) and ver(r,i,j) are defined as follows:

[0174]

number

number

[0175] Here, I(x,y) represents the pixel intensity value (also called the sample value) at the sample location (x,y).

[0176] 2D Laplacian activity is V NXN and H NXN to obtain a sum value and quantizing the sum value into multiple activity level classes (e.g., 0, 1, 2, 3, 4, 5). The multiple activity level classes indicating 2D Laplacian activity may be used as feature indicators by the encoder and / or decoder.

[0177] In one example, the direction associated with the super-resolution coding mode (called a direction indicator) may be determined as follows: H NXN >2V NXN , the directional indicator indicates a first direction (e.g., horizontal), and thus the down / up sampling filter and / or sampling ratio are adjusted to correspond to the first direction (e.g., H NXN is 2V NXN may be selected based on the V NXN >2H NXN , the directional indicator indicates a second direction (e.g., vertical), and thus the down / up sampling filter and / or sampling ratio are adjusted to correspond to the second direction (e.g., V NXN 2H NXN Alternatively, for example, H NXN is 2V NXN Below, and V NXN 2H NXNIf it is less than or equal to, the directionality indicator indicates a third directionality (e.g., no directionality), and thus the down / upsampling filter and / or upsampling ratio may be selected accordingly. In one example, if the directionality indicator indicates a third directionality, upsampling / downsampling is performed in both the horizontal and vertical directions. The above-mentioned directionality may be used as a feature indicator by the encoder and / or decoder.

[0178] FIG. 18 shows a flow chart outlining a process (1800) according to an embodiment of the present disclosure. The process (1800) may be used in the reconstruction of blocks such as CB, CU, PB, TB, TU, luma blocks (e.g., luma CB or luma TB), chroma blocks (e.g., chroma CB or chroma TB), etc. In various embodiments, the process (1800) is performed by a processing circuit in a terminal device (310), (330), (340), a processing circuit performing the function of a video encoder (403), a processing circuit performing the function of a video decoder (410), a processing circuit performing the function of a video decoder (510), a processing circuit performing the function of a video encoder (603), etc. In some embodiments, the process (1800) is implemented in software instructions, and thus the processing circuit performs the process (1800) when the processing circuit executes the software instructions. The process starts at (S1801) and proceeds to (S1810).

[0179] At (S1810), coded information for one or more blocks may be decoded from the coded video bitstream. The coded information may indicate whether a super-resolution coding mode (or a block-based super-resolution coding mode) is applied to one or more blocks. In some examples, the super-resolution coding mode is applied in response to one or more blocks being downsampled by the encoder from a high spatial resolution to a low spatial resolution. In one example, a flag is signaled in the coded information to indicate whether a super-resolution coding mode is applied to one or more blocks. Alternatively, whether a super-resolution coding mode is applied to one or more blocks may be inferred from the coded information.

[0180] In one embodiment, the one or more blocks are coding blocks (CB), coding units (CU), predictive blocks (PB, or transform blocks (TB). The coded information may indicate whether a super-resolution coding mode is applied to each of the one or more blocks.

[0181] In one embodiment, the coded information may indicate whether a super-resolution coding mode applies to a CU, CB, superblock, PB, TB, tile, coded segment, frame, or a sequence that includes one or more blocks.

[0182] At (S1820), based on the coded information indicating that the super-resolution coding mode has been applied to the one or more blocks, a reconstructed block may be generated based on a first block in the one or more blocks using the super-resolution coding mode. In some examples, the reconstructed block may be generated using the super-resolution coding mode by upsampling information of a first block in the one or more blocks. The information of the first block may include a downsampled residual block associated with the first block, or a downsampled reconstructed block associated with the first block. The first block may have a low spatial resolution, and the reconstructed block may have a high spatial resolution that is higher than the low spatial resolution. The one or more blocks may include transform coefficients in a spatial frequency domain (also referred to as a frequency domain), and the reconstructed block includes sample values ​​in the spatial domain, such as luma sample values ​​and / or chroma sample values. In one example, each reconstructed block is generated using a block-level super-resolution coding mode based on each of the one or more blocks.

[0183] In one embodiment, the first block is inversely transformed into a downsampled residual block having a lower spatial resolution, for example by tool (1410) in Figures 14 and 16 and tool (1509) in Figures 15A, 15B, and 17. With reference to Figures 14, 15A, 15B, 16, and 17, the first block may refer to the downsampled coefficient block (1409), (1508), or (1508B), and the downsampled residual block may refer to the downsampled residual block (1411), (1510), or (1510B).

[0184] After the first block is back transformed into a downsampled residual block, different methods may be used to obtain a reconstructed block.

[0185] In one example, the downsampled reference block is obtained by downsampling the reference block for the first block. The reference block and the downsampled reference block may have high and low spatial resolutions, respectively. Referring to FIG. 14 or FIG. 16, the downsampled reference block (1414) is obtained by downsampling the reference block (1412) for the first block. A downsampled reconstructed block (e.g., (1415)) may be generated based on the downsampled residual block (e.g., (1411)) and the downsampled reference block (e.g., (1414)), where the downsampled reconstructed block has low spatial resolution. Furthermore, a reconstructed block (e.g., (1417)) may be generated by upsampling the downsampled reconstructed block (e.g., (1415)).

[0186] In another example, as shown in FIG. 15A or FIG. 17, a residual block (e.g., (1512)) is obtained by upsampling a downsampled residual block (e.g., (1510)), where the residual block has a high spatial resolution. Then, a reconstructed block (e.g., (1515)) may be generated based on the obtained residual block (e.g., (1512)) and a reference block (e.g., (1513)) for the first block.

[0187] The process (1800) proceeds to (S1899) and ends.

[0188] The process (1800) may be adapted as appropriate. Steps in the process (1800) may be modified and / or omitted. Additional steps may be added. Any suitable order of implementation may be used. In one example, the one or more blocks are a subset of blocks in the current image to be reconstructed, and the super-resolution coding mode is not applied to blocks in the current image that are different from the one or more blocks.

[0189] In one example, a tile in a current image includes multiple CBs. One or more blocks are multiple CBs. In (S1810), the coded information indicates at the tile level that a super-resolution coding mode (block-level super-resolution coding mode) is applied to the tile. Thus, the coded information indicates at the tile level that the super-resolution coding mode is applied to multiple CBs in the tile. In (S1820), the super-resolution coding mode is used to generate a reconstructed block (e.g., a reconstructed CB) based on a first block in the multiple CBs, such as the blocks described with reference to Figures 14, 15A, 16, and 17. The first block is one CB of the multiple CBs and has low spatial resolution. The reconstructed block has high spatial resolution. Step (S1820) may be applied to each of the multiple CBs in the tile to reconstruct an individual reconstructed block.

[0190] FIG. 19 shows a flow chart outlining a process (1900) according to one embodiment of the present disclosure. The process (1900) may be used to encode blocks such as CB, CU, PB, TB, TU, luma blocks (e.g., luma CB or luma TB), chroma blocks (e.g., chroma CB or chroma TB), etc. In various embodiments, the process (1900) is performed by a processing circuit in a terminal device (310), (320), (330), (340), a processing circuit performing the functions of a video encoder (403), a processing circuit performing the functions of a video encoder (603), etc. In some embodiments, the process (1900) is implemented in software instructions, and thus the processing circuit performs the process (1900) when the processing circuit executes the software instructions. The process starts at (S1901) and proceeds to (S1910).

[0191] At (S1910), it may be determined whether a super-resolution coding mode is applied to a first block in a video. The first block may include sample values ​​in the spatial domain, such as luma sample values ​​and / or chroma sample values, and may have high spatial resolution.

[0192] In one embodiment, the first block is CB, CU, PB, or TB.

[0193] At (S1920), based on determining that the super-resolution coding mode is applied to the first block, a downsampled coefficient block may be generated based on the first block using the super-resolution coding mode. The downsampled coefficient block may include transform coefficients and may have a low spatial resolution that is lower than the high spatial resolution.

[0194] In one embodiment, a downsampled residual block may be generated based on a first block and a reference block for the first block having a high spatial resolution. The downsampled residual block includes residual values ​​and may have a low spatial resolution. The downsampled residual block is transformed to obtain a downsampled coefficient block.

[0195] Different methods can be used to generate a downsampled residual block. As an example, as shown in Figure 14 and Figure 16, a first block is downsampled to obtain a downsampled block having a low spatial resolution. A reference block is downsampled to obtain a downsampled reference block having a low spatial resolution. Then, a downsampled residual block can be generated based on the downsampled block and the downsampled reference block.

[0196] In another example, the residual block may be generated based on the first block and the reference block. The residual block may have a high spatial resolution. The residual block is downsampled to obtain a downsampled residual block.

[0197] At (S1930), information for the first block may be encoded in the video bitstream. The encoded information may indicate whether a super-resolution coding mode is applied to the first block. Based on determining that the super-resolution coding mode is applied to the first block, the encoded information may indicate that the super-resolution coding mode is applied to the first block. In one example, a flag is signaled in the encoded information to indicate whether the super-resolution coding mode is applied to the first block. Alternatively, whether the super-resolution coding mode is applied to the first block may be inferred from the encoded information.

[0198] In one embodiment, the encoded information indicates whether the super-resolution coding mode applies to a sequence including a CU, CB, superblock, PB, TB, tile, coded segment, frame, or first block. Based on determining that the super-resolution coding mode applies to the first block, the encoded information may indicate that the super-resolution coding mode applies to a sequence including a CU, CB, superblock, PB, TB, tile, coded segment, frame, or first block.

[0199] The process (1900) proceeds to (S1999) and ends.

[0200] The process (1900) may be adapted as appropriate. Steps in the process (1900) may be modified and / or omitted. Additional steps may be added. Any suitable order of implementation may be used. In one example, it is determined that a super-resolution coding mode is not applied to the first block. Thus, in (S1920), a coefficient block having high spatial resolution is generated based on the first block without the super-resolution coding mode. In (S1930), the coded information indicates that a super-resolution coding mode is not applied to the first block.

[0201] The embodiments of the present disclosure may be used alone or in combination in any order. Furthermore, each of the methods (or embodiments), the encoder, and the decoder may be implemented by a processing circuit (e.g., one or more processors or one or more integrated circuits). In one example, the one or more processors execute a program stored in a non-transitory computer-readable medium. The embodiments in the present disclosure may be applied to a luma block or a chroma block.

[0202] The techniques described above may be implemented as computer software using computer-readable instructions and may be physically stored on one or more computer-readable media. For example, Figure 20 illustrates a computer system (2000) suitable for implementing certain embodiments of the disclosed subject matter.

[0203] Computer software may be coded using any suitable machine code or computer language and may undergo assembly, compilation, linking, or similar mechanisms to create code containing instructions, which may be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., or may be executed by code interpretation, microcode execution, etc.

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

[0205] The components of the computer system (2000) illustrated in Figure 20 are exemplary in nature and are not intended to suggest any limitations as to the scope of use or functionality of the computer software implementing the embodiments of the present disclosure. The arrangement of components should not be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary embodiment of the computer system (2000).

[0206] The computer system (2000) can include several human interface input devices. Such human interface input devices can respond to input by one or more users through tactile input (e.g., keystrokes, swipes, data glove movements, etc.), audio input (e.g., voice, clapping, etc.), visual input (e.g., gestures, etc.), and olfactory input (not shown). Human interface devices can also be used to capture certain media that are not necessarily directly associated with conscious human input, such as audio (e.g., voice, music, ambient sounds, etc.), images (e.g., scanned images, photographic images obtained from a still image camera, etc.), and video (e.g., two-dimensional video, three-dimensional video including stereoscopic vision, etc.).

[0207] The human interface input devices may include one or more of a keyboard (2001), a mouse (2002), a trackpad (2003), a touch screen (2010), a data glove (not shown), a joystick (2005), a microphone (2006), a scanner (2007) and a camera (2008) (only one of each shown).

[0208] The computer system (2000) may also include a number of human interface output devices that may stimulate one or more of the user's senses, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may be haptic output devices (e.g., haptic feedback via a touch screen (2010), data gloves (not shown) or joystick (2005), but may also be haptic feedback devices that do not act as input devices), audio output devices (e.g., speakers (2009), headphones (not shown)), visual output devices (e.g., screens (2010), including CRT screens, LCD screens, plasma screens, OLED screens, each of which may or may not have touch screen input capability, each of which may or may not have haptic feedback capability, some of which may output two dimensional visual output or three or more dimensional visual output, such as, for example, via stereographic output, virtual reality glasses (not shown), holographic displays and smoke tanks (not shown), and printers (not shown).

[0209] The computer system (2000) may include human accessible storage devices and their associated media, such as optical media or similar media (2021), including CD / DVD ROM / RW (2020) with CDs / DVDs, thumb drives (2022), removable hard drives or solid state drives (2023), legacy magnetic media such as tapes and floppy disks (not shown), specialized ROM / ASIC / PLD based devices such as security dongles (not shown), and the like.

[0210] Those skilled in the art should also understand that the term "computer-readable medium" as used in connection with the subject matter disclosed herein does not encompass transmission media, carrier waves, or other transitory signals.

[0211] The computer system (2000) may also include a network interface (2054) to one or more communication networks (2055). The communication network may be, for example, wireless, wired, optical. The network may further be a local network, a wide area network, a metropolitan area network, a vehicular network, an industrial network, a real-time network, a delay-tolerant network, and the like. Examples of networks include LANs such as Ethernet, wireless LANs, cellular networks (GSM, 3G, 4G, 5G, LTE, and the like), television cable or wireless wide area digital networks (including cable television, satellite television, terrestrial broadcast television), vehicular and industrial networks (including CAN Bus), and the like. Some networks generally require an external network interface adapter connected to some general-purpose data port or peripheral bus (2049) (e.g., a USB port of the computer system (2000)), while other systems are typically integrated into the core of the computer system (2000) 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 (2000) can communicate with other entities. Such communication may be one-way receive only (e.g., broadcast TV), one-way transmit only (e.g., from the Canbus to a specific Canbus device), or two-way, e.g., to other computer systems using local or wide area digital networks. As mentioned above, specific protocols and protocol stacks may be used with each of these networks and network interfaces.

[0212] The above human machine interface devices, human accessible storage devices, and network interfaces can be connected to a core (2040) of the computer system (2000).

[0213] The cores (2040) may include one or more central processing units (CPUs) (2041), graphics processing units (GPUs) (2042), dedicated programmable processing units in the form of field programmable gate arrays (FPGAs) (2043), hardware accelerators for specific tasks (2044), graphics adapters (2050), etc. These devices may be connected via a system bus (2048), along with read-only memory (ROM) (2045), random access memory (2046), internal mass storage (2047), such as an internal non-user-accessible hard disk drive, SSD, etc. In some computer systems, the system bus (2048) may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (2048) or may be connected via a peripheral bus (2049). In one example, a screen (2010) may be connected to the graphics adapter (2050). Peripheral bus architectures include peripheral component interconnect (PCI), universal serial bus (USB), and the like.

[0214] The CPU (2041), GPU (2042), FPGA (2043), and accelerator (2044) can execute several instructions, which can be combined to constitute the above-mentioned computer code. The computer code can be stored in a ROM (2045) or a RAM (2046). Also, temporary data can be stored in the RAM (2046), while permanent data can be stored, for example, in an internal mass storage (2047). The use of a cache memory, which can be closely associated with one or more CPUs (2041), GPUs (2042), mass storage (2047), ROM (2045), RAM (2046), etc., allows for fast storage and retrieval from any memory device.

[0215] The computer-readable medium can 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 any medium and code known and available to those skilled in the computer software arts.

[0216] By way of example and not limitation, the architecture (2000), and in particular the computer system having the core (2040), may provide functionality as a processor (including CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible, computer-readable media. Such computer-readable media may be media related to the user-accessible mass storage described above, and may be specific storage with the core (2040), such as the core internal mass storage (2047) or ROM (2045), which is non-volatile. Software implementing various embodiments of the present disclosure may be stored in such devices and executed by the core (2040). The computer-readable media may include one or more memory devices or chips, depending on the particular needs. This software may cause the core (2040), and in particular the processor therein (including CPU, GPU, FPGA, etc.) to perform certain processes or certain parts of certain processes described herein, including defining data structures stored in RAM (2046) and modifying such data structures according to the software-defined processes. Additionally or alternatively, a computer system may provide functionality because of logic hardwired or otherwise incorporated into circuitry (e.g., accelerator (2044)) that may operate in place of or in conjunction with software to perform particular processes or portions of particular processes described herein. Where appropriate, references to software may include logic, and vice versa. Where appropriate, references to computer-readable media may include circuitry (such as integrated circuits (ICs)) that store software to be executed, circuitry embodying logic to be executed, or both. The present disclosure encompasses any appropriate combination of hardware and software.

[0217] While this disclosure has described several exemplary embodiments, there are modifications, arrangements, and various equivalent substitutions which are within the scope of the disclosure. It should thus be understood that those skilled in the art will be able to design various systems and methods which, although not explicitly shown or described herein, embody the principles of the disclosure and are therefore within the spirit and scope of the disclosure.

[0218] Appendix A: Abbreviations JEM: joint exploration model VVC: versatile video coding BMS:benchmark set MV: Motion Vector HEVC: High Efficiency Video Coding SEI: Supplementary Enhancement Information VUI: Visual 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, long-term evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect, external controller interface FPGA: Field Programmable Gate Areas SSD: solid-state drive IC: Integrated Circuit CU: Coding Unit

Claims

1. 1. A method of decoding video in a decoder, comprising: decoding coded information for one or more blocks from a coded video bitstream, the coded information indicating whether a super-resolution coding mode is applied to the one or more blocks, the super-resolution coding mode being applied in response to the one or more blocks being downsampled by an encoder from a higher spatial resolution to a lower spatial resolution; generating a reconstructed block by upsampling information of a first block in the one or more blocks using the super-resolution coding mode based on the coded information indicating that the super-resolution coding mode has been applied to the one or more blocks, the first block having the low spatial resolution, the reconstructed block having a high spatial resolution that is higher than the low spatial resolution, the one or more blocks including transform coefficients, and the reconstructed block including sample values ​​in a spatial domain; If the one or more blocks are coding blocks (CBs), signaling a transform skip, the transform skip being a signaling indicating whether super-resolution coding is skipped when the super-resolution coding mode is applied to all of a plurality of transform blocks (TBs) included in the CB; skipping the transform skip signaling when the super-resolution coding mode is applied to one or more TBs of the plurality of TBs and the one or more remaining TBs, and the super-resolution coding mode is disabled for the remaining TBs; Includes A method comprising:

2. the one or more blocks are coding blocks (CBs), coding units (CUs), predictive blocks (PBs), or transform blocks (TBs); the coded information indicating whether the super-resolution coding mode is to be applied to each of the one or more blocks.

2. The method of claim 1 .

3. The coded information indicates whether the super-resolution coding mode applies to a coding unit (CU), a coding block (CB), a superblock, a predictive block (PB), a transform block (TB), a tile, a coded segment, a frame, or a sequence that includes the one or more blocks.

2. The method of claim 1 .

4. The method further comprises: inverse transforming the first block into a downsampled residual block having the lower spatial resolution; 2. The method of claim 1 .

5. The method further comprises: obtaining a downsampled reference block by downsampling a reference block for the first block, the reference block and the downsampled reference block having the high spatial resolution and the low spatial resolution, respectively; generating a downsampled reconstructed block based on the downsampled residual block and the downsampled reference block, the downsampled reconstructed block having the low spatial resolution; generating the reconstructed block includes upsampling the downsampled reconstructed block.

5. The method of claim 4.

6. The generating step further comprises: obtaining a residual block by upsampling the downsampled residual block, the residual block having the high spatial resolution; generating the reconstructed block based on the obtained residual block and a reference block for the first block, the reference block having the high spatial resolution; 5. The method of claim 4.

7. the one or more blocks are a subset of blocks in a current image to be reconstructed, and the super-resolution coding mode is not applied to blocks in the current image that are different from the one or more blocks.

2. The method of claim 1 .

8. 1. A method of encoding a video in an encoder, comprising: determining whether a super-resolution coding mode is to be applied to a first block included in one or more blocks in a video, the first block including sample values ​​in the spatial domain and having a high spatial resolution; Based on determining that the super-resolution coding mode is to be applied to the first block, generating a downsampled coefficient block based on the first block using the super-resolution coding mode, the downsampled coefficient block including transform coefficients and having a lower spatial resolution that is lower than the high spatial resolution; encoding information for the first block in a video bitstream, the encoded information indicating that the super-resolution coding mode was applied to the first block; If the one or more blocks are coding blocks (CBs), signaling a transform skip, the transform skip being a signaling indicating whether super-resolution coding is skipped when the super-resolution coding mode is applied to all of a plurality of transform blocks (TBs) included in the CB; skipping the transform skip signaling when the super-resolution coding mode is applied to one or more TBs of the plurality of TBs and the one or more remaining TBs, and the super-resolution coding mode is disabled for the remaining TBs; The method according to claim 1, further comprising:

9. The first block is a coding block (CB), a coding unit (CU), a predictive block (PB), or a transform block (TB).

9. The method of claim 8.

10. The encoded information indicates that the super-resolution coding mode is applied to a coding unit (CU), a coding block (CB), a superblock, a predictive block (PB), a transform block (TB), a tile, a coded segment, a frame, or a sequence that includes the first block.

9. The method of claim 8.

11. The generating step further comprises: generating a downsampled residual block based on the first block and a reference block for the first block, the reference block having the high spatial resolution, and the downsampled residual block including residual values ​​and having the low spatial resolution; transforming the downsampled residual block to obtain the downsampled coefficient block.

9. The method of claim 8.

12. The step of generating the downsampled residual block comprises: downsampling the first block to obtain a downsampled block having the lower spatial resolution; downsampling the reference block to obtain a downsampled reference block having the lower spatial resolution; generating the downsampled residual block based on the downsampled block and the downsampled reference block.

12. The method of claim 11 .

13. The step of generating the downsampled residual block comprises: generating a residual block based on the first block and the reference block, the residual block having the high spatial resolution; and downsampling the residual block to obtain the downsampled residual block.

12. The method of claim 11 .

14. 1. A video decoding device including a processing circuit, comprising: The processing circuitry includes: decoding coded information for one or more blocks from a coded video bitstream, the coded information indicating whether a super-resolution coding mode is applied to the one or more blocks, the super-resolution coding mode being applied in response to the one or more blocks being downsampled by an encoder from a higher spatial resolution to a lower spatial resolution; generating a reconstructed block by upsampling information of a first block in the one or more blocks using the super-resolution coding mode based on the coded information indicating that the super-resolution coding mode has been applied to the one or more blocks, the first block having the low spatial resolution, the reconstructed block having a high spatial resolution higher than the low spatial resolution, the one or more blocks including transform coefficients, and the reconstructed block including sample values ​​in a spatial domain; If the one or more blocks are coding blocks (CBs), signaling a transform skip, the transform skip being signaling indicating whether super-resolution coding is skipped when the super-resolution coding mode is applied to all of a plurality of transform blocks (TBs) included in the CB; skipping the transform skip signaling when the super-resolution coding mode is applied to one or more TBs of the plurality of TBs and the one or more TBs among the remaining TBs, and the super-resolution coding mode is disabled for the remaining TBs. Steps to execute 23. A video decoding apparatus comprising:

15. the one or more blocks are coding blocks (CBs), coding units (CUs), predictive blocks (PBs), or transform blocks (TBs); the coded information indicating whether the super-resolution coding mode is to be applied to each of the one or more blocks.

15. The apparatus of claim 14.

16. The coded information indicates whether the super-resolution coding mode applies to a coding unit (CU), a coding block (CB), a superblock, a predictive block (PB), a transform block (TB), a tile, a coded segment, a frame, or a sequence that includes the one or more blocks.

15. The apparatus of claim 14.

17. The processing circuitry includes: inverse transforming the first block into a downsampled residual block having the lower spatial resolution.

15. The apparatus of claim 14.

18. The processing circuitry includes: obtaining a downsampled reference block by downsampling a reference block for the first block, the reference block and the downsampled reference block having the high spatial resolution and the low spatial resolution, respectively; generating a downsampled reconstructed block based on the downsampled residual block and the downsampled reference block, the downsampled reconstructed block having the low spatial resolution; and upsampling the downsampled reconstructed block to generate the reconstructed block.

20. The apparatus of claim 17 .

19. The processing circuitry includes: obtaining a residual block by upsampling the downsampled residual block, the residual block having the high spatial resolution; generating the reconstructed block based on the obtained residual block and a reference block for the first block, the reference block having the high spatial resolution.

20. The apparatus of claim 17 .

20. the one or more blocks are a subset of blocks in a current image to be reconstructed, and the super-resolution coding mode is not applied to blocks in the current image that are different from the one or more blocks.

15. The apparatus of claim 14.