EP4736454A1 - Reference sample interpolation for intra prediction - Google Patents

Reference sample interpolation for intra prediction

Info

Publication number
EP4736454A1
EP4736454A1 EP24731369.5A EP24731369A EP4736454A1 EP 4736454 A1 EP4736454 A1 EP 4736454A1 EP 24731369 A EP24731369 A EP 24731369A EP 4736454 A1 EP4736454 A1 EP 4736454A1
Authority
EP
European Patent Office
Prior art keywords
reference samples
interpolation
block
nearest
predictor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP24731369.5A
Other languages
German (de)
French (fr)
Inventor
Gagan Bihari RATH
Fabrice Le Leannec
Fabrice Urban
Fabien Racape
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
InterDigital CE Patent Holdings SAS
Original Assignee
InterDigital CE Patent Holdings SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by InterDigital CE Patent Holdings SAS filed Critical InterDigital CE Patent Holdings SAS
Publication of EP4736454A1 publication Critical patent/EP4736454A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A method and an apparatus for encoding or decoding a video are provided. For at least one pixel of a block of a picture, a predictor sample is determined based on an intra prediction along a non-diagonal direction, and at least four reference samples of the predictor sample are obtained from among a plurality of decoded pixels neighboring the block. A value for the predictor sample is obtained based on an interpolation that uses the at least four reference samples, and the block is encoded or decoded based on the value. In some embodiments, the interpolation is based on a linear interpolation and an update term that can be computed on the fly.

Description

