Intra predictive mode derivation for coding blocks

By deriving and storing intra-prediction modes from predefined regions and previously coded units, the method addresses inefficiencies in existing video coding technologies, enhancing compression efficiency and quality in video decoding.

JP7875379B2Active Publication Date: 2026-06-17TENCENT AMERICA LLC

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
TENCENT AMERICA LLC
Filing Date
2024-01-09
Publication Date
2026-06-17

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in efficiently deriving intra-prediction modes for coding blocks, particularly in handling spatial redundancy, which affects compression efficiency and quality.

Method used

The method involves deriving a second intra-prediction mode for a current block from a predefined region, including the current coding tree unit and previously coded units, and storing this mode for use in constructing a most probable mode list for adjacent blocks, while also considering transformation types and candidate block positions within defined areas.

Benefits of technology

This approach enhances video coding efficiency by improving intra-prediction mode derivation, leading to better compression performance and quality in video decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007875379000015
    Figure 0007875379000015
  • Figure 0007875379000016
    Figure 0007875379000016
  • Figure 0007875379000017
    Figure 0007875379000017
Patent Text Reader

Abstract

Aspects of the present disclosure include a method and apparatus for video coding. The apparatus includes a processing circuit that receives coded information of a current block in a current picture. The current block is coded using a first intra-prediction mode that is different from a plurality of intra-prediction modes, including a DC mode, a planar mode, and an angular intra-prediction mode. A candidate block in the current picture that is coded using an intra-prediction mode that is different from the plurality of intra-prediction modes is selected. If the candidate block is located within a predefined region, a second intra-prediction mode is derived for the candidate block from the plurality of intra-prediction modes. The second intra-prediction mode is associated with the current block and is used to select a transform for the current block and / or build a most probable mode (MPM) list for another block.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001]

[0001] Incorporation by Reference This application claims the benefit of priority of U.S. Patent Application No. 18 / 407,090, filed on January 8, 2024, entitled "INTRA PREDICTION MODE DERIVATION FOR CODING BLOCKS", which claims the benefit of priority of U.S. Provisional Application No. 63 / 437,972, filed on January 9, 2023, entitled "Intra Prediction Mode Derivation for Coding Blocks Coded by Unconventional Intra Prediction Mode". The disclosure of the prior application is hereby incorporated by reference in its entirety.

[0002]

[0002] This disclosure generally describes aspects related to video coding.

Background Art

[0003]

[0003] The description of the background art provided herein is intended to present the context of the present disclosure as a whole. The achievements of the currently named inventors, as described in this background art section and in each aspect of this specification, which may not be eligible as prior art at the time of filing, are not admitted as prior art to the present disclosure, either expressly or implicitly.

[0004]

[0004] Image / video compression can help transmit image / video data across different devices, storage, and networks with minimal quality degradation. In some examples, video codec techniques can compress video based on spatial and temporal redundancy. In one example, a video codec can use a technique called intra-prediction, which allows for image compression based on spatial redundancy. For example, intra-prediction can use reference data from the current picture being reconstructed for sample prediction. In another example, a video codec can use a technique called inter-prediction, which allows for image compression based on temporal redundancy. For example, inter-prediction can predict samples in the current picture from a previously reconstructed picture using motion compensation. Motion compensation can be represented by motion vectors (MV). [Overview of the project] [Means for solving the problem]

[0005]

[0005] Aspects of the present disclosure include methods and apparatus for video coding / decoding. In some examples, the apparatus for video decoding includes a processing circuit. The processing circuit receives coded information of a current block in a current picture. The current block is coded by a first intra-prediction mode different from a plurality of intra-prediction modes, including DC mode, planar mode, and angular intra-prediction mode. The processing circuit selects a candidate block in the current picture that is coded by a plurality of intra-prediction modes different from the intra-prediction mode. If the candidate block is located within a predefined region, the processing circuit derives a second intra-prediction mode for the candidate block from the plurality of intra-prediction modes. The second intra-prediction mode is associated with the current block. The processing circuit performs at least one of the following: (i) select a transformation of the current block based on the second intra-prediction mode associated with the current block and reconstruct the current block according to the selected transformation, or (ii) construct a most probable mode (MPM) for another block using the derived second intra-prediction mode associated with the current block.

[0006]

[0006] In one example, the other block is an adjacent block to the current block.

[0007]

[0007] In one example, a predefined region includes (i) the current coding tree unit (CTU) and (ii) one or more of at least one previously coded CTU.

[0008]

[0008] In one example, a predefined area is updated for blocks that will be coded after the current block has been coded.

[0009]

[0009] In one example, the size of the area of ​​a predetermined region is fixed.

[0010]

[0010] In one example, the processing circuit stores the derived second intra-prediction mode in the buffer of the current picture. When the current picture is a reference picture of another picture, the processing circuit uses the stored second intra-prediction mode to construct an MPM list of another block in the other picture.

[0011]

[0011] In one example, the processing circuit stores a second intra-prediction mode derived in units of M × N, where M and N can be positive integers.

[0012]

[0012] In one example, the processing circuit selects a transformation that is a quadratic transformation, and a primary transformation type is not selected based on the derived second intra-prediction mode.

[0013]

[0013] In one example, the first intra prediction mode is one of the following: intra block copy (IBC) mode, intra template matching (IntraTMP) mode, matrix-based intra prediction (MIP) mode, and palette mode.

[0014]

[0014] In one embodiment, the current block is coded by either the IBC mode or the IntraTMP mode. The processing circuit derives the second intra-prediction mode associated with the current block from a plurality of intra-prediction modes, including the DC mode, the planar mode, and the angular intra-prediction mode, by (i) checking at least one candidate block location in a predefined order and (ii) determining the second intra-prediction mode associated with the current block according to the intra-prediction mode associated with one of the at least one candidate block location. At least one candidate block location can be associated with a reference block indicated by a block vector (BV) associated with either the IBC mode or the IntraTMP mode.

[0015]

[0015] In one example, if the first candidate block position of at least one candidate block position does not have an associated intra-prediction mode which is one of a plurality of intra-prediction modes, the processing circuit skips the first candidate block position of at least one candidate block position. For example, if the first candidate block position of at least one candidate block position is located outside a predefined area (e.g., the predefined area described above), the first candidate block position of at least one candidate block position does not have an associated intra-prediction mode which is one of a plurality of intra-prediction modes.

[0016]

[0016] In one example, if the first candidate block position of at least one candidate block position is located outside a predefined area, the processing circuit replaces the first candidate block position of at least one candidate block position with a position within the predefined area.

[0017]

[0017] Aspects of the present disclosure also provide a non-temporary computer-readable medium that, when executed by a computer, stores instructions causing the computer to perform a method for video decoding / encoding.

[0018]

[0018] Further features, properties, and various advantages of the disclosed subject matter will become clearer from the following detailed description and accompanying drawings. [Brief explanation of the drawing]

[0019] [Figure 1]

[0019] This is a schematic diagram of an exemplary block diagram of the communication system (100). [Figure 2]

[0020] This is a schematic diagram of an exemplary block diagram of a decoder. [Figure 3]

[0021] This is a schematic diagram of an exemplary block diagram of an encoder. [Figure 4]

[0022] A diagram showing an intra prediction mode according to an aspect of the present disclosure (for example, 35 intra prediction modes such as those used in HEVC). [Figure 5]

[0023] A diagram showing an intra prediction mode according to an aspect of the present disclosure. [Figure 6]

[0024] A diagram showing an example of an intra block copy (IBC) mode according to an example of the present disclosure. [Figure 7]

[0025] A diagram showing an example of an intra template matching prediction (IntraTMP) mode according to an aspect of the present disclosure. [Figure 8]

[0026] A diagram showing an example of a matrix-based intra prediction (MIP) mode according to an aspect of the present disclosure. [[ID=1 XVIII]] [Figure 9]

[0027] A diagram showing an exemplary mapping from an intra prediction mode to a secondary transform set according to an aspect of the present disclosure. [Figure 10]

[0028] A diagram showing an example of candidate block positions used to derive the intra prediction mode of a current block according to an aspect of the present disclosure. [Figure 11]

[0029] A diagram showing an example of candidate block positions used to derive the intra prediction mode of a current block according to an aspect of the present disclosure. <00001XX]] [Figure 12]

[0030] A flowchart outlining a decoding process according to some aspects of the present disclosure. [Figure 13]

[0031] A flowchart outlining an encoding process according to some aspects of the present disclosure. [Figure 14]

[0032] A flowchart outlining a decoding process according to some aspects of the present disclosure. [Figure 15]

[0033] A flowchart outlining an encoding process according to some aspects of the present disclosure. [Figure 16]

[0034] This is a schematic diagram of a computer system in one configuration. [Modes for carrying out the invention]

[0020]

[0035] Figure 1 shows a block diagram of a video processing system (100) in several examples. The video processing system (100) is an application example of the disclosed subject matter, and is a video encoder and video decoder in a streaming environment. The disclosed subject matter may also be equally applicable to other video-enabled applications, such as video conferencing, digital TV, streaming services, and storage of compressed video on digital media including CDs, DVDs, memory sticks, etc.

[0021]

