Deriving reference sample positions in video coding - Patents.com

JP7639073B2Active Publication Date: 2025-03-04DOUYIN VISION CO LTD +1

Patent Information

Application Number
JP2023127153
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-10-05
Filing Date
2023-08-03
Publication Date
2025-03-04
Estimated Expiration
2040-09-21

Smart Images

  • Figure 0007639073000110
    Figure 0007639073000110
  • Figure 0007639073000111
    Figure 0007639073000111
  • Figure 0007639073000112
    Figure 0007639073000112
Patent Text Reader

Abstract

To provide derivation of a reference sample position in video coding.SOLUTION: An exemplary method of video processing includes determining the position of a reference sample in a reference picture associated with the current picture on the basis of a top left position of a window of a picture for conversion between the current picture of the video and a coding representation of the video. The picture includes at least the current picture or the reference picture, and the window follows processing rules during the conversion. The method includes performing the conversion on the basis of the determination.SELECTED DRAWING: Figure 4B
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] [Related Applications] This application is based on International Patent Application No. PCT / CN2019 / 106671, filed September 19, 2019, and International Patent Application No. PCT / CN2019 / 107082, filed September 20, 2019, which claims priority and benefit of International Patent Application No. PCT / CN2019 / 109837, filed October 5, 2019, which is based on International Patent Application No. PCT / CN2020 / 116469, filed September 21, 2020, and Japanese Patent Application No. 2022-517817, filed March 18, 2022. All of the aforementioned patent applications are incorporated herein by reference in their entirety.

[0002] [Technical field] TECHNICAL FIELD This disclosure relates to video coding techniques, devices and systems. [Background technology]

[0003] Currently, efforts are being made to improve the performance of current video codec technologies to provide better compression ratios or to provide video coding and decoding schemes that allow low complexity or parallel implementation. Industry experts have recently proposed several new video coding tools, which are currently being tested to determine their effectiveness. Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video coding, and in particular to motion vector management, are described. The methods described are applicable to existing video coding standards (e.g., High Efficiency Video Coding (HEVC), or Versatile Video Coding) and future video coding standards or video codecs.

[0005] In one exemplary aspect, the disclosed techniques may be used to provide a method of video processing, comprising: performing a conversion between a current picture of a video and a coded representation of the video, the current picture including a first window having dimensions W×H samples, where W and H are integers, a reference picture associated with the current picture including a second window having dimensions W′×H′ samples, where W′ and H′ are integers, samples in the first window and the second window follow the same processing rules during the conversion, and W, H, W′, and H′ satisfy constraints.

[0006] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising performing a conversion between a current picture of a video and a coded representation of the video, during which an offset value for determining a window of the current picture is signaled in the coded representation with N-pel precision, where N is a positive integer greater than 1.

[0007] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, comprising: timed a conversion between a video including a first video unit and a second video unit and a coded representation of the video, wherein a first set of offset values ​​for a first window of the first video unit and a second set of offset values ​​for a second window of the second video unit are determined according to rules associated with dimensions of the first video unit and dimensions of the second video unit, and samples within the first window and the second window follow the same processing rules during the conversion.

[0008] In another representative aspect, the disclosed techniques may be used to provide a method of video processing, the method including determining a position of a reference sample in a reference picture associated with a current picture of a video for conversion between the current picture and a coded representation of the video based on a top-left position of a window of the picture, the picture including at least the current picture or the reference picture, the window following a processing rule during the conversion, and performing the conversion based on the determination.

[0009] In another representative aspect, the disclosed techniques may be used to provide a method of video processing. The method includes performing a conversion between a current picture of a video and a coded representation of the video. The current picture includes a first window having dimensions W×H samples, where W and H are integers. A reference picture associated with the current picture includes a second window having dimensions W′×H′ samples, where W′ and H′ are integers, and a top-left position of the second window is represented as (X0,Y0). Samples in the first window and the second window follow the same processing rules during the conversion. Integer parts of coordinates of reference samples are constrained within a range determined in part based on the first window or the second window.

[0010] In another representative aspect, the disclosed techniques may be used to provide a method of video processing that includes performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, a same interpolation filter is applied to a group of adjacent or non-adjacent samples predicted using the current video block.

[0011] In another representative aspect, the disclosed techniques may be used to provide another method of video processing that includes performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, a block predicted using the current video block is only allowed to use integer-value motion information associated with the current block.

[0012] In another representative aspect, the disclosed techniques may be used to provide another method of video processing, the method including performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, an interpolation filter is applied to derive a predicted block using the current video block, the interpolation filter being selected based on a rule.

[0013] In another representative aspect, the disclosed techniques may be used to provide another method of video processing, comprising performing a conversion between a current video block and a coded representation of the current video block, and during the conversion, selectively applying a deblocking filter if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, the strength of the deblocking filter being set according to a rule relating the resolution and / or size of the reference picture to the resolution and / or size of the current video block.

[0014] In another representative aspect, the disclosed techniques may be used to provide another method of video processing that includes performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, a reference picture of the current video block is resampled according to a rule that is based on a dimension of the current video block.

[0015] In another representative aspect, the disclosed techniques may be used to provide another method of video processing that includes performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, use of a coding tool for the current video block is enabled or disabled depending on a resolution and / or size of a reference picture for the current video block relative to a resolution and / or size of the current video block.

[0016] In another representative aspect, the disclosed techniques may be used to provide another method of video processing, the method including performing a conversion between a plurality of video blocks and a coded representation of the plurality of video blocks, wherein during the conversion, a first adaptation window is defined for a first video block and a second adaptation window is defined for a second video block, and a ratio of a width and / or a height of the first adaptation window to the second adaptation window follows a rule based on at least a conforming bitstream.

[0017] In another representative aspect, the disclosed techniques may be used to provide another method of video processing, the method including performing a conversion between a plurality of video blocks and a coded representation of the plurality of video blocks, wherein during the conversion, a first adaptation window is defined for a first video block and a second adaptation window is defined for a second video block, and a ratio of a width and / or a height of the first adaptation window to the second adaptation window follows a rule based on at least a conforming bitstream.

[0018] Further, in a representative aspect, an apparatus in a video system is disclosed that includes a processor and a non-transitory memory having instructions that, when executed by the processor, cause the processor to perform any one or more of the disclosed methods.

[0019] In one exemplary aspect, a video decoding device is disclosed that includes a processor configured to perform the methods disclosed herein.

[0020] In one exemplary aspect, a video encoding device is disclosed that includes a processor configured to perform the methods disclosed herein.

[0021] Also disclosed is a computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing any one or more of the disclosed methods.

[0022] These and other aspects and features of the disclosed technology are explained in further detail in the drawings, description, and claims. [Brief description of the drawings]

[0023] [Figure 1] 1 shows an example of sub-block motion vectors (VSB) and motion vector difference. [Diagram 2] Illustrates an example of a 16x16 video block divided into sixteen 4x4 regions. [Figure 3A] Examples of specific locations within a sample are shown below. [Figure 3B] 4 shows another example of a specific location within a sample. [Figure 3C] 13 shows yet another example of a specific location within a sample. [Figure 4A] An example of the position of a current sample and its reference sample is shown. [Figure 4B] 4 shows another example of the position of a current sample and its reference sample. [Diagram 5] FIG. 2 is a block diagram of an example hardware platform for implementing the video media decoding or video media encoding techniques described herein. [Figure 6] 1 shows a flowchart of an exemplary method for video coding. [Figure 7]1 is a block diagram of an example video processing system in which the disclosed techniques may be implemented. [Figure 8] 1 is a block diagram illustrating an example video coding system. [Figure 9] FIG. 2 is a block diagram illustrating an encoder according to some embodiments of the present disclosure. [Figure 10] FIG. 2 is a block diagram illustrating a decoder according to some embodiments of the present disclosure. [Figure 11] 2 is a flowchart representation of a method of video processing in accordance with the present technique. [Figure 12] 4 is a flowchart representation of another method of video processing in accordance with the present technique. [Figure 13] 4 is a flowchart representation of another method of video processing in accordance with the present technique. [Figure 14] 4 is a flowchart representation of another method of video processing in accordance with the present technique. [Figure 15] 4 is a flowchart representation of another method of video processing in accordance with the present technique. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0024] [1. Video coding in HEVC / H.265] Video coding standards evolve primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, ISO / IEC developed MPEG-1 and MPEG-4 Visual, and the two organizations jointly developed H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding, and H.265 / HEVC standards. From H.262 onwards, video coding standards are based on hybrid video coding structures, where temporal prediction and transform coding are used. To develop future coding techniques beyond HEVC, the Joint Video Exploration Team (JVET) was jointly established by VCEG and MPEG in 2015. Since then, many new methods have been adopted by JVET and incorporated into reference software called the Joint Exploration Model (JEM). In April 2018, a Joint Video Expert Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was created to work on the VVC standard, which targets a 50% bitrate reduction compared to HEVC.

[0025] [2. Overview] [2.1. Adaptive Resolution Change (ARC)] AVC and HEVC do not have the ability to change resolution without the introduction of IDR or intra random access point (IRAP) pictures. Such a capability is called Adaptive Resolution Change (ARC). Use cases or application scenarios that benefit from ARC include: - Rate Adaptation in Video Telephony and Conferencing: To adapt coding video to changing network conditions, when network conditions deteriorate and available bandwidth drops, the encoder can adapt by encoding pictures with smaller resolution. Currently, picture resolution changes can only be made after IRAP pictures. This has several problems. A reasonable quality IRAP picture is much larger than an inter-coded picture and is correspondingly more complex to decode. This takes time and resources. This becomes a problem if a resolution change is required by the decoder for load reasons. It also breaks, at least temporarily, low-latency buffer requirements, forcing audio resynchronization and increasing the end-to-end delay of the stream. This can result in a poor user experience.

[0026] Active speaker change in multi-party video conferencing: In multi-party video conferencing, the active speaker is usually displayed with a larger size than the video of the rest of the conference participants. When the active speaker changes, the picture resolution of each participant also needs to be adjusted. When such changes of the active speaker occur frequently, the need to have the ARC feature becomes more and more important.

[0027] - Fast start of streaming: In streaming applications, typically the application buffers up to a certain length of decoded pictures before starting to display. Starting the bitstream at a smaller resolution allows the application to have enough pictures in the buffer to start displaying sooner.

[0028] Adaptive stream switching in streaming: The Dynamic Adaptive Streaming over HTTP (DASH) specification has a feature called @mediaStreamStructureId, which allows switching between different representations at open-GOP random access points with non-decodable leading pictures, e.g., CRA pictures with associated RASL in HEVC. When two different representations of the same video have different bitrates but the same spatial resolution and they have the same value of @mediaStreamStructureId, switching between the two representations can be performed at CRA pictures with associated RASL, and the RASL pictures associated with the switching-at CRA pictures can be decoded with acceptable quality, thus allowing seamless switching. According to ARC, the @mediaStreamStructureId feature can also be used for switching between DASH representations with different spatial resolutions.

[0029] ARC is also known as dynamic resolution conversion.

[0030] ARC may also be considered as a special case of Reference Picture Resampling (RPR) as in H.263 Annex P.

[0031] [2.2. Reference picture resampling in H.263 Annex P] This mode defines an algorithm to warp a reference picture before using it for prediction. It is useful for resampling reference pictures that have a different source format than the picture being predicted. It can also be used for global or rotational motion estimation by warping the shape, size, and position of the reference picture. The syntax includes warping parameters and the resampling algorithm to be used. The simplest level of operation for the reference picture resampling mode is an implicit factor of 4 resampling, since only FIR filters need to be applied for the upsampling and downsampling processes. In this case, no additional signaling overhead is needed, since its use is understood when the size of the new picture (indicated in the picture header) is different from the size of the previous picture.

[0032] [2.3. Conformance Window in VVC] A match window in VVC defines a rectangle. Samples within the match window belong to the image of interest. Samples outside the match window may be discarded at output.

[0033] When an adaptive window is applied, a scaling ratio in the RPR is derived based on the adaptive window.

[0034] Picture parameter set (RBSP) syntax [Table 1] pic_width_in_luma_samples specifies the width of each decoded picture referring to the PPS in units of luma samples. pic_width_in_luma_samples must not be equal to 0, should be an integer multiple of Max(8,MinCbSizeY), and should be less than or equal to pic_width_max_in_luma_samples. When subpics_present_flag is equal to 1, the value of pic_width_in_luma_samples should be equal to pic_width_max_in_luma_samples. pic_height_in_luma_samples specifies the height of each decoded picture referring to the PPS in units of luma samples. pic_height_in_luma_samples must not be equal to 0, should be an integer multiple of Max(8,MinCbSizeY), and should be less than or equal to pic_height_max_in_luma_samples. When subpics_present_flag is equal to 1, the value of pic_height_in_luma_samples should be equal to pic_height_max_in_luma_samples. Let refPicWidthInLumaSamples and refPicHeightInLumaSamples be the pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, of the reference pictures of the current picture that refer to this PPS. A requirement for bitstream conformance is that all of the following conditions are met:

number

number

number

[0035] [2.4. Reference Picture Resampling (RPR)] In some embodiments, ARC is also known as Reference Picture Resampling (RPR). According to RPR, if the co-located picture has a different resolution than the current picture, TMVP is disabled. In addition, when the reference picture has a different resolution than the current picture, DMVR and DMVR are disabled.

