Apparatus and method for decoding video data

By adopting a method based on intra prediction mode and prediction model in video encoding, the problem that cross-component prediction mode in the prior art is difficult to accurately predict chroma blocks, and more accurate chroma block reconstruction and video encoding performance are achieved. Improvement.

CN119232927APending Publication Date: 2024-12-31SHARP KK
View PDF 0 Cites 4 Cited by

Patent Information

Application Number
CN202410834953.1
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-06-30
Filing Date
2024-06-26
Publication Date
2024-12-31

AI Technical Summary

Technical Problem

Existing cross-component prediction modes are difficult to accurately predict all chroma samples in chroma blocks in video encoding, resulting in encoders and decoders requiring different types of model refinement patterns to achieve accurate and efficient prediction and reconstruction.

Method used

Using a method based on intra prediction mode and prediction model, by receiving video data, determining block units, and selecting intra prediction mode from multiple intra default modes, generating a cross component prediction CCP merge list, and selecting appropriate CCP merge candidates The prediction model of the prediction model is weighted to generate prediction blocks, and then reconstruct the block units.

Benefits of technology

It improves the accuracy and efficiency of chroma block prediction, enables more precise reconstruction of block units, and enhances the performance of video encoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119232927A_ABST
    Figure CN119232927A_ABST
Patent Text Reader

Abstract

A method in which an electronic device decodes video data is provided. The method receives video data and determines a block unit from a current frame contained in the video data. The method also determines an intra prediction mode from a plurality of intra default modes, determines a cross component prediction (CCP) merge list of block units comprising a plurality of CCP merge candidates; and selecting one of the CCP merge candidates for the block unit to determine a prediction model of the selected CCP merge candidate. Then, the method predicts the block unit using the prediction model of the selected CCP merge candidate to generate a first prediction block, predicts the block unit based on the intra prediction mode to generate a second prediction block, and reconstructs the block unit based on the first prediction block and the second prediction block.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims the benefit and priority of U.S. Provisional Application Serial No. 63 / 524,340, filed on June 30, 2023, entitled “Proposed Refinement Method for Cross-Component Prediction”. The contents of that application are hereby fully incorporated by reference into this application. Technical Field

[0002] The present application relates generally to video coding, and more particularly to techniques for predicting block units based on prediction models and intra-prediction modes. Background Art

[0003] The cross-component prediction (CCP) mode is a chroma coding tool for video coding, in which an encoder and / or a decoder can use a prediction model to predict a chroma block of a current block based on a luminance block of the current block.

[0004] In addition, the encoder and / or decoder may derive a prediction model for the chroma block based on other prediction models of other blocks reconstructed before reconstructing the current block. However, the prediction models of the other blocks are not derived based on a plurality of adjacent samples adjacent to the current block. Therefore, the prediction model for the chroma block derived based on the prediction models of the other blocks may not be sufficient to predict all of the plurality of chroma samples in the chroma block.

[0005] Therefore, the encoder and / or decoder may require different types of model refinement modes in order to be able to accurately and efficiently predict and / or reconstruct the chrominance blocks of the block unit. Summary of the invention

[0006] The present application relates to a block unit prediction device and method based on an intra-frame prediction mode and a prediction model.

[0007] In a first aspect of the present application, a method for decoding video data and an electronic device for performing the method are provided. The method includes: receiving video data; determining a block unit from a current frame contained in the video data; determining an intra-frame prediction mode from multiple intra-frame default modes; determining a cross-component prediction CCP merge list of the block unit, the CCP merge list including multiple CCP merge candidates; selecting a CCP merge candidate from the multiple CCP merge candidates for the block unit to determine a prediction model of the selected CCP merge candidate from the multiple CCP merge candidates; predicting the block unit using the prediction model of the selected CCP merge candidate from the multiple CCP merge candidates to generate a first prediction block; predicting the block unit based on the intra-frame prediction mode to generate a second prediction block; and reconstructing the block unit based on the first prediction block and the second prediction block.

[0008] An implementation of the first aspect of the present application further includes performing a weighted combination of the first prediction block and the second prediction block to generate a prediction block, wherein the block unit is also reconstructed based on the prediction block.

[0009] In another implementation of the first aspect of the present application, each of the multiple CCP merge candidates of the block unit has a candidate model; and the candidate model of the CCP merge candidate selected from the multiple CCP merge candidates is the prediction model, and the prediction model is used to predict the block unit to generate the first prediction block.

[0010] In another implementation manner of the first aspect of the present application, the multiple CCP merge candidates of the block unit are selected from a plurality of CCP predefined candidates including a plurality of block vector-based CCP merge candidates.

[0011] In another implementation of the first aspect of the present application, the multiple CCP merge candidates of the block unit are selected from multiple CCP predefined candidates; and the multiple CCP predefined candidates include at least one of multiple spatially adjacent CCP merge candidates, multiple spatially non-adjacent CCP merge candidates, multiple history-based CCP merge candidates, multiple default CCP merge candidates, or multiple temporal CCP merge candidates.

[0012] In another implementation of the first aspect of the present application, the prediction model of the CCP merge candidate selected from the multiple CCP merge candidates includes multiple model coefficients, and the multiple model coefficients are used to measure the reference block corresponding to the CCP merge candidate selected from the multiple CCP merge candidates; and the block unit is predicted using the prediction model of the CCP merge candidate selected from the multiple CCP merge candidates based on the multiple model coefficients to generate the first prediction block.

[0013] In another implementation of the first aspect of the present application, the multiple intra-frame default modes include a Planar mode, a DC mode, and multiple intra-frame angle modes.

[0014] In another implementation manner of the first aspect of the present application, the intra-frame prediction mode of the block unit is a predefined one of the Planar mode, the DC mode, and the multiple intra-frame angle modes.

[0015] In another implementation of the first aspect of the present application, the intra-frame prediction mode of the block unit is determined from the multiple intra-frame angle modes based on the DIMD mode derived from the intra-frame mode at the decoder side. BRIEF DESCRIPTION OF THE DRAWINGS

[0016] Various aspects of the present exemplary disclosure are best understood from the following detailed description when read in conjunction with the accompanying drawings. For clarity of discussion, various features are not drawn to scale and the sizes of the various features may be arbitrarily increased or reduced.

[0017] Figure 1 Illustrated is a block diagram of a system having a first electronic device and a second electronic device for encoding and decoding video data according to one or more example embodiments of the present application.

[0018] Figure 2 The present invention is shown in accordance with one or more example embodiments of the present application. Figure 1 A block diagram of a decoder module of a second electronic device is shown.

[0019] Figure 3 Shown is a flowchart of a method / process for decoding and / or encoding video data by an electronic device according to one or more example embodiments of the present application.

[0020] Figure 4 Shown is a flowchart of a method / process for decoding and / or encoding video data by an electronic device according to one or more example embodiments of the present application.

[0021] Figure 5 The present invention is shown in accordance with one or more example embodiments of the present invention. Figure 1 A block diagram of an encoder module of a first electronic device is shown. DETAILED DESCRIPTION

[0022] The following application contains specific information related to the embodiments in this application. The accompanying drawings and corresponding detailed disclosures are for example implementations. However, the application is not limited to these example embodiments. Other variations and embodiments of the application will occur to those skilled in the art.

[0023] Unless otherwise indicated, identical or corresponding parts in the drawings may be indicated by identical or corresponding reference numerals.The drawings and illustrations in the present application are generally not drawn to scale and are not intended to correspond to actual relative sizes.

[0024] For the purpose of consistency and ease of understanding, similar features may be labeled with the same numbers in the drawings (although not so labeled in some examples). However, the features in different embodiments may differ in other aspects and should not be narrowly limited to what is shown in the drawings.

[0025] The phrases "in some embodiments" or "in some embodiments" used herein may each refer to one or more identical or different embodiments. The term "coupled" is defined as connected, whether directly or indirectly through intermediate components, and is not necessarily limited to physical connections. The term "comprising" means "including but not necessarily limited to" and represents an open inclusion or member in a disclosed combination, group, series, and equivalents. The expression "at least one of A, B, and C" or "at least one of the following: A, B, and C" means "only A, or only B, or only C, or any combination of A, B, and C".

[0026] For the purpose of explanation and non-limitation, specific details such as functional entities, technologies, protocols, standards, etc. are set forth to provide an understanding of the described technology. Detailed descriptions of well-known methods, technologies, systems, architectures, etc. are omitted to avoid making the present application unclear with unnecessary details.

[0027] Those skilled in the art will recognize that any coding function or algorithm of the present application can be implemented by hardware, software, or a combination of software and hardware. The disclosed functions can correspond to modules, which can be software, hardware, firmware, or any combination thereof.

[0028] Software implementations may include programs with computer executable instructions stored on a computer readable medium (e.g., a memory or other type of storage device). For example, one or more microprocessors or general-purpose computers with communication processing capabilities may be programmed to execute these executable instructions and perform the disclosed functions or algorithms.

[0029] A microprocessor or general-purpose computer may be formed by an application-specific integrated circuit (ASIC), a programmable logic array, and / or using one or more digital signal processors (DSP). Although some of the disclosed embodiments are directed to software installed and executed on computer hardware, alternative exemplary embodiments implemented as a combination of firmware, hardware, or hardware and software are also fully within the scope of the present application. Computer-readable media include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electronic erasable programmable read-only memory (EEPROM), flash memory, compact disc read-only memory (CD-ROM), cassettes, tapes, disk storage, or any other equivalent medium capable of storing computer-readable instructions. Computer-readable media may be non-temporary computer-readable media.

[0030] Figure 1 Illustrated is a block diagram of a system having a first electronic device and a second electronic device for encoding and decoding video data according to one or more example embodiments of the present application.

[0031] The system 100 includes a first electronic device 110 , a second electronic device 120 , and a communication medium 130 .

[0032] The first electronic device 110 may be a source device, including any device configured to encode video data and transmit the encoded video data to the communication medium 130. The second electronic device 120 may be a target device, including any device configured to receive the encoded video data via the communication medium 130 and decode the encoded video data.

[0033] The first electronic device 110 may communicate with the second electronic device 120 by wire or wirelessly through the communication medium 130. The first electronic device 110 may include components such as a source module 112, an encoder module 114, and a first interface 116. The second electronic device 120 may include components such as a display module 122, a decoder module 124, and a second interface 126. The first electronic device 110 may be a video encoder, and the second electronic device 120 may be a video decoder.

[0034] The first electronic device 110 and / or the second electronic device 120 may be a mobile phone, a tablet computer, a desktop computer, a laptop computer or other electronic devices. Figure 1 One example of the first electronic device 110 and the second electronic device 120 is shown. The first electronic device 110 and the second electronic device 120 may include more or less components than shown, or have a different configuration of the respective components than shown.

[0035] The source module 112 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. The source module 112 may generate computer graphics-based data as the source video, or may generate a combination of live video, archived video, and computer-generated video as the source video. The video capture device may be a charge-coupled device (CCD) image sensor, a complementary metal-oxide-semiconductor (CMOS) image sensor, or a camera.

[0036] The encoder module 114 and the decoder module 124 can 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), systems-on-a-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 partially implemented in software, the device can store a program with computer executable instructions for the software in a suitable non-transitory computer-readable medium and use one or more processors to execute the computer executable instructions in hardware to perform the disclosed method. Each of the encoder module 114 and the decoder module 124 can be included in one or more encoders or decoders, any of which can be integrated as part of a combined encoder / decoder (CODEC) in the device.