[0036] The video processing system (100) includes a capture subsystem (113), which may include a video source (101), such as a digital camera, that creates a stream (102) of uncompressed video pictures. In one example, the stream (102) of video pictures includes samples taken by the digital camera. The stream (102) of video pictures is shown in thick lines to emphasize that it is a larger amount of data compared to encoded video data (104) (or encoded video bitstream) and may be processed by an electronic device (120) which includes a video encoder (103) coupled to the video source (101). The video encoder (103) may include hardware, software, or a combination thereof to enable or implement aspects of the subject disclosed, as will be described in more detail below. The encoded video data (104) (or encoded video bitstream) is shown in thin lines to emphasize that it is a smaller amount of data compared to the stream (102) of video pictures and may be stored on a streaming server (105) for future use. One or more streaming client subsystems, such as client subsystems (106) and (108) in Figure 1, can access a streaming server (105) to obtain copies (107) and (109) of the encoded video data (104). Client subsystem (106) may include, for example, a video decoder (110) in an electronic device (130). The video decoder (110) decodes the incoming copy (107) of the encoded video data to create an outgoing stream (111) of the video picture, which can be rendered on a display (112) (e.g., a display screen) or other rendering device (not shown). In some streaming systems, the encoded video data (104), (107), and (109) (e.g., video bitstreams) may be encoded according to specific video coding / compression standards. An example of such standards is ITU-T Recommendation H.265.For example, a video coding standard under development is informally known as Versatile Video Coding (VVC). The disclosed subject matter may be used in the context of VVC.

[0022]

[0037] It should be noted that electronic devices (120) and (130) may include other components (not shown). For example, electronic device (120) may include a video decoder (not shown), and electronic device (130) may similarly include a video encoder (not shown).

[0023]

[0038] Figure 2 shows an exemplary block diagram of a video decoder (210). The video decoder (210) may be included in an electronic device (230). The electronic device (230) may include a receiver (231) (e.g., a receiving circuit). The video decoder (210) may be used in place of the video decoder (110) in the example of Figure 1.

[0024]

[0039] The receiver (231) may receive one or more coded video sequences contained in a bitstream that is decoded by a video decoder (210), for example. In one embodiment, one coded video sequence is received at a time, and the decoding of each coded video sequence is independent of the decoding of other coded video sequences. The coded video sequences may be received from a channel (201), which may be a hardware / software link to a storage device that stores coded video data. The receiver (231) may receive coded video data together with other data that may be transferred to each user entity (not shown), such as coded audio data and / or auxiliary data streams. The receiver (231) may isolate the coded video sequences from other data. To address network jitter, a buffer memory (215) may be coupled between the receiver (231) and the entropy decoder / analyzer (220) (hereinafter "analyzer (220)"). In certain applications, the buffer memory (215) is part of the video decoder (210). In other applications, the buffer memory (215) may be external to the video decoder (210) (not shown). In yet another application, for example, to address network jitter, there may be a buffer memory (not shown) external to the video decoder (210), and in addition, for example, to handle playout timing, there may be another buffer memory (215) internal to the video decoder (210). If the receiver (231) is receiving data from a storage / transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (215) may not be necessary or may be small.For use in best-effort packet networks such as the Internet, a buffer memory (215) may be required, which can be relatively large, and advantageously, can be of an adaptive size, and may be at least partially implemented in an operating system or similar element (not shown) outside the video decoder (210).

[0025]

[0040] The video decoder (210) may include an analyzer (220) for reconstructing symbols (221) from the coded video sequence. These categories of symbols include information used to manage the operation of the video decoder (210) and, optionally, information for controlling rendering devices such as a render device (212) (e.g., a display screen) which is not an integral part of the electronic device (230) but may be coupled to the electronic device (230), as shown in Figure 2. The control information for rendering devices may be in the form of Supplemental Enhancement Information (SEI) messages or Video Usability Information (VUI) parameter set fragments (not shown). The analyzer (220) may parse / entropy decode the received coded video sequence. The coding of the coded video sequence can conform to video coding techniques or standards and may follow a variety of principles, including variable-length coding, Huffman coding, and context-dependent or non-context-dependent arithmetic coding. The analyzer (220) may extract from the coded video sequence a set of at least one subgroup parameters of a subgroup of pixels in the video decoder, based on at least one parameter corresponding to a group. Subgroups may include groups of pictures (GOP), pictures, tiles, slices, macroblocks, coding units (CU), blocks, transform units (TU), prediction units (PU), and the like. The analyzer (220) may also extract transform coefficients, quantization parameter values, motion vectors, and the like from the coded video sequence information.

[0026]

[0041] The analyzer (220) may perform an entropy decoding / analysis operation on the video sequence received from the buffer memory (215) in order to create a symbol (221).

[0027]

[0042] The reconstruction of the symbol (221) may involve multiple different units, depending on the type of the coded video picture or part thereof (interpicture and intrapicture, interblock and intrablock, etc.) and other factors. Which units are involved and how may be controlled by subgroup control information analyzed from the coded video sequence by the analyzer (220). For clarity, the flow of such subgroup control information between the analyzer (220) and the following multiple units is not illustrated.

[0028]

[0043] The video decoder (210), in addition to the functional blocks already described, can be conceptually subdivided into several functional units, as described below. In actual implementations operating under commercial constraints, many of these units may interact closely with each other and be at least partially integrated. However, the following conceptual subdivision into functional units is appropriate for illustrating the subject matter to be disclosed.

[0029]

[0044] The first unit is the scaler / inverse unit (215). The scaler / inverse unit (251) receives the quantized transformation coefficients and control information, including which transformation to use, block size, quantization coefficients, and quantization scaling matrix, from the analyzer (220) as symbols (221). The scaler / inverse unit (251) can output a block containing sample values ​​that can be input to the aggregator (255).

[0030]

[0045] In some cases, the output samples of the scaler / inverse unit (251) may relate to intracoded blocks. Intracoded blocks are blocks that do not use predictive information from previously reconstructed pictures, but may use predictive information from parts reconstructed before the current picture. Such predictive information may be provided by the intrapicture predictive unit (252). In some cases, the intrapicture predictive unit (252) generates a block of the same size and shape as the block being reconstructed, using surrounding already reconstructed information fetched from the current picture buffer (258). The current picture buffer (258) buffers, for example, partially reconstructed current pictures and / or fully reconstructed current pictures. The aggregator (255) may, sample by sample, add the predictive information generated by the intra predictive unit (252) to the output sample information provided by the scaler / inverse unit (251).

[0031]

[0046] In other cases, the output samples of the scaler / inverse unit (251) may relate to an intercoded and, if applicable, motion-compensated block. In such cases, the motion-compensated prediction unit (253) may access the reference picture memory (257) to fetch samples to be used for prediction. After motion compensation of the fetched samples according to the symbols (221) related to the block, these samples may be added by the aggregator (255) to the output of the scaler / inverse unit (251) (in this case, called residual samples or residual signal) to generate output sample information. The address in the reference picture memory (257) from which the motion-compensated prediction unit (253) fetches the prediction samples may be controlled by a motion vector, which is available to the motion-compensated prediction unit (253) in the form of a symbol (221) that may have, for example, X, Y, and reference picture components. Motion compensation may also include interpolation of sample values ​​fetched from reference picture memory (257) when subsample exact motion vectors are in use, motion vector prediction mechanisms, etc.

[0032]

[0047] The output samples of the aggregator (255) may be subjected to various loop filtering techniques in the loop filter unit (256). Video compression techniques may include in-loop filtering techniques contained in the coded video sequence (also called the coded video bitstream) and controlled by parameters made available to the loop filter unit (256) as symbols (221) from the analyzer (220). Video compression may also respond to metadata obtained during decoding of the previous portion (in the decoding order) of the coded picture or coded video sequence, as well as to previously reconstructed and loop-filtered sample values.

[0033]

[0048] The output of the loop filter unit (256) can be a sample stream that is output to the render device (212) and can also be stored in the reference picture memory (257) for use in future interpicture prediction.

[0034]

[0049] A particular coded picture, once fully reconstructed, can be used as a reference picture for future predictions. For example, when the coded picture corresponding to the current picture is fully reconstructed and the coded picture is identified as a reference picture (e.g., by the analyzer (220)), the current picture buffer (258) can become part of the reference picture memory (257), and a new current picture buffer can be reallocated before the reconstruction of the next coded picture begins.

[0035]

[0050] The video decoder (210) may perform decoding operations according to a given video compression technique or standard, such as ITU-T Rec.H.265. The coded video sequence may conform to the syntax specified by the video compression technique or standard being used, in that the coded video sequence conforms to both the syntax of the video compression technique or standard and the profile as described in the video compression technique or standard. Specifically, the profile may select a particular tool as the only tool available under that profile from among all the tools available in the video compression technique or standard. Also, compliance may require that the complexity of the coded video sequence be within the range defined by the level of the video compression technique or standard. In some cases, the level limits the maximum picture size, maximum frame rate, maximum reconstruction sample rate (measured, for example, in megasamples per second), maximum reference picture size, etc. The limits set by the level may, in some cases, be further restricted through the specification of the Hypothetical Reference Decoder (HRD) and metadata for HRD buffer management signaled in the coded video sequence.

[0036]

[0051] In one embodiment, the receiver (231) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of the encoded video sequence. The additional data may be used by the video decoder (210) to properly decode the data and / or more accurately reconstruct the original video data. The additional data may take the form of, for example, time, space, or signal-to-noise ratio (SNR) extension layers, redundant slices, redundant pictures, or forward error correction codes.

[0037]

[0052] Figure 3 shows an exemplary block diagram of a video encoder (303). The video encoder (303) is contained within an electronic device (320). The electronic device (320) includes a transmitter (340) (e.g., a transmitting circuit). The video encoder (303) can be used as a replacement for the video encoder (103) in the example of Figure 1.

[0038]

[0053] The video encoder (303) may receive video samples from a video source (301) (not part of the electronic device (320) in the example in Figure 3) that can capture video images coded by the video encoder (303). In another example, the video source (301) is part of the electronic device (320).

