Electronic device and method for encoding video data

CN116980595BActive Publication Date: 2026-07-03SHARP KK

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
SHARP KK
Filing Date
2018-11-15
Publication Date
2026-07-03

AI Technical Summary

Technical Problem

In existing video encoding methods, encoders and decoders need to adjust a predefined list of modes to accommodate different encoding blocks, but this adjustment is inconsistent between different blocks, resulting in inefficiency.

Method used

By determining the height and width of the block unit, the intra-mode list is adjusted, modes are removed or added to generate an adjusted list, and an intra-prediction index is set for each mode to optimize the intra-prediction indicator to suit the characteristics of different blocks.

Benefits of technology

It improves the efficiency and quality of video encoding, reduces data redundancy, and enhances the accuracy and consistency of encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116980595B_ABST
    Figure CN116980595B_ABST
Patent Text Reader

Abstract

An electronic device and method for encoding video data are provided. A block unit having a block height and a block width is determined from an image frame based on the video data. A mode list including multiple intra-frame modes is determined, each of the multiple intra-frame modes having a first intra-frame prediction index. At least one of the multiple intra-frame modes is selected from the mode list based on a comparison between the block height and the block width, and is removed from the mode list to generate an adjusted list including multiple unselected modes. Multiple additional modes are added to the adjusted list, each of the multiple additional modes having a second intra-frame prediction index. A specific one of the multiple unselected modes and the multiple additional modes in the adjusted list is determined to predict the block unit in the image frame, and a first intra-frame prediction indication for the block unit is determined, corresponding to the specific one of the multiple unselected modes and the multiple additional modes.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application. The original application has the application number 201880068073.0 and the original application date is April 22, 2020. The entire contents of the original application are incorporated herein by reference.

[0002] Cross-reference to related applications

[0003] This application claims the benefit and priority of U.S. Provisional Application No. 62 / 587,676, filed November 17, 2017, entitled Intra Prediction Generation Method, Agent's Register No. US72311 (hereinafter referred to as US72311 Application). The disclosure of US72311 Application is incorporated herein by reference in its entirety. Technical Field

[0004] This application is generally related to video coding, and in particular to techniques for intra-frame prediction based on an adjusted list of intra-frame modes. Background Technology

[0005] Intra-frame prediction is a coding tool in video coding methods. In common video coding methods, the encoder and decoder generate reference pixels and predictors using only previously reconstructed pixels from the nearest pixel line adjacent to the coded block to predict or reconstruct the coded block along a certain orientation. However, this orientation is selected from multiple intra-frame modes included in a predefined mode list. Therefore, the encoder needs to adjust the predefined mode list to accommodate different coded blocks. When the encoder adjusts the predefined mode list to accommodate different coded blocks, the decoder needs to adjust its predefined mode list in the same way. Summary of the Invention

[0006] This application relates to an apparatus and method for encoding video data based on multiple reference lines. In a first aspect of this application, a method for encoding video data via an electronic device is provided. The method includes determining a block of data from an image frame based on the video data, the block having a block height and a block width; determining a pattern list comprising a plurality of intra-frame modes, each of the plurality of intra-frame modes having a first intra-frame prediction index; selecting at least one of the plurality of intra-frame modes from the pattern list based on a comparison between the block height and the block width; removing at least one of the selected plurality of intra-frame modes to generate an adjusted list comprising a plurality of unselected modes; adding a plurality of additional modes to the adjusted list; determining a second intra-frame prediction index for each of the plurality of additional modes; determining a specific one of the plurality of unselected modes and the plurality of additional modes in the adjusted list to predict the block of data in the image frame; and determining a first intra-frame prediction indication for the block of data, wherein the first intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices corresponding to the specific one of the plurality of unselected modes and the plurality of additional modes.

[0007] In a second aspect of this application, a method for encoding video data via an electronic device is provided. The method includes determining a block of data from an image frame based on the video data, the block having a block height and a block width; determining a mode list comprising a plurality of intra-frame modes, each of the plurality of intra-frame modes having a first intra-frame prediction index; comparing the block height and the block width; selecting at least one of the plurality of intra-frame modes from the mode list based on the comparison between the block height and the block width; adding a plurality of additional modes to an adjusted list generated from the mode list; determining a second intra-frame prediction index for each of the plurality of additional modes; determining a prediction mode for the block to predict the block in the image frame; and determining whether the prediction mode is selected from the plurality of intra-frame modes based on the comparison between the block height and the block width to determine an intra-frame prediction indication, wherein the intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices corresponding to a specific one of the plurality of unselected modes and the plurality of additional modes.

[0008] In a third aspect of this application, an electronic device for encoding video data is provided. The electronic device includes at least one processor; and a storage device coupled to the at least one processor and storing a plurality of instructions, which, when executed by the at least one processor, cause the at least one processor to: determine a block of data from an image frame based on the video data, the block of data having a block height and a block width; determine a pattern list including a plurality of intra-frame modes, each of the plurality of intra-frame modes having a first intra-frame prediction index; select at least one of the plurality of intra-frame modes from the pattern list based on a comparison between the block height and the block width; remove at least one of the selected plurality of intra-frame modes to generate an adjusted list including a plurality of unselected modes; add a plurality of additional modes to the adjusted list; determine a second intra-frame prediction index for each of the plurality of additional modes; determine a specific one of the plurality of unselected modes and the plurality of additional modes in the adjusted list to predict the block of data in the image frame; and determine a first intra-frame prediction indication for the block of data, wherein the first intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices corresponding to the specific one of the plurality of unselected modes and the plurality of additional modes.

[0009] In a fourth aspect of this application, an electronic device for encoding video data is provided. The electronic device includes at least one processor; and a storage device coupled to the at least one processor and storing a plurality of instructions, which, when executed by the at least one processor, cause the at least one processor to: determine a block of data from an image frame based on the video data, the block of data having a block height and a block width; determine a mode list including a plurality of intra-frame modes, each of the plurality of intra-frame modes having a first intra-frame prediction index; compare the block height and the block width; based on the comparison between the block height and the block width, select at least one of the plurality of intra-frame modes from the mode list and add a plurality of additional modes to an adjusted list generated from the mode list; determine a second intra-frame prediction index for each of the plurality of additional modes; determine a prediction mode for the block of data to predict the block of data in the image frame; and determine whether the prediction mode is selected from the plurality of intra-frame modes based on the comparison between the block height and the block width, to determine an intra-frame prediction indication, wherein the intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices corresponding to a particular one of the plurality of unselected modes and the plurality of additional modes. Attached Figure Description

[0010] When with attachment Figure 1 When reading this document, the exemplary aspects disclosed herein can be best understood from the following detailed description. For clarity of discussion, the various features are not drawn to scale, and the dimensions of the various features may be arbitrarily increased or decreased.

[0011] Figure 1 This is a block diagram of an exemplary implementation of a system configured to encode and decode video data according to one or more technologies of this application.

[0012] Figure 2 yes Figure 1 A block diagram of an exemplary implementation of the decoder module of the destination device in the system.

[0013] Figure 3 A flowchart illustrating a first exemplary implementation that adjusts according to a list of modes used for intra-frame prediction is shown.

[0014] Figure 4 A flowchart illustrating a second exemplary implementation that adjusts according to a list of modes used for intra-frame prediction is provided.

[0015] Figure 5 A flowchart illustrating a third exemplary implementation of adjusting according to a list of modes used for intra-frame prediction is provided.

[0016] Figure 6A 6B and 6C are schematic diagrams of exemplary implementations of an intra-mode block unit divided into four intra-prediction regions and six intra-prediction regions.

[0017] Figure 7 A flowchart illustrating a fourth exemplary implementation of adjustment based on a list of modes used for intra-frame prediction is provided.

[0018] Figure 8 This is a schematic diagram of an exemplary implementation of six intra-frame prediction regions and two replacement regions for a block unit.

[0019] Figure 9A and 9B Flowcharts illustrating the fifth and sixth exemplary implementations of adjusting according to a list of modes used for intra-frame prediction are shown.

[0020] Figure 10 yes Figure 1 A block diagram of an exemplary implementation of the encoder module of the source device in the system. Detailed Implementation

[0021] The following description contains specific information relating to exemplary embodiments in this application. The accompanying drawings and detailed description are exemplary embodiments only. However, this application is not limited to these illustrative embodiments. Other variations and embodiments of this application will occur to those skilled in the art. Unless otherwise stated, the same or corresponding components in the drawings may be indicated by the same or corresponding reference numerals. Furthermore, the drawings and illustrations in this application are generally not drawn to scale and are not intended to correspond to actual relative dimensions.

[0022] For the purposes of consistency and ease of understanding, the same features are indicated by reference numerals in the exemplary drawings (although this is not the case in some examples). However, features in different embodiments may differ in other respects, and therefore should not be narrowly limited to the features shown in the drawings.

[0023] The phrases “in one embodiment,” or “in some embodiments,” as used in this specification, may each refer to one or more of the same or different embodiments. The term “coupled” is defined as a direct or indirect connection through intermediate components and is not necessarily limited to a physical connection. When the term “comprising,” is used, it means “including, but not necessarily limited to”; it explicitly refers to open inclusion or members of the described combinations, groups, series, and equivalents.

[0024] Furthermore, for purposes of explanation and non-restriction, specific details such as functional entities, technologies, protocols, standards, etc., are elaborated to provide an understanding of the described technologies. In other examples, detailed descriptions of well-known methods, technologies, systems, architectures, and equivalents are omitted to avoid unnecessarily obscuring the description.

[0025] Those skilled in the art will immediately recognize that any coded function or algorithm described in this application can be implemented in hardware, software, or a combination of software and hardware. The described function may correspond to a module that can be software, hardware, firmware, or any combination thereof. Software implementations may comprise computer-executable instructions stored on a computer-readable medium such as memory or other types of storage devices. For example, one or more microprocessors or general-purpose computers with communication processing capabilities may be programmed and execute the described network functions or algorithms using corresponding executable instructions. The microprocessor or general-purpose computer may be formed from an Applications Specific Integrated Circuitry (ASIC), a programmable logic array, and / or using one or more Digital Signal Processors (DSPs). Although some exemplary embodiments described in this specification tend to be software installed and executed on computer hardware, alternative exemplary embodiments in firmware or hardware or a combination of hardware and software are also within the scope of this application.

[0026] Computer-readable media include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, compact disc read-only memory (CD ROM), magnetic cartridges, magnetic tapes, disk storage, or any other equivalent medium capable of storing computer-readable instructions.

[0027] Figure 1 This is a block diagram of an exemplary embodiment of a system configured to encode and decode video data according to one or more technologies of this application. In this embodiment, the system includes a source device 11, a destination device 12, and a communication medium 13. In at least one embodiment, the source device 11 may include any device configured to encode video data and transmit the encoded video data to the communication medium 13. In at least one embodiment, the destination device 12 may include any device configured to receive encoded video data via the communication medium 13 and decode the encoded video data.

[0028] In at least one embodiment, the source device 11 can communicate with the destination device 12 via the communication medium 13 in a wired and / or wireless manner. The source device 11 may include a source module 111, an encoder module 112, and a first interface 113. The destination device 12 may include a display module 121, a decoder module 122, and a second interface 123. In at least one embodiment, the source device 11 may be a video encoder, and the destination device 12 may be a video decoder.

[0029] In at least one embodiment, the source device 11 and / or the destination device 12 may be a mobile phone, tablet computer, desktop computer, laptop computer or other electronic device. Figure 1 The illustration is only one example of the source device 11 and the destination device 12, and in other embodiments the source device 11 and the destination device 12 may include more or fewer components than illustrated, or have different configurations with various components.

[0030] In at least one embodiment, the source module 111 of the source device 11 may include a video capture device for capturing new video, a video archive for storing previously captured video, and / or a video feed interface for receiving video from a video content provider. In at least one embodiment, the source module 111 of the source device 11 may generate computer graphics-based data as source video, or a combination of real-time video, archived video, and computer-generated video. In at least one embodiment, the video capture device may be a charge-coupled device (CCD) image sensor, a complementary metal-oxide-semiconductor (CMOS) image sensor, or a camera.