REFERENCE SAMPLE INTERPOLATION FOR INTRA PREDICTION This application claims the priority to European Application No. EP23306037.5, filed on 28 June 2023, which is incorporated herein by reference in its entirety. TECHNICAL FIELD The present embodiments generally relate to video compression. The present embodiments relate to a method and an apparatus for encoding or decoding an image or a video. More particularly, the present embodiments relate to improving intra coding. BACKGROUND To achieve high compression efficiency, image and video coding schemes usually employ prediction and transform to leverage spatial and temporal redundancy in the video content. Generally, intra or inter prediction is used to exploit the intra or inter picture correlation, then the differences between the original block and the predicted block, often denoted as prediction errors or prediction residuals, are transformed, quantized, and entropy coded. In inter prediction, motion vectors used in motion compensation are often predicted from motion vector predictor. To reconstruct the video, the compressed data are decoded by inverse processes corresponding to the entropy coding, quantization, transform, and prediction. SUMMARY According to an aspect, a method for encoding or decoding a video is provided. The method comprises determining, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtaining at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtaining a value for the predictor sample based on an interpolation that uses the at least four reference samples, encoding or decoding the block based on the value. According to another aspect, an apparatus for encoding or decoding a video is provided. The apparatus comprises one or more processors operable to determine, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtain at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtain a value for the predictor sample based on an interpolation that uses the at least four reference samples, encode or decode the block based on the value. In some embodiments, the interpolation is based on a filter which uses a threshold based linear interpolation. In other embodiments, the interpolation uses an n-tap filter, which is implemented as linear interpolation plus an update term, with n being an integer, for instance 4 or 6. In some embodiment, the interpolation is based on a 4-tap filtering or 6-tap filtering. In a variant, the coefficients of the 4-tap or 6-tap filter are determined once per row of the block. In other variant, coefficients of the 4-tap or 6-tap filter are determined based on a fractional part of an horizontal offset of a position of the predictor sample from the pixel. In other embodiments, the interpolation is based on a linear interpolation and at least one update term. In a variant, the at least one update term is determined using the at least four reference samples and a factor that depends on a fractional part of an horizontal offset of a position of the predictor sample from the pixel. In other variant, the factor is determined once per row of the block. Further embodiments that can be used alone or in combination are described herein. One or more embodiments also provide a computer program comprising instructions which when executed by one or more processors cause the one or more processors to perform the method for encoding or decoding a video according to any of the embodiments described herein. One or more of the present embodiments also provide a non-transitory computer readable medium and/or a computer readable storage medium having stored thereon instructions for encoding or decoding a video according to the methods described herein. One or more embodiments also provide a computer readable storage medium having stored thereon a bitstream generated according to the methods described herein. One or more embodiments also provide a method and apparatus for transmitting or receiving the bitstream generated according to the methods described above. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 illustrates a block diagram of a system within which aspects of the present embodiments may be implemented. FIG.2 illustrates a block diagram of an embodiment of a video encoder within which aspects of the present embodiments may be implemented. FIG.3 illustrates a block diagram of an embodiment of a video decoder within which aspects of the present embodiments may be implemented. FIG.4 illustrates an example of a flowchart for intra prediction of a block in ECM software. FIG.5 illustrates example of reference samples for a block to be predicted. FIG.6 illustrates an example of predictor sample interpolation using six reference samples. FIG.7 illustrates an example of predictor sample interpolation using four reference samples. FIG. 8 illustrates an example of a flowchart for encoding or decoding a block of a picture according to an embodiment. FIG.9 illustrates an example of a flowchart for interpolating predictor samples of a block of a picture according to an embodiment. FIG.10 illustrates an example of a flowchart for interpolating predictor samples of a block of a picture according to another embodiment. FIG. 11 illustrates a block diagram of a system within which aspects of the present embodiments may be implemented, according to another embodiment. FIG. 12 shows two remote devices communicating over a communication network in accordance with an example of the present principles. FIG.13 shows the syntax of a signal in accordance with an example of the present principles. FIG.14 illustrates an example of intra prediction direction as used in the VVC standard. DETAILED DESCRIPTION This application describes a variety of aspects, including tools, features, embodiments, models, approaches, etc. Many of these aspects are described with specificity and, at least to show the individual characteristics, are often described in a manner that may sound limiting. However, this is for purposes of clarity in description, and does not limit the application or scope of those aspects. Indeed, all of the different aspects can be combined and interchanged to provide further aspects. Moreover, the aspects can be combined and interchanged with aspects described in earlier filings as well. The aspects described and contemplated in this application can be implemented in many different forms. FIGs.1, 2 and 3 below provide some embodiments, but other embodiments are contemplated and the discussion of FIGs. 1, 2 and 3 does not limit the breadth of the implementations. At least one of the aspects generally relates to video encoding and decoding, and at least one other aspect generally relates to transmitting a bitstream generated or encoded. These and other aspects can be implemented as a method, an apparatus, a computer readable storage medium having stored thereon instructions for encoding or decoding video data according to any of the methods described, and/or a computer readable storage medium having stored thereon a bitstream generated according to any of the methods described. In the present application, the terms “reconstructed” and “decoded” may be used interchangeably, the terms “pixel” and “sample” may be used interchangeably, the terms “image,” “picture” and “frame” may be used interchangeably. Various methods are described herein, and each of the methods comprises one or more steps or actions for achieving the described method. Unless a specific order of steps or actions is required for proper operation of the method, the order and/or use of specific steps and/or actions may be modified or combined. Additionally, terms such as “first”, “second”, etc. may be used in various embodiments to modify an element, component, step, operation, etc., such as, for example, a “first decoding” and a “second decoding”. Use of such terms does not imply an ordering to the modified operations unless specifically required. So, in this example, the first decoding need not be performed before the second decoding, and may occur, for example, before, during, or in an overlapping time period with the second decoding. The present aspects are not limited to VVC or HEVC, and can be applied, for example, to other standards and recommendations, whether pre-existing or future-developed, and extensions of any such standards and recommendations (including VVC and HEVC). Unless indicated otherwise, or technically precluded, the aspects described in this application can be used individually or in combination. FIG. 1 illustrates a block diagram of an example of a system in which various aspects and embodiments can be implemented. System 100 may be embodied as a device including the various components described below and is configured to perform one or more of the aspects described in this application. Examples of such devices, include, but are not limited to, various electronic devices such as personal computers, laptop computers, smartphones, tablet computers, digital multimedia set top boxes, digital television receivers, personal video recording systems, connected home appliances, and servers. Elements of system 100, singly or in combination, may be embodied in a single integrated circuit, multiple ICs, and/or discrete components. For example, in at least one embodiment, the processing and encoder/decoder elements of system 100 are distributed across multiple ICs and/or discrete components. In various embodiments, the system 100 is communicatively coupled to other systems, or to other electronic devices, via, for example, a communications bus or through dedicated input and/or output ports. In various embodiments, the system 100 is configured to implement one or more of the aspects described in this application. The system 100 includes at least one processor 110 configured to execute instructions loaded therein for implementing, for example, the various aspects described in this application. Processor 110 may include embedded memory, input output interface, and various other circuitries as known in the art. The system 100 includes at least one memory 120 (e.g., a volatile memory device, and/or a non-volatile memory device). System 100 includes a storage device 140, which may include non-volatile memory and/or volatile memory, including, but not limited to, EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk drive, and/or optical disk drive. The storage device 140 may include an internal storage device, an attached storage device, and/or a network accessible storage device, as non-limiting examples. System 100 includes an encoder/decoder module 130 configured, for example, to process data to provide an encoded video or decoded video, and the encoder/decoder module 130 may include its own processor and memory. The encoder/decoder module 130 represents module(s) that may be included in a device to perform the encoding and/or decoding functions. As is known, a device may include one or both of the encoding and decoding modules. Additionally, encoder/decoder module 130 may be implemented as a separate element of system 100 or may be incorporated within processor 110 as a combination of hardware and software as known to those skilled in the art. Program code to be loaded onto processor 110 or encoder/decoder 130 to perform the various aspects described in this application may be stored in storage device 140 and subsequently loaded onto memory 120 for execution by processor 110. In accordance with various embodiments, one or more of processor 110, memory 120, storage device 140, and encoder/decoder module 130 may store one or more of various items during the performance of the processes described in this application. Such stored items may include, but are not limited to, the input video, the decoded video or portions of the decoded video, the bitstream, matrices, variables, and intermediate or final results from the processing of equations, formulas, operations, and operational logic. In some embodiments, memory inside of the processor 110 and/or the encoder/decoder module 130 is used to store instructions and to provide working memory for processing that is needed during encoding or decoding. In other embodiments, however, a memory external to the processing device (for example, the processing device may be either the processor 110 or the encoder/decoder module 130) is used for one or more of these functions. The external memory may be the memory 120 and/or the storage device 140, for example, a dynamic volatile memory and/or a non-volatile flash memory. In several embodiments, an external non-volatile flash memory is used to store the operating system of a television. In at least one embodiment, a fast external dynamic volatile memory such as a RAM is used as working memory for video coding and decoding operations, such as for MPEG-2, (MPEG refers to the Moving Picture Experts Group, MPEG-2 is also referred to as ISO/IEC 13818, and 13818-1 is also known as H.222, and 13818-2 is also known as H.262), HEVC (HEVC refers to High Efficiency Video Coding, also known as H.265 and MPEG-H Part 2), or VVC (Versatile Video Coding, standard developed by JVET, the Joint Video Experts Team). The input to the elements of system 100 may be provided through various input devices as indicated in block 105. Such input devices include, but are not limited to, (i) a radio frequency (RF) portion that receives an RF signal transmitted, for example, over the air by a broadcaster, (ii) a Component (COMP) input terminal (or a set of COMP input terminals), (iii) a Universal Serial Bus (USB) input terminal, and/or (iv) a High Definition Multimedia Interface (HDMI) input terminal. Other examples, not shown in FIG.1, include composite video. In various embodiments, the input devices of block 105 have associated respective input processing elements as known in the art. For example, the RF portion may be associated with elements suitable for (i) selecting a desired frequency (also referred to as selecting a signal, or band-limiting a signal to a band of frequencies), (ii) down converting the selected signal, (iii) band-limiting again to a narrower band of frequencies to select (for example) a signal frequency band which can be referred to as a channel in certain embodiments, (iv) demodulating the down converted and band-limited signal, (v) performing error correction, and (vi) demultiplexing to select the desired stream of data packets. The RF portion of various embodiments includes one or more elements to perform these functions, for example, frequency selectors, signal selectors, band-limiters, channel selectors, filters, downconverters, demodulators, error correctors, and demultiplexers. The RF portion may include a tuner that performs various of these functions, including, for example, down converting the received signal to a lower frequency (for example, an intermediate frequency or a near-baseband frequency) or to baseband. In one set-top box embodiment, the RF portion and its associated input processing element receives an RF signal transmitted over a wired (for example, cable) medium, and performs frequency selection by filtering, down converting, and filtering again to a desired frequency band. Various embodiments rearrange the order of the above-described (and other) elements, remove some of these elements, and/or add other elements performing similar or different functions. Adding elements may include inserting elements in between existing elements, for example, inserting amplifiers and an analog-to-digital converter. In various embodiments, the RF portion includes an antenna. Additionally, the USB and/or HDMI terminals may include respective interface processors for connecting system 100 to other electronic devices across USB and/or HDMI connections. It is to be understood that various aspects of input processing, for example, Reed-Solomon error correction, may be implemented, for example, within a separate input processing IC or within processor 110 as necessary. Similarly, aspects of USB or HDMI interface processing may be implemented within separate interface ICs or within processor 110 as necessary. The demodulated, error corrected, and demultiplexed stream is provided to various processing elements, including, for example, processor 110, and encoder/decoder 130 operating in combination with the memory and storage elements to process the data stream as necessary for presentation on an output device. Various elements of system 100 may be provided within an integrated housing, Within the integrated housing, the various elements may be interconnected and transmit data therebetween using suitable connection arrangement 115, for example, an internal bus as known in the art, including the I2C bus, wiring, and printed circuit boards. The system 100 includes communication interface 150 that enables communication with other devices via communication channel 190. The communication interface 150 may include, but is not limited to, a transceiver configured to transmit and to receive data over communication channel 190. The communication interface 150 may include, but is not limited to, a modem or network card and the communication channel 190 may be implemented, for example, within a wired and/or a wireless medium. Data is streamed to the system 100, in various embodiments, using a Wi-Fi network such as IEEE 802.11 (IEEE refers to the Institute of Electrical and Electronics Engineers). The Wi-Fi signal of these embodiments is received over the communications channel 190 and the communications interface 150 which are adapted for Wi-Fi communications. The communications channel 190 of these embodiments is typically connected to an access point or router that provides access to outside networks including the Internet for allowing streaming applications and other over-the-top communications. Other embodiments provide streamed data to the system 100 using a set-top box that delivers the data over the HDMI connection of the input block 105. Still other embodiments provide streamed data to the system 100 using the RF connection of the input block 105. As indicated above, various embodiments provide data in a non-streaming manner. Additionally, various embodiments use wireless networks other than Wi-Fi, for example a cellular network or a Bluetooth network. The system 100 may provide an output signal to various output devices, including a display 165, speakers 175, and other peripheral devices 185. The display 165 of various embodiments includes one or more of, for example, a touchscreen display, an organic light- emitting diode (OLED) display, a curved display, and/or a foldable display. The display 165 can be for a television, a tablet, a laptop, a cell phone (mobile phone), or other device. The display 165 can also be integrated with other components (for example, as in a smart phone), or separate (for example, an external monitor for a laptop). The other peripheral devices 185 include, in various examples of embodiments, one or more of a stand-alone digital video disc (or digital versatile disc) (DVR, for both terms), a disk player, a stereo system, and/or a lighting system. Various embodiments use one or more peripheral devices 185 that provide a function based on the output of the system 100. For example, a disk player performs the function of playing the output of the system 100. In various embodiments, control signals are communicated between the system 100 and the display 165, speakers 175, or other peripheral devices 185 using signaling such as AV.Link, CEC, or other communications protocols that enable device-to-device control with or without user intervention. The output devices may be communicatively coupled to system 100 via dedicated connections through respective interfaces 160, 170, and 180. Alternatively, the output devices may be connected to system 100 using the communications channel 190 via the communications interface 150. The display 165 and speakers 175 may be integrated in a single unit with the other components of system 100 in an electronic device, for example, a television. In various embodiments, the display interface 160 includes a display driver, for example, a timing controller (T Con) chip. The display 165 and speaker 175 may alternatively be separate from one or more of the other components, for example, if the RF portion of input 105 is part of a separate set-top box. In various embodiments in which the display 165 and speakers 175 are external components, the output signal may be provided via dedicated output connections, including, for example, HDMI ports, USB ports, or COMP outputs. The embodiments can be carried out by computer software implemented by the processor 110 or by hardware, or by a combination of hardware and software. As a non-limiting example, the embodiments can be implemented by one or more integrated circuits. The memory 120 can be of any type appropriate to the technical environment and can be implemented using any appropriate data storage technology, such as optical memory devices, magnetic memory devices, semiconductor-based memory devices, fixed memory, and removable memory, as non-limiting examples. The processor 110 can be of any type appropriate to the technical environment, and can encompass one or more of microprocessors, general purpose computers, special purpose computers, and processors based on a multi-core architecture, as non-limiting examples. FIG. 2 illustrates an example of a block-based hybrid video encoder 200. Variations of this encoder 200 are contemplated, but the encoder 200 is described below for purposes of clarity without describing all expected variations. In some embodiments, FIG.2 also illustrate an encoder in which improvements are made to the HEVC standard or a VVC standard (Versatile Video Coding, Standard ITU-T H.266, ISO/IEC 23090-3, 2020) or an encoder employing technologies similar to HEVC or VVC, such as an encoder ECM under development by JVET (Joint Video Exploration Team). Before being encoded, the video sequence may go through pre-encoding processing (201), for example, applying a color transform to the input color picture (e.g., conversion from RGB 4:4:4 to YCbCr 4:2:0), or performing a remapping of the input picture components in order to get a signal distribution more resilient to compression (for instance using a histogram equalization of color components), or re-sizing the picture (ex: down-scaling). Metadata can be associated with the pre-processing, and attached to the bitstream. In the encoder 200, a picture is encoded by the encoder elements as described below. The picture to be encoded is partitioned (202) and processed in units of, for example, CUs (Coding units) or blocks. In the disclosure, different expressions may be used to refer to such a unit or block resulting from a partitioning of the picture. Such wording may be coding unit or CU, coding block or CB, luminance CB, or block. A CTU (Coding Tree Unit) may refer to a group of blocks or group of units. In some embodiments, a CTU may be considered as a block, or a unit as itself. Each unit is encoded using, for example, either an intra or inter mode. When a unit is encoded in an intra mode, it performs intra prediction (260). In an inter mode, motion estimation (275) and compensation (270) are performed. The encoder decides (205) which one of the intra mode or inter mode to use for encoding the unit, and indicates the intra/inter decision by, for example, a prediction mode flag. The encoder may also blend (263) intra prediction result and inter prediction result, or blend results from different intra/inter prediction methods. Prediction residuals are calculated, for example, by subtracting (210) the predicted block from the original image block. The motion refinement module (272) uses already available reference picture in order to refine the motion field of a block without reference to the original block. A motion field for a region can be considered as a collection of motion vectors for all pixels with the region. If the motion vectors are sub-block-based, the motion field can also be represented as the collection of all sub-block motion vectors in the region (all pixels within a sub-block has the same motion vector, and the motion vectors may vary from sub-block to sub-block). If a single motion vector is used for the region, the motion field for the region can also be represented by the single motion vector (same motion vectors for all pixels in the region). The prediction residuals are then transformed (225) and quantized (230). The quantized transform coefficients, as well as motion vectors and other syntax elements, are entropy coded (245) to output a bitstream. The encoder can skip the transform and apply quantization directly to the non-transformed residual signal. The encoder can bypass both transform and quantization, i.e., the residual is coded directly without the application of the transform or quantization processes. The encoder decodes an encoded block to provide a reference for further predictions. The quantized transform coefficients are de-quantized (240) and inverse transformed (250) to decode prediction residuals. Combining (255) the decoded prediction residuals and the predicted block, an image block is reconstructed. In-loop filters (265) are applied to the reconstructed picture to perform, for example, deblocking/SAO (Sample Adaptive Offset) filtering to reduce encoding artifacts. The filtered image is stored at a reference picture buffer (280). FIG.3 illustrates a block diagram of a video decoder 300. In the decoder 300, a bitstream is decoded by the decoder elements as described below. Video decoder 300 generally performs a decoding pass reciprocal to the encoding pass as described in FIG.2. The encoder 200 also generally performs video decoding as part of encoding video data. In particular, the input of the decoder includes a video bitstream, which can be generated by video encoder 200. The bitstream is first entropy decoded (330) to obtain transform coefficients, motion vectors, and other coded information. The picture partition information indicates how the picture is partitioned. The decoder may therefore divide (335) the picture according to the decoded picture partitioning information. The transform coefficients are de- quantized (340) and inverse transformed (350) to decode the prediction residuals. Combining (355) the decoded prediction residuals and the predicted block, an image block is reconstructed. The predicted block can be obtained (370) from intra prediction (360) or motion-compensated prediction (i.e., inter prediction) (375). The decoder may blend (373) the intra prediction result and inter prediction result, or blend results from multiple intra/inter prediction methods. Before motion compensation, the motion field may be refined (372) by using already available reference pictures. In-loop filters (365) are applied to the reconstructed image. The filtered image is stored at a reference picture buffer (380). The decoded picture can further go through post-decoding processing (385), for example, an inverse color transform (e.g. conversion from YCbCr 4:2:0 to RGB 4:4:4) or an inverse remapping performing the inverse of the remapping process performed in the pre-encoding processing (201), or re-sizing the reconstructed pictures (ex: up-scaling). The post-decoding processing can use metadata derived in the pre-encoding processing and signaled in the bitstream. Some of the embodiments described herein relates to intra prediction and more particularly to reference sample interpolation for intra prediction. Any one of the embodiments described herein can be implemented for instance in an intra prediction module of a video encoder or video decoder. For instance, the embodiments described herein can be implemented in the intra prediction module 260 of the video encoder 200 or the intra prediction module 360 of the video decoder 300. In the recent video coding standards such as HEVC, VVC (“Versatile Video Coding (Draft 8)”, B. Bross, J. Chen, S. Liu, and Y.-K. Wang, JVET-Q2001-vD, JVET Meeting, Jan 2020, Brussels, Belgium), and the current Enhanced Compression Model ECM (“Algorithm description of Enhanced Compression Model 6 (ECM 6)”, M. Cofban, F. Le Léannec, K. Naser, J. Ström, L. Zhang, JVET-AA2025, JVET Meeting, July 2022, Teleconference) developed by JVET, intra prediction of a block is specified with several prediction modes where the prediction modes are associated with different prediction directions. For a given prediction mode the predictor samples on two reference arrays, which are constructed using the decoded causal neighbor samples on the left and the top of the block, are directly copied on to the target pixel positions along the corresponding direction and then processed using PDPC, if applicable. The predictor samples themselves, unless they match with reference samples, are interpolated using the nearest reference samples. In HEVC, a linear interpolation is performed using the two nearest reference samples to interpolate a predictor sample. In VVC, 4-tap smoothing and cubic filters are used to improve the accuracy of interpolation. In ECM, the same filters have been extended to 6-taps for even higher accuracy, but at the cost of higher complexity. In this context, some embodiments described herein provide for a lower-complexity interpolation method that aims at providing the same or better accuracy as with 6-tap filters. For intra prediction of a block, VVC and ECM define two reference arrays consisting of causal decoded samples: a top reference array consisting of the decoded pixels on the top, the top right and the top-left of the block, and a left reference array consisting of the decoded pixels on the left, the bottom-left and the top-left of the block. FIG.14 illustrates an example of intra prediction direction as used in the VVC standard. For any defined angular prediction mode, the samples on these reference arrays are copied onto the target block along the corresponding direction. But, as the reference samples are located only at integral positions, except for the modes along diagonal directions (i.e., modes 2, 66 and 34) and the strictly vertical and horizontal modes (i.e., modes 18 and 50), the predictor reference samples for all target pixels do not coincide with actual reference samples. In this case, the predictor samples are interpolated using the neighboring reference samples. For a Luma block, in VVC, a predictor sample is interpolated using the four nearest reference samples, two on either side of its position, whereas in ECM, the same is done using six reference samples, three on either side of its position. For a Chroma block, in both VVC and ECM, the predictor sample is linearly interpolated using the two nearest reference samples, one on either side of its position on the reference array. Though interpolation with six reference samples yields more accurate values, the resulting complexity is much higher. HEVC used only linear interpolation with the two nearest reference samples, both for Luma and Chroma target blocks. A linear interpolation is a weighted sum and can be effectively implemented with only one multiplication and two addition operations. On the contrary, interpolation with six samples is performed with either a cubic filter whose coefficients are pre-computed and stored in memory, or a smoothing filter whose coefficients are computed on the fly for each row of the target block. Each interpolation thus requires six multiplication and five addition operations. Some embodiments described herein provide a new interpolation method which uses four or six neighboring reference samples but requires simpler operations. The filtering operation is performed as a linear interpolation together with one update term in the case of four reference samples or three update terms in the case of six reference samples. In some embodiments, the update term is added conditional to the two reference sample values. The update term can be calculated on the fly for each row of the target block avoiding the need for any memory storage. Furthermore, both the smoothing filter case and the cubic filter case, which refer to the cases of whether the reference samples are filtered prior to interpolation or not, are computed using a single formulation with the same update terms. Intra prediction in ECM For a given target block to be intra predicted, the encoder, or the decoder, first constructs two reference arrays, one on the top and the other on the left of the target block. The reference samples are taken from the decoded samples on top, top-right, left, left-bottom and top-left decoded blocks. If some of the samples on the top or the left are not available because of the corresponding CUs being not in the same slice, or the current CU being at a frame boundary, etc., then a method called reference sample substitution is performed, where the missing samples are copied from the available samples in a clock-wise direction. Then depending on the block size and the prediction mode, the reference samples are filtered with the low-pass filter [121]/4. Specifically, the reference samples are filtered if the prediction mode is planar and the block size is greater than or equal to 8x8, or if the block size is greater than 4x4 and the prediction mode has integer slope. A prediction mode has an integer slope when the absolute value of the angle parameter predIntraAngle of the prediction direction is a multiple of 32 or 64 depending on the angle resolution, meaning the predictor samples are at integer positions for all target pixels. If the prediction mode does not have integer slope but satisfies the filtering condition, then a flag called interpolationFlag is enabled. The value of the interpolationFlag decides whether to use the cubic filter or the smoothing filter during the interpolation. If the interpolationFlag is enabled, a smoothing filter is used, else a cubic filter is used. If the prediction mode has integer slope, there is no need of interpolation, and the reference samples are directly copied as predictor samples. Such a process is illustrated by the flowchart on FIG.4. For the chroma signals, the reference samples are not filtered at all. ECM like VVC supports predictions based on multiple reference lines (MRL). Except the first reference line, which may or may not be filtered depending on the target block size and the prediction direction, none of the other reference lines are filtered. Thus, the prediction with any reference line other than the first one (i.e., multiRefIdx > 0) uses a 6-tap cubic filter for interpolation. For the sake of generality, in the embodiments described herein, it is assumed a rectangular target block with width ^^ pixels and height ^^ pixels. Only the first reference line is considered as the prediction method with other reference lines is straightforward. With the first reference line, the reference arrays on the top and the left are represented as ^^ ^^ ^^ ^^ ^^ ^^ ^^ and ^^ ^^ ^^ ^^ ^^ ^^ ^^, respectively, as illustrated on FIG. 5. The array ^^ ^^ ^^ ^^ ^^ ^^ ^^ has 2* ^^ +1 pixels and they are indexed as ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] to ^^ ^^ ^^ ^^ ^^ ^^ ^^[2 ^^] where ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] corresponds to the top-left reference pixel. Similarly, the array ^^ ^^ ^^ ^^ ^^ ^^ ^^ has 2* ^^ +1 pixels and they are indexed as ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] to ^^ ^^ ^^ ^^ ^^ ^^ ^^[2 ^^] where ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] again corresponds to the top-left reference pixel. For the special case of a square block with each side having ^^ pixels, both the reference arrays will have 2 ^^ +1 pixels. FIG. 5 shows the two reference arrays consisting the first reference line (i.e., multiRefIdx = 0) for a rectangular target block. For positive vertical directions (that is, for modes with indices greater than or equal to 50), only the reference samples from ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] to ^^ ^^ ^^ ^^ ^^ ^^ ^^[2 ^^ + 1] are needed for prediction. For negative vertical directions (that is, for modes with indices greater than or equal to 34 but smaller than 50), the samples on ^^ ^^ ^^ ^^ ^^ ^^ ^^ are projected onto the negative side of ^^ ^^ ^^ ^^ ^^ ^^ ^^ to generate the reference samples ^^ ^^ ^^ ^^ ^^ ^^ ^^[−1] , ^^ ^^ ^^ ^^ ^^ ^^ ^^[−2] … ^^ ^^ ^^ ^^ ^^ ^^ ^^[− ^^] , where ^^ ^^ ^^ ^^ ^^ ^^ ^^[− ^^] corresponds to the projection of the last reference sample ^^ ^^ ^^ ^^ ^^ ^^ ^^[2 ^^]. The projection or inverse mapping is performed using the inverse angle parameter ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, corresponding to the angle parameter ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ associated with the prediction mode. In ECM, the inverse mapping operation is performed using a weak 4-tap filter on the secondary reference array ^^ ^^ ^^ ^^ ^^ ^^ ^^. For horizontal prediction modes (the angular modes with indices less than 34, which is the diagonal mode DIA_IDX), the prediction operation is implemented by swapping the top and the left reference arrays, and the height and the width of the target block. The obtained prediction is then transposed (and width and height are swapped back) to get the appropriate prediction block. In the embodiments described in this document, it is assumed that, for horizontal prediction modes, the ^^ ^^ ^^ ^^ ^^ ^^ ^^ and the ^^ ^^ ^^ ^^ ^^ ^^ ^^ denote the top and the left reference arrays after they have been swapped. For any target pixel, the reference sample on ^^ ^^ ^^ ^^ ^^ ^^ ^^ will be referred to as its predictor. If the prediction mode has integer slope, then the predictor for every target sample coincides with a reference sample. In this case, the corresponding reference sample is used as the predictor as it is, i.e., without interpolation filtering. For all other angular prediction modes, for Luma signal, the nearest six reference samples of the predictor are used for interpolating the predictor. Let ^^0, ^^1, ^^2, ^^3, ^^4, and ^^5 denote the six reference samples nearest to the predictor sample for the target pixel at ( ^^, ^^), 0 ≤ ^^ < ^^ , 0 ≤ ^^ < ^^ , ^^ and ^^ being the width and height of the block, as shown in FIG.6. The reference samples are determined as follows. First the integral and the fractional parts of the position of the predictor on ^^ ^^ ^^ ^^ ^^ ^^ ^^ are determined. Denoting the horizontal offset of the predictor’s position from the target pixel at ( ^^, ^^) as ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, its integral and fractional parts ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ and ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ are computed as: ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = (1 + ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ >> 5; ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ & 31; Since ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ is defined at a resolution of (1/32) of a pixel, ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ determines the position of the nearest reference sample on the left, i.e., ^^2, and ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ denotes the distance of the predictor from ^^2 at resolution (1/32). With template based intra prediction and fusion (TIMD), ECM allows a resolution of (1/64) of a pixel that leads to 129 angular directions. In this case, ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ and ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ are computed as: ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = (1 + ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ >> 6; ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ & 63; In either case, since ^^ ^^ ^^ ^^ ^^ ^^ ^^[0] points to the first reference sample on the top-left the target block (refer to FIG.5) and the ^^ −cordinate of the target block starts at ^^ = 0, the six nearest reference samples to the predictor sample are identified as ^^0 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ − 1], ^^1 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^], ^^2 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 1], ^^3 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 2], ^^4 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 3], ^^5 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 4], as shown in FIG.6. For a Luma target pixel, the predictor sample value is computed as: ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ( ^^[0] ∗ ^^0 + ^^[1] ∗ ^^1 + ^^[2] ∗ ^^2 + ^^[3] ∗ ^^3 + ^^[4] ∗ ^^4 + ^^[5] ∗ ^^5 + 128) >> 8 Eq (1) where ^^[ ^^] denotes the ^^ th filter coefficient. The filter coefficients ^^[ ^^], ^^ = 0,1,2,3,4,5 are normalized with integral values so that their sum is equal to 256. The chosen filter depends on the value of ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ and the interpolationFlag . If interpolationFlag is enabled, then a smoothing filter is used, else a cubic filter is used. As the specified cubic filter has both negative and positive coefficient values, a clipping operation is additionally performed to keep the predicted value within the valid dynamic range of the Luma component: ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ^^ ^^ ^^ ^^(( ^^[0] ∗ ^^0 + ^^[1] ∗ ^^1 + ^^[2] ∗ ^^2 + ^^[3] ∗ ^^3 + ^^[4] ∗ ^^4 + ^^[5] ∗ ^^5 + 128) >> 8) Eq (2) In TIMD, since ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ has 64 integral values in the range [0-63], ECM specifies 646-tap cubic filters corresponding to these 64 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ values, which are computed offline and stored in memory. For prediction without TIMD, ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ has 32 integral values in the range [0-31], ECM specifies 326-tap cubic filters corresponding to these 32 ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ values, which are computed offline and stored in memory. They can be equivalently taken from the TIMD filters at even values of deltaFrac, that is, when ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = 2 ∗ ^^, for ^^ = 0, 1, … , 31. When the interpolationFlag flag is enabled, a smoothing filter is used to interpolate the predictor sample. The smoothing filter coefficients are computed as follows: ^^[0] = 0, ^^[1] = 64 − 2 ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[2] = 128 – 2 ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[3] = 64 + 2 ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[4] = 2 ∗ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[5] = 0, for (1/32) pixel resolution, and ^^[0] = 0, ^^[1] = 64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[2] = 128 – ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[3] = 64 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[4] = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[5] = 0, for (1/64) pixel resolution. The derivation of the above coefficients follows from the linear interpolation with filtered reference samples, as shown below: Let ^^2′ and ^^3′ denote the filtered reference samples for samples ^^2 and ^^3, respectively, where the filter used is [1, 2, 1]/4: ^^2′ = ( ^^1 + 2 ∗ ^^2 + ^^3) / 4; ^^3′ = ( ^^2 + 2 ∗ ^^3 + ^^4)/4. Now, linear interpolation at deltaFrac distance from ^^2′ results in ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ((32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^2 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ^^3 + 16)/32 for (1/32) pixel resolution, ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ((64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^2 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ^^3 + 32)/64 for (1/64) pixel resolution. Substituting the values of ^^2′ and ^^3′ in the first equation of ^^ ^^ ^^ ^^ ^^( ^^, ^^), we get ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ((32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ( ^^1 + 2 ∗ ^^2 + ^^3) + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 + 2 ∗ ^^3 + ^^4) + 64 )/128 = ((32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^1 + (64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^2 + (32 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^3 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ^^4 + 64) ≫ 7 For (1/64) pixel resolution, the filter coefficients can be derived in an analogous manner. Alternatively, the filter coefficients can be derived from those for the (1/32) pixel resolution by substituting ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ for (2* ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^). In ECM 8, if the target block’s width and height are greater than or equal to 32, then the following pair of smoothing filters are used to interpolate the predictor: ^^[0] = 16 − ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), ^^[1] = 64 − 3 ∗ ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), ^^[2] = 96 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[3] = 64 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^, ^^[4] = 16 + 3 ∗ ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), ^^[5] = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), for (1/32) pixel resolution, and ^^[0] = 16 − ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/4), ^^[1] = 64 − 3 ∗ ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/4), ^^[2] = 96 – ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), ^^[3] = 64 + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/2), ^^[4] = 16 + 3 ∗ ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/4), ^^[5] = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/4), for (1/64) pixel resolution. The filters can be easily derived by filtering the reference samples ^^2 and ^^3 with the filter [1, 4, 6, 4, 1]/16, which is the convolution of the filter [1, 2, 1]/4 with itself, and then doing linear interpolation. For a chroma target block, only the two reference samples ^^1 and ^^2 are used for interpolating the predictor. The predictor value is linearly interpolated, as in HEVC and VVC: ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ((32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ^^2 + 16) >> 5; Eq (3) As TIMD is used only for the LUMA blocks, the interpolation for chroma samples is always performed at (1/32) pixel resolution. Furthermore, as the predicted value is a weighted sum of two samples, there is no need of a clipping operation. According to principles described herein, for intra prediction along non-diagonal directions, a simpler filtering method is provided for interpolating the predictor values. In some embodiments, the filtering is applied to the four nearest reference samples, which can be formulated either as a 4-tap filter, or as a linear interpolation with an update term comprising the four nearest reference samples. In other embodiments, the filtering is applied to the six nearest reference samples which can also be formulated either as 6-tap filter, or as a linear interpolation with three update terms. In further other embodiments, the filtering is applied either using the four nearest reference samples or the six nearest reference samples. Since higher order filters are inappropriate for modeling edges of objects, in some variants, a thresholding method is used to decide when to apply the update term. Instead of having two different kinds of filters, that is, cubic filters and smoothing filters, as used in VVC and ECM, a single unified interpolation method is applied. Last but not the least, unlike the 4-tap and 6-tap cubic filters in VVC and ECM, whose coefficients are precomputed and stored in memory for 32 or 64 predictor sample positions, the coefficients in the proposed filters can be computed on the fly avoiding memory access. FIG.8 illustrates an example of a method 800 for encoding or decoding a block of a picture based on an intra prediction that uses any one of the embodiments for the interpolation described below. For encoding or decoding the block, a loop on all pixels of the block is performed wherein at 810, a predictor sample is determined for a current pixel of the block based on the intra prediction mode of the block. In the embodiments described herein, it is assumed that the intra prediction modes considered are the ones for which all the predictor samples are not located at integer position, that is, at least some predictor samples are located at fractional positions. These intra prediction modes are for example angular prediction modes along a non-diagonal directions. The predictor sample is a sample on the reference array and in the non-diagonal direction from the pixel as illustrated in FIG.6 or 7. At 820, at least four reference samples of the predictor sample are obtained from among a plurality of decoded pixels neighboring the block. In the case of four reference samples to obtain, this is done by determining from among the plurality of decoded (reconstructed) pixels neighboring the block, locations of four pixels nearest to the location of the predictor sample, two on each side of the location of the predictor sample, wherein each of the four nearest pixels corresponds to one of the at least four reference samples At 830, a value for the predictor sample is obtained based on an interpolation that uses the at least four reference samples. Any one of the embodiments that are described below can be used for performing the interpolation and obtaining the value for the predictor sample. Once all pixels of the block have been predicted by their corresponding predictor sample value, at 840, the block is encoded or decoded in the usual manner using the determined predictor sample values. Some embodiments are described below for an interpolation that is based on four nearest reference samples. Let ^^0, ^^1, ^^2,and ^^3 denote the four nearest reference samples to the predictor sample, as shown in FIG.7. They are identified as ^^0 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^], ^^1 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 1], ^^2 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 2], ^^3 ≡ ^^ ^^ ^^ ^^ ^^ ^^ ^^[ ^^ + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ + 3], where the parameter ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ is computed as discussed above with reference to FIG. 6 for (1/32) pixel resolution or (1/64) pixel resolution. In a first embodiment, the predictor sample is interpolated as described below. Let If |( ^^1’ – ^^2’)| <= ^^ℎ, where ^^ℎ is a preset threshold, (for example, ^^ℎ = 16), ^^ ^^ ^^ ^^ ^^ ( ^^, ^^) = ( ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^) ≫ ^^ℎ ^^ ^^ ^^, Where ^^ ^^ ^^ ^^ ^^ ^^ = 16 and ^^ℎ ^^ ^^ ^^ = 5 for (1/32) pixel resolution and ^^ ^^ ^^ ^^ ^^ ^^ = 32 and ^^ℎ ^^ ^^ ^^= 6 for (1/64) pixel resolution; Else where, ^^[0] = − ^^, ^^[1] = ^^ + 256 – ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 3), ^^[2] = ^^ + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 3), ^^[3] = − ^^ , with ^^ = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) + 4) ≫ 3 for (1/32) pixel resolution, and ^^[0] = − ^^, ^^[1] = ^^ + 256 – ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 2), ^^[2] = ^^ + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 2), ^^[3] = − ^^ , with ^^ = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) + 16) ≫ 5 for (1/64) pixel resolution. As a variation of the above first embodiment, a second embodiment uses a reference sample filtering condition in the interpolation as follows: Let ^^0, ^^1, ^^2, and ^^3 be four sample values derived as follows; ^^0 = ^^0, ^^1 = ^^1’, if interpolationFlag is true, else ^^1 = ^^1, ^^2 = ^^2’, if interpolationFlag is true, else ^^2 = ^^2, ^^3 = ^^3. If |( ^^1’ – ^^2’)| <= ^^ℎ, ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ( ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^) ≫ ^^ℎ ^^ ^^ ^^ where, ^^ ^^ ^^ ^^ ^^ ^^ = 16 and ^^ℎ ^^ ^^ ^^ = 5 for (1/32) pixel resolution, and ^^ ^^ ^^ ^^ ^^ ^^ = 32 and ^^ℎ ^^ ^^ ^^ = 6 for (1/64) pixel resolution; Else where the filter coefficients ^^[0], ^^[1], ^^[2], and ^^[3] are derived as above in the first embodiment. Using any one of the above embodiments, the interpolation also can be formulated more efficiently as a linear interpolation with an update term as follows for the first embodiment: ^^ ^^ ^^ ^^ ^^ ( ^^, ^^) = ^^ ^^ ^^ ^^( ^^1 where, ^^ℎ ^^ ^^ ^^ = 3 for (1/32) pixel resolution and ^^ℎ ^^ ^^ ^^ = 2 for (1/64) pixel resolution; if |( ^^1’ – ^^2’)| <= ^^ℎ, ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = 0, else (i.e., if |( ^^1’ – ^^2’)| > ^^ℎ) ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ = ^^ The interpolation using the second embodiment can also be formulated analogously as: ^^ ^^ ^^ ^^ ^^ ( ^^, ^^) = ^^ ^^ ^^ ^^( ^^1 ( ^^1 + ^^2 − ^^0 − ^^3) where, the parameters ^^ℎ ^^ ^^ ^^ and ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ are determined in a same manner as above. In a third embodiment, the interpolation can be a mix of the above two where the linear part uses the filtered or unfiltered reference samples depending on the value of the interpolationFlag, as in the second embodiment, and the second term (update term) uses the original unfiltered samples: ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ^^ ^^ ^^ ^^( ^^1 + ((( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ ^^ℎ ^^ ^^ ^^) ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^1 + ^^2 − ^^0 − ^^3) + 128) ≫ 8)). The embodiments described above require the computation of the parameter A once for every row of the target block as the parameter ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ is computed once for every row of the target block. Alternatively, the values can be pre-computed and stored in an array. Table 1 and Table 2 below list the values of A for all values of ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ at (1/32) and (1/64) pixel resolutions respectively. Note that the values at pixel resolution (1/32) in Table 1 can also be retrieved from the even columns of Table 2, that is, by substituting (2*deltaFrac) for deltaFrac. Therefore, only one array defined for the A values in Table 2 is sufficient. Table 1: Parameter A values at pixel resolution (1/32) deltaFrac 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A 0 4 8 11 14 17 20 22 24 26 28 29 30 31 32 32 deltaFrac 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 A 32 32 32 31 30 29 28 26 24 22 20 17 14 11 8 4 Table 2: Parameter A values at pixel resolution (1/64) deltaFrac 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A 0 2 4 6 8 9 11 12 14 15 17 18 20 21 22 23 deltaFrac 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 A 24 25 26 27 28 28 29 29 30 30 31 31 32 32 32 32 deltaFrac 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 A 32 32 32 32 32 31 31 30 30 29 29 28 28 27 26 25 deltaFrac 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 A 24 23 22 21 20 18 17 15 14 12 11 9 8 6 4 2 Also to note that, the above embodiments for reference sample interpolation are applicable to any reference line in the case of simple MRL, or to all reference lines in the case of weighted MRL, which has been adopted in ECM. In other embodiments, the interpolation method can be chosen to depend on the reference line index. FIG.9 illustrates an example of a method 900 for interpolating predictor samples of a block of a picture according to an embodiment in the case where the interpolation uses four nearest reference samples. Method 900 further details step 830 discussed with FIG.8. At 910, two nearest reference samples (P1 and P2 in FIG.7) are determined from among the four nearest reference samples (P0-P3), these two samples P1 and P2 are reference samples nearest to the location of the predictor sample, one on each side of the location of the predictor sample. At 920, filtered values for the two nearest reference samples P1 and P2 are determined, for example using the low-pass filter mentioned above. At 930, an absolute value of a difference between the filtered values of the two nearest reference samples P1 and P2 is determined. At 940, the absolute value is compared with a given value or threshold. If the absolute value is smaller than or equal to the given value, at 950, the update term is set to 0 and linear interpolation is used for determining the prediction value of the pixel using the two nearest reference samples P1 and P2. Otherwise, at 960, the prediction value of the pixel is determined using the linear interpolation using the two nearest reference samples P1 and P2 and the update term using the four nearest reference samples. In some variant, the linear interpolation uses the filtered values of the two nearest reference samples P1 and P2. In other variant, an interpolation flag indicates whether the filtered or unfiltered values of the two nearest reference samples P1 and P2 are used for the linear interpolation. For instance, the interpolation flag is set in a similar manner as in ECM. The interpolation flag can be set for example depending on the size of the block and or on an angle value of the non-diagonal direction of the intra prediction. In a further variant, the interpolation flag further indicates whether the filtered or unfiltered values of the two nearest reference samples P1 and P2 are used for the update term. In some variant, at 940, an additional condition can be based on the interpolation flag. For example, if the absolute value is smaller than or equals to a given value and the interpolationFlag is enabled, the interpolation is a linear interpolation (950), otherwise the interpolation uses the linear interpolation and the update term (960). In other variant, the additional condition can be based on the size of the block. For example, if the absolute value is smaller than or equals to a given value, and the size of the block is larger than or equal to a given size, the interpolation is a linear interpolation (950), otherwise the interpolation uses the linear interpolation and the update term (960). For example the given size is 32. In the following, a derivation for the interpolation formula is provided. Derivation of the Prediction formula Let us assume that four samples ^^0, ^^1, ^^2, and ^^3 of a 1-D signal ^^( ^^) are located at the co-ordinates ^^ = -1, 0, 1, and 2 respectively. We are interested in interpolating the values of function ^^( ^^) in the interval [0,1]. Using the first order Taylor series expansion, we can compute the value of the function at distance ^^ from ^^1 as ^^( ^^) = ^^(0) + ^^ ∗ ^^’(0) where ^^’(0) denotes the derivative at ^^ = 0. Taking ^^(0) as ^^1 and ^^’(0) as ( ^^2 − ^^0)/2, we get ^^( ^^) = ^^1 + ^^ ∗ ( ^^2 − ^^0)/2 Eq. (A) Similarly using a Taylor series expansion around ^^ = 1, we can estimate the function value at the same point as ^^( ^^) = ^^(1) – (1 − ^^) ∗ ^^’(1) where ^^’(1) denotes the derivative at ^^ = 1. Taking ^^(1) as ^^2 and ^^’(1) as ( ^^3 − ^^1)/2, we get ^^( ^^) = ^^2 + (1 − ^^) ∗ ( ^^1 − ^^3)/2 Eq. (B) Now, taking a weighted average of (A) and (B), we get ^^( ^^) = (1 − ^^( ^^)) ∗ ( ^^1 + ^^ ∗ ( ^^2 − ^^0)/2) + ^^( ^^) ∗ ( ^^2 + (1 − ^^) ∗ ( ^^1 − ^^3)/2) where ^^( ^^) denotes the weighting function. For simplicity, and to maintain the boundary conditions that ^^(0) = ^^1 and ^^(1) = ^^2, we use ^^( ^^) = ^^. Thus, ^^( ^^) = (1 − ^^) ∗ ( ^^1 + ^^ ∗ ( ^^2 − ^^0)/2) + ^^ ∗ ( ^^2 + (1 − ^^) ∗ ( ^^1 − ^^3)/2) = ((1 − ^^) ∗ ^^1 + ^^ ∗ ^^2) + ( ^^ ∗ (1 − ^^)/2) ∗ ( ^^1 + ^^2 − ^^0 − ^^3) Eq. (C) The above formulation is a bi-quadratic formulation that is used as it is in the embodiments provided herein that describes examples of implementation of the above formulation. No approximation is done of the above formulation. In the embodiments described herein, the above formulation is used as it is and the associated terms are derived in some of the provided embodiments in the context of ECM. In Eq. (C ), the first two terms constitute a linear interpolation using the two nearest reference samples, that is, ^^1 and ^^2, and the third term is a quadratic update term that involves all four nearest reference samples. Now, expanding Eq. (C), we get ^^( ^^) = −( ^^(1 − ^^)/2) ∗ ^^0 + (1 − ^^ + ^^(1 − ^^)/2) ∗ ^^1 + ( ^^ + ^^ ∗ (1 − ^^)/2) ∗ ^^2 – ( ^^ ∗ (1 − ^^)/2) ∗ ^^3 Let ^^( ^^) ≝ ^^(1 − ^^)/2. The above equation can now be expressed as: ^^( ^^) = − ^^( ^^) ∗ ^^0 + (1 − ^^ + ^^( ^^)) ∗ ^^1 + ( ^^ + ^^( ^^)) ∗ ^^2 – ^^( ^^) ∗ ^^3 Eq. (D) For (1/32) pixel resolution, ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/32. Substituting the value of ^^ in the definition of ^^( ^^), we get where ^^ = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) + 4)/8 including the rounding offset. Now substituting the value of Q(x) in Eq. (D), we get ^^( ^^) = (− ^^ ∗ ^^0 + ((32 – ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ 8 + ^^) ∗ ^^1 + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ 8 + ^^) ∗ ^^2 − ^^ ∗ ^^3)/256 Using the rounding offset and replacing the multiplications with bit-shifts, we get Similarly, for (1/64) pixel resolution, ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/64. Substituting the value of ^^ in the definition of ^^( ^^), we get ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^ 64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ 64 − ^^ ^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ^^( ^^) = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ = 32 = ^^/256 2 ∗ 64 ∗ 64 256 where ^^ = ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) + 16)/32 including the rounding offset. Now substituting the value of Q(x) in Eq.(D), we get ^^( ^^) = (− ^^ ∗ ^^0 + ((64 – ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^) ∗ 4 + ^^) ∗ ^^1 + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ 4 + ^^) ∗ ^^2 − ^^ ∗ ^^3)/256 Using the rounding offset and replacing the multiplications with bit-shifts, we get When the two closest samples have similar values, we do not include the quadratic term and use the linear interpolation. From Eq. (C), ^^( ^^) = ((1 − ^^) ∗ ^^1 + ^^ ∗ ^^2) = ^^1 + ^^ ∗ ( ^^2 − ^^1) = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^) ≫ ^^ℎ ^^ ^^ ^^) where ^^ ^^ ^^ ^^ ^^ ^^ = 16 and ^^ℎ ^^ ^^ ^^ = 5 for (1/32) pixel resolution, and ^^ ^^ ^^ ^^ ^^ ^^ = 32 and ^^ℎ ^^ ^^ ^^ = 6 for (1/64) pixel resolution. Now, returning to Eq. (C), the function can be equivalently expressed as: ^^( ^^) = ^^1 + ^^ ∗ ( ^^2 − ^^1) + ( ^^ ∗ (1 − ^^)/2) ∗ ( ^^1 + ^^2 − ^^0 − ^^3) Eq. (E) Substituting ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/32 for (1/32) pixl resolution in the above Eq. (E), we get ^^( ^^) = ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1)/32 + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^)/(2 ∗ 32 ∗ 32)) ∗ ( ^^1 + ^^2 − ^^0 − ^^3) = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 3) ∗ ( ^^2 − ^^1) + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (32 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^)/8) ∗ ( ^^1 + ^^2 − ^^0 − ^^3))/256 = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 3) ∗ ( ^^2 − ^^1) + ^^ ∗ ( ^^1 + ^^2 − ^^0 − ^^3) + 128) ≫ 8 Including the rounding offset. Similarly, substituting ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/64 for (1/64) pixel resolution in Eq. (E), we get ^^( ^^) = ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1)/64 + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^)/(2 ∗ 64 ∗ 64)) ∗ ( ^^1 + ^^2 − ^^0 − ^^3) = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 2) ∗ ( ^^2 − ^^1) + ( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ (64 − ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^)/32) ∗ ( ^^1 + ^^2 − ^^0 − ^^3))/256 = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ 2)( ^^2 − ^^1) + ^^ ∗ ( ^^1 + ^^2 − ^^0 − ^^3) + 128) ≫ 8 Including the rounding offset. Thus, the general formula is ^^( ^^) = ^^1 + (( ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ≪ ^^ℎ ^^ ^^ ^^) ∗ ( ^^2 − ^^1) + ^^ ∗ ( ^^1 + ^^2 − ^^0 − ^^3) + 128) ≫ 8 where ^^ℎ ^^ ^^ ^^ = 3 for (1/32) pixel resolution, and ^^ℎ ^^ ^^ ^^ = 2 for (1/64) pixel resolution. In a similar manner, implementation of an interpolation based on six nearest reference samples instead of four nearest reference samples can be provided. Some embodiments are described below for an interpolation that is based on six nearest reference samples. For example, in the case of using six nearest reference samples for the interpolation, an embodiment for the interpolation can be as follows (the same notations as for the four nearest reference samples case are used and reference samples are noted as in FIG.6): ^^5 + 128) >> 8). Here, the filter coefficients can be the existing 6-tap filter coefficients derived from the cubic filters or smoothing filters as appropriate, in which case, the change is only the conditional linear filtering. Alternatively, the filters can be derived using a similar approach as given earlier for the 4-tap filter, but using a 2nd order Taylor series expansion for the function ^^( ^^). This is described below. Let us assume that six samples ^^0, ^^1, ^^2, ^^3, ^^4, and ^^5 of a 1-D signal ^^( ^^) are located at the co-ordinates ^^ = -2, -1, 0, 1, 2, and 3 respectively. We are interested in interpolating the values of function ^^( ^^) in the interval [0,1]. Using the second order Taylor series expansion, we can compute the value of the function at distance ^^ from ^^2 as ^^( ^^) = ^^(0) + ^^ ∗ ^^’(0) + ^^2 ^^′′(0)/2 where ^^’(0) and ^^′′(0) denote the first and second order derivatives at ^^ = 0. Similarly using a Taylor series expansion around ^^ = 1, we can estimate the function value at the same point as ^^( ^^) = ^^(1) − (1 − ^^) ∗ ^^’(1) + (1 − ^^)2 ^^′′(1)/2, where ^^’(1) and ^^′′(1) denote the first and second order derivatives at ^^ = 1. Now, taking a weighted average of the two expressions, we get where, we use the same weighting function a ^^( ^^) = ^^. Thus, As before, we use ^^(0) = ( ^^3 − ^^1)/2 ^^(1) = ( ^^4 − ^^2)/2 ^^′′(0) = ( ^^4 + ^^0 − 2 ^^2)/4 ^^′′(1) = ( ^^5 + ^^1 − 2 ^^3)/4 After substituting these values in the above equation, and then simplifying, we get As we see, now we have two cubic terms in the expression in addition to the linear term and the quadratic term. A 6-tap filter can be obtained by grouping the coefficients associated with the sample values ^^0 − ^^5. ^^( ^^) = ^^[0] ∗ ^^0 + ^^[1] ∗ ^^1 + ^^[2] ∗ ^^2 + ^^[3] ∗ ^^3 + ^^[4] ∗ ^^4 + ^^[5] ∗ ^^5. Then the exact values of the filter coefficients can be computed by substituting ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/32 for (1/32) pixel resolution, and ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/64 for (1/64) pixel resolution, and then adjusting the values for a denominator value of 256. In another embodiment, a similar implementation using a linear interpolation and update terms as for the 4 nearest reference samples case can be used. In this embodiment, the interpolation can be rewritten as: ^^( ^^) = (1 − ^^) ^^2 + ^^ ^^3 + ^^1 ∗ ( ^^2 + ^^3 − ^^1 − ^^4) + ^^2 ∗ ( ^^4 + ^^0 − 2 ^^2) + ^^3 ∗ ( ^^5 + ^^1 − 2 ^^3) with a1, a2 and a3 being the update terms as follows: a1 = ( ^^ ∗ (1 − ^^)/2), a2 = ( ^^2(1 − ^^)/8) and a3 = ( ^^(1 − ^^)2/8). The exact values of the update terms can be computed by substituting ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/32 for (1/32) pixel resolution, and ^^ = ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^/64 for (1/64) pixel resolution, and then adjusting the values for a denominator value of 256. As for the other embodiments described above, the update terms can be computed on the fly (once per row of the block) or stored in a table as a function of deltaFrac. In another embodiment, the embodiments described above for the 4 nearest reference samples and for the 6 nearest reference samples can be combined and used conditionally based on two thresholds (Th1, Th2) as illustrated with FIG. 10. An example of such an embodiment is provided below, where the notations of the reference samples refer to FIG.6: Else if |( ^^2 + ^^3 − ^^1 − ^^4)| <= ^^ℎ2 , ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ^^ ^^ ^^ ^^(( ^^[0] ∗ ^^1 + ^^[1] ∗ ^^2 + ^^[2] ∗ ^^3 + ^^[3] ∗ ^^4 + 128) >> 8), Else ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ^^ ^^ ^^ ^^(( ^^[0] ∗ ^^0 + ^^[1] ∗ ^^1 + ^^[2] ∗ ^^2 + ^^[3] ∗ ^^3 + ^^[4] ∗ ^^4 + ^^[5] ∗ ^^5 + 128) >> 8). where ^^[ ^^] and ^^[ ^^] denote the 4-tap and 6-tap filters respectively, and the reference samples are denoted as ^^0 − ^^5, and ^^2′ and ^^3′ denote the filtered reference samples corresponding to reference samples ^^2 and ^^3. Similar to the second and third embodiments described above, other variations of this embodiment can be obtained by modifying the conditions, and/or using filtered or unfiltered values of reference samples. FIG.10 illustrates an example of a method 1000 for interpolating predictor samples of a block of a picture according to an embodiment in the case where the interpolation uses six or four nearest reference samples. Method 1000 further details step 830 discussed with FIG.8. At 1010, two nearest reference samples (P2 and P3 in FIG.6) are determined from among the six nearest reference samples (P0-P5), these two samples P2 and P3 are reference samples nearest to the location of the predictor sample, one on each side of the location of the predictor sample. At 1020, filtered values P2’ and P3’ for the two nearest reference samples P2 and P3 are determined, for example using the low-pass filter mentioned further above. At 1030, a first absolute value of a difference between the filtered values P2’ and P3’ of the two nearest reference samples P2 and P3 is determined. At 1040, the first absolute value is compared with a first given value or threshold. If the first absolute value is smaller than or equals to the given value, at 1050, linear interpolation is used for determining the prediction value of the pixel using the two nearest reference samples P2 and P3. Otherwise, at 1060, two other nearest reference samples (P1 and P4 in FIG.6) are determined from among the remaining four nearest reference samples (P0, P1, P4, P5), these two samples P1 and P4 are reference samples nearest to the location of the predictor sample (other than P2 and P3), one on each side of the location of the predictor sample. At 1070, a second absolute value of a difference is determined, this time between the sum of values of the two nearest reference samples P2 and P3 and the sum of values of the other two nearest reference samples P1 and P4. That is the second absolute value is determined as |( ^^2 + ^^3 − ^^1 − ^^4)|. At 1080, the second absolute value is compared with a second given value or threshold. If the second absolute value is smaller than or equals to the second given value, at 1081, the prediction value of the pixel is determined using the 4-tap filter as designed according to an embodiment described herein, or in the form of the linear interpolation using the two nearest reference samples P2 and P3 and the update term using the four nearest reference samples. Otherwise (the second absolute value is higher than the second given value), at 1082, the prediction value of the pixel is determined using the 6-tap filter as designed according to an embodiment described herein, or in the form of the linear interpolation using the two nearest reference samples P2 and P3 and the update terms using the six nearest reference samples. In some variant, the linear interpolation uses the filtered values of the two nearest reference samples P2 and P3. In other variant, an interpolation flag indicates whether the filtered or unfiltered values of the two nearest reference samples P2 and P3 are used for the linear interpolation. For instance, the interpolation flag is set in a similar manner as in ECM. The interpolation flag can be set for example depending on the size of the block and or on an angle value of the non-diagonal direction of the intra prediction. In a further variant, the interpolation flag further indicates whether the filtered or unfiltered values of the two nearest reference samples P2 and P3 are used for the update terms. In some variant, similarly as for the embodiment described with FIG.9, at 1040 or 1080, an additional condition can be based on the interpolation flag. In other variant, the additional condition can be based on a size of the block. For example, if the first absolute value is below than or equals the first given value and the size of the block is higher than or equals to a given size, the interpolation is a linear interpolation (1050), otherwise the interpolation uses the 4-tap or 6-tap filters depending on the second absolute value. In other variants, the principles described herein are implemented in an ECM 8 codec supporting wide angular intra prediction, Intra Prediction with Sub-Partitions (ISP), Decoder side Intra Mode Derivation (DIMD), and TIMD, Spatial Geometric Partitioning Mode (SGPM), etc. In some variants, any of the embodiments described herein are used for the block if the coding mode of the block is among a given set of coding modes. For example, such a given set of coding modes comprises at least one of wide angular intra prediction, Intra Prediction with Sub-Partitions (ISP), Decoder side Intra Mode Derivation (DIMD), and TIMD, or Spatial Geometric Partitioning Mode (SGPM). In a first variant, for the angular prediction of a Luma block in the case any of ISP, MRL, TIMD, DIMD, or SGPM is enabled or if the prediction mode is a wide angular mode, or any combination thereof, the predictor samples are interpolated using the four nearest samples as proposed in the first embodiment. In all other cases, the existing interpolation using a 6-tap cubic or smoothing filter is used. With an angular prediction mode for a chroma block, either the existing linear interpolation or the method in the first embodiment, is used to interpolate the predictor samples. In a second variant, the same as the first variant above is used but without the use of a threshold, i.e., the proposed method with a 4-tap filter is used to interpolate the predictor samples irrespective of the values of the two nearest reference samples. In a third variant, for the angular prediction of a Luma block in the case any of ISP, MRL, TIMD, DIMD, or SGPM is enabled or if the prediction mode is a wide angular mode, or any combination thereof, the predictor samples are interpolated using the four nearest samples as proposed in the second embodiment. In all other cases, the existing interpolation using a 6- tap cubic or smoothing filter is used. With an angular prediction mode for a chroma block, either the existing linear interpolation or the method of the first embodiment, is used to interpolate the predictor samples. In a fourth variant, the same as the third variant above is used but without the use of a threshold, i.e., the second embodiment with a 4-tap filter is used to interpolate the predictor samples irrespective of the values of the two nearest reference samples. In a fifth variant, for the angular prediction of a Luma block in the case any of ISP, MRL, TIMD, DIMD, or SGPM is enabled or if the prediction mode is a wide angular mode, or any combination thereof, the predictor samples are interpolated using the four nearest samples as proposed in the third embodiment. In all other cases, the existing interpolation using a 6-tap cubic or smoothing filter is used. With an angular prediction mode for a chroma block, either the existing linear interpolation or the method in the first embodiment, is used to interpolate the predictor samples. In a sixth variant, the same as for the fifth variant is used, but without the use of a threshold, i.e., the third embodiment with a 4-tap filter is used to interpolate the predictor samples irrespective of the values of the two nearest reference samples. In a seventh variant, any of the first, third or fifth variants is used but with additional or different constraints for the use case of linear interpolation. For example, using the second embodiment as in the third variant, the interpolation can be performed as: If |( ^^1’ – ^^2’)| <= ^^ℎ, and interpolationFlag is true ^^ ^^ ^^ ^^ ^^ ( ^^, ^^) = ( ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^) ≫ ^^ℎ ^^ ^^ ^^, Else ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ^^ ^^ ^^ ^^(( ^^[0] ∗ ^^0 + ^^[1] ∗ ^^1 + ^^[2] ∗ ^^2 + ^^[3] ∗ ^^3 + 128) >> 8). Or, If |( ^^1’ – ^^2’)| <= ^^ℎ, and blockHeight >= 32 and blockWidth >= 32 ^^ ^^ ^^ ^^ ^^( ^^, ^^) = ( ^^1 + ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ^^ ∗ ( ^^2 − ^^1) + ^^ ^^ ^^ ^^ ^^ ^^) ≫ ^^ℎ ^^ ^^ ^^, Else In an eighth variant, any of the first, third, fifth or seventh variants is used where the proposed interpolation algorithm is applied for the Luma blocks with the condition that any of ISP, MRL, TIMD, DIMD, or SGPM is disabled, or if the prediction mode is NOT a wide angular mode, or any combination thereof. In a nineth variant, for the angular prediction of a Luma block, the predictor samples are interpolated using the four nearest samples as proposed in the first, second or third embodiments, replacing the existing interpolation that uses a 6-tap cubic or smoothing filter. With an angular prediction mode for a chroma block, either the existing linear interpolation or the method in the first embodiment, is used to interpolate the predictor samples. Any of the variants described above can also apply to the embodiments described in the case of the interpolation using six nearest reference samples rather than four. In a tenth embodiment, a template consisting of the causal decoded samples on top and left of a target block is used to decide on the interpolation filter used for the prediction of the target block. The template is predicted using all the interpolation filter options (linear interpolation, 4/6 tap cubic and smoothing filters, and the 4/6 tap filters proposed in any of the embodiments described herein) and the best filter is decided based on the minimum SAD or SATD score. The decoder performs the same operations as the encoder to determine the best filter and thus there is no need of signaling for the interpolation filter used for a target block. In another variant, the thresholds used in the various previous embodiments or variants can be hard-coded in the codec, or signaled in the bitstream, in the slice header, picture header, Picture parameter Set (PPS) or Sequence Parameter Set (SPS). The various embodiments above (or a subset) can be selected based on a value. For example, an index pointing to the desired prediction method, signaled in the bitstream (slice header, picture header, PPS or SPS). A subset of interpolation methods coexist, and the prediction method is selected by a flag, or an index in the bitstream for the current CU. The signaling syntax may use CABAC coding with a context based on the flag value of neighboring CUs. Experimental results The interpolation method according to the second variant has been implemented with the ECM 8 codec for the cases whenever a target block with angular prediction mode uses ISP, DIMD, TIMD, or wide angular mode. The linear interpolation in chroma blocks is replaced by the proposed interpolation method as in the first embodiment. Table 3 shows the All-Intra (AI) BD- rate performance of the proposed method together with unified PDPC versus the ECM 8 anchor. It can be seen that there is a gain of about 0.09% for the Luma component at about the same encoder and decoder complexities. Table 3: BD-rate performance of the proposed interpolation in the second variant versus ECM 8 anchor. All Intra Main 10 Over ECM-8.0-IDG Y U V EncT DecT Class A1 -0.05% -0.02% -0.01% 101% 104% Class A2 -0.07% -0.06% -0.10% 101% 99% Class B -0.07% -0.05% -0.02% 100% 100% Class C -0.18% -0.27% -0.29% 100% 98% Class E -0.07% -0.32% -0.08% 95% 97% Overall -0.09% -0.14% -0.10% 99% 100% Class D -0.13% -0.10% -0.16% 98% 94% Class F -0.06% -0.21% -0.25% 96% 96% Class TGM #VALUE! #VALUE! #VALUE! #NUM! #NUM! FIG. 11 illustrates a block diagram of a system within which aspects of the present embodiments may be implemented, according to another embodiment. FIG. 11 shows one embodiment of an apparatus 1100 for encoding or decoding a video according to any one of the embodiments described herein. The apparatus comprises Processor 1110 and can be interconnected to a memory 1120 through at least one port. Both Processor 1110 and memory 1120 can also have one or more additional interconnections to external connections. Processor 1110 is also configured to, using any one of the embodiments described herein. For instance, the processor 1110 is configured to determine, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtain at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtain a value for the predictor sample based on an interpolation that uses the at least four reference samples, and encode the block based on the value, using any one of the embodiments described herein. For instance, the processor 1110 using a computer program product comprising code instructions that implements any one of embodiments described herein. In other embodiments, Processor 1110 is configured to determine, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtain at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtain a value for the predictor sample based on an interpolation that uses the at least four reference samples, decode the block based on the value, using any one of the embodiments described herein. For instance, the processor 1110 is configured using a computer program product comprising code instructions that implements any one of embodiments described herein. In an embodiment, illustrated in FIG. 12, in a transmission context between two remote devices A and B over a communication network NET, the device A comprises a processor in relation with memory RAM and ROM which are configured to implement a method for encoding a video, as described with FIG. 1-10 and the device B comprises a processor in relation with memory RAM and ROM which are configured to implement a method for decoding a video as described in relation with FIG 1-10. In accordance with an example, the network is a broadcast network, adapted to broadcast/transmit a coded video from device A to decoding devices including the device B. FIG. 13 shows an example of the syntax of a signal transmitted over a packet-based transmission protocol. Each transmitted packet P comprises a header H and a payload PAYLOAD. In some embodiments, the payload PAYLOAD may comprise video data encoded according to any one of the embodiments described above. The payload can also comprise any signaling as described above. For example, the payload can comprise any of the threshold Th, Th1 or Th2, or an information indicating which filter to use for the interpolation among at least a linear interpolation, 4 or 6 tap cubic filter, smoothing filter or 4 or 6-tap filter determined according to any one of the embodiments described herein, the information can be signaled for the picture or for the block Various implementations involve decoding. “Decoding”, as used in this application, can encompass all or part of the processes performed, for example, on a received encoded sequence in order to produce a final output suitable for display. In various embodiments, such processes include one or more of the processes typically performed by a decoder, for example, entropy decoding, inverse quantization, inverse transformation, and differential decoding. In various embodiments, such processes also, or alternatively, include processes performed by a decoder of various implementations described in this application, for example, entropy decoding a sequence of binary symbols to reconstruct image or video data. As further examples, in one embodiment “decoding” refers only to entropy decoding, in another embodiment “decoding” refers only to differential decoding, and in another embodiment “decoding” refers to a combination of entropy decoding and differential decoding, and in another embodiment “decoding” refers to the whole reconstructing picture process including entropy decoding. Whether the phrase “decoding process” is intended to refer specifically to a subset of operations or generally to the broader decoding process will be clear based on the context of the specific descriptions and is believed to be well understood by those skilled in the art. Various implementations involve encoding. In an analogous way to the above discussion about “decoding”, “encoding” as used in this application can encompass all or part of the processes performed, for example, on an input video sequence in order to produce an encoded bitstream. In various embodiments, such processes include one or more of the processes typically performed by an encoder, for example, partitioning, differential encoding, transformation, quantization, and entropy encoding. In various embodiments, such processes also, or alternatively, include processes performed by an encoder of various implementations described in this application, for example, determining re-sampling filter coefficients, re- sampling a decoded picture. As further examples, in one embodiment “encoding” refers only to entropy encoding, in another embodiment “encoding” refers only to differential encoding, and in another embodiment “encoding” refers to a combination of differential encoding and entropy encoding. Whether the phrase “encoding process” is intended to refer specifically to a subset of operations or generally to the broader encoding process will be clear based on the context of the specific descriptions and is believed to be well understood by those skilled in the art. Note that the syntax elements as used herein, are descriptive terms. As such, they do not preclude the use of other syntax element names. This disclosure has described various pieces of information, such as for example syntax, that can be transmitted or stored, for example. This information can be packaged or arranged in a variety of manners, including for example manners common in video standards such as putting the information into an SPS, a PPS, a NAL unit, a header (for example, a NAL unit header, or a slice header), or an SEI message. Other manners are also available, including for example manners common for system level or application level standards such as putting the information into one or more of the following: a. SDP (session description protocol), a format for describing multimedia communication sessions for the purposes of session announcement and session invitation, for example as described in RFCs and used in conjunction with RTP (Real-time Transport Protocol) transmission. b. DASH MPD (Media Presentation Description) Descriptors, for example as used in DASH and transmitted over HTTP, a Descriptor is associated to a Representation or collection of Representations to provide additional characteristic to the content Representation. c. RTP header extensions, for example as used during RTP streaming. d. ISO Base Media File Format, for example as used in OMAF and using boxes which are object-oriented building blocks defined by a unique type identifier and length also known as 'atoms' in some specifications. e. HLS (HTTP live Streaming) manifest transmitted over HTTP. A manifest can be associated, for example, to a version or collection of versions of a content to provide characteristics of the version or collection of versions. When a figure is presented as a flow diagram, it should be understood that it also provides a block diagram of a corresponding apparatus. Similarly, when a figure is presented as a block diagram, it should be understood that it also provides a flow diagram of a corresponding method/process. Some embodiments refer to rate distortion optimization. In particular, during the encoding process, the balance or trade-off between the rate and distortion is usually considered, often given the constraints of computational complexity. The rate distortion optimization is usually formulated as minimizing a rate distortion function, which is a weighted sum of the rate and of the distortion. There are different approaches to solve the rate distortion optimization problem. For example, the approaches may be based on an extensive testing of all encoding options, including all considered modes or coding parameters values, with a complete evaluation of their coding cost and related distortion of the reconstructed signal after coding and decoding. Faster approaches may also be used, to save encoding complexity, in particular with computation of an approximated distortion based on the prediction or the prediction residual signal, not the reconstructed one. Mix of these two approaches can also be used, such as by using an approximated distortion for only some of the possible encoding options, and a complete distortion for other encoding options. Other approaches only evaluate a subset of the possible encoding options. More generally, many approaches employ any of a variety of techniques to perform the optimization, but the optimization is not necessarily a complete evaluation of both the coding cost and related distortion. The implementations and aspects described herein can be implemented in, for example, a method or a process, an apparatus, a software program, a data stream, or a signal. Even if only discussed in the context of a single form of implementation (for example, discussed only as a method), the implementation of features discussed can also be implemented in other forms (for example, an apparatus or program). An apparatus can be implemented in, for example, appropriate hardware, software, and firmware. The methods can be implemented in, for example, a processor, which refers to processing devices in general, including, for example, a computer, a microprocessor, an integrated circuit, or a programmable logic device. Processors also include communication devices, such as, for example, computers, cell phones, portable/personal digital assistants ("PDAs"), and other devices that facilitate communication of information between end-users. Reference to “one embodiment” or “an embodiment” or “one implementation” or “an implementation”, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment” or “in one implementation” or “in an implementation”, as well any other variations, appearing in various places throughout this application are not necessarily all referring to the same embodiment. Additionally, this application may refer to “determining” various pieces of information. Determining the information can include one or more of, for example, estimating the information, calculating the information, predicting the information, or retrieving the information from memory. Further, this application may refer to “accessing” various pieces of information. Accessing the information can include one or more of, for example, receiving the information, retrieving the information (for example, from memory), storing the information, moving the information, copying the information, calculating the information, determining the information, predicting the information, or estimating the information. Additionally, this application may refer to “receiving” various pieces of information. Receiving is, as with “accessing”, intended to be a broad term. Receiving the information can include one or more of, for example, accessing the information, or retrieving the information (for example, from memory). Further, “receiving” is typically involved, in one way or another, during operations such as, for example, storing the information, processing the information, transmitting the information, moving the information, copying the information, erasing the information, calculating the information, determining the information, predicting the information, or estimating the information. It is to be appreciated that the use of any of the following “and/or”, and “at least one of”, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended, as is clear to one of ordinary skill in this and related arts, for as many items as are listed. Also, as used herein, the word “signal” refers to, among other things, indicating something to a corresponding decoder. In this way, in an embodiment the same parameter is used at both the encoder side and the decoder side. Thus, for example, an encoder can transmit (explicit signaling) a particular parameter to the decoder so that the decoder can use the same particular parameter. Conversely, if the decoder already has the particular parameter as well as others, then signaling can be used without transmitting (implicit signaling) to simply allow the decoder to know and select the particular parameter. By avoiding transmission of any actual functions, a bit savings is realized in various embodiments. It is to be appreciated that signaling can be accomplished in a variety of ways. For example, one or more syntax elements, flags, and so forth are used to signal information to a corresponding decoder in various embodiments. While the preceding relates to the verb form of the word “signal”, the word “signal” can also be used herein as a noun. As will be evident to one of ordinary skill in the art, implementations can produce a variety of signals formatted to carry information that can be, for example, stored or transmitted. The information can include, for example, instructions for performing a method, or data produced by one of the described implementations. For example, a signal can be formatted to carry the bitstream of a described embodiment. Such a signal can be formatted, for example, as an electromagnetic wave (for example, using a radio frequency portion of spectrum) or as a baseband signal. The formatting can include, for example, encoding a data stream and modulating a carrier with the encoded data stream. The information that the signal carries can be, for example, analog or digital information. The signal can be transmitted over a variety of different wired or wireless links, as is known. The signal can be stored on a processor- readable medium. A number of embodiments has been described above. Features of these embodiments can be provided alone or in any combination, across various claim categories and types.