[0039]

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

[0040]

[0055] In one embodiment, the video encoder (303) may code and compress the pictures of the source video sequence in real time or under any other time constraints as needed to obtain a coded video sequence (343). Enforcing an appropriate coding speed is one of the functions of the controller (350). In some embodiments, the controller (350) controls and is functionally coupled to other functional units, as described below. For clarity, the couplings are not shown. Parameters set by the controller (350) may include rate control-related parameters (e.g., picture skip, quantizer, lambda value of rate distortion optimization technique), picture size, group of pictures (GOP) layout, maximum motion vector search range, etc. The controller (350) may be configured to have other preferred functions related to the video encoder (303) optimized for a particular system design.

[0041]

[0056] In some embodiments, the video encoder (303) is configured to operate within a coding loop. In extremely simplified terms, in one example, the coding loop may include a source coder (330) (responsible for creating symbols, such as a symbol stream, based, for example, the input picture to be coded and a reference picture) and a (local) decoder (333) embedded in the video encoder (303). The decoder (333) reconstructs the symbols to create sample data in a similar manner to how a (remote) decoder would create it. The reconstructed sample stream (sample data) is input to the reference picture memory (334). Decoding the symbol stream yields bit-exact results regardless of the decoder's location (local or remote), so the contents of the reference picture memory (334) are also bit-exact between the local and remote encoders. In other words, the predictive part of the encoder "sees" the exact same sample values ​​as the reference picture samples that the decoder would "see" when using the prediction during decoding. This fundamental principle of reference picture synchronization (and the resulting drift when synchronization cannot be maintained, for example, due to channel errors) is also used in several related technologies.

[0042]

[0057] The operation of the “local” decoder (333) can be the same as that of a “remote” decoder, such as the video decoder (210), which has already been described in detail above in relation to Figure 2. However, also briefly referring to Figure 2, since symbols are available and the encoding / decoding of symbols to the coded video sequence by the entropy coder (345) and analyzer (220) may be reversible, the entropy decoding portion of the video decoder (210), including the buffer memory (215) and analyzer (220), may not be fully implemented in the local decoder (333).

[0043]

[0058] In one embodiment, decoder techniques other than analysis / entropy decoding present in the decoder are present in the corresponding encoder in the same or nearly identical functional form. Therefore, the subject matter disclosed focuses on the operation of the decoder. Descriptions of encoder techniques can be omitted, as they are the inverse of the comprehensively described decoder techniques. More detailed descriptions are provided below only in specific areas.

[0044]

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

[0045]

[0060] A local video decoder (333) may decode coded video data of a picture that may be designated as a reference picture based on symbols created by the source coder (330). The operation of the coding engine (332) may, advantageously, be a lossy process. When coded video data can be decoded by a video decoder (not shown in Figure 3), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. A local video decoder (333) may replicate the decoding process that may be performed by the video decoder on the reference picture and store the reconstructed reference picture in a reference picture memory (334). In this way, the video encoder (303) may locally store a copy of the reconstructed reference picture that has common content as the reconstructed reference picture to be acquired (without transmission errors) by the far-end video decoder.

[0046]

[0061] The predictor (335) may perform a predictive search for the coding engine (332). That is, for a new picture to be coded, the predictor (335) may search the reference picture memory (334) for sample data (as candidate reference pixel blocks) or specific metadata such as reference picture motion vectors, block shapes, etc., which can function as appropriate predictive references for the new picture. The predictor (335) may operate pixel block by pixel on a sample block basis to find appropriate predictive references. In some cases, the input picture may have predictive references drawn from multiple reference pictures stored in the reference picture memory (334), as determined by the search results obtained by the predictor (335).

[0047]

[0062] The controller (350) may manage the coding operations of the source coder (330), including, for example, setting parameters and subgroup parameters used to encode video data.

[0048]

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

[0049]

[0064] The transmitter (340) may buffer the coded video sequence created by the entropy coder (345) and prepare it for transmission over the communication channel (360), which may be a hardware / software link to a storage device that stores the coded video data. The transmitter (340) may merge the coded video data from the video encoder (303) with other data to be transmitted, such as coded audio data and / or auxiliary data streams (sources not shown).

[0050]

[0065] The controller (350) may manage the operation of the video encoder (303). During coding, the controller (350) may assign a specific coded picture type to each coded picture, and this coded picture type may influence the coding technique that can be applied to each picture. For example, in many cases, a picture may be assigned as one of the following picture types:

[0051]

[0066] An intra-picture (I-picture) may be coded and decoded without using any other pictures in the sequence as a source for prediction. Some video codecs enable various types of intra-pictures, including, for example, Independent Decoder Refresh (IDR) pictures.

[0052]

[0067] Predictive pictures (P-pictures) may be coded and decoded using intra-prediction or inter-prediction, which uses motion vectors and reference indices to predict the sample values ​​of each block.

[0053]

[0068] A bidirectional predictive picture (B-picture) may be coded and decoded using intra-prediction or inter-prediction, which uses two motion vectors and a reference index to predict the sample values ​​for each block. Similarly, a multiple predictive picture may use three or more reference pictures and associated metadata to reconstruct a single block.

[0054]

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

[0055]

[0070] The video encoder (303) may perform coding operations in accordance with a specified video coding technique or standard, such as ITU-T Rec.H.265. In doing so, the video encoder (303) may perform various compression operations, including predictive coding operations that take advantage of temporal and spatial redundancy in the input video sequence. Thus, the coded video data may conform to the syntax specified by the video coding technique or standard being used.

[0056]

[0071] In one embodiment, the transmitter (340) may transmit additional data along with the encoded video. The source coder (330) may include such data as part of the encoded video sequence. The additional data may include time / space / SNR extension layers, other forms of redundant data such as redundant pictures and redundant slices, SEI messages, VUI parameter set fragments, and the like.

[0057]

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

[0058]

[0073] In some embodiments, a biprediction technique may be used in interpicture prediction. According to the biprediction technique, two reference pictures are used, such as a first reference picture and a second reference picture, both of which are earlier than the current picture in the video decoding order (but may be earlier and later in the display order, respectively). Blocks in the current picture can be coded by a first motion vector pointing to a first reference block in the first reference picture, and a second motion vector pointing to a second reference block in the second reference picture. Blocks can be predicted by combinations of the first and second reference blocks.

[0059]

[0074] Furthermore, to improve coding efficiency, merge mode techniques may be used in interpicture prediction.

[0060]

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

[0061]

[0076] It should be noted that the video encoders (103) and (303), and the video decoders (110) and (210) may be implemented using any preferred technique. In one embodiment, the video encoders (103) and (303), and the video decoders (110) and (210) may be implemented using one or more integrated circuits. In another embodiment, the video encoders (103) and (303), and the video decoders (110) and (210) may be implemented using one or more processors that execute software instructions.

[0062]

[0077] In video coding such as HEVC and VVC, various intra-prediction modes may be used for intra-prediction. Figure 4 shows intra-prediction modes according to one aspect of the present disclosure (e.g., 35 intra-prediction modes, such as those used in HEVC). In one example, there are 35 intra-prediction modes (e.g., 35 intra-prediction modes in total), such as those in HEVC. Referring to Figure 4, of the 35 intra-prediction modes, mode 0 is a planar mode (e.g., Intra_Planar), mode 1 is a DC mode (e.g., Intra_DC), mode 10 is a horizontal mode, mode 26 is a vertical mode, and modes 2, 18, and 34 are oblique modes. The planar mode is sometimes called a planar intra-prediction mode. In the example shown in Figure 4, the intra-prediction modes include angular intra-prediction modes (e.g., modes 2-34) and non-angular intra-prediction modes (e.g., modes 0-1). The intra-predictive mode can be signaled by three most probable modes (MPMs) and 32 remaining modes.

[0063]

[0078] Figure 5 shows intra-prediction modes, such as the intra-prediction modes defined in VVC according to one aspect of the present disclosure. Referring to Figure 5, one example of VVC has 95 intra-prediction modes (e.g., 95 intra-prediction modes in total). In one example, the 95 intra-prediction modes are indicated by modes -14 to 80. For example, mode 18 is the horizontal mode, mode 50 is the vertical mode, and modes 2, 34, and 66 are the oblique modes. Modes -1 to -14 and modes 67 to 80 may be called wide-angle intra-prediction (WAIP) modes. In the example shown in Figure 5, the intra-prediction modes include angular intra-prediction modes (e.g., modes -14 to -1, modes 2 to 80) and non-angular intra-prediction modes (e.g., modes 0 to 1). Mode 0 is the planar mode, and mode 1 is the DC mode.

[0064]

[0079] Examples of intrablock copy modes (also known as IntraBC mode or IBC mode), such as those used in HEVC and VVC, are described below.

[0065]

[0080] Figure 6 shows an example of the IBC mode according to the present disclosure. The reference block used to predict the current CU(601) may be indicated by a block vector (BV) associated with the current CU(601). Each square (600) may represent a CTU. Gray shaded areas represent areas or regions that have already been coded, and white, unshaded areas represent areas or regions that are to be coded. The current CTU (600(6)) being reconstructed includes the current CU(601), the coded area (602), and the area to be coded (603). In one example, area (603) is coded after the current CU(601) has been coded.

[0066]

[0081] For example, in HEVC, the gray shaded area above and to the right of the current CTU (600(6)), excluding the two CTUs (600(1) to 400(2)), can be used as a reference area in IBC mode to enable Wavefront Parallel Processing (WPP). A BV allowed in HEVC can point to a block within the reference area (for example, the gray shaded area excluding the two CTUs (600(1) to 400(2))). For example, a BV allowed in HEVC (605) points to the reference block (611).

