Method, device and medium for video coding and decoding

By constructing an intra-frame mode list for a block and dividing it into multiple intra-frame mode sets, extracting the index to determine the intra-frame prediction mode, the problem of low efficiency of intra-frame mode coding is solved and more efficient video coding is achieved.

CN120602658APending Publication Date: 2025-09-05TENCENT AMERICA LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202511043769.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2022-01-12
Filing Date
2022-01-27
Publication Date
2025-09-05

AI Technical Summary

Technical Problem

In existing video coding technologies, the hardware implementation of intra-mode coding, especially the construction process of intra-mode lists for small blocks, is very challenging, resulting in low coding efficiency.

Method used

By constructing an intra-frame mode list for a block, dividing it into multiple intra-frame mode sets, and extracting the set index and mode index to determine the intra-frame prediction mode, the signaling bit number of the intra-frame prediction mode is optimized and the coding efficiency is improved.

Benefits of technology

The number of bits of intra-frame mode signaling is reduced, and the coding efficiency of video coding is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120602658A_ABST
    Figure CN120602658A_ABST
Patent Text Reader

Abstract

The invention discloses a video encoding and decoding method. The decoding method includes: receiving an encoded video bitstream; constructing an intra mode list for a block in the encoded video bitstream according to a predefined rule, where the predefined rule is based on the size of the block; dividing the intra mode list into a plurality of intra mode sets of blocks; extracting, from the encoded video bitstream, a set index indicating one or more intra mode sets of the plurality of intra mode sets; extracting, from the encoded video bitstream, a mode index indicating one intra prediction mode of the set of intra modes; determining an intra prediction mode of the block based on the set index and the mode index; and decoding the encoded video bitstream based on the intra prediction mode; wherein the predefined rule comprises: when the size of the block is equal to or greater than a first threshold value, the intra mode list comprises a first sub-list located at the top of the list, and the first sub-list comprises all non-directional intra prediction modes.
Need to check novelty before this filing date? Find Prior Art

Description