[0036] To handle normal MC when the reference picture has a different resolution than the current picture, an interpolation section is defined as follows. 8.5.6.3. Fractional sample interpolation Overview The inputs to this process are: A luma position (xSb, ySb) that specifies the top-left sample of the current coding sub-block relative to the top-left luma sample of the current picture; The variable sbWidth, which specifies the width of the current coding subblock, The variable sbHeight, which specifies the height of the current coding subblock, · Motion vector offset mvOffset, refined motion vector refMvLX, Select the reference picture sample array refPicLX, Half-sample interpolation filter index hpelIfIdx, - Bidirectional optical flow flag bdofFlag, · Variable cIdx that specifies the color component index of the current block. The output of this process is: predSamplesLX, a (sbWidth+brdExtSize)x(sbHeight+brdExtSize) array of predicted sample values. The prediction block boundary extension size brdExtSize is derived as follows:

number

number

number

number

number

number

[0037] xFrac L or yFrac L Luma interpolation filter coefficient f per 1 / 16 fractional sample position p, which is equal to L [p] is derived as follows: If MotionModelIdc[xSb][ySb] is greater than 0 and sbWidth and sbHeight are both equal to 4, the luma interpolation filter coefficient f L [p] is specified in Table 2. Otherwise, the luma interpolation filter coefficient f L[p] depends on hpelIfIdx and is specified in Table 1. Luma position in full sample units (xInt i ,yInt i ) is derived for i=0..7 as follows: If subpic_treated_as_pic_flag[SubPicIdx] is equal to 1, the following applies:

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

number

[0038] [2.5. Refinement sub-block based on affine motion-guaranteed prediction] The techniques disclosed herein include a method for refining sub-block-based affine motion compensation prediction with optical flow. After sub-block-based affine motion compensation is performed, the prediction samples are refined by adding the difference derived by the optical flow equation. This is called prediction refinement with optical flow (PROF). The proposed method can achieve inter prediction with pixel-level granularity without increasing memory access bandwidth.

[0039] To achieve fine-grained motion compensation, this paper proposes a method to refine sub-block-based affine motion compensation prediction with optical flow. After sub-block-based affine motion compensation is performed, the luma prediction samples are refined by adding the difference derived by the optical flow equation. The proposed prediction refinement with optical flow (PROF) is described in the following four steps: Step 1) Sub-block based affine motion compensation is performed to generate the sub-block prediction I(i,j). Step 2) Spatial gradients of subblock predictions g x (i, j) and g y (i,j) is computed at each sample location using a 3-tap filter [-1,0,1].

number

[0040] The subblock prediction is extended by one pixel on each side for gradient calculation. To reduce memory bandwidth and complexity, the pixels on the extended boundary are copied from the nearest integer pixel location in the reference picture. Thus, additional interpolation of the padding area is avoided. Step 3) The luma prediction refinement (denoted as ΔI) is calculated by the optical flow equation.

number

[0041] Since the affine model parameters and pixel position relative to the sub-block center do not change between sub-blocks, Δv(i,j)g can be calculated for the first sub-block and reused for other sub-blocks in the same CU. Let x and y be the horizontal and vertical offsets from the pixel position to the center of the sub-block, Δv(x,y) is derived by:

number

number

number

number

[0042] The details are explained below:

[0043] a) How to derive the slope of PROF:

[0044] In some embodiments, gradients are calculated for each reference list, for each subblock (4x4 subblocks in VTM-4.0). For each subblock, the nearest integer sample of the reference block is fetched to pad the outer lines of the four sides of the sample.

[0045] Let the MV of the current subblock be (MVx,MVy). Then the fractional part is calculated as (FracX,FracY) = (MVx&15,MVy&15). The integer part is calculated as (IntX,IntY) = (MVx>>4,MVy>>4). The offset (OffsetX,OffsetY) is derived as follows:

number

[0046] Let the top-left coordinate of the current sub-block be (xCur,yCur) and the dimensions of the current sub-block be W x H. Then (xCor0,yCor0), (xCor1,yCor1), (xCor2,yCor2) and (xCor3,yCor3) are calculated as follows:

number

[0047] Let PredSample[x][y], x=0..W-1, y=0..H-1 store the predicted samples of sub-blocks. Then, the padding samples are derived as follows:

number

[0048] where Rec represents the reference picture. Rounding is an integer, and in the exemplary PROF implementation it is 2 13 Shift0=Max(2,(14-BitDepth));PROF differs from BIO in VTM-4.0 in that it aims to increase the accuracy of the gradient, where the gradient is output with the same accuracy as the input luma samples.

[0049] The gradient in PROF is calculated as follows:

number

[0050] Note that predSamples[x][y] retains precision after interpolation.

[0051] b) How to derive Δv for PROF: The derivation of Δv (denoted as dMvH[posX][posY] and dMvV[posX][posY], posX=0..W−1, posY=0..H−1) can be written as follows:

[0052] Assuming that the size of the current block is cbWidth×cbHeight, the number of control point motion vectors is numCpMv, and the control point motion vector is cpMvLX[cpIdx], cpIdx=0..numCpMv−1, where X is 0 or 1, representing two reference lists.

[0053] The variables log2CbW and log2CbH are derived as follows:

number

number

number

number

number

number

number

number

number

number

number

[0054] Next, ΔI(posX,posY) is derived as follows: (dMvH[posX][posY],dMvV[posX][posY]) are clipped as follows:

number

number

[0055] Otherwise (the current block is coded as bi-predictive or weighted prediction), I'(posX,posY) is stored and used to generate an inter prediction value according to other prediction values ​​and / or weighting values.

[0056] [2.6. Example Slice Header] [Table 5] TIFF0007639073000056.tif255162TIFF0007639073000057.tif255164TIFF0007639073000058.tif235166

[0057] [2.7. Example sequence parameter set] [Table 6] TIFF0007639073000060.tif255165TIFF0007639073000061.tif255165TIFF0007639073000062.tif251167TIFF0007639073000063.tif20166

[0058] 2.8. Example Picture Parameter Set [Table 7] TIFF0007639073000065.tif255163TIFF0007639073000066.tif255164TIFF0007639073000067.tif72166

[0059] 2.9. Example Adaptive Parameter Sets [Table 8] [Table 9] TIFF0007639073000070.tif67167 [Table 10] [Table 11]

[0060] [2.10. Example Picture Header] In some embodiments, the picture header is designed to have the following properties: 1. The temporal Id and layer Id of the picture header NAL unit are the same as the temporal Id and layer Id of the layer access unit that contains the picture header.

[0061] 2. A picture header NAL unit precedes the NAL unit containing the first slice of its associated picture. This establishes an association between the picture header and the slices of the picture associated with it, and does not require the picture header Id to be signaled in the picture header and referenced from the slice header.

[0062] 3. The picture header NAL unit follows the picture level parameter sets or higher ones like DPS, VPS, SPS, PPS, etc. This result does not require that those parameter sets be repeated / exist within a picture or within an access unit.

[0063] 4. The picture header contains information about the picture type of its associated picture. The picture type may be used to define the following (non-exhaustive list): a. The picture is an IDR picture; b. the picture is a CRA picture; c. the picture is a GDR picture; d. The picture is a non-IRAP, non-GDR picture and contains only I-slices; e. The picture is a non-IRAP, non-GDR picture and may contain only P and I slices; f. The picture is a non-IRAP, non-GDR picture and contains any of B, P, and / or I slices;

[0064] 5. Move the signaling of picture level syntax elements in the slice header to the picture header.

[0065] 6. Signal non-picture level syntax elements in slice headers that are typically the same for all slices of the same picture in the picture header. When those syntax elements are not present in the picture header, they may be signaled in the slice header.

[0066] In some implementations, the mandatory picture header concept is used to be transmitted once per picture as the first VCL NAL unit of a picture. It is also proposed to move syntax elements currently in slice headers to this picture header. Syntax elements that functionally only need to be transmitted once per picture can be moved to the picture header instead of being transmitted multiple times for a given picture. For example, syntax elements in slice headers are transmitted once per slice. Move syntax elements of slice headers that are constrained to be the same within a picture.

[0067] Syntax elements are already constrained to be the same in all slices of a picture. It is argued to move these fields to the picture header, so that they are signaled only once per picture instead of once per slice, avoiding unnecessary redundant transmission of bits and without any change in the functionality of these syntax elements.

[0068] 1. In some implementations, the following semantic constraints apply: When present, the value of each of the slice header syntax elements slice_pic_parameter_set_id, non_reference_picture_flag, colour_plane_id, slice_pic_order_cnt_lsb, recovery_poc_cnt, no_output_of_prior_pics_flag, pic_output_flag, and slice_temporal_mvp_enabled_flag should be the same in all slice headers of a coded picture. Thus, each of these syntax elements can be moved to the picture header, avoiding unnecessary redundant bits.

[0069] recovery_poc_cnt and no_output_of_prior_pics_flag are not moved to the picture header in this paper. Their presence in the slice header depends on a conditional check of the slice header nal_unit_type. Therefore, they are suggested to be studied if there is a desire to move these syntax elements to the picture header.

[0070] 2. In some implementations, the following semantic constraints apply: When present, the value of slice_lmcs_aps_id should be the same for all slices of a picture.

[0071] When present, the value of slice_scaling_list_aps_id should be the same for all slices of a picture, so each of these syntax elements can be moved to the picture header, avoiding unnecessary redundant bits.

[0072] In some embodiments, syntax elements are not currently constrained to be the same in all slices of a picture. Because it is argued that processing a large number of syntax elements in every slice header has complex implications, it is proposed to evaluate the expected usage of these syntax elements to determine which can be moved to the picture header to simplify the overall VVC design.

[0073] 1. The following syntax elements are proposed to be moved to the picture header. Currently there is no restriction on having different values ​​per slice, but it is argued that there is no benefit and minimal coding loss from sending them in all slice headers since their expected usage varies at the picture level: a.six_minus_max_num_merge_cand b.five_minus_max_num_subblock_merge_cand c.slice_fpel_mmvd_enabled_flag d.slice_disable_bdof_dmvr_flag e.max_num_merge_cand_minus_max_num_triangle_cand f.slice_six_minus_max_num_ibc_merge_cand

[0074] 2. The following syntax elements are proposed to be moved to the picture header. Currently there is no restriction on having different values ​​per slice, but it is argued that there is no benefit and minimal coding loss from sending them in all slice headers since their expected usage varies at the picture level: a.partition_constraints_override_flag b.slice_log2_diff_min_qt_min_cb_luma c.slice_max_mtt_hierarchy_depth_luma d.slice_log2_diff_max_bt_min_qt_luma e.slice_log2_diff_max_tt_min_qt_luma f.slice_log2_diff_min_qt_min_cb_chroma g.lice_max_mtt_hierarchy_depth_chroma h.slice_log2_diff_max_bt_min_qt_chroma i.slice_log2_diff_max_tt_min_qt_chroma The conditional check "slice_type==I" associated with some of these syntax elements has been removed by moving them to the picture header.

[0075] 3. The following syntax elements are proposed to be moved to the picture header. Currently there is no restriction on having different values ​​per slice, but it is argued that there is no benefit and minimal coding loss from sending them in all slice headers since their expected usage varies at the picture level:

[0076] a.mvd_l1_zero_flag The conditional checks "slice_type==B" associated with some of these syntax elements have been removed by moving them to the picture header.

[0077] 4. The following syntax elements are proposed to be moved to the picture header. Currently there is no restriction on having different values ​​per slice, but it is argued that there is no benefit and minimal coding loss from sending them in all slice headers since their expected usage varies at the picture level: a.dep_quant_enabled_flag b.sign_data_hiding_enabled_flag

[0078] [3. Shortcomings of existing implementations] DMVR and BIO do not include the original signal during motion vector refinement, which may result in coding blocks with inaccurate motion information. Also, DMVR and BIO sometimes use fractional motion vectors after motion refinement, while screen video usually has integer motion vectors, which makes the current motion information more inaccurate and worsens coding performance.

[0079] When RPR is applied in VVC, RPR(ARC) may have the following problems: 1. Due to RPR, the interpolation filters can be different for adjacent samples within a block, which is undesirable in a SIMD (Single Instruction Multiple Data) implementation.

[0080] 2. Boundary regions do not respect RPR.

[0081] 3. Note: "The adaptive cropping window offset parameters are only applied at the output. All internal decoding processes are applied to the uncropped picture size." However, those parameters may be used in the decoding process when RPR is applied.

[0082] 4. When deriving the reference sample position, RPR only considers the ratio between the two fit windows. However, the top-left offset difference between the two fit windows should also be considered.

[0083] 5. The ratio between the width / height of a reference picture and the width / height of a current picture is constrained in VVC, but the ratio between the width / height of a matching window of a reference picture and the width / height of a matching window of a current picture is not constrained.

[0084] 6. Not all syntax elements are properly processed within the picture header.

[0085] 7. In current VVC, TPM, GEO prediction modes, chroma blending weights are derived regardless of the chroma sample position type of the video sequence. For example, in TPM / GEO, if the chroma weights are derived from the luma weights, the luma weights may need to be downsampled to match the sampling of the chroma signal. Chroma downsampling is usually applied assuming chroma sample position type 0, which is widely used in ITU-R BT.601 or ITU-R BT.709 containers. However, if a different chroma sample position type is used, this may result in a mismatch between the chroma samples and the downsampled luma samples. This may degrade coding performance.

[0086] 4. Exemplary Techniques and Embodiments The detailed embodiments described below should be considered as examples to illustrate the general concept. These embodiments should not be construed in a narrow sense. Moreover, these embodiments can be combined in any manner.

