List structure improvement
By constructing an MPM list and using a universal intra-mode map to optimize intra-prediction direction representation, the method addresses inefficiencies in representing less likely directions, improving video coding efficiency and compression performance.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2026-01-07
- Publication Date
- 2026-03-19
AI Technical Summary
Existing video coding techniques face inefficiencies in representing less likely intra-prediction directions, leading to increased bit usage and reduced compression efficiency.
The method involves constructing a Most Probable Mode (MPM) list for video blocks by applying specific conditions based on the intra-modes of neighboring blocks, determining the order of modes added to the list, and using a universal intra-mode map to optimize intra-prediction direction representation.
This approach reduces the number of bits required to represent less likely intra-prediction directions, enhancing video coding efficiency and compression performance.
Smart Images

Figure 2026050414000001_ABST
Abstract
Description
Technical Field
[0001] Incorporation by Reference This application claims the benefit of priority of U.S. Provisional Application No. 63 / 253,976, filed Oct. 8, 2021, "Method and Apparatus for Constructing Most Probable Mode (MPM) List", and U.S. Patent Application No. 17 / 944,999, filed Sep. 14, 2022, "IMPROVEMENT ON MPM LIST CONSTRUCTION". The disclosures of the prior applications are hereby incorporated by reference in their entireties.
[0002] This disclosure generally describes embodiments related to video coding.
Background Art
[0003] The description of the background art provided herein is for the purpose of generally presenting the context of the present disclosure. The inventors' research is not admitted as prior art to the present disclosure, either explicitly or implicitly, insofar as that research is described in this background art section and in aspects of the description that may not be regarded as prior art at the time of filing of the present application.
[0004] Video coding and decoding can be performed using interpicture prediction with motion compensation. Uncompressed digital video can contain a series of pictures, each picture having spatial dimensions of, for example, 1920×1080 luminance samples and associated full or subsampled chrominance samples. The series of pictures can have a fixed or variable picture rate (also informally called frame rate), for example, 60 pictures per second or 60Hz. Uncompressed video has specific bitrate requirements. For example, 1080p60 4:2:0 video at 8 bits per sample (1920×1080 luminance sample resolution at a 60Hz frame rate) requires a bandwidth of nearly 1.5 Gbit / s. One hour of such video requires more than 600 GByte of storage space.
[0005] One purpose of video coding and decoding can be to reduce the redundancy of the input video signal through compression. Compression can help reduce the aforementioned bandwidth and / or storage space requirements by more than two orders of magnitude, in some cases. Both lossless and lossy compression, as well as combinations thereof, can be used. Lossless compression refers to a technique in which an exact copy of the original signal can be reconstructed from the compressed original signal through the decoding process. When using lossy compression, the reconstructed signal may not be identical to the original signal, but the distortion between the original and reconstructed signals is small enough to make the reconstructed signal useful for its intended purpose. For video, lossy compression is widely used. The amount of acceptable distortion depends on the application; for example, users of a particular consumer streaming application may tolerate higher distortion than users of a television distribution application. The achievable compression ratio can reflect that higher acceptable / acceptable distortion can result in a higher compression ratio.
[0006] Video encoders and video decoders can utilize techniques from several broad categories, including, for example, motion compensation, transformation, quantization, and entropy coding.
[0007] Video codec techniques may include a technique known as intra-coding. In intra-coding, sample values are represented without referencing samples or other data from a previously reconstructed reference picture. In some video codecs, the picture is spatially subdivided into blocks of samples. If all blocks of samples are coded in intra-mode, the picture can be called an intra-picture. Intra-pictures and their derived pictures, such as independent decoder refresh pictures, can be used to reset the decoder state and therefore can be used as the first picture in a coded video bitstream and video session, or as a still image. Samples in intra-blocks can undergo transformations, and the transformation coefficients can be quantized before entropy coding. Intra-prediction can be a technique that minimizes the sample values in the pre-transformation region. In some cases, smaller post-transformation DC values and smaller AC coefficients result in fewer bits being required at a given quantization step size to represent the post-entropy-coded block.
[0008] For example, traditional intra-coding, such as that known from MPEG-2 generation coding techniques, does not use intra-prediction. However, some newer video compression techniques include those that attempt to do so from surrounding sample data and / or metadata obtained during encoding / decoding of blocks of data that are spatially nearby and preceding in the decoding order. Such techniques will hereafter be referred to as “intra-prediction” techniques. It should be noted that in at least some cases, intra-prediction uses reference data only from the current picture being reconstructed and not from reference data from other reference pictures.
[0009] Intra-prediction can take many different forms. If two or more of these techniques can be used in a given video coding technique, the techniques used can be coded in intra-prediction mode. In some cases, a mode may have sub-modes and / or parameters, which can be coded individually or included in a mode codeword. The choice of codeword for a given combination of mode, sub-mode, and / or parameters may affect the coding efficiency via intra-prediction and may affect the entropy coding technique used to convert the codeword into a bitstream.
[0010] Certain modes of intra-prediction were introduced in H.264, improved in H.265, and further refined with newer coding techniques such as Joint Search Models (JEM), Versatile Video Coding (VVC), and Benchmark Sets (BMS). Predictor blocks can be formed using neighboring sample values belonging to already available samples. The sample values of neighboring samples are copied to the predictor block according to direction. References to the direction used may be coded in the bitstream or predicted themselves.
[0011] Referring to Figure 1, the lower right diagram shows a subset of the nine predictor directions known from the 33 possible predictor directions in H.265 (corresponding to the 33 angular modes of the 35 intra-modes). The point where the arrows converge (101) represents the predicted sample. The arrows indicate the direction from which the sample is predicted. For example, arrow (102) indicates that sample (101) is predicted to be to the upper right from one or more samples at an angle of 45 degrees from the horizontal. Similarly, arrow (103) indicates that sample (101) is predicted to be to the lower left from one or more samples at an angle of 22.5 degrees from the horizontal.
[0012] Referring further to Figure 1, a 4x4 sample square block (104) is illustrated in the upper left (indicated by a thick dashed line). The square block (104) contains 16 samples, each labeled with "S", its Y-dimensional position (e.g., row index), and its X-dimensional position (e.g., column index). For example, sample S21 is the second sample (from the top) in the Y-dimensional and the first sample (from the left) in the X-dimensional. Similarly, sample S44 is the fourth sample in block (104) in both the Y-dimensional and X-dimensional. Since the block is 4x4 samples in size, S44 is in the lower right. Further reference samples are shown following a similar numbering scheme. The reference samples are labeled with R, its Y-position (e.g., row index) relative to block (104), and its X-position (column index). In both H.264 and H.265, the predicted samples are neighbors of the block being reconstructed, and therefore negative values do not need to be used.
[0013] Intra-picture prediction can function by copying reference sample values from neighboring samples so that they are assigned by the signaled prediction direction. For example, suppose the coded video bitstream includes signaling for this block indicating a prediction direction corresponding to arrow (102), i.e., a sample is predicted to be upward and to the right from one or more prediction samples at an angle of 45 degrees from the horizontal. In that case, samples S41, S32, S23, and S14 are predicted from the same reference sample R05. Then, sample S44 is predicted from reference sample R08.
[0014] In some cases, to calculate the reference sample, especially if the direction is not evenly divisible by 45 degrees, the values of multiple reference samples may be combined, for example, by interpolation.
[0015] The number of possible directions has increased as video coding techniques have advanced. In H.264 (2003), nine different directions could be represented. This increased to 33 in H.265 (2013), and JEM / VVC / BMS can support up to 65 directions as of the present disclosure. Experiments have been conducted to identify the most likely directions, and some entropy coding techniques are used to represent these less likely directions with a small number of bits, accepting a certain penalty for less likely directions. Furthermore, the direction itself can sometimes be predicted from the neighboring directions used in neighboring already decoded blocks.
[0016] Figure 2 shows a schematic diagram (201) illustrating 65 intra-prediction directions by JEM to show the number of prediction directions increasing over time.
[0017] The mapping of intra-predicted direction bits within a coded video bitstream representing direction can vary across video coding techniques, ranging from simple direct mappings from predicted direction to intra-predicted modes to complex adaptive schemes involving codewords, most probable modes, and similar techniques. However, in all cases, there may be certain directions that are statistically less likely to occur in video content than other directions. Since the goal of video compression is to reduce redundancy, these less likely directions will be represented with more bits than the more likely directions in a well-functioning video coding technique. [Overview of the project] [Means for solving the problem]
[0018] Aspects of this disclosure provide methods and apparatus for video encoding / decoding. In some examples, the apparatus for video decoding includes a processing circuit.
[0019] According to one aspect of the present disclosure, a method for video decoding performed in a video decoder is provided. In the method, coded information of the current block and neighboring blocks of the current block can be received from a coded video bitstream. Neighboring blocks may include first blocks and second blocks. Each of the first blocks may be adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks may be adjacent to one of the left edge and lower left corner of the current block. It can be determined whether one or more of the first blocks of the neighboring blocks and the current block are in the same coding tree unit (CTU). Based on whether one or more of the first blocks of the neighboring blocks and the current block are in the same CTU, each intra-mode associated with one or more of the first blocks may be added to the most likely mode (MPM) list of the current block based on a sequence of conditions. The sequence of conditions may correspond to the order in which each intra-mode is determined to be added to the MPM list. Each intra-mode associated with each of the second blocks of the neighboring blocks may be added to the MPM list based on a sequence of conditions. The current block can be reconfigured based on the MPM list.
[0020] In some embodiments, the intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a second condition in a sequence of conditions, based on the fact that the height of the current block is greater than or equal to the width of the current block. The upper block may be adjacent to the top edge of the current block. The second condition may include that the upper block is intra-coded. The propagating intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a fourth condition in a sequence of conditions, the fourth condition may include that the upper block is interconnected. The propagating intra-mode of an upper block may be obtained based on the neighboring blocks of the upper block.
[0021] In some embodiments, the propagating intra-mode of one or more upper-right blocks of the first block can be added to the MPM list according to a 10th condition in a sequence of conditions. The upper-right block can be adjacent to the upper-right corner of the current block. The 10th condition may include that the upper-right block is interconnected. The propagating intra-mode of the upper-right block can be obtained based on the neighboring blocks of the upper-right block. The propagating intra-mode of one or more upper-left blocks of the first block can be added to the MPM list according to an 11th condition in a sequence of conditions. The upper-left block can be adjacent to the upper-left corner of the current block. The 11th condition may include that the upper-left block is interconnected. The propagating intra-mode of the upper-left block can be obtained based on the neighboring blocks of the upper-left block.
[0022] In some embodiments, based on the fact that the height of the current block is greater than or equal to the width of the current block, the intra-mode of the left block of the second block may be added to the MPM list according to a third condition in a sequence of conditions. The left block may be adjacent to the left edge of the current block. The third condition may include that the left block of the second block is intra-coded.
[0023] In some embodiments, in response to the height of the current block being less than the width of the current block, the propagating intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a fifth condition in a sequence of conditions. The fifth condition may include the upper block being interconnected. The propagating intra-mode of an upper block may be obtained based on the neighboring blocks of the upper block.
[0024] In some embodiments, a condition in a sequence of conditions for adding one of the neighboring blocks' propagating intra-modes to the MPM list may follow a condition in a sequence of conditions for adding that one of the neighboring blocks' intra-modes to the MPM list.
[0025] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the intra-modes of one or more upper blocks of the first block may be added to the MPM list according to a second condition in a sequence of conditions. The second condition may include that the upper block is intra-coded. The propagating intra-modes of one or more upper blocks of the first block may be added to the MPM list according to a third condition in a sequence of conditions. The third condition may include that the upper block is inter-coded. The propagating intra-modes of upper blocks may be obtained based on the neighboring blocks of the upper block.
[0026] In some embodiments, the intra mode of one or more upper right blocks of the first block can be added to the MPM list according to the 8th condition in the sequence of conditions, and the 8th condition can include that the upper right block is intra-coded. The propagation intra mode of one or more upper right blocks of the first block can be added to the MPM list according to the 9th condition in the sequence of conditions, and the 9th condition can include that the upper right block is inter-coded. The propagation intra mode of the upper right block can be obtained based on the neighboring blocks of the upper right block. The intra mode of one or more upper left blocks of the first block can be added to the MPM list according to the 10th condition in the sequence of conditions, and the 10th condition can include that the upper left block is intra-coded. The propagation intra mode of one or more upper left blocks of the first block can be added to the MPM list according to the 11th condition in the sequence of conditions, and the 11th condition can include that the upper left block is inter-coded. The propagation intra mode of the upper left block can be obtained based on the neighboring blocks of the upper left block.
[0027] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the intra mode of the left block of the second block can be added to the MPM list according to the 4th condition in the sequence of conditions, and the 4th condition can include that the left block of the second block is intra-coded. The propagation intra mode of the left block of the second block can be added to the MPM list according to the 5th condition in the sequence of conditions, and the 5th condition can include that the left block of the second block is inter-coded. The propagation intra mode of the left block can be obtained based on the neighboring blocks of the left block.
[0028] In some embodiments, the intra-mode of the lower-left block of the second block can be added to the MPM list according to a sixth condition in a sequence of conditions, the sixth condition of which may include that the lower-left block of the second block is intra-coded. The lower-left block can be adjacent to the lower-left corner of the current block. The propagating intra-mode of the lower-left block of the second block can be added to the MPM list according to a seventh condition in a sequence of conditions, the seventh condition of which may include that the lower-left block of the second block is inter-coded. The propagating intra-mode of the lower-left block can be obtained based on the neighboring blocks of the lower-left block.
[0029] Another aspect of this disclosure provides a method for video decoding performed in a video decoder. The method can receive coded information for the current block and neighboring blocks of the current block from a coded video bitstream. Neighboring blocks may include a first block and a second block. Each of the first blocks may be adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks may be adjacent to one of the left edge and lower left corner of the current block. Each corresponding position in each neighboring block can be determined. The corresponding intra-mode of a neighboring block can be determined based on the corresponding position and a universal intra-mode map. The universal intra-mode map may include multiple units, and each corresponding position may be associated with a unit in the universal intra-mode map and may correspond to the corresponding intra-mode associated with the unit. A most likely mode (MPM) list can be generated for the current block based on the corresponding intra-modes of the neighboring blocks and a sequence of conditions. The sequence of conditions may indicate the order in which each intra-mode is determined when added to the MPM list. The current block can be further restructured based on the MPM list.
[0030] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the corresponding intra mode of the upper block of the first block can be added to the MPM list according to the second condition in a sequence of conditions, and the second condition can include the existence of the upper block. The upper block can be adjacent to the upper side of the current block. The corresponding intra mode of the left block of the second block can be added to the MPM list according to the third condition in a sequence of conditions, and the third condition can include the existence of the left block. The left block can be adjacent to the left side of the current block.
[0031] In some embodiments, in response to the height of the current block being less than the width of the current block, the corresponding intra mode of the left block of the second block can be added to the MPM list according to the second condition in a sequence of conditions, and the second condition can include the existence of the left block. The corresponding intra mode of the upper block of the first block can be added to the MPM list according to the third condition in a sequence of conditions, and the third condition can indicate the existence of the upper block.
[0032] In some embodiments, the corresponding intra-mode of the lower-left block of the second block can be added to the MPM list according to the sixth condition in the sequence of conditions, the sixth condition may include the existence of the lower-left block. The lower-left block may be adjacent to the lower-left corner of the current block. The corresponding intra-mode of the upper-right block of the first block can be added to the MPM list according to the seventh condition in the sequence of conditions, the seventh condition may include the existence of the upper-right block. The upper-right block may be adjacent to the upper-right corner of the current block. The corresponding intra-mode of the upper-left block of the first block can be added to the MPM list according to the eighth condition in the sequence of conditions, the eighth condition may include the existence of the upper-left block. The upper-left block may be adjacent to the upper-left corner of the current block.
[0033] In one embodiment, each of the multiple units of the universal intra-mode map can be initialized with a default intra-mode, and one or more of the default intra-modes in the universal intra-mode map can be further replaced with the corresponding intra-mode.
[0034] In another embodiment, one or more of the multiple units of the universal intra-mode map can be filled with the corresponding intra-mode, and the remaining units of the multiple units of the universal intra-mode map can be further filled with the default intra-mode.
[0035] According to another aspect of this disclosure, an apparatus is provided. The apparatus includes a processing circuit. The processing circuit may be configured to perform any of the methods for video coding.
[0036] Aspects of this disclosure also provide non-temporary computer-readable media that stores instructions causing a computer to perform one of the methods for video coding when executed by the computer for video coding.
[0037] Further features, properties, and various advantages of the subject matter of the disclosure will become clearer from the detailed description and accompanying drawings below. [Brief explanation of the drawing]
[0038] [Figure 1] This is a schematic diagram of an exemplary subset of intra-predictive modes. [Figure 2] This is an example diagram of the intra-prediction direction. [Figure 3] This is a schematic diagram of a simplified block diagram of a communication system (300) according to one embodiment. [Figure 4] This is a schematic diagram of a simplified block diagram of a communication system (400) according to one embodiment. [Figure 5] This is a schematic diagram of a simplified block diagram of a decoder according to one embodiment. [Figure 6] This is a schematic diagram of a simplified block diagram of an encoder according to one embodiment. [Figure 7] A block diagram of an encoder according to another embodiment is shown. [Figure 8] A block diagram of a decoder according to another embodiment is shown. [Figure 9] The following are neighboring coding units of the current coding unit in intra-mode coding according to some embodiments of this disclosure. [Figure 10A] This is a first exemplary universal intra-mode map according to some embodiments of the present disclosure. [Figure 10B] A second exemplary universal intra-mode map according to some embodiments of the present disclosure. [Figure 11A] This is a first exemplary diagram of a most likely mode (MPM) list configuration according to some embodiments of the present disclosure. [Figure 11B] This is a second illustrative diagram of a most likely mode (MPM) list configuration according to some embodiments of the present disclosure. [Figure 12]A flowchart illustrating a first exemplary decoding process according to some embodiments of the present disclosure is shown. [Figure 13] A flowchart illustrating a second exemplary decoding process according to some embodiments of the present disclosure is shown. [Figure 14] A flowchart illustrating a first exemplary encoding process according to some embodiments of this disclosure is shown. [Figure 15] A flowchart illustrating a second exemplary encoding process according to some embodiments of the present disclosure is shown. [Figure 16] This is a schematic diagram of a computer system according to one embodiment. [Modes for carrying out the invention]
[0039] Figure 3 shows a simplified block diagram of a communication system (300) according to one embodiment of the present disclosure. The communication system (300) includes, for example, a plurality of terminal devices that can communicate with each other via a network (350). For example, the communication system (300) includes a first pair of terminal devices (310) and (320) interconnected via the network (350). In the example of Figure 3, the first pair of terminal devices (310) and (320) perform unidirectional transmission of data. For example, terminal device (310) may encode video data (for example, a stream of video pictures captured by terminal device (310)) for transmission to the other terminal device (320) via the network (350). The encoded video data may be transmitted in the form of one or more encoded video bitstreams. Terminal device (320) may receive the encoded video data from the network (350), decode the encoded video data to restore the video pictures, and display the video pictures according to the restored video data. Unidirectional data transmission can be common in media serving applications, for example.
[0040] In another example, the communication system (300) includes a second pair of terminal devices (330) and (340) that perform bidirectional transmission of coded video data, which may occur, for example, during a video conference. For bidirectional transmission of data, in one example, each terminal device of terminal devices (330) and (340) may code video data (e.g., a stream of video pictures captured by that terminal device) for transmission to the other terminal device of terminal devices (330) and (340) via the network (350). Each terminal device of terminal devices (330) and (340) may also receive coded video data transmitted by the other terminal device of terminal devices (330) and (340), decode the coded video data to restore video pictures, and display video pictures on an accessible display device according to the restored video data.
[0041] In the example in Figure 3, terminal devices (310), (320), (330), and (340) may be represented as a server, a personal computer, and a smartphone, but the principles of this disclosure are not limited thereto. Embodiments of this disclosure apply with laptop computers, tablet computers, media players, and / or dedicated video conferencing equipment. Network (350) represents any number of networks that transmit coded video data between terminal devices (310), (320), (330), and (340), including, for example, wired and / or wireless communication networks. Communication network (350) may exchange data over circuit-switched channels and / or packet-switched channels. Typical networks include telecommunications networks, local area networks, wide area networks, and / or the Internet. For the purposes of this discussion, the architecture and topology of network (350) may not be important to the operation of this disclosure unless described herein below.
[0042] Figure 4 shows an example of the placement of a video encoder and video decoder in a streaming environment as an example of the subject matter of the disclosure. The subject matter of the disclosure may be equally applicable to other video-enabled applications, including, for example, video conferencing, digital television, and storage of compressed video on digital media such as CDs, DVDs, and memory sticks.
[0043] The streaming system may include, for example, a capture subsystem (413) which may include a video source (401), such as a digital camera, that creates a stream (402) of uncompressed video pictures. In one example, the stream (402) of video pictures includes a sample taken by the digital camera. The stream (402) of video pictures is shown as a thick line to highlight its high data volume compared to encoded video data (404) (or encoded video bitstream) and can be processed by an electronic device (420) which includes a video encoder (403) coupled to the video source (401). The video encoder (403) may include hardware, software, or a combination thereof to enable or implement aspects of the subject of disclosure, as will be described in more detail below. The encoded video data (404) (or encoded video bitstream (404)) is shown as a thin line to highlight its low data volume compared to the stream (402) of video pictures and can be stored in a streaming server (405) for future use. One or more streaming client subsystems, such as client subsystems (406) and (408) in Figure 4, can access a streaming server (405) to retrieve copies (407) and (409) of the encoded video data (404). The client subsystem (406) may include a video decoder (410) within, for example, an electronic device (430). The video decoder (410) decodes the input copy (407) of the encoded video data to create an output stream (411) of a video picture that can be rendered on a display (412) (e.g., a display screen) or another rendering device (not shown). In some streaming systems, the encoded video data (404), (407), and (409) (e.g., video bitstreams) can be encoded according to a specific video coding / compression standard.Examples of these standards include ITU-T Recommendation H.265. For example, a video coding standard under development is informally known as Multipurpose Video Coding (VVC). The subject matter of this disclosure may be used in the context of VVC.
[0044] It should be noted that electronic devices (420) and (430) may include other components (not shown). For example, electronic device (420) may include a video decoder (not shown), and electronic device (430) may include a video encoder (not shown).
[0045] Figure 5 shows a block diagram of a video decoder (510) according to one embodiment of the present disclosure. The video decoder (510) may be included in an electronic device (530). The electronic device (530) may include a receiver (531) (e.g., a receiving circuit). The video decoder (510) can be used in place of the video decoder (410) in the example of Figure 4.
[0046] The receiver (531) may receive one or more coded video sequences to be decoded by the video decoder (510), and in the same or different embodiments, may receive one coded video sequence at a time, with the decoding of each coded video sequence being independent of other coded video sequences. The coded video sequences may be received from a channel (501), which may be a hardware / software link to a storage device that stores encoded video data. The receiver (531) may receive the encoded video data together with other data that may be transferred to their respective user entities (not shown), such as coded audio data and / or auxiliary data streams. The receiver (531) may isolate the coded video sequences from other data. To counteract network jitter, a buffer memory (515) may be coupled between the receiver (531) and the entropy decoder / parser (520) (hereinafter, "Parser (520)"). In certain applications, the buffer memory (515) is part of the video decoder (510). In other applications, the buffer memory (515) may be located outside the video decoder (510) (not shown). In yet other applications, for example, there may be a buffer memory (not shown) outside the video decoder (510) to counteract network jitter, and there may be an additional buffer memory (515) inside the video decoder (510) to handle playback timing, for example. When the receiver (531) is receiving data from a storage / transfer device with sufficient bandwidth and controllability, or from an isosynchronous network, the buffer memory (515) may be unnecessary or can be made smaller.When used in best-effort packet networks such as the Internet, the buffer memory (515) may be required and can be relatively large, or advantageously, adaptively sized, and may be at least partially implemented in an operating system or similar element (not shown) outside the video decoder (510).
[0047] The video decoder (510) may include a parser (520) to reconstruct symbols (521) from the coded video sequence. The categories of these symbols include information used to manage the operation of the video decoder (510), and potentially information for controlling rendering devices (512) (e.g., display screens), such as rendering devices that are not integral parts of the electronic device (530) but can be coupled to the electronic device (530), as shown in Figure 5. The control information for (one or more) rendering devices may be in the form of supplemental extension information (SEI messages) or parameter set fragments (not shown) of video usability information (VUI). The parser (520) may parse / entropy decode the incoming coded video sequence. The coding of the coded video sequence may conform to video coding techniques or standards and may follow a variety of principles, including variable-length coding, Huffman coding, context-dependent or non-context-dependent arithmetic coding, etc. The parser(520) may extract from the coded video sequence a set of at least one subgroup parameters of subgroups of pixels in the video decoder, based on at least one parameter corresponding to a group. Subgroups may include Group of Pictures (GOP), picture, tile, slice, macroblock, coding unit (CU), block, transform unit (TU), predictive unit (PU), etc. The parser(520) may also extract information from the coded video sequence such as transform coefficients, quantization parameter values, and motion vectors.
[0048] The parser (520) may perform entropy decoding / parse operations on the video sequence received from buffer memory (515) in order to create symbols (521).
[0049] The reconstruction of the symbol (521) may require multiple different processing 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 required and how can be controlled by subgroup control information parsed from the video sequence coded by the parser (520). The flow of such subgroup control information between the parser (520) and the following multiple units is not illustrated for brevity.
[0050] Beyond the functional blocks already mentioned, the video decoder (510) 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, at least partially, be integrated with one another. However, for the purpose of illustrating the subject of this disclosure, the following conceptual subdivision into functional units is appropriate.
[0051] The first unit is the scaler / inverse unit (551). The scaler / inverse unit (551) receives control information from the parser (520) as one or more symbols (521), including quantization conversion coefficients, which conversion to use, block size, quantization coefficients / parameters, and quantization scaling matrix. The scaler / inverse unit (551) can output a block containing sample values that can be input to the aggregator (555).
[0052] In some cases, the output samples of the scaler / inverse transform (551) may relate to intracoded blocks, i.e., blocks that do not use predictive information from previously reconstructed pictures but can use predictive information from previously reconstructed portions of the current picture. Such predictive information may be provided by an intrapicture predictive unit (552). In some cases, the intrapicture predictive unit (552) 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 (558). The current picture buffer (558) buffers, for example, partially reconstructed current pictures and / or fully reconstructed current pictures. The aggregator (555) may, in some cases, add the predictive information generated by the intra predictive unit (552) to the output sample information provided by the scaler / inverse transform unit (551) on a sample-by-sample basis.
[0053] In other cases, the output samples of the scaler / inverse unit (551) may relate to an intercoded and potentially motion-compensated block. In such cases, the motion-compensated prediction unit (553) may access the reference picture memory (557) to fetch samples to be used for prediction. After motion-compensating the fetched samples according to the symbols (521) related to the block, these samples may be added to the output of the scaler / inverse unit (551) by the aggregator (555) to generate output sample information (in this case, called residual samples or residual signals). The address in the reference picture memory (557) from which the motion-compensated prediction unit (553) fetches the prediction samples may be controlled by a motion vector, and the motion-compensated prediction unit (553) may have the symbol (521) available in the form of an X component, a Y component, and a reference picture component. Motion compensation may also include interpolation of sample values fetched from the reference picture memory (557) when the exact motion vectors of the subsamples are used, motion vector prediction mechanisms, etc.
[0054] The output samples of the aggregator (555) can undergo various loop filtering techniques in the loop filter unit (556). The video compression technique may include in-loop filtering techniques, which are controlled by parameters contained in the coded video sequence (also called the coded video bitstream) and provided to the loop filter unit (556) as symbols (521) from the parser (520), but may also respond to metadata obtained during decoding of earlier parts (in decoding order) of the coded picture or coded video sequence, and may also respond to previously reconstructed and loop-filtered sample values.
[0055] The output of the loop filter unit (556) can be a sample stream that is not only output to the rendering device (512) but can also be stored in reference picture memory (557) for use in future interpicture prediction.
[0056] A particular coded picture, once fully reconfigured, can be used as a reference picture for future predictions. For example, once the coded picture corresponding to the current picture is fully reconfigured and the coded picture is identified as a reference picture (e.g., by the parser (520)), the current picture buffer (558) can become part of the reference picture memory (557), and any unused current picture buffer can be reallocated before the reconfiguration of the next coded picture begins.
[0057] The video decoder (510) may perform decoding operations according to a specified video compression technique of a 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 the sense that the coded video sequence is faithful to both the syntax of the video compression technique or standard and the profile documented in the video compression technique or standard. Specifically, a profile may select specific tools as a limited set of tools that can be used under that profile from all the tools available in the video compression technique or standard. Also necessary for compliance may be that the complexity of the coded video sequence is within the range defined by the level of the video compression technique or standard. In some cases, the level may limit the maximum picture size, maximum frame rate, maximum reconstruction sample rate (e.g., measured in megasamples per second), maximum reference picture size, etc. The limits set by the level may, in some cases, be further restricted by the virtual reference decoder (HRD) specification and metadata for HRD buffer management signaled in the coded video sequence.
[0058] In one embodiment, the receiver (531) may receive additional (redundant) data along with the encoded video. The additional data may be included as part of one or more encoded video sequences. The additional data may be used by the video decoder (510) to properly decode the data and / or to more accurately reconstruct the original video data. The additional data may take the form of, for example, time, space, or signal-to-noise ratio (SNR) enhancement layers, redundant slices, redundant pictures, forward error correction codes, etc.
[0059] Figure 6 shows a block diagram of a video encoder (603) according to one embodiment of the present disclosure. The video encoder (603) is included in an electronic device (620). The electronic device (620) further includes a transmitter (640) (e.g., a transmitting circuit). The video encoder (603) can be used in place of the video encoder (403) in the example of Figure 4.
[0060] The video encoder (603) may receive video samples from a video source (601) (not part of the electronic device (620) in the example in Figure 6) which can capture (one or more) video images to be coded by the video encoder (603). In another example, the video source (601) is part of the electronic device (620).
[0061] A video source (601) may provide a source video sequence to be coded by a video encoder (603) in the form of a digital video sample stream, which may have any suitable bit depth (e.g., 8-bit, 10-bit, 12-bit, ...), any color space (e.g., BT.601 Y CrCB, RGB, ...), and any suitable sampling structure (e.g., Y CrCb 4:2:0, Y CrCb 4:4:4). In a media serving system, the video source (601) may be a storage device that stores previously prepared video. In a video conferencing system, the video source (601) may be a camera that captures local image information as a video sequence. The video data may be provided as a series of individual pictures that give motion when viewed in a sequence. The pictures themselves may be organized as a spatial array of pixels, and each pixel may contain one or more samples, depending on the sampling structure, color space, etc., used. Those skilled in the art will readily understand the relationship between pixels and samples. The following description focuses on samples.
[0062] In one embodiment, the video encoder (603) can encode and compress the pictures of a source video sequence into a coded video sequence (643) in real time or under any other time constraints required by the application. One function of the controller (650) is to implement an appropriate coding speed. In some embodiments, the controller (650) controls and is functionally coupled to other functional units described below. For brevity, the couplings are not shown. Parameters set by the controller (650) may include rate control-related parameters (picture skip, quantization, lambda values for rate distortion optimization techniques, etc.), picture size, Group of Pictures (GOP) layout, maximum motion vector search range, etc. The controller (650) may be configured to have other appropriate functions related to the video encoder (603) optimized for a certain system design.
[0063] In some embodiments, the video encoder (603) is configured to operate in a coding loop. In an overly simplified explanation, in one example, the coding loop may include a source coder (630) (for example, responsible for generating symbols such as a symbol stream based on an input picture to be coded and one or more reference pictures) and a (local) decoder (633) incorporated into the video encoder (603). The decoder (633) reconstructs the symbols to create sample data in a similar manner to how the (remote) decoder would also create (since any compression between the symbols and the coded video bitstream is reversible in the video compression techniques considered in the subject of disclosure). The reconstructed sample stream (sample data) is input to a reference picture memory (634). Since decoding the symbol stream yields bit-exact results regardless of the decoder's location (local or remote), the contents in the reference picture memory (634) are also bit-exact between the local encoder and the remote encoder. In other words, the predictive part of the encoder "sees" the exact same sample values as the reference picture samples that the decoder will "see" when using the predictions during decoding. This fundamental principle of reference picture synchronization (and the resulting drift when synchronization cannot be maintained due to, for example, channel errors) is also used in several related techniques.
[0064] The operation of the “local” decoder (633) may be the same as that of a “remote” decoder, such as the video decoder (510), which has already been described in detail above in relation to Figure 5. Referring briefly to Figure 5, however, since symbols are available and the encoding / decoding of symbols to the coded video sequence by the entropy coder (645) and parser (520) may be reversible, the entropy decoding portion of the video decoder (510), including the buffer memory (515) and parser (520), may not be fully implemented in the local decoder (633) within the encoder.
[0065] At this point, it can be said that any decoder technique present within the decoder, excluding parsing / entropy decoding, must necessarily exist in substantially the same functional form in the corresponding encoder. Therefore, the subject of this disclosure focuses on decoder operation. The description of encoder techniques can be omitted, as it is the reverse of the comprehensively described decoder techniques. More detailed explanations are only necessary in specific areas and are provided below.
[0066] During operation, in some examples, the source coder (630) 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 (632) codes the difference between the pixel blocks of the input picture and the pixel blocks of one or more reference pictures that may be selected as predictive references to the input picture.
[0067] The local video decoder (633) can decode coded video data of a picture that may be designated as a reference picture, based on symbols created by the source coder (630). The operation of the coding engine (632) may, advantageously, be a lossy process. If coded video data can be decoded by a video decoder (not shown in Figure 6), the reconstructed video sequence may typically be a copy of the source video sequence with some errors. The local video decoder (633) can replicate the decoding process that the video decoder may perform on the reference picture and store the reconstructed reference picture in the reference picture cache (634). In this way, the video encoder (603) can locally store a copy of the reconstructed reference picture that has content common to the reconstructed reference picture obtained by the far-end video decoder (without transmission errors).
[0068] The predictor (635) may perform a predictive search for the coding engine (632). That is, for a new picture to be coded, the predictor (635) may search the reference picture memory (634) for specific metadata, such as sample data (as candidate reference pixel blocks) or reference picture motion vectors, block shapes, etc., which can function as appropriate predictive references for the new picture. The predictor (635) may operate sample block by pixel block to find appropriate predictive references. In some cases, the input picture may have predictive references drawn from multiple reference pictures stored in the reference picture memory (634), as determined by the search results obtained by the predictor (635).
[0069] The controller (650) may manage the coding operations of the source coder (630), including, for example, setting parameters and subgroup parameters used to encode video data.
[0070] The outputs of all the aforementioned functional units can be entropy coded by the entropy coder (645). The entropy coder (645) converts the symbols generated by the various functional units into coded video sequences by lossless compression of symbols according to techniques such as Huffman coding, variable-length coding, and arithmetic coding.
[0071] The transmitter (640) may buffer (one or more) coded video sequences created by the entropy coder (645) in preparation for transmission over the communication channel (660), which may be a hardware / software link to a storage device that stores the encoded video data. The transmitter (640) may merge the coded video data from the video coder (603) with other data to be transmitted, such as coded audio data and / or auxiliary data streams (sources not shown).
[0072] The controller (650) may manage the operation of the video encoder (603). During coding, the controller (650) may assign a coded picture type to each coded picture, and the picture type may affect the coding techniques that can be applied to each picture. For example, a picture may often be assigned as one of the following picture types:
[0073] An intra-picture (I-picture) can be a picture that can be coded and decoded without using any other pictures in the sequence as a source of prediction. Some video codecs allow different types of intra-pictures, including, for example, independent decoder refresh ("IDR") pictures. Those skilled in the art are aware of these variations of I-pictures, as well as their respective uses and characteristics.
[0074] A predictive picture (P-picture) can be a picture that can be coded and decoded using intra-prediction or inter-prediction, which predicts the sample value of each block using at most one motion vector and reference index.
[0075] A bidirectional predictive picture (B-picture) can be a picture that can be coded and decoded using intra-prediction or inter-prediction, which predicts the sample values of each block using at most two motion vectors and reference indices. Similarly, multiple predictive pictures can use three or more reference pictures and associated metadata for the reconstruction of a single block.
[0076] A source picture can generally be spatially subdivided into multiple sample blocks (e.g., blocks of 4x4, 8x8, 4x8, or 16x16 samples each) and coded block by block. 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, blocks of picture I may be coded non-predictively or predictively by referencing already coded blocks of the same picture (spatial prediction or intra-prediction). Pixel blocks of picture P may be predictedly coded via spatial prediction or temporal prediction by referencing one previously coded reference picture. Blocks of picture B may be predictedly coded via spatial prediction or temporal prediction by referencing one or two previously coded reference pictures.
[0077] The video encoder (603) 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 (603) may perform various compression operations, including predictive coding operations that utilize temporal and spatial redundancy in the input video sequence. Therefore, the coded video data may conform to the syntax specified by the video coding technique or standard being used.
[0078] In one embodiment, the transmitter (640) may transmit additional data along with the encoded video. The source coder (630) may include such data as part of the encoded video sequence. The additional data may include time / space / SNR enhancement layers, other forms of redundant data such as redundant pictures and slices, SEI messages, VUI parameter set fragments, and the like.
[0079] Video may be captured as multiple source pictures (video pictures) in a time series. 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, may be divided into blocks. When a block in the current picture is analogous to a reference block in a previously coded, still-buffered reference picture within the video, the block in the current picture can 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 used.
[0080] In some embodiments, a dual prediction technique can be used in interpicture prediction. According to the dual prediction technique, two reference pictures are used, such as a first reference picture and a second reference picture, both of which precede the current picture in the video in decoding order (but can be past and future, respectively, in display order). A block 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. The block can be jointly predicted by a combination of the first and second reference blocks.
[0081] Furthermore, merge mode technology can be used to improve coding efficiency in interpicture prediction.
[0082] According to some embodiments of this disclosure, predictions such as interpicture prediction and intrapicture prediction are performed on a block basis. 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, and 16x16 pixels. Generally, a CTU contains three coding tree blocks (CTBs), which are 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 an inter-prediction type or an 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 contains one lumane prediction block (PB) and two chromane PBs. In one embodiment, the prediction operation in coding (encoding / decoding) is performed in units of prediction blocks. Using a lumane prediction block as an example of a prediction block, the prediction block contains a matrix of pixel values (e.g., lumane values) such as 8x8 pixels, 16x16 pixels, 8x16 pixels, 16x8 pixels, etc.
[0083] Figure 7 shows a diagram of a video encoder (703) according to another embodiment of the present disclosure. The video encoder (703) is configured to receive a processing block (e.g., a prediction block) of sample values in the current video picture within a sequence of video pictures and to encode the processing block into a coded picture which is part of a coded video sequence. In one example, the video encoder (703) is used instead of the video encoder (403) in the example of Figure 4.
[0084] In the HEVC example, the video encoder (703) receives a matrix of sample values for a processing block, such as an 8x8 sample prediction block. The video encoder (703) determines whether the processing block is best coded using intra-mode, inter-mode, or bi-prediction mode, for example, with rate-distortion optimization. If the processing block is coded in intra-mode, the video encoder (703) encodes the processing block into a coded picture using intra-prediction techniques. If the processing block is coded in inter-mode or bi-prediction mode, the video encoder (703) may encode the processing block into a coded picture using inter-prediction techniques or bi-prediction techniques, respectively. In certain video coding techniques, merge mode may be an inter-picture prediction submode in which the motion vector is derived from one or more motion vector predictors without the help of an external coded motion vector component of the predictor. In certain other video coding techniques, there may be motion vector components applicable to the target block. In one example, the video encoder (703) includes other components, such as a mode determination module (not shown), to determine the mode of the processing block.
[0085] In the example shown in Figure 7, the video encoder (703) includes an interencoder (730), an intraencoder (722), a residual calculator (723), a switch (726), a residual encoder (724), a general-purpose controller (721), and an entropy encoder (725), all coupled together as shown in Figure 7.
[0086] The interencoder (730) is configured to receive a sample of the current block (e.g., a processing block), compare that block to one or more reference blocks in a reference picture (e.g., blocks in the previous and subsequent pictures), generate interprediction information (e.g., a description of redundant information, motion vectors, and merge mode information by the interencoding technique), and compute an interprediction result (e.g., a predicted block) based on the interprediction information using any appropriate technique. In some examples, the reference picture is a decoded reference picture, which is decoded based on encoded video information.
[0087] The intra encoder (722) is configured to receive a sample of the current block (e.g., a processing block), and optionally compare that block to an already coded block in the same picture to generate transformed quantization coefficients, and optionally also generate intra prediction information (e.g., intra prediction direction information by one or more intra encoding techniques). In one example, the intra encoder (722) also calculates an intra prediction result (e.g., a predicted block) based on the intra prediction information and reference block in the same picture.
[0088] The general-purpose controller (721) is configured to determine general-purpose control data and control other components of the video encoder (703) based on the general-purpose control data. For example, the general-purpose controller (721) determines the mode of a block and provides control signals to the switch (726) based on the mode. For example, when the mode is intra-mode, the general-purpose controller (721) controls the switch (726) to select intra-mode results for use by the residual calculator (723), and controls the entropy encoder (725) to select intra-prediction information and include the intra-prediction information in the bitstream. When the mode is inter-mode, the general-purpose controller (721) controls the switch (726) to select inter-prediction results for use by the residual calculator (723), and controls the entropy encoder (725) to select inter-prediction information and include the inter-prediction information in the bitstream.
[0089] The residual calculator (723) is configured to calculate the difference (residual data) between the receiving block and the prediction result selected from the intra-encoder (722) or inter-encoder (730). The residual encoder (724) is configured to encode the residual data and generate conversion coefficients. In one example, the residual encoder (724) is configured to convert the residual data from the spatial domain to the frequency domain and generate conversion coefficients. The conversion coefficients are then quantized to obtain quantized conversion coefficients. In various embodiments, the video encoder (703) also includes a residual decoder (728). The residual decoder (728) is configured to perform the inverse transform and generate decoded residual data. The decoded residual data can be appropriately used by the intra-encoder (722) and inter-encoder (730). For example, an interencoder (730) can generate a decoded block based on decoded residual data and interprediction information, and an intraencoder (722) can generate a decoded block based on decoded residual data and intraprediction information. The decoded block is appropriately processed to generate a decoded picture, which in some examples can be buffered in a memory circuit (not shown) and used as a reference picture.
[0090] The entropy encoder (725) is configured to format the bitstream to include the encoded blocks. The entropy encoder (725) is configured to include various information according to an appropriate standard such as the HEVC standard. For example, the entropy encoder (725) is configured to include general control data, selected prediction information (e.g., intra-prediction information and inter-prediction information), residual information, and other appropriate information in the bitstream. Note that, according to the subject of the disclosure, residual information is not present when coding blocks in either inter-mode or bi-prediction mode merge submodes.
[0091] Figure 8 shows a diagram of a video decoder (810) according to another embodiment of the present disclosure. The video decoder (810) is configured to receive a coded picture, which is part of a coded video sequence, and to decode the coded picture to produce a reconstructed picture. In one example, the video decoder (810) is used instead of the video decoder (410) in the example of Figure 4.
[0092] In the example shown in Figure 8, the video decoder (810) includes an entropy decoder (871), an interdecoder (880), a residual decoder (873), a reconfiguration module (874), and an intradecoder (872) coupled together as shown in Figure 8.
[0093] The entropy decoder (871) can be configured to reconstruct specific symbols from the coded picture that represent the syntactic elements comprising the coded picture. Such symbols may include, for example, the mode in which the block is coded (e.g., intra-mode, inter-mode, bi-prediction mode, merge sub-mode, or other sub-modes of inter-mode and bi-prediction mode), prediction information (e.g., intra-prediction information and inter-prediction information) that can identify specific samples or metadata used for prediction by the intra-decoder (872) or inter-decoder (880), respectively, and residual information, for example, in the form of quantization transformation coefficients. For example, if the prediction mode is inter-mode or bi-prediction mode, inter-prediction information is provided to the inter-decoder (880), and if the prediction type is intra-prediction type, intra-prediction information is provided to the intra-decoder (872). The residual information may undergo inverse quantization and be provided to the residual decoder (873).
[0094] The interdecoder (880) is configured to receive interprediction information and generate interprediction results based on the interprediction information.
[0095] The intra decoder (872) is configured to receive intra prediction information and generate prediction results based on the intra prediction information.
[0096] The residual decoder (873) is configured to perform inverse quantization to extract inverse quantization conversion coefficients, process these coefficients, and convert the residual from the frequency domain to the spatial domain. The residual decoder (873) may also require certain control information (to include quantizer parameters (QP)), which may be provided by the entropy decoder (871) (the data path is not shown as this may only be a small amount of control information).
[0097] The reconstruction module (874) is configured to combine the residuals (as output by the residual decoder (873)) and the prediction results (as output by the inter-prediction module or intra-prediction module, depending on the case) in the spatial domain to form reconstruction blocks that may be part of a reconstruction picture that may be part of a reconstruction video. Note that other appropriate operations, such as deblocking operations, may be performed to improve visual quality.
[0098] It should be noted that the video encoders (403), (603), and (703), as well as the video decoders (410), (510), and (810), can be implemented using any suitable technique. In one embodiment, the video encoders (403), (603), and (703), as well as the video decoders (410), (510), and (810), can be implemented using one or more integrated circuits. In another embodiment, the video encoders (403), (603), and (603), as well as the video decoders (410), (510), and (810), can be implemented using one or more processors that execute software instructions.
[0099] This disclosure includes improvements to the most likely mode (MPM) list configuration.
[0100] ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) published the H.265 / HEVC (High Efficiency Video Coding) standard in 2013 (version 1), 2014 (version 2), 2015 (version 3), and 2016 (version 4). In 2015, these two standards bodies jointly formed JVET (Joint Video Exploration Team) to explore the possibility of developing the next video coding standard beyond HEVC. In April 2018, JVET officially launched the standardization process for the next-generation video coding beyond HEVC. This new standard was named Multipurpose Video Coding (VVC), and JVET was renamed the Joint Video Expert Team. In July 2020, H.266 / VVC version 1 was completed. In January 2021, an ad-hoc group was established to investigate enhanced compression beyond VVC capabilities.
[0101] To form an MPM list, in one example, a general-purpose MPM list with 22 entries can be configured first. The first six entries in the general-purpose MPM list can be included in the Primary MPM (PMPM) list, and the remaining entries can form the Secondary MPM (SMPM) list. The first entry in the general-purpose MPM list can be Planar mode. The remaining entries in the general-purpose MPM list can include (i) intra-modes for the left (L), top (A), bottom left (BL), top right (AR), and top left (AL) neighbor blocks, (ii) directional modes with an offset added from the first two available directional modes of the neighbor block, and (iii) default mode. The positions of the L, A, BL, AR, and AL neighbor blocks can be shown in Figure 9.
[0102] If the height of a CU block (e.g., (902) in Figure 9) is greater than or equal to the width of the CU block, the order of neighboring blocks can be A, L, BL, AR, and AL; otherwise, the order of neighboring blocks can be L, A, BL, AR, and AL. The order of MPM entries can be important because the entry indices can be coded in a truncated binary. The later entries in the truncated binary may require more bits to code.
[0103] If neighboring blocks AL, A, and AR are in a different coding tree unit (CTU) than the current CU (e.g., (902)), then neighboring blocks AL, A, and AR may be considered unavailable due to line buffer limitations. Therefore, the intra-mode of the unavailable neighboring CU does not need to be inserted into the MPM list.
[0104] Propagated intra-modes can also be applied to MPM list configuration. For example, in VVC, if a neighboring CU is an interconnected CU, the intra-mode of that neighboring CU can be considered a Planar mode and inserted into the MPM list.
[0105] The intra-mode of an intra-coded CU can be stored in memory in 4x4 pixel sample units. For intra-coded CUs to which decoder-side intra-mode derivation (DIMD) is applied, the decoder-side derived intra-mode based on the DIMD with the highest occurrence in the gradient histogram (HoG) can be stored in memory. For intra-coded CUs to which template-based intra-mode derivation (TIMD) is applied, the decoder-side derived intra-mode with the lowest absolute transform difference sum (SATD) cost can be stored. For intra-coded CUs to which block-based delta pulse code modulation (BDPCM) is applied, the signaled BDPCM direction can be stored. For intra-coded CUs to which matrix-based intra-prediction (MIP) or template matching prediction (TMP) is applied, the Planar mode can be stored. For other intra-coded CUs, the intra-mode derived from the MPM list or non-MPM list can be stored.
[0106] To improve the accuracy of the MPM list, when neighboring blocks are intercoded, the propagated intra-predicted mode can be derived using motion vectors and reference pictures. For intercoded CUs, the intra-mode can be propagated from the referenced area to the intercoded CU.
[0107] In some embodiments, such as ECM2.0, a generic MPM list may contain one or more entries (or intra modes). The order of the generic MPM list can be shown as follows, based on a sequence of conditions: The order of conditions indicates the order in which entries are added to the generic MPM list. If a condition is not met, the intra mode associated with that condition does not need to be inserted into the generic MPM list. Pruning checks may be performed to remove redundancy before inserting each entry. 1. Planar 2. If the current height of CU is greater than or equal to the width, and A exists, and A is intra, then A. If the current height of the CU is less than the width, and L exists, and L is intra, then L. 3. If the current CU height is greater than or equal to the width, L exists, L is intra, and L is in the same CTU, then L. If the current CU height is less than the width, A exists, A is intra, and A is in the same CTU, then A. 4. If the current CU height is greater than or equal to the width, and A exists and A is an interface, then A is the propagating intra-mode. If the current CU height is less than the width, and L exists and L is an interface, then L is the propagating intra-mode. 5. If the current CU height is greater than or equal to the width, and L exists and L is an interface, then L is the propagating intra-mode. If the current CU height is less than the width, and A exists and A is an interface, then A is the propagating intra-mode. 6. If a BL exists and the BL is an intranet, then use BL. 7. If an AR exists, and the AR is intranet, and the AR is within the same CTU, then the AR is used. 8. If an AL exists, and the AL is intranet, and the AL is within the same CTU, then the AL is used. 9. If a BL exists and the BL is an interface, the BL's propagation is intra-mode. 10. If an AR exists and the AR is an inter, the AR propagates in intra-mode. 11. If an AL exists and the AL is an inter, then the AL is propagating intra-mode.
[0108] One or more additional conditions may be provided in a sequence of conditions. However, one or more of the conditions for generating an entry in the MPM list may be incorrect. For example, the conditions for CTU boundary checking may be incorrect. If A is in a different CTU than the current block, A should be considered unavailable. However, in some cases, A may be considered available and inserted into the MPM list. In addition, the intra-mode of available neighboring blocks may not be fully utilized because some neighboring blocks are unavailable. Thus, coding efficiency is reduced.
[0109] In some embodiments of this disclosure, the CTU boundaries of a particular neighboring CU may always be checked. CTU boundary checks may help, for example, reduce the burden on line buffers. In one embodiment, the CTU boundaries of upper neighbors (or neighboring) CUs (e.g., upper (A), upper left (AL), and / or upper right (AR)) may be checked regardless of whether their upper neighboring CUs are intracoded or interconnected. CTU boundary checks can verify whether a neighboring CU is in a different CTU than the current CTU (e.g., the CTU of the current block). If an upper neighboring CU is in a different CTU than the current CU, the intra-mode or propagating intra-mode of the upper neighboring CU does not need to be inserted into the MPM list.
[0110] The order in which intra-modes are added to the generic MPM list can be based on a sequence of conditions. In one embodiment, an exemplary order for adding intra-modes of neighboring CUs to the generic MPM list of the current block can be shown as follows. Neighboring CUs can be shown, for example, in Figure 9. Neighboring CUs may include an upper (A) block adjacent to the top edge of the current block (e.g., (902)), an upper left (AL) block adjacent to the upper left corner of the current block, an upper right (AR) block adjacent to the upper right corner of the current block, a left (L) block adjacent to the left edge of the current block, and a lower left (BL) block adjacent to the lower left corner of the current block. 1. Planar 2. If the current CU height is greater than or equal to the width, A exists, A is intra, and A is in the same CTU, then A. If the current CU height is less than the width, L exists, and L is intra, then L. 3. If the current height of the CU is greater than or equal to the width, and L exists, and L is intra, then L. If the current CU height is less than the width, A exists, A is intra, and A is within the same CTU, then A. 4. If the current CU height is greater than or equal to the width, A exists, A is an interface, and A is within the same CTU, then A is in propagation intra-mode. If the current CU height is less than the width, L exists, and L is an interface, then L is in propagation intra-mode. 5. If the current CU's height is greater than or equal to its width, and L exists and L is an interface, then L is in the propagation intra-mode. If the current CU's height is less than its width, and A exists and A is an interface, and A is within the same CTU, then A is in the propagation intra-mode. 6. If a BL exists and the BL is an intranet, then use BL. 7. If an AR exists, and the AR is intranet, and the AR is within the same CTU, then the AR is used. 8. If an AL exists, and the AL is intranet, and the AL is within the same CTU, then the AL is used. 9. If a BL exists and the BL is an interface, the BL's propagation is intra-mode. 10. If an AR exists, and the AR is an interface, and the AR is within the same CTU, then the AR propagates in intra-mode. 11. If an AL exists, the AL is an inter, and the AL is within the same CTU, then the AL is propagating in intra-mode.
[0111] As shown in the order above, the intra-modes of neighboring CUs can be added sequentially to the generic MPM list of the current CU based on the sequence of conditions. The above sequence of conditions represents an exemplary relative order of the conditions to other conditions in the sequence. In other embodiments, one or more additional conditions may be provided in the sequence.
[0112] If a condition is not met, the intra-mode (or propagating intra-mode) associated with that condition does not need to be inserted into the generic MPM list. Pruning checks may be performed to remove redundancy before inserting the intra-mode of a neighboring CU. In addition, CTU boundary checks may also be required in the sequence of conditions. If the upper neighboring CU (e.g., A, AR, and / or AL) and the current CU are not in the same CTU, the intra-mode or propagating intra-mode of the upper neighboring CU does not need to be inserted into the MPM list. Note that in certain embodiments, CTU boundary checks may not be required for the left neighboring CU (e.g., L or BL).
[0113] When neighboring CUs are intercoded according to a sequence of conditions, the propagating intra-mode of a neighboring CU can be added to the generic MPM list. The propagating intra-mode can be obtained based on the intra-mode of adjacent CUs among the neighboring CUs.
[0114] Referring further to the order, according to the sequence of conditions, the Planar mode can be added to the generic MPM list first. Then, the second condition in the sequence of conditions can be verified. If the second condition is met, the intra-mode associated with the second condition can be added to the generic MPM list of the current block. For example, if the height of the current block is greater than or equal to the width of the current block, an upper neighbor block is available, the upper neighbor block is intra-coded, and the upper block is in the same CTU as the current CU, then the intra-mode of the upper neighbor block can be added to the generic MPM list. If the height of the current block is less than the width of the current block, a left neighbor block exists, and the left neighbor block is intra-coded, then the intra-mode of the left neighbor block can be added to the generic MPM list.
[0115] If the second condition is not met, the intra-mode associated with the second condition does not need to be added to the MPM list. Next, the third condition can be checked. If the third condition is met, the intra-mode associated with the third condition can be added to the generic MPM list.
[0116] In one embodiment, the order of MPM list entries can be modified so that when a neighboring CU is not intra-coded, a propagating intra-mode of a neighboring CU can be added to the MPM list to achieve better coding efficiency. Modification of the MPM list entry order can be applied to any MPM list. For example, modification of the MPM list entry order can be applied to any MPM list as long as a propagating intra-mode is inserted immediately after an intra-mode of the same CU (or the sequence for adding a propagating intra-mode follows the sequence for adding an intra-mode of the same CU).
[0117] An example of a change in the order of MPM list entries can be shown below. 1. Planar 2. If the current CU height is greater than or equal to the width, A exists, A is intra, and A is in the same CTU, then A. If the current CU height is less than the width, L exists, and L is intra, then L. 3. If the current CU height is greater than or equal to the width, A exists, A is an interface, and A is within the same CTU, then A is in propagation intra-mode. If the current CU height is less than the width, L exists, and L is an interface, then L is in propagation intra-mode. 4. If the current CU height is greater than or equal to the width, L exists, and L is intra-intra 5. If the current CU's height is greater than or equal to its width, and L exists and L is an interface, then L is in the propagation intra-mode. If the current CU's height is less than its width, and A exists and A is an interface, and A is within the same CTU, then A is in the propagation intra-mode. 6. If a BL exists and the BL is an intranet, then use BL. 7. If a BL exists and the BL is an interface, the BL's propagation is intra-mode. 8. If an AR exists, and the AR is intranet, and the AR is within the same CTU, then the AR. 9. If an AR exists, and the AR is an interface, and the AR is within the same CTU, then the AR propagates in intra-mode. 10. If an AL exists, and the AL is intranet, and the AL is within the same CTU, then the AL is used. 11. If an AL exists, the AL is an inter, and the AL is within the same CTU, then the AL is propagating in intra-mode.
[0118] As shown in the MPM list entry order, the order in which the propagating intra-mode of the current block's neighboring blocks is added may follow the order in which the neighboring block's intra-mode is added to the MPM list. If the neighboring block's intra-mode is not available but the neighboring block's propagating intra-mode is available, the neighboring block's propagating intra-mode may then be added to the MPM list. For example, according to the second condition of the MPM list entry order, if the height of the current block is greater than or equal to the width of the current block, and an upper neighboring block (e.g., A) exists, and the upper neighboring block and the current CU are in the same CTU, and the upper neighboring block is intra-coded, then the intra-mode of the upper neighboring block (e.g., A) may be added to the MPM list. If the second condition is not met, the upper neighboring block's intra-mode does not need to be added to the MPM list. A third condition may be checked. If the third condition is met, the upper neighboring block's propagating intra-mode may be added to the MPM list.
[0119] A universal intra-mode map can be used to store intra-modes in sample units. For example, any intra-mode, including signaled intra-modes, decoder-derived intra-modes, default intra-modes, and / or propagating intra-modes, can be stored. Sample units can be implicitly predefined or explicitly signaled. For example, encoders and decoders can implicitly predefine 4x4 pixels as the unit, or they can explicitly signal 2x2 or 8x8 in the bitstream. Note that a universal intra-mode map can span CUs or CTUs. Furthermore, not only can an intra-CU or inter-CU store intra-modes, but other CUs, and possibly all CUs, can store intra-modes.
[0120] Examples of partial universal intramode maps are shown in Figures 10A and 10B.
[0121] In one embodiment, the universal intra-mode map may initially be empty. Furthermore, the universal intra-mode map may store, or otherwise include, signaled intra-modes, decoder-derived intra-modes, and / or propagated intra-modes acquired during the decoding process.
[0122] In another embodiment, a default intra-mode may be used to initially initialize the universal intra-mode map. Furthermore, the default intra-mode can be replaced with a signaled intra-mode, a decoder-derived intra-mode, or a propagated intra-mode acquired during the decoding process. For example, as shown in Figure 10A, the default intra-mode 0 (or Planar) can be stored in all units of the universal intra-mode map (1002), where each unit can represent a 4x4 sample unit. Later, the default intra-mode 0 can be replaced with another intra-mode, for example, a signaled intra-mode, a decoder-derived intra-mode, or a propagated intra-mode.
[0123] In yet another embodiment, the universal intra-mode map may initially be empty. Furthermore, some of the empty (or blank) units of the universal intra-mode map can store signaled intra-modes, decoder-derived intra-modes, and / or propagated intra-modes acquired during the decoding process. After the CU has been decoded, the remaining blank units can be filled with a default intra-mode, such as intra-mode 0 (or Planar).
[0124] As shown in Figure 10B, the universal intra-mode map (1004) can initially be empty, and some of the empty units can be filled in intra-mode during the decoding process. After the CU is decoded, the blank units (e.g., (1006) and (1008)) can be filled in with a default intra-mode such as intra-mode 0 (or Planar).
[0125] In this disclosure, when the intra-mode of a spatially nearby CU is applied to an MPM list configuration, the intra-mode of the spatially nearby CU can be determined based on a universal intra-mode map.
[0126] For example, as shown in Figure 11A, the current CU(1106) may have a neighboring CU(1102). The neighboring CU(1102) may include a corresponding position(1104). The corresponding position(1104) can be any position within the neighboring CU(1102). In a related example, if the neighboring CU(1102) is intracoded based on an intramode 50, the intramode 50 may be added to the MPM list of the current CU(1106).
[0127] In a universal intramode map, different intramodes can be added to the MPM list. As shown in Figure 11B, the current CU (1108) may have a neighbor CU (1112). The neighbor CU (1112) may include a corresponding location (1110). Furthermore, a universal intramode map (1114) can be used to indicate the intramode associated with the neighbor CU (1112). The universal intramode map (1114) may include multiple units (or regions). Each unit (or region) may correspond to a respective intramode. According to the universal intramode map (1114), the corresponding location (1110) may be included in the unit (1116) of the universal intramode map (1114) corresponding to intramode 18. Thus, intramode 18 can be added to the MPM list instead of intramode 50.
[0128] If the corresponding location lies outside the boundary of the universal intramode map, the intramode of the neighboring CU may be considered unavailable.
[0129] An exemplary sequence for adding the intra-mode of a neighboring CU to the current block's generic MPM list can be shown as follows, and the intra-mode of a neighboring CU can be determined based on the universal intra-mode map. 1. Planar 2. If the current CU height is greater than or equal to the width and A exists, the intra-mode corresponding to A in the universal map is selected. If the current CU height is less than the width and L exists, the intra-mode corresponding to L in the universal map is selected. 3. If the current CU height is greater than or equal to the width and L exists, the intra-mode corresponding to L in the universal map is selected. If the current CU height is less than the width and A exists, the intra-mode corresponding to A in the universal map is selected. 4. If a BL exists, the intra-mode corresponding to the BL in the universal map is used. 5. If AR is available, use the AR-compatible intra mode within the universal map. 6. If an AL exists, the intra-mode corresponding to the AL in the universal map.
[0130] The above sequence of conditions represents an exemplary relative order of the conditions to other conditions within the sequence. In other embodiments, one or more additional conditions may be provided in the sequence. As shown in this order, the corresponding (or equivalent) intramodes of the upper neighbor block (e.g., A), left neighbor block (e.g., L), lower left neighbor block (e.g., BL), upper right neighbor block (e.g., AR), and upper left neighbor block (e.g., AL) can be added to the MPM list according to the sequence of conditions. The corresponding intramodes can be obtained from a universal intramode map.
[0131] By using the universal intra-mode map, checking the prediction mode of neighboring blocks (e.g., intra-predict or inter-predict) is no longer necessary. For example, regardless of whether neighboring blocks are intra-coded or inter-coded, the corresponding intra-mode of neighboring blocks can be obtained from the universal intra-mode map.
[0132] Figure 12 shows a flowchart illustrating a first exemplary decoding process (1200) according to some embodiments of the present disclosure. Figure 13 shows a flowchart illustrating a second exemplary decoding process (1300) according to some embodiments of the present disclosure. Figure 14 shows a flowchart illustrating a first exemplary encoding process (1400) according to some embodiments of the present disclosure. Figure 15 shows a flowchart illustrating a second exemplary encoding process (1500) according to some embodiments of the present disclosure. The proposed processes may be used separately or combined in any order. Furthermore, each of the processes (or embodiments), encoder, and decoder may be implemented by processing circuitry (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.
[0133] In embodiments, any operation of the process (e.g., (1200), (1300), (1400), and (1500)) may be combined or arranged in any quantity or order as needed. In embodiments, two or more operations of the process (e.g., (1200), (1300), (1400), and (1500)) may be performed in parallel.
[0134] The processes (e.g., (1200), (1300), (1400), and (1500)) can be used in block reconstruction and / or encoding to generate predicted blocks for the block being reconstructed. In various embodiments, the processes (e.g., (1200), (1300), (1400), and (1500)) are performed by processing circuits such as processing circuits for terminal devices (310), (320), (330), and (340), processing circuits that perform the function of a video encoder (403), processing circuits that perform the function of a video decoder (410), processing circuits that perform the function of a video decoder (510), and processing circuits that perform the function of a video encoder (603). In some embodiments, the processes (e.g., (1200), (1300), (1400), and (1500)) are implemented by software instructions, and so when the processing circuit executes the software instructions, the processing circuit performs the process (e.g., (1200), (1300), (1400), and (1500)).
[0135] As shown in Figure 12, process (1200) can start from (S1201) and proceed to (S1210). In (S1210), coded information for the current block and neighboring blocks of the current block can be received from the coded video bitstream. Neighboring blocks may include a first block and a second block. Each of the first blocks may be adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks may be adjacent to one of the left edge and lower left corner of the current block.
[0136] In (S1220), it can be determined whether the current block and one or more of the first blocks in the neighboring block are in the same coding tree unit (CTU).
[0137] In (S1230), based on the fact that the current block and one or more of the first blocks of the neighboring blocks are in the same CTU, each intra-mode associated with each of the one or more first blocks may be added to the most probable mode (MPM) list of the current block based on a sequence of conditions. The sequence of conditions may correspond to the order in which each intra-mode is determined to be added to the MPM list.
[0138] In (S1240), each intra-mode associated with each of the second blocks of the neighboring block can be added to the MPM list based on a sequence of conditions.
[0139] (S1250) The current block can be reconfigured based on the MPM list.
[0140] In some embodiments, the intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a second condition in a sequence of conditions, based on the fact that the height of the current block is greater than or equal to the width of the current block. The upper block may be adjacent to the top edge of the current block. The second condition may include that the upper block is intra-coded. The propagating intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a fourth condition in a sequence of conditions, the fourth condition may include that the upper block is interconnected. The propagating intra-mode of an upper block may be obtained based on the neighboring blocks of the upper block.
[0141] In some embodiments, the propagating intra-mode of one or more upper-right blocks of the first block can be added to the MPM list according to a 10th condition in a sequence of conditions. The upper-right block can be adjacent to the upper-right corner of the current block. The 10th condition may include that the upper-right block is interconnected. The propagating intra-mode of the upper-right block can be obtained based on the neighboring blocks of the upper-right block. The propagating intra-mode of one or more upper-left blocks of the first block can be added to the MPM list according to an 11th condition in a sequence of conditions. The upper-left block can be adjacent to the upper-left corner of the current block. The 11th condition may include that the upper-left block is interconnected. The propagating intra-mode of the upper-left block can be obtained based on the neighboring blocks of the upper-left block.
[0142] In some embodiments, based on the fact that the height of the current block is greater than or equal to the width of the current block, the intra-mode of the left block of the second block may be added to the MPM list according to a third condition in a sequence of conditions. The left block may be adjacent to the left edge of the current block. The third condition may include that the left block of the second block is intra-coded.
[0143] In some embodiments, in response to the height of the current block being less than the width of the current block, the propagating intra-mode of one or more upper blocks of the first block may be added to the MPM list according to a fifth condition in a sequence of conditions. The fifth condition may include the upper block being interconnected. The propagating intra-mode of an upper block may be obtained based on the neighboring blocks of the upper block.
[0144] In some embodiments, a condition in a sequence of conditions for adding one of the neighboring blocks' propagating intra-modes to the MPM list may follow a condition in a sequence of conditions for adding that one of the neighboring blocks' intra-modes to the MPM list.
[0145] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the intra-modes of one or more upper blocks of the first block may be added to the MPM list according to a second condition in a sequence of conditions. The second condition may include that the upper block is intra-coded. The propagating intra-modes of one or more upper blocks of the first block may be added to the MPM list according to a third condition in a sequence of conditions. The third condition may include that the upper block is inter-coded. The propagating intra-modes of upper blocks may be obtained based on the neighboring blocks of the upper block.
[0146] In some embodiments, the intra-mode of one or more upper-right blocks of the first block can be added to the MPM list according to an eighth condition in a sequence of conditions, the eighth condition including that the upper-right block is intra-coded. The propagating intra-mode of one or more upper-right blocks of the first block can be added to the MPM list according to a ninth condition in a sequence of conditions, the ninth condition including that the upper-right block is inter-coded. The propagating intra-mode of an upper-right block can be obtained based on neighboring blocks of the upper-right block. The intra-mode of one or more upper-left blocks of the first block can be added to the MPM list according to a tenth condition in a sequence of conditions, the tenth condition including that the upper-left block is intra-coded. The propagating intra-mode of one or more upper-left blocks of the first block can be added to the MPM list according to an eleventh condition in a sequence of conditions, the eleventh condition including that the upper-left block is inter-coded. The propagating intra-mode of an upper-left block can be obtained based on neighboring blocks of the upper-left block.
[0147] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the intra-mode of the left block of the second block may be added to the MPM list according to a fourth condition in the sequence of conditions, the fourth condition of which may include that the left block of the second block is intra-coded. The propagating intra-mode of the left block of the second block may be added to the MPM list according to a fifth condition in the sequence of conditions, the fifth condition of which may include that the left block of the second block is interconnected. The propagating intra-mode of the left block may be obtained based on the neighboring blocks of the left block.
[0148] In some embodiments, the intra-mode of the lower-left block of the second block can be added to the MPM list according to a sixth condition in a sequence of conditions, the sixth condition of which may include that the lower-left block of the second block is intra-coded. The lower-left block can be adjacent to the lower-left corner of the current block. The propagating intra-mode of the lower-left block of the second block can be added to the MPM list according to a seventh condition in a sequence of conditions, the seventh condition of which may include that the lower-left block of the second block is inter-coded. The propagating intra-mode of the lower-left block can be obtained based on the neighboring blocks of the lower-left block.
[0149] As shown in Figure 13, process (1300) can start from (S1301) and proceed to (S1310). In (S1310), coded information for the current block and neighboring blocks of the current block can be received from the coded video bitstream. Neighboring blocks may include a first block and a second block. Each of the first blocks may be adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks may be adjacent to one of the left edge and lower left corner of the current block.
[0150] In (S1320), the corresponding positions in each of the neighboring blocks can be determined.
[0151] In (S1330), the corresponding intramode of a neighboring block can be determined based on the corresponding location and the universal intramode map. The universal intramode map may contain multiple units, and each corresponding location may be associated with a unit in the universal intramode map and correspond to the corresponding intramode associated with each unit.
[0152] In (S1340), a most likely mode (MPM) list can be generated for the current block based on the corresponding intra-modes and condition sequences of neighboring blocks. The condition sequence can indicate the order in which each intra-mode is determined to be added to the MPM list.
[0153] (S1350) The current block can be reconfigured based on the MPM list.
[0154] In some embodiments, in response to the height of the current block being greater than or equal to the width of the current block, the corresponding intra-mode of the upper block of the first block may be added to the MPM list according to a second condition in a sequence of conditions, the second condition of which may include the existence of an upper block. The upper block may be adjacent to the top edge of the current block. The corresponding intra-mode of the left block of the second block may be added to the MPM list according to a third condition in a sequence of conditions, the third condition of which may include the existence of a left block. The left block may be adjacent to the left edge of the current block.
[0155] In some embodiments, in response to the height of the current block being less than the width of the current block, the corresponding intra-mode of the left block of the second block may be added to the MPM list according to a second condition in a sequence of conditions, the second condition of which may include the existence of the left block. The corresponding intra-mode of the upper block of the first block may be added to the MPM list according to a third condition in a sequence of conditions, the third condition of which may indicate the existence of the upper block.
[0156] In some embodiments, the corresponding intra-mode of the lower-left block of the second block can be added to the MPM list according to the sixth condition in the sequence of conditions, the sixth condition may include the existence of the lower-left block. The lower-left block may be adjacent to the lower-left corner of the current block. The corresponding intra-mode of the upper-right block of the first block can be added to the MPM list according to the seventh condition in the sequence of conditions, the seventh condition may include the existence of the upper-right block. The upper-right block may be adjacent to the upper-right corner of the current block. The corresponding intra-mode of the upper-left block of the first block can be added to the MPM list according to the eighth condition in the sequence of conditions, the eighth condition may include the existence of the upper-left block. The upper-left block may be adjacent to the upper-left corner of the current block.
[0157] In one embodiment, each of the multiple units of the universal intra-mode map can be initialized with a default intra-mode, and one or more of the default intra-modes in the universal intra-mode map can be further replaced with the corresponding intra-mode.
[0158] In another embodiment, one or more of the multiple units of the universal intra-mode map can be filled with the corresponding intra-mode, and the remaining units of the multiple units of the universal intra-mode map can be further filled with the default intra-mode.
[0159] As shown in Figure 14, process (1400) can start from (S1401) and proceed to (S1410). In (S1410), it can be determined whether one or more of the first blocks and the current block are in the same coding tree unit (CTU). Each of the first blocks can be adjacent to one of the top edge, top left corner, and top right corner of the current block.
[0160] In (S1420), based on the fact that one or more of the first blocks and the current block are in the same CTU, each intra-mode associated with each of the one or more of the first blocks may be added to the most probable mode (MPM) list of the current block based on a sequence of conditions. The sequence of conditions may correspond to the order in which each intra-mode is determined to be added to the MPM list.
[0161] In (S1430), each intra-mode associated with each of the second blocks can be added to the MPM list based on a sequence of conditions, and each of the second blocks can be adjacent to either the left edge or the lower left corner of the current block.
[0162] (S1440) can generate coded information including the MPM list for the current block.
[0163] As shown in Figure 15, process (1500) can start from (S1501) and proceed to (S1510). In (S1510), the corresponding positions in each of the neighboring blocks of the current block can be determined.
[0164] In (S1520), the corresponding intramode of a neighboring block can be determined based on the corresponding location and the universal intramode map. The universal intramode map can include multiple units. Each corresponding location can be associated with a unit in the universal intramode map and correspond to the corresponding intramode associated with that unit.
[0165] In (S1530), the corresponding intra-modes of neighboring blocks may be added to the MPM list of the current block based on a sequence of conditions. The sequence of conditions may indicate the order in which the corresponding intra-modes are determined to be added to the MPM list.
[0166] (S1540) can generate coded information including the MPM list for the current block.
[0167] 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 embodiment of the subject matter of the disclosure.
[0168] Computer software can be coded using any suitable machine language or computer language that is subject to assembly, compilation, linking, or similar mechanisms to create code that contains instructions that can be executed directly or through interpretation by one or more computer central processing units (CPUs), graphics processing units (GPUs), microcode execution, etc.
[0169] Instructions can be executed on various types of computers or their components, including, for example, personal computers, tablet computers, servers, smartphones, game consoles, and Internet of Things devices.
[0170] The components shown in Figure 16 with respect to the computer system (1600) are essentially illustrative and are not intended to imply any limitation on the scope of use or functionality of the computer software implementing embodiments of the present disclosure. The configuration of the components should be interpreted as having no dependence or requirement on any one or combination of components shown in the exemplary embodiments of the computer system (1600).
[0171] 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 through, for example, haptic input (keystrokes, swipes, data glove movements, etc.), audio input (voices, applause, etc.), visual input (gestures, etc.), and olfactory input (not shown). Human interface devices may also be used to capture certain media that are not necessarily directly related to conscious human input, such as audio (voices, music, ambient sounds, etc.), images (scanned images, photographic images acquired from still image cameras, etc.), and video (2D video, 3D video including stereoscopic video, etc.).
[0172] Input human interface devices may include one or more of the following (only one of each is illustrated): keyboard (1601), mouse (1602), trackpad (1603), touchscreen (1610), data glove (not shown), joystick (1605), microphone (1606), scanner (1607), and camera (1608).
[0173] 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), but 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 (e.g., screens (1610), including CRT screens, LCD screens, plasma screens, OLED screens, each capable of outputting two-dimensional or more-than-three-dimensional visual output by means such as stereographic output, virtual reality glasses (not shown), holographic displays, and smoke tanks (not shown), each with or without touchscreen input functionality, each with or without tactile feedback functionality), and printers (not shown).
[0174] The computer system (1600) may also include human-accessible storage devices and media associated therewith, such as optical media including CD / DVD ROM / RW (1620) with media such as CD / DVD (1621), thumb drives (1622), removable hard drives or solid-state drives (1623), legacy magnetic media such as tapes and floppy disks (not shown), and dedicated ROM / ASIC / PLD-based devices such as security dongles (not shown).
[0175] Those skilled in the art will also 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.
[0176] The computer system (1600) may also include an interface (1654) to one or more communication networks (1655). The networks may be, for example, wireless, wired, or optical. Networks may further be local, wide-area, metropolitan, automotive, and industrial, real-time, or latency-tolerant. 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 television networks including cable television, satellite television, and terrestrial television; and automotive and industrial networks including CANBus. Certain networks typically require an external network interface adapter 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). Using any of these networks, a computer system (1600) can communicate with other entities. Such communication can be unidirectional, receive only (e.g., television broadcasting), transmit only (e.g., CANbus to a specific CANbus device), or bidirectional to other computer systems using, for example, a local or wide-area digital network. As described above, specific protocols and protocol stacks can be used for each of these networks and network interfaces.
[0177] The aforementioned human interface devices, human-accessible memory devices, and network interfaces can be mounted on the core (1640) of the computer system (1600).
[0178] A core (1640) may include one or more central processing units (CPUs) (1641), graphics processing units (GPUs) (1642), dedicated programmable processing units in the form of field-programmable gate areas (FPGAs) (1643), hardware accelerators for specific tasks (1644), and graphics adapters (1650). These devices, along with read-only memory (ROM) (1645), random access memory (1646), and internal mass storage such as internal hard drives and SSDs (1647) that are not accessible to the user, may be connected via a system bus (1648). 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) may be connected to a graphics adapter (1650). The peripheral bus architecture includes PCI, USB, and others.
[0179] The CPU (1641), GPU (1642), FPGA (1643), and accelerator (1644) can work together to execute specific instructions that constitute the aforementioned computer code. This computer code can be stored in ROM (1645) or RAM (1646). Transition data can also be stored in RAM (1646), while persistent data can be stored, for example, in internal mass storage (1647). Fast storage and retrieval to any memory device can be enabled 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.
[0180] Computer-readable media may contain computer code for performing various computer implementations. The media and computer code may be specifically designed and configured for the purposes of this disclosure, or they may be of a type well known and available to those skilled in the computer software technology.
[0181] As a non-limiting example, 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 may be the user-accessible mass storage described above, as well as media associated with specific storage of the core (1640) of a non-transient nature, such as core internal mass storage (1647) or ROM (1645). Software implementing various embodiments of the present disclosure can be stored in such devices and executed by the core (1640). The computer-readable media may 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. In addition, or alternatively, a computer system may also provide functionality resulting from logic hardwired or otherwise embodied in a circuit (e.g., an accelerator (1644)), the logic may operate in place of or with software to perform a particular process or a particular part of a particular process as described herein. References to software may, as necessary, encompass logic, and vice versa. References to computer-readable media may, as necessary, encompass a circuit (such as an integrated circuit (IC)) that stores software for execution, a circuit that embodies logic for execution, or both. This disclosure encompasses any suitable combination of hardware and software. Note A: Acronym JEM: Joint Exploration Model VVC: Versatile Video Coding BMS: Benchmark set MV: Motion Vector HEVC: High Efficiency Video Coding SEI: Supplementary Enhancement Information VUI: Video Usability Information GOP: Group of Picture TU: Transform Unit PU: Prediction Unit CTU: Coding Tree Unit CTB: Coding Tree Block PB: Prediction Block HRD: Hypothetical Reference Decoder SNR: Signal-to-Noise Ratio CPU: Central Processing Unit GPU: Graphics Processing Unit CRT: Cathode Ray Tube LCD: Liquid Crystal Display OLED: Organic Light-Emitting Diode CD: Compact Disc DVD: Digital Video Disc ROM: Read-Only Memory RAM: Random Access Memory ASIC: Application-Specific Integrated Circuit PLD: Programmable Logic Device LAN: Local Area Network GSM: Global System for Mobile communications LTE: Long-Term Evolution CANBus: Controller Area Network Bus USB: Universal Serial Bus PCI: Peripheral Component Interconnect FPGA: Field Programmable Gate Areas SSD: Solid-state drive IC: Integrated Circuit CU: Coding Unit
[0182] While this disclosure describes several exemplary embodiments, there are many variations, substitutions, and alternative equivalents that fall within the scope of this disclosure. Therefore, those skilled in the art will understand that numerous systems and methods, not expressly illustrated or described herein, can be devised to embody the principles of this disclosure and thus fall within the spirit and scope of this disclosure. [Explanation of Symbols]
[0183] 101 samples 102 Arrow 103 Arrow 104 square blocks 300 Communication Systems 310 Terminal devices 320 terminal devices 330 terminal devices 340 terminal devices 350 Communication Networks 400 Communication Systems 401 Video Source 402 Video Picture Stream 403 Video Encoder 404 Encoded video data, encoded video bitstream 405 Streaming Server 406 Client Subsystem 407 Input copy of encoded video data 408 Client Subsystem 409 Copy of encoded video data 410 Video Decoder 411 Video picture output stream 412 displays 413 Video Capture Subsystem 420 Electronic Devices 430 Electronic Devices 501 Channel 510 Video Decoder 512 Rendering Devices 515 buffer memory 520 Parser 521 Symbols 530 Electronic Devices 531 Receiver 551 Scaler / Inverse Unit 552 Intrapicture Prediction Units 553 Motion Compensation Prediction Unit 555 Aggregator 556 Loop Filter Unit 557 Reference Picture Memory 558 Current picture buffer 601 Video Sources 603 Video encoder, video coder 620 Electronic Devices 630 Source Coder 632 Coding Engine 633 Local Video Decoder 634 Reference picture memory, reference picture cache 635 Predictor 640 Transmitter 643 coded video sequence 645 Entropy Coder 650 Controller 660 communication channels 703 Video Encoder 721 General-purpose controller 722 Intra Encoders 723 Residual Calculator 724 Residual Encoder 725 Entropy Encoder 726 switches 728 Residual Decoder 730 Interencoder 810 Video Decoder 871 Entropy Decoder 872 Intra Decoder 873 Residual Decoder 874 Reconfiguration Module 880 Interdecoder 902 Current CU 1002 Universal Intramode Map 1004 Universal Intramode Map 1006 Blank Unit 1008 Blank Units 1102 Neighboring CU 1104 Corresponding position 1106 Current CU 1108 Current CU 1110 Corresponding position 1112 Neighboring CU 1114 Universal Intramode Map 1116 units 1200 First Exemplary Decoding Process 1300 Second exemplary decoding process 1400 First Exemplary Encoding Process 1500 Second exemplary encoding process 1600 Computer Systems 1601 keyboard 1602 Mouse 1603 Trackpad 1605 Joystick 1606 Microphone 1607 Scanner 1608 Camera 1609 Audio Output Device: Speakers 1610 Touchscreen 1620 CD / DVD ROM / RW 1621 CD / DVD and other media 1622 Samdo Drive 1623 Removable hard drive or solid state drive 1640 cores 1641 Central Processing Unit (CPU) 1642 Graphics Processing Units (GPUs) 1643 Field-Programmable Gate Area (FPGA) 1644 Hardware Accelerators 1645 Read-only memory (ROM) 1646 random access memory 1647 Internal large-capacity storage 1648 System Bus 1649 General-purpose data port or peripheral bus 1650 Graphics Adapter 1654 Interface 1655 Communication Network
Claims
1. A video decoding method performed in a video decoder, wherein the method is A step of receiving coded information for the current block and neighboring blocks of the current block from a coded video bitstream, wherein the neighboring blocks include a first block and a second block, each of the first blocks being adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks being adjacent to one of the left edge and lower left corner of the current block, The steps include determining whether one or more of the first blocks in the neighboring block and the current block are in the same coding tree unit (CTU), Steps include adding each intra-mode associated with each of the one or more first blocks of the neighboring block and the current block to the most likely mode (MPM) list of the current block based on a sequence of conditions, in response that one or more of the first blocks of the neighboring block and the current block are in the same CTU, the sequence of conditions corresponding to the order in which each intra-mode is determined to be added to the MPM list; The steps include adding each intra-mode associated with each of the second blocks of the neighboring block to the MPM list based on the sequence of conditions, A method comprising the step of reconstructing the current block based on the MPM list.
2. The step of adding each of the intra modes associated with each of the one or more of the first blocks is: Based on the fact that the current height of the block is greater than or equal to the current width of the block, A step of adding the intra-mode of one or more upper blocks of the first block to the MPM list according to a second condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, and the second condition includes that the upper block is intra-coded. The method according to claim 1, further comprising the step of adding the propagation intramode of one or more of the upper blocks in the first block to the MPM list according to a fourth condition in the sequence of conditions, wherein the fourth condition includes the upper block being interconnected, and the propagation intramode of the upper block is obtained based on neighboring blocks of the upper block.
3. The step of adding each of the intra modes associated with each of the one or more of the first blocks is: A step of adding the propagation intramode of one or more upper-right blocks of the first block to the MPM list according to the tenth condition in the sequence of conditions, wherein the upper-right block is adjacent to the upper-right corner of the current block, the tenth condition includes the upper-right block being interconnected, and the propagation intramode of the upper-right block is obtained based on neighboring blocks of the upper-right block. The method according to claim 1, further comprising the step of adding the propagation intramode of one or more upper-left blocks of the first block to the MPM list according to an eleventh condition in the sequence of conditions, wherein the upper-left block is adjacent to the upper-left corner of the current block, the eleventh condition includes the upper-left block being interconnected, and the propagation intramode of the upper-left block is obtained based on neighboring blocks of the upper-left block.
4. The step of adding each of the intra modes associated with each of the second blocks is: Based on the fact that the current height of the block is greater than or equal to the current width of the block, The method according to claim 1, further comprising the step of adding the intra-mode of the left block of the second block to the MPM list according to a third condition in the sequence of conditions, wherein the left block is adjacent to the left edge of the current block, and the third condition includes that the left block of the second block is intra-coded.
5. The step of adding each of the intra modes associated with each of the one or more of the first blocks is: In response to the fact that the current height of the block is less than the current width of the block, The method according to claim 1, further comprising the step of adding the propagation intramode of one or more upper blocks of the first block to the MPM list according to a fifth condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, the fifth condition includes the upper block being interconnected, and the propagation intramode of the upper block is obtained based on neighboring blocks of the upper block.
6. The condition in the sequence of conditions for adding one of the neighboring blocks to the MPM list follows the condition in the sequence of conditions for adding one of the neighboring blocks to the MPM list. The method according to claim 1.
7. The step of adding each of the intra modes associated with each of the one or more of the first blocks is: In response to the fact that the height of the current block is greater than or equal to the width of the current block, A step of adding the intra-mode of one or more upper blocks of the first block to the MPM list according to a second condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, and the second condition includes that the upper block is intra-coded. The method according to claim 1, further comprising the step of adding the propagation intramode of one or more of the upper blocks in the first block to the MPM list according to a third condition in the sequence of conditions, wherein the third condition includes the upper block being interconnected, and the propagation intramode of the upper block is obtained based on neighboring blocks of the upper block.
8. The step of adding each of the intra modes associated with each of the one or more of the first blocks is: A step of adding the intra-mode of one or more upper-right blocks of the first block to the MPM list according to the eighth condition in the sequence of conditions, wherein the upper-right block is adjacent to the upper-right corner of the current block, and the eighth condition includes that the upper-right block is intra-coded. A step of adding the propagation intramode of one or more of the upper right blocks of the first block to the MPM list according to the ninth condition in the sequence of conditions, wherein the ninth condition includes the upper right block being interconnected, and the propagation intramode of the upper right block is obtained based on the neighboring blocks of the upper right block, A step of adding the intra-mode of one or more upper-left blocks of the first block to the MPM list according to the 10th condition in the sequence of conditions, wherein the upper-left block is adjacent to the upper-left corner of the current block, and the 10th condition includes that the upper-left block is intra-coded. The method according to claim 1, further comprising the step of adding the propagation intramode of one or more of the upper-left blocks of the first block to the MPM list according to an eleventh condition in the sequence of conditions, wherein the eleventh condition includes the upper-left block being interconnected, and the propagation intramode of the upper-left block is obtained based on neighboring blocks of the upper-left block.
9. The step of adding each of the intra modes associated with each of the second blocks is: In response to the fact that the height of the current block is greater than or equal to the width of the current block, A step of adding the intra-mode of the left block of the second block to the MPM list according to a fourth condition in the sequence of conditions, wherein the left block is adjacent to the left edge of the current block, and the fourth condition includes that the left block of the second block is intra-coded. The method according to claim 1, further comprising the step of adding the propagation intramode of the left block of the second block to the MPM list according to a fifth condition in the sequence of conditions, wherein the fifth condition includes the left block of the second block being interconnected, and the propagation intramode of the left block is obtained based on neighboring blocks of the left block.
10. The step of adding each of the intra modes associated with each of the second blocks is: A step of adding the intra-mode of the lower-left block of the second block to the MPM list according to the sixth condition in the sequence of conditions, wherein the lower-left block is adjacent to the lower-left corner of the current block, and the sixth condition includes that the lower-left block of the second block is intra-coded. The method according to claim 1, further comprising the step of adding the propagation intramode of the lower left block of the second block to the MPM list according to a seventh condition in the sequence of conditions, wherein the seventh condition includes the lower left block of the second block being interconnected, and the propagation intramode of the lower left block is obtained based on neighboring blocks of the lower left block.
11. A video decoding method performed in a video decoder, wherein the method is A step of receiving coded information for the current block and neighboring blocks of the current block from a coded video bitstream, wherein the neighboring blocks include a first block and a second block, each of the first blocks being adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks being adjacent to one of the left edge and lower left corner of the current block, The steps include determining the corresponding position in each of the aforementioned neighboring blocks, A step of determining the corresponding intra-mode of the neighboring block based on the corresponding location and a universal intra-mode map, wherein the universal intra-mode map includes a plurality of units, each of the corresponding locations is associated with each unit of the universal intra-mode map, and each corresponds to the corresponding intra-mode associated with each unit, A step of generating a most likely mode (MPM) list for the current block based on the corresponding intra-mode and condition sequence of the neighboring block, wherein the condition sequence represents the order in which the corresponding intra-mode is determined to be added to the MPM list. A method comprising the step of reconstructing the current block based on the MPM list.
12. The step of generating the MPM list is, In response to the fact that the height of the current block is greater than or equal to the width of the current block, A step of adding the corresponding intramode of the upper block of the first block to the MPM list according to a second condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, and the second condition includes the existence of the upper block. The method according to claim 11, further comprising the step of adding the corresponding intramode of the left block of the second block to the MPM list according to a third condition in the sequence of conditions, wherein the left block is adjacent to the left edge of the current block, and the third condition includes the existence of the left block.
13. The step of generating the MPM list is, In response to the fact that the current height of the block is less than the current width of the block, A step of adding the corresponding intramode of the left block of the second block to the MPM list according to the second condition in the sequence of conditions, wherein the left block is adjacent to the left edge of the current block, and the second condition includes the existence of the left block. The method according to claim 11, further comprising the step of adding the corresponding intramode of the upper block of the first block to the MPM list according to a third condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, and the third condition includes the existence of the upper block.
14. The step of generating the MPM list is, A step of adding the corresponding intramode of the lower left block of the second block to the MPM list according to the sixth condition in the sequence of conditions, wherein the lower left block is adjacent to the lower left corner of the current block, and the sixth condition includes the existence of the lower left block. A step of adding the corresponding intramode of the upper right block of the first block to the MPM list according to the seventh condition in the sequence of conditions, wherein the upper right block is adjacent to the upper right corner of the current block, and the seventh condition includes the existence of the upper right block. The method according to claim 11, further comprising the step of adding the corresponding intramode of the upper-left block of the first block to the MPM list according to the eighth condition in the sequence of conditions, wherein the upper-left block is adjacent to the upper-left corner of the current block, and the eighth condition includes the existence of the upper-left block.
15. Each of the plurality of units of the Universal Intra Mode Map is initialized in default intra mode. One or more of the default intra modes in the universal intra mode map are replaced with the corresponding intra modes. The method according to claim 11.
16. One or more of the multiple units of the Universal Intra-Mode Map are filled with the corresponding intra-modes. The remaining units of the aforementioned universal intra-mode map are filled in with the default intra-mode. The method according to claim 11.
17. The coded information of the current block and neighboring blocks of the current block is received from the coded video bitstream, the neighboring blocks comprising a first block and a second block, each of the first blocks adjacent to one of the top edge, upper left corner, and upper right corner of the current block, and each of the second blocks adjacent to one of the left edge and lower left corner of the current block. Determine whether one or more of the first blocks in the neighboring block and the current block are in the same coding tree unit (CTU), In response that one or more of the first blocks of the neighboring block and the current block are in the same CTU, each intra-mode associated with each of the one or more of the first blocks is added to the most likely mode (MPM) list of the current block based on a sequence of conditions. Each intra-mode associated with each of the second blocks of the neighboring block is added to the MPM list based on the sequence of conditions, the sequence of conditions corresponds to the order in which each intra-mode is determined to be added to the MPM list. Reconstruct the current block based on the aforementioned MPM list. Processing circuit configured as follows A device equipped with the following features.
18. The aforementioned processing circuit is Based on the fact that the current height of the block is greater than or equal to the current width of the block, The intra-mode of one or more upper blocks of the first block is added to the MPM list according to the second condition in the sequence of conditions, wherein the upper block is adjacent to the upper edge of the current block, and the second condition includes that the upper block is intra-coded. The apparatus according to claim 17, wherein the propagating intramode of one or more of the upper blocks in the first block is added to the MPM list according to a fourth condition in the sequence of conditions, the fourth condition being that the upper block is interconnected, and the propagating intramode of the upper block is further configured to be acquired based on neighboring blocks of the upper block.
19. The aforementioned processing circuit is The propagation intramode of one or more upper-right blocks of the first block is added to the MPM list according to the 10th condition in the sequence of conditions, wherein the upper-right block is adjacent to the upper-right corner of the current block, the 10th condition includes that the upper-right block is interconnected, and the propagation intramode of the upper-right block is obtained based on the neighboring blocks of the upper-right block. The apparatus according to claim 17, wherein the propagating intramode of one or more upper-left blocks of the first block is added to the MPM list according to the eleventh condition in the sequence of conditions, the upper-left block is adjacent to the upper-left corner of the current block, the eleventh condition includes the upper-left block being interconnected, and the propagating intramode of the upper-left block is further configured to be acquired based on neighboring blocks of the upper-left block.
20. The aforementioned processing circuit is Based on the fact that the current height of the block is greater than or equal to the current width of the block, The apparatus according to claim 17, wherein the intra-mode of the left block of the second block is added to the MPM list according to a third condition in the sequence of conditions, the left block is adjacent to the left edge of the current block, and the third condition is further configured to include that the left block of the second block is intra-coded.