Related applications This application is a divisional application. The application number of the original application is 202280006825.7, and the original application date is January 27, 2022. The entire content of the original application is incorporated into this application by reference. Technical Field The present disclosure relates to video encoding and / or decoding techniques, and in particular, to methods, devices, and non-transitory computer-readable storage media for video decoding. Background Art This background description is provided herein for the purpose of generally presenting the context of the present disclosure. To the extent the work described in this background section is prior art to the present disclosure, neither the work of the presently named inventors nor any aspects of the description that may not otherwise qualify as prior art at the time this application was filed are admitted, either explicitly or implicitly, as prior art to the present disclosure. Video encoding and video decoding can be performed using inter-picture prediction with motion compensation. An uncompressed digital video may comprise a series of pictures, each of which has spatial dimensions of, for example, 1920×1080 luminance samples and associated full chrominance samples or subsampled chrominance samples. The series of pictures may have a fixed or variable picture rate (alternatively referred to as a frame rate), for example, 60 pictures per second or 60 frames per second. Uncompressed video has specific bit rate requirements for streaming or data processing. For example, at 8 bits per pixel per color channel, a video with a pixel resolution of 1920×1080, a frame rate of 60 frames per second, and a chrominance subsampling of 4:2:0 requires a bandwidth of nearly 1.5 Gbit / s. One hour of such video requires more than 600 Gbytes of storage space. One goal of video encoding and decoding can be to reduce redundancy in uncompressed input video signals through compression. In some cases, compression can help reduce the aforementioned bandwidth and / or storage space requirements by two orders of magnitude or more. Both lossless and lossy compression, as well as combinations thereof, can be employed. Lossless compression refers to techniques that can reconstruct an exact replica of the original signal from the compressed original signal via a decoding process. Lossy compression refers to an encoding / decoding process in which the original video information is not fully preserved during encoding and cannot be fully recovered during decoding. When using lossy compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is sufficiently small that, despite some information loss, the reconstructed signal is useful for the intended application. In the case of video, lossy compression is widely used in many applications. The amount of distortion tolerable depends on the application. For example, users of certain consumer video streaming applications may tolerate higher distortion than users of film or television broadcast applications. The compression ratio achievable by a particular encoding algorithm can be selected or adjusted to reflect various distortion tolerances: a higher tolerable distortion generally allows encoding algorithms that produce higher loss and a higher compression ratio. Video encoders and video decoders may utilize techniques from several broad categories and steps, including, for example, motion compensation, Fourier transforms, quantization, and entropy coding. Video codec techniques may include a technique known as intra-coding. In intra-coding, sample values ​​are represented without reference to samples or other data from a previously reconstructed reference picture. In some video codecs, a picture is spatially subdivided into blocks of samples. When all blocks of samples are encoded in intra-mode, the picture may be referred to as an intra-picture. Intra-pictures and their derivatives (e.g., independent decoder refresh pictures) may be used to reset the decoder state and may therefore be used as the first picture in a coded video bitstream and video session or as a still image. The samples of the block after intra-prediction may then be transformed into the frequency domain and the generated transform coefficients may be quantized before entropy coding. Intra-prediction represents a technique for minimizing sample values ​​in the pre-transform domain. In some cases, the smaller the DC value after transformation and the smaller the AC coefficient, the fewer bits are required to represent the block after entropy coding at a given quantization step size. Conventional intra-frame coding, such as that known from, for example, MPEG-2 generation coding techniques, does not use intra-frame prediction. However, some newer video compression techniques include techniques that attempt to encode / decode blocks based on, for example, metadata and / or surrounding sample data obtained during encoding and / or decoding that is spatially adjacent and precedes the data block being intra-coded or decoded in decoding order. Such techniques are hereinafter referred to as "intra-frame prediction" techniques. Note that, in at least some cases, intra-frame prediction uses only reference data from the current picture being reconstructed, and not reference data from other reference pictures. There may be a variety of different forms of intra-frame prediction. When more than one such technique may be used in a given video coding technique, the techniques used may be referred to as intra-frame prediction modes. One or more intra-frame prediction modes may be provided in a particular codec. In some cases, a mode may have sub-modes and / or may be associated with various parameters, and the mode / sub-mode information and intra-frame coding parameters for a video block may be encoded separately or collectively included in a mode codeword. The codeword to be used for a given mode, sub-mode, and / or parameter combination may have an impact on the coding efficiency gain through intra-frame prediction, and may therefore have an impact on the entropy coding technique used to convert the codeword into a bitstream. Currently, there are some issues / problems associated with intra-mode coding. For example, for the hardware implementation of intra-mode coding, especially the construction process of the intra-mode list for small blocks is very challenging. Summary of the Invention Aspects of the present disclosure provide methods, apparatuses, and non-transitory computer-readable storage media for video decoding. According to one aspect, an embodiment of the present disclosure provides a method for video decoding. The method includes receiving a coded video bitstream; constructing an intra-frame mode list for a block according to a predefined rule based on the size of the block in the coded video bitstream; dividing the intra-frame mode list into multiple intra-frame mode sets for the block; extracting a set index indicating one or more intra-frame mode sets in the multiple intra-frame mode sets from the coded video bitstream; extracting a mode index indicating an intra-frame prediction mode in the intra-frame mode set from the coded video bitstream; determining an intra-frame prediction mode for the block based on the set index and the mode index; and decoding the coded video bitstream based on the intra-frame prediction mode. According to another aspect, an embodiment of the present disclosure provides a method for video encoding. The method includes: constructing an intra-frame mode list for a coding block according to a predefined rule based on the size of the coding block; dividing the intra-frame mode list into multiple intra-frame mode sets for the coding block; determining a set index indicating an intra-frame mode set in the multiple intra-frame mode sets; determining a mode index indicating an intra-frame prediction mode in the intra-frame mode set; determining an intra-frame prediction mode for the coding block based on the set index and the mode index; and encoding the coding block based on the intra-frame prediction mode. According to another aspect, an embodiment of the present disclosure provides a device for video decoding. The device includes: a receiving module configured to receive a coded video bitstream; a mode list construction module configured to construct an intra-frame mode list for a block according to a predefined rule based on the size of the block in the coded video bitstream; a partitioning module configured to partition the intra-frame mode list into multiple intra-frame mode sets for the block; a set index extraction module configured to extract a set index indicating one or more intra-frame mode sets in a plurality of intra-frame mode sets from the coded video bitstream; a mode index extraction module configured to extract a mode index indicating an intra-frame prediction mode in the intra-frame mode set from the coded video bitstream; a mode determination module configured to determine the intra-frame prediction mode of the block based on the set index and the mode index; and a decoding module configured to decode the coded video bitstream based on the intra-frame prediction mode. According to another aspect, an embodiment of the present disclosure provides a device for video encoding. The device includes: a mode list construction module, which is configured to construct an intra-frame mode list for the coding block according to a predefined rule based on the size of the coding block; a partitioning module, which is configured to partition the intra-frame mode list into multiple intra-frame mode sets of the coding block; a set index determination module, which is configured to determine a set index indicating an intra-frame mode set in the multiple intra-frame mode sets; a mode index determination module, which is configured to determine a mode index indicating an intra-frame prediction mode in the intra-frame mode set; a mode determination module, which is configured to determine the intra-frame prediction mode of the coding block based on the set index and the mode index; and an encoding module, which is configured to encode the coding block based on the intra-frame prediction mode. According to another aspect, embodiments of the present disclosure provide a device for video encoding and / or decoding. The device includes a memory storing instructions and a processor communicating with the memory. When the processor executes the instructions, the processor is configured to cause the device to perform the above-described method for video decoding and / or encoding. In another aspect, embodiments of the present disclosure provide a non-transitory computer-readable storage medium storing instructions that, when executed by a computer for video decoding and / or encoding, cause the computer to perform the above-described method for video decoding and / or encoding. The embodiments of the present disclosure provide a method, device, and non-transitory computer-readable storage medium for video decoding. The method includes: receiving a coded video bitstream; constructing an intra-frame mode list for the block according to a predefined rule based on the size of the block in the coded video bitstream; dividing the intra-frame mode list into multiple intra-frame mode sets for the block; extracting a set index indicating one or more intra-frame mode sets in the multiple intra-frame mode sets from the coded video bitstream; extracting a mode index indicating an intra-frame prediction mode in the intra-frame mode set from the coded video bitstream; determining the intra-frame prediction mode of the block based on the set index and the mode index; and decoding the coded video bitstream based on the intra-frame prediction mode. Through the method, device, and non-transitory computer-readable storage medium for intra-frame prediction mode encoding in video decoding of the present invention, it is possible to optimize the design for signaling the selection of the intra-frame prediction mode in the coded video bitstream, reduce the number of bits used for intra-frame mode signaling, and thus improve coding efficiency. The above-described aspects and other aspects and implementations thereof are described in more detail in the drawings, the description, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS Further features, nature, and various advantages of the disclosed subject matter will become more apparent from the following detailed description and accompanying drawings. FIG1A shows a schematic diagram of an exemplary subset of intra prediction directional modes. FIG. 1B shows a diagram of exemplary intra prediction directions. FIG2 shows a schematic diagram of a current block and its surrounding spatial merging candidates for motion vector prediction in one example. Figure 3 A schematic illustration showing a simplified block diagram of a communication system according to an example embodiment is shown. Figure 4 A schematic illustration showing a simplified block diagram of a communication system according to an example embodiment is shown. Figure 5 A schematic illustration of a simplified block diagram of a video decoder according to an example embodiment is shown. Figure 6 A schematic illustration of a simplified block diagram of a video encoder according to an example embodiment is shown. Figure 7 A block diagram of a video encoder according to another example embodiment is shown. Figure 8 A block diagram of a video decoder according to another example embodiment is shown. Figure 9 A directional intra prediction mode according to an example embodiment of the present disclosure is shown. Figure 10 A non-directional intra prediction mode according to an example embodiment of the present disclosure is shown. Figure 11 A recursive intra prediction mode according to an example implementation of the present disclosure is shown. Figure 12 An intra prediction scheme based on various reference lines according to an example embodiment of the present disclosure is shown. Figure 13 Offset-based intra prediction refinement according to an example embodiment of the present disclosure is shown. Figure 14A Another diagram of offset-based intra prediction refinement according to an example embodiment of the present disclosure is shown. Figure 14B Another diagram of offset-based intra prediction refinement according to an example embodiment of the present disclosure is shown. Figure 15 A flow chart illustrating a method according to an example embodiment of the present disclosure is shown. Figure 16 A schematic diagram of a computer system according to an example embodiment of the present disclosure is shown. DETAILED DESCRIPTION The present invention will now be described in detail below with reference to the accompanying drawings, which form a part hereof and illustrate specific examples of embodiments. However, it is noted that the present invention may be implemented in a variety of different forms, and therefore, the subject matter covered or claimed is intended to be construed as not being limited to any of the embodiments to be described below. It is also noted that the present invention may be implemented as a method, apparatus, component, or system. Thus, embodiments of the present invention may take the form of, for example, hardware, software, firmware, or any combination thereof. Throughout the specification and claims, terms may have subtly different meanings that are suggested or implied by the context beyond their explicitly stated meanings. The phrases "in one embodiment" or "in some embodiments" as used herein do not necessarily refer to the same embodiment, and the phrases "in another embodiment" or "in other embodiments" as used herein do not necessarily refer to different embodiments. Likewise, the phrases "in one implementation" or "in some implementations" as used herein do not necessarily refer to the same implementation, and the phrases "in another implementation" or "in other implementations" as used herein do not necessarily refer to different implementations. For example, it is intended that the claimed subject matter include combinations of exemplary embodiments / implementations in whole or in part. Typically, terms can be understood at least in part from their usage in the context. For example, as used herein, terms such as "and", "or" or "and / or" can include various meanings, which can depend at least in part on the context in which such terms are used. Typically, if "or" is used for an association list, such as A, B or C, then "or" is intended to mean A, B and C, which are used herein in an inclusive sense, and A, B or C, which are used herein in an exclusive sense. In addition, depending at least in part on the context, as used herein, the terms "one or more" or "at least one" can be used to describe any feature, structure or characteristic in a singular sense, or can be used to describe a combination of features, structures or characteristics in a plural sense. Similarly, terms such as "one", "an" or "the" can also be understood to convey singular usage or to convey plural usage, which depends at least in part on the context. In addition, the terms "based on" or "determined by..." can be understood as not necessarily intended to convey an exclusive set of factors, and can alternatively allow for the presence of additional factors that are not necessarily explicitly described, which also depends at least in part on the context. Certain modes of intra prediction were introduced by H.264, refined in H.265, and further refined in newer coding technologies such as the Joint Development Model (JEM), Versatile Video Coding (VVC), and Benchmark Set (BMS). Typically, for intra prediction, a block of prediction values ​​can be formed using values ​​of neighboring samples that have become available. For example, the available values ​​of a particular set of neighboring samples along a particular direction and / or line can be copied into a block of prediction values. A reference to the direction used can be encoded in the bitstream, or it can itself be predicted. 1A , depicted at the bottom right are a subset of 9 prediction value directions specified in the 33 possible intra-frame prediction value directions of H.265 (corresponding to the 33 angular modes of the 35 intra-frame modes specified in H.265). The point (101) where the arrows converge represents the sample being predicted. The arrows represent the directions in which neighboring samples are used to predict the sample at 101. For example, arrow (102) indicates that sample (101) is predicted from one or more neighboring samples at a 45-degree angle to the horizontal direction to the upper right. Similarly, arrow (103) indicates that sample (101) is predicted from one or more neighboring samples at a 22.5-degree angle to the horizontal direction to the lower left of sample (101). Still referring to FIG. 1A , depicted at the top left is a square block (104) of 4×4 samples (indicated by the dashed bold line). The square block (104) includes 16 samples, each labeled by “S,” 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 in the block (104) in both the Y and X dimensions. Since the size of the block is 4×4 samples, S44 is at the bottom right. Example reference samples following a similar numbering scheme are further shown. The reference samples are labeled by R, their Y position (e.g., row index), and X position (column index) relative to the block (104). In both H.264 and H.265, prediction samples that are adjacently adjacent to the block being reconstructed are used. The intra picture prediction of block 104 can start by copying reference sample values ​​from neighboring samples according to the signaled prediction direction. For example, assume that the encoded video bitstream includes the following signaling, which indicates the prediction direction of arrow (102) for this block 104, that is, the samples are predicted based on one or more prediction samples to the upper right at a 45-degree angle to the horizontal direction. In this case, samples S41, S32, S23, and S14 are predicted based on the same reference sample R05. Then, sample S44 is predicted based on reference sample R08. In some cases, the values ​​of multiple reference samples may be combined, for example by interpolation, in order to calculate the reference sample; in particular when the direction is not divisible by 45 degrees. As video coding technology continues to advance, the number of possible directions is also increasing. For example, in H.264 (2003), nine different directions can be used for intra prediction. This was increased to 33 in H.265 (2013), and JEM / VVC / BMS can support up to 65 directions when it is disclosed. Experimental research has been done to help identify the most suitable intra prediction directions, and certain techniques in entropy coding can be used to encode those most suitable directions with a small number of bits, thereby accepting a specific bit penalty for the direction. In addition, the direction itself can sometimes be predicted based on the neighboring directions used in the intra prediction of decoded neighboring blocks. FIG. 1B shows a schematic diagram ( 180 ) depicting 65 intra prediction directions according to the JEM to illustrate the increasing number of prediction directions in various coding techniques developed over time. The manner in which the bits representing the intra-prediction direction are mapped to the prediction direction in the coded video bitstream can vary between different video coding techniques; and the mapping can vary, for example, from a simple direct mapping of prediction direction to intra-prediction mode to codeword to complex adaptive schemes involving most probable modes and similar techniques. However, in all cases, there may be certain intra-prediction directions that are statistically less likely to occur in the video content than certain other directions. Since the goal of video compression is to reduce redundancy, in well-functioning video coding techniques, those less likely directions can be represented by a larger number of bits than more likely directions. Inter-picture prediction or inter-frame prediction can be based on motion compensation. In motion compensation, sample data from a previously reconstructed picture or part thereof (reference picture) can be used to predict a newly reconstructed picture or picture part (e.g., block) after spatial shifting in the direction indicated by a motion vector (hereinafter referred to as MV). In some cases, the reference picture can be the same as the picture currently being reconstructed. MV can have two dimensions, X and Y, or three dimensions, where the third dimension is an indication of the reference picture in use (similar to the time dimension). In some video compression techniques, the current MV applicable to a particular region of sample data can be predicted from other MVs, such as those associated with other regions of sample data that are spatially adjacent to the region being reconstructed and precede the current MV in decoding order. This can significantly reduce the total amount of data required to encode the MV by removing redundancy in the associated MVs, thereby improving compression efficiency. MV prediction can be effective, for example, because when encoding an input video signal derived from a camera (referred to as natural video), there is a statistical probability that regions larger than the region to which a single MV applies in the video sequence move in similar directions, and thus, in some cases, similar motion vectors derived from MVs in neighboring regions can be used for prediction. This results in the actual MV for a given region being similar or identical to the MV predicted from surrounding MVs. Such MVs can, in turn, be represented, after entropy coding, using fewer bits than would be used if the MV were encoded directly from neighboring MVs rather than predicted from them. In some cases, MV prediction can be an example of lossless compression of a signal (i.e., an MV) derived from the original signal (i.e., a sample stream). In other cases, the MV prediction itself may be lossy, for example due to round-off errors when computing the prediction value from several surrounding MVs. Various MV prediction mechanisms are described in H.265 / HEVC (ITU-T Recommendation H.265, “High Efficiency Video Coding”, December 2016). Among the various MV prediction mechanisms specified in H.265, the following describes a technique referred to as “spatial merging”. Specifically, referring to Figure 2, the current block (201) includes samples that have been discovered by the encoder during the motion search process, which are predicted from a previous block of the same size that has been spatially offset. Instead of encoding the MV directly, the MV can be derived from metadata associated with one or more reference pictures, for example, using the MV associated with any of the five surrounding samples denoted A0, A1 and B0, B1, B2 (202 to 206, respectively), which are derived from metadata of the nearest reference picture (in decoding order). In H.265, MV prediction can use the prediction value of the same reference picture that the neighboring block is also using. Figure 3 A simplified block diagram of a communication system (300) according to an embodiment of the present disclosure is shown. The communication system (300) includes a plurality of terminal devices that can communicate with each other via, for example, a network (350). For example, the communication system (300) includes a first pair of terminal devices (310) and a terminal device (320) interconnected via the network (350). Figure 3 In an example, a first pair of terminal devices (310) and a terminal device (320) can perform unidirectional data transmission. For example, the terminal device (310) can encode video data (e.g., a video picture 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 encoded video bitstreams. The terminal device (320) can receive the encoded video data from the network (350), decode the encoded video data to recover the video picture, and display the video picture based on the recovered video data. The unidirectional data transmission can be implemented in a media service application, etc. In another example, the communication system (300) includes a second pair of terminal devices (330) and terminal devices (340) that perform bidirectional transmission of encoded video data, which can be implemented, for example, during a video conferencing application. For the bidirectional transmission of data, in the example, each of the terminal devices (330) and the terminal devices (340) can encode video data (e.g., a video picture stream captured by the terminal device) for transmission to the other of the terminal devices (330) and the terminal devices (340) via the network (350). Each of the terminal devices (330) and the terminal devices (340) can also receive the encoded video data transmitted by the other of the terminal devices (330) and the terminal devices (340), and can decode the encoded video data to restore the video picture, and can display the video picture at an accessible display device based on the restored video data. exist Figure 3 In the example of , terminal devices (310), (320), (330) and (340) can be implemented as servers, personal computers and smart phones, but the applicability of the basic principles of the present disclosure may not be limited thereto. Implementations of the present disclosure may be implemented in desktop computers, laptop computers, tablet computers, media players, wearable computers, dedicated video conferencing equipment, etc. Network (350) represents any number or type of network that transmits encoded video data between terminal devices (310), (320), (330) and (340), including, for example, wired (wired) and / or wireless communication networks. The communication network (350) can exchange data in circuit switching, packet switching and / or other types of channels. Representative networks include telecommunications networks, local area networks, wide area networks and / or the Internet. For the purposes of this discussion, unless explicitly stated herein, the architecture and topology of the network (350) may be immaterial to the operation of the present disclosure. As examples of applications of the disclosed subject matter, Figure 4 The placement of a video encoder and a video decoder in a video streaming environment is shown. The disclosed subject matter is equally applicable to other video applications, including, for example, video conferencing, digital television broadcasting, gaming, virtual reality, storage of compressed video on digital media including CDs, DVDs, memory sticks, etc. The video streaming system may include a video capture subsystem (413) that may include a video source (401), such as a digital camera, for creating an uncompressed video picture or image stream (402). In an example, the video picture stream (402) includes samples recorded by the digital camera of the video source 401. The video picture stream (402) is depicted as a thick line to emphasize the high amount of data when compared to the encoded video data (404) (or encoded video bitstream), which may be processed by an electronic device (420) coupled to the video source (401) and including a video encoder (403). The video encoder (403) may include hardware, software, or a combination thereof to implement or embody aspects of the disclosed subject matter as described in more detail below. The encoded video data (404) (or encoded video bitstream (404)) is depicted as a thin line to emphasize the lower data volume when compared to the uncompressed video picture stream (402). The encoded video data (404) can be stored on the streaming server (405) for future use or directly to a downstream video device (not shown). One or more streaming client subsystems, such as Figure 4 The client subsystems (406) and (408) in the streaming server (405) 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 the electronic device (430). The video decoder (410) decodes the incoming copy (407) of the encoded video data and creates an outgoing video picture stream (411) that is uncompressed and can be presented on a display (412) (e.g., a display screen) or other presentation device (not depicted). The video decoder 410 can be configured to perform some or all of the various functions described in the present disclosure. In some streaming systems, the encoded video data (404), (407) and (409) (e.g., a video bitstream) can be encoded according to certain video coding standards / video compression standards. Examples of such standards include ITU-T Recommendation H.265. In the example, the video coding standard under development is informally referred to as Versatile Video Coding (VVC). The disclosed subject matter can be used in the context of VVC and other video coding standards. It should be noted that the electronic devices (420) and (430) may include other components (not shown). For example, the electronic device (420) may include a video decoder (not shown), and the electronic device (430) may also include a video encoder (not shown). Figure 5A block diagram of a video decoder (510) according to any embodiment of the present disclosure below is shown. The video decoder (510) may be included in an electronic device (530). The electronic device (530) may include a receiver (531) (e.g., receiving circuitry). The video decoder (510) may be used instead of Figure 4 A video decoder (410) in an example of FIG. The receiver (531) can receive one or more encoded video sequences to be decoded by the video decoder (510). In the same embodiment or another embodiment, the encoded video sequences can be decoded one at a time, wherein the decoding of each encoded video sequence is independent of the decoding of other encoded video sequences. Each video sequence can be associated with multiple video frames or images. The encoded video sequence can be received from a channel (501), which can be a hardware / software link to a storage device storing the encoded video data or a streaming source sending the encoded video data. The receiver (531) can receive the encoded video data as well as other data, such as encoded audio data and / or auxiliary data streams that can be forwarded to their respective processing circuit systems (not depicted). The receiver (531) can separate the encoded video sequence from the other data. To combat network jitter, a buffer memory (515) can be provided between the receiver (531) and the entropy decoder / parser (520) (hereinafter referred to as "parser (520)"). In some applications, the buffer memory (515) can be implemented as part of the video decoder (510). In other applications, the buffer memory (515) may be external to and separate from the video decoder (510) (not depicted). In still other applications, a buffer memory (not depicted) may be present external to the video decoder (510) for purposes such as combating network jitter, and another buffer memory (515) may be present internal to the video decoder (510) for purposes such as handling playback timing. When the receiver (531) is receiving data from a store / forward device with sufficient bandwidth and controllability or from an isochronous network, the buffer memory (515) may not be required, or the buffer memory (515) may be small. For use over a best effort packet network such as the Internet, a buffer memory (515) of sufficient size may be required, and the size of the buffer memory (515) may be relatively large. Such a buffer memory may be implemented to have an adaptive size and may be implemented at least in part in an operating system or similar element (not depicted) external to the video decoder (510). The video decoder (510) may include a parser (520) to reconstruct symbols (521) from the encoded video sequence. The categories of symbols include information for managing the operation of the video decoder (510) and may include information for controlling a presentation device such as a display (512) (e.g., a display screen), which may or may not be part of the electronic device (530) but may be coupled to the electronic device (530), such as Figure 5 As shown. The control information for the rendering device may take the form of a supplementary enhancement information (SEI (Supplemental Enhancement Information) message) or a video usability information (VUI) parameter set fragment (not depicted). The parser (520) may parse / entropy decode the coded video sequence received by the parser (520). The entropy coding of the coded video sequence may conform to a video coding technique or a video coding standard and may follow various principles, including variable length coding, Huffman coding, arithmetic coding with or without context sensitivity, etc. The parser (520) may extract a subgroup parameter set for at least one subgroup of the pixel subgroups in the video decoder from the coded video sequence based on at least one parameter corresponding to the subgroup. The subgroup may 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 parser (520) may also extract information from the encoded video sequence, such as transform coefficients (eg, Fourier transform coefficients), quantizer parameter values, motion vectors, etc. The parser (520) may perform entropy decoding / parsing operations on the video sequence received from the buffer memory (515), thereby creating symbols (521). Depending on the type of coded video picture or its portion (such as inter-frame and intra-frame pictures, inter-frame blocks and intra-frame blocks) and other factors, the reconstruction of the symbol (521) can involve multiple different processing units or functional units. Which units are involved and how they are involved can be controlled by sub-group control information parsed from the coded video sequence by the parser (520). For the sake of brevity, the flow of such sub-group control information between the parser (520) and the multiple processing units or functional units below is not depicted. In addition to the functional blocks already mentioned, the video decoder (510) can be conceptually subdivided into a number of functional units as described below. In actual implementations operating under commercial constraints, many of these functional units interact closely with each other and may be at least partially integrated with each other. However, for the purpose of clearly describing the various functions of the disclosed subject matter, this conceptual subdivision into functional units is adopted in the following disclosure. The first unit may include a scaler / inverse transform unit (551). The scaler / inverse transform unit (551) may receive quantized transform coefficients as symbols (521) and control information from the parser (520), including information indicating which type of inverse transform to use, block size, quantization factors / parameters, quantization scaling matrix, etc. The scaler / inverse transform unit (551) may output blocks including sample values, which may be input to the aggregator (555). In some cases, the output samples of the scaler / inverse transform unit (551) may belong to an intra-coded block, i.e., a block that does not use predictive information from a previously reconstructed picture, but instead uses predictive information from a previously reconstructed portion of the current picture. Such predictive information may be provided by the intra-picture prediction unit (552). In some cases, the intra-picture prediction unit (552) may use surrounding block information that has already been reconstructed and stored in the current picture buffer (558) to generate a block of the same size and shape as the block being reconstructed. For example, the current picture buffer (558) buffers partially reconstructed current pictures and / or fully reconstructed current pictures. In some implementations, the aggregator (555) may add the prediction information already generated by the intra-prediction unit (552) to the output sample information provided by the scaler / inverse transform unit (551) on a per-sample basis. In other cases, the output samples of the scaler / inverse transform unit (551) may belong to an inter-coded and possibly motion-compensated block. In such a case, the motion compensated prediction unit (553) may access the reference picture memory (557) to obtain samples for inter-picture prediction. After motion compensation of the obtained samples according to the symbols (521) belonging to the block, these samples may be added to the output of the scaler / inverse transform unit (551) by the aggregator (555) (the output of the unit 551 may be referred to as residual samples or residual signal) to generate output sample information. The address within the reference picture memory (557) from which the motion compensated prediction unit (553) obtains the predicted samples may be controlled by a motion vector, which may be obtained by the motion compensated prediction unit (553) in the form of a symbol (521) that may have, for example, an X component, a Y component (offset), and a reference picture component (time). Motion compensation may also include interpolation of sample values ​​retrieved from a reference picture memory (557) when using sub-sample accurate motion vectors, and may also be associated with motion vector prediction mechanisms, among others. The output samples of the aggregator (555) may be subjected to various loop filtering techniques in a loop filter unit (556). The video compression techniques may include in-loop filtering techniques that are controlled by parameters included in the coded video sequence (also referred to as the coded video bitstream) and obtained by the loop filter unit (556) as symbols (521) from the parser (520), but may also be responsive to meta-information obtained during decoding of a coded picture or a previous (in decoding order) portion of the coded video sequence, as well as to previously reconstructed and loop filtered sample values. As will be described in further detail below, several types of loop filters may be included as part of the loop filter unit 556 in various orders. The output of the loop filter unit (556) may be a sample stream that may be output to a rendering device (512) and stored in a reference picture memory (557) for future inter-picture prediction. Certain coded pictures, once fully reconstructed, can be used as reference pictures for future inter-picture prediction. For example, once a coded picture corresponding to a current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by a parser (520)), the current picture buffer (558) can become part of the reference picture memory (557) and a new current picture buffer can be reallocated before starting to reconstruct a subsequent coded picture. The video decoder (510) may perform decoding operations according to a predetermined video compression technique employed in a standard such as ITU-T Recommendation H.265. A coded video sequence may conform to the syntax specified by the video compression technology or standard in use, in the sense that the coded video sequence adheres to both the syntax of the video compression technology or standard and the profile documented in the video compression technology or standard. Specifically, the profile may select certain tools from all the tools available in the video compression technology or standard as the only tools available for use under the profile. For compliance, the complexity of the coded video sequence may be within limits, such as those defined by the level of the video compression technology or standard. In some cases, the level may limit the maximum picture size, maximum frame rate, maximum reconstruction sample rate (measured in, for example, megasamples per second), maximum reference picture size, etc. In some cases, the limits set by the level may be further limited by the Hypothetical Reference Decoder (HRD) specification and metadata signaled in the coded video sequence for HRD buffer management. In some example embodiments, a receiver (531) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence. The video decoder (510) may use the additional data to correctly decode the data and / or to more accurately reconstruct the original video data. The additional data may be in the form of, for example, temporal, spatial, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, and the like. Figure 6 A block diagram of a video encoder (603) according to an example embodiment of the present disclosure is shown. The video encoder (603) may be included in an electronic device (620). The electronic device (620) may also include a transmitter (640) (e.g., a transmission circuit system). The video encoder (603) may be used instead of Figure 4 The video encoder (403) in the example of FIG. The video encoder (603) can capture a video image to be encoded by the video encoder (603) from a video source (601) (in Figure 6 In another example, the video source (601) may be implemented as part of the electronic device (620). The video source (601) can provide a source video sequence in the form of a digital video sample stream to be encoded by the video encoder (603), and the digital video sample stream can have any suitable bit depth (e.g., 8 bits, 10 bits, 12 bits, etc.), any color space (e.g., BT.601 YCrCB, RGB, XYZ, etc.), and any suitable sampling structure (e.g., YCrCb 4:2:0, YCrCb 4:4:4). In a media service system, the video source (601) can be a storage device capable of storing previously prepared videos. In a video conferencing system, the video source (601) can be a camera device that captures local image information as a video sequence. The video data can be provided as multiple individual pictures or images that are given motion when viewed sequentially. The pictures themselves can be organized as a spatial pixel array, where each pixel can include one or more samples depending on the sampling structure, color space, etc. used. The relationship between pixels and samples can be easily understood by those skilled in the art. The following description focuses on samples. According to some example embodiments, the video encoder (603) may encode and compress pictures of a source video sequence into an encoded video sequence (643) in real time or under any other time constraints required by the application. Implementing an appropriate encoding speed constitutes a function of the controller (650). In some embodiments, the controller (650) may be functionally coupled to and control other functional units as described below. For the sake of brevity, the coupling is not depicted. The parameters set by the controller (650) may include rate control related parameters (picture skipping, quantizer, lambda value for rate distortion optimization techniques, etc.), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (650) may be configured to have other suitable functions that relate to the video encoder (603) optimized for a specific system design. In some example embodiments, the video encoder (603) can be configured to operate in an encoding loop. As an extremely simplified description, in an example, the encoding loop can include: a source encoder (630) (e.g., responsible for creating symbols, such as a symbol stream, based on the input picture to be encoded and the reference picture); and a (local) decoder (633), which is embedded in the video encoder (603). The decoder (633) reconstructs the symbols to create sample data in a manner similar to how the (remote) decoder would create sample data, even though the embedded decoder 633 is processing the encoded video stream of the source encoder 630 without entropy coding (because in the video compression techniques considered in the disclosed subject matter, any compression between the symbols and the encoded video bitstream in entropy coding may be lossless). The reconstructed sample stream (sample data) is input to a reference picture memory (634). Since the decoding of the symbol stream results in a bit-exact result regardless of the decoder location (local or remote), the contents of the reference picture memory (634) are also bit-exact between the local encoder and the remote encoder. In other words, the prediction part of the encoder "sees" as reference picture samples exactly the same sample values ​​that the decoder will "see" when using prediction during decoding. This basic principle of reference picture synchronization (and the resulting drift when synchronization cannot be maintained, for example due to channel errors) is used to improve encoding quality. The operation of the "local" decoder (633) may be identical to the operation of a "remote" decoder, such as the video decoder (510), described above in conjunction with Figure 5 The video decoder (510) is described in detail. However, reference is made briefly to Figure 5 , since the symbols are available and encoding of the symbols into an encoded video sequence by the entropy encoder (645) and decoding of the symbols by the parser (520) can be lossless, the entropy decoding portion of the video decoder (510) including the buffer memory (515) and the parser (520) may not be fully implemented in the local decoder (633) in the encoder. At this point, it can be observed that any decoder technology, other than parsing / entropy decoding, which may only exist in the decoder, must also be present in a substantially identical functional form in the corresponding encoder. For this reason, the disclosed subject matter may sometimes focus on the decoder operation, which is associated with the decoding portion of the encoder. Since the encoder technology is in contrast to the decoder technology, which has been fully described, the description of the encoder technology can be simplified. A more detailed description of the encoder is provided below, focusing only on certain areas or aspects. In some example implementations, during operation, the source encoder (630) may perform motion-compensated predictive coding, which predictively encodes an input picture with reference to one or more previously encoded pictures from a video sequence, designated as "reference pictures." In this manner, the encoding engine (632) encodes the differences (or residuals) of the color channels between pixel blocks of the input picture and pixel blocks of a reference picture, which may be selected as a prediction reference for the input picture. The local video decoder (633) can decode the encoded video data of a picture that can be designated as a reference picture based on the symbols created by the source encoder (630). The operation of the encoding engine (632) can advantageously be a lossy process. When the video decoder ( Figure 6 When the encoded video data is decoded at a local location (not shown), the reconstructed video sequence may typically be a copy of the source video sequence with some errors therein. The local video decoder (633) replicates the decoding processing that may be performed by the video decoder on the reference picture and may cause the reconstructed reference picture to be stored in the reference picture memory (634). In this way, the video encoder (603) may locally store a copy of the reconstructed reference picture that has common content (absent transmission errors) with the reconstructed reference picture to be obtained by the remote video decoder. The predictor (635) may perform a prediction search for the encoding engine (632). That is, for a new picture to be encoded, the predictor (635) may search the reference picture memory (634) for sample data (as candidate reference pixel blocks) or specific metadata, such as reference picture motion vectors, block shapes, etc., that may serve as suitable prediction references for the new picture. The predictor (635) may operate on a sample-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 picture may have prediction references obtained from multiple reference pictures stored in the reference picture memory (634). The controller (650) can manage encoding operations of the source encoder (630), including, for example, setting parameters and sub-group parameters for encoding video data. The outputs of all the above functional units may be entropy coded in an entropy encoder (645). The entropy encoder (645) converts the symbols generated by the various functional units into a coded video sequence by losslessly compressing them according to techniques such as Huffman coding, variable length coding, arithmetic coding, etc. The transmitter (640) can buffer the encoded video sequence created by the entropy encoder (645) in preparation for transmission via a communication channel (660), which can be a hardware / software link to a storage device that can store the encoded video data. The transmitter (640) can combine the encoded video data from the video encoder (603) with other data to be transmitted, such as encoded audio data and / or an auxiliary data stream (source not shown). The controller (650) can manage the operation of the video encoder (603). During encoding, the controller (650) can assign a specific encoding picture type to each encoded picture, which may affect the encoding techniques that can be applied to the corresponding picture. For example, a picture can generally be assigned one of the following picture types: An intra picture (I picture) can be a picture that can be encoded and decoded without using any other picture in the sequence as a prediction source. Some video codecs allow different types of intra pictures, including, for example, Independent Decoder Refresh (IDR) pictures. Those skilled in the art are aware of those variations of I pictures and their respective applications and characteristics. A predictive picture (P picture) may be a picture that can be encoded and decoded using intra prediction or inter prediction, where inter prediction uses at most one motion vector and a reference index to predict sample values ​​for each block. Bidirectionally predictive pictures (B pictures), which can be pictures that can be encoded and decoded using intra prediction or inter prediction, where inter prediction uses up to two motion vectors and reference indices to predict sample values ​​for each block. Similarly, multiple predictive pictures can use more than two reference pictures and associated metadata for reconstruction of a single block. A source picture can typically be spatially subdivided into a plurality of coding blocks of samples (e.g., blocks of 4×4, 8×8, 4×8, or 16×16 samples, respectively) and encoded block by block. These blocks can be predictively encoded with reference to other (already coded) blocks determined by the coding allocation applied to the block's corresponding picture. For example, a block of an I picture can be non-predictively encoded, or a block of an I picture can be predictively encoded (spatial prediction or intra-frame prediction) with reference to already coded blocks of the same picture. A pixel block of a P picture can be predictively encoded via spatial prediction or via temporal prediction with reference to a previously coded reference picture. A block of a B picture can be predictively encoded via spatial prediction or via temporal prediction with reference to one or two previously coded reference pictures. For other purposes, a source picture or an intermediate processed picture can be subdivided into other types of blocks. The division of coding blocks and other types of blocks may or may not follow the same approach, as described in further detail below. The video encoder (603) may perform encoding operations according to a predetermined video coding technique or standard, such as ITU-T Recommendation H.265. In its operation, the video encoder (603) may perform various compression operations, including predictive encoding operations that exploit temporal and spatial redundancy in the input video sequence. Thus, the encoded video data may conform to the syntax specified by the video coding technique or standard being used. In some example embodiments, the transmitter (640) may send additional data along with the encoded video. The source encoder (630) may include such data as part of the encoded video sequence. The additional data may include temporal / spatial / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, etc. Video can be captured as multiple source pictures (video pictures) in a temporal sequence. Intra-picture prediction (often shortened to intra prediction) exploits spatial correlations in a given picture, while inter-picture prediction exploits temporal or other correlations between pictures. For example, a particular picture being encoded / decoded, called the current picture, can be divided into blocks. When a block in the current picture is similar to a reference block in a reference picture that was previously encoded in the video and is still buffered, the block in the current picture can be encoded using a vector called a motion vector. The motion vector points to a reference block in a reference picture, and in the case of using multiple reference pictures, the motion vector can have a third dimension that identifies the reference picture. In some example embodiments, bidirectional prediction techniques may be used for inter-picture prediction. According to such bidirectional prediction techniques, two reference pictures are used, for example, a first reference picture and a second reference picture that both precede the current picture in the video in decoding order (but may be in the past and in the future, respectively, in display order). A block in the current picture may be encoded using a first motion vector pointing to a first reference block in the first reference picture and a second motion vector pointing to a second reference block in the second reference picture. The block may be jointly predicted using a combination of the first and second reference blocks. In addition, merge mode technology can be used in inter-frame picture prediction to improve coding efficiency. According to some example embodiments of the present disclosure, predictions such as inter-picture prediction and intra-picture prediction are performed in units of blocks. For example, a picture in a video picture sequence is partitioned into coding tree units (CTUs) for compression, and the CTUs in the picture may have the same size, for example, 64×64 pixels, 32×32 pixels, or 16×16 pixels. Typically, a CTU may include three parallel coding tree blocks (CTBs): one luma CTB and two chroma CTBs. Each CTU may be recursively split into one or more coding units (CUs) using a quadtree. For example, a 64×64 pixel CTU may be split into a 64×64 pixel CU, or four 32×32 pixel CUs. Each of one or more of the 32×32 blocks may further be split into four 16×16 pixel CUs. In some example embodiments, each CU may be analyzed during encoding to determine a prediction type for the CU among various prediction types, such as an inter prediction type or an intra prediction type. Depending on temporal and / or spatial predictability, a CU may be split into one or more prediction units (PUs). Typically, each PU includes a luma prediction block (PB) and two chroma prediction blocks. In an embodiment, the prediction operation in encoding (encoding / decoding) is performed in units of prediction blocks. Splitting a CU into PUs (or PBs for different color channels) may be performed in various spatial modes. A luma or chroma PB may, for example, contain a matrix of values ​​(e.g., luma values) of samples of, for example, 8×8 pixels, 16×16 pixels, 8×16 pixels, 16×8 pixels, etc. Figure 7 A diagram of a video encoder (703) according to another example embodiment of the present disclosure is shown. The video encoder (703) is configured to receive a processed block (e.g., a prediction block) of sample values ​​within a current video picture in a sequence of video pictures and to encode the processed block into a coded picture that is part of the coded video sequence. The example video encoder (703) may be used instead of Figure 4 The video encoder (403) in the example. For example, the video encoder (703) receives a matrix of sample values ​​for a processing block, such as a prediction block of 8×8 samples. The video encoder (703) then uses, for example, rate-distortion optimization (RDO) to determine whether to best encode the processing block using intra mode, inter mode, or bi-prediction mode. When it is determined that the processing block is to be encoded in intra mode, the video encoder (703) may encode the processing block into a coded picture using intra prediction techniques; and when it is determined that the processing block is to be encoded in inter mode or bi-prediction mode, the video encoder (703) may encode the processing block into a coded picture using inter prediction techniques or bi-prediction techniques, respectively. In some example embodiments, merge mode may be used as a sub-mode of inter-picture prediction, in which a motion vector is derived from one or more motion vector predictors without resorting to encoded motion vector components external to the predictor. In some other example embodiments, there may be a motion vector component applicable to the object block. Thus, the video encoder (703) may include Figure 7 Components not explicitly shown, such as a mode decision module for determining a prediction mode for a processing block. exist Figure 7 In the example of , the video encoder (703) includes Figure 7 The example arrangement shown in FIG. 1 includes an inter-frame encoder (730), an intra-frame encoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a general controller (721), and an entropy encoder (725) coupled together. 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 a reference picture (e.g., a block in a previous picture and a block in a subsequent picture in display order); generate inter-frame prediction information (e.g., motion vectors, merge mode information, description of redundant information according to an inter-frame coding technique); 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 picture is based on the coded video information using an embedded Figure 6 The decoding unit 633 (shown as Figure 7 The decoded reference picture is decoded by the residual decoder 728, as described in further detail below. The intra encoder (722) is configured to: receive samples of a current block (e.g., a processing block); compare the block with an already encoded block in the same picture; generate quantization coefficients after transformation; and in some cases also generate intra prediction information (e.g., intra prediction direction information according to one or more intra coding techniques). The intra encoder (722) can calculate an intra prediction result (e.g., a predicted block) based on the intra prediction information and a reference block in the same picture. The general controller (721) can be configured to determine general control data and control other components of the video encoder (703) based on the general control data. In an example, the general controller (721) determines a prediction mode for a block and provides a control signal to the switch (726) based on the prediction mode. For example, when the prediction mode is intra mode, the general controller (721) controls the switch (726) to select an intra mode result for use by the residual calculator (723) and controls the entropy encoder (725) to select intra prediction information and include the intra prediction information in the bitstream; and when the prediction mode of the block is inter mode, the general controller (721) controls the switch (726) to select an inter prediction result for use by the residual calculator (723) and controls the entropy encoder (725) to select inter prediction information and include the inter prediction information in the bitstream. The residual calculator (723) can be configured to calculate the difference (residual data) between the received block and the prediction result of the block selected from the intra encoder (722) or the inter encoder (730). The residual encoder (724) can be configured to encode the residual data to generate transform coefficients. For example, the residual encoder (724) can be configured to convert the residual data from the spatial domain to the frequency domain to generate transform coefficients. Then, the transform coefficients are quantized to obtain quantized transform coefficients. In various example embodiments, the video encoder (703) further 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 appropriately by the intra encoder (722) and the inter encoder (730). For example, the inter encoder (730) can generate a decoded block based on the decoded residual data and the inter prediction information, and the intra encoder (722) can generate a decoded block based on the decoded residual data and the intra prediction information. The decoded blocks are appropriately processed to generate decoded pictures, and these decoded pictures may be buffered in a memory circuit (not shown) and used as reference pictures. The entropy encoder (725) can be configured to format the bitstream to include the coded blocks and perform entropy coding. The entropy encoder (725) is configured to include various information in the bitstream. For example, the entropy encoder (725) can be configured to include general control data, selected prediction information (e.g., intra-frame prediction information or inter-frame prediction information), residual information, and other suitable information in the bitstream. When the block is encoded in inter-frame mode or the merge sub-mode of the bidirectional prediction mode, the residual information may not be present. Figure 8 A diagram of an example video decoder (810) according to another embodiment of the present disclosure is shown. The video decoder (810) is configured to receive an encoded picture that is part of an encoded video sequence and decode the encoded picture to generate a reconstructed picture. In an example, the video decoder (810) may be used instead of Figure 4 A video decoder (410) in an example of FIG. exist Figure 8 In the example of , the video decoder (810) includes Figure 8 An entropy decoder (871), an inter-frame decoder (880), a residual decoder (873), a reconstruction module (874) and an intra-frame decoder (872) coupled together are shown in the example arrangement of FIG. The entropy decoder (871) can be configured to reconstruct certain symbols from the coded picture, which represent syntax elements that constitute the coded picture. Such symbols may include: for example, the mode in which the block is coded (e.g., intra mode, inter mode, bidirectional prediction mode, merge submode, or another submode), prediction information (e.g., intra prediction information or inter prediction information) that can identify certain samples or metadata used by the intra decoder (872) or inter decoder (880) for prediction, residual information in the form of, for example, quantized transform coefficients, etc. In an example, when the prediction mode is inter mode or bidirectional prediction mode, the inter prediction information is provided to the inter decoder (880); and when the prediction type is intra prediction type, the intra prediction information is provided to the intra decoder (872). The residual information can be inverse quantized and provided to the residual decoder (873). The inter-frame decoder (880) may be configured to receive the inter-frame prediction information and generate an inter-frame prediction result based on the inter-frame prediction information. The intra decoder (872) may be configured to receive intra prediction information and generate a prediction result based on the intra prediction information. The residual decoder (873) can be configured to perform inverse quantization to extract dequantized transform coefficients and process the dequantized transform coefficients to convert the residual from the frequency domain to the spatial domain. The residual decoder (873) can also utilize certain control information (including quantizer parameters (QP)) that can be provided by the entropy decoder (871) (since this may only be low-data-volume control information, the data path is not depicted). The reconstruction module (874) can be configured to combine the residual output by the residual decoder (873) with the prediction result (output by the inter-frame prediction module or the intra-frame prediction module, as appropriate) in the spatial domain to form a reconstructed block, which forms part of a reconstructed picture, which is part of the reconstructed video. It should be noted that other suitable operations such as deblocking operations can also be performed to improve visual quality. It should be noted that the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented using any suitable technology. In some example embodiments, the video encoders (403), (603), and (703) and the video decoders (410), (510), and (810) may be implemented 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.

[0001] Returning to the intra prediction process, in the intra prediction process, samples in a block (e.g., a luma or chroma prediction block, or a coding block if not further partitioned into prediction blocks) are predicted from samples in an adjacent row, the next adjacent row, or other rows or rows, or a combination thereof, to generate a prediction block. The residual between the actual block being coded and the prediction block can then be processed by a transform followed by quantization. Various intra prediction modes can be made available, and parameters related to intra mode selection and other parameters can be signaled in the bitstream. For example, the various intra prediction modes can be associated with a row position or positions for prediction samples, a direction along which prediction samples are selected from the prediction row or rows, and other special intra prediction modes.

[0002] For example, a set of intra-frame prediction modes (interchangeably referred to as "intra-frame modes") may include a predefined number of directional intra-frame prediction modes. As described above with respect to the example implementation of FIG. 1 , these intra-frame prediction modes may correspond to a predefined number of directions along which out-of-block samples are selected as predictions for samples being predicted in a particular block. In another specific example implementation, eight (8) main directional modes may be supported and predefined, corresponding to angles from 45 degrees to 207 degrees from the horizontal axis.

[0003] In some other implementations of intra prediction, in order to further exploit more types of spatial redundancy in directional textures, the directional intra mode can be further extended to a set of angles with finer granularity. Figure 9 As shown, the above-mentioned 8-angle implementation can be configured to provide eight nominal angles, namely V_PRED, H_PRED, D45_PRED, D135_PRED, D113_PRED, D157_PRED, D203_PRED and D67_PRED, and for each nominal angle, a predefined number (e.g., 7) of finer angles can be added. With such an extension, a larger total number (e.g., 56 in this example) of directional angles can be used for intra prediction, corresponding to the same number of predefined directional intra modes. The predicted angle can be represented by the nominal intra angle plus the angle δ. For the above-mentioned specific example with 7 finer angular directions for each nominal angle, the angle δ can be a step size of -3 to 3 times 3 degrees.

[0004] The above-mentioned directional intra prediction may also be referred to as unidirectional intra prediction, which is different from the bidirectional intra prediction (also referred to as intra bidirectional prediction) described later in this disclosure.

[0005] In some implementations, instead of or in addition to the directional intra-frame modes described above, a predefined number of non-directional intra-frame prediction modes may be predefined and made available. For example, five non-directional intra-frame prediction modes referred to as smooth intra-frame prediction modes may be specified. These non-directional intra-frame prediction modes may be specifically referred to as DC intra-frame mode, PAETH intra-frame mode, SMOOTH intra-frame mode, SMOOTH_V intra-frame mode, and SMOOTH_H intra-frame mode. Figure 10 The prediction of samples for a particular block under these example non-directional modes is shown in . As an example, Figure 10A 4×4 block 1002 is shown that is predicted by samples from the top and / or left neighboring rows. A particular sample 1010 in block 1002 may correspond to sample 1004 directly above sample 1010 in the top neighboring row of block 1002, sample 1006 above and to the left of sample 1010, which is the intersection of the top and left neighboring rows, and sample 1008 directly to the left of sample 1010 in the left neighboring row of block 1002. For the example DC intra prediction mode, the average of left neighboring sample 1008 and above neighboring sample 1004 may be used as the prediction value for sample 1010. For the example PAETH intra prediction mode, top reference sample 1004, left reference sample 1008, and above left reference sample 1006 may be obtained, and whichever of these three reference samples is closest to (top + left − above left) may be set as the prediction value for sample 1010. For the example SMOOTH_V intra prediction mode, sample 1010 can be predicted by quadratic interpolation in the vertical direction of the top left neighboring sample 1006 and the left neighboring sample 1008. For the example SMOOTH_H intra prediction mode, sample 1010 can be predicted by quadratic interpolation in the horizontal direction of the top left neighboring sample 1006 and the top neighboring sample 1004. For the example SMOOTH intra prediction mode, sample 1010 can be predicted by the average of the quadratic interpolation in the vertical and horizontal directions. The above non-directional intra mode implementation is shown as a non-limiting example only. Other non-directional selections of other neighboring rows and samples, as well as ways of combining prediction samples to predict a specific sample in the prediction block are also contemplated.

[0006] The encoder can be signaled in the bitstream to select a specific intra-prediction mode from the above-mentioned directional modes or non-directional modes at various coding levels (picture, slice, block, unit, etc.). In some example implementations, the exemplary 8 nominal directional modes and 5 non-angular smoothing modes (a total of 13 options) can be first signaled. Then, if the signaled mode is one of the 8 nominal angular intra-frame modes, an index is further signaled to indicate the selected angle δ to the corresponding signaled nominal angle. In some other example implementations, all intra-frame prediction modes can be indexed together (e.g., 56 directional modes plus 5 non-directional modes to produce 61 intra-frame prediction modes) for signaling.

[0007] In some example implementations, Example 56 or other number of directional intra prediction modes may be implemented using a unified directional predictor that projects each sample of the block to a reference subsample location and interpolates the reference samples through a 2-tap bilinear filter.

[0008] In some implementations, in order to capture the attenuated spatial correlation of references with edges, additional filter modes called FILTER INTRA modes can be designed. For these modes, the predicted samples within the block in addition to the out-of-block samples can be used as intra-prediction reference samples for some small blocks within the block. For example, these modes can be predefined and made available for intra-prediction of at least luminance blocks (or only luminance blocks). A predefined number (e.g., five) of filter intra modes can be pre-designed, each of which is represented by a set of n-tap filters (e.g., 7-tap filters) reflecting the correlation between, for example, the samples in a 4×2 small block and its n adjacent neighbors. In other words, the weight factors of the n-tap filters can be position-dependent. Taking 8×8 blocks, 4×2 small blocks, and 7-tap filtering as an example, as Figure 11 As shown, the 8×8 block 1102 can be divided into 8 4×2 small blocks. Figure 11 Indicated by B0, B1, B2, B3, B4, B5, B6 and B7. For each small block, Figure 11 Its 7 neighbors indicated by R0 to R6 in the block can be used to predict the samples in the current block. For block B0, all neighbors may have been reconstructed. But for other blocks, some neighbors are in the current block and therefore may not be reconstructed. Then the prediction values ​​of the immediately adjacent neighbors are used as reference. For example, Figure 11 All neighbors of the tile B7 shown in FIG are not reconstructed, so instead prediction samples of neighbors such as B4, B5 and / or a portion of B6 are used.

[0009] In some implementations of intra prediction, one color component can be predicted using one or more other color components. The color component can be any of the YCrCb, RGB, XYZ color spaces, etc. For example, a prediction of a chroma component (e.g., a chroma block) from a luma component (e.g., a luma reference sample) can be implemented, referred to as chroma from luma or CfL. In some example implementations, only a number of cross-color predictions from luma to chroma are allowed. For example, the chroma samples in a chroma block can be modeled as linear functions of the corresponding reconstructed luma samples. CfL prediction can be achieved as follows: CfL(α)=α×L AC +DC (1)

[0010] Among them, L ACrepresents the AC contribution of the luma component, α represents the parameters of the linear model, and DC represents the DC contribution of the chroma components. For example, for each sample of a block, an AC component is obtained, while a DC component is obtained for the entire block. Specifically, the reconstructed luma samples can be subsampled to the chroma resolution, and then the average luma value (DC of luma) can be subtracted from each luma value to form the AC contribution in luma. The AC contribution of luma is then used in the linear model of equation (1) to predict the AC values ​​of the chroma components. In order to approximate or predict the chroma AC component from the luma AC contribution, instead of requiring the decoder to calculate the scaling parameters, the example CfL implementation can determine the parameter α based on the original chroma samples and signal them in the bitstream. This reduces the complexity of the decoder and produces more accurate predictions. As for the DC contribution of the chroma component, in some example implementations, it can be calculated using the intra-frame DC mode within the chroma component.

[0011] Returning to intra prediction, in some example implementations, prediction of samples in a coding block or prediction block can be based on one of a set of reference lines. In other words, rather than always using the nearest neighboring line (e.g., the immediately top neighboring line or the immediately left neighboring line of the prediction block as shown in Figure 1 above), multiple reference lines can be provided as options for selection for intra prediction. Such intra prediction implementations may be referred to as Multiple Reference Line Selection (MRLS). In these implementations, the encoder determines and signals which of the multiple reference lines to use to generate intra prediction values. On the decoder side, after resolving the reference line index, the intra prediction for the current intra prediction block can be generated by identifying reconstructed reference samples by looking up the specified reference line according to the intra prediction mode (e.g., directional mode, non-directional mode, and other intra prediction modes). In some implementations, the reference line index can be signaled at the coding block level, and only one of the multiple reference lines can be selected and used for intra prediction of a coding block. In some examples, more than one reference line can be selected for intra prediction. For example, more than one reference line may be combined, averaged, interpolated, or in any other manner, with or without weights, to generate a prediction.In some example implementations, MRLS may be applied only to the luma component, and not to the chroma components.

[0012] exist Figure 12 In the figure, an example of MRLS with four reference lines is depicted. Figure 12As shown in the example of , the intra-frame coding block 1202 can be predicted based on four horizontal reference lines 1204, 1206, 1208 and 1210 and one of the four vertical reference lines 1212, 1214, 1216 and 1218. Among these reference lines, 1210 and 1218 are immediately adjacent reference lines. The reference lines can be indexed according to the distance between the reference lines and the coding block. For example, reference lines 1210 and 1218 can be called zero reference lines, and other reference lines can be called non-zero reference lines. Specifically, reference lines 1208 and 1216 can be referenced as first reference lines; reference lines 1206 and 1214 can be referenced as second reference lines; and reference lines 1204 and 1212 can be referenced as third reference lines.

[0013] In some embodiments, for a particular intra-coded coding block, coding unit, prediction block, or prediction unit, its intra mode needs to be signaled in the bitstream by one or more syntax elements. As described above, the number of possible intra-frame prediction modes may be enormous, and there may be 62 available intra-frame prediction modes: 56 directional intra-frame prediction modes, 5 non-directional modes, and one luminance-derived chrominance mode (e.g., for chrominance components only). To signal these intra-frame prediction modes, a first syntax may be signaled to indicate which nominal angle or non-directional mode is equal to the nominal mode of the current block. Then, if the mode of the current block is a directional mode, a second syntax may be signaled to indicate which delta angle is equal to the delta angle of the current block. In some cases during video encoding and / or decoding, there may be a strong correlation between the intra-frame prediction mode of the current block and its neighboring blocks.

[0014] In various embodiments, this correlation can be exploited to design more efficient syntax for intra-mode coding. In some implementations, the available intra-prediction modes of a current block can be partitioned into multiple intra-prediction mode sets based on the intra-prediction modes of its neighboring blocks. To obtain the intra-prediction mode of the current block, first, a mode set index can be signaled to indicate the mode set index of the intra-prediction mode of the current block; second, a mode index can be signaled to indicate the index of the intra-prediction mode within the mode set.

[0015] Here, in various embodiments of the present disclosure, “signaling XYZ” may refer to encoding XYZ into a coded bitstream during an encoding process; and / or, after the coded bitstream is sent from one device to another device, “signaling XYZ” may refer to decoding / extracting XYZ from the coded bitstream during a decoding process.

[0016] For example, in some of the above implementations, the plurality of available intra-frame prediction modes may include 62 different modes, including, for example, 56 directional intra-frame prediction modes (e.g., 8 nominal directions with 7 fine angles in each nominal direction), 5 non-directional modes, and a chroma-derived-from-luminance mode (for chroma components only). Once an intra-frame mode is selected for a particular coding block, coding unit, prediction block, or prediction during the encoding process, signaling corresponding to the selected intra-frame mode needs to be included in the bitstream. The signaling syntax must be able to distinguish all 62 modes in some way. For example, a single syntax with 62 indices can be used to signal the 62 modes, with each index corresponding to a mode. In some other example implementations, one syntax can be signaled to indicate which nominal angle or non-directional mode is used as the nominal mode for the current block, and then, if the nominal mode for the current block is a directional mode, another syntax can be signaled to indicate which delta angle is selected for the current block.

[0017] Since the various syntaxes associated with intra-frame coding typically occupy a large portion of the bitstream, and intra-frame mode selection must be performed very frequently, for example at various coding levels, reducing the number of bits used for intra-frame mode signaling is crucial to improving video coding efficiency. In fact, the usage of various intra-frame prediction modes can follow certain statistical patterns, and such usage patterns can be used to design the indexing and signaling syntax of intra-frame modes, thereby improving signaling efficiency. In addition, on average, there may be some correlation between intra-frame mode selections from block to block. Such correlation can be obtained offline on a statistical basis and taken into account in the syntax design for signaling intra-frame mode selection. The goal is to reduce the number of bits of signaling syntax elements in the coded bitstream on average. For example, some general statistics can indicate that there may be a strong correlation between the best intra-frame prediction mode of the current block and its neighboring blocks. Such correlation can be exploited when designing the syntax for intra-frame mode coding.

[0018] In some embodiments, to improve video encoding / decoding performance, offset-based refinement for intra prediction (ORIP) may be used after generating intra prediction samples. When ORIP is applied, the prediction samples are refined by adding offset values.

[0019] like Figure 13As shown, intra prediction (1330) is performed based on reference samples. The reference samples may include samples from one or more left reference rows (1312) and / or one or more top reference rows (1310). Offset-based intra prediction refinement (ORIP) (1350) may generate offset values ​​using neighboring reference samples. In some implementations, the neighboring reference samples of the ORIP may be the same set as the reference samples for intra prediction. In some other implementations, the neighboring reference samples of the ORIP may be a different set than the reference samples for intra prediction.

[0020] In reference Figure 14A and Figure 14B In some implementations of , ORIP can be performed at the 4×4 sub-block level. For each 4×4 sub-block (1471, 1472, 1473, and / or 1474), offsets are generated from its neighboring samples. For example, for the first sub-block (1471), offsets are generated from its top neighboring samples (P1, P2, P3, and P4 in 1420), left neighboring samples (P5, P6, P7, and P8 in 1410), and / or upper left neighboring sample (P0) (1401). In some implementations, the top neighboring samples may include both the top neighboring samples (P1, P2, P3, and P4 in 1420) and the upper left neighboring sample (P0) (1401). In some other implementations, the left neighboring samples may include both the left neighboring samples (P5, P6, P7, and P8 in 1410) and the upper left neighboring sample (P0) (1401).

[0021] The first sub-block (1471) includes 4x4 pixels, and each of the 4x4 pixels corresponds to predN, which is the Nth neighboring prediction sample before refinement, for example, pred0, pred1, pred2, ... pred16.

[0022] In various embodiments, the offset value of each pixel of a given sub-block may be calculated based on neighboring samples according to a formula. The formula may be a predefined formula or a formula indicated by a parameter encoded in the encoded bitstream.

[0023] In reference Figure 14B In some implementations of , the offset value (offset(k)) of the k-th position of a given sub-block may be generated as follows: pred_refined k =clip3(pred k +offset(k)) (3)

[0024] W kn is a predefined weight used for offset calculation.n are the values ​​of the neighboring samples (e.g., P0, P1, P2, ..., P8). k is the predicted value of the pixel after applying intra prediction or other prediction (e.g., inter prediction). pred_refined k is the thinned value of the pixel after applying ORIP. clip3() is the clip3 mathematical function. n is an integer from 0 to 8, inclusive. k is an integer from 0 to 15, inclusive.

[0025] In some implementations, W kn It can be predefined and can be obtained according to Table 1. Table 1: Predefined weights for offset calculation k <![CDATA[W k0 ]]> <![CDATA[W k1 ]]> <![CDATA[W k2 ]]> <![CDATA[W k3 ]]> <![CDATA[W k4 ]]> <![CDATA[W k5 ]]> <![CDATA[W k6 ]]> <![CDATA[W k7 ]]> <![CDATA[W k8 ]]> 0 4 16 4 0 0 16 4 0 0 1 2 4 16 4 0 8 2 0 0 2 1 0 4 16 4 4 1 0 0 3 0 0 2 4 16 2 0 0 0 4 2 8 2 0 0 4 16 4 0 5 0 2 8 2 0 2 8 2 0 6 0 0 2 8 2 1 4 1 0 7 0 0 0 2 8 1 2 0 0 8 0 4 0 0 0 0 4 16 4 9 0 0 4 0 0 0 2 8 2 10 0 0 1 4 1 0 1 4 1 11 0 0 0 2 4 0 0 4 0 12 0 0 1 0 0 0 2 4 16 13 0 0 0 1 0 0 1 2 8 14 0 0 1 2 1 0 0 1 4 15 0 0 0 1 2 0 0 1 2

[0026] In some other implementations, sub-block based ORIP may be applied only to a predefined set of intra prediction modes, and / or may be used differently for luma and chroma depending on the intra prediction mode. Table 2 shows one implementation of sub-block based ORIP according to various intra prediction modes and luma or chroma channels. Taking the luma channel as an example: when the prediction mode is DC or SMOOTH, ORIP is always ON and no additional signaling is required; when the prediction mode is HOR / VER and angle_delta is equal to 0, block-level signaling is required to enable / disable ORIP; and / or when the intra prediction mode is other modes, ORIP is always OFF and no additional signaling is required. Table 2: Mode-dependent ON / OFF of the proposed method

[0027] Referring back to the second 4×4 sub-block (1473), due to its relative position to the first 4×4 sub-block (1471), the top neighboring samples of the second sub-block may be some pixels of the first sub-block: P1 of the second sub-block may be pred12 of the first block, P2 of the second sub-block may be pred13 of the first sub-block, P3 of the second sub-block may be pred14 of the first sub-block, and P4 of the second sub-block may be pred15 of the first sub-block. The top left neighboring sample (P0) of the second sub-block may be the left neighboring sample (P8) of the first sub-block.

[0028] In various embodiments, the available intra-frame prediction modes or mode options for a current block being encoded may be partitioned into multiple intra-frame prediction mode sets. Each set may be assigned a mode set index. Each set may contain multiple intra-frame mode prediction modes. The manner in which the available intra-frame prediction modes are partitioned and ordered, and the order of the intra-frame prediction modes within each of the mode sets may be determined based on correlations between intra-frame prediction modes between blocks, at least in part based on the intra-frame prediction modes used by their neighboring blocks. The intra-frame prediction modes used by neighboring blocks may be referred to as "reference intra-frame prediction modes" or "reference modes." The intra-frame prediction mode for a particular unit may be determined and selected. The selection of the intra-frame prediction mode may be signaled. First, a mode set index may be signaled to indicate the mode set index of the intra-frame prediction mode set containing the selected intra-frame prediction mode. Second, a mode index (alternatively referred to as a mode position index within the set) may be signaled to indicate the index of the selected intra-frame prediction mode within the mode set.

[0029] The general implementation of the intra-frame prediction mode division and sorting above and the specific examples below use statistical effects and neighboring correlation to dynamically index these modes, so that the design of the syntax used to signal their selection in the coded video bitstream can be optimized to improve coding efficiency. For example, these implementations can help reduce the amount of syntax used for signaling and help more efficiently generate context for entropy coding.

[0030] The various embodiments and / or implementations described in this disclosure can be used alone or in combination in any order. In addition, a part, all or any part or all combination of these embodiments and / or implementations can be implemented as a part of an encoder and / or decoder, and can be implemented with hardware and / or software. For example, they can be hard-coded in a dedicated processing circuit system (e.g., one or more integrated circuits). In another example, they can be implemented by one or more processors executing a program stored in a non-transient computer-readable medium.

[0031] There may be some issues / problems associated with intra-mode coding. For example, hardware implementation of intra-mode coding, especially the construction of the intra-mode list for small blocks, may be very challenging.

[0032] The present disclosure describes various embodiments of intra-prediction mode coding in video encoding and / or decoding that address at least one of the problems / difficulties discussed above, enabling efficient software / hardware implementations for improved intra-mode coding. In some embodiments, signaling and / or encoding of intra-prediction modes for small blocks can be implemented according to predefined rules to simplify syntax for efficient software / hardware implementations.

[0033] In various embodiments, reference Figure 15 , a method 1500 for intra-frame prediction mode encoding in video decoding, the method 1500 may include some or all of the following steps: step 1510, receiving a coded video bitstream by an apparatus including a memory storing instructions and a processor communicating with the memory; step 1520, constructing an intra-frame mode list for a block in the coded video bitstream according to a predefined rule based on the size of the block by the apparatus; step 1530, dividing the intra-frame mode list into multiple intra-frame mode sets for the block by the apparatus; step 1540, extracting a set index indicating an intra-frame mode set in multiple intra-frame mode sets from the coded video bitstream by the apparatus; step 1550, extracting a mode index indicating an intra-frame prediction mode in the intra-frame mode set from the coded video bitstream by the apparatus; step 1560, determining an intra-frame prediction mode of the block based on the set index and the mode index by the apparatus; and / or step 1570, decoding the coded video bitstream by the apparatus based on the intra-frame prediction mode.

[0034] In various embodiments of the present disclosure, the size of a block (such as, but not limited to, a coding block, a prediction block, or a transform block) may refer to the width or height of the block. The width or height of the block may be an integer in pixels. In various embodiments of the present disclosure, the size of a block may refer to the area size of the block. The area size of the block may be an integer calculated in pixels by multiplying the width of the block by the height of the block. In some different embodiments of the present disclosure, the size of a block may refer to the maximum value of the width or height of the block, the minimum value of the width or height of the block, or the aspect ratio of the block. The aspect ratio of the block may be calculated as the width of the block divided by the height, or may be calculated as the height of the block divided by the width.

[0035] In some implementations, the mode type of the intra mode may include at least one of the following: a directional mode, a non-directional mode, a smoothing mode (e.g., smooth, smooth_v, smooth_h), a DC mode, a PAETH mode, and / or a mode that generates prediction samples according to a given prediction direction. In some other implementations, in a loose classification, the directional mode may broadly include: any mode that is not smooth (smooth, smooth_v, smooth_h), a DC or PAETH mode; and any mode that generates prediction samples according to a given prediction direction. In some other implementations, the non-directional mode may include a smoothing mode (e.g., smooth, smooth_v, smooth_h), a DC mode, a PAETH mode, and a luma-for-chroma mode. In some other implementations, in a loose classification, the non-directional mode may broadly include any mode that is not a directional mode.

[0036] In some implementations, the available intra prediction modes for the current block may be divided / split into multiple intra prediction mode sets. To obtain the intra prediction mode for the current block, first, a mode set index may be signaled to indicate the mode set index of the intra prediction mode for the current block; second, a mode index may be signaled to indicate the index of the intra prediction mode within the mode set.

[0037] Here, in various embodiments of the present disclosure, a "first" mode set refers not only to "one" mode set, but also to the "first" mode set with the smallest mode set index, a "second" mode set refers not only to "another" mode set, but also to the "second" mode set with the second smallest mode set index, and so on. For example, the number of intra-frame prediction mode sets can be indicated by M, and the mode set index can range from, for example, 1 to M or 0 to M-1. When the mode set index ranges from 1 to M, the "first" mode set is the "first" mode set with a mode set index of 1, the "second" mode set is the "second" mode set with a mode set index of 2, and so on. When the mode set index ranges from 0 to M-1, the "first" mode set is the "first" mode set with a mode set index of 0, the "second" mode set is the "second" mode set with a mode set index of 1, and so on.

[0038] Here, in various embodiments of the present disclosure, “signaling XYZ” may refer to encoding XYZ into a coded bitstream during the encoding process; and / or, after the coded bitstream is sent from one device to another device, “signaling XYZ” may refer to decoding / extracting XYZ from the coded bitstream during the decoding process.

[0039] Here, in various embodiments of the present disclosure, a “block” may refer to a prediction block, a coding block, a transform block, or a coding unit (CU).

[0040] Referring to step 1510, the device may be Figure 5 electronic device (530) or Figure 8 In some implementations, the apparatus may be a video decoder (810) in Figure 6 In other implementations, the apparatus may be Figure 5 a portion of an electronic device (530) in Figure 8 A portion of the video decoder (810) in Figure 6 The coded video bitstream can be a part of the decoder (633) in the encoder (620). Figure 8 coded video sequence in , or Figure 6 or Figure 7The intermediate coded data in . A block can refer to a coded block or an encoded block.

[0041] Referring to step 1520, the apparatus may construct an intra-mode list for the block according to a predefined rule based on the block size. Referring to step 1530, the apparatus may divide the intra-mode list into a plurality of intra-mode sets for the block. The predefined rule may be one of a set of predefined rules, and may be selected from the set of predefined rules based on the block size.

[0042] In some implementations, an intra-mode list is constructed for the current block based on predefined rules. After the intra-mode list is constructed, the intra-prediction modes are divided into multiple intra-prediction mode sets according to their corresponding indexes in the intra-mode list. To signal the intra-prediction mode of the current block, first, a mode set index can be signaled to indicate the mode set index of the intra-prediction mode for the current block; second, a mode index can be signaled to indicate the index of the intra-prediction mode within the mode set. The predefined rules can be different for different block sizes, which can be indicated by the number of samples in the block.

[0043] In various embodiments, in response to the size of the block being equal to or greater than a first threshold: the intra-mode list includes a first sub-list at the top of the list; and the first sub-list includes all non-directional intra-frame prediction modes. For example, when the intra-frame mode list is divided into multiple intra-frame mode sets, since the non-directional intra-frame prediction mode is at the top of the list, the non-directional intra-frame prediction mode can be divided into the first intra-frame mode set. In some implementations, the non-directional modes may include smoothing modes (e.g., smooth, smooth_v, smooth_h), DC modes, PAETH modes, and luma-to-chroma modes. In some other implementations, in a loose classification, non-directional modes may broadly include any mode that is not a directional mode.

[0044] In some implementations, for blocks with a block size equal to or greater than a first threshold (TH1), first, all non-directional modes are added to the mode list. Second, the offset is added to the directional intra-frame prediction mode of the neighboring block to derive an intra-frame prediction mode, and the derived intra-frame prediction mode is added to the intra-frame mode list. Finally, after adding all derived intra-frame prediction modes, if the intra-frame prediction mode set is still not full, the default mode is used to fill the remaining positions in the intra-frame mode list. For one example, the first threshold is 8×8. For another example, the first threshold is 32 in terms of the number of samples.

[0045] In some other implementations, in response to a neighboring block using a directional intra prediction mode: the intra mode list includes a second sublist in the list that is adjacent to the first sublist; and the second sublist includes a plurality of derived intra prediction modes based on the directional intra prediction mode of the neighboring block. For example, when the intra mode list is divided into a plurality of intra mode sets, the plurality of derived intra prediction modes based on the directional intra prediction mode of the neighboring block may be divided into the first intra mode set or the second intra mode set because the plurality of derived intra prediction modes are adjacent to the non-directional intra mode from the top of the list. In some implementations, the neighboring block of the current block may include a top (upper) block of the current block, a left block of the current block, or both a top (upper) block and a left block of the current block.

[0046] In some other implementations, the plurality of derived intra-frame prediction modes include nine directional intra-frame prediction modes obtained by adding offsets [0, -1, +1, -2, +2, -3, +3, -4, +4] to the directional intra-frame prediction mode of the adjacent block. For example, when the directional intra-frame prediction mode of the adjacent block has a certain directional angle (x degrees) and the step size of the directional angle is 3 degrees, the plurality of derived intra-frame prediction modes may include nine directional intra-frame prediction modes with directional angles of x, x±3, x±6, x±9, and x±12 degrees.

[0047] In another example, the number of available intra prediction modes for the current block is 61, including 5 non-directional modes and 56 directional modes. When encoding a neighboring block of the current block using one or more directional intra prediction modes, first, the 5 non-directional modes are added to the mode list; second, 9 directional intra prediction modes are derived by adding offsets [0, -1, +1, -2, +2, -3, +3, -4, +4] to each directional mode of the neighboring block. When there is no directional mode for any neighboring block, the second step can be skipped. For one example, if only one neighboring block is encoded using one directional intra prediction mode, 9 directional intra prediction modes are derived, thereby adding 14 (=9+5) modes to the mode list, and then the default mode is added to the mode list. For another example, if two adjacent blocks are encoded using two directional intra prediction modes, 18 (=9*2) directional intra prediction modes can be derived, thereby adding 23 (=18+5) modes to the mode list, and then adding the default mode to the mode list. In some cases, if two adjacent blocks are encoded using two directional intra prediction modes, then after removing any duplication between the two derived 9 directional intra prediction modes, fewer than 18 directional intra prediction modes can be derived. In an extreme case, if two adjacent blocks are encoded using two identical directional intra prediction modes, then after removing duplication between the identical two derived 9 directional intra prediction modes, only 9 directional intra prediction modes can be derived.

[0048] In some other implementations, the intra-mode list includes a third sublist adjacent to the second sublist in the list; and the third sublist includes a default intra-prediction mode. In some other implementations, the default intra-prediction mode includes at least one nominal directional intra-prediction mode with a zero delta angle. For example, the default intra-prediction mode may include all other nominal directional intra-prediction modes with a zero delta angle that are not already included in the intra-prediction mode derived based on the directional intra-prediction mode of the neighboring block.

[0049] In various embodiments, in response to the size of the block being less than a first threshold: the intra-frame mode list includes a first sub-list at the top of the list; and the first sub-list includes all non-directional intra-frame prediction modes. In some implementations, in response to the neighboring block using a directional intra-frame prediction mode: the intra-frame mode list includes a second sub-list in the list that is adjacent to the first sub-list; and the second sub-list includes all directional intra-frame prediction modes for the neighboring block. In some other implementations, the intra-frame mode list includes a third sub-list in the list that is adjacent to the second sub-list; and the third sub-list includes a default intra-frame prediction mode. In some other implementations, in response to the number of all directional intra-frame prediction modes for the neighboring block being greater than 1: the directional intra-frame prediction modes of the neighboring blocks in the intra-frame mode list are sorted in order from smallest to largest angle.

[0050] In some implementations, for blocks with a block size less than a first threshold TH1, first, all non-directional modes are added to the mode list; second, the directional intra-frame prediction modes of the adjacent blocks are added to the intra-frame mode list; then, the default mode is used to fill the remaining positions in the intra-frame mode list. In one example, the first threshold (TH1) is set to a block size of 8×8. In another example, if there are two directional intra-frame prediction modes in adjacent blocks, the directional mode with the smaller angle is added to the mode list first. For example, the vertical mode is 90 degrees and the horizontal mode is 180 degrees, and the angle of the vertical mode is smaller than the angle of the horizontal mode, so the vertical mode is added to the mode list first.

[0051] In various embodiments, in response to the size of the block being less than a first threshold: the intra-frame mode list includes a predefined default intra-frame prediction mode. In some implementations, the predefined default intra-frame prediction modes in the intra-frame mode list have the following order: first, all non-directional intra-frame prediction modes, second, directional intra-frame prediction modes with a delta angle of zero, third, directional intra-frame prediction modes with a delta angle of +2 times or -2 times the unit step size, fourth, directional intra-frame prediction modes with a delta angle of +1 times or -1 times the unit step size, and / or fifth, directional intra-frame prediction modes with a delta angle of +3 times or -3 times the unit step size. In some implementations, the unit step size can be a default value of 3 degrees.

[0052] In some implementations, for blocks with a block size less than a threshold (TH1), all positions in the intra mode list are filled with predefined default modes. For one example, the predefined default modes may be listed as follows: first, all non-directional modes are added to the mode list; second, directional modes with a delta angle equal to 0 are added to the mode list; third, directional modes with a delta angle equal to 2 and -2 are added to the mode list; fourth, directional modes with a delta angle equal to 1 and -1 are added to the mode list; and / or fifth, directional modes with a delta angle equal to 3 and -3 are added to the mode list.

[0053] In various embodiments, in response to the block size being less than a first threshold: the intra mode set indicated by the set index belongs to N intra mode sets, where the N intra mode sets are at the top of the plurality of intra mode sets and N is a positive integer.

[0054] In some implementations, for blocks less than a threshold (TH1), only the first N intra-mode sets are allowed and signaled for the current block. N is a positive integer. In one example, N is set to 1, indicating that only the first intra-mode set is allowed and signaled for the current block. In another example, N is set to 2, indicating that only the first intra-mode set and the second intra-mode set are allowed and signaled for the current block.

[0055] In various embodiments, a device for intra-frame prediction mode encoding in video decoding is provided. The device includes: a receiving module configured to receive a coded video bitstream; a mode list construction module configured to construct an intra-frame mode list for a block in the coded video bitstream according to a predefined rule based on the size of the block; a partitioning module configured to partition the intra-frame mode list into multiple intra-frame mode sets for the block; a set index extraction module configured to extract a set index indicating one or more intra-frame mode sets in the multiple intra-frame mode sets from the coded video bitstream; a mode index extraction module configured to extract a mode index indicating an intra-frame prediction mode in the intra-frame mode set from the coded video bitstream; a determination module configured to determine the intra-frame prediction mode of the block based on the set index and the mode index; and a decoding module configured to decode the coded video bitstream based on the intra-frame prediction mode.

[0056] In various embodiments, a device for intra-frame prediction mode encoding in video decoding is provided. The device includes a memory storing instructions and a processor in communication with the memory. When the processor executes the instructions, the processor is configured to cause the device to perform the above-described method for intra-frame prediction mode encoding in video decoding.

[0057] In various embodiments, a non-transitory computer-readable storage medium storing instructions is provided, which, when executed by a computer for video decoding and / or encoding, causes the computer to perform the above-mentioned method for intra-frame prediction mode encoding in video decoding.

[0058] The embodiments of the present disclosure may be used alone or in any combination in any order. In addition, each of the methods (or embodiments), encoders, and decoders may be implemented by a processing circuit system (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored in a non-transitory computer-readable medium. The embodiments of the present disclosure may be applied to luminance blocks or chrominance blocks; and within a chrominance block, the embodiments may be applied to more than one color component individually or together.

[0059] In the present disclosure, any steps or operations in various embodiments may be combined in any amount or in any order as needed. In the present disclosure, two or more steps or operations in various embodiments may be performed in parallel.

[0060] The above techniques can be implemented as computer software using computer-readable instructions and physically stored in one or more computer-readable media. For example, Figure 16 A computer system (2600) suitable for implementing certain embodiments of the disclosed subject matter is shown.

[0061] Computer software may be encoded using any suitable machine code or computer language, which may be assembled, compiled, linked, or the like to create code comprising instructions that may be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), or the like, or through interpretation, microcode execution, or the like.

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

[0063] Figure 16 The components shown for the computer system (2600) are exemplary in nature and are not intended to suggest any limitation on the scope of use or functionality of computer software implementing embodiments of the present disclosure. Neither should the configuration of components be interpreted as having any dependency or requirement relating to any one or combination of components shown in the exemplary embodiment of the computer system (2600).

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

[0065] The input human-machine interface device may include one or more of the following (only one of each is depicted): keyboard (2601), mouse (2602), touchpad (2603), touch screen (2610), data gloves (not shown), joystick (2605), microphone (2606), scanner (2607), camera (2608).

[0066] The computer system (2600) may also include certain human-machine interface output devices. Such human-machine interface output devices can stimulate one or more senses of a human user through, for example, tactile output, sound, light, and smell / taste. Such human-machine interface output devices may include: tactile output devices (e.g., tactile feedback through a touch screen (2610), a data glove (not shown), or a joystick (2605), although there may also be tactile feedback devices that do not function as input devices); audio output devices (e.g., speakers (2609), headphones (not depicted)); visual output devices (e.g., screens (2610), including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touch screen input capabilities, each with or without tactile feedback capabilities—some of which may be capable of outputting two-dimensional visual output or more than three-dimensional output through, for example, stereoscopic image output; virtual reality glasses (not depicted); holographic displays and smoke generators (not depicted)); and printers (not depicted).

[0067] The computer system (2600) may also include human-accessible storage devices and their associated media, such as optical media including CD / DVD ROM / RW (2620) including CD / DVD etc. media (2621), thumb drives (2622), removable hard drives or solid-state drives (2623), traditional magnetic media such as tapes and floppy disks (not depicted), dedicated ROM / ASIC / PLD based devices such as security dongles (not depicted), etc.

[0068] Those skilled in the art will also understand that the term "computer-readable media" used in connection with the presently disclosed subject matter does not include transmission media, carrier waves, or other transient signals.

[0069] The computer system (2600) may also include an interface (2654) to one or more communication networks (2655). The network may be, for example, a wireless network, a wired network, or an optical network. The network may also be a local area network, a wide area network, a metropolitan area network, an in-vehicle and industrial network, a real-time network, a delay-tolerant network, or the like. Examples of networks include: a local area network (e.g., Ethernet, wireless LAN), a cellular network including GSM, 3G, 4G, 5G, LTE, etc., a television wired or wireless wide area digital network including cable television, satellite television, and terrestrial broadcast television, a vehicle and industrial network including a CAN bus, etc. Some networks typically require an external network interface adapter attached to some common data port or peripheral bus (2649) (e.g., a USB port of the computer system (2600)); other networks are typically integrated into the core of the computer system (2600) by attaching to the 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 (2600) can communicate with other entities. Such communications may be one-way receive only (e.g., broadcast television), one-way send only (e.g., a CAN bus to certain CAN bus devices), or two-way (e.g., to other computer systems using a local area digital network or a wide area digital network). Certain protocols and protocol stacks may be used on each of these networks and network interfaces as described above.

[0070] The above-mentioned human interface device, human-accessible storage device, and network interface may be attached to the core ( 2640 ) of the computer system ( 2600 ).

[0071] The core (2640) may include one or more central processing units (CPUs) (2641), graphics processing units (GPUs) (2642), specialized programmable processing units in the form of field programmable gate arrays (FPGAs) (2643), hardware accelerators (2644) for certain tasks, a graphics adapter (2650), and the like. These devices, along with read-only memory (ROM) (2645), random access memory (2646), and internal mass storage devices (e.g., internal non-user accessible hard drives, SSDs, etc.) (2647), may be connected via a system bus (2648). In some computer systems, the system bus (2648) may be accessed in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, and the like. Peripheral devices may be attached to the core's system bus (2648) directly or via a peripheral bus (2649). In an example, a screen (2610) may be connected to a graphics adapter (2650). Peripheral bus architectures include PCI, USB, and the like.

[0072] The CPU (2641), GPU (2642), FPGA (2643), and accelerator (2644) can execute certain instructions, which, when combined, can constitute the computer code mentioned above. The computer code can be stored in ROM (2645) or RAM (2646). Transient data can also be stored in RAM (2646), while permanent data can be stored in, for example, an internal mass storage device (2647). Fast storage and retrieval of any of the memory devices can be achieved by using a cache memory, which can be closely associated with one or more CPUs (2641), GPUs (2642), mass storage devices (2647), ROM (2645), RAM (2646), etc.

[0073] Computer readable media may have computer code thereon for performing various computer-implemented operations. These media and computer codes may be those specially designed and constructed for the purposes of this disclosure, or they may be of a type well known and available to those skilled in the art of computer software.

[0074] As a non-limiting example, a computer system (2600) having an architecture and in particular a core (2640) can provide functionality as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software implemented in one or more tangible computer-readable media. Such computer-readable media can be media associated with a user-accessible mass storage device as described above, as well as certain storage devices of the core (2640) having non-transitory properties, such as a core internal mass storage device (2647) or ROM (2645). Software that implements various embodiments of the present disclosure can be stored in such a device and executed by the core (2640). Depending on specific needs, the computer-readable medium may include one or more memory devices or chips. The software can cause the core (2640) and in particular the processor (including a CPU, GPU, FPGA, etc.) therein to perform specific processing or specific parts of specific processing described herein, including defining data structures stored in RAM (2646) and modifying such data structures according to processing defined by the software. Additionally or alternatively, the computer system may provide functionality as a result of logic hardwired or otherwise implemented in circuitry (e.g., accelerator (2644)) that may operate in place of or in conjunction with software to perform the specific processing or specific portions of the specific processing described herein. Where appropriate, references to software may encompass logic, and conversely, references to logic may encompass software. Where appropriate, references to computer-readable media may encompass circuitry (e.g., integrated circuits (ICs)) storing software for execution, circuitry embodying logic for execution, or both. The present disclosure encompasses any suitable combination of hardware and software.

[0075] Although specific inventions have been described with reference to illustrative embodiments, this description is not intended to be limiting. Based on this specification, various modifications to the illustrative embodiments and additional embodiments of the present invention will be apparent to those of ordinary skill in the art. Those skilled in the art will readily recognize that these and various other modifications may be made to the exemplary embodiments shown and described herein without departing from the spirit and scope of the present invention. Therefore, it is contemplated that the appended claims will encompass any such modifications and alternative embodiments. Certain proportions in the illustrations may be exaggerated, while other proportions may be minimized. Therefore, this disclosure and the accompanying drawings should be considered illustrative and not restrictive.

Claims

1. A method for video decoding, characterized in that: The method comprises: receiving an encoded video bitstream; constructing an intra-mode list for a block in the coded video bitstream according to a predefined rule, wherein the predefined rule is based on a size of the block; dividing the intra-mode list into a plurality of intra-mode sets for the block; extracting, from the coded video bitstream, a set index indicating one or more intra-mode sets among the plurality of intra-mode sets; Extracting a mode index indicating an intra prediction mode in the intra mode set from the coded video bitstream; determining an intra prediction mode for the block based on the set index and the mode index; and decoding the encoded video bitstream based on the intra prediction mode; The predefined rule includes: when the size of the block is equal to or greater than a first threshold, the intra mode list includes a first sublist located at the top of the list, and the first sublist includes all non-directional intra prediction modes.

2. The method according to claim 1, wherein: The first threshold is 8×8; or When the unit is the number of samples, the first threshold is 32.

3. The method according to claim 1, characterized in that The predefined rules include: When the adjacent block uses a directional intra prediction mode and the size of the block is greater than or equal to the first threshold: The intra-mode list includes a second sub-list in the list adjacent to the first sub-list; and The second sub-list includes a plurality of derived intra prediction modes based on the directional intra prediction modes of the neighboring blocks.

4. The method according to claim 3, wherein: The plurality of derived intra prediction modes include nine directional intra prediction modes obtained by adding offsets [0, -1, +1, -2, +2, -3, +3, -4, +4] to the directional intra prediction modes of the neighboring blocks.

5. The method according to claim 3, characterized in that The predefined rules include: The intra-mode list includes a third sub-list in the list adjacent to the second sub-list; and The third sub-list includes default intra prediction modes.

6. The method according to claim 5, characterized in that: The default intra prediction modes include at least one nominal directional intra prediction mode with a zero offset angle.

7. The method according to claim 1, wherein: When the size of the block is smaller than the first threshold: The intra-mode list includes the first sub-list at the top of the list; and The first sub-list includes all non-directional intra prediction modes.

8. The method according to claim 7, wherein: The intra-mode list includes a second sub-list in the list adjacent to the first sub-list; and The second sub-list includes default intra prediction modes.

9. A method for video encoding, characterized in that The method comprises: constructing an intra-mode list for a block in a coded video bitstream according to a predefined rule, wherein the predefined rule is based on a size of the block; Dividing the intra mode list into a plurality of intra mode sets for the coding block; determining a set index indicating an intra-mode set from the plurality of intra-mode sets; determining a mode index indicating an intra prediction mode in the intra mode set; Determining an intra prediction mode for the coding block based on the set index and the mode index; and Encoding the coding block based on the intra prediction mode; The predefined rule includes: when the size of the block is equal to or greater than a first threshold, the intra mode list includes a first sublist located at the top of the list, and the first sublist includes all non-directional intra prediction modes.

10. A device for video decoding, characterized in that: The device comprises: A receiving module, configured to receive a coded video bit stream; a mode list construction module, configured to construct an intra mode list for a block in the coded video bitstream according to a predefined rule, wherein the predefined rule is based on the size of the block; a dividing module, configured to divide the intra mode list into a plurality of intra mode sets for the block; a set index extraction module, configured to extract, from the coded video bitstream, a set index indicating one or more intra mode sets among the plurality of intra mode sets; a mode index extraction module, configured to extract a mode index indicating an intra prediction mode in the intra mode set from the coded video bitstream; a mode determination module, configured to determine an intra prediction mode of the block based on the set index and the mode index; and A decoding module, configured to decode the encoded video bit stream based on the intra-frame prediction mode; The predefined rule includes: when the size of the block is equal to or greater than a first threshold, the intra mode list includes a first sublist located at the top of the list, and the first sublist includes all non-directional intra prediction modes.

11. A device for video encoding, characterized in that The device comprises: a mode list construction module for constructing an intra-mode list for a block in a coded video bitstream according to a predefined rule, wherein the predefined rule is based on the size of the block; a dividing module, configured to divide the intra mode list into a plurality of intra mode sets of the coding block; a set index determining module, configured to determine a set index indicating an intra mode set among the plurality of intra mode sets; a mode index determining module, configured to determine a mode index indicating an intra prediction mode in the intra mode set; a mode determination module, configured to determine an intra prediction mode of the coding block based on the set index and the mode index; and An encoding module, configured to encode the coding block based on the intra-frame prediction mode; The predefined rule includes: when the size of the block is equal to or greater than a first threshold, the intra mode list includes a first sublist located at the top of the list, and the first sublist includes all non-directional intra prediction modes.

12. A device for video decoding, characterized in that The device comprises: a memory for storing instructions; and A processor in communication with the memory, wherein when the processor executes the instructions, the processor is configured to cause the device to perform the method according to any one of claims 1 to 8.

13. A device for video encoding, characterized in that The device comprises: a memory for storing instructions; and A processor in communication with the memory, wherein when the processor executes the instructions, the processor is configured to cause the device to perform the method of claim 9.

14. A non-transitory computer-readable storage medium storing instructions, characterized in that: When the instructions are executed by a processor, the instructions are configured to cause the processor to perform the method according to any one of claims 1 to 9.

15. A method for storing a bit stream, characterized in that: Execute the video encoding method according to claim 9 to generate a bit stream, and store the bit stream.

16. A method for transmitting a bit stream, characterized in that: Execute the video encoding method according to claim 9 to generate a bit stream, and transmit the bit stream.

17. A computer-readable storage medium having stored thereon a computer program / instruction and a bit stream, characterized in that: When the computer program / instructions are executed by a processor, the computer program / instructions implement the steps of the video encoding method according to claim 9 to generate the bit stream.