[0087] The methods described below may be applied to other decoder motion information derivation techniques in addition to DMVR and BIO described below.

[0088] A motion vector is represented by (mv_x, mv_y), where mv_x is the horizontal component and mv_y is the vertical component.

[0089] In the present disclosure, the resolution (or dimension, or width / height, or size) of a picture may represent the resolution (or dimension, or width / height, or size) of the coded / decoded picture, or may represent the resolution (or dimension, or width / height, or size) of a fitting window within the coded / decoded picture.

[0090] <Motion Compensation in RPR> 1. When the resolution of the reference picture is different from that of the current picture, or when the width and / or height of the reference picture is larger than that of the current picture, the predicted value of a group of samples (at least two samples) of the current block may be generated by the same horizontal and / or vertical interpolation filter. a. In one example, the group may include all samples within the region of the block. i. For example, the block may be divided into S non-overlapping M×N rectangles. Each M×N rectangle is a group. In one example shown in FIG. 2, a 16×16 block can be divided into 16 4×4 rectangles, each of which is a group. ii. For example, a row having N samples is a group. N is an integer not larger than the block width. In one example, N is 4 or 8 or the block width. iii. For example, a column having N samples is a group. N is an integer not larger than the block height. In one example, N is 4 or 8 or the block height. iv. M and / or N may be predefined, or may be derived on-the-fly based on, for example, block dimensions / coding information, or may be signaled. b. In one example, the samples within the group may have the same MV (referred to as a shared MV). c. In one example, the samples within the group may have MVs having the same horizontal component (referred to as a shared horizontal component). d. In one example, the samples within the group may have MVs having the same vertical component (referred to as a shared vertical component). e. In one example, samples in a group may have MVs that have the same fractional portion of the horizontal component (represented as a shared fractional horizontal component). For example, if the MV of the first sample is (MV1x, MV1y) and the MV of the second sample is (MV2x, MV2y), then MV1x & (2 M -1) is MV2x&(2 M −1), where M denotes the MV precision. For example, M=4. f. In one example, samples in a group may have MVs that have the same fractional portion of the vertical component (represented as a shared fractional vertical component). For example, if the MV of the first sample is (MV1x, MV1y) and the MV of the second sample is (MV2x, MV2y), then MV1y & (2 M -1) is MV2y&(2 M −1), where M denotes the MV precision. For example, M=4. g. In one example, for samples in the group to be predicted, MV b The motion vector denoted by may first be derived according to the resolutions of the current picture and the reference picture (for example, as defined in 8.5.6.3.1 of JVET-O2001-v14 (refx L ,refy L )) Next, MV b may be further modified (eg, rounded / truncated / clipped) to meet requirements such as those in the above items into MV′, which is then used to derive the predicted sample of the sample. In one example, MV' is MV b and the fractional part of MV' is set to be the shared fractional horizontal and / or vertical component. ii. In one example, MV' is MV b is set to be the one that has the closest shared fractional horizontal and / or vertical components. h. The shared motion vector (and / or shared horizontal component and / or shared vertical component and / or shared fractional vertical component and / or shared fractional horizontal component) may be set to be the motion vector (and / or shared horizontal component and / or shared vertical component and / or fractional vertical component and / or fractional horizontal component) of a particular sample in the group. i. For example, a particular sample may be at the corner of a rectangular group such as A, B, C, and D shown in FIG. 3A. ii. For example, a particular sample may be at the center of a rectangular group such as E, F, G, and H shown in FIG. 3A. iii. For example, a particular sample may be at the end of a row-shaped or column-shaped group, such as A and B shown in Figures 3B and 3C. iv. For example, a particular sample may be in the middle of a row-shaped or column-shaped group, such as B and C shown in Figures 3B and 3C. v. In one example, the motion vector of a particular sample is the MV b It may be. i. The shared motion vector (and / or the shared horizontal component and / or the shared vertical component and / or the shared fractional vertical component and / or the shared fractional horizontal component) may be set to be the motion vector (and / or the shared horizontal component and / or the shared vertical component and / or the fractional vertical component and / or the fractional horizontal component) of a virtual sample located at a different position compared to all samples in this group. i. In one example, the virtual sample is not within the group, but is located within a region that covers all samples in the group. 1) Alternatively, the virtual sample is located outside the region covering all samples in the group, for example next to the bottom right position of the region. ii. In one example, the MVs of the virtual samples are derived in the same way as the real samples, but with different positions. iii. Figures 3A-3C V show three examples of hypothetical samples. j. The shared MV (and / or the shared horizontal component and / or the shared vertical component and / or the shared fractional vertical component and / or the shared fractional horizontal component) may be set to be a function of the MV (and / or the shared horizontal component and / or the shared vertical component and / or the fractional vertical component and / or the fractional horizontal component) of multiple samples and / or virtual samples. i. For example, the shared MV (and / or shared horizontal component and / or shared vertical component and / or shared fractional vertical component and / or shared fractional horizontal component) may be set to be the average of the MV (and / or shared horizontal component and / or shared vertical component and / or shared fractional vertical component and / or shared fractional horizontal component) of all or some of the samples in the group, or of samples E, F, G, H of FIG. 3A, or of samples E, H of FIG. 3A, or of samples A, B, C, D of FIG. 3A, or of samples A, D of FIG. 3A, or of samples B, C of FIG. 3B, or of samples A, D of FIG. 3B, or of samples B, C of FIG. 3C, or of samples A, D of FIG. 3C. 2. It is proposed that when the resolution of the reference picture is different from that of the current picture or when the width and / or height of the reference picture is greater than the width and / or height of the current picture, it is permitted to perform a motion compensation process to derive a prediction block for the current block. In one example, the decoded motion vector of the sample to be predicted is rounded to an integer MV before being used. b. In one example, the decoded motion vector of the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector. c. In one example, the decoded motion vector of the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector in the horizontal direction. d. In one example, the decoded motion vector of the sample to be predicted is rounded to the nearest integer MV to the decoded motion vector in the vertical direction. 3. The motion vectors (e.g., shared MV / shared horizontal or vertical or fractional components / MV' mentioned in the above items) used in the motion compensation process of samples in the current block may be stored in the decoded picture buffer and utilized for motion vector prediction of subsequent blocks in the current / different picture. a. Alternatively, the motion vectors (e.g., the shared MV / shared horizontal or vertical or fractional components / MV' mentioned in the above items) used in the motion compensation process of samples in the current block may be prohibited from being used for motion vector prediction of subsequent blocks in the current / different picture. i. In one example, the decoded motion vector (e.g., the MV b ) may be utilized for motion vector prediction of a subsequent block in the current / different picture. b. In one example, the motion vectors used in the motion compensation process of the samples in the current block may be utilized in the filtering process (eg, deblocking filter / SAO / ALF). Alternatively, the decoded motion vectors (e.g., the MVs in the above paragraph) b ) may be used in the filtering process. c. In one example, such MVs may be derived at the sub-block level and stored per sub-block. 4. It is proposed that an interpolation filter is used in the motion compensation process to derive a prediction block for the current block depending on whether the resolution of the reference picture is different from that of the current picture or whether the width and / or height of the reference picture is greater than the width and / or height of the current picture. In one example, an interpolation filter with fewer taps may be applied when condition A is met, where condition A depends on the dimensions of the current picture and / or the reference picture. i. In one example, condition A is that the resolution of the reference picture is different from the current picture. ii. In one example, condition A is that the width and / or height of the reference picture is greater than the width and / or height of the current picture. iii. In one example, condition A is W1>a*W2 and / or H1>b*H2, where (W1,H1) represent the width and height of the reference picture, (W2,H2) represent the width and height of the current picture, and a and b are two coefficients, e.g. a=b=1.5. iv. In one example, condition A may also depend on whether bi-prediction is used. v. In one example, a 1-tap filter is applied. In other words, integer pixels without filtering are output as the interpolation result. vi. In one example, a bilinear filter is applied when the resolution of the reference picture is different from the current picture. vii. In one example, a 4-tap filter or a 6-tap filter is applied when the resolution of the reference picture is different from the current picture, or when the width and / or height of the reference picture is greater than the width and / or height of the current picture. 1) A 4-tap filter may be used for affine motion compensation. 2) A 4-tap filter may be used for the interpolation of chroma samples. b. In one example, padding samples are used to perform interpolation when the resolution of the reference picture is different from the current picture or when the width and / or height of the reference picture is greater than the width and / or height of the current picture. c. Whether and / or how to apply the methods disclosed in item 4 may depend on the color component. i. For example, the method is applied only to the luma component. d. Whether and / or how to apply the method disclosed in item 4 may depend on the interpolation filtering direction. i. For example, the method applies only to horizontal filtering. ii. For example, the method is only applied to vertical filtering. 5. When the resolution of the reference picture is different from that of the current picture, or the width and / or height of the reference picture is larger than the width and / or height of the current picture, it is proposed that a two-stage process for predictive block generation is applied. a. In the first stage, a virtual reference block is generated by upsampling or downsampling an area in the reference picture depending on the width and / or height of the current picture and the reference picture. b. In the second stage, predicted samples are generated from the virtual reference blocks by applying interpolation filtering, independent of the width and / or height of the current and reference pictures. 6. Top left coordinate of the border block for reference sample padding (xSbInt L ,ySbInt L ) may, as in some embodiments, be derived depending on the width and / or height of the current picture and the reference picture. In one example, the luma position in full sample units is changed as follows: xInt i =Clip3(xSbInt L -Dx,xSbInt L +sbWidth+Ux,xInt i ), yInt i =Clip3(ySbInt L -Dy,ySbInt L +sbHeight+Uy,yInt i ), Here, Dx and / or Dy and / or Ux and / or Uy may depend on the width and / or height of the current picture and the reference picture. b. In one example, the chroma positions of the full sample units are changed as follows: xInti = Clip3(xSbInt C -Dx,xSbInt C +sbWidth+Ux,xInti) yInti = Clip3(ySbInt C -Dy,ySbInt C +sbHeight+Uy,yInti) Here, Dx and / or Dy and / or Ux and / or Uy may depend on the width and / or height of the current picture and the reference picture. 7. Instead of storing / using motion vectors for blocks based on the same reference picture resolution as the current picture, it is proposed to use real motion vectors that take into account the resolution difference. a. Alternatively, when using motion vectors to generate prediction blocks, there is no need to further modify the motion vectors according to the resolutions of the current picture and the reference picture (e.g., (refx L , refy L )) <Interaction between RPRs and other coding tools> 8. Whether and how to apply filtering processing (e.g., deblocking filter) may depend on the resolution of the reference picture and / or the resolution of the current picture. a. In one example, the boundary strength (BS) setting of the deblocking filter may consider the resolution difference in addition to the motion vector difference. i. In one example, the motion vector difference scaled according to the resolutions of the current and reference pictures may be used to determine the boundary strength. b. In one example, when the resolution of at least one reference picture of block A is different from (or smaller or larger than) the resolution of at least one reference picture of block B, the strength of the deblocking filter at the boundary between block A and block B may be set differently (e.g., increased / decreased) compared to the case where the same resolution is used for both blocks. c. In one example, when the resolution of at least one reference picture of block A is different from (or smaller or larger than) the resolution of at least one reference picture of block B, the boundary between block A and block B is marked to be filtered (e.g., BS is set to 2). d. In one example, when the resolution of at least one reference picture of block A and / or block B is different from (or smaller or larger than) the resolution of the current picture, the strength of the deblocking filter at the boundary between block A and block B may be set differently (e.g., increased / decreased) compared to the case where the same resolution is used for the reference picture and the current picture. e. In one example, if at least one reference picture of at least one of the two blocks has a different resolution than the resolution of the current picture, the boundary between the two blocks is marked to be filtered. 9. When sub-pictures are present, a conforming bitstream should satisfy that the reference picture must have the same resolution as the current picture. a. Alternatively, when the reference picture has a different resolution than the current picture, there may be no sub-pictures in the current picture. b. Alternatively, for a sub-picture within the current picture, the use of a reference picture having a different resolution than the current picture is prohibited. i. Alternatively, reference picture management may also be invoked to eliminate those reference pictures that have different resolutions. 10. In one example, sub-pictures (eg, how to divide one picture into multiple sub-pictures) may be defined separately for pictures with different resolutions. In one example, if a reference picture has a different resolution than the current picture, the corresponding sub-picture in the reference picture can be derived by scaling and / or offsetting the sub-picture of the current picture. 11. PROF (prediction refinement with optical flow) may be enabled when the reference picture has a different resolution than the current picture. In one example, one MV set (MV g ) may be generated for a group of samples and used for motion compensation as described in item 1. On the other hand, MV (MV p ) may be derived for each sample, and MV p and MV g The difference between (eg, corresponding to Δv used in PROF) may be used together with the gradient (eg, the spatial gradient of the motion compensated block) to derive the prediction refinement. b. In one example, MV p MVg For example, MV p may be accurate to 1 / N-pel (N>0), where N=32, 64, etc. C. In one example, MV g may be of a different precision than the internal MV precision (eg, 1 / 16 pel). d. In one example, the prediction refinement is added to the prediction block to generate a refined prediction block. e. In one example, such a method may be applied in each prediction direction. f. In one example, such methods may be applied only in the uni-prediction case. g. In one example, such methods may be applied in uni-prediction and / or bi-prediction. h. In one example, such a method may be applied only when the reference picture has a different resolution than the current picture. 12. It is proposed that when the resolution of the reference picture is different from the resolution of the current picture, only one MV may be utilized for a block / sub-block to perform motion compensation processing and derive a prediction block for the current block. In one example, only the MV for a block / sub-block may be defined as a function (eg, the average) of all the MVs associated with each sample within the block / sub-block. b. In one example, the only MV for a block / sub-block may be defined as a selected MV associated with a selected sample (eg, a center sample) within the block / sub-block. c. In one example, only one MV may be utilized for a 4×4 block or sub-block (eg, 4×1). d. In one example, BIO may be further applied to compensate for precision loss due to block-based motion vectors. 13. When the width and / or height of the reference picture is different from that of the current block, a lazy mode may be applied that does not signal any block-based motion vectors. a. In one example, the motion vectors are not signaled, and the motion compensation process approximates the case of a pure resolution change of a still image. b. In one example, only picture / tile / brick / CTU level motion vectors are signaled, and when the resolution changes, the associated blocks may use the motion vectors. 14. For a block coded by an affine prediction mode and / or a non-affine prediction mode, when the width and / or height of the reference picture is different from that of the current picture, PROF may be applied to approximate the motion compensation. a. In one example, PROF may be enabled when the width and / or height of the reference picture is different from the width and / or height of the current picture. b. In one example, a set of affine motions may be generated by combining the indicated motions and resolution scalings used by PROF. 15. When the width and / or height of the reference picture is different from that of the current picture, an Interweaved prediction (such as that proposed in JVET-K0102) may be applied to approximate the motion compensation. a. In one example, a resolution change (zoom) is represented as an affine motion, and an Interweaved motion prediction may be applied. 16. When the width and / or height of the current picture is different from that of an IRAP picture within the same IRAP period, LMCS and / or chroma residual scaling may be disabled. a. In one example, when LMCS is disabled, slice level flags such as slice_lmcs_enabled_flag, slice_lmcs_aps_id, and slice_chroma_residual_scale_flag are not signaled and may be assumed to be 0. b. In one example, when chroma residual scaling is disabled, slice level flags such as slice_chroma_residual_scale_flag are not signaled and may be assumed to be 0. <Constraints for RPR> 17. RPR may be applied to coding blocks with block size constraints. a. In one example, for an M×N coding block, where M is the block width and N is the block height, when M*N < T or M*N <= T (e.g., T = 256), RPR may not be used. b. In one example, when M < K (or M <= K) (e.g., K = 16) and / or N < L (or N <= L) (e.g., L = 16), RPR may not be used. 18. Bitstream adaptation may be added to limit the ratio between the width and / or height of the active reference picture (or its adapted window) and the width and / or height of the current picture (or its adapted window). Assuming refPicW and refPicH represent the width and height of the reference picture, curPicW and curPicH represent the width and height of the current picture. a. In one example, when (refPicW÷curPicW) is equal to an integer, the reference picture may be marked as the active reference picture. i. In one example, when (refPicW÷curPicW) is equal to a fraction, the reference picture may be marked as not available. b. In one example, when (refPicW÷curPicW) is equal to (X*n), where X represents a fraction such as X = 1 / 2 and n represents an integer such as n = 1, 2, 3, 4…, the reference picture may be marked as the active reference picture. i. In one example, when (refPicW÷curPicW) is not equal to (X*n), the reference picture may be marked as not available. 19. Whether to enable and / or how to enable coding tools (e.g., dual prediction / full triangular prediction mode (TPM) / bending processing in TPM) for an M×N block may depend on the resolution of the reference picture (or its adapted window) and / or the resolution of the current picture (or its adapted window). a. In one example, M*N < T or M*N <= T (e.g., T = 64). b. In one example, M < K (or M <= K) (e.g., K = 16) and / or N < L (or N <= L) (e.g., L = 16). c. In one example, when the width / height of at least one reference picture of a block is different from that of the current picture, the coding tool is not permitted. i. In one example, when the width / height of at least one reference picture of a block is larger than that of the current picture, the coding tool is not permitted. d. In one example, when the width / height of each reference picture of a block is different from that of the current picture, the coding tool is not permitted. i. In one example, when the width / height of each reference picture is larger than that of the current picture, the coding tool is not permitted. e. Alternatively, further, when the coding tool is not permitted, motion compensation may be performed by one MV as single prediction. <Related compliance window> 20. The compliance cropping window offset parameter (e.g., conf_win_left_offset) is signaled with N-pel accuracy instead of 1pel. Here, N is a positive integer greater than 1. a. In one example, the actual offset may be derived as the signaled offset multiplied by N. b. In one example, N is set to 4 or 8. 21. It is proposed that the compliance cropping window offset parameter is not only applied to the output. Certain internal decoding processes may depend on the cropped picture size (i.e., the resolution of the compliance window within the picture). 22. It is proposed that when the width and / or height of the picture shown as (pic_width_in_luma_samples, pic_height_in_luma_samples) in the first video unit (e.g., PPS) and the second video unit are the same, the compliance cropping window offset parameters in the first video unit and in the second video unit may be different. 23. When the picture width and / or height, denoted as (pic_width_in_luma_samples, pic_height_in_luma_samples) in the first video unit (e.g., PPS) and the second video unit are different, it is proposed that the adapted cropping window offset parameters in the first video unit and in the second video unit should be the same in the adapted bitstream. a. It is proposed that regardless of whether the picture width and / or height, indicated as (pic_width_in_luma_samples, pic_height_in_luma_samples) in the first video unit (e.g., PPS) and the second video unit are the same, the conforming cropping window offset parameters in the first video unit and in the second video unit should be the same in a conforming bitstream. 24. Let the width and height of a conformance window defined in a first video unit (e.g., PPS) be denoted as W1 and H1, respectively. The width and height of a conformance window defined in a second video unit (e.g., PPS) be denoted as W2 and H2, respectively. The top-left position of the conformance window defined in a first video unit (e.g., PPS) be denoted as X1 and Y1. The top-left position of the conformance window defined in a second video unit (e.g., PPS) be denoted as X2 and Y2. The width and height of a coding / decoding picture (e.g., pic_width_in_luma_samples and pic_height_in_luma_samples) defined in a first video unit (e.g., PPS) be denoted as PW1 and PH1, respectively. The width and height of a coding / decoding picture defined in a second video unit (e.g., PPS) be denoted as PW2 and PH2. In one example, in a conforming bitstream, W1 / W2 should be equal to X1 / X2. i. Alternatively, in a conforming bitstream, W1 / X1 should be equal to W2 / X2. ii. Alternatively, in a conforming bitstream, W1*X2 should be equal to W2*X1. b. In one example, in a conforming bitstream, H1 / H2 should be equal to Y1 / Y2. i. Alternatively, in a conforming bitstream, H1 / Y1 should be equal to H2 / Y2. ii. Alternatively, in a conforming bitstream, H1*Y2 should be equal to H2*Y1. c. In one example, in a conforming bitstream, PW1 / PW2 should be equal to X1 / X2. i. Alternatively, in a conforming bitstream, PW1 / X1 should be equal to PW2 / X2. ii. Alternatively, in a conforming bitstream, PW1*X2 should be equal to PW2*X1. d. In one example, in a conforming bitstream, PH1 / PH2 should be equal to Y1 / Y2. i. Alternatively, in a conforming bitstream, PH1 / Y1 should be equal to PH2 / Y2. ii. Alternatively, in a conforming bitstream, PH1*Y2 should be equal to PH2*Y1. e. In one example, in a conforming bitstream, PW1 / PW2 should be equal to W1 / W2. i. Alternatively, in a conforming bitstream, PW1 / W1 should be equal to PW2 / W2. ii. Alternatively, in a conforming bitstream, PW1*W2 should be equal to PW2*W1. f. In one example, in a conforming bitstream, PH1 / PH2 should be equal to H1 / H2. i. Alternatively, in a conforming bitstream, PH1 / H1 should be equal to PH2 / H2. ii. Alternatively, in a conforming bitstream, PH1*H2 should be equal to PH2*H1. g. In a conforming bitstream, if PW1 is greater than PW2, then W1 must be greater than W2. h. In a conforming bitstream, if PW1 is less than PW2, then W1 must be less than W2. i. In a conforming bitstream, (PW1-PW2)*(W1-W2) must not be less than 0. j. In a conforming bitstream, if PH1 is greater than PH2, then H1 must be greater than H2. k. In a conforming bitstream, if PH1 is less than PH2, then H1 must be less than H2. l. In a conforming bitstream, (PH1-PH2)*(H1-H2) shall not be less than 0. m. In a conforming bitstream, if PW1>=PW2, then W1 / W2 must not be greater than (or less than) PW1 / PW2. n. In a conforming bitstream, if PH1>=PH2, then H1 / H2 must not be greater than (or less than) PH1 / PH2. 25. Let the width and height of the conformance window of the current picture be denoted as W and H, respectively. Let the width and height of the conformance window of the reference picture be denoted as ', W' and H', respectively. Then, a conforming bitstream should obey at least one of the following constraints: aW*pw>=W', where pw is an integer, e.g. 2. bW*pw>W', where pw is an integer, e.g., 2. c.W'*pw'>=W, where pw' is an integer, e.g. 8. d.W'*pw'>W, where pw' is an integer, e.g. 8. eH*ph>=H', where ph is an integer, e.g., 2. fH*ph>H', where ph is an integer, e.g., 2. g.H'*ph'>=H, ph' is an integer, e.g. 8. h.H'*ph'>H, where ph' is an integer, e.g. 8. i. In one example, pw is equal to pw'. j. In one example, ph is equal to ph'. k. In one example, pw is equal to ph. l. In one example, pw' is equal to ph'. In one example, the above sub-items need to be satisfied by a conforming bitstream, where W and H represent the width and height of the current picture, respectively. W' and H' represent the width and height of the reference picture. 26. It is proposed that the adaptation window parameters are partially signaled. In one example, the top left sample of the matching window of the picture is the same as the one in the picture. b. For example, conf_win_left_offset defined in VVC is not signaled and is assumed to be zero. c. For example, conf_win_top_offset defined in VVC is not signaled and is assumed to be zero. 27. The location of the reference sample (e.g., as defined in VVC (refx L ,refy L It is proposed that the derivation of conf_win_left_offset) may depend on the top-left position of the matching window of the current picture and / or the reference picture (e.g. (conf_win_left_offset,conf_win_top_offset) as defined in VVC). Figure 4 shows examples of sample positions derived by (a) VVC and (b) the proposed method. The dashed rectangle represents the matching window. In one example, a dependency exists only when the width and / or height of the current picture and the width and / or height of the reference picture differ. b. In one example, the horizontal position of the reference sample (e.g., refx as defined in VVC) L ) may depend on the left position of the matching window of the current picture and / or the reference picture (eg, conf_win_left_offset as defined in VVC). i. In one example, the horizontal position of the current sample (denoted as xSb’) relative to the upper left position of the adaptive window within the current picture is calculated and used to derive the position of the reference sample. 1) For example, xSb’ = xSb - (conf_win_left_offset << Prec) is calculated and used to derive the position of the reference sample. Here, xSb represents the horizontal position of the current sample within the current picture. conf_win_left_offset represents the horizontal position of the upper left sample within the adaptive window of the current picture. Prec represents the precision of xSb and xSb’. Here, (xSb >> Prec) may indicate the actual horizontal coordinate of the current sample relative to the current picture. For example, Prec = 0 or Prec = 4. ii. In one example, the horizontal position of the reference sample (denoted as Rx’) relative to the upper left position of the adaptive window within the reference picture is calculated. 1) The calculation of Rx’ may depend on xSb’, and / or the motion vector, and / or the resampling ratio. iii. In one example, the horizontal position of the reference sample (denoted as Rx) relative to the reference picture is calculated depending on Rx’. 1) For example, Rx = Rx’ + (conf_win_left_offset_ref << Prec) is calculated. Here, conf_win_left_offset_ref represents the horizontal position of the upper left sample within the adaptive window of the reference picture. Prec represents the positions of Rx and Rx’. For example, Prec = 0 or Prec = 4. iv. In one example, Rx may be directly calculated depending on xSb’, and / or the motion vector, and / or the resampling ratio. In other words, the two-step derivation for Rx’ and Rx is combined into a one-step calculation. v. Whether and / or how to use the left position of the adaptive window of the current picture and / or the reference picture (e.g., conf_win_left_offset as defined in VVC) may depend on the color component and / or the color format. 1) For example, conf_win_left_offset may be revised as conf_win_left_offset = conf_win_left_offset * SubWidthC. Here, SubWidthC defines the horizontal sampling step of the color component. For example, in the luma component, SubWidthC is equal to 1. When the color format is 4:2:0 or 4:2:2, in the chroma component, SubWidthC is equal to 2. 2) For example, conf_win_left_offset may be revised as conf_win_left_offset = conf_win_left_offset / SubWidthC. Here, SubWidthC defines the horizontal sampling step of the color component. For example, in the luma component, SubWidthC is equal to 1. When the color format is 4:2:0 or 4:2:2, in the chroma component, SubWidthC is equal to 2. c. In one example, the derivation of the vertical position of the reference sample (e.g., refy as defined in VVC) L may depend on the upper position of the adaptive window of the current picture and / or the reference picture (e.g., conf_win_top_offset as defined in VVC). i. In one example, the vertical position of the current sample (denoted as ySb’) relative to the upper left position of the adaptive window in the current picture is calculated and used to derive the position of the reference sample. 1) For example, ySb’ = ySb - (conf_win_top_offset << Prec) is calculated and used to derive the position of the reference sample. Here, ySb represents the vertical position of the current sample in the current picture. conf_win_top_offset represents the vertical position of the upper left sample in the adaptive window of the current picture. Prec represents the positions of ySb and ySb’. For example, Prec = 0 or Prec = 4. ii. In one example, the vertical position of the reference sample (denoted as Ry’) relative to the upper left position of the adaptive window in the reference picture is calculated. 1) The calculation of Ry’ may depend on ySb’, and / or the motion vector, and / or the resampling ratio. iii. In one example, the vertical position of the reference sample with respect to the reference picture (denoted as Ry) is calculated depending on Ry’. 1) For example, Ry = Ry’+(conf_win_top_offset_ref << Prec) is calculated. Here, conf_win_top_offset_ref represents the vertical position of the top left sample within the conformity window of the reference picture. Prec represents the positions of Ry and Ry’. For example, Prec = 0 or Prec = 4. iv. In one example, Ry may be directly calculated depending on ySb’, and / or the motion vector, and / or the resampling ratio. In other words, the two-step derivation for Ry’ and Ry is combined into a one-step calculation. v. Whether and / or how to use the top position of the conformity window of the current picture and / or the reference picture (e.g., conf_win_top_offset as defined in VVC) may depend on the color component and / or the color format. 1) For example, conf_win_top_offset may be revised as conf_win_top_offset = conf_win_top_offset * SubHeightC. Here, SubHeightC defines the vertical sampling step of the color component. For example, for the luma component, SubHeightC is equal to 1. When the color format is 4:2:0, for the chroma component, SubHeightC is equal to 2. 2) For example, conf_win_top_offset may be revised as conf_win_top_offset = conf_win_top_offset / SubHeightC. Here, SubHeightC defines the vertical sampling step of the color component. For example, for the luma component, SubHeightC is equal to 1. When the color format is 4:2:0, for the chroma component, SubHeightC is equal to 2. 28. It is proposed that the integer part of the horizontal coordinate of the reference sample may be clipped to [minW,maxW]. Let the width and height of the matching window in the reference picture be denoted as W and H, respectively. Let the width and height of the matching window in the reference picture be denoted as W' and H'. The top-left position of the matching window in the reference picture is denoted as (X0,Y0). In one example, minW is equal to 0. b. In one example, minW is equal to X0. c. In one example, maxW is equal to W-1. d. In one example, maxW is equal to W'-1. e. In one example, maxW is equal to X0+W'-1. f. In one example, minW and / or maxW may be modified based on color format and / or color components. i. For example, minW is changed to become minW*SubC. ii. For example, minW is changed to be minW / SubC. iii. For example, maxW is changed to become maxW*SubC. iv. For example, maxW is changed to become maxW / SubC. v. For example, for the luma component, SubC is equal to 1. vi. In one example, when the color format is 4:2:0, for the chroma component, SubC is equal to 2. vii. In one example, when the color format is 4:2:2, for the chroma component, SubC is equal to 2. viii. In one example, when the color format is 4:4:4, for the chroma component, SubC is equal to 1. g. In one example, whether and / or how clipping is performed may depend on the dimensions of the current picture (or a matching window therein) and the dimensions of the reference picture (or a matching window therein). i. In one example, clipping occurs only when the dimensions of the current picture (or a matching window therein) and the reference picture (or a matching window therein) differ. 29. It is proposed that the integer part of the vertical coordinate of the reference sample may be clipped to [minH,maxH]. Let the width and height of the matching window in the reference picture be denoted as W and H, respectively. Let the width and height of the matching window in the reference picture be denoted as W' and H'. The top-left position of the matching window in the reference picture is denoted as (X0,Y0). In one example, minH is equal to 0. b. In one example, minH is equal to Y0. c. In one example, maxH is equal to H-1. d. In one example, maxH is equal to H'-1. e. In one example, maxH is equal to Y0+H'-1. f. In one example, minH and / or maxH may be modified based on the color format and / or color components. i. For example, minH is changed to become minH*SubC. ii. For example, minH is changed to become minH / SubC. iii. For example, maxH is changed to become maxH*SubC. iv. For example, maxH is changed to become maxH / SubC. v. In one example, for the luma component, SubC is equal to 1. vi. In one example, when the color format is 4:2:0, for the chroma component, SubC is equal to 2. vii. In one example, when the color format is 4:2:2, for the chroma component, SubC is equal to 1. viii. In one example, when the color format is 4:4:4, for the chroma component, SubC is equal to 1. g. In one example, whether and / or how clipping is performed may depend on the dimensions of the current picture (or a matching window therein) and the dimensions of the reference picture (or a matching window therein). i. In one example, clipping occurs only when the dimensions of the current picture (or a matching window therein) and the reference picture (or a matching window therein) differ. In the following discussion, a first syntax element is claimed to "correspond" to a second syntax element if the two syntax elements have equivalent functionality but may be signaled in different video units (e.g., VPS / SPS / PPS / slice header / picture header, etc.). 30. It is proposed that a syntax element may be signaled in a first video unit (e.g., a picture header or PPS) and that the corresponding syntax element is not signaled in a second video unit of a higher level (e.g., an SPS) or a lower level (e.g., a slice header). a. Alternatively, it is proposed that a first syntax element may be signaled within a first video unit (e.g., a picture header or PPS), and a corresponding second syntax element may be signaled within a second video unit at a lower level (e.g., a slice header). i. Alternatively, an indicator may be signaled within the second video unit to inform whether the second syntax element will be signaled later. ii. In one example, slices associated with the second video unit (e.g., slice header) may follow the instructions of the second syntax element instead of the first syntax element if the second syntax element is signaled. iii. An indicator associated with the first syntax element may be signaled within the first video unit to indicate whether the second syntax element is signaled within any slice (or other video unit) associated with the first video unit. b. Alternatively, a first syntax element may be signaled within a higher level first video unit (such as a VPS / SPS / PPS), and a corresponding second syntax element may be signaled within a second video unit (such as a picture header). i. Alternatively, an indicator may be signaled to inform whether the second syntax element will be signaled at a later time. ii. In one example, a picture associated with the second video unit (which may be partitioned into slices) may follow the instructions of the second syntax element instead of the first syntax element if the second syntax element is signaled. c. The first syntax element in the picture header may have equivalent functionality to the second syntax element in the slice header as specified in Chapter 2.6 (e.g., but not limited to, slice_temporal_mvp_enabled_flag, cabac_init_flag, six_minus_max_num_merge_cand, five_minus_max_num_subblock_merge_cand, slice_fpel_mmvd_enabled_flag, slice_disable_bdof_dmvr_flag, max_num_merge_cand_minus_max_num_triangle_cand, slice_fpel_mmvd_enabled_flag, slice_six_minus_max_num_ibc_merge_cand, slice_joint_cbcr_sign_flag, slice_qp_delta, ...) and may control all slices of the picture. The first syntax element in the SPS as specified in Chapter d.2.6 may have equivalent functionality to the second syntax element in the picture header (e.g., but not limited to, sps_bdof_dmvr_slice_present_flag, sps_mmvd_enabled_flag, sps_isp_enabled_flag, sps_mrl_enabled_flag, sps_mip_enabled_flag, sps_cclm_enabled_flag, sps_mts_enabled_flag...), but controls only the associated picture (which may be partitioned into slices). The first syntax elements in the PPS as specified in Chapter e.2.7 may have equivalent functionality to the second syntax elements in the picture header (e.g., but not limited to, entropy_coding_sync_enabled_flag, entry_point_offsets_present_flag, cabac_init_present_flag, rpl1_idx_present_flag...), but only control the associated picture (which may be partitioned into slices). 31. In this disclosure (items 1-29), the term "conformance window" may be replaced by other terms such as "scaling window." The scaling window may be signaled differently than the conformance window and is used to derive the scaling ratio and / or top-left offset used to derive the reference sample position of the RPR. In one example, the scaling window may be constrained by the conformance window, e.g., in a conforming bitstream, the scaling window must be constrained by the conformance window. 32. Whether and / or how to signal the maximum allowed block size of a transform skip coding block may depend on the maximum block size of the transform coding block. a. Alternatively, the maximum block size of the transform skip coding blocks cannot be larger than the maximum block size of the transform coding blocks in the conforming bitstream. 33. Whether and how to signal an indication of enabling Joint Cb-Cr Residue (JCCR) coding (e.g., sps_joint_cbcr_enabled_flag) may depend on the color format (e.g., 4:0:0, 4:2:0, etc.). For example, an indication of enabling Joint Cb-Cr Residue (JCCR) coding may not be signaled if the color format is 4:0:0. An example syntax design is as follows: [Table 12] <TPM / GEOにおけるクロマブレンディングマスクのためのダウンサンプリングフィルタタイプ> 34. The type of downsampling filter used for blending weight derivation for chroma samples may be signaled at the video unit level (e.g., SPS / VPS / PPS / picture header / subpicture / slice / slice header / tile / brick / CTU / VPDU level). In one example, a high level flag may be signaled to switch between different chroma format types of content. i. Alternatively, a high-level flag may be signaled to switch between chroma format type 0 and chroma format type 2. ii. In one example, a flag may be signaled to specify whether the top-left downsampled luma weight in TPM / GEO prediction mode is co-located with the top-left luma weight (i.e., chroma sample position type 0). iii. In one example, a flag may be signaled to specify whether the top-left downsampled luma weight in TPM / GEO prediction mode is horizontally co-located with the top-left luma sample but vertically shifted by 0.5 luma sample units relative to the top-left luma sample (i.e., chroma sample position type 2). b. In one example, the type of downsampling filter may be signaled for 4:2:0 chroma format and / or 4:2:2 chroma format. c. In one example, a flag may be signaled to specify the type of chroma downsampling filter used for TPM / GEO prediction. i. In one example, a flag may be signaled regarding whether to use downsampling filter A or downsampling filter B for chroma weight derivation in TPM / GEO prediction mode. 35. The type of downsampling filter used for blending weight derivation for chroma samples may be derived at the video unit level (e.g., SPS / VPS / PPS / picture header / subpicture / slice / slice header / tile / brick / CTU / VPDU level). In one example, a lookup table may be defined to specify the correspondence between chroma subsampling filter types and content chroma format types. 36. A specified downsampling filter may be used for TPM / GEO prediction modes in case of different chroma sample position types. a. In one example, the chroma weights for TPM / GEO may be subsampled from the co-located top-left luma weight for a particular chroma sample position type (eg, chroma sample position type 0). b. In one example, for a particular chroma sample position type (e.g., chroma sample position type 0 or 2), a specified X-tap filter (where X is a constraint such as X=6 or 5) may be used for chroma weight subsampling in TPM / GEO prediction mode. 37. In a video unit (e.g., SPS, PPS, picture header, slice header, etc.), a first syntax element (e.g., a flag) may be signaled to indicate whether MTS is disabled for the entire block (slice / picture). A second syntax element indicating how to apply MTS (e.g., enable MTS / disable MTS / implicit MTS / explicit MTS) for an intra-coded block (slice / picture) is conditionally signaled with the first syntax element. For example, the second syntax element is signaled only if the first syntax element indicates that MTS is not disabled for the entire block (slice / picture). b. A third syntax element indicating how to apply MTS (e.g., enable MTS / disable MTS / implicit MTS / explicit MTS) for an inter-coding block (slice / picture) is conditionally signaled with the first syntax element. For example, the third syntax element is signaled only if the first syntax element indicates that MTS is not disabled for the entire block (slice / picture). c. An exemplary syntax design is as follows: [Table 13] d. A third syntax element may be signaled depending on whether a Sub-Block Transform (SBT) is applied. An example syntax design is as follows: [Table 14] e. An exemplary syntax design is as follows: [Table 15]

