Entropy coding for motion precision syntax

Adaptive Motion Vector Resolution (AMVR) addresses bandwidth and coding efficiency challenges by optimizing motion vector resolution through context-based encoding, resulting in improved video quality and compression performance.

JP7849445B2Active Publication Date: 2026-04-21DOUYIN VISION CO LTD +1
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
DOUYIN VISION CO LTD
Filing Date
2024-11-18
Publication Date
2026-04-21

AI Technical Summary

Technical Problem

Existing video coding technologies face challenges in efficiently managing bandwidth demand and improving video quality, particularly in adapting motion vector resolution for precise motion representation, which affects coding efficiency and compression performance.

Method used

Adaptive Motion Vector Resolution (AMVR) is employed to enhance video coding by using context-based encoding and decoding, allowing for adaptive motion vector difference resolution and context modeling to optimize coding representation, especially in video blocks, thereby improving coding precision and efficiency.

Benefits of technology

AMVR enhances coding efficiency and reduces bandwidth requirements by adapting motion vector resolution based on context modeling, leading to improved video quality and compression performance.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007849445000066
    Figure 0007849445000066
  • Figure 0007849445000067
    Figure 0007849445000067
  • Figure 0007849445000068
    Figure 0007849445000068
Patent Text Reader

Abstract

To provide a system, a method, and a device for video processing.SOLUTION: A video processing method including video encoding, video decoding, or video trans-coding includes executing a conversion between a video block and a video bit stream in accordance with a rule. The conversion is based on an AMVR (adaptive motion vector difference resolution) tool, and the rule defines deriving selection of a context to a first bin in a letter string of a first construction element defining the resolution of a motion vector difference related to an AMVR shift on the basis of usage of a coding mode to a block.SELECTED DRAWING: Figure 18
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] Mutual participation in related applications light Book The applicant timely asserts the priority and benefits of International Patent Application No. PCT / CN2020 / 088546, filed on 1 May 2020. This is a divisional application of Japanese Patent Application No. 2022-566447, based on International Patent Application No. PCT / CN2021 / 091869 filed on May 6, 2021. For all purposes under the law, the entire disclosure of the above application is incorporated by reference as part of the disclosure herein.

[0002] This specification relates to video and image coding technologies. [Background technology]

[0003] Digital video is the largest on the internet and other digital communication networks. It is consuming bandwidth usage. Connected users capable of receiving and displaying video. As the number of video devices increases, the bandwidth demand for digital video usage continues to grow. This is predicted. [Overview of the Initiative]

[0004] The disclosed technology uses context-based encoding and decoding to encode or decode To perform the function, it may be used by an embodiment of a video or image or encoder. .

[0005] In one exemplary embodiment, a method for processing video is disclosed. This method processes video This includes performing conversions between video blocks and coded representations of video. The converted representation conforms to formatting rules, and the conversion is based on motion across video blocks. The representation of the culvert or motion vector difference or motion vector predictor uses adaptive resolution. AMVR (Adaptive Motion) is represented in coded expressions. This is done based on the Vector Difference Resolution tool. The formatting rules are the coding of video blocks or neighboring blocks of video blocks. Through context modeling that relies on the information obtained, the coding representation is adapted. This specifies how to express the use of resolution.

[0006] In another exemplary embodiment, a method for processing another image is disclosed. This method processes the image This includes performing a conversion between the video block and the coded representation of the video. The formatted representation conforms to formatting rules, and the conversion is performed on motion blocks relative to the video. The representation of the culvert or motion vector difference or motion vector predictor uses adaptive resolution. AMVR (Adaptive Motion Vehicle) is a coding expression that represents AMVR in coding. This is done based on the (Corctor Difference Resolution) tool, The format rules are the first for the precision index used by the AMVR tool. Context modeling used to code the first bin and the second bin Therefore, this defines a method for representing the use of adaptive resolution in coded representations.

[0007] In another exemplary embodiment, a method for processing another image is disclosed. This method is multiple A video containing one or more video pictures consisting of video blocks, and video coding This includes performing conversions between the coded expression and the coded expression, and the coded expression is one or more copies. AMVR (Adaptive Motion Vector Diffuser) of the image block For signaling information regarding the coding (Resolution). Comply with the format rules, and the format rules use the first coding mode to code the bin of the AMVR accuracy index of the first video block coded and the second coding bin of the AMVR accuracy index of the second video block coded using the mode, and stipulate to code them using the same context.

[0008] In another exemplary aspect, a method for processing another video is disclosed. This method includes performing a conversion between the video blocks of the video and the coded representation of the video, and the video blocks are divided into one or more vertical and / or one or more horizontal splits, and the coded representation complies with the format rules that define a context-based coding of the split information of the video blocks.

[0009] In another exemplary aspect, a method for processing another video is disclosed. This method includes performing a conversion between the video blocks of the video and the coded representation of the video, and the coded representation complies with the format rules, and the format rules define the coding conditions used to determine whether to use context coding or bypass coding to indicate the sign of the conversion coefficient.

[0010] In another exemplary aspect, a method for processing another video is disclosed. This method includes performing a conversion between the video blocks of the video and the coded representation of the video, and the coded representation complies with the format rules, and the format rules define the bypass of the remaining syntax elements in the third or residual coefficient scan path of the conversion skip residual coding process. ​​​​​​​​At the start of coding, the number of remaining allowed context-coded bins This specifies that the process will be applied to the specified variable.

[0011] In another exemplary embodiment, the method described above is a video encoder device including a processor. It may be implemented by [another method].

[0012] In yet another exemplary embodiment, these methods are in the form of processor-executable instructions. It may be implemented and stored in a computer-readable program medium.

[0013] These and other embodiments are further described herein. [Brief explanation of the drawing]

[0014] [Figure 1] An example of an encoder block diagram is shown. [Figure 2] Here are 67 examples of intra-prediction modes. [Figure 3A] An example of a four-parameter affine model is shown. [Figure 3B] An example of a 6-parameter affine model is shown. [Figure 4] Examples of affine MVF for each subblock are shown. [Figure 5] Here is an example of an inherited affine motion predictor. [Figure 6] An example of control point motion vector inheritance is shown. [Figure 7] Examples of candidate positions for the configured affine merge mode are shown. [Figure 8] This is an explanatory diagram illustrating the use of motion vectors for the proposed combined method. [Figure 9] An example of a subblock MV VSB and pixel Δv(i,j) is shown. (Red arrow) [Figure 10] This illustrates a multi-type tree segmentation mode. [Figure 11]This example shows the signaling of partition flags in a quadtree with a nested multi-type tree coding tree structure. [Figure 12] This is a block diagram of an example video processing system. [Figure 13] An example of a video processing device is shown. [Figure 14] This is a flowchart showing an example of an image processing method. [Figure 15] This block diagram shows a video coding system according to several embodiments of the present disclosure. [Figure 16] This is a block diagram showing encoders according to several embodiments of the present invention. [Figure 17] This is a block diagram showing decoders according to several embodiments of the present invention. [Figure 18] This is a flowchart showing an image processing method according to one or more embodiments of the present technology. [Figure 19] This is a flowchart showing another video processing method according to one or more embodiments of the present technology. [Figure 20] This is a flowchart showing yet another image processing method according to one or more embodiments of the present technology. [Modes for carrying out the invention]

[0015] This specification is intended to improve the quality of unfolded or decoded digital video or images. , provides various technologies that can be used by image or video bitstream decoders. For the sake of brevity, in this specification, the term "image" refers to a series of pictures (traditionally, images and It is used to include both the (called) and individual images. Furthermore, the video encoder During the encoding process, the decoded frames are reconstructed to be used for further encoding. These technologies may be implemented.

[0016] This specification uses chapter headings to facilitate understanding, and each chapter discloses... The embodiments described are not limited to that chapter. Thus, the embodiments in a particular chapter may be This can be combined with embodiments from other chapters.

[0017] 1. Overview This specification relates to video coding technology. Specifically, to image / video coding. AMVR (Adaptive Motion Vector Resolution) n) Related to coding tools such as block splitting. Existing video like HEVC. It may be applied to coding standards, or to standards (Versatile Video Cod This invention may be applied to determine future video coding standards. It can also be applied to video codecs.

[0018] 2. Initial consultations Video coding standards are primarily developed based on well-known ITU-T and ISO / IEC standards. This is how it has developed. ITU-T created H.261 and H.263, and ISO / IEC developed MP EG-1 and MPEG-4 Visual were created, and the two organizations collaborated on H.262 / MPEG-2 V ideo and H.264 / MPEG-4 AVC (Advanced Video Cod) They jointly created the H.265 / HEVC standard with (ing). Since H.262, video coding The standard is a hybrid video coding structure that utilizes time prediction and transformation coding. Based on this, in 2015, in order to explore future video coding technologies beyond HEVC, This is a joint project between VCEG and MPEG called JVET (Joint Video Explorer). The ion Team was established. Since then, many new methods have been adopted by JVET. This is a reference software called JEM (Joint Exploration Mode). It has been incorporated into the software. In April 2018, VCEG (Q6 / 16) and ISO / IE C JTC1 SC29 / WG11 (MPEG) Joint Video Exp The ert Team (JVET) was established, achieving a 50% reduction in bitrate compared to HEVC. We are working on developing VVC standards with this goal in mind.

[0019] 2.1. Typical video codec coding flow Figure 1 shows three in-loop filtering blocks, namely DF (Deblocking). ng Filter), SAO (Sample Adaptive Offset) An example of a VVC encoder block diagram including ALF is shown. Using a predefined filter Unlike DF, SAO and ALF use the original sample of the current picture. It utilizes coded information that signals the offset and filter coefficients. And, by adding an offset to each, and FIR(Finite I By applying the mpulse response filter, the original sample and the reconstructed sample are reconstructed. Reduces the mean squared error between the final sample. ALF is applied to the final processing stage of each picture. It is positioned and can be seen as a tool that attempts to capture and correct artifacts generated in previous stages. It is possible.

[0020] 2.2. Intra-mode coding with 67 intra-predictive modes To capture any edge direction shown in natural video, use directional intra-mode. The number is expanded from 33 to 65, as used in HEVC. Additional directional modes This is indicated by the red dotted arrow in Figure 2, and the planar mode and DC mode remain the same. These denser directional intra-predictive modes are available for all block sizes, and This applies to both luminance and saturation intra-prediction.

[0021] The conventional angle intra-prediction direction is 45 degrees to -13 degrees clockwise, as shown in Figure 2. It is defined up to 5 degrees. In VTM, some conventional angle intra-prediction modes are non For square blocks, it is adaptively replaced with wide-angle intra-predictive mode. The selected mode is signaled using the original method, and after parsing, the wide-angle mode index It is remapped to S. The total number of intra prediction modes does not change, for example, 67. Intra-mode coding does not change.

[0022] In HEVC, all intracoded blocks have a square shape. And the length of each side is a power of 2. In this way, using DC mode, intra No division operation is required to generate predictors. In VVC, blocks are common. In some cases, rectangles may require the use of division operations for each block. To avoid division operations for C prediction, use only the longer side of the non-square block. Calculate the average.

[0023] 2.3. Interpretation For each interprediction CU, the motion vector, reference picture index, and reference pitch Motion parameters composed of indexes used by the cucharist, as well as new VVC codes. Additional information required for the ding features is used to generate interpretation prediction samples. The data may be signaled explicitly or implicitly. The CU is in skip mode. If coded, CU is associated with one PU, and a significant residual coefficient is coded. It does not have a motion vector difference or a reference picture index. The merge mode is specified. This allows for spatial and temporal candidates, as well as additional schedules introduced into VVC. Retrieve motion parameters for the current CU, including the 'merge' function, from neighboring CUs. The code can be applied not only for skip mode, but also to any inter-predicted CU. This is possible. An alternative to merge mode is to clearly send motion parameters, and The vector, each reference picture list, and the reference picture list usage flag corresponding to the reference. The picture index and other necessary information are clearly signaled for each CU.

[0024] 2.4. IBC (Intra Block Copy) IBC (Intra Block Copy) was adopted as an extension of SCC to HEVC. It is a useful tool. This improves the coding efficiency of screen content materials. It is known to be significantly improved. IBC mode is block-level coding mode. Since it is implemented as such, BM (Block Matching) in the encoder This is executed to find the optimal block vector (or motion vector) for each CU. The block vector is already reconstructed within the current picture from the current block. Used to indicate displacement to the reference block. IBC coded CU luminance block The lock vector is integer-precision. The saturation block vector can also be rounded to integer precision. When combined with AMVR, IBC mode provides motion vector accuracy for 1-pixel and 4-pixel sensors. It can be switched. IBC coded CUs can be in intra predictive mode or It is treated as a third prediction mode other than the interprediction mode. The IBC mode is width and This is applicable to CUs with both height and luminance samples of 64 or less.

[0025] On the encoder side, hash-based motion estimation is performed for IBC. D performs an RD check on blocks with a width or height of 16 luminance samples or less. To do this, in non-merge mode, first use a hash-based lookup to find the block vector. The search is performed. If the hash search does not return any valid candidates, block matching is performed. A local search is performed.

[0026] In hash-based searches, the hash key match between the current block and the referenced block The ching (32-bit CRC) is expanded to all acceptable block sizes. The hash key calculation for all positions in the picture is done in a 4x4 subblock. Based on this, if the current block size is larger, all 4x4 subblocks If all hash keys match the hash keys of the corresponding reference locations, then the hash key - is determined to match that of the reference block. The hash keys of multiple reference blocks If it is found to match the hash key of the current block, then the block of each matching reference block Calculate the lock vector costs and select the one with the minimum cost. In a ching search, the search range covers both the previous and current CTUs. It will be set to this.

[0027] At the CU level, the IBC mode is signaled by a flag, and the IBC AMVP mode Alternatively, it may be signaled as an IBC skip / merge mode as follows:

[0028] -IBC skip / merge mode: Use the merge candidate index to select neighboring candidate I In a list of BC-coded blocks, which block vectors are used? This indicates whether to predict the current block. The merge list includes spatial candidates, HMVP candidates, and It consists of pairwise candidates.

[0029] -IBC AMVP mode: Coordinate block vector differences in the same way as motion vector differences. The block vector prediction method uses two candidates as predictors, one of which is left It is from the neighborhood, and one is from the neighborhood above (IBC coded) (If any neighbor is unavailable, the default block vector is used as the predictor.) It is used as follows: The flag is signaled to indicate the block vector predictor index. It will be made known.

[0030] 2.5. Affine motion compensation prediction In HEVC, MCP (Motion Compensation Predicate) Only translational motion models are applicable for (tion). On the other hand, in the real world, motion There are various types, such as zoom in / zoom out, rotation, perspective motion, and others. There is irregular motion. Block-based affine transform motion compensation prediction is suitable for VVC. It is used. As shown in Figures 3A to 3B, the affine motion field of the block is two Motion information of the control points (4 parameters) or motion vectors of three control points (6 parameters) This is explained by:

[0031] Figure 6 shows an example of control point motion vector inheritance.

[0032] In the case of a 4-parameter affine motion model, the sample position (x,y) within the block is The motion vector is derived as follows:

[0033]

number

[0034] In the case of a 6-parameter affine motion model, the sample position (x,y) within the block is The motion vector is derived as follows:

[0035]

number

[0036] Here, (mv 0x ,mv 0y ) is the motion vector of the upper left corner control point, (mv 1x ,mv1 y ) is the motion vector of the control point in the upper right corner, (mv 2x ,mv 2y ) is the movement of the control point in the lower left corner. It is a vector.

[0037] To simplify motion compensation prediction, block-based affine transformation prediction is applied. To derive the motion vector of each 4x4 luminance subblock, the center of each subblock is... The motion vector of the sample is calculated according to the above equation, as shown in Figure 4, and the 1 / 16th terminal Round to numerical precision. Then, apply a motion compensation interpolation filter and use the derived motion vector. Then, the prediction for each subblock is generated. Also, the subblock size for the saturation component is 4x4. The settings are configured. The MV of the 4x4 saturation subblock is the same as the corresponding 4x4 luminance subblock. It is calculated as the average value of the music videos (MV).

[0038] Similar to translational motion interpretation, there are two modes: affine merge mode and affine AMVP mode. There are two affine motion interpretations.

[0039] 2.5.1. Affine Merge Prediction The AF_MERGE mode can be applied to CUs where both the width and height are 8 or greater. In this mode, the current CU's CPMV is determined based on the motion information of spatially nearby CUs. Generate. There are up to 5 CPMVP candidates, and the index is used for the current CU. It is signaled to indicate what should be done. Using the following three types of CPVM candidates, Form a list of merge candidates. - Inherited affine merge candidates extrapolated from the CPMV of neighboring CUs - Constructed affine merge candidate CPMV derived using translational MV of neighboring CUs P - Zero MV

[0040] In VVC, up to two inherited models originate from the affine motion model of neighboring blocks. There are several affine candidates, one from the left neighboring CU and the other from the upper neighboring CU. The candidate blocks are shown in Figure 5. For the predictor on the left, the scan order is A0->A1, and above For the predictor, the scan order is B0->B1->B2. The first inheritance from each side Only the inherited candidates are selected. No pruning check is performed between the two inherited candidates. When a neighboring affine CU is identified, its control point motion vector is used to determine the current CU We derive the CPMVP candidates in the affine merge list. As shown in the figure, the left neighbor If block A below is coded in affine mode, then the left of the CU containing block A The motion vectors v2, v3, and v4 for the top corner, upper right corner, and lower left corner are obtained. 4-parameter affiliate When coding with the model, v2 and v3 provide two CPMs for the current unit. Calculate V. If block A is coded as a 6-parameter affine model, then v 2. Based on v3 and v4, calculate the three CPMVs of the current CU.

[0041] The constructed affine candidates are created by combining the translational motion information of the vicinity of each control point. This means that the control points are located from the identified spatial and temporal neighborhoods shown in Figure 7. Deriving movement. CPMV k (k=1,2,3,4) represents the k-th control point. CPM In the case of V1, the B2->B3->A2 block is checked, and the first available block is... The MV is used. In the case of CPMV2, the B1→B0 block is checked, and CPMV For step 3, the A1→A0 block is checked. If available, it will be set to CPMV4. TMVP is used.

[0042] After reaching the motion volume (MV) of the four control points, an affine merge candidate is constructed based on that motion information. The control points MV are constructed sequentially using the following combinations. {CPMV1,CPMV2,CPMV3},{CPMV1,CPMV2,CPMV4}, {CPMV1,CPMV3,CPMV4},{CPMV2,CPMV3,CPMV4}, {CPMV1,CPMV2},{CPMV1,CPMV3}

[0043] The combination of three CPMVs constitutes a 6-parameter affine merge candidate, and two C The PMV combination constitutes a candidate for a 4-parameter affine merge. Motion scaling To avoid the process, if the reference index of the control points is different, the relevant combination of control point MV Discard the combination.

[0044] After checking inherited affine merge candidates and constructed affine merge candidates If the list is not yet full, insert zero MVs at the end of the list.

[0045] 2.5.2. Affine AMVP Prediction The Affine AMVP mode can be applied to CUs with both width and height of 16 or more. To indicate whether affine AMVP mode is used, the CU level affine The flag is signaled in the bitstream, and then in a 4-parameter affine Another flag is signaled to indicate whether or not it is a 6-parameter affine. In this mode, the difference between the current CU's CPMV and its predictor CPMVP is the bitst Signals are sent in the ream. The Affine AVMP candidate list size is 2, and the following It is generated by sequentially using four types of CPVM candidates. - Inherited affine AMVP candidates extrapolated from CPUMV of neighboring CUs - Constructed affine AMVP candidate CPM derived using translational MV of neighboring CUs VP - Translational MV from nearby CU - Zero MV

[0046] The order in which inherited affine AMVP candidates are checked is the same as the order in which inherited affine merge candidates are checked. The check order is the same. The only difference is that, in the case of AVMP candidates, the reference is the same as the current block. Only affine CUs with pictures should be considered. Inherited affine motion prediction. When inserting a child into the candidate list, pruning is not applied.

[0047] The constructed AMVP candidates are derived from the defined spatial neighborhood shown in Figure 7. The same check order used in constructing merge candidates will be applied. Also, neighboring blocks Also check the reference picture index of the book. Intercoded and currently The first block in the check order that has the same reference picture as the current CU is used. The CU is coded in 4-parameter affine mode, and mv0 and mv1 If both are available, add them as one candidate to the Affine AMVP list. The current CU is coded in 6-parameter affine mode, and has three CPMs. If all Vs are available, then they are one candidate in the affine AMVP list. Add it. Otherwise, set the constructed AMVP candidate to unavailable.

[0048] After checking the inherited affine AMVP candidates and the constructed AMVP candidates, If the number of candidates for the Finn AMVP list is still less than 2, then, if available, mv0, m v1 and mv2 are translational MVs that predict all control point MVs of the current CU, in that order. It will be added. Finally, if the Affine AMVP list is not yet complete, Use zero MV to add up.

[0049] 2.5.3. Affine motion information storage In VVC, the CPUMV of the affine CU is stored in a separate buffer. The newly coded CPMV uses affine merge mode and Used solely to generate inherited CPMVP in FinAMVP mode. The subblock MV derived from V is a merge of motion-compensated and translational MVs / AMVP lists. It is used for MV derivation and deblocking.

[0050] To avoid picture line buffers for additional CPUMV, from the above CTU The inheritance of affine motion data from a CU appears to be different from the usual inheritance from a neighboring CU. It is treated as follows. If the candidate CU for affine motion data inheritance is on the upper CTU line, To derive the MVP, instead of CPMV, use the lower left and lower right sides in the line buffer. A bublock MV is used. In this way, CPMV is stored only in the local buffer. If a candidate CU is 6-parameter affine coded, the affine model is 4 The parameter model is reduced. As shown in Figure 8, along the upper limit of the CTU, the lower left of the CU. And using the motion vector of the lower right subblock, the CU at the lower limit CTU is affine. To inherit.

[0051] 2.5.4. Predictive Improvement with Optical Flow for Affine Modes Subblock-based affine motion compensation sacrifices predictive accuracy for memory access. This saves bandwidth and reduces computational complexity compared to pixel-based motion compensation. Yes, it is possible. To achieve finer granularity in motion compensation, PROF (Prediction) Refinement with Optical Flow is for motion compensation. Affine motion compensation based on subblocks without increasing memory access bandwidth Used to improve measurement. In VVC, affine motion compensation based on subblocks. After compensation, the luminance prediction sample is finely adjusted by adding the difference derived from the optical flow equation. PROF is described as the following four steps.

[0052] Step 1) Perform affine motion compensation based on sub - blocks to generate a sub - block prediction I(i, j). Step 2) Using a 3 - tap filter [-1, 0, 1], at each individual sample position, calculate the spatial gradients g x (i, j) and g y (i, j) of the sub - block prediction. The gradient calculation is exactly the same as that of BDOF.

[0053]

Number

[0054] shift1 is used to control the gradient accuracy. The sub - block (e.g., 4× 4) prediction is expanded by one sample on each side for gradient calculation. To avoid additional memory bandwidth and additional interpolation calculations, these expanded samples on the expanded boundary are copied from the closest integer pixel position in the reference picture.

[0055] Step 3) Calculate the luminance prediction improvement by the following optical flow equation.

[0056]

Number

[0057] Here, Δv(i, j) is, as shown in Figure 9, the sample MV calculated to be 0 for the sample position (i, j) represented by v(i, j), and the sub - block to which the sample (i, j) belongs This is the difference from the Rock subblock MV. This Δv(i,j) is a 1 / 32 luminance sample. It is quantized to a unit of precision.

[0058] The affine model parameters and sample positions relative to the subblock center are subblock Since it does not change from one subblock to the next, calculate Δv(i,j) for the first subblock and use the same C It can be reused in other subblocks within U. dx(i,j) and dy(i,j ) from sample position (i,j) to subblock (x SB ,y SB ) horizontal to the center Assuming it is a vertical offset, Δv(x,y) can be derived using the following equation. Cut.

[0059]

number

[0060] To maintain accuracy, subblock (x SB ,y SB The center of ) is ((W SB -1) / 2,( H SB It is calculated as -1) / 2), where W SB and H SB These are, These are the width and height of the subblock.

[0061] In the case of a 4-parameter affine model,

[0062]

number

[0063] In the case of a 6-parameter affine model,

[0064]

number

[0065] Here, (v 0x ,v 0y ), (v 1x ,v 1y ), (v 2x ,v 2y ), is upper left, right The top and bottom left control point motion vectors are shown, where w and h are the width and height of the control unit (CU).

[0066] Step 4) Finally, the improvement in brightness prediction ΔI(i,j) is applied to the subblock prediction I(i,j). In addition, the final prediction I' is generated as shown in the following equation.

[0067]

number

[0068] PROF does not apply in two cases for affine-coded CUs. 1) All control points MV are the same, which indicates that CU has only translational motion. 2) Affine MC based on subblocks avoids large memory access bandwidth requirements. Therefore, the affine motion parameters degrade to MC based on CU, and the specified control It's larger than the limit.

[0069] To reduce the coding complexity of affine motion estimation using PROF, a fast coding method The law applies in the following two situations: a) This CU is not the root block, and its parent If the block does not select affine mode as its best mode, the current CU will be affine Since it is unlikely that you will select the in-mode as the best mode, PROF will not be applied, b The magnitudes of the four affine parameters (C, D, E, F) are all predefined thresholds. It is also small, and if the current picture is not a low-latency picture, it is introduced by PROF. The improvement in this case is small, so PROF is not applied. In this way, PROF This allows for faster affine motion estimation.

[0070] 2.6. Exemplary Availability Process for Block Partitioning 6.4.1 Permitted Quad Partitioning Process The input for this process is as follows: - Coding block size cbSize in luminance samples, - Depth of multitype tree mttDepth, - Using a single tree (SINGLE_TREE) or dual tree for coding Whether to split the tree node, and if using a dual tree, the brightness (DU (AL_TREE_LUMA) or the saturation component (DUAL_TREE_CHROMA) is displayed. The `treeType` variable determines whether processing is currently underway. - Intra (MODE_INTRA), IBC (MODE_IBC), Intercode Can the ing mode be used (MODE_TYPE_ALL), or intracode Can only coding mode and IBC coding mode be used? (MODE_TYPE_ (INTRA), or is it possible to use only the intercoding mode (MODE_TY The variable modeType defines PE_INTER.

[0071] The output of this process is stored in the variable `allowSplitQt`. The variable `allowSplitQt` is derived as follows: - If one or more of the following conditions are true, allowSplitQt is FALSE It will be set to this. -treeType is SINGLE_TREE or DUAL_TREE_LUMA It is equal to and cbSize is less than or equal to MinQtSizeY. -treeType is equal to DUAL_TREE_CHROMA, and cbSize is (MinQtSizeC * SubHeightC / SubWidthC) is less than or equal to (MinQtSizeC * SubHeightC / SubWidthC) -mttDepth is not equal to 0 -treeType is equal to DUAL_TREE_CHROMA, (cbSize SubWidthC is 4 or less. -treeType is equal to DUAL_TREE_CHROMA, modeTyp e is equal to MODE_TYPE_INTRA - Otherwise, allowSplitQt is set to TRUE.

[0072] 6.4.2 Permitted Binary Splitting The input for this process is as follows: -Binary split mode btSp light, - Coding block width cbWidth in luminance samples, - Height of the coding block in the luminance sample, cbHeight, - The upper left of the coding block to be considered for the brightness sample in the upper left of the picture. Brightness sample position (x0, y0), - Depth of multitype tree mttDepth, -maxMttDepth is the maximum multi-type tree depth with an offset. - Maximum 2-minute tree size maxBtSize, - Minimum quad tree size minQtSize, -Partition index partIdx, - Using a single tree (SINGLE_TREE) or dual tree for coding Whether to split the tree node, and if using a dual tree, the brightness (DU (AL_TREE_LUMA) or the saturation component (DUAL_TREE_CHROMA) is displayed. The `treeType` variable determines whether processing is currently underway. - Intra (MODE_INTRA), IBC (MODE_IBC), Intercode Can the ing mode be used (MODE_TYPE_ALL), or intracode Can only coding mode and IBC coding mode be used? (MODE_TYPE_ (INTRA), or is it possible to use only the intercoding mode (MODE_TY The variable modeType defines PE_INTER.

[0073] The output of this process is stored in the variable `allowBtSplit`.

[0074] Table 2-1 parallelTtSplit and cbSize based on btSplit specification

[0075] [Table 1]

[0076] As shown in Table 2-1, the variables parallelTtSplit and cbSize are derived. To release. The variable allowBtSplit is derived as follows: - If one or more of the following conditions are true, allowBtSplit is FALSE It will be set to this. -cbSize is less than or equal to MinBtSizeY -cbWidth is greater than maxBtSize -cbHeight is greater than maxBtSize -mttDepth is greater than or equal to maxMttDepth -treeType is equal to DUAL_TREE_CHROMA, (cbWidth If h / SubWidthC)*(cbHeight / SubHeightC) is 16 or less be -treeType is equal to DUAL_TREE_CHROMA, (cbWidth When h / SubWidthC) is equal to 4, btSplit becomes SPLIT_BT_VER equal -treeType is equal to DUAL_TREE_CHROMA, modeTyp e is equal to MODE_TYPE_INTRA -cbWidth*cbHeight is equal to 32, and modeType is MODE Equivalent to _TYPE_INTER -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_VER -y0+cbHeight is pic_height_in_luma_sample s greater than

[0077] -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_VER -cbHeight is greater than 64 -x0+cbWidth is pic_width_in_luma_samples Large -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_HOR -cbWidth is greater than 64 -y0+cbHeight is pic_height_in_luma_sample s greater than -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -x0+cbWidth is pic_width_in_luma_samples Large -y0+cbHeight is pic_height_in_luma_sample s greater than -cbWidth is greater than minQtSize

[0078] -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_HOR -x0+cbWidth is pic_width_in_luma_samples Large -y0+cbHeight is pic_height_in_luma_sample It is less than or equal to s. -Otherwise, if all of the following conditions are true, allowBtSplit This is set to be equal to FALSE. -mttDepth is greater than 0 -partIdx=1 -MttSplitMode[x0][y0][mttDepth-1] is equal to It is altoparallelTtSplit. -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_VER -cbWidth is 64 or less -cbHeight is greater than 64 -If not, allowBtSp if all of the following conditions are met. lit is set to FALSE. -btSplit is equal to SPLIT_BT_HOR -cbWidth is greater than 64 -cbHeight is 64 or less - Otherwise, allowBtSplit is set to TRUE.

[0079] 6.4.3 Permitted ternary partitioning The input for this process is as follows: - Turning split mode ttSplit, - Coding block width cbWidth in luminance samples, - Height of the coding block in the luminance sample, cbHeight, - The upper left of the coding block to be considered for the brightness sample in the upper left of the picture. Brightness sample position (x0, y0), - Multi-type tree depth mttDepth -maxMttDepth is the maximum multi-type tree depth with an offset. - Maximum 3 minute tree size maxTtSize, - Using a single tree (SINGLE_TREE) or dual tree for coding Whether to split the tree node, and if using a dual tree, the brightness (DU (AL_TREE_LUMA) or the saturation component (DUAL_TREE_CHROMA) is displayed. The variable treeType determines whether processing is currently underway. - Intra (MODE_INTRA), IBC (MODE_IBC), Intercode Can the ing mode be used (MODE_TYPE_ALL), or intracode Can only coding mode and IBC coding mode be used? (MODE_TYPE_ (INTRA), or is it possible to use only the intercoding mode (MODE_TY The variable modeType defines PE_INTER.

[0080] The output of this process is stored in the variable `allowTtSplit`. Table 2-2 Specifications of cbSize based on ttSplit

[0081] [Table 2]

[0082] As shown in Table 2-2, the variable cbSize is derived. The variable allowTtSplit is derived as follows: - If one or more of the following conditions are true, allowTtSplit is FALSE It will be set to this. -cbSize is less than or equal to 2*MinTtSizeY -cbWidth is greater than Min(64,maxTtSize) -cbHeight is greater than Min(64,maxTtSize) -mttDepth is greater than or equal to maxMttDepth -x0+cbWidth is pic_width_in_luma_samples Large -y0+cbHeight is pic_height_in_luma_sample s greater than -treeType is equal to DUAL_TREE_CHROMA, (cbWidth If h / SubWidthC)*(cbHeight / SubHeightC) is 32 or less be -treeType is equal to DUAL_TREE_CHROMA, (cbWidth When h / SubWidthC) is equal to 8, ttSplit becomes SPLIT_TT_VER equal -treeType is equal to DUAL_TREE_CHROMA, modeTyp e is equal to MODE_TYPE_INTRA -cbWidth*cbHeight is equal to 64, and modeType is MODE Equivalent to _TYPE_INTER. - Otherwise, allowTtSplit is set to TRUE.

[0083] 6.4.4 Derivation of Neighbor Block Availability The input for this process is as follows: - Brightness of the top-left sample of the current block relative to the top-left brightness sample of the current picture degree position (xCurr,yCurr), - The brightness position covered by neighboring blocks relative to the brightness sample in the upper left of the current picture ( xNbY, yNbY), - The variable checkPredMo determines whether availability depends on the prediction mode. deY, - A variable cIdx that defines the color components of the current block.

[0084] The output of this process shows the availability of neighboring blocks covering the position (xNbY, yNbY). It is a possibility and is represented as availableN. The availability of neighboring blocks, availableN, is derived as follows: -If one or more of the following conditions are true, availableN is set to FALSE. It is determined. -xNbY is less than 0. -yNbY is less than 0. -xNbY is greater than or equal to pic_width_in_luma_samples. -yNbY is greater than or equal to pic_height_in_luma_samples. -IsAvailable[cIdx][xNbY][yNbY] is equivalent to FALSE It's nice. - The neighboring block is in a different slice than the current block. - The neighboring block is located on a different tile than the current block. -sp_entropy_coding_sync_enabled_flag is 1 Equals to (xNbY>CtbLog2SizeY) and (xCurr>CtbLog2S It is greater than or equal to izeY)+1. - Otherwise, availableN is set to TRUE. If all of the following conditions are true, availableN is set to FALSE. . -checkPredModeY is equal to TRUE. -availableN is set to TRUE. -CuPredMode[0][xNbY][yNbY] is CuPredMode[0 [xCurr][yCurr] is not equal to [xCurr][yCurr].

[0085] 2.7. AMVR (Adaptive Motion Vector Resolut) ion) In HEVC, use_integer_mv_flag is used in slice headers. If it is 0, then MVD (Motion Vector D) is measured in units of 1 / 4 luminance samples. The ifference (the difference between the motion vector and the CU's predicted motion vector) is notified as a signal. In VVC, CU level AMVR (Adaptive Motion Vector) The tor Resolution (Tor Resolution) scheme is introduced. AMVR uses different MVDs for CUs. This enables coding with high precision. Current CU mode (normal AMVP mode) Based on the current CU's MV (either AFF, AVMP mode, or IBC mode), D can be adaptively selected as follows: -Normal AMVP mode: 1 / 4 brightness sample, 1 / 2 brightness sample, 1 brightness sample or 4 brightness samples - Affine AMVP mode: 1 / 4 brightness sample, 1 brightness sample, or 1 / 16 brightness Degree sample - IBC mode: 1 luminance sample or 1 / 4 luminance sample

[0086] If the current CU has at least one non-zero MVD component, then the CU level MVD resolution The degree display is conditionally notified. All MVD components (i.e., reference list L0 and If both the horizontal and vertical MVDs in reference list L1 are zero, then 1 / 4 luminance sample The MVD resolution is inferred.

[0087] A normal AMVP intermode (non-IB) having at least one non-zero MVD component. For CU coded with C (non-affine), the 1 / 4 luminance sample MVD accuracy is C To indicate whether it is used for U, the first flag (e.g., amvr_flag) The signal is notified. If the first flag is 0, no further signaling is required, and currently A 1 / 4 luminance sample MVD accuracy is used for the CU. Otherwise, the second The lag (for example, the first bin of amvr_precision_idx) is 1 / 2 brightness. Sample or other MVD accuracy (1 luminance sample or 4 luminance samples) is typical for AMVP. The signal indicates that it will be used for CU. For 1 / 2 luminance samples, 1 / At the 2-luminance sample position, a 6-tap interpolation filter is used instead of the default 8-tap interpolation filter. A filter is used. Otherwise, a third flag (e.g., amvr_precis) is used. The second bin of ion_idx is MV for one luminance sample or four luminance samples. It is signaled whether the D precision is used for the normal AMVP_CU.

[0088] For a CU coded in affine AMVP mode, the second flag is used to indicate whether the MVD precision of 1 luminance sample or 1 / 16 luminance sample is used. For a CU coded in IBC mode, the first flag is not signaled and is assumed to be equal to 1. In the current design of AMVR, an amvr_flag equal to 0 specifies that the resolution of the motion vector difference is 1 / 4 of the luminance samples. An amvr_flag equal to 1 specifies that the resolution of the motion vector difference is further specified by amvr_precision_idx.

[0089]

[0090]

[0091] Example syntax table for AMVR 7.3.10.5 Coding unit syntax

[0091] <000088,2> [Table 3]

[0092] [Table 4]

[0093] [Table 5]

[0094] [Table 6]

[0095] Specifically, the bins of amvr_flag and amvr_precision_idx The bin strings and contexts for coding the strings are defined as follows follows.

[0096] [Table 7]

[0097] [Table 8]

[0098] [Table 9]

[0099] [[ID=F37]][Table 10]

[0100] 7.4.11.5 Coding Unit Syntax amvr_precision_idx[x0][y0] shall define the resolution of the motion vector difference from AmvrShift in Table 2-3. The array indices x0, y0 shall define the position (x0, y0) of the top-left luminance sample of the coding block to be considered with respect to the top-left luminance sample of the picture. If amvr_precision_i dx[x0][y0] does not exist, it is inferred to be equal to 0.

[0101] Table 2-3 Specification of AmvrShift

[0102] [Table 11] ​​

[0103] 9.3.3 Binary Thresholding Processing

[0104] Table 126 - Syntactic Elements and Associated Binary Thresholding

[0105] [Table 12]

[0106] [Table 13]

[0107] 9.3.2.2 Initialization Processing of Context Variables

[0108] Table 51 - ctxIdx of Each initializationType in Initialization Processing and Association with Syntactic Elements

[0109] [Table 14]

[0110] Table 88 - initValue and shiftI of ctxIdx of amvr_flag Specification of dx

[0111] [Table 15]

[0112] Table 89 - initValue of ctxIdx of amvr_precision_idx and Specification of shiftIdx

[0113] [Table 16]

[0114] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0115] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0116] [Table 17]

[0117] 2.8. Split information In VVC, nesting is used with binary and terminally partitioned segmentation structures. A quad tree with a multi-type tree adopts the concept of multiple partitioning unit types. Instead, for example, it is necessary for CUs that have a size that is too large for the maximum conversion length. Except in certain cases, the separation of the CU, PU, ​​and TU concepts is eliminated, and the CU division shape is... It supports a wide range of flexibility. In the coding tree structure, CU is square or It can have any of the following rectangular shapes. First, CTU (Coding Tree Un The data (it) is divided into a quadtree structure. The leaf nodes of the quadtree are multi-type It can be further subdivided by a Lee structure. As shown in Figure 10, a multi-type tree structure Four-part splitting type, vertical binary splitting (SPLIT_BT_VER), horizontal binary Split (SPLIT_BT_HOR), vertical ternary split (SPLIT_TT_VER), There is a horizontal ternary split (SPLIT_TT_HOR). For multi-type trees, the leaves... A node is called a CU (Coding Unit), and if the CU is too large, it exceeds the maximum conversion length. Unless otherwise specified, this segmentation will proceed to prediction and transformation processing without further division. It is used. This is because, in most cases, CU, PU, ​​and TU are nested multi In a quadtree having a tree coding block structure of the same type, This means that the maximum supported conversion length is greater than the width or height of the color component of the CU. This exception occurs when the value is also small.

[0118] Figure 11 shows a quadtree having nested multitype tree coding trees. This shows the signal notification mechanism for segmented information. (CTU (Coding Tree Unit)) It is treated as the root of a quadtree and is first divided into one quadtree structure. The leaf nodes (if they are large enough to be allowed) then form a multi-type tree structure. It is further divided. In a multi-type tree structure, the first flag (mtt_sp The lit_cu_flag) is a signal used to indicate whether the node has been further subdivided. If notified and the node has been further split, the second flag (mtt_split_c The u_vertical_flag) is signaled to indicate the division direction, and then the third F The lag (mtt_split_cu_binary_flag) indicates that the split is a binary split. The signal is given to indicate whether it is a terminal partition or not. mtt_split_cu _vertical_flag and mtt_split_cu_binary_flag Based on the value of g, the multi-type tree slit mode of the CU is as shown in Table 2-4. MttSplitMode is derived.

[0119] Table 2-4 Derivation of MttSplitMode based on multitype tree syntax elements

[0120] [Table 18]

[0121] mtt_split_cu_vertical_flag=0 is a coding unit This specifies that the horizontal division should be performed. ag=1 specifies that the coding units are divided vertically. mtt_spli If t_cu_vertical_flag does not exist, the following is inferred: -allowSplitBtHor is equal to TRUE, or allowSplit If TtHor is equal to TRUE, mtt_split_cu_vertical_f The value of lag is presumed to be equal to 0. - Otherwise, the value of mtt_split_cu_vertical_flag is 1 It is presumed to be equal to this.

[0122] Example syntax table for mtt_split_cu_vertical_flag 9.3.2.2 Initialization process of context variables

[0123] Table 51 - ctxIdx for each initializationType in the initialization process and association of syntactic elements

[0124] [Table 19]

[0125] Table 61 - i of ctxInc in mtt_split_cu_vertical_flag nitValue and shiftIdx specifications

[0126] [Table 20]

[0127] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0128] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0129] [Table 21]

[0130] 9.3.4.2.3 Syntax element mtt_split_cu_vertical_flag The derivation process of ctxIncfor The input to this process is the current luminance block for the top-left sample of the current picture. The luminance sample in the upper left, the dual-tree channel type chType and the luminance sample The width and height of the current coding block cbWidth, cbHeight, and row The variable `allow`, derived in coding tree semantics in section 7.4.11.4 SplitBtVer, allowSplitBtHor, allowSplitTVe r, allowSplitTHor, allowSplitTHor and allowS It is plit.

[0131] The output of this process is ctxInc. The position (xNbL, yNbL) is set to be equal to (x0-1, y0), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbL, yNbL) is set to be equal to the position (xCurr, yCurr) and (xNbL, yNbL). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableL. The position (xNbA, yNbA) is set to be equal to (x0, y0-1), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbA, yNbA) is set to be equal to the position (xCurr, yCurr) and (xNbA, yNbA). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableA.

[0132] The assignment of ctxInc is specified as follows: -allowSplitBtVer+allowSplitBtHorallowS If plitTVer+allowSplitTTHor is greater than ctxInc is 4 It will be set to this. -Otherwise, allowSplitBtVer+allowSplitBtHo If r is less than allowSplitTVer + allowSplitTTHor ctxInc is set to equal 4. -Otherwise, the following applies: -The variables dA and dL are derived as follows: dA=cbWidth / (availableA?CbWidth[chType ][xNbA][yNbA]:1) (1563) dL=cbHeight / (availableL?CbHeight[chTy pe][xNbL][yNbL]:1) (1564) -If any of the following conditions are true, ctxInc will be set to equal to 0. -dA is equal to dL. -availableA is FALSE -availableL is FALSE -Otherwise, if dA is less than dL, ctxInc is set to equal 1. ru. Otherwise, ctxInc is set to equal to 0.

[0133] 2.9. Coefficient coding in conversion skip mode In the current VVC draft, residual coding is converted to skip levels of statistics and signals. To adapt to the characteristics, TS(Transform) is used compared to non-TS coefficient coding. Several modifications have been proposed regarding coefficient coding in Skip mode. .

[0134] 7.3.10.11 Residual Coding Syntax

[0135] [Table 22]

[0136] [Table 23]

[0137] [Table 24]

[0138] [Table 25]

[0139] [Table 26]

[0140] [Table 27]

[0141] [Table 28]

[0142] [Table 29]

[0143] 2.9.1. Context Modeling of the Coeff_sign_flag Deriving context index offset

[0144] Table 51 - ctxIdx for each initializationType in the initialization process and association of syntactic elements

[0145] [Table 30]

[0146] Table 125 - coeff_sign_flag's initValue of ctxInc ShiftIdx specifications

[0147] [Table 31]

[0148] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0149] [Table 32]

[0150] 9.3.4.2.10 Syntax element coeff_sign_f for conversion skip mode Derivation process of ctxInc in lag The inputs for this process are the color component index cIdx and the top-left sample of the current picture. For this, the brightness position (x0, y0) that defines the top-left sample of the current transformation block, This is the coefficient scan position (xC, yC). The output of this process is the variable ctxInc. The variables leftSign and aboveSign are derived as follows: leftSign=(xC==0)?0:CoeffSignLevel[xC-1 [yC] (1595) aboveSign=(yC==0)?0:CoeffSignLevel[xC] [yC-1] (1596) The variable ctxInc is derived as follows: -If leftSign is equal to 0 and aboveSign is equal to 0, or le If ftSign is equal to -aboveSign, the following applies: ctxInc=(BdpcmFlag[x0][y0][cIdx]==0?0:3 (1597) - Otherwise, leftSign is 0 or greater and aboveSign is 0 or greater. In that case, the following applies: ctxInc=(BdpcmFlag[x0][y0][cIdx]?1:4) ( 1598) -Otherwise, the following applies: ctxInc=(BdpcmFlag[x0][y0][cIdx]?2:5) ( 1599)

[0151] 3. Technical problems solved by the disclosed technical solutions and embodiments Context derivation process for AMVR precision index and split CU vertical flag The current design of the device has the following problems: 1. Syntactic elements that specify dividing a block horizontally or vertically (e.g., mtt_ Context modeling of split_cu_vertical_flag) is "al lowSplitBtVer+allowSplitBtHor” and “allowSpl It depends on the relationship between itTVer and "allowSplitTHor". However, BT Allowing split information and BT / TT vertically has a greater correlation than allowing / TT horizontally. Please take note of this. 2. In the current VVC, the AMVR precision index (e.g., amvr_prec The first bin of ision_idx) is whether the block is coded in IBC mode , coded in affine mode, or normal intermode (non-IBC, non Without considering whether it is coded in affine, context code in one context It is coded. Coding the AMVR precision index is not very efficient. This is not always the case. Also, coding for blocks that have a normal intermode. The second bin of amvr_precision_idx is amvr_precis Use a different context from the one used for the first bin of ion_idx. Multiple contexts used for coding syntactic elements are used for coding syntactic elements. If the frequency of use is low, it may not be optimal. 3. Coefficient coding offers advantages in coding screen content. While this can be achieved, coefficient coding and TS modes still have some limitations. It may have the disadvantages of [this]. a. Use bypass coding for the sign flag or context coding Whether it will be used is unclear in this case. i. Number of remaining allowed context-coded bins (RemCcbs The expression represented by is equal to 0. ii. The current block is coded in TS mode. iii.slice_ts_residual_coding_disabled _flag is false.

[0152] 4. List of technical solutions and embodiments The following items should be considered examples to illustrate general concepts. These items should not be interpreted in a narrow sense. Furthermore, these items can be combined in any way. They can be combined.

[0153] In this disclosure, the term AMVR refers to MV (Motion Vector) / MVD (MV For Difference) coding or MVP (MV Predictor) This invention represents a coding tool that uses adaptive motion vector differential resolution. This is not limited to the AMVR and block partitioning technologies described herein.

[0154] amvr_precision_idx is the allowable difference resolution of motion vectors. Represents the syntactic element that defines the index (or index). In one example, it is the VVC text. It may also be amvr_precision_idx as defined in the st. amvr_precision_idx is a bin that can contain one or more bins. The string may be binarized.

[0155] mtt_split_cu_vertical_flag is used to split coding blocks Represents a syntactic element that determines whether or not to split vertically. In one example, it is a VVC text. The fact that it is mtt_split_cu_vertical_flag defined in the script can.

[0156] Derivation of the amvr_precision_idx context 1. The first bin of the SE (Syntax Element) that indicates the use of AMVR (bin Other bins (e.g., amvr) (where the index is equal to 0) and / or other bins in the bin string (e.g., amvr Context for _precision_idx and / or amvr_flag) Modeling (for example, how to select the context) is based on the current block and Codified information of the and / or neighboring blocks (e.g., coded mo You may also depend on (D). a. In one example, the coded information is IBC, Affine AMVR, and Normal inter-mode (e.g., non-IBC, non-affine) modes, bi-predictive and / or single-predictive modes , of the block dimensions of the current block and / or the block dimensions of neighboring blocks It may have at least one bin (e.g., the first) based on coded information. You may use different contexts to code the bins. i. Or, one bin of the IBC-coded block (e.g., the first The bin is coded in a single context, as indicated by CtxM. ii. Alternatively, one bin of SE for affine-coded blocks. (For example, the first bin) is coded in a single context represented by CtxN. It will be done. iii. Alternatively, conventional interconducting (e.g., non-affine and non-IBC) ) One bin of SE for the coded block (e.g., the first bin) is C Coding is done in a single context represented by txP. iv. Alternatively, any of the three contexts CtxM, CtxN, and CtxP Each of these contexts is different from the other two. v. Alternatively, the three contexts CtxM, CtxN, and CtxP are different. Yes. vi. For example, one bin of SE (e.g., the first bin) is the field of the biprediction block. In total, it is coded in a single context represented by CtxBi, and single predictive coding. In the case of a block, it is coded within a single context indicated by CtxUni. 1) In one example, CtxBi is different from CtxUni.

[0157] b. In one example, two or more contexts are in the first bin of the SE binstring. It may also be used to code and / or other bins. i. In one example, X contexts can be used for the first bin. Here, X > 1. 1) In one example, X = 3. a) Alternatively, the selection of context is based on coded information (e.g.) For example, it depends on the mode mentioned above. 2) In one example, X = 2. a) Alternatively, the selection of context is based on coded information (e.g.) For example, one context for the modes mentioned above and for IBC coding blocks. It depends on other blocks (e.g., affine or normal intercoding) It depends on other contexts. b) Alternatively, the selection of context is based on coded information (e.g., above (Modes described above), IBC and one of the AMVR coded blocks Text, and one block of other blocks (e.g., normal encoding) It depends on the text. c. In one example, based on coded information (e.g., coding mode) And the first bin of the SE bin string (bin index equal to 0) and / or It is also possible to initialize different models in other bins with different initialization values. d. In one example, based on coded information (e.g., coding mode) And the first bin of the SE bin string (bin index equal to 0) and / or You may initialize different models in other bins with the same initialization values.

[0158] 2. The first and second bins of the bin string of amvr_precision_idx Instead of using various contexts for this purpose, use to code the second bin The context used is used to code the first bin of the bin string. It is suggested that this may be the same as one or more of the contexts. a. Alternatively, the second bin in the bin string is a normal inter (e.g., non-affine). Coding is performed only for (and non-IBC) coding blocks. b. Alternatively, the second bin in the bin string is a single context represented by CtxQ It is coded in T. c. Alternatively, the same context applies to amvr for IBC coding blocks. Used to code the first bin of _precision_idx, and is the normal amvr_precision_idx for an intercoded block It may also be used to code a second bin. d. Alternatively, the same context applies to affine-coded blocks. Used to code the first bin of amvr_precision_idx amvr_precision_ for normal intercoded blocks It may be used to code the second bin of idx. e. Alternatively, the same context in a normal intercoded block Used to code the first bin of amvr_precision_idx Used for the normal encoding block, amvr_precision_ It may be used to code the second bin of idx.

[0159] 3. amvr_pre for IBC coded blocks (indicated by CtxM) The first bin of cision_idx and the normal intercoded block (Ct The second bin of amvr_precision_idx for xQ (as shown) To achieve this, the same context may be used, such as CtxM = CtxQ. a. In one example, to code amvr_precision_idx Alternatively, you can use the X1 context (for example, X1=3). b. Alternatively, for non-IBC coded blocks, amvr_preci Various contexts for coding the first bin of the bin string sion_idx You may use strikes.

[0160] 4. amvr_precision_id for IBC coded blocks The first bin of x, amvr_precis for the affine-coded block The first bin of ion_idx, and amvr_p for normal encoding To code the first bin of recision_idx, CtxM = CtxN The same context may be used, as in =CtxP. a. In one example, to code amvr_precision_idx Alternatively, you can use the X2 (for example, X2=2) context. b. Alternatively, for non-IBC and non-affine coded blocks And, code the first bin of the bin string of amvr_precision_idx Different contexts may be used for this purpose.

[0161] 5. amvr_precision_id for IBC coded blocks amvr_p for the first bin of x and the normal intercoded block To code the first bin of recision_idx, CtxM=CtxP The same context may be used, as in the example above. a. In one example, to code amvr_precision_idx Alternatively, you can use an X3 context (for example, X3=3). b. Or, non-IBC and non-standard intercoded blocks (e.g.) For example, (coded in Affine AMVR), amvr_precision_ A different context is used to code the first bin in the idx bin string. It may also be used. c. Alternatively, the first of the strings in the bin of amvr_precision_idx A different context may be used to code bin 2.

[0162] 6. amvr_precision_id for IBC coded blocks The first bin of x, and amvr_pre for the affine-coded block. To code the first bin of cision_idx, CtxM = CtxN The same context may be used for sea urchin. 7. IBC coded blocks, affine coded blocks, and For regular coded blocks, amvr_precision_idx You can use the same context to code all the bins. a. In one example, a single context is amvr_precision_idx You can use it to code.

[0163] 8. Multiple contexts, IBC coded blocks, affine coding For encoded blocks and normally encoded blocks, amvr It may also be used to code the first bin of _precision_idx. A single context is different from the one used to code the first bin. It may be used to code a second bin. a. In one example, to code amvr_precision_idx Alternatively, you can use an X4 context (for example, X4=4). b. For example, CtxM! = CtxQ! = CtxN! = CtxP.

[0164] 9. A small amount of code used to code amvr_precision_idx At least one context is used to code amvr_flag. It is suggested that the context may be the same as the original. a. AMVR flags in affine coding blocks (e.g., amvr_flag) The same context used for coding ) is used for IBC coding. The first bin of amvr_precision_idx for the block, or / amvr_precision_id for affine-coded blocks The first bin of x, or / and a for a normal intercoded block For the first bin and / or the second bin of mvr_precision_idx You can stay. b. AMVR flags for non-affine coded blocks (e.g., amvr_ The same context for coding the flag is the same context for IBC coding. The first bin of amvr_precision_idx for the selected block, or amvr_precisio for affine-coded blocks The first bin of n_idx, or / and the regular intercoded block For the first bin and / or second bin of amvr_precision_idx It may be used for that purpose. Contextual modeling of the first bin of c.amvr_precision_idx This depends on whether affine mode is applied to the block. i. Alternatively, one context is affine-coded Used to code the first bin of the buck, and other contexts are non-affine. Coded blocks (for example, regular intercoded blocks and It is used for (including IBC-coded blocks). ii. Alternatively, the first context is affine-coded Used to code the first bin of the lock, and the second context is non-Af Intercoded blocks (for example, regular intercoded blocks) Used for (and IBC coded blocks). First context The script is for the coding of amvr_flag in the affine-coded block. The context used is the same as the first, and the second context is non-affine code. The context used for coding the amvr_flag of the block is the same as That is the case.

[0165] Derivation of the context for mtt_split_cu_vertical_flag Variables allowSplitBtVer, allowSplitBtHor, allow SplitTVer, allowSplitTVer, allowSplitTHor Vertical BT splitting, horizontal BT splitting, and vertical TT splitting are performed on the current coding tree node. The following indicates whether horizontal splitting is permitted: allowSplitBt Ver, allowSplitBtHor, allowSplitTtVer, allo The values ​​of wSplitTTVer and allowSplitTTHor are equal to 0 or 1. These are also often derived in Chapter 2.6. Current block width, current block height, The width of the left neighboring block, the height of the left neighboring block, the width of the above neighboring block, and Let the heights of the blocks in the vicinity above be represented by curW, curH, leftW, and leftH respectively. , aboveW, and aboveH. Let "numV" be a value equal to the sum of allowSplitBt Ver and allowSplitTtVer, and let "numH" be a value equal to the sum of allo wSplitBtHor and allowSplitTHor.

[0166] 10. Context modeling for the context modeling of the SE indicating block splitting information (e.g., mtt_split_cu_verti cal_flag) may depend on the number of allowed vertical splits (e.g., BT and TT) and the number of allowed horizontal splits (e.g., B T and TT). a. In one example, when vertical splitting is allowed more often than horizontal splitting (e.g., numV>numH), the first set of contexts is used. b. In one example, when vertical splitting is allowed less often than horizontal splitting (e.g., numV<numH), the second set of contexts is used. c. In one example, when the number of allowed vertical splits is the same as that of horizontal splits (e.g., numV=numH), the third set of contexts is used. d. Alternatively, furthermore, the contexts in the first / second / third sets are not all the same. e. Alternatively, furthermore, at least one of the contexts in the first / second / third sets is the same as the context included in another set. f. Alternatively, furthermore, the number of contexts in each of the three sets may depend on the set index. i. In one example, only one context is present in the first and / or second set. It is included. ii. In one example, multiple contexts are included in the third set. 1) Alternatively, the selection of a context from a third set is based on the upper and left neighbors. Block availability, and / or the block dimensions of the current block and the neighboring blocks It may also depend further on the dimensions of the block. g. One example is shown in Embodiment #4 of Chapter 5.4. h. One example is shown in Embodiment #5 of Chapter 5.5.

[0167] 11. SE (e.g., mtt_spl) indicates whether to split a single block vertically. it_cu_vertical_flag) indicates whether BT / TT splitting is allowed. or / and the width / height of the current block, or / and the width / height of neighboring blocks It is coded in N contexts that can be dependent on each other. i. In one example, what context is used to code the SE? This may depend on numV and numH. i. For example, it depends on whether numV is greater than numH. ii. For example, it depends on whether numV is less than numH. iii. For example, whether numV is equal to numH depends on the mean.

[0168] j. In one example, the SE binstring is whether BT / TT splitting is permitted. Based on this, context coding may be performed with N contexts. i. In one example, if numV is greater than numH, SE is determined by CtxA. It is coded in a context that is expressed as such. ii. In one example, if numV is less than numH, SE is determined by CtxB. It is coded in a context that is expressed as such. iii. In one example, if numV is equal to numH, then SE is by CtxC It is coded in a context that is expressed as such. iv. In one example, CtxA is equal to CtxB, and CtxB is equal to CtxC. (For example, CtxA=CtxB=CtxC), for example, CtxA=CtxB=CtxC= It is 0. v. In one example, CtxA!=CtxB!=CtxC, for example, CtxA =0, CtxB=1, CtxC=2.

[0169] k. In one example, the string of the SE bin is the width / height of the current block, and / ma Alternatively, context-coordinated N contexts are created based on the width / height of neighboring blocks. It may be done. i. In one example, a neighboring block is a neighboring block above, or / or to the left of You may refer to neighboring blocks. ii. In one example, SE is the width or height of the current block, and / or nearby. Coding in N contexts, which may depend on a function of the width or height of the adjacent block. This is expressed as dA = curW / aboveW and dL = curH / leftH. 1) In one example, SE is the left neighboring block or the upper neighboring block. If neither is available, or if dA is equal to dL, then it is represented by CtxD. It is coded in that context. 2) In one example, SE is represented by CtxE when dA is less than dL. It is coded in the context in which it is written. 3) In one example, SE is expressed by CtxF when dA is greater than dL. It is coded in the context in which it is done.

[0170] l. In one example, the string of the SE bin indicates whether BT / TT splitting is allowed. and / or the width / height of the current block, and / or the width / height of neighboring blocks Based on this, context coding may be performed with N contexts. i. In one example, if numV is greater than numH, SE is determined by CtxA. It is coded in a context that is expressed as such. ii. In one example, if numV is less than numH, SE is determined by CtxB. It is coded in a context that is expressed as such. iii. In one example, SE is such that numV is equal to numH (the left neighbor block) (Neither the block above or in the neighboring block is available, or dA is equal to dL) In this case, it is coded in the context indicated by CtxC. iv. In one example, SE is such that numV is equal to numH and dA is less than dL. In that case, it is coded in the context represented by CtxE. v. In one example, SE is such that numV is equal to numH and dA is greater than dL. If not, it is coded in the context represented by CtxF. In one example, N=5, CtxA!=CtxB!=CtxC!=CtxE!=Ct xF.

[0171] m. In one example, the string in the SE bin is whether the current block is on a picture boundary. Based on this, context coding may be performed with N contexts. n. In one example, the string of the SE bin is dual tree and / or local Based on which of the dual trees is applied, the context is defined in N contexts. It can also be coded. o. In one example, the string of SE bins is based on the color components of the sample being divided. Context coding may be performed using N contexts. p. In one example, the string of the SE bin is based on the width / height of the current block. Context coding may be performed using N contexts. i. In one example, the context augmentation means is set to a function of the width or height of the block. It may also be used as a fixed value.

[0172] 12. Split CU vertical flag (e.g., mtt_split_cu_vertical_ The flag can be coded in a single context.

[0173] Use bypass coding or context coding for the coefficient sign flag. How to

[0174] 13. The sign at the conversion coefficient level (e.g., the syntactic element coeff_sign_flag) Whether to use context coding or bypass coding depends on the situation. The number of remaining allowed context-coded bins (e.g., RemCcbs) and / or the type of transformation used in the current block (e.g., DCT2, DST7, (Or it depends on skipping the conversion.) a. In one example, in the process of convert skip residual coding, RemCcbs If it is greater than T1 (for example, T1=0), then coeff_sign_flag will contain Quist coding may be used. i. Also, in the conversion skip residual coding procedure, RemCcbs is T1 If it is equal to (for example, T1=0), bypass code to coeff_sign_flag You may use ing. b. In one example, in the processing of conversion skip residual coding, RemCcbs If T2 is greater than or equal to T2 (for example, T2=3), then coeff_sign_flag will contain Quiz coding may be used. i. Also, in the processing of conversion skip residual coding, RemCcbs is T2 If it is smaller (for example, T2=3), bypass coeff_sign_flag You may use coding.

[0175] 14. Remaining components in the third / remainder coefficient scan path of the conversion skip residual coding process Sentence elements (for example, syntactic elements abs_remainder and coeff_sign_f At the start of bypass coding for lag, the remaining permitted context code Apply a single operation to a variable that defines the number of bins drawn (e.g., RemCcbs). You may do so. c. In one example, this operation is performed by making RemCcbs equal to a certain value (for example, 0). You can set it to do so. d. In some embodiments, the operation is performed by at least one other than RemCcbs This could also involve setting RemCcbs to a value based on a variable or syntactic element. stomach. i. In one example, this operation subtracts 1 from RemCcbs. It can be set to be equal to something else.

[0176] 15. One example is shown in Embodiment #7 of Chapter 5.7. 16. One example is shown in Embodiment #8 of Chapter 5.8.

[0177] 17. The conversion coefficient level (e.g., coeff_sign_flag) is in bypass mode. Coded in either a standard coding style or in context coding mode. The number of remaining allowed context-coded bins (e.g., RemCc) You may also depend on bs). e. The number of remaining allowed context-coded bins (e.g., RemC If cbs) is less than N, the sign of the conversion coefficient level (e.g., coeff_sign) It is suggested to code _flag) in bypass mode. f. In one example, the code flag is bypass mode if RemCcbs <= N. It is coded in D. i. Alternatively, in one example, if RemCcbs > N, the sign flag is con Coding is done in text mode. g. In one example, if RemCcbs is equal to N, the sign flag is in bypass mode. It is coded as follows. i. Alternatively, in one example, if RemCcbs > N, the sign flag is Coding is done in IPASS mode. ii. In one example, N may be set to be equal to 4. 1) Alternatively, in one example, N may be set to be equal to 0. iii. In one example, RemCcbs decodes the remaining absolute value of the transformation coefficient level. Before doing so, it may be corrected to X, where X is equal to N.

[0178] h. In one example, if RemCcbs is less than N, the sign flag is in bypass mode. It will be coded. i. Alternatively, in one example, if RemCcbs>=N, the sign flag is Coding is done in text mode. ii. In one example, N may be set to be equal to 3. iii. In one example, RemCcbs decodes the remaining absolute value of the transformation coefficient level. Before doing so, X may be modified to be less than N. i. In one example, N is an integer and may be based on the following: i.SPS / VPS / PPS / Picture Header / Slice Header / Tile Group Signaled instructions in Header / LCU Line / LCU Group / LCU / CU ii. Block dimensions of the current block and / or nearby blocks iii. Block shape of the current block and / or nearby blocks iv. Displaying color formats (e.g., 4:2:0, 4:4:4) v. Whether a separate or dual coding tree structure is used vi. Slice type and / or picture type vii. Number of color components

[0179] j. Coding context used to code the transformation coefficient level (For example, coeff_sign_flag) is the rest of the allowed context code It may depend on the number of bins that have been binned (e.g., RemCcbs). k. The above examples include variations that include or do not include BDPCM coded blocks. This may also be applied to conversion blocks and / or conversion skip blocks.

[0180] general

[0181] 18. Whether and / or how to apply the methods disclosed above For example, sequence header / picture header / SPS / VPS / DPS / DCI / PP In S / APS / slice headers / tile group headers, sequence level / pic Signaling may be performed at the group level, slice level, or tile group level. 19. Whether and / or how the methods disclosed above are applied Ruka is coded information such as color format and single / dual tree splitting. You may rely on the report.

[0182] 5. Embodiments The following are some illustrative examples of some embodiments of the inventions summarized in Chapter 4 above. This is a form of application and can be applied to VVC specifications. Bold italics In this case, already added or The most relevant corrected parts are underlined, and some of the deleted parts are [[ This is shown using ]].

[0183] 5.1. Embodiment 1 9.3.2.2 Initialization process of context variables

[0184] Table 51 - ctxIdx for each initializationType in the initialization process and association of syntactic elements

[0185] [Table 33]

[0186] Table 89 - initValue of ctxIdx in amvr_precision_idx and the specifications of shiftIdx

[0187] [Table 34]

[0188] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0189] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0190] [Table 35]

[0191] [ka]

[0192] [Table 36]

[0193] In the example above, X!=Y, X!=Z, and Y!=Z. Alternatively, the following can be applied: 1) In one example, W is equal to X. 2) Alternatively, W is equal to Y. 3) Alternatively, W is equal to Z.

[0194] 5.2. Embodiment 2 9.3.2.2 Initialization process of context variables

[0195] Table 51 - ctxIdx for each initializationType in the initialization process and association of syntactic elements

[0196] [Table 37]

[0197] Table 89 - initValue of ctxIdx in amvr_precision_idx and the specifications of shiftIdx

[0198] [Table 38]

[0199] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0200] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0201] [Table 39]

[0202] [ka]

[0203] 5.3. Embodiment 3 9.3.2.2 Initialization process of context variables

[0204] Table 51 - ctxIdx for each initializationType in the initialization process and association of syntactic elements

[0205] [Table 40]

[0206] Table 89 - initValue of ctxIdx in amvr_precision_idx and the specifications of shiftIdx

[0207] [Table 41]

[0208] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0209] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0210] [Table 42]

[0211] 5.4. Embodiment 4 The working draft can be modified as follows: 9.3.4.2.3 Syntax element mtt_split_cu_vertical_flag The derivation process of ctxIncfor The input to this process is the current luminance block for the top-left sample of the current picture. The luminance sample in the upper left, the dual-tree channel type chType and the luminance sample The width and height of the current coding block cbWidth, cbHeight, and row The variable `allow`, derived in coding tree semantics in section 7.4.11.4 SplitBtVer, allowSplitBtHor, allowSplitTVe r, allowSplitTHor, allowSplitTHor and allowS It is plit.

[0212] The output of this process is ctxInc. The position (xNbL, yNbL) is set to be equal to (x0-1, y0), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbL, yNbL) is set to be equal to the position (xCurr, yCurr) and (xNbL, yNbL). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableL. The position (xNbA, yNbA) is set to be equal to (x0, y0-1), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbA, yNbA) is set to be equal to the position (xCurr, yCurr) and (xNbA, yNbA). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableA.

[0213] [ka]

[0214] 5.5. Embodiment 5 The working draft can be modified as follows: 9.3.4.2.3 Syntax element mtt_split_cu_vertical_flag The derivation process of ctxIncfor The input to this process is the current luminance block for the top-left sample of the current picture. The luminance sample in the upper left, the dual-tree channel type chType and the luminance sample The width and height of the current coding block cbWidth, cbHeight, and row The variable `allow`, derived in coding tree semantics in section 7.4.11.4 SplitBtVer, allowSplitBtHor, allowSplitTVe r, allowSplitTHor, allowSplitTHor and allowS It is plit. The output of this process is ctxInc. The position (xNbL, yNbL) is set to be equal to (x0-1, y0), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbL, yNbL) is set to be equal to the position (xCurr, yCurr) and (xNbL, yNbL). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableL. The position (xNbA, yNbA) is set to be equal to (x0, y0-1), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbA, yNbA) is set to be equal to the position (xCurr, yCurr) and (xNbA, yNbA). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableA.

[0215] [ka]

[0216] 5.6. Embodiment 6 The working draft can be modified as follows: 9.3.2.2 Initialization process of context variables

[0217] Table 51 - ctxI of each initializationType in the initialization process Association between dx and syntactic elements

[0218] [Table 43]

[0219] Table 61 - i of ctxInc in mtt_split_cu_vertical_flag nitValue and shiftIdx specifications

[0220] [Table 44]

[0221] 9.3.4.2 Derivation process for ctxTable, ctxIdx, and bypassFlag 9.3.4.2.1 General

[0222] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0223] [Table 45]

[0224] [[9.3.4.2.3 Syntax element mtt_split_cu_vertical_f Derivation process of ctxIncfor in lag The input to this process is the current luminance block for the top-left sample of the current picture. The luminance sample in the upper left, the dual-tree channel type chType and the luminance sample The width and height of the current coding block cbWidth, cbHeight, and row The variable `allow`, derived in coding tree semantics in section 7.4.11.4 SplitBtVer, allowSplitBtHor, allowSplitTVe r, allowSplitTHor, allowSplitTHor and allowS It is plit. The output of this process is ctxInc. The position (xNbL, yNbL) is set to be equal to (x0-1, y0), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbL, yNbL) is set to be equal to the position (xCurr, yCurr) and (xNbL, yNbL). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableL. The position (xNbA, yNbA) is set to be equal to (x0, y0-1), as in Section 6.4.4. The process for deriving the availability of the specified neighboring blocks is set to be equal to (x0, y0). The neighboring position (xCurr, yCurr), (xNbA, yNbA) is set to be equal to the position (xCurr, yCurr) and (xNbA, yNbA). Set (xNbY, yNbY), checkPredModeY set to FALSE The program is executed with cIdx as input, and the output is assigned to availableA.

[0225] The assignment of ctxInc is specified as follows: -allowSplitBtVer+allowSplitBtHorallowS If plitTVer+allowSplitTTHor is greater than ctxInc is 4 It will be set to this. -Otherwise, allowSplitBtVer+allowSplitBtHo If r is less than allowSplitTVer + allowSplitTTHor ctxInc is set to equal 4. -Otherwise, the following applies: -The variables dA and dL are derived as follows: dA=cbWidth / (availableA?CbWidth[chType ][xNbA][yNbA]:1) (1563) dL=cbHeight / (availableL?CbHeight[chTy pe][xNbL][yNbL]:1) (1564) -If any of the following conditions are true, ctxInc will be set to equal to 0. -dA is equal to dL. -availableA is FALSE. -availableL is FALSE. - Otherwise, if dA is less than dL, ctxInc is set to equal 1. It can be done. Otherwise, ctxInc will be set to 0.

[0226] 5.7. Embodiment 7 The working draft can be modified as follows: 7.3.10.11 Residual Coding Syntax

[0227] [Table 46]

[0228] [Table 47]

[0229] [Table 48]

[0230] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0231] [Table 49]

[0232] 5.8. Embodiment 8 The working draft can be modified as follows: 7.3.10.11 Residual Coding Syntax

[0233] [Table 50]

[0234] [Table 51]

[0235] [Table 52]

[0236] Table 131 - ctxInc to syntactic elements with context-coded bins allocation

[0237] [Table 53]

[0238] Figure 12 shows an exemplary image processing system in which various technologies disclosed herein may be implemented. This is a block diagram of 1200. Various implementation forms are components of system 1200. It may include part or all of the following. System 1200 receives video content Input 1202 may also be included. Video content should be in raw or uncompressed format. For example, it may be received as an 8 or 10-bit multi-component pixel value, and It may be received in a compressed or encoded format. Input 1202 is a network This may represent a bus interface, peripheral bus interface, or memory interface. Examples of network interfaces include Ethernet (registered trademark) and PON (Pass). Wired interfaces such as Wi-Fi Optical Network, and Wi-Fi (Registered trademark) or includes wireless interfaces such as cellular interfaces.

[0239] System 1200 implements various coding or encoding methods described herein. It may include a coding component 1204 that can be installed. Component 1204 codes the average bitrate of the video from input 1202. It can be reduced to the output of component 1204 and generate a coded representation of the video. Therefore, this coding technique is called video compression or video code conversion technique. There is. The output of coding component 1204 is by component 1206. As can be expressed, it may be stored in memory or transmitted via connected communication. Bitstream of video received, stored, or transmitted at input 1202 The (or coded) representation is used by component 1208, in the table Pixel values ​​or displayable images may be generated and transmitted to the display interface 1210. The process of generating video that the user can see from a bitstream representation is called video decompression. It is sometimes called "video development." Furthermore, specific video processing operations are called "coding" operations. Or we call them tools, but coding tools or operations are encoders and their corresponding The decoding tool or operation performed by the decoder reverses the result of the coding. This will be understood.

[0240] Examples of peripheral bus interfaces or display interfaces include USB (Universal (Serial Bus) or HDMI (High Definition Multi Including timedia Interface (registered trademark) or DisplayPort, etc. This is also good. An example of a storage interface is SATA (Serial Advanced). Technology Attachment), PCI, IDE interface, etc. Including. The technologies described herein include mobile phones, laptops, smartphones, and This includes various electronic devices such as other devices capable of performing digital data processing and / or image display. This may be implemented on the device.

[0241] Figure 13 is a block diagram of the image processing device 3600. The device 3600 is described herein. It may be used to implement one or more of the methods of implementation. The device 3600 is smart Phones, tablets, computers, IoT (Internet of Things) This may be implemented in a receiver or the like. The device 3600 includes one or more processors 3602, It may include one or more memory 3604 and video processing hardware 3606. One or more processors 3602 implement one or more methods described herein. It may be configured to install one or more memory 3604 as described herein. Used to store data and code used to implement methods and techniques. This may also be done. The video processing hardware 3606 may use the technology described herein in hardware It may also be used for implementation in a circuit.

[0242] Figure 15 shows an exemplary video coding system 100 that may utilize the techniques of this disclosure. This is a block diagram.

[0243] As shown in Figure 15, the video coding system 100 is connected to the source device 110, The source device 110 may include a destination device 120 and a coding video. It generates data and can also be called a video coding device. Destination device 1 20 decodes the encoded video data generated by the source device 110. It could be called a video decoding device.

[0244] The source device 110 includes a video source 112, a video encoder 114, and an input / output (I / O) Interface 116 may also be provided.

[0245] Video source 112 is a source such as a video capture device, video content provider An interface for receiving video data from a device, and / or generating video data. A computer graphics system, or a combination of these sources, for the purpose of May include. Video data may contain one or more pictures. Video encoder 114 encodes the video data from the video source 112 and generates a bitstream. A bitstream is a sequence of bits that form a coded representation of video data. It may include the bitstream, coded picture and association. It may include coded data. Coated pictures are coded pictures. This is an expression. The associated data is the sequence parameter set, picture parameter It may include tasets and other syntactic structures. The I / O interface 116 modulates and demodulates It may include a modem and / or transmitter. The encoded video data is transmitted over the network. The data is transmitted to the destination device 120 via the workpiece 130a and the I / O interface 116. It may be transmitted directly. The encoded video data will be accessed by the destination device 120. Therefore, it may be stored on the recording medium / server 130b.

[0246] The destination device 120 includes an I / O interface 126, a video decoder 124, and The display device 122 may also be included.

[0247] The I / O interface 126 may include a receiver and / or a modem. Interface 126 receives data from source device 110 or storage medium / server 130b. Encoded video data may be obtained. The video decoder 124 receives the encoded video data The data may be decoded. The display device 122 may display the decoded video data to the user. The display device 122 may be integrated with the destination device 120, or it may be an external display device. Even outside of the destination device 120 which is configured to connect via an interface, good.

[0248] The video encoder 114 and video decoder 124 use HEVC (High Efficiency). iency Video Coding) standard, VVVM (Versatile Vid Video compression standards such as the eo Coding standard and other current and / or further standards. It may be operated according to the rules.

[0249] Figure 16 is a block diagram showing an example of a video encoder 200. 0 may be the video encoder 114 in the system 100 shown in Figure 15.

[0250] The video encoder 200 is configured to perform any or all of the technologies of this disclosure. This is also acceptable. In the example in Figure 16, the video encoder 200 has multiple functional components. The techniques described herein are shared among the various components of the video encoder 200. It may be. In some examples, the processor may be any of the technologies described in this disclosure. It may be configured to do everything.

[0251] The functional components of the video encoder 200 are a splitting unit 201, a prediction unit 202, and a residual generation unit. Composition unit 207, conversion unit 208, quantization unit 209, inverse quantization unit 210, inverse conversion unit 211, reconstruction It may also include an element section 212, a buffer 213, and an entropy coding section 214, and prediction Unit 202 includes a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an input Includes a prediction unit 206.

[0252] In other examples, the video encoder 200 may have more, fewer, or different It may include functional components. In one example, the prediction unit 202 is IBC(Int The IBC section may include a Block Copy section. The IBC section may include at least one reference block. Kucha makes predictions in IBC mode, which is the picture in which the current video block is located. You may do so.

[0253] Furthermore, several components, such as the motion estimation unit 204 and the motion correction unit 205, They may be highly integrated, but for illustrative purposes, they are shown separately in the example in Figure 16. .

[0254] The division section 201 may divide the picture into one or more video blocks. The coder 200 and video decoder 300 support various video block sizes. good.

[0255] The mode selection unit 203, for example, based on the result of an error, selects an intra or intercom Select one of the coding modes and obtain the intra or interconnect The generated blocks are supplied to the residual generation unit 207 to generate residual block data, Reconstruction unit 21 to reconfigure the numbered block for use as a reference picture It may be supplied to 2. In some examples, the mode selection unit 203 provides an interprediction signal. and CIIP (Combination of You may also select the Intra and Inter Prediction mode. The mode selection unit 203, in the case of interpretation, determines the resolution of the motion vector for blocking. For example, you may choose subpixel or integer pixel precision.

[0256] To perform interpretation on the current video block, the motion estimation unit 204 performs Compare one or more reference frames from frame 213 with the current video block. This may generate motion information for the current video block. The motion compensation unit 205, The movement of pictures from buffer 213 other than the picture associated with the current video block. Based on the information and decoded samples, predict the video block for the current video block. You may determine if it is a block.

[0257] The motion estimation unit 204 and the motion compensation unit 205 assume that the current video block is an I-slice. Alternatively, based on whether it is a P-slice or a B-slice, for example, the current video is Different actions may be taken with respect to the lock.

[0258] In some examples, the motion estimation unit 204 predicts a unidirectional motion for the current video block. The motion estimation unit 204 performs a measurement and then calculates the reference video block for the current video block. The reference picture in List 0 or List 1 may be searched. Then the motion estimation unit 204, This shows the reference image block and the spatial displacement between the current image block and the reference image block. A reference index that indicates the reference picture in List 0 or List 1, including the motion vector. A reference index may be generated. The motion estimation unit 204 uses a reference index and a prediction direction indicator. The t and motion vector may be output as motion information for the current video block. The compensation unit 205, based on the reference video block indicated by the motion information of the current video block, Predictive video blocks may be generated for the existing blocks.

[0259] In other examples, the motion estimation unit 204 may also predict the current video block in both directions. The motion estimation unit 204, for the reference video block relative to the current video block, uses List 0 You can search for a reference picture from, or another reference picture block for the current picture block. Regarding the lock, you may also search for the reference picture in List 1. Then, the motion estimation unit 204 shows the reference pictures in List 0 and List 1, which include the reference video block. This shows the reference index and the spatial displacement between the reference image block and the current image block. Motion vectors may be generated. The motion estimation unit 204 references the current video block. The DEX and motion vectors may be output as motion information for the current video block. The motion compensation unit 205, based on the motion information of the current video block, determines the reference video block. Alternatively, a predicted video block may be generated for the current video block.

[0260] In some cases, the motion estimation unit 204 provides motion information for the decoder's decoding process. You may output the full set.

[0261] In some cases, the motion estimation unit 204 uses the full set of motion information for the current video. Output is not necessary. Rather, the motion estimation unit 204 refers to the motion information of another video block. The motion information of the current video block may be notified as a signal. For example, motion estimation unit 204 This is because the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks. It may be determined that this is the case.

[0262] In one example, the motion estimation unit 204 uses the syntactic structure associated with the current video block. In this context, the current video block has the same motion information as another video block. The values ​​shown in Code 300 may also be shown.

[0263] In other examples, the motion estimation unit 204 uses the syntactic structure associated with the current video block. In this case, another video block and MVD (Motion Vector Differential) It may be possible to identify nce). The motion vector difference is the motion vector of the current video block. This shows the difference between the motion vector of the shown video block and the actual video. The video decoder 300 is shown Using the motion vector and motion vector difference of the selected video block, the current video block The motion vector may be determined.

[0264] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signal notification techniques that may be implemented by the video encoder 200 are AM VP (Advanced Motion Vector Prediction) and Includes merge mode signal notification.

[0265] The intra prediction unit 206 may perform intra prediction for the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, The prediction unit 206 uses decoded samples from other video blocks in the same picture. Then, predictive data may be generated for the current video block. The prediction data may include predicted video blocks and various syntactic elements.

[0266] The residual generation unit 207 generates a predicted image block from the current image block. By subtracting the lock (e.g., indicated by a minus sign), the current Residual data may be generated for the video block. The current residual data for the video block is , the residual video block corresponding to different sample components of the sample in the current video block It may include "ku".

[0267] In other examples, for instance, in skip mode, residuals relative to the current video block Data is not required, and the residual generation unit 207 does not need to perform a subtraction operation.

[0268] The conversion processing unit 208 assigns one residual video block to the current video block. This involves applying multiple transformations to one or more transformations for the current video block. You may generate a coefficient image block.

[0269] The conversion processing unit 208 generates a conversion coefficient video block associated with the current video block. After that, the quantization unit 209 performs one or more quantizations associated with the current image block. Based on the parameter (QP: Quantization Parameter) value, The transformation coefficients associated with the existing video blocks may be quantized.

[0270] The inverse quantization unit 210 and the inverse conversion unit 211 perform inverse quantization and inverse conversion on the conversion coefficient image block. You may apply each transformation and reconstruct the residual image block from the transformation coefficient image block. The reconstruction unit 212 processes one or more predicted video blocks generated by the prediction unit 202. The reconstructed residual video block is added to the corresponding sample and stored in buffer 213. A reconfigured video block associated with the current block may be generated for this purpose. .

[0271] After the reconstruction unit 212 reconstructs the video block, the video blocking in the video block Loop filtering may be performed to reduce artifacts.

[0272] The entropy coding unit 214 is configured to separate the other functional components of the video encoder 200 from the other functional components of the video encoder 200. Data may be received. When the entropy coding unit 214 receives data, The entropy coding unit 214 performs one or more entropy coding operations, and the entropy Generates encoded data and a bitstream containing entropy-encoded data. You may output this.

[0273] Figure 17 is a block diagram showing an example of a video decoder 300. 0 may be the video decoder 114 in the system 100 shown in Figure 15.

[0274] Even if the video decoder 300 is configured to perform any or all of the technologies of this disclosure, Good. In the example in Figure 17, the video decoder 300 comprises multiple functional components. The techniques described herein are shared among the various components of the video decoder 300. In some examples, the processor may be any of the technologies described herein or It can be configured to do everything.

[0275] In the example shown in Figure 17, the video decoder 300 includes an entropy decoding unit 301 and a motion correction unit. 302, intra prediction unit 303, inverse quantization unit 304, inverse transformation unit 305, and reconstruction unit 3 06, and a buffer 307 are provided. The video decoder 300 is, in some examples, video Even if you perform a decoding path that is almost the reverse of the encoding path described for encoder 200 (Figure 16), good.

[0276] The entropy decoding unit 301 extracts the encoded bitstream. The bitstream is entropy-coded video data (for example, video data It may include an encoded block of . The entropy decoding unit 301 is entropy - Decode the coded video data, and from the entropy-decoded video data, The compensation unit 302 controls the motion vector, motion vector accuracy, and reference picture list index. The motion compensation unit 302 may determine motion information including, and other motion information. This information can also be determined by performing AMVP and merge mode.

[0277] The motion compensation unit 302 may generate motion-compensated blocks, and in some cases, compensate Interpolation is performed based on the inter-filter. The syntax element includes the interpolation used for sub-pixel precision. It may include an identifier for filtering.

[0278] The motion compensation unit 302 is used by the video encoder 200 during the encoding of the video block. An interpolation filter is used to calculate interpolation values ​​for sub-integer pixels of the reference block. It is also possible that the motion compensation unit 302 adjusts the video encoder 200 based on the received syntax information. Determine the interpolation filter to be used and use the interpolation filter to generate the prediction block. You may do so.

[0279] The motion compensation unit 302 processes the frames and / or slides of the encoded video sequence. Syntax information for determining the size of the block used to encode the chair, How each macroblock of a picture in an encoded video sequence is divided. The segmentation information that describes the segmentation, the mode that indicates how each segment is encoded, and each segment One or more reference frames (and reference frame rem) for an encoded block (Stories), and several other pieces of information for decoding the encoded video sequence. You may use ka.

[0280] The intra prediction unit 303, for example, receives an intra prediction model in the bitstream. You may use a code to form a predicted block from spatially neighboring blocks. Inverse quantization The part 303 is provided to the bitstream and decoded by the entropy decoding part 301. The quantized image block coefficients are then inversely quantized (for example, inverse quantization). Inverse Transform Unit 303 This applies the inverse transform.

[0281] The reconstruction unit 306 combines the residual block with the motion compensation unit 202 or the intra prediction unit 303. Therefore, the generated corresponding predicted block may be summed up to form the decoded block. Yes. If desired, the decrypted blocks can be processed to remove block artifacts. A deblocking filter may be applied for filtering. Decoded video The block is stored in buffer 307, and buffer 307 is used for subsequent motion compensation / intra It provides a reference block for prediction and is decoded for display on a display device. Generate an image.

[0282] Next, we will list some preferred solutions in several embodiments.

[0283] The following solutions illustrate exemplary embodiments of the techniques discussed in the previous chapter (e.g., item 1).

[0284] 1. The video processing method (for example, method 1400 shown in Figure 14) is a video block of video. This includes performing a conversion between the coded representation of the video and the coded The representation conforms to formatting rules, and the conversion is based on motion vectors or video blocks. The representation of the motion vector difference or motion vector predictor is coded using adaptive resolution. AMVR (Adaptive Motion Vector) is represented in the expressed form. The difference is based on the Resolution tool and formatting. The rules are coded information of a video block or a block adjacent to a video block. Context modeling that relies on adaptive resolution in coded representations This stipulates that the use of degrees should be expressed.

[0285] 2. The coded information includes using intrablock copy mode. The method described in Solution 1.

[0286] 3. Codified information is available in affine AMVR mode or non-affine and non-affine modes. Solution 1 includes the use of interblock copy mode, dual prediction, or single prediction mode. Method of loading.

[0287] 4. The coded information includes the dimensions of the video block, one of solutions 1 to 3. The method used.

[0288] The following solutions illustrate exemplary embodiments of the techniques discussed in the previous chapter (for example, item 2).

[0289] 5. The method of video processing is between the video blocks and the coded representation of the video. This includes performing conversions, and the coded representations conform to formatting rules, and the conversions are performed. This is a motion vector, motion vector difference, or motion vector predictor for the video block. The representation of this is AMVR (Adap tive motion vector difference resolution ) This is done based on the tools, and the format rules are refined and used by the AMVR tool. Used to code the first and second bins for the degree index. Through context modeling, adaptive resolution is used in coded representations. This defines the method for expressing "use".

[0290] 6. The formatting rules stipulate that the first bin should be used, and the second bin should be the same con The method described in Solution 5, which is coded using text.

[0291] 7. Formatting rules are non-AFF to represent video blocks with coded representations. When intrablock and non-intrablock copy modes are used, and only in that case, Solution 5 specifies that the two bins should be coded using the coded representation. The method.

[0292] The following solutions are exemplary embodiments of the techniques discussed in the previous chapter (for example, items 3 through 8). This indicates.

[0293] 8. The video processing method includes one or more video pictures containing multiple video blocks. This includes performing conversions between video and coded representations of video, and coding The displayed expression is AMVR (Adaptive Motion) of one or more video blocks. Regarding the coding of the vector difference (resolution) The format rules for signaling the information to be transmitted are as follows: AMVR accuracy of the first video block coded using coding mode The INDEX bin and the second image coded using the second coding mode The AMVR precision index bins of the image block are coded using the same context. It stipulates that it will be done.

[0294] 9. The first coding mode corresponds to intrablock copy mode, and the second code The encoding mode supports intercoding, and the first video block bin is A The first bin of the MVR accuracy index and the second bin of the video block are the corresponding A The method described in Solution 8, which is the second bin of the MVR precision index.

[0295] 10. The first coding mode corresponds to intrablock copy mode, and the second is The coding mode supports intercoding, and the bin of the first video block is, The first bin of the AMVR precision index and the second bin of the image block correspond to The first bin of the AMVR precision index, as described in Solution 8.

[0296] 11. The first coding mode corresponds to intrablock copy mode, and the second is The coding mode supports intercoding, and the bin of the first video block is, The first bin of the AMVR precision index and the second bin of the image block correspond to The first bin of the AMVR precision index, as described in Solution 8.

[0297] 12. The first coding mode corresponds to intrablock copy mode, and the second is The coding mode supports affine coding, and the bin of the first video block is, The first bin of the AMVR precision index and the second bin of the image block correspond to The first bin of the AMVR precision index, as described in Solution 8.

[0298] 13. Formatting rules include intrablock copy mode, affine mode and A first video block, a second video block, and have an intercoding mode. Use the same context to code all the bins in the third video block. The method of Solution 8 further specifies what to do.

[0299] 14. Formatting rules include intrablock copy mode, affine mode, and A first video block, a second video block, and an interconnect mode. A different context for coding the first bin of the third video block, and The first video block, the second video block, and the second bin of the third video block Solution 8 further specifies that the same context should be used for coding. The method.

[0300] The following solutions illustrate exemplary embodiments of the techniques discussed in the previous chapter (for example, item 9).

[0301] 15. The format rules must be used to code the precision value. One context is used to code flags that indicate the applicability of the AMVR tool. Solutions 1 through 14 further specify that the context used is the same as that used A method using one of the following methods.

[0302] The following solutions are exemplary embodiments of the techniques discussed in the previous chapter (e.g., items 10 and 11). show.

[0303] 16. The method of video processing is between the video blocks and the coded representation of the video. This includes performing a conversion, and the video block is one or more vertical and / or one Alternatively, it can be divided into multiple horizontal sections, and the coded representation will show the division information of the video block. Adhere to formatting rules that define context-based coding.

[0304] 17. Formatting rules are contextual modeling of syntactic elements that indicate segmentation information. The number of vertical divisions permitted for an image block and / or permitted for the image block A method of solution 16 that specifies that it depends on the number of horizontal divisions performed.

[0305] 18. Format rules specify the number of vertical divisions allowed for a video block. Solution 17 states that it depends on whether it is greater than the number of horizontal divisions allowed for the block. Method of loading.

[0306] 19. The formatting rules use N contexts to code the syntactic elements. It is stipulated that N shall be used based on the dimensions of the video block or the dimensions of a neighboring video block. The method described in any of solutions 17 to 18.

[0307] The following solutions illustrate exemplary embodiments of the techniques discussed in the previous chapter (e.g., item 12).

[0308] 20. The formatting rules include a flag indicating the applicability of vertical splitting to video blocks. Solution 16 stipulates the use of a single context for writing. The method described in any of the 19 methods.

[0309] The following solutions are exemplary embodiments of the techniques discussed in the previous chapter (e.g., items 13 and 17). show.

[0310] 21. The method of video processing is between the video blocks and the coded representation of the video. This includes performing the conversion, and the coded expression conforms to the formatting rules. The formatting rules use context coding or batter to represent the sign of the conversion coefficient. Coding conditions used to determine which IPA coding to use This defines...

[0311] 22. Coding conditions are the remaining allowed context coded bins The method described in Solution 21, corresponding to the number.

[0312] 23. Coding conditions are used for conversion between video blocks and coded representations. A method of solution 21 corresponding to the type of conversion used.

[0313] The following solutions illustrate exemplary embodiments of the techniques discussed in the previous chapter (for example, item 14).

[0314] 24. The video processing method involves the video blocks and the coded representation of the video. This includes performing conversions between them, and the coded representation conforms to formatting rules. The formatting rules are applied to the third or residual coefficient scanning pass of the conversion skip residual coding process. At the start of bypass coding of the remaining syntactic elements in, the remaining permitted context This specifies that the operation is applied to the variable that defines the number of stocoded bins.

[0315] 25. The conversion involves encoding the video into a coded representation, from Solution 1. The method described in any one of the 24 methods.

[0316] 26. Conversion is the decoding of the representation coded to generate the pixel values ​​of the image. A method that includes any one of solutions 1 through 24.

[0317] 27. Professionals configured to implement one or more of the methods described in Solutions 1 through 26 A video decoding device equipped with a sesser.

[0318] 28. A plan configured to implement one or more of the methods described in Solutions 1 through 26. A video encoding device equipped with a decoder.

[0319] 29. A computer program product in which computer code is stored, When the code is executed by the processor, the processor will choose one of solutions 1 through 26. A computer program product that implements one of the methods described above.

[0320] 30. The method, apparatus, or system described herein.

[0321] Figure 18 shows an image processing method 1800 according to one or more embodiments of the present technology. This is a flowchart. Method 1800 is a flowchart in which, in operation 1810, the image is processed according to the rules. This includes performing conversions between blocks and video bitstreams. The conversion is AMV. R(Adaptive Motion Vector Difference Reso The rules are based on the tool and use of block coding modes. Based on this, the first syntax defines the resolution of the motion vector difference related to AMVR shift. This specifies how to derive the selection of context for the first bin in the string of element bins. ru.

[0322] In some embodiments, a block is a coding unit. In the construction configuration, the coding mode of the block is affine interface mode, intra It is either block copy mode or normal intermode. Several implementations In terms of form, multiple contexts corresponding to different coding modes are in the first bin. It may be applied. In some embodiments, multiple contexts are three contexts Includes a st. In some embodiments, each coding mode is a single context It corresponds to.

[0323] In some embodiments, the IBC mode is used to code blocks. In total, the first context for the first bin is assigned to the first value, and the IBC mode is set If you do not use and code the block, it will be at least different from the first context. One context is the first bit for at least one intercoding mode Applicable to n. In some embodiments, a second context relative to a first bin The block is coded using affine intermode, Assigned to a value of 2, the block is a normal intermode which is a non-affine intermode. If coding is done using , the third context for the first bin is the It is assigned the value 3. The second and third values ​​are different values.

[0324] In some embodiments, the context of the second bin in the bin string is the first bin It is the same as one or more contexts used in. In some embodiments, The second bin in the bin string is coded with a single context value. In the implementation configuration, the first block is coded using IBC mode. The first bin of the string and the normal intermode which is a non-affine intermode are used The second bin of the bin string for the second block coded using the same content Kist is selected.

[0325] In some embodiments, using IBC mode or affine intermode When coding a block, the bin string is composed of the first bin. When coding blocks using the normal intermode, which is an intermode, In addition, the string of bins further comprises a second bin. In some embodiments, the first At least one of the multiple contexts applied to the bin has a resolution of motion vector difference. Whether it is 1 / 4 of the luminance sample or determined by the first syntactic element It is the same as at least one context selected for the second syntactic element that defines it. In some embodiments, blocks are coded using IBC mode. In this case, the context for the first syntactic element that defines the resolution of the motion vector difference is, The resolution of the vector difference is 1 / 4 of the luminance samples, or by the first syntactic element The same context as selected for the second syntactic element that determines whether or not it is specified. In some embodiments, IBC mode or affine mode is used. If locking is not coded, the first syntax defines the resolution of the motion vector difference. The context for the element is that the resolution of the motion vector difference is 1 / 4 of the luminance samples. or for a second syntactic element that determines whether it is specified by the first syntactic element The context selected is the same as the context selected. In some embodiments, within the bin string The value of CtxM is assigned to the context for the first bin, and has the bin string. The second bin context is assigned the value CtxQ, where CtxM = Ct xQ is the value. In some embodiments, the second bin contains a different coagulation compared to the first bin. The text is selected.

[0326] In some embodiments, when a block is coded in IBC mode The first context for the first bin, and the block coordinates using affine mode. The second context for the first bin when it is being used, and the block is in IBC mode The third bin for the first bin when coding without using either affine mode The text is the same. In some embodiments, the block is coded in IBC mode. The first context for the first bin when it is being digitized, and the block is IBC mode The second code for the first bin when coding without using either D or affine mode. The text is the same. In some embodiments, affine mode is used. When coding a buck, the third context for the first bin is the first context This differs from the first and second contexts. In some embodiments, the block is IB The first context for the first bin when coding in C mode, and The second context for the first bin when the buck is coded in affine mode The same. In some embodiments, the block is coded in IBC mode. The context for all bins in the bin string when it is used, and the block is after For all bins in a bin string when coding using bin mode The context and the block are coded without using either IBC mode or affine mode. In this case, the context is the same for all bins within the bin string.

[0327] In an embodiment of the present invention, the AMVR tool blocks the resolution of the difference in motion vectors. It is a coding tool that adaptively adjusts at the individual unit level.

[0328] Figure 19 is a flowchart showing an image processing method 1900 according to one or more embodiments of the present invention. Method 1900, in operation 1910, the current block of the image and This includes performing conversions between video bitstreams and other formats. The rule is to divide blocks horizontally. The context code for the syntactic element that defines whether to split in a direction or vertically. Select the divisions based on the allowed number of vertical and horizontal divisions. This stipulates that the number of allowed vertical partitions is limited by the number of allowed binary partitions. This includes the number of direct divisions and the number of permitted ternary vertical divisions. The number of horizontal partitions is the number of allowed binary horizontal partitions and the number of allowed ternary horizontal partitions. Includes.

[0329] In some embodiments, a block is a coding unit. In the implementation configuration, the content is divided into two parts: the number of allowed vertical divisions and the number of allowed horizontal divisions. Selected by comparison. In some embodiments, the context is permitted. If the number of vertical divisions is greater than the number of horizontal divisions allowed, the first set of contexts Selected from. In some embodiments, the context is the allowed vertical split. If the number is less than the number of allowed horizontal divisions, a second set of contexts is selected. In some embodiments, a first set of contexts and a second set of contexts Each set of elements contains a single context. In some embodiments, the first The value of a single context in a set of contexts is 4. In some embodiments In this case, the value of a single context in the second set of contexts is 3.

[0330] In some embodiments, the context is such that the number of allowed vertical divisions is permitted. If equal to the number of horizontal divisions, a third set of contexts is selected. In the implementation form, the third set of contexts includes multiple contexts. In this embodiment, the set of third contexts includes a third context having a value of 0. This includes a fourth context having a value of 1, and a fifth context having a value of 2. .

[0331] In some embodiments, selection of a context from a third set of contexts. (1) The first neighboring block located above the current block and the block to the left of the current block (2) Availability of a second neighboring block to which it is located, (3) Dimensions of the current block, and / or (3) is based on the dimensions of the neighboring blocks. In some embodiments, The text is (1) the first neighboring block located above the current block or the current block If any of the second neighboring blocks to the left of the lock are unavailable, or ( 2) If dA is equal to dL, it is assigned to the value of CtxD, and dA is above the current block. This represents the width of the current block divided by the width of the first neighboring block located at , and dL is currently The height of the current block is obtained by dividing it by the height of the second neighboring block located to the left of the current block. Represents. In some embodiments, the context is such that if dA is less than dL, Ct The value of xE is assigned, where dA is the first neighboring block located above the current block. This represents the width of the current block divided by the width of the lock, and dL is located to the left of the current block. Represents the height of the current block divided by the height of the second neighboring block. Several embodiments In this context, if dA is greater than dL, the context is assigned to the value of CtxF. Here, dA is the current block divided by the width of the first neighboring block located above the current block. This represents the width of the block, and dL is the height of the second neighboring block located to the left of the current block. This represents the current block height divided by s.

[0332] In some embodiments, a set of first contexts, a set of second contexts The contexts in the first and third set of contexts are different from each other.

[0333] Figure 20 is a flowchart showing an image processing method 2000 according to one or more embodiments of the present invention. Method 2000, in operation 2010, the current block of the image and This includes performing conversions between video bitstreams and other formats. The rules are based on the conversion coefficient level. Use or bypass context coding for syntactic elements that define the sign. Whether to use coding or not, the remaining allowed coding used for the current block This specifies that it is based on the number of text-coded bins or the type of transformation.

[0334] In some embodiments, the remaining context-coded bins are allowed. If the number is greater than or equal to the threshold, perform the conversion skip residual coding process for the current block. In this, context coding is used for syntactic elements. Several implementation forms In this state, if the number of remaining permitted context-coded bins is less than the threshold If not, in the conversion skip residual coding process for the current block, the syntax element Bypass coding is performed for this. In some embodiments, the threshold is 0 or 3 That is the case.

[0335] In some embodiments, the remaining context-coded bins are allowed. If the number of elements is less than or equal to N, bypass coding is used for the syntactic elements. In the implementation configuration, if the number of remaining permitted context-coded bins is N or greater In some cases, context coding is used for syntactic elements. In some embodiments, And the number of remaining allowed context-coded bins is the number of transformations in the transformation. Before processing the remaining absolute values ​​of the coefficient levels, they are corrected to be less than or equal to N. In some embodiments... In this configuration, N is 0, 3, or 4. In some embodiments, N is the current block It is an integer based on the characteristics of the block. In some embodiments, the characteristics of the current block are Sequence parameter set, video parameter set, picture parameter set, pic Cha header, slice header, tile group header, large coding unit row , a group of large coding units, a large coding unit or code Includes instructions in the ng unit. In some embodiments, the characteristics of the current block This includes the dimensions or shape of the current block or blocks in the vicinity of the current block. In some embodiments, the features of the current block indicate the color format of the image. This includes. In some embodiments, the features of the current block are separate for the transformation, or Includes instructions indicating whether a dual coding tree structure is used. Several embodiments In this context, the characteristics of the current block include slice type or picture type. In some embodiments, the features of the current block include the number of color components in the image.

[0336] In some embodiments, context coding of syntactic elements is permitted for the rest. Based on the number of context-coded bins. In some embodiments, The variable that specifies the number of remaining allowed context-coded bins is the conversion skill. The third or remaining coefficient of the residual coding process, the remaining syntax in the campus It is corrected at the start of raw bypass coding. In some embodiments, the variable is , set to a fixed value of 0. In some embodiments, the variable is decremented by 1. In some embodiments, the current block is a block-based differential pulse. A conversion block or conversion block that may or may not contain a code-modulated coded block. Includes ticket blocks.

[0337] In some embodiments, whether or not to apply this method depends on the sequence level, pic It is shown at the group level, slice level, or tile group level. Several implementations In this state, the instructions are sequence header, picture header, sequence parameter set , video parameter set, decoder parameter set, decoding capability information, picture parameter Included in tasets, adaptive parameter sets, slice headers, or tile group headers In some embodiments, whether or not to apply this method, or how to apply it, Whether or not to do so is based on the coded information in the video.

[0338] In some embodiments, the conversion includes encoding the video into a bitstream. In some embodiments, the conversion involves decoding the video from the bitstream. include.

[0339] In this specification, the term "video processing" means video encoding, video decoding, video compression, or It can refer to the rendering of the video. For example, a video compression algorithm is a corresponding method based on the pixel representation of the video. This may be applied during conversion to a bitstream representation, or vice versa. Current video The bitstream representation of a block is, for example, defined by the syntax, This may correspond to bits that are spread to the same or different locations within the stream. For example. For example, one macroblock is, in terms of the transformed and coded error residual values, The bitstream uses the header and other fields to sign It may be converted. Furthermore, during conversion, the decoder determines as described in the above solution. Based on the definition, we have the knowledge that some fields may or may not exist. The bitstream may then be parsed. Similarly, the encoder may perform a specific syntax fee. Determine whether `rud` should be included or not, and the syntax field To include or exclude from a coded expression. This may generate a correspondingly coded representation.

[0340] Disclosed and other solutions, examples, embodiments, and modules described herein. The implementation of the functional operation includes the structures and their structural equivalents disclosed herein. Therefore, digital electronic circuits, or computer software, firmware, or This may be done using software, or in one or more combinations thereof. Good. The disclosed and other embodiments are one or more computer programs Because it is implemented by a product, for example, a data processing device, or a data processing device To control its operation, a computer program encoded on a computer-readable medium This can be implemented as one or more modules of a set of instructions. The medium is a machine-readable memory device, a machine-readable memory substrate, a memory device, and a machine-readable propagating signal. This may be a composition of substances that produce, or one or more combinations thereof. The term "data processing device" is used, for example, to refer to a programmable processor, a computer, and or multiple processors, or computers, all for processing data This includes apparatus, devices, and machines. This apparatus includes hardware as well as the computer Code that creates the execution environment for a program, such as processor firmware and protocols. Stack, database management system, operating system, or one of these It can include codes that make up multiple combinations. The propagated signal is artificially generated. A signal, such as an electrical, optical, or electromagnetic signal generated by a machine, is received by a suitable receiving device. It is generated to encode information for transmission.

[0341] Computer programs (programs, software, software applications) A script (also called code) is a compiled language or an interpreted language. It can be written in any form of programming language, including languages, and it is also a st A module suitable for use as an arron program or in a computing environment. Developed in any form, including as a route, component, subroutine, or other unit. It can be opened. Computer programs do not necessarily have file systems. It may not support files. A program may hold other programs or data. A portion of a file (for example, one or more scripts stored in a markup language document) ) may be recorded in a separate file, or it may be stored in a single file dedicated to that program. Okay, multiple adjustment files (for example, one or more modules, subprograms, etc.) It may also be stored in a file that stores part of the code. The application can be deployed to run on one computer, or on one site Located in one place, or distributed across multiple sites and interconnected by a communication network. It can be deployed to run on multiple successive computers.

[0342] The processing and logic flows described herein operate on input data and output Execute one or more computer programs to perform a function by generating This can be done by one or more programmable processors. Processing and Logic Flow also provides logic circuits for specific applications, such as FPGAs (Field Pro). Grammable Gate Array) or ASIC (Application This can be done by a Specific Integrated Circuit. The device can also be implemented as a special-purpose logic circuit.

[0343] Processors suitable for running computer programs include, for example, general-purpose and dedicated microphones. Both of the loprocessors, and any one or more of any type of digital computer Includes the processor. Generally, the processor has read-only memory or random access It receives instructions and data from either or all of the following: an essential function of a computer. A system consists of a processor for executing instructions and one or more memory chips for storing instructions and data. It is a memory device. Generally, a computer has one or more memory devices to store data. Mass storage devices, for example, may include magnetic, magneto-optical disks, or optical disks. or receive data from these mass storage devices, or send data to them They may be coupled in a way that allows them to transfer. However, the computer It does not need to have a device that stores computer program instructions and data. Suitable computer-readable media include all forms of non-volatile memory, media, and memos. Includes redevices such as EPROM, EEPROM, flash memory, and magnetic devices. disks, for example, internal hard disks or removable disks, magneto-optical disks, and Includes semiconductor storage devices such as CD-ROM and DVD-ROM discs. Processor and The memory may be complemented by purpose-specific logic circuits, or purpose-specific logic It may be incorporated into a circuit.

[0344] This patent specification contains many features, but these do not constitute the scope of any subject matter or claims. It should not be interpreted as limiting the scope, but rather as being specific to a particular embodiment of a particular technology. This should be interpreted as a description of possible features. In this patent document, a different embodiment The specific features described in the context can be combined and implemented in one example. Good. Conversely, various features described in the context of one example may appear in multiple embodiments. These may be implemented separately or in any appropriate subcombination. Furthermore, the features are: As described above, they act in specific combinations, and were initially claimed to do so. It may be, however, one or more features from the claimed combination may, in some cases, be combined It can be extracted from the combination, and the asserted combination is a subcombination or This may be directed towards variations of subcombinations.

[0345] Similarly, the operation is shown in a specific order in the drawings, which is to achieve the desired result. In order to do so, these actions must be performed in a specific or sequential order as indicated. It should not be understood as requiring all indicated actions to be performed. Furthermore, the components of the various systems in the embodiments described in this patent specification It should not be understood that such separation is necessary in all embodiments. stomach.

[0346] Only a few implementation forms and examples are described, and not all are illustrated in this patent document. Other embodiments, extensions, and modifications are possible based on the content provided.

Claims

1. A method of image processing, The process involves performing a conversion between a first block of video and the bitstream of said video, based on rules. The aforementioned conversion is based on the AMVR (adaptive motion vector resolution) tool. The rule stipulates that the selection of a context incrementing means (ctxInc) for the first bin in the bin sequence of the first syntactic element defining the resolution of the motion vector difference due to AMVR shift is derived based on the use of the coding mode for the first block, The coding mode for the first block is one of the following: affine intermode, IBC (intra block copy) mode, and normal intermode, which is a non-affine intermode. method.

2. The first block is a coding unit, The method according to claim 1.

3. Three different context augmentation means corresponding to the three different coding modes are applicable to the first bin, Each coding mode corresponds to a single context augmentation mechanism. The method according to claim 1 or 2.

4. When the first block is coded using the IBC mode, the first context increment means is assigned to the first bin, If the first block is coded using the affine intermode, the second context increment means is assigned to the first bin, When the first block is coded using the normal intermode, the third context increment means is assigned to the first bin. The method according to claim 3.

5. The same context augmentation means is used for (1) the first bin of the bin sequence of the first syntactic elements for the first block when the first block is coded using the IBC mode, and (2) the second bin of the bin sequence of the first syntactic elements for the second block which is coded using the normal intermode. Or, The same context augmentation means is used for (1) the first bin of the bin sequence of the first syntactic element for the first block when the first block is coded using the IBC mode, and (2) the bin of the second syntactic element for the third block, wherein the second syntactic element defines whether the resolution of the motion vector difference is 1 / 4 of the luminance samples, or the second syntactic element is defined by the first syntactic element, and the third block is coded using the affine intermode. Or, The same context augmentation means is used for (1) the first bin of the bin sequence of the first syntactic element for the first block when the first block is coded using the normal intermode, and (2) the bin of the second syntactic element for the fourth block, wherein the second syntactic element specifies whether the resolution of the motion vector difference is 1 / 4 of the luminance samples, or the second syntactic element is specified by the first syntactic element, and the fourth block is not coded using the affine intermode. The method according to any one of claims 1 to 4.

6. During the initialization process, When the context initialization type is of type 1, the value of the context index for the first syntactic element is in the range of 0 to 2. When the context initialization type is of type two, the value of the context index for the first syntactic element is in the range of 3 to 5. If the context initialization type is of type 3, the value of the context index for the first syntactic element is in the range of 6 to 8. The method according to any one of claims 1 to 5.

7. The aforementioned rule stipulates that the selection of a fourth context incrementing means (ctxInc) for coding a syntactic element that determines whether the fifth block is divided horizontally or vertically is based on the number of allowed vertical divisions and the number of allowed horizontal divisions. The number of permitted vertical divisions includes the number of permitted vertical BT divisions and the number of permitted vertical TT divisions. The number of permitted horizontal divisions includes the number of permitted horizontal BT divisions and the number of permitted horizontal TT divisions. The method according to claim 1.

8. The fifth block is a coding unit, The fourth context increasing means is selected by comparing the number of permitted vertical divisions with the number of permitted horizontal divisions. The method according to claim 7.

9. The fourth context increasing means is selected from the first context increasing means when the number of permitted vertical divisions is greater than the number of permitted horizontal divisions. The fourth context increasing means is selected from the second context increasing means when the number of permitted vertical divisions is smaller than the number of permitted horizontal divisions. The fourth context increasing means is selected from the third context increasing means when the number of permitted vertical divisions is the same as the number of permitted horizontal divisions. The method according to claim 7 or 8.

10. The first set of context increasing means and the second set of context increasing means each include a single context increasing means, and the third set of context increasing means includes a plurality of context increasing means. The context increasing means in the first set of context increasing means, the second set of context increasing means, and the third set of context increasing means are different from each other. In the set of the first context increasing means, the single context increasing means has a value of 4, In the set of the second context increasing means, the single context increasing means has a value of 3. The set of the third context increasing means includes a fifth context increasing means having a value of 0, a sixth context increasing means having a value of 1, and a seventh context increasing means having a value of 2. The method according to claim 9.

11. The selection of the fourth context increasing means from the set of third context increasing means is further based on (1) the availability of a first neighboring block located above the fifth block and a second neighboring block located to the left of the fifth block, (2) the dimensions of the fifth block and / or (3) the dimensions of the first neighboring block and / or the dimensions of the second neighboring block, The method according to claim 10.

12. The fourth context increasing means is assigned to the value of the fifth context increasing means when at least one of the following conditions is satisfied: (1) The first neighboring block located above the fifth block is unavailable. (2) The second neighboring block located to the left of the fifth block is unavailable. (3) dA is equal to dL, dA indicates the width of the fifth block divided by the width of the first neighboring block when the first neighboring block is available, and indicates the width of the fifth block when the first neighboring block is not available. dL indicates the height of the fifth block divided by the height of the second neighboring block when the second neighboring block is available, and indicates the height of the fifth block when the second neighboring block is not available. Or, The fourth context increasing means is assigned to the value of the sixth context increasing means when condition (a) is not satisfied and condition (b) is satisfied. The above condition (a) includes satisfying at least one of the following: (1) The first neighboring block located above the fifth block is unavailable. (2) The second neighboring block located to the left of the fifth block is unavailable. (3) dA is equal to dL, dA indicates the width of the fifth block divided by the width of the first neighboring block when the first neighboring block is available, and indicates the width of the fifth block when the first neighboring block is not available. dL indicates the height of the fifth block divided by the height of the second neighboring block when the second neighboring block is available, and indicates the height of the fifth block when the second neighboring block is not available. The above condition (b) includes that dA is less than dL, Or, The fourth context increasing means is assigned to the value of the seventh context increasing means when neither condition (c) nor condition (d) is satisfied. The above condition (c) includes satisfying at least one of the following: (1) The first neighboring block located above the fifth block is unavailable. (2) The second neighboring block located to the left of the fifth block is unavailable. (3) dA is equal to dL, dA indicates the width of the fifth block divided by the width of the first neighboring block when the first neighboring block is available, and indicates the width of the fifth block when the first neighboring block is not available. dL indicates the height of the fifth block divided by the height of the second neighboring block when the second neighboring block is available, and indicates the height of the fifth block when the second neighboring block is not available. The above condition (d) includes the condition that dA is less than dL. The method according to claim 11.

13. The conversion includes encoding the video into the bitstream. The method according to any one of claims 1 to 12.

14. The conversion includes decoding the video from the bitstream. The method according to any one of claims 1 to 12.

15. A device for processing video data, comprising a processor and non-temporary memory having instructions, wherein when an instruction is executed by the processor, the processor has Based on the rules, perform a conversion between the first block of the video and the bitstream of the video. The aforementioned conversion is based on the AMVR (adaptive motion vector resolution) tool. The rule stipulates that the selection of a context incrementing means (ctxInc) for the first bin in the bin sequence of the first syntactic element defining the resolution of the motion vector difference due to AMVR shift is derived based on the use of the coding mode for the first block, The coding mode for the first block is one of the following: affine intermode, IBC (intra block copy) mode, and normal intermode, which is a non-affine intermode. Device.

16. A non-temporary computer-readable storage medium for a processor that stores instructions for performing a conversion between a first block of video and the bitstream of the video, The aforementioned conversion is based on the AMVR (adaptive motion vector resolution) tool. The rule stipulates that the selection of a context incrementing means (ctxInc) for the first bin in the bin sequence of the first syntactic element defining the resolution of the motion vector difference due to AMVR shift is derived based on the use of the coding mode for the first block, The coding mode for the first block is one of the following: affine intermode, IBC (intra block copy) mode, and normal intermode, which is a non-affine intermode. A non-temporary computer-readable storage medium.

17. A method for storing a video bitstream, The aforementioned method, Based on the rules, the bitstream of the first block of the video is generated, The bitstream is stored in a non-temporary computer-readable recording medium, The above generation is based on the AMVR (adaptive motion vector resolution) tool. The rule stipulates that the selection of a context incrementing means (ctxInc) for the first bin in the bin sequence of the first syntactic element defining the resolution of the motion vector difference due to AMVR shift is derived based on the use of the coding mode for the first block, The coding mode for the first block is one of the following: affine intermode, IBC (intra block copy) mode, and normal intermode, which is a non-affine intermode. method.

Citation Information

Patent Citations

  • Context for coding affine mode adaptive motion vector resolution

    WO2020156516A1

  • Coding / decoding method and device, and storage medium

    WO2020253829A1

  • Method and apparatus of signaling adaptive motion vector difference resolution in video coding

    WO2021093730A1