Claims

CLAIMS 1. A method, comprising: determining, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtaining at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtaining a value for the predictor sample based on an interpolation that uses the at least four reference samples, wherein the interpolation is based on a filtering implemented as a linear interpolation and an update term. decoding the block based on the value.
2. An apparatus, comprising one or more processors, wherein said one or more processors is operable to determine, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtain at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtain a value for the predictor sample based on an interpolation that uses the at least four reference samples, wherein the interpolation is based on a filtering implemented as a linear interpolation and an update term. decode the block based on the value.
3. A method, comprising: determining, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtaining at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtaining a value for the predictor sample based on an interpolation that uses the at least four reference samples, wherein the interpolation is based on a filtering implemented as a linear interpolation and an update term. encoding the block based on the value.
4. An apparatus, comprising one or more processors, wherein said one or more processors is operable to determine, for at least one pixel of a block of a picture, a predictor sample based on an intra prediction along a non-diagonal direction, obtain at least four reference samples of the predictor sample from among a plurality of decoded pixels neighboring the block, obtain a value for the predictor sample based on an interpolation that uses the at least four reference samples, wherein the interpolation is based on a filtering implemented as a linear interpolation and an update term. encode the block based on the value.
5. The method of claim 1 or 3 or the apparatus of claim 2 or 4, wherein the interpolation is based on a 4-tap filtering or 6-tap filtering.
6. The method of claim 5, further comprising determining, from among the at least four reference samples, two reference samples nearest to a location of the predictor sample, one on each side of the location of the predictor sample, and wherein the linear interpolation uses the two nearest reference samples.
7. The method of claim 6, further comprising: determining filtered values for the two nearest reference samples, determining an absolute value of a difference between the filtered values of the two nearest reference samples, comparing the absolute value with a given value.
8. The method of claim 7, wherein responsive to a determination that the absolute value is below than or equals the given value, the at least one update term is set to 0.
9. The method of claim 1, 3 or 5-8, wherein if a coding mode of the block is among a given set of coding modes, the interpolation is based on a filtering wherein coefficients of the filter are calculated based on a fractional part of an horizontal offset of a position of the predictor sample from the pixel else the interpolation is based on a 6-tap cubic filter or a smoothing filter whose coefficients are pre- computed and stored in table.
10. The method of claim 9, wherein the given set comprises at least one of the ISP, MRL, TIMD, DIMD, SGPM, or wide angle.
11. The method of any of one claims 5-10, whose coefficients of the 4-tap or 6-tap filter are determined once per row of the block.
12. The method of any one of claims 5-11, wherein coefficients of the 4-tap or 6-tap filter are determined based on a fractional part of an horizontal offset of a position of the predictor sample from the pixel.
13. The method of claim 1, 3 or 5-12, wherein the interpolation is based on a linear interpolation and at least one update term.
14. The method of claim 13, wherein the at least one update term is determined using the at least four reference samples and a factor that depends on a fractional part of an horizontal offset of a position of the predictor sample from the pixel.
15. The method or the apparatus of claim 14, wherein the factor is determined once per row of the block.
16. The method of any of claims 5-13, wherein the linear interpolation uses the filtered values of the two nearest reference samples.
17. The method of claim 16, wherein an interpolation flag indicates whether the filtered or unfiltered values of the two nearest reference samples are used for the linear interpolation.
18. The method of claim 17, wherein the interpolation flag further indicates whether the filtered or unfiltered values of the two nearest reference samples are used for the update term.
19. The method of claim 17 or 18, wherein the interpolation flag is enabled based on a size of the block and an angle of the non-diagonal direction of the intra prediction.
20. The method of one of claims 17-19, wherein responsive to a determination that the absolute value is below than or equals the given value and the interpolation flag is enabled, the interpolation is a linear interpolation.
21. The method of claim 7, wherein responsive to a determination that the absolute value is below than or equals the given value and a size of the block is higher than or equals to a given size, the interpolation corresponds to a linear interpolation.
22. The method of claim 21, wherein the given size is 32.
23. The method of any one claims 1, 3 or 5-22, wherein the update term is based on six reference samples.
24. The method of any of claims 5 or 11-15, wherein the at least four reference samples comprises six reference samples, and the method further comprising: determining, from among the six reference samples, two reference samples nearest to a location of the predictor sample, one on each side of the location of the predictor sample, determining filtered values for the two nearest reference samples, determining a first absolute value of a difference between the filtered values of the two nearest reference samples, responsive to a determination that the first absolute value is lower than or equals a first given value, the interpolation is a linear interpolation that uses unfiltered or filtered values of the two nearest reference samples.
25. The method of claim 24, further comprising determining, from among the six reference samples excluding the two nearest reference samples, two other reference samples nearest to the location of the predictor sample, one on each side of the location of the predictor sample, determining a second absolute value of a difference between a sum of values of two nearest reference samples and a sum of values of the other two nearest reference samples, if the second absolute value is lower than or equals a second given value, the interpolation is a 4-tap filtering that uses unfiltered or filtered values of the two nearest reference samples and of the other two nearest reference samples else the interpolation is a 6-tap filtering that uses unfiltered or filtered values of the six reference samples.
26. The method of claim 1, 3 or 5 or 11-15, further comprising using a template-based cost for determining a filter to use for the interpolation among at least a linear interpolation, 4 or 6 tap cubic filter, smoothing filter or 4 or 6-tap filter determined according to claims 6-25.
27. The method of claim 12, 24 or 25, wherein at least one of the given value, the first given value or the second given value is signaled to a decoder.
28. The method of any one of claims 1, 3 or 5-25, wherein an information is signaled for the picture indicating which filter to use for the interpolation among at least a linear interpolation, 4 or 6 tap cubic filter, smoothing filter or 4 or 6-tap filter determined according to claims 6-25.
29. The method of any one of claims 1, 3 or 5-25, wherein an information is signaled for the block indicating which filter to use for the interpolation among at least a linear interpolation, 4 or 6 tap cubic filter, smoothing filter or 4 or 6-tap filter determined according to claims 6-25.
30. The method of claim 1, 3 or 5-29, or the apparatus of claim 2 or 4, wherein the intra-prediction along a non-diagonal direction corresponds to an intra prediction mode of the block being an angular mode along a non-diagonal direction.
31. The method of claim 1, 3 or 5-30, or the apparatus of claim 2 or 4, wherein the predictor sample is a sample neighboring the block and in the non-diagonal direction from the pixel.
32. The method of claim 1, 3 or 5-31, or the apparatus of claim 2 or 4,wherein the obtaining of the at least four nearest reference samples for the predictor sample comprises determining, from among the plurality of pixels neighboring the block, locations of four pixels nearest a location of the predictor sample, two on each side of the location of the predictor sample, wherein each of the four nearest pixels corresponds to one of the at least four reference samples.
33. A computer program product including instructions for causing one or more processors to carry out the method of any of claims 1, 3, or 5-32.
34. A non-transitory computer readable medium storing executable program instructions to cause a computer executing the program instructions to perform a method according to any of claims 1, 3, or 5-32.
35. A bitstream comprising data representative of a video encoded using the method of any one of claims 1, 3, or 5-32.
36. A non-transitory computer readable medium storing a bitstream of claim 35.
37. A device comprising: an apparatus according to claim 2; and at least one of (i) an antenna configured to receive or transmit a signal, the signal including data representative of the picture, (ii) a band limiter configured to limit the signal to a band of frequencies that includes the data representative of the picture, or (iii) a display configured to display the picture.
38. A device according to claim 37, wherein the device comprises at least one of a television, a cell phone, a tablet, a set-top box.
EP24731369.5A 2023-06-28 2024-06-10 Reference sample interpolation for intra prediction Pending EP4736454A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP23306037 2023-06-28
PCT/EP2024/065883 WO2025002766A1 (en) 2023-06-28 2024-06-10 Reference sample interpolation for intra prediction