[0091] [5. Additional embodiment] In what follows, text changes are indicated in underlined, bold italics. 5.1 Implementation of Constraints on Conformance Windows conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset specify the sample of the picture in the CVS output from the decoding process in terms of the rectangular region specified in the picture coordinates for output. When conformance_window_flag is equal to 0, the values ​​of conf_win_left_offset, conf_win_right_offset, conf_win_top_offset, and conf_win_bottom_offset are inferred to be equal to 0. The adaptive cropping window includes luma samples with horizontal picture coordinates from ubWidthC*conf_win_left_offset to pic_width_in_luma_samples-(SubWidthC*conf_win_right_offset+1) inclusive, and vertical picture coordinates from SubHeightC*conf_win_top_offset to pic_height_in_luma_samples-(SubHeightC*conf_win_bottom_offset+1), inclusive. The value of SubWidthC*(conf_win_left_offset+conf_win_right_offset) should be smaller than pic_width_in_luma_samples, and the value of SubHeightC*(conf_win_top_offset+conf_win_bottom_offset) should be smaller than pic_height_in_luma_samples. The variables PicOutputWidthL and PicOutputHeightL are derived as follows:

number

number

number

number

number

number

number

number

[0092] [5.3. Second embodiment of reference sample position derivation] Overview … The variable fRefWidth is set equal to the PicOutputWidthL of the reference picture in luma samples. The variable fRefHeight is set equal to the PicOutputHeightL of the reference picture in luma samples.