[0031] In at least one embodiment, the encoder module 112 and the decoder module 122 may each be implemented as any of a variety of suitable encoder / decoder circuits, such as one or more microprocessors, central processing units (CPUs), graphics processing units (GPUs), system-on-chip (SoCs), digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, software, hardware, firmware, or any combination thereof. When the technology is implemented in part in software, the device may store instructions for software in a suitable non-transitory computer-readable medium and use one or more processors to execute the instructions in hardware to perform the technology of this application. In at least one embodiment, each of the encoder module 112 and the decoder module 122 may be included in one or more encoders or decoders, and any one of them may be integrated as part of a combined encoder / decoder (CODEC) in the respective device.

[0032] In at least one embodiment, the first interface 113 and the second interface 123 may employ custom protocols or follow existing standards or de facto standards. Existing standards or de facto standards include, but are not limited to, Ethernet, IEEE 802.11 or IEEE 802.15 series, wireless USB, or telecommunications standards. Telecommunications standards include, but are not limited to, GSM, CDMA2000, TD-SCDMA, WiMAX, 3GPP-LTE, or TD-LTE. In at least one embodiment, each of the first interface 113 and each of the second interface 123 may include any device configured to send and / or store a compatible video bitstream to and from the communication medium 13. In at least one embodiment, the first interface 113 and the second interface 123 may include a computer system interface that enables the compatible video bitstream to be stored on or received from a storage device. For example, the first interface 113 and the second interface 123 may include a chipset that supports Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe) bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, I2C, or other logical and physical structures for interconnecting peer devices.

[0033] In at least one embodiment, although other display technologies may be used in other embodiments, the display module 121 may include a display using Liquid Crystal Display (LCD) technology, plasma display technology, Organic Light Emitting Diode (OLED) display technology, or Light Emitting Polymer Display (LPD) technology. In at least one embodiment, the display module 121 may include a high-definition display or an ultra-high-definition display.

[0034] Figure 2 This is a block diagram of decoder module 222, which represents... Figure 1An exemplary embodiment of the decoder module 122 of the destination device 12 in the system. In at least one embodiment, the decoder module 222 includes an entropy decoding unit 2221, a prediction processing unit 2222, an inverse quantization / inverse transform unit 2223, a first adder 2224, a filtering unit 2225, and a decoded image buffer 2226. In at least one embodiment, the prediction processing unit 2222 of the decoder module 222 further includes an intra-frame prediction unit 22221 and an inter-frame prediction unit 22222. In at least one embodiment, the decoder module 222 receives a bitstream, decodes the bitstream, and outputs the decoded video.

[0035] In at least one embodiment, the entropy decoding unit 2221 can be derived from... Figure 1 The second interface 123 receives a bitstream including multiple syntax elements and performs a parsing operation on the bitstream to extract the syntax elements. The entropy decoding unit 2221 can perform entropy decoding on the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra-frame modes, segmentation information, and other syntax information as part of the parsing operation. In at least one embodiment, the entropy decoding unit 2221 can perform Context-Adaptive Variable Length Coding (CAVLC), Context-Adaptive Binary Arithmetic Coding (CABAC), Syntax-based Context-Adaptive Binary Arithmetic Coding (SBAC), Probability Interval Partitioning Entropy (PIPE) coding, or another entropy coding technique to generate the quantized transform coefficients. In at least one embodiment, the entropy decoding unit 2221 provides the quantized transform coefficients, quantization parameters and transform data to the inverse quantization / inverse transform unit 2223, and provides motion vectors, intra-frame modes, segmentation information and other syntax information to the prediction processing unit 2222.

[0036] In at least one embodiment, the prediction processing unit 2222 may receive syntax elements, such as motion vectors, intra-frame modes, segmentation information, and other syntax information, from the entropy decoding unit 2221. In at least one embodiment, the prediction processing unit 2222 may receive syntax elements including segmentation information and then segment multiple image frames according to the segmentation information. In at least one embodiment, each image frame may be divided into at least one image block according to the segmentation information. The at least one image block may include a luminance block for reconstructing multiple luminance samples and at least one chrominance block for reconstructing multiple chrominance samples. The luminance block and at least one chrominance block may be further subdivided to generate macroblocks, Coding Tree Units (CTUs), coding blocks (CBs), their sub-segments, and / or another equivalent coding unit.

[0037] In at least one embodiment, during the decoding process, the prediction processing unit 2222 receives prediction data, which includes an intra-frame mode or motion vector for a current image block specific to one of the plurality of image frames. The current image block may be one of the luma block and the at least one chroma block in the specific image frame.

[0038] In at least one embodiment, the intra-prediction unit 22221 may perform intra-predictive coding of the current block unit on one or more neighboring blocks in the same frame as the current block unit, based on syntax elements associated with the intra-mode, to generate a prediction block. In at least one embodiment, the intra-mode may specify the position of a reference sample selected from neighboring blocks within the current frame.

[0039] In at least one embodiment, when the luminance component of the current block is reconstructed by the prediction processing unit 2222, the intra-frame prediction unit 22221 may reconstruct multiple chrominance components of the current block unit based on multiple luminance components of the current block unit.

[0040] In at least one embodiment, the inter-frame prediction unit 22222 can perform inter-frame predictive coding on the current block unit relative to one or more blocks of one or more reference image blocks, based on syntax elements related to motion vectors, to generate a prediction block. In at least one embodiment, the motion vector can indicate the displacement of the current block unit within the current image block relative to a reference block unit within the reference image block. The reference block unit is a block determined to closely match the current block unit. In at least one embodiment, the inter-frame prediction unit 22222 receives reference image blocks stored in the decoded image buffer 2226 and reconstructs the current block unit based on the received reference image blocks.

[0041] In at least one embodiment, the inverse quantization / inverse transform unit 2223 can use inverse quantization and inverse transform to reconstruct residual blocks in the pixel domain. In at least one embodiment, the inverse quantization / inverse transform unit 2223 can use inverse quantization on residual quantization transform coefficients to generate residual transform coefficients, and then use inverse transform on the residual transform coefficients to generate residual blocks in the pixel domain. In at least one embodiment, the inverse transform can be used in reverse of the transform process, such as Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Adaptive Multiple Transform (AMT), Mode-Dependent Non-Separable Secondary Transform (MDNSST), Hypercube-Givens Transform (HyGT) F signal-dependent transform, Karhunen-Loéve Transform (KLT), wavelet transform, integer transform, subband transform, or conceptually similar transforms. In at least one implementation, the inverse transform can convert residual information from a transform domain, such as the frequency domain, back to the pixel domain. In at least one implementation, the degree of inverse quantization can be modified by adjusting the quantization parameters.

[0042] In at least one embodiment, the first adder 2224 adds the reconstructed residual block to the prediction block provided from the prediction processing unit 2222 to generate a reconstructed block.

[0043] In at least one embodiment, the filtering unit 2225 may include a deblocking filter, a Sample Adaptive Offset (SAO) filter, a bilateral filter, and / or an Adaptive Loop Filter (ALF) to remove blocky artifacts from the reconstructed blocks. In addition to the deblocking filter, SAO filter, bilateral filter, and ALF, other filters (in-loop or post-loop) may also be used. For simplicity, such filters are not shown, but the output of the first adder 2224 may be filtered if needed. In at least one embodiment, the filtering unit 2225 may output the decoded video to the display module 121 or other video receiving unit after performing filtering on the reconstructed blocks of a specific image frame.

[0044] In at least one embodiment, the decoded image buffer 2226 may be a reference image memory that stores, for example, reference blocks for decoding the bitstream by the prediction processing unit 2222 in inter-frame coding mode. The decoded image buffer 2226 may be formed of any of a variety of storage devices, such as Dynamic Random Access Memory (DRAM), including Synchronous DRAM (SDRAM), Magnetoresistive RAM (MRAM), Resistive RAM (RRAM), or other types of storage devices. In at least one embodiment, the decoded image buffer 2226 may be disposed on-chip along with other components of the decoder module 222, or disposed off-chip relative to those components.

[0045] Figure 3 A flowchart illustrating a first exemplary implementation of adjusting according to a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 3 Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is illustrative only and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0046] In block 31, the decoder module 222 determines block units with block size in an image frame from the video data.

[0047] In at least one embodiment, the video data may be a bitstream. The destination device 12 may receive the bitstream from an encoder, such as the source device 11, via the second interface 123 of the destination device 12. The second interface 123 provides the bitstream to the decoder module 222. The decoder module 222 determines image frames based on the bitstream and divides the image frames according to multiple segmentation instructions in the bitstream to determine block units. For example, the decoder module 222 may divide the image frames to generate multiple coding tree units, and may also divide one of the coding tree units according to the segmentation instructions based on any video coding standard to determine a block unit with a block size. In at least one embodiment, the block size may include a block height and a block width.

[0048] In at least one embodiment, the entropy decoding unit 2221 can decode the bitstream to determine multiple prediction indications for block units, and then the decoder module 222 can further reconstruct the block units based on the prediction indications. In at least one embodiment, the prediction indications may include multiple flags and multiple indices.

[0049] In box 32, the intra-prediction unit 22221 determines a mode list including multiple intra-modes.

[0050] In at least one embodiment, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar modes, DC modes, and / or multiple directional modes. In at least one embodiment, when the decoder module 222 decodes the bitstream using High Efficiency Video Coding (HEVC), the number of directional modes can be equal to 33. In at least one embodiment, when the decoder module 222 decodes the bitstream using a Versatile Video Coding (VVC) test model (VTM), the number of directional modes can be equal to 65.

[0051] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0052] In box 33, the intra-prediction unit 22221 selects at least one of the intra-modes based on the block size.

[0053] In at least one embodiment, the intra-prediction unit 22221 can determine the selected intra-mode based on the block size. In at least one embodiment, the intra-prediction unit 22221 can compare the block size with a predetermined size and determine the selected intra-mode based on the comparison between the block size and the predetermined size. When the block size is greater than the predetermined size, the selected intra-mode can be at least one first selection mode selected by the intra-prediction unit 22221. When the block size is less than the predetermined size, the selected intra-mode can be at least one second selection mode selected by the intra-prediction unit 22221. In the embodiments described, each of the at least one second selection mode can be different from at least one first selection mode.

[0054] In at least one embodiment, the intra-prediction unit 22221 can compare the block width with the block height and determine the selected intra-mode based on the comparison between the block width and the block height. When the block width is longer than the block height, the selected intra-mode can be at least one third selection mode selected by the intra-prediction unit 22221. When the block width is shorter than the block height, the selected intra-mode can be at least one fourth selection mode selected by the intra-prediction unit 22221. In this embodiment, each of the at least one fourth selection mode can be different from the at least one third selection mode.

[0055] In box 34, the intra-prediction unit 22221 removes at least one of the selected intra-modes from the mode list to generate an adjusted list that includes each of the unselected intra-modes.

[0056] In at least one embodiment, when the intra-prediction unit 22221 removes all selected intra-modes from the mode list, the remaining intra-modes in the mode list may be unselected intra-modes. In this embodiment, the intra-prediction unit 22221 may generate an adjusted list to include the unselected intra-modes. In at least one embodiment, the intra-prediction unit 22221 may add multiple additional modes to the adjusted list based on the block size.

[0057] In at least one embodiment, the intra-prediction unit 22221 may set a second intra-prediction index for each unselected intra-mode. In this embodiment, the second intra-prediction index for the unselected intra-mode may be the same as or different from the first intra-prediction index for the unselected intra-mode. In at least one embodiment, the intra-prediction unit 22221 may set a second intra-prediction index for each additional mode.

[0058] In box 35, the intra-frame prediction unit 22221 generates multiple predictors for the block unit based on the adjusted list.

[0059] In at least one embodiment, the intra-prediction unit 22221 can determine a prediction indication from the bitstream. In one embodiment, the intra-prediction unit 22221 can determine one of the unselected intra-modes in an adjusted list derived according to the block size based on a specific one of the prediction indications. In another embodiment, the intra-prediction unit 22221 can determine one of the unselected intra-modes and additional modes in the adjusted list derived according to the block size based on the specific prediction indication. In at least one embodiment, the specific prediction indication indicates the same mode index as the second intra-prediction index of the determined mode. Therefore, the intra-prediction unit 22221 can derive the determined mode based on the mode index. In at least one embodiment, the mode index indicated by the specific prediction indication can be the same as the first intra-prediction index of the determined mode.

[0060] In at least one embodiment, a block unit may include a plurality of block components. In said embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 22221 may determine one of a predictor based on a plurality of neighboring blocks adjacent to the block unit of each block element, along an orientation of a determined mode derived for the block unit. In one embodiment, the determined mode may be one of unselected intra-modes in an adjusted list derived according to the block size. In another embodiment, the determined mode may be one of unselected intra-modes and additional modes in an adjusted list derived according to the block size.

