CHROMA SAMPLE WEIGHTING DERIVATION FOR GEOMETRIC PARTITION MODE

MX431204BActive Publication Date: 2026-02-25HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
MX2021015847
Authority / Receiving Office
MX · MX
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-21
Filing Date
2021-12-16
Publication Date
2026-02-25
Estimated Expiration
2040-06-19

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in achieving high compression ratios with minimal image quality sacrifice, particularly in handling chroma samples during encoding and decoding processes.

Method used

A method for deriving weight values for partitioning chroma samples based on geometric models, utilizing luma sample weights to reduce the computational complexity and improve decoding speed by omitting redundant calculations.

Benefits of technology

Enhances decoding and encoding speeds by reducing the need for hardware circuits and operations, while maintaining image quality through efficient chroma sample weight derivation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure MX431204B0
    Figure MX431204B0
  • Figure MX431204B1
    Figure MX431204B1
Patent Text Reader

Abstract

A method for encoding implemented by a decoding device is described, comprising obtaining a parameter value for a current block, the parameter value indicating a partitioning mode for the current block; obtaining a first prediction mode for the current block; obtaining a second prediction mode for the current block; generating a first prediction value for a chroma sample in the current block according to the first prediction mode; generating a second weighting value for a chroma sample in the current block according to the second prediction mode; obtaining a combined prediction sample value by combining the first prediction value and the second prediction value.
Need to check novelty before this filing date? Find Prior Art

Description