[0067]

[0082] In one example, in VVC, only the current CTU(600(6)) and its left adjacent CTU(600(3)) located to the left of the current CTU(600(6)) are permitted as reference areas in IBC mode. In one example, the reference areas used in IBC mode in VVC are located within the dotted area (615) and contain coded samples. For example, BV(606) permitted in VVC points to reference block (612).

[0068]

[0083] In IBC mode BV coding, referencing the reconstructed area can be done via 2D BV, similar to the MV used in interpretation. BV prediction and coding can reuse the MV prediction and coding from the interpretation process. In some examples, the lumar BV has integer resolution rather than the 1 / 4 (or 1 / 4 Pel) precision of the MV used in typical intercoded CTUs.

[0069]

[0084] Figure 7 shows an example of an Intra-Template Matching Prediction (IntraTMP) mode according to one aspect of the present disclosure. In one aspect, in Enhanced Compression Model (ECM) software, IntraTMP is a special intra-prediction mode that can copy the best-prediction block (e.g., a matching block (721)) from a reconstructed portion of the current frame (or current picture), where the template (e.g., an L-shaped template) (720) of the best-prediction block may match the current template (710) of the current block (711) (e.g., current PU or current CU). Within a predefined search range, the encoder can search for the template most similar to the current template in the reconstructed portion of the current frame, and the corresponding block may be used as the prediction block. The encoder can signal the use of the IntraTMP mode, and the same prediction operation may be performed on the decoder side.

[0070]

[0085] The prediction signal can be generated by matching the current template (710) with the template of another block within a predefined search area, such as an L-shaped causal neighborhood of the current block (711). The exemplary search area shown in Figure 7 can include multiple CTUs (or superblocks). Referring to Figure 7, the search area can include the current CTU R1 (e.g., a portion of the current CTU R1), the upper left CTU R2, the upper CTU R3, and the left CTU R4. The cost function can include any preferred cost function, such as the sum of absolute difference (SAD).

[0071]

[0086] Within each region, the decoder can search for the template with the lowest cost (e.g., lowest SAD) relative to the current template, and can use the blocks associated with the template with the lowest cost as prediction blocks.

[0072]

[0087] The dimensions of the region indicated by (SearchRange_w, SearchRange_h) can be set proportionally to the block dimensions (BlkW, BlkH) so that each pixel has a fixed number of SAD comparisons. Therefore, SearchRange_w = a × BlkW Equation (1) SearchRange_h = a × BlkH Equation (2) That is the case.

[0073]

[0088] The parameter "a" can be a constant that controls the trade-off between gain and complexity. In one example, "a" is 5.

[0074]

[0089] In one example, to speed up the template matching process, the search range (the search range of all search regions) is partially sampled by half, thereby reducing the template matching search to one-quarter. After a best match (or initial best match) is found, a refinement process may be performed. Refinement is carried out through a second template matching search around the best match (or initial best match) using the reduced range. The reduced range is defined as min(BlkW,BlkH) / 2.

[0075]

[0090] The intra-template matching tool can be enabled for CUs with a width and height of 64 or less. A maximum CU size for intra-template matching (e.g., 64) may be configurable.

[0076]

[0091] The intra-template matching prediction mode can be signaled at the CU level through a dedicated flag when decoder-side intra-mode derivation (DIMD) is not currently used by the CU.

[0077]

[0092] For example, in the case of an IntraTMP-coded block, an implicit transformation selection method may be applied when selecting a linear transformation. The horizontal transformation type is DST7 if the block width is between 4 and 16, and DCT2 otherwise. The vertical transformation type is DST7 if the block height is between 4 and 16, and DCT2 otherwise. When selecting a quadratic transformation, an IntraTMP-coded block (e.g., IntraTMP mode) may be mapped to a planar mode (e.g., Intra predictive mode Planar), and the set of quadratic transformations associated with the planar mode is applied to the IntraTMP-coded block.

[0078]

[0093] VVC also includes a matrix-based intra-prediction (MIP) mode. When predicting samples for a rectangular block of width W and height H, MIP takes as input one line of H reconstructed neighbor boundary samples located to the left of the block, and one line of W reconstructed neighbor boundary samples located above the block. If reconstructed samples are not available, they are generated in the same way as in conventional intra-prediction.

[0079]

[0094] The generation of the prediction signal is based on the following process. (a) Of the boundary samples, four samples are selected by averaging when W=H=4, and eight samples are selected for all other cases. (b) Matrix-vector multiplication, followed by offset counting, is performed using the averaged samples as input. The result is a reduced prediction signal for a partially sampled set of samples within the original block. (c) Prediction signals for the remaining positions are generated from prediction signals for a set partially sampled by linear interpolation, which can be a single-step linear interpolation in each direction.

[0080]

[0095] The matrices and offset vectors used to generate the prediction signal can be taken from three sets of matrices S0, S1, and S2. Set S0 is an 18-matrix matrix.

[0081]

number

[0082]

number

[0083]

number

[0084]

number

[0085]

number

[0086]

number

[0087]

number

[0088]

number

[0089]

[0096] Figure 8 shows an example of an 8x8 block MIP according to one aspect of the present disclosure. In the 8x8 block, the MIP takes four averages along each axis of the boundary. The resulting eight input samples are then subjected to matrix-vector multiplication. The matrix is ​​taken from set S1. This yields 16 samples at odd positions in the prediction block. Thus, for each sample, a total of (8·16) / (8·8)=2 multiplications are performed. After adding the offset, the samples are interpolated vertically using the reduced upper boundary. Horizontal interpolation follows using the original left boundary. In this case, the interpolation process does not require any multiplication.

[0090]

[0097] Regarding MIP mode signaling, for each CU in intra mode, a flag is sent into the bitstream indicating whether or not the MIP mode is applied to the corresponding PU. If the MIP mode is applied, the MIP mode index predmode may be signaled using an MPM list containing three MPMs.

[0091]

[0098] In video coding, palette mode may be used. Palette mode may be used in the screen content coding (SCC) extension in VCC and HEVC. Palette mode may be applied to code screen content, such as screen capture content and computer-generated content. In one embodiment, screen content uses a smaller number of color values ​​for samples within a local area than non-screen content. Thus, sample values ​​in a palette-coded block can be mapped to a reduced set of colors, for example, a palette table of the block, and each sample can be represented by an index to the palette table or an index indicating an "escape" color. In the case of an "escape" color, a quantized sample value may be coded directly.

[0092]

[0099] Transformations such as linear and binary transformations can be applied to a block. In one example, the transformation includes a combination of linear and binary transformations. In another example, the transformation includes inseparable transformations. In yet another example, the transformation includes separable transformations.

[0093]

[0100] Secondary transformations can be performed in VVCs and the like. In some examples, low-frequency non-separable transforms (LFNSTs) can be applied in VVCs and the like between the forward linear transform and quantization on the encoder side, and between the inverse quantization and the inverse linear transform on the decoder side. In LFNSTs, the reduced secondary transform (RST) method may be used.

[0094]

[0101] The application of inseparable transformations available in LENST can be described as follows, using a 4x4 input block (or input matrix) X as an example (shown in equation (3)): As shown in equations 3-4, in order to apply a 4x4 inseparable transformation (e.g., LFNST), the 4x4 input block X is a vector

[0095]

number

[0096]

number

[0097]

[0102] Inseparable transformations are,

[0098]

number

[0099]

number

[0100]

number

[0101]

[0103] The LFNST transformation (also called the transformation kernel, transformation core, or transformation matrix) can be selected as described below. In one embodiment, multiple transformation sets can be used, and one or more inseparable transformation matrices (or kernels) may be included in each of the multiple transformation sets in the LFNST. The transformation sets can be selected from multiple transformation sets, and the inseparable transformation matrices can be selected from one or more inseparable transformation matrices in the transformation sets.

[0102]

[0104] Table 1 shows an exemplary mapping from an intra-predictive mode to a set of transformations according to one embodiment of the present disclosure. The mapping shows the relationship between the intra-predictive mode and the set of transformations. Relationships such as those shown in Table 1 can be predefined and stored in the encoder and decoder.

[0103] [Table 1]

[0104]

[0105] Referring to Table 1, multiple transformation sets include four transformation sets, e.g., transformation sets 0-3, each represented by a transformation set index (e.g., Tr. set index) from 0 to 3. The index (e.g., intra-prediction mode index or IntraPredMode) can indicate an intra-prediction mode, and the transformation set index can be obtained based on this index and Table 1. Thus, the transformation set can be determined based on the intra-prediction mode. In one example, if one of the three cross-component linear model (CCLM) modes (e.g., INTRA_LT_CCLM, INTRA_T_CCLM, or INTRA_L_CCLM) is used for the current block (e.g., 81 <= IntraPredMode <= 83), then transformation set 0 is selected for the current block.

[0105]

[0106] As described above, each transformation set may contain one or more inseparable transformation matrices. One of these inseparable transformation matrices may be selected, for example, by an explicitly signaled LFNST index. The LFNST index may be signaled in the bitstream once for each intracoded CU after signaling the transformation coefficients. For each transformation set, the selected inseparable quadratic transformation candidate may be specified by an explicitly signaled LFNST index.

[0106]

[0107] In one embodiment, LFNST is restricted to being applicable only when all coefficients outside a first coefficient subgroup are insignificant, and the coding of the LFNST index may depend on the position of the last significant coefficient. The LFNST index can be context-coded. In one example, the context coding of the LFNST index is independent of the intra-prediction mode, and only the first bin is context-coded. LFNST can be applied to both lumnar and chromar components for intra-coded CUs in intra-slice or inter-slice. When dual-tree is enabled, LFNST indices for lumnar and chromar components may be signaled separately. In the case of inter-slice (e.g., when dual-tree is disabled), a single LFNST index may be signaled and used for both lumnar and chromar components.