[0061] In at least one embodiment, the first adder 2224 of the decoder module 222 in the destination device 12 can add predictors derived based on the determined pattern to multiple residual samples determined from the bitstream to reconstruct block units. Additionally, the decoder module 222 can reconstruct all other block units in the image frame to reconstruct both the image frame and the video.

[0062] Figure 4 A flowchart illustrating a second exemplary implementation based on a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 4 Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is illustrative only and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0063] In block 41, the decoder module 222 determines block units in an image frame from video data and determines a plurality of adjacent blocks adjacent to the block unit.

[0064] In at least one embodiment, the video data may be a bitstream. The destination device 12 may receive the bitstream from an encoder, such as the source device 11, via the second interface 123 of the destination device 12. The second interface 123 provides the bitstream to the decoder module 222. The decoder module 222 determines image frames based on the bitstream and divides the image frames according to multiple segmentation instructions in the bitstream to determine block units. For example, the decoder module 222 may divide the image frames to generate multiple coding tree units, and may also divide one of the coding tree units according to the segmentation instructions based on any video coding standard to determine a block unit with a block size.

[0065] In at least one embodiment, the entropy decoding unit 2221 can decode the bitstream to determine multiple prediction indications for block units, and then the decoder module 222 can further reconstruct the block units based on the prediction indications. In at least one embodiment, the prediction indications may include multiple flags and multiple indices.

[0066] In at least one embodiment, the prediction processing unit 2222 of the destination device 12 determines neighboring blocks adjacent to the block unit. In this embodiment, the neighboring blocks may be included in multiple reference lines. In this embodiment, neighboring blocks in a first reference line are adjacent to the block unit, and neighboring blocks in a second reference line are adjacent to neighboring blocks in the first reference line. In at least one embodiment, the neighboring blocks may be reconstructed before the block unit is reconstructed, thus the neighboring blocks may be multiple reference samples for reconstructing the block unit. In at least one embodiment, the block unit may be reconstructed before some neighboring blocks are reconstructed, thus the intra-frame prediction unit 22221 can generate reference samples for the block unit by filling with reconstructed neighboring blocks for the unreconstructed neighboring blocks.

[0067] In box 42, the intra-frame prediction unit 22221 determines a mode list including multiple intra-frame modes and determines the prediction information of adjacent blocks.

[0068] In at least one embodiment, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes. In at least one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the number of directional modes can be equal to 33. In at least one embodiment, when the decoder module 222 decodes the bitstream in VTM, the number of directional modes can be equal to 65.

[0069] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0070] In at least one embodiment, the prediction information for neighboring blocks may include multiple decoding modes for the neighboring blocks. In one embodiment, when the decoding mode for a neighboring block is intra-prediction, the prediction information may further include multiple prediction modes for the neighboring blocks. In this embodiment, the multiple prediction modes can be selected from intra-modes in a mode list to reconstruct the neighboring blocks. In at least one embodiment, the intra-prediction unit 22221 may check the prediction modes of neighboring blocks and determine multiple most probable modes (MPMs) for that block unit based on the prediction modes of the neighboring blocks. In one embodiment, when the decoding mode for a particular neighboring block is inter-prediction, the intra-prediction unit 22221 may bypass that particular neighboring block and check the decoding modes of other neighboring blocks.

[0071] In at least one embodiment, the prediction information for neighboring blocks can be any information used to determine whether a neighboring block has been reconstructed. For example, the intra-prediction unit 22221 can directly receive multiple reconstructed components of neighboring blocks generated by the first adder 2224. When the intra-prediction unit 22221 receives the reconstructed components of a neighboring block, it can determine that the neighboring block was reconstructed before the reconstruction block unit. When the intra-prediction unit 22221 does not receive the reconstructed components of a neighboring block, it can determine that the neighboring block was not reconstructed before the reconstruction block unit. In one embodiment, when all neighboring blocks have been reconstructed before the reconstruction block unit, the reconstructed components of the neighboring blocks can be used to generate multiple reference samples for the block unit. In other embodiments, when a specific neighboring block has not been reconstructed during the reconstruction block unit, the specific neighboring block may not be used to generate a reference sample. In the embodiment, the intra-prediction unit 22221 can generate a specific one of the reference samples corresponding to a specific neighboring block by padding with other neighboring blocks. The intra-frame prediction unit 22221 can generate a specific reference sample corresponding to the specific neighboring block by filling it with other neighboring blocks.

[0072] In block 43, the intra-prediction unit 22221 selects at least one of the intra-modes based on the prediction information of neighboring blocks.

[0073] In at least one embodiment, the intra-prediction unit 22221 can determine the selected intra-mode based on prediction information of neighboring blocks. In this embodiment, each directional mode includes an orientation. In at least one embodiment, the intra-prediction unit 22221 can compare the orientation of the MPMs with the orientation of the directional mode, and determine the selected intra-mode based on the comparison between the orientation of the MPMs and the orientation of the directional mode. For example, if a particular directional mode is far from the MPMs, then the particular directional mode can be one of the selected intra-modes. In one embodiment, each intra-mode can be divided into multiple mode groups. When a particular mode group does not include MPMs, the intra-prediction unit 22221 can select the particular directional mode from the particular mode group and set the particular directional mode as the selected intra-mode.

[0074] In at least one embodiment, the intra-prediction unit 22221 may determine which neighboring block has not yet been reconstructed during block reconstruction. In this embodiment, the intra-prediction unit 22221 may further determine which intra-mode is guided from the block unit to the determined neighboring block. In at least one embodiment, the intra-prediction unit 22221 may set the determined intra-mode as a selected intra-mode.

[0075] In box 44, the intra-prediction unit 22221 removes at least one of the selected intra-modes from the mode list to generate an adjusted list that includes each of the unselected intra-modes.

[0076] In at least one embodiment, when the intra-prediction unit 22221 removes all selected intra-modes from the mode list, the remaining intra-modes in the mode list may be unselected intra-modes. In this embodiment, the intra-prediction unit 22221 may generate an adjusted list to include the unselected intra-modes. In at least one embodiment, the intra-prediction unit 22221 may add multiple additional modes to the adjusted list based on the block size.

[0077] In at least one embodiment, the intra-prediction unit 22221 may set a second intra-prediction index for each unselected intra-mode. In this embodiment, the second intra-prediction index for the unselected intra-mode may be the same as or different from the first intra-prediction index for the unselected intra-mode. In at least one embodiment, the intra-prediction unit 22221 may set a second intra-prediction index for each additional mode.

[0078] In box 45, the intra-prediction unit 22221 generates multiple predictors for the block unit based on the adjusted list.

[0079] In at least one embodiment, the intra-prediction unit 22221 can determine a prediction indication from the bitstream. In one embodiment, the intra-prediction unit 22221 can determine one of the unselected intra-modes in an adjusted list derived from prediction information of neighboring blocks based on a specific one of the prediction indications. In another embodiment, the intra-prediction unit 22221 can determine one of the unselected intra-modes and additional modes in the adjusted list derived from prediction information of neighboring blocks based on the specific prediction indication. In at least one embodiment, the specific prediction indication indicates the same mode index as the second intra-prediction index of the determined mode. Therefore, the intra-prediction unit 22221 can derive the determined mode based on the mode index. In at least one embodiment, the mode index indicated by the specific prediction indication can be the same as the first intra-prediction index of the determined mode.

[0080] In at least one embodiment, a block unit may include multiple block components. In said embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 22221 may determine one of a plurality of neighboring blocks adjacent to the block unit of each block element, along a specific orientation of a determined mode derived for the block unit. In one embodiment, the determined mode may be one of unselected intra-modes in an adjusted list derived from the prediction information of neighboring blocks. In another embodiment, the determined mode may be one of unselected intra-modes and additional modes in an adjusted list derived from the prediction information of neighboring blocks.

[0081] In at least one embodiment, the first adder 2224 of the decoder module 222 in the destination device 12 can add predictors derived based on the determined pattern to multiple residual samples determined from the bitstream to reconstruct block units. Additionally, the decoder module 222 can reconstruct all other block units in the image frame to reconstruct both the image frame and the video.

[0082] Figure 5 A flowchart illustrating a third exemplary implementation of adjusting according to a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 5 Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is merely illustrative and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application. In at least one embodiment, Figure 5 It can be Figure 3 Box 33 and / or Figure 4 A detailed exemplary implementation of box 43 in the diagram.

[0083] In block 531, the intra-prediction unit 22221 divides multiple intra-modes into multiple intra-prediction regions.

[0084] In at least one embodiment, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes. In at least one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the number of directional modes can be equal to 33. In at least one embodiment, when the decoder module 222 decodes the bitstream in VTM, the number of directional modes can be equal to 65.

[0085] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0086] In at least one embodiment, each directional pattern has a orientation. In said at least one embodiment, the intra-prediction unit 22221 can divide multiple directional patterns into multiple intra-prediction regions. In said embodiment, the number of intra-prediction regions can be predefined in the destination device 12 and the source device 11. For example, the number of intra-prediction regions can be equal to 4, 6, or 13. Figure 6A , Figure 6B and Figure 6CThis is a schematic diagram of an exemplary embodiment of an intra-mode 62 in which block unit 61 is divided into four intra-prediction regions 631-634 or six intra-prediction regions 641-646. In at least one embodiment, the first of the intra-prediction regions 631-634 may include an intra-mode with intra-prediction indices 2 to 17, the last of the intra-prediction regions 631-634 may include an intra-mode with intra-prediction indices 51 to 66, and the remaining intra-prediction regions 631-634 may include intra-mode with intra-prediction indices 18 to 50. In at least one embodiment, the first of the intra-prediction regions 641-646 may include an intra-mode with intra-prediction indices 2 to 11, the last of the intra-prediction regions 641-646 may include an intra-mode with intra-prediction indices 57 to 66, and the remaining intra-prediction regions 641-646 may include intra-mode with intra-prediction indices 12 to 56. In at least one embodiment, intra-prediction regions 632-633 and intra-prediction regions 642-645 can be set as multiple intermediate regions.

[0087] In block 532, the intra-prediction unit 22221 determines the removable region selected from the intra-prediction region based on one of the block size of the block unit and the prediction information of neighboring blocks.

[0088] In at least one embodiment, when the intra-prediction unit 22221 determines a removable region based on the block size of the block unit, the block size can be compared with a predetermined size. In this embodiment, the intra-prediction unit 22221 can determine the removable region based on the comparison between the block size and the predetermined size. In one embodiment, when the block size is greater than the predetermined size, the removable region can be predetermined to include at least one of a first intra-prediction region and a last intra-prediction region. In another embodiment, when the block size is greater than the predetermined size, the removable region can be predetermined to include at least one of the intra-prediction regions. Additionally, when the block size is less than the predetermined size, the removable region can be predetermined to include at least one of the intermediate regions. In yet another embodiment, when the block size is less than the predetermined size, the removable region can be predetermined to include at least one of the intra-prediction regions.

[0089] In at least one embodiment, when the intra-prediction unit 22221 determines a removable region based on the block size of the block unit, it can compare the block width of the block size with the block height of the block size. In at least one embodiment, the intra-prediction unit 22221 can determine the removable region based on a comparison between the block width and the block height. In at least one embodiment, when the block width is longer than the block height, the removable region can be predefined to include at least one of the first intra-prediction region 641 to the third intra-prediction region 643. In another embodiment, when the block width is shorter than the block height, the removable region can be predefined to include at least one of the fourth intra-prediction region 644 to the sixth intra-prediction region 646. For example, when the block width is longer than the block height, the removable region can be predefined to include the first intra-prediction region 641. Additionally, when the block width is shorter than the block height, the removable region can be predefined to include the sixth intra-prediction region 646. In at least one embodiment, when the block width is longer than the block height, the removable region can be predefined to include at least one of the first intra-prediction region 631 and the second intra-prediction region 632. In another embodiment, when the block width is shorter than the block height, the removable region can be predefined to include at least one of a third intra-frame prediction region 633 and a fourth intra-frame prediction region 634.

[0090] In at least one embodiment, when the block width is longer than the block height, a first specific region within the intra-prediction region can be predefined as a removable region. Additionally, when the block width is shorter than the block height, a second specific region within the intra-prediction region, different from the first specific intra-prediction region, can be predefined as a removable region. In this embodiment, a first angle between the horizontal direction and each intra-mode in the first specific intra-prediction region is equal to or less than 45 degrees, and a second angle between the vertical direction and each intra-mode in the second specific intra-prediction region is equal to or less than 45 degrees.

