Method and apparatus for encoding and decoding image or video
By using cross-component models to predict chromaticity samples of images or video blocks in video compression technology, the problem of low prediction efficiency of chromaticity samples in the prior art is solved, and more efficient video compression is achieved.
Patent Information
- Application Number
- CN202380048902.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-09-30
- Filing Date
- 2023-06-20
- Publication Date
- 2025-02-14
AI Technical Summary
When existing video compression technologies predict and encode chromaticity samples of images or video blocks, it is difficult to effectively utilize the spatial and temporal redundancy of the image, resulting in low compression efficiency.
The cross component model is used to predict the chromaticity sample of an image or video block, and the cross component model is determined by reconstructing the luminance sample based on the block, and the model is used to predict the chromaticity sample.
Improve the efficiency of video compression, reduce the amount of encoded data, and improve the compression performance of images and videos by predicting chromaticity samples more accurately.
Smart Images

Figure CN119452638A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority to European application number 22305896.7 filed on June 21, 2022 and European application number 22306458.5 filed on September 30, 2022, which are incorporated herein by reference in their entirety. Technical Field
[0003] The present embodiments generally relate to video compression.The present embodiments relate to a method and apparatus for using a cross-component model to determine a prediction for chrominance samples of an image / video block for encoding / decoding. Background Art
[0004] In order to achieve high compression efficiency, image and video coding schemes usually use prediction and transformation to exploit spatial and temporal redundancy in video content. Typically, intra-frame or inter-frame prediction is used to exploit intra-frame or inter-frame image correlation, and then the difference between the original block and the predicted block (usually expressed as a prediction error or prediction residual) is transformed, quantized, and entropy encoded. To reconstruct the video, the compressed data is decoded by the inverse process corresponding to entropy coding, quantization, transformation, and prediction. Summary of the invention
[0005] According to an aspect, a method for predicting chroma samples of a block using a cross-component model is provided.
[0006] In some embodiments, the method includes: for at least one block of the image, based on reconstructed luma samples of the block, obtaining at least one cross-component model according to reference luma and chroma samples; and predicting chroma samples of the block based on the at least one cross-component model and the reconstructed luma samples of the block.
[0007] In some embodiments, the method includes: for at least one block of an image, identifying a reference region for determining at least one cross-component model based on reference luminance and chrominance samples; modifying the reference region based on at least one characteristic of the block; obtaining at least one cross-component model based on the modified reference region; and predicting chrominance samples of the block based on the at least one cross-component model and reconstructed luminance samples of the block.
[0008] According to another aspect, a method for encoding an image or a video is provided, wherein chroma samples of a block of the image or the video are predicted using any embodiment of the method for predicting chroma samples described herein.
[0009] According to another aspect, a method for decoding an image or a video is provided, wherein chroma samples of a block of the image or the video are predicted using any embodiment of the method for predicting chroma samples described herein.
[0010] According to another aspect, an apparatus for predicting chroma samples of a block using a cross-component model is provided. In some embodiments, the apparatus includes one or more processors operable to perform, for at least one block of an image: based on reconstructed luma samples of the block, obtaining at least one cross-component model based on reference luma and chroma samples; and predicting chroma samples of the block based on the at least one cross-component model and the reconstructed luma samples of the block.
[0011] In some embodiments, the device includes one or more processors operable to perform, for at least one block of an image: identifying a reference region for determining at least one cross-component model based on reference luma and chroma samples; modifying the reference region based on at least one characteristic of the block; obtaining at least one cross-component model based on the modified reference region; and predicting chroma samples of the block based on the at least one cross-component model of the block and the reconstructed luma samples.
[0012] In an embodiment, the one or more processors are operable to encode the image or video to which the block belongs. In an embodiment, the one or more processors are operable to decode the image or video to which the block belongs.
[0013] In an embodiment, the reference luma and chroma samples are reconstructed luma samples and corresponding reconstructed chroma samples located in a reference region of the block.
[0014] In some embodiments, the at least one characteristic of the block comprises at least one of: a reconstructed luma sample of the block, an indicator determined for the block (coded for the block or inferred for the block), a cross-component model signaled for the block.
[0015] In an embodiment, obtaining at least one cross-component model based on reconstructed luma samples of a block comprises: selecting reference luma samples and co-located chroma samples in a reference region of the block based at least on the reconstructed luma samples of the block; and determining at least one cross-component model based on the selected reference luma samples and co-located chroma samples.
[0016] In one variant, in response to determining that the reference luma samples have the same characteristics as the reconstructed luma samples of the block, the reference luma samples and the co-located chroma samples are selected in a reference region of the block.
[0017] Further embodiments are described herein that may be used alone or in combination.
[0018] One or more embodiments also provide a computer program, which includes instructions that, when executed by one or more processors, cause one or more processors to perform a method for predicting chrominance samples or encoding / decoding image or video data according to any embodiment described herein. One or more of the present embodiments also provide a non-transitory computer-readable medium and / or a computer-readable storage medium having stored thereon instructions for predicting chrominance samples or encoding / decoding image or video data according to the method described herein.
[0019] One or more embodiments also provide a computer-readable storage medium on which a bitstream generated according to the method described herein is stored. One or more embodiments also provide a method and apparatus for sending or receiving a bitstream generated according to the above method. BRIEF DESCRIPTION OF THE DRAWINGS
[0020] Figure 1 A block diagram of a system in which aspects of the present embodiments may be implemented is shown.
[0021] Figure 2 A block diagram of an embodiment of a video encoder is shown in which aspects of the present embodiments may be implemented.
[0022] Figure 3 A block diagram of an embodiment of a video decoder is shown in which aspects of the present embodiments may be implemented.
[0023] Figure 4 An example of a cross-component linear model prediction pattern is shown.
[0024] Figure 5 An example of dividing adjacent samples into two groups in a variant of the cross-component linear model prediction mode is shown.
[0025] Figure 6 An example of multiple reference lines for MLR intra prediction is shown.
[0026] Figure 7 An example of the spatial part of the convolution filter in a variant of the convolutional cross-component model for intra prediction is shown.
[0027] Figure 8 An example of a padded reference region for deriving filter coefficients in a variant of the cross-component model prediction mode is shown.
[0028] Fig. 9 An example of a method for chrominance prediction using a cross-component model is shown.
[0029] Fig.10 Examples of CC linear models derived using different sets of luminance reference samples are shown.
[0030] Fig.11An example of a method for predicting chroma samples of a block using cross-component intra prediction according to an embodiment is shown.
[0031] Fig. 12A An example of a method for encoding chroma samples of a block using cross-component intra prediction according to an embodiment is shown.
[0032] Fig. 12B An example of a method for decoding chroma samples of a block using cross-component intra prediction according to an embodiment is shown.
[0033] Fig.13 An example of a method for chrominance prediction using a cross-component model according to an embodiment is shown.
[0034] Fig.14 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0035] Fig.15 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0036] Fig.16 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0037] Fig.17 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0038] Fig.18 An example of a CU reconstructed luma sample and a subset of reference reconstructed luma samples indicated by a dashed box is shown, wherein the dashed box forms a region for determining features for selecting reference samples.
[0039] Fig.19 Another example of a CU reconstructed luma sample and a reference reconstructed luma sample subset indicated by a dashed box is shown, wherein the dashed box forms a region for determining features for selecting reference samples.
[0040] Fig. 20 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0041] Fig.21 A block diagram of a system in which aspects of the present embodiment may be implemented is shown according to another embodiment.
[0042] Fig. 22 Two remote devices are shown communicating over a communication network according to an example of the present principles.
[0043] Fig.23A signal syntax according to an example of the present principles is shown.
[0044] Fig.24 Examples of different regions used to derive a CC model are shown.
[0045] Fig.25 An example of a method for chrominance prediction using a cross-component model according to another embodiment is shown.
[0046] Fig.26 An example of an extended area that can be used to derive a CC model is shown.
[0047] Fig. 27 An example of an area that may be used to export a CC model is shown.
[0048] Fig.28 Another example of an extended region that may be used to derive a CC model is shown.
[0049] Fig.29 An example of a method for prediction using a cross-component model according to another embodiment is shown. DETAILED DESCRIPTION
[0050] The present application describes a number of aspects, including tools, features, embodiments, models, schemes, etc. Many of these aspects are described as having specificity, and at least in order to show individual features, are usually described in a manner that sounds restrictive. However, this is for the purpose of describing clearly and does not limit the application or scope of these aspects. In fact, all different aspects can be combined and interchanged to provide further aspects. In addition, these aspects can be combined and interchanged with the aspects described in the previous application.
[0051] The aspects described and contemplated in this application can be implemented in many different forms. Figure 1 , 2 and 3 provide some embodiments, but other embodiments are contemplated, and Figure 1 , 2 The discussion of 3 does not limit the breadth of implementation. At least one aspect generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a generated or encoded bitstream. These and other aspects can be implemented as methods, apparatus, computer-readable storage media storing instructions for encoding or decoding video data according to any of the methods described, and / or computer-readable storage media storing a bitstream generated according to any of the methods described.
[0052] In this application, the terms "reconstruction" and "decoding" may be used interchangeably, the terms "pixel" and "sample" may be used interchangeably, and the terms "image", "picture" and "frame" may be used interchangeably.
[0053] Various methods are described herein, and each method includes one or more steps or actions for implementing the method. Unless the correct operation of the method requires a specific order of steps or actions, the order and / or use of specific steps and / or actions can be modified or combined. In addition, terms such as "first", "second" and the like can be used in various embodiments to modify elements, components, steps, operations, etc., such as "first decoding" and "second decoding". Unless specifically required, the use of these terms does not mean that the modified operations are sorted. Therefore, in this example, the first decoding does not need to be performed before the second decoding, and for example, can occur before the second decoding, during the second decoding, or in a time period overlapping with the second decoding.
[0054] The present aspects are not limited to VVC or HEVC, and can be applied, for example, to other standards and recommendations (whether existing or developed in the future) and extensions of any such standards and recommendations (including VVC and HEVC). Unless otherwise specified or technically excluded, the aspects described in this application can be used alone or in combination.
[0055] Figure 1 A block diagram of an example of a system that can implement multiple aspects and embodiments is shown. System 100 can be embodied as a device including multiple components described below, and is configured to perform one or more aspects described in this application. Examples of such devices include, but are not limited to, multiple electronic devices, such as personal computers, notebook computers, smart phones, tablet computers, digital multimedia set-top boxes, digital television receivers, personal video recording systems, interconnected household appliances, and servers. The elements of system 100 can be embodied in a single integrated circuit, multiple ICs, and / or discrete components, either alone or in combination. For example, in at least one embodiment, the processing and encoder / decoder elements of system 100 are distributed over multiple ICs and / or discrete components. In various embodiments, system 100 is coupled to other systems or other electronic devices in a communication manner, such as by a communication bus or by a dedicated input and / or output port. In various embodiments, system 100 is configured to implement one or more aspects described in this application.
[0056] The system 100 includes at least one processor 110 configured to execute instructions loaded therein, which are used, for example, to implement the various aspects described in the present application. The processor 110 may include embedded memory, input-output interfaces, and various other circuits known in the art. The system 100 includes at least one memory 120 (e.g., a volatile memory device and / or a non-volatile memory device). The system 100 includes a storage device 140, which may include a non-volatile memory and / or a volatile memory, including but not limited to an EEPROM, a ROM, a PROM, a RAM, a DRAM, an SRAM, a flash memory, a disk drive, and / or an optical drive. As a non-limiting example, the storage device 140 may include an internal storage device, an attached storage device, and / or a network accessible storage device.
[0057] The system 100 includes an encoder / decoder module 130, which is configured to process data to provide encoded video or decoded video, for example, and the encoder / decoder module 130 may include its own processor and memory. The encoder / decoder module 130 represents a module that may be included in a device to perform encoding and / or decoding functions. As is well known, a device may include one or both of the encoding and decoding modules. In addition, the encoder / decoder module 130 may be implemented as a separate element of the system 100, or may be incorporated into the processor 110 as a combination of hardware and software known to those skilled in the art.
[0058] Program code loaded onto the processor 110 or the encoder / decoder 130 to perform various aspects described herein may be stored in the storage device 140 and subsequently loaded onto the memory 120 for execution by the processor 110. According to various embodiments, one or more of the processor 110, the memory 120, the storage device 140, and the encoder / decoder module 130 may store one or more of a variety of items during execution of the processes described herein. These stored items may include, but are not limited to, input video, decoded video or portions thereof, bitstreams, matrices, variables, and intermediate or final results from equations, formulas, operations, and arithmetic logic processing.
[0059] In some embodiments, memory inside the processor 110 and / or the encoder / decoder module 130 is used to store instructions and provide working memory for processing required during encoding or decoding. However, in other embodiments, memory outside the processing device (e.g., the processing device can be the processor 110 or the encoder / decoder module 130) is used for one or more of these functions. The external memory can be a memory 120 and / or a storage device 140, such as a dynamic volatile memory and / or a non-volatile flash memory. In several embodiments, the external non-volatile flash memory is used to store the operating system of the TV. In at least one embodiment, a fast external dynamic volatile memory (e.g., RAM) is used as a working memory for video encoding and decoding operations (e.g., MPEG-2 (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also known as ISO / IEC 13818, 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2) or VVC (Versatile Video Coding, a new standard being developed by the Joint Video Experts Group JVET)).
[0060] Input to the elements of system 100 may be provided through a variety of input devices as shown in block 105. Such input devices include, but are not limited to: (i) a radio frequency (RF) portion that receives an RF signal transmitted over the air by, for example, a broadcaster; (ii) a component (COMP) input terminal (or a set of COMP input terminals); (iii) a universal serial bus (USB) input terminal; and / or (iv) a high-definition multimedia interface (HDMI) input terminal. Figure 1 Other examples not shown include composite video.
[0061] In various embodiments, the input device of block 105 has associated respective input processing elements known in the art. For example, the RF section may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal or bandwidth limiting a signal to a frequency band), (ii) down-converting the selected signal, (iii) again bandwidth limiting to a narrower frequency band to select (for example) a signal frequency band (which may be referred to as a channel in some embodiments), (iv) demodulating the down-converted and bandwidth-limited signal, (v) performing error correction, and (vi) demultiplexing to select a desired data packet stream. The RF section of various embodiments includes one or more elements for performing these functions, such as a frequency selector, a signal selector, a bandwidth limiter, a channel selector, a filter, a down-converter, a demodulator, an error corrector, and a demultiplexer. The RF section may include a tuner that performs a variety of these functions, including, for example, down-converting a received signal to a lower frequency (e.g., an intermediate frequency or a near-baseband frequency) or to baseband. In a set-top box embodiment, the RF part and its associated input processing element receive the RF signal transmitted by wired (for example, cable) medium, and filter to the desired frequency band again by filtering, down-conversion and perform frequency selection. Various embodiments rearrange the order of above-mentioned (and other) elements, remove some of these elements, and / or add other elements that perform similar or different functions. Adding element can include inserting element between existing element, for example inserting amplifier and analog / digital converter. In various embodiments, the RF part includes antenna.
[0062] In addition, the USB and / or HDMI terminals may include respective interface processors for connecting the system 100 to other electronic devices via the USB and / or HDMI connections. It should be appreciated that aspects of input processing (e.g., Reed-Solomon error correction) may be implemented, for example, within a separate input processing IC or within the processor 110 as desired. Similarly, aspects of USB or HDMI interface processing may be implemented, for example, within a separate interface IC or within the processor 110 as desired. The demodulated, error-corrected, and demultiplexed streams are provided to a variety of processing elements, including, for example, the processor 110 and the encoder / decoder 130, which operate in conjunction with memory and storage elements to process the data streams as desired for presentation on an output device.
[0063] The various elements of system 100 may be disposed within an integrated housing. Within the integrated housing, the various elements may be interconnected and transfer data between each other using suitable connection means 115 (eg, an internal bus known in the art, including an I2C bus, wiring, and printed circuit boards).
[0064] The system 100 includes a communication interface 150 that enables communication with other devices via a communication channel 190. The communication interface 150 may include, but is not limited to, a transceiver configured to send and receive data through the communication channel 190. The communication interface 150 may include, but is not limited to, a modem or a network card, and the communication channel 190 may be implemented, for example, within a wired and / or wireless medium.
[0065] In various embodiments, a Wi-Fi network (e.g., IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers)) is used to stream data to the system 100. The Wi-Fi signals of these embodiments are received by a communication channel 190 and a communication interface 150 adapted for Wi-Fi communication. The communication channel 190 of these embodiments is typically connected to an access point or router that provides access to an external network (including the Internet) to allow streaming applications and other over-the-top communications. Other embodiments use a set-top box to provide streaming data to the system 100, which transmits data through the HDMI connection of the input block 105. Other other embodiments use the RF connection of the input block 105 to provide streaming data to the system 100. As described above, various embodiments provide data in a non-streaming manner. In addition, various embodiments use wireless networks other than Wi-Fi, such as cellular networks or Bluetooth networks.
[0066] The system 100 can provide output signals to a variety of output devices, including a display 165, a speaker 175, and other peripherals 185. The display 165 of various embodiments includes, for example, one or more of a touch screen display, an organic light emitting diode (OLED) display, a curved display, and / or a foldable display. The display 165 can be used for a television, a tablet computer, a laptop computer, a cell phone (mobile phone), or other devices. The display 165 can also be integrated with other components (for example, as in a smartphone) or be separate (for example, an external display for a laptop computer). In examples of various embodiments, other peripherals 185 include one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disc player, a stereo system, and / or a lighting system. Various embodiments use one or more peripherals 185 that provide functions based on the output of the system 100. For example, a disc player performs the function of playing the output of the system 100.
[0067] In various embodiments, control signals are communicated between the system 100 and the display 165, speakers 175, or other peripheral devices 185 using signaling such as AV.Link, CEC, or other communication protocols that enable device-to-device control with or without user intervention. The output devices may be communicatively coupled to the system 100 via dedicated connections through respective interfaces 160, 170, and 180. Alternatively, the output devices may be connected to the system 100 through the communication interface 150 using the communication channel 190. The display 165 and speakers 175 may be integrated into a single unit with other components of the system 100 in an electronic device such as a television. In various embodiments, the display interface 160 includes a display driver, such as a timing controller (T Con) chip.
[0068] Display 165 and speaker 175 may also be separate from one or more other components, for example, if the RF portion of input 105 is part of a separate set-top box. In various embodiments where display 165 and speaker 175 are external components, output signals may be provided through dedicated output connections (including, for example, an HDMI port, a USB port, or a COMP output).
[0069] The embodiments may be performed by computer software implemented by the processor 110 or by hardware or by a combination of hardware and software. As a non-limiting example, the embodiments may be implemented by one or more integrated circuits. The memory 120 may be of any type suitable for the technical environment and may be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory as non-limiting examples. The processor 110 may be of any type suitable for the technical environment and may include one or more of a microprocessor, a general-purpose computer, a special-purpose computer, and a processor based on a multi-core architecture as non-limiting examples.
[0070] Figure 2 An encoder 200 is shown. Variations of the encoder 200 are contemplated, but for clarity, only the encoder 200 is described below, rather than describing all contemplated variations.
[0071] In some embodiments, Figure 2 Also shown are encoders that improve the HEVC standard or the VVC standard or encoders that adopt techniques similar to HEVC or VVC, such as encoders being developed by JVET (Joint Video Exploration Team).
[0072] Prior to encoding, the video sequence may undergo pre-encoding processing (201), such as applying a color transform to an input color picture (e.g., converting from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of input picture components to obtain a signal distribution more amenable to compression (e.g., using histogram equalization of color components), or resizing the picture (e.g., downscaling). Metadata may be associated with the pre-processing and appended to the bitstream.
[0073] In encoder 200, a picture is encoded by encoder elements as described below. The picture to be encoded is divided (202) and processed, for example, in units of CUs (coding units). Each unit is encoded, for example, using intra or inter mode. When the unit is encoded in intra mode, it performs intra prediction (260). In inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which of intra mode or inter mode to use to encode the unit, and indicates the intra / inter decision, for example, by a prediction mode flag. The encoder can also mix (263) intra prediction results and inter prediction results, or mix results from different intra / inter prediction methods. For example, the prediction residual is calculated by subtracting (210) the prediction block from the original image block.
[0074] The motion refinement module (272) refines the motion field of the block using the already available reference pictures without referring to the original block. The motion field for a region can be considered as the set of motion vectors for all pixels in the region. If the motion vectors are based on sub-blocks, the motion field can also be represented as the set of motion vectors for all sub-blocks in the region (all pixels within a sub-block have the same motion vector, and the motion vector may vary between different sub-blocks). If a single motion vector is used for the region, the motion field for the region can also be represented by a single motion vector (the motion vector is the same for all pixels in the region).
[0075] The prediction residual is then transformed (225) and quantized (230). The quantized transform coefficients, along with motion vectors and other syntax elements, are entropy encoded (245) to output a bitstream. The encoder may skip the transform and apply quantization directly to the untransformed residual signal. The encoder may bypass the transform and quantization, i.e., encode the residual directly without applying the transform or quantization process.
[0076] The encoder decodes the coded block to provide a reference for further prediction. The quantized transform coefficients are inverse quantized (240) and inverse transformed (250) to decode the prediction residual. The decoded prediction residual and the predicted block are combined (255) to reconstruct the image block. A loop filter (265) is applied to the reconstructed picture to perform, for example, deblocking / SAO (sample adaptive offset) filtering to reduce coding artifacts. The filtered image is stored in a reference picture buffer (280).
[0077] Figure 3 A block diagram of a video decoder 300 is shown. In the decoder 300, the bitstream is decoded by decoder elements as described below. The video decoder 300 generally performs the same Figure 2 The decoding process is the reverse of the encoding process described in . The encoder 200 also typically performs video decoding as part of the encoding of the video data.
[0078] Specifically, the input to the decoder includes a video bitstream, which may be generated by the video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other encoding information. Picture partition information indicates how the picture is partitioned. Thus, the decoder can segment (335) the picture based on the decoded picture partition information. The transform coefficients are inverse quantized (340) and inverse transformed (350) to decode the prediction residual. The decoded prediction residual and the predicted block are combined (355) to reconstruct the image block.
[0079] The predicted block may be obtained (370) by intra prediction (360) or motion compensated prediction (i.e., inter prediction) (375). The decoder may blend (373) intra prediction results and inter prediction results, or blend results from multiple intra / inter prediction methods. Prior to motion compensation, the motion field may be refined (372) using already available reference pictures. A loop filter (365) is applied to the reconstructed image. The filtered image is stored in a reference picture buffer (380).
[0080] The decoded picture may be further subjected to post-decoding processing (385), such as inverse color conversion (e.g., conversion from YCbCr 4:2:0 to RGB 4:4:4) or inverse remapping that performs the inverse of the remapping process performed in the pre-encoding process (201), or resizing the reconstructed picture (e.g., upscaling). The post-decoding processing may use metadata derived in the pre-encoding process and signaled in the bitstream.
[0081] Cross-Component Linear Model (CCLM) for intra prediction
[0082] In order to reduce cross-component redundancy, the cross-component linear model (CCLM) prediction mode is used in the VVC standard (Versatile Video Coding, standard ITU-T H.266, ISO / IEC23090-3, 2020), in which the following linear model is used to predict the chrominance samples based on the reconstructed luminance samples of the same CU:
[0083] pred C (i,j)=α·rec L ′(i,j)+β (Equation 1)
[0084] where pred C (i, j) represents the predicted chrominance sample in the CU (e.g., the Cb or Cr component, or the U or V component of the CU), rec L (i, j) represents the reconstructed luma sample of the same CU (e.g., the L or Y component of the CU). Depending on the chroma format, the reconstructed luma sample may be downsampled, for example in the case of 4:2:0 or 4:2:2 chroma formats. In VVC, CCLM parameters (α and β) are derived using up to four adjacent chroma samples and their corresponding downsampled luma samples. There are three CCLM modes (LM_CHROMA, MDLM_T, MDLM_L), such as Figure 4 As shown, their adjacent chroma sample positions are different. The CCLM mode to be used is encoded per CU.
[0085] Adjacent brightness samples at the selected position are downsampled and compared to find the smaller of the two values: x 0 A and x 1 A , and two larger values: x 0 B and x 1 B Their corresponding chrominance sample values are represented by y 0 A ,y 1 A ,y 0 B and 1 B Then, X a , X b , Y a and Y b The derivation is as follows:
[0086] X a =(x 0 A +x 1 A +1)>>1;X b =(x0 B +x 1 B +1)>>1;
[0087] Y a =(y 0 A +y 1 A +1)>>1;Y b =(y 0 B +y 1 B +1)>>1(Equation 2)
[0088] Finally, the linear model parameters α and β are obtained according to the following equations.
[0089] α=(Y a -Y b ) / (X a -X b ) (Equation 3)
[0090] β=Y b -α·X b (Equation 4)
[0091] Multi-Model LM (MMLM) and other CCLM variants
[0092] There are several variants of CCLM, where the location and / or number of neighboring samples used to derive the cross-component model and / or the method used to derive the cross-component linear model parameters (α, β) and / or the luma downsampling filter may be different.
[0093] For example, the parameters of the cross-component linear model can be derived from the causally reconstructed samples around the current CU.
[0094] In another example, in ECM (M. Coban, F. Le Leannec, K. Naser, The CCLM included in VVC is extended by adding three cross-component multi-model LM (MMLM) modes (K. Zhang, J. Chen, L. Zhang, M. Karczewicz, "Enhanced Cross-Component Linear Model Intra Prediction", document JVET-D0110), "Algorithmic Description of Enhanced Compression Model 4 (ECM 4)", paper JVET-Y2025, 23rd meeting, teleconference, July 7-16, 2021). In each MMLM mode, the average value (threshold) of the neighboring samples of the luma reconstruction is used to classify the reconstructed neighboring samples into two categories. Figure 5An example of dividing neighboring samples into two groups is shown. The threshold is determined as the average value of neighboring reconstructed luminance samples. Neighboring luminance samples with values lower than or equal to the threshold are classified into the first group, and neighboring luminance samples with values higher than the threshold are classified into the second group. Two CC models are derived, wherein one CC model is derived for each class based on the neighboring luminance and chrominance samples of the class. The least mean square (LMS) method is used to derive a linear CC model for each class. The selection of whether to use a single model (LM_CHROMA, MDLM_T, MDLM_L) or multiple models (MMLM_CHROMA, MMLM_T, MMLM_L) can be made based on implicit parameters (e.g., if the current block size is greater than a given value, a multi-model prediction mode is used). In other implementations, an indicator (e.g., a flag) is used in the bitstream to encode the selection of whether to use a single model or multiple models.
[0095] The luma samples of the CU to predict the chroma samples are also classified based on the same rules as the classification of the neighboring luma samples. To predict the chroma samples of the CU, the linear CC model of the class to which the corresponding luma samples belong is used.
[0096] In the multiple reference line (MRL) variant, intra prediction uses more reference lines for intra prediction. Figure 6 In Figure 1, an example of 4 reference lines is depicted, where the samples of fragments A and F are not taken from the reconstructed neighboring samples, but are filled with the closest samples from fragments B and E, respectively. HEVC intra picture prediction uses the nearest reference line (i.e., reference line 0). In MRL, 2 additional lines are used (reference line 1 and reference line 3). The index of the selected reference line is signaled and used to generate the intra predictor.
[0097] Convolutional Cross-Component Model (CCCM) for Intra Prediction
[0098] The Convolutional Cross-Component Model (CCCM) (P. Astola, J. Lainema, R. Youvalari, A. Aminlou, K. Panusopone, "AHG12: A Convolutional Cross-Component Model (CCCM) for Intra Prediction", paper JVET-Z0064, 26th meeting, teleconference, April 20-29, 2022) predicts chroma samples from reconstructed luma samples in a similar spirit to CCLM. As with CCLM, the reconstructed luma samples may be downsampled depending on the chroma format to match the lower resolution chroma grid when chroma subsampling is used.
[0099] In addition, similar to CCLM, you can choose to use a single CC model or a multi-model variant of CCCM. The multi-model variant uses two CC models, where one CC model is derived for samples above the average brightness reference value and the other CC model is used for the remaining samples (following the spirit of CCLM design). For PUs (prediction units) with at least 128 reference samples, the multi-model CCCM mode can be selected.
[0100] CCCM uses a convolutional 7-tap filter consisting of a 5-tap plus-shaped spatial component, a nonlinear term, and a bias term. The input to the spatial 5-tap component of the filter consists of the center (C) luma sample co-located with the chroma sample to be predicted and its above / north (N), below / south (S), left / west (W), and right / east (E) neighbors, as Figure 7 shown.
[0101] The nonlinear term P is expressed as a power of 2 of the center brightness sample C, scaled to the sample value range of the content:
[0102] P=(C*C+midVal)>>bitDepth, where midVal is the middle value of the content value range represented at bitDepth.
[0103] That is, for 10 bits of content, P is calculated as:
[0104] P=(C*C+512)>>10.
[0105] The bias term B represents a scalar offset between input and output (similar to the offset term in CCLM) and is set to the intermediate chroma value (512 for 10-bit content).
[0106] The output of the filter is calculated as the filter coefficient c i Convolution with the input value, clipped to the valid chroma sample range:
[0107] predChromaVal=c0C+c1N+c2S+c3E+c4W+c5P+c6B.
[0108] The filter coefficients c are calculated by minimizing the MSE between the predicted and reconstructed chroma samples in the reference region i . Figure 8 A reference region is shown consisting of 6 rows / columns of chroma samples at the top left of the PU. The reference region extends one PU width to the right and one PU height below the PU boundary. The region is adjusted to only contain available samples. The extension of the blue display region requires "edge samples" to support the plus-shaped spatial filter and padding when unavailable areas are present.
[0109] MSE minimization is performed by computing the autocorrelation matrix for the luma input and the cross-correlation vector between the luma input and the chroma outputs.
[0110] Indicates ai=C, N, S, E, W, P, B
[0111]
[0112] The autocorrelation matrix is LDL decomposed and the final filter coefficients are calculated using back substitution. This process roughly follows the calculation of the ALF filter coefficients in ECM, but the LDL decomposition (also known as the alternative Cholesky decomposition) is chosen instead of the Cholesky decomposition to avoid the use of square root operations. The calculation uses only integer arithmetic.
[0113] Fig. 9 An example of a method 900 for chroma prediction using a cross-component luminance model is shown. Method 900 can be used to implement any one of the above-mentioned examples of cross-component prediction modes: for example, chroma prediction modes CCLM, MMLM, or CCCM. Depending on the prediction mode, all or part of the method can be implemented. At 910, reference samples (reconstructed adjacent luminance and chroma sample values) are selected from the neighborhood of the current CU. Here, the selection of reference samples (i.e., reference areas) depends on the chroma prediction mode used in method 900 (e.g., chroma prediction modes CCLM, MMLM, or CCCM). In addition, in a variant similar to CCLM, for CCCM, the shape of the reference area can be selected between 3 shapes for a single model (LM_CHROMA, MDLM_T, MDLM_L) or multiple models (MMLM_CHROMA, MMLM_T, MMLM_L), such as Fig. 27 shown. Fig. 27 Different shapes of reference regions (grey areas) that may be used for single or multi-mode are shown. In some variants, the luminance sample values may be filtered to obtain downsampled luminance samples.
[0114] At 920, in the case of a multi-model, the reference sample is classified into at least two classes using at least one first value determined from the reference sample. For example, in the case of two classes, if the reference brightness sample value is lower than or equal to the first value, the reference brightness sample is classified into the first class, and if the reference brightness sample value is higher than the first value, the reference brightness sample is classified into the second class.
[0115] At 930, parameters of a CC model or multiple models are derived from the reference luma and chroma sample values. At 940, the CC model allows chroma sample prediction values to be derived from the co-located (downsampled) reconstructed luma sample values of the CU.
[0116] In this disclosure, the determination of CC models is described for chroma samples. It should be understood that since video content typically contains one luma component and two chroma components (Cb / Cr or U / V, depending on the content format), a separate CC model is determined for each chroma component.
[0117] The cross-component intra prediction tool (such as CCLM, MMLM or CCCM) derives the cross-component model based on the reference (neighboring) reconstructed luminance and chrominance sample values located near the current CU. However, the signal characteristics (statistics) of these luminance reference samples may be different from the signal characteristics of the reconstructed luminance samples in the current CU, which affects the accuracy of the derived CC model used to predict the current CU chrominance samples.
[0118] According to one aspect of the present disclosure, Fig. 9 The method 900 for chrominance prediction using a cross-component luminance model shown in is modified to better match the signal characteristics of the reconstructed luminance samples of the current CU. In some embodiments, the selection of reference samples is modified. In other embodiments, the classification of reference samples is modified. In further other embodiments, the selection of reference samples and the classification of reference samples are modified.
[0119] The signal characteristics of some reconstructed luma sample values near the current CU may be significantly different from the signal characteristics of the reconstructed luma sample values of the current CU. This may affect the efficiency of the derived CC model in predicting chroma sample values based on the reconstructed CU luma sample values. Fig.10 In the figure, the upper left part shows the reference sample and the current CU brightness value, where the current CU displays L3, L1 and L2 brightness values, and the reference area displays L3, L1 and L0 brightness values. Fig.10 The upper right part of the diagram shows the reference samples and the current CU chroma values, where the current CU displays C3, C1, and C2 chroma values, and the reference area displays C3, C1, and C0 chroma values. The lower left part shows an example of a CC model derived using all reference samples (L0, L1, L3, C0, C1, C3) of the reference area, while the lower right part shows an example of a CC model derived using reference samples of the reference area (but not including L0, C0 reference samples).
[0120] exist Fig.10 In the example of , the signal characteristics of the reference sample are different from the signal characteristics of the current CU because the color brightness value L0 is not in the current CU. Including (L0, C0) or not including (L0, C0) in the reference sample used to derive the CC model may result in different linear models.
[0121] A method for chrominance prediction of a block using at least one cross-component model is provided, wherein at least one cross-component model is obtained based on reference luminance and chrominance samples based on reconstructed luminance samples of the block. The method can be used for any of a method for encoding a block and a method for encoding an image or video including the block. Accordingly, the method can also be used for any of a method for decoding a block and a method for decoding an image or video including the block. The following embodiments can be generally applied to any of the cross-component intra-frame prediction tools, such as the above-mentioned tools, or other cross-component intra-frame predictions. Any of the embodiments described below can be implemented in an intra-frame prediction module of an image or video encoder / decoder, such as the intra-frame prediction module 260 of the encoder 200 and the intra-frame prediction module 360 of the decoder 300.
[0122] Fig.11 A method 1100 for predicting chroma samples of a block using cross-component intra prediction according to an embodiment is shown. At 1110, for a block, based on reconstructed luma samples of the block, at least one cross-component model is obtained from reference luma and chroma samples. At 1120, chroma samples of the block are predicted using the obtained at least one cross-component model and the reconstructed luma samples of the block. The predicted chroma samples can then be used to encode (1230) or decode (1231) the chroma samples of the block, as in Fig. 12A and 12B The method 1200 shown in 1210 is the same as that in 1210. The encoding of the chroma samples is performed by determining the residual between the chroma samples of the block and the chroma prediction and encoding the residual. The decoding of the chroma samples is performed by decoding the residual and adding the residual to the chroma prediction to reconstruct the chroma samples of the block. Figures 13 to 20 Some variations of steps 1110 or 1120 in method 1100 are described.
[0123] exist Fig.13 In the embodiment shown in , the selection of reference samples is modified relative to method 900 so that only reconstructed luma reference samples having the same characteristics as the reconstructed luma samples of the current CU are selected (1310). For example, at 1305, a range of values representing the reconstructed luma samples of the current CU is determined. In one variant, such a range is a range [min, max] of the values of the reconstructed luma samples of the current CU, where min is the lowest (minimum) luma value in the current CU and max is the highest (maximum) luma value in the current CU.
[0124] At 1310, a reference reconstructed luma sample having a value within the determined range is selected in the neighborhood of the current CU. The selected reference reconstructed luma sample is then used to derive (920, 930, 940) a CC model. Selecting a reference reconstructed luma sample in the neighborhood implies selecting a reference reconstructed chroma sample for deriving the CC model, because the reference reconstructed chroma samples used to derive the CC model correspond to co-located chroma samples of the selected reference reconstructed luma sample.
[0125] In one variant, the value (min, max) for selecting the reference reconstructed luma sample is derived according to the mean (μ) and standard deviation (σ) of the reconstructed luma sample values of the current CU. For example, the reconstructed luma sample values of the current CU are modeled as a normal / Gaussian distribution X~N(μ, σ 2 ). The probability density function f(x) is given by the following formula:
[0126]
[0127] For example, the value (min, max) can be derived by the probability that a certain percentage (given amount) of sample values are within the range [min; max]. For example, 90% of the sample values can be taken to be within [min; max], for example, to obtain F(x) = 0.45, where x = 1,64. If X~N(μ, σ 2 ), then Y~N(0,1), where And the values (min, max) are derived as (μ-1.64σ, μ+1.64σ), respectively.
[0128] In one variant, the value (min, max) can be derived by a combination / function of the range [min1, max1] of the reconstructed luminance sample value of the current CU and the range (min2, max2) obtained according to the mean value (μ) and standard deviation (σ) of the reconstructed luminance sample value of the current CU and the normal / Gaussian model. For example, (min, max) = (MAX (min1, min2), MIN (max1, max2)), or (min, max) = (average (min1, min2), average (max1, max2)), where MAX returns the maximum value, MIN returns the minimum value, and average returns the average value.
[0129] exist Fig.14In another embodiment shown in , the selection of reference samples (910) is not modified relative to method 900, but the reconstructed luma sample values of the current CU are used to derive (1420) a threshold for classifying the reference samples and deriving several CC models. For example, the threshold is the average value of the reconstructed luma sample values of the current CU. The other steps (910, 930, 940) of method 1400 are similar to those of method 900.
[0130] Fig.15 Another embodiment is shown, which is Fig.13 and Fig.14 The reference sample is selected (1310) to Fig.13 Modify in a similar way. You can use Fig.13 Any of the described variants for determining (1305) a range of luma values [min; max]. The reconstructed luma sample values of the current CU are used to derive (1420) a threshold for classifying reference samples and deriving multiple CC models. For example, the threshold is the average value of the reconstructed luma sample values of the current CU. In a variant in which a probability function is used to determine the range [min; max], the threshold can be determined as the average value of the reconstructed luma sample values of the current CU within the range. At 1420, the determined threshold is used for classification, and only the selected reference samples are classified. The other steps (930, 940) of method 1500 are similar to the steps of method 900.
[0131] exist Fig.16 In another variation shown, with Fig.13 A similar approach is used to modify the selection of reference samples (1310) using either variant. The threshold is determined (1425) as the average of the selected reconstructed reference luma sample values (1310). In this variant, the threshold is determined after (1310), i.e., using selected reference samples that have the same characteristics as the reconstructed luma samples of the current CU. For example, the threshold is a neighborhood of the current CU (e.g. Figure 8 The average value of the reconstructed brightness sample values in the reference area (in the reference area) and having a value in the range [min; max]. At 1425, the selected reference sample is classified using the determined threshold. The other steps (930, 940) of method 1600 are similar to those of method 900.
[0132] In another variant, the threshold is determined as the average or weighted average of the reconstructed luminance sample value of the current CU and the selected reconstructed reference luminance sample value. In another variant, the threshold is calculated as the average or weighted average of the average of the reconstructed luminance sample value of the current CU and the average of the selected reconstructed reference luminance sample value. For example, the use of a weighted average value can be used to correct a value obtained by another method with a value obtained by one method. For example, the first threshold Threshold1 is the average value of the reconstructed luminance sample value of the current CU, and the second threshold Threshold2 is the average value of the selected reconstructed reference luminance sample value. The final threshold can then be determined as a weighted combination of the first and second thresholds, such as 3 / 4Threshold1+1 / 4Threshold2, and other weights are also possible.
[0133] exist Fig.17 In another variation shown, instead of using only the current CU reconstructed luma samples to determine features for selecting reference samples, the features are calculated using the current CU reconstructed luma samples and a subset of reference reconstructed luma samples (method 1700, Fig.17 At 1705, the range [min; max] is determined by determining the minimum and maximum luminance values of the luminance values of the current CU sample and the reconstructed luminance sample subset in the reference region. For example, the reference reconstructed luminance sample subset consists of the first n rows of reference reconstructed luminance samples located above the current luminance block and the first n columns of reference reconstructed luminance samples located on the left side of the current luminance block, as shown in FIG. Fig.18 As shown. Fig.18 , the region used to determine the features used to select the reference sample is shown as an area surrounded by a dotted line.
[0134] Still in Fig.17 In another example, the reference reconstructed brightness sample subset is composed of the first n rows of reference reconstructed brightness samples located above the current brightness CU and the first n columns of reference reconstructed brightness samples located on the left side of the current brightness CU, such as Fig.19 In this example, the region includes the reference reconstructed luminance sample located at the upper right of the current luminance CU and the reference reconstructed luminance sample located at the lower left of the current luminance CU.
[0135] In any of these examples, the other steps (1310, 920, 930, 940) of method 1700 are similar to the other steps of method 900 or 1300. Note that Fig.18 and 19 The examples shown can be compared to the above Figures 13 to 16 Any of the described variations may be combined.
[0136] exist Fig. 20In another embodiment shown, two CC models (or CC multi-models) {(a), (b)} are derived.
[0137] A CC6 (multi) model (a) is derived (2030) using all reconstructed luminance reference samples {refLuma(a)} in the neighborhood (a). To derive the CC (multi) model (a), reference samples are selected at 2010 in a manner similar to that in method 900 (910). If a CC multi-model is used at 2030, thresholds are determined for the reference samples in the neighborhood and the reference samples are classified. A CC model or CC multi-model (a) is derived at 2030. These steps are similar to those performed in method 900.
[0138] The CC (multi) model (b) is derived (930) using only the reconstructed luma reference samples {refLuma(b)} having the same characteristics as the reconstructed luma samples of the current CU. To derive the CC (multi) model (b), the Figures 13 to 19 Any of the embodiments / variants described in method 900. For example, at 1705, the range [min; max] is determined using the reconstructed luma samples of the current CU and a subset of the reconstructed luma samples in the reference region. Other variants described above may also be used. At 1310, the determined range is used to select a reference reconstructed luma sample, thereby providing a selected reference reconstructed luma sample set {refLuma(b)}. Then, steps 920, 930, and 940 are similar to the steps for deriving CC (multi) model (b) in method 900, but may also be used in combination with the above. Figures 13 to 19 Any other embodiments described.
[0139] At 2040, the CC (multi) model (a) derived at 2030 is used to predict the chroma samples of the reference samples in the selected reference reconstructed luma sample set {refLuma(b)}, and the distortion Dist(a) between the reconstructed chroma reference samples in the selected reference reconstructed luma sample set {refLuma(b)} and the predicted chroma values is determined.
[0140] At 940, the CC (multi) model (b) derived at 930 is used to predict the chroma samples of the reference samples in the selected reference reconstructed luma sample set {refLuma(b)}, and the distortion Dist(b) between the reconstructed chroma reference samples in the selected reference reconstructed luma sample set {refLuma(b)} and the predicted chroma values is determined.
[0141] The distortion may be, for example, the sum of absolute differences (SAD) or the sum of squared differences, or any other indicator.
[0142] At 2050, the best CC (multi) model (eg, minimum distortion) is selected between (a) or (b).
[0143] Since the distortion is determined on the reconstructed chroma samples in the reference region, the same process can be done at the encoder and decoder, so there is no need to signal which CC model to use. This variant can be extended to the above with Figures 13 to 19 One or more of the related embodiments are tested against each other, and the embodiment that provides the best CC model (i.e., the smallest distortion) is selected to predict the chrominance samples of the current CU. The selected CC model can be a multi-model, in which the cross-component relationship between brightness and chrominance depends on the brightness value. Therefore, in the case of a multi-model, the CC model used to predict the chrominance samples of the current CU depends on the co-located reconstructed brightness samples.
[0144] exist Fig. 20 In another variant of , the encoder uses the original chroma samples in the current CU and the chroma values predicted by each CC (multi) model to calculate the distortion, and signals the best CC model to be used to the decoder. For example, the best CC model is the model that provides the lowest distortion or the lowest rate-distortion cost, taking into account the cost of signaling the CC model and the cost of finally encoding the chroma residual resulting from the prediction. The selected CC model can be a single CC model or multiple models. Figure 13 to Figure 1 One or more of the above embodiments and other cross-component prediction modes are tested against each other.
[0145] In this variant, when encoding the chroma samples of the block / current CU, it is possible to Fig. 12A The selected CC (multi) model is signaled to the decoder at 1230. Thus, the bitstream generated by the encoder includes data representing the CC model or multiple models used to predict the chrominance samples of the block.
[0146] In e.g. Fig. 12B On the decoding side shown, at 1110, the decoder decodes data representing a CC model or multiple models for predicting chroma samples of a block, and derives a CC model or multiple models based on the decoded data. In this variant, the signaling indicates which embodiments or other cross-component prediction modes are used to predict chroma samples of the block / current CU.
[0147] In any of the above embodiments and variants, the size of the reference area for selecting reference reconstructed luminance samples can be any size as long as there are enough samples to be selected for deriving the CC model. Fig.18 or Fig.19 The reference region is defined as shown in FIG. , where n is 1. In another example, the adjacent reconstructed brightness samples used to calculate the CC model prediction can be extended to more rows and columns (i.e., n>1). For example, the enlarged region of the reference reconstructed brightness samples is defined by Fig.18 or Fig.19The reference samples in the dotted area are composed of Figure 8 Outside the relevant defined CU.
[0148] In some embodiments, the reference region and / or the selection of reference samples in the reference region is signaled by the video data (eg, in a bitstream).
[0149] In an embodiment, when a CC mode (e.g., CCLM, MMLM, or CCCM) is used to encode the current CU, a first indicator indS is encoded (i.e., a flag or index) to indicate whether the process for selecting a reference sample is changed, and an example of a value for the first indicator indS is shown in Table 1(a) below. For example, the first indicator indS indicates whether to use Fig.11 In other variants, the first indicator indS may also indicate whether the process for deriving the CC model is changed or which method is used to derive the model. For example, the first indicator indS may indicate whether to use the method described in Figures 11 to 20 Selection of reference samples as described in any of the embodiments described in.
[0150] In another embodiment, the second indicator indM indicates a reference area. For example, the second indicator indM indicates which neighboring area (e.g., area A or area B) is used to select a reference sample. Examples of values of the second indicator indM are shown in Table 1(b) below. The indicator indS can be encoded before or after the indicator indM is encoded. The encoding of either indicator indS or indM can depend on the cross-component coding tool. For example, one or both indicators can be encoded for one CC coding tool (e.g., CCCM) but not for another CC model (e.g., CCLM), or can be encoded for multiple CC models (e.g., CCLM and CCCM).
[0151] For example, in Fig.24 In the example of , the second indicator indM indicates which area among the upper area (2410), the left area (2420), or the upper left area (2410 and 2420) is the reference area. In other words, the second indicator indM indicates which area is used to derive the CC model. Different areas may overlap or not overlap (e.g. Fig.24 2415, 2425 on page 14). Fig.26 Other examples of adjacent regions are shown in .
[0152] Advantageously, the encoding of indS can be combined with other flags or indices. For example, indS can be combined with indM. Some combination examples are shown in Table 1(c) below.
[0153]
[0154] Table 1
[0155] In Table 1, region A and region B may be, for example, Fig.24 or Fig.26 Any one of the areas shown in (upper area, left area, upper left area - extended area -, upper right extended area, lower left extended area) or any combination of these areas.
[0156] In one variant, when indS=1 (i.e., when the first indicator indicates that Figures 13 to 20 In any of the embodiments described in , when selecting reference samples in a reference area), the process for selecting reference samples and / or deriving a CC model may change in certain circumstances. For example, when the first indicator indS is set to 1 (by decoding or inference), if the method for selecting reference samples is not applicable, or if the selection of reference samples in the reference area has no effect on the process of collecting reference samples in the considered area (i.e., the result provided by selecting reference samples for determining the CC model in the reference area is the same as the result without any selection), or if the ratio of selected reference samples (i.e., the number of selected reference samples divided by the total number of samples in the reference area) is lower (or higher) than a given value, the process for selecting reference samples may change. For example, such a value may be that 20% of the reference samples are selected.
[0157] Fig.25 An example of a method 2500 for chrominance prediction using a cross-component model according to another embodiment is shown. At 2510, a reference sample is selected in a reference region according to any of the embodiments described above.
[0158] For example, if both the first indicator indS and the second indicator indM are encoded (e.g., a, b in Table 1), but all reference samples in the reference area are still within the [min, max] range of the reconstructed luminance sample value of the current CU, then indS=0 or indS=1 will give the same result. In this case (the test at 2520 is true), when, for example, indS=1, the process for selecting reference samples changes. For example, if the reference area is determined to be area A (e.g., indM=0), if indS=1 and all reference samples in area A are within [min; max], the reference area is modified at 2530 and samples within the modified area are selected. At 2540, a CC model is derived based on the samples selected in the modified reference area, and at 2550, the derived CC model is used to predict the chrominance samples of the current CU.
[0159] In a variant, at 2520, a proportion of samples selected in the reference region is determined. Let N0 be the number of reference samples in the reference region that are not within the current CU reconstructed luminance sample value range [min, max], and N1 be the number of samples in the reference region. At 2520, in the case where both the first indicator indS and the second indicator indM are encoded (e.g., a, b of Table 1) but the ratio of N0 divided by N1 is lower than a given value (the test at 2520 is true), then when indS=1, the process for selecting reference samples changes. For example, if the reference region is determined to be region A (e.g., indM=0), if indS=1 and the test at 2520 is true (the ratio is lower than a given value), the reference region is modified at 2530. At 2540, a CC model is derived based on the samples selected in the modified reference region, and at 2550, the derived CC model is used to predict the chrominance samples of the current CU.
[0160] In another variant, when indS is equal to 1, the shape of the reference region is modified and all samples of the reference region are selected regardless of the value of the reference sample. In this case, the test (2520) is replaced by testing the value of indS.
[0161] In another variant, when indS is equal to 1, the shape of the reference region is modified, and the reference samples selected in the modified reference region are reference samples within the reconstructed luminance sample value range [min, max] of the current CU.
[0162] At 2530, the reference region may be modified by adding samples from another region (e.g., region B) or replacing selected samples of the reference region with other samples from another region or deleting a selected subset of samples (e.g., if the reference region is 2415 or 2425, deleting the upper left region). Fig.28 (2810) or (2820) (when indS=1) describes the Fig. 27 Some examples of regions modified by adding / replacing / deleting sample subsets {TL, AR, BL, above, left} in the reference region 2700 are shown (for indS=0).
[0163] In one variant, for example, a reference region (e.g. Fig.26 2610) in the sample subset (e.g. Fig.26 This may have the following advantages: if the first indicator indS=1 and the test at 2520 is true, no further reference samples of the reference area are added and the reference area becomes the subset area (2615), whereas if the test at 2520 is false, the other reference samples of the reference area (i.e. Fig.26 This variant simulates removing the reference sample from the reference region. Fig.26 Examples of expansion / other areas are depicted in .
[0164] In another example, at 2530, the upper left area is added to the reference area, such as Fig.24 As shown in , when the reference area is the left area ( 2420 ) or the upper area ( 2410 ), if the two areas do not overlap.
[0165] In another example, at 2530, the entire reference region is replaced with another region, for example, the upper left region is used as the reference region instead of the left region or the upper region.
[0166] In another example, at 2530 , another method is selected to export the CC model.
[0167] In another variant, the second indicator indM is first encoded and the first indicator indS is encoded or inferred from the decoded value of the second indicator indM. In this way, the selection of reference samples in a reference area may be activated only for a specific area.
[0168] In another variant, which may be combined with any of the previous variants / embodiments, the encoding of the first indicator indS is performed only for some values of the current block size. For example, the encoding of the first indicator indS is performed only for blocks having a size or a width and / or a height greater than a given value. In another example, the encoding of the first indicator indS is performed only for blocks having a size or a width and / or a height less than a given value. In these examples, when the first indicator indS is not encoded, its value is inferred, for example by activating the selection of reference samples in the reference area for these blocks by default, or by deactivating the selection of reference samples in the reference area for these blocks by default.
[0169] In another variant, the first indicator indS represents information indicating a change in a method for deriving a CC model. For example, the first method for deriving a CC model is based on Figure 4 The second method is based on the cross-component linear model (CCML) associated with Figure 5 The first and second methods can also be any other methods described herein for deriving CC models, such as Figure 7Related convolutional models. In this variant, the first method or the second method is used depending on the size of the block. For example, for blocks whose size is equal to or greater than a given value, the second method is used, and for blocks whose size is less than a given value, the first method is used. Therefore, depending on the size of the block, when the first indicator indS is not encoded or the first indicator indS is encoded and set to 0, one of the first method or the second method will be used for the block. When the first indicator is encoded and set to 1 for the block, the other of the first method and the second method will be used for the block. In this variant, the first indicator indS is used to change the method of deriving the CC model.
[0170] Fig.29 An example of a method 290 for predicting chroma samples of an image block according to an embodiment is shown.
[0171] At 2910, a reference region for determining a cross-component model for the block is identified. In a first variant, the reference region is identified according to a mode for determining a cross-component model, i.e., depending on a mode of a CC model (e.g., a mode of CCLM, a mode of multi-model LM, or CCCM), as described above with reference to Figures 4 to 8 In another variant, the reference region is identified by an indicator indicating a particular reference region, e.g. Fig. 27 One of the shapes shown in , where the reference area is displayed in gray. In some embodiments, an indicator indicating the reference area is encoded with the video data or decoded from the video data, such as the indM indicator described above.
[0172] At 2920, the reference region is modified based on at least one characteristic of the block.
[0173] In a first variant, the reference area is modified by selecting reference samples based on the reconstructed luminance samples of the block, for example, according to the above reference Figures 11 to 20 Choose any of the variations described.
[0174] In a second variant, the reference region is modified in response to a third indicator indT. The indicator indT may be signaled with the video data or may be inferred based on the reconstructed data. For example, the indicator indT may be inferred based on a pattern used to determine a CC model or other features of the block, such as the size of the block or the shape of the block.
[0175] In this second variant, the indicator indT indicates a modification of the reference region, for example, the indicator indicates that a portion of the reference region is removed, or the reference region is extended or replaced with another portion of the reconstructed sample. Fig. 27 One of the reference regions shown was modified to Fig.28The reference region is shown, wherein the portion of the reference region that is modified is shown in gray, and the portion removed from the reference region is shown in dashed lines.
[0176] For example, Fig. 27 As shown, the reference area identified at 2910 may include at least one of the following: Fig. 27 The partially reconstructed block includes a partially reconstructed block located above the current CU in the block, a partially reconstructed block located above the block, a partially reconstructed block located above the block, and a partially reconstructed block located below the block.
[0177] Therefore, modifying the reference area may include at least one of the following: adding or removing a partially reconstructed block located above the block, adding or removing a partially reconstructed block located above the block (eg Fig.28 ), adding or removing a partially reconstructed block located on the left side of the block, adding or removing a partially reconstructed block located on the lower left side of the block (as shown in Fig.28 ), adding or removing a portion of the reconstructed block located at the upper left of the block (as shown in Fig.28 shown).
[0178] In a third variant, which may be combined with the previous variant, the reference region is modified in response to an indicator indicating whether the reference region has to be modified.
[0179] For example, the indicator is similar to the indicator indS described above. In other examples, an indicator indicating whether the reference area must be modified can be set on the encoder side by determining the rate-distortion cost for predicting chroma samples using different available reference areas. In this example, the indicator indicating whether the reference area must be modified is signaled together with the video data. For example, at the encoder end, all available candidate modified reference areas are tested relative to the initial reference area (the reference area identified at 2910) to determine the CC model, and the candidate modified reference area or the initial reference area that provides the lowest cost (which can take into account the distortion and encoding cost for predicting and encoding chroma samples) is selected, and the indicator is set accordingly. In some embodiments, the indicator is set to a value that indicates both whether the reference area must be modified and, if the reference area is to be modified, what kind of modification is to be performed.
[0180] In this third variant, at the decoder side, in response to determining that the reference region must be modified, the reference region is modified at 2920. The determination is based on an indicator indicating whether the reference region must be modified, which can be inferred from the video data decoding or based on the CC model to be used or the size of the block.
[0181] At 2930, at least one cross-component model is obtained for the block from reference luma and chroma samples based on the reference region modified at 2920. At 2940, chroma samples of the block are predicted using the obtained at least one cross-component model and the reconstructed luma samples of the block. The predicted chroma samples may then be used to encode or decode the chroma samples of the block, as in Fig. 12A and 12B The methods 1200 and 1201 shown in FIG.
[0182] The above embodiments have used Fig.19 , 24 , 26, 27 and 28 are described as examples, but the above embodiments can also be applied to multiple areas and different area shapes and sizes.
[0183] Fig.21 A block diagram of a system in which aspects of the present embodiment may be implemented is shown according to another embodiment. Fig.21 One embodiment of an apparatus 2100 for predicting chroma samples using a CC model according to any of the embodiments described herein is shown.
[0184] The device includes a processor 2110 and may be interconnected with a memory 2120 through at least one port. The processor 2110 and the memory 2120 may also have one or more additional interconnections to connect to the outside.
[0185] The processor 2120 is also configured to, using any of the embodiments described herein, for at least one block of the image, based on the reconstructed luma samples of the block, obtain at least one cross-component model according to the reference luma and chroma samples, and predict the chroma samples of the block based on the at least one cross-component model of the block and the reconstructed luma samples. For example, the processor 2021 is configured to use a computer program product comprising code instructions to implement any of the embodiments described herein.
[0186] exist Fig. 22 In the embodiment shown, in a transmission environment between two remote devices A and B via a communication network NET, device A includes a processor associated with memories RAM and ROM, which are configured to implement as combined Figure 1 , 2 , 12A described method for encoding an image or video, and device B includes a processor associated with memory RAM and ROM, which is configured to implement as described with Figure 1 , 3 , 12B and the method for decoding an image or video described in relation to FIG. According to an embodiment, devices A and B are further configured to use Figures 13 to 20 The CC model described in the related section is used to predict chrominance samples.
[0187] According to an example, the network is a broadcast network adapted to broadcast / transmit encoded images or videos from device A to decoding devices including device B.
[0188] Fig.23 An example of the syntax of a signal transmitted by a packet-based transport protocol is shown. Each transmitted packet P includes a header H and a payload PAYLOAD. In some embodiments, the payload PAYLOAD may include coded image or video data according to any of the above embodiments. In a variant, the signal includes data representing a CC model or CC multi-model for predicting chrominance samples of an image or video block.
[0189] Various implementations involve decoding. "Decoding" as used in this application may encompass, for example, all or part of a process performed on a received coded sequence to produce a final output suitable for display. In various embodiments, such a process includes one or more processes typically performed by a decoder, such as entropy decoding, inverse quantization, inverse transform, and differential decoding. In various embodiments, such a process also includes or alternatively includes a process performed by a decoder of the various embodiments described in this application.
[0190] As a further example, in one embodiment, "decoding" refers only to entropy decoding, in another embodiment, "decoding" refers only to differential decoding, in another embodiment, "decoding" refers to a combination of entropy decoding and differential decoding, and in another embodiment, "decoding" refers to the entire image reconstruction process including entropy decoding. Whether the phrase "decoding process" is intended to specifically refer to a subset of operations or to generally refer to a broader decoding process will become clear based on the context of the specific description and is believed to be well understood by those of ordinary skill in the art.
[0191] Various implementations involve encoding. Similar to the above discussion about "decoding", "encoding" as used in this application can cover, for example, all or part of the processes performed on an input video sequence to produce an encoded bitstream. In various embodiments, such processes include one or more processes typically performed by an encoder, such as partitioning, differential encoding, transforms, quantization, and entropy encoding. In various embodiments, such processes also include or alternatively include processes performed by an encoder of various embodiments described in this application, such as determining resampling filter coefficients, resampling decoded images.
[0192] As a further example, in one embodiment, "encoding" refers only to entropy encoding, in another embodiment, "encoding" refers only to differential encoding, and in another embodiment, "encoding" refers to a combination of differential encoding and entropy encoding. Whether the phrase "encoding process" is intended to refer specifically to a subset of operations or generally to a broader encoding process will become clear based on the context of the specific description and is believed to be well understood by those of ordinary skill in the art.
[0193] It should be noted that the syntax elements used in this article are descriptive terms. Therefore, they do not exclude the use of other syntax element names.
[0194] This disclosure describes, for example, a variety of information that can be transmitted or stored, such as syntax. The information can be packaged or arranged in a variety of ways, including, for example, ways commonly used in video standards, such as placing the information in an SPS, PPS, NAL unit, header (e.g., a NAL unit header or a slice header), or SEI message. Other ways can also be used, including, for example, ways commonly used by system-level or application-level standards, such as placing the information in one or more of the following:
[0195] a. SDP (Session Description Protocol), a format for describing multimedia communication sessions, used for session announcements and session invitations, e.g. described in RFCs and used in conjunction with RTP (Real-time Transport Protocol) transport.
[0196] b. DASH MPD (Media Presentation Description) descriptor, used, for example, in DASH and transmitted over HTTP, a descriptor is associated with a representation or a set of representations to provide additional characteristics to the content representation.
[0197] c. RTP header extension, such as used during RTP streaming.
[0198] d. ISO base media file formats, such as used in OMAF, and use boxes, which are object-oriented building blocks defined by a unique type identifier and a length, also called "atoms" in some specifications.
[0199] e. HLS (HTTP Live Streaming) manifests transmitted over HTTP. For example, a manifest can be associated with a version or set of versions of the content to provide characteristics of the version or set of versions.
[0200] In this disclosure, unless otherwise specified, CC model stands for cross-component model, and multi-model refers to multiple cross-component models (CC models) derived for predicting chroma samples of the same unit or block.
[0201] When a diagram is presented as a flow chart, it should be understood that it also provides a block diagram of the corresponding device. Similarly, when a diagram is presented as a block diagram, it should be understood that it also provides a flow chart of the corresponding method / process.
[0202] Some embodiments relate to rate-distortion optimization. Specifically, in the encoding process, a balance or trade-off between rate and distortion is usually considered, usually taking into account the limitation of computational complexity. Rate-distortion optimization is usually expressed as minimizing a rate-distortion function, which is a weighted sum of rate and distortion. There are different methods to solve the rate-distortion optimization problem. For example, these methods can be based on extensive testing of all coding options, including all considered modes or coding parameter values, and a complete evaluation of their coding costs and the associated distortion of the reconstructed signal after encoding and decoding. Faster methods can also be used to save coding complexity, in particular, to calculate approximate distortion based on prediction or prediction residual signals rather than reconstructed signals. The two methods can also be mixed, for example, only using approximate distortion for some possible coding options and using complete distortion for other coding options. Other schemes only evaluate a subset of possible coding options. More generally, many schemes use any of a variety of techniques to perform optimization, but optimization is not necessarily a complete evaluation of coding costs and associated distortions.
[0203] The embodiments and aspects described herein can be implemented as, for example, methods or processes, devices, software programs, data streams or signals. Even if only discussed in the context of a single embodiment (e.g., discussed only as a method), the implementation of the discussed features can also be implemented in other forms (e.g., devices or programs). The device can be implemented as, for example, suitable hardware, software, and firmware. The method can be implemented as, for example, a processor, which generally refers to a processing device, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. The processor also includes a communication device, such as a computer, a mobile phone, a portable / personal digital assistant ("PDA"), and other devices that facilitate information communication between end users.
[0204] References to "an embodiment" or "an embodiment" or "an implementation" or "an implementation" and other variations thereof mean that the particular features, structures, characteristics, etc. described in connection with the embodiment are included in at least one embodiment. Therefore, the phrases "in an embodiment" or "in an embodiment" or "in an implementation" or "in an implementation" and any other variations appearing in multiple places in the present application do not necessarily all refer to the same embodiment.
[0205] Furthermore, the present application may involve “determining” a variety of information. Determining information may include one or more of the following, such as estimating information, calculating information, predicting information, or retrieving information from memory.
[0206] Furthermore, the present application may involve "accessing" various information. Accessing information may include one or more of the following, such as receiving information, retrieving information (e.g., from a memory), storing information, moving information, copying information, calculating information, determining information, predicting information, or estimating information.
[0207] Furthermore, the present application may involve "receiving" a variety of information. Like "accessing," receiving is intended to be a broad term. Receiving information may include one or more of the following, such as accessing information or retrieving information (e.g., from a memory). Furthermore, "receiving" generally involves in some way during an operation such as storing information, processing information, transmitting information, moving information, copying information, erasing information, calculating information, determining information, predicting information, or estimating information.
[0208] It should be understood that the use of any of the following " / ", "and / or", and "at least one", such as in the case of "A / B", "A and / or B", and "at least one of A and B", is intended to cover selecting only the first listed option (A), or only the second listed option (B), or selecting both options (A and B). As a further example, in the case of "A, B, and / or C" and "at least one of A, B, and C", such wording is intended to cover selecting only the first listed option (A), or only the second listed option (B), or only the third listed option (C), or only the first and second listed options (A and B), or only the first and third listed options (A and C), or only the second and third listed options (B and C), or all three options (A and B and C). This can be extended to as many items as listed as will be apparent to one of ordinary skill in this and related arts.
[0209] In addition, as used herein, the term "signal" refers, among other things, to indicating something to a corresponding decoder. For example, in some embodiments, an encoder signals a specific one of a plurality of transforms, coding modes, or flags. Thus, in one embodiment, the same transform, parameter, or mode is used on the encoder side and the decoder side. Thus, for example, an encoder may transmit (explicitly signal) a specific parameter to a decoder so that the decoder may use the same specific parameter. Conversely, if the decoder already has the specific parameter as well as other parameters, a signal may be transmitted (implicitly signaled) without transmitting to simply allow the decoder to know and select the specific parameter. Bit savings are achieved in various embodiments by avoiding the transmission of any actual functionality. It should be understood that signaling may be accomplished in a variety of ways. For example, in various embodiments, one or more grammatical elements, flags, etc. are used to signal information to a corresponding decoder. Although the verb form of the word "signal" is mentioned above, the word "signal" may also be used as a noun here.
[0210] As will be appreciated by those of ordinary skill in the art, embodiments may generate a variety of formatted signals to carry information that may be, for example, stored or transmitted. The information may include, for example, instructions for executing a method or data generated by one of the embodiments. For example, a signal may be formatted to carry a bitstream of the embodiment. Such a signal may be formatted as, for example, an electromagnetic wave (e.g., using a radio frequency portion of a spectrum) or a baseband signal. Formatting may include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information carried by the signal may be, for example, analog or digital information. As is well known, a signal may be transmitted over a variety of different wired or wireless links. The signal may be stored on a processor readable medium.
[0211] A number of embodiments have been described above. The features of these embodiments may be provided individually or in any combination, across a variety of claim categories and types.
Claims
1. A method comprising: For at least one block of the image, - identifying a reference region for determining at least one cross-component model based on reference luma and chroma samples; - modifying the reference region based on at least one characteristic of the block; - obtaining the at least one cross-component model based on the modified reference region; and - predicting chroma samples of the block based on the at least one cross-component model and the reconstructed luminance samples of the block.
2. An apparatus comprising one or more processors, wherein the one or more processors are operable to perform, for at least one block of an image: - identifying a reference region for determining at least one cross-component model from reference luma and chroma samples; - modifying the reference region based on at least one characteristic of the block; - obtaining the at least one cross-component model based on the modified reference region; and - predicting chroma samples of the block based on the at least one cross-component model and the reconstructed luminance samples of the block.
3. The method of claim 1 or the apparatus of claim 2, wherein the at least one characteristic of the block comprises reconstructed luminance samples of the block.
4. The method according to claim 1 or 3 or the apparatus according to claim 2 or 3, wherein the reference luma and chroma samples are reconstructed luma samples and corresponding reconstructed chroma samples located in the reference region of the block.
5. The method or apparatus of claim 3, wherein modifying the reference region based on at least one characteristic of the block comprises: selecting reference luma samples and co-located chroma samples in the reference region of the block based at least on the reconstructed luma samples of the block, and Wherein obtaining the at least one cross-component model based on the modified reference region comprises: determining the at least one cross-component model based on selected reference luma samples and co-located chroma samples.
6. The method or apparatus of claim 5, wherein reference luma samples and co-located chroma samples are selected in the reference region of the block in response to determining that the reference luma samples have the same characteristics as the reconstructed luma samples of the block.
7. The method or apparatus of claim 5, wherein selecting reference luma samples and co-located chroma samples in the reference region of the block based on the reconstructed luma samples of the block comprises: A range of values representing the reconstructed luma samples of the block is determined, and wherein reference luma samples and co-located chroma samples are selected in the reference region of the block in response to determining that the reference luma samples are within the range.
8. The method or apparatus of claim 7, wherein the range of values representing the reconstructed luma samples of the block is from a minimum luma value to a maximum luma value, wherein the minimum luma value and the maximum luma value are obtained from the reconstructed luma samples of the block.
9. A method or apparatus according to claim 8, wherein the value range representing the reconstructed luminance samples of the block is derived from the mean and standard deviation of the reconstructed luminance samples of the block and a probability density function, so that a given amount of the reconstructed luminance samples of the block have values within the range.
10. The method or apparatus according to any one of claims 5 to 9, wherein obtaining the at least one cross-component model based on the modified reference region comprises: - determining a first value from at least one of said reconstructed luma samples and selected reference luma samples of said block; - classifying the selected reference luminance sample based on said first value; - wherein for each class a cross-component model is determined based on selected reference luma samples and co-located chroma samples of said class.
11. The method or apparatus of claim 10, wherein the first value is determined as an average of the reconstructed luma samples of the block or an average of selected reference luma samples.
12. The method or apparatus of claim 10, wherein the first value is determined based on the reconstructed luma samples and selected reference luma samples of the block.
13. The method or apparatus of claim 5, wherein selecting reference luma samples and co-located chroma samples in the reference region of the block is further based on a reference luma sample subset.
14. The method or apparatus according to claims 13 and 7, wherein the value range is determined based on the reconstructed luma samples of the block and reference luma samples in the reference luma sample subset.
15. A method or device according to any one of claims 13 and 14, wherein the reference luminance sample subset includes at least one of the following: samples located in one or more rows above the block; samples located in one or more columns to the left of the block; samples located in one or more rows above the block and located to the upper right of the block; and samples located in one or more columns to the left of the block and located to the lower left of the block.
16. The method or apparatus according to any one of claims 5 to 15, wherein the method further comprises or the one or more processors are further configured to: - determining at least one first cross-component model based on all said reference luma samples and co-located chroma samples; - determining at least one second cross-component model based on the selected reference luma samples and the co-located chroma samples; - determining a first predicted chroma sample for a selected reference luma sample using the first cross-component model, and determining a second predicted chroma sample for the selected reference luma sample using the second cross-component model; as well as - selecting the first cross-component model or the second cross-component model based on a first distortion determined between a selected reference chroma sample and the first predicted chroma sample and a second distortion determined between the selected reference chroma sample and the second predicted chroma sample.
17. A method according to claim 1 or 3 or an apparatus according to claim 2 or 3, wherein the at least one characteristic of the block comprises an indicator obtained for the block, and wherein the reference region is modified in response to the obtained indicator.
18. A method or apparatus according to any one of claims 3 to 16, wherein the reference region is modified in response to a first indicator, wherein the first indicator indicates whether the at least one cross-component model is determined based on selected reference luminance samples and co-located chrominance samples or based on all reference luminance samples and co-located chrominance samples in the reference region.
19. The method or apparatus of any one of claims 4 to 18, wherein a second indicator indicates the reference area.
20. A method or apparatus according to claims 17 and 19 or claims 18 and 19, wherein the encoded indicator or the first indicator is combined with the second indicator in a third indicator encoded with the video data.
21. A method or apparatus according to claims 7, 18 and 19, wherein if the first indicator indicates that the at least one cross-component model is determined based on selected reference luma samples and co-located chroma samples, the reference region is also modified in response to determining that all reference luma samples in the reference region are within the range.
22. The method or apparatus of claims 7, 18, and 19, wherein if the first indicator indicates that the at least one cross-component model is determined based on selected reference luma samples and co-located chroma samples, modifying the reference region is further responsive to determining: - a ratio determined by the number of reference luminance samples in the reference area within the range divided by the number of samples in the reference area is lower or higher than a given value.
23. The method of any one of claims 1 and 3 to 22 or the apparatus of any one of claims 2 to 22, wherein modifying the reference region comprises at least one of: - extending the reference area; - replacing the reference region; and - removing a portion of said reference area.
24. The method according to any one of claims 1 and 3 to 22 or the apparatus according to any one of claims 2 to 22, wherein the reference area includes at least one of the following: a partially reconstructed block located above the block; a partially reconstructed block located above and to the right of the block; a partially reconstructed block located to the left of the block; a partially reconstructed block located above and to the left of the block; and a partially reconstructed block located below and to the left of the block, Modifying the reference region includes at least one of: - adding or removing a part of the reconstructed block located above the block; - adding or removing a partially reconstructed block located to the upper right of the block; - adding or removing a part of the reconstructed block located to the left of the block; - adding or removing a portion of the reconstructed block located to the lower left of the block; and - Add or remove the partially reconstructed block located above and to the left of the block.
25. The method or apparatus of claim 21, wherein if the first indicator indicates that the at least one cross-component model is determined based on selected reference luma samples and co-located chroma samples, further modifying the reference region in response to determining that all reference luma samples in a first portion of the reference region are within the range, and modifying the reference region comprises: The reference region is restricted to the first portion of the reference region.
26. A method or apparatus according to any one of claims 17 to 25, wherein the first indicator is encoded with video data or inferred based on a given value of the second indicator.
27. The method or apparatus of claim 17 or 26, wherein the encoded indicator or the first indicator is encoded with video data in response to a size of the block or in response to a given mode for determining a cross-component model.
28. The method according to any one of claims 1 and 3 to 27 or the apparatus according to any one of claims 2 to 27, the method further comprising or the one or more processors being further configured to: encode the block based on the predicted chroma samples.
29. The method according to any one of claims 1 and 3 to 27 or the apparatus according to any one of claims 2 to 27, the method further comprising or the one or more processors being further configured to: decode the block based on the predicted chroma samples.
30. A computer program product comprising instructions for causing one or more processors to perform the method according to any one of claims 1 and 3 to 29.
31. A non-transitory computer-readable medium storing executable program instructions to cause a computer executing the instructions to perform the method according to any one of claims 1 and 3 to 29.
32. A device comprising: - a device according to any one of claims 2 to 29; and - at least one of: (i) an antenna configured to receive a signal, the signal comprising data representing an image or video; (ii) a frequency band limiter configured to limit the received signal to a frequency band comprising data representing the image or video; and (iii) a display configured to display the image or video.
33. The device of claim 29, wherein the device comprises at least one of a television, a mobile phone, a tablet computer, and a set-top box.