Partial sample interpolation for reference image resampling
Adaptive interpolation filter selection in video coding addresses resolution mismatches in reference images, reducing artifacts and bitrate by using higher edge preservation filters, thus improving video coding efficiency and quality.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2025-07-02
- Publication Date
- 2026-04-09
AI Technical Summary
Current video coding standards like VVC face issues with visible artifacts and increased bitrate due to misapplication of interpolation filters during motion compensation when reference images are resampled to different resolutions, leading to suboptimal motion-compensated interpolation.
Adaptive selection of interpolation filters based on the resolution equivalence between current and reference images, using higher edge preservation filters when resolution mismatch occurs, and omitting half-sample resolution under certain conditions to improve image quality and reduce bitrate.
Reduces visible artifacts and optimizes bitrate by ensuring appropriate interpolation filter selection, enhancing video coding efficiency and quality.
Smart Images

Figure 0007843404000001 
Figure 0007843404000002 
Figure 0007843404000003
Abstract
Description
[Technical Field]
[0001] This application relates to the concept of video coding, and more specifically to interpolation filters for motion compensation.
[0002] Current video coding standards, such as Variant Video Coding (VVC), allow switching of interpolation filters for motion correction depending on the resolution of the motion vector (MV) that can transmit signals at the block level. If MV (or MV-diff MVD) is encoded at a specific resolution, for example, half-sample precision, then a different interpolation filter can be used to interpolate specific subsample locations.
[0003] Another new feature is the resampling of the reference image, which allows a previously encoded image to be referenced in motion-compensated inter-image predictions that have a different resolution / size than the current image. To do this, the reference image region is resampled into blocks of the same size as the current block. This can lead to situations where several partial positions are obtained using different phases of the interpolation filter.
[0004] For example, if a 16x16 block refers to an image that is 1 / 4 the size in each dimension, the corresponding 4x4 block of the referenced image needs to be upsampled to 16x16, which can include different interpolation filters for specific sub-positions / phases. For instance, if the MV is sent with a signal accuracy related to a smoothing interpolation filter, this filter is applied to the phase related to the upsampling of the reference image, while a sharpening interpolation filter may be applied to other phases.
[0005] This misinterpretation can generate visible artifacts, thus resulting in a worse motion-compensated interpreter, which in turn increases the bitrate required to encode the prediction error and prediction residuals to achieve equal quality.
[0006] This application aims to provide a more efficient video coding concept that supports resampling of reference images.
[0007] This objective is achieved by the subject matter of the independent claim.
[0008] Preferred embodiments of this application are described below with reference to the drawings. [Brief explanation of the drawing]
[0009] [Figure 1] This shows a device for predictively encoding images into a data stream. [Figure 2] This shows a device for predictively decoding images from a data stream. [Figure 3] This shows the relationship between the reconstructed signal and the combination of the predicted residual signal and the predicted signal. [Figure 4a] The reference image and the current image sample are shown spatially overlaid. [Figure 4b] This shows a sample of a reference image and the current image with the same resolution, where the motion vector is defined by the half-pel resolution. [Figure 4c] A video decoder according to an embodiment of the present invention is shown. [Figure 4d]Shows the selection of interpolation filters for different types of samples of the reference image, i.e., samples with different phases. Here, the table in FIG. 9 is used illustratively. The selection regarding the half-pel resolution position has two options that are advantageously selected by the embodiment. Further, the application of the selected interpolation filter is described for one exemplary sample, here a quarter-pel sample. The filter selection among the two half-pel interpolation filters can be done separately for the horizontal and vertical directions such that the reference image is interpolated vertically for the half-pel sample using one half-pel interpolation filter while another half-pel interpolation filter can be used horizontally for interpolation at the half-pel position, or the selection can be done globally for both directions depending on whether the resolutions of the current and reference images match in the vertical and horizontal directions such that one or the other half-pel interpolation filter is used in the horizontal and vertical directions. [Figure 5] Shows a video encoder according to an embodiment of the present invention. [Figure 6] Shows an example of reference image resampling bitrate adaptation for video conferencing with varying throughput. [Figure 7] Shows examples of reference image resampling bitrate adaptation for DASH and open GOP resolution switching. [Figure 8] Shows an example of a third image that performs a RoI zoom-in on a portion of a second image. [Figure 9] Shows an example of a smoothing filter for adaptive motion vector resolution when the motion vector difference is at half-sample resolution. The figure also collects and shows additional interpolation filters for samples with phases other than the half-pel phase in a table. [Figure 10] Shows an example of signaling in a bitstream using a syntax where amvr_flag is equal to 1 and amvr_precision_idx is equal to 0.
[0010] The following description of the figures begins with the presentation of the description of an encoder and a decoder of a block-based predictive codec for encoding the images of a video in order to form an example for an encoding framework in which embodiments of the present invention may be incorporated. Each encoder and decoder is described with respect to FIGS. 1-3. Below, the description of embodiments of the concepts of the present invention is presented along with an explanation of how such concepts may be incorporated into the encoders and decoders of FIGS. 1 and 2 respectively, although the embodiments described with FIGS. 4 and below may be used with encoders and decoders that do not operate according to the encoding framework underlying the encoders and decoders of FIGS. 1 and 2, such as without intra-encoded blocks competing with inter-encoded blocks within one image and / or without transform-based residual encoding.
[0011] FIG. 1 illustratively shows an apparatus for predictively encoding an image 12 into a data stream 14 using transform-based residual encoding. The apparatus or encoder is denoted using reference numeral 10. FIG. 2 shows a corresponding decoder 20, i.e., an apparatus 20 configured to predictively decode an image 12' from the data stream 14 using transform-based residual decoding as well, where the apostrophe has been used to indicate that the image 12' reconstructed by the decoder 20 deviates from the image 12 initially encoded by the apparatus 10 in view of the encoding loss resulting from the quantization of the prediction residual signal. FIGS. 1 and 2 illustratively use transform-based prediction residual encoding, but embodiments of the present application are not limited to this type of prediction residual encoding. This also applies to other details described with respect to FIGS. 1 and 2, as outlined below.
[0012] The encoder 10 is configured to subject the prediction residual signal to a spatial-spectral transform and encode the thus obtained prediction residual signal into the data stream 14. Similarly, the decoder 20 is configured to decode the prediction residual signal from the data stream 14 and subject the thus obtained prediction residual signal to a spectral-spatial transform.
[0013] Internally, the encoder 10 may include a prediction residual signal formatter 22 that generates a prediction residual 24 to measure the deviation of the prediction signal 26 from the original signal, i.e., from the image 12. The prediction residual signal formatter 22 may be, for example, a subtractor that subtracts the prediction signal from the original signal, i.e., from the image 12. The encoder 10 then further includes a converter 28 that applies a spatial-spectral transform to the prediction residual signal 24 to obtain a spectral prediction residual signal 24', which is quantized by a quantizer 32 also configured in the encoder 10. The thus quantized prediction residual signal 24'' is encoded into a bitstream 14. For this purpose, the encoder 10 may optionally include an entropy encoder 34 that entropy encodes the transformed and quantized prediction residual signal into a datastream 14. The prediction signal 26 is generated by the prediction stage 36 of the encoder 10 based on the prediction residual signal 24'' encoded into the datastream 14 and decodeable from the datastream 14. For this purpose, the prediction stage 36 may consist of a dequantizer 38 that dequantizes the prediction residual signal 24'' to obtain a spectral domain prediction residual signal 24'' corresponding to signal 24', as shown in Figure 1, and an inverse transformer 40 that then performs an inverse transform on the latter prediction residual signal 24'', i.e., an inverse transform. That is, it performs a transformation from spectral to spatial, and after removing the quantization loss, obtains a prediction residual signal 24'''' corresponding to the original prediction residual signal 24. Next, the coupler 42 of the prediction stage 36 recombines the prediction signal 26 and the prediction residual signal 24'''' by addition or other means to obtain a reconstructed signal 46, i.e., a reconstruction of the original signal 12. The reconstructed signal 46 may correspond to signal 12'. Next, the prediction module 44 of the prediction stage 36 generates a prediction signal 26 based on signal 46, for example by using spatial prediction, i.e., intra-image prediction, and / or temporal prediction, i.e., inter-image prediction.
[0014] Similarly, the decoder 20 may be internally constructed from components corresponding to the prediction stage 36, as shown in Figure 2, and interconnected in a manner corresponding to the prediction stage 36. Specifically, the entropy decoder 50 of the decoder 20 may entropically decode the quantized spectral domain prediction residual signal 24'' from the data stream, in which the dequantizer 52, inverse converter 54, combiner 56, and prediction module 58, which are interconnected and cooperate in the manner described above with respect to the module of the prediction stage 36, produce a reconstructed signal based on the prediction residual signal 24'' such that the output of the combiner 56 yields a reconstructed signal, i.e., image 12'.
[0015] Although not specifically explained above, it is readily apparent that the encoder 10 can set several coding parameters, including, for example, prediction mode and motion parameters, according to several optimization methods, such as criteria for several rates and distortions, i.e., methods for optimizing coding cost. For example, the encoder 10 and decoder 20, as well as the corresponding modules 44 and 58, may support different prediction modes, such as intra-coding mode and inter-coding mode, respectively. The precision with which the encoder and decoder switch between these prediction mode types may correspond to subdividing images 12 and 12' into encoded segments or encoded blocks, respectively. At the unit of these encoded segments, for example, the image may be subdivided into intra-encoded blocks and inter-encoded blocks. The intra-encoded blocks are predicted based on the spatial, already encoded / decoded neighborhoods of each block, as outlined in more detail below. Several intra-encoded modes may exist and be selected for each intra-encoded segment, including directional or angular intra-encoded modes, to which each segment is filled by extrapolating neighborhood sample values along a certain direction specific to the respective directional intra-encoded mode into the respective intra-encoded segment. The intra-coding mode may also include one or more further modes, such as a DC coding mode in which the prediction for each intra-coding block assigns a DC value to all samples within each intra-coding segment, and / or a planar intra-coding mode in which the prediction for each block approximates or determines that the prediction is a spatial distribution of sample values described by a two-dimensional linear function across the sample positions of each intra-coding block, having a plane driving slope and offset defined by a two-dimensional linear function based on adjacent samples. In comparison, inter-coding blocks may be predicted temporally, for example. For inter-coding blocks, motion vectors may be signaled in the data stream, the motion vectors indicating the spatial displacement of a previously encoded portion of the video to which image 12 belongs, where the previously encoded / decoded image has been sampled to obtain a prediction signal for each inter-coding block.This means that in addition to residual signal coding, which is comprised of data stream 14 such as entropy coding transformation coefficient levels representing the quantized spectral domain predicted residual signal 24'', data stream 14 may also encode and have therein any further parameters such as coding mode parameters for assigning coding modes to various blocks, prediction parameters for parts of the blocks, such as motion parameters for inter-coded segments, and parameters for controlling and signaling the respective subdivision of images 12 and 12' into segments. The decoder 20 uses these parameters to subdivide the image in the same way that the encoder did, assign the same prediction modes to the segments, perform the same predictions, and produce the same predicted signals.
[0016] Figure 3 shows the relationship between the combination of the reconstructed signal, i.e., the reconstructed image 12', on the one hand, and the predicted residual signal 24'''' signaled in the data stream 14, and the predicted signal 26 on the other hand. As already shown above, the combination may be additive. The predicted signal 26 is shown in Figure 3 as an image region subdivided into intra-coded blocks, shown exemplary using hatching, and inter-coded blocks, shown exemplary not to be hatched. The subdivision may be any subdivision, such as a regular subdivision of the image region into rows and columns of square or non-square blocks, or a multi-tree subdivision of image 12 into multiple leaf blocks of varying sizes from a tree root block. A mixture of these, such as a quad-tree subdivision, is shown in Figure 3, in which the image region is first subdivided into rows and columns of a tree root block, and then further subdivided according to a recursive multi-tree subdivision into one or more leaf blocks.
[0017] Again, the data stream 14 may have an intra-encoded mode encoded within it for each intra-encoded block 80, which assigns one of several supported intra-encoded modes to each intra-encoded block 80. For inter-encoded blocks 82, the data stream 14 may have one or more motion parameters encoded within it. In general, the inter-encoded block 82 is not limited to being encoded in time. Alternatively, the inter-encoded block 82 may be any block predicted from a previously encoded portion beyond the current image 12 itself, such as a previously encoded image of the video to which the image 12 belongs, or an image of another view, or a hierarchically lower layer in the case of a scalable encoder and decoder, respectively.
[0018] The predicted residual signal 24'''' in Figure 3 is also illustrated as a subdivision of the image region into blocks 84. These blocks are sometimes called transformation blocks to distinguish them from the same as the coding blocks 80 and 82. In effect, Figure 3 illustrates that the encoder 10 and decoder 20 may use two different subdivisions of image 12 and image 12' into blocks, namely one subdivision into coding blocks 80 and 82, and another subdivision into transformation block 84. Both subdivisions may be the same, i.e., each coding block 80, 82 may simultaneously form a transformation block 84. However, Figure 3 illustrates, for example, the case where the subdivision into transformation block 84 forms an extension of the subdivision into coding blocks 80, 82 such that any boundary between the two blocks 80, 82 coincides with the boundary between the two blocks 84, or alternatively, each block 80, 82 coincides with one of the transformation blocks 84, or with a group of transformation blocks 84. However, the subdivisions may also be determined or selected independently of each other, so that the transformation block 84 can alternately traverse the block boundaries between blocks 80 and 82. Therefore, as far as the subdivision to transformation block 84 is concerned, the same description as that raised for the subdivision to blocks 80 and 82 applies. That is, block 84 may be the result of a normal subdivision of the image region into blocks (with or without row and column arrangement), the result of a recursive multitree subdivision of the image region, or a combination thereof, or any other type of blockization. As a side note, it should be noted that blocks 80, 82, and 84 are not limited to being quadratic, rectangular, or other shapes.
[0019] Figure 3 further shows that the combination of the prediction signal 26 and the prediction residual signal 24'''' yields the directly reconstructed signal 12'. However, it should be noted that, according to an alternative embodiment, multiple prediction signals 26 can be combined with the prediction residual signals 24'''' to yield image 12'.
[0020] In Figure 3, the conversion block 84 has the following meaning: The transformers 28 and 54 perform their transformations in units of these transformation blocks 84. For example, many codecs use some kind of DST or DCT for all transformation blocks 84. Some codecs allow skipping transformations so that for some transformation blocks 84, the predicted residual signal is encoded directly in the spatial domain. However, according to the embodiments described below, the encoder 10 and decoder 20 are configured to support several transformations. For example, the transformations supported by the encoder 10 and decoder 20 may include:
[0021] • DCT-II (or DCT-III), where DCT represents the Discrete Cosine Transform. • DST-IV, where DST stands for Discrete Sine Transform · DCT-IV · DST-VII • Identity transformation (IT)
[0022] Naturally, the converter 28 supports all forward versions of these conversions, while the decoder 20 or the inverse converter 54 supports their corresponding inverse or reverse versions.
[0023] • Inverse DCT-II (or Inverse DCT-III) · Reverse DST-IV ·Inverse DCT-IV · Reverse DST-VII • Identity transformation (IT)
[0024] It should be noted that the set of supported transformations may consist of simply one transformation, such as a transformation from spectrum to space or from space to spectrum.
[0025] As outlined above, Figures 1 to 3 are presented as examples of how the concepts of the present invention, which will be further described below, can be implemented to form specific examples of encoders and decoders according to this application. To that extent, the encoders and decoders in Figures 1 and 2 can represent possible implementations of the encoders and decoders described below herein, respectively. However, Figures 1 and 2 are illustrative only. Nevertheless, an encoder according to an embodiment of this application performs block-based coding of image 12 using a concept outlined in more detail below, and may differ from the encoder in Figure 1 in that, for example, it does not support intra-prediction, or subdivision into blocks 80 is performed in a different manner than illustrated in Figure 3. Similarly, a decoder according to an embodiment of the present application may perform block-based decoding of image 12' from data stream 14 using the coding concepts further outlined below, but may differ from the decoder 20 in Figure 2 in that, for example, it does not support intra-prediction, or it subdivides image 12' into blocks in a different manner than described with respect to Figure 3, and / or it derives prediction residuals from data stream 14 in a spatial domain rather than a transformation domain.
[0026] There are several applications that utilize resolution adaptation for various purposes, such as bitrate adaptation for throughput variability or bitrate adaptation for region of interest (RoI) use cases.
[0027] The current VVC draft typically defines a process called reference image resampling, which allows for varying image sizes within a video sequence of the RoI encoding process, as shown in the example in Figures 6 through 8. For this purpose, the VVC specification draft includes the maximum image size in the sequence parameter set (SPS), the actual image size in the image parameter set (PPS), and the scaling window offset in the PPS (e.g., the red margin in Figure 8), which allows for the derivation of the scaling ratio that needs to be used between the current image and the reference image.
[0028] After describing possible implementations of encoder and decoder frameworks that can incorporate embodiments of this application, this description will again refer to current VVC development in preliminary terms to motivate the details of embodiments outlined later.
[0029] In VVC, the scaling ratio is derived using the image widths, taking into account the scaling window defined in PPS for the current image (PicOutputWidthL) and the reference image (fRefWidth), as follows:
[0030] RefPicScale[i][j][0]= ((fRefWidth<<14)+(PicOutputWidthL>>1)) / PicOutputWidthL RefPicScale[i][j][1]= ((fRefHeight<<14)+(PicOutputHeightL>>1)) / PicOutputHeightL
[0031] PicOutputWidth and PicOutputHeight are sometimes also referred to as CurrPicScalWinWidth and CurrPicScalWinHeight below.
[0032] A scale ratio < 1, i.e., a RefPicScale value < (1 << 14), means that the current image is larger than the reference image, and a ratio > 1, i.e., a RefPicScale value > (1 << 14), means that the current image is smaller than the reference image.
[0033] The current VVC draft specifies four interpolation filters for motion compensation up to 1 / 16 of a sample using partial sample interpolation. The first is designed for normal motion compensation, where the reference image is resampled, there is no RRR, and it is not in affine mode. The second filter is designed for cases where affine mode is used. The remaining two filters are used for downsampling with coefficients of 1.5 and 2. Scaling ratios are allowed from 1 / 8 (8x upsampling) to 2 (2x downsampling).
[0034] Depending on whether affine mode is used and the scaling ratio, one of four filters will be used. The conditions are as follows:
[0035] • Use affine mode => Affine interpolation filter • Scaling ratio > 1.75 => 2x interpolation filter is used for downsampling. • If the scaling ratio is 1.25 <= 1.75 => an interpolation filter for 1.5x downsampling is used. • Normal interpolation filter when scaling ratio <= 1.25 => RPR is not available
[0036] If the resolution change is greater than that of the reference image, or if the ratio value is very small when the current image is smaller than the reference image (scaling ratio <= 1.25x downsampling factor), a normal interpolation filter is used.
[0037] If affine mode is not used, if there is no RPR (scaling ratio = 1), or if the scaling ratio is 1.25 or less, the normal interpolation filter used can apply a specific smoothing filter.
[0038] A 1 / 16 sample normal interpolation filter is defined as an 8-tap filter in VVC. However, the VVC specification defines a special 6-tap smoothing filter used in the following cases:
[0039] • No Intrablock Copy (IBC) mode available The difference resolution of the motion vector is 1 / 2 the luminance sample resolution.
[0040] This 6-tap smoothing filter uses adaptive motion vector resolution, and the difference in motion vectors is used when the resolution is half-sample. The filter is duplicated in Figure 9.
[0041] Given the 1 / 16 partial sample precision in VVC, a partial sample position p=8 corresponds to a half-sample position (8 / 16=1 / 2). The variable hpelIfIdx, equal to 1, indicates whether the 6-tap smoothing filter (highlighted) is used at the half-sample position. hpelIfIdx is set to 1 when AmvrShift is equal to 3, indicating the MVD resolution for half samples when IBC mode is not used. In this case, the bitstream is notified with the syntax amvr_flag=1 and amvr_precision_idx=0. See also Figure 10.
[0042] If RPR is not used, each sample within the reference block refers to the same partial (half-sample) interpolation position; therefore, in the above case, a smoothing filter is used. However, when using RPR, each sample can reference a different partial interpolation position.
[0043] In the following text, the n-sample difference (x'') of the current block is given. L -x' L or y'' L -y' L Note that this is affected by the scaling ratio.
[0044] - For each luminance sample position (x L = 0...sbWidth - 1 + brdExtSize, y L = 0...sbHeight - 1 + brdExtSize) in the predicted luminance sample array predSamplesLX, the corresponding predicted luminance sample value predSamplesLX[x L [y L is derived as follows:
[0045] - Let the luminance positions pointed to by the motion vector (refMvLX[0], refMvLX[1]) given in 1 / 16 sample units be (refxSb L , refySb L ) and (refx L , refy L ). The variables refxSb L , refx L , refySb L , refy L are derived as follows:
[0046] refxSb L = (((xSb - scaling_win_left_offset) << 4) + refMvLX[0]) * scalingRatio[0] refx L = ((Sign(refxSb L )) * ((Abs(refxSb L + 128) >> 8) + x L * ((scalingRatio[0] + 8) >> 4)) + fRefLeftOffset + 32) >> 6 refySb L = (((ySb - scaling_win_top_offset) << 4) + refMvLX[1]) * scalingRatio[1] refy L = ((Sign(refySb L )) * ((Abs(refySb L)+128)>>8)+yL * ((scalingRatio[1]+8)>>4))+fRefTopOffset+32)>>6
[0047] Here, scaling_win_left_offset can be calculated as SubWidthCxpps_scaling_win_left_offset, and scaling_win_top_offset can be calculated as SubHeightCxpps_scaling_win_top_offset.
[0048] For example, suppose the current image is twice as large as the reference image. This is shown in Figure 4a, where samples of the reference image and the current image are shown spatially overlapping, with crosses indicating samples of the reference image (d) and block circles indicating samples of the current image. The current 4x4 block of the current image is displayed. The motion vector of that block is indicated by an arrow. It is defined by half-Pell resolution relative to the Pell grid of samples in the current image. The position of the block sample in the reference image is indicated by a white circle, where the reference image should be interpolated to obtain predictors of the blocks in the current image. The motion vector is sample x' L =0 (top-left sample of the 4x4 block) indicates the half-sample position, and sample x' L =1 (the sample to its right) is exemplarily selected to point to an integer or full sample position, and both positions are shown to be half-percent or full-percent relative to the reference image. Thus, the situation that leads to pixels associated with different pixel positions, in other words, different phases, does not occur in the reference and current images, which have the same resolution and whose motion vectors are defined at the resolution of half pixels, as shown in Figure 4b. Similarly, the scaling is 4x instead of 2x, and sample x' L =0 indicates the half-sample position, sample x' L =1 indicates the position of the quarter sample, sample x' L =2 indicates the position of the integer sample.
[0049] This means that within a single block, some samples will use a smoothing filter while others will not, which will result in unpleasant visual effects and visible artifacts.
[0050] In one embodiment, the derivation of the variable hpelIfIdx in the motion compensation step is modified to include the scaling ratio between the current image and the reference image, as follows:
[0051] If AmvrShift is equal to 3 and the scaling ratio is 1, i.e., RefPicScale is equal to 16384, then hpelIfIdx = 1.
[0052] Figure 4c shows a video decoder according to the present invention. The video decoder 410 decodes video 450 from a data stream 420 using motion compensation prediction. Motion prediction can be performed in a motion prediction section 440 and is based on a first motion vector 423 and a second motion vector 424 transmitted in the data stream 420.
[0053] The first motion vector 423 is transmitted in the data stream 420 at a first resolution, which is half-sample resolution, and the second motion vector 423 is transmitted in the data stream 420 at a second resolution, which is different from the first resolution.
[0054] Motion compensation is performed between a first image 421 of equal image resolution and a second image 422 of different image resolution; that is, RPR is supported, or in other words, the motion vector can point from the current image to a reference image of the same resolution. Both current images form the first image, and the motion vector points from the current image to a reference image of a different resolution than the current image, and then both form the second image. Thus, the size and / or resolution of the images may vary and are signaled in the data stream. Motion compensation is performed using interpolation filters 431 and 432 to obtain subsample values in the reference image, i.e., in the reference sample array.
[0055] The video decoder 410 selects, for example, in the selection portion 430, an interpolation filter for a given first motion vector from a first interpolation filter version 431 and a second interpolation filter version 432. The second interpolation filter version 432 has better edge preservation characteristics than the first interpolation filter version 431. As will be shown in more detail below, this selection may be specific to a sample of a particular phase, or in other words, to a specific sub-phase position such as a half-phase position.
[0056] The selection of the interpolation filter depends on whether the current image to which a given first motion vector belongs has the same image resolution as the reference sample array to which the given first motion vector relates. The selection and equivalence check can be performed separately for dimensions, i.e., in the horizontal and / or vertical dimensions. Additionally or alternatively, the selection may also depend on constraint information 425 transmitted in the data stream, as outlined in more detail below.
[0057] The dependencies of constraint information 425 are not shown in Figure 4c.
[0058] Furthermore, the encoder and decoder can obtain the full sample value in a reference sample array of a given first motion vector without using interpolation filters. In Figures 4a and 4b, when a data stream is transmitted at half-pel resolution, for example using AmvrShift=3, the motion vector shown there is the "first motion vector". The positions where the predicted block samples are shifted according to their respective motion vectors are shown by circles in Figures 4 and 4b. The circles corresponding to the cross are the "full sample values". These can be determined directly from the samples placed in the reference image (cross) without interpolation. In other words, the sample value of the reference image sample that directly corresponds to the shift position of the interpredicted block sample is directly used as the predictor of the interpredicted block sample that corresponds to the shift position. Naturally, the same can be applied to the shifted sample positions of interpredicted blocks having a second motion vector, i.e., a motion vector transmitted in the data stream at a resolution other than half-pel.
[0059] Furthermore, the decoder can obtain non-half-sample subsample values using additional interpolation filters, for example, filters with higher edge-preservation characteristics than the first interpolation filter version. This is shown again in Figures 4a and 4b. A "non-half-sample subsample value" is a circle that does not correspond to any sample in the reference image, nor does it correspond to the midpoint of two horizontally, vertically, or diagonally adjacent samples in the reference image; that is, it does not correspond to any cross, nor does it correspond to the midpoint of two horizontally, vertically, or diagonally adjacent crosses. Similarly, an interpolation filter with higher edge-preservation characteristics is used. See Figure 4d. This shows the quarter-pel position. The upper left and second sample shifted positions of the block are the quarter-pel positions. This is the sample position 12 / 16th of the full sample pitch to the right of the reference image sample (upper left cross in Figure 4d). This is the sample position 12 / 16th of the full sample pitch to the right of the reference image sample (upper left cross in Figure 4d). This is the FIR filter. This table consists of filter coefficients applied to the reference image samples where the interpolated sample positions are located. Figure 4d highlights the entry where the interpolation filter is defined and shows how this filter weights a portion of the reference image samples to obtain the interpolated quarter-per samples. Note that one might first apply horizontal interpolation to obtain sample values at sub-per positions between samples in the reference image, and then perform vertical interpolation using these interpolated intermediate samples to obtain the sub-per samples actually needed. The required sub-per samples are offset vertically and horizontally, or vice versa, from the reference image samples, with sub-sample precision, i.e., first vertically and then horizontally. Again, the selection of the two half-per sample position interpolation filter versions can be done separately in the horizontal and vertical directions, or globally in both directions, depending on the equivalence of image resolution in both dimensions.
[0060] As mentioned above, selection can be performed separately for horizontal and vertical interpolation. The selection is shown in Figure 4d with two entries for halfpel position 8 / 16: which filter to use depends on hpelIfIdx. The latter variable is set, for example, depending on whether the resolution of the reference image and the current image are the same. The latter equivalence check can be performed separately for a and y, as shown below, using the terms hpelHorIfIdx and hpelVerIfIdx. In particular, if the horizontal image resolution of the current image and the reference sample array are not equal, the second interpolation filter (a filter with high edge preservation properties) may be selected for horizontal interpolation. This is the filter defined in the row of the table, where hpelIfIdx=0. Similarly, for example, if the horizontal image resolution of the current image and the reference sample array are not equal, the second interpolation filter (a filter with high edge preservation properties) may be selected for horizontal interpolation. Also, if the current image and the reference sample array are not equal in horizontal and vertical image resolution, it is possible to select a second interpolation filter, which is a filter with high edge preservation properties, for horizontal and vertical interpolation. For any direction in which the second interpolation filter is not used, the first interpolation filter, i.e., the filter in the row where hpelIfIdx=1 in the table, is used.
[0061] The selection of which of the two Halfpel position interpolation filters to use can, of course, be interpreted as being applied not only to Halfpel motion vectors but to all motion vectors. In this broader sense, the choice between the two also depends on whether the motion vector is at half-sample resolution. If so, the selection is made as previously described, depending on the resolution equivalence between the reference image and the current image; otherwise, the selection inevitably takes the second interpolation filter, which has better edge preservation characteristics.
[0062] As is clear from the above explanation, the decoder can use the alphabet of one or more syntax elements in the data stream to determine the resolution at which a particular motion vector is transmitted within the data stream. For example, the adaptive motion vector resolution is indicated by amvr_flag, which, if set, fits the deviation from a certain default motion vector resolution, and the resolution precision of the adaptive motion vector can be indicated by the index amvr_precision_idx. This syntax is decoded by the decoder and used to derive the resolution at which the motion vector of a particular 'predicted block' is transmitted in the data stream, and this syntax is encoded in a corresponding way by the encoder to indicate the resolution of the motion vector.
[0063] Decoders and encoders can exclude half-sample resolution from the set of signalable settings for motion vector resolution. They can map the alphabet of one or more syntax elements onto a first set of vector resolutions that does not include half-sample resolution if one of the following conditions is met (otherwise, the mapping is performed on a second set of vector resolutions that includes half-sample resolution):
[0064] • Constraint information indicates, for example, that a filter version with lower edge preservation properties is disabled for the current image. This may be indicated, for example, in the image or slice header, and may be indicated by, for example, the ph_disable_hpel_smoothing_filter or sh_disable_hpel_smoothing_filter constraint equal to 1. • The present image to which a given first motion vector belongs and the reference sample array to which the given first motion vector is associated differ in at least one dimension of image resolution. • The constraint information indicates that resampling of the reference sample sequence is enabled. This can be shown, for example, at the sequence level of the sequence parameter set, SPS. An example of such indication is sps_ref_picture_resample_enable_flag, which is equal to 1. This ensures that a filter version with higher edge preservation characteristics is used when resampling of the reference sample array is enabled.
[0065] If none of the above conditions are met, the decoder maps the alphabet to a second set of vector resolutions, which includes half-sample resolutions.
[0066] It should also be noted that the data stream may contain information about whether temporally consecutive images have the same or different horizontal and / or vertical image resolution dimensions.
[0067] Furthermore, as mentioned above, the current image, specifically, can have a resolution equal to that of the reference sample array in both the horizontal and vertical dimensions.
[0068] Furthermore, the reference sample sequence can be a region, a sub-image, or an image.
[0069] The decoder can also derive constraint information from the data stream, either for each sequence of images, each image, or each slice.
[0070] Figure 5 shows the video encoder according to the present invention. The same principles apply there as in the case of the decoder. In summary, the video encoder 510 encodes the video 550 into the data stream 520 using motion compensation prediction. Motion prediction can be performed in the motion prediction section 540. The encoder 510 indicates input by transmitting a first motion vector 523 and a second motion vector 524 in the data stream 520.
[0071] The first motion vector 523 is transmitted in the data stream 520 at a first resolution which is half-sample resolution, and the second motion vector 523 is transmitted in the data stream 520 at a second resolution which is different from the first resolution.
[0072] Motion compensation is performed between a first image 521 with equal image resolution and a second image 522 with different image resolution, using interpolation filters 531 and 532 to obtain subsample values within a reference image, i.e., within a reference array.
[0073] The video encoder 510 selects, for example, in the selected portion 530 an interpolation filter for a predetermined first motion vector from a first interpolation filter version 531 and a second interpolation filter version 532. The second interpolation filter version 532 has better edge preservation characteristics than the first interpolation filter version 531.
[0074] The selection of the interpolation filter depends on whether the current image to which a given first motion vector belongs has the same image resolution in the horizontal and / or vertical dimensions as the reference sample array to which the given first motion vector relates. Additionally or alternatively, the selection may also depend on constraint information 525 transmitted in the data stream.
[0075] As mentioned earlier, the same principle that can be embodied by a decoder can also be embodied by an encoder.
[0076] Therefore, the encoder can also obtain the full sample value in a reference sample array of a given first motion vector without using an interpolation filter.
[0077] Furthermore, the encoder can obtain non-half-sample subsample values using additional interpolation filters, for example, filters with better edge-preserving characteristics than the first interpolation filter version.
[0078] As mentioned above, selection can be performed separately using horizontal and vertical interpolation.
[0079] Specifically, if the horizontal image resolution of the current image and the reference sample array are not equal, a second interpolation filter (a filter with high edge preservation properties) may be selected for horizontal interpolation.
[0080] Similarly, for example, if the horizontal image resolution of the current image and the reference sample array are not equal, a second interpolation filter (a filter with good edge preservation properties) may be selected for horizontal interpolation.
[0081] Furthermore, if the current image and the reference sample array do not have equal horizontal and vertical image resolutions, it is possible to select a second interpolation filter, which is a filter with high edge preservation, for horizontal and vertical interpolation. Depending on whether a given first motion vector has a half-sample resolution, further selections can be made.
[0082] Furthermore, to select the resolution of the motion vectors, the encoder can choose not to use half-sample resolution for one or more vectors if the current image has the same image resolution as the reference sample array in the horizontal and / or vertical dimensions.
[0083] For selection, the encoder can map alphabets of one or more syntax elements in the data stream that indicate the resolution of a given first motion vector. For example, the resolution of an adaptive motion vector can be indicated by amvr_flag, and the resolution precision of an adaptive motion vector can be indicated by amvr_precision_idx.
[0084] The encoder can map an alphabet to a first set of vector resolutions that do not constitute a half-sample resolution if any of the following conditions are met:
[0085] • Constraint information indicates, for example, that a filter version with lower edge preservation properties is disabled for the current image. This may be indicated, for example, in the image or slice header, and may be indicated by, for example, the ph_disable_hpel_smoothing_filter or sh_disable_hpel_smoothing_filter constraint equal to 1. • The present image to which a given first motion vector belongs and the reference sample array to which the given first motion vector is associated differ in at least one dimension of image resolution. • The constraint information indicates that resampling of the reference sample array is enabled. This can be shown, for example, at the sequence level of the sequence parameter set, SPS. An example of such indication is sps_ref_picture_resample_enable_flag, which is equal to 1. This ensures that a filter version with higher edge preservation characteristics is used when resampling of the reference sample array is enabled.
[0086] If none of the above conditions are met, the encoder can map the alphabet to a second set of vector resolutions, which includes half-sample resolution.
[0087] It should also be noted that the data stream may contain information about whether temporally consecutive images have the same or different horizontal and / or vertical image resolution dimensions.
[0088] Furthermore, as mentioned above, the current image, specifically, can have a resolution equal to that of the reference sample array in both the horizontal and vertical dimensions.
[0089] Furthermore, the reference sample array can be a region, a sub-image, or an image.
[0090] The encoder can also derive constraint information from the data stream, either for each sequence of images, each image, or each slice.
[0091] Finally, the above principles can also be embodied in a computer program product that includes a program having a software code portion for using the above principles when the program is executed on a processing device. Furthermore, this computer program product can also be embodied in a computer-readable medium in which the software code portion is stored.
[0092] The principles described above and below can also be embodied as data streams generated by encoding or by encoders, as explained in this document.
[0093] Let's return to the description of embodiments that modify the current VVC draft. For example, in Figure 5, the dependency of constraint information is not shown.
[0094] In one embodiment, the derivation of the variable hpelIfIdx in the motion compensation step is modified to incorporate a valid flag for the reference image signal at the sequence level in SPS, and the smoothing filter coefficient is used only when reference image resampling is prohibited, as follows:
[0095] If AmvrShift is equal to 3 and sps_ref_picture_resample_enable_flag=0, then hpelIfIdx=1, meaning reference image resampling is disabled.
[0096] In another embodiment, a control syntax flag is added to the image or slice header indicating whether the smoothing filter is disabled for the current image. Then, hpelIfIdx is derived as follows:
[0097] If AmvrShift is equal to 3 and the control flag is equal to 0 (e.g., ph_disable_hpel_smoothing_filter or sh_disable_hpel_smoothing_filter), then hpelIfIdx = 1.
[0098] In another embodiment, the derivation of the variable AmvrShift includes information about resampling the reference image, and is modified to avoid values equal to 3 in the following cases:
[0099] ·ph_disable_hpel_smoothing_filter or sh_disable_hpel_smoothing_filter is equal to 1, or • Scaling ratio != 1, i.e., RefPicScale is not equal to 16384, or ·sps_ref_picture_resample_enable_flag==1
[0100] In another embodiment, when RPR is used for a reference image, i.e., when the current image and the reference image have different sizes, or when the scaling ratio obtained from the scaling window is not equal to 1, i.e., when RefPicScale is not equal to 16384, the bitstream constraints are that AmvrShift is not equal to 3.
[0101] Therefore, the horizontal and vertical half-sample interpolation filter indices hpelHorIfIdx and hpelVerIfIdx are derived as follows:
[0102] hpelHorIfIdx=(scalingRatio[0]==16384)?hpelIfIdx:0 hpelVerIfIdx=(scalingRatio[1]==16384)?hpelIfIdx:0
[0103] While several embodiments have been described in the context of the apparatus, it is clear that these embodiments also represent a description of the corresponding method, where a block or device corresponds to a method step or a feature of a method step. Similarly, embodiments described in the context of a method step also represent a description of the corresponding block or item, or a feature of the corresponding apparatus. Some or all of the method steps may be performed by (or using) a hardware device, such as a microprocessor, a programmable computer, or an electronic circuit. In some embodiments, one or more of the most important method steps may be performed by such a device.
[0104] The data stream of the present invention can be stored in a digital storage medium, or transmitted via a transmission medium such as a wireless transmission medium or a wired transmission medium such as the Internet.
[0105] Depending on specific implementation requirements, embodiments of the present invention can be implemented in hardware or software. The implementation can be carried out using a digital storage medium, such as a floppy disk, DVD, Blu-ray, CD, ROM, PROM, EPROM, EEPROM, or flash memory, which stores electronically readable control signals. Furthermore, it cooperates (or can cooperate) with a programmable computer system so that each method is performed. Therefore, the digital storage medium may be computer-readable.
[0106] Some embodiments of the present invention include a data carrier having an electronically readable control signal that can cooperate with a programmable computer system so that one of the methods described herein is performed.
[0107] Generally, embodiments of the present invention can be implemented as a computer program product comprising program code, which functions to perform one of the methods when the computer program product is executed on a computer. The program code may be stored, for example, in a machine-readable carrier.
[0108] Other embodiments include a computer program stored in a machine-readable carrier for performing one of the methods described herein.
[0109] In other words, embodiments of the methods of the present invention are, therefore, computer programs having program code for performing one of the methods of the present invention when the computer program is executed on a computer. Thus, further embodiments of the methods of the present invention are data carriers (or digital storage media, or computer-readable media) on which a computer program for performing one of the methods of the present invention is recorded. Data carriers, digital storage media, or recording media are typically tangible and / or non-transient.
[0110] Therefore, a further embodiment of the method of the present invention is a data stream or sequence of signals representing a computer program for performing one of the methods described herein. A data stream or sequence of signals may be configured to be transmitted, for example, over the internet, via a data communication connection.
[0111] Further embodiments include processing means configured or adapted to perform one of the methods described herein, such as a computer or a programmable logic device.
[0112] Further embodiments include a computer on which a computer program for performing one of the methods described herein is installed. Further embodiments of the present invention include an apparatus or system configured to transfer (e.g., electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, a memory device, etc. The apparatus or system may include, for example, a file server for transferring the computer program to the receiver.
[0113] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) can be used to perform some or all of the functions of the method herein. In some embodiments, a field-programmable gate array can cooperate with a microprocessor to perform one of the methods herein. Generally, these methods are preferably performed by any hardware device.
[0114] The apparatus described herein may be implemented using hardware devices, or using a computer, or using a combination of hardware devices and a computer. The apparatus described herein, or any component of the apparatus described herein, may be implemented at least partially in hardware and / or software.
[0115] The methods described herein can be performed using hardware devices, or using a computer, or using a combination of hardware devices and a computer.
[0116] Any method described herein, or any component of the apparatus described herein, can be performed at least in part by hardware and / or software.
[0117] The above embodiments merely illustrate the principles of the present invention. Modifications and variations of the arrangement and details described herein will be obvious to those skilled in the art. Therefore, it is intended to be limited only by the imminent claims and not by the description of the embodiments herein and by the specific details presented herein.
Claims
1. A method for decoding an image from a data stream, This involves selecting a horizontal dimension interpolation filter (431, 432) based on whether the horizontal dimension of the current image (421) is the same as the horizontal dimension of the reference image. If the horizontal dimension of the current image and the horizontal dimension of the reference image are the same, the selected horizontal dimension interpolation filter is a first interpolation filter (431) having six non-zero coefficients: 3, 9, 20, 20, 9, 3. If the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the selected horizontal dimension interpolation filter is a second interpolation filter (432) having eight non-zero coefficients: -1, 4, -11, 40, 40, -11, 4, -1. Selecting the aforementioned horizontal dimension interpolation filters (431, 432), The vertical dimension interpolation filters (431, 432) are selected based on whether the vertical dimension of the current image and the vertical dimension of the reference image are the same. If the vertical dimension of the current image and the vertical dimension of the reference image are the same, the selected vertical dimension interpolation filter is the first interpolation filter (431). If the vertical dimension of the current image and the vertical dimension of the reference image are different, the selected vertical dimension interpolation filter is the second interpolation filter (432). Selecting the aforementioned vertical dimension interpolation filters (431, 432), Predicting the current image based on the horizontal dimension interpolation filter and the vertical dimension interpolation filter, Methods that include...
2. A method for decoding a video, comprising decoding the video from a data stream using motion compensation prediction, wherein the motion compensation prediction is performed using interpolation filters (431, 432) to obtain subsample values in a reference image, and the method For horizontal and vertical interpolation, an interpolation filter is selected from a first interpolation filter (431) having six non-zero coefficients 3, 9, 20, 20, 9, 3 and a second interpolation filter (432) having eight non-zero coefficients -1, 4, -11, 40, 40, -11, 4, -1 to obtain a half-sample value in the reference image for a predetermined first motion vector belonging to the current image and relating to the reference image, If the horizontal dimension of the current image and the horizontal dimension of the reference image are the same, the first interpolation filter (431) is selected as the horizontal dimension interpolation filter for horizontal interpolation; if the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the second interpolation filter (432) is selected as the horizontal dimension interpolation filter for horizontal interpolation; If the vertical dimension of the current image and the vertical dimension of the reference image are the same, the first interpolation filter (431) is selected as the vertical dimension interpolation filter for vertical interpolation; if the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the second interpolation filter (432) is selected as the vertical dimension interpolation filter for vertical interpolation; Selecting the interpolation filter, Methods that further include the above.
3. The method involves using motion compensation to decode an image from a data stream, wherein the motion compensation is performed using interpolation filters (431, 432) to obtain subsample values in a reference image, and the motion compensation is based on a first motion vector and a second motion vector transmitted in the data stream, and the motion compensation is performed between a first image (421) of equal image resolution and a second image (422) of different image resolutions. By using the aforementioned motion compensation, It further includes, The first motion vector is transmitted at half-sample resolution, and the second motion vector (424) is transmitted at a resolution different from the half-sample resolution. The method according to claim 1 or 2.
4. The method according to claim 2, further comprising selecting the second interpolation filter (432) for a second motion vector.
5. If at least one of the set of conditions is met, the alphabet of one or more syntax elements in the data stream that indicate the resolution of the first motion vector is mapped onto a first set of vector resolutions that do not include half-sample resolution, If none of the above set of conditions are met, the alphabet of one or more syntax elements in the data stream that indicates the resolution of the first motion vector is mapped onto a second set of vector resolutions, including half-sample resolution. It further includes, The set of the above conditions is, (i) The constraint information indicates that the first interpolation filter is invalid, such that the first interpolation filter is invalid for the current image. (ii) The current image to which the first motion vector belongs is unequal with respect to the reference sample array to which the first motion vector relates in at least one dimension of image resolution, (iii) The constraint information indicates that resampling of the reference sample array is enabled, so that the second interpolation filter is used when resampling of the reference sample array is enabled, including, The method according to claim 4.
6. The method according to claim 1 or 2, further comprising using an interpolation filter to obtain non-half-sample subsample values.
7. The resolution at which the motion vector is transmitted in the data stream is determined from one or more syntax elements in the data stream, The method according to claim 1 or 2.
8. The method according to claim 1 or 2, further comprising obtaining full sample values in the reference image without using an interpolation filter.
9. A device comprising at least one processor configured to carry out the method described in any one of claims 1 to 8, A video decoder (410) for decoding an image from a data stream.
10. A computer-readable medium storing a computer program, wherein the computer program includes a software code portion configured to perform each step of the method according to any one of claims 1 to 8 when the computer program is executed on a processing device. Computer-readable media.
11. A method for encoding an image into a data stream, This involves selecting a horizontal dimension interpolation filter (431, 432) based on whether the horizontal dimension of the current image (421) is the same as the horizontal dimension of the reference image. If the horizontal dimension of the current image and the horizontal dimension of the reference image are the same, the selected horizontal dimension interpolation filter is a first interpolation filter (531) having six non-zero coefficients: 3, 9, 20, 20, 9, 3. If the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the selected horizontal dimension interpolation filter is a second interpolation filter (532) having eight non-zero coefficients: -1, 4, -11, 40, 40, -11, 4, -1. Selecting the aforementioned horizontal dimension interpolation filters (431, 432), The vertical dimension interpolation filters (531, 532) are selected based on whether the vertical dimension of the current image and the vertical dimension of the reference image are the same. If the vertical dimension of the current image and the vertical dimension of the reference image are the same, the selected vertical dimension interpolation filter is the first interpolation filter (531). If the vertical dimension of the current image and the vertical dimension of the reference image are different, the selected vertical dimension interpolation filter is the second interpolation filter (532). Selecting the aforementioned vertical dimension interpolation filters (531, 532), Predicting the current image based on the horizontal dimension interpolation filter and the vertical dimension interpolation filter, Methods that include...
12. A method for encoding video, comprising encoding video (550) into a data stream (520) using motion compensation prediction, wherein the motion compensation prediction is performed using interpolation filters (531, 532) to obtain subsample values in a reference image, and the method For horizontal and vertical interpolation, an interpolation filter is selected from a first interpolation filter (531) having six non-zero coefficients 3, 9, 20, 20, 9, 3 and a second interpolation filter (532) having eight non-zero coefficients -1, 4, -11, 40, 40, -11, 4, -1 to obtain a half-sample value in the reference image for a predetermined first motion vector belonging to the current image and relating to the reference image, If the horizontal dimension of the current image and the horizontal dimension of the reference image are the same, the first interpolation filter (531) is selected as the horizontal dimension interpolation filter for horizontal interpolation; if the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the second interpolation filter (532) is selected as the horizontal dimension interpolation filter for horizontal interpolation. If the vertical dimension of the current image and the vertical dimension of the reference image are the same, the first interpolation filter (531) is selected as the vertical dimension interpolation filter for vertical interpolation; if the horizontal dimension of the current image and the horizontal dimension of the reference image are different, the second interpolation filter (532) is selected as the vertical dimension interpolation filter. Selecting the interpolation filter, Methods that further include the above.
13. The method involves using motion compensation to decode an image from a data stream, wherein the motion compensation is performed using interpolation filters (531, 532) to obtain subsample values in a reference image, and the motion compensation is performed between a first image (421) of equal image resolution and a second image (422) of different image resolutions, based on a first motion vector and a second motion vector transmitted in the data stream. By using the aforementioned motion compensation, It further includes, The first motion vector is transmitted at half-sample resolution, and the second motion vector (424) is transmitted at a resolution different from the half-sample resolution. The method according to claim 11 or 12.
14. The method according to claim 13, further comprising selecting the second interpolation filter (432) for a second motion vector.
15. If at least one of the set of conditions is met, the alphabet of one or more syntax elements in the data stream that indicate the resolution of the first motion vector is mapped onto a first set of vector resolutions that do not include half-sample resolution, If none of the above set of conditions are met, the alphabet of one or more syntax elements in the data stream that indicates the resolution of the first motion vector is mapped onto a second set of vector resolutions, including half-sample resolution. It further includes, The set of the above conditions is, (i) The constraint information indicates that the first interpolation filter is invalid, such that the first interpolation filter is invalid for the current image. (ii) The current image to which the first motion vector belongs is unequal with respect to the reference sample array to which the first motion vector relates in at least one dimension of image resolution, (iii) The constraint information indicates that resampling of the reference sample array is enabled, so that the second interpolation filter is used when resampling of the reference sample array is enabled, including, The method according to claim 14.
16. The method according to claim 11 or 12, further comprising using a further interpolation filter to obtain non-half-sample subsample values.
17. The method according to claim 11 or 12, further comprising determining the resolution at which motion vectors are transmitted in the data stream from one or more syntax elements in the data stream.
18. The method according to claim 11 or 12, further comprising obtaining full sample values in the reference image without using an interpolation filter.
19. A processor configured to carry out the method described in any one of claims 11 to 18, A video encoder (410) for encoding an image into a data stream.
20. A computer-readable medium storing a computer program, wherein the computer program includes a software code portion configured to perform each step of the method according to any one of claims 11 to 18 when the computer program is executed on a processing device. Computer-readable media.
Citation Information
Patent Citations
Reference picture resampling using switchable filters.
JP2022539455A
Selective use of alternative interpolation filters in image processing
JP2022544667A
Reference picture resampling with switchable filters
US20210014478A1
Selective use of alternative interpolation filters in video processing
US20220132111A1