[0091] In at least one embodiment, when the intra-prediction unit 22221 determines a removable region based on prediction information of neighboring blocks, the intra-prediction unit 22221 can determine multiple MPMs based on multiple prediction modes of neighboring blocks adjacent to the block unit. In this embodiment, the prediction information may include prediction modes of neighboring blocks, and each prediction mode has an orientation. In at least one embodiment, the intra-prediction unit 22221 can compare the orientation of the MPMs with the orientation of the orientation mode, and determine the removable region based on the comparison between the orientation of the MPMs and the orientation of the orientation mode. In one embodiment, when a particular intra-prediction region does not include the MPMs of the block unit, the particular intra-prediction region can be determined as a removable region.

[0092] In at least one embodiment, when the intra-prediction unit 22221 determines a removable region based on prediction information of neighboring blocks, the intra-prediction unit 22221 can determine which neighboring block has not yet been reconstructed during the reconstruction of the block unit. In at least one embodiment, the intra-prediction unit 22221 can also determine which intra-mode points from the block unit to the determined neighboring block, and which intra-prediction region includes the determined intra-mode. In at least one embodiment, the determined intra-prediction region can be identified as a removable region.

[0093] In box 533, the intra-prediction unit 22221 sets at least one of the intra-modes included in the removable region as at least one selected from the intra-modes.

[0094] In at least one embodiment, the intra-prediction unit 22221 can check which intra-modes are included in the removable region and set the intra-modes included in the removable region as multiple removable modes. In at least one embodiment, the intra-prediction unit 22221 can set at least one of the removable modes as at least one of the selected intra-modes to remove them from the mode list. In at least one embodiment, at least one of the selected intra-modes generated from the removable region can be predefined in the destination device 12 and the source device 11.

[0095] In at least one embodiment, when the decoder module 222 decodes the bitstream using HEVC, VTM, or other video coding standards, it divides the block units using at least one of a quadtree partitioning method and a binary tree partitioning method. Therefore, when the block width is longer than the block height, the quotient obtained by dividing the block width by the block height can be greater than or equal to 2. Conversely, when the block width is shorter than the block height, the quotient can be less than or equal to 1 / 2.

[0096] In at least one embodiment, when the quotient obtained by dividing the block width by the block height is greater than or equal to 2, the intra-mode included in the first specific intra-prediction region is set to at least one selected intra-mode. In at least one embodiment, when the quotient obtained by dividing the block width by the block height is less than or equal to 1 / 2, the intra-mode included in the intra-prediction region is set to at least one selected intra-mode.

[0097] Figure 7 A flowchart illustrating a third exemplary implementation of adjusting according to a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 7 Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is merely illustrative and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application. In at least one embodiment, Figure 7 It can be Figure 3 Box 43 and / or Figure 4 A detailed exemplary implementation of box 44 in the figure.

[0098] In box 741, the intra-prediction unit 22221 removes multiple selected intra-modes from the mode list.

[0099] In at least one embodiment, the intra-prediction unit 22221 can select at least one intra-mode based on either the block size of the block unit or prediction information of neighboring blocks. In one embodiment, the intra-prediction unit 22221 can compare the block size with a predetermined size and determine the selected intra-mode based on the comparison. In one embodiment, the intra-prediction unit 22221 can compare the block width of the block size with the block height of the block size and determine the selected intra-mode based on the comparison. In one embodiment, the intra-prediction unit 22221 can determine multiple MPMs from a mode list, compare the orientation of the MPMs with the orientation of directional modes included in the intra-modes, and determine the selected intra-mode based on the comparison between the orientation of the MPMs and the orientation of the directional modes. In one embodiment, the intra-prediction unit 22221 can determine which neighboring blocks have not yet been reconstructed, determine which intra-modes point from the block unit to the determined neighboring blocks, and set the determined intra-mode as the selected intra-mode.

[0100] In at least one embodiment, the intra-prediction unit 22221 can remove selected intra-modes from the mode list. In at least one embodiment, when the intra-prediction unit 22221 removes all selected intra-modes from the mode list, the unselected intra-modes are the remaining intra-modes in the mode list.

[0101] In box 742, the intra-prediction unit 22221 determines multiple additional modes to be combined with unselected intra-prediction modes to generate an adjusted mode list.

[0102] In at least one embodiment, the intra-prediction unit 22221 determines additional modes based on the block size of the block unit. In at least one embodiment, the intra-prediction unit 22221 determines additional modes based on prediction information from neighboring blocks. In at least one embodiment, the number of modes removed is equal to the number of additional modes. Therefore, the number of intra-modes in the mode list is equal to the number of additional modes in the adjusted list and the number of remaining intra-modes.

[0103] In at least one embodiment, the intra-frame prediction unit 22221 may determine an additional mode based on a comparison between the block size and a predetermined size. In one embodiment, when the block size is greater than the predetermined size, the additional mode may be a plurality of first replacement modes. In another embodiment, when the block size is less than the predetermined size, the additional mode may be a plurality of second replacement modes. In the embodiments described above, each of the second replacement modes may be different from the first replacement modes.

[0104] In at least one embodiment, the intra-frame prediction unit 22221 may determine an additional mode based on a comparison between the block width and a predetermined height. In one embodiment, when the block width is longer than the block height, the additional mode may be a plurality of third replacement modes. In another embodiment, when the block width is shorter than the block height, the additional mode may be a plurality of fourth replacement modes. In the embodiments described above, each of the third replacement modes may be different from the fourth replacement mode.

[0105] In at least one embodiment, the intra-frame prediction unit 22221 may determine an additional mode based on a comparison between the orientation of the MPMs and the orientation of the directional pattern. In one embodiment, a new directional pattern that approximates the MPMs pattern may be created.

[0106] In at least one embodiment, the intra-prediction unit 22221 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 22221 can determine an additional mode based on a comparison between the orientation of the determined intra-mode and the orientation of a directional mode. In one embodiment, a new directional mode that moves away from the determined intra-mode can be created.

[0107] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0108] In at least one embodiment, the intra-prediction unit 22221 can divide the orientation pattern into multiple intra-prediction regions. In this embodiment, the number of intra-prediction regions can be predefined in the destination device 12 and the source device 11. For example, the number of intra-prediction regions can be 4, 6, or 13. In one embodiment, Figure 6C The first of the intra-prediction regions 641-646 may include an intra-mode with a first intra-prediction index 2 to 11, the last of the intra-prediction regions 641-646 may include an intra-mode with a first intra-prediction index 57 to 66, and the other intra-prediction regions 641-646 may include intra-modes with a first intra-prediction index 12 to 56.

[0109] In at least one embodiment, the intra-prediction unit 22221 may determine an insertion region based on a comparison between the block size and a predetermined size, and generate an additional pattern based on the insertion region. In one embodiment, when the block size is smaller than the predetermined size, the insertion region may be predefined to include at least one of a first intra-prediction region 641 and a last intra-prediction region 646. In another embodiment, when the block size is larger than the predetermined size, the insertion region may be predefined to include at least one of a second intra-prediction region 642 to a fifth intra-prediction region 645.

[0110] In at least one embodiment, the intra-prediction unit 22221 can determine an insertion region based on a comparison between the block width and the block height, and generate an additional pattern based on the insertion region. In one embodiment, when the block width is shorter than the block height, the insertion region can be predefined based on at least one of the first intra-prediction region 641 to the third intra-prediction region 643. In another embodiment, when the block width is longer than the block height, the insertion region can be predefined based on at least one of the fourth intra-prediction region 644 to the sixth intra-prediction region 646. For example, when the block width is shorter than the block height, the insertion region can be predefined based on the first intra-prediction region 641. Additionally, when the block width is longer than the block height, the insertion region can be predefined based on the sixth intra-prediction region 646. In at least one embodiment, when the block width is less than the block height, a first replacement region adjacent to the first intra-prediction region 641 can be predefined as the insertion region. Additionally, when the block width is longer than the block height, a first replacement region adjacent to the sixth intra-prediction region 646 can be predefined as the insertion region. In these embodiments, the second replacement region is different from the first replacement region. Figure 8 This is a schematic diagram of an exemplary implementation of six intra-prediction regions 841-846 and two replacement regions 851 and 856 of block unit 81. In at least one implementation, a third replacement mode can be created in replacement region 856 when the block width is greater than the block height. Additionally, a fourth replacement mode can be created in replacement region 851 when the block width is less than the block height.

[0111] In at least one embodiment, the intra-prediction unit 22221 may determine an insertion region based on a comparison between the orientation of the MPMs and the orientation of the orientation pattern, and generate an additional pattern based on the insertion region. In one embodiment, when a particular intra-prediction region comprises most of the MPMs of the block unit, the insertion region may be configured to include the particular one of intra-prediction regions 641-646.

[0112] In at least one embodiment, the intra-prediction unit 22221 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 22221 can also determine which intra-prediction regions include the determined intra-mode. In one embodiment, the insertion region may differ from the determined intra-prediction region. For example, when decoding of block unit 81 is in progress, the neighboring block to the left of block unit 81 is not being decoded. In this embodiment, the orientation of the determined intra-mode pointing from the block unit to the neighboring block can be similar to a horizontal orientation. Therefore, the insertion region away from the horizontal orientation can be a replacement region 851. In other embodiments, when the orientation of the determined intra-mode pointing from the block unit to the neighboring block can be similar to a vertical orientation, the insertion region away from the horizontal orientation can be a replacement region 856.

[0113] In box 743, the intra-prediction unit 22221 sets the mode index to each of the unselected intra-mode and additional modes in the adjusted mode list.

[0114] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In at least one embodiment, the intra-frame mode may include N non-directional modes having a first intra-frame prediction index set from 0 to N-1, and M directional modes having a first intra-frame prediction index set from N to (N-1)+M.

[0115] In at least one embodiment, in HEVC where N equals 2 and M equals 32, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 32 directional modes with the first intra-frame prediction index set to 2 to 33. In at least one embodiment, in VTM where N equals 2 and M equals 65, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 65 directional modes with the first intra-frame prediction index set to 2 to 66.

[0116] In at least one embodiment, the intra-prediction unit 22221 can keep the first intra-prediction index of the unselected intra-mode unchanged. Therefore, the mode index of the unselected intra-mode can be the same as the first intra-prediction index of the unselected intra-mode. In one embodiment, when a selected intra-prediction mode with a first intra-prediction index 2-11 is removed, the mode index of the unselected intra-mode can be equal to 12-66.

[0117] In at least one implementation, when the number of additional modes is equal to K, multiple second intra-prediction indices can be set to N+M to (N+M-1)+K for the additional modes. In one implementation, in HEVC where M equals 32, the second intra-prediction indices can be set to N+32 to N+K+31. In one implementation, in VTM where M equals 65, the second intra-prediction indices can be set to N+65 to N+K+64. For example, when removing intra-prediction modes with selections of first intra-prediction indices 2-11, the number of additional modes K can be equal to 10. Therefore, in VTM where N equals 2 and M equals 65, the second intra-prediction indices of the additional modes can be equal to 67-76.

[0118] In at least one embodiment, since the first intra-prediction indexes for the M directional modes are set from N to (N-1)+M, the first intra-prediction index for the R-th directional mode is equal to (N-1)+R. In one embodiment, when in a VTM where N equals 2, the first intra-prediction index for the R-th directional mode is equal to R+1. In at least one embodiment, since multiple second intra-prediction indices can be set from N+M to (N+M-1)+K for additional modes, the second intra-prediction index for the Q-th directional mode is equal to (N+M-1)+Q. In one embodiment, when in a VTM where N equals 2 and M equals 65, the second intra-prediction index for the Q-th additional mode is equal to 65+(Q+1).

[0119] In block 744, the intra-frame prediction unit 22221 determines a specific one of the mode indexes for use in generating the plurality of predictors for the block unit.

[0120] In at least one implementation, when predicting a block cell based on a specific intra-mode not selected in the adjustment list and an additional mode corresponding to that specific mode index, the intra-prediction unit 22221 may receive a prediction instruction indicating the specific mode index. In one implementation, the intra-prediction unit 22221 may determine one of the plurality of predictions for each block element along the orientation of the specific mode, from reference samples generated based on neighboring blocks adjacent to the block cell.

