Apparatus and method for decoding video data
By optimizing the chromaticity prediction process through a chromaticity prediction model based on luminance-corresponding blocks, the problem of low chromaticity pixel prediction efficiency in existing technologies is solved, and more efficient video decoding is achieved.
Patent Information
- Application Number
- CN202480020530.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-03-20
- Filing Date
- 2024-03-19
- Publication Date
- 2025-11-11
AI Technical Summary
Existing video decoding technologies are inefficient when using linear models to predict the chroma pixels of video blocks, and the reference pixels are insufficient to accurately predict all block units, resulting in low decoding efficiency.
The chroma current block is reconstructed based on the luma corresponding block in the current frame. The chroma prediction model is derived using the luma block vector and the chroma reference block. The chroma prediction process is optimized by combining multiple intra-frame prediction model modes and adjusting parameters.
It improves the accuracy of chroma pixel prediction and decoding efficiency, thus enhancing the effect of video decoding.
Smart Images

Figure CN120937355A_ABST
Abstract
Description
Cross-references to related applications
[0001] This disclosure claims the benefit and priority of U.S. Provisional Patent Application Serial No. 63 / 453,450, filed March 20, 2023, entitled “PROPOSED CHROMA PREDICTION WITHINTRA TEMPLATE MATCHING METHOD”, the entire contents of which are incorporated herein by reference for all purposes. Technical Field
[0002] This disclosure relates in general to video decoding, and more specifically to techniques for predicting the chroma current block in the current frame based on the luminance corresponding block in the current frame. Background Technology
[0003] Linear model prediction is a decoding tool used for video decoding, in which the encoder and decoder can use previously reconstructed pixels adjacent to a block cell and included in a predefined reference region to estimate the prediction model equation of the prediction model mode, so as to predict or reconstruct several chroma pixels of the block cell based on several reconstructed luminance pixels of the block cell.
[0004] When the encoder and decoder compute the prediction model equations, they attempt to calculate a number of prediction model parameters for the linear model equations based solely on previously reconstructed pixels adjacent to the block unit. However, reconstructed neighboring pixels may be insufficient to predict all block units in the video. Furthermore, decoding efficiency may be low when the reference pixels for the linear model equations can only be included within a predefined adjacency region.
[0005] Therefore, encoders and decoders may need different kinds of prediction model patterns to be able to accurately and efficiently predict and / or reconstruct chroma pixels. Summary of the Invention
[0006] This disclosure relates to an apparatus and method for predicting a chroma current block in a current frame based on a luminance corresponding block in the current frame.
[0007] In a first aspect of this disclosure, a method for decoding video data and an electronic device for performing the method are provided. The electronic device includes: 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, which, when executed by at least one of the one or more processors, cause the at least one of the one or more processors to perform the method. The method includes: receiving video data; receiving the video data; determining a chroma current block from a current frame included in the video data; determining a luminance corresponding block reconstructed based on a luminance reference block, wherein: the luminance corresponding block and the luminance reference block are included in the current frame and reconstructed before reconstructing the chroma current block, and the luminance corresponding block is determined based on a luminance current block that is co-located with the chroma current block; determining a chroma reference block based on the luminance block vector of the luminance corresponding block, wherein the luminance block vector of the luminance corresponding block points from the luminance corresponding block to the luminance reference block; deriving a chroma prediction model for the chroma current block based on the chroma reference block; and reconstructing the chroma current block based on the chroma prediction model of the chroma current block.
[0008] In a specific implementation of the first aspect of this disclosure, the brightness corresponding block is one of the current brightness block and the brightness adjacent block adjacent to the current brightness block.
[0009] In a specific embodiment of the first aspect of this disclosure, one of the intra-block copy (IBC) mode and the intra-template matching prediction (intraTMP) mode is used to determine the luminance block vector of the luminance corresponding block to indicate the luminance reference block used to reconstruct the luminance corresponding block.
[0010] Specific implementations of the first aspect of this disclosure further include: determining a chromaticity reference region based on the chromaticity reference block; determining a luminance reference region based on the luminance reference block; and deriving the chromaticity prediction model of the current chromaticity block based on the chromaticity reference region and the luminance reference region, wherein the current chromaticity block is reconstructed based on the luminance corresponding block and the chromaticity prediction model of the current chromaticity block.
[0011] In a specific implementation of the first aspect of this disclosure, the chroma prediction model for the current chroma block is determined using one of a plurality of intra prediction model modes including: cross-component linear model (CCLM) mode, multi-model linear model (MMLM) mode, convolutional cross-component intra prediction model (CCCM) mode, gradient linear model (GLM) mode, and slope adjustment of linear model mode.
[0012] In a specific implementation of the first aspect of this disclosure, when the chroma reference block is reconstructed based on the chroma reference model, the chroma prediction model of the current chroma block is the same as the chroma reference model of the chroma reference block, and the chroma reference model of the current chroma block is determined using one of a plurality of intra prediction model modes including: CCLM mode, MMLM mode, CCCM mode, GLM mode and slope adjustment of linear model mode.
[0013] Specific implementations of the first aspect of this disclosure further include: determining a chromaticity reference region based on the chromaticity reference block; determining a chromaticity current region based on the chromaticity current block; and deriving the chromaticity prediction model of the chromaticity current block based on the chromaticity reference region and the chromaticity current region, wherein the chromaticity current block is reconstructed based on the chromaticity reference block and the chromaticity prediction model of the chromaticity current block.
[0014] Specific implementations of the first aspect of this disclosure further include: predicting the current chroma block based on the chroma prediction model of the current chroma block to generate a first chroma prediction block determined based on the luma block vector; predicting the current chroma block based on one of a plurality of intra prediction modes other than a plurality of intra prediction model modes to generate a second chroma prediction block; weighting and combining the first chroma prediction block and the second chroma prediction block to generate a chroma prediction block of the current chroma block; and reconstructing the current chroma block based on the chroma prediction block of the current chroma block.
[0015] In a specific implementation of the first aspect of this disclosure, the plurality of intra-prediction modes, in addition to the plurality of intra-prediction model modes, include direct block vector (DBV) mode, DC mode, planar mode and a plurality of intra-angle modes.
[0016] In a specific implementation of the first aspect of this disclosure, the chromaticity prediction model of the current chromaticity block is further adjusted by at least one of a plurality of adjustment parameters.
[0017] Specific implementations of the first aspect of this disclosure further include: determining whether the tree type of the current chroma block is a dual-tree; when the tree type of the current chroma block is the dual-tree, determining from the video data whether the current chroma block is a syntax element that indicates whether it is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the luma block vector; and when the tree type of the current chroma block is not the dual-tree, ignoring the determination of the syntax element from the video data.
[0018] Specific implementations of the first aspect of this disclosure further include: determining whether the slice type of the current chroma block is an I-slice type; when the slice type of the current chroma block is the I-slice type, determining from the video data whether the current chroma block is a syntax element that indicates whether it is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the luma block vector; and when the slice type of the current chroma block is not the I-slice type, ignoring the determination of the syntax element from the video data.
[0019] In a second aspect of this disclosure, a method for decoding video data and an electronic device for performing the method are provided. The electronic device includes: 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, which, when executed by at least one of the one or more processors, cause the at least one of the one or more processors to perform the method. The method includes: receiving the video data; receiving the video data; determining a chroma current block from a current frame included in the video data; determining a chroma reference block from the current frame indicated by a chroma block vector of the chroma current block, wherein the chroma block vector of the chroma current block is determined using an intra-template matching prediction (intraTMP) mode to indicate the chroma reference block; deriving a chroma prediction model of the chroma current block based on the chroma reference block; and reconstructing the chroma current block based on the chroma prediction model of the chroma current block.
[0020] Specific implementations of the second aspect of this disclosure also include: determining a luminance reference block from the current frame based on the chrominance reference block.
[0021] In a specific implementation of the second aspect of this disclosure, the luminance reference block is located in the same position as the chromaticity reference block.
[0022] The second aspect of this disclosure further includes: determining a chromaticity reference region based on the chromaticity reference block; determining a luminance reference region based on the luminance reference block; and deriving the chromaticity prediction model of the current chromaticity block based on the chromaticity reference region and the luminance reference region, wherein: the current chromaticity block is reconstructed based on the luminance current block and the chromaticity prediction model of the current chromaticity block, and the current luminance block is in the same position as the current chromaticity block.
[0023] In a specific implementation of the second aspect of this disclosure, the chroma prediction model for the current chroma block is determined using one of a plurality of intra prediction model modes including: cross-component linear model (CCLM) mode, multi-model linear model (MMLM) mode, convolutional cross-component intra prediction model (CCCM) mode, gradient linear model (GLM) mode, and slope adjustment of linear model mode.
[0024] In a specific implementation of the second aspect of this disclosure, when the chroma reference block is reconstructed based on the chroma reference model, the chroma prediction model of the current chroma block is the same as the chroma reference model of the chroma reference block, and the chroma reference model of the current chroma block is determined using one of a plurality of intra prediction model modes including: CCLM mode, MMLM mode, CCCM mode, GLM mode and slope adjustment of linear model mode.
[0025] Specific implementations of the second aspect of this disclosure further include: determining a chromaticity reference region based on the chromaticity reference block; determining a chromaticity current region based on the chromaticity current block; and deriving the chromaticity prediction model of the chromaticity current block based on the chromaticity reference region and the chromaticity current region, wherein the chromaticity current block is reconstructed based on the chromaticity reference block and the chromaticity prediction model of the chromaticity current block.
[0026] Specific implementations of the second aspect of this disclosure further include: predicting the current chroma block based on the chroma prediction model of the current chroma block to generate a first chroma prediction block determined based on the chroma block vector; predicting the current chroma block based on one of multiple intra prediction modes other than multiple intra prediction model modes to generate a second chroma prediction block; weighting and combining the first chroma prediction block and the second chroma prediction block to generate a chroma prediction block of the current chroma block; and reconstructing the current chroma block based on the chroma prediction block of the current chroma block.
[0027] In a specific implementation of the second aspect of this disclosure, the plurality of intra-prediction modes, in addition to the plurality of intra-prediction model modes, include direct block vector (DBV) mode, DC mode, planar mode and a plurality of intra-angle modes.
[0028] In a specific implementation of the second aspect of this disclosure, the chromaticity prediction model of the current chromaticity block is further adjusted by at least one of a plurality of adjustment parameters.
[0029] Specific implementations of the second aspect of this disclosure further include: determining whether the tree type of the current chroma block is a dual-tree; when the tree type of the current chroma block is the dual-tree, determining from the video data whether the current chroma block is a syntax element that indicates whether it is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the chroma block vector; and when the tree type of the current chroma block is not the dual-tree, ignoring the determination of the syntax element from the video data.
[0030] Specific implementations of the second aspect of this disclosure further include: determining whether the slice type of the current chroma block is an I-slice type; when the slice type of the current chroma block is the I-slice type, determining from the video data whether the current chroma block is a syntax element that indicates whether it is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the chroma block vector; and when the slice type of the current chroma block is not the I-slice type, ignoring the determination of the syntax element from the video data. Attached Figure Description
[0031] Various aspects of this disclosure can be best understood from the following detailed disclosure and corresponding drawings. The features are not drawn to scale, and for clarity of discussion, the dimensions of the features may be arbitrarily increased or decreased. Figure 1 This is a block diagram illustrating a system having a first electronic device and a second electronic device for encoding and decoding video data, specifically implemented according to one or more examples of this disclosure. Figure 2 This is an example illustrating specific implementations based on one or more examples of this disclosure. Figure 1 A block diagram of the decoder module of the illustrated second electronic device. Figure 3 This is a flowchart illustrating a method / process for decoding and / or encoding video data by an electronic device, specifically implemented according to one or more examples of this disclosure. Figures 4A to 4B This is a schematic diagram of multiple candidates for the chromaticity reference block of the current chromaticity block and multiple candidates for the luminance reference block of the corresponding luminance block, implemented according to one or more examples of this disclosure. Figure 5 This is a flowchart illustrating a method / process for decoding and / or encoding video data by an electronic device, specifically implemented according to one or more examples of this disclosure. Figure 6 This is an example illustrating specific implementations based on one or more examples of this disclosure. Figure 1 A block diagram of the encoder module of the illustrated first electronic device. Detailed Implementation
[0032] The following disclosure contains specific information relating to specific embodiments of this disclosure. The accompanying drawings and corresponding detailed disclosure relate to exemplary embodiments. However, this disclosure is not limited to these exemplary embodiments. Other variations and embodiments of this disclosure will occur to those skilled in the art.
[0033] Unless otherwise stated, similar or corresponding elements in the accompanying drawings are indicated by similar or corresponding reference numerals. The drawings and illustrations in this disclosure are generally not drawn to scale and are not intended to correspond to actual relative dimensions.
[0034] For the sake of consistency and ease of understanding, features are identified by reference indicators in the exemplary figures (although not illustrated in some examples). However, features in different specific embodiments may differ in other respects and should not be narrowly limited to what is illustrated in the figures.
[0035] This disclosure uses the phrases “in one embodiment” or “in some embodiments”, which may refer to one or more of the same or different embodiments. The term “coupled” is defined as a connection, whether direct or indirect through an intermediate component, and is not necessarily limited to a physical connection. The term “comprising” means “including but not limited to”, and specifically indicates an open inclusion or membership relationship in said combination, group, series, and equivalent.
[0036] For purposes of explanation rather than limitation, specific details such as functional entities, technologies, protocols, and standards are set forth to provide an understanding of the disclosed technologies. Detailed disclosures of well-known methods, technologies, systems, architectures, etc., are omitted to avoid obscuring this disclosure with unnecessary detail.
[0037] Those skilled in the art will recognize that any of the disclosed decoding functions or algorithms described herein can be implemented in hardware, software, or a combination of both. The disclosed functions may correspond to modules, which may be software, hardware, firmware, or any combination thereof.
[0038] Software implementations may include programs having one or more computer-executable instructions stored on a computer-readable medium, such as memory or other types of storage devices. For example, one or more microprocessors or general-purpose computers with communication processing capabilities may be programmed with computer-executable instructions to perform the disclosed functions or algorithms.
[0039] Microprocessors or general-purpose computers may be formed from application-specific integrated circuits (ASICs), programmable logic arrays, and / or one or more digital signal processors (DSPs). Although some of the disclosed embodiments are geared toward software installed and executed on computer hardware, alternative embodiments implemented as firmware, or hardware, or a combination of hardware and software, are also within the scope of this disclosure. Computer-readable media include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash memory, optical disc read-only memory (CD ROM), magnetic tape cassettes, magnetic tape, disk storage, or any other equivalent medium capable of storing computer-executable instructions. Computer-readable media may be non-transitory computer-readable media.
[0040] Figure 1 This is a block diagram illustrating a system 100 having a first electronic device and a second electronic device for encoding and decoding video data, specifically implemented according to one or more examples of this disclosure.
[0041] System 100 includes a first electronic device 110, a second electronic device 120, and a communication medium 130.
[0042] The first electronic device 110 can 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 can be a destination device including any device configured to receive and decode the encoded video data via the communication medium 130.
[0043] The first electronic device 110 can communicate with the second electronic device 120 via a communication medium 130, either wired or wirelessly. The first electronic device 110 may include a source module 112, an encoder module 114, a first interface 116, and other components. The second electronic device 120 may include a display module 122, a decoder module 124, a second interface 126, and other components. The first electronic device 110 may be a video encoder, and the second electronic device 120 may be a video decoder.
[0044] The first electronic device 110 and / or the second electronic device 120 may be a mobile phone, tablet computer, desktop computer, laptop computer or other electronic device. Figure 1 An example of a first electronic device 110 and a second electronic device 120 is illustrated. The first electronic device 110 and the second electronic device 120 may include more or fewer components than those illustrated, or have different configurations of various illustrated components.
[0045] 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. Source module 112 may generate computer graphics-based data as source video, or may generate a combination of real-time video, archived video, and computer-generated video as source video. The video capture device may include a charge-coupled device (CCD) image sensor, a complementary metal-oxide-semiconductor (CMOS) image sensor, or a camera.
[0046] Encoder module 114 and decoder module 124 may each be implemented as any of a variety of suitable encoder / decoder circuits, such as one or more microprocessors, central processing units (CPUs), graphics processing units (GPUs), system-on-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 implemented in part in software, the device may store a program having computer-executable instructions for software in a suitable non-transitory computer-readable medium and use one or more processors to execute the stored computer-executable instructions to perform the disclosed methods. Each of encoder module 114 and decoder module 124 may be included in one or more encoders or decoders, either of which may be integrated as part of a combined encoder / decoder (CODEC) in the device.
[0047] The first interface 116 and the second interface 126 may utilize custom protocols or comply with existing or de facto standards, including but not limited to Ethernet, IEEE 802.11 or IEEE 802.15 series, wireless USB, or telecommunications 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), Global System for Microwave Access (WiMAX), 3GPP 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 transmit and receive compatible video bitstreams via the communication medium 130.
[0048] The first interface 116 and the second interface 126 may include a computer system interface that enables compatible video bitstreams to be stored on or received from a storage device. For example, the first interface 116 and the second interface 126 may include a chipset supporting Peripheral Component Interconnect (PCI) and Peripheral Component Interconnect Fast (PCIe) bus protocols, proprietary bus protocols, Universal Serial Bus (USB) protocols, Internal Integrated Circuit (I2C) protocols, or any other logical and physical architecture that can be used to interconnect peer devices.
[0049] Display module 122 may include a display using liquid crystal display (LCD), plasma display, organic light-emitting diode (OLED), or light-emitting polymer (LPD) technology, and other display technologies may be used in some other embodiments. Display module 122 may include a high-definition display or an ultra-high-definition display.
[0050] Figure 2 This is an example illustrating specific implementations based on one or more examples of this disclosure. Figure 1 A block diagram of the decoder module 124 of the illustrated second electronic device 120. The decoder module 124 may include an entropy decoder (e.g., entropy decoding unit 2241), a prediction processor (e.g., prediction processing unit 2242), an inverse quantization / inverse transform processor (e.g., inverse quantization / inverse transform unit 2243), an adder (e.g., adder 2244), a filter (e.g., filter unit 2245), and a decoded image buffer (e.g., decoded image buffer 2246). The prediction processing unit 2242 may also include an intra-frame prediction processor (e.g., intra-frame prediction unit 22421) and an inter-frame prediction processor (e.g., inter-frame prediction unit 22422). The decoder module 124 receives a bitstream, decodes the bitstream, and outputs decoded video.
[0051] Entropy decoding unit 2241 can receive a bitstream including multiple syntax elements from second interface 126, such as Figure 1 As shown, the bitstream is parsed to extract syntax elements. As part of the parsing operation, the entropy decoding unit 2241 can entropy decode the bitstream to generate quantized transform coefficients, quantization parameters, transform data, motion vectors, intra-frame modes, segmentation information, and / or other syntax information.
[0052] The entropy decoding unit 2241 can perform context-adaptive variable-length decoding (CAVLC), context-adaptive binary arithmetic decoding (CABAC), syntax-based context-adaptive binary arithmetic decoding (SBAC), probabilistic interval segmented entropy (PIPE) decoding, or another entropy decoding technique to generate quantized transform coefficients. The entropy decoding unit 2241 can provide the quantized transform coefficients, quantization parameters, and transform data to the inverse quantization / inverse transform unit 2243, and provide motion vectors, intra-frame modes, segmentation information, and other syntax information to the prediction processing unit 2242.
[0053] The prediction processing unit 2242 may receive syntax elements, such as motion vectors, intra-frame modes, segmentation information, and other syntax information, from the entropy decoding unit 2241. The prediction processing unit 2242 may receive syntax elements including segmentation information and segment image frames according to the segmentation information.
[0054] Each of these image frames can be divided into at least one image block based on the segmentation information. This at least one image block may include a luminance block for reconstructing multiple luminance samples and at least one chrominance block for reconstructing multiple chrominance samples. The luminance block and the at least one chrominance block may be further subdivided to generate macroblocks, decoding tree units (CTUs), decoding blocks (CBs), their sub-segments, and / or other equivalent decoding units.
[0055] During the decoding process, the prediction processing unit 2242 may receive prediction data including intra-frame mode or motion vectors of the current image block of a specific image frame. The current image block may be a luminance block or a chrominance block in the specific image frame.
[0056] Intra-prediction unit 22421 can perform intra-prediction decoding on the current block unit relative to one or more adjacent blocks in the same frame as the current block unit, based on syntax elements associated with the intra-frame mode, in order to generate a prediction block. The intra-frame mode can specify the position of the reference sample selected from the adjacent blocks in the current frame.
[0057] When the luminance sample of the current block cell has been reconstructed by the prediction processing unit 2242, the intra-frame prediction unit 22421 can reconstruct multiple chrominance samples of the current block cell based on multiple luminance samples of the current block cell.
[0058] Inter-frame prediction unit 22422 can perform inter-frame prediction decoding of the current block unit relative to one or more blocks in one or more reference image blocks, based on syntax elements associated with motion vectors, to generate a prediction block. The motion vectors can indicate the displacement of the current block unit within the current image block relative to reference block units within the reference image block. Reference block units can be blocks determined to closely match the current block unit. Inter-frame prediction unit 22422 can receive reference image blocks stored in the decoded image buffer 2246 and reconstruct the current block unit based on the received reference image blocks.
[0059] The inverse quantization / inverse transform unit 2243 can apply inverse quantization and inverse transform to reconstruct the residual block in the pixel domain. The inverse quantization / inverse transform unit 2243 can apply inverse quantization to the quantized transform coefficients of the residual to generate residual transform coefficients, and then apply inverse transform to the residual transform coefficients to generate the residual block in the pixel domain.
[0060] Inverse transforms can be applied by performing transform processes such as Discrete Cosine Transform (DCT), Discrete Sine Transform (DST), Adaptive Multiple Transform (AMT), Mode-dependent Inseparable Quadratic Transform (MDNSST), Hypercube Givens Transform (HyGT), Signal-dependent Transform, Karhunen-Loéve Transform (KLT), Wavelet Transform, Integer Transform, Subband Transform, or conceptually similar transforms. Inverse transforms can convert residual information from the transform domain (such as the frequency domain) back to the pixel domain. The degree of inverse quantization can be modified by adjusting the quantization parameters.
[0061] Adder 2244 can add the reconstructed residual block to the prediction block provided by prediction processing unit 2242 to produce a reconstructed block.
[0062] 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 blocks. In addition to the deblocking filter, SAO filter, bilateral filter, and ALF, additional filters (in-loop or post-loop) may also be used. For simplicity, such filters are not explicitly illustrated, but they may filter the output of adder 2244. After filtering unit 2245 performs the filtering process on the reconstructed blocks of a specific image frame, filtering unit 2245 may output the decoded video to display module 122 or other video receiving unit.
[0063] The decoded image buffer 2246 may be a reference image memory that stores a reference block used by the prediction processing unit 2242 when decoding the bitstream (e.g., in inter-frame decoding mode). The decoded image buffer 2246 may be formed of any of a variety of memory devices, such as dynamic random access memory (DRAM) (including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM)) or other types of memory devices. The decoded image buffer 2246 may be on-chip along with other components of the decoder module 124, or it may be off-chip relative to these components.
[0064] Figure 3 This is a flowchart illustrating a method / process 300 for decoding and / or encoding video data by an electronic device, specifically implemented according to one or more examples of this disclosure. Method / process 300 is an exemplary implementation, as various ways of decoding video data exist.
[0065] Method / process 300 can be used by Figure 1 and Figure 2 The illustrated electronic device performs the procedure, and various elements in these figures are referenced in the description of method / process 300. Figure 3 Each box illustrated may represent one or more processes, methods, or subroutines performed by an electronic device.
[0066] Figure 3 The order in which the boxes appear is for illustrative purposes only and is not intended to limit the scope of this disclosure; therefore, the order may differ from that shown. Additional boxes may be added or fewer boxes may be used without departing from this disclosure.
[0067] At box 310, method / procedure 300 may begin by receiving video data via decoder module 124. The video data received by decoder module 124 may include a bitstream.
[0068] refer to Figure 1 and Figure 2 The second electronic device 120 can receive bitstreams from an encoder, such as the first electronic device 110 (or other video provider), via a second interface 126. The second interface 126 can provide the bitstreams to the decoder module 124.
[0069] At box 320, decoder module 124 determines the current chroma block from the current frame included in the video data.
[0070] refer to Figure 1 and Figure 2When the video data received by the decoder module 124 is a bitstream, the decoder module 124 can determine the multiple image frames included in the bitstream. The current frame can be one of the image frames determined according to the bitstream. The decoder module 124 can further divide the current frame according to multiple segmentation instructions in the bitstream to determine block units. For example, according to segmentation instructions based on any video decoding standard, the decoder module 124 can divide the current frame to generate multiple CTUs, and further divide one of these CTUs to determine a block unit including a chroma current block and a luma current block.
[0071] One of these CTUs used to determine block units may include a luminance decoding tree block (CTB) and at least one chrominance CTB. In some specific implementations, the at least one chrominance CTB may be two chrominance CTBs (e.g., Cr CTB and Cb CTB). The luminance CTB may be divided into one or more luminance decoding units, and each of the at least one chrominance CTB may be divided into one or more chrominance decoding units. The luminance partitioning structure of the one or more luminance decoding units in the luminance CTB may be the same as or different from the chrominance partitioning structure of the one or more chrominance decoding units in each of the at least one chrominance CTB. When the tree type of one of these CTUs is a single tree, the luminance partitioning structure of the one or more luminance decoding units in the luminance CTB may be the same as the chrominance partitioning structure of the one or more chrominance decoding units in each of the at least one chrominance CTB. When one of these CTUs has a dual-tree tree type, the luminance segmentation structure of the one or more luminance decoding units in the luminance CTB may differ from the chrominance segmentation structure of the one or more chrominance decoding units in each of the at least one chrominance CTB. A specific chrominance decoding unit in the one or more chrominance decoding units of one of the at least one chrominance CTBs may be considered as the chrominance current block.
[0072] In some implementations, the tree type of the chroma current block can be a single tree. When a specific luminance decoding unit in one or more luminance decoding units in the luminance CTU is in the same position as the chroma current block, that specific luminance decoding unit in the luminance CTU can be considered as the luminance current block. In some implementations, when the luminance position of the upper left sample in a specific luminance decoding unit in one or more luminance decoding units in the luminance CTU is in the same position as the chroma position of the upper left sample in a specific chroma decoding unit in one or more chroma CTBs, that specific luminance decoding unit in the luminance CTU is the luminance current block in the same position as the chroma current block. In some specific implementations, when one of the multiple luminance positions in a specific luminance decoding unit in one or more luminance decoding units in the luminance CTU is in the same position as the upper left sample of a specific chrominance decoding unit in one or more chrominance decoding units in the at least one chrominance CTB, the specific luminance decoding unit in the one or more luminance decoding units in the luminance CTU is the luminance current block in the same position as the chrominance current block.
[0073] In some specific implementations, the tree type of the current chroma block can be a dual-tree. The luma segmentation structure can differ from the chroma segmentation structure, therefore, there may not be a luma decoding unit directly co-located with the current chroma block. The decoder module 124 can determine the chroma position of the top-left sample in the current chroma block and determine the co-location position that is co-located with the chroma position of the top-left sample. Then, the decoder module 124 can determine the current luma block based on the co-location position, the current chroma size of the current chroma block, and multiple scaling factors. The decoder module 124 can derive the current luma size based on the current chroma size and scaling factors, and then determine the current luma block based on the co-location position and the current luma size.
[0074] At box 330, decoder module 124 determines the luminance corresponding block reconstructed based on the luminance reference block.
[0075] refer to Figure 1 and Figure 2 The decoder module 124 can determine the luminance current block that is in the same position as the chroma current block, and then determine the luminance corresponding block based on the luminance current block that is in the same position as the chroma current block. The luminance corresponding block can be one of the luminance current block and a plurality of luminance adjacent blocks adjacent to the luminance current block. In some specific embodiments, the decoder module 124 can directly determine the luminance current block as the luminance corresponding block. In some other specific embodiments, the decoder module 124 can determine a specific luminance adjacent block among the luminance adjacent blocks adjacent to the luminance current block, and then determine that specific luminance adjacent block as the luminance corresponding block.
[0076] In some implementations, the specific brightness adjacent block may be located above the current brightness block. For example, the top-left sample in the current brightness block may be located at the current brightness position (xCb, yCb), and the block size of the current brightness block may be the current brightness size (cbWidth, cbHeight). The specific brightness adjacent block located above the current brightness block may include a first brightness sample located at a first brightness adjacent position (xCb+cbWidth-1, yCb-1). In some other implementations, the specific brightness adjacent block may be located to the left of the current brightness block. For example, the specific brightness adjacent block located to the left of the current brightness block may include a second brightness sample located at a second brightness adjacent position (xCb-1, yCb+cbHeight-1).
[0077] The current luminance block can be reconstructed before the current chroma block. Additionally, the luminance adjacent blocks adjacent to the current luminance block can be reconstructed before the current luminance block. Therefore, since the luminance corresponding block can be either the current luminance block or the luminance adjacent block, it can be reconstructed before the current chroma block. Furthermore, since the luminance corresponding block is reconstructed based on a luminance reference block, the luminance reference block can be reconstructed before the luminance corresponding block. Therefore, the luminance reference block can also be reconstructed before the current chroma block. The luminance corresponding block and the luminance reference block can be included in the current frame.
[0078] At box 340, decoder module 124 determines chromaticity reference block based on the luminance block vector of the corresponding luminance block.
[0079] refer to Figure 1 and Figure 2 Decoder module 124 can determine the luminance block vector of the luminance corresponding block for determining the luminance reference block. Then, decoder module 124 can determine the chrominance block vector of the current chrominance block based on the luminance block vector used to determine the chrominance reference block. Therefore, both the chrominance reference block and the luminance reference block can be determined based on the luminance block vector of the luminance corresponding block. Both the chrominance reference block and the luminance reference block can be associated with the luminance block vector of the luminance corresponding block. The luminance block vector of the luminance corresponding block can point from the luminance corresponding block to the luminance reference block.
[0080] When a chroma reference block and a luma reference block are associated with the luma block vector of a luma corresponding block, the luma block vector of that luma corresponding block (which indicates that the luma reference block is the reference block unit used to reconstruct the luma corresponding block) can be used to derive the chroma block vector. In some specific implementations, the decoder module 124 can determine whether to use either the intra-block copy (IBC) mode or the intra-template matching prediction (intraTMP) mode to decode the luma current block and luma adjacent blocks. When decoding the luma current block using either the IBC mode or the intraTMP mode, the luma current vector of the luma current block generated by either the IBC mode or the intraTMP mode can be determined as the luma block vector of the luma corresponding block. When decoding a specific luma adjacent block using either the IBC mode or the intraTMP mode, the luma adjacent vector of the specific luma adjacent block generated by either the IBC mode or the intraTMP mode can be determined as the luma block vector of the luma corresponding block. In some implementations, either IBC mode or intraTMP mode can be used to determine the luminance block vector of the luminance corresponding block to indicate the luminance reference block used to reconstruct the luminance corresponding block. When using IBC mode to determine the luminance block vector of the luminance corresponding block, decoder module 124 can determine the luminance block vector of the luminance corresponding block based on the bitstream. When using intraTMP mode to determine the luminance block vector, decoder module 124 can select a luminance reference block from a plurality of intraTMP corresponding blocks of the luminance corresponding block and determine the luminance block vector associated with the luminance reference block.
[0081] In some embodiments, the luminance corresponding block may not be a decoding unit directly selected from the one or more luminance decoding units in the luminance CTU. In some embodiments, the luminance corresponding block may be part of a specific luminance decoding unit within the one or more luminance decoding units in the luminance CTU. In other words, the luminance corresponding block may be included within that specific luminance decoding unit. Therefore, when decoding that specific luminance decoding unit using either IBC mode or intraTMP mode, the luminance encoding vector of that specific luminance decoding unit can be determined as the luminance block vector of the luminance corresponding block. In some other embodiments, the luminance corresponding block may include more than one luminance decoding unit from the luminance decoding units in the luminance CTU. The decoder module 124 may determine multiple decoding positions of the luminance corresponding block and determine whether to use either IBC mode or intraTMP mode to decode the luminance decoding unit that covers at least one of these decoding positions and is included in the luminance corresponding block. When decoding a specific luminance decoding unit that covers at least one of these decoding locations and is included in a luminance corresponding block using either IBC mode or intraTMP mode, the luminance decoding vector of that specific luminance decoding unit can be determined as the luminance block vector of the luminance corresponding block. In some specific implementations, the decoding location may include at least one of the upper left corner, upper right corner, lower left corner, lower right corner, and center point of the luminance corresponding block.
[0082] Decoder module 124 can be based on the luminance block vector (lbv) of the luminance corresponding block. x ,lbv y ) to determine the chroma block vector (cbv) of the current chroma block x ,cbv y In some specific implementations, the chroma block vector (cbv) x ,cbv y It can be compared with the luminance block vector (lbv) x ,lbv y The same applies. In some other specific implementations, the chroma block vector (cbv) is used. x ,cbv y It can be compared with the luminance block vector (lbv) x ,lbv y Proportional.
[0083] The chroma block vector can be derived based on a scaling factor and a luma block vector. In some implementations, the scaling factor may include a first scaling factor and a second scaling factor. The first scaling factor may be the same as or different from the second scaling factor. The first scaling factor can be used to scale a first length along a first direction, and the second scaling factor can be used to scale a second length along a second direction. The first direction may be perpendicular to the second direction. In some implementations, the first scaling factor may be a width scaling factor, and the second scaling factor may be a height scaling factor.
[0084] Luminance block vector (lbv) based on luminance corresponding block x ,lbv y ) and scaling factor to derive the chroma block vector (cbv) of the current chroma block. x ,cbv y For example, the horizontal component cbv of the chroma block vector. x The horizontal component lbv of the luminance block vector can be used to... x It is generated by dividing by a width scaling factor, and the vertical component cbv of the chroma block vector. y This can be achieved by using the vertical component lbv of the luminance block vector. y It is generated by dividing by the height scaling factor.
[0085] Figures 4A to 4B This is a schematic diagram illustrating multiple candidates for a chroma reference block of a chroma current block and multiple candidates for a luminance reference block of a luminance corresponding block, implemented according to one or more examples of this disclosure. Decoder module 124 may determine a chroma current block 411 from chroma frame 410, and then determine a luminance current block 421 that is co-located with chroma current block 411 from luminance frame 420. Decoder module 124 may also determine a luminance corresponding block based on the luminance current block 421 from luminance frame 420.
[0086] When the current luminance block 421 is reconstructed based on the first luminance reference candidate 4211 indicated by the first luminance vector candidate 4210, the decoder module 124 can directly set the current luminance block 421 as the luminance corresponding block. In addition, the first luminance vector candidate 4210 and the first luminance reference candidate 4211 of the current luminance block 421 can be set as the luminance block vector and luminance reference block of the luminance corresponding block.
[0087] When a specific luminance adjacent block 422 is reconstructed based on a second luminance reference candidate 4221 indicated by a second luminance vector candidate 4220, the decoder module 124 can directly select the specific luminance adjacent block 422 as the luminance corresponding block from multiple luminance adjacent blocks. Furthermore, the second luminance vector candidate 4220 and the second luminance reference candidate 4221 of the specific luminance adjacent block 422 can be set as the luminance block vector and luminance reference block of the luminance corresponding block.
[0088] Decoder module 124 can determine chroma block vectors based on luma block vectors, and determine chroma reference blocks from chroma frame 410 based on these chroma block vectors. In some embodiments, when the first luma vector candidate 4210 of the current luma block 421 is set as the luma block vector of the corresponding luma block, decoder module 124 can determine the first chroma vector candidate 4110 as the current chroma vector based on the first luma vector candidate 4210 of the current luma block 421. Then, decoder module 124 can determine the first chroma reference candidate 4111 as the chroma reference block based on the first chroma vector candidate 4110. In some other embodiments, when the second luma vector candidate 4220 of a specific luma adjacent block 422 is set as the luma block vector of the corresponding luma block, decoder module 124 can determine the second chroma vector candidate 4120 as the current chroma vector based on the second luma vector candidate 4220 of the specific luma adjacent block 422. Then, the decoder module 124 can determine the second chromaticity reference candidate 4121 as the chromaticity reference block based on the second chromaticity vector candidate 4120.
[0089] The current chroma size of the chroma block can be proportional to the luminance-corresponding size of the luminance-corresponding block and the luminance-reference size of the luminance-reference block, based on a scaling factor. For example, the luminance-corresponding width W of the luminance-corresponding block... LC The brightness reference width W of the brightness reference block LR This can be equal to the current width W of the current chroma block. CC The brightness width value is generated by multiplying by a width scaling factor. The brightness corresponds to the height H of the corresponding block. LC The luminance reference height H of the luminance reference block LR This can be equal to the current height H of the current chroma block. CC The luminance height value is generated by multiplying by a height scaling factor. Additionally, the chromaticity reference width W of the chromaticity reference block... CR It can be equal to the current width W of the current chroma block. CC And the chromaticity reference height H of the chromaticity reference block CR It can be equal to the current chroma height H of the current chroma block. CC .
[0090] The scaling factor can be derived based on the video format. For example, when the video format is YUV444, the first scaling factor can be a width scaling factor equal to one, and the second scaling factor can be a height scaling factor equal to one. Conversely, when the video format is YUV422, the first scaling factor can be a width scaling factor equal to two, and the second scaling factor can be a height scaling factor equal to one. When the video format is YUV420, the first scaling factor can be a width scaling factor equal to two, and the second scaling factor can be a height scaling factor equal to two.
[0091] Return to reference Figure 3 At box 350, decoder module 124 derives the chromaticity prediction model of the current chromaticity block based on the chromaticity reference block.
[0092] refer to Figure 1 and Figure 2 In some implementations, decoder module 124 may determine a chromaticity reference region based on a chromaticity reference block and a luminance reference region based on a luminance reference block. Then, decoder module 124 may derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the luminance reference region. In other implementations, decoder module 124 may determine a chromaticity reference region based on a chromaticity reference block and a current chromaticity region based on the current chromaticity block. Then, decoder module 124 may derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region.
[0093] Decoder module 124 can determine a plurality of chromaticity reference regions adjacent to the chromaticity reference block and a plurality of luminance reference regions adjacent to the luminance reference block. In some embodiments, the chromaticity reference region may include only the chromaticity reference block, and the luminance reference region may include only the luminance reference block. In some other embodiments, the chromaticity reference region may include only at least one chromaticity reference region among the chromaticity reference regions, and the luminance reference region may include only at least one luminance reference region among the luminance reference regions. In still other embodiments, the chromaticity reference region may include the chromaticity reference block and at least one chromaticity reference region among the chromaticity reference regions, and the luminance reference region may include the luminance reference block and at least one luminance reference region among the luminance reference regions.
[0094] A chromaticity reference region may include a first chromaticity reference region located to the left of the chromaticity reference block, a second chromaticity reference region located above the chromaticity reference block, and a third chromaticity reference region located to the upper left of the chromaticity reference block. The chromaticity reference region can be reconstructed before reconstructing the current chromaticity block. A luminance reference region may include a first luminance reference region located to the left of the luminance reference block, a second luminance reference region located above the luminance reference block, and a third luminance reference region located to the upper left of the luminance reference block. The luminance reference region can be reconstructed before reconstructing the current chromaticity block.
[0095] The decoder module 124 can determine the chroma reference region adjacent to the chroma reference block, and determine a plurality of chroma current regions adjacent to the chroma current block. The chroma reference region may include only at least one of the chroma reference regions, and the chroma current region may include only at least one of the chroma current regions.
[0096] The chromaticity reference area may include a first chromaticity reference area, a second chromaticity reference area, and a third chromaticity reference area. The chromaticity current area may include a first chromaticity current area located to the left of the chromaticity current block, a second chromaticity current area located above the chromaticity current block, and a third chromaticity current area located to the upper left of the chromaticity current block. The chromaticity current area may be reconstructed before the chromaticity current block is reconstructed.
[0097] The use of chromaticity reference areas and chromaticity reference blocks in a chromaticity reference region can correspond to the use of luminance reference areas and luminance reference blocks in a luminance reference region. The use of chromaticity reference areas and chromaticity reference blocks in both the chromaticity and luminance reference regions can include multiple reference direction types. Additionally, the use of chromaticity reference areas in a chromaticity reference region can correspond to the use of chromaticity current areas in a chromaticity current region. The use of chromaticity reference areas and chromaticity current areas in both the chromaticity and chromaticity reference regions can include reference direction types. In some specific implementations, the use of chromaticity reference areas and chromaticity reference blocks in a chromaticity reference region can include three reference direction types: left type (L type), top type (T type), and top-left type (LT type).
[0098] In some implementations, an L-type chromaticity reference region may consist only of a first chromaticity reference region located to the left of the chromaticity reference block, and an L-type luminance reference region may consist only of a first luminance reference region located to the left of the luminance reference block. In other implementations, an L-type chromaticity reference region may include both a chromaticity reference block and a first chromaticity reference region, and an L-type luminance reference region may include both a luminance reference block and a first luminance reference region. Furthermore, an L-type chromaticity reference region may consist only of the first chromaticity reference region, and an L-type chromaticity current region may consist only of the first chromaticity current region located to the left of the chromaticity current block.
[0099] In some implementations, the T-type chromaticity reference region may include only a second chromaticity reference region located above the chromaticity reference block, and the T-type luminance reference region may include only a second luminance reference region located above the luminance reference block. In other implementations, the T-type chromaticity reference region may include both a chromaticity reference block and a second chromaticity reference region, and the T-type luminance reference region may include both a luminance reference block and a second luminance reference region. Furthermore, the T-type chromaticity reference region may include only the second chromaticity reference region, and the T-type chromaticity current region may include only the second chromaticity current region located above the chromaticity current block.
[0100] In some specific embodiments, an LT-type chromaticity reference region may include only a first chromaticity reference region and a second chromaticity reference region, and an LT-type luminance reference region may include only a first luminance reference region and a second luminance reference region. In some other specific embodiments, an LT-type chromaticity reference region may include a chromaticity reference block, a first chromaticity reference region, and a second chromaticity reference region, and an LT-type luminance reference region may include a luminance reference block, a first luminance reference region, and a second luminance reference region. In some other specific embodiments, an LT-type chromaticity reference region may include a first chromaticity reference region, a second chromaticity reference region, and a third chromaticity reference region located on the upper left side of a chromaticity reference block, and an LT-type luminance reference region may include a first luminance reference region, a second luminance reference region, and a third luminance reference region located on the upper left side of a luminance reference block. In some other specific embodiments, an LT-type chromaticity reference region may include a chromaticity reference block, a first chromaticity reference region, a second chromaticity reference region, and a third chromaticity reference region, and an LT-type luminance reference region may include a luminance reference block, a first luminance reference region, a second luminance reference region, and a third luminance reference region. In some specific implementations, the LT type chromaticity reference region may consist only of the chromaticity reference block, and the LT type luminance reference region may consist only of the luminance reference block.
[0101] In some specific implementations, the LT-type chromaticity reference region may include only the first chromaticity reference region and the second chromaticity reference region, and the LT-type chromaticity current region may include only the first chromaticity current region and the second chromaticity current region. In some other specific implementations, the LT-type chromaticity reference region may include the first chromaticity reference region, the second chromaticity reference region, and the third chromaticity reference region located on the upper left side of the chromaticity reference block, and the LT-type chromaticity current region may include the first chromaticity current region, the second chromaticity current region, and the third chromaticity current region located on the upper left side of the chromaticity current block.
[0102] In some specific implementations, when the decoder module 124 derives the chroma prediction model of the current chroma block based on the chroma reference region and the luma reference region, it can use one of several intra-prediction model modes, including: Cross-Component Linear Model (CCLM) mode, Multi-Model Linear Model (MMLM) mode, Convolutional Cross-Component Intra-Prediction Model (CCCM) mode, Gradient Linear Model (GLM) mode, and slope adjustment of the linear model mode. Then, the decoder module 124 can reconstruct the current chroma block based on the chroma prediction model of the luma corresponding block and the current chroma block.
[0103] In CCLM mode, decoder module 124 can directly derive multiple prediction model parameters for the chromaticity linear model of the current chromaticity block based on multiple sample correlations between multiple chromaticity reference samples in the chromaticity reference region and multiple luminance reference samples in the luminance reference region. Decoder module 124 can then set the chromaticity linear model as the chromaticity prediction model for reconstructing the current chromaticity block.
[0104] In MMLM mode, decoder module 124 can divide the sample correlation between chromaticity reference samples in the chromaticity reference region and luminance reference samples in the luminance reference region into multiple sample groups. Decoder module 124 can derive multiple prediction model parameters for the chromaticity linear model for each sample group based on the sample correlation in the corresponding sample group. Therefore, in MMLM mode, sample groups can correspond one-to-one with chromaticity linear models, and the number of sample groups can be equal to the number of chromaticity linear models. Decoder module 124 can then set a combination of chromaticity linear models as the chromaticity prediction model for reconstructing the current chromaticity block.
[0105] In CCCM mode, decoder module 124 can directly derive multiple prediction model parameters for the chroma convolutional filter used for the current chroma block based on multiple sample correlations between multiple chroma reference samples in the chroma reference region and multiple luminance reference samples in the luminance reference region. In some embodiments, the chroma convolutional filter can be an M-tap filter. In some embodiments, the number M can be equal to a positive integer. For example, the number M can be equal to 7. Decoder module 124 can then set the chroma convolutional filter as the chroma prediction model for reconstructing the current chroma block. The prediction model parameters of the chroma prediction model can be derived by minimizing the difference between the chroma reference region and the luminance reference region. In some embodiments, difference minimization can be performed by minimizing the mean squared error (MSE). In some embodiments, MSE minimization can be performed by calculating the autocorrelation matrix. The autocorrelation matrix can be decomposed using LDL, and back substitution can be used to calculate the prediction model parameters. In some embodiments, the decomposition can be Cholesky decomposition.
[0106] In some specific implementations, when deriving prediction model parameters based on chromaticity reference regions and luminance reference regions, the chromaticity prediction model for the current chromaticity block can be determined based on these parameters, as follows: Pred CC (i,j)=c0×Ref LC (i,j)+c1×Ref LC (i,j-1)+c2×Ref LC (i,j+1)+c3×Ref LC (i-1,j)+c4×RefLC (i+1,j)+c5×P+c6×B P = [Ref LC (i,j)×Ref LC [i,j)+midVal]>>bitDepth B = 2 bitDepth-1 In the above equations, c0-c5 can be the first to sixth coefficients of the chromaticity prediction model for the current chromaticity block, Pred CC (i,j) can be multiple predicted samples in the current chroma block, Ref LC (i,j) can be multiple reconstructed samples in the corresponding luminance block, midVal can be the intermediate value of the sample values, and the bias term B can be represented as a scalar offset between the luminance and chrominance values. In some implementations, the first to sixth coefficients of the chrominance prediction model can be equal to the prediction model parameters determined based on the sample correlation between the chrominance reference samples in the chrominance reference region and the luminance reference samples in the luminance reference region. In some implementations, when the bit depth of the current chrominance block is equal to 10, midVal can be equal to 512. In some implementations, the bias term B can be set to an intermediate chrominance value. For example, when the bit depth of the current chrominance block is equal to 10, the bias term B can be equal to 512. In some implementations, the decoder module 124 can reconstruct the sample Ref LC (i,j) is applied to the chromaticity prediction model to generate the predicted sample Pred in the current chromaticity block. CC (i,j).
[0107] In GLM mode, decoder module 124 can determine multiple luminance gradient values based on luminance reference samples in the luminance reference region. In some implementations, the gradient filter may be a Sobel filter. Decoder module 124 can derive multiple prediction model parameters for a chroma linear model for the current chroma block based on multiple gradient correlations between chroma reference samples in the chroma reference region and luminance gradient values in the luminance reference region. Decoder module 124 can then set the chroma linear model as a chroma prediction model for reconstructing the current chroma block.
[0108] In slope adjustment for linear model mode, decoder module 124 can also adjust at least one chroma linear model of the chroma prediction model based on multiple adjustment parameters. For example, the chroma linear model in CCLM and GLM modes can be adjusted. Furthermore, the chroma linear model in MMLM can be adjusted. The adjustment parameters may include multiple slope adjustment parameters and multiple constant adjustment parameters. When adjusting a chroma linear model that includes slope linear parameters and constant linear parameters, zero or one of the slope adjustment parameters can adjust the slope linear parameters, and zero or one of the constant adjustment parameters can adjust the constant linear parameters. Therefore, in slope adjustment for linear model mode, the chroma prediction model of the current chroma block can be adjusted by at least one of the adjustment parameters.
[0109] In some implementations, when decoder module 124 derives the prediction model parameters of the chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region, the prediction model filter can be determined as the chromaticity prediction model for the current chromaticity block. Then, decoder module 124 can reconstruct the current chromaticity block based on the chromaticity prediction model of the chromaticity reference block and the current chromaticity block. In some implementations, the prediction model filter can be an M-tap filter. The prediction model parameters of the chromaticity prediction model can be derived by minimizing the difference between the predictions of the chromaticity reference region and the current chromaticity region. In some implementations, difference minimization can be performed by minimizing the mean squared error (MSE). In some implementations, MSE minimization can be performed by calculating the autocorrelation matrix. The autocorrelation matrix can be decomposed using LDL, and back-substitution can be used to calculate the filter coefficients. In some implementations, the decomposition can be a Cholesky decomposition.
[0110] In some specific implementations, when deriving prediction model parameters based on the chromaticity reference region and the current chromaticity region, the chromaticity prediction model for the current chromaticity block can be determined based on the prediction model parameters, as follows: Pred CC (i,j)=w0×Ref CR (i-1,j)+w1×Ref CR (i,j)+w2×Ref CR (i+1,j) +w3×Ref CR (i-1,j+1)+w4×Ref CR (i,j+1)+w5×Ref CR (i+1,j+1) In the above equation, w0-w5 can be the first to sixth coefficients of the prediction model filter for the current chroma block, Pred CC (i,j) can be multiple predicted samples in the current chroma block, and Ref CR(i,j) can be multiple reconstructed samples in the chromaticity reference block. In some implementations, the first to sixth coefficients of the chromaticity prediction model can be equal to the prediction model parameters determined based on the sample correlation between the chromaticity reference samples in the chromaticity reference region and multiple chromaticity current samples in the current chromaticity region. In some implementations, the decoder module 124 can reconstruct the samples Ref CR (i,j) is applied to the prediction model filter to generate the predicted sample Pred in the current chroma block. CC (i,j).
[0111] In some other implementations, when reconstructing a chroma reference block based on a chroma reference model, the prediction model parameters of the chroma prediction model can be directly inherited from multiple reference model parameters of the chroma reference model. Therefore, when reconstructing a chroma reference block based on a chroma reference model, the chroma prediction model of the current chroma block can be the same as the chroma reference model of the chroma reference block. In some implementations, one of the intra prediction model modes that includes the following can be used to determine the chroma reference model of the current chroma block: CCLM mode, MMLM mode, CCCM mode, GLM mode, and slope adjustment of the linear model mode.
[0112] Return to reference Figure 3 At box 360, decoder module 124 reconstructs the current chroma block based on the chroma prediction model of the current chroma block.
[0113] refer to Figure 1 and Figure 2The decoder module 124 can predict the current chroma block based on the chroma prediction model of the current chroma block to generate a first chroma prediction block determined based on the luma block vector. In some implementations, when the chroma prediction model of the current chroma block is derived based on a chroma reference region and a luma reference region, the decoder module 124 can predict the current chroma block based on the luma corresponding block, the luma block vector, and the chroma prediction model of the current chroma block to generate a first chroma prediction block. In some other implementations, when the chroma prediction model of the current chroma block is derived based on a chroma reference region and a current chroma region, the decoder module 124 can predict the current chroma block based on the chroma reference block determined according to the luma block vector and the chroma prediction model of the current chroma block to generate a first chroma prediction block. In some other implementations, when the chroma prediction model of the current chroma block is directly inherited from the chroma reference model of the chroma reference block, multiple input samples of the chroma prediction model can be determined based on multiple input samples of the chroma reference model determined based on the luma block vector. For example, when the input samples of the chroma reference model are determined from multiple luminance reconstruction samples in the current frame, the input samples of the chroma prediction model can be determined from multiple luminance reconstruction samples in the luminance corresponding block. Conversely, when the input samples of the chroma reference model are determined from multiple chroma reconstruction samples in the current frame, the input samples of the chroma prediction model can be determined from multiple chroma reconstruction samples in the chroma reference block.
[0114] Decoder module 124 can predict the current chroma block based on at least one of a plurality of intra-prediction modes other than the intra-prediction model mode to generate at least one second chroma prediction block. In some embodiments, the intra-prediction modes other than the intra-prediction model mode include direct block vector (DBV) mode, DC mode, planar mode, and a plurality of intra-angle modes. In some embodiments, when one of the intra-prediction modes other than the intra-prediction model mode is an intra-angle mode, the intra-prediction mode other than the intra-prediction model mode can be determined using a normal intra-direction mode (i.e., signaled via intra-prediction index), decoder-side intra-prediction mode determination (DIMD), or any other angle determination mode. In some embodiments, when using one of the DC mode, planar mode, and intra-angle mode to generate one of the at least one second chroma prediction blocks, the DC mode, planar mode, and intra-angle mode can be predefined in method / procedure 300 without any further selection and / or determination process.
[0115] In some implementations, decoder module 124 can directly set the first chroma prediction block as the chroma prediction block of the current chroma block. In other implementations, decoder module 124 can predict the current chroma block based on the first chroma prediction block, the at least one second chroma prediction block, and multiple weighting parameters. Decoder module 124 can perform a weighted combination of the first chroma prediction block and the at least one second chroma prediction block based on the weighting parameters to generate the chroma prediction block of the current chroma block. In some implementations, the weighting parameters can be predefined in decoder module 124. In other implementations, the weighting parameters can be derived based on multiple intra-frame template matching costs of the first chroma prediction block and the at least one second chroma prediction block. When the number of the at least one second chroma prediction block is equal to one, decoder module 124 can perform a weighted combination of the first chroma prediction block and the second chroma prediction block based on the weighting parameters to generate the chroma prediction block of the current chroma block.
[0116] Decoder module 124 can reconstruct the current chroma block based on the chroma prediction block of the current chroma block. Decoder module 124 can determine multiple chroma residual components from the bitstream for the current chroma block and add these chroma residual components to the chroma prediction block to reconstruct the current chroma block. Decoder module 124 can reconstruct all other chroma decoding units in the image frame to reconstruct the image frame and video. Then, method / process 300 can end.
[0117] Figure 5 This is a flowchart illustrating a method / process 500 for decoding and / or encoding video data by an electronic device, specifically implemented according to one or more examples of this disclosure. Method / process 500 is an exemplary implementation, as various ways of decoding video data exist.
[0118] Method / process 500 can be used by Figure 1 and Figure 2 The illustrated electronic device performs the procedure, and various elements in these figures are referenced in the description of the method / process 500. Figure 5 Each box illustrated may represent one or more processes, methods, or subroutines performed by an electronic device.
[0119] Figure 5 The order in which the boxes appear is for illustrative purposes only and is not intended to limit the scope of this disclosure; therefore, the order may differ from that shown. Additional boxes may be added or fewer boxes may be used without departing from this disclosure.
[0120] At box 510, method / procedure 500 may begin by receiving video data via decoder module 124. The video data received by decoder module 124 may include a bitstream.
[0121] refer to Figure 1and Figure 2 The second electronic device 120 can receive bitstreams from an encoder, such as the first electronic device 110 (or other video provider), via a second interface 126. The second interface 126 can provide the bitstreams to the decoder module 124.
[0122] At box 520, decoder module 124 determines the current chroma block from the current frame included in the video data.
[0123] 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 multiple image frames included in the bitstream. Determining the chroma current block from the current frame included in the video data at box 520 can be the same as determining the chroma current block from the current frame included in the video data at box 320.
[0124] At box 530, decoder module 124 determines from the current frame the chroma reference block indicated by the chroma block vector of the current chroma block.
[0125] refer to Figure 1 and Figure 2 Decoder module 124 can determine the chroma block vector for the current chroma block used to determine the chroma reference block. The chroma block vector of the current chroma block can indicate that the chroma reference block is model reference information used to create a prediction model to reconstruct the chroma block. In some implementations, the intra-template matching prediction (intraTMP) mode can be used to determine the chroma block vector of the current chroma block to indicate the chroma reference block without parsing the vector syntax. Decoder module 124 can select the chroma reference block from a plurality of intraTMP current candidates for the current chroma block and determine the chroma block vector associated with the current chroma block.
[0126] In some implementations, decoder module 124 may also determine a luminance reference block from the current frame based on a chrominance reference block. The luminance reference block may correspond to the chrominance reference block. In some implementations, the luminance reference block may be co-located with the chrominance reference block. For example, the luminance position of the top-left sample in the luminance reference block may be co-located with the chrominance position of the top-left sample in the chrominance reference block. Both the chrominance reference block and the luminance reference block may be associated with the chrominance block vector of the current chrominance block. In some other implementations, decoder module 124 may determine the chrominance reference block from the current frame and then reconstruct the current chrominance block without considering the luminance reference block.
[0127] refer to Figure 4A and Figure 4BThe decoder module 124 can determine the current chroma block 411, and then determine the chroma reference block from the chroma frame 410 based on the current chroma block 411. The decoder module 124 can select the chroma reference block from a plurality of chroma reference candidates based on the current chroma block 411, and determine the current chroma vector pointing from the current chroma block to the chroma reference block.
[0128] For example, decoder module 124 can set the first chroma vector candidate 4110 and the first chroma reference candidate 4111 as the chroma current vector and chroma reference block of the chroma current block 411. Then, decoder module 124 can determine the first luminance reference candidate 4211, which is in the same position as the first chroma reference candidate 4111, as the luminance reference block. In addition, decoder module 124 can also determine the luminance current block 421, which is in the same position as the chroma current block 411. Luminance current block 421 and the first luminance reference candidate 4211 can be included in luminance frame 420.
[0129] The current chroma size of the chroma current block can be proportional to the luminance reference size of the luminance reference block based on multiple scaling factors. In some implementations, the scaling factors may include a first scaling factor and a second scaling factor. The first scaling factor may be the same as or different from the second scaling factor. The first scaling factor can be used to scale a first length along a first direction, and the second scaling factor can be used to scale a second length along a second direction. The first direction may be perpendicular to the second direction. In some implementations, the first scaling factor may be a width scaling factor, and the second scaling factor may be a height scaling factor. For example, the current luminance width W of the luminance current block... LC The brightness reference width W of the brightness reference block LR This can be equal to the current width W of the current chroma block. CC The brightness width value generated by multiplying by a width scaling factor. The brightness of the current block corresponds to its height H. LC The luminance reference height H of the luminance reference block LR This can be equal to the current height H of the current chroma block. CC The luminance height value is generated by multiplying by a height scaling factor. Additionally, the chromaticity reference width W of the chromaticity reference block... CR It can be equal to the current width W of the current chroma block. CC And the chromaticity reference height H of the chromaticity reference block CR It can be equal to the current chroma height H of the current chroma block. CC .
[0130] The scaling factor can be derived based on the video format. For example, when the video format is YUV444, the first scaling factor can be a width scaling factor equal to one, and the second scaling factor can be a height scaling factor equal to one. Conversely, when the video format is YUV422, the first scaling factor can be a width scaling factor equal to two, and the second scaling factor can be a height scaling factor equal to one. When the video format is YUV420, the first scaling factor can be a width scaling factor equal to two, and the second scaling factor can be a height scaling factor equal to two.
[0131] At box 540, decoder module 124 derives the chromaticity prediction model for the current chromaticity block based on the chromaticity reference block.
[0132] refer to Figure 1 and Figure 2 In some implementations, decoder module 124 may determine a chromaticity reference region based on a chromaticity reference block and a luminance reference region based on a luminance reference block. Then, decoder module 124 may derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the luminance reference region. In other implementations, decoder module 124 may determine a chromaticity reference region based on a chromaticity reference block and a current chromaticity region based on the current chromaticity block. Then, decoder module 124 may derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region.
[0133] In some implementations, when the decoder module 124 derives the chromaticity prediction model of the current chromaticity block based on the chromaticity reference region and the luma reference region, determining the chromaticity reference region and the luma reference region at box 540 can be the same as determining them at box 350. In some other implementations, when the decoder module 124 derives the chromaticity prediction model of the current chromaticity block based on the chromaticity reference region and the current chromaticity region, determining the chromaticity reference region and the current chromaticity region at box 540 can be the same as determining them at box 350. The use of the chromaticity reference region, the luma reference region, and the current chromaticity region can also include three reference direction types: left type (L type), top type (T type), and top-left type (LT type), which are the same as the three reference direction types at box 350.
[0134] When decoder module 124 derives the chroma prediction model for the current chroma block based on the chroma reference region and the luma reference region, it can use one of several intra-prediction model modes, including: Cross-Component Linear Model (CCLM) mode, Multi-Model Linear Model (MMLM) mode, Convolutional Cross-Component Intra-Prediction Model (CCCM) mode, Gradient Linear Model (GLM) mode, and slope adjustment of the linear model mode. Decoder module 124 can then reconstruct the current chroma block based on the chroma prediction models of the luma current block and the current chroma block.
[0135] When decoder module 124 derives the chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region, a prediction model filter can be used to determine the chromaticity prediction model for the current chromaticity block. Decoder module 124 can then reconstruct the current chromaticity block based on the chromaticity prediction model of the chromaticity reference block and the current chromaticity block. In some embodiments, the prediction model filter can be an M-tap filter. Multiple filter coefficients of the prediction model filter can be derived by minimizing the difference between the predictions of the chromaticity reference region and the current chromaticity region. In some embodiments, difference minimization can be performed by minimizing the mean squared error (MSE). In some embodiments, MSE minimization can be performed by calculating the autocorrelation matrix. The autocorrelation matrix can be decomposed using LDL, and back substitution can be used to calculate the filter coefficients. In some embodiments, the decomposition can be a Cholesky decomposition.
[0136] In some specific implementations, the prediction model filter can be determined as follows: Pred CC (i,j)=w0×Ref CR (i-1,j)+w1×Ref CR (i,j)+w2×Ref CR (i+1,j) +w3×Ref CR (i-1,j+1)+w4×Ref CR (i,j+1)+w5×Ref CR (i+1,j+1) In the above equation, w0-w5 can be the first to sixth coefficients of the prediction model filter for the current chroma block, Pred CC (i,j) can be multiple predicted samples in the current chroma block, and Ref CR (i,j) can be multiple reconstructed samples in the chromaticity reference block.
[0137] In some other implementations, when reconstructing a chroma reference block based on a chroma reference model, the prediction model parameters of the chroma prediction model can be directly inherited from multiple reference model parameters of the chroma reference model. Therefore, when reconstructing a chroma reference block based on a chroma reference model, the chroma prediction model of the current chroma block can be the same as the chroma reference model of the chroma reference block. In some implementations, one of the intra prediction model modes that includes the following can be used to determine the chroma reference model of the current chroma block: CCLM mode, MMLM mode, CCCM mode, GLM mode, and slope adjustment of the linear model mode.
[0138] The chromaticity prediction model for the current chromaticity block exported at box 540 can be the same as the chromaticity prediction model for the current chromaticity block exported at box 350.
[0139] Return to reference Figure 5 At box 550, decoder module 124 reconstructs the current chroma block based on the chroma prediction model of the current chroma block.
[0140] Reconstructing the current chroma block at box 550 is the same as reconstructing the current chroma block at box 360. Additionally, a first chroma prediction block, generated by predicting the current chroma block at box 550 using a chroma prediction model based on the current chroma block, is determined based on the chroma block vector. Then, method / procedure 500 can end.
[0141] When at least one of methods / procedures 300 and 500, and any other chroma decoding method (including chroma prediction models derived from chroma reference blocks indicated by chroma block vectors), is used by... Figure 1 and Figure 2 When the illustrated electronic device is executed, the decoder module 124 can determine from the video data a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. In some implementations, the syntax element can be a block vector prediction model flag, such as the BVLM flag. When the syntax element of the block vector prediction model is equal to one, one of methods / procedures 300 and 500, as well as any other chroma decoding method, can be applied to the current chroma block. When the syntax element of the block vector prediction model is equal to zero, methods / procedures 300 and 500, as well as any other chroma decoding method, cannot be applied to the current chroma block.
[0142] Decoder module 124 can also determine whether the tree type of the current chroma block is two-tree. In some embodiments, when the tree type of the current chroma block is two-tree, decoder module 124 can determine whether an indicator of the current chroma block is a syntax element reconstructed based on a chroma prediction model of the current chroma block, which is derived based on either the chroma block vector or the luma block vector. When the tree type of the current chroma block is not two-tree, decoder module 124 can ignore determining the syntax element from the video data. In some other embodiments, when the tree type of the current chroma block is single-tree, decoder module 124 can determine whether an indicator of the current chroma block is a syntax element reconstructed based on a chroma prediction model of the current chroma block, which is derived based on either the chroma block vector or the luma block vector. When the tree type of the current chroma block is not single-tree, decoder module 124 can ignore determining the syntax element from the video data. In some embodiments, when the syntax element of the block vector prediction model is not parsed, the syntax element of the block vector prediction model can be inferred as zero.
[0143] Decoder module 124 can also determine whether the slice type of the slice including the current chroma block is an I-slice type. In some specific implementations, when the slice tree type of the current chroma block is an I-slice type, decoder module 124 can determine whether an indicator of whether the current chroma block is a syntax element reconstructed based on a chroma prediction model of the current chroma block, which is derived based on either the chroma block vector or the luma block vector. When the slice type of the current chroma block is not an I-slice type (e.g., B-slice type and P-slice type), decoder module 124 can ignore determining syntax elements from the video data. When the syntax elements of the block vector prediction model are not parsed, the syntax elements of the block vector prediction model can be inferred as zero.
[0144] Decoder module 124 can also determine a direct mode flag indicating whether direct mode (DM) is applied to the current chroma block. In some implementations, when the DM flag of the current chroma block indicates that direct mode is applied, decoder module 124 can also determine whether the current chroma block is a syntax element reconstructed based on a chroma prediction model of the current chroma block, which is derived from either the chroma block vector or the luma block vector. When direct mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When direct mode is applied and the syntax element of the block vector prediction model is equal to zero, the direct mode is applied to the current chroma block. Furthermore, when the DM flag of the current chroma block indicates that direct mode is not applied, decoder module 124 may ignore determining the syntax element from the video data. In some implementations, when the DM flag of the current chroma block indicates the application of direct mode and the prediction mode of the corresponding luminance block is associated with the block vector (e.g., intraTMP mode, IBC mode, and any other block vector-related mode), the decoder module 124 may ignore determining the syntax elements from the video data, and the syntax elements of the block vector prediction model may be inferred to be equal to one.
[0145] Decoder module 124 can also determine a DBV flag indicating whether Direct Block Vector (DBV) mode is applied to the current chroma block. In some implementations, when the DBV flag of the current chroma block indicates the application of DBV mode, decoder module 124 can determine whether the current chroma block is a syntax element reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. When DBV mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When DBV mode is applied and the syntax element of the block vector prediction model is equal to zero, the DBV mode is applied to the current chroma block. Furthermore, when the DBV flag of the current chroma block indicates that DBV mode is not applied, decoder module 124 can ignore determining the syntax element from the video data. In some implementations, when the DBV flag of the current chroma block indicates the application of direct mode and the prediction mode of the corresponding luminance block is associated with the block vector (e.g., intraTMP mode, IBC mode, and any other block vector-related mode), the decoder module 124 may ignore determining the syntax elements from the video data, and the syntax elements of the block vector prediction model may be inferred to be equal to one.
[0146] In some specific implementations, when the tree type is a single tree, the luminance corresponding block can be located in the same position as the chrominance current block. Additionally, when the tree type is a dual tree, the luminance segmentation structure can differ from the chrominance segmentation structure. Therefore, the luminance corresponding block can include one of multiple luminance positions (e.g., the top-left, top-right, bottom-left, bottom-right, and center points of the current luminance block).
[0147] Decoder module 124 can also determine a linear model flag (e.g., isLM flag) indicating whether CCLM mode is applied to the current chroma block. In some implementations, when the linear model flag of the current chroma block indicates that CCLM mode is applied, decoder module 124 can determine whether the current chroma block is a syntax element reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. When CCLM mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When DBV mode is applied and the syntax element of the block vector prediction model is equal to zero, the CCLM mode is applied to the current chroma block. Furthermore, when the isLM flag of the current chroma block indicates that CCLM is not applied, decoder module 124 can ignore determining the syntax element from the video data.
[0148] Decoder module 124 may also determine a CCLM index (e.g., cclm_idx) indicating whether a CCLM mode is applied to the current chroma block. In some implementations, when the CCLM index indicates the application of a CCLM mode, decoder module 124 may determine whether the current chroma block is a syntax element reconstructed based on a chroma prediction model of the current chroma block, which is derived based on either the chroma block vector or the luma block vector.
[0149] Figure 6 This is an example illustrating specific implementations based on one or more examples of this disclosure. Figure 1 The illustrated block diagram shows an encoder module 114 of a first electronic device 110. The encoder module 114 may include a prediction processor (e.g., prediction processing unit 6141), at least a first adder (e.g., first adder 6142) and a second adder (e.g., second adder 6145), a transform / quantization processor (e.g., transform / quantization unit 6143), an inverse quantization / inverse transform processor (e.g., inverse quantization / inverse transform unit 6144), a filter (e.g., filter unit 6146), a decoded image buffer (e.g., decoded image buffer 6147), and an entropy encoder (e.g., entropy coding unit 6148). The prediction processing unit 6141 of the encoder module 114 may also include a segmentation processor (e.g., segmentation unit 61411), an intra-frame prediction processor (e.g., intra-frame prediction unit 61412), and an inter-frame prediction processor (e.g., inter-frame prediction unit 61413). The encoder module 114 may receive source video and encode the source video to output a bitstream.
[0150] The encoder module 114 can receive a source video comprising multiple image frames, and then divide the image frames according to the decoding structure. Each image frame can be divided into at least one image block.
[0151] The at least one image block may include a luminance block having multiple luminance samples and at least one chrominance block having multiple chrominance samples. The luminance block and the at least one chrominance block may be further subdivided to generate macroblocks, CTUs, CBs, their sub-partitions, and / or other equivalent decoding units.
[0152] Encoder module 114 can perform additional sub-segments of the source video. It should be noted that the specific implementations disclosed are generally applicable to video decoding, regardless of how the source video is segmented before and / or during encoding.
[0153] During the encoding process, the prediction processing unit 6141 may receive the current image block of a specific image frame. The current image block may be a luminance block or a chrominance block in the specific image frame.
[0154] The segmentation unit 61411 can divide the current image block into multiple block units. The intra-frame prediction unit 61412 can perform intra-frame prediction decoding of the current block unit relative to one or more adjacent blocks in the same frame as the current block unit to provide spatial prediction. The inter-frame prediction unit 61413 can perform inter-frame prediction decoding of the current block unit relative to one or more blocks in one or more reference image blocks to provide temporal prediction.
[0155] The prediction processing unit 6141 can select one of the decoding results generated by the intra-frame prediction unit 61412 and the inter-frame prediction unit 61413 based on a mode selection method (such as a cost function). The mode selection method can be a rate-distortion optimization (RDO) process.
[0156] The prediction processing unit 6141 can determine the selected decoding result and provide the prediction block corresponding to the selected decoding result to the first adder 6142 to generate a residual block, and provide it to the second adder 6145 to reconstruct the coded block unit. The prediction processing unit 6141 can also provide syntax elements, such as motion vectors, intra-frame mode indicators, segmentation information and / or other syntax information, to the entropy coding unit 6148.
[0157] Intra-prediction unit 61412 can perform intra-prediction on the current block unit. Intra-prediction unit 61412 can determine the intra-prediction mode for the reconstructed samples adjacent to the current block unit in order to encode the current block unit.
[0158] Intra-prediction unit 61412 can use various intra-prediction modes to encode the current block unit. Intra-prediction unit 61412 of prediction processing unit 6141 can select an appropriate intra-prediction mode from the selected modes. Intra-prediction unit 61412 can use cross-component prediction mode to encode the current block unit to predict one of the two chrominance components of the current block unit based on the luma component of the current block unit. Intra-prediction unit 61412 can predict the first chrominance component of the two chrominance components of the current block unit based on the second chrominance component of the two chrominance components of the current block unit.
[0159] Inter-frame prediction unit 61413 can perform inter-frame prediction on the current block unit as an alternative to intra-frame prediction performed by intra-frame prediction unit 61412. Inter-frame prediction unit 61413 can perform motion estimation to estimate the motion of the current block unit to generate motion vectors.
[0160] The motion vector indicates the displacement of the current block cell within the current image block relative to the reference block cell within the reference image block. The inter-frame prediction unit 61413 may receive at least one reference image block stored in the decoded image buffer 6147 and estimate motion based on the received reference image block to generate a motion vector.
[0161] The first adder 6142 generates a residual block by subtracting the prediction block determined by the prediction processing unit 6141 from the original current block unit. The first adder 6142 may represent one or more components performing the subtraction.
[0162] The transform / quantization unit 6143 can apply a transform to the residual block to generate residual transform coefficients, and then quantize these residual transform coefficients to further reduce the bit rate. The transform can be one of DCT, DST, AMT, MDNSST, HyGT, signal-dependent transform, KLT, wavelet transform, integer transform, subband transform, and conceptually similar transforms.
[0163] Transformation can convert 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 parameters.
[0164] The transform / quantization unit 6143 can perform a scan of a matrix including quantized transform coefficients. Alternatively, the entropy encoding unit 6148 can perform the scan.
[0165] The entropy coding unit 6148 may receive multiple syntax elements from the prediction processing unit 6141 and the transform / quantization unit 6143, including quantization parameters, transform data, motion vectors, intra-frame modes, segmentation information, and / or other syntax information. The entropy coding unit 6148 may encode the syntax elements into a bitstream.
[0166] The entropy coding unit 6148 can entropy-encode the quantized transform coefficients by performing CAVLC, CABAC, SBAC, PIPE decoding, or another entropy decoding technique to generate an encoded bitstream. The encoded bitstream can be transmitted to another device (e.g., a second electronic device 120, such as...). Figure 1 (As shown) or archived for later sending or retrieval.
[0167] The inverse quantization / inverse transform unit 6144 can 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 6145 can add the reconstructed residual block to the prediction block provided by the prediction processing unit 6141 to produce a reconstructed block for storage in the decoded image buffer 6147.
[0168] Filtering unit 6146 may include a deblocking filter, a SAO filter, a bilateral filter, and / or an ALF to remove block artifacts from the reconstructed block. In addition to the deblocking filter, SAO filter, bilateral filter, and ALF, other filters (in-loop or post-loop) may also be used. For simplicity, such filters are not illustrated; these filters may filter the output of the second adder 6145.
[0169] The decoded image buffer 6147 may be a reference image memory that stores reference blocks to be used by the encoder module 614 for encoding video (such as in intra-frame decoding or inter-frame decoding modes). The decoded image buffer 6147 may include various memory devices, such as DRAM (e.g., including SDRAM), MRAM, RRAM, or other types of memory devices. The decoded image buffer 6147 may be on-chip with other components of the encoder module 114, or off-chip relative to those components.
[0170] The method / process 300 for decoding and / or encoding video data may be performed by the first electronic device 110. (See reference) Figure 1 , Figure 3 and Figure 6 At box 310, method / procedure 300 may begin by receiving video data via encoder module 114. The video data received by encoder module 114 may be video. At box 320, encoder module 114 determines the chroma current block from the current frame included in the video data. Based on segmentation instructions according to any video decoding standard, encoder module 114 may segment the current frame to generate multiple CTUs, and further segment one of these CTUs to determine a block unit that includes both the chroma current block and the luma current block.
[0171] At box 330, encoder module 114 determines the luminance corresponding block reconstructed based on the luminance reference block. Encoder module 114 can determine the luminance current block that is in the same position as the chroma current block, and then determine the luminance corresponding block based on the luminance current block that is in the same position as the chroma current block.
[0172] At block 340, encoder module 114 determines a chromaticity reference block based on the luminance block vector of the luminance corresponding block. Encoder module 114 can determine the luminance block vector of the luminance corresponding block used to determine the luminance reference block. Then, encoder module 114 can determine the chromaticity block vector of the current chromaticity block based on the luminance block vector used to determine the chromaticity reference block.
[0173] At box 350, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference block. In some embodiments, encoder module 114 can determine a chromaticity reference region based on the chromaticity reference block and a luminance reference region based on a luminance reference block. Then, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the luminance reference region. In some other embodiments, encoder module 114 can determine a chromaticity reference region based on the chromaticity reference block and a current chromaticity region based on the current chromaticity block. Then, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region.
[0174] At frame 360, encoder module 114 reconstructs the current chroma block based on the chroma prediction model of the current chroma block. Encoder module 114 may predict the current chroma block based on the chroma prediction model of the current chroma block to generate a chroma prediction block of the current chroma block.
[0175] When block cells are predicted by encoder module 114, encoder module 114 can predict the current chroma block based on other prediction modes to generate multiple chroma prediction results. Encoder module 114 can select either the chroma prediction block or the chroma prediction result based on a mode selection method (such as a cost function). The mode selection method can be a rate-distortion optimization (RDO) process. Encoder module 114 can provide the selected decoding result to first adder 6142 to generate a residual block and to second adder 6145 to reconstruct the coded block cell. Encoder module 114 can also provide syntax elements, such as motion vectors, intra-frame mode indicators, segmentation information, and / or other syntax information, to entropy coding unit 6148.
[0176] Reconstructing the current chroma block by encoder module 114 at boxes 330-350 is the same as reconstructing the current chroma block by decoder module 124 at boxes 330-350. Reconstructing the current chroma block by decoder module 124 at box 360 can also be performed by encoder module 114 at box 360. Then, method / procedure 300 for encoder module 114 can end.
[0177] The method / process 500 for decoding and / or encoding video data may be performed by the first electronic device 110. (See reference) Figure 1 , Figure 5 and Figure 6 At box 510, method / procedure 500 may begin by receiving video data via encoder module 114. The video data received by encoder module 114 may be video. At box 520, encoder module 114 determines the chroma current block from the current frame included in the video data. Based on segmentation instructions according to any video decoding standard, encoder module 114 may segment the current frame to generate multiple CTUs, and further segment one of these CTUs to determine a block unit that includes both the chroma current block and the luma current block.
[0178] At box 530, encoder module 114 determines from the current frame the chroma reference block indicated by the chroma block vector of the current chroma block. The intra-template matching prediction (intraTMP) mode can be used to determine the chroma block vector of the current chroma block without parsing the vector syntax, for use in indicating the chroma reference block.
[0179] At block 540, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference block. In some embodiments, encoder module 114 can determine a chromaticity reference region based on the chromaticity reference block and a luminance reference region based on a luminance reference block. Then, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the luminance reference region. In some other embodiments, encoder module 114 can determine a chromaticity reference region based on the chromaticity reference block and a current chromaticity region based on the current chromaticity block. Then, encoder module 114 can derive a chromaticity prediction model for the current chromaticity block based on the chromaticity reference region and the current chromaticity region.
[0180] At box 550, encoder module 114 reconstructs the current chroma block based on the chroma prediction model of the current chroma block. Encoder module 114 may predict the current chroma block based on the chroma prediction model of the current chroma block to generate a chroma prediction block of the current chroma block.
[0181] When block cells are predicted by encoder module 114, encoder module 114 can predict the current chroma block based on other prediction modes to generate multiple chroma prediction results. Encoder module 114 can select either the chroma prediction block or the chroma prediction result based on a mode selection method (such as a cost function). The mode selection method can be a rate-distortion optimization (RDO) process. Encoder module 114 can provide the selected decoding result to first adder 6142 to generate a residual block and to second adder 6145 to reconstruct the coded block cell. Encoder module 114 can also provide syntax elements, such as motion vectors, intra-frame mode indicators, segmentation information, and / or other syntax information, to entropy coding unit 6148.
[0182] Reconstructing the current chroma block by encoder module 114 at boxes 530 and 540 is the same as reconstructing the current chroma block by decoder module 124 at boxes 530 and 544. Reconstructing the current chroma block by decoder module 124 at box 550 can also be performed by encoder module 114 at box 550. Then, method / procedure 500 for encoder module 114 can end.
[0183] When at least one of methods / procedures 300 and 500, and any other chroma encoding / decoding method (including chroma prediction models that derive the chroma current block based on a chroma reference block indicated by a chroma block vector), is used by Figure 1 and Figure 6 When the illustrated electronic device is executed, encoder module 114 may embed a syntax element in the bitstream indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. In some implementations, the syntax element may be a block vector prediction model flag, such as the BVLM flag. When the syntax element of the block vector prediction model is equal to one, one of methods / procedures 300 and 500, as well as any other chroma decoding method, may be applied to the current chroma block. When the syntax element of the block vector prediction model is equal to zero, methods / procedures 300 and 500, as well as any other chroma decoding method, may not be applied to the current chroma block.
[0184] Encoder module 114 may also embed a tree-type syntax element indicating whether the tree type of the current chroma block is a two-tree. In some implementations, when the tree type of the current chroma block is two-tree, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector into the bitstream. When the tree type of the current chroma block is not two-tree, encoder module 114 may determine not to embed the syntax element into the bitstream. In some other implementations, when the tree type of the current chroma block is single-tree, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector into the bitstream. When the tree type of the current chroma block is not single-tree, encoder module 114 may determine not to embed the syntax element into the bitstream. In some specific implementations, when the syntax elements of the block vector prediction model are not embedded in the bitstream, the syntax elements of the block vector prediction model can be inferred to be zero.
[0185] Encoder module 114 may also embed a slice type syntax element indicating whether the slice type of the slice including the current chroma block is an I-slice type. In some specific implementations, when the slice tree type of the current chroma block is an I-slice type, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. When the slice type of the current chroma block is not an I-slice type (e.g., B-slice type and P-slice type), encoder module 114 may determine not to embed the syntax element into the bitstream. When the syntax element of the block vector prediction model is not embedded in the bitstream, the syntax element of the block vector prediction model can be inferred as zero.
[0186] Encoder module 114 may also embed a direct mode flag indicating whether direct mode (DM) is applied to the current chroma block. In some implementations, when the DM flag of the current chroma block indicates that direct mode is applied, encoder module 114 may also embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. When direct mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When direct mode is applied and the syntax element of the block vector prediction model is equal to zero, the direct mode is applied to the current chroma block. Furthermore, when the DM flag of the current chroma block indicates that direct mode is not applied, encoder module 114 may determine not to embed the syntax element into the bitstream. In some implementations, when the DM flag of the current chroma block indicates the application of direct mode and the prediction mode of the corresponding luminance block is associated with the block vector (e.g., intraTMP mode, IBC mode, and any other block vector-related mode), the encoder module 114 may determine that syntax elements are not embedded in the bitstream, and the syntax elements of the block vector prediction model may be inferred to be equal to one.
[0187] Encoder module 114 may also embed a DBV flag indicating whether a Direct Block Vector (DBV) mode is applied to the current chroma block. In some implementations, when the DBV flag of the current chroma block indicates that a DBV mode is applied, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either a chroma block vector or a luma block vector. When a DBV mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When a DBV mode is applied and the syntax element of the block vector prediction model is equal to zero, the DBV mode is applied to the current chroma block. Furthermore, when the DBV flag of the current chroma block indicates that a DBV mode is not applied, encoder module 114 may determine not to embed syntax elements in the block unit. In some specific implementations, when the DBV flag of the current chroma block indicates the application of direct mode and the prediction mode of the corresponding luminance block is associated with the block vector (e.g., intraTMP mode, IBC mode, and any other block vector-related mode), the encoder module 114 may determine that syntax elements are not embedded in the bitstream, and the syntax elements of the block vector prediction model may be inferred to be equal to one.
[0188] In some specific implementations, when the tree type is a single tree, the luminance corresponding block can be located in the same position as the chrominance current block. Additionally, when the tree type is a dual tree, the luminance segmentation structure can differ from the chrominance segmentation structure. Therefore, the luminance corresponding block can include one of multiple luminance positions (e.g., the top-left, top-right, bottom-left, bottom-right, and center points of the current luminance block).
[0189] Encoder module 114 also embeds a linear model flag (e.g., an isLM flag) indicating whether CCLM mode is applied to the current chroma block. In some implementations, when the linear model flag of the current chroma block indicates that CCLM mode is applied, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector. When CCLM mode is applied and the syntax element of the block vector prediction model is equal to one, the block vector prediction model is applied to the current chroma block. When DBV mode is applied and the syntax element of the block vector prediction model is equal to zero, CCLM mode is applied to the current chroma block. Furthermore, when the isLM flag of the current chroma block indicates that CCLM is not applied, encoder module 114 may determine not to embed the syntax element into the bitstream.
[0190] Encoder module 114 may also embed a CCLM index (e.g., cclm_idx) indicating whether a CCLM mode is applied to the current chroma block. In some implementations, when the CCLM index indicates the application of a CCLM mode, encoder module 114 may embed a syntax element indicating whether the current chroma block is reconstructed based on a chroma prediction model derived from either the chroma block vector or the luma block vector.
[0191] The specific implementations disclosed are to be considered illustrative rather than restrictive in all respects. It should also be understood that this disclosure is not limited to the specific implementations disclosed; on the contrary, many rearrangements, modifications, and substitutions are possible without departing from the scope of this disclosure.
Claims
1. A method for decoding video data performed by an electronic device, the method comprising: Receive the video data; Determine the current chroma block from the current frame included in the video data; Determine the luminance correspondence block reconstructed based on the luminance reference block, where: The luminance corresponding block and the luminance reference block are included in the current frame and are reconstructed before the chroma current block is reconstructed. The luminance corresponding block is determined based on the luminance current block that is in the same position as the chrominance current block; A chromaticity reference block is determined based on the luminance block vector of the luminance corresponding block, wherein the luminance block vector of the luminance corresponding block points from the luminance corresponding block to the luminance reference block; Based on the chromaticity reference block, derive the chromaticity prediction model for the current chromaticity block; and The chromaticity current block is reconstructed based on the chromaticity prediction model of the current chromaticity block.
2. The method according to claim 1, wherein: The brightness corresponding block is one of the current brightness block and the brightness adjacent block adjacent to the current brightness block.
3. The method according to any of the preceding claims, wherein: The luminance block vector of the luminance corresponding block is determined using either Intra-Block Copy (IBC) mode or Intra-Template Match Prediction (intraTMP) mode to indicate the luminance reference block used to reconstruct the luminance corresponding block.
4. The method according to any of the preceding claims, further comprising: The chromaticity reference region is determined based on the chromaticity reference block; The brightness reference area is determined based on the brightness reference block; as well as The chromaticity prediction model of the current chromaticity block is derived based on the chromaticity reference region and the luminance reference region, wherein the current chromaticity block is reconstructed based on the luminance corresponding block and the chromaticity prediction model of the current chromaticity block.
5. The method according to any of the preceding claims, wherein: The chroma prediction model for the current chroma block is determined using one of several intra-prediction model modes, including: cross-component linear model (CCLM) mode, multi-model linear model (MMLM) mode, convolutional cross-component intra-prediction model (CCCM) mode, gradient linear model (GLM) mode, and slope adjustment of linear model mode.
6. The method according to any one of claims 1 to 3, wherein: When the chromaticity reference block is reconstructed based on the chromaticity reference model, the chromaticity prediction model of the current chromaticity block is the same as the chromaticity reference model of the chromaticity reference block, and The chroma reference model for the current chroma block is determined using one of several intra-prediction model modes, including: CCLM mode, MMLM mode, CCCM mode, GLM mode, and slope adjustment of the linear model mode.
7. The method according to any one of claims 1 to 3, further comprising: The chromaticity reference region is determined based on the chromaticity reference block; The current chromaticity region is determined based on the current chromaticity block. as well as The chromaticity prediction model of the current chromaticity block is derived based on the chromaticity reference region and the current chromaticity region, wherein the current chromaticity block is reconstructed based on the chromaticity prediction model of the chromaticity reference block and the current chromaticity block.
8. The method according to any preceding claim, further comprising: The chromaticity prediction model is used to predict the current chromaticity block to generate a first chromaticity prediction block determined based on the luminance block vector. The current chroma block is predicted based on one of multiple intra-prediction modes in addition to multiple intra-prediction model modes to generate a second chroma prediction block. The first chromaticity prediction block and the second chromaticity prediction block are weighted and combined to generate the chromaticity prediction block of the current chromaticity block; as well as The chroma current block is reconstructed based on the chroma prediction block of the chroma current block.
9. The method according to claim 8, wherein: The multiple intra-prediction modes, in addition to the aforementioned multiple intra-prediction model modes, include Direct Block Vector (DBV) mode, DC mode, planar mode, and multiple intra-angle modes.
10. The method according to any of the preceding claims, wherein: The chromaticity prediction model of the current chromaticity block is further adjusted by at least one of a plurality of adjustment parameters.
11. The method according to any preceding claim, further comprising: Determine whether the tree type of the current chroma block is a two-tree; When the tree type of the current chroma block is the dual tree, determine from the video data whether the current chroma block is a syntax element that indicates whether the current chroma block is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the luma block vector; as well as When the tree type of the current chroma block is not the dual tree, the syntax element determined from the video data is ignored.
12. The method according to any one of claims 1 to 10, further comprising: Determine whether the slice type of the current chroma block is an I slice type; When the slice type of the current chroma block is the I slice type, determine from the video data whether the current chroma block is a syntax element that indicates whether it is reconstructed based on the chroma prediction model of the current chroma block, the chroma prediction model being derived based on the luma block vector; as well as When the slice type of the current chroma block is not the I slice type, the syntax element determined from the video data is ignored.
13. An electronic device for decoding video data, the electronic device comprising: One or more processors; and One or more non-transitory computer-readable media, the one or more non-transitory computer-readable media being coupled to the one or more processors and storing one or more computer-executable instructions, the one or more computer-executable instructions being executed by at least one of the one or more processors causing the at least one of the one or more processors to perform the method according to any one of claims 1 to 12.
14. A method for decoding video data performed by an electronic device, the method comprising: Receive the video data; Determine the current chroma block from the current frame included in the video data; A chroma reference block is determined from the current frame by the chroma block vector of the current chroma block, wherein the chroma block vector of the current chroma block is determined using the intra-template matching prediction (intraTMP) mode to indicate the chroma reference block; The chromaticity prediction model of the current chromaticity block is derived based on the chromaticity reference block. as well as The chromaticity current block is reconstructed based on the chromaticity prediction model of the current chromaticity block.
15. The method according to claim 14, further comprising: The luminance reference block is determined from the current frame based on the chrominance reference block.
16. The method of claim 15, wherein: The luminance reference block is located in the same position as the chromaticity reference block.
17. The method according to any one of claims 15 and 16, further comprising: The chromaticity reference region is determined based on the chromaticity reference block; The brightness reference area is determined based on the brightness reference block; as well as The chromaticity prediction model for the current chromaticity block is derived based on the chromaticity reference region and the luminance reference region, wherein: The chromaticity current block is reconstructed based on the chromaticity prediction model of the current luminance block and the current chromaticity block, and The current luminance block is in the same position as the current chroma block.
18. The method according to any one of claims 14 to 17, wherein: The chroma prediction model for the current chroma block is determined using one of several intra-prediction model modes, including: cross-component linear model (CCLM) mode, multi-model linear model (MMLM) mode, convolutional cross-component intra-prediction model (CCCM) mode, gradient linear model (GLM) mode, and slope adjustment of linear model mode.
19. The method of claim 14, wherein: When the chromaticity reference block is reconstructed based on the chromaticity reference model, the chromaticity prediction model of the current chromaticity block is the same as the chromaticity reference model of the chromaticity reference block, and The chroma reference model for the current chroma block is determined using one of several intra-prediction model modes, including: CCLM mode, MMLM mode, CCCM mode, GLM mode, and slope adjustment of the linear model mode.
20. The method of claim 14, further comprising: The chromaticity reference region is determined based on the chromaticity reference block; The current chromaticity region is determined based on the current chromaticity block. as well as The chromaticity prediction model of the current chromaticity block is derived based on the chromaticity reference region and the current chromaticity region, wherein the current chromaticity block is reconstructed based on the chromaticity prediction model of the chromaticity reference block and the current chromaticity block.
21. The method according to any one of claims 14 to 20, further comprising: The chromaticity prediction model is used to predict the current chromaticity block to generate a first chromaticity prediction block determined based on the chromaticity block vector. The current chroma block is predicted based on one of multiple intra-prediction modes in addition to multiple intra-prediction model modes to generate a second chroma prediction block. The first chromaticity prediction block and the second chromaticity prediction block are weighted and combined to generate the chromaticity prediction block of the current chromaticity block; as well as The chroma current block is reconstructed based on the chroma prediction block of the chroma current block.
22. The method according to claim 21, wherein: The multiple intra-prediction modes, in addition to the aforementioned multiple intra-prediction model modes, include Direct Block Vector (DBV) mode, DC mode, planar mode, and multiple intra-angle modes.
23. The method according to any one of claims 14 to 22, wherein: The chromaticity prediction model of the current chromaticity block is further adjusted by at least one of a plurality of adjustment parameters.
24. The method according to any one of claims 14 to 23, further comprising: Determine whether the tree type of the current chroma block is a two-tree; When the tree type of the current chroma block is the bitree, a syntax element indicating whether the current chroma block is reconstructed based on the chroma prediction model of the current chroma block is determined from the video data. The chroma prediction model is derived based on the chroma block vector. When the tree type of the current chroma block is not the dual tree, the syntax element determined from the video data is ignored.
25. The method according to any one of claims 14 to 23, further comprising: Determine whether the slice type of the current chroma block is an I slice type; When the slice type of the current chroma block is the I slice type, a syntax element indicating whether the current chroma block is reconstructed based on the chroma prediction model of the current chroma block is determined from the video data. The chroma prediction model is derived based on the chroma block vector. When the slice type of the current chroma block is not the I slice type, the syntax element determined from the video data is ignored.
26. An electronic device for decoding video data, the electronic device comprising: One or more processors; and One or more non-transitory computer-readable media, the one or more non-transitory computer-readable media being coupled to the one or more processors and storing one or more computer-executable instructions, the one or more computer-executable instructions being executed by at least one of the one or more processors causing the at least one of the one or more processors to perform the method according to any one of claims 14 to 25.