[0037] The first interface 116 and the second interface 126 may utilize a custom protocol or comply with an existing standard or de facto standard, including, but not limited to, Ethernet, IEEE 802.11 or IEEE 802.15 series, Wireless USB, or telecommunication standards, including, but not limited to, Global System for Mobile Communications (GSM), Code-Division Multiple Access 2000 (CDMA2000), Time Division Synchronous Code Division Multiple Access (TD-SCDMA), Worldwide Interoperability for Microwave Access (WiMAX), Third Generation Partnership Project Long-Term Evolution (3GPP-LTE), or Time-Division LTE (TD-LTE). The first interface 116 and the second interface 126 may each include any device configured to send a compatible video bitstream via the communication medium 130 and receive a compatible video bitstream via the communication medium 130.

[0038] The first interface 116 and the second interface 126 may include computer system interfaces that enable compatible video bitstreams to be stored on a storage device or to be received from a storage device. For example, the first interface 116 and the second interface 126 may include support for Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Express (PCIe) bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, Inter-Integrated Circuit (I2C) protocols, or any other logical and physical structures that can be used to interconnect peer devices.

[0039] The display module 122 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, as well as other display technologies used in other embodiments. The display module 122 may include a high-definition display or an ultra-high-definition display.

[0040] Figure 2 The present invention is shown in accordance with one or more example embodiments of the present application. Figure 1 1 is a block diagram of a decoder module of a second electronic device shown in FIG. The decoder module 124 includes an entropy decoder (e.g., an entropy decoding unit 2241), a prediction processor (e.g., a prediction processing unit 2242), an inverse quantization / inverse transform processor (e.g., an inverse quantization / inverse transform unit 2243), an adder (e.g., an adder 2244), a filter (e.g., a filtering unit 2245), and a decoded picture buffer (e.g., a decoded picture buffer 2246). The prediction processing unit 2242 also includes an intra-frame prediction processor (e.g., an intra-frame prediction unit 22421) and an inter-frame prediction processor (e.g., an inter-frame prediction unit 22422). The decoder module 124 receives a bitstream, decodes the bitstream, and outputs a decoded video.

[0041] The entropy decoding unit 2241 may receive a bit stream including a plurality of syntax elements from the second interface 126, such as Figure 1 As shown, the bitstream is parsed to extract syntax elements from the bitstream. As part of the parsing operation, the entropy decoding unit 2241 may entropy decode the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra-frame modes, partition information, and / or other syntax information.

[0042] The entropy decoding unit 2241 may 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 quantized transform coefficients. The entropy decoding unit 2241 may provide the quantized transform coefficients, quantization parameters, and transform data to the inverse quantization / inverse transform unit 2243, and provide the motion vector, intra-frame mode, partition information, and other syntax information to the prediction processing unit 2242.

[0043] The prediction processing unit 2242 may receive syntax elements such as motion vectors, intra modes, partition information, and other syntax information from the entropy decoding unit 2241. The prediction processing unit 2242 may receive syntax elements including partition information and divide the video frame according to the partition information.

[0044] Each image frame may be divided into at least one image block according to the partition information, and the at least one image block may include a luminance block for reconstructing a plurality of luminance samples and at least one chrominance block for reconstructing a plurality of chrominance samples. The luminance block and the at least one chrominance block may be further divided to generate macroblocks, coding tree units (CTUs), coding blocks (CBs) and their subdivisions, and / or another equivalent coding unit.

[0045] During the decoding process, the prediction processing unit 2242 may receive prediction data including an intra mode or motion vector for a current image block of a particular one of the video frames. The current image block may be a luminance block or one of a plurality of chrominance blocks in the particular image frame.

[0046] The intra prediction unit 22421 may perform intra prediction encoding of the current block unit relative to one or more neighboring blocks in the same frame as the current block unit based on syntax elements related to the intra mode to generate a prediction block. The intra mode may specify the position of a reference sample selected from neighboring blocks within the current frame. When the prediction processing unit 2242 reconstructs the chrominance component, the intra prediction unit 22421 may reconstruct the multiple chrominance components of the current block unit based on the multiple luminance components of the current block unit.

[0047] When the prediction processing unit 2242 reconstructs multiple luminance components of the current block, the intra prediction unit 22421 may reconstruct multiple chrominance components of the current block unit based on the multiple luminance components of the current block unit.

[0048] The inter-frame prediction unit 22422 can perform inter-frame prediction coding of the current block unit relative to one or more blocks in one or more reference image blocks based on the syntax elements related to the motion vector to generate a prediction block. The motion vector can indicate the displacement of the current block unit within the current image block relative to the reference block unit within the reference image block. The reference block unit is a block determined to be closely matched to the current block unit. The inter-frame prediction unit 22422 can receive the reference image block stored in the decoded picture buffer 2246, and reconstruct the current block unit based on the received reference image block.

[0049] The inverse quantization / inverse transform unit 2243 may apply inverse quantization and inverse transform to reconstruct the residual block in the pixel domain. The inverse quantization / inverse transform unit 2243 may apply inverse quantization to the residual quantized transform coefficients to generate residual transform coefficients, and then apply inverse transform to the residual transform coefficients to generate a residual block in the pixel domain.

[0050] An inverse transform may be applied in reverse through a transform process such as a discrete cosine transform (DCT), discrete sine transform (DST), adaptive multiple transform (AMT), mode-dependent non-separable secondary transform (MDNSST), Hypercube-Givens transform (HyGT), signal-dependent transform, Karhunen-Loéve transform (KLT), wavelet transform, integer transform, subband transform, or a conceptually similar transform. An inverse transform may convert residual information from a transform domain such as the frequency domain back to the pixel domain. The degree of inverse quantization may be modified by adjusting a quantization parameter.

[0051] The adder 2244 adds the reconstructed residual block and the prediction block provided from the prediction processing unit 2242 to generate a reconstructed block.

[0052] The filtering unit 2245 may include a deblocking filter, a sample adaptive offset (SAO) filter, a bilateral filter, and / or an adaptive loop filter (ALF) to remove block artifacts from the reconstructed block. In addition to the deblocking filter, the SAO filter, the bilateral filter, and the ALF, additional filters (in-loop or post-loop) may also be used. For the sake of brevity, such filters are not explicitly shown, but the output of the adder 2244 may be filtered. After the filtering unit 2245 performs filtering processing on the reconstructed block of a particular image frame, the filtering unit 2245 may output the decoded video to the display module 122 or other video receiving units.

[0053] The decoded picture buffer 2246 may be a reference picture storage for storing reference blocks for use by the prediction processing unit 2242 when decoding the bitstream (in inter-frame coding mode). The decoded picture buffer 2246 may be formed by any of a variety of storage devices, such as dynamic random-access memory (DRAM), including synchronous DRAM resistive RAM (SDRAM), magneto-resistive RAM (MRAM), resistive RAM resistive RAM (RRAM), or other types of storage devices. The decoded picture buffer 2246 may be on-chip with other components of the decoder module 124 or off-chip relative to those components.

[0054] Figure 3 Shown is a flow chart of a method / process 300 of an electronic device decoding and / or encoding video data implemented in accordance with one or more exemplary embodiments of the present invention. The method / process 300 is an exemplary embodiment, as there may be a variety of mechanisms to perform decoding of video data.

[0055] The method / process 300 may be performed using Figure 1 and Figure 2 The method / process 300 is performed by an electronic device of the configuration shown in FIG. 1 , wherein the method / process 300 may be described with reference to the various elements in these figures. Figure 3 Each block shown in the figure may represent one or more processes, methods, or subroutines performed by the electronic device.

[0056] Figure 3The order in which the boxes appear in the figure is for illustration only and should not be interpreted as limiting the scope of the present application, and therefore may be different from the order shown. Additional boxes may be added or fewer boxes may be used without departing from the scope of the present application.