[0121] In at least one embodiment, when the specific mode index indicated by the prediction indication is the same as one of the first intra-prediction indices of the unselected intra-mode, the specific mode index may be greater than or equal to 0 and less than N+M. In at least one embodiment, when the specific mode index is different from the first intra-prediction index of the unselected intra-mode, and the specific mode index is greater than or equal to N+M.

[0122] Figure 9AA flowchart illustrating a fifth exemplary implementation of adjusting according to a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 9A Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is illustrative only and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0123] In block 911, the decoder module 222 determines block units with block size in an image frame from the video data.

[0124] In at least one embodiment, the video data may be a bitstream. The destination device 12 may receive the bitstream from an encoder, such as the source device 11, via the second interface 123 of the destination device 12. The second interface 123 provides the bitstream to the decoder module 222. The decoder module 222 determines image frames based on the bitstream and divides the image frames according to multiple segmentation instructions in the bitstream to determine block units. For example, the decoder module 222 may divide the image frames to generate multiple coding tree units, and may also divide one of the coding tree units according to the segmentation instructions based on any video coding standard to determine a block unit with a block size. In at least one embodiment, the block size may include a block height and a block width.

[0125] In at least one embodiment, the entropy decoding unit 2221 can decode the bitstream to determine multiple prediction indications for block units, and then the decoder module 222 can further reconstruct the block units based on the prediction indications. In at least one embodiment, the prediction indications may include multiple flags and multiple indices.

[0126] In block 912, the intra-prediction unit 22221 determines a mode list including multiple intra-modes.

[0127] In at least one embodiment, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes. In at least one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the number of directional modes can be equal to 33. In at least one embodiment, when the decoder module 222 decodes the bitstream in VTM, the number of directional modes can be equal to 65.

[0128] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0129] In box 913, the intra-frame prediction unit 22221 determines multiple additional modes based on the block size.

[0130] In at least one embodiment, the intra-frame prediction unit 22221 can compare the block size with a predetermined size and determine an appending mode based on the comparison between the block size and the predetermined size. In one embodiment, when the block size is greater than the predetermined size, the appending mode can be a plurality of first appending modes. In another embodiment, when the block size is less than the predetermined size, the appending mode can be a plurality of second appending modes. In each of the second appending modes, the second appending mode can be different from the first appending mode.

[0131] In one embodiment, the intra-frame prediction unit 22221 can compare the block width of a block unit with the block height of the block unit, and determine an additional mode based on the comparison between the block width and the block height. In one embodiment, when the block width is longer than the block height, the additional mode can be multiple third additional modes. In another embodiment, when the block width is less than the block height, the additional mode can be multiple fourth additional modes. In these embodiments, each third additional mode can be different from a fourth additional mode.

[0132] In at least one embodiment, the intra-prediction unit 22221 can divide multiple intra-modes into multiple intra-prediction regions. In at least one embodiment, the intra-prediction unit 22221 can divide directional modes into intra-prediction regions. In one embodiment, Figure 6C The first of the intra-prediction regions 641-646 may include intra-modes with intra-prediction indices 2 to 11, and the last of the intra-prediction regions 641-646 may include intra-modes with intra-prediction indices 57 to 67. The others in the intra-prediction regions 641-646 may include intra-modes with intra-prediction indices 12 to 56.

[0133] In at least one embodiment, the intra-prediction unit 22221 may determine an insertion region based on a comparison between the block size and a predetermined size, and generate an additional pattern based on the insertion region. In one embodiment, when the block size is smaller than the predetermined size, the insertion region may be predefined to include at least one of a first intra-prediction region 641 and a last intra-prediction region 646. In another embodiment, when the block size is larger than the predetermined size, the insertion region may be predefined to include at least one of a second intra-prediction region 642 to a fifth intra-prediction region 645.

[0134] In at least one embodiment, the intra-prediction unit 22221 can determine an insertion region based on a comparison between the block width and the block height, and generate an additional pattern within the insertion region. In one embodiment, when the block width is shorter than the block height, the insertion region can be predefined based on at least one of the first intra-prediction regions 641 to the third intra-prediction region 643. In another embodiment, when the block width is longer than the block height, the insertion region can be predefined based on at least one of the fourth intra-prediction regions 644 to the sixth intra-prediction region 646. For example, when the block width is shorter than the block height, the insertion region can be predefined based on the first intra-prediction region 641. Additionally, when the block width is longer than the block height, the insertion region can be predefined based on the sixth intra-prediction region 646. In at least one embodiment, when the block width is shorter than the block height, a first additional region adjacent to the first intra-prediction region 641 can be predefined as the insertion region. Additionally, when the block width is longer than the block height, a second additional region adjacent to the sixth intra-prediction region 646 can be predefined as the insertion region. In these embodiments, the second additional region is different from the first additional region. In at least one embodiment, reference Figure 8 When the block width is greater than the block height, a third addition pattern can be created in addition area 856. Conversely, when the block width is less than the block height, a fourth addition pattern can be created in addition area 851.

[0135] In box 914, the intra-frame prediction unit 22221 adds additional modes to the mode list to generate an adjusted list including each intra-frame mode.

[0136] In at least one embodiment, when an additional mode is added to the mode list, the intra-prediction unit 22221 may set a second intra-prediction index for each additional mode. In at least one embodiment, each intra-mode has a first intra-prediction index. In at least one embodiment, the intra-mode may include N non-directional modes with first intra-prediction indices set from 0 to N-1, and M directional modes with first intra-prediction indices set from N to (N-1)+M.

[0137] In at least one embodiment, in HEVC where N equals 2 and M equals 32, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 32 directional modes with the first intra-frame prediction index set to 2 to 33. In at least one embodiment, in VTM where N equals 2 and M equals 65, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 65 directional modes with the first intra-frame prediction index set to 2 to 66.

[0138] In at least one implementation, when the number of additional modes is equal to K, the second intra-prediction index can be set to N+M to N+M+K for the additional modes. In one implementation, in HEVC where M equals 32, the second intra-prediction index can be set to N+32 to N+K+32. In one implementation, in VTM where M equals 65, the second intra-prediction index can be set to N+65 to N+K+64. For example, when removing intra-prediction modes with selections having first intra-prediction indices 2-11, the number of additional modes K can be equal to 10. Therefore, in VTM where N equals 2 and M equals 65, the second intra-prediction index of the additional modes can be equal to 67-76.

[0139] In box 915, the intra-prediction unit 22221 generates multiple predictors for the block unit based on the adjusted list.

[0140] In at least one embodiment, the intra-prediction unit 22221 can determine a prediction indication from the bitstream. In at least one embodiment, the intra-prediction unit 22221 can determine one of an intra-mode and an additional mode from an adjusted list derived according to the block size based on a specific one of the prediction indications. In at least one embodiment, the specific prediction indication indicates the same mode index as the second intra-prediction index of the determined mode. Therefore, the intra-prediction unit 22221 can derive the determined mode based on the mode index. In at least one embodiment, the mode index indicated by the specific prediction indication can be the same as the first intra-prediction index of the determined mode.

[0141] In at least one embodiment, a block unit may include multiple block components. In this embodiment, each block component may be a pixel component. In this embodiment, the intra-prediction unit 22221 may determine one of a predictor based on a plurality of neighboring blocks adjacent to the block unit of each block element, along an orientation of a determined mode derived for the block unit. In one embodiment, the determined mode may be one of intra-modes and additional modes from an adjusted list derived according to the block size.

[0142] In at least one embodiment, the first adder 2224 of the decoder module 222 in the destination device 12 can add predictors derived based on the determined pattern to multiple residual samples determined from the bitstream to reconstruct block units. Additionally, the decoder module 222 can reconstruct all other block units in the image frame to reconstruct both the image frame and the video.

[0143] Figure 9B A flowchart illustrating a second exemplary implementation based on a list of modes used for intra-frame prediction is shown. Because there are multiple ways to perform this method, only an example method is provided by way of example. For example, one could use... Figure 1 and Figure 2 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. (Shown...) Figure 9B Each box represents one or more procedures, methods, or subroutines executed in the example method. Furthermore, the order of the boxes is illustrative only and can be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0144] In block 921, the decoder module 222 determines block units in an image frame from video data and determines a plurality of adjacent blocks adjacent to the block unit.

[0145] In at least one embodiment, the video data may be a bitstream. The destination device 12 may receive the bitstream from an encoder, such as the source device 11, via the second interface 123 of the destination device 12. The second interface 123 provides the bitstream to the decoder module 222. The decoder module 222 determines image frames based on the bitstream and divides the image frames according to multiple segmentation instructions in the bitstream to determine block units. For example, the decoder module 222 may divide the image frames to generate multiple coding tree units, and may also divide one of the coding tree units according to the segmentation instructions based on any video coding standard to determine a block unit with a block size.

[0146] In at least one embodiment, the entropy decoding unit 2221 can decode the bitstream to determine multiple prediction indications for block units, and then the decoder module 222 can further reconstruct the block units based on the prediction indications. In at least one embodiment, the prediction indications may include multiple flags and multiple indices.

[0147] In at least one embodiment, the prediction processing unit 2222 of the destination device 12 determines neighboring blocks adjacent to the block unit. In this embodiment, neighboring blocks may be included in multiple reference lines. In this embodiment, neighboring blocks in a first reference line are adjacent to the block unit, and neighboring blocks in a second reference line are adjacent to neighboring blocks in the first reference line. In at least one embodiment, neighboring blocks may be reconstructed before the block unit is reconstructed, thus neighboring blocks may be multiple reference candidates for reconstructing the block unit. In at least one embodiment, the block unit may be reconstructed before some neighboring blocks are reconstructed, thus the intra-frame prediction unit 22221 can generate reference samples of the block unit for the unreconstructed neighboring blocks by filling them with reconstructed neighboring blocks.

[0148] In block 922, the intra-frame prediction unit 22221 determines a mode list including multiple intra-frame modes and determines prediction information for adjacent blocks.

[0149] In at least one embodiment, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes. In at least one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the number of directional modes can be equal to 33. In at least one embodiment, when the decoder module 222 decodes the bitstream in VTM, the number of directional modes can be equal to 65.

[0150] In at least one embodiment, each intra-frame mode has a first intra-frame prediction index. In one embodiment, when the decoder module 222 decodes the bitstream in HEVC, the first intra-frame prediction index of the intra-frame mode can be equal to 0 to 34. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 33. In one embodiment, when the decoder module 222 decodes the bitstream in VTM, the prediction index of the intra-frame mode can be equal to 0 to 66. In this embodiment, the first intra-frame prediction index of the planar mode and DC mode can be equal to 0 and 1, and the first intra-frame prediction index of the directional mode can be equal to 2 to 66.

[0151] In at least one embodiment, the prediction information for neighboring blocks may include multiple decoding modes for the neighboring blocks. In one embodiment, when the decoding mode for a neighboring block is intra-prediction, the prediction information may further include multiple prediction modes for the neighboring blocks. In this embodiment, the multiple prediction modes can be selected from intra-modes in a mode list to reconstruct the neighboring blocks. In at least one embodiment, the intra-prediction unit 22221 may check the prediction modes of neighboring blocks and determine multiple most probable modes (MPMs) for that block unit based on the prediction modes of the neighboring blocks. In one embodiment, when the decoding mode for a particular neighboring block is inter-prediction, the intra-prediction unit 22221 may bypass that particular neighboring block and check the decoding modes of other neighboring blocks.

[0152] In at least one embodiment, the prediction information for neighboring blocks can be any information used to determine whether a neighboring block has been reconstructed. For example, the intra-prediction unit 22221 can directly receive multiple reconstructed components of neighboring blocks generated by the first adder 2224. When the intra-prediction unit 22221 receives the reconstructed components of a neighboring block, it can determine that the neighboring block was reconstructed before the reconstruction block unit. When the intra-prediction unit 22221 does not receive the reconstructed components of a neighboring block, it can determine that the neighboring block was not reconstructed before the reconstruction block unit. In one embodiment, when all neighboring blocks have been reconstructed before the reconstruction block unit, the reconstructed components of the neighboring blocks can be used to generate multiple reference samples for the block unit. In other embodiments, when a specific neighboring block has not been reconstructed during the reconstruction block unit, the specific neighboring block may not be used to generate a reference sample. In the embodiment, the intra-prediction unit 22221 can generate a specific one of the reference samples corresponding to a specific neighboring block by padding with other neighboring blocks. The intra-frame prediction unit 22221 can generate a specific reference sample corresponding to the specific neighboring block by filling it with other neighboring blocks.