number

number

number

number

number

number

[0093] [5.4. Reference sample position derivation embodiment 3] Overview … The variable fRefWidth is set equal to the PicOutputWidthL of the reference picture in luma samples. The variable fRefHeight is set equal to the PicOutputHeightL of the reference picture in luma samples.

number

number

number

number

number

number

[0094] [5.5. Reference sample position clipping embodiment 1] Overview The inputs to this process are: A luma position (xSb, ySb) that specifies the top-left sample of the current coding sub-block relative to the top-left luma sample of the current picture; The variable sbWidth, which specifies the width of the current coding subblock, The variable sbHeight, which specifies the height of the current coding subblock, · Motion vector offset mvOffset, refined motion vector refMvLX, Select the reference picture sample array refPicLX, Half-sample interpolation filter index hpelIfIdx, - Bidirectional optical flow flag bdofFlag, · Variable cIdx that specifies the color component index of the current block. The output of this process is: predSamplesLX, a (sbWidth+brdExtSize)x(sbHeight+brdExtSize) array of predicted sample values. The prediction block boundary extension size brdExtSize is derived as follows:

number

number

number

number

number

number

[0095] [5.6. Reference sample position clipping embodiment 2] Overview The inputs to this process are: A luma position (xSb, ySb) that specifies the top-left sample of the current coding sub-block relative to the top-left luma sample of the current picture; The variable sbWidth, which specifies the width of the current coding subblock, The variable sbHeight, which specifies the height of the current coding subblock, · Motion vector offset mvOffset, refined motion vector refMvLX, Select the reference picture sample array refPicLX, Half-sample interpolation filter index hpelIfIdx, - Bidirectional optical flow flag bdofFlag, · Variable cIdx that specifies the color component index of the current block. The output of this process is: predSamplesLX, a (sbWidth+brdExtSize)x(sbHeight+brdExtSize) array of predicted sample values. The prediction block boundary extension size brdExtSize is derived as follows:

number

number

number

number

number

number

number

[0096] [6. Exemplary implementations of the disclosed technology] FIG. 5 is a block diagram of a video processing device 500. The device 500 may be used to perform one or more of the methods described herein. The device 500 may be implemented in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The device 500 may include one or more processors 502, one or more memories 504, and video processing hardware 506. The processor 502 may be configured to perform one or more of the methods described herein. The memory(s) 504 may be used to store data and code used to perform the methods and techniques described herein. The video processing hardware 506 is a hardware circuit that may be used to perform some of the techniques described herein and may be partially or completely part of the processor 502 (e.g., a graphics processor core GPU or other signal processing circuitry).

[0097] As used herein, the term "video processing" or coding may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during conversion of a video from a pixel representation to a corresponding bitstream representation or vice versa. The bitstream representation of a current video block may correspond, for example, to bits that are in the same position or spread across different locations in the bitstream, as defined by the syntax. For example, a macroblock may be coded in terms of a converted coded error residual value, using bits from the header and also other fields in the bitstream.

[0098] It will be appreciated that the disclosed methods and techniques benefit embodiments of video encoders and / or decoders integrated into video processing devices such as smartphones, laptops, desktops, and similar devices by enabling the use of the techniques disclosed herein.

[0099] 6 is a flow chart of an example method 600 of video processing. The method 600 includes, at 610, performing a conversion between a current video block and a coded representation of the current video block, where during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, a same interpolation filter is applied to a group of adjacent or non-adjacent samples predicted using the current video block.

[0100] Some embodiments may be described using the following clause-based format.

[0101] (Item 1) A method of video processing, comprising a step of performing a conversion between a current video block and a coded representation of the current video block, wherein during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, the same interpolation filter is applied to a group of adjacent or non-adjacent samples predicted using the current video block.

[0102] (Item 2) The method according to item 1, wherein the same interpolation filter is a vertical interpolation filter.

[0103] (Item 3) The method according to item 1, wherein the same interpolation filter is a horizontal interpolation filter.

[0104] (Item 4) The method of item 1, wherein the group of adjacent or non-adjacent samples includes all samples located within an area of ​​the current video block.

[0105] (Item 5) The method of item 4, wherein the current video block is divided into multiple rectangles, each of size M×N.

[0106] (Item 6) The method according to item 5, wherein M and / or N are predetermined.

[0107] (Item 7) The method of item 5, wherein M and / or N are derived from a dimension of the current video block.

[0108] (Item 8) The method of item 5, wherein M and / or N are signaled within a coded representation of the current video block.

[0109] (Item 9) The method of item 1, wherein the group of samples share the same motion vector.

[0110] (Item 10) The method of item 9, wherein the groups of samples share the same horizontal component and / or the same fractional part of a horizontal component.

[0111] (Item 11) The method of item 9, wherein the groups of samples share the same vertical component and / or the same fractional part of a vertical component.

[0112] (Item 12) A method according to one or more of items 9 to 11, wherein the same motion vector or its components satisfy one or more rules based on at least one of the resolution of the reference picture, the size of the reference picture, the resolution of the current video block, the size of the current video block, or a precision value.

[0113] (Item 13) The method according to one or more of items 9 to 11, wherein the same motion vector or a component thereof corresponds to motion information of samples located within the current video block.

[0114] (Item 14) The method according to one or more of Items 9 to 11, wherein the same motion vector or its component is set to motion information of a virtual sample located inside or outside the group.

[0115] (Item 15) A method of video processing, comprising a step of performing a conversion between a current video block and a coding representation of the current video block, wherein during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, a block predicted using the current video block is only allowed to use integer-value motion information associated with the current block.

[0116] (Item 16) The method of item 15, wherein the integer-value motion information is derived by rounding original motion information of the current video block.

[0117] (Item 17) The method of item 15, wherein the original motion information of the current video block is horizontal and / or vertical.

[0118] (Item 18) A method of video processing, comprising a step of performing a conversion between a current video block and a coding representation of the current video block, wherein during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, an interpolation filter is applied to derive a predicted block using the current video block, the interpolation filter being selected based on a rule.

[0119] (Item 19) The method of item 18, wherein the rule is related to the resolution and / or size of the reference sample relative to the resolution and / or size of the current video block.

[0120] (Item 20) The method according to item 18, wherein the interpolation filter is a vertical interpolation filter.

[0121] (Item 21) The method according to item 18, wherein the interpolation filter is a horizontal interpolation filter.

[0122] (Item 22) The method of item 18, wherein the interpolation filter is one of a 1-tap filter, a bilinear filter, a 4-tap filter, or a 6-tap filter.

[0123] (Item 23) The method according to Item 22, wherein the interpolation filter is used as part of another step of the transformation.

[0124] (Item 24) The method described in Item 18, wherein the interpolation filter includes the use of padding samples.

[0125] (Item 25) The method of item 18, wherein the use of the interpolation filter depends on the color components of the samples of the current video block.

[0126] (Item 26) A method of video processing, comprising a step of performing a conversion between a current video block and a coded representation of the current video block, and during the conversion, if a resolution and / or size of a reference picture differs from a resolution and / or size of the current video block, selectively applying a deblocking filter, the strength of the deblocking filter being set according to a rule related to the resolution and / or size of the reference picture relative to the resolution and / or size of the current video block.

[0127] (Item 27) The method according to item 27, wherein the strength of the deblocking filter varies for each video block.

[0128] (Item 28) A method of video processing, comprising a step of performing a conversion between a current video block and a coded representation of the current video block, wherein during the conversion, if a sub-picture of the current video block is present, a conforming bitstream satisfies a rule relating the resolution and / or size of the reference picture to the resolution and / or size of the current video block.

[0129] (Item 29) The method of item 28, further comprising a step of dividing the current video block into one or more sub-pictures, the division being dependent at least on a resolution of the current video block.

[0130] (Item 30) A method of video processing, comprising a step of performing a conversion between a current video block and a coding representation of the current video block, wherein during the conversion, a reference picture of the current video block is resampled according to a rule based on dimensions of the current video block.

[0131] (Item 31) A method of video processing, comprising a step of performing a conversion between a current video block and a coding representation of the current video block, wherein during the conversion, use of a coding tool for the current video block is enabled or disabled depending on a resolution and / or size of a reference picture for the current video block relative to a resolution and / or size of the current video block.

[0132] (Item 32) A method according to one or more of the preceding items, wherein the group of samples is located within a fitting window.

[0133] (Item 33) The method described in Item 32, wherein the fitting window is rectangular in shape.

[0134] (Item 34) A method according to one or more of the preceding items, wherein the resolution relates to a resolution of the coding / decoding video block or a resolution of an adaptation window of the coding / decoding video block.

[0135] (Item 35) A method according to one or more of the preceding items, wherein the size is related to the size of the coding / decoding video block or the size of an adaptation window of the coding / decoding video block.

[0136] (Item 36) A method according to one or more of the preceding items, wherein the dimension is related to a dimension of the coding / decoding video block or a dimension of an adaptation window of the coding / decoding video block.

[0137] (Item 37) The method described in Item 32, wherein the adaptive window is defined by a set of adaptive cropping window parameters.

[0138] (Item 38) The method of item 37, wherein at least a portion of the set of adaptive cropping window parameters is implicitly or explicitly signaled in the coding representation.

[0139] (Item 39) A method according to one or more of the preceding items, wherein the set of adaptive cropping window parameters is signaled within the coding representation.

[0140] (Item 40) A method according to one or more of the preceding items, wherein the position of the reference sample is derived with respect to a top-left sample of the current video block within the adaptation window.

[0141] (Item 41) A method of video processing comprising a step of performing a conversion between a plurality of video blocks and a coding representation of the plurality of video blocks, wherein during the conversion a first adaptation window is defined for a first video block and a second adaptation window is defined for a second video block, and a ratio of a width and / or height of the first adaptation window to the second adaptation window follows at least a rule based on a adaptation bitstream.

[0142] (Item 42) A video decoding device, comprising a processor configured to implement the methods described in one or more of items 1 to 41.

[0143] (Item 43) A video encoding device comprising a processor configured to implement the methods described in one or more of items 1 to 41.

[0144] (Item 44) A computer program product having computer code stored thereon, the code causing the processor to perform a method according to any one of items 1 to 41 when executed by a processor.

[0145] (Item 45) Any method, apparatus, or system described herein.

[0146] 7 is a block diagram illustrating an example video processing system 700 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 700. System 700 may include an input 702 that receives video content. The video content may be received in raw or uncompressed format, such as 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. Input 702 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical network (PON), etc., and wireless interfaces such as Wi-Fi or cellular interfaces.

[0147] System 700 may include a coding component 704 that may implement various coding or encoding methods described herein. The coding component 704 may reduce the average bit rate of the video from the input 702 to the output of the coding component 704 to generate a coded representation of the video. Coding techniques are therefore sometimes referred to as video compression or video transcoding techniques. The output of the coding component 704 may be stored or transmitted over a communication connection, as represented by component 706. The bitstream (or coded) representation received at the input 702, stored or communicated, may be used by component 708 to generate pixel values ​​or displayable video that are transmitted to a display interface 710. The process of generating user-viewable video from the bitstream representation is sometimes referred to as video decompression. Additionally, although certain video processing operations are referred to as "coding" operations or tools, it is understood that the coding tools or operations are used in an encoder and that corresponding decoding tools or operations that reverse the results of the coding are performed by a decoder.

[0148] Examples of peripheral bus interfaces or display interfaces may include universal serial bus (USB) or high definition multimedia interface (HDMI) or Displayport, etc. Examples of storage interfaces include serial advanced technology attachment (SATA), PCI, IDE interfaces, etc. The techniques described herein may be implemented in a variety of electronic devices, such as mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video displays.

[0149] FIG. 8 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of this disclosure.

[0150] 8, video coding system 100 may include source device 110 and destination device 120. Source device 110 may be referred to as a video encoder and may generate encoded video data. Destination device 120 may be referred to as a video decoder and may decode the encoded video data generated by source device 110.

[0151] Source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0152] The video source 112 may include a source such as a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of such sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bitstream. The bitstream may include a sequence of bits that form a coded representation of the video data. The bitstream may include coding pictures and associated data. A coding picture is a coded representation of a picture. The associated data may include sequence parameter sets, picture parameter sets, and other syntax structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The coded video data may be transmitted directly to the destination device 120 through the network 130a via the I / O interface 116. The coded video data may be stored on a storage medium / server 130b for access by the destination device 120.

[0153] The destination device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .

[0154] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated into the destination device 120 or may be external to the destination device 120 and configured to interface with an external display device.

[0155] Video encoder 114 and video decoder 124 may operate in accordance with a video compression standard, such as the High Efficiency Video Coding (HEVC) standard, the Versatile Video Coding (VVC) standard, and other current and / or future standards.

[0156] FIG. 9 is a block diagram illustrating an example of a video encoder 200, which may be the video encoder 114 in the system 100 shown in FIG.

[0157] Video encoder 200 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 9, video encoder 200 includes multiple functional components. The techniques described in this disclosure may be shared among various components of video encoder 200. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0158] Functional components of the video encoder 200 may include a partition unit 201, a prediction unit 202, which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214.

[0159] In other examples, video encoder 200 may include more, fewer, or different functional components. In an example, prediction unit 202 may include an intra block copy (IBC) unit. The IBC unit may perform prediction in IBC mode, where at least one reference picture is the picture in which the current video block is located.

[0160] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but are represented separately in the example of FIG. 5 for purposes of illustration.

[0161] Partition unit 201 partitions a picture into one or more video blocks. Video encoder 200 and video decoder 300 may support a variety of video block sizes.

