Signaling slice types in video picture headers

Adaptive Resolution Change (ARC) in video coding standards addresses the challenge of seamless resolution adjustments in HEVC and VVC, enhancing user experience and resource efficiency by integrating RPR and motion vector refinement techniques.

JP7747409B2Active Publication Date: 2025-10-01DOUYIN VISION CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2022539115
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-12-27
Filing Date
2020-12-28
Publication Date
2025-10-01
Estimated Expiration
2040-12-28

AI Technical Summary

Technical Problem

Current video coding standards like HEVC and VVC lack the ability to adaptively change resolution without introducing IDR or IRAP pictures, leading to issues such as increased decoding complexity, resource consumption, and poor user experience in scenarios like video conferencing and streaming, especially when active speaker changes or network conditions deteriorate.

Method used

Implementing Adaptive Resolution Change (ARC) functionality by modifying the video coding standards to allow for seamless resolution adjustments within the bitstream, using techniques like Reference Picture Resampling (RPR) and motion vector refinement methods to handle resolution changes efficiently.

Benefits of technology

Enables adaptive resolution changes without disrupting decoding processes, improving user experience and resource efficiency in video conferencing and streaming applications by reducing latency and maintaining quality during dynamic resolution adjustments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007747409000076
    Figure 0007747409000076
  • Figure 0007747409000077
    Figure 0007747409000077
  • Figure 0007747409000078
    Figure 0007747409000078
Patent Text Reader

Abstract

Apparatuses, systems, and methods related to digital video coding, and specifically to signaling slice types in video picture headers, are described. One example of a method for video processing includes performing a conversion between a video having one or more video pictures having one or more slices and a bitstream for the video, the bitstream conforming to a format rule that specifies that for a video picture of the one or more video pictures in which all slices are coded as I-slices, P-slice and B-slice related syntax elements are omitted from a picture header for the video picture.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] child This application claims priority to and benefit of International Patent Application No. PCT / CN2019 / 129069, filed on December 27, 2019. This is a national phase application of International Application No. PCT / CN2020 / 140044, filed on December 28, 2020, which is the claimed invention. The entire disclosure of the above application is incorporated by reference into the disclosure of this application for all purposes under law.

[0002] This patent document relates to image coating techniques, devices and systems. [Background technology]

[0003] Efforts are currently underway to improve the performance of current video codec technology in order to provide better compression ratios or to provide video encoding and decoding schemes that have lower complexity or allow for parallel implementation. Industry experts have recently proposed several new video coding tools, and testing is currently underway to determine their effectiveness. Summary of the Invention

[0004] Apparatuses, systems, and methods related to digital video coding, and specifically to signaling slice types in video picture headers, are described. The described methods may be applied 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 technology can be used to provide a method for video processing, the method including performing a conversion between a video having one or more video pictures having one or more slices and a bitstream of the video, the bitstream conforming to a format rule that specifies that for a video picture of the one or more video pictures in which all slices are coded as I-slices, P-slice and B-slice related syntax elements are omitted from a picture header for the video picture.

[0006] In another exemplary aspect, the disclosed techniques may be used to provide a method for video processing that includes performing a conversion between a video having one or more video pictures having one or more slices and a bitstream of the video, the bitstream conforming to a format rule that specifies that a picture header of each video picture has a syntax element that indicates whether all slices in the video picture are coded with the same coding type.

[0007] In yet another exemplary aspect, the disclosed techniques can be used to provide another method for video processing, the method including performing a conversion between a video having one or more video pictures and a bitstream of the video, the bitstream conforming to format rules that specify that a picture header for each of the one or more video pictures has a syntax element that points to that picture.

[0008] In yet another exemplary aspect, the disclosed technology can be used to provide another method for video processing, including performing a conversion between a video having one or more video pictures and a bitstream of the video, the bitstream conforming to a format rule that specifies that a syntax element indicating a picture type of the picture is signaled within an access unit (AU) delimiter raw byte sequence payload (RBSP), the syntax element indicating whether all slices in the picture are I-slices.

[0009] In yet another exemplary aspect, the disclosed technology can be used to provide another method for video processing, the method including performing conversion between video having video pictures with one or more video slices and a bitstream of the video, the bitstream conforming to a format rule that specifies that, for a picture in which each of a plurality of slices in the picture is an I-slice, an indication of slice type is omitted from slice headers of the plurality of slices in the bitstream during encoding or is inferred to be an I-slice during decoding.

[0010] In yet another exemplary aspect, the disclosed technology can be used to provide another method for video processing, which includes making a determination as to whether one or more non-W-related syntax elements are signaled in a slice header of a W slice or a picture header of a W picture for conversion between a bitstream of a video having a W slice or a W picture, where W is I, B, or P, and performing the conversion based on the determination.

[0011] In yet another exemplary aspect, a video encoder apparatus is disclosed, the video encoder having a processor configured to implement the above-described method.

[0012] In yet another representative aspect, a video decoder apparatus is disclosed, the video decoder having a processor configured to implement the above-described method.

[0013] In yet another exemplary embodiment, a computer-readable medium having stored thereon code, in the form of processor-executable code, embodying one of the methods described herein, is disclosed.

[0014] These and other features are described throughout this document. [Brief explanation of the drawings]

[0015] [Figure 1] 1 shows an example of sub-block motion vectors (VSB) and motion vector differences. [Figure 2] An example of a 16x16 video block divided into sixteen 4x4 regions is shown. [Figure 3A] 3A-3C show examples of specific locations within a sample. [Figure 3B] 3A-3C show examples of specific locations within a sample. [Figure 3C] 3A-3C show examples of specific locations within a sample. [Figure 4A] 4A and 4B show examples of the locations of a current sample and its reference samples within a current picture. [Figure 4B] 4A and 4B show examples of the locations of a current sample and its reference samples within a current picture. [Figure 5] 1 illustrates an example of decoder-side motion vector refinement. [Figure 6] 1 shows an example of the flow of cascaded DMVR and BDOF processes in VTM5.0. The DMVR SAD calculation and BDOF SAD calculation are different and not shared. [Figure 7]FIG. 1 is a block diagram illustrating an example of a video processing system in which various techniques disclosed herein may be implemented. [Figure 8] FIG. 1 is a block diagram of an example of a hardware platform used for video processing. [Figure 9] FIG. 1 is a block diagram illustrating an example of a video coating system in which some embodiments of the present disclosure may be implemented. [Figure 10] FIG. 1 is a block diagram illustrating an example of an encoder capable of implementing some embodiments of the present disclosure. [Figure 11] FIG. 2 is a block diagram illustrating an example of a decoder capable of implementing some embodiments of the present disclosure. [Figure 12] 12-17 show flow charts of example methods for video processing. [Figure 13] 12-17 show flow charts of example methods for video processing. [Figure 14] 12-17 show flow charts of example methods for video processing. [Figure 15] 12-17 show flow charts of example methods for video processing. [Figure 16] 12-17 show flow charts of example methods for video processing. [Figure 17] 12-17 show flow charts of example methods for video processing. DETAILED DESCRIPTION OF THE INVENTION

[0016] 1. Video coding in HEVC / H.265 Video coding standards have evolved primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, while ISO / IEC developed MPEG-1 and MPEG-4 Visual. These two organizations then jointly developed the H.262 / MPEG-2 Video, H.264 / MPEG-4 AVC (Advanced Video Coding), and H.265 / HEVC standards. Since H.262, video coding standards have been based on hybrid video coding architectures that utilize transform coding in addition to temporal prediction. To explore future video coding technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, numerous new methods have been adopted by the JVET and incorporated into reference software named the Joint Exploration Model (JEM). In April 2018, the Joint Video Expert Team (JVET) was established between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) to work on the VVC standard, which aims to reduce the bitrate by 50% compared to HEVC.

[0017] The latest version of the VVC draft, Versatile Video Coding (Draft 6), is: http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 15_Gothenburg / wg11 / JVET-O2001-v14.zip The latest reference software for VVC, called VTM, can be found at: https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-6.0 can be found at.

[0018] AVC and HEVC do not have the ability to change resolution without the need to introduce IDR or Intra Random Access Point (IRAP) pictures, and such a capability may be referred to as Adaptive Resolution Change (ARC). There are use cases or application scenarios that would benefit from the ARC feature, including the following:

[0019] - Rate adaptation in video telephony and conferencing. To adapt the coded video to changing network conditions, when network conditions deteriorate and the available bandwidth decreases, the encoder can adapt by encoding lower resolution pictures. Currently, changing picture resolution can only be done after the IRAP picture, which has several problems. A reasonable-quality IRAP picture is much larger than an inter-coded picture and is correspondingly more complex to decode, costing time and resources. This becomes problematic when a resolution change is required by the decoder for loading reasons. It can also destroy low-latency buffering requirements, forcing audio resynchronization and increasing the end-to-end delay of the stream, at least temporarily. This can result in a poor user experience.

[0020] Active speaker changes in multi-party video conferencing. In multi-party video conferencing, it is common for the active speaker to be shown with a larger image size than the images for the remaining conference participants. When the active speaker changes, the picture resolution for each participant may also need to be adjusted. The need to have ARC functionality becomes even more important when such changes in active speaker occur frequently.

[0021] - Fast start in streaming. In streaming applications, it is common for the application to buffer up to a certain length of decoded pictures before starting to display them. Starting the bitstream at a lower resolution allows the application to have enough pictures in the buffer to start displaying sooner.

[0022] - Adaptive stream switching in streaming. The Dynamic Adaptive Streaming over HTTP (DASH) specification includes a feature named @mediaStreamStructureId, which allows switching between different representations at open GOP random access points with non-decodable leading pictures, for example, a CRA picture with an associated RASL picture in HEVC. When two different representations of the same video have different bitrates but the same spatial resolution and they have the same @mediaStreamStructureId value, switching between the two representations can be done at a CRA picture with an associated RASL picture, and the RASL picture associated with the CRA picture at the switching position can be decoded with acceptable quality, thus allowing seamless switching. Using ARC, the @mediaStreamStructureId feature can also be used to switch between DASH representations with different spatial resolutions.

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

[0024] ARC can also be considered as a special case of Reference Picture Resampling (RPR), such as in H.263 Annex P.

[0025] 2.1. Reference Picture Resampling in H.263 Annex P This mode describes an algorithm to warp a reference picture before using it for prediction. This can be 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 the warp parameters and resampling algorithm used. The simplest operational level of the reference picture resampling mode is an implicit factor-of-4 resampling, when all that is required is to apply an FIR filter to the upsampling and downsampling process. In this case, no additional signaling overhead is required, 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.

[0026] 2.2. Several contributions addressing ARC have been proposed, as listed below: JVET-M0135, JVET-M0259, JVET-N0048, JVET-N0052, JVET-N0118, JVET-N0279.

[0027] 2.3. Conformance Window in VVC A relevance window in VVC defines a rectangle. Samples inside the relevance window belong to the image of interest. Samples outside the relevance window can be discarded at output.

[0028] When a fitting window is applied, the scaling ratio in the RPR is derived based on the fitting window. Picture Parameter Set RBSP Syntax (outside 1) TIFF0007747409000001.tif213170TIFF0007747409000002.tif217170

[0029] 2.4. RPR in JVET-O2001-v14 JVET-O2001-v14 incorporates ARC, also known as RPR (Reference Picture Resampling).

[0030] In RPR in JVET-O2001-v14, TMVP is disabled when a co-located picture has a different resolution from the current picture, and BDOF and DMVR are also disabled when a reference picture has a different resolution from the current picture.