[0153] In block 923, the intra-frame prediction unit 22221 determines multiple additional modes based on prediction information from neighboring blocks.

[0154] In at least one embodiment, each of the intra-frame modes including the MPM and the orientation mode includes an orientation. In at least one embodiment, the intra-frame prediction unit 22221 may compare the orientation of the MPM with the orientation of the orientation mode. In at least one embodiment, the intra-frame prediction unit 22221 may determine an additional mode based on the comparison between the orientation of the MPM and the orientation of the orientation mode. In one embodiment, a new orientation mode that approximates the MPM mode may be created.

[0155] In at least one embodiment, the intra-prediction unit 22221 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 22221 can determine an additional mode based on a comparison between the orientation of the determined intra-mode and the orientation of a directional mode. In one embodiment, a new directional mode that moves away from the determined intra-mode can be created.

[0156] In at least one embodiment, the intra-prediction unit 22221 can divide the orientation pattern into multiple intra-prediction regions. In this embodiment, the number of intra-prediction regions can be predefined in the destination device 12 and the source device 11. For example, the number of intra-prediction regions can be 4, 6, or 13. In one embodiment, Figure 6C The first of the intra-prediction regions 641-646 may include an intra-mode with intra-prediction indices 2 to 11, the last of the intra-prediction regions 641-646 may include an intra-mode with intra-prediction indices 57 to 66, and the other intra-prediction regions 641-646 may include intra-mode with intra-prediction indices 12 to 56.

[0157] In at least one embodiment, the intra-prediction unit 22221 may determine an insertion region based on a comparison between the orientation of the MPMs and the orientation of the orientation pattern, and generate an additional pattern based on the insertion region. In one embodiment, when a particular intra-prediction region comprises most of the MPMs of the block unit, the insertion region may be configured to include the particular one of intra-prediction regions 641-646.

[0158] In at least one embodiment, the intra-prediction unit 22221 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 22221 can also determine which intra-prediction regions include the determined intra-mode. In one embodiment, the insertion region may differ from the determined intra-prediction region. In another embodiment, the insertion region may be located away from the determined intra-prediction region. For example, when decoding of block unit 81 is in progress, the neighboring block to the left of block unit 81 is not being decoded. In this embodiment, the orientation of the determined intra-mode pointing from the block unit to the neighboring block can be similar to a horizontal orientation. Therefore, the insertion region away from a horizontal orientation can be... Figure 8 The first added region is 851. In other embodiments, when the orientation of a defined intra-frame mode from a block unit to an adjacent block can be similar to vertical orientation, the insertion region away from horizontal orientation can be a second added region 856.

[0159] In box 924, the intra-frame prediction unit 22221 adds additional modes to the mode list to generate an adjusted list including each intra-frame mode.

[0160] In at least one embodiment, when an additional mode is added to the mode list, the intra-prediction unit 22221 may set a second intra-prediction index for each additional mode. In at least one embodiment, each intra-mode has a first intra-prediction index. In at least one embodiment, the intra-mode may include N non-directional modes with first intra-prediction indices set from 0 to N-1, and M directional modes with first intra-prediction indices set from N to (N-1)+M.

[0161] In at least one embodiment, in HEVC where N equals 2 and M equals 32, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 32 directional modes with the first intra-frame prediction index set to 2 to 33. In at least one embodiment, in VTM where N equals 2 and M equals 65, the intra-frame mode may include two non-directional modes with the first intra-frame prediction index set to zero and one, and 65 directional modes with the first intra-frame prediction index set to 2 to 66.

[0162] In at least one implementation, when the number of additional modes is equal to K, the second intra-prediction index can be set to N+M to N+M+K for the additional modes. In one implementation, in HEVC where M equals 32, the second intra-prediction index can be set to N+32 to N+K+32. In one implementation, in VTM where M equals 65, the second intra-prediction index can be set to N+65 to N+K+64. For example, when an intra-prediction mode with a first intra-prediction index of 2-11 is removed, the number of additional modes K equals 10. Therefore, the second intra-prediction index of the additional modes can be equal to 67-76.

[0163] In box 925, the intra-prediction unit 22221 generates multiple predictors for the block unit based on an adjusted list.

[0164] In at least one embodiment, the intra-prediction unit 22221 can determine a prediction indication from the bitstream. In one embodiment, the intra-prediction unit 22221 can determine one of an intra-mode and an additional mode from an adjusted list derived based on prediction information from neighboring blocks, based on a specific one of the prediction indications. In at least one embodiment, the specific prediction indication indicates the same mode index as the second intra-prediction index of the determined mode. Therefore, the intra-prediction unit 22221 can derive the determined mode based on the mode index. In at least one embodiment, the mode index indicated by the specific prediction indication can be the same as the first intra-prediction index of the determined mode.

[0165] In at least one embodiment, a block unit may include a plurality of block components. In this embodiment, each block component may be a pixel component. In this embodiment, the intra-prediction unit 22221 may determine one of a plurality of predictors based on a plurality of neighboring blocks adjacent to the block unit of each block element, along a specific one of the plurality of orientations of a determined mode derived for the block unit. In one embodiment, the determined mode may be one of intra-modes and additional modes determined from an adjusted list derived based on prediction information from neighboring blocks.

[0166] In at least one embodiment, the first adder 2224 of the decoder module 222 in the destination device 12 can add predictors derived based on the determined pattern to multiple residual samples determined from the bitstream to reconstruct block units. Additionally, the decoder module 222 can reconstruct all other block units in the image frame to reconstruct both the image frame and the video.

[0167] Figure 10 It means Figure 1 A block diagram of an exemplary embodiment of the encoder module 1012 of the source device 11 in the system. In at least one embodiment, the encoder module 1012 includes a prediction processing unit 10121, a first adder 10122, a transform / quantization unit 10123, an inverse quantization / inverse transform unit 10124, a second adder 10125, a filtering unit 10126, a decoded image buffer 10127, and an entropy coding unit 10128. In at least one embodiment, the prediction processing unit 10121 of the encoder module 1012 further includes a segmentation unit 101211, an intra-frame prediction unit 101212, and an inter-frame prediction unit 101213. In at least one embodiment, the encoder module 1012 receives a source video and encodes the source video to output a bitstream.

[0168] In at least one embodiment, the encoder module 1012 can receive a source video comprising multiple image frames and then segment the image frames according to a coding structure. In at least one embodiment, each image frame can be segmented into at least one image block. The at least one image block can include a luma block with multiple luma samples and at least one chroma block with multiple chroma samples. The luma block and at least one chroma block can be further segmented to generate macroblocks, coding tree units (CTUs), coding blocks (CBs), their sub-segments, and / or another equivalent coding unit. In at least one embodiment, the encoder module 1012 can perform additional fine segmentation of the source video. It should be noted that regardless of how the source video is segmented before and / or during encoding, the disclosed content is generally applicable to video encoding.

[0169] In at least one embodiment, during the encoding process, the prediction processing unit 10121 receives a current image block from a specific one of the plurality of image frames. The current image block may be one of a luma block and at least one chroma block in the specific image frame. The segmentation unit 101211 segments the current image block into a plurality of block units. The intra-frame prediction unit 101212 may perform intra-frame prediction coding of the current block unit relative to one or more adjacent blocks in the same frame as the current block unit to provide spatial prediction. The inter-frame prediction unit 101213 may perform inter-frame prediction coding of the current block unit relative to one or more blocks in one or more reference image blocks to provide temporal prediction.

[0170] In at least one embodiment, the prediction processing unit 10121 may select one of a plurality of coding results generated by the intra-frame prediction unit 101212 and the inter-frame prediction unit 101213 based on a mode selection method such as a cost function. In at least one embodiment, the mode selection method may be a rate-distortion optimization (RDO) process. The prediction processing unit 10121 determines the selected coding result and provides the prediction block corresponding to the selected coding result to the first adder 10122 to generate a residual block, and to the second adder 10125 to reconstruct the coded block unit. In at least one embodiment, the prediction processing unit 10121 may also provide syntax elements such as motion vectors, intra-frame mode indicators, segmentation information, and other syntax information to the entropy coding unit 10128.

[0171] In at least one embodiment, the intra-prediction unit 101212 can perform intra-prediction on the current block unit. In at least one embodiment, the intra-prediction unit 101212 can determine an intra-prediction mode pointing to reconstructed samples adjacent to the current block unit for encoding the current block unit. In at least one embodiment, the intra-prediction unit 101212 can encode the current block unit using various intra-prediction modes, and the intra-prediction unit 101212 or the prediction processing unit 10121 can select an appropriate intra-prediction mode from a test mode. In at least one embodiment, the intra-prediction unit 101212 can use a cross-component prediction mode to encode the current block unit to predict one of the two chrominance components of the current block unit based on the luma component of the current block unit. Additionally, the intra-prediction unit 101212 can predict the first of the two chrominance components of the current block unit based on the other of the two chrominance components of the current block unit.

[0172] In at least one embodiment, as described above, the inter-frame prediction unit 101213 may perform inter-frame prediction on the current block unit as an alternative to intra-frame prediction performed by the intra-frame prediction unit 101212. The inter-frame prediction unit 101213 may perform motion estimation to estimate the motion of the current block unit to generate a motion vector. The motion vector may indicate the displacement of the current block unit within the current image block relative to a reference block unit within a reference image block. In at least one embodiment, the inter-frame prediction unit 101213 receives at least one reference image block stored in the decoded image buffer 10127 and estimates motion based on the received reference image block to generate a motion vector.

[0173] In at least one embodiment, the first adder 10122 generates a residual block by subtracting a prediction block determined by the prediction processing unit 10121 from the original current block unit. The first adder 10122 represents one or more components performing the subtraction operation.

[0174] In at least one embodiment, the transform / quantization unit 10123 applies a transform to the residual block to generate residual transform coefficients, and then quantizes the residual transform coefficients to further reduce the bit rate. In at least one embodiment, the transform can be a DCT, DST, AMT, MDNSST, HyGT, signal correlation transform, KLT, wavelet transform, integer transform, subband transform, or a conceptually similar transform. In at least one embodiment, the transform can convert residual information from the pixel value domain to the transform domain, such as the frequency domain. In at least one embodiment, the quantization level can be modified by adjusting the quantization parameters. In at least one embodiment, the transform / quantization unit 10123 can scan a matrix including the quantized transform coefficients. Alternatively, the entropy coding unit 10128 can perform the scan.

[0175] In at least one embodiment, the entropy coding unit 10128 may receive multiple syntax elements, including quantization parameters, transform data, motion vectors, intra-frame modes, segmentation information, and other syntax information, from the prediction processing unit 10121 and the transform / quantization unit 10123, and encode the syntax elements into a bitstream. In at least one embodiment, the entropy coding unit 10128 performs entropy coding on the quantized transform coefficients. In at least one embodiment, the entropy coding unit 10128 may perform CAVLC, CABAC, SBAC, PIPE coding, or another entropy coding technique to generate an encoded bitstream. In at least one embodiment, the encoded bitstream may be sent to another device (e.g., the destination device 12) or archived for later transmission or retrieval.

[0176] In at least one embodiment, the inverse quantization / inverse transform unit 10124 may apply inverse quantization and inverse transform to reconstruct residual blocks in the pixel domain for later use as reference blocks. In at least one embodiment, the second adder 10125 adds the reconstructed residual blocks to a prediction block provided from the prediction processing unit 10121 to produce a reconstructed block for storage in the decoded image buffer 10127.

[0177] In at least one embodiment, the filtering unit 10126 may include a deblocking filter, a SAO filter, a bilateral filter, and / or an ALF to remove blocky artifacts from the reconstructed block. In addition to the deblocking filter, SAO filter, bilateral filter, and ALF, other filters (in-loop or post-loop) may also be used. Such filters are not shown for simplicity, but the output of the second adder 10125 may be filtered if needed.

[0178] In at least one embodiment, the decoded image buffer 10127 may be a reference image memory that stores, for example, reference blocks for encoding video by the encoder module 1012 in intra-frame or inter-frame coding modes. The decoded image buffer 10127 may be formed of any of a variety of storage devices, such as DRAM including SDRAM, MRAM, RRAM, or other types of storage devices. In at least one embodiment, the decoded image buffer 10127 may be on-chip along with other components of the encoder module 1012, or off-chip relative to those components.