[0107]

[0108] Considering that larger CUs exceeding 64x64 are implicitly partitioned (TU tiling) by the existing maximum transformation size limit (e.g., 64x64), LFNST index search can quadruple the data buffer in a certain number of decoding pipeline stages. Therefore, in some examples, the maximum size allowed for LFNST is limited to 64x64. In one example, LFNST is enabled only when using DCT2. In another example, LFNST index signaling is placed before MTS index signaling.

[0108]

[0109] In one example, it is not clear that a scaling matrix specified for a linear matrix may also be useful for LFNST coefficients in the use of scaling matrices for perceptual quantization. Therefore, in some examples, the use of scaling matrices for LENST coefficients is not permitted. In one example, chroma LFNST is not applied in single-tree partitioning mode.

[0109]

[0110] In one embodiment, the LFNST design in VVC is extended as follows in ECM and the like. The number of LFNST sets (S) and candidates (C) is extended to S=35 and C=3, and the LFNST set (lfnstTrSetIdx) for a given intra-mode (predModeIntra) is derived according to the following formula. If predModeIntra<0, then lfnstTrSetIdx is equal to 2. For predModelIntra at [0,34], lfnstTrSetIdx=predModeIntra For predModeIntra in [35,66], lfnstTrSetIdx=68-predModeIntra To illustrate the LFNST kernel set, three different kernels, LFNST4, LFNST8, and LFNST16, are defined and applied to 4×N / N×4 (N≧4), 8×N / N×8 (N≧8), and M×N (M,N≧16), respectively.

[0110]

[0111] Figure 9 shows an example of mapping from an intra-prediction mode to a secondary transformation set according to one aspect of this disclosure. As shown in Figure 9, tables such as Table 2 are used to show the mapping from an intra-prediction mode (referred to as intra-prediction mode in Table 2) to a secondary transformation set, such as an LFNST set indicated by its respective LFNST set index (referred to as lfnstTrSetIdx in Table 2).

[0111]

[0112] In related technologies, when applying transformations to IBC-coded or IntraTMP-coded blocks, the same quadratic transformations applied to planar mode are applied. However, since IBC-coded or IntraTMP-coded blocks may have directionality, sharing the same set of transformations used for planar mode may not be optimal. According to one aspect of this disclosure, a set of quadratic transformations may be selected for IBC-coded or IntraTMP-coded blocks based on the characteristics of each IBC-coded or IntraTMP-coded block (e.g., directionality).

[0112]

[0113] In this disclosure, the first multiple prediction modes may include IBC mode, IntraTMP mode, MIP mode, palette mode, etc. The first multiple prediction modes may be referred to as the first multiple intra prediction modes in this disclosure because, when the current block in the current picture is predicted using one of the first multiple intra prediction modes (e.g., IBC mode, IntraTMP mode, MIP mode, or palette mode), the samples in the current block may be predicted using, for example, a reference sample in the current picture. In one example, when the current block in the current picture is predicted using one of the first multiple prediction modes (e.g., IBC mode, IntraTMP mode, MIP mode, or palette mode), the samples in the current block are predicted without using a reference sample in another picture.

[0113]

[0114] The second set of intra-prediction modes may include DC mode, planar, and angular intra-prediction modes, as described with reference to Figures 4 and 5.

[0114]

[0115] In one embodiment, each of the second set of intra-prediction modes is called a conventional intra-prediction mode (CIPM), such as those shown in Figures 4-5. Each of the first set of intra-prediction modes is called an unconventional intra-prediction mode (UIPM), such as those shown in Figures 6-8. For example, an intra-prediction mode not included in the second set of intra-prediction modes (e.g., a prediction mode that predicts the current block in the current picture using a reference sample in the current picture) is called a first intra-prediction mode or UIPM in the first set of intra-prediction modes. UIPMs may include, but are not limited to, IBC mode, IntraTMP mode, MIP mode, and / or palette mode.

[0115]

[0116] In one embodiment, when the current block is coded in an intra-prediction mode that is not in the second set of intra-prediction modes, a second intra-prediction mode (e.g., a CIPM such as a planar mode, DC mode, or angular intra-prediction mode) that is in the second set of intra-prediction modes can be determined, and the second intra-prediction mode can be associated with the current block.

[0116]

[0117] According to one aspect of the present disclosure, when a current block is coded in a first intra-prediction mode (e.g., UIPM) in a first plurality of intra-prediction modes such as IntraTMP mode, IBC mode, MIP mode, and pallet mode, a second intra-prediction mode (e.g., CIPM such as planar mode, DC mode, or angular intra-prediction mode) in a second plurality of intra-prediction modes can be determined (e.g., derived), and the second intra-prediction mode can be associated with the current block.

[0117]

[0118] The second intra-predictive mode associated with the current block may be used when constructing the most probable mode (MPM) list for another block (e.g., an adjacent block to the current block). The second intra-predictive mode associated with the current block may also be used in the transformation selection of the current block.

[0118]

[0119] When a block is currently coded by an unconventional intra-predictive mode (UIPM), such as IntraTMP mode, IBC mode, MIP mode, or palette mode, a conventional intra-predictive mode (CIPM), such as one of the planar mode, DC mode, and / or angular intra-predictive modes, is derived and associated with the current block, and this associated intra-mode (e.g., CIPM) may be further used for constructing the MPM list of adjacent blocks and for transformation selection of the current block.

[0119]

[0120] In one embodiment, a normal intra-mode (e.g., a CIPM such as an angular intra-prediction mode) is derived only for a selected set of blocks coded by UIPM and used for building an MPM list of other blocks or for transforming and selecting the current block. In one example, the selected set of blocks coded by UIPM is called a candidate block.

[0120]

[0121] In one example, the selection of a block (for example, a block may refer to a set of blocks coded by UIPM) (associated with the intra-prediction mode) depends on whether the block is located within a predefined region, such as a region currently covered by the CTU and / or some previously coded CTUs. In one example, the predefined region includes (i) the current CTU and (ii) one or more of at least one previously coded CTUs. In another example, (i) the current CTU and (ii) one or more of at least one previously coded CTUs include the predefined region.

[0121]

[0122] In one embodiment, a current block is coded with a first intra-prediction mode (e.g., UIPM) that is different from a plurality of intra-prediction modes (e.g., a second plurality of intra-prediction modes or CIPM), including DC mode, planar mode, and angular intra-prediction mode. Candidate blocks coded with the plurality of intra-prediction modes and the differential intra-prediction mode (e.g., UIPM) (e.g., one of a set of selected blocks coded by UIPM) may be selected. In one example, a candidate block is selected when the candidate block is located within a predefined region. If the candidate block is located within a predefined region, a second intra-prediction mode (e.g., CIPM) can be derived from the plurality of intra-prediction modes for the candidate block, and the second intra-prediction mode is associated with the candidate block.

[0122]

[0123] A second intra-prediction mode associated with a candidate block can be associated with the current block and may be used to (i) select a transformation for the current block and / or (ii) construct an MPM list for another block. At least one of the following can be performed: (i) select a transformation for the current block based on the second intra-prediction mode associated with the current block (e.g., CIPM) and reconstruct the current block according to the selected transformation, and (ii) construct an MPM list for another block (e.g., one of the other blocks) using the derived second intra-prediction mode.

[0123]

[0124] In one example, block selection (associated with intra-prediction mode) depends on whether the block is located within a predefined region, which is updated each time a block is coded. In another example, the predefined region is updated for another block that will be coded after the currently coded block.

[0124]

[0125] In one example, block selection (associated with intra-prediction mode) depends on whether the block is located within a predefined area, where the area size of the predefined area is a fixed value, e.g., N × 64 × 64 or N × 128 × 128. N can be a positive integer such as 1, 2, 3, ... In one example, the size of the predefined area (e.g., width, height, or area size) is fixed.

[0125]

[0126] In another example, a second intra-prediction mode (e.g., CIPM) is derived for the current block coded in the first intra-prediction mode (e.g., UIPM) only if the current block is one of a set of selected blocks coded by UIPM. The selection of a block may depend on whether the block is located within a predefined region, such as the predefined region described above.

[0126]

[0127] In another embodiment, when deriving the CIPM for an IntraTMP-coded block and / or an IBC-coded block, a block vector (BV) associated with the IntraTMP mode and / or IBC mode is given, and several candidate block locations are checked in a predefined order to fetch the intra-predictive mode (e.g., CIPM) within the reconstructed region. Figure 10 shows an example of candidate block locations used to derive the CIPM for the current block (1002) according to one embodiment of the present disclosure. The current block (1002) is currently located within the CTU (1001). The current block (1002) can be coded in either IBC mode or IntraTMP mode. The BV (1004) associated with either the IntraTMP mode or IBC mode may point to a reference block (1003). Candidate block locations 0-5 can be associated with the reference block (1003). In one example, candidate block locations 0-5 are checked in a predefined order to obtain the CIPM.

[0127]

[0128] In one embodiment, a second intra-prediction mode (e.g., CIPM) associated with the current block (1002) (e.g., an IntraTMP-coded block or an IBC-coded block) can be derived from a CIPM (e.g., a plurality of intra-prediction modes including DC mode, planar mode, and angular intra-prediction mode) such that at least one candidate block position (e.g., candidate block positions 0-5) can be checked in a predefined order. At least one candidate block position can be associated with a reference block (1003) indicated by a BV (1004) associated with one of the IBC mode and IntraTMP mode. The second intra-prediction mode (e.g., CIPM) associated with the current block (1002) can be determined based on at least one candidate block position, such as following an intra-prediction mode associated with one of the at least one candidate block position. (i) select a transformation of the current block (1002) based on a second intra-prediction mode associated with the current block and reconstruct the current block (1002) according to the selected transformation, or (ii) construct an MPM list of another block using the derived second intra-prediction mode associated with the current block (1002).