[0057] At block 310, the method / process 300 may receive a decoder module 124 (e.g., Figure 2 The video data received by the decoder module 124 may include a bit stream.

[0058] refer to Figure 1 and Figure 2 The second electronic device 120 may receive a bitstream from an encoder (eg, the first electronic device 110 (or other video provider)) through the second interface 126. The second interface 126 may provide the bitstream to the decoder module 124.

[0059] At block 320 , the decoder module 124 may determine a block unit from a current frame included in the video data.

[0060] refer to Figure 1 and Figure 2 , when the video data received by the decoder module 124 is a bitstream, the decoder module 124 may determine the image frames included in the bitstream. The current frame may be one of a plurality of image frames determined according to the code stream. The decoder module 124 may further divide the current frame according to the partition indication in the bitstream to determine the block unit. For example, the decoder module 124 may divide the current frame to generate a plurality of CTUs, and may further divide the current CTU contained in the CTU according to the partition indication (e.g., based on any video coding standard) to generate a plurality of partition blocks and determine the block unit from the partition blocks. The size of the block unit may be Wb×Hb. In some embodiments, each of Wb and Hb may be a positive integer (e.g., 4, 8, etc.), which may be equal to each other or different from each other.

[0061] At block 330, the decoder module 124 may determine a plurality of cross component prediction (CCP) merge candidates for the block unit from among the plurality of CCP predefined candidates. The CCP merge candidates for the block unit may be included in a CCP merge list for the block unit.

[0062] Each CCP merge candidate of a block unit may correspond to one of a plurality of CCP candidate blocks of the block unit, and each CCP candidate block may have a corresponding one of a plurality of CCP candidate models for predicting and / or reconstructing the corresponding CCP candidate block. Therefore, each CCP merge candidate of a block unit may have a corresponding one CCP candidate model. In some embodiments, the CCP predefined candidates may include at least one of a plurality of spatially adjacent CCP merge candidates, a plurality of spatially non-adjacent CCP merge candidates, a plurality of history-based CCP merge candidates, a plurality of temporal CCP merge candidates, or a plurality of default CCP merge candidates. In some other implementations, the CCP predefined candidates may include at least one of spatially adjacent CCP merge candidates, spatially non-adjacent CCP merge candidates, history-based CCP merge candidates, temporal CCP merge candidates, a plurality of block vector-based CCP merge candidates, or a default CCP merge candidate. Additional candidate types may be added or fewer candidate types may be used without departing from the scope of the present application. When one of multiple CCP reference blocks determined based on one of the CCP predefined candidates is predicted using one of multiple cross-component model modes, one of the multiple CCP reference blocks can be selected as one of the CCP candidate blocks, and the CCP prediction model of one of the multiple CCP reference blocks can be selected to be included in the CCP candidate model of the block unit to generate one of the CCP merge candidates in the CCP merge list.

[0063] The CCP candidate model of the block unit may be a CCP prediction model for predicting and / or reconstructing a portion of a CCP reference block determined based on a CCP predefined candidate. The CCP prediction model may be determined using a cross-component model mode. The cross-component model mode may include at least one of a plurality of cross-component linear models (CCLM) prediction modes, a plurality of convolutional cross-component models (CCCM) prediction modes, and a plurality of gradient linear models (GLM) prediction modes. The CCLM prediction mode may also include a plurality of single linear models (SLM) prediction modes and a plurality of multi-model linear models (MMLM) prediction modes. The CCCM prediction mode may also include a plurality of gradient and location CCCM (GL-CCCM) prediction modes, a plurality of non-down-sampled CCCM (NS-CCCM) prediction modes, and a plurality of multi-down-sampled filters CCCM (MDF-CCCM) prediction modes. The GLM prediction mode may also include multiple luma samples and a GLM (L-GLM) prediction mode.

[0064] The spatially adjacent CCP merge candidate may indicate a plurality of spatially adjacent CCP candidate blocks. Each spatially adjacent CCP candidate block may include at least one of a plurality of spatially adjacent CCP candidate samples. The spatially adjacent CCP candidate samples may be located at one of a plurality of spatially adjacent CCP candidate positions, respectively. When the upper left corner of the block unit is located at the upper left corner position (x, y), the spatially adjacent CCP candidate positions may include (x+Wb-1, y-1), (x-1, y+Hb-1), (x+Wb, y-1), (x-1, y+Hb) and (x-1, y-1). When one of the spatially adjacent CCP candidate blocks is predicted using one of the cross-component model modes based on the CCP prediction model, one of the spatially adjacent CCP candidate blocks may be selected as one of the CCP candidate blocks. In addition, the CCP prediction model of one of the spatially adjacent CCP candidate blocks may be selected to be incorporated into the CCP candidate model of the block unit to generate a CCP merge candidate in the CCP merge list.

[0065] The spatial non-adjacent CCP merge candidate may indicate a plurality of spatial non-adjacent CCP candidate blocks. Each spatial non-adjacent CCP candidate block may include at least one of a plurality of spatial non-adjacent CCP candidate samples. The spatial non-adjacent CCP candidate samples may be located at one of a plurality of spatial non-adjacent CCP candidate positions, respectively. The spatial non-adjacent CCP candidate position may include at least one of a plurality of spatial non-adjacent positions in a merge mode of a video coding standard. When one of the spatial non-adjacent CCP candidate blocks is predicted using one of the cross-component model modes based on a CCP prediction model, one of the spatial non-adjacent CCP candidate blocks may be selected as one of the CCP candidate blocks. In addition, the CCP prediction model of one of the spatial non-adjacent CCP candidate blocks may be selected to be included in the CCP candidate model of the block unit to generate a CCP merge candidate in the CCP merge list.

[0066] Multiple previous blocks reconstructed before reconstructing the block unit can be reconstructed based on multiple reconstruction schemes. When reconstructing one of the previous blocks using one of the cross-component model modes based on the CCP prediction model, the CCP prediction model of one of the previous blocks can be stored in the CCP model table in a first-in-first-out (FIFO) manner. The size of the CCP model table can be equal to Nt. In some embodiments, the number Nt can be a positive integer, such as 6 or 12. In some embodiments, the CCP model table can be reset at the beginning of each CTU row. When reconstructing the block unit, the CCP prediction model stored in the CCP model table can be selected to be included in the CCP candidate model of the block unit to generate a CCP merge candidate in the CCP merge list.

[0067] The temporal CCP merge candidate may indicate a plurality of temporal CCP candidate blocks. Each temporal CCP candidate block may include at least one of a plurality of temporal CCP candidate samples. The temporal CCP candidate samples may be located at one of a plurality of temporal CCP candidate positions, respectively. The temporal CCP candidate positions may include a plurality of predefined positions of reference pictures in a plurality of reference picture lists. The reference picture lists may include a first reference picture list L0 and a second reference picture list L1. In some embodiments, the temporal CCP candidate positions may include the same plurality of temporal positions in a merge mode of a video coding standard. When one of the temporal CCP candidate blocks is predicted using one of the cross-component model modes based on a CCP prediction model, one of the temporal CCP candidate blocks may be selected as one of the CCP candidate blocks. In addition, a CCP prediction model of one of the temporal CCP candidate blocks may be selected to be included in the CCP candidate model of the block unit to generate a CCP merge candidate in the CCP merge list. In some embodiments, the CCP prediction model of the temporal CCP candidate block corresponding to the first reference picture list L0 may be selected before the CCP prediction model of the temporal CCP candidate block corresponding to the second reference picture list L1 is selected. Therefore, the reference Figure 1 and Figure 2 After the decoder module 124 completes checking whether the temporal CCP candidate block corresponding to the first reference picture list L0 has a CCP prediction model, the decoder module 124 may start checking the temporal CCP candidate block corresponding to the second reference picture list L1.

[0068] The block vector-based CCP merge candidate may indicate multiple block vector-based CCP candidate blocks. Each block vector-based CCP candidate block may be indicated by one block candidate vector.

[0069] In some embodiments, when the luma samples of a block unit are reconstructed based on a luma block vector in an intra block copy (IBC) prediction mode of a video coding standard, the luma block vector may be used to derive a block candidate vector based on a scaling factor. The scaling factor may be determined based on a video format. In some embodiments, if the video format is YUV444, the scaling factor may be equal to 1. If the video format is YUV422, the scaling factor may also include a width scaling factor equal to 2 and a height scaling factor equal to 1. If the video format is YUV420, the scaling factor may be equal to 2. Therefore, the luma block vector of the block unit may be used to derive one of the CCP merge candidates based on the block vector.

[0070] In some embodiments, when reconstructing luma samples of a block unit based on at least one luma intra template matching prediction (IntraTMP) candidate block in an IntraTMP prediction mode of a video coding standard, at least one luma IntraTMP candidate block may be used to derive at least one luma IntraTMP block vector. In addition, at least one luma IntraTMP block vector may be used to derive at least one block candidate vector based on a scaling factor. Thus, at least one luma IntraTMP candidate block may be used to determine at least one block vector-based CCP merge candidate.

[0071] refer to Figure 1 and Figure 2 In some embodiments, the decoder module 124 may determine a first chroma template region of a block unit, and may further search for multiple chroma candidate blocks within a search range in the current frame. The decoder module 124 may further determine a chroma reference region for each chroma candidate block. The decoder module 124 may compare each chroma reference region of the chroma candidate block with the first chroma template region of the block unit. The size and shape of the chroma reference region of the chroma candidate block may be the same as the size and shape of the first chroma template region of the block unit.

[0072] The decoder module 124 may determine a plurality of template cost values ​​by comparing each chroma reference region of the chroma candidate block with the first chroma template region of the block unit. Each template cost value may be determined by calculating a difference between the block template region and the corresponding chroma reference region. The decoder module 124 may then select at least one chroma candidate block based on the template cost value, and may further determine at least one block vector-based CCP merge candidate based on the at least one selected chroma candidate block.

[0073] Since the first chroma template area and the chroma reference area are reconstructed before the reconstruction block unit, the decoder module 124 can directly receive multiple reconstruction results of the first chroma template area and the chroma reference area. The difference between the block template area and each chroma reference area can be calculated based on a mean square error (MSE) algorithm. In addition, the difference between the block template area and each chroma reference area can be calculated based on an absolute error and (Sum of Absolute Difference, SAD) algorithm. In some embodiments, the difference between the block template area and each chroma reference area can be calculated based on an absolute transform error and (Sum of Absolute Transformed Difference, SATD) algorithm. In some embodiments, the difference between the block template area and each chroma reference area can be calculated based on a mean-removed sum of absolute difference (MR-SAD) algorithm.

[0074] When one of the block vector-based CCP candidate blocks is predicted using one of the cross-component model modes based on the CCP prediction model, one of the block vector-based CCP candidate blocks can be selected as one of the CCP candidate blocks. In addition, the CCP prediction model of one of the block vector-based CCP candidate blocks can be selected to be included in the CCP candidate model of the block unit to generate a CCP merge candidate in the CCP merge list.

[0075] The number of CCP merge candidates may be equal to Nc. In some embodiments, the number Nc may be a positive integer, such as 6 or 12. When the decoder module 124 checks whether spatially adjacent CCP merge candidates, spatially non-adjacent CCP merge candidates, history-based CCP merge candidates, temporal CCP merge candidates, and block vector-based CCP merge candidates are allowed to be added to the CCP merge candidates of the block unit, the decoder module 124 may also check whether the number of added CCP merge candidates of the block unit is equal to the number Nc. When the number of added CCP merge candidates of the block unit is equal to the number Nc, the decoder module 124 may bypass the check and stop adding CCP predefined candidates to the CCP merge candidates.

[0076] However, in some embodiments, after the decoder module 124 completes checking whether the spatially adjacent CCP merge candidates, the spatially non-adjacent CCP merge candidates, the history-based CCP merge candidates, the temporal CCP merge candidates, and the block vector-based CCP merge candidates are allowed to be added to the CCP merge candidates of the block unit, the number of added CCP merge candidates of the block unit may still be less than the number Nc. Therefore, the decoder module 124 may add at least one default CCP merge candidate to the CCP merge candidates of the block unit. In some embodiments, each default CCP merge candidate may include a coefficient set. Each coefficient set may include a scaling coefficient and an offset coefficient. The scaling coefficient in each coefficient set may be selected from a plurality of scaling candidates, such as 0, 1, -1, 2, -2, 3, -3, 4, -4, 5, -5, or 6. The offset coefficient in each coefficient set may be selected from a plurality of offset candidates, such as 0, 1, -1, 2, -2, or 3. In some embodiments, when the CCP candidate block indicated by the first CCP merge candidate is reconstructed based on the SLM, the scaling candidate and the offset candidate may be derived based on the CCP candidate model of the first CCP merge candidate.

[0077] Reference again Figure 3 At block 340 , the decoder module 124 may select one of the plurality of CCP merge candidates to determine a prediction model for the selected CCP merge candidate.

[0078] refer to Figure 1 and Figure 2 In some embodiments, the decoder module 124 may determine the merge index from the bitstream. For example, the decoder module 124 may parse the merge index from the bitstream. The merge index may indicate one of the CCP merge candidates to determine a prediction model for the selected CCP merge candidate. Since each CCP candidate block corresponding to each CCP merge candidate has a corresponding CCP candidate model, the selected CCP merge candidate may use a specific CCP candidate model as a prediction model. Therefore, the prediction model may be inherited from a specific CCP candidate model used to predict a reference block corresponding to the selected CCP merge candidate and determined from the CCP candidate block.

[0079] In some embodiments, the decoder module 124 may determine the selected CCP merge candidate without parsing any index from the bitstream. For example, the decoder module 124 may determine the second chroma template area of ​​the block unit and determine the chroma reference area of ​​each CCP candidate block. Then, the decoder module 124 may determine multiple template cost values ​​by comparing each chroma reference area of ​​the CCP candidate block with the second chroma template area of ​​the block unit. Therefore, the decoder module 124 may determine the selected CCP merge candidate based on the template cost value, and further determine the CCP candidate model of the selected CCP merge candidate as the prediction model. It should be noted that the scheme for determining the selected CCP merge candidate may be changed without departing from the scope of the present application. The size and shape of the chroma reference area of ​​the CCP candidate block may be the same as the size and shape of the second chroma template area of ​​the block unit. In some implementations, the second chroma template area may be the same as the first chroma template area. In some other implementations, the second chroma template area may be different from the first chroma template area.

[0080] Reference again Figure 3 At block 350 , the decoder module 124 may predict the block unit using the prediction model of the selected CCP merge candidate to generate a predicted block.

[0081] In some embodiments, the block unit may inherit the prediction model of the reference block corresponding to the selected CCP merge candidate, which may result in the prediction model of the block unit being the same as the prediction model of the reference block. Figure 1 and Figure 2 , the decoder module 124 may predict the block unit using a prediction model of the block unit to generate a predicted block.

[0082] The luma samples of the block unit may be reconstructed before the chroma samples of the block unit. Therefore, the decoder model 124 may determine the reconstructed luma samples of the block unit, and may predict the chroma samples of the block unit using the prediction model of the block unit based on the reconstructed luma samples to generate a predicted block.

[0083] In some embodiments, when the prediction model of the reference block does not include any of the multiple model refinement modes, the prediction model of the block unit may not include the model refinement mode. In some embodiments, when the prediction model of the reference block includes one of the above-mentioned model refinement modes, the model refinement mode of the reference block may not be inherited by the block unit. Therefore, the prediction model of the block unit may not include any model refinement mode. In some embodiments, when the prediction model of the reference block includes one of the model refinement modes, the model refinement mode of the reference block may be inherited by the block unit. Therefore, the prediction model of the block unit may also include the model refinement mode of the reference block. In some embodiments, a refinement inheritance flag may be included in the bitstream to determine whether the model refinement mode of the reference block is inherited by the block unit when the prediction model of the reference block includes one of the model refinement modes.

[0084] In some other embodiments, the block unit may inherit the prediction model of the reference block, which may cause the prediction model of the reference block to become the inherited model of the block unit. The inherited model of the block unit may be further refined based on one of the model refinement modes to generate the prediction model of the block unit. Then, the decoder module 124 may predict the block unit using the prediction model of the block unit to generate a prediction block. In some other embodiments, when the prediction model of the reference block includes one of the model refinement modes, the inherited model of the block unit may include the model refinement mode of the reference block. In addition, the inherited model of the block unit may be further refined based on one of the model refinement modes to generate the prediction model of the block unit. In other words, the prediction model of the block unit may be generated after two refinements according to the model refinement mode.

[0085] The model refinement modes may include a CCP merge offset refinement mode, a CCP merge slope refinement mode, a CCP merge slope and offset refinement mode, and a CCP merge coefficient refinement mode.

[0086] In the CCP merged offset refinement mode, the decoder module 124 may directly add at least one offset value to the inherited model of the block unit to generate a prediction model for the block unit. For example, when the inherited model is InherChroma(i,j), the prediction model PredChroma(i,j) may be equal to InherChroma(i,j)+offset. In some embodiments, the prediction model PredChroma(i,j) may be used to derive a prediction value of a block sample at a sample position (i,j). At least one offset value may be derived based on a variety of schemes. It should be noted that the scheme for deriving the offset value may be changed without departing from the scope of the present application. When the inherited model InherChroma(i,j) includes only one cross-component model, such as one cross-component model generated by the SLM prediction mode in the CCLM prediction mode, at least one offset value may include only one offset value. When the inherited model InherChroma(i,j) includes multiple cross-component models, such as two cross-component models generated by the MMLM prediction mode in the CCLM prediction mode, at least one offset value may include multiple offset sets, such as two offset values. When the number of at least one offset value is greater than one, each offset value may be independently derived based on a partitioning scheme of the plurality of cross-component models.

[0087] In some embodiments, the decoder module 124 may determine a third chroma template area and a luma template area. The third chroma template area may be adjacent to the chroma block of the block unit, and the luma template area may be adjacent to the luma block of the block unit. The chroma block of the block unit may include the chroma sample of the block unit, and the luma block of the block unit may include the luma sample of the block unit. In some embodiments, the third chroma template area may be the same as at least one of the first chroma template area and the second chroma template area. In some other embodiments, the third chroma template area may be different from the first chroma template area and the second chroma template area.

[0088] The third chroma template area may include at least one of a left chroma area, an upper chroma area, and an upper left chroma area. The left chroma area may be a first area located on the left side of the block unit, the upper chroma area may be a second area located above the block unit, and the upper left chroma area may be a third area located on the upper left side of the block unit. The left chroma area, the upper chroma area, and the upper left chroma area may be reconstructed before reconstructing the block unit. In some embodiments, the size of the third chroma template area may be determined based on the size of the block unit. The width of the above-mentioned chroma area may be equal to the width of the block unit, and the height of the above-mentioned chroma area may be equal to the value L. The height of the left chroma area may be equal to the height of the block unit, and the width of the left chroma area may be equal to the value L. The width and height of the upper left chroma area may be equal to the value L. In some embodiments, the value L may be a positive integer, such as 1 or 2. The size of the luminance template area may be determined based on the size of the chroma template area and the scaling factor. The scaling factor may be determined based on the video format.

[0089] Since the third chroma template area and the luminance template area are reconstructed before the block unit reconstruction, the decoder module 124 can directly receive multiple reconstruction results of the third chroma template area and the luminance template area. Then, the decoder module 124 can predict the third chroma template area based on the reconstruction result of the luminance template area using the inheritance model InherChroma (i, j) to generate multiple prediction results of the third chroma template area. In addition, the decoder module 124 can compare the reconstruction result of the third chroma template area with the prediction result of the third chroma template area to generate multiple template difference values. The decoder module 124 can determine the offset value based on the template difference value. In some embodiments, the offset value can be equal to the average value At of the template difference value. In some embodiments, the offset value can be an integer generated by rounding the average value At of the template difference value.

[0090] In some other embodiments, the decoder module 124 may also determine a third chrominance template area and a luminance template area. In addition, an offset value may be selected from a plurality of offset candidates based on the third chrominance template area and the luminance template area. In some embodiments, the absolute value of the offset candidate may be equal to or less than the offset threshold To. Therefore, the offset candidate may be equal to -To, -To+1, -To+2, ..., -1, 0, 1, ..., To-1, and To. The offset threshold To may be a positive integer, such as 5. In some embodiments, the absolute values ​​of the plurality of differences between the offset candidate and the average value At of the template difference value may be equal to or less than the offset threshold To. Therefore, the offset candidate may be equal to Av-To, Av-To+1, Av-To+2, ..., -1, 0, 1, ..., Av+To-1, and Av+To.

[0091] The decoder module 124 may add each offset candidate to the inheritance model InherChroma(i, j) to generate a corresponding one of the multiple offset models respectively. Then, the decoder module 124 may predict the third chrominance template area based on the reconstruction result of the luminance template area using the offset model, thereby generating multiple prediction results of the third chrominance template area for each offset model. In addition, the decoder module 124 may generate multiple template cost values ​​by comparing the reconstruction result of the third chrominance template area with the prediction result of the third chrominance template area of ​​each offset model. Since each offset model can be used to generate a set of prediction results of the third chrominance template area, each offset model can be used to calculate the template cost value through the prediction results of the corresponding set of third chrominance template areas. The decoder module 124 may select an offset value from the offset candidate based on the template cost value. For example, when the minimum value of the template cost value is calculated based on a specific offset model generated by a specific offset candidate, the specific offset candidate may be set as the offset value.

[0092] In other embodiments, the decoder module 124 may receive the offset value directly from the bitstream. For example, in some embodiments, the encoder module 114 may derive the offset value and then encode the offset value into the bitstream. The encoder module 114 may directly predict the block unit using the inheritance model InherChroma (i, j), generate multiple chroma prediction results of the block unit, and then compare the chroma prediction results of the block unit with the original chroma samples of the block unit. The encoder module 114 may derive the offset value based on the comparison between the chroma prediction results of the block unit and the original chroma samples of the block unit, and then encode the offset value into the bitstream. In some embodiments, the offset value may be equal to the average value Ab of multiple block differences between the chroma prediction results of the block unit and the original chroma samples of the block unit. In some embodiments, the offset value may be an integer generated by rounding the average value Ab of the block difference values. In some other embodiments, the encoder module 114 may select the offset value from the offset candidates. The encoder module 114 may add each offset candidate to the inheritance model InherChroma (i, j) to generate a corresponding offset model respectively. The encoder module 114 may use an offset model to predict a chroma block of a block unit based on a reconstruction result of a luminance block of the block unit to generate multiple prediction results of the chroma block for each offset model. The encoder module 114 may generate multiple rate-distortion (RD) cost values ​​by comparing the prediction result of the chroma block of each offset model with the original chroma sample of the block unit. Therefore, the encoder module 114 may select an offset value from the offset candidates based on the RD cost value, and encode an offset index indicating the offset value into the bitstream of the decoder module 124. For example, when the minimum value of the RD cost value is calculated based on a specific offset model generated by a specific offset candidate, the specific offset candidate may be set as the offset value.

[0093] In the CCP merge slope refinement mode, the decoder module 124 may determine at least one adjustment value when the inheritance model InherChroma(i, j) of the block unit is generated by the CCLM prediction mode. For example, when the inheritance model InherChroma(i, j) is equal to (α·rec L )>>k+β, the prediction model can be equal to (α′·rec L )>>k+β′. The term rec L It can be the reconstructed luminance sample of the block unit. The coefficients α and β can be the linear model coefficients of the inherited model InherChroma(i, j), and k can be the shift value of the inherited model InherChroma(i, j). The coefficient α′ can be the linear model coefficient of the prediction model, which is equal to α+u, and the coefficient β′ can be another linear model coefficient of the prediction model, which is equal to β-u*y rThe value of u can be used as a slope adjustment parameter, y r The value of may be the average value of the reconstruction result of the brightness template area. When the inheritance model InherChroma(i, j) is generated by the SLM prediction mode in the CCLM prediction mode, the at least one adjustment value may include only one parameter u. When the inheritance model InherChroma(i, j) is generated by the MMLM prediction mode in the CCLM prediction mode, the at least one adjustment value may include multiple adjustment values, such as parameters u1 and u2. When the number of the at least one adjustment value is greater than one, each adjustment value may be independently derived based on the partitioning scheme of the MMLM prediction mode.

[0094] The parameter u can be selected from a plurality of adjustment candidates based on the third chromaticity template area and the luminance template area. In some embodiments, the absolute value of the adjustment candidate can be equal to or less than the adjustment threshold Ta, so the adjustment candidate can be equal to -Ta, -Ta+1, -Ta+2, ..., -1, 0, 1, ..., Ta-1, Ta, and the adjustment threshold Ta can be a positive integer, such as 5.

[0095] The decoder module 124 may add each adjustment candidate to the inheritance model InherChroma(i, j) to generate a corresponding one of the multiple adjustment models respectively. Then, the decoder module 124 may use the adjustment model to predict the third chromaticity template area based on the reconstruction result of the luminance template area, thereby generating multiple prediction results of the third chromaticity template area for each adjustment model. In addition, the decoder module 124 may generate multiple template cost values ​​by comparing the reconstruction result of the third chromaticity template area with the prediction result of the third chromaticity template area of ​​each adjustment model. Since each adjustment model can be used to generate a set of prediction results of the third chromaticity template area, each adjustment model can be used to calculate the template cost value through the prediction results of the corresponding set of third chromaticity template areas. The decoder module 124 may select parameter u from the adjustment candidate according to the template cost value. For example, when the minimum value of the template cost value is calculated based on a specific adjustment model generated by a specific adjustment candidate, the specific adjustment candidate may be set as parameter u.

[0096] In some other embodiments, the encoder module 114 may select at least one parameter u from the adjustment candidates. The encoder module 114 may add each adjustment candidate to the inheritance model InherChroma(i,j) to generate a corresponding adjustment model respectively. The encoder module 114 may predict the chrominance block of the block unit using the adjustment model based on the reconstruction result of the luminance block of the block unit to generate multiple prediction results of the chrominance block for each adjustment model. The encoder module 114 may generate multiple RD cost values ​​by comparing the prediction results of the chrominance block of each adjustment model with the original chrominance sample of the block unit. Therefore, the encoder module 114 may select at least one parameter u from the adjustment candidates based on the RD cost value, and encode at least one parameter index indicating at least one parameter u into the bitstream of the decoder module 124. For example, when the minimum value of the RD cost value is calculated based on a specific adjustment model generated by a specific adjustment candidate, the specific adjustment candidate may be set as parameter u.

[0097] In the CCP merge slope and offset refinement mode, in some embodiments, the decoder module 124 may first add at least one offset value using the CCP merge offset refinement mode, and then add at least one parameter u using the CCP merge slope refinement mode. In some embodiments, the decoder module 124 may first add at least one parameter u using the CCP merge slope refinement mode, and then add at least one offset value using the CCP merge offset refinement mode.

[0098] In the CCP combined coefficient refinement mode, each of the multiple refinement values ​​can be added to a corresponding one of the multiple model coefficients in the inheritance model InherChroma(i, j). For example, when the inheritance model InherChroma(i, j) includes 5 model coefficients C0, C1, C2, C3 and C4, the prediction model can also include 5 refinement values ​​R0, R1, R2, R3 and R4. Each of the 5 refinement values ​​R0, R1, R2, R3 and R4 can be added to a corresponding one of the 5 model coefficients C0, C1, C2, C3 and C4 to generate multiple refinement values ​​C0+R0, C1+R1, C2+R2, C3+R3 and C4+R4.

[0099] The decoder module 124 can directly receive the refinement value from the bitstream. For example, the encoder module 114 can derive the refinement value and then encode the refinement value into the bitstream. The encoder module 114 can derive the encoder model based on the reconstructed luminance result of the block unit and the original chrominance sample of the block unit. The cross-component model mode of the encoder model can be the same as the cross-component model mode of the inherited model InherChroma (i, j). For example, if the inherited model InherChroma (i, j) is generated by the SLM prediction mode, the encoder model can also be generated by the SLM prediction mode. Therefore, the linear model coefficients of the encoder model can be derived based on the difference minimization process. The difference minimization process can minimize the difference between the reconstructed chrominance result of the block unit and the original chrominance sample of the block unit. The difference minimization process can use the least mean square (LMS) algorithm to derive the model coefficients of the SLM prediction mode. The decoder module 124 can compare the model coefficients of the encoder model with the model coefficients of the inherited model InherChroma (i, j) to generate the refinement value. For example, when the inheritance model InherChroma(i,j) includes four model coefficients C0, C1, C2, and C3, the encoder model may also include four model coefficients E0, E1, E2, and E3. The refinement values ​​may be equal to E0-R0, E1-R1, E2-R2, and E3-R3, respectively. Therefore, the refinement values ​​may be derived by the encoder module 114 based on the reconstructed luminance results of the block unit and the original chrominance samples of the block unit, and then encoded into the bitstream.

[0100] The prediction model of the reference block may include multiple model coefficients of the reference block. Since the inheritance model of the block unit may be the same as the prediction model of the reference block, the inheritance model of the block unit may also include the model coefficients of the reference block. In some embodiments, when the inheritance model of the block unit is not further refined, the prediction model of the block unit that is the same as the prediction model of the reference block may also include the model coefficients of the reference block. Therefore, the decoder module 124 may use the prediction model of the reference block to predict the block unit to generate a prediction block based on the model coefficients of the reference block. In some embodiments, when the inheritance model of the block unit is further refined to generate the prediction model of the block unit, a prediction model of the block unit that is different from the prediction model of the reference block may be obtained based on the model coefficients of the reference block. Therefore, the decoder module 124 may use the prediction model of the block unit obtained based on the prediction model of the reference block to predict the block unit to generate a prediction block based on the model coefficients of the block unit obtained based on the model coefficients of the reference block.

[0101] refer to Figure 3 , at block 360 , the decoder module 124 may reconstruct the block unit based on the predicted block.

[0102] refer to Figure 1 and Figure 2, the decoder module 124 may reconstruct the block unit based on the prediction block. The decoder module 124 may determine multiple residual components of the block unit from the bitstream and add the residual components to the prediction block to reconstruct the block unit. The decoder module 124 may reconstruct all other block units in the image frame to reconstruct the image frame and video. Then, the method / process 300 may end.

[0103] Figure 4 Shown is a flow chart of a method / process 400 for decoding and / or encoding video data by an electronic device according to one or more example embodiments of the present application. The method / process 400 is an exemplary embodiment, as there may be a variety of mechanisms to perform decoding of video data.

[0104] The method / process 400 may be performed using Figure 1 and Figure 2 The method / process 400 is performed by an electronic device configured as shown in FIG. 4 , wherein the method / process 400 may be described with reference to the various elements in these figures. Figure 4 Each block shown in the may represent one or more processes, methods, or subroutines performed by the electronic device.

[0105] Figure 4 The order in which the boxes appear in the figure is for illustration only and should not be interpreted as limiting the scope of the present application, and therefore may be different from the order shown. Additional boxes may be added or fewer boxes may be used without departing from the scope of the present application.

[0106] At block 410, the method / process 400 may begin with the decoder module 124 receiving video data. The video data received by the decoder module 124 may include a bitstream.

[0107] refer to Figure 1 and Figure 2 The second electronic device 120 may receive a bitstream from an encoder (eg, the first electronic device 110 (or other video provider)) through the second interface 126. The second interface 126 may provide the bitstream to the decoder module 124.

[0108] At block 420 , the decoder module 124 may determine a block unit from a current frame included in the video data.

[0109] refer to Figure 1 and Figure 2, when the video data received by the decoder module 124 is a bitstream, the decoder module 124 can determine the image frames contained in the bitstream. The current frame may be one of the image frames determined according to the bitstream. The decoder module 124 may further divide the current frame according to the partition indication in the bitstream to determine the block unit. For example, the decoder module 124 may divide the current frame to generate a plurality of CTUs, and further divide the current CTU contained in the CTU to generate a plurality of partition blocks, and determine the block unit from the partition blocks according to the partition indication (e.g., based on any video coding standard). The size of the block unit may be Wb×Hb. In some embodiments, each of Wb and Hb may be a positive integer (e.g., 4, 8, etc.), which may be equal to each other or different from each other.

[0110] At block 430 , the decoder module 124 may determine an intra-prediction mode from a plurality of intra-default modes.

[0111] The intra-frame default mode may include a Planar mode, a DC mode, and a plurality of intra-frame angle modes. The number of intra-frame angle modes may be equal to the number Na. In some embodiments, the number Na may be determined according to a video coding standard. Therefore, the number Na may be a positive integer, such as 33 or 65.

[0112] In some embodiments, reference Figure 1 and Figure 2 , the decoder module 124 may select an intra prediction mode from an intra default mode based on the intra mode index. The intra mode index may be parsed from the bitstream. In some embodiments, the intra prediction mode may be a predefined mode in the intra default mode. Therefore, the decoder module 124 may determine a predefined mode in the Planar mode, the DC mode, and the intra angle mode without parsing the intra mode index from the bitstream. For example, the predefined mode in the intra default mode may be the Planar mode.

[0113] In some embodiments, a decoder-side intra mode derivation (DIMD) mode may be used to select an intra prediction mode from an intra angle mode of an intra default mode. The intra prediction mode selected using the DIMD mode may be derived by calculating a gradient histogram based on a plurality of chroma samples adjacent to a block unit and a plurality of luminance samples adjacent to a corresponding luminance block.

[0114] At block 440 , the decoder module 124 may determine a cross-component prediction (CCP) merge list for a block unit, the cross-component prediction (CCP) merge list including a plurality of CCP merge candidates.

[0115] refer to Figure 1 and Figure 2 , the decoder module 124 may determine multiple CCP merge candidates for a block unit from multiple CCP predefined candidates. Each CCP merge candidate of a block unit may correspond to one of multiple CCP candidate blocks of the block unit, and each CCP candidate block may have a corresponding one of multiple CCP candidate models for predicting and / or reconstructing the corresponding CCP candidate block. Therefore, each CCP merge candidate of a block unit may have a corresponding CCP candidate model. In some embodiments, the CCP predefined candidates may include at least one of multiple spatially adjacent CCP merge candidates, multiple spatially non-adjacent CCP merge candidates, multiple history-based CCP merge candidates, multiple temporal CCP merge candidates, or multiple default CCP merge candidates. In some other implementations, the CCP predefined candidates may include at least one of spatially adjacent CCP merge candidates, spatially non-adjacent CCP merge candidates, history-based CCP merge candidates, temporal CCP merge candidates, multiple block vector-based CCP merge candidates, or default CCP merge candidates. Additional candidate types may be added or fewer candidate types may be used without departing from the scope of the present application. The CCP predefined candidates in method / process 400 may be the same as the CCP predefined candidates in method / process 300 .

[0116] When one of the multiple cross-component model modes is used to predict one of the multiple CCP reference blocks determined based on one of the CCP predefined candidates, one of the CCP reference blocks can be selected as one of the CCP candidate blocks. In addition, the CCP prediction model of one of the CCP reference blocks can be selected to be included in the CCP candidate model of the block unit to generate one of the CCP merge candidates included in the CCP merge list. The selection of the CCP merge candidate from the CCP predefined candidates in the method / process 400 can be the same as in the method / process 300.

[0117] The CCP candidate model of the block unit can be a CCP prediction model for predicting and / or reconstructing a portion of the CCP reference block determined based on the CCP predefined candidate. The CCP prediction model can be determined by a cross-component model mode. The cross-component model mode can include at least one of a plurality of CCLM prediction modes, a plurality of CCCM prediction modes, and a plurality of GLM prediction modes. The CCLM prediction mode can also include a plurality of SLM prediction modes and a plurality of MMLM prediction modes. The CCCM prediction mode can also include a plurality of GL-CCCM prediction modes, a plurality of NS-CCCM prediction modes, and a plurality of MDF-CCCM prediction modes. The GLM prediction mode can also include a plurality of L-GLM prediction modes. The cross-component model mode in method / process 400 can be the same as the cross-component model mode in method / process 300.

[0118] refer to Figure 4At block 450 , the decoder module 124 may select a CCP merge candidate from the plurality of CCP merge candidates for the block unit to determine a prediction model for the selected CCP merge candidate.

[0119] refer to Figure 1 and Figure 2 , the decoder module 124 can determine the prediction model of the block unit in a plurality of determination schemes based on the CCP merge candidate of the block unit. When a CCP merge candidate is selected for the block unit, the CCP candidate model of the specific CCP candidate block corresponding to the selected CCP merge candidate can also be determined from the CCP candidate models. Specifically, the specific CCP candidate block corresponding to the selected CCP merge candidate can be a reference block predicted and / or reconstructed based on the prediction model.

[0120] In some embodiments, the decoder module 124 may determine the merge index from the bitstream. For example, the decoder module 124 may parse the merge index from the bitstream. The merge index may indicate one of the CCP merge candidates to determine the prediction model of the selected CCP merge candidate. Since each CCP candidate block corresponding to each CCP merge candidate has a corresponding CCP candidate model, the selected CCP merge candidate may use a specific CCP candidate model as a prediction model. Therefore, the prediction model may be inherited from a specific CCP candidate model used to predict a reference block corresponding to the selected CCP merge candidate.

[0121] In some embodiments, the decoder module 124 may determine the selected CCP merge candidate without parsing any index in the bitstream. For example, the decoder module 124 determines the first chroma template area of ​​the block unit and determines the chroma reference area of ​​each CCP candidate block. The decoder module 124 may then determine multiple template cost values ​​by comparing each chroma reference area of ​​the CCP candidate block with the first chroma template area of ​​the block unit. Therefore, the decoder module 124 may determine the selected CCP merge candidate based on the template cost value, and further determine the CCP candidate model of the selected CCP merge candidate as the prediction model. It should be noted that the scheme for determining the selected CCP merge candidate may be changed without departing from the scope of the present application. The size and shape of the chroma reference area of ​​the CCP candidate block may be the same as the size and shape of the first chroma template area of ​​the block unit.

[0122] Reference again Figure 4 , at block 460 , the decoder module 124 may predict the block unit using the prediction model of the selected CCP merge candidate to generate a first prediction block.

[0123] In some embodiments, the block unit may inherit the prediction model of the reference block corresponding to the selected CCP merge candidate, which may result in the prediction model of the block unit being the same as the prediction model of the reference block. Figure 1 and Figure 2 , the decoder module 124 may predict the block unit using the prediction model of the block unit to generate a first prediction block.

[0124] The luma samples of the block unit may be reconstructed before the chroma samples of the block unit. Therefore, the decoder model 124 may determine the reconstructed luma samples of the block unit and predict the chroma samples of the block unit based on the reconstructed luma samples using the prediction model of the block unit to generate a first prediction block.

[0125] In some embodiments, when the prediction model of the reference block does not include any of the multiple model refinement modes, the prediction model of the block unit may not include the model refinement mode. In some embodiments, when the prediction model of the reference block includes one of the model refinement modes, the model refinement mode of the reference block may not be inherited by the block unit. Therefore, the prediction model of the block unit may not include any model refinement mode. In some embodiments, when the prediction model of the reference block includes one of the model refinement modes, the model refinement mode of the reference block may be inherited by the block unit. Therefore, the prediction model of the block unit may also include the model refinement mode of the reference block. In some embodiments, a refinement inheritance flag may be included in the bitstream to determine whether the model refinement mode of the reference block is inherited by the block unit when the prediction model of the reference block includes one of the model refinement modes.

[0126] In some other embodiments, the block unit may inherit the prediction model of the reference block, which may cause the prediction model of the reference block to become the inherited model of the block unit. The inherited model of the block unit may be further refined based on one of the model refinement modes to generate the prediction model of the block unit. Then, the decoder module 124 may predict the block unit using the prediction model of the block unit to generate a prediction block. In some other embodiments, when the prediction model of the reference block includes one of the model refinement modes, the inherited model of the block unit may include the model refinement mode of the reference block. In addition, the inherited model of the block unit may be further refined based on one of the model refinement modes to generate the prediction model of the block unit. In other words, the prediction model of the block unit may be generated after two refinements according to the model refinement mode.

[0127] The model refinement modes may include a CCP merge offset refinement mode, a CCP merge slope refinement mode, a CCP merge slope and offset refinement mode, and a CCP merge coefficient refinement mode. The model refinement modes in method / process 400 may be the same as the model refinement modes in method / process 300.

[0128] The prediction model of the reference block may include multiple model coefficients of the reference block. Since the inheritance model of the block unit may be the same as the prediction model of the reference block, the inheritance model of the block unit may also include the model coefficients of the reference block. In some embodiments, when the inheritance model of the block unit is not further refined, the prediction model of the block unit that is the same as the prediction model of the reference block may also include the model coefficients of the reference block. Therefore, the decoder module 124 may predict the block unit using the prediction model of the reference block to generate a first prediction block based on the model coefficients of the reference block. In some embodiments, when the inheritance model of the block unit is further refined to generate the prediction model of the block unit, a prediction model of the block unit that is different from the prediction model of the reference block may be obtained based on the model coefficients of the reference block. Therefore, the decoder module 124 may predict the block unit using the prediction model of the block unit obtained based on the prediction model of the reference block to generate a first prediction block based on the model coefficients of the block unit obtained based on the model coefficients of the reference block.

[0129] Reference again Figure 4 At block 470 , the decoder module 124 may predict the block unit based on the intra prediction mode to generate a second prediction block.

[0130] refer to Figure 1 and Figure 2 In some embodiments, the decoder module 124 may use the intra prediction mode of the block unit to predict the block unit to generate the second prediction block. The intra prediction mode may be used to generate the second prediction block based on a plurality of reconstructed chrominance samples adjacent to the block unit.

[0131] In some other embodiments, the decoder module 124 may predict the block unit based on at least one chroma block vector to generate the second prediction mode.

[0132] In some embodiments, a chroma block vector may be determined in the derived block vector mode. In other words, when the luma samples of the block unit are reconstructed based on the luma block vector, the luma block vector may be scaled based on the scaling factor to generate the chroma block vector. The scaling factor may be determined based on the video format. For example, if the video format is YUV422, the scaling factor may also include a width scaling factor equal to 2 and a height scaling factor equal to 1. The decoder module 124 may then use the reconstructed chroma reference as the second prediction block based on the chroma block vector.

[0133] In some implementations, at least one chroma block vector may be determined using the intraTMP prediction mode. In other words, the decoder module 124 may determine the second chroma template area of ​​the block unit, and may further search for multiple chroma candidate blocks within the search range of the current frame. The decoder module 124 may also determine a chroma reference area for each chroma candidate block. The decoder module 124 may compare each chroma reference area of ​​the chroma candidate block with the second chroma template area of ​​the block unit. The size and shape of the chroma reference area of ​​the chroma candidate block may be the same as the size and shape of the second chroma template area of ​​the block unit. In some implementations, the second chroma template area may be the same as the first chroma template area. In some other implementations, the second chroma template area may be different from the first chroma template area. The decoder module 124 may select at least one chroma candidate block based on the comparison results of each chroma reference area with the second chroma template area, and generate a second prediction block based on the selected at least one chroma candidate block. When the number of at least one selected chroma candidate block is 1, the second prediction block is the same as the selected chroma candidate block, and when the number of at least one selected chroma candidate block is greater than 1, the selected chroma candidate blocks are weighted combined to generate the second prediction block.

[0134] Return to reference Figure 4 At block 480 , the decoder module 124 may reconstruct the block unit based on the first prediction block and the second prediction block.

[0135] refer to Figure 1 and Figure 2 , the decoder module 124 can perform a weighted combination of the first prediction block and the second prediction block based on a plurality of weight parameters to generate a prediction block. The weight parameters can be derived based on a variety of schemes. It should be noted that the derivation scheme of the weight parameters can be changed without departing from the scope of the present application. The decoder module 124 can determine the weight parameters without parsing any index or flag from the bitstream.

[0136] In some embodiments, the weight parameters may be predefined. For example, both weight parameters may be equal to 0.5. In some embodiments, the weight parameter of the first prediction block generated based on the CCP merge candidate may include a first predefined value, which is greater than a second predefined value of the weight parameter of the second prediction block. For example, the weight parameter of the first prediction block may be equal to 2 / 3, and the weight parameter of the second prediction block may be equal to 1 / 3. In some embodiments, the weight parameter of the first prediction block generated based on the CCP merge candidate may be a first predefined value, which may be less than the second predefined value of the weight parameter of the second prediction block.

[0137] In some embodiments, the weight parameter may be determined based on the template cost values ​​of the first prediction block and the second prediction block. The decoder module 124 may determine a third chroma template area and a luma template area of ​​the block unit. The third chroma template area may be adjacent to the chroma block of the block unit, and the luma template area may be adjacent to the luma block of the block unit. The chroma block of the block unit may include the chroma sample of the block unit, and the luma block of the block unit may include the luma sample of the block unit. In some embodiments, the third chroma template area may be the same as at least one of the first chroma template area and the second chroma template area. In some other embodiments, the third chroma template area may be different from the first chroma template area and the second chroma template area. Since the third chroma template area and the luma template area have been reconstructed before the block unit is reconstructed, the decoder module 124 may directly receive multiple reconstruction results of the third chroma template area and multiple reconstruction results of the luma template area. The decoder module 124 may generate multiple first prediction results of the third chroma template area based on the reconstruction result of the luma template area using the prediction model of the block unit. Then, the decoder module 124 may generate a first template cost value TM1 of the first prediction block by comparing the first prediction result of the third chroma template area with the reconstruction result of the third chroma template area. In addition, the decoder module 124 may generate a plurality of second prediction results of the third chroma template based on a plurality of chroma reference samples adjacent to the third chroma template using an intra prediction mode. Then, the decoder module 124 may generate a second template cost value TM2 of the second prediction block by comparing the second prediction result of the third chroma template area with the reconstruction result of the third chroma template area. Therefore, the weight parameter of the first prediction block may be equal to TM2 / (TM1+TM2), and the weight parameter of the second prediction block may be equal to TM1 / (TM1+TM2).

[0138] In some other embodiments, the weight parameter may be determined based on the reconstruction mode of the adjacent blocks adjacent to the block unit. The adjacent blocks may include an upper chroma block located above the block unit and a left chroma block located on the left side of the block unit. When the reconstruction modes of the upper chroma block and the left chroma block are both reconstructed using a corresponding cross-component model mode, the ratio of the weight parameter of the first prediction block to the weight parameter of the second prediction block may be R:1. When the reconstruction modes of the upper chroma block and the left chroma block are not reconstructed using the cross-component model mode, the ratio of the weight parameter of the first prediction block to the weight parameter of the second prediction block may be 1:R. In addition, when the reconstruction modes of the upper chroma block and the left chroma block are reconstructed using only a corresponding cross-component model mode, the ratio of the weight parameter of the first prediction block to the weight parameter of the second prediction block may be 1:1. In some embodiments, R may be a positive integer, such as 3.

[0139] The decoder module 124 may reconstruct the block unit based on the prediction block. The decoder module 124 may determine multiple residual components of the block unit from the bitstream and add the residual components to the prediction block to reconstruct the block unit. The decoder module 124 may reconstruct all other block units in the image frame to reconstruct the image frame and video. Then, the method / process 400 may end.

[0140] Figure 5 is implemented according to one or more examples Figure 1 . The encoder module 114 of the present application may include a prediction processor (e.g., a prediction processing unit 5141), at least one first summer (e.g., a first summer 5142) and a second summer (e.g., a second summer 5145), a transform / quantization processor (e.g., a transform / quantization unit 5143), an inverse quantization / inverse transform processor (e.g., an inverse quantization / inverse transform unit 5144), a filter (e.g., a filtering unit 5146), a decoded picture buffer (e.g., a decoded picture buffer 5147) and an entropy encoder (e.g., an entropy encoding unit 5148). The prediction processing unit 5141 of the encoder module 114 may also include a partition processor (e.g., a partition unit 51411), an intra-frame prediction processor (e.g., an intra-frame prediction unit 51412) and an inter-frame prediction processor (e.g., an inter-frame prediction unit 51413). The encoder module 114 may receive a source video and encode the source video to output a bitstream.

[0141] The encoding module 114 may receive a source video including a plurality of image frames, and divide the image frames according to the encoding structure, where each image frame may be divided into at least one image block.

[0142] At least one image block may include a luma block having a plurality of luma samples and at least one chroma block having a plurality of chroma samples. The luma block and at least one chroma block may be further divided to generate macroblocks, CTUs, CBs, their sub-divisions and / or other equivalent coding units.

[0143] The encoder module 114 may perform additional subdivisions of the source video. It should be noted that the disclosed embodiments are generally applicable to video encoding regardless of how the source video is partitioned before and / or during encoding.

[0144] During the encoding process, the prediction processing unit 5141 may receive a current image block of a specific image frame, where the current image block may be one of a luminance block or a chrominance block in the specific image frame.

[0145] The partitioning unit 51411 may divide the current image block into a plurality of block units; the intra-frame prediction unit 51412 may perform intra-frame prediction encoding on 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 51413 may perform inter-frame prediction encoding on the current block unit relative to one or more blocks in one or more reference image blocks to provide temporal prediction.

[0146] The prediction processing unit 5141 may select one of the encoding results generated by the intra prediction unit 51412 and the inter prediction unit 51413 according to a mode selection method, such as a cost function. The mode selection method may be a rate-distortion optimization (RDO) process.

[0147] The prediction processing unit 5141 may determine the selected encoding result, and provide the prediction block corresponding to the selected encoding result to the first summer 5142 to generate a residual block, and to the second summer 5145 to reconstruct the encoding block unit. The prediction processing unit 5141 may also provide syntax elements such as motion vectors, intra-mode indicators, partition information, and / or other syntax information to the entropy encoding unit 5148.

[0148] The intra prediction unit 51412 may perform intra prediction on the current block unit and may determine an intra prediction mode for reconstructed samples adjacent to the current block unit to encode the current block unit.

[0149] The intra prediction unit 51412 may encode the current block unit using various intra prediction modes. The intra prediction unit 51412 of the prediction processing unit 5141 may select an appropriate intra prediction mode from the selected mode. The intra prediction unit 51412 may encode the current block unit using a cross component prediction mode to predict one of the two chrominance components of the current block unit based on the luminance component of the current block unit. The intra prediction unit 51412 may predict the first of the two chrominance components of the current block unit based on the second of the two chrominance components of the current block unit.

[0150] The inter prediction unit 51413 may perform inter prediction on the current block unit as an alternative to the intra prediction performed by the intra prediction unit 51412. The inter prediction unit 51413 may perform motion estimation to estimate the motion of the current block unit to generate a motion vector.

[0151] The motion vector may indicate the displacement of the current block unit within the current image block relative to the reference block unit within the reference image block. The inter-frame prediction unit 51413 may receive at least one reference image block stored in the decoded picture buffer 5147 and estimate the motion based on the received reference image block to generate a motion vector.

[0152] The first summer 5142 may generate a residual block by subtracting the prediction block determined by the prediction processing unit 5141 from the original current block unit. The first summer 5142 may represent one or more components that perform this subtraction.

[0153] The transform / quantization unit 5143 may transform the residual block to generate residual transform coefficients, and then quantize the residual transform coefficients to further reduce the bit rate. The transform may be one of DCT, DST, AMT, MDNSST, HyGT, signal-dependent transform, KLT, wavelet transform, integer transform, subband transform, and conceptually similar transforms.

[0154] The transformation can convert the residual information from the pixel value domain to a transform domain, such as the frequency domain. The degree of quantization can be modified by adjusting the quantization parameter.

[0155] The transform / quantization unit 5143 may scan the matrix containing the quantized transform coefficients, or the entropy coding unit 5148 may also scan.

[0156] The entropy coding unit 5148 may receive a plurality of syntax elements including quantization parameters, transform data, motion vectors, intra modes, partition information, and / or other syntax information from the prediction processing unit 5141 and the transform / quantization unit 5143. The entropy coding unit 5148 may encode the syntax elements into a bitstream.

[0157] The entropy coding unit 5148 may perform entropy coding on the quantized transform coefficients using CAVLC, CABAC, SBAC, PIPE coding or other entropy coding techniques to generate a coded bit stream. The coded bit stream may be transmitted to another device (e.g., Figure 1 The second electronic device 120 shown) or archived for later transmission or retrieval.

[0158] The inverse quantization / inverse transform unit 5144 may apply inverse quantization and inverse transform to reconstruct the residual block in the pixel domain for later use as a reference block. The second adder 5145 may add the reconstructed residual block to the prediction block provided by the prediction processing unit 5141 to generate a reconstructed block for storage in the decoded picture buffer 5147.

[0159] The filtering unit 5146 may include a deblocking filter, an SAO filter, a bilateral filter, and / or an ALF to remove block artifacts from the reconstructed block. In addition to the deblocking filter, the SAO filter, the bilateral filter, and the ALF, other filters (in-loop or post-loop) may also be used. For the sake of brevity, such filters are not explicitly shown, but the output of the second adder 5145 may be filtered.

[0160] The decoded picture buffer 5147 may be a reference picture memory that stores reference blocks used by the encoder module 514 for encoding video, such as in intra-frame coding or inter-frame coding mode. The decoded picture buffer 5147 may include a variety of storage devices, such as DRAM (e.g., including SDRAM), MRAM, RRAM, or other types of storage devices. The decoded picture buffer 5147 may be disposed on-chip with other elements of the encoder module 114 or off-chip relative to those elements.

[0161] The method / process 300 may be performed by the first electronic device 110. Figure 1 , 3 At block 310, the method / process 300 may begin by receiving video data from the encoder module 114. The video data received by the encoder module 114 may be a video. At block 320, the encoder module 114 may partition a current frame to generate a plurality of CTUs according to a partitioning indication (e.g., based on any video coding standard), further partition a current CTU contained in the CTU to generate a plurality of partition blocks, and determine a block unit from the partition blocks.

[0162] At block 330, the encoder module 114 may determine a plurality of CCP merge candidates for the selected block unit from the plurality of CCP predefined candidates. The CCP merge candidates for the block unit are included in the CCP merge list for the block unit. The CCP merge candidates for the block unit determined by the encoder module 114 may be the same as the CCP merge candidates for the block unit determined by the decoder module 124. In addition, the CCP predefined candidates determined by the encoder module 114 may also be the same as the CCP predefined candidates determined by the decoder module 124.

[0163] At block 340, the encoder module 114 may select one of the multiple CCP merge candidates to determine a prediction model for the selected CCP merge candidate. In some embodiments, the encoder module 114 may determine each of the multiple CCP candidate blocks corresponding to each CCP merge candidate as one of the multiple reference blocks. In other words, the encoder module 114 may predict the block unit using each CCP merge candidate, and then select one of the multiple CCP merge candidates based on the multiple prediction results of the CCP merge candidate. In some other embodiments, the encoder module 114 may determine only one reference block of the block unit predicted using the prediction model used to determine the selected CCP merge candidate based on the template cost value. The template cost value may be generated by comparing each of the multiple chroma reference regions of the CCP candidate block with the chroma template region of the block unit. Therefore, the encoder module 114 may not encode any index into the bitstream to determine the selected CCP merge candidate for the block unit. The use of the template cost value by the encoder module 114 at block 340 may be the same as the use of the template cost value by the decoder module 124 at block 340.

[0164] At block 350 , the encoder module 114 may predict the block unit using the prediction model of the selected CCP merge candidate to generate a predicted block.

[0165] In some embodiments, when the encoder module 114 predicts a block unit using a prediction model of a specific reference block, the block unit may inherit the prediction model of the specific reference block corresponding to the selected CCP merge candidate. Therefore, a specific one of the multiple prediction models of the block unit may be the same as the prediction model of the specific reference block. Therefore, the encoder module 114 may predict the block unit using a specific prediction model of the block unit to generate a specific one of the multiple prediction blocks.

[0166] In some embodiments, when the prediction model of a specific reference block does not include any model refinement mode, the specific prediction model of the block unit may not include the model refinement mode. In some embodiments, when the prediction model of a specific reference block includes one of the model refinement modes, the model refinement mode of the specific reference block may not be inherited by the block unit. Therefore, the specific prediction model of the block unit may not include any model refinement mode. In some embodiments, when the prediction model of a specific reference block includes one of the model refinement modes, the model refinement mode of the specific reference block may be inherited by the block unit. Therefore, the specific prediction model of the block unit may also include the model refinement mode of the specific reference block.

[0167] In some other embodiments, the block unit may inherit the prediction model of a specific reference block, which may result in the prediction model of the specific reference block being a specific one of multiple inheritance models of the block unit. The specific inheritance model of the block unit may be further refined based on one of the model refinement modes to generate a specific prediction model of the block unit. Then, the encoder module 114 may use the specific prediction model of the block unit to predict the block unit to generate a specific prediction block. In some further embodiments, when the prediction model of the specific reference block includes one of the model refinement modes, the specific inheritance model of the block unit may include the model refinement mode of the specific reference block. In addition, the specific inheritance model of the block unit may be further refined based on one of the model refinement modes to generate a specific prediction model of the block unit. In other words, the specific prediction model of the block unit may be generated by two refinements according to the model refinement mode.

[0168] When each CCP merge candidate is used for a prediction block unit, the encoder module 114 may generate multiple prediction blocks based on the CCP merge candidate. Since the model refinement mode may or may not be executed, the encoder module 114 may generate multiple prediction blocks for each CCP merge candidate. Therefore, when the number of CCP merge candidates is equal to Nc, the number of prediction blocks may be much larger than Nc. In some embodiments, the number Nc may be a positive integer, such as 6 or 12.

[0169] When only one of the CCP merge candidates selected based on the template cost value is used to predict the block unit, the encoder module 114 may generate multiple prediction blocks based on the selected CCP merge candidate. Since the model refinement mode may or may not be performed, the number of prediction blocks may be much greater than one.

[0170] The model refinement mode executed may be the same as the CCP predefined candidate executed by the decoder module 124. However, in some embodiments, the encoder module 114 may execute each model refinement mode for each CCP merge candidate. In some embodiments, a portion of the model refinement modes may be preset to be executed by the encoder module 114, while other model refinement modes may be preset to be bypassed.

[0171] refer to Figure 3 , at block 360 , the encoder module 114 may reconstruct the block unit based on the predicted block.

[0172] The encoder module 114 may predict the block unit based on other prediction modes to generate multiple prediction blocks. The encoder module 114 may select the prediction block and one of the prediction blocks based on a mode selection method (e.g., a cost function). The mode selection method may be a rate-distortion optimization (RDO) process. The encoder module 114 may provide the selected encoding result to the first adder 5142 to generate a residual block, and to the second adder 5145 to reconstruct the encoding block unit. The encoder module 114 may also provide syntax elements (e.g., merge indexes and refinement inheritance flags) included in the bitstream for transmission to the decoder module 124. The reconstruction of the block unit by the encoder module 114 may be the same as the reconstruction of the block unit by the decoder module 124. In some embodiments, the merge index may be used to determine which CCP merge candidate is selected based on the mode selection method. In some embodiments, when the prediction model of the selected reference block includes one of the model refinement modes, the refinement inheritance flag may be used to determine whether the model refinement mode of the selected reference block corresponding to the selected CCP merge candidate is inherited by the block unit. Then, the method / process 300 of the encoder module 114 may end.

[0173] The method / process 400 may be performed by the first electronic device 110. Figure 1 , Figure 4 and Figure 5 At block 410, the method / process 400 may begin by receiving video data from the encoder module 114. The video data received by the encoder module 114 may be a video. At block 420, the encoder module 114 may determine a block unit from a current frame included in the video data. The encoder module 114 may partition the current frame to generate a plurality of CTUs according to a partition indication (e.g., based on any video coding standard), further partition the current CTU included in the CTU to generate a plurality of partition blocks, and determine the block unit from the partition blocks.

[0174] At block 430 , the encoder module 114 may determine an intra prediction mode from a plurality of intra default modes.

[0175] In some embodiments, the encoder module 114 may determine each intra-frame default mode as one of multiple intra-frame prediction modes. In other words, the encoder module 114 may predict the block unit using each intra-frame default mode, and then select one of the intra-frame default modes based on multiple prediction results of the intra-frame default mode. In some other implementations, the encoder module 114 may determine a predefined mode among the Planar mode, the DC mode, and the intra-frame angle mode. For example, the predefined mode in the intra-frame default mode may be the Planar mode. In some further embodiments, the DIMD mode may be used to select the intra-frame prediction mode from the intra-frame angle mode of the intra-frame default mode. The intra-frame prediction mode selected using the DIMD mode may be derived by calculating a gradient histogram based on multiple chrominance samples adjacent to the block unit and multiple luminance samples adjacent to the corresponding luminance block.

[0176] At block 440, the encoder module 114 may determine a cross component prediction (CCP) merge list for a block unit including a plurality of CCP merge candidates. The encoder module 114 may determine a plurality of CCP merge candidates for the block unit from a plurality of CCP predefined candidates. The CCP merge candidates for the block unit determined by the encoder module 114 may be the same as the CCP merge candidates for the block unit determined by the decoder module 124. In addition, the CCP predefined candidates determined by the encoder module 114 may also be the same as the CCP predefined candidates determined by the decoder module 124.

[0177] In block 450, the encoder module 114 may select one from a plurality of CCP merge candidates for the block unit to determine a prediction model for the selected CCP merge candidate. The encoder module 114 may determine the prediction model for the block unit based on the CCP merge candidate. In some embodiments, the encoder module 114 may determine each of the plurality of CCP candidate blocks corresponding to each CCP merge candidate as one of the plurality of reference blocks. In other words, the encoder module 114 may use each CCP merge candidate to predict the block unit, and then select one of the CCP merge candidates based on the plurality of prediction results of the CCP merge candidate. In some other implementations, the encoder module 114 may determine only one reference block of the block unit predicted using the prediction model based on the template cost value to determine the selected CCP merge candidate. The template cost value may be generated by comparing each of the plurality of chroma reference regions of the CCP candidate block with the chroma template region of the block unit. Therefore, the encoder module 114 may not encode any index into the bitstream to determine the selected CCP merge candidate for the block unit. The use of the template cost value by the encoder module 114 at block 340 may be the same as that of the decoder module 124.

[0178] At block 460, the encoder module 114 may predict the block unit using the prediction model of the selected CCP merge candidate to generate a first prediction block. The plurality of first prediction blocks generated by the encoder module 114 at block 450 based on the plurality of CCP merge candidates may be the same as the plurality of prediction blocks generated by the encoder module 114 at block 350 based on the plurality of CCP merge candidates.

[0179] At block 470 , the encoder module 114 may predict the block unit based on the intra prediction mode to generate a second prediction block.

[0180] When each intra-frame default mode is used to predict the block unit, the encoder module 114 may generate multiple second prediction blocks based on the intra-frame default mode. When the intra-frame prediction mode is a predefined intra-frame default mode, the encoder module 114 may generate one second prediction block based on the predefined intra-frame default mode. When the intra-frame prediction mode is selected using the DIMD mode, the encoder module 114 may generate one second prediction block based on the intra-frame prediction mode selected using the DIMD mode.

[0181] At block 480 , the encoder module 114 may reconstruct the block unit based on the first prediction block and the second prediction block.

[0182] The encoder module 114 may perform a weighted combination of one of the first prediction blocks and one of the second prediction blocks based on a plurality of weight parameters to generate a plurality of first prediction blocks. The weight parameters derived by the encoder module 114 may be the same as the weight parameters derived by the decoder module 124. When the number of first prediction blocks is equal to N1 and the number of second prediction blocks is equal to N2, the number of first prediction blocks may be equal to N1×N2.

[0183] The encoder module 114 may predict the block unit based on other prediction modes to generate multiple second prediction blocks. The encoder module 114 may select one of the first prediction block and the second prediction block based on a mode selection method, such as a cost function. The encoder module 114 may provide the selected encoding result to the first adder 5142 to generate a residual block, and to the second adder 5145 to reconstruct the encoding block unit. The encoder module 114 may also provide syntax elements (such as merge index, refinement inheritance flag and intra-frame mode index) included in the bitstream for transmission to the decoder module 124. The reconstruction of the block unit by the encoder module 114 may be the same as the reconstruction of the block unit by the decoder module 124. In some embodiments, the merge index may be used to determine which CCP merge candidate is selected based on the mode selection method. In some embodiments, when the prediction model of the selected reference block includes one of the model refinement modes, the refinement inheritance flag may be used to determine whether the model refinement mode of the selected reference block corresponding to the selected CCP merge candidate is inherited by the block unit. In some embodiments, the intra-frame mode index is used to determine which intra-frame default mode is selected based on the mode selection method. The method / process 400 of the encoder module 114 may then end.

[0184] The disclosed embodiments are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present disclosure is not limited to the specific embodiments disclosed, but that many rearrangements, modifications and substitutions are possible without departing from the scope of the present disclosure.

Claims

1. A method for decoding video data performed by an electronic device, characterized in that: The method comprises: receiving video data; Determine a block unit from a current frame included in the video data; determining an intra prediction mode from a plurality of intra default modes; Determine a cross component prediction CCP merge list of the block unit, wherein the CCP merge list includes a plurality of CCP merge candidates; Selecting a CCP merge candidate from the plurality of CCP merge candidates for the block unit to determine a prediction model of the selected CCP merge candidate from the plurality of CCP merge candidates; Predicting the block unit using a prediction model of a CCP merge candidate selected from the plurality of CCP merge candidates to generate a first prediction block; Predicting the block unit based on the intra prediction mode to generate a second prediction block; and The block unit is reconstructed based on the first prediction block and the second prediction block.

2. The method according to claim 1, characterized in that: Also includes: The first prediction block and the second prediction block are weightedly combined to generate a prediction block, wherein the block unit is also reconstructed based on the prediction block.

3. The method according to claim 1, characterized in that: Each of the plurality of CCP merge candidates of the block unit has a candidate model; and A candidate model of a CCP merge candidate selected from the plurality of CCP merge candidates is the prediction model, and the prediction model is used to predict the block unit to generate the first prediction block.

4. The method according to claim 1, characterized in that: The plurality of CCP merge candidates of the block unit are selected from a plurality of CCP predefined candidates including a plurality of block vector-based CCP merge candidates.

5. The method according to claim 1, characterized in that: The plurality of CCP merge candidates of the block unit are selected from a plurality of CCP predefined candidates; and The plurality of CCP predefined candidates include at least one of a plurality of spatially adjacent CCP merging candidates, a plurality of spatially non-adjacent CCP merging candidates, a plurality of history-based CCP merging candidates, a plurality of default CCP merging candidates, or a plurality of temporal CCP merging candidates.

6. The method according to claim 1, characterized in that: The prediction model of the selected CCP merge candidate among the multiple CCP merge candidates includes a plurality of model coefficients, and the plurality of model coefficients are used to measure a reference block corresponding to the selected CCP merge candidate among the multiple CCP merge candidates; as well as The block unit is also predicted using the prediction model of a selected CCP merge candidate from among the plurality of CCP merge candidates based on the plurality of model coefficients to generate the first prediction block.

7. The method according to claim 1, characterized in that: The multiple intra-frame default modes include a Planar mode, a DC mode, and multiple intra-frame angle modes.

8. The method according to claim 7, characterized in that: The intra prediction mode of the block unit is a predefined one of the Planar mode, the DC mode, and the plurality of intra angular modes.

9. The method according to claim 7, characterized in that: The intra prediction mode of the block unit is determined from the multiple intra angle modes based on a decoder-side intra mode derivation DIMD mode.

10. An electronic device for decoding video data, characterized in that The electronic device comprises: one or more processors; and one or more non-transitory computer-readable media coupled to the one or more processors and storing one or more computer-executable instructions that, when executed by at least one of the one or more processors, cause the electronic device to: receiving video data; Determine a block unit from a current frame included in the video data; determining an intra prediction mode from a plurality of intra default modes; Determine a cross component prediction CCP merge list of the block unit, wherein the CCP merge list includes a plurality of CCP merge candidates; Selecting a CCP merge candidate from the plurality of CCP merge candidates for the block unit to determine a prediction model of the selected CCP merge candidate from the plurality of CCP merge candidates; Predicting the block unit using a prediction model of a CCP merge candidate selected from the plurality of CCP merge candidates to generate a first prediction block; Predicting the block unit based on the intra prediction mode to generate a second prediction block; and The block unit is reconstructed based on the first prediction block and the second prediction block.

11. The electronic device according to claim 10, characterized in that: The one or more computer executable instructions, when executed by at least one of the one or more processors, further cause the electronic device to: The first prediction block and the second prediction block are weightedly combined to generate a prediction block, wherein the block unit is also reconstructed based on the prediction block.

12. The electronic device according to claim 10, characterized in that: Each of the plurality of CCP merge candidates of the block unit has a candidate model; and A candidate model of a CCP merge candidate selected from the plurality of CCP merge candidates is the prediction model, and the prediction model is used to predict the block unit to generate the first prediction block.

13. The electronic device according to claim 10, characterized in that: The plurality of CCP merge candidates of the block unit are selected from a plurality of CCP predefined candidates including a plurality of block vector-based CCP merge candidates.

14. The electronic device according to claim 10, characterized in that: The plurality of CCP merge candidates of the block unit are selected from a plurality of CCP predefined candidates; and The plurality of CCP predefined candidates include at least one of a plurality of spatially adjacent CCP merging candidates, a plurality of spatially non-adjacent CCP merging candidates, a plurality of history-based CCP merging candidates, a plurality of default CCP merging candidates, or a plurality of temporal CCP merging candidates.

15. The electronic device according to claim 10, characterized in that: The prediction model of the selected CCP merge candidate among the multiple CCP merge candidates includes a plurality of model coefficients, and the plurality of model coefficients are used to measure a reference block corresponding to the selected CCP merge candidate among the multiple CCP merge candidates; as well as The block unit is also predicted using the prediction model of a selected CCP merge candidate from among the plurality of CCP merge candidates based on the plurality of model coefficients to generate the first prediction block.

16. The electronic device according to claim 10, characterized in that: The multiple intra-frame default modes include a Planar mode, a DC mode, and multiple intra-frame angle modes.

17. The electronic device according to claim 16, characterized in that: The intra prediction mode of the block unit is a predefined one of the Planar mode, the DC mode, and the plurality of intra angular modes.

18. The electronic device according to claim 16, characterized in that: The intra prediction mode of the block unit is determined from the multiple intra angle modes based on a decoder-side intra mode derivation DIMD mode.

Citation Information

Cited By

  • Encoding method and decoding method, encoder and decoder, and storage medium

    WO2026153017A1

  • Encoding method and decoding method, encoder and decoder, and storage medium

    WO2026153019A1

  • Encoding method and decoding method, encoder and decoder, and storage medium

    WO2026153030A1

  • Methods and apparatus of block template for cross-component prediction modes

    WO2026200869A1