[0179] In at least one embodiment, the encoder module 1012 can perform the following: Figure 3 The example shown is a method for adjusting the mode list for intra-frame prediction. For example, Figure 3 The method can be used Figure 1 and Figure 10 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. Furthermore, Figure 3 The order of the boxes in this application is illustrative only and may be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0180] In block 31, the encoder module 1012 determines block units with block size in an image frame from video data.

[0181] In at least one embodiment, the video data may be video. The source device 11 may receive the video through the source module 111. The encoder module 1012 determines image frames from the video and segments the image frames to determine block units.

[0182] In at least one embodiment, the prediction processing unit 10121 of the source device 11 determines block units from the video via the segmentation unit 101211, and then the encoder module 1012 provides multiple segmentation instructions to the bitstream based on the segmentation results of the segmentation unit 101211. In at least one embodiment, the block size may include block height and block width.

[0183] In box 32, the intra-prediction unit 101212 determines a mode list including multiple intra-modes.

[0184] In at least one implementation, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes.

[0185] In box 33, the intra-prediction unit 101212 selects at least one of the intra-modes based on the block size.

[0186] In at least one embodiment, the intra-frame prediction unit 101212 can determine the selected intra-frame mode based on a comparison between the block size and a predetermined size. When the block size is greater than the predetermined size, the selected intra-frame mode can be at least one first selection mode. When the block size is less than the predetermined size, the selected intra-frame mode can be at least one second selection mode different from the at least one first selection mode.

[0187] In at least one embodiment, the intra-prediction unit 101212 can determine the selected intra-mode based on a comparison between the block width and the block height. When the block width is greater than the block height, the selected intra-mode can be at least one third selection mode. When the block width is shorter than the block height, the selected intra-mode can be at least one fourth selection mode different from the at least one third selection mode.

[0188] In box 34, the intra-prediction unit 101212 removes at least one of the selected intra-modes from the mode list to generate an adjusted list that includes each of the unselected intra-modes.

[0189] In at least one embodiment, when the intra-prediction unit 101212 removes all selected intra-modes from the mode list, the unselected intra-modes can be multiple remaining intra-modes in the mode list. In this embodiment, the intra-prediction unit 101212 can generate an adjusted list including the unselected intra-modes. In at least one embodiment, the intra-prediction unit 101212 can add multiple additional modes to the adjusted list based on block size. In at least one embodiment, the intra-prediction unit 101212 can set a second intra-prediction index for each of the unselected intra-modes and the additional modes.

[0190] In box 35, the intra-prediction unit 101212 generates multiple predictors for the block unit based on the adjusted list.

[0191] In at least one embodiment, a block unit may include multiple block components. In said embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 101212 may determine one of multiple predictors for each block element based on multiple neighboring blocks adjacent to the block unit, along a direction derived from an adjusted list for the block unit. In one embodiment, the direction may be derived from one of the unselected intra modes in the adjusted list. In another embodiment, the direction may be derived from one of the unselected intra modes and an additional mode in the adjusted list. In said embodiment, the encoder module 1012 predicts the block unit based on the predictors to generate multiple residual samples and provides a bitstream including multiple coefficients corresponding to the residual samples.

[0192] In at least one embodiment, the encoder module 1012 can perform the following: Figure 4 The example shown is a method for adjusting the mode list for intra-frame prediction. For example, Figure 4 The method can be used Figure 1 and Figure 10 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. Furthermore, Figure 4 The order of the boxes in this application is illustrative only and may be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0193] In block 41, the encoder module 1012 determines block units in an image frame from video data and determines a plurality of adjacent blocks adjacent to the block unit.

[0194] In at least one embodiment, the video data may be video. The source device 11 may receive the video through the source module 111. The encoder module 1012 determines image frames from the video and segments the image frames through the segmentation unit 101211 to determine block units. Then, based on the segmentation results of the segmentation unit 101211, the encoder module 1012 provides multiple segmentation instructions to the bitstream.

[0195] In at least one embodiment, the prediction processing unit 10121 of the source device 11 determines adjacent blocks that are adjacent to the block unit and included in at least one reference line. In at least one embodiment, the adjacent blocks can be reconstructed before the block unit is reconstructed, so the adjacent blocks can be multiple reference samples for reconstructing the block unit. In at least one embodiment, the block unit can be reconstructed before some adjacent blocks are reconstructed, so the intra-frame prediction unit 101212 can generate reference samples for the block unit for the unreconstructed adjacent blocks by filling them with reconstructed adjacent blocks.

[0196] In block 42, the intra-prediction unit 101212 determines a mode list including multiple intra-modes and determines prediction information for adjacent blocks.

[0197] In at least one embodiment, the intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, the intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes. Additionally, when the encoder module 1012 encodes video in HEVC or VTM, the number of directional modes can be 33 or 65.

[0198] In at least one embodiment, the prediction information for neighboring blocks may include multiple decoding modes for neighboring blocks. In one embodiment, when the decoding mode for a neighboring block is intra-prediction, the prediction information may further include multiple prediction modes for neighboring blocks. In at least one embodiment, the intra-prediction unit 101212 may determine multiple most probable modes (MPMs) for a block unit based on the prediction modes of neighboring blocks.

[0199] In at least one embodiment, the prediction information for neighboring blocks can be any information used to determine whether a neighboring block has been reconstructed. For example, the intra-prediction unit 101212 can directly receive multiple reconstructed components of neighboring blocks generated by the second adder 10125 to determine which neighboring block has been reconstructed. In one embodiment, when the intra-prediction unit 101212 does not receive a reconstructed component of a specific neighboring block, that specific neighboring block may not be used to generate multiple reference samples. In this embodiment, the intra-prediction unit 101212 can generate a specific one of the multiple reference samples corresponding to the specific neighboring block by filling with other neighboring blocks.

[0200] In block 43, the intra-prediction unit 101212 selects at least one of the intra-modes based on the prediction information of neighboring blocks.

[0201] In at least one embodiment, each directional pattern includes orientation. In at least one embodiment, the intra-frame prediction unit 101212 may compare the orientation of the MPM with the orientation of the directional pattern, and determine the selected intra-frame pattern based on the comparison between the orientation of the MPM and the orientation of the directional pattern. For example, if a specific directional pattern is far from the MPM, then the specific directional pattern may be one of the selected intra-frame patterns.

[0202] In at least one embodiment, the intra-prediction unit 101212 can determine which adjacent block has not yet been reconstructed during the reconstruction of the block unit. In this embodiment, the intra-prediction unit 101212 can further determine which intra-mode is guided from the block unit to the determined adjacent block. In at least one embodiment, the intra-prediction unit 101212 can set the determined intra-mode as a selected intra-mode.

[0203] In box 44, the intra-prediction unit 101212 removes at least one of the selected intra-modes from the mode list to generate an adjusted list that includes each of the unselected intra-modes.

[0204] In at least one embodiment, when the intra-prediction unit 101212 removes all selected intra-modes from the mode list, the remaining intra-modes in the mode list may be unselected intra-modes. In this embodiment, the intra-prediction unit 101212 may generate an adjusted list to include the unselected intra-modes. In at least one embodiment, the intra-prediction unit 101212 may add multiple additional modes to the adjusted list based on block size. In at least one embodiment, the intra-prediction unit 101212 may set a second intra-prediction index for each additional mode.

[0205] In box 45, the intra-prediction unit 101212 generates multiple predictors for the block unit based on an adjusted list.

[0206] In at least one embodiment, a block unit may include a plurality of block components. In said embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 101212 may determine one of the plurality of predictors for each block element based on a plurality of neighboring blocks adjacent to the block unit, along a direction derived from an adjusted list for the block unit. In one embodiment, the direction may be derived from one of the unselected intra modes in the adjusted list. In another embodiment, the direction may be derived from one of the unselected intra modes and an additional mode in an adjusted list derived according to the block size. In said embodiment, the encoder module 1012 predicts the block unit based on the plurality of predictors to generate a plurality of residual samples and provides a bitstream including a plurality of coefficients corresponding to the residual samples.

[0207] In at least one embodiment, the encoder module 1012 can perform the following: Figure 5 and Figure 7 The example shown is a multi-reference prediction method for intra-frame prediction. For example, Figure 5 and Figure 7 The method can be used Figure 1 and Figure 10 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. Additionally, for those using... Figure 1 and Figure 10 The configuration shown is used to execute Figure 5 The process and results of the Chinese method are related to the use of Figure 1 and Figure 2 The configuration shown is used to execute Figure 5 The process and results of the Chinese method are the same, and are specific to the use of... Figure 1 and Figure 10 The configuration shown is used to execute Figure 7 The process and results of the Chinese method are related to the use of Figure 1 and Figure 2 The configuration shown is used to execute Figure 7 The process and result of the method are the same. Furthermore, regarding the encoder module 1012... Figure 5 and Figure 7 The order of the boxes in this application is illustrative only and may be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0208] In at least one embodiment, the encoder module 1012 can perform the following: Figure 9A The example shown is a method for adjusting the mode list for intra-frame prediction. For example, Figure 9A The method can be used Figure 1 and Figure 10 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. Furthermore, Figure 9A The order of the boxes in this application is illustrative only and may be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0209] In block 911, the encoder module 1012 determines block units with block size in an image frame from the video data.

[0210] In at least one embodiment, the video data may be video. The source device 11 may receive the video through the source module 111. The encoder module 1012 determines image frames from the video and segments the image frames to determine block units.

[0211] In at least one embodiment, the prediction processing unit 10121 of the source device 11 determines block units from the video via the segmentation unit 101211, and then the encoder module 1012 provides multiple segmentation instructions to the bitstream based on the segmentation results of the segmentation unit 101211. In at least one embodiment, the block size may include block height and block width.

[0212] In box 912, the intra-prediction unit 101212 determines a mode list including multiple intra-modes.

[0213] In at least one implementation, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes.

[0214] In box 913, the intra-frame prediction unit 101212 determines multiple additional modes based on the block size.

[0215] In at least one embodiment, when the intra-prediction unit 101212 determines that the block size is greater than a predetermined size, the additional mode determined by the intra-prediction unit 101212 can be set to a plurality of first additional modes that are the same as the additional mode determined by the destination device 12. In at least one embodiment, when the intra-prediction unit 101212 determines that the block size is less than a predetermined size, the additional mode determined by the intra-prediction unit 101212 can be set to a plurality of second additional modes that are the same as the additional mode determined by the destination device 12. In this embodiment, each of the second additional modes may be different from the first additional mode. In at least one embodiment, when the intra-prediction unit 101212 determines that the block width is longer than the block height, the additional mode determined by the intra-prediction unit 101212 can be set to a plurality of third additional modes that are the same as the additional mode determined by the destination device 12. In at least one embodiment, when the intra-frame prediction unit 101212 determines that the size is less than a predetermined size, the additional mode determined by the intra-frame prediction unit 101212 can be set to a plurality of fourth additional modes that are the same as the additional mode determined by the destination device 12. In this embodiment, each of the fourth additional modes may be different from the third additional mode.

[0216] In at least one embodiment, the intra-prediction unit 101212 can divide the directional pattern into multiple intra-prediction regions. In at least one embodiment, the intra-prediction unit 101212 can determine an insertion region based on a comparison between a block size and a predetermined size, and generate an additional pattern based on the insertion region. In this embodiment, the insertion region determined by the intra-prediction unit 101212 is the same as the insertion region determined by the destination device 12. In at least one embodiment, referring to... Figure 8 When the block width is greater than the block height, a third addition pattern can be created in the first addition area 856. Conversely, when the block width is less than the block height, a fourth addition pattern can be created in the second addition area 851.

[0217] In box 914, the intra-prediction unit 101212 adds additional modes to the mode list to generate an adjusted list including each intra-mode.

[0218] In at least one embodiment, when an additional mode is added to the mode list, the intra-prediction unit 101212 may set a second intra-prediction index for each additional mode. In at least one embodiment, each intra-mode has a first intra-prediction index. In at least one embodiment, the intra-mode may include N non-directional modes with a first intra-prediction index set from 0 to N-1, and M directional modes with a first intra-prediction index set from N to (N-1)+M. In at least one embodiment, in a VTM where N equals 2 and M equals 65, the intra-mode may include two non-directional modes with a first intra-prediction index set to zero and one, and 65 directional modes with a first intra-prediction index set to 2 to 66.