[0128]

[0129] In one example, one of at least one candidate block location (e.g., candidate block location 0-5) (e.g., candidate block location 2) is associated with a CIPM, and the CIPM associated with one of at least one candidate block location (e.g., candidate block location 2) can be determined as the second intra-prediction mode associated with the current block (1002). In one example, a previously coded block contains a reconstructed sample located at one of at least one candidate block locations, and since the previously coded block is coded with a CIPM, the CIPM is associated with one of at least one candidate block locations. In one example, a previously coded block contains a reconstructed sample located at one of at least one candidate block locations, and since the previously coded block is coded with a UIPM, the CIPM associated with the previously coded block is derived as described in this disclosure. In one example, the CIPM associated with the previously coded block is associated with one of at least one candidate block location.

[0129]

[0130] In one example, each of multiple locations at at least one candidate block location is associated with its own CIPM, and the CIPMs associated with multiple locations may be used to determine a second intra-prediction mode associated with the current block (1002). In one example, one of the CIPMs associated with multiple locations is determined as the second intra-prediction mode associated with the current block (1002). In one example, the CIPM most frequently associated with multiple locations may be determined as the second intra-prediction mode associated with the current block (1002).

[0130]

[0131] According to one aspect of the present disclosure, if a first candidate block position of at least one candidate block position does not have an associated intra-prediction mode (e.g., CIPM) which is one of a plurality of intra-prediction modes, then the first candidate block position of at least one candidate block position may be skipped (e.g., without being checked). If a first candidate block position of at least one candidate block position (e.g., candidate block positions 0, 1, 4, or 5 in Figure 10) is located outside a predefined region (e.g., currently CTU(1001)) as described above, then the first candidate block position of at least one candidate block position does not have an associated intra-prediction mode (e.g., CIPM) which is one of a plurality of intra-prediction modes, and therefore may be skipped. Referring to Figure 10, candidate block positions 0, 1, 4, and 5 are located outside a predefined region (e.g., currently CTU(1001)), and therefore candidate block positions 0, 1, 4, and 5 are skipped. Therefore, only candidate block positions 2 and 3 are checked in order to obtain the CIPM for block (1002) at present.

[0131]

[0132] In one embodiment, when a candidate block location does not have an associated CIPM, for example, when the candidate block location is outside the predefined region described above, this candidate block location is skipped and the next candidate block location is checked to find a valid CIPM. For example, referring to Figure 10, when the current block (1002) is coded in IntraTMP mode (e.g., one of IntraTMP mode and IBC mode) using BV (1004) derived by template matching, for example, the reference block (1003) is identified by BV (1004), and several candidate locations (shown by shaded blocks labeled as 0, 1, ..., 5, for example) are checked in a predefined order (e.g., the order 0 to 5). Since locations (e.g., candidate block locations) 0, 1, 4, 5 are currently outside the CTU (e.g., the predefined region), only locations 2 and 3 are checked to fetch the CIPM for the current block (1002).

[0132]

[0133] Figure 11 shows an example of candidate block locations used to derive the CIPM of the current block (1002) according to one aspect of the present disclosure. The current block (1002) and current CTU (1001) in Figure 11 are the same as or identical to the current block (1002) and current CTU (1001) described in Figure 10. The current block (1002) can be coded in either IBC mode or IntraTMP mode. The BV (1104) associated with either IntraTMP mode or IBC mode may indicate a reference block (1103). Candidate block locations 0'~5' can be associated with the reference block (1103). According to one aspect of this disclosure, when a first candidate block position (e.g., candidate block position 4') of at least one candidate block position (e.g., candidate block positions 0' to 5') is located outside a predefined area, the first candidate block position of at least one candidate block position can be replaced with a position within a predefined area (e.g., candidate block position 0'), such as that shown in Figure 11.

[0133]