[0162] The mode selection unit 203 may select one of the coding modes, intra or inter, based on, for example, an error result, and provide the resulting intra- or inter-coded block to the residual generation unit 207 for generating residual block data, and to the reconstruction unit 212 for reconstructing the coded block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra and inter predication (CIIP) mode. In the CIIP mode, prediction is based on an inter prediction signal and an intra prediction signal. The mode selection unit 203 may select a resolution of the motion vector for the block (e.g., sub-pixel or integer pixel precision) in the case of inter prediction.

[0163] To perform inter prediction on the current video block, motion estimation unit 204 may generate motion information for the current video block by comparing one or more reference frames from buffer 213 to the current video block. Motion compensation unit 205 may determine a prediction video block for the current video block based on the motion information and decoded samples of pictures from buffer 213 other than the picture associated with the current video block.

[0164] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block depending on, for example, whether the current video block is an I slice, a P slice, or a B slice.

[0165] In some examples, motion estimation unit 204 may perform unidirectional prediction for the current video block, and motion estimation unit 204 may search reference pictures in list 0 or list 1 for a reference video block for the current video block. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector indicating a spatial displacement between the current video block and the reference video block. Motion estimation unit 204 may output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 may generate a prediction video block for the current block based on the reference video block indicated by the motion information of the current video block.

[0166] In other examples, motion estimation unit 204 may perform bidirectional prediction for the current video block, and motion estimation unit 204 may search a reference picture in list 0 for a reference video block for the current video block and may search a reference picture in list 1 for another reference video block for the current video block. Motion estimation unit 204 may then generate a reference index indicating a reference picture in list 0 or list 1 that contains the reference video block, and a motion vector indicating a spatial displacement between the reference video block and the current video block. Motion estimation unit 204 may output the reference index and the motion vector for the current video block as motion information for the current video block. Motion compensation unit 205 may generate a predictive video block for the current video block based on the reference video block indicated by the motion information of the current video block.

[0167] In some examples, the motion estimation unit 204 may output a complete set of motion information for the decoding process of the decoder.

[0168] In some examples, motion estimation unit 204 may not output a complete set of current video motion information. Rather, motion estimation unit 204 may signal motion information of the current video block by reference to motion information of another video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of a neighboring video block.

[0169] In one example, motion estimation unit 204 may indicate, in a syntax structure associated with the current video block, a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.

[0170] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.

[0171] As mentioned above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 include advanced motion vector predication (AMVP) and merge mode signaling.

[0172] Intra prediction unit 206 may perform intra prediction on the current video block. When intra prediction unit 206 performs intra prediction on the current video block, intra prediction unit 206 may generate predictive data for the current video block based on decoded samples of other video blocks in the same picture. The predictive data for the current video block may include a predictive video block and various syntax elements.

[0173] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., as indicated by a minus sign) the prediction video block of the current video block from the current video block. The residual data for the current video block may include residual video blocks that correspond to different sample components of the samples in the current video block.

[0174] In other examples, for the current video block, residual data for the current video block may not be present, eg, in skip mode, and residual generation unit 207 may not perform the subtraction operation.

[0175] Transform processing unit 208 may generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.

[0176] After transform processing unit 208 generates the transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameters (QP) associated with the current video block.

[0177] Inverse quantization unit 210 and inverse transform unit 211 may apply inverse quantization and inverse transform, respectively, to the transform coefficient video block to reconstruct a residual video block from the transform coefficient video block. Reconstruction unit 212 may add the reconstructed residual video block to corresponding samples from one or more prediction video blocks generated by prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in buffer 213.

[0178] After reconstruction unit 212 reconstructs the video blocks, a loop filtering operation may be performed to reduce video blocking artifacts in the video blocks.

[0179] The entropy encoding unit 214 may receive data from other functional components of the video encoder 200. Once the entropy encoding unit 214 receives the data, the entropy encoding unit 214 may perform one or more entropy encoding operations to generate entropy encoded data and output a bitstream that includes the entropy encoded data.

[0180] FIG. 10 is a block diagram illustrating an example of a video decoder 300, which may be the video decoder 114 in the system 100 shown in FIG.

[0181] The video decoder 300 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 10, the video decoder 300 includes multiple functional components. The techniques described in this disclosure may be shared among various components of the video decoder 300. In some examples, a processor may be configured to perform any or all of the techniques described in this disclosure.

[0182] 10, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306, and a buffer 307. The video decoder 300 may, in some examples, perform a decoding path that is generally reciprocal to the encoding path described with respect to the video encoder 200 (e.g., FIG. 9).

[0183] The entropy decoding unit 301 may read an encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy encoded video data, and from the entropy decoded video data, the motion compensation unit 302 may determine motion information including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 may determine such information, for example, by implementing AMVP and merge mode.

[0184] The motion compensation unit 302 may generate the motion compensated blocks by performing interpolation, possibly based on an interpolation filter. An identifier of the interpolation filter to be used with sub-pixel accuracy may be included in the syntax element.

[0185] The motion compensation unit 302 may use an interpolation filter, such as that used by video encoder 200 during encoding of the video block, to calculate sub-integer pixel interpolated values ​​of the reference block. The motion compensation unit 302 may determine the interpolation filter used by video encoder 200 according to received syntax information and generate the predictive block using the interpolation filter.

[0186] The motion compensation unit 302 may use some of the syntax information to determine the size of the blocks used to code a frame and / or slice of the coded video sequence, partition information describing how each macroblock of a picture of the coded video sequence is partitioned, a mode indicating how each partition is coded, one or more reference frames (and reference frame lists) for each inter-coded block, and other information for decoding the coded video sequence.

[0187] The intra prediction unit 303 may form a prediction block from spatially neighboring blocks, e.g., using an intra prediction mode received in the bitstream. The inverse quantization unit 303 inverse quantizes, or dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 applies an inverse transform.

[0188] Reconstruction unit 306 may add the residual blocks with corresponding prediction blocks generated by motion compensation unit 202 or intra prediction unit 303 to form decoded blocks. If desired, a deblocking filter may also be applied to filter the decoded blocks to remove blocking artifacts. The decoded video blocks are then stored in a buffer 307, which provides reference blocks for subsequent motion compensation.

[0189] 11 is a flow chart representation of a method of video processing according to the technique of the present invention. The method 1100 includes, at operation 1110, performing a conversion between a current picture of a video and a coded representation of the video according to a rule. The current picture includes a first window having dimensions W×H samples, where W and H are integers. A reference picture associated with the current picture includes a second window having dimensions W′×H′ samples, where W′ and H′ are integers. Samples in the first and second windows follow the same processing rules during conversion, where W, H, W′, and H′ satisfy constraints.

[0190] In some embodiments, the first window and the second window are scaling windows. The same processing rule specifies that samples within the scaling windows are subjected to a resampling() process. In some embodiments, the first window and the second window are adaptation windows. The same processing rule specifies that samples outside the adaptation windows are discarded when outputting the video.

[0191] In some embodiments, the constraint specifies that W' / a≦W≦W'×b, where a and b are positive integers. In some embodiments, a is equal to 2. In some embodiments, b is equal to 8. In some embodiments, the constraint specifies that H' / c≦H≦H'×d, where c and d are positive integers. In some embodiments, c is equal to 2. In some embodiments, d is equal to 8. In some embodiments, a=c. In some embodiments, b=d.

[0192] In some embodiments, the dimensions of the first or second scaling window are signaled in the coded representation and used to determine a set of scaling ratios. In some embodiments, the dimensions of the first or second scaling window are signaled in the coded representation and used to determine a top-left offset of a reference sample when applying Reference Picture Resampling (RPR) during the transform.

[0193] 12 is a flow chart representation of a method of video processing in accordance with the techniques of the present invention. The method 1200 includes, at operation 1210, performing a conversion between a current picture of the video and a coding representation of the video according to a rule. During the conversion, an offset value for determining a window of the current picture is signaled in the coding representation with N-pel precision, where N is a positive integer greater than 1.

[0194] In some embodiments, the window comprises a scaling window in which the samples undergo a resampling process. In some embodiments, the window comprises an adaptation window, and samples outside the adaptation window are discarded when outputting the video. In some embodiments, the offset value signaled in the coding representation is multiplied by N when determining the adaptation window for the current picture. In some embodiments, N is equal to 4 or 8. In some embodiments, the offset value is used in one or more coding processes during transformation.

[0195] 13 is a flow chart representation of a method of video processing according to the technique of the present invention. The method 1300 includes, at operation 1310, performing a conversion between a video including a first video unit and a second video unit and a coded representation of the video. A first set of offset values ​​for a first window of the first video unit and a second set of offset values ​​for a second window of the second video unit are determined according to rules associated with dimensions of the first video unit and dimensions of the second video unit. Samples in the first window and the second window follow the same processing rules during conversion.

[0196] In some embodiments, the first window and the second window are scaling windows and the same processing rule specifies that samples within the scaling windows are subjected to a resampling process.In some embodiments, the first window and the second window are adaptation windows and the same processing rule specifies that samples outside the adaptation window are discarded when outputting the video.

[0197] In some embodiments, the first video unit or the second video unit comprises a picture of a video. In some embodiments, the rule specifies that the first set of offset values ​​is different from the second set of offset values ​​if the dimensions of the first video unit are the same as the dimensions of the second video unit. In some embodiments, the rule specifies that the first set of offset values ​​is the same as the second set of offset values ​​if the dimensions of the first video unit are different from the dimensions of the second video unit. In some embodiments, the rule specifies that the first set of offset values ​​is the same as the second set of offset values ​​regardless of whether the dimensions of the first video unit are the same as the dimensions of the second video unit.

[0198] In some embodiments, the first conforming window has dimensions of W1×H1, the upper left position of the first conforming window is represented as (X1, Y1), the second conforming window has dimensions of W2×H2, the upper left position of the second conforming window is represented as (X2, Y2), the dimensions of the first video unit are represented as PW1×PH1, and the dimensions of the second video unit are represented as PW2×PH2. In some embodiments, W1 / W2 = X1 / X2. In some embodiments, W1 / X1 = W2 / X2. In some embodiments, W1×X2 = W2×X1. In some embodiments, H1 / H2 = Y1 / Y2. In some embodiments, H1 / Y1 = H2 / Y2. In some embodiments, H1×Y2 = H2×Y1. In some embodiments, PW1 / PW2 = X1 / X2. In some embodiments, PW1 / X1 = PW2 / X2. In some embodiments, PW1×X2 = PW2×X1. In some embodiments, PH1 / PH2 = Y1 / Y2. In some embodiments, PH1 / Y1 = PH2 / Y2. In some embodiments, PH1×Y2 = PH2×Y1. In some embodiments, PW1 / PW2 = W1 / W2. In some embodiments, PW1 / W1 = PW2 / W2. In some embodiments, PW1×W2 = PW2×W1. In some embodiments, PH1 / PH2 = H1 / H2. In some embodiments, PH1 / H1 = PH2 / H2. In some embodiments, PH1×H2 = PH2×H1. In some embodiments, when PW1 > PW2, W1 > W2. In some embodiments, when PW1 < PW2, W1 < W2. In some embodiments, (PW1 - PW2)×(W1 - W2)≧0. In some embodiments, when PH1 > PH2, H1 > H2. In some embodiments, when PH1 < PH2, H1 < H2. In some embodiments, (PH1 - PH2)×(H1 - H2)≧0. In some embodiments, when PW1≧PW2, (W1 / W2)≦(PW1 / PW2). In some embodiments, when PW1≧PW2, (W1 / W2)≧(PW1 / PW2). In some embodiments, when PH1≧PW2, (H1 / H2)≦(PH1 / PH2).In some embodiments, if PH1 > PW2, then (H1 / H2) > (PH1 / PH2).

[0199] 14 is a flow chart representation of a method of video processing according to the technique of the present invention. The method 1400 includes, at operation 1410, determining a position of a reference sample in a reference picture associated with a current picture for conversion between a current picture of the video and a coded representation of the video based on a top left position of a window of the picture, the picture including at least the current picture or the reference picture. The window follows a processing rule during conversion. The method 1400 further includes, at operation 1420, performing the conversion based on the determination.

[0200] In some embodiments, the window is a scaling window and the processing rules specify that samples within the scaling window are subject to a resampling process, hi some embodiments, the window comprises a conformance window and the processing rules specify that samples outside the conformance window can be discarded when outputting the video.

[0201] In some embodiments, the top-left position of the window is determined based on a left offset value and a top offset value associated with the window. In some embodiments, the horizontal position xSb' of the current sample relative to the top-left position of the window is determined based on the horizontal position xSb of the current sample in the current picture and the left offset of the window of the current picture. In some embodiments, the horizontal position xSb' of the current sample relative to the top-left position of the window is further determined based on a sample precision.

[0202] In some embodiments, the horizontal position xSb' of the current sample relative to the top left position of the window is used to determine the position of the reference sample. In some embodiments, the horizontal position of the reference sample relative to the reference picture is determined based on xSb' and the left offset of the window of the reference picture. In some embodiments, the sample precision indicates a shift of 4 bits.

[0203] In some embodiments, the vertical position ySb' of the current sample relative to the top-left position of the window is determined based on the vertical position ySb of the current sample in the current picture and the top offset of the window of the current picture. In some embodiments, the vertical position ySb' of the current sample relative to the top-left position of the window is further determined based on the sample precision. In some embodiments, the vertical position ySb' of the current sample relative to the top-left position of the window is used to determine the position of the reference sample. In some embodiments, the vertical position of the reference sample relative to the reference picture is determined based on ySb' and the top offset of the window of the reference picture. In some embodiments, the sample precision indicates a shift of 4 bits.