[0219] In at least one implementation, when the number of additional modes is equal to K, the second intra-frame prediction index can be set from N+M to N+M+K. In one implementation, when in a VTM where M equals 65, the second intra-frame prediction index can be set from N+65 to N+K+64.

[0220] In box 915, the intra-prediction unit 101212 generates multiple predictors for the block unit based on an adjusted list.

[0221] In at least one embodiment, a block unit may include a plurality of block components. In this embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 101212 may determine one of the plurality of predictors for each block element based on a plurality of neighboring blocks adjacent to the block unit, along an orientation derived from an adjusted list for the block unit. In one embodiment, the orientation may be derived from one of an intra-mode and an additional mode in the adjusted list. In this embodiment, the encoder module 1012 predicts the block unit based on the plurality of predictors to generate a plurality of residual samples and provides a bitstream including a plurality of coefficients corresponding to the residual samples.

[0222] In at least one embodiment, the encoder module 1012 can perform the following: Figure 9B The example shown is a method for adjusting the mode list for intra-frame prediction. For example, Figure 9B The method can be used Figure 1 and Figure 10 The configuration shown is used to execute the methods described below, and various components of these diagrams are referenced when explaining the example methods. Furthermore, Figure 9BThe order of the boxes in this application is illustrative only and may be changed. Additional boxes may be added or fewer boxes may be used without departing from this application.

[0223] In block 921, the encoder module 1012 determines block units in an image frame from video data and determines a plurality of adjacent blocks adjacent to the block unit.

[0224] In at least one embodiment, the video data may be video. The source device 11 may receive the video through the source module 111. The encoder module 1012 determines image frames from the video and segments the image frames through the segmentation unit 101211 to determine block units. Then, based on the segmentation results of the segmentation unit 101211, the encoder module 1012 provides multiple segmentation instructions to the bitstream.

[0225] In at least one embodiment, the prediction processing unit 10121 of the source device 11 determines adjacent blocks that are adjacent to the block unit and included in at least one reference line. In at least one embodiment, the adjacent blocks can be reconstructed before the block unit is reconstructed, so the adjacent blocks can be multiple reference samples for reconstructing the block unit. In at least one embodiment, the block unit can be reconstructed before some adjacent blocks are reconstructed, so the intra-frame prediction unit 101212 can generate reference samples for the block unit for the unreconstructed adjacent blocks by filling them with reconstructed adjacent blocks.

[0226] In block 922, the intra-prediction unit 101212 determines a mode list including multiple intra-modes and determines prediction information for adjacent blocks.

[0227] In at least one implementation, multiple intra-frame modes in the mode list can be predefined in the destination device 12 and the source device 11. For example, intra-frame modes can be predefined as planar mode, DC mode, and multiple directional modes.

[0228] In at least one embodiment, the prediction information of neighboring blocks may include multiple decoding modes of neighboring blocks. In one embodiment, when the decoding mode of a neighboring block is intra-prediction, the prediction information may further include multiple prediction modes of neighboring blocks. In at least one embodiment, the intra-prediction unit 101212 may determine multiple most probable modes (MPMs) for the block unit based on the prediction modes of neighboring blocks.

[0229] In at least one embodiment, the prediction information for neighboring blocks can be any information used to determine whether a neighboring block has been reconstructed. For example, the intra-prediction unit 101212 can directly receive multiple reconstructed components of neighboring blocks generated by the second adder 10125. In one embodiment, when the intra-prediction unit 101212 does not receive a reconstructed component of a specific neighboring block, it can generate multiple reference samples without using that specific neighboring block. In this embodiment, the intra-prediction unit 101212 can generate one of the multiple reference samples corresponding to the specific neighboring block by padding with other neighboring blocks.

[0230] In block 923, the intra-frame prediction unit 101212 determines multiple additional modes based on prediction information from neighboring blocks.

[0231] In at least one embodiment, each of the intra-frame modes including the MPM and the orientation mode includes an orientation. In at least one embodiment, the intra-frame prediction unit 101212 may compare the orientation of the MPM with the orientation of the orientation mode. In at least one embodiment, the intra-frame prediction unit 101212 may determine an additional mode based on the comparison between the orientation of the MPM and the orientation of the orientation mode. In one embodiment, a new orientation mode that approximates the MPM mode can be created.

[0232] In at least one embodiment, the intra-prediction unit 101212 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 101212 can determine an additional mode based on a comparison between the orientation of the determined intra-mode and the orientation of a directional mode. In one embodiment, a new directional mode that moves away from the determined intra-mode can be created.

[0233] In at least one embodiment, the intra-prediction unit 101212 can divide the directional pattern into multiple intra-prediction regions. In at least one embodiment, the intra-prediction unit 101212 can determine an insertion region based on a comparison between the orientation of the MPMs and the orientation of the directional pattern, and generate an additional pattern based on the insertion region. In one embodiment, when a particular intra-prediction region includes most of the MPMs of the block unit, the insertion region can be set to include the particular intra-prediction region.

[0234] In at least one embodiment, the intra-prediction unit 101212 can determine which neighboring blocks have not yet been reconstructed and which intra-mode points from the block unit to the determined neighboring block. In this embodiment, the intra-prediction unit 101212 can also determine which intra-prediction regions include the determined intra-mode. In one embodiment, the inserted region may differ from the determined intra-prediction region. In another embodiment, the inserted region may be located away from the determined intra-prediction region.

[0235] In box 924, the intra-frame prediction unit 101212 adds additional modes to the mode list to generate an adjusted list including each intra-frame mode.

[0236] In at least one embodiment, when an additional mode is added to the mode list, the intra-prediction unit 101212 may set a second intra-prediction index for each additional mode. In at least one embodiment, each intra-mode has a first intra-prediction index. In at least one embodiment, the intra-mode may include N non-directional modes with first intra-prediction indices set from 0 to N-1, and M directional modes with first intra-prediction indices set from N to (N-1)+M. In at least one embodiment, in a VTM where N equals 2 and M equals 65, the intra-mode may include two non-directional modes with first intra-prediction indices set to zero and one, and 65 directional modes with first intra-prediction indices set to 2 to 66.

[0237] In at least one implementation, when the number of additional modes is equal to K, the second intra-frame prediction index can be set to N+M to N+M+K for the additional modes. In one implementation, when in a VTM where M equals 65, the second intra-frame prediction index can be set to N+65 to N+K+64.

[0238] In box 925, the intra-prediction unit 101212 generates multiple predictors for the block unit based on an adjusted list.

[0239] In at least one embodiment, a block unit may include a plurality of block components. In this embodiment, each block component may be a pixel component. In at least one embodiment, the intra-prediction unit 101212 may determine one of the plurality of predictors for each block element based on a plurality of neighboring blocks adjacent to the block unit, along an orientation derived from an adjusted list for the block unit. In one embodiment, the orientation may be derived from one of an intra-mode and an additional mode in the adjusted list. In this embodiment, the encoder module 1012 predicts the block unit based on the plurality of predictors to generate a plurality of residual samples and provides a bitstream including a plurality of coefficients corresponding to the residual samples.

[0240] It is evident from the foregoing that various techniques can be used to implement the concepts described in this application without departing from the scope of those concepts. Furthermore, since the concepts have been specifically described with reference to certain embodiments, those skilled in the art will recognize that changes in form and detail are possible without departing from those concepts. Thus, the described embodiments should be considered illustrative rather than restrictive in all respects. It should also be understood that this application is not limited to the specific embodiments described above, but many rearrangements, modifications, and substitutions are possible without departing from the scope of this application.

Claims

1. A method for encoding video data via an electronic device, characterized in that, The method includes: Based on the video data, a unit is determined from an image frame, the unit having a height and a width; Determine a list of modes comprising multiple intra-frame modes, wherein each of the multiple intra-frame modes has a first intra-frame prediction index; Based on the comparison between the block height and the block width, at least one of the plurality of intra-frame modes is selected from the mode list; Remove at least one of the selected intra-frame modes to generate an adjusted list that includes multiple unselected modes; Add several additional modes to the adjusted list; For each of the plurality of additional modes, a second intra-frame prediction index is determined; Determine a specific one of the plurality of unselected modes and the plurality of additional modes in the adjusted list to predict the block unit in the image frame; and A first intra-frame prediction indication is determined for the block unit, wherein the first intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices corresponding to a particular one of the plurality of unselected modes and the plurality of additional modes.

2. The method as described in claim 1, characterized in that, The method further includes: Determine a specific one of the plurality of unselected modes to predict the block unit in the image frame; and A second intra-frame prediction indication is determined for the block unit, wherein the second intra-frame prediction indication indicates one of the plurality of first intra-frame prediction indices corresponding to a particular one of the plurality of unselected modes.

3. The method as described in claim 1, characterized in that, The number of at least one intra-frame mode removed from the plurality of intra-frame modes is equal to the number of the plurality of additional modes.

4. The method as described in claim 1, characterized in that, When the plurality of intra-frame modes include N non-directional modes having a plurality of first intra-frame prediction indices set from 0 to N-1, and M directional modes having a plurality of first intra-frame prediction indices set from N to (N-1)+M, the plurality of second intra-frame prediction indices of the plurality of additional modes are set from N+M.

5. The method as described in claim 4, characterized in that, When the number of the M directional patterns is equal to 65 and the number of the plurality of additional patterns is equal to K, the plurality of second intra-frame prediction indices of the plurality of additional patterns are set from N+65 to N+(K+64).

6. The method as described in claim 1, characterized in that, The method further includes: The multiple intra-frame modes are divided into multiple intra-frame prediction regions; When the block width is greater than the block height, it is determined that at least one of the selected intra-frame modes is selected from the first of the multiple intra-frame prediction regions; and When the block height is greater than the block width, it is determined that at least one of the selected intra modes is selected from the second of the multiple intra prediction regions that is different from the first of the multiple intra prediction regions.

7. The method as described in claim 6, characterized in that, A first angle between a horizontal direction and each of the plurality of intra-modes in the first of the plurality of intra-prediction regions is equal to or less than 45 degrees, and a second angle between a vertical direction and each of the plurality of intra-modes in the second of the plurality of intra-prediction regions is equal to or less than 45 degrees.

8. A method for encoding video data via an electronic device, characterized in that, The method includes: Based on the video data, a unit is determined from an image frame, the unit having a height and a width; Determine a list of modes comprising multiple intra-frame modes, wherein each of the multiple intra-frame modes has a first intra-frame prediction index; Compare the block height and the block width; Based on the comparison between the block height and the block width, at least one of the plurality of intra-frame modes is selected from the mode list and a plurality of additional modes are added to an adjusted list generated from the mode list; For each of the plurality of additional modes, a second intra-frame prediction index is determined; Determine a prediction mode for the block unit to predict the block unit in the image frame; and Based on the comparison between the block height and the block width, it is determined whether the prediction mode is selected from the plurality of intra-modes to determine an intra-prediction indication, wherein the intra-prediction indication indicates one of the plurality of first intra-prediction indices and the plurality of second intra-prediction indices corresponding to a specific one of the plurality of unselected modes and the plurality of additional modes.

9. The method as described in claim 8, characterized in that, The method further includes: When the block width is different from the block height, at least one of the selected intra-frame modes is removed from the mode list to generate the adjusted list and the unselected modes are retained in the adjusted list, wherein the number of the intra-frame modes in the mode list is equal to the total number of the additional modes and the number of unselected modes; The intra-prediction indication used to indicate a prediction index indicates a specific one of the plurality of first intra-prediction indices and the plurality of second intra-prediction indices; and The prediction mode is indicated by a specific one of the first plurality of intra-frame prediction indices and the plurality of second intra-frame prediction indices.

10. The method as described in claim 9, characterized in that, The multiple intra-frame modes include N non-directional modes and M directional modes.

11. The method as described in claim 10, characterized in that, When the prediction index is the same as one of the plurality of first intra-frame prediction indices corresponding to one of the plurality of unselected modes, the specific one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices is greater than or equal to 0 and less than N+M; and when the prediction index is different from each of the plurality of first intra-frame prediction indices corresponding to the plurality of unselected modes, the specific one of the plurality of first intra-frame prediction indices and the plurality of second intra-frame prediction indices is greater than or equal to N+M.

12. An electronic device for encoding video data, characterized in that, The electronic device includes: At least one processor; and A storage device coupled to the at least one processor and storing a plurality of instructions, which, when executed by the at least one processor, implement the method of encoding video data by an electronic device as described in any one of claims 1-11.