[0134] For example, when a candidate block location (e.g., candidate block location 4') is outside a region (e.g., a predefined region), for example, when a reference block 4' (e.g., candidate block location 4' or a reference block associated with candidate block location 4') is outside a permitted region (e.g., a predefined region), the operation may be handled so that a location within the permitted region (e.g., candidate block location 0') is used to replace it (e.g., candidate block location 4'). In this example, reference block 0' (e.g., candidate block location 0' or a reference block associated with candidate block 0') may be used to replace reference block 4'.

[0134]

[0135] In one embodiment, the derived CIPM of the current block is stored in the buffer of the current picture P0. When another picture (P1) uses the current picture P0 as a reference picture, this stored and derived intra-mode (e.g., derived CIPM) can be used to construct the MPM list of the block in the other picture P1. For example, a derived second intra-predictive mode (e.g., derived CIPM) is stored in the buffer of the current picture P0. When the current picture P0 is a reference picture of another picture P1, the MPM list of the block in the other picture P1 is constructed using the stored second intra-predictive mode. In one example, the derived second intra-predictive mode (e.g., derived CIPM) is stored in units of M × N, where M and N are positive integers.

[0135]

[0136] In one embodiment, the derived CIPM is stored in units of M × N. Exemplary values ​​for M and N are, but are not limited, 8 × 4, 4 × 8, 8 × 8, etc. For example, M × N can be, but is not limited, 8 × 4, 4 × 8, 8 × 8, etc.

[0136]

[0137] In one embodiment, the transformation set of the current block may be determined according to a derived second intra-prediction mode (e.g., a derived CIPM). For example, the transformation set of the current block is determined according to a second intra-prediction mode (e.g., a derived CIPM) derived using mapping information or related information, such as a lookup table, which maps a second set of intra-prediction modes to their respective transformation sets. In one example, the transformation set of the current block is a quadratic transformation set. The mapping between a second set of intra-prediction modes, indicated by the number of modes (IntraPredMode), and a transformation set containing LFNST sets, indicated by the Low Frequency Non-Separated Transform (LFNST) set index (e.g., 0-3 in Table 1, 0-34 in Table 2), is shown in a lookup table such as Table 1 or Table 2. Once the transformation set is determined, transformations may be selected from the determined transformation set.

[0137]

[0138] In one example, the selected transformation is a quadratic transformation. In another example, a primary transformation type is not selected based on the derived second intra-prediction mode (e.g., the derived CIPM).

[0138]

[0139] In one embodiment, when selecting a transformation type, the derived normal intra-prediction mode (e.g., derived CIPM) is used only to select a quadratic transformation, and the primary transformation type is not selected based on the derived normal intra-prediction mode.

[0139]

[0140] Figure 12 is a flowchart outlining a process (1200) according to one aspect of the present disclosure. Process (1200) is used in a video decoder. In various embodiments, process (1200) is executed by processing circuits, such as a processing circuit that performs the functions of a video decoder (110) and a processing circuit that performs the functions of a video decoder (210). In some embodiments, process (1200) is implemented with software instructions, so that when a processing circuit executes a software instruction, the processing circuit executes process (1200). The process starts at (S1201) and proceeds to (S1210).

[0140]

[0141] In (S1210), coded information of the current block in the current picture can be received. The current block may be coded in a first intra-prediction mode, which is different from a plurality of intra-prediction modes, including DC mode, planar mode, and angular intra-prediction mode.

[0141]

[0142] In one example, multiple intra-prediction modes are a second set of multiple intra-prediction modes. In another example, multiple intra-prediction modes include CIPM.

[0142]

[0143] In one example, the first intra-prediction mode is one of the IBC mode, IntraTMP mode, MIP mode, and Palette mode. In another example, the first intra-prediction mode is one of the first multiple intra-prediction modes. In yet another example, the first intra-prediction mode is UIPM.

[0143]

[0144] In (S1220), it is possible to select candidate blocks in the current picture that have been coded by multiple intra prediction modes and different intra prediction modes (e.g., UIPM).

[0144]

[0145] In (S1230), when the candidate block is located within a predefined region as described above, a second intra-prediction mode (e.g., one of the second multiple intra-prediction modes, or CIPM) can be derived for the candidate block from multiple intra-prediction modes. The second intra-prediction mode can be associated with the current block.

[0145]

[0146] In one example, a predefined region includes (i) the current coding tree unit (CTU) and (ii) one or more of at least one previously coded CTU.

[0146]

[0147] In one example, a predefined area is updated for blocks that will be coded after the current block has been coded.

[0147]

[0148] In one example, the size of the area of ​​a predetermined region is fixed.

[0148]

[0149] In (S1240), at least one of the following can be performed: (i) select a transformation of the current block based on a second intra-prediction mode associated with the current block and reconstruct the current block according to the selected transformation; or (ii) construct an MPM list of another block using a derived second intra-prediction mode associated with the current block.

[0149]

[0150] The quadratic transformation is selected based on the derived second intra-prediction mode, as described above with reference to Tables 1-2. The primary transformation type is not selected based on the derived second intra-prediction mode.

[0150]

[0151] In one example, another block is an adjacent block to the current block.

[0151]

[0152] In one example, another block is a block in a different picture than the current picture.

[0152]

[0153] Next, the process proceeds to (S1299) and terminates.

[0153]

[0154] Process (1200) can be suitably adapted. The steps of process (1200) can be modified and / or omitted. Further steps can also be added. Any preferred sequence of implementation can be used.

[0154]

[0155] In one example, the derived second intra-prediction mode is stored in the current picture's buffer. When the current picture is a reference picture of another picture, the second intra-prediction mode stored in the current picture's buffer can be used to construct an MPM list of another block within the other picture.

[0155]

[0156] In one example, the derived second intra-prediction mode is stored in units of M × N, as described above, where M and N can be positive integers.

[0156]

[0157] Figure 13 is a flowchart outlining a process (1300) according to one aspect of the present disclosure. Process (1300) may be used in a video encoder. In various embodiments, process (1300) is executed by processing circuits, such as a processing circuit that performs the functions of a video encoder (103), a processing circuit that performs the functions of a video encoder (303), etc. In one embodiment, process (1300) is implemented with software instructions, so that when a processing circuit executes a software instruction, the processing circuit executes process (1300). The process starts at (S1301) and proceeds to (S1310).

[0157]

[0158] In (S1310), a candidate block is selected within the current picture for the current block, which is coded in a first intra-prediction mode that is different from multiple intra-prediction modes. The candidate block is coded in an intra-prediction mode that is different from multiple intra-prediction modes, as explained in Figure 12.

[0158]

[0159] In (S1320), as explained in (S1230), when a candidate block is located within a predefined region, a second intra-prediction mode can be derived for the candidate block from multiple intra-prediction modes. The second intra-prediction mode can be associated with the current block.

[0159]

[0160] In (S1330), as described in (S1240), at least one of the following can be performed: (i) select a transformation of the current block based on a second intra-prediction mode associated with the current block and reconstruct the current block according to the selected transformation; or (ii) construct an MPM list of another block using a derived second intra-prediction mode associated with the current block.

[0160]

[0161] Next, the process proceeds to (S1399) and terminates.

[0161]

[0162] Process (1300) can be suitably adapted. The steps of process (1300) can be modified and / or omitted. Further steps can also be added. Any preferred sequence of implementation can be used.

[0162]

[0163] Figure 14 is a flowchart outlining a process (1400) according to one aspect of the present disclosure. Process (1400) may be used in a video decoder. In various embodiments, process (1400) is executed by processing circuits, such as a processing circuit that performs the functions of a video decoder (110) and a processing circuit that performs the functions of a video decoder (210). In one embodiment, process (1400) is implemented with software instructions, so that when a processing circuit executes a software instruction, the processing circuit executes process (1400). The process starts at (S1401) and proceeds to (S1410).

[0163]

[0164] In (S1410), coded information of the current block in the current picture is received. The current block may be coded in a first intra-prediction mode, which is either intra-block copy (IBC) mode or intra-template matching (IntraTMP) mode.

[0164]

[0165] In (S1420), a second intra-prediction mode (e.g., CIPM) associated with the current block can be derived from a plurality of intra-prediction modes (e.g., a second plurality of intra-prediction modes), including DC mode, planar mode, and angular intra-prediction mode. For example, at least one candidate block location (e.g., one or more of candidate block locations 0 to 5) is checked in a predefined order as described above. At least one candidate block location can be associated with a reference block (e.g., reference block (1003)) indicated by a BV (e.g., BV(1004)) associated with one of the IBC mode and IntraTMP mode. The second intra-prediction mode associated with the current block can be determined according to the intra-prediction mode associated with one of the at least one candidate block location, as described above (e.g., Figures 10 to 11).

[0165]

[0166] In one example, if the first candidate block position of at least one candidate block position does not have an associated intra-prediction mode which is one of a plurality of intra-prediction modes, then the first candidate block position of at least one candidate block position is skipped. For example, referring to Figure 10, if the first candidate block position of at least one candidate block position (e.g., candidate block position 4) is located outside a predefined area (e.g., CTU(1001)), then the first candidate block position of at least one candidate block position does not have an associated intra-prediction mode which is one of a plurality of intra-prediction modes.

[0166]

[0167] In one example, a predefined region includes (i) the current coding tree unit (CTU) and (ii) one or more of at least one previously coded CTU.

[0167]

[0168] In one example, a predefined area is updated for blocks that will be coded after the current block has been coded.

[0168]

[0169] In one example, the size of the area of ​​a predetermined region is fixed.

[0169]

[0170] In one example, referring to Figure 11, when the first candidate block position of at least one candidate block position (e.g., candidate block position 4') is located outside a predefined region (e.g., CTU(1001)), the first candidate block position of at least one candidate block position is replaced with a position within the predefined region (e.g., candidate block position 0').

[0170]

[0171] In (S1430), as described in (S1240), at least one of the following can be performed: (i) select a transformation of the current block based on a second intra-prediction mode associated with the current block and reconstruct the current block according to the selected transformation; or (ii) construct an MPM list of another block using a derived second intra-prediction mode associated with the current block.

[0171]

[0172] The quadratic transformation is selected based on the derived second intra-prediction mode, as described above with reference to Tables 1-2. The primary transformation type is not selected based on the derived second intra-prediction mode.

[0172]

[0173] In one example, another block is an adjacent block to the current block.

[0173]

[0174] In one example, another block is a block in a different picture than the current picture.

[0174]

[0175] Process (1400) can be suitably adapted. The steps of process (1400) can be modified and / or omitted. Further steps can also be added. Any preferred sequence of implementation can be used.

[0175]

[0176] In one example, the derived second intra-prediction mode is stored in the current picture's buffer. When the current picture is a reference picture of another picture, the second intra-prediction mode stored in the current picture's buffer can be used to construct an MPM list of another block within the other picture.

[0176]

[0177] In one example, the derived second intra-prediction mode is stored in units of M × N, as described above, where M and N can be positive integers.

[0177]

[0178] Figure 15 is a flowchart outlining a process (1500) according to one aspect of the present disclosure. Process (1500) may be used in a video encoder. In various embodiments, process (1500) is executed by processing circuits, such as a processing circuit that performs the functions of a video encoder (103) and a processing circuit that performs the functions of a video encoder (303). In one embodiment, process (1500) is implemented with software instructions, so that when a processing circuit executes a software instruction, the processing circuit executes process (1500). The process starts at (S1501) and proceeds to (S1510).

[0178]

[0179] In (S1510), as described in (S1420), for a current block coded in a first intra-prediction mode which is one of the intra-block copy (IBC) mode and intra-template matching (IntraTMP) mode, a second intra-prediction mode associated with the current block can be derived from a plurality of intra-prediction modes, including the DC mode, the planar mode and the angular intra-prediction mode. For example, at least one candidate block location is checked in a predefined order. The second intra-prediction mode associated with the current block is determined according to the intra-prediction mode associated with one of the at least one candidate block location. At least one candidate block location can be associated with a reference block indicated by a BV associated with one of the IBC mode and the IntraTMP mode.

[0179]

[0180] In (S1520), as described in (S1240), at least one of the following can be performed: (i) select a transformation of the current block based on a second intra-prediction mode associated with the current block and reconstruct the current block according to the selected transformation; or (ii) construct an MPM list of another block using a derived second intra-prediction mode associated with the current block.

[0180]

[0181] Next, the process proceeds to (S1599) and terminates.

[0181]

[0182] Process (1500) can be suitably adapted. The steps of process (1500) can be modified and / or omitted. Further steps can also be added. Any preferred sequence of implementation can be used.

[0182]

[0183] The embodiments and / or examples in this disclosure may be used separately or in combination in any order. Each of the methods (or embodiments), encoders, and decoders may be implemented by processing circuits (e.g., one or more processors or one or more integrated circuits). In one example, one or more processors execute a program stored on a non-temporary computer-readable medium.

[0183]

[0184] The techniques described above can be implemented as computer software using computer-readable instructions and can be physically stored on one or more computer-readable media. For example, Figure 16 shows a computer system (1600) suitable for implementing a particular aspect of the disclosed subject matter.

[0184]

[0185] Computer software may be coded using any suitable machine code or computer language that is subject to assembly, compilation, linking, or similar mechanisms, in order to create code that includes instructions that can be executed directly by one or more computer central processing units (CPUs), graphics processing units (GPUs), etc., or that can be executed through interpretation, microcode execution, etc.

[0185]

[0186] Instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, gaming devices, and Internet of Things devices.

[0186]

[0187] The components shown in Figure 16 for the computer system (1600) are essentially illustrative and do not imply any limitation on the scope of use or functionality of computer software implementing aspects of this disclosure. Furthermore, the configuration of the components should not be construed as having any dependency or requirement relating to any one or any combination thereof of the components shown in the exemplary aspects of the computer system (1600).

[0187]

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

[0188]

[0189] The input human interface device may include one or more of the following (only one of each is shown): a keyboard (1601), a mouse (1602), a trackpad (1603), a touchscreen (1610), a data glove 1204 (not shown), a joystick (1605), a microphone (1606), a scanner (1607), and a camera (1608).

[0189]

[0190] The computer system (1600) may also include certain human interface output devices. Such human interface output devices may stimulate the senses of one or more human users, for example, through tactile output, sound, light, and smell / taste. Such human interface output devices may include tactile output devices (e.g., tactile feedback via a touchscreen (1610), data glove (not shown), or joystick (1605), although there may also be tactile feedback devices that do not function as input devices), audio output devices (e.g., speakers (1609), headphones (not shown)), visual output devices (screens (1610), etc., including CRT screens, LCD screens, plasma screens, OLED screens, each with or without touchscreen input capability, each with or without tactile feedback capability, some of which may be capable of outputting two-dimensional visual output or three-dimensional or more output through means such as stereographic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown)), and printers (not shown).

[0190]