[0031] 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 Process 8.5.6.3.1 General The inputs to this process are: - a luma position (xSb, ySb) that defines 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 sub-block, - variable sbHeight, which specifies the height of the current coding subblock; - motion vector offset mvOffset, - refined motion vector refMvLX, - the selected reference picture sample array refPicLX, - half-sample interpolation filter index hpelIfIdx, - bidirectional optical flow flag bdofFlag, - A variable cIdx that specifies the color component index of the current block. The output of this process is: - predSamplesLX, an (sbWidth+brdExtSize)×(sbHeight+brdExtSize) array of predicted sample values. The prediction block boundary extension size brdExtSize is derived as follows: brdExtSize=(bdofFlag||(inter_affine_flag[xSb][ySb]&&sps_affine_prof_enabled_flag))?2:0 (8-752) 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. The motion vector mvLX is set equal to (refMvLX-mvOffset). - If cIdx is equal to 0, the following applies: - The scaling factors and their fixed-point representations are defined as follows: hori_scale_fp=((fRefWidth<<14)+(PicOutputWidthL>>1)) / PicOutputWidthL (8-753) vert_scale_fp=((fRefHeight<<14)+(PicOutputHeightL>>1)) / PicOutputHeightL (8-754) - Let (xIntL,yIntL) be the luma position given in full samples and (xFracL,yFracL) be the offset given in 1 / 16 samples. These variables are only used in this section to specify the fractional sample position inside the reference sample array refPicLX; - Top left coordinate of the border block for reference sample padding (xSbInt L ,ySbInt L ) is set equal to (xSb+(mvLX[0]>>4),ySb+(mvLX[1]>>4)); - For each luma sample position (x L =0..sbWidth-1+brdExtSize,y L = 0..sbHeight-1+brdExtSize), the corresponding predicted luma sample values ​​preSamplesLX[x L][y L ] is derived as follows: - (refxSb L ,refySb L ) and (refx L ,refy L ) is the luma position pointed to by the motion vector (refMvLX[0], refMvLX[1]) given in 1 / 16 sample units. L , refx L , refySb L , and refy L is derived as follows: refxSb L =((xSb<<4)+refMvLX[0])*hori_scale_fp (8-755) refx L =((Sign(refxSb)*((Abs(refxSb)+128)>>8) +x L *((hori_scale_fp+8)>>4))+32)>>6 (8-756) refySb L =((ySb<<4)+refMvLX[1])*vert_scale_fp (8-757) refy L =((Sign(refySb)*((Abs(refySb)+128)>>8)+y L * ((vert_scale_fp+8)>>4))+32)>>6 (8-758) - variable xInt L , yInt L , xFrac L , and yFrac L is derived as follows: xInt L =refx L >>4 (8-759) yInt L =refy L >>4 (8-760) xFrac L =refx L &15 (8-761) yFrac L =refy L &15 (8-762) - If bdofFlag is equal to TRUE or (sps_affine_prof_enabled_flag is equal to TRUE and inter_affine_flag[xSb][ySb] is equal to TRUE), and one or more of the following conditions are true, then the luma integer sample fetching process specified in clause 8.5.6.3.3 shall be performed using (xInt L +(xFrac L >>3)-1),yInt L +(yFrac L >>3)-1) and refPicLX as input to get the predicted luma sample values ​​preSamplesLX[x L ][y L ] is derived: -x L is equal to 0 -x L is equal to sbWidth+1 -y L is equal to 0 -y L is equal to sbHeight+1; - Otherwise, the luma sample 8-tap interpolation filtering process specified in section 8.5.6.3.2 shall be performed using (xIntL-(brdExtSize>0? 1:0),yIntL-(brdExtSize>0? 1:0)), (xFracL,yFracL), (xSbInt L ,ySbInt L ), refPicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb, ySb) as inputs to calculate the predicted luma sample values ​​preSamplesLX[x L ][y L ] is derived; - Otherwise (cIdx is not equal to 0), the following applies: - Let (xIntC,yIntC) be the chroma position given in full samples and (xFracC,yFracC) be the offset given in 1 / 32 samples. These variables are only used in this section to specify a general fractional sample position inside the reference sample array refPicLX; - The top-left coordinate (xSbIntC, ySbIntC) of the border block for reference sample padding is set equal to ((xSb / SubWidthC)+(mvLX[0]>>5),(ySb / SubHeightC)+(mvLX[1]>>5)); For each chroma sample position (xC=0..sbWidth-1, yC=0..sbHeight-1) inside the predicted chroma sample array preSamplesLX, the corresponding predicted chroma sample value preSamplesLX[xC][yC] is derived as follows: - Let (refxSbC,refySbC) and (refxC,refyC) be the chroma positions pointed to by the given motion vector (mvLX[0], mvLX[1]) in 1 / 32 sample units. C , refySb C , refx C , and refy C is derived as follows: refxSb C =((xSb / SubWidthC<<5)+mvLX[0])*hori_scale_fp (8-763) refx C =((Sign(refxSbC)*((Abs(refxSbC)+256)>>9) +xC*((hori_scale_fp+8)>>4))+16)>>5 (8-764) refySb C =((ySb / SubHeightC<<5)+mvLX[1])*vert_scale_fp (8-765) refy C =((Sign(refySbC)*((Abs(refySbC)+256)>>9) +yC*((vert_scale_fp+8)>>4))+16)>>5 (8-766) - variable xInt C , yInt C , xFrac C , and yFrac C is derived as follows: xInt C =refxC>>5 (8-767) yInt C =refyC>>5 (8-768) xFrac C =refyC&31 (8-769) yFrac C =refyC&31 (8-770) - The predicted sample values ​​preSamplesLX[xC][yC] are derived by invoking the process specified in clause 8.5.6.3.4 with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC), sbWidth, sbHeight, and refPicLX as inputs. 8.5.6.3.2 Luma Sample Interpolation Filtering Process The inputs to this process are: - Luma position in full samples (xInt L ,yInt L ), - Luma position in fractional samples (xFrac L ,yFrac L ), - Luma position in full samples (xSbInt) that specifies the top-left sample of the border block for reference sample padding relative to the top-left luma sample of the reference picture. L ,ySbInt L ), - Luma reference sample array refPicLX L , - half-sample interpolation filter index hpelIfIdx, - the variable sbWidth, which defines the width of the current subblock, - variable sbHeight, which specifies the height of the current subblock, - luma position (xSb, ySb) defining the top left sample of the current sub-block relative to the top left luma sample of the current picture; The output of this process is the predicted luma sample value preSampleLX. L is; The variables shift1, shift2, and shift3 are derived as follows: - Variable shift1 is Min(4,BitDepth Y -8), variable shift2 is set equal to 6, and variable shift3 is set equal to Max(2,14-BitDepth Y ) is set equal to; - The variable picW is set equal to pic_width_in_luma_samples and the variable picH is set equal to pic_height_in_luma_samples; xFrac L or yFrac L The luma interpolation filter coefficients f for each 1 / 16 fractional sample position p are 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 defined in Table 2; - otherwise, the luma interpolation filter coefficients f L [p] is specified in Table 1 according to hpelIfIdx; Luma position in full samples (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: xInt i =Clip3(SubPicLeftBoundaryPos,SubPicRightBoundaryPos,xInt L +i-3) (8-771) yInt i =Clip3(SubPicTopBoundaryPos,SubPicBotBoundaryPos,yInt L +i-3) (8-772) - Otherwise (subpic_treated_as_pic_flag[SubPicIdx] equals 0), the following applies: xInt i =Clip3(0,picW-1,sps_ref_wraparound_enabled_flag? ClipH((sps_ref_wraparound_offset_minus1+1)*MinCbSizeY,picW,xInt L +i-3: xInt L +i-3) (8-773) yInt i =Clip3(0,picH-1,yInt L +i-3) (8-774) The luma position in full sample units is further modified as follows for i=0..7: xInt i =Clip3(xSbInt L -3,xSbInt L +sbWidth+4,xInt i ) (8-775) yInt i =Clip3(ySbInt L -3,ySbInt L +sbHeight+4,yInt i ) (8-776) Predicted luma sample value presampleLX L is derived as follows: - xFrac L and yFrac L If both are equal to 0, then predSampleLX L The value of is derived as follows: predSampleLX L=refPicLXL[xInt3][yInt3]< <shift3 (8-777) - No, xFrac L is not equal to 0 and yFrac L If is equal to 0, predSampleLX L The value of is derived as follows:

number

number

number

number

number

number

number

[0032] 2.5. JVET-N0236 This contribution proposes a method to refine sub-block-based affine motion compensation prediction using optical flow. After sub-block-based affine motion compensation is performed, the predicted samples are refined by applying differentials derived from the optical flow equation, which we call prediction refinement with optical flow (PROF). The proposed method can achieve inter-prediction at pixel-level granularity without increasing memory access bandwidth.

[0033] To achieve finer granularity in motion compensation, this contribution proposes a method to refine sub-block-based affine motion compensation prediction using optical flow. After sub-block-based affine motion compensation is performed, the luma prediction samples are refined by appending the difference derived by the optical flow equation. The proposed prediction refinement with optical flow (PROF) can be described as the following four steps: Step 1) Perform sub-block based affine motion compensation to generate the sub-block prediction I(i,j). Step 2) At each sample position, we use a 3-tap filter [-1,0,1] to estimate the spatial gradient of the subblock prediction g x (i,j) and g y Calculate (i,j): g x (i,j)=I(i+1,j)-I(i-1,j) g y (i,j)=I(i,j+1)-I(i,j-1)

[0034] For this gradient calculation, the sub-block prediction is extended by one pixel on each side. To save memory bandwidth and complexity, the pixels on the extended boundary are copied from the nearest integer pixel position in the reference picture. Thus, additional interpolation for the padding area is avoided. Step 3) Refine the luma prediction (denoted as ΔI) using the optical flow equation: ΔI(i,j)=g x (i,j)*Δv x (i,j)+g y (i,j)*Δv y (i,j) is calculated, where delta MV (denoted as Δv(i,j)) is the difference between the pixel MV (denoted as v(i,j)) calculated for sample position (i,j) and the sub-block MV of the sub-block to which pixel (i,j) belongs, as shown in FIG.

[0035] Since the affine model parameters and pixel position relative to the sub-block center do not change for each sub-block, Δv(i,j) can be calculated for the first sub-block and reused for other sub-blocks in the same CU. If the horizontal and vertical offsets from the pixel position to the sub-block center are x and y, Δv(x,y) can be calculated using the following formula:

number

number

number

number

number

[0036] 3. Shortcomings of existing implementations DMVR and BIO do not involve the original signal when refining motion vectors, which may result in coding blocks with inaccurate motion information. Also, DMVR and BIO sometimes use fractional motion vectors after motion refinement, while screen images usually have integer motion vectors, which makes the current motion information more inaccurate and worsens coding performance.

[0037] When RPR is applied in VVC, RPR(ARC) may have the following problems. 1. In RPR, the interpolation filters can be different for adjacent samples within a block, which is undesirable for SIMD (single instruction multiple data) implementations. 2. The boundary region does not consider RPR. 3. It is noted that "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. 4. When deriving the reference sample position, RPR only considers the ratio between the two matched windows, but the top-left offset difference between the two matched windows should also be considered. 5. In VVC, the ratio of the width / height of a reference picture to the width / height of a current picture is constrained, but the ratio of the width / height of a matching window of a reference picture to the width / height of a matching window of a current picture is not constrained. 6. Not all syntax elements are properly handled within the picture header. 7. In the current VVC, in TPM and GEO prediction modes, chroma mixing weights are derived regardless of the chroma sample position type of the video sequence. For example, in TPM / GEO, if chroma weights are derived from luma weights, it may be necessary to downsample the luma weights 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, this can cause misalignment between chroma samples and downsampled luma samples when a different chroma sample position type is used, resulting in reduced coding performance. 8. Please note that the SAD calculation / SAD threshold does not take into account the effect of bit depth, so for higher bit depths (e.g., 14 or 16 bit input sequences), the threshold for early termination may be too small. 9. In the non-RPR case, 1 / 2-pel MV precision AMVR (i.e., alternate interpolation filter / switchable interpolation filter) is applied with a 6-tap motion compensation filter, and 8-tap is applied for other cases (e.g., 1 / 16-pel). However, in the RPR case, the same interpolation filter is applied for all cases without considering the mv / mvd precision. Therefore, signaling the 1 / 2-pel case (alternate interpolation filter / switchable interpolation filter) is a bit-waste. 10. The decision of whether partition tree splitting is allowed or not depends on the coded picture resolution instead of the output picture resolution. 11. SMVD / MMVD are applied without considering the RPR case. These methods are based on the assumption that symmetric MVD is applied to two reference pictures. However, when the output picture resolutions are different, this assumption does not hold. 12. Pairwise merge candidates are generated by averaging two MVs from two merge candidates in the same reference picture list. However, if the two reference pictures associated with the two merge candidates have different resolutions, averaging does not make sense. 13. If all slices in the current picture are I (intra) slices, some inter-slice related syntax elements in the picture header may not need to be coded. Signaling them conditionally can save syntax overhead, especially for low-resolution sequences with all intra coding. 14. Currently, VVC does not limit the tile / slice dimensions. Applying appropriate restrictions would be useful for parallel processing in real-time software / hardware decoders, especially for ultra-high resolution sequences where each frame can be larger than 4K / 8K.

[0038] 4. Examples of Techniques and Implementations 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. Furthermore, these embodiments can be combined in any way.

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

[0040] A motion vector is expressed as (mv_x, mv_y), where mv_x is the horizontal component and mv_y is the vertical component.

[0041] In this disclosure, the resolution (or dimensions, width / height, or size) of a picture may refer to the resolution (or dimensions, width / height, or size) of an encoding / decoding picture, or may refer to the resolution (or dimensions, width / height, or size) of an adaptation window of an encoding / decoding picture. In one example, the resolution (or dimensions, width / height, or size) of a picture may refer to parameters related to an RPR (Reference Picture Resampling) process, such as a scaling window / phase offset window. In one example, the resolution (or dimensions, width / height, or size) of a picture relates to that related to an output picture. 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 prediction values ​​for a group of samples (at least two samples) of the current block may be generated using the same horizontal and / or vertical interpolation filter: a. In one example, the group may comprise all samples within a region of a block: i. For example, a block may be divided into S non-overlapping MxN rectangles, each MxN rectangle being a group. In the example shown in Figure 2, a 16x16 block may be divided into 16 4x4 rectangles, each being a group; ii. For example, a row having N samples is a group, where N is an integer less than or equal to the block width. In one example, N is 4 or 8 or the block width; iii. For example, a group is a column with N samples, where N is an integer less than or equal to the block height. In one example, N is 4 or 8 or the block height; iv. M and / or N may be predetermined or may be derived on the fly based on, for example, block size / coding information, etc., or may be signaled; b. In one example, samples within a group may have the same MV (denoted as shared MV); c. In one example, samples within a group may have MVs with the same horizontal component (denoted as shared horizontal component); d. In one example, samples within a group may have MVs with the same vertical component (denoted as shared vertical component); e. In one example, samples within a group may have MVs with the same fractional portion of the horizontal component (denoted as shared fractional horizontal component): i. For example, if the MV for the first sample is (MV1x, MV1y) and the MV for the second sample is (MV2x, MV2y), then MV1x & (2 M -1) is MV2x&(2 M -1), where M represents the MV precision. For example, M=4; f. In one example, samples within a group may have MVs with the same fractional portion of the vertical component (denoted as shared fractional vertical component): i. For example, if the MV for the first sample is (MV1x, MV1y) and the MV for the second sample is (MV2x, MV2y), then MV1y & (2 M -1) is MV2y&(2 M -1), where M represents the MV precision. For example, M=4; g. In one example, for samples in the group to be predicted, first, the current picture and the reference picture (e.g., the reference picture derived in 8.5.6.3.1 of JVET-O2001-v14 (e.g., (refx L ,refy L )) according to MV b Then, a motion vector is derived, denoted as MV b can be further modified (e.g., rounded / truncate / clipped) to MV' to meet requirements such as those in the bullet points above, and MV' will be used to derive the predicted sample for the sample: i. In one example, MV' is MV b and the fractional part of MV' is set to be a shared fractional horizontal component and / or a shared fractional vertical component; ii. In one example, MV' is the fraction of the shared fractional horizontal and / or vertical components of MV b is set closer to; h. The shared motion vector (and / or shared horizontal component and / or shared vertical component and / or shared fractional horizontal component and / or shared fractional vertical component) may be set to the shared motion vector (and / or shared horizontal component and / or shared vertical component and / or shared fractional horizontal component and / or shared fractional vertical component) of a particular sample in the group: i. For example, a particular sample may be at the corner of a group of rectangles, such as "A," "B," "C," and "D" shown in FIG. 3A; ii. For example, a particular sample may be at the center of a group of rectangles, such as "E," "F," "G," and "H" shown in FIG. 3A; iii. For example, a particular sample may be at one end of a row-shaped or column-shaped group, such as "A" and "D" shown in Figures 3B and 3C; iv. For example, a particular sample may be in the center 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 for a particular sample is the MV b It can be; i. The shared motion vector (and / or shared horizontal component and / or shared vertical component and / or shared fractional horizontal component and / or shared fractional vertical component) may be set to be the motion vector (and / or horizontal component and / or vertical component and / or fractional horizontal component and / or fractional vertical component) of a hypothetical sample that is located differently from all samples in the group: i. In one example, the virtual sample is not within the group, but is located within the 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 at multiple different locations; iii. "V" in Figures 3A-3C shows 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 horizontal component and / or the shared fractional vertical component) may be set to be a function of the MV (and / or the horizontal component and / or the vertical component and / or the fractional horizontal component and / or the fractional vertical component) of a plurality of 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 horizontal component and / or shared fractional vertical component) may be set to be the average of the MV (and / or horizontal component and / or vertical component, and / or fractional horizontal component and / or fractional vertical component) of all or some of the samples in the group, or of samples "E", "F", "G", and "H" in Figure 3A, or of samples "E", "H" in Figure 3A, or of samples "A", "B", "C", and "D" in Figure 3A, or of samples "A" and "D" in Figure 3A, or of samples "B" and "C" in Figure 3B, or of samples "A" and "D" in Figure 3B, or of samples "B" and "C" in Figure 3C, or of samples "A" and "D" in Figure 3C. 2. We propose 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 larger than that of the current picture, only integer MVs are allowed to perform the motion compensation process to derive the prediction block for the current block: a. In one example, the composite motion vector for the sample being predicted is rounded to an integer MV before being used; b. In one example, the composite motion vector for the predicted sample is rounded to the nearest integer MV to the decoded motion vector; c. In one example, the composite motion vector for the predicted sample is rounded to the nearest integer MV to the decoded motion vector in the horizontal direction; d. In one example, the composite motion vector for the predicted sample is rounded to the nearest integer MV to the decoded motion vector in the vertical direction. 3. The motion vectors used in the motion compensation process for samples in the current block (e.g., the shared MVs / shared horizontal or vertical or fractional components / MVs' mentioned in the above bullet points) may be stored in the decoded picture buffer and used for motion vector prediction of subsequent blocks in the current picture / different picture: a. Alternatively, motion vectors (e.g., shared MVs / shared horizontal or vertical or fractional components / MVs' mentioned in the above bullet points) used in the motion compensation process for samples in the current block may be prohibited from being used for motion vector prediction of a subsequent block in the current picture / different picture: i. In one example, the decoded motion vectors (e.g., MVs in the above bullet point) b ) can be used for motion vector prediction of subsequent blocks in the current picture / different picture; b. In one example, the motion vectors used in the motion compensation process for the samples in the current block may be utilized in the filtering process (e.g., deblocking filter / SAO / ALF): i. Alternatively, the decoded motion vector (e.g., MV in the above bullet point) b ) may be utilized in the filtering process; c. In one example, such MVs may be derived at the sub-block level and stored for each sub-block. 4. We propose that the interpolation filters used in the motion compensation process to derive a prediction block for a current block may be selected 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 larger than that of the current picture: a. In one example, an interpolation filter with fewer taps can 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 that of the current picture; ii. In one example, condition A is that the width and / or height of the reference picture is greater than that of the current picture; iii. In one example, the condition A is W1>a*W2 and / or H1>b*H2, where (W1, H1) represents the width and height of the reference picture, (W2, H2) represents the width and height of the current picture, and a and b are two coefficients, for example, 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, when the resolution of the reference picture is different from that of the current picture, a bilinear filter is applied; vii. In one example, 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, a 4-tap filter or a 6-tap filter is applied: 1) The 6-tap filter can also be used for affine motion compensation; 2) The 4-tap filter can also be used for interpolation on chroma samples; b. In one example, padding samples are used to perform interpolation 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; c. Whether and / or how to apply the method disclosed in bullet 4 may depend on the color component: i. For example, the method is applied to only the luma component; d. Whether and / or how to apply the method disclosed in bullet 4 may depend on the interpolation filtering direction: i. For example, the method applies to horizontal filtering only; ii. For example, the method applies to vertical filtering only. 5. 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, we propose that a two-stage process for predictive block generation be applied: a. In a first step, a virtual reference block is generated by upsampling or downsampling an area in a reference picture according to the width and / or height of the current picture and the reference picture; b. In a second stage, predicted samples are generated from the virtual reference block by applying interpolation filtering independent of the width and / or height of the current and reference pictures. 6. The top-left coordinate (xSbInt) of the border block for the reference sample padding as defined in 8.5.6.3.1 of JVET-O2001-v14. L ,ySbInt L ) can be derived depending on the width and / or height of the current and reference pictures: a. In one example, the luma position in full samples is: xInt i =Clip3(xSbInt L -Dx,xSbInt L +sbWidth+Ux,xInt i ), yInt i =Clip3(ySbInt L -Dy,ySbInt L +sbHeight+Uy,yInt i ) where 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 position in full samples is: xInti=Clip3(xSbInt C -Dx,xSbInt C +sbWidth+Ux,xInti), yInti=Clip3(ySbInt C -Dy,ySbInt C +sbHeight+Uy,yInti) where 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 for a block a motion vector based on the same reference picture resolution as the current picture, we propose to use an actual motion vector that takes into account the resolution difference: a. Alternatively, when generating a prediction block using a motion vector, the current picture and the reference picture (for example, (refx)) derived in 8.5.6.3.1 of JVET-O2001-v14 may be used. L ,refy L There is no need to further modify the motion vectors according to the resolution of Interaction between RPR and other coding tools 8. Whether / how a filtering process (e.g., a deblocking filter) should be applied 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 in the deblocking filter may take into account resolution differences in addition to motion vector differences: i. In one example, the boundary strength may be determined using a motion vector difference scaled according to the resolution of the current picture and the reference picture; b. In one example, when the resolution of at least one reference picture for block A is different (or smaller or larger) than the resolution of at least one reference picture for block B, the strength of the deblocking filter for the boundary between block A and block B may be set differently (e.g., increased / decreased) compared to when the same resolution is used for the two blocks; c. In one example, if the resolution of at least one reference picture of block A is different (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 as to be filtered (e.g., BS is set to 2); d. In one example, when the resolution of at least one reference picture for block A and / or block B is different (or smaller or larger) than the resolution of the current picture, the strength of the deblocking filter for the boundary between block A and block B may be set differently (e.g., increased / decreased) compared to when the same resolution is used for the reference picture and the current picture; e. In one example, a boundary between two blocks is marked as to be filtered (e.g., BS is set to 2) 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. 9. When subpictures are present, a conforming bitstream may satisfy the following: reference pictures must have the same resolution as the current picture: a. Or, when the reference picture has a different resolution than the current picture, there is no sub-picture in the current picture; b. Alternatively, for a sub-picture within the current picture, the use of a reference picture with a different resolution than the current picture is prohibited: i. Alternatively or additionally, reference picture management can be invoked to exclude reference pictures with different resolutions. 10. In one example, sub-pictures (e.g., how to split one picture into multiple sub-pictures) can 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. When the reference picture has a different resolution than the current picture's resolution, PROF (prediction refinement in optical flow) can be enabled: a. In one example, for a group of samples, a set of MVs (MV g ) can be generated and used for motion compensation as described in bullet 1. Meanwhile, for each sample, a MV (MV p ) can be derived, and MV p and MV g The difference between (e.g., corresponding to Δv used in PROF) together with the gradient (e.g., spatial gradient of the motion compensated block) may be used to derive the prediction refinement; b. In one example, MV p MV g For example, MV p can be at 1 / N-pel (N>0) precision, where N=32, 64, etc.; c. In one example, MV g can be at a precision different from the internal MV precision (e.g., 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 a method may be applied only in the case of one-way prediction; g. In one example, such methods may be applied in uni-prediction or / and bi-prediction; h. In one example, such a method may only be applied if the reference picture has a different resolution than the current picture. 12. We propose that when the resolution of the reference picture is different from that of the current picture, only one MV for a block / sub-block can be utilized to perform the motion compensation process to derive the prediction block for the current block: a. In one example, a unique MV for a block / sub-block may be defined as a function (e.g., the average) of all 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 (e.g., a center sample) within the block / sub-block; c. In one example, only one MV may be used for a 4x4 block or sub-block (e.g., 4x1); d. In one example, BIO can 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 picture, a lazy mode that does not signal block-based motion vectors may be applied: a. In one example, no motion vectors are signaled and the motion compensation process approximates the case of pure resolution change of a still image; b. In one example, when the resolution changes, only the motion vectors are signaled at the picture / tile / brick / CTU level and the relevant blocks may use those motion vectors. 14. For blocks coded in affine and / or non-affine prediction modes, PROF may be applied to approximate motion compensation when the width and / or height of the reference picture differs from that of the current picture: In one example, PROF may be enabled when the width and / or height of the reference picture is different from that of the current picture; b. In one example, a set of affine motions can be generated by combining the indicated motion with the resolution scaled for use by the PROF. 15. When the width and / or height of the reference picture is different from that of the current picture, interweave prediction (e.g., as proposed in JVET-K0102) can be applied to approximate motion compensation: a. In one example, a resolution change (zooming) can be expressed as an affine motion and interweave motion prediction can be applied. 16. When the width and / or height of the current picture is different from that of the IRAP picture within the same IRAP period, LMCS and / or chroma residual scaling can 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 can be assumed to be 0 without signaling; b. In one example, when chroma residual scaling is disabled, slice-level flags such as slice_chroma_residual_scale_flag can be assumed to be 0 without signaling. RPR Constraints 17. RPR can be applied to coding blocks with block size constraints: a. In one example, for an M×N coding block with M as the block width and N as the block height, when M*N < T or M*N <= T (e.g., T = 256, etc.), RPR can be assumed not to be used; b. In one example, when M < K (or M <= K) (e.g., K = 16, etc.) and / or N < L (or N <= L) (e.g., L = 16, etc.), RPR can be assumed not to be used. 18. Bitstream adaptation may be added to constrain the ratio between the width and / or height of the active reference picture (or its adapted window) and that of the current picture (or its adapted window). Let refPicW and refPicH represent the width and height of the reference picture, and 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. Alternatively, when (refPicW÷curPicW) is equal to a fraction, the reference picture may be marked as not available; b. In one example, assuming X represents a fraction such as X = 1 / 2, and n represents an integer such as n = 1, 2, 3, 4, …, when (refPicW÷curPicW) is equal to (X*n), 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 coding tools (e.g., dual prediction / global triangular prediction mode (TPM) / hybrid process in TPM) for an M×N block and / or how to enable them may depend on the resolution of the reference picture (or their adapted windows) 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, etc.); b. In one example, M < K (or M <= K) (e.g., K = 16, etc.) and / or N < L (or N <= L) (e.g., L = 16, etc.); c. In one example, when the width / height of at least one reference picture 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 the block is greater 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 differs from that of the current picture, the coding tool does not allow: i. In one example, the coding tool is not allowed when the width / height of each reference picture is larger than that of the current picture; e. Alternatively or additionally, when the coding tool does not allow it, motion compensation can be performed on one MV as uni-predictive. Compatible window related 20. The adaptive cropping window offset parameter (e.g., conf_win_left_offset) is signaled with N-pel precision instead of 1-pel, where 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. We propose that the adaptive cropping window offset parameter is not only applied at the output: the specific internal decoding process may depend on the cropped picture size (i.e., the resolution of the adaptive window within the picture). 22. We propose that when the picture width and / or height, denoted as (pic_width_in_luma_samples, pic_height_in_luma_samples), in a first video unit and in a second video unit are the same, the adaptive cropping window offset parameters can be different in a first video unit (e.g., PPS) and in a second video unit. 23. When the picture width and / or height, denoted as (pic_width_in_luma_samples, pic_height_in_luma_samples), in a first video unit and in a second video unit are different, we propose that in a conforming bitstream the conforming cropping window offset parameters should be the same in the first video unit (e.g., PPS) and in the second video unit: a. We propose that in a conforming bitstream, the conforming cropping window offset parameters should be the same in the first video unit (e.g., PPS) and in the second video unit, regardless of whether the picture width and / or height, denoted as (pic_width_in_luma_samples, pic_height_in_luma_samples), are the same in the first and second video units. 24. Let the width and height of the conformance window specified in the first video unit (e.g., PPS) be denoted as W1 and H1, respectively. Let the width and height of the conformance window specified in the second video unit (e.g., PPS) be denoted as W2 and H2, respectively. Let the top-left position of the conformance window specified in the first video unit (e.g., PPS) be denoted as X1 and Y1. Let the top-left position of the conformance window specified in the second video unit (e.g., PPS) be denoted as X2 and Y2. Let the width and height of the coded / decoded picture (e.g., pic_width_in_luma_samples and pic_height_in_luma_samples) specified in the first video unit (e.g., PPS) be denoted as PW1 and PH1, respectively. Let the width and height of the coded / decoded picture specified in the second video unit (e.g., PPS) be denoted as PW2 and PH2, respectively: a. In one example, a conforming bitstream should have W1 / W2 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, a conforming bitstream should have H1 / H2 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, a conforming bitstream should have PW1 / PW2 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, PH1 / PH2 should be equal to Y1 / Y2 in a conforming bitstream: 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, a conforming bitstream should have PW1 / PW2 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, PH1 / PH2 should be equal to H1 / H2 in a conforming bitstream: 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 be greater than or equal to 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) must be greater than or equal to 0; m. In a conforming bitstream, if PW1>=PW2, then W1 / W2 must be less than or equal to PW1 / PW2; n. In a conforming bitstream, if PH1>=PH2, then H1 / H2 must be less than or equal to PH1 / PHW2 (or greater than or equal to PH1 / PHW2). 25. Let the width and height of the conformance window in the current picture be denoted as W and H, respectively. Let the width and height of the conformance window in the reference picture be denoted as W' and H', respectively. A conforming bitstream should obey at least one of the following constraints: a. W*pw>=W'; pw is an integer, e.g., 2; b. W*pw>W'; pw is an integer, e.g., 2; c. W'*pw'>=W; pw' is an integer, e.g., 8; d. W'*pw'>W; pw' is an integer, e.g., 8; e. H*ph>=H'; ph is an integer such as 2; f. H*ph>H'; ph is an integer such as 2; g. H'*ph'>=H; ph' is an integer, e.g., 8; h. H'*ph'>H; ph' is an integer such as 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'; m. In one example, the above sub-points may 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. We propose that the adaptation window parameters be partially signaled: In one example, the top left sample of the matching window of a picture is the same as that in the picture; b. For example, conf_win_left_offset defined in VVC is not signaled and is assumed to be 0; c. For example, conf_win_top_offset defined in VVC is not signaled and is assumed to be 0. 27. Reference sample location (e.g., defined in VVC (refx L ,refy L We propose that the derivation of conf_win_left_offset) may depend on the top-left position of the adaptation window of the current picture and / or reference picture (e.g., (conf_win_left_offset,conf_win_top_offset) as defined in VVC). Figures 4A and 4B show examples of sample positions derived (a) as in VVC and (b) in the proposed method. The dashed rectangle represents the adaptation window: In one example, a dependency exists only when the width and / or height of the current picture differs from that of the reference picture; 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 (e.g., conf_win_left_offset defined in VVC): i. In one example, the horizontal position of the current sample relative to the top-left position of the matching window in the current picture (denoted as xSb') 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 top-left sample within the conformity window of the current picture. Prec represents the precision of xSb and xSb’, where (xSb >> Prec) may indicate the actual horizontal coordinate of the current sample with respect 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’) with respect to the top-left position of the conformity 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) with respect to the reference picture is calculated depending on Rx’: 1) For example, Rx = Rx’ + (conf_win_left_offset_ref << Prec) is calculated, where conf_win_left_offset_ref represents the horizontal position of the top-left sample within the conformity window of the reference picture. Prec represents the precision 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 steps of derivation for Rx’ and Rx are combined into one-step calculation; v. Whether to use the left position of the conformity window of the current picture and / or the reference picture (e.g., conf_win_left_offset defined in VVC), and / or how to use it may depend on the color component and / or the color format: 1) For example, conf_win_left_offset can be revised as conf_win_left_offset = conf_win_left_offset * SubWidthC, where SubWidthC defines the horizontal sampling step of the color component. For example, SubWidthC is equal to 1 for the luma component. SubWidthC is equal to 2 for the chroma component when the color format is 4:2:0 or 4:2:2; 2) For example, conf_win_left_offset can be revised as conf_win_left_offset = conf_win_left_offset / SubWidthC, where SubWidthC defines the horizontal sampling step of the color component. For example, SubWidthC is equal to 1 for the luma component. SubWidthC is equal to 2 for the chroma component when the color format is 4:2:0 or 4:2:2; c. In one example, the derivation of the vertical position of the reference sample (e.g., Refy 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 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 within 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 within the current picture. conf_win_top_offset represents the vertical position of the upper left sample within the adaptive window of the current picture. Prec represents the precision 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 within 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’: i. For example, Ry = Ry’+(conf_win_top_offset_ref << Prec) is calculated, where conf_win_top_offset_ref represents the vertical position of the top left sample within the adaptive window of the reference picture. Prec represents the precision 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 steps of derivation for Ry’ and Ry are combined into one-step calculation; v. Whether to use the top position of the adaptive window of the current picture and / or the reference picture (e.g., conf_win_top_offset defined in VVC), and / or how to use it may depend on the color component and / or the color format: i. For example, conf_win_top_offset can be revised as conf_win_top_offset = conf_win_top_offset * SubHeightC, where SubHeightC defines the vertical sampling step of the color component. For example, SubHeightC is equal to 1 for the luma component. SubHeightC is equal to 2 for the chroma component when the color format is 4:2:0; 2) For example, conf_win_top_offset can be revised as conf_win_top_offset=conf_win_top_offset / SubHeightC, where SubHeightC defines the vertical sampling step of the color component. For example, SubHeightC is equal to 1 for the luma component; SubHeightC is equal to 2 for the chroma component if the color format is 4:2:0; 28. We propose that the integer part of the horizontal coordinate of the reference sample can 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'. Let the top-left position of the matching window in the reference picture be denoted as (X0,Y0): a. 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 minW*SubC; ii. For example, minW is changed to minW / SubC; iii. For example, maxW is changed to maxW*SubC; iv. For example, maxW is changed to maxW*SubC; v. In one example, SubC is equal to 1 for the luma component; vi. In one example, if the color format is 4:2:0, SubC is equal to 2 for the chroma component; vii. In one example, if the color format is 4:2:2, SubC is equal to 2 for the chroma component; viii. In one example, if the color format is 4:4:4, SubC equals 1 for the chroma component; g. In one example, whether and / or how clipping should occur 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 dimensions of the reference picture (or a matching window therein) differ. 29. We propose that the integer part of the vertical coordinate of the reference sample can 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'. Let the top-left position of the matching window in the reference picture be denoted as (X0,Y0): a. 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 color format and / or color components: i. For example, minH is changed to minH*SubC; ii. For example, minH is changed to minH / SubC; iii. For example, maxH is changed to maxH*SubC; iv. For example, maxH is changed to maxH*SubC; v. In one example, SubC is equal to 1 for the luma component; vi. In one example, if the color format is 4:2:0, SubC is equal to 2 for the chroma component; vii. In one example, if the color format is 4:2:2, SubC is equal to 1 for the chroma component; viii. In one example, if the color format is 4:4:4, SubC equals 1 for the chroma component; g. In one example, whether and / or how clipping should occur 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 dimensions of the reference picture (or a matching window therein) differ. In the following description, a first syntax element is said to "correspond" to a second syntax element if the two syntax elements have equivalent functions but can be signaled in different video units (e.g., VPS / SPS / PPS / slice header / picture header, etc.). 30. We propose that a syntax element be signaled in a first video unit (e.g., picture header or PPS) and no corresponding syntax element be signaled in a second video unit at a higher level (e.g., SPS) or lower level (e.g., slice header): a. Alternatively, a first syntax element may be signaled in a first video unit (e.g., a picture header or PPS) and a corresponding second syntax element may be signaled in a second video unit at a lower level (e.g., a slice header, etc.): i. Alternatively, an indicator may be signaled within the second video unit indicating whether the second syntax element is subsequently signaled; ii. In one example, a slice associated with a second video unit (e.g., a slice header, etc.) may follow an indication of a second syntax element instead of the first one if the second one 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 slices (or other video units) associated with the first video unit; b. Alternatively, a first syntax element may be signaled within a first video unit at a higher level (e.g., VPS / SPS / PPS, etc.) and a corresponding second syntax element may be signaled within a second video unit (e.g., picture header, etc.): i. Alternatively, an indicator may be signaled that indicates whether the second syntax element is subsequently signaled; ii. In one example, a picture associated with a second video unit (which may be divided into multiple slices) may follow the indication of a second syntax element instead of the first one if the second one is signaled; c. a first syntax element in a picture header may have functionality equivalent to a second syntax element in a slice header as specified in Section 2.6 (but limited to, e.g., 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, ...), but may control all slices of a picture; d. A first syntax element in an SPS as specified in Section 2.6 may have a function equivalent to a second syntax element in a picture header (but limited to, for example, 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, etc.), but may control only the associated picture (which may be divided into multiple slices); e. The first syntax element in the PPS as specified in Section 2.7 may have equivalent functionality to the second syntax element in the picture header (but may be limited to, for example, entropy_coding_sync_enabled_flag, entry_point_offsets_present_flag, cabac_init_present_flag, rpl1_idx_present_flag, etc.), but may only control the associated picture (which may be divided into multiple slices). 31. Syntax elements signaled in the picture header are separated from other syntax elements signaled or derived in the SPS / VPS / DPS. 32. The indication of DMVR and BDOF enable / disable may be signaled separately in the picture header instead of being controlled by the same flag (eg, pic_disable_bdof_dmvr_flag). 33. Indication of enablement / disablement of inter prediction with PROF / cross-component ALF / geometric partitioning (GEO) may be signaled in the picture header: a. Alternatively, the indication of enabling / disabling PROF in the picture header may be conditionally signaled according to the PROF enable flag in the SPS; b. Alternatively, the indication of enabling / disabling Cross-Component ALF (CCALF) in the picture header may be conditionally signaled according to a CCALF enable flag in the SPS; c. Alternatively, the indication of enabling / disabling GEO in the picture header may be conditionally signaled according to the GEO enable flag in the SPS; d. Alternatively or additionally, indication of enabling / disabling inter prediction with PROF / cross-component ALF / geometric partitioning (GEO) in the slice header may be conditionally signaled according to those syntax elements signaled in the picture header instead of the SPS. 34. An indication of the prediction type for slices / bricks / tiles (or other video units smaller than a picture) within the same picture may be signaled in the picture header: a. In one example, an indication of whether all slices / bricks / tiles (or other video units smaller than pictures) are all intra-coded (e.g., all I-slices) may be signaled in the picture header: i. Alternatively, or further, if the indication states that all slices in the picture are I-slices, the slice type may not be signaled in the slice header; b. Alternatively, an indication of whether at least one of the slices / bricks / tiles (or other video units smaller than a picture) is not intra-coded (e.g., at least one is a non-I slice) may be signaled in the picture header: c. Alternatively, an indication of whether all slices / bricks / tiles (or other video units smaller than a picture) all have the same prediction type (e.g., I / P / B slices) may be signaled in the picture header: i. Alternatively or additionally, the slice type may not be signaled in the slice header; ii. Alternatively or additionally, an indication of tools allowed for a particular prediction type (e.g., DMVR / BDOF / TPM / GEO are only allowed for B slices, and dual tree is only allowed for I slices) may be conditionally signaled according to the indication of the prediction type; d. Alternatively or additionally, the signaling of the indication of tool activation / deactivation may depend on the prediction type indication mentioned in the sub-bullet above: i. Alternatively or additionally, the indication of enabling / disabling the tool may be derived according to the predictive type indications mentioned in the sub-points above. 35. In this disclosure (bullets 1-29), the term "adaptation window" may be replaced with other terms, such as "scaling window." The scaling window may be signaled differently from the adaptation window and is used to derive the scaling ratio and / or top-left offset used to derive the reference sample position for the RPR: In one example, the scaling window may be constrained by the conformance window, e.g., in a conformance bitstream, the scaling window must be contained within the conformance window. 36. Whether and / or how the maximum allowed block size of transform skip coded blocks should be signaled may depend on the maximum block size of transform coded blocks: Alternatively, the maximum block size of the transform skip coded blocks cannot be larger than the maximum block size of the transform coded blocks in the conforming bitstream. 37. Whether and / or how an indication of enabling Joint Cb-Cr Residue (JCCR) coding (e.g., sps_joint_cbcr_enabled_flag, etc.) should be signaled may depend on the color format (e.g., 4:0:0, 4:2:0, etc.): For example, if the color format is 4:0:0, the indication of enabling joint Cb-Cr residual (JCCR) may not be signaled. An example syntax design is as follows: (outside 8) TIFF0007747409000044.tif20156 Downsampling filter type for chroma blending mask generation in TPM / GEO 38. The type of downsampling filter used in the 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, etc.): a. In one example, a high level flag may be signaled to switch between different chroma format types of content: i. In one example, 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 downsampling luma weight in TPM / GEO prediction mode is collocated with the top-left luma weight (e.g., chroma sample position type 0); iii. In one example, a flag may be signaled to specify whether the top-left downsampled luma sample in TPM / GEO prediction mode is horizontally collocated with the top-left luma sample but vertically shifted by 0.5 luma sample units relative to the top-left luma sample (e.g., 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, this flag may be signaled as to whether to use downsampling filter A or downsampling filter B for chroma weight derivation in TPM / GEO prediction mode. 39. The type of downsampling filter used in deriving the blending weights for chroma samples can be derived at the video unit level (e.g., SPS / VPS / PPS / Picture Header / Subpicture / Slice / Slice Header / Tile / Brick / CTU / VPDU level, etc.): In one example, a lookup table may be defined to define a correspondence between chroma subsampling filter types and content chroma format types. 40. For different chroma sample position types, specific downsampling filters can be used for TPM / GEO prediction modes: a. In one example, for a particular chroma sample position type (e.g., chroma sample position type 0), the chroma weights of the TPM / GEO may be subsampled from the co-located top-left luma weight; b. In one example, for a particular chroma sample position type (e.g., chroma sample position type 0 or 2), a particular X-tap filter (X is a constant, e.g., X=6 or 5) may be used for chroma weight subsampling in TPM / GEO prediction mode. 41. Within a video unit (e.g., SPS, PPS, picture header, slice header, etc.), a first syntax element (e.g., a flag) may be signaled that indicates whether Multiple Transform Selection (MTS) is disabled for all blocks (slices / pictures): a. A second syntax element indicating how to apply MTS (e.g., enable MTS / disable MTS / implicit MTS / explicit MTS, etc.) to an intra-coded block (slice / picture) is conditionally signaled based on the first syntax element. For example, the second syntax element is signaled only if the first syntax element indicates that MTS is disabled for all blocks (slices / pictures); b. A third syntax element indicating how to apply MTS to an inter-coded block (slice / picture) (e.g., enable MTS / disable MTS / implicit MTS / explicit MTS, etc.) is conditionally signaled based on 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 all blocks (slices / pictures); c. An exemplary syntax design is as follows: (outer 9) TIFF0007747409000045.tif56156d. The third syntax element can be conditionally signaled based on whether a Sub-Block Transform (SBT) is applied. An exemplary syntax design is as follows: (Outside 10) TIFF0007747409000046.tif34156e. An example syntax design is as follows: (Outside 11) TIFF0007747409000047.tif47157 Deciding to use coding tool X 42. The decision of whether and / or how to enable coding tool X may depend on the width and / or height of the picture under consideration and / or the current picture of one or more reference pictures: a. The width and / or height of the picture under consideration and / or the current picture of one or more reference pictures may be changed to make the decision; b. The picture under consideration may be defined by an adaptation window or a scaling window as defined in JVET-P0590: i. The picture under consideration may be the entire picture; c. In one example, whether and / or how coding tool X should be enabled may depend on the picture width minus one or more offsets in the horizontal direction and / or the picture height minus one or more offsets in the vertical direction: i. In one example, the horizontal offset may be defined as scaling_win_top_offset, where scaling_win_top_offset may be defined as in JVET-P0590; ii. In one example, the vertical offset may be defined as scaling_win_top_offset, where scaling_win_top_offset may be defined as in JVET-P0590; iii. In one example, the horizontal offset may be defined as (scaling_win_right_offset+scaling_win_left_offset), where scaling_win_right_offset and scaling_win_left_offset may be defined as in JVET-P0590; iv. In one example, the vertical offset may be defined as (scaling_win_bottom_offset+scaling_win_top_offset), where scaling_win_bottom_offset and scaling_win_top_offset may be defined as in JVET-P0590; v. In one example, the horizontal offset may be defined as SubWidthC*(scaling_win_right_offset+scaling_win_left_offset), where SubWidthC, scaling_win_right_offset, and scaling_win_left_offset may be defined as in JVET-P0590; vi. In one example, the vertical offset may be defined as SubHeightC*(scaling_win_bottom_offset+scaling_win_top_offset), where SubHeightC, scaling_win_bottom_offset, and scaling_win_top_offset may be defined as in JVET-P0590; d. In one example, if at least one of the two reference pictures under consideration has a different resolution (either width or height) than the current picture, coding tool X is disabled: i. Alternatively, if at least one of the two output reference pictures has a dimension (either width or height) larger than the dimension of the current picture, coding tool X is disabled; e. In one example, if one reference picture under consideration for a reference picture list L has a different resolution than the current picture, coding tool X is disabled for that reference picture list L: i. Alternatively, if one reference picture under consideration for a reference picture list L has dimensions (width or height) greater than the dimensions of the current picture, coding tool X is disabled for that reference picture list L; f. In one example, if two reference pictures under consideration in two reference picture lists have different resolutions, the coding tool may be disabled: i. Alternatively, the indication of the coding tool may be conditionally signaled according to the resolution; ii. Alternatively, the signaling of the coding tool indication may be skipped; g. In one example, if two of the two merge candidates utilized to derive the first pairwise merge candidate for at least one reference picture list are reference pictures under consideration, the coding tool can disable, e.g., mark the first pairwise merge candidate as unavailable: i. Alternatively, if two of the two merge candidates utilized to derive the first pairwise merge candidate for both reference picture lists are reference pictures under consideration, the coding tool may disable the first pairwise merge candidate, e.g., mark the first pairwise merge candidate as unavailable; h. In one example, the decoding process of the coding tool may be modified to take into account picture dimensions: i. In one example, the derivation of the MVD for another reference picture list (e.g., list 1) in the SMVD may be based on the resolution difference (e.g., scaling factor) of at least one of the two target SMVD reference pictures; ii. In one example, the derivation of pairwise merging candidates may be based on a resolution difference (e.g., a scaling factor) of at least one of the two reference pictures relative to the two reference pictures, e.g., a linear weighted average may be applied instead of equal weights; i. In one example, X can be: i. DMVR / BDOF / PROF / SMVD / MMVD / other coding tools that refine motion / prediction at the decoder side ii. TMVP / other coding tools that rely on temporal motion information iii. MTS or other transcoding tools iv. CC-ALF v. TPM vi. GEO vii. Switchable interpolation filters (e.g., alternative interpolation filters for half-pel motion compensation) viii. Mixed processes in TPM / GEO / other coding tools that split a single block into multiple partitions ix. Coding tools that answer stored information in a picture different from the current picture x. Pairwise merge candidates (pairwise merge candidates are not generated when certain resolution-related conditions are not met) xi. Bi-prediction with CU-level weighting (BCW) xii. Weighted Prediction xiii. Affine Prediction xiv. Adaptive Motion Vector Resolution (AMVR) 43. Whether and / or how the use of a coding tool should be signaled may depend on the width and / or height of the picture under consideration and / or the current picture of one or more reference pictures: j. the width and / or height of the picture under consideration and / or the current picture of one or more reference pictures may be changed to make the determination; k. The picture under consideration may be defined by a scaling window and / or an adaptation window as defined in JVET-P0590: i. The picture under consideration may be the entire picture; l. In one example, X may be an adaptive motion vector resolution; m. In one example, X can be a merge-with-MV-difference (MMVD) method: i. In one example, the construction of symmetric motion vector difference reference indexes may depend on the picture resolution / indication of RPR cases for different reference pictures; n. In one example, X may be a symmetric MVD (SMVD) method; o. In one example, X can be QT / BT / TT or other partition type; p. In one example, X can be bi-predictive with CU level weighting (BCW); q. In one example, X may be a weighted prediction; r. In one example, X may be an affine prediction; s. In one example, signaling an indication of half-pel motion vector precision / switchable interpolation filter usage may depend on whether resolution information / RPR is enabled for the current block; t. In one example, the signaling of amvr_precision_idx may depend on whether resolution information / RPR is enabled for the current block; u. In one example, the signaling of sym_mvd_flag / mmvd_merge_flag may depend on whether resolution information / RPR is enabled for the current block; v. A conforming bitstream satisfies that 1 / 2 pel MV and / or MVD precision (e.g., alternative interpolation filters / switchable interpolation filters) is disabled when the width and / or height of the picture under consideration of one or more reference pictures differs from that of the current output picture. 44. We propose that AMVR with 1 / 2 pel MV and / or MVD precision (or alternative / switchable interpolation filters) can still be enabled for blocks within the RPR: Alternatively or additionally, different interpolation filters may be applied to the blocks at 1 / 2 pel or other precision. 45. The same / different resolution condition check in the above bullet may be replaced by adding a flag for the reference picture and checking the flag associated with the reference picture: x. In one example, the process of setting a flag to be true or false (i.e., to indicate whether the reference picture is an RPR case or a non-RPR case) may be invoked during the reference picture list building process: i. For example, the following may apply: fRefWidth is set equal to PicOutputWidthL of the reference picture RefPicList[i][j] in luma samples, where PicOutputWidthL represents the width of the picture under consideration of the reference picture; fRefHeight is set equal to PicOutputHeightL of the reference picture RefPicList[i][j] in luma samples, where PicOutputHeightL represents the height of the picture under consideration of the reference picture; RefPicScale[i][j][0]= ((fRefWidth<<14)+(PicOutputWidthL>>1)) / PicOutputWidthL where PicOutputWidthL represents the width of the picture currently under consideration; RefPicScale[i][j][1]= ((fRefHeight<<14)+(PicOutputHeightL>>1)) / PicOutputHeightL where PicOutputHeightL represents the height of the picture currently under consideration; RefPicIsScaled[i][j]=(RefPicScale[i][j][0]!=(1<<14))||(RefPicScale[i][j][1]!=(1<<14)) where RefPicList[i][j] represents the jth reference picture in reference picture list i; y. In one example, when RefPicIsScaled[0][refIdxL0] is not equal to 0 or RefPicIsScaled[1][refIdxL1] is not equal to 0, coding tool X (e.g., DMVR / BDOF / SMVD / MMVD / SMVD / PROF / mentioned in the above bullet point) may be disabled; z. In one example, when both RefPicIsScaled[0][refIdxL0] and RefPicIsScaled[1][refIdxL1] are not equal to 0, coding tool X (e.g., DMVR / BDOF / SMVD / MMVD / SMVD / PROF / mentioned in the above bullet point) may be disabled; aa. In one example, when RefPicIsScaled[0][refIdxL0] is not equal to 0, coding tool X (e.g., PROF or one mentioned in the above bullet point) may be disabled for reference picture list 0; bb. In one example, when RefPicIsScaled[1][refIdxL1] is not equal to 0, coding tool X (e.g., PROF or one mentioned in the above bullet point) may be disabled for reference picture list 1; 46. ​​The SAD and / or thresholds used by the BDOF / DMVR may depend on the bit depth: a. In one example, the calculated SAD value may first be shifted by a function of the bit depth before being used to compare with the threshold; b. In one example, the calculated SAD value may be directly compared to a modified threshold value that may depend on a function of bit depth. 42. If the slice_type value for all slices of a picture is equal to I (I slice), P / B slice-related syntax elements may not need to be signaled in the picture header: a. In one example, one or more syntax elements may be added to a picture header to indicate whether the slice_type of all slices contained in a specified picture is equal to I (I slice): i. In one example, a first syntax element is signaled in a picture header. Whether and / or how to signal / interpret a second syntax element informing slice type information in a slice header of a slice associated with the picture header may depend on the first syntax element: 1) In one example, depending on the first syntax element, the second syntax element may be inferred to be a certain slice type without being signaled; 2) In one example, depending on a first syntax element, a second syntax element may be signaled, but it is a conformance requirement that the second syntax element must be one of several given values; 3) Alternatively, the first syntax element may be signaled within an AU delimiter RBSP associated with the slice; ii. In one example, in the picture header, a new syntax element (e.g., pic_all_X_slices_flag) may be signaled to indicate whether only X slices are allowed in this picture, or whether all slices in this picture are X slices. For example, X may be I, or P, or B: 1) In one example, if all slices are indicated to be I-slices in the associated picture header, slice type information is not signaled in the slice header and the slice is presumed to be an I-slice; iii. In one example, within the picture header, a new syntax element (e.g., ph_pic_type) may be signaled to indicate the picture type of this picture: 1) For example, if ph_pic_type is equal to I-picture (e.g., equal to 0), the slice_type of a slice in the picture can only be allowed to be equal to I; 2) In another example, if ph_pic_type is equal to a non-I picture (e.g., 1 or 2), the slice_type of a slice within the picture may be allowed to be equal to I and / or P and / or B; b. In one example, the syntax element pic_type within the AU delimiter RBSP may be used to indicate whether all slices of the specified picture are equal to I; c. In one example, if all slices in a picture are I-slices, then for all slices in this picture, the syntax element slice_type in the slice header may be inferred to be I-slices (e.g., 2) without being signaled: i. In one example, if a syntax element (e.g., but not limited to, pic_all_I_slices_flag, ph_pic_type, pic_type, etc.) indicates that all slices included in a specified picture are equal to I, a bitstream constraint may be added to specify that the slice_type of all slices in the specified picture is equal to I slice; ii. Alternatively, if a syntax element (e.g., but not limited to, pic_all_I_slices_flag, ph_pic_type, pic_type, etc.) indicates that all slices contained in the specified picture are equal to I, then a bitstream constraint may be added to specify that no P or B slices are allowed in the specified picture; d. If the slice / picture is a W slice / W picture, one or more syntax elements in the slice header / picture header allowed for non-W slices (denoted as syntax element set X defined below) may not be signaled. For example, W can be I and non-W can be B or P. In another example, W can be B and non-W can be I or P: i. In one example, if all slices in a picture are W slices, then the syntax element set X in the picture header allowed for non-W slices may not be signaled; ii. Alternatively, some syntax elements in the picture header (denoted as set X in the following definition) may be conditionally signaled according to whether all slices in the picture are W slices; iii. The syntax element set X may be one or more of the following: 1) In one example, X may be a reference picture related syntax element in the picture header, such as, but not limited to, pic_rpl_present_flag, pic_rpl_sps_flag, pic_rpl_idx, pic_poc_lsb_lt, pic_delta_poc_msb_present_flag, pic_delta_poc_msb_cycle_lt, etc. If the slice / picture is signaled or inferred to be a non-inter slice / picture, X may not be signaled and may be inferred to be unused; 2) In one example, X may be an inter-slice related syntax element in the picture header, such as, but not limited to, pic_log2_diff_min_qt_min_cb_inter_slice, pic_max_mtt_hierarchy_depth_inter_slice, pic_log2_diff_max_bt_min_qt_inter_slice, pic_log2_diff_max_tt_min_qt_inter_slice, etc. If the slice / picture is signaled or inferred to be a non-inter slice / picture, X may not be signaled and may be inferred to be unused; 3) In one example, X may be an inter-prediction related syntax element in the picture header, such as, but not limited to, pic_temporal_mvp_enabled_flag, mvd_l1_zero_flag, pic_six_minus_max_num_merge_cand, pic_five_minus_max_num_subblock_merge_cand, pic_fpel_mmvd_enabled_flag, pic_disable_bdof_flag, pic_disable_dmvr_flag, pic_disable_prof_flag, pic_max_num_merge_cand_minus_max_num_triangle_cand, etc. If the slice / picture is signaled or inferred to be a non-inter slice / picture, X may not be signaled and may be inferred to be unused; 4) In one example, X may be a bi-prediction related syntax element in the picture header, such as, but not limited to, pic_disable_bdof_flag, pic_disable_dmvr_flag, mvd_l1_zero_flag, etc. If the slice / picture is signaled or inferred to be a non-B slice / picture, X may not be signaled and may be inferred to be unused. Relevant tile / slice dimension restrictions 43. A maximum tile width may be specified in the specification: a. For example, the maximum tile width may be defined as the maximum luma tile width in CTB; b. In one example, a new syntax element(s) may be signaled within a video unit (e.g., SPS, PPS, picture header, slice header, etc.) to indicate the maximum tile width allowed in the current sequence / picture / slice / subpicture; c. In one example, the maximum luma tile width, or the maximum luma tile width in CTB, may be signaled; d. In one example, the maximum luma tile width may be fixed at N (e.g., N=1920 or 4096, etc.); e. In one example, different profiles / levels / tiers may specify different maximum tile widths. 44. Maximum slice / subpicture / tile dimensions (e.g., width and / or size, and / or length, and / or height) may be specified in the specification: a. For example, the maximum slice / subpicture / tile dimension may be defined as the maximum luma dimension in the CTB; b. For example, the size of a slice / subpicture / tile may be defined as the number of CTBs in the slice; c. In one example, a new syntax element(s) may be signaled within a video unit (e.g., SPS, PPS, picture header, slice header, etc.) to indicate the maximum luma slice / subpicture / tile dimensions allowed in the current sequence / picture / slice / subpicture; d. In one example, for rectangular slices / subpictures, the maximum luma slice / subpicture width / height or the maximum luma slice / subpicture width / height in CTB may be signaled; e. In one example, for a raster scan slice, a maximum luma slice size (e.g., width x height) or a maximum luma slice size in CTB may be signaled; f. In one example, for both rectangular slices / subpictures and raster scan slices, the maximum luma slice / subpicture size (e.g., width x height) or the maximum luma slice / subpicture size in CTB may be signaled; g. In one example, for raster scan slices, a maximum luma slice length or a maximum luma slice length in CTB may be signaled; h. In one example, the maximum luma slice / subpicture width / height may be fixed at N (e.g., N=1920 or 4096, etc.); i. In one example, the maximum luma slice / subpicture size (e.g., width x height) may be fixed at N (e.g., N=2073600 or 83388608); j. In one example, different profiles / levels / layers may specify different maximum slice / subpicture dimensions; k. In one example, the maximum number of slices / subpictures / tiles into which a picture / subpicture may be divided may be specified in the specification: i. the maximum number may not be signaled; ii. The maximum number may be different for different profiles / levels / tiers. 45. Let the width and height of the current picture be denoted as PW and PH, respectively, the width and height of the current picture scaling window be denoted as SW and SH, respectively, the width and height of the reference picture scaling window be denoted as SW and SH', and the maximum allowed picture width and height be denoted as Wmax and Hmax, respectively. For convenience, let rw = SW' / SW, Rw = Wmax / PW, Qw = PW' / PW, rh = SH' / SH, and Rh = Hmax / PH, Qh = PH' / PH. At least one of the following constraints shall be obeyed by a conforming bitstream. The following constraints should not be understood in a narrow sense. For example, the constraint (a / b) >= (c / d), where a, b, c, d are integers greater than 0, can also be understood as (a / b) - (c / d) >= 0, or a*d >= c*b, or a*dc*d >= 0: a. a×Wmax×SW-(b×SW'+c×SW)×PW+offw≧0, where a, b, c, and offw are integers. For example, a=135, b=128, c=7, and offw=0; b. d×Hmax×SH-(e×SH'+f×SH)×PH+offh≧0, where d, e, and f are integers. For example, d=135, e=128, f=7, and offh=0; c. a×Wmax×SW-b×SW'×PW+offw≧0, where a and b are integers. For example, a=1, b=1, offw=0; d. d×Hmax×SH-e×SH'×PH+offh≧0, where d and e are integers. For example, d=1, e=1, offh=0; e. rw≦Rw+(Lw×(Rw-1)) / Bw+offw, where Lw, Bw, and offw are integers. For example, Lw=7, Bw=128, and offw=0; f. rh≦Rh+(Lh×(Rh-1)) / Bh+offh, where Lh, Bh, and offh are integers. For example, Lh=7, Bh=128, and offh=0; g. rw≦a*Rw+offw, where a and offw are integers. For example, a=1 and offw=0; h. rh≦b*Rh+offh, where b and offh are integers, e.g., b=1 and offh=0; i. rw≦a*Qw+offw, where a and offw are integers, e.g., a=1 and offw=0; j. rh≦b*Qh+offh, where b and offh are integers. For example, b=1 and offh=0. 46. ​​QP related information (e.g., delta QP) can be signaled in the picture header instead of in the PPS: In one example, QP-related information (eg, delta QP) is specified for a particular coding tool, such as adaptive color transformation (ACT).

[0042] 5. Further Embodiments The working draft specified in JVET-O2001-vE may be changed in the following embodiments: Text changes in the VVC draft are shown in underlined bold italics in the table below, and deletions are shown in double bold brackets. For example, [[a]] indicates that an "a" has been deleted. 5.1. Implementation of Constraints on the Fit Window (Outside 12) TIFF0007747409000048.tif1601675.2. Reference sample position derivation embodiment 1 (Outside 13) TIFF0007747409000049.tif249170TIFF0007747409000050.tif2221705.3. Reference sample position derivation embodiment 2 (Outside 14) TIFF0007747409000051.tif249170TIFF0007747409000052.tif2111705.4. Reference sample position derivation embodiment 3 (Outside 15) TIFF0007747409000053.tif249170TIFF0007747409000054.tif2131705.5. Reference sample position clipping embodiment 1 (Outside 16) TIFF0007747409000055.tif254170TIFF0007747409000056.tif2511705.6. Reference sample position clipping embodiment 2 (Outside 17) TIFF0007747409000057.tif254170TIFF0007747409000058.tif254159TIFF0007747409000059.tif261635.7. Implementation example of using the coding tool 5.7.1 BDOF On / Off Control (Outside 18) TIFF0007747409000060.tif1341665.7.2 DMVR on / off control (Outside 19) TIFF0007747409000061.tif1051665.7.3 PROF on / off control for reference picture list X (outside 20) TIFF0007747409000062.tif971685.7.4 PROF on / off control for reference picture list X (second embodiment) (outside 21) TIFF0007747409000063.tif991685.8 An embodiment of conditional signaling of inter-related syntax elements in the picture header (in addition to JVET-P2001-v9) (outside 22) TIFF0007747409000064.tif213161TIFF0007747409000065.tif213161TIFF0007747409000066.tif219161TIFF0007747409000067.tif221161TIFF0007747409000068.tif223161TIFF0007747409000069.tif221167TIFF0007747409000070.tif901625.9 (Additional to JVET-P2001-v14) Let refPicWidthInLumaSamples and refPicHeightInLumaSamples be the pic_width_in_luma_samples and pic_height_in_luma_samples, respectively, of the reference picture of the current picture that refers to this PPS. Let refPicOutputWidthL and refPicOutputHeightL be the PicOutputWidthL and PicOutputHeightL of the reference picture, respectively. A bitstream is conformant if all of the following conditions are met: - PicOutputWidthL * 2 is greater than or equal to refPicOutputWidthL, - PicOutputHeightL * 2 is greater than or equal to refPicOutputHeightL, - PicOutputWidthL is refPicOutputWidthL * is 8 or less, - PicOutputHeightL is refPicOutputHeightL * 8 or less, - (PicOutputWidthL-refPicOutputWidthL)*(PicWidthInLumaSamples-refPicWidthInLumaSamples) is greater than or equal to 0, - (PicOutputHeightL-refPicOutputHeightL)*(PicHeightInLumaSamples-refPicHeightInLumaSamples) is greater than or equal to 0, - 135*pic_width_max_in_luma_samples*PicOutputWidthL-(128*refPicOutputWidthL+7*PicOutputWidthL)*PicWidthInLumaSamples is greater than or equal to 0, - 135*pic_height_max_in_luma_samples*PicOutputHeightL-(128*refPicOutputHeightL+7*PicOutputHeightL)*PicHeightInLumaSamples is greater than or equal to 0. 5.10 Implementation of Signaling of Wraparound Offset (in addition to JVET-P2001-v14) (outside 23) TIFF0007747409000071.tif158163(outside 24) TIFF0007747409000072.tif249170TIFF0007747409000073.tif2241695.11 Implementation of an inter-subpicture deblocking filter (in addition to JVET-P2001-v14) (Outside 25) TIFF0007747409000074.tif250170TIFF0007747409000075.tif189170

[0043] 6. Examples of implementation of the disclosed technology 7 is a block diagram illustrating an example of a video processing system 7000 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 7000. System 7000 may include an input 7002 that receives video content. The video content may be received in a raw or uncompressed format, such as 8-bit or 10-bit multi-component pixel values, or in a compressed or encoded format. Input 7002 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 networks (PONs), and wireless interfaces such as Wi-Fi or cellular interfaces.

[0044] System 7000 may include a coding component 7004 that may implement various coding or encoding methods described herein. Coding component 7004 may reduce the average bitrate of video from input 7002 to the output of coding component 7004, generating a coded representation of the video. Coding techniques are therefore sometimes referred to as video compression techniques or video transcoding techniques. The output of coding component 7004 may be stored or transmitted via a communication connection, as represented by component 7006. The stored or communicated bitstream (or coded) representation of the video received at input 7002 may be used by component 7008 to generate pixel values ​​or displayable video sent to display interface 910. The process of generating user-viewable video from the bitstream representation (or bitstream) is sometimes referred to as video decompression. Also, while certain video processing operations may be referred to as “coding” operations or tools, it is understood that coding tools or operations are used in an encoder, and corresponding decoding tools or operations that reverse the results of the coding are performed in a decoder.

[0045] 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 embodied in a variety of electronic devices, such as, for example, mobile phones, laptops, smartphones, or other devices capable of performing digital data processing and / or video display.

[0046] FIG. 8 is a block diagram of a video processing device 8000. The device 8000 may be used to implement one or more of the methods described herein. The device 8000 may be embodied in a smartphone, tablet, computer, Internet of Things (IoT) receiver, etc. The device 8000 may include one or more processors 8002, one or more memories 8004, and video processing hardware 8006. The processor(s) 8002 may be configured to execute one or more methods described herein (e.g., FIGS. 12-13). The memory(s) 8004 may be used to store data and code used to execute the methods and techniques described herein. The video processing hardware 8006 may be used to implement some of the techniques described herein in hardware circuitry.

[0047] Figure 9 is a block diagram illustrating an example of a video coding system 100 that can utilize the techniques of this disclosure. As shown in Figure 9, video coding system 100 can include a source device 110 and a destination device 120. Source device 110 generates encoded video data and can be referred to as a video encoder. Destination device 120 can decode the encoded video data generated by source device 110 and can be referred to as a video decoder. Source device 110 can include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.

[0048] 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 comprise 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 series of bits forming a coded representation of the video data. The bitstream may include coded pictures and associated data. A coded 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 via the I / O interface 116 directly over the network 130a to the destination device 120. The coded video data may also be stored on a storage medium / server 130b for access by the destination device 120.

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

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

[0051] Video encoder 114 and video decoder 124 may operate according to 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.

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

[0053] Video encoder 200 may be configured to perform any or all of the techniques described in this disclosure. In the example of FIG. 10, 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.

[0054] The functional components of the video encoder 200 may include a division 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.

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

[0056] Also, some components, such as the motion estimation unit 204 and the motion compensation unit 205, although shown separately in the example of FIG. 5 for illustrative purposes, may be highly integrated.

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

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

[0059] To perform inter prediction on a 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 with 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.

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

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

[0062] In another example, motion estimation unit 204 may perform bidirectional prediction on the current video block, where motion estimation unit 204 may search reference pictures in list 0 for a reference video block for the current video block and may also search reference pictures in list 1 for another reference video block for the current video block. Motion estimation unit 204 may then generate reference indices that point to the reference pictures in lists 0 and 1 that contain the reference video blocks, and motion vectors that indicate spatial displacements between the reference video blocks and the current video block. Motion estimation unit 204 may output the reference indices and the motion vector for the current video block as motion information for the current video block. Based on the reference video blocks indicated by the motion information for the current video block, motion compensation unit 205 may generate a prediction video block for the current block.

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

[0064] In some examples, motion estimation unit 204 may not output a complete set of motion information for the current video. Rather, motion estimation unit 204 may signal the motion information of the current video block by reference to the 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.

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

[0066] In another example, motion estimation unit 204 may identify another video block and a motion vector difference (MVD) within 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 pointed-to video block. Video decoder 300 may use the motion vector of the pointed-to video block and the motion vector difference to determine the motion vector of the current video block.

[0067] 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 prediction (AMVP) and merge mode signaling.

[0068] 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 within the same picture. The predictive data for the current video block may include a predictive video block and various syntax elements.

[0069] Residual generation unit 207 may generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) the prediction video block(s) 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.

[0070] In other examples, for example, in skip mode, residual data for the current video block may not exist and residual generation unit 207 may not perform a subtraction operation.

[0071] 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.

[0072] After transform processing unit 208 generates the transform coefficient video block for the current video block, quantization unit 209 may quantize the transform coefficient video block for the current video block based on one or more quantization parameter (QP) values ​​for the current video block.

[0073] 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 for the current block that is stored in buffer 213.

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

[0075] An 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 including the entropy-encoded data.

[0076] FIG. 11 is a block diagram illustrating an example of a video decoder 300, which may be video decoder 124 in system 100 shown in FIG.

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

[0078] 11, 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, a reconstruction unit 306, and a buffer 307. Video decoder 300 may, in some examples, perform a decoding pass that is generally inverse to the encoding pass described with respect to video encoder 200 (e.g., FIG. 10).

[0079] An entropy decoding unit 301 may retrieve 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, a 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 by, for example, implementing AMVP and merge mode.

[0080] The motion compensation unit 302 may optionally perform interpolation based on an interpolation filter to generate the motion-compensated blocks. An identifier for the interpolation filter used with sub-pixel precision may be included in the syntax element.

[0081] Motion compensation unit 302 may calculate interpolated values ​​for sub-integer pixels of the reference block using the interpolation filters used by video encoder 200 during encoding of the video block. Motion compensation unit 302 may determine the interpolation filters used by video encoder 200 according to received syntax information and generate the predictive block using the interpolation filters.

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

[0083] The intra prediction unit 303 may form a prediction block from spatially adjacent blocks using an intra prediction mode, e.g., received in the bitstream. The inverse quantization unit 303 inverse quantizes, e.g., 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.

[0084] A reconstruction unit 306 may add the residual block with a corresponding prediction block generated by the motion compensation unit 302 or the intra prediction unit 303 to form a decoded block. If desired, a deblocking filter may also be applied to filter the decoded block to remove blocking artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for later motion compensation / intra prediction and also generates a decoded video for presentation on a display device.

[0085] 12-17 illustrate example ways in which the technical solutions described above in the embodiments illustrated in, for example, FIGS. 1-5 can be implemented.

[0086] 12 shows a flowchart of an example method 1200 of video processing. The method 1200 includes, at act 1210, performing a conversion between a video having one or more video pictures having one or more slices and a bitstream for the video, wherein the bitstream complies with a format rule that specifies that for a video picture of the one or more video pictures in which all slices are coded as I-slices, P-slice and B-slice related syntax elements are omitted from a picture header for the video picture.

[0087] 13 shows a flowchart of an example method 1300 for video processing. The method 1300 includes, at act 1310, performing a conversion between a video having one or more video pictures having one or more slices and a bitstream for the video, the bitstream conforming to a format rule specifying that a picture header of each video picture has a syntax element that indicates whether all slices in the video picture are coded with the same coding type.

[0088] 14 illustrates a flowchart of an example method 1400 for video processing. The method 1400 includes, at operation 1410, performing a conversion between a video having one or more video pictures and a bitstream of the video, the bitstream conforming to format rules that specify that a picture header for each of the one or more video pictures has a syntax element that points to that picture.

[0089] 15 shows a flowchart of an example method 1500 for video processing. The method 1500 includes, at act 1510, performing a conversion between a video having one or more video pictures and a bitstream of the video, the bitstream conforming to format rules specifying that a syntax element indicating a picture type of the picture is signaled within an access unit (AU) delimiter raw byte sequence payload (RBSP), the syntax element indicating whether all slices in the picture are I-slices.

[0090] 16 shows a flowchart of an example method 1600 for video processing. The method 1600 includes, at operation 1610, performing a conversion between a video having a video picture having one or more video slices and a bitstream for the video, where the bitstream complies with a format rule that specifies that for a picture in which each of a plurality of slices in the picture is an I-slice, an indication of slice type is omitted from the slice headers of the plurality of slices in the bitstream during encoding or is inferred to be an I-slice during decoding.

[0091] 17 shows a flowchart of an example method 1700 for video processing. The method 1700 includes, at act 1710, making a determination as to whether one or more non-W-related syntax elements are signaled in a slice header of a W slice or a picture header of a W picture for conversion between a video having a W slice or a W picture and a bitstream for the video, where W is I, B, or P.

[0092] The method 1700 includes, at operation 1720, performing the conversion based on the determination.

[0093] Next, we provide a list of solutions that are preferred by some embodiments.

[0094] 1. A method of video processing, comprising: performing a conversion between a video having one or more video pictures having one or more slices and a bitstream of the video, wherein the bitstream complies with a format rule, and the format rule specifies that for a video picture among the one or more video pictures in which all slices are coded as I-slices, P-slice and B-slice related syntax elements are omitted from a picture header for the video picture.

[0095] 2. The method of Solution 1, wherein a first syntax element indicating that all slices of the video unit are I-slices is signaled in the picture header.

[0096] 3. A method of Solution 2, wherein whether or not to signal a second syntax element in the bitstream is based on the first syntax element, and the second syntax element indicates slice type information in a slice header of a slice associated with the picture header.

[0097] 4. The method of Solution 3, wherein the second syntax element is excluded from the bitstream and is presumed to be a slice type.

[0098] 5. The method of Solution 3, wherein the second syntax element is signaled within the bitstream and is equal to one of a plurality of predetermined values ​​based on a conformance requirement.

[0099] 6. The method of Solution 3, wherein a first syntax element indicating that the video units all have I-slices is signaled within an access unit (AU) delimiter raw byte sequence payload (RBSP) associated with at least one of the I-slices.

[0100] 7. A method of video processing, comprising: performing a conversion between video having one or more video pictures having one or more slices and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying that a picture header of each video picture has a syntax element indicating whether all slices in the video picture are coded with the same coding type.

[0101] 8. A method of Solution 7, where all slices are coded as either I-slices, P-slices, or B-slices.

[0102] 9. The method of Solution 7, wherein the slice header for a slice excludes slice type information and the slice is inferred to be an I-slice because the syntax element in the picture header indicates that the slices are all I-slices.

[0103] 10. A method of video processing, comprising: performing a conversion between a video having one or more video pictures and a bitstream of the video, the bitstream conforming to a format rule, the format rule specifying that a picture header for each of the one or more video pictures has a syntax element that points to that picture.

[0104] 11. The method of Solution 10, wherein the slice type of one or more slices in the picture is only allowed to indicate an I-slice by the syntax element indicating that the picture is an I-picture.

[0105] 12. The method of Solution 10, wherein the slice type of one or more slices in the picture indicates an I slice and / or a B slice and / or a P slice, whereby the syntax element indicates that the picture is a non-I picture.

[0106] 13. A method of video processing, comprising: performing a conversion between video having one or more video pictures and a bitstream of the video, wherein the bitstream complies with a format rule, the format rule specifying that a syntax element indicating a picture type of a picture is signaled within an access unit (AU) delimiter raw byte sequence payload (RBSP), and the syntax element indicates whether all slices in the picture are I-slices.

[0107] 14. A method of video processing, comprising a step of performing a conversion between video having a video picture having one or more video slices and a bitstream of the video, wherein the bitstream complies with a format rule, and the format rule specifies that for a picture in which each of a plurality of slices in the picture is an I-slice, an indication of slice type is omitted from the slice headers of the plurality of slices in the bitstream during encoding, or is inferred to be an I-slice during decoding.

[0108] 15. The method of Solution 14, wherein the bitstream is organized such that each of the plurality of slices in the picture is an I-slice.

[0109] 16. The method of Solution 14, wherein the bitstream is organized such that no B slices or P slices are included in the picture.

[0110] 17. A method of video processing, comprising: making a decision as to whether one or more non-W-related syntax elements are signaled in a slice header of a W slice or a picture header of a W picture for conversion between a video having a W slice or a W picture and a bitstream of the video, where W is I, B, or P; and performing the conversion based on the decision.

[0111] 18. Solution 17 method, W is I and non-W is B or P.

[0112] 19. Solution 17 method, W is B and non-W is I or P.

[0113] 20. The method of any of Solutions 17 to 19, wherein the one or more syntax elements are excluded from the bitstream by all slices in the picture being W slices.

[0114] 21. The method of any of Solutions 17 to 19, wherein the one or more syntax elements are conditionally signaled in the bitstream by all slices in the picture being W slices.

[0115] 22. The method of any of Solutions 17 to 21, wherein the one or more syntax elements include a reference picture-related syntax element in the picture header.

[0116] 23. The method of any of Solutions 17 to 21, wherein the one or more syntax elements include an inter-slice related syntax element in the picture header.

[0117] 24. The method of any of Solutions 17 to 21, wherein the one or more syntax elements include inter-prediction related syntax elements in the picture header.

[0118] 25. The method of any of Solutions 17 to 21, wherein the one or more syntax elements include bi-prediction related syntax elements in the picture header.

[0119] 26. The method of any one of Solutions 1 to 25, wherein the converting comprises decoding the video from the bitstream.

[0120] 27. The method of any one of Solutions 1 to 25, wherein the converting comprises encoding the video into the bitstream.

[0121] 28. A method for writing a bitstream representing video to a computer-readable recording medium, comprising the steps of generating a bitstream from video according to any of the methods of Solutions 1 to 25, and writing the bitstream to a computer-readable recording medium.

[0122] 29. A video processing device having a processor configured to perform the method of any one of solutions 1 to 28.

[0123] 30. A computer-readable medium having stored thereon instructions that, when executed, cause a processor to perform any of the methods of solutions 1 to 27.

[0124] 31. A computer-readable medium storing a bitstream generated according to any of the methods of solutions 1 to 28.

[0125] 32. A video processing device for storing a bitstream, the video processing device being configured to perform the method of any of solutions 1 to 28.

[0126] In this document, the term "video processing" may refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied to convert a pixel representation of a video to a corresponding bitstream, or vice versa. The bitstream of a current video block may correspond to bits either co-located within the bitstream or scattered across multiple different locations, e.g., as specified by syntax. For example, a macroblock may be encoded using bits in a header and other fields within the bitstream, with error residual values ​​being transformed and coded.

[0127] The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document, including the structures disclosed herein and their structural equivalents, can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, or in combinations of one or more of these. The disclosed and other embodiments can be implemented as one or more computer program products, e.g., as one or more modules of computer program instructions encoded on a computer-readable medium for execution by or for controlling the operation of a data processing apparatus. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter producing a machine-readable propagated signal, or a combination of one or more of these. The term "data processing apparatus" encompasses any apparatus, device, and machine that processes data, including, by way of example, a programmable processor, a computer, or multiple processors or computers. In addition to hardware, an apparatus can include code that creates an execution environment for the computer program in question, such as code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations of these. 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 an appropriate receiver device.

[0128] A computer program (also known as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as 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 may be stored as 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 at hand, or in multiple cooperating files (e.g., files that store one or more modules, subprograms, or portions of code). A computer program may be deployed to be executed on one computer or on multiple computers, either collocated or distributed across multiple locations and interconnected by a communications network.

[0129] The processes and logic flows described in this document may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. These processes and logic flows may also be performed by, and apparatus may be implemented as, special purpose logic circuitry, such as an FPGA (Field Programmable Gate Array) or an ASIC (Application Specific Integrated Circuit).

[0130] Processors suitable for the execution of 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 for storing data, such as magnetic, magneto-optical, or optical disks, or is operatively coupled to receive data from or transfer data to the mass storage devices. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include, by way of example, all forms 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.

[0131] While this patent document contains numerous details, these should not be construed as limitations on any subject matter or the scope of what may be claimed, but rather as descriptions of features that may be specific to particular embodiments of particular technology. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. 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, while features may be described above as operating in a particular combination, and even initially claimed as such, in some cases one or more features from a claimed combination may be removed from the combination, or the claimed combination may be subject to subcombinations or variations of the subcombination.

[0132] Similarly, although the figures may depict operations in a particular order, this should not be understood as requiring that those operations be performed in the particular order or sequence shown, or that all of the operations shown be performed, to achieve desired results. Additionally, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0133] Only a few implementations and examples have been described, and other implementations, extensions and variations may be made based on what is described and illustrated in this patent document.

Claims

1. 1. A method of video processing, comprising: determining a value of a first syntax element to be included in a picture header for a first video picture in a video having one or more video pictures for conversion between the first video picture and a bitstream of the video, the first syntax element indicating whether all slices included in the first video picture are I-slices; using the value of the first syntax element to determine whether to signal a second syntax element in a slice header of a slice included in the first video picture, the second syntax element indicating a slice type of the slice; performing the conversion based on the determination; and in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices, the second syntax element is omitted from slice headers of all slices included in the first video picture, and values ​​of the second syntax element are inferred to indicate I-slices; omitting one or more syntax elements from the picture header for the first video picture in the bitstream in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices; the one or more syntax elements include a third syntax element that specifies use of a first prediction mode for the first video picture; In the first prediction mode, a signaled motion vector is refined based on at least one motion vector having an offset relative to the signaled motion vector; the one or more syntax elements are conditionally included in the picture header when the value of the first syntax element indicates that not all slices included in the first video picture are I-slices. method.

2. the one or more syntax elements further include at least one of a temporal_mvp_enabled_flag, an mvd_l1_zero_flag, a fourth syntax element that specifies use of a second prediction mode for the first video picture, or a fifth syntax element that specifies use of a third prediction mode for the first video picture; in the second prediction mode, for a video block in the first video picture, using a bidirectional optical flow tool to obtain a motion vector offset based on at least one gradient value corresponding to a sample in a reference block for the video block; In the third prediction mode, for a video block in the first video picture, initial predicted samples of sub-blocks of the video block coded in affine mode are generated, and final predicted samples for the sub-blocks are generated by applying optical flow processing to derive prediction refinement based on motion vector differences dMvH and / or dMvV, where dMvH and dMvV indicate motion vector differences along horizontal and vertical directions. The method of claim 1.

3. The method of claim 1 , wherein the one or more syntax elements further comprise at least one of log2_diff_min_qt_min_cb_inter_slice, max_mtt_hierarchy_depth_inter_slice, log2_diff_max_bt_min_qt_inter_slice, or log2_diff_max_tt_min_qt_inter_slice.

4. 4. The method of claim 1, wherein an indication of whether all slices included in the first video picture are all intra-coded is conditionally included in the picture header.

5. 5. The method of claim 1, wherein the first video picture comprises one or more tiles, a maximum tile width of the one or more tiles defined as a maximum luma tile width in units of coding tree blocks, and a maximum tile height of the one or more tiles defined as a maximum luma tile height in units of coding tree blocks.

6. The method of claim 1 , wherein the first video picture comprises one or more slices, and a maximum slice height of the one or more slices is defined in units of coding tree blocks.

7. The method of claim 1 , wherein the converting comprises decoding the video from the bitstream.

8. The method of claim 1 , wherein the converting comprises encoding the video into the bitstream.

9. 1. An apparatus for processing video data comprising a processor and a non-transitory memory having instructions that, upon execution by the processor, cause the processor to: determining a value of a first syntax element to be included in a picture header for the first video picture in a video having one or more video pictures for conversion between the first video picture and a bitstream of the video, the first syntax element indicating whether all slices included in the first video picture are I-slices; using the value of the first syntax element to determine whether to signal a second syntax element in a slice header of a slice included in the first video picture, the second syntax element indicating a slice type of the slice; performing the conversion based on the determination; in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices, the second syntax element is omitted from slice headers of all slices included in the first video picture, and values ​​of the second syntax element are inferred to indicate I-slices; omitting one or more syntax elements from the picture header for the first video picture in the bitstream in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices; the one or more syntax elements include a third syntax element that specifies use of a first prediction mode for the first video picture; In the first prediction mode, a signaled motion vector is refined based on at least one motion vector having an offset relative to the signaled motion vector; the one or more syntax elements are conditionally included in the picture header when the value of the first syntax element indicates that not all slices included in the first video picture are I-slices. Device.

10. A non-transitory computer-readable storage medium having stored thereon instructions that cause a processor to: determining a value of a first syntax element to be included in a picture header for the first video picture in a video having one or more video pictures for conversion between the first video picture and a bitstream of the video, the first syntax element indicating whether all slices included in the first video picture are I-slices; using the value of the first syntax element to determine whether to signal a second syntax element in a slice header of a slice included in the first video picture, the second syntax element indicating a slice type of the slice; performing the conversion based on the determination; in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices, the second syntax element is omitted from slice headers of all slices included in the first video picture, and values ​​of the second syntax element are inferred to indicate I-slices; omitting one or more syntax elements from the picture header for the first video picture in the bitstream in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices; the one or more syntax elements include a third syntax element that specifies use of a first prediction mode for the first video picture; In the first prediction mode, a signaled motion vector is refined based on at least one motion vector having an offset relative to the signaled motion vector; the one or more syntax elements are conditionally included in the picture header when the value of the first syntax element indicates that not all slices included in the first video picture are I-slices. A computer-readable storage medium.

11. 1. A method for storing a video bitstream, comprising: determining, for a first video picture of a video having one or more video pictures, a value of a first syntax element to be included in a picture header for the first video picture in the bitstream, the first syntax element indicating whether all slices included in the first video picture are I-slices; using the value of the first syntax element to determine whether to signal a second syntax element in a slice header of a slice included in the first video picture, the second syntax element indicating a slice type of the slice; generating the bitstream based on the determination; storing the bitstream on a non-transitory computer-readable recording medium; and in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices, the second syntax element is omitted from slice headers of all slices included in the first video picture, and values ​​of the second syntax element are inferred to indicate I-slices; omitting one or more syntax elements from the picture header for the first video picture in the bitstream in response to the value of the first syntax element indicating that all slices included in the first video picture are I-slices; the one or more syntax elements include a third syntax element that specifies use of a first prediction mode for the first video picture; In the first prediction mode, a signaled motion vector is refined based on at least one motion vector having an offset relative to the signaled motion vector; the one or more syntax elements are conditionally included in the picture header when the value of the first syntax element indicates that not all slices included in the first video picture are I-slices. method.