[0204] In some embodiments, the use of the top left position of the window is based on the color components of the video, which in some embodiments include the luma component.

[0205] 15 is a flow chart representation of a method of video processing according to the technique of the present invention. The method 1500 includes, at operation 1510, performing a conversion between a current picture of a video and a coded representation of the video. The current picture includes a first window having dimensions W×H samples, where W and H are integers. A reference picture associated with the current picture includes a second window having dimensions W′×H′ samples, where W′ and H′ are integers, and the top left position of the second window is represented as (X0,Y0). Samples in the first and second windows follow the same processing rules during conversion. The integer parts of the coordinates of the reference samples are constrained within a range determined in part based on the first or second window.

[0206] In some embodiments, the integer part of the horizontal coordinate of the reference sample is constrained to the range [minW, maxW]. In some embodiments, minW is equal to 0. In some embodiments, minW is equal to X0. In some embodiments, maxW is equal to W-1. In some embodiments, maxW is equal to W'-1. In some embodiments, maxW is equal to X0+W'-1. In some embodiments, at least one of minW or maxW is modified based on the color components and / or color format of the video. In some embodiments, minW is modified to be minW x subC, where subC is an integer. In some embodiments, minW is modified to be minW / subC, where subC is an integer. In some embodiments, maxW is modified to be maxW x subC, where subC is an integer. In some embodiments, maxW is modified to be maxW / subC, where subC is an integer. In some embodiments, maxW is modified to be maxW / subC, where subC is an integer. In some embodiments, if the color components include a luma component, then subC is 1. In some embodiments, if the color components include chroma components and the color format is 4:2:0 or 4:2:2, subC is 2. In some embodiments, if the color components include chroma components and the color format is 4:4:4, subC is 1.

[0207] In some embodiments, the integer part of the vertical coordinate of the reference sample is constrained to the range [minH, maxH]. In some embodiments, minH is equal to 0. In some embodiments, minH is equal to Y0. In some embodiments, maxH is equal to H-1. In some embodiments, maxH is equal to H'-1. In some embodiments, maxH is equal to Y0+H'-1. In some embodiments, at least one of minH or maxH is modified based on the color components and / or color format of the video. In some embodiments, minH is modified to be minH x subC, where subC is an integer. In some embodiments, minH is modified to be minH / subC, where subC is an integer. In some embodiments, maxH is modified to be maxH x subC, where subC is an integer. In some embodiments, maxH is modified to be maxH / subC, where subC is an integer. In some embodiments, maxH is modified to be maxH / subC, where subC is an integer. In some embodiments, subC is 1 if the color components include a luma component. In some embodiments, when the color components include chroma components and the color format is 4:2:0 or 4:2:2, subC is 2. In some embodiments, when the color components include chroma components and the color format is 4:4:4, subC is 1.

[0208] In some embodiments, the applicability of the constraint on the integer part of the coordinates of the reference sample is determined based on the dimensions of the current picture and the dimensions of the reference picture. In some embodiments, the constraint on the integer part of the coordinates of the reference sample is based on the dimensions of the first window and the dimensions of the second window. In some embodiments, the constraint is applicable when (1) the dimensions of the current picture are different from the dimensions of the reference picture or (2) the dimensions of the first window are different from the dimensions of the second window. In some embodiments, the first window and the second window are scaling windows, and the same processing rule specifies that samples within the scaling windows are subjected to a resampling process. In some embodiments, the first window and the second window are conformance windows, and the same processing rule specifies that samples outside the conformance window are discarded when outputting the video.

[0209] In some embodiments, the converting comprises encoding into a coded representation, hi some embodiments, the converting comprises decoding the coded representation into video.

[0210] Some embodiments of the disclosed techniques include making a decision or determination to enable a video processing tool or mode. In an example, when a video processing tool or mode is enabled, an encoder uses or implements the tool or mode in processing blocks of video, but does not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, conversion of blocks of video to a bitstream representation of video uses the video processing tool or mode when enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, a decoder processes the bitstream with the knowledge that the bitstream has been modified based on the video processing tool or mode. That is, conversion of a bitstream representation of video to blocks of video is performed using the video processing tool or mode that was enabled based on the decision or determination.

[0211] Some embodiments of the disclosed techniques include making a decision or determination to disable a video processing tool or mode. In an example, when a video processing tool or mode is disabled, an encoder does not use the tool or mode in converting blocks of video to a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, a decoder processes the bitstream with the knowledge that the bitstream has not been modified using the video processing tool or mode that was enabled based on the decision or determination.

[0212] The disclosed and other solutions, examples, embodiments, modules, and functional operations described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including structures disclosed herein, and structural equivalents thereof, or in any combination of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by or to control the operation of a data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter affecting a machine-readable propagated signal, or one or more combinations thereof. The term "data processing device" encompasses any device, apparatus, and machine that processes data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, a device can include code that creates an execution environment for a subject computer program, such as code that constitutes a processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example a machine-generated electrical, optical, or electromagnetic signal, generated to encode information for transmission to appropriate receiver equipment.

[0213] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including a stand-alone program or a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in several associated files (e.g., a file that stores one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or on several computers, located at one site or distributed at several sites and interconnected by a communication network.

[0214] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs that perform functions by operating on input data and generating output. The processes and logic flows may be performed by, and devices may be implemented as, special purpose logic circuitry, such as a field programmable gate array (FPGA) or application specific integrated circuit (ASIC).

[0215] Processors suitable for executing a computer program include, by way of example, both general purpose and special purpose microprocessors, and any one or more processors of any kind of digital computer. Typically, a processor receives instructions and data from a read-only memory or a random access memory, or both. The essential elements of a computer are a processor for executing instructions, and one or more memory devices for storing instructions and data. Typically, a computer also includes one or more mass storage devices, such as magnetic, magneto-optical, or optical disks, for storing data, or is operatively coupled to receive data from or transfer data to them, or both. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all types of non-volatile memory, media, and memory devices, including, by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0216] Although the present specification contains a number of specificities, these should not be considered as limitations on the scope of any subject matter or what may be claimed, but rather as descriptions of features specific to particular embodiments of a particular technology. Certain features described herein in the context of separate implementations may also be combined in a single implementation. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as operating in a particular combination and initially claimed as such, one or more features from a claimed combination may in some cases be separated from the combination, and the claimed combination may be directed to a subcombination or a variation of the subcombination.

[0217] Similarly, although operations are shown in a particular order in the figures, this should not be understood to require that such operations be performed in the particular order shown, or sequentially, to achieve desirable results, and further, the separation of various system components in the embodiments described herein should not be understood to require such separation in all embodiments.

[0218] Only a few implementations and examples have been described; other implementations, extensions, and variations may be made based on what is described and shown herein.

Claims

1. 1. A method of video processing, comprising: determining motion information of a current block of a current picture of a video in an inter prediction mode for conversion between the current block and a bitstream of the video; for a first sample associated with a current video block, determining a location of a reference sample within a reference picture associated with the current block based on the motion information and one or more syntax elements included in the bitstream; performing said transformation based on said reference sample; the one or more syntax elements relate to a window of the reference picture; the window is a scaling window used for scaling ratio calculation in inter prediction, Four different syntax elements are used to indicate the left and top offsets of the scaling and adaptation windows: When outputting the video, samples outside the fit window can be discarded. method.

2. 2. The method of claim 1 , wherein a position of an intermediate reference sample associated with a top-left sample of the current block is derived based on the motion information, the one or more syntax elements, and a position of the top-left sample of the current block, and the position of the intermediate reference sample is further used to determine a position of the reference sample.

3. The method of claim 2 , wherein a shift operation is applied to derive the position of the intermediate reference sample.

4. The method of claim 3 , wherein the location of the intermediate reference sample is further determined based on a color component and a color format of the current block.

5. In response to the current block being a luma block, refxSb L = (((xSb - (SubWidthC * offset 0)) << 4) + refMvLX [0]) * ratio 0, and refySb L = (((ySb - (SubHeightC * offset1)) << 4) + refMvLX [1]) * ratio 1, (refxSb L ,refySb L ) is the position of the intermediate reference sample, (xSb, ySb) is the position of the top-left sample of the current block; SubWidthC and SubHeightC relate to the color format of the current block; offset0 indicates the left offset of the window, offset1 indicates the top offset of the window, refMvLX[0] and refMvLX[1] indicate the horizontal and vertical components of the motion information, The method of claim 4 , wherein ratio0 denotes a horizontal scaling ratio and ratio1 denotes a vertical scaling ratio.

6. refx L =((Sign(refxSb L )*((Abs(refxSb L )+128)>>8)+x L *((ratio 0 + 8) >> 4)) + fRefLeftOff + 32) >> 6, and Refy L =((Sign(refySb L )*((Abs(refySb L )+128)>>8)+y L *((ratio 1 + 8) >> 4)) + fRefTopOff + 32) >> 6, Sign() is a function that derives the sign of a variable, and Abs() is a function that derives the absolute value of a variable. (refx L ,refy L ) indicates the position of the reference sample, (x L ,y L ) indicates the position of the first sample, 6. The method of claim 5, wherein fRefLeftOff=(SubWidthC*offset0)<<10, and fRefTopOff=(SubHeightC*offset1)<<10.

7. in response to the current block being a chroma block, refxSb C is determined based on (((xSb-(SubWidthC*offset0)) / SubWidthC<<5)+refMvLX[0])*ratio0, refySb C is determined based on (((ySb-(SubHeightC*offset1)) / SubHeightC<<5)+refMvLX[1])*ratio1, (refxSb C ,refySb C ) is the position of the intermediate reference sample, (xSb, ySb) is the position of the top-left sample of the current block; SubWidthC and SubHeightC relate to the color format of the current block; offset0 indicates the left offset of the window, offset1 indicates the top offset of the window, refMvLX[0] and refMvLX[1] indicate the horizontal and vertical components of the motion information, The method of claim 6 , wherein ratio0 denotes a horizontal scaling ratio and ratio1 denotes a vertical scaling ratio.

8. refx C =((Sign(refxSb C )*((Abs(refxSb C )+256)>>9)+x C *((ratio 0 + 8) >> 4)) + fRefLeftOff / SubWidthC + 16) >> 5, and Refy C =((Sign(refySb C )*((Abs(refySb C )+256)>>9)+y C *((ratio 1 + 8) >> 4)) + fRefTopOff / SubHeightC + 16) >> 5, Sign() is a function that derives the sign of a variable, and Abs() is a function that derives the absolute value of a variable. (refx C ,refy C ) indicates the position of the reference sample, (x C ,y C ) indicates the position of the first sample, 8. The method of claim 7, wherein fRefLeftOff=(SubWidthC*offset0)<<10, and fRefTopOff=(SubHeightC*offset1)<<10.

9. The method of claim 8 , wherein ratio0 and ratio1 are determined based on a window of the current picture and a window of the reference picture.

10. The method according to any one of claims 1 to 9, wherein the transforming comprises encoding the current block into the bitstream.

11. The method of any one of claims 1 to 9, wherein the transforming comprises decoding the current block from the bitstream.

12. 16. An apparatus for processing video data, comprising: a processor; and a non-transitory memory having instructions that, when executed by the processor, cause the processor to: determining motion information of a current block of a current picture of a video in an inter prediction mode for conversion between the current block and a bitstream of the video; determining, for a first sample related to a current video block, a location of a reference sample within a reference picture associated with the current block based on the motion information and one or more syntax elements included in the bitstream; performing said transformation based on said reference sample; the one or more syntax elements relate to a window of the reference picture; the window is a scaling window used for scaling ratio calculation in inter prediction, Four different syntax elements are used to indicate the left and top offsets of the scaling and adaptation windows: When outputting the video, samples outside the fit window can be discarded. device.

13. A non-transitory computer-readable storage medium storing instructions, the instructions causing a processor to: determining motion information of a current block of a current picture of a video in an inter prediction mode for conversion between the current block and a bitstream of the video; determining, for a first sample related to a current video block, a location of a reference sample within a reference picture associated with the current block based on the motion information and one or more syntax elements included in the bitstream; performing said transformation based on said reference sample; the one or more syntax elements relate to a window of the reference picture; the window is a scaling window used for scaling ratio calculation in inter prediction, Four different syntax elements are used to indicate the left and top offsets of the scaling and adaptation windows: When outputting the video, samples outside the fit window can be discarded. A non-transitory computer-readable storage medium.

14. 1. A method for storing a bitstream of a video, the method comprising: determining, for a current block associated with a current picture of the video, motion information of the current block in an inter prediction mode; for a first sample associated with a current video block, determining a location of a reference sample within a reference picture associated with the current block based on the motion information and one or more syntax elements included in the bitstream; generating the bitstream based on the reference samples; storing the bitstream on a non-transitory computer readable recording medium; the one or more syntax elements relate to a window of the reference picture; the window is a scaling window used for scaling ratio calculation in inter prediction, Four different syntax elements are used to indicate the left and top offsets of the scaling and adaptation windows: When outputting the video, samples outside the fit window can be discarded. method.

Citation Information

Patent Citations

  • Reference Layer and Scaled Reference Layer Offsets for Scalable Video Coding

    US20150319447A1

Cited By

  • Deriving reference sample positions in video coding

    US12407812B2

  • Interplay between reference picture resampling and video coding tools

    US12483691B2

  • Prediction type signaling in video coding

    US12615394B2