[0191] The computer system (1600) may also include human-accessible storage devices and associated media, such as optical media including CD / DVD ROM / RW (1620) having CD / DVD or similar media (1621), thumb drives (1622), removable hard drives or solid-state drives (1623), legacy magnetic media such as tapes and floppy disks (not shown), and specialized ROM / ASIC / PLD-based devices such as security dongles (not shown).

[0191]

[0192] Furthermore, those skilled in the art should understand that the term “computer-readable medium” as used in relation to the subject matter of this disclosure does not include transmission media, carrier waves, or other transient signals.

[0192]

[0193] The computer system (1600) may also include an interface (1654) to one or more communication networks (1655). The networks may be, for example, wireless networks, wired networks, or optical networks. The networks may further include local networks, wide-area networks, metropolitan networks, automotive and industrial networks, real-time networks, and latency-tolerant networks. Examples of networks include local area networks such as Ethernet and Wi-Fi; cellular networks including GSM, 3G, 4G, 5G, and LTE; wired or wireless wide-area digital networks for television, including cable TV, satellite TV, and terrestrial broadcast TV; and automotive and industrial networks including CANBus. Certain networks typically require an external network interface adapter, usually attached to a specific general-purpose data port or peripheral bus (1649) (e.g., a USB port on the computer system (1600)), while other networks are typically integrated into the core of the computer system (1600) by being attached to a system bus, as described below (e.g., an Ethernet interface to a PC computer system, or a cellular network interface to a smartphone computer system). A computer system (1600) can communicate with other entities using any of these networks. Such communication can be unidirectional (e.g., broadcast television), unidirectional (e.g., CANbus to a specific CANbus device), or bidirectional with other computer systems using local or wide-area digital networks. Specific protocols and protocol stacks may be used for each of these networks and network interfaces described above.

[0193]

[0194] The aforementioned human interface devices, human-accessible memory devices, and network interfaces can be mounted on the core (1640) of the computer system (1600).

[0194]

[0195] The core (1640) may include one or more central processing units (CPUs) (1641), graphics processing units (GPUs) (1642), specialized programmable processing units (1643) in the form of field programmable gate areas (FPGAs) (1643), hardware accelerators for specific tasks (1644), graphics adapters (1650), and the like. These devices may be connected via a system bus (1648) along with read-only memory (ROM) (1645), random access memory (RAM) (1646), and internal mass storage such as internal hard drives and SSDs that are not accessible to the user (1647). In some computer systems, the system bus (1648) may be accessible in the form of one or more physical plugs to allow expansion with additional CPUs, GPUs, etc. Peripheral devices may be connected directly to the core's system bus (1648) or via a peripheral bus (1649). For example, a screen (1610) can be connected to a graphics adapter (1650). The architecture for peripheral buses includes PCI, USB, etc.

[0195]

[0196] The CPU (1641), GPU (1642), FPGA (1643), and accelerator (1644) can execute certain instructions that, in combination, may constitute the aforementioned computer code. This computer code may be stored in ROM (1645) or RAM (1646). Transition data may also be stored in RAM (1646), while persistent data may be stored, for example, in internal mass storage (1647). Fast storage and retrieval of any of the memory devices may be made possible through the use of cache memory, which can be closely associated with one or more CPUs (1641), GPUs (1642), mass storage (1647), ROM (1645), RAM (1646), etc.

[0196]

[0197] A computer-readable medium may have computer code thereon for performing various computer implementation operations. The medium and computer code may be specifically designed and constructed for the purposes of this disclosure, or may be of a type that is well known to those skilled in the computer software field.

[0197]

[0198] As an example, and not an limitation, a computer system having an architecture (1600), specifically a core (1640), can provide functionality as a result of a processor (including a CPU, GPU, FPGA, accelerator, etc.) executing software embodied in one or more tangible computer-readable media. Such computer-readable media can be user-accessible mass storage as described above, and media associated with specific storage of the core (1640) that is non-transient, such as core internal mass storage (1647) or ROM (1645). Software implementing various aspects of this disclosure can be stored in such devices and executed by the core (1640). The computer-readable media can include one or more memory devices or chips, depending on the specific needs. The software can cause the core (1640), specifically the processor (including a CPU, GPU, FPGA, etc.) therein, to execute specific processes or specific parts of specific processes described herein, including defining data structures stored in RAM (1646) and modifying such data structures according to processes defined by the software. As an addition or alternative, a computer system may provide functionality as a result of logic being hardwired or otherwise embodied in circuits (e.g., accelerators (1644)) that can operate in place of or with software to perform a particular process or a particular part of a particular process described herein. References to software may, as necessary, include logic, and vice versa. References to computer-readable media may, as necessary, include circuits that store software for execution (such as integrated circuits (ICs)), circuits that embody logic for execution, or both. This disclosure encompasses any preferred combination of hardware and software.

[0198]

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

[0199]

[0200] While this disclosure has described several exemplary embodiments, there are many variations, substitutions, and alternative equivalents that fall within the scope of this disclosure. Therefore, it will be understood that many systems and methods embodying the principles of this disclosure, and thus falling within the spirit and scope of this disclosure, can be devised by those skilled in the art, although they are not expressly illustrated or described herein.

Claims

1. A method for video decoding, A step of receiving coded information of the current block in the current picture, wherein the current block is coded in a first intra-prediction mode that is different from a plurality of intra-prediction modes including DC mode, planar mode, and angular intra-prediction mode. A step of selecting a candidate block in the current picture, which is coded by an intra-prediction mode different from the plurality of intra-prediction modes, A step of deriving a second intra-prediction mode from a plurality of intra-prediction modes based on the candidate block position, in response to the candidate block being located within a predefined region, wherein the second intra-prediction mode is associated with the current block. (i) selecting a transformation of the current block based on the second intra-prediction mode associated with the current block and reconstructing the current block according to the selected transformation, or (ii) constructing a most likely mode (MPM) list of another block using the derived second intra-prediction mode associated with the current block. Methods that include...

2. The method according to claim 1, wherein the predefined region includes (i) a currently coded tree unit (CTU) and (ii) one or more previously coded CTUs.

3. The method according to claim 1, wherein the predefined region is updated for a block to be coded after the current block has been coded.

4. The method according to claim 1, wherein the size of the area of ​​the predefined region is fixed.

5. The process further includes storing the derived second intra prediction mode in the buffer of the current picture, The method according to claim 1, wherein the step of performing the step includes constructing the MPM list of the other block in the other picture using the stored second intra-prediction mode in response that the current picture is a reference picture of another picture.

6. The method according to claim 1, wherein the other block is an adjacent block to the current block.

7. The method according to claim 1, further comprising the step of storing the derived second intra-prediction mode in units of M × N, wherein M and N are positive integers.

8. The aforementioned step to be performed is The method according to claim 1, comprising selecting a transformation that is a quadratic transformation, wherein a primary transformation type is not selected based on the second intra-prediction mode derived.

9. The method according to claim 1, wherein the first intra prediction mode is one of the intrablock copy (IBC) mode, intratemplate matching (IntraTMP) mode, matrix-based intra prediction (MIP) mode, and palette mode.

10. A method for video decoding, A step of receiving coded information of the current block in the current picture, wherein the current block is coded in a first intra-prediction mode which is one of intra-block copy (IBC) mode and intra-template matching (IntraTMP) mode, The process involves checking at least one candidate block location in a predefined order, wherein the at least one candidate block location is associated with a reference block indicated by a block vector (BV) associated with one of the IBC mode and the IntraTMP mode. A second intra-prediction mode associated with the current block is determined according to the intra-prediction mode associated with one of the at least one candidate block positions. By doing so A step of deriving the second intra-prediction mode associated with the current block from a plurality of intra-prediction modes, including DC mode, planar mode, and angle intra-prediction mode, (i) selecting a transformation of the current block based on the second intra-prediction mode associated with the current block and reconstructing the current block according to the selected transformation, or (ii) constructing a most probable mode (MPM) list for another block using the derived second intra-prediction mode; Methods that include...

11. The aforementioned checking process is The method according to claim 10, comprising skipping the first candidate block position of the at least one candidate block position in response that the first candidate block position of the at least one candidate block position does not have an associated intra-prediction mode which is one of the plurality of intra-prediction modes.

12. The method according to claim 11, wherein, in response to the first candidate block position of the at least one candidate block position being located outside a predefined area, the first candidate block position of the at least one candidate block position does not have the associated intra-prediction mode which is one of the plurality of intra-prediction modes.

13. The method according to claim 12, wherein the predefined region includes (i) a currently coded tree unit (CTU) and (ii) one or more previously coded CTUs.

14. The method according to claim 12, wherein the predefined region is updated for blocks to be coded after the current block has been coded.

15. The aforementioned checking process is The method according to claim 10, comprising replacing the first candidate block position of the at least one candidate block position with a position within the predefined region in response to the first candidate block position of the at least one candidate block position being located outside the predefined region.

16. The method according to claim 15, wherein the predefined region includes (i) a currently coded tree unit (CTU) and (ii) one or more previously coded CTUs.

17. The method according to claim 15, wherein the predefined region is updated for another block to be coded after the current block has been coded.

18. The process further includes storing the derived second intra prediction mode in the buffer of the current picture, The method according to claim 10, wherein the step of performing the step of constructing the MPM list of the other block in the other picture using the stored second intra prediction mode in response that the current picture is a reference picture of another picture.

19. The method according to claim 10, further comprising the step of storing the derived second intra-prediction mode in units of M × N, wherein M and N are positive integers.

20. The aforementioned step to be performed is The method according to claim 10, comprising the step of selecting a transformation which is a quadratic transformation, wherein a primary transformation type is not selected based on the second intra-prediction mode derived.