CHROMA SAMPLE WEIGHTING DERIVATION FOR GEOMETRIC PARTITION MODE CROSS REFERENCE TO RELATED APPLICATIONS This patent application claims priority over international patent application PCT / EP2019 / 066516 filed on June 21, 2019. The description of the patent application mentioned above is incorporated herein by reference in its entirety. FIELD OF INVENTION The methods described herein generally relate to the field of image processing and more specifically to deriving weighting values ​​for partitioning. BACKGROUND OF THE INVENTION Video coding (video encoding and decoding) is used in a wide range of digital video applications, for example digital TV broadcasting, video transmission over the internet and mobile networks, real-time conversation applications such as video chat, video conferencing, DVD and Blu-ray discs, video content acquisition and addition systems, and video cameras for security applications. The amount of video data needed to represent even a relatively short video can be substantial, which can lead to difficulties when the data is to be distributed or otherwise communicated over a communications network with limited bandwidth capacity. Therefore, video data is generally compressed before being transmitted over today's telecommunications networks. The size of a video can also be a problem when the video is stored on a storage device due to limited memory resources. Video compression devices frequently use software and / or hardware at the source to encode the video data before transmission or storage, thereby reducing the amount of data needed to represent digital video images.The compressed data is then received at the destination by a video decompression device that decodes the video data. With limited network resources and ever-increasing demands for higher video quality, improved compression and decompression techniques that enhance the compression ratio with little or no sacrifice in image quality are desirable. BRIEF DESCRIPTION OF THE INVENTION The embodiments of the present description provide apparatus and methods for encoding and decoding in accordance with the independent claims. This description provides an encoding method implemented by a decoding device, comprising: MA / a / 2U21 / UlDO4 / get a parameter value for a current block, the parameter value indicates a partitioning mode for the current block; obtain a first prediction mode for the current block; obtain a second prediction mode for the current block; generate a first prediction value for a chroma sample in the current block according to the first prediction mode; generate a second prediction value for a chroma sample in the current block according to the second prediction mode; obtain a combined prediction sample value by combining the first prediction value and the second prediction value. In the method as described above, the combined value of prediction samples can be obtained by combining the first prediction value and the second prediction value according to the partitioning mode. In the method as described above, the combined value of prediction samples can be obtained by combining the first prediction value and the second prediction value according to a combination operation. Thus, a partitioning mode, that is, its corresponding partition, can be understood as marking a boundary where the sample weight of the first prediction is higher than the sample weight of the second prediction, for example due to the combination operation. In the method as described above, the join operation can be implemented using a function or a lookup table. The method as described above may further comprise obtaining a weighting value for a luma sample by calculating the weighting value for the luma sample; and obtaining a first weighting value for a chroma sample by calculating the first weighting value for the chroma sample. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for a luma sample in the current block; and the method can further comprise the step of obtaining a combined prediction value for the chroma sample in the current block, according to the first prediction value for the chroma sample and the first weighting value for the chroma sample. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for the luma sample in the current block as, sample weight C1(x, y) = sample weight (2*x, 2*y); where x and y are the coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weightC1(a, b) is a first weight value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight1(c, d) represents a weight value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value. It should be understood that the expression such as (2*x,2*y) and (2x, 2y) are understood to be the same. Thus, according to the method described above, the weighting value of the chroma sample at a chroma sample location (x, y) can be equal to the weighting value of a luma sample at the luma sample location (2x, 2y). This relationship between luma sample weighting and chroma sample weighting allows for the omission of the chroma sample weighting calculation. In other words, due to the relationship given above, i.e., sample weight C1(x, y) = sample weight (2*x, 2*y), after calculating sample weight () for all luma samples in a luma block, it is no longer necessary to calculate sample weight C1 () again. For all chroma samples in a chroma block, sample weight C1 () can be obtained using the calculated values ​​for sample weight (). Therefore, the present description allows implementers to reduce the circuitry required to calculate sample weight C1 ()It is not necessary to implement hardware circuitry to calculate sampleCI weighting; the sampleCI weighting values ​​can be obtained by accessing the already calculated sample weighting values. Also, in software, since the calculation of sampleCI weighting is simplified, decoding and encoding speeds would increase due to the reduction in the number of operations required to obtain sampleCI weighting. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for the luma sample in the current block as, sample weight CI (x, y) = sample weight (2*x-1,2*y-1); or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + K)»1; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x -1,2*y) + K)»2; IVIA / a / ¿U¿ l / UI 004 / sample weightingC1(x, y) = (sample weighting (2*x-1, 2*y-1) + sample weighting (2*x, 2*y) + sample weighting (2*x, 2*y -1) + sample weighting (2*x -1,2*y) + 2)»2; or sample weightingC1(x, y) = (sample weighting (2*x-1, 2*y-1) + sample weighting (2*x, 2*y) + 1)»1; where x and y are the coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight C1(a, b) is a first weight value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight (c, d) represents a weight value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value. In the method as described above, the partitioning mode can be a geometric model. In the method as described above, the parameter can be an angle parameter or a distance parameter. In the method as described above, where the first prediction mode and the second prediction mode may not be identical. In the method as described above, the first prediction mode or the second prediction mode may be an inter-prediction mode, where the information for the inter-prediction mode may comprise a reference image index and / or a motion vector. In the method as described above, the first prediction mode or the second prediction mode may be an intra-prediction mode, where the information for the intra-prediction mode may comprise an inter-prediction mode index. The present description further provides a decoder comprising a processing circuit to carry out the method as described above. This description further provides a computer program product comprising program code for carrying out the method as described above. This description also provides a decoder, which comprises: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoding to carry out the method as described above. MA / a / 2U21 / ULDO4 / This description also provides a decoder, which comprises: a obtaining unit to get a parameter value for a current block, the parameter value indicates a partitioning mode for the current block; a first prediction unit to obtain a first prediction mode for the current block; a second prediction unit to obtain a second prediction mode for the current block; a first generator unit to generate a first prediction value for a chroma sample in the current block according to the first prediction mode; a second generator unit to generate a second prediction value for a chroma sample in the current block according to the second prediction mode; a combination unit to obtain a combined value of prediction samples by combining the first prediction value and the second prediction value. The above can also be applied to a coding aspect. In this way, the present description can also provide a coding method implemented by a coding device, comprising: to obtain a parameter value for a current block, the parameter value indicates a partitioning mode for the current block; obtain a first prediction mode for the current block; obtain a second prediction mode for the current block; generate a first prediction value for a chroma sample in the current block according to the first prediction mode; generate a second prediction value for a chroma sample in the current block according to the second prediction mode; obtain a combined prediction sample value by combining the first prediction value and the second prediction value. In the method as described above, the combined value of prediction samples can be obtained by combining the first prediction value and the second prediction value according to the partitioning mode. In the method as described above, the combined value of prediction samples can be obtained by combining the first prediction value and the second prediction value according to a combination operation. Thus, a partitioning mode, that is, its corresponding partition, can be understood as marking a boundary where the sample weight of the first prediction is higher than the sample weight of the second prediction, for example due to the combination operation. In the method as described above, the combination operation can IVIA / a / ¿U¿ I / U1 004 / implement using a function or a lookup table. The method as described above may further comprise obtaining a weighting value for a luma sample by calculating the weighting value for the luma sample; and obtaining a first weighting value for a chroma sample by calculating the first weighting value for the chroma sample. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for a luma sample in the current block; and the method can further comprise the step of obtaining a combined prediction value for the chroma sample in the current block, according to the first prediction value for the chroma sample and the first weighting value for the chroma sample. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for the luma sample in the current block as, sample weight C1(x, y) = sample weight (2*x, 2*y); where x and y are coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight C1(a, b) is a first weight value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight (c, d) represents a weight value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value. Thus, according to the method described above, the weighting value of the chroma sample at a chroma sample location (x, y) can be equal to the weighting value of a luma sample at the luma sample location (2x, 2y). This relationship between luma sample weighting and chroma sample weighting allows for the omission of the chroma sample weighting calculation. In other words, due to the relationship given above, i.e., sample weight C1(x, y) = sample weight (2*x, 2*y), after calculating sample weight () for all luma samples in a luma block, it is no longer necessary to calculate sample weight C1 () again. For all chroma samples in a chroma block, sample weight CI () can be obtained using the calculated values ​​for sample weight (). Therefore, the present description allows implementers to reduce the circuitry required to calculate sample weight CI.It is not necessary to implement hardware circuitry to calculate sampleCI weighting; the sampleCI weighting values ​​can be obtained by accessing the already calculated sample weighting values. Also, in software, since the sampleCI weighting calculation is simplified, decoding and encoding speeds would increase due to the reduction in the number of operations required to obtain sampleCI weighting. In the method as described above, obtaining the first weighting value for the chroma sample can be related to obtaining the weighting value for the luma sample in the current block as, sample weight CI (x, y) = sample weight (2*x-1,2*y-1); or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + K)»1; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x -1,2*y) + K)»2; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x -1,2*y) + 2)»2; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + 1)»1; where x and y are the coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight CI(a, b) is a first weight value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight (c, d) represents a weight value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value. In the method as described above, the partitioning mode can be a geometric model. In the method as described above, the parameter can be an angle parameter or a distance parameter. In the method as described above, where the first prediction mode and the second prediction mode may not be identical. In the method as described above, the first prediction mode or the second prediction mode may be an inter-prediction mode, where the information for the inter-prediction mode may comprise a reference image index and / or a motion vector. iviA / a / ¿u¿ i / ui 004 / In the method as described above, the first prediction mode or the second prediction mode may be an intra-prediction mode, where the information for the intra-prediction mode may comprise an inter-prediction mode index. The present description may also provide an encoder comprising a processing circuit to carry out the method as described above. This description may further provide a computer program product comprising program code for carrying out the method as described above. This description may also provide an encoder, comprising: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to carry out the method as described above. This description may also provide an encoder, comprising: a obtaining unit to get a parameter value for a current block, the parameter value indicates a partitioning mode for the current block; a first prediction unit to obtain a first prediction mode for the current block; a second prediction unit to obtain a second prediction mode for the current block; a first generator unit to generate a first prediction value for a chroma sample in the current block according to the first prediction mode; a second generator unit to generate a second prediction value for a chroma sample in the current block according to the second prediction mode; a combination unit to obtain a combined value of prediction samples by combining the first prediction value and the second prediction value. The foregoing and other objectives are achieved by the content of the independent claims. Additional forms of implementation are evident from the appended claims, the description, and the figures. In other words, according to a second aspect of the invention, an encoder comprising processing circuits for carrying out the embodiments of the method. According to a third aspect of the invention, a decoder comprising a processing circuit for carrying out the embodiments of the method. According to a fourth aspect of the invention, a computer program product comprising program code for carrying out the embodiments of the method. According to a fifth aspect of the invention, a decoder, comprising: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoding to carry out the ways of realizing the method. According to a sixth aspect of the invention, an encoder, comprising: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoder to carry out the embodiments of the method. In one embodiment, a non-transient storage medium includes a bitstream encoded and decoded by an image decoding device, the bitstream being generated by dividing a frame of a video signal or image signal into a plurality of blocks, and includes a plurality of syntax elements, wherein the plurality of syntax elements comprises an indicator (syntax) according to any of the above embodiments and the implementation is described. Details of one or more embodiments are set forth in the accompanying figures and the following description. Other features, objectives, and advantages will be apparent from the description, figures, and claims. BRIEF DESCRIPTION OF THE DRAWINGS The following embodiments of the invention are described in more detail with reference to the accompanying figures and drawings, in which: FIGURE 1A is a block diagram showing an example of a video coding system configured to implement embodiments of the invention. FIGURE 1B is a block diagram showing another example of a video coding system configured to implement ways of embodying the invention. FIGURE 2 is a block diagram showing an example of a video encoder configured to implement embodiments of the invention. FIGURE 3 is a block diagram showing an example of an exemplary structure of a video decoder configured to implement embodiments of the invention. FIGURE 4 is a block diagram that illustrates an example of an encoding or decoding device. FIGURE 5 is a block diagram that illustrates another example of an encoding or decoding apparatus. FIGURE 6A illustrates an example of a placed block. FIGURE 6B illustrates an example of spatial underlying blocks. FIGURE 7 illustrates some examples of a triangular prediction mode. FIGURE 8 illustrates some examples of the sub-block prediction mode. FIGURE 9 shows an example of partitioning a block. FIGURE 10 shows an example of partitioning a block. FIGURE 11 shows another example of partitioning a block. FIGURE 12 shows yet another example of partitioning a block; FIGURE 13 shows an example of the weighting factor values ​​after a combination function process. FIGURE 14 shows another example of weighting factor values ​​after a combination function process. FIGURE 15 shows some examples of combination functions. FIGURE 16 illustrates the relationship between chroma coordinates and luma coordinates. FIGURE 17 illustrates a flowchart of one way of implementing a method according to the present description. FIGURE 18 illustrates a decoder according to one embodiment of the present description. FIGURE 19 is a block diagram showing an example of an exemplary structure of a 3100 content delivery system that carries out a content delivery service. FIGURE 20 is a block diagram showing the structure of an example terminal device. In what follows, the terms “co-located” and “co-situated” should be understood to have identical meanings. In the following, identical reference signs refer to identical or at least functionally equivalent characteristics and are not explicitly specified otherwise. DETAILED DESCRIPTION OF THE INVENTION In the following description, reference is made to the accompanying figures, which form part of the description and illustrate specific aspects of the embodiments of the invention or specific aspects in which the embodiments of the present invention may be used. It is understood that the embodiments of the invention may be used in other aspects and include structural or logical changes not shown in the figures. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims. For example, it is understood that a description relating to a described method may also be valid for a corresponding device or system configured to carry out the method, and vice versa. For example, if one or more specific method steps are described, a corresponding device may include one or more units, such as functional units, to carry out the one or more described method steps (e.g., a single unit carrying out one or more steps, or a plurality of units, each carrying out one or more of the steps), even if these units are not explicitly described or illustrated in the figures.Furthermore, for example, if a specific apparatus is described based on one or more units, such as functional units, a corresponding method may include a step for carrying out the functionality of one or more units (e.g., a single step carrying out the functionality of one or more units, or a plurality of steps, each carrying out the functionality of one or more of the units), even if these steps are not explicitly described or illustrated in the figures. It is also understood that the features of the various exemplary embodiments and / or aspects described herein may be combined with one another, unless specifically noted otherwise. Video coding typically refers to the processing of a sequence of images that make up the video or video sequence. Instead of the term "image," the terms "frame" or "picture" can be used interchangeably in the field of video coding. Video coding (or coding in general) comprises two parts: video encoding and video decoding. Video coding is performed at the source and typically involves processing (for example, by compression) the original video images to reduce the amount of data required to represent the video images (for more efficient storage and / or transmission). Video decoding is performed at the destination and typically involves the reverse processing of the encoder to reconstruct the video images.The forms of implementation that refer to the “encoding” of video images (or images in general) shall be understood to relate to the “encoding” or “decoding” of video images or respective video sequences. The combination of the encoding and decoding parts is also referred to as CODEC (Encoding and Decoding). In lossless video encoding, the original video images can be reconstructed; that is, the reconstructed video images have the same quality as the original video images (assuming no transmission loss or other data loss during storage or transmission). In lossy video encoding, additional compression, such as quantization, is performed to reduce the amount of data representing the video images, which cannot be reconstructed. MA / a / 4ÍU21 / UlDO4 / completely in the decoder, that is, the quality of the reconstructed video images is lower or worse compared to the quality of the original video images. Several video coding standards belong to the group of "lossy hybrid video codecs" (i.e., they combine spatial and temporal prediction in the sample domain and 2D transformation coding to apply quantization in the transformation domain). Each frame in a video sequence is typically partitioned into a set of non-overlapping blocks, and coding is typically performed at a block level.In other words, in the encoder the video is typically processed, i.e., encoded, at a block level (video block), for example by using spatial (intra-image) and / or temporal (inter-image) prediction to generate a prediction block, subtracting the prediction block from the current block (currently processed / being processed block) to obtain a residual block, transforming the residual block and quantizing the residual block in the transformation domain to reduce the amount of data to be transmitted (compression), while in the decoder, the inverse processing compared to the encoder is applied to the encoded or compressed block to reconstruct the current block for representation.Furthermore, the encoder duplicates the decoder's processing loop so that both will generate identical predictions (e.g., intra- and inter-predictions) and / or reconstructions for processing, i.e., encoding, subsequent blocks. In the following embodiments of a video coding system 10, a video encoder 20 and a video decoder 30 are described based on FIGURES 1 to 3. Figure 1A is a schematic block diagram illustrating an exemplary encoding system 10, for example a video encoding system 10 (or short encoding system 10) that can utilize techniques from this description. The video encoder 20 (or short encoder 20) and video decoder 30 (or short decoder 30) of the video encoding system 10 represent examples of devices that can be configured to carry out techniques according to various examples described herein. As shown in FIGURE 1A, the encoding system 10 comprises a source device 12 configured to provide encoded image data 21, for example, to a destination device 14 to decode the encoded image data 13. The source device 12 comprises an encoder 20, and additionally, i.e. optionally, may comprise an image source 16, a pre-processor (or pre-processing unit) 18, for example an image pre-processor 18, and a communication interface or communication unit 22. Image source 16 may comprise or be any kind of image capture device, for example, a camera for capturing a real-world image, and / or any kind of image generating device, for example, a computer graphics processor for generating a computer-generated animated image, or any other kind of device for obtaining and / or providing a real-world image, a computer-generated image (for example, screen content), a virtual reality (VR) image, and / or any combination thereof (for example, an augmented reality (AR) image). The image source may be any kind of memory or storage that stores any of the images mentioned above. With distinction to pre-processor 18 and the processing carried out by pre-processing unit 18, the image or image data 17 may also be referred to as a raw image or raw image data 17. The preprocessor 18 is configured to receive the (raw) image data 17 and perform preprocessing on the image data 17 to obtain a preprocessed image 19 or preprocessed image data 19. The preprocessing performed by the preprocessor 18 may include, for example, cropping, color format conversion (e.g., from RGB to YCbCr), color correction, or noise reduction. It can be understood that the preprocessor unit 18 may be an optional component. The video encoder 20 is configured to receive the preprocessed image data 19 and provide encoded image data 21 (further details will be described below, for example, based on FIGURE 2). The communication interface 22 of the source device 12 can be configured to receive the encoded image data 21 and to transmit the encoded image data 21 (or any further processed version thereof) over the communication channel 13 to another device, for example, the destination device 14 or any other device, for storage or direct reconstruction. The target device 14 comprises a decoder 30 (for example, a video decoder 30), and additionally, i.e., optionally, it may comprise a communication interface or communication unit 28, a post-processor 32 (or post-processing unit 32) and a display device 34. The communication interface 28 of the destination device 14 is configured to receive the encoded image data 21 (or any further processed version thereof), for example, directly from the source device 12 or from any other source, for example, a storage device, for example, an encoded image data storage device, and provide the encoded image data 21 to the decoder 30. Communication interface 22 and communication interface 28 can be configured MA / a / 2U21 / UlDO4 / to transmit or receive encoded image data 21 or encoded data 13 through a direct communication link between the source device 12 and the destination device 14, for example, a direct wired or wireless connection, or through any kind of network, for example, a wired or wireless network or any combination thereof, or any kind of private and public network, or any kind of combination thereof. The communication interface 22, for example, can be configured to package the encoded image data 21 into an appropriate format, e.g., packets, and / or process the encoded image data using any kind of encoding or transmission processing for transmission over a communication link or communication network. The communication interface 28, which forms the counterpart of the communication interface 22, for example, can be configured to receive the transmitted data and process the transmission data using any kind of corresponding transmission decoding or processing and / or unpacking to obtain the encoded image data 21. Both communication interface 22 and communication interface 28 can be configured as unidirectional communication interfaces, as indicated by the arrow for communication channel 13 in FIGURE 1A pointing from source device 12 to destination device 14, or as bidirectional communication interfaces, and can be configured, for example, to send and receive messages, for example, to establish a connection, to recognize and exchange any other information related to the communication link and / or data transmission, for example, transmission of encoded image data. Decoder 30 is configured to receive the encoded image data 21 and provide the decoded image data 31 or decoded image 31 (additional details will be described below, for example, based on FIGURE 3 or FIGURE 5). The post-processor 32 of the target device 14 is configured to post-process the decoded image data 31 (also called reconstructed image data), for example, the decoded image 31, to obtain post-processed image data 33, for example, a post-processed image 33. The post-processing carried out by the post-processing unit 32 may comprise, for example, color format conversion (for example, from YCbCr to RGB), color correction, cropping, or resampling, or any other processing, for example, to prepare the decoded image data 31 for display, for example, by the display device 34. The display device 34 of the target device 14 is configured to receive the post-processed image data 33 to display the image, for example, to a user or viewer. The display device 34 may be or comprise any kind of screen for representing the reconstructed image, for example, an integrated or external display or monitor. The displays may, for example, comprise liquid crystal displays (LCDs), organic light-emitting diode (OLED) displays, plasma displays, projectors, micro-LED displays, liquid crystal on silicon (LCoS) displays, digital light processors (DLPs), or any other kind of display. Although FIGURE 1A depicts the source device 12 and the target device 14 as separate devices, embodiments of the devices may comprise both functionalities: the source device 12 or its corresponding functionality and the target device 14 or its corresponding functionality. In these embodiments, the source device 12 or its corresponding functionality and the target device 14 or its corresponding functionality may be implemented using the same hardware and / or software, separate hardware and / or software, or any combination thereof. As will be evident to the expert person based on the description, the existence and (exact) division of the functionalities of the different units or functionalities within the source device 12 and / or the target device 14 as shown in FIGURE 1A may vary depending on the actual device and application. The encoder 20 (e.g., a video encoder 20) or the decoder 30 (e.g., a video decoder 30), or both the encoder 20 and the decoder 30, can be implemented using processing circuits as shown in Figure 1B, such as one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), discrete logic, hardware, dedicated video encoding, or any combination thereof. The encoder 20 can be implemented using processing circuit 46 to incorporate the various modules as discussed with respect to the encoder 20 in Figure 2 and / or any other encoding system or subsystem described herein.The decoder 30 can be implemented through the processing circuit 46 to incorporate the various modules as outlined with respect to the decoder 30 in FIGURE 3 and / or any other decoder system or subsystem described herein. The processing circuit can be configured to perform the various operations as outlined below. As shown in FIGURE 5, if the techniques are partially implemented in software, a device can store instructions for the software on a suitable, non-transient, computer-readable storage medium and can execute the instructions in hardware using one or more processors to carry out the techniques described herein. Either the video encoder 20 and the video decoder 30 can be integrated as part of a combined encoder / decoder (CODEC) in a single device, for example, as shown. MA / a / ZU21 / UlDO4 / shows in FIGURE 1B. The source device 12 and the destination device 14 can comprise any of a wide range of devices, including any kind of portable or stationary device, for example, ultra-portable or laptop computers, mobile phones, smartphones, tablets or tablet computers, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, video game consoles, video distribution devices (such as content service servers or content delivery servers), broadcast receiver devices, broadcast transmitter devices, or the like, and can use no or any kind of operating system. In some cases, the source device 12 and the destination device 14 can be equipped for wireless communication.In this way, the source device 12 and the destination device 14 can be wireless communication devices. In some cases, the video encoding system illustrated in Figure 1A is merely an example, and the techniques described herein may apply to video encoding configurations (e.g., video encoding or video decoding) that do not necessarily involve any data communication between the encoding and decoding devices. In other examples, data is retrieved from local memory, distributed over a network, or similarly. A video encoding device may encode and store data in memory, and / or a video decoding device may retrieve and decode data from memory. In some examples, encoding and decoding are performed by devices that do not communicate with each other but simply encode data to memory and / or retrieve and decode data from memory. For convenience of description, embodiments of the invention are described herein, for example, by reference to High-Efficiency Video Coding (HEVC) or Versatile Video Coding (VVC) reference software, the next-generation video coding standard developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Motion Picture Experts Group (MPEG). One of ordinary experience in the art will understand that embodiments of the invention are not limited to HEVC or VVC. Encoder and Coding Method Figure 2 shows a schematic block diagram of an exemplary video encoder 20 that is configured to implement the techniques described herein. In the example in Figure 2, the video encoder 20 comprises an input 201 (or input interface 201), a residual computation unit 204, a transformation processing unit 206, a quantization unit 208, an inverse quantization unit 210, and an inverse transformation processing unit 212, a reconstruction unit 214, a loop filter unit 220, a decoded image buffer (DPB) 230, a mode selection unit 260, an entropy encoding unit 270, and an output 272 (or output interface 272). The mode selection unit 260 may include an inter-prediction unit 244, an intra-prediction unit 254, and a partitioning unit 262. The inter-prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown). A video encoder 20 as shown in FIGURE 2 may also be referred to as a hybrid video encoder or a video encoder according to a hybrid video codec.The residual calculation unit 204, the transformation processing unit 206, the quantization unit 208, and the mode selection unit 260 can be referred to as forming a forward signaling path of the encoder 20, whereas the inverse quantization unit 210, the inverse transformation processing unit 212, the reconstruction unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, the interprediction unit 244, and the intraprediction unit 254 can be referred to as forming a back-signal path of the video encoder 20, wherein the back-signal path of the video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 in FIGURE 3).The inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded image buffer (DPB) 230, the interprediction unit 244, and the intraprediction unit 254 are also referred to as forming the “built-in decoder” of the video encoder 20. Images and Image Partitioning (Images and Blocks) The encoder 20 can be configured to receive, for example, via input 201, an image 17 (or image data 17), such as an image from a sequence of images that make up a video or video sequence. The received image or image data can also be a pre-processed image 19 (or pre-processed image data 19). For simplicity, the following description refers to image 17. Image 17 can also be referred to as a current image or an image being encoded (particularly in video encoding to distinguish the current image from other images, such as previously encoded and / or decoded images from the same video sequence—that is, the video sequence that also comprises the current image). A (digital) image is or can be considered as a two-dimensional arrangement or IVIA / a / ¿U¿ l / UI 004 / as a two-dimensional arrangement or matrix of samples with intensity values ​​(sample values), although of a smaller dimension than image 17. In other words, block 203 may comprise, for example, one sample arrangement (for example, a luma arrangement in the case of a monochrome image 17, or a luma or chroma arrangement in the case of a color image) or three sample arrangements (for example, a luma arrangement and two chroma arrangements in the case of a color image 17) or any other number and / or class of arrangements depending on the color format applied. The number of samples in the horizontal and vertical (or axis) directions of block 203 defines the size of block 203. Accordingly, a block may be, for example, an MxN (column M by row N) arrangement of samples, or an MxN arrangement of transformation coefficients. The implementation methods of the video encoder 20 as shown in FIGURE 2 can be configured to encode the image 17 block by block, for example, encoding and prediction are carried out by block 203. Residual Calculation The residual calculation unit 204 can be configured to calculate a residual block 205 (also referred to as residual 205) based on the image block 203 and a prediction block 265 (additional details about prediction block 265 are provided later), for example by subtracting the sample values ​​of prediction block 265 from the sample values ​​of image block 203, sample by sample (pixel by pixel) to obtain the residual block 205 in the sample domain. Transformation The transformation processing unit 206 can be configured to apply a transformation, for example, a discrete cosine transform (DCT) or discrete sine transform (DST), to the sample values ​​of the residual block 205 to obtain the transformation coefficients 207 in a transformation domain. The transformation coefficients 207 can also be referred to as the transformation residual coefficients and represent the residual block 205 in the transformation domain. The 206 transform processing unit can be configured to apply integer DCT / DST approximations, such as the transforms specified for H.265 / HEVC. Compared to the orthogonal DCT transform, these integer approximations are typically scaled by a certain factor. To preserve the norm of the residual block being processed for direct and inverse transforms, additional scaling factors are applied as part of the transform process. The scaling factors are generally chosen based on certain constraints, such as the scaling factors being a power of two for shift operations, the bit depth of the transform coefficients, and trade-offs between precision and implementation costs. IVIA / a / ZUZ l / UI 004 / etc. Specific scaling factors are, for example, specified for inverse transformation, for example, by inverse transformation processing unit 212 (and the corresponding inverse transformation, for example, by inverse transformation processing unit 312 in video decoder 30) and the corresponding scaling factors for forward transformation, for example, by transformation processing unit 206, in an encoder 20 may be specified accordingly. The implementation of the video encoder 20 (respectively, the transformation processing unit 206) can be configured to send transformation parameters, for example, a transformation type or transformations, directly or encoded or compressed via the entropy encoding unit 270, so that, for example, the video decoder 30 can receive and use the transformation parameters for decoding. Quantization The quantization unit 208 can be configured to quantize the transformation coefficients 207 to obtain the quantized coefficients 209, for example, when applying scalar quantization or vector quantization. The quantized coefficients 209 can also be referred to as quantized transformation coefficients 209 or quantized residual coefficients 209. The quantization process can reduce the bit depth associated with some or all of the transformation coefficients. For example, an n-bit transformation coefficient can be rounded to an m-bit transformation coefficient during quantization, where n is greater than m. The degree of quantization can be modified by adjusting a quantization parameter (QP). For example, for scale quantization, a different scale can be applied to achieve finer or coarser quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to coarser quantization. The applicable quantization step size can be specified by a quantization parameter (QP).The quantization parameter, for example, can be an index to a predefined set of applicable quantization step sizes. For instance, small quantization parameters might correspond to fine quantization parameters (small quantization step sizes), and large quantization parameters might correspond to coarser quantization (large quantization step sizes), or vice versa. Quantization might include division by a quantization step size and a corresponding and / or inverse dequantization; for example, inverse quantization per unit 210 might include multiplication by the quantization step size. The ways of implementing this... IVIA / a / ¿U¿ l / UI 004 / In accordance with some standards, for example HEVC, a quantization parameter can be configured to determine the quantization step size. Generally, the quantization step size can be calculated based on a quantization parameter using a fixed-point approximation of an equation that includes division. Additional scaling factors can be introduced for quantization and dequantization to restore the norm of the residual block, which might be altered due to the scaling used in the fixed-point approximation of the equation for the quantization step size and the quantization parameter. In an exemplary implementation, the scaling of the inverse transform and dequantization could be combined. Alternatively, custom, signaled quantization tables can be used from an encoder to a decoder, for example, in a bitstream.Quantization is a lossy operation, where the loss increases with increasing quantization step sizes. The embodiments of the video encoder 20 (respectively the quantization unit 208) can be configured to send the quantization parameters (QP), for example, directly or encoded through the entropy encoding unit 270, so that, for example, the video decoder 30 can receive and apply the quantization parameters for decoding. Inverse Quantization The inverse quantization unit 210 is configured to apply the inverse quantization of quantization unit 208 to the quantized coefficients to obtain the dequantized coefficients 211, for example by applying the inverse of the quantization scheme applied by quantization unit 208 based on or using the same quantization step size as quantization unit 208. The dequantized coefficients 211 may also be referred to as dequantized residual coefficients 211 and correspond, although typically not identical to the transformation coefficients due to quantization loss, to the transformation coefficients 207. Inverse Transformation The inverse transform processing unit 212 is configured to apply the inverse transform of the transform applied by the transform processing unit 206, for example, an inverse discrete cosine transform (DCT) or inverse discrete sine transform (DST), or other inverse transforms, to obtain a reconstructed residual block 213 (or corresponding dequantized coefficients 213) in the sample domain. The reconstructed residual block 213 may also be referred to as a transform block 213. Reconstruction The reconstruction unit 214 (e.g., aggregator or summing unit 214) is IVIA / a / ¿U¿ l / UI 004 / configured to add the transformation block 213 (i.e., reconstructed residual block 213) to the prediction block 265 to obtain a reconstructed block 215 in the sample domain, for example, by adding - sample by sample - the sample values ​​of the reconstructed residual block 213 and the sample values ​​of the prediction block 265. Filtering Loop filter unit 220 (or “loop filter” for short) is configured to filter the reconstructed block 215 to obtain a filtered block 221, or more generally, to filter reconstructed samples to obtain filtered samples. The loop filter unit, for example, is configured for smooth pixel transitions or to otherwise improve video quality. Loop filter unit 220 may comprise one or more loop filters, such as an unblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, such as a bilateral filter, an adaptive loop filter (ALF), a smooth filter, a sharper filter, or a collaborative filter, or any combination thereof. Although loop filter unit 220 is shown in Figure 2 as a loop filter, in other configurations, loop filter unit 220 can be implemented as a post-loop filter.The 221 filter block may also be referred to as a rebuilt filtered 221 block. The implementation of the video encoder 20 (respectively loop filtering unit 220) can be configured to send loop filter parameters (such as sample adaptive compensation information), for example, directly or encoded through the entropy encoding unit 270, so that, for example, a decoder 30 can receive and apply the same loop filter parameters or respective loop filters for decoding. Intermediate Memory of the Decoded Image The decoded picture buffer (DPB) 230 can be a memory that stores reference images, or more generally reference image data, for encoding video data by the video encoder 20. The DPB 230 can be formed from any of a variety of memory devices, such as dynamic random access memory (DRAM), including synchronous DRAM (SDRAM), magnetoresistive RAM (MRAM), resistive RAM (RRAM), or other types of memory devices. The decoded picture buffer (DPB) 230 can be configured to store one or more filtered blocks 221.The decoded image buffer 230 can be further configured to store other previously filtered blocks, for example, previously reconstructed and filtered blocks 221, from the same current image or from different images, for example, previously reconstructed images and can provide previously reconstructed images, i.e. IVIA / a / ¿U¿ l / UI 004 / fully decoded (and corresponding reference blocks and samples) and / or a partially reconstructed current image (and corresponding reference blocks and samples), for example for inter-prediction. The decoded picture buffer (DPB) 230 can also be configured to store one or more unfiltered reconstructed blocks 215, or in general unfiltered reconstructed samples, for example, if the reconstructed block 215 is not filtered by the loop filter unit 220, or any other further processed version of the reconstructed blocks or samples. Mode Selection (Partitioning and Prediction) The mode selection unit 260 comprises the partitioning unit 262, inter-prediction unit 244, and intra-prediction unit 254, and is configured to receive or obtain original image data, for example, an original block 203 (current block 203 of current image 17), and reconstructed image data, for example, filtered and / or unfiltered samples or reconstructed blocks from the same (current) image and / or from one or more previously decoded images, for example, from the decoded image buffer 230 or other buffers (for example, line buffer, not shown). The reconstructed image data is used as reference image data for prediction, for example, inter-prediction or intra-prediction, to obtain a prediction block 265 or predictor 265. The mode selection unit 260 can be configured to determine or select a current block prediction mode partition (which does not include partitioning) and a prediction mode (e.g., an intra or inter prediction mode) and generate a corresponding prediction block 265, which is used for the calculation of the residual block 205 and for the reconstruction of the reconstructed block 215. The Mode Select Unit 260 implementation can be configured to select the partitioning and prediction mode (for example, from those supported by or available to the Mode Select Unit 260) that provides the best match, or in other words, the minimum residual (minimum residual means best compression for transmission or storage), or the minimum signaling overhead (minimum signaling overhead means best compression for transmission or storage), or a balance of both. The Mode Select Unit 260 can be configured to determine the partitioning and prediction mode based on rate distortion optimization (RDO), that is, it selects the prediction mode that provides the minimum rate distortion. Terms such as "best," "minimum," "optimal," etc., in this context do not necessarily refer to a "best," "minimum," "optimal," etc.but also refers to compliance with a termination or selection criterion as a value that exceeds or falls below a threshold or other limitations that potentially lead to a “suboptimal selection” but reduce complexity and. IVIA / a / ¿U¿ l / UI 004 / processing time. In other words, partition unit 262 can be configured to partition block 203 into smaller block partitions or sub-blocks (which again form blocks), for example by iteratively using quad-tree partitioning (QT), binary partitioning (BT), or triple-tree partitioning (TT), or any combination thereof, and perform, for example, prediction for each of the block partitions or sub-blocks, wherein mode selection comprises the selection of the tree structure of the partitioned block 203 and prediction modes are applied to each of the block partitions or sub-blocks. The following partitioning (for example by partitioning unit 260) and prediction processing (by inter-prediction unit 244 and intra-prediction unit 254) carried out by an exemplary video encoder 20 will be explained in more detail. Partition The partitioning unit 262 can partition (or divide) an existing block 203 into smaller partitions, for example, smaller square or rectangular blocks. These smaller blocks (which can also be referred to as subblocks) can be further partitioned into even smaller partitions. This is also referred to as tree partitioning or hierarchical tree partitioning, where a root block, for example, root tree level 0 (hierarchical level 0, depth 0), can be recursively partitioned, for example, into two or more blocks of a lower tree level, for example, nodes at tree level 1 (hierarchical level 1, depth 1), where these blocks can likewise be partitioned into two or more blocks of a lower tree level, for example, tree level 2 (hierarchical level 2, depth 2), and so on.until partitioning is terminated, for example, because a termination criterion is met, such as reaching a maximum tree depth or minimum block size. Blocks that are not further partitioned are also referred to as leaf blocks or leaf nodes of the tree. A tree that uses partitioning into two partitions is referred to as a binary tree (BT), a tree that uses partitioning into three partitions is referred to as a ternary tree (TT), and a tree that uses partitioning into four partitions is referred to as a quad tree (QT). As mentioned above, the term “block” as used herein may be a portion, in particular a square or rectangular portion, of an image. With reference, for example, to HEVC and VVC, the block may be or correspond to a coding tree unit (CTU), a coding unit (CU), a prediction unit (PU), and a transform unit (TU), and / or to the corresponding blocks, for example, a coding tree block (CTB), a coding block (CB), a transform block (TB), or a prediction block (PB). For example, a coding tree unit (CTU) can be or comprise a luma sample CTB, two chroma sample CTBs having three sample arrangements, or a sample CTB of a monochrome image or an image that is encoded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding tree block (CTB) can be an NxN block of samples for some value of N, such that partitioning a component into a CTB is a partition.A coding unit (CU) can be or comprise a luma sample coding block, two corresponding chroma sample coding blocks of an image having three sample arrangements, or a sample coding block of a monochrome image or an image encoded using three separate color planes and syntax structures used to encode the samples. Correspondingly, a coding block (CB) can be an MxN block of the samples for some values ​​of M and N such that the division of a CTB into coding blocks is a partition. In the implementations, for example, according to HEVC, a coding tree unit (CTU) can be divided into CUs using a quad-tree structure referred to as a coding tree. The decision of whether to encode an image area using inter-image (temporal) or intra-image (spatial) prediction is made at the CU level. Each CU can be further divided into one, two, or four PUs according to the PU division type. Within a PU, the same prediction process is applied, and the relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU division type, a CU can be partitioned into transform units (TUs) according to another quad-tree structure similar to the coding tree for the CU. In implementations such as the latest video coding standard currently under development, referred to as Versatile Video Coding (VVC), quad-tree and binary tree (QTBT) partitioning is used to divide a coding block. In the QTBT block structure, a CU can be either square or rectangular. For example, a coding tree unit (CTU) is first partitioned using a quad-tree structure. The leaf nodes of the quad-tree are further partitioned using a binary or ternary (or triple) tree structure. The resulting leaf tree nodes are called coding units (CUs), and this partitioning is used for prediction and transformation processing without any further partitioning.This means that the CU, PU, ​​and TU have the same block size in the QTBT encoding block structure. In parallel, multiple partitioning options, such as triple tree partitioning, were also proposed for use with the QTBT block structure. In one example, the mode selection unit 260 of the video encoder 20 can be configured to perform any combination of the partitioning techniques described herein. As described above, the video encoder 20 is configured to determine or select the best or optimal prediction mode from a set of (default) prediction modes. The set of prediction modes may include, for example, intra-prediction modes and / or inter-prediction modes. Intra-Prediction The set of intra-prediction modes may comprise 35 different intra-prediction modes, for example non-directional modes similar to DC (or medium) mode and flat mode, or directional modes, for example as defined in HEVC, or it may comprise 67 different intra-prediction modes, non-directional modes such as DC (or medium) mode and flat mode, or directional modes, for example as defined by VVC. The intra-prediction unit 254 is configured to use reconstructed samples of underlying blocks from the same current image to generate an intra-prediction block 265 according to an intra-prediction mode from the set of intra-prediction modes. The intra-prediction unit 254 (or, more generally, the mode selection unit 260) is further configured to send the intra-prediction parameters (or general information indicating the intra-prediction mode selected for the block) to the entropy encoding unit 270 in the form of syntax elements 266 for inclusion in the encoded image data 21, so that, for example, the video decoder 30 can receive and use the prediction parameters for decoding. Inter-Prediction The set of (or possible) inter-prediction modes depends on the available reference images (i.e., prior to images at least partially decoded, for example stored in DBP 230) and other inter-prediction parameters, for example whether the entire reference image or only a part, for example, a search window area around the current block area, of the reference image is used for the search for a better match of the reference block, and / or for example whether pixel interpolation is applied, for example, half / semi-pel and / or quarter-pel interpolation, or not. In addition to the prediction modes above, the skip mode and / or direct mode can be applied. The inter-prediction unit 244 may include a motion estimation (ME) unit and a motion compensation (MC) unit (neither of which are shown in FIGURE 2). The motion estimation unit may be configured to receive or obtain image block 203 (current image block 203 from current image 17) and a decoded image 231, or at least one or more previously reconstructed blocks, for example, blocks reconstructed from one or more different images / previously decoded 231, for motion estimation. For example, a video sequence may comprise the current image and previously decoded images 231; in other words, the current image and previously decoded images 231 may be part of or form part of a sequence of images that make up a video sequence. The encoder 20 can, for example, be configured to select a reference block from a plurality of reference blocks from the same or different images from a plurality of other images and provide a reference image (or reference image index) and / or an offset (spatial offset) between the position (x, y coordinates) of the reference block and the position of the current block as inter-prediction parameters to the motion estimation unit. This offset is also called a motion vector (MV). The motion compensation unit is configured to obtain, for example, receive an interprediction parameter and to perform interprediction based on or using the interprediction parameter to obtain an interprediction block. The motion compensation, performed by the motion compensation unit, may involve extracting or generating the prediction block based on the motion vector / block determined by the motion estimate, possibly performing interpolations to sub-pixel accuracy. Interpolation filtering can generate additional pixel samples from the known pixel samples, potentially increasing the number of candidate prediction blocks that can be used to encode an image block.After receiving the motion vector for the current image block's PU, the motion compensation unit can locate the prediction block to which the motion vector points in one of the reference images are listed. The motion compensation unit can also generate syntax elements associated with the video blocks and segment for use by the video decoder 30 when decoding the video segment's picture blocks. Entropy Coding The entropy coding unit 270 is configured to apply, for example, an entropy coding algorithm or scheme (for example, a variable length coding (VLC) scheme, a context adaptive VLC (CAVLC) scheme, an arithmetic coding scheme, a binarization, a context adaptive binary arithmetic coding (CABAC), a syntax-based context-adaptive binary arithmetic coding (SBAC), a probability interval partitioning entropy (PIPE) entropy coding methodology or technique) or deviation (without compression) on the quantized coefficients 209, inter-prediction parameters, intra-prediction parameters,Loop filter parameters and / or other syntax elements to obtain encoded image data 21 that can be sent through output 272, for example in the form of an encoded bitstream 21, so that, for example, video decoder 30 can receive and use the parameters for decoding. The encoded bitstream 21 can be transmitted to video decoder 30 or stored in memory for later transmission or retrieval by video decoder 30. Other structural variations of the video encoder 20 can be used to encode the video stream. For example, a non-transform encoder 20 can quantize the residual signal directly without the transform processing unit 206 for certain blocks or frames. In another implementation, an encoder 20 can have the quantization unit 208 and the inverse quantization unit 210 combined into a single unit. Decoder and Decoding Method Figure 3 shows an example of a video decoder 30 that is configured to implement the techniques described herein. The video decoder 30 is configured to receive encoded image data 21 (e.g., encoded bitstream 21), e.g., encoded by the encoder 20, to obtain a decoded image 331. The encoded image data or bitstream comprises information for decoding the encoded image data, e.g., data representing the image blocks of an encoded video segment and associated syntax elements. In the example in FIGURE 3, the decoder 30 comprises an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (e.g., a summing unit 314), a loop filter 320, a decoded image buffer (DBP) 330, an inter-prediction unit 344, and an intra-prediction unit 354. The inter-prediction unit 344 may be or include a motion compensation unit. The video decoder 30 may, in some examples, perform a decoding pass that is generally the reciprocal of the encoding pass described with respect to the video encoder 100 in FIGURE 2. As explained with respect to encoder 20, the inverse quantization unit IVIA / a / ZUZ l / UI 004 / 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the inter-prediction unit 344, and the intra-prediction unit 354 are also referred to as forming the “built-in decoder” of the video encoder 20. Accordingly, the inverse quantization unit 310 may be identical in function to the inverse quantization unit 110, the inverse transform processing unit 312 may be identical in function to the inverse transform processing unit 212, the reconstruction unit 314 may be identical in function to the reconstruction unit 214, the loop filter 320 may be identical in function to the loop filter 220, and the decoded picture buffer 330 may be identical in function to the decoded picture buffer 230.Therefore, the explanations provided for the respective units and functions of video encoder 20 apply correspondingly to the respective units and functions of video decoder 30. Entropy Decoding The entropy decoding unit 304 is configured to analyze the bit stream 21 (or general encoded image data 21) and perform, for example, entropy decoding on the encoded image data 21 to obtain, for example, quantized coefficients 309 and / or decoded encoding parameters (not shown in FIGURE 3), such as any or all inter-prediction parameters (e.g., reference image index and motion vector), intra-prediction parameters (e.g., mode or intra-prediction index), transformation parameters, quantization parameters, loop filter parameters, and / or other syntax elements. The entropy decoding unit 304 can be configured to apply the decoding algorithms or schemes that correspond to the encoding schemes as described with respect to the entropy encoding unit 270 of the encoder 20.The entropy decoding unit 304 can be further configured to provide inter-prediction parameters, intra-prediction parameters and / or other syntax elements to the mode selection unit 360 and other parameters to the other units of the decoder 30. The video decoder 30 can receive the syntax elements at the video segment level and / or at the video block level. Inverse Quantization The inverse quantization unit 310 can be configured to receive quantization parameters (QP) (or in general inverse quantization-related information) and quantized coefficients from the encoded image data 21 (e.g., during analysis and / or decoding, e.g., by an entropy decoding unit 304) and apply inverse quantization to the decoded quantized coefficients 309 based on the quantization parameters to obtain the IVIA / a / ZUZ l / UI 004 / dequantized coefficients 311, which may also be referred to as transformation coefficients 311. The reverse quantization process may include the use of a quantization parameter determined by the video encoder 20 for each video block in the video segment to determine a degree of quantization and, likewise, a degree of reverse quantization to be applied. Reverse TransformationThe inverse transform processing unit 312 can be configured to receive dequantized coefficients 311, also referred to as transformation coefficients 311, and apply a transformation to the dequantized coefficients 311 to obtain the reconstructed residual blocks 213 in the sample domain. The reconstructed residual blocks 213 can also be referred to as transformation blocks 313. The transformation can be an inverse transformation, for example, an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transformation process.The inverse transform processing unit 312 can further be configured to receive transformation parameters or corresponding information from the encoded image data 21 (e.g., by analysis and / or decoding, e.g., by the entropy decoding unit 304) to determine the transformation to be applied to the dequantized coefficients 311. Reconstruction. The reconstruction unit 314 (e.g., aggregator or summing unit 314) can be configured to add the reconstructed residual block 313 to the prediction block 365 to obtain a reconstructed block 315 in the sample domain, e.g., by adding the sample values ​​from the reconstructed residual block 313 and the sample values ​​from the prediction block 365. Filtration Loop filter unit 320 (either in the encoding loop or after the encoding loop) is configured to filter the reconstructed block 315 to obtain a filtered block 321, for example, to smooth pixel transitions or otherwise improve video quality. Loop filter unit 320 may comprise one or more loop filters, such as an unblocking filter, a sample-adaptive offset (SAO) filter, or one or more other filters, for example, a bilateral filter, an adaptive loop filter (ALF), a sharp filter, a smooth filter, or a collaborative filter, or any combination thereof. Although loop filter unit 320 is shown in Figure 3 as a loop filter, in other configurations, loop filter unit 320 can be implemented as a post-loop filter. Decoded Image Buffer The decoded video blocks 321 of an image are then stored in the decoded image buffer 330, which stores the decoded images 331 as reference images for subsequent motion compensation for other images and / or for output display respectively. Decoder 30 is configured to send the decoded image 311, for example via output 312, for presentation or display to a user. Prediction The inter-prediction unit 344 may be identical to the inter-prediction unit 244 (particularly the motion compensation unit), and the intra-prediction unit 354 may be identical to the inter-prediction unit 254 in function, and in carrying out the splitting or partitioning decisions and predictions based on the partitioning and / or prediction parameters or respective information received from the encoded image data 21 (e.g., by analysis and / or decoding, e.g., by the entropy decoding unit 304). The mode selection unit 360 may be configured to carry out block prediction (intra- or inter-prediction) based on the reconstructed images, blocks, or respective samples (filtered or unfiltered) to obtain the prediction block 365. When the video segment is encoded as an intra-coded segment (I), the mode selection unit 360's intra-prediction unit 354 is configured to generate prediction block 365 for an image block of the current video segment based on a signaled intra-prediction mode and data from previously decoded blocks of the current image. When the video image is encoded as an inter-coded segment (i.e., B or P), the mode selection unit 360's inter-prediction unit 344 (e.g., motion compensation unit) is configured to produce prediction blocks 365 for a video block of the current video segment based on motion vectors and other syntax elements received from the entropy decoding unit 304. For inter-prediction, prediction blocks can be produced from one of the reference images within one of the reference image lists.The video decoder 30 can build the reference frame lists, List 0 and List 1, using predefined construction techniques based on the reference images stored in DPB 330. The 360 ​​mode selection unit is configured to determine prediction information for a video block within the current video segment by analyzing motion vectors and other syntax elements. It then uses this prediction information to produce prediction blocks for the current video block being decoded. For example, the 360 ​​mode selection unit uses some of the received syntax elements to determine a prediction mode (e.g., intra- or inter-prediction) used to encode the video blocks within the video segment, an inter-prediction segment type (e.g., B-segment, P-segment, or GPB-segment), and other information. IVIA / a / ZUZ I / U1 004 / construction for one or more of the reference image lists for the segment, motion vectors for each inter-coded video block of the segment, inter-prediction state for each inter-coded video block of the segment, and other information for decoding the video blocks in the current video segment. Other variations of the video encoder 30 can be used to decode the encoded image data 21. For example, the decoder 30 can produce the output video stream without the loop filtering unit 320. For example, the transform-based decoder 30 can inversely quantize the residual signal directly without the inverse transform processing unit 312 for certain blocks or frames. In another implementation, the video decoder 30 can have the inverse quantization unit 310 and the inverse transform processing unit 312 combined into a single unit. It should be understood that, in encoder 20 and decoder 30, the processing result of a current step can be further processed and then sent to the next step. For example, after interpolation filtering, motion vector derivation, or loop filtering, an additional operation, such as clipping or switching, can be performed on the processing result of the interpolation filtering, motion vector derivation, or loop filtering. It is worth noting that additional operations can be applied to movement vectors derived from the current block (including, but not limited to, point-like movement vectors for affine mode control, movement vectors of sub-blocks in ATMVP, planar, and affine modes, temporary movement vectors, etc.). For example, the value of a movement vector is restricted to a predefined range according to its representative bit. If the movement vector's representative bit is bitDepth, then the range is -2A(bitDepth-1) to 2A(bitDepth-1)-1, where "A" stands for exponentiation. For example, if bitDepth is set to 16, the range is -32768 to 32767; if bitDepth is set to 18, the range is -131072 to 131071. Two methods for restricting the movement vector are provided at this point. Method 1: Remove overflow MSB (most significant bit) by flow operations ux= ( mvx+2bitDepth) % 2bitDePth(1) mvx = ( ux >= 2bitDepth'1) ? (ux - 2bitDepth) : ux (2) uy= ( mvy+2bitDepth) % 2bitDepth(3) mvy = ( uy >= 2bitDepth-1) ? (oops - 2bitDepth) : oops (4) For example, if the value of mvx is -32769, after applying formulas (1) and (2), the resulting value is 32767. In the computer system, decimal numbers are stored as two's complement. The two's complement of -32769 is 1,0111,1111,1111,1111 (17 bits), so the MSB is removed, so the resulting two's complement is IVIA / a / ZUZ l / UI 004 / 0111,1111,1111,1111 (decimal number is 32767), which is the same as the output applying formulas (1) and (2). Ux= ( mvpx + mvdx +2bitDeP,h) % 2bitDePth(5) mvx = ( ux >= 2bitDePth-1) ? (ux - 2bitDePth) : ux (6) uy= ( mvpy + mvdy +2bitDePth) % 2bitDepttl(7) mvy = ( uy >= 2bitDePth'1) ? (uy - 2bitDePth) : uy (8) The operations can be applied during the sum of mvp and mvd, as shown in formulas (5) to (8). Method 2: Eliminate the overflow MSB by clipping the value vx = CLIp3(-2bitDePth'1, 2bitDep,h·1-1, vx) vy = Clip3(-2bitDePth·1, 2bitDePth'1-1, vy) where the definition of the Clip3 function is as follows: p: Clip3( x, y, z ) = ^;otherwise The operator “?” is commonly used as a shortcut to represent the “if…else” condition. For example, “X <K?X=1 :X=0” se puede interpretar como “si X es más pequeño que K, X se establece igual a 1, de lo contrario (si X no es mayor que K) X se establece igual a 0”. Figure 4 is a schematic diagram of a video encoding device 400 according to one embodiment of the description. The video encoding device 400 is suitable for implementing the embodiments described herein. In one embodiment, the video encoding device 400 can be a decoder such as the video decoder 30 of Figure 1A or an encoder such as the video encoder 20 of Figure 1A. The video encoding device 400 comprises input ports 410 (or input ports 410) and receiver (Rx) units 420 for receiving data; a processor, logic unit, or central processing unit (CPU) 430 for processing the data; transmitter units (Tx) 440 and output ports 450 (or output ports 450) for transmitting the data; and a memory 460 for storing the data. The video encoding device 400 may also comprise optical-to-electrical (OE) and electrical-to-optical (EO) components coupled to the input ports 410, receiver units 420, transmitter units 440, and output ports 450 for output or input of optical or electrical signals. The 430 processor is implemented in both hardware and software. It can be implemented as one or more CPU chips, cores (e.g., as a multi-core processor), FPGAs, ASICs, and DSPs. The 430 processor communicates with input ports 410, the receiving unit 420, transmitting units 440, output ports 450, and memory 460. The 430 processor includes an encoding module 470. The encoding module 470 implements the embodiments described above. For example, the encoding module 470 implements, processes, prepares, or provides various encoding operations. The inclusion of the encoding module 470 thus substantially enhances the functionality of the video encoding device 400 and transforms the video encoding device 400 into a different state.Alternatively, the 470 encoding module is implemented as stored-memory instructions 460 and executed by the 430 processor. 460 memory can comprise one or more disks, tape drives, and solid-state drives and can be used as an overflow data storage device, to store programs when these programs are selected for execution, and to store instructions and data that are read during program execution. 460 memory can be, for example, volatile and / or non-volatile and can be read-only memory (ROM), random access memory (RAM), ternary content addressable memory (TCAM), and / or static random-access memory (SRAM). FIGURE 5 is a simplified block diagram of an apparatus 500 that can be used as either or both of the source device 12 and the target device 14 of FIGURE 1 according to one exemplary embodiment. A 502 processor in the 500 apparatus can be a central processing unit. Alternatively, the 502 processor can be any other type of device, or multiple devices, capable of manipulating or processing information that already exists or is developed in the future. Although the implementations described can be carried out without a single processor such as, for example, the 502 processor, advantages in speed and efficiency can be achieved by using more than one processor. A memory 504 in the apparatus 500 may be a read-only memory (ROM) device or a random access memory (RAM) device in one implementation. Any other suitable type of storage device may be used as memory 504. Memory 504 may include code and data 506 that are accessed by the processor 502 using a bus 512. Memory 504 may further include an operating system 508 and application programs 510. The application programs 510 include at least one program that enables the processor 502 to perform the methods described in this section. For example, the application programs 510 may include applications 1 through N, which further include a video encoding application that performs the methods described in this section. The device 500 may also include one or more output devices, such as a display 518. The display 518 may be, for example, a touch-sensitive display that combines a screen with a touch-sensitive element operable to detect touch inputs. The display 518 may be coupled to the processor 502 via bus 512. Although represented here as a single bus, the Apparatus 500's bus 512 can be composed of multiple buses. Furthermore, the secondary storage 514 can be directly coupled to the other Apparatus 500 components or accessed via a network and can comprise a single integrated unit, such as a memory card, or multiple units, such as multiple memory cards. The Apparatus 500 can thus be implemented in a wide variety of configurations. Typically, a video signal is represented using three channels: one luminance channel and two chroma channels. The two chroma channels can be represented using the acronyms Cb and Cr when using the YCbCr color transformation. Cb and Cr usually refer to the blue and red differences, respectively. The embodiments of the invention relate to the case where a video signal is represented using three channels (or a wider signal). For convenience, the chroma channels will be represented as Cb and Cr, although the embodiments of the invention apply similarly to other three-channel signal scenarios. When video data is split into three signal channels, an encoding block may contain residual information belonging to each of the three signal channels (luma channel, chroma channel Cb, and chroma channel Cr). In Figure 2, the residual data corresponds to 205 (residual block), 207 (transformation coefficient), or 209 (quantized transformation coefficient). 205, 207, or 209 are actually composed of three parts (when the video data is split into three channels) corresponding to the luma and chroma channels. Figure 2 represents the encoder's perspective. Similarly, in the decoder, 309, 311, and 313 represent residual data (more specifically, quantized coefficients, dequantized coefficients, and reconstructed residual blocks), each of which comprises three parts (one luma channel part and two chroma channel parts). The terms residual data, residual information, and quantized transformation coefficient are used synonymously to refer to residual data. In an example of constructing the Merger Candidate List in accordance with ITU-T H.265, a merger candidate list is constructed based on the following candidates: 1. up to four space candidates derived from five underlying space blocks, 2. a temporary candidate derived from two co-located, temporary blocks, 3. Additional candidates including combined bi-predictive candidates and, 4. Zero motion vector candidates. Space Candidates The motion information of the underlying spatial blocks is first added to the merge candidate list (in one example, the merge candidate list may be empty before the first motion vector is added) as motion information candidates. At this point, the underlying blocks considered for insertion into the merge list are illustrated in FIGURE 6B. For the inter-prediction block merge, up to four candidates are inserted into the merge list by sequentially checking A1, B1, B0, A0, and B2, in that order. Motion information can contain all motion data, including information on whether one or two reference image lists are used, as well as a reference index and a motion vector for each reference image list. In one example, after verifying whether an underlying block is available and contains move information, some additional redundancy checks are performed before considering all the move data from the underlying block as a move information candidate. These redundancy checks can be divided into two categories for two different purposes: Category 1, avoid having candidates with redundant movement data on the list, Category 2, prevent the merging of two partitions that could be expressed by other means, which would create a redundant syntax. Temporary Candidates Figure 6A illustrates the coordinates of the blocks where the temporal motion information candidates are retrieved. A co-located block is a block that has the same x, y coordinates as the current block but is in a different image (one of the reference images). Temporal motion information candidates are added to the merge list if the list is not complete (for example, the merge list is not complete when the number of candidates in the merge list is smaller than a threshold; for example, the threshold might be 4, 5, 6, etc.). Candidates Generated After the spatial and temporal motion information candidates are inserted, if the fusion lists are not yet full, generated candidates are added to fill the list. The list size is specified in the sequence parameter set and is fixed across the entire encoded video sequence. Bi-prediction A special mode of inter-prediction is called “bi-prediction”, where 2 are used IVIA / a / ¿U¿ l / UI 004 / Motion vectors to predict a block. Motion vectors can point to the same or different reference images, where a reference image can be indicated by a reference image list ID and a reference image index. For example, a first motion vector could point to a first image in the reference image list LO, and a second motion vector could point to a first image in the reference image list L1. Two reference image lists can be maintained (for example, LO and L1), and the image pointed to by the first motion vector is selected from the LO list, and the image pointed to by the second motion vector is selected from the L1 list. In one example, if a motion piece of information indicates bi-prediction, then the motion piece of information includes two parts: • Part LO: a movement vector and a reference image index that points to an entry in the reference image list LO. • Part L1: a motion vector and a reference image index that points to an entry in the reference image list L1. Picture Order Count (POC): A variable that is associated with each picture, individually identifies the associated picture among all pictures in the CVS (Coded Video Sequence), and, when the associated picture is to be generated from the decoded picture buffer, indicates the position of the associated picture in output order with respect to the output order positions of the other pictures in the same CVS that are to be generated from the decoded picture buffer. Each of the reference image lists LO and L1 could include one or more reference images, each identified by a POC. The association of each reference index and POC value could be signaled in the bitstream. As an example, the reference image lists LO and L1 could include the following reference images: List of reference images Reference index POC LO 0 12 LO 1 13 L1 0 13 L1 1 14 In the example above, the first entry (indicated by reference index 0) in the reference image list L1 is the reference image with the POC value 13. The second entry (indicated by reference index 1) in the reference image list L1 is the reference image with the POC value 14. The process of building the fusion list in ITU-T H.265 and VVC submits a list of motion information candidates. The VVC fusion list building process is described in section “Process 8.3.2.2 Derivation for Luma Motion Vectors for Fusion Mode” of the Versatile Video Coding document JVET-L1001_v2 (Draft 3), which is publicly available at http: / / phenix.itsudparis.eu / jvet / . The term motion information refers to the motion data required to perform the motion-compensated prediction process. Motion information typically includes the following: • Whether the block applies single-prediction or double-prediction • The ID of the reference image used in the prediction. (2 IDs if the block applies double-prediction). • Movement vector (2 movement vectors if the block is bi-predicted) • Additional information In VVC and H.265, the candidate list sent from the merge list construction includes the movement information for N candidates. The number N is typically included in the bitstream and can be a positive integer such as 5, 6, etc. The candidates included in the constructed merge list may contain uni-prediction or bi-prediction information. This means that the candidate selected from the merge list could indicate a bi-prediction operation. Triangular Prediction Mode The concept of the triangular prediction mode is to introduce a new triangular partition for motion-compensated prediction. As an example, shown in Figure 7, two triangular prediction units are used for a CU, in either the diagonal or reverse diagonal direction. Each triangular prediction unit in the CU is interpredicted using the uni-prediction motion vector and the reference frame index, which is derived from a list of uni-prediction candidates. An adaptive weighting process is performed for the diagonal edge after samples are associated with each triangular prediction unit that has been predicted, for example, by motion-compensated or intra-image prediction. Then, the transformation and quantization process is applied to the entire CU. It is important to note that this mode is only applied to avoid the Momo and Fusion modes. In triangular prediction mode, a block is divided into two triangular parts (as in FIGURE 7), and each part can be predicted using a motion vector. A motion vector used to predict one triangular part (denoted by PU1) can be different from a motion vector used to predict the other triangular part (denoted by PU2). In an example, it is worth noting that each part can be predicted IVIA / a / ¿U¿ l / UI 004 / only using a single motion vector (uni-prediction) in order to reduce the complexity of carrying out the triangular prediction mode. In other words, PU1 and PU2 may not be predicted using bi-prediction, which comprises two motion vectors. Sub-Block Prediction Mode Triangular prediction mode is a special case of subblock prediction, where a block is split into two blocks. The examples above illustrate two block splitting directions (45-degree and 135-degree splits). Other splitting angles and ratios are also possible for subblock prediction (e.g., examples in Figure 8). In some examples, the block is divided into 2 sub-blocks and each part (sub-block) is predicted with the uni-prediction. In one example, according to the sub-block partitioning mode, the following steps are applied to obtain prediction samples: • Step 1: Divide a coding block into 2 sub-blocks, according to a geometric model. This model may result in dividing the block by a separating line (e.g., a straight line) as exemplified in FIGURES 912. • Step 2: Obtain a first prediction mode for a first sub-block and a second prediction mode for a second sub-block. In one example, the first prediction mode is not identical to the second prediction mode. In one example, a prediction mode (first prediction mode or second prediction mode) can be an inter-prediction mode; the information for an inter-prediction mode can comprise a reference image index and a motion vector. In another example, the prediction mode can be an intra-prediction mode; the information for an intra-prediction mode can comprise an inter-prediction mode index. • Step 3: Generate the first prediction values ​​and second prediction values, using the first prediction mode and the second prediction mode, respectively. • Step 4: Obtain the combined values ​​of the prediction samples according to the combination of the first prediction values ​​and the second prediction values, according to the division, which is described in Step 1. In one example, in step 1, an encoding block is divided into two sub-blocks in various ways. Figure 9 shows an example of partitioning an encoding block as a separator line 1250 divides the block into two sub-blocks. To describe line 1250, two parameters are specified: one parameter is an alpha angle 1210, and the other parameter is a distance 1230. In some embodiments, the angle, as shown in FIGURE 9, is measured between the xy axis and the parting line, while the distance is measured by the length of the vector, which is perpendicular to the parting line and passes through the center of the current block. In another example, FIGURE 10 shows an alternative way to represent the separation line, where the angle and distance examples are different from the examples shown in FIGURE 9. In some examples, in step 4, the split described in step 1 is used to combine the first and second prediction values ​​to obtain the combined prediction values. In one example, a combination operation is applied in step 4 to remove any artifacts (jittery or jagged appearance along the split line). This combination operation can be described as a filtering operation along the split line. On the encoder side, a separation line (the parameters that define the line, such as angle and distance) is determined based on the speed distortion derived from the cost function. The determined line parameters are encoded into the bit stream. On the decoder side, the line parameters are decoded (obtained) according to the bit stream. In the case of 3 video channels, for example one luminance component and two chrominance components, a first prediction and a second prediction are generated for each channel. In step 4 above, three final predictions (one luma prediction and two chroma predictions) need to be obtained by combining a first and second prediction using a weighted average. This process is complex because obtaining the sample weights for the combinations requires solving the line equations for each sample of the three final predictions.According to the embodiments of the present invention, the sample weights for combining the chroma predictions (to obtain the combined chroma predictions) are calculated in accordance with the sample weights for combining the luma predictions. A separate combining filter must be calculated for the chroma prediction because it is typical in video applications to employ the concept of chroma subsampling. Chroma subsampling is the process of using a lower spatial resolution for the two chrominance channels than for the luminance channels. This takes advantage of the properties of human visual perception, which is less sensitive to changes in color compared to changes in contrast, and effectively reduces the data rate of compressed video.The most common chroma subsampling scheme is referred to as “420” subsampling, resulting in chrominance components with average vertical and spatial resolution compared to the luminance resolution. For video coding algorithms, which typically operate at a block level, this means, for example, that a 32x32 luminance block at a given luminance location (x, y) relative to the upper-left sample of the image is associated with two 16x16 chroma blocks located at (x / 2, y / 2). Implementation form 1 (decoder and encoder perspectives): According to this form of realization, step 4 in the above process is comprised of the following sub-steps. Step 4.1: For a luma sample in a block, a sample distance (sample_dist) is calculated; the sample distance represents a distance from the luma sample to a block separation line. Step 4.2: The calculated sample_dist is used to calculate the weighting factors. The weighting factors are used to combine a first luma prediction value and a second luma prediction value that corresponds to the luma sample. In an example, the weighting factors are indicated as sample weight and sample weight2, which refer to a weight value corresponding to the first luma prediction value and a weight value corresponding to the second luma prediction value. In one example, a first weighting factor (sample weight) is calculated according to the sample distance (sample_dist), and a second weighting factor (sample weight2) is calculated according to the formula sample weight2 = T - sample weight, where T is a predefined constant. Step 4.3: A sample weighting factor CI (or sample weighting C2) is calculated corresponding to the chroma sample at coordinates (x,y), which is related to a sample weighting factor C1 (or sample weighting C2) for a luma sample at coordinates (x,y). Optionally, a second sample weighting factor C2 is calculated for the chroma sample according to the equation: sample weighting C2 = T - sample weighting CI, where T is a predefined constant. Step 4.4: The combined prediction value for the chroma sample at coordinates (x,y) is combined according to a first chroma prediction value at coordinate IVIA / a / ZUZ l / UI 004 / (x,y), a second chroma prediction value at coordinates (x,y), the sample weighting factor CI and the sample weighting factor C2, where (x,y) is the coordinate of a chroma sample in a chroma block of an encoding block, with respect to the upper left coordinate of the chroma block. In one example, a sample distance sample_dist is calculated according to the formula: sample_dist = ((x«1) + 1)*Dis[angleldx1] + ((y«1) + 1))*Dis[angleldx2] offset(distanceldx). • The value of angleldxl and the value of angleldx2 are from the bit stream or are derived / calculated based on other information obtained from the bit stream, angleldxl and angleldx2 represent quantized trigonometric parameters of a separating line, the first of the cosine type and the second of the sine type. • In one example, xey are the -xe -y coordinates of a sample with respect to the upper left sample of an encoding block. • offset(distanceldx) is an offset value that is a function of an index value (distanceldx), the index value is obtained from the bitstream or derived / calculated based on other information obtained from the bitstream. • Dis[] is a lookup table. Dis[angleldx1] describes the change in the sample distance (sample_dist) with respect to a unit increment (an increment of 1) in the sample's x-coordinate. Dis[angleldx2] describes the change in the sample distance (sample_dist) with respect to a unit increment (an increment of 1) in the sample's y-coordinate. In an example, angleldx1 is equal to angleldx and angleldx2 is equal to (displacementX + 8)%32. In one example, the predefined constant T is equal to 8, which means that the sample weight and sample weight2 can have values ​​in the range of 0 to 8 (inclusive). In another example, the predefined constant T is equal to 16. In another example, the sample_dist and sample weighting can be obtained according to the following equations: - nCbR = ( W > H ) ¿ ( W / H ) : (H / W) sample_dist = ( W > H ) ¿ (x / nCbR - y ) : ( x - y / nCbR ) or sampledist = (W>H)¿(H-1 - x / nCbR - y ): (W - 1 - x - y / nCbR ) sample weight = Clip3( 0, 8, sample_dist+4 ), where W is a width of an encoding block, H is a height of the encoding block. It is worth noting that the two previous examples show two methods of calculating IVIA / a / ZUZ l / UI 004 / in accordance with the arithmetic of integers. The embodiments of the invention are not limited to these examples of calculating the sample_dist The combined prediction value of a sample can be calculated according to the multiplication of the first sample weighting value (sample weight) with the first prediction value at coordinate (x,y), multiplication of the second sample weighting value (sample weight) with the second weighting value at coordinate (x,y). According to one example, a first weighting factor is obtained from the sample distance (sample_dist) and a lookup table. In this example, the lookup table is used to store filter coefficients. In other words, a join operation is implemented using a lookup table. In this example, a function of sample_dist can be used as an index value for the lookup table. The function can be a division or multiplication operation with constant numbers, a right shift operation, a constant amount operation, an absolute value take, a trim operation, or a combination thereof. In this example, an input to the join operation is sample_dist (a vertical distance, a horizontal distance, or a combination of vertical and horizontal distances to a part line, a line that divides a coding block into two sub-blocks), and the output of the join operation is the sample weight or sample weight2. According to another example, a combination operation is implemented as a function with `sample_dist` as input and `sample_weight` or `sample_weight2` as output. In one example, a combination operation can be implemented as `sample_weight = Clip3(0, 8, sample_dist+4)`. In another example, a combination operation can be implemented as `sample_weight = Clip3(0, 8, f(sample_dist))`. The function `f()`, for example, can be a division / addition / multiplication operation with a constant number, a right shift operation with a constant amount, a take operation with an absolute value, a clip operation, or a combination of these. According to the embodiments of the invention, a combination operation is applied to a sample according to a value of an indication in a bit stream. In one embodiment, a first combination operation can be: First combination operation: “sample weight = Clip3( 0, 8, sample_dist+4)”. In one embodiment, a second combination operation can be: “sample weight = sample_dist == 0 ≤ 4 : sample_dist < 0 ≤ 0 : 8”, “sample weight = Clip3( 0, 8, sample_dist*K + Clip3( 0, 8, sample_dist+4))”. IVIA / a / ZUZ l / U 1004 / K is an integer with a value greater than 0. It is worth noting that the combination operation is shorter (and therefore sharper) as K increases. For example, when K = 4, the second combination operation becomes identical to - “sample weight = sample_dist == 0 ≤ 4 : sample_dist < 0 ≤ 0 : 8”, which was amplified in FIGURE 14. According to one example, a flag value in a bitstream indicates a value of K. In this case, K can have a value of 0 (indicating that the selected join operation is the first join operation), or a value other than K (which may indicate a second or a third join operation). According to one embodiment of the invention, a combination operation can be implemented as a lookup table, such as the tables exemplified in FIGURE 15. In one example, the sample weight can be obtained as sample weight = geoFilter[idx], where idx is obtained as a function of sample_dist and geoFilter is a one-dimensional linear arrangement of filter weights. One function might be: idx = min((abs(sample_dist) + 8) » 4, maxldx), where maxldx is the maximum value that idx can assume. In the case of Table 17-2, for example, maxldx is 7. According to the embodiments of the invention, a sample weight CI, corresponding to a sample chroma at the chroma location (x,y), can be calculated according to one or more sample weights corresponding to samples at different luma locations. In some examples, a chroma sample at (x,y) and a luma sample at (x,y) are components of the same pixel at (xy) where there is no chroma subsampling. With chroma subsampling, the chroma sample at (x / 2,y / 2) and the luma sample at (x,y) are part of the same pixel at (x,y). In some examples, for the case of the chroma sub-sample, where the chrominance resolution is divided into vertical and horizontal directions, the chroma weighting CI value can be calculated by a combination, for example, an average or weighted average of luma weightings at different spatial positions. In this case, a chroma sample at position (x,y) is associated with four luma samples at positions (2x,2y), (2x+1,2y), (2x,2y), and (2x,2y+1) in terms of chroma coordinates. In another example, for the case of chroma subsampling, where the chrominance resolution is divided into vertical and horizontal directions, the luma sample at coordinates (x+1, y+1) and the chroma sample at (x / 2, y / 2) are from the same pixel. In the same example, the luma sample at coordinates (x+1, y) and the chroma sample at (x / 2, y / 2) can be components of the same pixel. This means that one chroma sample is used to determine four different pixels, while one luma sample is used to determine one pixel. For example, the sample CI weighting can be obtained with one of the following equations: Example 1: sample weighting CI (x, y) = sample weighting (2*x,2*y); Example 2: sample weighting CI (x, y) = sample weighting (2*x-1,2*y-1); Example 3: sample weighting CI (x, y) = (sample weighting (2*x-1,2*y-1) + sample weighting (2*x,2*y) + K)»1; Example 4: sample weight CI (x, y) = (sample weight (2*x-1,2*y-1) + sample weight (2*x,2*y) + sample weight (2*x,2*y - 1) + sample weight (2*x -1,2*y) + K)»2; Example 5: sample weight CI (x, y) = (sample weight (2*x-1,2*y-1) + sample weight (2*x,2*y) + sample weight (2*x,2*y - 1) + sample weight (2*x -1,2*y) + 2)»2; Example 6: sample weight CI (x, y) = (sample weight (2*x-1,2*y-1) + sample weight (2*x,2*y) + 1 )»1, where x and y are the coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight CI (x, y) is the chroma sample weight corresponding to the chroma sample at coordinates (x,y), sample weight (x, y) is the sample weight corresponding to a luma sample at coordinates (x,y). K is an offset value. In one example, K could be 0. In another example, K could be a positive integer value. This can also be formulated as follows: x and y are coordinates of a chroma sample with respect to the top left coordinate of the chroma block of the encoding block, sample weight CI (a, b) is a first weight value for the chroma sample that is located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight (c, d) represents a weight value that corresponds to a luma sample that is located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value. Figure 16 specifically illustrates the relationship between the weights of a chroma sample and the weights for a luma sample. Figure 16 illustrates the case of Example 1, that is, sample weight CI(x, y) = sample weight (2*x, 2*y). It should be noted again that x and y are the coordinates of a chroma sample with respect to the upper-left coordinate of the chroma block in the encoding block, and sample weight CI(x, y) is the chroma sample weight corresponding to the chroma sample at coordinates (x, y), while sample weight (x, y) is the sample weight corresponding to a luma sample at coordinates (x, y) in a luma block. As shown in Figure 16, this can also be described as the luma sample coordinates corresponding to (2xc, 2yc), where xc = x and yc = y are the chroma sample coordinates.Then, for an even better distinction, the sample luma coordinates can be written by xl and yi such that sample weight CI (x, y) = sample weight CI (xc,ye) sample weight (2*xc,2*yc) = sample weight (xl, yi) FIGURE 17 illustrates a method according to one embodiment of the present description.FIGURE 17 illustrates an encoding method implemented by a decoding device, comprising: (step 1601) obtaining a parameter value for a current block, the parameter value indicating a partitioning mode for the current block; (step 1605) obtaining a first prediction mode for the current block; (step 1607) obtaining a second prediction mode for the current block; (step 1609) generating a first prediction value for a chroma sample in the current block according to the first prediction mode; (step 1611) generating a second prediction value for a chroma sample in the current block according to the second prediction mode; (step 1613) obtaining a combined prediction sample value by combining the first prediction value and the second prediction value. FIGURE 18 illustrates an encoder 30 according to one embodiment of the present description.FIGURE 18 illustrates the decoder comprising a obtaining unit 3001 for obtaining a parameter value for a current block, the parameter value indicating a partitioning mode for the current block; a first prediction unit 3005 for obtaining a first prediction mode for the current block; a second prediction unit 3007 for obtaining a second prediction mode for the current block; a first generation unit 3009 for generating a first prediction value for a chroma sample in the current block according to the first prediction mode; a second generation unit 3011 for generating a second prediction value for a chroma sample in the current block according to the second prediction mode; a combination unit 3013 for obtaining a combined value of prediction samples by combining the first prediction value and the second prediction value. For the above embodiments, it should be noted that the partitioning mode can be a geometric model. Furthermore, for the above embodiments, the parameter can be either an angle parameter or a distance parameter. The following is an explanation of the applications of the encoding method as well as the decoding method as shown in the embodiments mentioned above, and a system that uses them. Figure 19 is a block diagram showing a content delivery system 3100 for performing content distribution services. The content delivery system 3100 includes the capture device 3102, the terminal device 3106, and optionally the display 3126. The capture device 3102 communicates with the terminal device 3106 via communication link 3104. The communication link may include communication channel 13 described above. Communication link 3104 includes, but is not limited to, Wi-Fi, Ethernet, cable, wireless (3G / 4G / 5G), USB, or any combination thereof. The capture device 3102 generates data and can encode the data using the encoding method shown in the preceding embodiments. Alternatively, the capture device 3102 can distribute the data to a distribution server (not shown in the Figures), and the server encodes the data and transmits the encoded data to the terminal device 3106. The capture device 3102 includes, but is not limited to, a camera, smartphone or tablet, computer or laptop, videoconferencing system, PDA, vehicle-mounted device, or a combination thereof, or similar. For example, the capture device 3102 can include the source device 12 as described above. When the data includes video, the video encoder 20 included in the capture device 3102 can perform the video encoding processing.When the data includes audio (i.e., voice), an audio encoder included in the 3102 capture device can currently perform the audio encoding processing. For some practical scenarios, the 3102 capture device distributes the multiplexed encoded audio and video data together. For other practical scenarios, such as in a video conferencing system, the encoded audio and video data are not multiplexed. The 3102 capture device distributes the encoded audio and video data separately to the 3106 terminal device. In the content delivery system 3100, the terminal device 310 receives and plays back the encoded data. The terminal device 3106 could be a device with data reception and retrieval capabilities, such as a smartphone or tablet 3108, computer or laptop 3110, network video recorder (NVR) / digital video recorder (DVR) 3112, TV 3114, set-top box (STB) 3116, video conferencing system 3118, video surveillance system 3120, personal digital assistant (PDA) 3122, vehicle-mounted device 3124, or a combination of any of these, or a similar device capable of decoding the encoded data mentioned above. For example, the terminal device 3106 could include the target device 14 as described above.When the encoded data includes video, the video decoder 30 included in the terminal device is prioritized to perform video decoding. When the encoded data includes audio, an audio decoder included in the terminal device is prioritized to perform audio decoding. For a terminal device with its screen, for example, a smartphone or tablet. 3108, computer or laptop 3110, network video recorder (NVR) / digital video recorder (DVR) 3112, TV 3114, personal digital assistant (PDA) 3122, or vehicle-mounted device 3124, the terminal device can feed the decoded data to its display. For a terminal device not equipped with a display, e.g., STB 3116, video conferencing system 3118, or video surveillance system 3120, an external display 3126 is connected to it to receive and display the decoded data. When each device in this system performs encoding or decoding, the image encoding device or the image decoding device can be used, as shown in the embodiments mentioned above. Figure 20 is a diagram showing the structure of an example of terminal device 3106. After terminal device 3106 receives the stream from capture device 3102, protocol processing unit 3202 analyzes the stream's transmission protocol. The protocol includes, but is not limited to, Real-Time Streaming Protocol (RTSP), Hypertext Transfer Protocol (HTTP), HTTP Live Streaming Protocol (HLS), MPEG-DASH, Real-Time Transport Protocol (RTP), Real-Time Messaging Protocol (RTMP), or any combination thereof, or similar protocols. After the protocol processing unit 3202 processes the stream, a stream file is generated and sent to the demultiplexing unit 3204. The demultiplexing unit 3204 can separate the multiplexed data into encoded audio data and encoded video data. As described above, for some practical scenarios, such as in a video conferencing system, the encoded audio data and encoded video data are not multiplexed. In this situation, the encoded data is transmitted to the video decoder 3206 and the audio decoder 3208 without passing through the demultiplexing unit 3204. Through demultiplexing processing, the elementary video stream (ES), audio ES, and optionally the subtitle are generated. The video decoder 3206, which includes a video decoder 30 as explained in the embodiments mentioned above, decodes the video ES using the decoding method shown in the embodiments mentioned above to generate the video frame and feeds this data to the synchronous unit 3212. The audio decoder 3208 decodes the audio ES to generate the audio frame and feeds this data to the synchronous unit 3212. Alternatively, the video frame can be stored in a buffer (not shown in FIGURE 20) before being fed to the synchronous unit 3212. Similarly, the audio frame can be stored in a buffer (not shown in FIGURE 20) before being fed to the synchronous unit 3212. The 3212 synchronous unit synchronizes the video and audio frames and supplies the video / audio to a 3214 video / audio display. For example, the 3212 synchronous unit synchronizes the presentation of video and audio information. This information can be encoded using timestamps that relate to the presentation of the encoded audio and visual data, and timestamps that relate to the delivery of the data stream itself. If the subtitle is included in the stream, the 3210 subtitle decoder decodes the subtitle, and synchronizes it with the audio frame, and supplies the video / audio / subtitle to a 3216 video / audio / subtitle display. The present invention is not limited to the system mentioned above, and either the image encoding device or the image decoding device in the embodiments mentioned above can be incorporated into another system, for example, an automotive system. Mathematical Operators The mathematical operators used in this description are similar to those used in the C programming language. However, the results of integer division and arithmetic shift operations are defined more precisely, and additional operations, such as exponentiation and division of real numbers, are defined. Numbering and counting conventions generally start from 0; for example, "the first" is equivalent to the 0th, "the second" is equivalent to the 1st, and so on. Arithmetic Operators The following arithmetic operators are defined as follows: + Addition Subtraction (as a two-argument operator) or negation (as a unary prefix operator) * Multiplication, including matrix multiplication Exponentiation. Specifies xa the power of y. In other contexts, this xy notation is used for superscripts not intended for interpretation as exponentiation. Z Integer division with truncation of results towards zero. For example, 7 / 4 and -7 / -4 are truncated to 1 and -7 / 4 and 7 / -4 are truncated to -1. Used to indicate division in mathematical equations where truncation or rounding is not proposed. Used to indicate division in mathematical equations where truncation or rounding is not proposed. The sum of f(i) with i taking all integer values ​​of x up to and including e f( i ) i = x y. Modulus, remainder of x divided by y, defined only by integers xey with x % yx >= 0 ey > 0. Logical Operators The following logical operators are defined as follows: x && y Boolean logical “and” of x and y χ | | y Boolean logical “or” of x and y ¡ Boolean logical “not x ? y : z If x is AREA or not equal to 0, evaluate to the value of y; otherwise, evaluate to the value of z. Relational operators The following relational operators are defined as follows: > Greater than > = Greater than or equal to < Less than < = Less than or equal to = = Equal to ! = Not equal to When a relational operator is applied to a syntax element or variable that has been assigned the value "na" (not applicable), the value "na" is treated as a distinct value for the syntax element or variable. The value "na" is not considered equivalent to using another value. Bitwise operators The following bitwise operators are defined as follows: The `&` operator, between "and" bits, operates on a two's complement representation of the integer value. When operating on a binary argument that contains fewer bits than another argument, the shorter increment is extended by adding more significant bits equal to 0. Between bits “o”. When operating with integer arguments, it operates with a two's complement representation of the integer value. When operating with a binary argument that contains fewer bits than another argument, the shorter argument is lengthened by adding more significant bits equal to 0. The bitwise "exclusive OR" operator. When operating with integer arguments, it uses a two's complement representation of the integer value. When operating with a IVIA / a / ZUZ l / UI 004 / binary argument that contains fewer bits than another argument, the shorter argument is extended by adding more significant bits equal to 0. X » y Arithmetic right shift of an integer two's complement representation of binary digits x by y. This function is defined only by non-negative integer values ​​of y. The bits shifted in the most significant bits (MSBs) as a result of the right shift have a value equal to the MSB of x before the shift operation. X « y Arithmetic left shift of an integer two's complement representation of the binary digits x by y. This function is defined only for non-negative integer values ​​of y. The bits shifted to the least significant bits (LSBs) as a result of the left shift have a value equal to 0. Allocation Operators The following arithmetic operators are defined as follows: = Assignment operator + + Increment, i.e., x+ + is equivalent to χ = x + 1; when used in a disposition index, it evaluates to the value of the variable before the increment operation. Decrement, that is, x- - is equivalent to χ = x - 1; when used in a disposition index, the value of the variable is evaluated before the decrement operation. += Increase by the specified amount, i.e., x += 3 is equivalent to χ = x + 3, and x += (-3) is equivalent to χ = x + (-3). Decrement by the specified amount, i.e., x ≠ 3 is equivalent to ax = x - 3, and x ≠ (-3) is equivalent to χ = x - (-3). Interval Notation The following notation is used to specify a range of values: x = y..zx takes integer values ​​starting from yaz, inclusive, with x, y, yz being integers and yz being greater than y. Mathematical Functions The following mathematical functions are defined: í x ; x >= 0 Abs( x ) =; x 0 Asin(x) is the inverse trigonometric sine function, operating on an increment x in the interval from -1.0 to 1.0 inclusive, with an output value in the interval from -tt+2 to π-2 inclusive, in radian units Atan(x) is the inverse trigonometric tangent function, which operates on an argument x, with an output value in the interval from -π+2 to π+2 inclusive, in radian units. Atm(Ξl x>& Vx ' Atan^- ) + πx< Q && y >= 0 ^Atanf-í-n;x<»&&y<0 VX * V ; x == o && v >= o· ... I - τ otherwise Atan2( y, x ) = Ceil( x ) the smallest integer greater than or equal to x. Clipl γ( x ) = Clip3( 0, ( 1 « BitDepthY) - 1, x ) Clipl c( x ) = Clip3( 0, ( 1 « BitDepthc ) - 1, x ) {x ; z < xy ; a, y, l. ) =2 ;otherwise Cos( x ) the trigonometric cosine function that operates on an argument x in units IVIA / a / ZUZ l / UI 004 / of radians. Floor( x ) the largest integer less than or equal to x. ( c + d ; b — a >= d12 jc — d : a — b > d12 GetCurrMsb( a, b, c, d ) = ^celse Ln( x) the natural logarithm of x (the base-e logarithm, where e is the constant base of the natural logarithm 2.718 281 828...). Log2( x ) the base-2 logarithm of x. Log10( x ) the base-10 logarithm of x. fx ; x <=y Min( x, y ) = -; x>y ιίx 3 x>=v Max( x, y ) =; x<>' Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 ) / 1 ;x>0 O ; x = = 0 Sign(x)=-1 ;χ<0 Sin(x) is the trigonometric sine function that operates on an argument x in radian units Sqrt( x ) = Swap( x, y ) = (y, x ) Tan(x) is the trigonometric tangent function that operates on an argument x in radian units. Order of operation precedence When an order of precedence in an expression is not explicitly indicated by the use of parentheses, the following rules apply: - Operations with a higher precedence are evaluated before any operation with a lower precedence. - Operations of the same precedence are evaluated sequentially from left to right. The following table specifies the precedence of operations from highest to lowest; a higher position in the table indicates a higher precedence. For those operators that are also used in the C programming language, the order of precedence used in this specification is the same as used in the C programming language. Table: Operation precedence from highest (at the top of the table) to lowest (at the bottom of the table) Operations (with operands x, y, yz) “x++”, “x“!x”, x” (As a unary prefix operator) “x * y”, “x / y”, “x - y”, “¥“, “x % y” “x + y”, “x - y” (as a two-argument operator), ±f(i) “ |-X “ “x « y”, “x » y” “x < y”, “x <= y”, “x > y”, “x >= y” “x = = y”, “xi= y” “x & y” “x I y” “X && y” “x ? y : z” IVIA / a / ¿U¿ l / UI 004 / “x = y”, “x += y”, “x -= y” Description of the text of logical operations In the text, a statement of logical operations will be described mathematically in the following way: if(condition 0) statement 0 also if(condition 1) statement 1 also I* informative comment on the remaining condition * / statement n can be described as follows: ...as follows / ... the following applies: If condition 0, statement 0 Otherwise, if condition 1, statement 1 Otherwise (informative comment on the remaining condition), statement n Each “If… Else, if… Else…” statement in the text is introduced with “… as follows” or “the following applies” immediately followed by “If… The last condition of the “If… Else, if… Else…” statement is always “Otherwise…” The interspersed “If… Else, if… Else…” statements can be identified by matching “as follows” or “the following applies” with the ending “Otherwise…” In the text, a statement of logical operations would be mathematically described in the following way: if(condition 0a && condition 0b) statement 0 also if (condition 1a || condition 1b) statement 1 also statement n It can also be described as follows: ...as follows / ... the following applies: - If all of the following conditions are true, statement 0: condition 0a condition 0b Otherwise, if one or more of the following conditions are true, statement 1: condition 1a condition 1b Otherwise, statement n In the text, a statement of logical operations as mathematically described in the following: If (condition 0) statement 0 if (condition 1) statement 1 can be described as follows: when condition 0, statement 0 when condition 1, statement 1. Although the embodiments of the invention have been described primarily based on video coding, it should be noted that the embodiments of the coding system 10, encoder 20, and decoder 30 (and correspondingly to system 10) and the other embodiments described herein can also be configured for processing or coding still images, i.e., processing or coding an individual image independent of any preceding or subsequent images, as in video coding. In general, only the inter-prediction units 244 (encoder) and 344 (decoder) may not be available if the image processing coding is limited to an individual image 17.All other functionalities (also referred to as tools or technologies) of the video encoder 20 and the video decoder 30 can be used equally for still image processing, for example residual calculation 204 / 304, transformation 206, quantization 208, inverse quantization 210 / 310, transformation (inverse) 212 / 312, partitioning 262 / 362, intraprediction 254 / 354, and / or loop filtering 220, 320, and entropy encoding 270 and entropy decoding 304. The embodiments of, for example, the encoder 20 and the decoder 30, and the functions described herein, for example, with reference to the encoder 20 and the decoder 30, can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions can be stored on a computer-readable medium or transmitted over a communication medium as one or more instructions or code and executed by a hardware-based processing unit. Computer-readable media may include computer-readable storage media, which corresponds to a tangible medium such as a data storage medium, or communication media, which includes any means that facilitates the transfer of a computer program from one place to another, for example, according to a communication protocol.Thus, computer-readable media can generally refer to (1) a tangible, non-transient, computer-readable storage medium, or (2) a communication medium such as a signal or carrier wave. Data storage media can be any available medium that can be accessed by one or more computers or one or more processors to retrieve instructions, code, and / or data structures for implementing the techniques described herein. A software product may include a computer-readable medium. By way of example, and not as a limitation, this computer-readable storage medium may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage device, flash memory, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer. Furthermore, any connection is properly called a computer-readable medium.For example, if instructions are transmitted from a network site, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of a medium. However, it should be understood that computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other transient media, but instead refer to tangible, non-transient storage media.Diskette and disk, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media. The instructions can be executed by one or more processors, such as one or more digital signal processors (DSPs), general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable logic arrays (FPGAs), or other equivalent discrete integrated logic circuits. Accordingly, the term “processor,” as used herein, can refer to any of the above structures or any other structure suitable for implementing the techniques described herein. Furthermore, in some respects, the functionality described herein can be provided within dedicated hardware and / or software modules configured for encoding and decoding, or incorporated into a combined codec. Additionally, the techniques can be implemented entirely in one or more logic circuits or elements. The techniques described here can be implemented in a wide variety of devices or appliances, including a cordless phone, an integrated circuit (integrated circuit) MA / a / ZU21 / ULDO4 / A circuit (IC) or a set of ICs (e.g., a chip assembly). Several components, modules, and units are described here to emphasize the functional aspects of devices configured to perform the described techniques, but they do not necessarily require implementation by different hardware units. Rather, as described above, several units can be combined into a single codec hardware unit or provided by a collection of interoperable hardware units, including one or more processors as described above, in conjunction with software and / or firmware. The present description provides the following five additional aspects. A first aspect of an encoding method implemented by a decoding device, comprising: divide a current block into at least two sub-blocks; obtain a first prediction mode for a first sub-block in at least two sub-blocks; obtain a first prediction value for a chroma sample in the current block according to the first prediction mode; obtain a first weighting value for the chroma sample, according to a weighting value for a luma sample in the current block; obtain a combined prediction value for the chroma sample in the current block, according to the first prediction value for the chroma sample and the first weighting value for the chroma sample. A second aspect of the method in accordance with the first aspect, where obtaining a first weighting value for the chroma sample, in accordance with a weighting value for a luma sample in the current block is implemented as, sample weightCI (x, y) = sample weight (2*x, 2*y); or sample weighting CI (x, y) = sample weighting (2*x-1,2*y-1); or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + K)»1; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x 1,2*y) + K)»2; or sample weight CI (x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x ML / a / ZUZ l / UI 004 / 1,2*y) + 2)»2; or sample weightingC1(x, y) = (sample weighting (2*x-1, 2*y-1) + sample weighting (2*x, 2*y) + 1 )»1; where x and y are coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight C1(x, y) is the first weight value for the chroma sample located at coordinate (x, y) (meaning, a sample coordinate in a chroma block of the current block), sample weight (x, y) represents a weight value that corresponds to a luma sample located at coordinates (x, y) (meaning, a sample coordinate in a luma block of the current block), K is an integer value. A third aspect of a decoder (30) comprising processing circuits to carry out the method in accordance with either the first or second aspect. A fourth aspect of a computer program product comprising program code for carrying out the method in accordance with either the first or second aspect. A fifth aspect of a decoder, comprising: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoding method to carry out the method in accordance with either the first or second aspect. NOVELTY OF THE INVENTION Having described the present invention, the following is considered novel and is therefore claimed as property:

Claims

1. An encoding method implemented by a decoding device, characterized in that it comprises: obtaining a parameter value for a current block, the parameter value indicating a partitioning mode for the current block; obtaining a first prediction mode for the current block; obtaining a second prediction mode for the current block; generating a first prediction value for a chroma sample in the current block according to the first prediction mode; generating a second prediction value for a chroma sample in the current block according to the second prediction mode; obtaining a combined prediction sample value by combining the first prediction value and the second prediction value.

2. The method according to claim 1, characterized in that the combined value of prediction samples is obtained by combining the first prediction value and the second prediction value according to the partitioning mode.

3. The method according to claim 1 or 2, characterized in that the combined prediction sample value is obtained by combining the first prediction value and the second prediction value according to a combination operation.

4. The method according to claim 3, characterized in that the combination operation is implemented using a lookup function or table.

5. The method according to any of claims 1-4, further characterized in that it comprises obtaining a weighting value for a luma sample by calculating the weighting value for the luma sample; and obtaining a first weighting value for a chroma sample by calculating the first weighting value for the chroma sample.

6. The method according to claim 5, characterized in that obtaining the first weighting value for the chroma sample is related to obtaining the weighting value for a luma sample in the current block; and the method further comprises: obtaining a combined prediction value for the chroma sample in the current block, according to the first prediction value for the chroma sample and the first weighting value for the chroma sample.

7. The method according to claim 5 or 6, characterized in that obtaining the first weighting value for the chroma sample is related to obtaining the weighting value for the luma sample in the current block as, sample weightingC1(x, y) = sample weighting (2*x, 2*y); wherein x and y are coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weightingC1(a, b) is a first weighting value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weighting (c, d) represents a weighting value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value.

8. The method according to claim 5 or 6, characterized in that obtaining the first weight value for the chroma sample is related to obtaining the weighting value for the luma sample in the current block as, sample weight C1(x, y) = sample weight (2*x-1,2*y-1); or sample weight C1(x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + K)»1; or sample weight C1(x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x -1,2*y) + K)»2; or sample weight C1(x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + sample weight (2*x, 2*y -1) + sample weight (2*x -1,2*y) + 2)»2; or sample weight C1(x, y) = (sample weight (2*x-1, 2*y-1) + sample weight (2*x, 2*y) + 1)»1;where x and y are the coordinates of a chroma sample with respect to the upper left coordinate of the chroma block of the encoding block, sample weight C1(a, b) is a first weight value for the chroma sample located at a sample coordinate (a, b) in the chroma block of the current block, a and b are coordinate values; and sample weight (c, d) represents a weight value corresponding to a luma sample located at a sample coordinate (c, d) in a luma block of the current block, c and d are coordinate values; and K is an integer value.

9. The method in accordance with any of claims 1-8, characterized in that the partitioning mode is a geometric pattern.

10. The method in accordance with any of claims 1-9, characterized in that the parameter is an angle parameter or a distance parameter.

11. The method in accordance with any of claims 1-10, characterized in that the first prediction mode and the second prediction mode are not identical.

12. The method according to any of claims 1-11, characterized in that the first prediction mode or the second prediction mode is an inter-prediction mode, wherein the information for the inter-prediction mode comprises a reference image index and / or a motion vector.

13. The method according to any of claims 1-12, characterized in that the first prediction mode or the second prediction mode is an intra-prediction mode, wherein the information for the intra-prediction mode comprises an intra-prediction mode index.

14. A decoder, characterized in that it comprises a processing circuit for carrying out the method in accordance with any of claims 1 to 13.

15. A computer program product, characterized in that it comprises program code for carrying out the method in accordance with any of claims 1 to 13.

16. A decoder, characterized in that it comprises: one or more processors; and a non-transient, computer-readable storage medium coupled to the processors and storing the programming for execution by the processors, wherein the programming, when executed by the processors, configures the encoding method to carry out the method in accordance with any one of claims 1 to 13.

17. A decoder, characterized in that it comprises: a obtaining unit for obtaining a parameter value for a current block, the parameter value indicating a partitioning mode for the current block; a first prediction unit for obtaining a first prediction mode for the current block; a second prediction unit for obtaining a second prediction mode for the current block; a first unit for generating a first prediction value for a chroma sample in the current block according to the first prediction mode; a second unit for generating a second prediction value for a chroma sample in the current block according to the second prediction mode; a combining unit for obtaining a combined prediction value of 62 samples by combining the first prediction value and the second prediction value.

18. A non-transient storage medium, characterized in that it comprises a bit stream encoded / decoded by the method in accordance with any of claims 1 to 13.