Publications (1)

Publication Number Publication Date
EP4736454A1 true EP4736454A1 (en) 2026-05-06

Family

ID=87377877

Family Applications (1)

Application Number Title Priority Date Filing Date
EP24731369.5A Pending EP4736454A1 (en) 2023-06-28 2024-06-10 Reference sample interpolation for intra prediction

Country Status (3)

Country Link
EP (1) EP4736454A1 (en)
CN (1) CN121368894A (en)
WO (1) WO2025002766A1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4437729A4 (en) * 2021-11-22 2025-11-26 Beijing Dajia Internet Information Tech Co Ltd PLANAR MODE IMPROVEMENT FOR INTRAPREDICTION

Also Published As

Publication number Publication date
CN121368894A (en) 2026-01-20
WO2025002766A1 (en) 2025-01-02

Similar Documents

Publication Publication Date Title
US20250392748A1 (en) Methods and apparatuses for encoding and decoding an image or a video using combined intra modes
WO2022268623A1 (en) Template-based intra mode derivation
US20250365419A1 (en) Methods and apparatuses for encoding/decoding a video
WO2025002766A1 (en) Reference sample interpolation for intra prediction
EP3994883A1 (en) Chroma format dependent quantization matrices for video encoding and decoding
US20250106428A1 (en) Methods and apparatuses for encoding/decoding a video
EP4676037A1 (en) Dimd and obic histogram adaptation to mip modes
EP4668739A1 (en) Encoding and decoding methods using geometric partition modes and corresponding apparatuses
EP4625985A1 (en) Hybrid explicit/implicit lfnst/nspt
US20240397064A1 (en) Methods and apparatuses for encoding/decoding a video
US20260101033A1 (en) Encoding and decoding methods using l-shaped partitions and corresponding apparatuses
EP4730771A1 (en) Intra prediction with linear shift
EP4625975A1 (en) Video coding: coding parameter restrictions
WO2024083500A1 (en) Methods and apparatuses for padding reference samples
WO2025067883A1 (en) Deriving a coding mode from one or more template-based costs
WO2025146297A1 (en) Encoding and decoding methods using intra prediction with sub-partitions and corresponding apparatuses
WO2025114149A1 (en) Template-based reordering of gpm candidates
EP4690801A1 (en) Methods and apparatuses for encoding and decoding an image or a video
WO2024231372A1 (en) Adaptive cross-component prediction for inter coded blocks
WO2024256333A1 (en) A coding method or apparatus based on camera motion information
WO2024213520A1 (en) Template-based intra mode derivation from close decoded reference samples
KR20250107180A (en) Encoding and decoding methods for intra prediction modes using a dynamic list of most probable modes and corresponding devices

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE