METHOD FOR INTRAPREDICTION OF A BLOCK OF AN IMAGE
Patent Information
- Authority / Receiving Office
- MX · MX
- Patent Type
- Patents
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2021-05-24
- Publication Date
- 2026-06-12
AI Technical Summary
Existing video coding standards face challenges in achieving a balance between bandwidth requirements and video quality, particularly in high-resolution videos, with current intra-prediction methods leading to potential errors and increased computational complexity.
The method involves improving intra-prediction by using weighted predicted sample values with a sample weight factor and arithmetic shift normalization, specifically for DC and PLANAR modes, to enhance prediction accuracy and reduce complexity.
This approach reduces the incidence of erroneous predictions and simplifies the intra-prediction process, leading to improved video quality and reduced computational overhead.
Smart Images

Figure MX435474B0
Abstract
Description
METHOD FOR INTRAPREDICTION OF A BLOCK OF AN IMAGE FIELD OF INVENTION This description refers to the technical field of video and / or image decoding and encoding, and in particular to a method and apparatus for intraprediction. BACKGROUND OF THE INVENTION Digital video has been widely used since the introduction of DVDs. Before transmission, the video is encoded and transmitted using a transmission medium. The viewer receives the video and uses a display device to decode and show it. Over the years, video quality has improved, for example, due to higher resolutions, color depths, and frame rates. This has led to larger data streams, which are now commonly transported over the internet and mobile communication networks. Higher-resolution videos, however, typically require more bandwidth because they contain more information. To reduce bandwidth requirements, video coding standards have been introduced that involve video compression. When video is encoded, bandwidth requirements (or the corresponding memory requirements in the case of storage) are reduced. Often, this reduction comes at the expense of quality. Therefore, video coding standards attempt to strike a balance between bandwidth requirements and quality. High Efficiency Video Coding (HEVC) is an example of a video coding standard commonly known to those skilled in the field. In HEVC, a coding unit (CU) is divided into prediction units (PU) or transform units (TU). The Versatile Video Coding (WC) Next Generation standard is the latest joint video project of the ITU-T Video Coding Expert Group (VCEG) and the ISO / IEC Moving Picture Expert Group (MPEG) standards organizations, working together in a partnership known as the Joint Video Exploration Team (JVET). WC is also referred to as the ITU-T H.266 / Next Generation Video Coding (NGVC) standard.In WC, the concepts of multiple partition types should be removed, i.e., the separation of the concepts of CU, PU, and TU, except as necessary for CUs that are too large for the maximum transform length, and it allows more flexibility for the forms of CU partitioning. The processing of these coding units (CUs) (also referred to as blocks) depends on their size, spatial position, and the coding mode specified by an encoder. Coding modes can be classified into two groups according to the type of prediction: intraprediction and interprediction modes. Intraprediction modes use samples from the same image (also referred to as a frame or image) to generate reference samples for calculating prediction values for samples in the block being reconstructed. Intraprediction is also referred to as spatial prediction. Interprediction modes are designed for temporal prediction and use reference samples from previous or subsequent images to predict block samples in the current image. ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are exploring the potential need for standardization of future video coding technology with compression capabilities significantly exceeding those of the current HEVC standard (including its current extensions and short-term extensions for screen content coding and high dynamic range coding). The groups are collaborating on this exploration through a joint effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their respective experts. Version 3.0 of VTM (Versatile Test Model) uses 93 intraprediction modes and several intra-smoothing tools, including four-step subpixel intra-interpolation filtering and position-dependent prediction combination (PDPC). PDPC is proposed as a unified mechanism for modifying predicted samples resulting from intraprediction using angular, DC, or planar intraprediction modes. BRIEF DESCRIPTION OF THE INVENTION The embodiments of this application provide apparatus and methods for improving the intraprediction of a current block of an image. The invention is defined by the independent claims. The dependent claims describe advantageous embodiments. Additional forms of implementation are evident from the description and figures. According to a first aspect, a method of intraprediction of a block of an image is provided, the method comprising for a sample of the block: obtaining a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; multiplying the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; adding an additional value to the sample value ΙνΙΛ / E / ZνζΊ / υθθ4Ί O predicted weighted, resulting in an unnormalized predicted sample value; and normalizing the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ((2 « pj — — wT) p , wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor.According to a second aspect, an intraprediction method is provided for a first block and a second block of an image, the method comprising for a sample from the first block and for a sample from the second block: obtaining (S100) a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode; multiplying the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; adding an additional value to the weighted predicted sample value, resulting in a nonnormalized predicted sample value;and normalizing the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ((2 « pj — w'i — wT) p , ' is a parameter of the sample weighting factor, wT is a horizontal weighting factor and is a vertical weighting factor, wherein the intraprediction mode used to obtain the predicted sample values for the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample values for the second block is a PLANAR intraprediction mode.; For example, the sample weighting factor parameter is a precision of the sample weighting factor. In some modalities, the normalized predicted sample value may be the final result of the prediction process. The method according to the first or second aspect may allow improved intraprediction of a current block, where the incidence of erroneous predicted sample values can be prevented in a case of intraprediction of DC of a current sample. In one modality, a PLANAR intraprediction mechanism is used to calculate the additional value. This can allow a reduced degree of complexity by simplifying a procedure for intraprediction since an already implemented planar intraprediction mechanism can be reused for calculating the additional values, which are used for determining the unnormalized predicted sample value. (64 — u-'I — «¿T) In one modality, the sample weighting factor is In one modality, the additional value is a sum of one or more addends, including an addend that depends on one or more of the reference samples. For example, one or more addends may include a rounding offset. Adding a rounding offset can allow the result of the arithmetic right shift of the integer representation of the unnormalized predicted sample to be rounded appropriately. In one modality, the addend that depends on one or more samples of X R-iv4 X JLjvreferencia es1, y * y represent values of the nearest reference samples located above and to the left of the predicted sample. In one mode, the image is part of a video sequence. In one mode, the horizontal weighting factor and the vertical weighting factor are a power of two. This allows a calculation of a multiplication with these weighting factors that will be implemented using a shift operation of an integer representation of the factor, with which the weighting factor will be multiplied. In one modality, the horizontal weighting factor is wi = (2 « (p — 1.)) » ((x « 1) » nSc-aÍe) x , where is a horizontal coordinate of the sample, the vertical weighting factor is wT = (2 « (p — 1)) » ((y « 1) » y , where is a vertical coordinate of the sample and is a scale parameter. In one mode, the scale parameter is derived from a block size. Deriving the block size parameter can allow for the calculation of horizontal and vertical weights in an appropriate manner, thereby improving prediction accuracy. In one mode, the scale parameter is determined as ((LQg2(nFW) 1 Log2(«TbH) - 2) » 2) nT&W where is a block width and nT & is a block height. In one modality, a normalized predicted sample value is calculated from the predicted sample value, which includes calculating (wl X / ?_ 4- X 4- (.64 — — wT) X y) 4- 32) » 6 where y) is the predicted sample value, , ' represent the values of the nearest reference samples located above and to the left of the predicted sample, is a horizontal weighting factor, and wT is a vertical weighting factor. In this modality, the added rounding offset is 32. This may allow a correctly rounded calculation result of the right shift operation » 6. In one modality, normalizing the unnormalized predicted sample value results in a normalized predicted sample value. In one embodiment, the plurality of block samples comprises each block sample. In addition, a method is provided for encoding or decoding an image, comprising obtaining normalized predicted sample values by performing the steps of any of the above methods; and adding residual values to the normalized predicted sample values resulting in reconstructed sample values. According to a third aspect, a device is provided for encoding or decoding an image, the device comprising processing circuitry configured to perform any of the above methods. In one embodiment, the processing circuitry comprises one or more processors and a non-transient computer-readable medium connected to the one or more processors, wherein the non-transient computer-readable medium carries a program code that, when executed by the one or more processors, causes the device to perform the method. According to a fourth aspect, a non-transient computer-readable medium is provided, the non-transient computer-readable medium carrying a program code that, when executed by a computer device, causes the computer device to perform any of the above methods. According to a fifth aspect, a computer program is provided, the computer program comprising program code to perform any of the above methods. According to one aspect, an encoding device is provided, the encoding device being configured to perform intraprediction of a block of an image, comprising: a obtainer configured to obtain a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ((2 « p) - »'L — wT) p , wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor.; According to one aspect, an encoding device is provided, the encoding device being configured to perform intraprediction of a first block and a second block of an image, comprising: a obtainer configured to obtain a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ((2 « pj - — wT) p , wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor. The intraprediction mode used to obtain the predicted sample value for a sample from the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample value for a sample from the second block is a planar intraprediction mode. According to one aspect, a decoder device is provided, the decoder device being configured to perform intraprediction of a block of an image, comprising: a obtainer configured to obtain a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ( ( 2 «K p ) — wi — wT) y ', wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor.; According to one aspect, a decoder device is provided, the decoder device being configured to perform intraprediction of a first block and a second block of an image, comprising: a obtainer configured to obtain a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ( ( 2 «K p) — wi — wT) p , wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor. The intraprediction mode used to obtain the predicted sample value for a sample from the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample value for a sample from the second block is a planar intraprediction mode. According to one aspect, a predictor device for intraprediction of a block of an image comprises: a obtainer configured to obtain, for a sample of the block, a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a nonnormalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the weighting factor of ({2 « — wL — h'T) p sample is ' , wherein is a parameter of the sample weighting factor, is a horizontal weighting factor and is a vertical weighting factor.; According to one aspect, a predictor device for intraprediction of a first block and a second block of an image comprises: a obtainer configured to obtain, for a sample from the first block or the second block, a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein the sample weighting factor is ((2 « ρ) — wL — wT) p , ' is a parameter of the sample weighting factor, wT is a horizontal weighting factor and is a vertical weighting factor. The intraprediction mode used to obtain the predicted sample value for the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample value for the second block is a planar intraprediction mode. According to one aspect, a method for intraprediction of a block of an image comprises a sample (x,y) of the block: obtaining a predicted sample value P(x,y) from one or more reference sample values by intraprediction using a DC intraprediction mode; and generating a resulting predicted sample value P'(x,y) based on the predicted sample value P(x,y) and based on the reference sample values R(x,-1) and R(1 ,y), where P'(x,y) = (wl_xR(-1,y) + wTxR_(x,-1) + (64-wL-wT)xP(x,y)+32)) » 6 where the reference sample value R(x,-1) is a value from a sample (x,-1) located above the block, the reference sample value R(-1,y) is a value from a sample (-1,y) located to the left of the block, wL is a horizontal weighting factor and wT is a vertical weighting factor. Details of one or more embodiments are set forth in the accompanying drawings and in the description below. Other features, objects, and advantages will be evident from the description, drawings, and claims. BRIEF DESCRIPTION OF THE FIGURES In what follows, the modalities of the description are described in more detail with reference to the attached figures and drawings, in which: Figure 1A is a block diagram showing an example of a video coding system configured to implement description modalities; Figure 1B is a block diagram showing another example of a video coding system configured to implement description modalities; Figure 2 is a block diagram showing an example of a video encoder configured to implement description modalities; Figure 3 is a block diagram showing an example structure of a video decoder configured to implement description modalities; Figure 4 is a block diagram illustrating 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 6 illustrates an example of angular intraprediction modes and directions and the associated pang value for vertical prediction directions; Figure 7 illustrates an example of a transformation from pref to pi,ref for a 4x4 block; Figure 8 illustrates an example of constructing pi,ref for horizontal angular prediction; Figure 9 illustrates an example of constructing pi,ref for vertical angular prediction; Figure 10A illustrates an example of angular intraprediction directions and associated intraprediction modes in JEM and BMS-1; Figure 10B illustrates an example of angular intraprediction directions and associated intraprediction modes in VTM-2; Figure 10C illustrates an example of angular intraprediction directions and associated intraprediction modes in VTM-3; Figure 11 illustrates an example of angular intraprediction directions and associated intraprediction modes in HEVC; Figure 12 illustrates an example of QTBT; Figure 13 illustrates an example of PDPC weightings in DC mode for positions (0, 0) and (1, 0) within a 4x4 block; Figure 14 illustrates an example of intraprediction of a block of reference samples on the main reference side; Figure 15 illustrates a method for intraprediction of a block of an image according to a modality; Figure 16A illustrates an encoding device or a decoding device according to a modality; Figure 16B illustrates an encoding device or a decoding device according to a modality; Figure 17 illustrates an example of PDPC weightings in DC mode for positions (0, 0) and (1, 0) within a 4x4 block; Figure 18 illustrates an example of intraprediction of a sample block. In the following, identical reference signs refer to identical or at least functionally equivalent features unless explicitly stated otherwise. DETAILED DESCRIPTION OF THE INVENTION The following description refers to the accompanying figures, which form part of the description and illustrate specific aspects of the described modalities or specific aspects in which the modalities of this description may be used. It is understood that the described modalities may be used in other aspects and include structural or logical changes not represented in the figures. Therefore, the following detailed description is not to be taken in a limiting sense, and the scope of this description is defined by the appended claims. For example, it is understood that a description in connection with a described method may also be valid for a corresponding device or system configured to perform 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, for example, functional units, to perform the one or more described method steps (for example, a single unit performing the one or more steps, or a plurality of units each performing one or more of the plurality of steps), even if the one or more 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 performing the functionality of the one or more units (for example, a single step that performs the functionality of the one or more units, or a plurality of steps, each performing the functionality of one or more of the plurality of units), even if the description or plurality of steps is not explicitly described or illustrated in the figures. In addition, it is understood that the features of the different aspects and / or exemplary modes described herein may be combined with one another, unless specifically stated 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 "photograph," the terms "frame" or "image" 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 encoding 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.It should be understood that the terms referring to the "encoding" of video images (or images in general) refer to the "encoding" or "decoding" of video images or their respective video sequences. The combination of the encoding and decoding processes is also referred to as CODEC (encoding and decoding). In lossless video encoding, the original video images can be reconstructed, and 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 applied to reduce the amount of data representing the video images. Since these images cannot be fully reconstructed at the decoder, 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 codes" (for example, they combine spatial and temporal prediction in the sample domain and 2D transform coding to apply quantization in the transform domain). Each frame in a video sequence is typically divided into a set of non-overlapping blocks, and coding is usually performed at a block level.In other words, in the encoder the video is usually processed, that is, encoded, at the block level (video block), for example, by using spatial prediction (intra-image) and / or temporal prediction (inter-image) to generate a prediction block, subtracting the prediction block from the current block (currently processed / to be processed block) to obtain a residual block, transforming the residual block and quantizing the residual block in the transform 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.In addition, 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, e.g., encoding, of subsequent blocks. In the following modes 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 example coding system 10, for example, a video coding system 10 (or I / UOO4 IO short coding system 10) that can use techniques of this present application. The video encoder 20 (or short encoder 20) and video decoder 30 (or short decoder 30) of the video coding system 10 represent examples of devices that can be configured to perform techniques according to different examples described in this application. 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 21. The source device 12 comprises an encoder 20 and may additionally comprise, optionally, an image source 16, a preprocessor (or preprocessing unit) 18, for example, an image preprocessor 18 and a communication interface or communication unit 22. Image Source 16 may comprise or be any type of image capture device, for example, a camera for capturing a real-world image, and / or any type of image generating device, for example, a computer graphics processor for generating a computer-animated image, or any other type 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 type of memory or storage that stores any of the aforementioned images. Unlike preprocessor 18 and the processing performed by preprocessing unit 18, the image or image data 17 may also be referred to as raw image data or raw photograph 17. The preprocessor 18 is configured to receive the (raw) image data 17 and to 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, for example, include 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 later, for example, based on Figure 2). I / UOO4 IO 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) through 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 may additionally comprise, i.e., optionally, 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. The communication interface 22 and the communication interface 28 can be configured to transmit or receive the encoded image data 21 or the encoded data 13 by means of a direct communication link between the source device 12 and the destination device 14, for example, a wireless or wired connection, or by means of any type of network, for example, a wireless or wired network or any combination thereof, or any type of public and private network, or any combination thereof. The communication interface 22 can, for example, 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 type of transmission processing or encoding for transmission over a communication link or communication network. The communication interface 28, which forms the counterpart of the communication interface 22, can be configured, for example, to receive the transmitted data and process the transmission data using any type of corresponding transmission processing or decoding 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 set up 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 encoded image data 21 and provide decoded image data 31 or a decoded image 31 (further details will be described later, e.g., 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, decoded image 31, to obtain post-processed image data 33, for example, a post-processed image 33. The post-processing performed by the post-processing unit 32 may include, 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 type of display for representing the reconstructed image, for example, an integrated or external screen or monitor. The displays may, for example, comprise liquid crystal displays (LCDs), organic light-emitting diode displays (OLEDs), plasma displays, projectors, micro-LED displays, liquid crystal on silicon (LCoS), digital light processors (DLP), or any other type of display. Although Figure 1A depicts the source device 12 and the destination device 14 as separate devices, the device modes can also encompass both functionalities: the source device 12 or its corresponding functionality and the destination device 14 or its corresponding functionality. In these modes, the source device 12 or its corresponding functionality and the destination device 14 or its corresponding functionality can 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 based on the description, the existence and (exact) division of functionalities of the different units or functionalities within the source device 12 and / or destination 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) and the decoder 30 (e.g., a video decoder 30) can each be implemented as any of a variety of suitable circuitry 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, or any combination thereof. 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 perform the techniques described herein. Any of the above (including hardware, software, a combination of hardware and software, etc.) can be considered to be one or more processors.Each of the video encoder 20 and video decoder 30 can be included in one or more encoders or decoders, any of which can be integrated as part of a combined encoder / decoder (codec) in a respective device. The source device 12 and destination device 14 can comprise any of a wide range of devices, including any type of portable or stationary device, such as notebook or laptop computers, mobile phones, smartphones, tablets, cameras, desktop computers, set-top boxes, televisions, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content delivery servers), broadcast receivers, broadcast transmitters, or similar devices, and may or may not use any type of operating system. In some cases, the source device 12 and destination device 14 may be equipped for wireless communication. Therefore, the source device 12 and destination device 14 may be wireless communication devices. In some cases, the video encoding system 10 illustrated in Figure 1A is merely an example, and the techniques in this application may be applied to video encoding settings (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, transmitted 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. Figure 1B is an illustrative diagram of another example video coding system 40 that includes the encoder 20 of Figure 2 and / or decoder 30 of Figure 3 according to one example embodiment. The system 40 may implement techniques according to different examples described in this application. In the illustrated implementation, the video coding system 40 may include the image-forming device(s) 41, video encoder 100, video decoder 30 (and / or a video encoder implemented by logic circuitry 47 of the processing unit(s) 46), an antenna 42, one or more processors 43, one or more memory storage devices 44, and / or a display device 45. As illustrated, the image-forming device(s) 41, antenna 42, processing unit(s) 46, logic circuitry 47, video encoder 20, video decoder 30, processor(s) 43, memory storage(s) 44, and / or display device 45 may be able to communicate with one another. As discussed, although illustrated with both video encoder 20 and video decoder 30, the video encoding system 40 may include only video encoder 20 or only video decoder 30 in different examples. As shown in some examples, the video encoding system 40 may include the antenna 42. The antenna 42 can be configured to transmit or receive a bit-coded stream of video data, for example. Additionally, in some examples, the video encoding system 40 may include the display device 45. The display device 45 can be configured to display video data. As shown in some examples, the logic circuitry 47 may be implemented using the processing unit(s) 46. The processing unit(s) 46 may include application-specific integrated circuit (ASIC) logic, graphics processor(s), general-purpose processor(s), or similar components.The video encoding system 40 may also include the optional processor(s) 43, which may similarly include application-specific integrated circuit (ASIC) logic, graphics processor(s), general-purpose processor(s), or the like. In some examples, the logic circuitry 47 may be implemented using hardware, dedicated video encoding hardware, or the like, and the processor(s) 43 may implement general-purpose software, operating systems, or the like. Furthermore, the memory storage(s) 44 may be any type of memory, such as volatile memory (e.g., static random-access memory (SRAM), dynamic random-access memory (DRAM), etc.) or non-volatile memory (e.g., flash memory, etc.), and so on. As a non-limiting example, the memory storage(s) 44 may be implemented using cache memory.In some examples, logic circuitry 47 may have access to memory stores 44 (for example, for implementing an image buffer). In other examples, logic circuitry 47 and / or processing unit(s) 46 may include memory stores (for example, cache or similar) for implementing an image buffer or similar. In some examples, the video encoder 20 implemented using logic circuitry may include an image buffer (for example, either by means of the processing unit(s) 46 or the memory storage(s) 44) and a graphics processing unit (for example, by means of the processing unit(s) 46). The graphics processing unit may be communicatively coupled to the image buffer. The graphics processing unit may include the video encoder 20 as implemented using logic circuitry 47 to incorporate the different modules as discussed with respect to Figure 2 and / or any other encoding system or subsystem described herein. The logic circuitry may be configured to perform the different operations as discussed herein. The video decoder 30 can be implemented similarly to the logic circuitry 47 used to incorporate the various modules discussed with respect to the decoder 30 in Figure 3 and / or any other decoder system or subsystem described herein. In some examples, the video decoder 30 can be implemented using logic circuitry that may include an image buffer (for example, either by means of the processing unit(s) 420 or the memory storage(s) 44) and a graphics processing unit (for example, by means of the processing unit(s) 46). The graphics processing unit can be communicatively coupled to the image buffer.The graphics processing unit may include the video decoder 30 as implemented by logic circuitry 47 to incorporate the different modules as discussed with respect to figure 3 and / or any other decoder system or subsystem described herein. In some examples, the antenna 42 of the video encoding system 40 can be configured to receive an encoded bitstream of video data. As discussed, the encoded bitstream may include data, flags, index values, mode selection data, or similar information associated with encoding a video frame, such as data associated with the encoding partition (e.g., transform coefficients or quantized transform coefficients, optional flags (as discussed), and / or data defining the encoding partition). The video encoding system 40 may also include the video decoder 30 coupled to the antenna 42 and configured to decode the encoded bitstream. The display device 45 is configured to display video frames. For the sake of clarity, the decoding methods are described herein, for example, by reference to High Efficiency Video Coding (HEVC) or Versatile Video Coding (WC) 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 Expert Group (VCEG) and the ISO / IEC Moving Image Expert Group (MPEG). A person skilled in the art will understand that the decoding methods are not limited to HEVC or WC. Encoder and coding method Figure 2 shows a schematic block diagram of an example video encoder 20 configured to implement the techniques of this application. In the example in Figure 2, the video encoder 20 comprises an input 201 (or input interface 201), a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210 and inverse transform processing unit 212, a reconstruction unit 214, a loop filter unit 220, a decoded image buffer (DPB) 230, a mode selection unit 260, an entropic encoding unit 270, and an output 272 (or output interface 272). The mode selection unit 260 may include an interprediction unit 244, an intraprediction unit 254, and a partitioning unit 262.The interprediction 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 transform processing unit 206, the quantization unit 208, and the mode selection unit 260 may be referred to as forming a forward signal path of the encoder 20, whereas the inverse quantization unit 210, the inverse transform 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 may be referred to as forming a backward signal path of the video encoder 20, wherein the backward signal path of the video encoder 20 corresponds to the signal path of the decoder (see video decoder 30 in Figure 3).Reference is also made to the inverse quantization unit 210, the inverse transform processing unit 212, the reconstruction unit 214, the loop filter 220, the decoded picture buffer (DPB) 230, the interprediction unit 244, and the intraprediction unit 254 to form 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), i.e., 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 preprocessed image 19 (or preprocessed image data 19). For simplicity, the following description refers to image 17. Image 17 can also be referred to as the current image or the image to be encoded (particularly in video encoding to distinguish the current image from other images, i.e., previously encoded and / or decoded images from the same video sequence, i.e., the video sequence that also comprises the current image). A (digital) image is, or can be considered as, a two-dimensional array of samples with intensity values. A sample in the array can also be referred to as a pixel (short for image element) or a PEG. The number of samples in the horizontal and vertical (or axis) directions of the array or image defines the size and / or resolution of the image. For color representation, three color components are typically used; that is, the image can be represented by, or include, three sample arrays. In RGB format or color space, an image comprises a corresponding red, green, and blue sample array. However, in video encoding, each pixel is usually represented in a luminance and chrominance format or color space, for example, YCbCr, which comprises a luminance component denoted by Y (sometimes L is also used instead) and two chrominance components denoted by Cb and Cr.The luminance (or short brightness) component Y represents the brightness or intensity of the gray level (e.g., as in a grayscale image), while the two components of. In YCbCr, chrominance (or short chroma) Cb and Cr represent the chromaticity components or color information. Therefore, an image in YCbCr format comprises one luminance sample array of luminance sample values (Y), and two chrominance sample arrays of chrominance values (Cb and Cr). Images in RGB format can be converted or transformed into YCbCr format and vice versa; this process is also known as color transformation or conversion. If an image is monochrome, it may comprise only one luminance sample array. Therefore, an image can be, for example, a luma sample array in monochrome format or a luma sample array and two corresponding chroma sample arrays in 4:2:0, 4:2:2, and 4:4:4 color formats. The video encoder modes 20 may include an image partitioning unit (not shown in Figure 2) configured to split the image 17 into a plurality of image blocks 203 (usually non-overlapping). These blocks may also be referred to as root blocks, macroblocks (H.264 / AVC), or encoding tree blocks (CTBs) or encoding tree units (CTUs) (H.265 / HEVC and VVC). The image partitioning unit may be configured to use the same block size for all images in a video sequence and the corresponding grid that defines the block size, or to change the block size between images or subsets or groups of images and split each image into the corresponding blocks. In additional modes, the video encoder can be configured to directly receive block 203 from image 17, for example, one, several, or all of the blocks that make up image 17. Image block 203 can also be referred to as the current image block or the image block to be encoded. Similar to image 17, image block 203 is again, or can be considered as, a two-dimensional array of samples with intensity values (sample values), although smaller in dimension than image 17. In other words, block 203 may comprise, for example, one sample array (e.g., a luma array in the case of a monochrome image 17, or a luma or chroma array in the case of a color image) or three sample arrays (e.g., a luma array and two chroma arrays in the case of a color image 17), or any other number and / or type of arrays depending on the applied color format. The number of samples in the horizontal and vertical (or axis) directions of block 203 defines the size of block 203. Consequently, a block may be, for example, an MxN array of samples (M columns by N rows) or an MxN array of transform coefficients. The video encoder modes 20 as shown in figure 2 can be configured to encode the image 17 block by block, for example, encoding and prediction are done 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 (further details on prediction block 265 are provided later), for example, by subtracting sample values from prediction block 265 from sample values from image block 203, sample by sample (pixel by pixel) to obtain the residual block 205 in the sample domain. Transform The transform processing unit 206 can be configured to apply a transform, for example, a discrete cosine transform (DCT) or discrete sine transform (DST), to sample values in the residual block 205 to obtain transform coefficients 207 in a transform domain. The transform coefficients 207 can also be referred to as residual transform coefficients and represent the residual block 205 in the transform 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 an orthogonal DCT transform, these integer approximations are typically scaled by a certain factor. To preserve the norm of the residual block processed by the forward and inverse transforms, additional scaling factors are applied as part of the transform process. The scaling factors are typically chosen based on certain constraints, such as scaling factors being a power of two for shift operations, bit depth of the transform coefficients, trade-offs between precision and implementation costs, and so on.Specific scaling factors are specified, for example, for the inverse transform, for example, by the inverse transform processing unit 212 (and the corresponding inverse transform, for example, by the inverse transform processing unit 312 in the video decoder 30) and the corresponding scaling factors for the forward transform, for example, by the transform processing unit 206, in an encoder 20 can be specified accordingly. The modes of the video encoder 20 (respectively, transform processing unit 206) can be configured to generate transform parameters, for example, a type of transform or transforms, for example, directly or encoded or compressed by the entropic encoding unit 270, so that, for example, the video decoder 30 can receive and use the transform parameters for decoding. Quantification The quantization unit 208 can be configured to quantize transform coefficients 207 to obtain quantized coefficients 209, for example, when applying scalar quantization or vector quantization. Quantized coefficients 209 can also be referred to as quantized transform coefficients 209 or quantized residual coefficients 209. The quantization process can reduce the bit depth associated with some or all of the transform coefficients. For example, an n-bit transform coefficient can be rounded down to an m-bit transform 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 scalar quantization, different scales can be applied to achieve finer or more distorted quantization. Smaller quantization step sizes correspond to finer quantization, while larger quantization step sizes correspond to more distorted quantization. The applicable quantization step size can be indicated by a quantization parameter (QP). The quantization parameter can be, for example, an index to a predefined set of applicable quantization step sizes.For example, small quantization parameters may correspond to fine quantization (small quantization step sizes), and large quantization parameters may correspond to distorted quantization (large quantization step sizes), or vice versa. Quantization may involve division by a quantization step size, and the corresponding inverse dequantization, for example, by the inverse quantization unit 210, may involve multiplication by the quantization step size. Modalities according to some standards, such as HEVC, may be configured to use a quantization parameter to determine the quantization step size. In general, 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 for quantization and dequantization can be introduced to restore the norm of the residual block, which may be altered due to the scaling used in the fixed-point approximation of the equation for the quantization step size and quantization parameter. In one example implementation, the inverse transform scaling and dequantization can be combined. Alternatively, custom quantization tables can be used, and signaling can be performed 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 modes of video encoder 20 (respectively, quantization unit 208) can be configured to generate quantization parameters (QP), for example, directly or encoded by the entropic encoding unit 270, so that, for example, video decoder 30 can receive and apply the quantization parameters for decoding. Reverse quantization The inverse quantization unit 210 is configured to apply the inverse quantization of quantization unit 208 to the quantized coefficients to obtain 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 to, although they are not usually identical to, the transform coefficients due to quantization loss, the transform coefficients 207. Inverse transform 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 the transform block 213. Reconstruction The reconstruction unit 214 (e.g., aggregator or summing unit 214) is configured to add the transform block 213 (i.e., reconstructed residual block 213) to the prediction block 265 to obtain a reconstructed block 215 in the sample domain, e.g., by adding, sample by sample, the sample values of the reconstructed residual block 213 and the sample values of the prediction block 265. Filtered Loop filter unit 220 (or short “loop filter” 220) 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 is configured, for example, to smooth pixel transitions or otherwise improve video quality. Loop filter unit 220 may comprise one or more loop filters, such as an unblocking filter, a sample-adaptive shift (SAO) filter, or one or more additional filters, such as a bilateral filter, an adaptive loop filter (ALF), a sharpening filter, smoothing filters, or collaborative filters, 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.Filtered block 221 may also be referred to as filtered reconstructed block 221. The decoded image buffer 230 can store the reconstructed encoding blocks after the loop filter unit 220 performs filtering operations on the reconstructed encoding blocks. The modes of the video encoder 20 (respectively, loop filter unit 220) can be configured to generate loop filter parameters (such as sample adaptive offset information), for example, directly or encoded by the entropic 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. Decoded image buffer The decoded image 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 image 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, e.g., previously reconstructed and filtered blocks 221, from the same current image or from different images, e.g., previously reconstructed images, and can provide complete previously reconstructed, i.e., decoded images (and corresponding reference blocks and samples) and / or a partially reconstructed current image (and. I / UOO4 IO corresponding reference blocks and samples), for example, for interprediction. The decoded image 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 samples or reconstructed blocks. Mode selection (partitioning and prediction) The mode selection unit 260 comprises the partitioning unit 262, interprediction unit 244, and intraprediction 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 reconstructed samples or 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, interprediction or intraprediction, to obtain a prediction block 265 or predictor 265. The mode selection unit 260 can be configured to determine or select a partition for a current block prediction mode (including no partition) 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 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, to select the prediction mode that provides the minimum rate distortion. Terms such as “best,” “minimum,” “optimal,” etc., in this context do not necessarily refer to an overall “best,” “minimum,” “optimal,” etc.but they can also refer to compliance with a termination or selection criterion as a value that exceeds or falls below a threshold or other constraints that potentially lead to a “suboptimal selection” but reduce complexity and processing time. In other words, partitioning unit 262 can be configured to partition block 203 into smaller sub-blocks or block partitions (which again form blocks), for example iteratively using quaternary tree partitioning (QT), binary partitioning (BT), or ternary tree partitioning (TT), or any combination thereof, and to perform, for example, prediction for each of the sub-blocks or block partitions, wherein mode selection comprises the selection of the tree structure of the partitioned block 203 and prediction modes are applied to each of the sub-blocks or block partitions. The following will explain in more detail the partitioning (for example, by partition unit 260) and prediction processing (by interprediction unit 244 and intraprediction unit 254) performed by an example video encoder 20. Partitioning 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, at root tree level 0 (hierarchy level 0, depth 0), can be recursively partitioned, for example, into two or more blocks at a lower tree level, for example, nodes at tree level 1 (hierarchy level 1, depth 1), where these blocks can again be partitioned into two or more blocks at a lower tree level, for example, tree level 2 (hierarchy 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 a 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 quaternary tree (QT). As mentioned above, the term “block” as used herein may refer to a portion, particularly a square or rectangular portion, of an image. With reference, for example, to HEVC and WC, 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 corresponding chroma sample CTBs of an image having three sample arrays, or a sample CTB of a monochrome image or an image encoded using three color planes and separate syntax structures used to encode the samples. Correspondingly, a coding tree block (CTB) can be an NxN sample block 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 encoding block, two corresponding chroma sample encoding blocks of an image having three sample arrays, or a sample encoding block of a monochrome image or an image encoded using three color planes and separate syntax structures used to encode the samples.Accordingly, a coding block (CB) can be a block of samples MxN for some values of M and N, so dividing a CTB into coding blocks is a partition. In some modalities, for example, according to HEVC, a coding tree unit (CTU) can be divided into CUs using a quaternary tree structure denoted as the 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 passed 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 split into transform units (TUs) according to another quaternary tree structure similar to the coding tree for the CU. In some modalities, for example, according to the latest video coding standard currently under development, referred to as Versatile Video Coding (VVC), Quaternary Tree 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 by a Quaternary Tree structure. The leaf nodes of the Quaternary Tree are further partitioned by a Binary Tree or a Ternary Tree (or Triple Tree) structure. The resulting leaf tree nodes are called Coding Units (CUs), and this partitioning is used to predict and transform processing without any further partitioning. This means that the CU, PU, and TU have the same block size in the QTBT coding block structure.In parallel, multiple partitioning was also proposed, for example, triple tree partitioning for use in conjunction 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 prediction mode or an optimal prediction mode from a set of (default) prediction modes. The set of prediction modes may include, for example, intraprediction modes and / or interprediction modes. Intraprediction The set of intraprediction modes may comprise 35 different intraprediction modes, for example, non-directional modes such as DC (or mean) mode and planar mode, or directional modes, for example, as defined in HEVC, or it may comprise 67 different intraprediction modes, for example, non-directional modes such as DC (or mean) mode and planar mode, or directional modes, for example, as defined for WC. Intraprediction unit 254 is configured to use reconstructed samples of neighboring blocks of the same current image to generate an intraprediction block 265 according to an intraprediction mode from the set of intraprediction modes. The intraprediction unit 254 (or in general, the mode selection unit 260) is further configured to generate intraprediction parameters (or in general, information indicative of the intraprediction mode selected for the block) to the entropic 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. Interprediction The set of (or possible) interprediction modes depends on the available reference images (i.e., previous images at least partially decoded, for example, stored in DBP 230) and other interprediction 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 to search for a best-matching 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, you can apply jump mode and / or direct mode. The interprediction unit 244 may include a motion estimation (ME) unit and a motion compensation (MC) unit (neither 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 other / different previously decoded images 231, for motion estimation. For example, a video sequence may comprise the current image and previously decoded images 231, or 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 of 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 interprediction parameters 143 to the motion estimation unit. This offset is also called a motion vector (VM). 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 retrieving or generating the prediction block based on the motion vector / block determined by the motion estimate, possibly performing subpixel-accurate interpolations. Interpolation filtering can generate additional pixel samples from 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 that the motion vector points to in one of the reference image lists. The motion compensation unit can also generate syntax elements associated with the video blocks and segment for use by video decoder 30 when decoding the video segment's image blocks. Entropic coding The entropic coding unit 270 is configured to apply, for example, an entropic coding scheme or algorithm (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 (CABAC) coding, a syntax-based context-adaptive binary arithmetic (SBAC) coding, a probability interval partitioning (PIPE) entropic coding, or another entropic coding methodology or technique) or derivation (without compression) on the quantized coefficients 209, interprediction parameters, intraprediction parameters, loop filter parameters, and / or other syntax elements to obtain encoded image data 21 that can be generated by the output 272, for example, in the form of an encoded bitstream 21, such that, for example,The video decoder 30 can receive and use the parameters for decoding. The encoded bitstream 21 can be transmitted to the video decoder 30 or stored in memory for later transmission or retrieval by the video decoder 30. Other structural variations of the video encoder 20 can be used to encode the video stream. For example, a non-transform-based 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 configured to implement the techniques of this application. The video decoder 30 is configured to receive encoded image data 21 (e.g., encoded bitstream 21), for example, 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, for example, data representing image blocks of an encoded video segment and associated syntax elements. In the example in Figure 3, the decoder 30 comprises an entropic 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 picture buffer (DBP) 330, an interprediction unit 344, and an intraprediction unit 354. The interprediction 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 the encoder 20, 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 344, and the intraprediction 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 functionally identical to the inverse quantization unit 110, the inverse transform processing unit 312 may be functionally identical to the inverse transform processing unit 212, the reconstruction unit 314 may be functionally identical to the reconstruction unit 214, the loop filter 320 may be functionally identical to the loop filter 220, and the decoded image buffer 330 may be functionally identical to the buffer of decoded image 230.Therefore, the explanations provided for the respective units and functions of the video encoder 20 apply correspondingly to the respective units and functions of the video decoder 30. Entropic decoding The entropy decoding unit 304 is configured to analyze the bit stream 21 (or, more generally, encoded image data 21) and perform, for example, entropic 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 of the interprediction parameters (e.g., reference image index and motion vector), intraprediction parameters (e.g., mode or intraprediction index), transform parameters, quantization parameters, loop filter parameters, and / or other syntax elements. The entropic 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 entropic encoding unit 270 of the encoder 20.The entropic decoding unit 304 can be further configured to provide interprediction parameters, intraprediction parameters and / or other syntax elements to the 360 mode selection unit and other parameters to 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, more generally, inverse quantization-related information) and quantized coefficients from the encoded image data 21 (e.g., during analysis and / or decoding, e.g., by the entropic decoding unit 304) and to apply, based on the quantization parameters, inverse quantization to the decoded quantized coefficients 309 to obtain dequantized coefficients 311, which can also be referred to as transform coefficients 311. The inverse 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, similarly, a degree of inverse quantization to be applied. Inverse Transform The inverse transform processing unit 312 can be configured to receive dequantized coefficients 311, also referred to as transform coefficients 311, and to apply a transform to the dequantized coefficients 311 in order to obtain reconstructed residual blocks 213 in the sample domain. The reconstructed residual blocks 213 can also be referred to as transform blocks 313. The transform can be an inverse transform, for example, an inverse DCT, an inverse DST, an inverse integer transform, or a conceptually similar inverse transform process.The inverse transform processing unit 312 can be further configured to receive transform parameters or corresponding information from the encoded image data 21 (e.g., when analyzing and / or decoding, e.g., by entropic decoding unit 304) to determine the transform 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 of the reconstructed residual block 313 and the sample values of the prediction block 365. Filtered 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 additional filters, for example, a bilateral filter, an adaptive loop filter (ALF), a sharpening filter, smoothing filters, or collaborative filters, or any combination thereof. Although loop filter unit 320 is shown in Figure 3 as being a loop filter, in other configurations, loop filter unit 320 may 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 produce the decoded image 311, for example, via output 312, for presentation or display to a user. Prediction The interprediction unit 344 may be identical to the interprediction unit 244 (in particular, the motion compensation unit), and the intraprediction unit 354 may be identical to the interprediction unit 254 in function. It performs splitting or partitioning and prediction decisions based on the partitioning and / or prediction parameters or respective information received from the encoded image data 21 (e.g., when analyzed and / or decoded, for example, by the entropic decoding unit 304). The mode selection unit 360 may be configured to perform block prediction (intra- or interprediction) based on reconstructed images, blocks, or respective samples (filtered or unfiltered) to obtain the prediction block 365. When the video segment is encoded as an intracoded segment (I), the mode selection unit 360's intraprediction unit 354 is configured to generate prediction block 365 for an image block of the current video segment based on a signaled intraprediction mode and previously decoded block data from the current image. When the video image is encoded as an intercoded segment (i.e., B or P), the mode selection unit 360's interprediction 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 entropic decoding unit 304. For interprediction, 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 predetermined construction techniques based on reference images stored in DPB 330. The 360 mode selection unit is configured to determine prediction information for a video block of the current video segment by analyzing motion vectors and other syntax elements and using the prediction information to produce the 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 interprediction) used to encode the video blocks in the video segment, an interprediction segment type (e.g., B segment, P segment, or GPB segment), construction information for one or more of the reference picture lists for the segment, motion vectors for each intercoded video block in the segment, interprediction state for each intercoded video block in the segment, and other information to decode the video blocks in the current video segment. Other variations of the video decoder 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, a non-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. Figure 4 is a schematic diagram of a video encoding device 400 according to one of the described modes. The video encoding device 400 is suitable for implementing the modes described herein. In one mode, the video encoding device 400 can be a decoder, such as video decoder 30 in Figure 1A. IVIA / t / ZUZ I / UOO4 IO or an encoder such as 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 (Tx) units 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 the 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, receiving units 420, transmitting units 440, output ports 450, and memory 460. The 430 processor includes an encoding module 470. The encoding module 470 implements the modes described above. For example, the encoding module 470 implements, processes, prepares, or provides the various encoding operations. Therefore, the inclusion of the encoding module 470 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 instructions stored in memory 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 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), content-addressable ternary memory (TCAM), and / or static random-access memory (SRAM). Figure 5 is a simplified block diagram of a device 500 that can be used as either or both of the source device 12 and the destination device 14 of Figure 1, according to one example modality. The device 500 can implement techniques of this present application described above. The device 500 can be in the form of a computer system that includes multiple computing devices or in the form of an individual computing device, for example, a mobile phone, a tablet computer, a laptop computer, a notebook computer, a desktop computer, and the like. A 502 processor in the 500 device can be a central processing unit. Alternatively, the 502 processor can be any other type of device or multiple devices capable of manipulating and processing existing or subsequently developed information. Although the described implementations can be carried out with a single processor, as shown, 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 including at least one program that enables the processor 502 to perform the methods described herein. For example, the application programs 510 may include applications 1 through N, which further include a video encoding application that performs the methods described herein.The device 500 may also include additional memory in the form of secondary storage 514, which may, for example, be a memory card used with a mobile computing device. Because video communication sessions can contain a significant amount of information, they may be stored in whole or in part on secondary storage 514 and loaded into memory 504 as needed for processing. The Apparatus 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 that can be operated to detect touch inputs. The display 518 may be coupled to the processor 502 via bus 512. Other output devices may be provided that allow a user to program or otherwise use the Apparatus 500 in addition to, or as an alternative to, the display 518. When the output device is or includes a display, the display may be implemented in various ways, including by a liquid crystal display (LCD), a cathode ray tube (CRT) display, a plasma display, or a light-emitting diode (LED) display, such as an organic LED (OLED) display. The device 500 may also include or be in communication with an image detection device 520, for example, a camera, or any other image detection device 520 now existing or subsequently developed that can detect an image such as the image of a user operating the device 500. The image detection device 520 may be positioned so that it is directed toward the user operating the device 500. In one example, the position and optical axis of the image detection device 520 may be configured so that the field of view includes an area that is directly adjacent to the display 518 and from which the display 518 is visible. The device 500 may also include or be in communication with a sound detection device 522, for example a microphone, or any other sound detection device now existing or subsequently developed that can detect sounds near the device 500. The sound detection device 522 may be positioned so that it is directed towards the user operating the device 500 and may be configured to receive sounds, for example, voice or other expressions made by the user while the user is operating the device 500. Although Figure 5 depicts the processor 502 and memory 504 of the device 500 as integrated into a single unit, other configurations are possible. The operations of the processor 502 can be distributed across multiple machines (each machine having one or more processors) that can be connected directly or via a local area network or other network. The memory 504 can be distributed across multiple machines, such as network-based memory or memory on multiple machines performing the operations of the device 500. Although depicted here as a single bus, the bus 512 of the device 500 can be composed of multiple buses. Furthermore, the secondary storage 514 can be connected directly to the other components of the device 500 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.Therefore, the 500 device can be deployed in a wide variety of configurations. Position-dependent prediction (PDPC) combination. In the recent development of video coding, more sophisticated techniques and schemes for prediction have emerged. One such technique is position-dependent prediction combination (PDPC). PDPC is a scheme designed to address certain problems and improve intraprediction. In the PDPC scheme, an image or video encoder determines the value of a predicted sample based on filtered reference samples, unfiltered reference samples, and the position of the predicted sample within a current block. Using the PDPC scheme can lead to coding efficiency gains. For example, the same amount of video data can be encoded using fewer bits. Video coding schemes such as H.264 / AVC and HEVC are designed along the successful principle of block-based hybrid video coding. Using this principle, an image is first divided into blocks, and then each block is predicted using either intra-image or inter-image prediction. Several video coding standards since H.261 belong to the group of "lossy hybrid video codecs" (i.e., they combine spatial and temporal prediction in the sample domain and 2D transform coding to apply quantization in the transform domain). Each frame in a video sequence is typically divided into a set of non-overlapping blocks, and coding is usually performed at a block level.In other words, in the encoder the video is usually processed, that is, encoded, at the block level (image block), for example, by using spatial prediction (intra-image) and temporal prediction (inter-image) to generate a prediction block, subtracting the prediction block from the current block (currently processed / to be processed block) to obtain a residual block, transforming the residual block and quantizing the residual block in the transform domain to reduce the amount of data to be transmitted (compression), whereas in the decoder the inverse processing compared to the encoder is partially 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, of subsequent blocks. As used herein, the term “block” can refer to a portion of an image or a frame. For descriptive convenience, the modalities of description are described herein with reference to High Efficiency Video Coding (HEVC) or Versatile Video Coding Reference Software (VVC), developed by the Joint Collaboration Team on Video Coding (JCT-VC) of the ITU-T Video Coding Expert Group (VCEG) and the ISO / IEC Moving Picture Expert Group (MPEG). A person skilled in the art will understand that the modalities of description are not limited to HEVC or WC. They can refer to a CU, PU, and TU. In HEVC, a CTU is divided into CUs using a quaternary tree structure denoted 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, depending on 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 quaternary tree structure similar to the encoding tree for the CU. In the most recent development of video compression techniques, quaternary tree-binary tree (QTBT) partitioning is used to partition an encoding block. In the QTBT block structure, a CU can be either square or rectangular. For example, a coding tree unit (CTU) is first partitioned by a quaternary tree structure. The leaf nodes of the quaternary tree are then further partitioned by a binary tree structure.The leaf nodes of the binary tree are called coding units (CUs), and this segmentation is used to predict and transform processing without any additional partitioning. This means that the CU, PU, and TU have the same block size in the QTBT coding block structure. In parallel, multiple partitioning, such as triple tree partitioning, has also been proposed for use with the QTBT block structure. ITU-T VCEG (Q6 / 16) and ISO / IEC MPEG (JTC 1 / SC 29 / WG 11) are exploring the potential need for standardization of future video coding technology with compression capabilities significantly exceeding those of the current HEVC standard (including its current extensions and short-term extensions for screen content coding and high dynamic range coding). The groups are collaborating on this exploration through a joint effort known as the Joint Video Exploration Team (JVET) to evaluate compression technology designs proposed by their respective experts. In one example, for directional intraprediction, intraprediction modes are available that represent different prediction angles, from diagonal up to diagonal down. To define the prediction angles, a pang offset value is defined on a 32-sample grid. The association of pang with the corresponding intraprediction mode is visualized in Figure 6 for vertical prediction modes. For horizontal prediction modes, the scheme is changed to the vertical direction, and the pang values are assigned accordingly. As noted earlier, angular prediction modes are available for all applicable intraprediction block sizes. They can use the same 32-sample grid for defining the prediction angles.The distribution of pang values across the 32-sample grid in Figure 6 reveals increased resolution of prediction angles around the vertical direction and coarser resolution of prediction angles toward the diagonal directions. The same applies to horizontal directions. This design stems from the observation that in a large amount of video content, horizontal and vertical structures play a more significant role than diagonal structures. In one example, while selecting the samples to be used for prediction is straightforward for horizontal and vertical prediction directions, this task requires more effort in the case of angular prediction. For modes 11-25, when predicting the current block Be of the prediction sample set pref (also known as the main reference side) in an angular direction, samples from both the vertical and horizontal parts of pref may be involved. Since determining the location of the respective samples in either branch of pref requires some computational effort, a unified one-dimensional prediction reference has been designed for HEVC intraprediction. The scheme is visualized in Figure 7. Before performing the actual prediction operation, the reference sample set pref is mapped to a one-dimensional vector pi,ref.The projection used for mapping depends on the direction indicated by the intraprediction angle of the respective intraprediction mode. Only the reference samples from the pref portion that are to be used for prediction are mapped to pi,ref. The actual mapping of the reference samples to pi,ref for each angular prediction mode is depicted in Figures 8 and 9 for horizontal and vertical angular prediction directions, respectively. The set of reference samples pi,ref is constructed once for the predicted block. The prediction is then derived from any two neighboring reference samples in the set, as detailed later. As can be seen from Figures 8 and 9, the set of one-dimensional reference samples is not fully populated for all intraprediction modes. Only the locations that lie within the projection range for the corresponding intraprediction direction are included in the set. The prediction for both horizontal and vertical prediction modes is performed in the same way, simply by swapping the x and y coordinates of the block. The pi,ref prediction is performed with 1 / 32-pel accuracy. Depending on the value of the pans angle parameter, a sample displacement in pi,ref and a ΙνΙΛ / E / ZνζΊ / υθθ4Ί O weighting factor / fact for a sample at position fx, y). Here, the derivation for vertical modes is provided. The derivation for horizontal modes follows accordingly, interchanging x and y. If fact is not equal to 0, i.e., the prediction does not fall exactly on a full sample location in pi,ref, a linear weighting is performed between the two neighboring sample locations in pi,ref as < > i y) - ---—--- · Pí.reiV -t íídx B ' Fhrefy i + 2), 52 ' ' with 0 < x, y < Nc. It should be noted that the values of / ¡dx and ¡fact depend only on y, and therefore only need to be calculated once per row (for vertical prediction modes). The VTM-1.0 (Versatile Test Model) uses 35 intramode frames, while the BMS (Reference Point Set) uses 67 intramode frames. Intraprediction is a mechanism used in many video coding frameworks to increase compression efficiency in cases where only a given frame can be implied. Figure 10A shows an example of 67 intraprediction modes, e.g., as proposed for WC, the plurality of 67 intraprediction modes comprising: planar mode (index 0), mode of (index 1) and angular modes with indices 2 to 66, wherein the lower left angular mode in Figure 10A refers to index 2 and the numbering of the indices increases until index 66 is the upper right most angular mode in Figure 10A. As shown in Figure 10A, the latest version of JEM has some modes that correspond to distorted intraprediction directions. For any of these modes, predicting samples within a block interpolation of a set of neighboring reference samples must be performed if a corresponding position within a block side is fractional. HEVC and WC use linear interpolation between two adjacent reference samples. JEM uses more sophisticated 4-step interpolation filters. The filter coefficients are selected to be either Gaussian or cubic depending on the width or height value.The decision of whether to use width or height is aligned with the decision of selecting the primary reference side: when the intraprediction mode is greater than or equal to the diagonal mode, the upper side of the reference samples is selected as the primary reference side, and the width value determines the interpolation filter in use. Otherwise, the primary reference side is selected from the left side of the block, and the height controls the filter selection process. Specifically, if the selected side length is less than or equal to 8 samples, 4-lead cubic interpolation is applied. Otherwise, the interpolation filter is a 4-lead Gaussian filter. The specific filter coefficient used in JEM is given in Table 1. The predicted sample is calculated by convolution with coefficients selected from Table 1 according to the subpixel offset and filter type as follows: £<4 OJ = (Y 4 128) »8 In this equation, it indicates a right bit shift operation. If the cubic filter is selected, the predicted sample is further trimmed to the allowed range of values, whether defined in the sequence parameter set (SPS) or derived from the bit depth of the selected component. A Streaming Parameter Set (SPS) can specify enabled features and tools used in an encoded video sequence. Unlike the Video Parameter Set (VPS), which refers to the entire bitstream, SPS information applies only to a layer specified by a layer identifier. For example, features specified in the SPS include color format and bit depth, as well as the sample resolution of encoded images. Table 1. Intraprediction interpolation filters used in JEM Subpixel shift Cubic filter Gaussian filter c0 Ci c2 c3 co Ci c2 c3 0 (integer) 0 256 0 0 47 161 47 1 1 -3 252 8 -1 43 161 51 1 2 -5 247 17 -3 40 160 54 2 3 -7 242 25 -4 37 159 58 2 4 -9 236 34 -5 34 158 62 2 5 -10 230 43 -7 31 156 67 2 6 -12 224 52 -8 28 154 71 3 7 -13 217 61 -9 26 151 76 3 8 -14 210 70 -10 23 149 80 4 9 -15 203 79 -11 21 146 85 4 10 -16 195 89 -12 19 142 90 5 11 -16 187 98 -13 17 139 94 6 12 -16 179 107 -14 16 135 99 6 13 -16 170 116 -14 14 131 104 7 14 -17 162 126 -15 13 127 108 8 15 -16 153 135 -16 11 123 113 9 16 (semi-pel) -16 144 144 -16 10 118 118 10 17 -16 135 153 -16 9 113 123 11 18 -15 126 162 -17 8 108 127 13 19 -14 116 170 -16 7 104 131 14 20 -14 107 179 -16 6 99 135 16 21 -13 98 187 -16 6 94 139 17 22 -12 89 195 -16 5 90 142 19 23 -11 79 203 -15 4 85 146 21 24 -10 70 210 -14 4 80 149 23 25 -9 61 217 -13 3 76 151 26 26 -8 52 224 -12 3 71 154 28 27 -7 43 230 -10 2 67 156 31 28 -5 34 236 -9 2 62 158 34 29 -4 25 242 -7 2 58 159 37 30 -3 17 247 -5 2 54 160 40 31 -1 8 252 -3 1 51 161 43 CLfrQcn / Lznz / q / Yi Table 2 presents another set of interpolation filters that have a precision of 6 bits. Table 2: A set of interpolation filters with 6-bit precision Subpixel shift Intra / inter unified filter Gaussian filter c0 Cí c2 c3 c0 Cí c2 c3 0(integer) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 14 29 18 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 14 28 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 12 28 20 4 7 -4 55 15 -2 12 27 20 5 8 -4 54 16 -2 11 27 21 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 26 22 6 11 -6 49 24 -3 10 26 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 (semi-pel) -4 36 36 -4 7 25 25 7 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 26 10 22 -2 20 52 -6 6 22 26 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 21 27 11 25 -2 15 55 -4 5 20 27 12 26 -2 14 56 -4 4 20 28 12 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 28 14 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 18 29 14 31 0 2 63 -1 3 17 29 15 CLfrQcn / Lznz / q / Yi An intrapredicted sample is calculated by convolution with coefficients selected from Table 2 according to the subpixel offset and filter type as follows: £<4 VJ= 32} »6¿=O In this equation, it indicates a right bit shift operation. Table 3 presents another set of interpolation filters that have a precision of 6 bits. Table 3: A set of interpolation filters with 6-bit precision Subpixel shift DCT-IF filter Gaussian filter chroma Co C1 C2 c3 Co C1 C2 c3 0(integer) 0 64 0 0 16 32 16 0 1 -1 63 2 0 15 29 17 3 2 -2 62 4 0 15 29 17 3 3 -2 60 7 -1 14 29 18 3 4 -2 58 10 -2 13 29 18 4 5 -3 57 12 -2 13 28 19 4 6 -4 56 14 -2 13 28 19 4 7 -4 55 15 -2 12 28 20 4 8 -4 54 16 -2 11 28 20 5 9 -5 53 18 -2 11 27 21 5 10 -6 52 20 -2 10 27 22 5 11 -6 49 24 -3 9 27 22 6 12 -6 46 28 -4 9 26 23 6 13 -5 44 29 -4 9 26 23 6 14 -4 42 30 -4 8 25 24 7 15 -4 39 33 -4 8 25 24 7 16 (semi-fur) -4 36 36 -4 8 24 24 8 17 -4 33 39 -4 7 24 25 8 18 -4 30 42 -4 7 24 25 8 19 -4 29 44 -5 6 23 26 9 20 -4 28 46 -6 6 23 26 9 21 -3 24 49 -6 6 22 27 9 22 -2 20 52 -6 5 22 27 10 23 -2 18 53 -5 5 21 27 11 24 -2 16 54 -4 5 20 28 11 25 -2 15 55 -4 4 20 28 12 26 -2 14 56 -4 4 19 28 13 27 -2 12 57 -3 4 19 28 13 28 -2 10 58 -2 4 18 29 13 29 -1 7 60 -2 3 18 29 14 30 0 4 62 -2 3 17 29 15 31 0 2 63 -1 3 17 29 15 Figure 11 illustrates a schematic diagram of a plurality of intraprediction modes used in the HEVC UIP scheme. For luminance blocks, the intraprediction modes can comprise up to 36 modes, which may include three non-directional modes and 33 directional modes. The non-directional modes may comprise a planar prediction mode, a mean (DC) prediction mode, and a luma (LM) prediction mode. The planar prediction mode can make predictions by assuming a block amplitude surface with a horizontal and vertical slope derived from the block boundary. The DC prediction mode can make predictions by assuming a flat block surface with a value that matches the mean value of the block boundary. The LM prediction mode can make predictions by assuming that a chroma value for the block matches the luma value for the block.Directional modes can make predictions based on adjacent blocks as shown in Figure 11. H.264 / AVC and HEVC specify that a low-pass filter can be applied to reference samples before they are used in an intraprediction process. The decision to use a reference sample filter is determined by the intraprediction mode and block size. These mechanisms can be referred to as mode-dependent intra-smoothing (MDI). There are also several methods related to MDI. For example, the adaptive reference sample smoothing (ARSS) method can signal explicitly (e.g., a flag is included in a bitstream) or implicitly (e.g., data hiding is used to avoid including a flag in a bitstream to reduce signaling overhead) whether the prediction samples are filtered. In this case, the encoder can make the smoothing decision based on the distortion rate cost (RD) test for all possible intraprediction modes. Figure 10A shows an example of 67 intraprediction modes, e.g., as proposed for WC, the plurality of 67 intraprediction modes comprising: planar mode (index 0), mode of (index 1) and angular modes with indices 2 to 66, wherein the lower left angular mode in Figure 10A refers to index 2 and the numbering of the indices increases until index 66 is the upper right most angular mode in Figure 10A. As shown in Figure 10B and Figure 10C, starting with the second version, WC has some modes that correspond to distorted intraprediction directions, including wide-angle directions (shown as dashed lines). For any of these modes, to predict samples within a block, interpolation of a set of neighboring reference samples must be performed if a corresponding position within a block side is fractional. HEVC and WC use linear interpolation between two adjacent reference samples. JEM uses more sophisticated 4-step interpolation filters. The filter coefficients are selected to be either Gaussian or cubic depending on the width or height value.The decision of whether to use width or height is aligned with the decision of selecting the primary reference side: when the intraprediction mode is greater than or equal to the diagonal mode, the upper side of the reference samples is selected as the primary reference side, and the width value determines the interpolation filter in use. Otherwise, the primary reference side is selected from the left side of the block, and the height controls the filter selection process. Specifically, if the selected side length is less than or equal to 8 samples, 4-lead cubic interpolation is applied. Otherwise, the interpolation filter is a 4-lead Gaussian filter. In WC, a partitioning mechanism based on a quaternary tree and a binary tree, known as QTBT, is used. As shown in Figure 12, QTBT partitioning can provide not only square blocks but also rectangular ones. Of course, some signaling overhead and increased computational complexity on the encoder side are the price of QTBT partitioning compared to the conventional quaternary tree-based partitioning used in the HEVC / H.265 standard. However, QTBT-based partitioning has better segmentation properties and therefore demonstrates significantly higher coding efficiency than conventional quaternary tree. The leaves of the trees used for partitioning are processed in a Z-scan order, such that the current block corresponding to the current leaf will have left and back neighboring blocks, which are already reconstructed during the encoding or decoding processes, unless the current block is located at the segment boundary. This is also illustrated in Figure 12. The left-to-right scan of the tree leaves shown on the right side of Figure 12 corresponds to the spatial Z-scan order of the blocks shown on the left side of this figure. The same scan applies to quaternary or multitype trees. For directional intraprediction, reference samples are obtained from previously reconstructed neighboring block samples. Depending on the block size and the intraprediction mode, a filter can be applied to the reference samples before they are used to obtain predicted sample values. In the case of boundary smoothing and PDPC, several first columns or several first rows of the predicted block are combined with the additional prediction signal generated from neighboring samples. The specific implementation of a simplified PDPC can be carried out in different ways, depending on the intraprediction mode: For the planar intraprediction modes, DC, HOR / VER (horizontal / vertical) (denoted as 0, 1, 18, 50 respectively in Figure 10B and Figure 10C), the following steps are performed: Pfey) The predicted sample located at (x, y) is calculated as follows: y) = Clipí.Cmpf X + wT X—X + (64 — wt — wf + m.'TL)XP(^y) 132)) » 6) (1) where Rx,-i, Ri,y represent the reference samples located at the top and to the left of the current sample (x, y), and Ri,-i represents the sample of FU y) reference located in the upper left corner of the current block. denotes the predicted sample value when the planar intraprediction mode, DC or HOR / VER, is applied, as indicated above. The clipICmp function is described as follows: If cldx, a parameter that specifies the color component of the current block, is equal to 0, clipICmp is set equal to Cliplγ. Otherwise, clipICmp fits the same as CliplC Clipl γ( x ) = Clip3( 0, (1 « BitDepthY) - 1, x ) Clipl c( x ) = Clip3( 0, (1 « BitDepthc ) - 1, x ) fx ; z < x ; z > y tz ; otherwise Clip3( x, y, z ) = BitDepthYes is the bit depth of the luma samples. BitDepthc is the bit depth of the chroma samples. BitDepthY and BitDepthc can be signaled in the sequence parameter set (SPS) of a bitstream; Alternative definitions of CliplY(x) and CliplC(x) are possible. In particular, as described by F. Galpin, P. Bordes, and F. Le Léannec in contribution CZiplCmpfxl = ClísOftnaax,JVET-C0040 “Adaptive Clipping in JEM2.0”, , mnv where ~ is the lower clipping limit used in the current segment for component ID , is the upper clipping limit used in the current segment for component ID , C is a color component (e.g., Y for luma, Cb and Cr for chroma), and “x » y” is an arithmetic right shift of a two's complement integer representation of x by y binary digits. This function is defined only for non-negative integer values of y. The bits shifted to the most significant bits (MSB) as a result of the right shift have a value equal to the MSB of x before the shift operation. DC mode weights are calculated as follows: wT =32 » (.(y « 1) » = 32 » « 1) » wTt = (wL » 4) 4- (wT » 4),. I / UOO4 IO s&.íft = 0Qg,(itnd£&) 4- log,(fteíá?tó> 4- 2) » 2. Where For planar mode, wTL = 0, while for horizontal mode wTL = wT and for vertical mode wTL = wL. As an example, Figure 13 shows DC mode PDPC weights (wL, wT, wTL) for positions (0, 0) and (1, 0) within a 4x4 block. From this figure, it follows that a clipping operation as defined, for example, in equation (1) is mandatory. However, the latest PDPC implementation has a potential flaw, illustrated in the following example where the result of the clipping procedure could be outside the range determined by BitDepth or BitDepthc: = W0,F(x,y) = © Since, from equation (1), it follows that for the position (0,0) of a predicted block of 4x4 y) = ClíplCmpf (wí X 4- wT X — wFL XL4 (64 — — wT 4 wTL) XP(xy) 4- 32) ) » 6) = diplCmp( wTL X 4- 32 ) » 6) = CliplCmp( (-4X 108 4 32) » 6) ívTL = 1 with , as shown in figure 13. As seen from the previous example, a negative value —4 x 10^(3^4) = —368 “ ” is being right-shifted using arithmetic bit shifting. Depending on the implementation, right-shifting a negative value can lead to a different output (for example, in the case of the C / C++ programming language) and therefore cannot be Clip 1 Cmp (1 guarantee that the output will always be 0, since the result of shifting a negative value to the right may have a positive sign and a non-zero magnitude in specific implementations. Although the problem related to clipping in PDPC is described for planar intraprediction, a similar situation may arise for PDPC using DC intraprediction. For diagonal modes (denoted as 2 and 66 in Figure 10B and Figure 10C) and adjacent modes (directional modes not less than 58 or not greater than 10 in Figure 10B or Figure 10C), processing is performed as described below using the same formula (1): Figure 14A illustrates the definition of the reference samples Rx,^, Rvyy, and R-1,-1 for the extension of PDPC to the upper right diagonal mode. The prediction sample pred(x', y') is located at (x', y') within the prediction block. The x-coordinate of the reference sample Rx,^ is given by: x = x' + y' + 1, and the y-coordinate of the reference sample Rx,^ is given similarly by: y = x' + y' + 1. The PDPC weights for the upper right diagonal mode are: wT = 16 » ((y'«1 ) » shift), wL = 16 » ((x'«1 ) » shift), wTL = 0. Similarly, Figure 14B illustrates the definition of the reference samples Rx.i, Rt,yy, and R-1,-1 for the PDPC extension to the lower-left diagonal mode. The x-coordinate of the reference sample Rxi is given by: x = x' + y' + 1, and the y-coordinate of the reference sample Rt,y is: y = x' + y' + 1. The PDPC weights for the lower-left diagonal mode are: wT = 16 » ((y'«1 )» shift), wL = 16 » ( ( x'«1 ) » shift ), wTL = 0. The case of an adjacent upper-right diagonal mode is illustrated in Figure 14C. The PDPC weights for an adjacent upper-right diagonal mode are: wT = 32 » ((y'«1 ) » shift), wL = 0, wTL = 0. Similarly, the case of an adjacent lower-left diagonal mode is illustrated in Figure 14D. The PDPC weights for an adjacent lower left diagonal mode are: wL = 32 » ( ( x'«1 ) » shift ), wT =0, wTL = 0.The reference sample coordinates for the last two cases are calculated using the tables already used for angular mode intraprediction. Linear interpolation of the reference samples is used if fractional reference sample coordinates are calculated. The simplified PDPC can be implemented as specified in the WC specification. Additionally, the following notation is used: (' .,) invAngle = Round , is the value of the inverse angle, Round( x ) = Sign( x ) * Floor( Abs( x ) + 0.5 ), Floor(x) is the largest integer less than or equal to ax, Log2(x) is the base-2 logarithm of x. intraPredAngle is the angle parameter specified in Table 4, A = C ? B : D is a ternary assignment operation, where A is set equal to B if condition C is true. Otherwise, if condition C is false, A is set equal to D. INTRA_PLANAR is a planar intraprediction mode (), INTRA_DC is a DC intraprediction mode, INTRA_ANGULARXX is one of the directional intraprediction modes, where XX denotes its number and corresponding direction shown in Figure 10B or 10C. If a term is not explained herein, it is understood that its definition can be found in the WC specification or the HEVC / H.265 standard specification. Given the above denotations, the steps of simplified PDPC can be defined as follows: The inputs to this process are: the intraprediction mode predModelntra, the variable nTbW specifying the width of the transform block, a variable nTbH specifying the height of the transform block, a variable refW specifying the width of reference samples, a variable refH specifying the height of reference samples, the predicted samples predSamples[ x ][ y ], with x = O..nTbW - 1, y = O..nTbH 1, the neighboring samples p[ x ][ y ], with x = -1, y = -1..refH - 1 and yx = O..refW - 1, y = -1, a variable cldx specifying the color component of the current block. The outputs of this process are the modified predicted samples predSamples[ x ][ y ] with x = O..nTbW - 1, y = O..nTbH - 1. Depending on the value of cldx, the clipICmp function is exposed as follows: If cldx equals 0, clipICmp is set equal to Cliply. Otherwise, clipICmp is set the same as Cliplc. The nScale variable is set to (( Log2( nTbW) + Log2( nTbH ) - 2 ) » 2 ). The sample reference arrangements mainRef[ x ] and sideRef[ y ], with x = O..refW - 1 ey = O..refH - 1, are derived as follows: mainRef[ x ] = p[ x ][ -1 ] sideRef[ y ] = p[ -1 ][ y ] The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] and wTL[ x ][ y ] with x = O..nTbW - 1, y =0..nTbH - 1 are derived as follows: If predModelntra is equal to alNTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18, or INTRA_ANGULAR50, the following applies: refL[ x ][ y ] = p[ -1 ][ y ] refT[ x ][ y ] = p[ x ][-1 ] wT[ y ] = 32 » (( y « 1 ) » nScale ) wL[ x ] = 32 » (( x « 1 )» nScale ) wTL[ x ][ y ] = ( predModelntra = = INTRA_DC ) ? ( ( wL[ x ] » 4 ) + ( wT[ y ]» I / UOO4 IO 4)):0 Otherwise, if predModelntra is equal to INTRA_ANGULAR2 or INTRA_ANGULAR66, the following applies: refL[ x ][ y ] = p[ -1 ][ x + y + 1 ] refT[ x ][ y ] = p[ x + y + 1 ][-1 ] wT[ y ] = (32 » 1 )»((y « 1 ) » nScale ) wL[ x ] = ( 32 » 1 ) » (( x « 1 )» nScale ) wTL[ x ][ y ] = 0 Otherwise, if predModelntra is less than or equal to INTRA_ANGULAR10, the following steps apply in order: 1. The variables dXPos[ y ], dXFrac[ y ], dXlnt[ y ] and dX[ x ][ y ] are derived as follows using invAngle: dXPos[ y ] = (( y + 1 ) * invAngle + 2 ) » 2 dXFrac[ y ] =dXPos[ y ] & 63 dXlnt[y]= dXPos[y]»6 dX[x ][ y ] = x + dXlnt[ y ] 2. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] and wTL[ x ][ y ] are derived as follows: refL[ x ][ y ] = 0 refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? ( ( 64 - dXFrac[ y ] ) * mainRef[ dX[ x ][ y ] ] + dXFrac[ y ] * mainRef[ dX[ x ][ y ] + 1 ] + 32 ) » 6 : 0 (Eq. 1) wT[ y ] = ( dX[ x ][ y ] < refW - 1 ) ? 32 » (( y « 1 ) » nScale ): 0 wL[ x ] = 0 wTL[ x ][ y ] = 0 Otherwise, if predModelntra is greater than or equal to INTRA_ANGULAR58 (see figure 10B or 10C), the following steps apply in order: 1. The variables dYPos[ x ], dYFrac[ x ], dYlnt[ x ] and dY[ x ][ y ] are derived as follows using invAngle as specified below depending on intraPredMode: dYPos[ x ] = (( x + 1 ) * invAngle + 2 ) » 2 dYFrac[ x ] =dYPos[ x ] & 63 dYlnt[ x ] = dYPos[x]»6 dY[x ][ y ] = y + dYlnt[ x ] 2. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] and wTL[ x ][ y ] are derived as follows: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? (( 64 - dYFrac[ x ]) * sideRef[ dY[ x ][ y ] ] + dYFrac[ x ] * sideRef[ dY[ x ][ y ] + 1 ] + 32 ) » 6 : 0 (Eq. 2) refT[ x ][ y ] = 0 wT[ y ] = 0 wL[ x ] = ( dY[ x ][ y ] < refH - 1 ) ? 32 » (( x « 1 ) » nScale ): 0 wTL[ x ][ y ] = 0 Otherwise, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] and wTL[ x ][ y ] are all set to 0. The modified predicted sample values predSamples[ x ][ y ], with x = O..nTbW - 1, y = O..nTbH - 1, are derived as follows: predSamples[ x ][ y ] = clipl Cmp( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] P[ I ][ I ] * wTL[ x ][ y ] + ( 64 - wL[ x ] - wT[ y ] + wTL[ x ][ y ]) * predSamples[ x ][ y ] + 32 ) » 6 ) In the assignment of Eq. 1 above, the simplified PDPC can use nearest neighbor interpolation instead of linear interpolation: refT[ x ][ y ] = (dX[ x ][ y ] < refW - 1 ) ? mainRef[ dX[ x ][ y ] ]: 0 Similarly, in the assignment of Eq. 2 above, the simplified PDPC can also use nearest neighbor interpolation: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? sideRef[ dY[ x ][ y ] ]: 0 Therefore, on both the encoder and decoder sides, the method uses the following as input data: directional intraprediction mode (additionally denoted as predModelntra, shown in Figure 10B and Figure 10C) block size parameter nTbS, which is set equal to (log2(nTbW) + Log2(nTbH) ) » 1, where nTbW and nTbH denote predicted block width and height, respectively, and “»” denotes a right shift operation. The modification of the WC specification that allows the use of the method may involve replacing “neighboring samples p[x][y]” with “reference samples p[x][y]” in the section describing the simplified PDPC. The intraPredAngle parameter denotes the subpixel offset between two adjacent rows of predicted samples in fixed-point representation, with a fractional part length of 5 bits. This parameter (intraPredAngle) can be derived from the intraprediction mode (predModelntra). An example derivation of intraPredAngle from predModelntra can be defined using a lookup table (LUT), as shown in Table 4. Table 4. An example LUT to derive intraPredAngle from predModelntra. preModel tra 14 13 12 11 intraPredAn gle 51 2 34 1 25 6 17 1 preModel tra -1 0 -9 -8 -7 6 5 4 3 2 1 2 3 4 5 6 7 8 intraPredAn gle 12 8 10 2 86 73 6 4 5 7 5 1 4 5 3 9 3 5 3 2 2 9 2 6 23 20 18 16 preModel tra 9 10 11 12 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 22 23 24 25 intraPredAn gle 14 12 10 8 6 4 3 2 1 0 -1 -2 -3 -4 -6 -8 10 preModeln tra 26 27 28 29 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 39 40 41 42 intraPredAn gle 12 14 16 18 2 0 2 3 2 6 2 9 3 2 2 9 2 6 2 3 2 0 18 16 14 12 preModeln tra 43 44 45 46 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 56 57 58 59 intraPredAn gle 10 -8 -6 -4 -3 -2 -1 0 1 2 3 4 6 8 10 12 14 preModeln apr 60 61 62 63 6 4 6 5 6 6 6 7 6 8 6 9 7 0 7 1 7 2 73 74 75 76 intraPredAngle 16 18 20 23 2 6 2 9 3 2 3 5 3 9 4 5 5 1 5 7 6 4 73 86 10 2 12 8 predModeln apr 77 78 79 80 intraPredAngle 17 1 25 6 34 1 51 2 CLfrQcn / Lznz / q / Yi Based on the current HEVC and WC draft specification, a planar intraprediction method is used. Part 3 of WC Draft is incorporated below for reference. 8. 2.4.2.5. Specification of intraprediction mode INTRA_PLANAR The inputs to this process are: an nTbW variable that specifies the width of the transform block, an nTbH variable that specifies the height of the transform block, the neighboring samples p[ x ][ y ], with x = -1, y = -1 ..nTbH yx = O..nTbW, y = -1. The outputs of this process are the predicted samples predSamples[ x ][ y ] with x = O..nTbW- 1, y = O..nTbH - 1. The prediction sample values predSamples[ x ][ y ], with x = O..nTbW - 1, ey = O..nTbH - 1, are derived as follows: predV[ x ][ y ] = (( nTbH - 1 - y ) * p[ x ][ -1 ] + ( y + 1 ) * p[ -1 ][ nTbH ]) « Log2 ( nTbW) (8-82) predH[ x ][ y ] = (( nTbW - 1 - x ) * p[ -1 ][ y ] + ( x + 1 ) * p[ nTbW ][ -1 ]) « Log2 ( nTbH ) (8-83) predSamples[ x ][ y ] = ( predV[ x ][ y ] + predH[ x ][ y ] + nTbW * nTbH ) » (Log2 ( nTbW) + Log2 ( nTbH ) + 1 ) (8-84) The present description addresses the problem described above related to a negative value shift operation when applying DC intraprediction using PDPC, which can result in an erroneous predicted sample value. The solution provided involves an alternative PDPC method that does not have the failure of equation (1). Specifically, the method comprises the following steps, as illustrated in the flowchart in Figure 15. The illustrated method for intraprediction of a block of an image is performed for each sample of a plurality of samples of the block. In step S100, a predicted sample value from one or more reference sample values is obtained by intraprediction using a DC intraprediction mode. Furthermore, in step S110, the predicted sample value is multiplied by a sample weighting factor, resulting in a weighted predicted sample value. In particular, the sample weighting factor is calculated as ((2 « p) -wL- wT), where p is the precision of the sample weighting factor, wL is a horizontal weighting factor, and wT is a vertical weighting factor. In step S120, an additional value is added to the weighted predicted sample value, resulting in a non-normalized predicted sample value. In step S130, the unnormalized predicted sample value is normalized by an arithmetic right shift of an integer representation of the unnormalized predicted sample value. Therefore, by the illustrated method, normalized predicted sample values can be determined by applying DC intraprediction within the PDPC framework while preventing the incidence of erroneous prediction values by performing a determination method that does not necessarily require a trimming procedure. It is noted that additional processing can be applied before and after the illustrated method steps. For example, residual values can be added to normalized predicted sample values, resulting in reconstructed sample values. In one mode, the additional value can include a rounding offset. An arithmetic right shift operation, corresponding to division by a power of two, usually results in a rounded value. To ensure a correctly rounded result, a rounding offset can be added before performing the right shift operation. The rounding offset value corresponds to half an integer value after the right shift operation. Therefore, adding the rounding offset guarantees a correctly rounded result. For example, in the case of a 6-bit right shift, corresponding to division by 2⁶ = 64, the rounding offset would be 32. In another embodiment, a method is provided for intraprediction of a first block and a second block of an image. For each sample from a plurality of samples in the first block, as well as for each sample from a plurality of samples in the second block, the steps illustrated in Figure 15 and described above are performed, with the difference that the intraprediction mode used to obtain the predicted sample values for the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample values for the second block is a planar intraprediction mode. Specifically, for each sample in the first block, at step S100, a predicted sample value is obtained from one or more reference sample values by intraprediction using a DC intraprediction mode. Furthermore, for each sample in the second block, at step S100, a predicted sample value is obtained from one or more reference sample values by intraprediction using a PLANAR intraprediction mode. In one approach, the described methods can be incorporated into a single method for encoding or decoding an image. Specifically, predicted sample values can be obtained by performing the steps of any of the preceding methods. Furthermore, by adding residual values to the normalized predicted sample values obtained, reconstructed sample values can be generated. The methods described here can offer a technical benefit by simplifying hardware design and reducing the number of conditional checks required. The steps taken to obtain the predicted sample values for the Planar and DC intraprediction modes differ from those for directional intraprediction. A sample hardware implementation of intraprediction would contain at least two modules: directional intraprediction module, non-directional intraprediction module. For this reason, it is desirable to harmonize, first and foremost, the PDPC filtering within each of these groups. Given that the complexity of PDPC for DC mode exceeds the complexity of PDPC for planar mode, the present description simplifies the processing of PDPC for DC mode. The two modules would implement their own PDPC filtering processing according to the embodiments of the invention. Prior art solutions required either additional verification of whether the intraprediction mode was DC or planar in the PDPC filtering within the non-directional intraprediction module, or the implementation of separate PDPC filtering modules for DC and planar intraprediction modes, resulting in increased hardware complexity and power consumption. Therefore, harmonizing PDPC for both DC and planar modes allows for sharing the PDPC processing (in the case of hardware, a corresponding module) for both modes. Another technical benefit of the modes described here becomes apparent when used in the intraprediction design of simplified encoders. The DC intraprediction mode is typically the simplest computationally; therefore, in the worst case, the complexity of PDPC filtering can exceed the complexity of the DC mode itself. By reducing the number of conditional checks and / or the number of operations for the DC mode, as described here, the overall intraprediction complexity can be reduced, especially in simplified coding scenarios implemented in so-called "lazy" encoders, which operate with a restricted set of intraprediction modes. The proposed method can be implemented by defining within the non-directional intraprediction method that the PDPC processing is the same for both intraprediction modes processed by this module. In other words, one version of the present description can be realized by introducing changes to a non-directional intraprediction module such that the PDPC processing is the same for both DC and planar intraprediction modes. The weighting factors can each be a power of two, which allows for multiplication using a shift operator. This definition is hardware-compatible and can lead to improved processing efficiency. Therefore, harmonizing PDPC processing when using DC intraprediction mode with PDPC processing when using planar intraprediction mode can simplify intraprediction using PDPC, for example. The methods described above can be implemented by a predictor device, an encoder device, or a decoder device, as illustrated in Figure 16A, for example. The predictor, encoder, or decoder device 1000 comprises a obtainer 1010, a multiplier 1020, an adder 1030, and a normalizer 1040. The obtainer 1010 is configured to obtain a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode. The multiplier 1020 is configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value. In particular, the weighting factor is ((2 « p) — wL — wT) p , where ' is a parameter (a precision, for example) of the sample weighting factor, is a horizontal weighting factor, and is a vertical weighting factor.Adder 1030 is configured to add an additional value to the weighted predicted sample value, resulting in an unnormalized predicted sample value, and normalizer 1040 is configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value. Similarly, in one embodiment, the obtainer 1010 of the predictor, encoder, or decoder device 1000 can be configured to obtain, for each sample from a plurality of samples in a first block and for each sample from a plurality of samples in a second block, a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode. The intraprediction mode used to obtain the predicted sample values can be a DC intraprediction mode for the first block and a planar intraprediction mode for the second block. The multiplier 1020 is configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value.In particular, the (( 2 « p) — wrl — wT) p weighting factor is , where is a parameter (a precision, for example) of the sample weighting factor, is a horizontal weighting factor, and is a vertical weighting factor. Adder 1030 is configured to add an additional value to the weighted predicted sample value, resulting in an unnormalized predicted sample value, and normalizer 1040 is configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value. The predictor, encoder, or decoder device 1000 can, in one mode, further add a residual value to the normalized predicted sample values, resulting in reconstructed sample values. In one embodiment of the described method, the horizontal weighting factor wL can be a factor applied to a left reference sample value, resulting in a weighted left reference sample value. Additionally, the vertical weighting factor wT can be a factor applied to an upper reference sample value, resulting in a weighted upper reference sample value. Specifically, for example, the weighted left and top reference sample values can be obtained by multiplying the left and top reference sample values, respectively, by the corresponding horizontal and vertical weighting factors wL and wT. Additionally, in one modality, the additional value can be obtained by including a sum of the weighted upper reference sample value and the weighted left reference sample values. The functional components of the 1000 encoder or decoder device can be implemented by 1040 processing circuitry configured to perform any of the above methods, as illustrated in Figure 16B. In one embodiment, the processing circuitry may comprise one or more 1050 processors and a non-transient, computer-readable 1060 storage medium, which is connected to the one or more 1050 processors. The storage medium includes program code, which, when executed by a processor, causes the processor to perform any of the above methods. In a specific modality, the method may include the following step: The predicted normalized sample located at (x, y) can be calculated as follows: P(y..y) = (w¿ XyA wF P(x., y) (upper) and to the left of the current sample (x, y), respectively. denotes the predicted sample value, which is predicted using an intraprediction mode of DC. In the formula above, the weighted predicted sample is represented by (64 — mzL — wT) X y) and the additional value is represented by X 4- X 4- 32 . Normalization is represented by the bit-level right shift operation of » 6 . However, the present description is not limited to the specific definition of the additional value, the 6-bit shift operation. It should be noted that the clipICmp function is not used in a mode that uses equation (2) because the predicted sample values are always within the valid range, i.e., between minimum and maximum pixel values. However, this description does not simply omit clipping, and clipping can still be applied. For example, a normalized predicted sample value can be calculated from the predicted sample value, which includes calculation. (wL X / ?_ 4^ X 4- (64 - sW. - X y) 4- 32) » 6 In this form of implementation, normalization is performed by the right shift operator »6. The present description is not limited to the specific calculation given above, and an equivalent mathematical calculation can be performed. Therefore, the issuance of negative values that lead to the incidence of erroneous non-zero positive predicted sample values by the use of this clipping operation can be prevented by applying the above-mentioned calculation of the predicted sample value. In the formulas above, “x » y” is an arithmetic right shift of a two's complement integer representation of x by y binary digits. This function is defined only for non-negative integer values of y. The bits shifted to the most significant bits (MSB) as a result of the right shift have a value equal to the MSB of x before the shift operation. DC mode weights can be calculated as follows: wT = 32 » {(y « 1) » = 32 » ((x <K 1) » s-híft = (iog,(anc¡&o) 4- logi(aiturn) 4- 2) » 2. where As an example, Figure 17 shows DC-mode PDPC weights (wL, wT) for positions (0, 0) and (1, 0) within a 4x4 block. In this example, the wL and wT weight values are 32 for the predicted sample in the ΙνΙΛ / E / ZνζΊ / υθθ4Ί O coordinates (0,0). Furthermore, in the example, the wL weight value is 8 and the wT weight value is 32 for the predicted sample at coordinates (1,0). It can be observed that, compared to the predicted samples at coordinates (0,0) and (1,0) illustrated in Figure 13, the upper left reference sample is not used and no weight is specified for this sample (upper left reference sample). However, the present description is not limited to the DC mode PDPC weighting calculation procedure described, and these DC mode PDPC weights can be determined in a different way or by applying a different formula. The provided method can be represented as a part of the VVC specification: Position-dependent intraprediction sample filtering process The inputs to this process are: the intraprediction mode predModelntra, an nTbW variable specifying the width of the transform block, an nTbH variable specifying the height of the transform block, a refW variable specifying the width of reference samples, a refH variable specifying the height of reference samples, the predicted samples predSamples[ x ][ y ], with x = 0..nTbW - 1, y = 0..nTbH 1, the neighboring samples p[ x ][ y ], with x = -1, y = -1..refH - 1 and yx = 0..refW - 1, y = -1, a cldx variable specifying the color component of the current block. The outputs of this process are the modified predicted samples predSamples[ x ][ y ] with x = 0..nTbW - 1, y = 0..nTbH - 1. Depending on the value of cldx, the clipICmp function is exposed as follows: If cldx equals 0, clipICmp is set equal to Cliply. Otherwise, clipICmp is set the same as Cliplc. The nScale variable is set to (( Log2( nTbW ) + Log2( nTbH ) — 2 ) » 2 ). The sample reference arrangements mainRef[ x ] and sideRef[ y ], with x = 0..refW - 1 ey = 0..refH - 1 are derived as follows: mainRef[ x ] = p[ x ][ -1 ] sideRef[ y ] = p[ -1 ][ y ] The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] with x = 0..nTbW - 1, y =0..nTbH -1 are derived as follows: If predModelntra is equal to alNTRA_PLANAR, INTRA_DC, INTRA_ANGULAR18, or I / UOO4 IO INTRA_ANGULAR50, the following applies: refL[ x ][ y ] = p[ -1 ][ y ] refT[ x ][ y ] = p[ x ][-1 ] wT[ y ] = 32 » (( y « 1 )» nScale ) wL[ x ] = 32 » (( x « 1 )» nScale ) Otherwise, if predModelntra is equal to INTRA_ANGULAR2 or INTRA_ANGULAR66, the following applies: refL[ x ][ y ] = p[ -1 ][ x + y + 1 ] refT[ x ][ y ] = p[ x + y + 1 ][-1 ] wT[ y ] = (32 » 1 )»((y «1 )» nScale ) wL[ x ] = ( 32 » 1 ) » (( x « 1 )» nScale ) Otherwise, if predModelntra is less than or equal to INTRA_ANGULAR10, the following steps apply in order: 1. The variables dXPos[ y ], dXFrac[ y ], dXlnt[ y ] and dX[ x ][ y ] are derived as follows using invAngle as specified in clause 8.2.4.2.7 depending on intraPredMode: dXPos[ y ] = ((y + 1 ) * invAngle + 2 )» 2 dXFrac[ y ] = dXPos[ y ] & 63 dXlnt[y]= dXPos[y]»6 dX[x][y] = x + dXlnt[y] 2. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] are derived as follows: refL[ x ][ y ] = 0 refT[ x ][ y ] = ( dX[ x ][ y ] < refW - 1 ) ? ( ( 64 - dXFrac[ y ] ) * mainRef[ dX[ x ][ y ] ] + dXFrac[ y ] * mainRef[ dX[ x ][ y ] + 1 ] + 32 ) » 6 : 0 wT[ y ] = ( dX[ x ][ y ] < refW - 1 ) ? 32 » (( y « 1 ) » nScale ): 0 wL[ x ] = 0 Otherwise, if predModelntra is greater than or equal to INTRA_ANGULAR58, the following steps apply in order: 1. The variables dYPosf x ], dYFrac[ x ], dYlnt[ x ] and dY[ x ][ y ] are derived as follows using invAngle as specified in clause 8.2.4.2.7 depending on intraPredMode: dYPos[ x ] = (( x + 1 ) * invAngle + 2 ) » 2 dYFrac[ x ] =dYPos[ x ] & 63 dYlnt[x]= dYPos[x]»6 dY[x ][ y ] = y + dYlnt[ x ] 2. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] are derived as follows: refL[ x ][ y ] = ( dY[ x ][ y ] < refH - 1 ) ? (( 64 - dYFrac[ x ]) * sideRef[ dY[ x ][ y ] ] CLfrQcn / Lznz / q / Yi dYFrac[ x ] * sideRef[ dY[ x ][ y ] + 1 ] + 32 ) » 6 : 0 refT[ x ][ y ] = 0 wT[ y ] = 0 wL[ x ] = ( dY[ x ][ y ] < refH - 1 ) ? 32 » (( x « 1 ) » nScale ): 0 Otherwise, refL[ x ][ y ], refT[ x ][ y ], wT[ y ], wL[ x ] are all set equal to 0. The modified predicted sample values predSamples[ x ][ y ], with x = O..nTbW - 1, y = O..nTbH - 1 are derived as follows: predSamples[ x ][ y ] = ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] + ( 64 - wL[ x ] - wT[ y ]) * predSamples[ x ][ y ] + 32 ) » 6 ) Here “(64 - wL[ x ] - wT[ y ])” represents the sample weighting factor. Figure 18 illustrates the method described above. The dashed line shows the trimming step, which is performed in the latest generation PDPC, but is not necessarily performed in the proposed method, since it is not required because the wTL coefficient is not used. The input to the illustrated method consists of the reference sample values, denoted in the figure as ref[]. Using this reference sample, an intraprediction is performed for a current sample. Specifically, the intraprediction of the current sample value can be performed using a DC intraprediction mode. Furthermore, additional values are calculated using the left and upper reference sample values refL[x][y] and refT[x],[y], respectively, along with the corresponding left weights wL[x] and wT[y]. The intrapredicted sample value is multiplied by a weighting factor (64 - wL[x] - wT[y]). The additional values are then added to the weighted predicted sample value.Next, since the weighted predicted sample value, to which the additional values have been added, does not necessarily represent a normalized value, a normalization procedure is performed by applying a bit-level right shift operation indicated by “»” in the figure. The resulting normalized predicted sample value does not require an additional clipping operation (in the figure, the superfluous clipping operation is indicated by dashed lines). Although the weighting factor in the illustrated example is (64-wL[x]-wT[xj], this description is not limited to it. In particular, the sample weighting factor can exhibit a different precision. In other words, the sample weighting factor can be expressed as ((2"p) -wL-wT), where p is its precision. Furthermore, although not required, a trimming process can still be performed. In Figure 14, the reference samples are used by the intraprediction process to produce predicted samples. Each predicted sample is further weighted using a sample weighting factor. The sample weighting factor might be, for example, equal to (64 - wL[x] - wT[y]). The same reference samples are used to calculate additional values for each of the predicted samples depending on x and y, where x and y define the position of a predicted sample within a predicted block. These additional values are added to the corresponding weighted predicted samples. Each sample resulting from this operation is then normalized by right-shifting it according to the predetermined precision of the sample weighting factor. For example, if the sample weighting factor is defined as (64 - wL[x] - wT[y]), the precision is 6 bits.Therefore, in this step, a right shift of 6 is performed to ensure that the possible minimum and maximum values of the output values are the same as the possible minimum and maximum values of the reference samples. However, this description is not limited to 6-bit precision, and any other precision can be applied. One of the beneficial effects of the proposed solution is that the PLANAR intraprediction mechanism can be reused to calculate additional values. Specifically, PLANAR intraprediction can use the following equation to derive horizontal and vertical predicted sample values: predV[ x ][ y ] = (( nTbH - 1 - y ) * p[ x ][ -1 ] + + ( y + 1 ) * p[ -1 ][ nTbH ]) « Log2 ( nTbW) (8-82) predH[x ][y ] = (( nTbW- 1 - x ) * p[ -1 ][ y ] + + ( x + 1 ) * p[ nTbW ][ -1 ]) « Log2 ( nTbH ) (8-83) From the two preceding equations (8-82) and (8-83), it can be seen that predV[x][y] uses the reference sample p[x][-1] located in the same column as predV[x][y], and predH[x][y] uses the reference sample p[-1][y] located in the same row as predH[x][y]. Furthermore, the left-shift operations are performed as the final step and can therefore be omitted, since they do not affect the intermediate calculations being reused. In formulas (8-82) and (8-83) above, predV denotes the vertical predicted sample value determined by applying planar intraprediction, and predH denotes the horizontal predicted sample value determined by applying planar intraprediction. Furthermore, nTbW and nTbH denote the width and height of the current block, respectively, when PLANAR intraprediction is performed. However, the variables nTbW, nTbH, x, and y are inputs to the PLANAR intraprediction method and can therefore be adjusted accordingly. Because of this, it is possible to replace (nTbW - 1 - x) with Dxy and (nTbH - 1 - y) with input variables Dy. The lower left and upper right reference samples can be set to 0, as these are unused parameters. Considering the observations described above, equations (8-82) and (8-83) above can be rewritten according to their default inputs: Vy= Dy*p[x][-1] I / UOO4 IO Vx= Dx * ρ[-1 ][ y ] Therefore, the following unifications can be performed to determine an additional value to be added to the weighted predicted sample value: An additional value in the case of horizontal mode (mode 18) can be calculated as Vy= Dy * p[ x ][ —1 ], where Dy is set equal to wT[ y ]; An additional value in the case of vertical mode (mode 50) can be calculated as Vx= Dx * p[ -1 ][ y ], where Dx is set equal to wL[ y ]; An additional value in the case of DC mode (mode 1) can be calculated as Vy+Vx, where Dxy and Dyse are adjusted as in the two previous cases, i.e., Dyse is adjusted equal to wT[y] and Dx is adjusted equal to wL[y]. By alternating the selection of the reference sample, it can be shown that unification can be performed for all intraprediction modes specified for a PDPC process. In another modality, the PDPC process can be specified as follows: Position-dependent intraprediction sample filtering process The inputs to this process are: the intraprediction mode predModelntra, an nTbW variable specifying the transform block width, an nTbH variable specifying the transform block height, a refW variable specifying the reference sample width, a refH variable specifying the reference sample height, the predicted samples predSamples[ x ][ y ], with x = O..nTbW - 1, y = O..nTbH 1, the neighboring samples p[ x ][ y ], with x = -1, y = -1..refH - 1 and yx = O..refW - 1, y = -1. The outputs of this process are the modified predicted samples predSamples[ x ][ y ] with x = O..nTbW - 1, y = O..nTbH - 1. The nScale variable is derived as follows: If predModelntra is greater than INTRA_ANGULAR50, nScale is set equal to MinMin( 2, Log2( nTbH ) - Floor( Log2( 3 * invAngle - 2 )) + 8 ), using invAngle as specified in clause 8.4.5.2.12. Otherwise, if predModelntra is less than INTRA_ANGULAR18, is not equal to INTRA_PLANAR and is not equal to INTRA_DC, nScale is set equal to Min( 2, Log2( nTbW ) - Floor( Log2( 3 * invAngle - 2 ) ) + 8 ), using invAngle as specified in clause 8.4.5.2.12. Otherwise, nScale is set to (( Log2( nTbW) + Log2( nTbH ) - 2 ) » 2 ). The sample reference arrangements mainRef[ x ] and sideRef[ y ], with x = O..refW - 1 ey = O..refH - 1, are derived as follows: mainRef[ x ] = p[ x ][ -1 ] (8-229) sideRef[ y ] = p[ -1 ][ y ] The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] with x = O..nTbW - 1, y =0..nTbH - 1 are derived as follows: If predModelntra is equal to INTRA_P LANAR or INTRA_DC, the following applies: refL[ x ][ y ] = p[-1 ][ y ] (8-230) refT[ x ][ y ] = p[ x ][-1 ] (8-231) wT[ y ] = 32 » (( y « 1 ) » nScale ) (8-232) wL[ x ] = 32 » (( x « 1 ) » nScale ) (8-233) Otherwise, if predModelntra is equal to INTRA_ANGULAR18 or INTRA_ANGULAR50, the following applies: refL[ x ][ y ] = p[ -1 ][ y ] - p[ -1 ][ -1 ] + predSamples[ x ][ y ] (8-234) refT[ x ][ y ] = p[ x ][ -1 ] - p[ -1 ][ -1 ] + predSamples[ x ][ y ] (8-235) wT[ y ] = ( predModelntra = = INTRA_ANGULAR18 ) ? 32 » (( y « 1 ) » nScale ): 0 (8-236) wL[ x ] = ( predModelntra = = INTRA_ANGULAR50 ) ? 32 » (( x « 1 ) » nScale ): 0 (8-237) Otherwise, if predModelntra is less than INTRA_ANGULAR18 and nScale is equal to or greater than 0, the following steps apply in order: 3. The variables dXlnt[ y ] and dX[ x ][ y ] are derived as follows using invAngle as specified in clause 8.4.5.2.12 depending on intraPredMode: dXlnt[ y ] = ((y + 1 ) * invAngle + 256 ) » 9 (8-238) dX[x][y] = x + dXlnt[y] 4. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] are derived as follows: refL[ x ][ y ] = 0 (8-239) refT[ x ][ y ] = ( y < ( 3 « nScale )) ? mainRef[ dX[ x ][ y ] ]: 0 (8-240) wT[ y ] = 32 » (( y « 1 ) » nScale ) (8-241) wL[ x ] = 0 (8-242) Otherwise, if predModelntra is greater than INTRA_ANGULAR50 and nScale is equal to or greater than 0, the following steps apply in order: 3. The variables dYlnt[ x ] and dY[ x ][ y ] are derived as follows using invAngle as specified in clause 8.4.5.2.12 depending on intraPredMode: dYlnt[ x ] = ((x + 1 ) * invAngle + 256 ) » 9 (8-243) dY[x][y] = y + dYlnt[x] I / UOO4 IO 4. The variables refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] are derived as follows: refL[ x ][ y ] = ( x < ( 3 « nScale )) ? sideRef[ dY[ x ][ y ] ]: 0 (8-244) refT[ x ][ y ] = 0 (8-245) wT[y] = 0 (8-246) wL[ x ] = 32 » (( x « 1 ) » nScale ) (8-247) Otherwise, refL[ x ][ y ], refT[ x ][ y ], wT[ y ] and wL[ x ] are all set equal to 0. The modified predicted sample values predSamples[ x ][ y ], with x = O..nTbW - 1, y = O..nTbH - 1, are derived as follows: predSamples[ x ][ y ] = Clipl ( ( refL[ x ][ y ] * wL[ x ] + refT[ x ][ y ] * wT[ y ] + (8-248) ( 64 - wL[ x ] - wT[ y ]) * predSamples[ x ][ y ] + 32 ) » 6 ) In the above, the Clipl function can be defined, for example, as described above (Clipl Cmp). Although the modes described herein have been primarily based on video encoding, it should be noted that the modes of encoding system 10, encoder 20, and decoder 30 (and consequently, system 10) and the other modes described herein can also be configured for still image processing or encoding, that is, the processing or encoding of a single image independent of any preceding or subsequent images, as in video encoding. In general, only the interprediction units 244 (encoder) and 344 (decoder) may not be available if the image processing encoding is limited to a single image 17.All other functionalities (also referred to as tools or technologies) of the video encoder 20 and video decoder 30 can be used equally for still image processing, for example, residual calculation 204 / 304, transform 206, quantization 208, inverse quantization 210 / 310, (inverse) transform 212 / 312, partitioning 262 / 362, intraprediction 254 / 354 and / or loop filtering 220, 320 and entropic encoding 270 and entropic decoding 304. The modes, for example, of encoder 20 and decoder 30, and the functions described herein, for example, with reference to encoder 20 and 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 via communication media 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 data storage media, or communication media, which includes any medium that facilitates the transfer of a computer program from one location to another, for example, according to a communication protocol.Thus, computer-readable media in general can correspond to (1) tangible, non-transient, computer-readable storage media 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 computer program product may include a computer-readable medium. By way of example, and not as a limitation, these computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, 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 appropriately termed a computer-readable medium.For example, if instructions are transmitted from a website, server, or other remote source using coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio frequency, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio frequency, and microwave are included in the definition of a medium. It should be understood, however, 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.The term "disc" and "digital disc," as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc, where discs usually reproduce data magnetically, while digital discs reproduce data optically using lasers. Combinations of these should also be included within the scope of computer-readable media. 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 (ASIOs), field-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuitry. 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 software and / or hardware 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 processing circuitry mentioned in this description may comprise both hardware and software. The techniques described here can be implemented on a wide variety of devices or appliances, including a wireless terminal, an integrated circuit (IC), or an array of ICs (e.g., a chipset). Different components, modules, or units are described here to emphasize 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, different 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 appropriate software and / or firmware. Additional options are summarized below. A method for intraprediction of a block of an image is provided, comprising for each sample from a plurality of samples of the block: obtaining a predicted sample value from one or more reference sample values by intraprediction using one of a DC intraprediction mode, a PLANAR intraprediction mode, and an angular intraprediction mode; multiplying the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; adding an additional value to the weighted predicted sample value, resulting in an unnormalized predicted sample value; and normalizing the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, resulting in a normalized predicted sample value. In one mode, the image is part of a video sequence. In one modality, the sample weighting factor is ((2«p)-wL-wT), where p is a precision of the sample weighting factor, wL is a horizontal weighting factor, and wT is a vertical weighting factor. In one modality, the horizontal weighting factor is wL = (2«(p-1))»((x « 1 ) » nScale ), where x is a horizontal coordinate of the sample, the vertical weighting factor is wT = (2«(p-1)) » ( ( y « 1 ) » nScale ), where y is a vertical coordinate of the sample and nScale is a scale parameter. In one mode, the nScale scaling parameter is derived from a block size. In one mode, the scaling parameter nScale is determined as (( Log2( nTbW) + Log2( nTbH) - 2 ) » 2 ) where nTbW is a block width and nTbH is a block height. In one modality, the normalized predicted sample value is calculated from the predicted sample value as y) = XvT m>'TXT {64 — w'I — wT) XP(x,y) T 32) ) » 6 where Ái. y) is the normalized predicted sample value, is the predicted sample value, Rx, i, Rt and represent the values of the nearest reference samples located above and to the left of the predicted sample, wL is a horizontal weighting factor, and wTes is a vertical weighting factor. In one modality, the horizontal weighting factor is wL = (2«(p-1)) » ((x « 1 ) » nScale ), where x is a horizontal coordinate of the sample, the vertical weighting factor is wT = (2«(p-1)) » ( ( y « 1 ) » nScale ), where y is a vertical coordinate of the sample and nScale is a scale parameter. In one mode, the nScale scaling parameter is derived from a block size. In one mode, the scaling parameter nScale is determined as (( Log2( nTbW) + Log2( nTbH) — 2 ) » 2 ) where nTbW is a block width and nTbH is a block height. In one embodiment, the plurality of block samples comprises each block sample. Additionally, a device for encoding or decoding an image is provided, comprising processing circuitry configured to perform any of the above methods. In one embodiment, the processing circuitry comprises one or more processors and a non-transient computer-readable medium connected to the one or more processors, wherein the non-transient computer-readable medium carries a program code that, when executed by the one or more processors, causes the device to perform the method. Additionally, a non-transient, computer-readable medium is provided that carries program code which, when executed by a computer device, causes the computer device to perform any of the above methods. Definitions of acronyms and glossary JEM Joint Exploration Model (the software codebase for future video encoding exploration) JVET Joint Team of Video Experts LUT Lookup Table PDPC Position-Dependent Prediction Combination PPS Image Parameter Set QT Quaternary Tree QTBT Quaternary tree plus binary tree RDO Speed-distortion optimization ROM Read-Only Memory SPS Sequence Parameter Set VTM WC Test Model WC Versatile Video Coding, the standardization project developed by JVET. CTU / CTBU Coding Tree Unit / Coding Tree Block CU / CB Coding Unit / Coding Block PU / PB Prediction Unit / Prediction Block TU / TB Transformer Unit / Transformer Block HEVC High Efficiency Video Coding NOVELTY OF THE INVENTION Having described the present invention, it is considered a novelty and, therefore, the contents of the following are claimed as property.
Claims
1. A method for intraprediction of a block of an image, characterized in, comprising sampling the block: obtaining a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; multiplying the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; adding an additional value to the weighted predicted sample value, resulting in an unnormalized predicted sample value; and normalizing the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein ((2 « p) — wL — ινT) the sample weighting factor is k where g is a parameter of the sample weighting factor, wL is a horizontal weighting factor, and wT is a vertical weighting factor.
2. A method for intraprediction of a first block and a second block of an image, characterized in, comprising a sample of the first block and for a sample of the second block: obtaining, a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode.multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; add an additional value to the weighted predicted sample value, resulting in an unnormalized predicted sample value; and normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein (( 2 « p) — wL — the sample weighting factor is , 12 is a parameter of the sample weighting factor, wL is a horizontal weighting factor, and wT is a vertical weighting factor, wherein, the intraprediction mode used to obtain the predicted sample value for the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample value for the second block is a PLANAR intraprediction mode.
3. The method of claim 1 or 2, characterized in, uses a PLANAR intraprediction mechanism to calculate the additional value.
4. The method of any of claims 1 to 3, characterized in that the (64 — wL — wT) sample weighting factor is 5. The method of any of claims 1 to 4, wherein the additional value is a sum of one or more addends, including an addend that depends on one or more of the reference samples.
6. The method of claim 5, characterized in that the summand that depends wL X v 4 wT X t ñ_t v on one or more reference samples is , and y represent values of the nearest reference samples located above and to the left of the predicted sample.
7. The method of any of claims 1 to 6, characterized in that the horizontal weighting factor and / or the vertical weighting factor is a power of two.
8. The method of any of claims 1 to 7, characterized in that the horizontal weighting factor w£ = (2 « (p — 1)) » ((x « 1.) »x where is a horizontal coordinate of the sample, w'T = (2 (p — ) » ( (y « 1) » nScale) the vertical weighting factor is z, and where is a vertical coordinate of the sample, and nScc / e is a scale parameter.
9. The method of claim 8, characterized in that the scale parameter nScaíe is derived from a block size.
10. The method of claim 8, characterized in that the scale parameter ((Log2( ñTMV) 4-2) is determined as ' where MX is a block width and is a block height.
11. The method of any of claims 1 to 10, characterized in that a normalized predicted sample value is calculated from the predicted sample value, which includes calculation. (wl X 4- wT X 4- (64 — — wf) X y) 4- 32) » 6 where y) is the predicted sample value, , ' represent the values of the nearest reference samples located above and to the left of the predicted sample, is the horizontal weighting factor, and wT is the vertical weighting factor.
12. A method for encoding or decoding an image, characterized in that it comprises obtaining normalized predicted sample values by performing the steps of a method according to any one of claims 1 to 11; and adding residual values to the normalized predicted sample values resulting in reconstructed sample values.
13. A device for encoding or decoding an image, characterized in that it comprises processing circuitry configured to perform the method of any of claims 1 to 12.
14. The device of claim 13, wherein the processing circuitry comprises one or more processors and a non-transient computer-readable medium connected to the one or more processors, wherein the non-transient computer-readable medium carries a program code that, when executed by the one or more processors, causes the device to perform the method of any one of claims 1 to 13.
15. A non-transient computer-readable medium, characterized in that it carries a program code that, when executed by a computer device, causes the computer device to perform the method of any one of claims 1 to 12.
16. A computer program, characterized in, comprising program code for performing the method according to any of claims 1 to 12.
17. A predictor device for intraprediction of a block of an image, characterized in, comprising: a obtainer configured to obtain, for a sample of the block, a predicted sample value from one or more reference sample values by intraprediction using a DC intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein (( 2 « pj — wl — wT) the sample weighting factor is ', wherein is a parameter of the sample weighting factor, is a horizontal weighting factor, and wT is a vertical weighting factor.; 18. A predictor device for intraprediction of a first block and a second block of an image, characterized in, comprising: a obtainer configured to obtain, for a sample of the first block or the second block, a predicted sample value from one or more reference sample values by intraprediction using an intraprediction mode; a multiplier configured to multiply the predicted sample value by a sample weighting factor, resulting in a weighted predicted sample value; an adder configured to add an additional value to the weighted predicted sample value, resulting in a non-normalized predicted sample value;and I / UOO4 IO a normalizer configured to normalize the unnormalized predicted sample value by an arithmetic right shift of an integer representation of the unnormalized predicted sample value, wherein ((2 « p) - wL - wT) is the sample weighting factor, g is a parameter of the sample weighting factor, wl is a horizontal weighting factor, and wT is a vertical weighting factor, wherein the intraprediction mode used to obtain the predicted sample value for the first block is a DC intraprediction mode, and the intraprediction mode used to obtain the predicted sample value for the second block is a planar intraprediction mode.
19. A method for encoding an image, characterized in comprising obtaining normalized predicted sample values by performing the steps of a method according to any one of claims 1 to 11; and generating residual values by subtracting the normalized predicted sample values from the original sample values, resulting in reconstructed sample values; and encoding the generated residual values into a bit stream.
20. A non-transient computer-readable medium, characterized in that it stores a bit stream encoded by the method of claim 19.
21. A bit stream, characterized in that the bit stream is encoded by the method of claim 19.