Motion accuracy in inter-block prediction
Subblock-based temporal motion vector prediction methods enhance video encoding and decoding, addressing bandwidth challenges by improving encoding efficiency and quality of decompressed video.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- DOUYIN VISION CO LTD
- Filing Date
- 2026-02-16
- Publication Date
- 2026-06-02
Smart Images

Figure 2026090427000001_ABST
Abstract
Description
[Technical Field]
[0001] (Cross-reference of related applications) In accordance with the applicable patent laws and / or regulations under the Paris Convention, this application is subject to the law and / or regulations of 2019. International patent application PCT / CN2019 / 100396 filed on August 13, and 201 Priority right of international patent application PCT / CN2019 / 107159 filed on September 22, 2009 and The purpose is to assert interests in a timely manner. For all purposes under the law, the above application The entire disclosure is incorporated by reference as part of the disclosure herein.
[0002] This specification relates to image and video coding and decoding. [Background technology]
[0003] Despite advances in video compression, digital video is still limited to the internet and It accounts for the largest bandwidth usage in other digital communication networks. (Video reception) And as the number of connected user devices capable of displaying images increases, the use of digital video will increase. In contrast, bandwidth demand is expected to continue increasing. [Overview of the Initiative]
[0004] Devices related to digital video coding, including subblock-based interpretation methods. This document describes the system and methods. The methods described are based on existing video encoding standards (for example... If, High Efficiency Video Coding (HEVC) and / or General Purpose Video Coding (VVC) and This can apply to both conventional video encoding standards and video codecs.
[0005] In one representative embodiment, the disclosed technology is used to provide a method for image processing. This method may be used. This method is used between the current block of the video and the bitstream representation of the video. For conversion, the maximum number of candidates in the merge candidate list based on subblocks (ML ) and / or Subblock-based temporal motion vector prediction (SbTMVP) candidates This depends on whether Temporal Motion Vector Prediction (TMVP) is enabled during the transformation, or Based on whether to use the current Picture Reference (CPR) encoding mode for the conversion, To determine whether to add it to the merge candidate list based on the subblock, and to determine whether to add it to the merge candidate list based on this determination. This includes performing conversions based on [a certain condition].
[0006] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method involves changing the current block of the video and the bitstream representation of the video. For conversion, Temporal Motion Vector Prediction (TMVP), Temporal Motion Vector based on subblocks The SbTMVP tool and affine coding mode are used during transformation. Based on whether it is valid, the candidate in the merge candidate list based on the subblock This includes determining the maximum number (ML) and performing a transformation based on this determination.
[0007] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is good because it is good for the current block of the first video segment of the video and the bitst of the video. For conversion to and from Riem representations, motion vector prediction based on subblocks (SbTM) is used. The VP) mode is a Temporal Motion Vector Prediction (TMVP) mode where the first video segment is... Because the conversion is disabled by the bell, it is determined that the conversion is disabled. The process involves performing a transformation based on that decision, and the bitstream representation is Sb Whether to include TMVP mode in the display and / or TM in the merge candidate list. The format specifies the position of the SbTMVP mode display relative to the VP mode display. This includes the process of performing conversions.
[0008] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is based on subblock-based temporal motion vector prediction (SbTMVP). The current state of video encoded using a 3D or Temporal Motion Vector Prediction (TMVP) tool This includes performing a conversion between the current block and the bitstream representation of this video, currently The coordinates of the block or the corresponding position of this current block, using a mask, Sb Select based on the TMVP tool or motion vector compression associated with the TMVP tool. Selectively masking and applying this mask results in a bit between this coordinate value and this mask value. Includes AND operations on a per-unit basis.
[0009] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is based on one or more features of the current block of the video segment of the video. Based on this current block, motion vector prediction based on subblocks (SbTMVP) ) Determining the valid corresponding area of this current block for applying the tool and Based on this determination, between this current block and the bitstream representation of this video This includes performing the conversion.
[0010] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is based on subblock-based temporal motion vector prediction (SbTMVP). The default motion vector for the current block of video being encoded using the code. To determine this, and based on this determination, the current block and the bitstream of this video. This includes performing a transformation between representations, and is associated with the center position of the current block. Motion vector from block containing corresponding position in collocated picture This default motion vector is determined when the desired value cannot be obtained.
[0011] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is for the current block of the video segment of the video, The current picture is a reference in the reference picture list X whose index is set to M. It is a picture, where M and X are integers, and it is projected when X=0 or X=1. Subblock-based temporal motion vector prediction (SbTMVP) for image segments. It infers that the tool or the Temporal Motion Vector Prediction (TMVP) tool is disabled. Based on this and inference, a conversion is performed between the current block and the video's bitstream representation. This includes performing the following actions.
[0012] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method applies to the current block of the video, and the current picture of the current block However, the referenced picture whose index in the referenced picture list X is set to M, Subblock-based temporal motion vector prediction (SbTM) when M and X are integers VP) Determine whether the tool application is enabled, and based on this determination, the current This includes performing conversions between block and video bitstream representations.
[0013] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method converts between the current block of video and the bitstream representation of the video. This includes doing so, and the current block is coded using an encoding tool based on the subblock. This conversion is performed by predicting the time motion vector based on the subblock (Sb When the TMVP tool is enabled or disabled, use multiple bins (N) This includes encoding block merge indexes using a unified method.
[0014] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method is based on subblock-based temporal motion vector prediction (SbTMVP). For the current block of video encoded using the tool, the SbTMVP tool is currently The current picture contains the block, and the corresponding block's position in a different picture is determined. Determine the motion vector to use to stop it, and based on this determination, the current This includes performing conversions between a lock and a video bitstream representation.
[0015] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method involves changing the current block of the video and the bitstream representation of the video. For the transformation, it depends on whether affine prediction is enabled for the transformation of the current block. And whether to insert zero-movement affine merge candidates into the subblock merge candidate list. This includes determining the condition and performing a transformation based on that determination.
[0016] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method uses the current block of the video and a list of candidate subblock merges. Subblock merge candidate list for conversion between the bitstream representation of the video. If the condition is not met, zero-movement non-affine padding candidates are subblock merge candidates. This includes inserting data into a list and then performing a transformation after insertion.
[0017] In another representative embodiment, the disclosed technology is used to provide a method for image processing. This is also good. This method involves changing the current block of the video and the bitstream representation of the video. For conversion, the motion vector includes the corresponding position in the collocated picture. Using a rule that determines whether it is derived from one or more motion vectors of a block This includes determining the motion vector and performing this transformation based on the motion vector. nothing.
[0018] In yet another representative embodiment, the disclosed technology is used to provide a method for image processing. This method may be used. This method involves changing the current block of the video and the bitstream representation of the video. For replacement, the current block or the current block within the picture placed in the same position The time block associated with the subblock is previously encoded within the same picture. The video unit is encoded using an encoding mode in which the video unit is reconstructed based on the sample. In this case, the temporal movement is based on a subblock that has a default motion candidate for the transformation. The vector prediction (sbTMVP) tool determines what to do and the default behavior. This includes performing conversions based on supplements.
[0019] In yet another representative embodiment, the disclosed technology is used to provide a method for image processing. This method may be used. This method is used between the current block of the video and the bitstream representation of the video. Subblock-based temporal motion vector prediction (sbTMVP) processing, which is part of the transformation. In relation to the logic, the position used in the motion information derivation process for the subblocks of the current block. Based on the location, default behavior information for sbTMVP processing is derived, and This includes performing conversions based on fault motion information.
[0020] In yet another representative embodiment, the disclosed technology is used to provide a method for image processing. This method may be used. This method predicts the time motion vector (sbTMV) based on subblocks. P) Current block of video encoded using the tool, and the bitstream representation of the video. And, for the conversion, the corresponding in a picture different from the current picture in the current block. By determining the modified motion vector used to pinpoint the block's position The corrected motion vector is used for prediction in the sbTMVP tool. The determination is generated by right-shifting the number with integer precision, and based on that determination. This includes performing the aforementioned conversion.
[0021] In yet another exemplary embodiment, a video encoder device is disclosed. The device includes a processing unit configured to implement the method described herein. .
[0022] In yet another exemplary embodiment, a video decoder device is disclosed. The apparatus includes a processing unit configured to implement the methods described herein.
[0023] In yet another embodiment, a computer-readable medium on which the code is stored is disclosed. When executed by the processing unit, the code implements the method described herein in this specification. To make someone do it.
[0024] These and other embodiments are described herein. [Brief explanation of the drawing]
[0025] [Figure 1] Figure 1 shows an example of the derivation process for constructing a merge candidate list. [Figure 2] Figure 2 shows an example of the location of a candidate for spatial merge. [Figure 3] Figure 3 shows an example of candidate pairs considered in the redundancy check for spatial merge candidates. [Figure 4A] Figure 4A shows an exemplary position for the second prediction unit (PU) of an N × 2N partition. [Figure 4B] Figure 4B shows an exemplary position for the second prediction unit (PU) of the 2N × N divisions. [Figure 5] Figure 5 shows an example of scaling motion vectors for temporal merge candidates. [Figure 6] Figure 6 shows examples of candidate locations for temporal merge candidates, C0 and C1. [Figure 7] Figure 7 shows an example of a combined bipredictive merge candidate. [Figure 8] Figure 8 shows an example of the process for deriving motion vector prediction candidates. [Figure 9] Figure 9 shows an example of scaling motion vectors for spatial motion vector candidates. [Figure 10] Figure 10 shows an example of an alternative temporal motion vector prediction (ATMVP) motion prediction for CU. [Figure 11] Figure 11 shows an example of a CU having four subblocks (ADs) and their neighboring blocks. [Figure 12] Figure 12 is a flowchart of an example of encoding with different MV accuracies. [Figure 13A] Figure 13A shows a 135-degree division type (divided from the upper left corner to the lower right corner). [Figure 13B] Figure 13B shows a 45-degree division pattern. [Figure 14] Figure 14 shows an example of the location of neighboring blocks. [Figure 15] Figure 15 shows examples of the upper and left / right blocks. [Figure 16A] Figure 16A shows an example of two control point motion vectors (CPMVs). [Figure 16B] Figure 16B shows three examples of CPMV. [Figure 17] Figure 17 shows an example of an affine motion vector field (MVF) for each subblock. [Figure 18A] Figure 18A shows an example of a four-parameter affine model. [Figure 18B] Figure 18B shows an example of a 6-parameter affine model. [Figure 19] Figure 19 shows an example of the MVP of the inherited affine candidate AF_INTER. [Figure 20] Figure 20 shows an example of building an affine motion predictor using AF_INTER. [Figure 21A] Figure 21A shows an example of control point motion vectors in affine coding in AF_MERGE. [Figure 21B] Figure 21B shows an example of control point motion vectors in affine coding in AF_MERGE. [Figure 22]Figure 22 shows an example of a candidate position for the affine merge mode. [Figure 23] Figure 23 shows an example of a block copy operation within a picture. [Figure 24] Figure 24 shows an example of a valid corresponding area in a collocated picture. [Figure 25] Figure 25 shows an example flowchart for predicting motion vectors based on history. [Figure 26] Figure 26 shows the modified merge list construction process. [Figure 27] Figure 27 shows an exemplary embodiment of the proposed effective area when the current block is within the basic area. [Figure 28] Figure 28 shows an exemplary embodiment of the effective region when the current block is not within the basic region. [Figure 29A] Figure 29A shows an example of a location for identifying existing default motion information. [Figure 29B] Figure 29B shows an example of a location for identifying the proposed default motion information. [Figure 30] Figure 30 is a flowchart showing an example of an image processing method. [Figure 31] Figure 31 is a flowchart showing an example of an image processing method. [Figure 32] Figure 32 is a flowchart showing an example of an image processing method. [Figure 33] Figure 33 is a flowchart showing an example of an image processing method. [Figure 34] Figure 34 is a flowchart showing an example of an image processing method. [Figure 35] Figure 35 is a flowchart showing an example of an image processing method. [Figure 36] Figure 36 is a flowchart showing an example of an image processing method. [Figure 37] Figure 37 is a flowchart showing an example of an image processing method. [Figure 38]Figure 38 is a flowchart showing an example of an image processing method. [Figure 39] Figure 39 is a flowchart showing an example of an image processing method. [Figure 40] Figure 40 is a flowchart showing an example of an image processing method. [Figure 41] Figure 41 is a flowchart showing an example of an image processing method. [Figure 42] Figure 42 is a flowchart showing an example of an image processing method. [Figure 43] Figure 43 is a flowchart showing an example of an image processing method. [Figure 44] Figure 44 is a flowchart showing an example of an image processing method. [Figure 45] Figure 45 is a flowchart showing an example of an image processing method. [Figure 46] Figure 46 is a block diagram showing an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described herein. [Figure 47] Figure 47 is a block diagram of an exemplary image processing system in which the disclosed technology may be implemented. [Modes for carrying out the invention]
[0026] This specification is for improving the quality of decompressed or decoded digital video or images. Furthermore, it provides various technologies that can be used in video bitstream decoders. The decoder reconstructs the decoded frame, which is then used for further encoding. These techniques may be implemented during the encoding process.
[0027] Chapter headings are used in this specification to facilitate understanding, but embodiments and techniques are also used. The techniques are not limited to the corresponding chapters. Thus, the embodiments from one chapter may be used in other chapters. This can be combined with the examples from the chapter.
[0028] 1. Overview
[0029] This patent specification relates to video coding technology. Specifically, the present invention relates to video coding. This invention relates to motion vector coding. The present invention relates to existing video coding standards such as HEVC and This can be applied to standards that should be finalized (e.g., general-purpose video coding). This is also applicable to future video encoding standards or video codecs.
[0030] 2. Preface
[0031] Video encoding standards are primarily developed through the development of well-known ITU-T and ISO / IEC standards. They have been developed. ITU-T uses H.261 and H.263, and ISO / IEC uses MPEG-1 and The two organizations use MPEG-4 Visual, and H.262 / MPEG-2 Video and H.26 They jointly created the MPEG-4 Advanced Video Coding (AVC) and H.265 / HEVC standards. The H.262 video coding standard is a hybrid coding method that utilizes temporal prediction plus transformation coding. Based on a video coding structure. In order to explore future video coding technologies beyond HEVC, In 2015, VCEG and MPEG jointly formed a joint video search team (Joint Vid eo Exploration Team (JVET) was established. Since then, many new A new method was adopted by JVET, and a reference software called the Joint Search Model (JEM) was created. It has been incorporated into apparel. April 2018, VCEG (Q6 / 16) and ISO / IEC Joint Video Search Team (JVET) between JTC_1 SC29 / WG11 (MPEG) The VVC standard was created with the goal of reducing the bitrate by 50% compared to HEVC. I've decided to take on the challenge.
[0032] The latest version of the VVC draft, namely General-Purpose Video Coding (Draft 3), is as follows: It can illuminate.
[0033] http: / / phenix.it-sudparis.eu / jvet / doc_e nd_user / documents / 12_Macao / wg11 / JVET-L10 01-v2.zip The latest reference software for VVC, called VTM, is See below.
[0034] https: / / vcgit.hhi.fraunhofer.de / jvet / VV CSoftware_VTM / tags / VTM-3.0rC1
[0035] 2.1 Interpretation in HEVC / H.265
[0036] Each interpreted PU is a motion parameter for one or two reference picture lists. It has a meter. The motion parameters include a motion vector and a reference picture index. Hmm. Using one of the two reference picture lists is inter The signal may be notified using _pred_idc. The motion vector is for the predictor. It may be explicitly encoded as delta.
[0037] If one CU is encoded in skip mode, one PU is associated with this CU. Therefore, there are no significant residual coefficients, and neither the encoded motion vector delta nor the reference picture index is significant. . Specify the merge mode, which will spatially apply the motion parameters for the current PU. And it retrieves from neighboring PUs, including temporal candidates. Merge mode is different from skip mode. It can be applied not only to this but also to any predicted PU. Merge mode Alternatively, there is a clear transmission of motion parameters, and for each PU, each reference picture list. And the reference picture index, which corresponds to the use of the reference picture list, motion vector The torque (more precisely, the difference in motion vectors compared to the motion vector predictor (MVD)) is clearly defined. It reliably notifies the signal. In this disclosure, this mode is called Advanced Motion Vector Prediction (AMVP). It is called that.
[0038] If the signaling notification indicates that one of the two reference picture lists should be used, then one A PU is generated from a block of samples. This is called a "single prediction". A single prediction is a P-series It can be used for both rice and B-slice.
[0039] If the signaling notification indicates that both reference picture lists should be used, then the two samples will be... Generate a PU from the lock. This is called "biprediction". Biprediction is only available for B slices. It is Noh.
[0040] The following will explain in detail the interpretation modes defined in HEVC. First, Mar Let me explain about Jimo.
[0041] 2.1.1 Reference Picture List
[0042] In HEVC, the term interpretation refers to the current decoded picture as a reference to other references. Predictions derived from the data elements of the picture (e.g., sample values or motion vectors) It is used to show that, similar to H.264 / AVC, one can be selected from multiple reference pictures. It is possible to predict a picture. One or more reference pictures are used for interpretation. It is grouped into a reference picture list. The reference index is any reference in the list. Identify whether to use the illuminated picture to generate a prediction signal.
[0043] One reference picture list, List0, is used for the P slice, and two reference picture lists are used. List0 and List1 are used for B-slicing. Note that List0 / 1 contains The referenced pictures are taken in the order they are taken / displayed, and are also taken from past and future pictures. It's okay to have it.
[0044] 2.1.2 Merge Mode
[0045] 2.1.2.1 Derivation of Candidate Merge Modes
[0046] When predicting a PU using merge mode, merge candidate list from bitstream Parse the index that points to the entries in the database and use it to search for motion information. The structure of this list is defined in the HEVC standard and follows the sequence of the following steps. It can be summarized based on this.
[0047] Step 1: Derivation of initial candidates Step 1.1: Spatial Candidate Deriving Step 1.2: Check for spatial redundancy of candidates Step 1.3: Derivation of temporal candidates Step 2: Insert additional candidates Step 2.1: Creating dual prediction candidates Step 2.2: Insertion of zero motion candidates
[0048] These steps are schematically shown in Figure 1. For the derivation of spatial merge candidates, Select up to four merge candidates from five candidates located in different positions. For the derivation process, select a maximum of one merge candidate from the two candidates. On the decoder side... Since a certain number of candidates are assumed for each PU, the number of candidates obtained in step 1 is the slide The maximum number of merge candidates to signal in the header (MaxNumMergeCand If it does not reach ), additional candidates are generated. Since the number of candidates is constant, a shortened unary Encode the index of the best merge candidate using binarization (TU). The size of the CU is If equal to 8, all PUs of the current CU are merge candidate units of 2N × 2N prediction units. Share the same single merge candidate list as St.
[0049] The following describes in detail the actions associated with the steps described above.
[0050] 2.1.2.2 Spatial candidate derivation
[0051] In deriving spatial merge candidates, up to four merges are selected from the candidates located at the positions shown in Figure 2. Select page candidates. The derivation order is A1, B1, B0, A0, B2. Position A1, B 1. If PU of B0 or A0 is not available (for example, another slice or t Position B2 is only considered if it belongs to the Ill, or if it is intra-encoded. After adding the candidate for position A1, and then adding the remaining candidates, a redundancy check is performed, and then... This allows for the reliable elimination of candidates with the same motion information from the list, improving encoding efficiency. This is possible. In order to reduce the complexity of the calculation, the aforementioned redundancy check is considered We will not consider all possible candidate pairs. Instead, we will consider the pairs connected by the arrows in Figure 3. Considering only that the corresponding candidate used for the redundancy check does not have the same motion information, Only add the candidate to the list if... Another source of duplicate motion information is 2N × 2N This is a "second PU" associated with a different division. As an example, Figures 4A and 4B are shown. The second PU is shown for the cases of N×2N and 2N×N, respectively. The current PU is divided into N×2N. When splitting, the candidate for position A1 is not considered in list construction. In fact, adding this candidate... This allows the dual prediction units to have the same motion information, and one coding unit Having only one PU is redundant. Similarly, if we divide the current PU into 2N × N... Position B1 is not considered.
[0052] 2.1.2.3 Temporal candidate derivation
[0053] In this step, only one candidate is added to the list. Specifically, at this time In deriving the target merge candidate, between the current picture in the given reference picture list and Based on the same-position PU belonging to the picture with the smallest POC difference, it is scaled. The motion vector is derived. In the slice header, it is used to derive the same position PU. The reference picture list is clearly signaled. As shown by the dotted line in Figure 5, temporal merging is possible. A scaled motion vector is obtained for the complementary distances tb and td. This was used and scaled from the motion vector of the PU at the same position. tb is currently The POC difference between the reference picture and the current picture is defined as the same position. Defined as the POC difference between the reference picture and the identically positioned picture of the PU. Temporal merge candidates Set the reference picture index to zero. This scaling process is practically implemented in this way. In fact, it is described in the HEVC specification. In the case of a B slice, two motion vectors , that is, one for reference picture list 0 and the other for reference picture list 1 are obtained, and by combining these, a dual-prediction merge candidate is formed.
[0054] FIG. 5 is a diagram showing the scaling of the motion vectors of the temporal merge candidates.
[0055] At the same position PU(Y) belonging to the reference frame, as shown in FIG. 6, the position of the temporal candidate is selected between candidate C0 and candidate C1. If the PU at position C0 is not available and is intra-coded or outside the current coding tree unit (CTU, also known as LCU, largest coding unit) row, position C1 is used. Otherwise, position C0 is used for the derivation of the temporal merge candidate.
[0056] FIG. 6 shows examples of candidate positions C0 and C1 of the temporal merge candidates.
[0057] 2.1.2.4 Additional Candidate Insertion
[0058] In addition to the spatio-temporal merge candidates, there are two additional types of merge candidates, namely, combined dual-prediction merge candidates and zero merge candidates. By using the spatio-temporal merge candidates, combined dual-prediction merge candidates are generated. The combined dual-prediction merge candidates are used only for B slices. By combining the first reference picture list motion parameters of the first candidate and the second reference picture list motion parameters of another candidate, combined dual-prediction candidates are generated. If these two tuples provide different motion hypotheses, these tuples form new dual-prediction candidates. For example, FIG. 7 shows the case of generating combined dual-prediction merge candidates to be added to the final list (right side) using two candidates with mvL0, refIdx L0 or mvL1, refIdxL1 in the original list (left side). There are various rules regarding the combinations considered for generating these additional merge candidates. By inserting motion-zero candidates and filling the remaining entries in the merge candidate list, it hits the MaxNumMergeCand capacity. These candidates have a spatial displacement of zero, start from zero, and have a reference picture chain index that increases each time a new zero-motion candidate is added to the list.
[0059] Specifically, until the merge list is full, the following steps are performed in sequence. 1. For P slices, set the variable numRef to either the number of reference pictures associated with list 0 or, for B slices, the minimum number of reference pictures in the two lists. 2. Add non-repetitive motion-zero candidates. When the variable i is between 0 and numRef - 1, set the MV to (0, 0) and add the default motion candidate with the reference picture index set to i to list 0 (for P slices) and to both lists (for B slices).
[0060] 3. Add repetitive motion-zero candidates with the MV set to (0, 0), the reference picture index of list 0 set to 0 (for P slices), and the reference picture indices of both lists set to 0 (for B slices). Finally, no redundancy check is performed on these candidates.
[0061]
[0062]
[0063]
[0062] 2.1.3 Altitude Motion Vector Prediction (AMVP)
[0063] AMVP is used for clear transmission of motion parameters, with proximity PUs and motion vectors. This utilizes the spatiotemporal correlation of each reference picture list. In each reference picture list, the left and upper temporal neighbors are considered. By checking the availability of the PU location, removing redundant candidates, and adding a zero vector, By keeping the length of the candidate list constant, a motion vector candidate list is constructed. The encoder then selects the best predictor from the list of candidates and displays the corresponding message for the selected candidate. It is possible to send an index. Similar to the signaling of merged indexes, the best The indices of the motion vector candidates are encoded using a shortened unary. In total, the maximum value to be encoded is 2 (see Figure 8). In the following chapters, motion vector prediction candidates... The details of the derivation process will be explained.
[0064] 2.1.3.1 Derivation of AMVP Candidates
[0065] Figure 8 summarizes the process for deriving candidate motion vectors.
[0066] In motion vector prediction, there are spatial motion vector candidates and temporal motion vector candidates. Two types of motion vector candidates are possible. To derive the spatial motion vector candidates... As shown in Figure 2, based on the motion vector of each PU at five different positions, Ultimately, we derive two candidate motion vectors.
[0067] To derive candidate time motion vectors, we consider two different positions located at the same location. Based on this, we select one motion vector candidate from the two candidates derived. First spatiotemporal After creating the candidate list, duplicate motion vector candidates in the list are removed. If the number of candidates is more than two, motion vector candidates with a reference picture index greater than one in the associated reference picture list are deleted from the list. If the number of spatiotemporal motion vector candidates is less than two, additional zero motion vector candidates are added to the list. 2.1.3.2 Spatial Motion Vector Candidates
[0068]
[0069] In the derivation of spatial motion vector candidates, among the five candidates derived from the PUs at the positions as shown in FIG. 2, the positions of up to two candidates to be considered are the same as the positions of motion merging. The derivation order for the left side of the current PU is defined as A0, A1, scaled A0, scaled A1. The derivation order for the upper side of the current PU is defined as B0, B1, B2, scaled B0, scaled B1, scaled B2. Therefore, for each side, there are four cases where a motion vector candidate can be used, namely two cases where no spatial scaling is required and two cases where spatial scaling is used. Summarizing the four different cases, it is as follows
[0070]
[0071] · Without spatial scaling - (1) The same reference picture list and the same reference picture index (same POC ) - (2) Different reference picture lists but the same reference picture (same POC) · Spatial scaling - (3) The same reference picture list but different reference pictures (different POCs) - (4) Different reference picture lists and different reference pictures (different POCs)
[0071] First, check the case of non-spatial scaling, and then perform spatial scaling. Regardless of the picture list, the POC references the reference picture of the neighboring PU and the reference of the current PU. If it differs from the picture, consider spatial scaling. All PUs of the left-hand candidate are utilized. If not available or intra-encoded, the scaling of the upper motion vector The `ng` function helps in the parallel derivation of left and upper MV candidates. Otherwise, the upper motion vector... Spatial scaling is not permitted for Tor.
[0072] In spatial scaling, as shown in Figure 9, similar to temporal scaling, Then, the motion vector of the neighboring PU is scaled. The main difference is the reference pixel of the current PU. Given the chalist and index as input, the actual scaling process is time-based. It is the same as the ring.
[0073] 2.1.3.3 Candidate Temporal Motion Vectors
[0074] Aside from deriving the reference picture index, this process is for deriving candidates for temporal merge. These are all the same processes used to derive candidate spatial motion vectors (see Figure 6). The reference picture index is signaled to the decoder.
[0075] 2.2 Motion vector prediction method based on subCU in JEM
[0076] In a JEM with QTBT, each CU has a maximum of one motion parameter for each prediction direction. It may have a meter set. In an encoder, the large CU is divided into sub-CUs. By deriving motion information for all subCUs of the large CU, the two subCUs can be analyzed. Consider Bell's motion vector prediction method. Alternative time-motion vector prediction (ATMVP) ) By this method, each CU is smaller than the current CU in the arranged reference picture. It becomes possible to extract multiple sets of motion information from the block. Spatiotemporal motion vector In the STMVP prediction method, the temporal motion vector predictor and the spatial neighbor motion vector Using the culvert, the motion vector of the subCU is recursively derived.
[0077] To maintain a more accurate motion field for subCU motion prediction, reference frame Motion compression is currently disabled.
[0078] Figure 10 shows an example of ATMVP motion prediction for CU.
[0079] 2.2.1 Alternative Time-Motion Vector Prediction
[0080] In Alternative Time-Motion Vector Prediction (ATMVP), motion vector time motion vector The TMVP (Temporary Motion Prediction) method uses a set of multiple motion information from blocks smaller than the current CU. This is corrected by extracting (including motion vectors and reference indices). In this implementation, a subCU is an N×N square block (where N is the default value). (This is set to 4).
[0081] ATMVP predicts the motion vector of a subCU within a CU in two steps. In this step, the corresponding block in the reference picture is identified by a temporal vector. The reference picture is called the motion source picture. In the second step, the current CU is Divide into subCUs, and from the block corresponding to each subCU, the motion vector of each subCU and Obtain the reference index.
[0082] [ka]
[0083] In the second step, by adding the time vector to the current coordinates of CU, the motion The time vector in the source picture identifies the corresponding block in the subCU. For each subCU, motion information of its corresponding block (minimum motion covering the central sample) is provided. Using the grid, the motion information of the subCU is derived. The motion of the corresponding N×N block. After identifying the information, the motion vector of the current subCU and, similar to HEVC's TMVP, It is converted to a reference index, and motion scaling and other procedures are applied. For example, Deco The -da is a low-latency condition (the POC of all referenced pictures of the current picture is the current picture) Check whether the condition (smaller than the POC) is met, and in some cases, the movement Kutoru MV x Using the motion vector corresponding to the reference picture list X, each subCU Motion vector MV y Predict that (X is equal to 0 or 1, and Y is equal to 1-X).
[0084] 2.2.2 Spatiotemporal Motion Vector Prediction (STMVP)
[0085] In this method, the motion vector of the subCU is recursively determined in the order of the raster scan. It is derived. Figure 11 illustrates this concept. Four 4x4 subCUs, A, B, C, and Consider an 8x8 CU including D. In the 4x4 block near the current frame, there are a, b, and c It is labeled as d.
[0086] The derivation of the motion of subCU A begins by identifying its two spatial neighbors. The first is The neighborhood is an N×N block on subCU A (block c). This block c is advantageous If not available or intra-encoded, other N× above subCU A Check N blocks (starting with block c, from left to right). The second neighborhood is: This is the left-hand block of subCU A (block b). Block b is either unavailable or Alternatively, if it is intra-encoded, check the other blocks to the left of subCU A. (From top to bottom, centered on block b). Movement information obtained from neighboring blocks in each list. The information is scaled to the first reference frame of the given list. Then, as defined by HEVC... Following the same procedure as the TMVP derivation, the time motion vector predictor of subblock A Derive (TMVP). Extract the movement information of the block at the same position D, and then Then scale. Finally, search for motion information, and after scaling, reference list Then, all available motion vectors (up to 3) are averaged separately. This averaged motion Let the current sub-CU's motion vector be the 'k' vector.
[0087] 2.2.3 Sub-CU Motion Prediction Mode Signal Notification
[0088] SubCU mode is enabled as an additional merge candidate and is used to signal the mode. The additional syntactic element is not required. To represent ATMVP mode and STMVP mode. Add two additional merge candidates to the merge candidate list for each CU. Sequence parameters If the set indicates that ATMVP and STMVP are enabled, up to 7 merge candidates Use supplements. The encoding logic for additional merge candidates is used in the merge candidate field in HM. It is the same as the combination, that is, for each CU in the P or B slice, two additional m Two or more RD checks are required for each candidate.
[0089] In JEM, all binary values of a merge index are contextualized by CABAC. It is encoded in a standard way. On the other hand, in HEVC, only the first binary is context-encoded. Then, the remaining two values are encoded using context bypass encoding.
[0090] 2.3 Interpretation Method in VVC
[0091] Adaptive Motion Vector Difference Resolution (AMVR) for signaling MVD, affine prediction Code, Triangular Prediction Mode (TPM), ATMVP, Generalized Bidirectional Prediction (GBI), Bidirectional Optics New coding tools are being developed to improve interpretation, such as tical flow (BIO). There are several.
[0092] 2.3.1 Adaptive Motion Vector Difference Resolution
[0093] In HEVC, use_integer_mv_flag is used in slice headers. When it is 0, the difference in motion vectors (MVD) is calculated in units of 1 / 4 luminance samples. The difference between the predicted motion vector of the PU and the signal is notified. In VVC, local adaptation Motion Vector Resolution (LAMVR) is introduced. In VVC, MVD is 1 / 4 brightness. Degree samples, integer luminance samples, or four luminance samples (i.e., 1 / 4 pixel, 1 pixel, It can be encoded in units of 4 pixels. MVD resolution is the coding unit (CU) level. Controlled by the MVD resolution flag, the MVD resolution flag indicates that at least one non-zero MVD module is present. A conditional signal is sent to each CU.
[0094] For CUs with at least one non-zero MVD module, 1 / 4 luminance sample A first flag is signaled to indicate whether or not MV precision is used in the CU. The first flag (equal to 1) indicates that 1 / 4 luminance sample MV precision is not being used. When indicating this, integer luminance sample MV precision is used or 4 luminance sample MV precision is used. Another flag is signaled to indicate whether it will be used.
[0095] The first MVD resolution flag of CU is zero, or it is encoded for CU. If none exists (i.e., all MVDs in CU are zero), then 1 / 4 brightness relative to CU. The degree sample MV resolution is used. CU is integer luminance sample MV precision or 4 luminance saturation. When using pull MV precision, the MVP in the CU's AMVP candidate list is the corresponding precision. Roll it into a ball.
[0096] In an encoder, the CU-level RD check determines which MVD resolution to use for the CU. This is used to determine whether it is CU level, specifically three times for each MVD resolution. Perform an RD check. To increase the encoder speed, in JEM, use the following symbols The numbering system will be applied.
[0097] ●During the RD check of a CU with normal 1 / 4 brightness sample MVD resolution, the current CU Motion information (integer luminance sample precision) is stored. The integer luminance samples and the 4-luminance samples During the RD check of the same CU with the MVD resolution of 4 luminance samples, the stored motion information (after rounding) is used as the starting point for further small-range motion vector refinement, so the time-consuming motion estimation process does not repeat three times.
[0098] ● Conditionally call the RD check for the CU with the 4-luminance sample MVD resolution. For the CU in the case where the RD cost of the integer luminance sample MVD resolution is much larger than that of the 4-luminance sample MVD resolution of the 4-luminance sample MVD resolution, the RD check for the 4-luminance sample MVD resolution for the CU is skipped.
[0099] The encoding process is shown in FIG. 12. First, the 1 / 4 pixel MV is tested, the RD cost is calculated, denoted as RDCost0, then the integer MV is tested, and the RD cost is denoted as RDCost1 . If RDCost1 < th * RDCost0 (where th is a positive value), the 4-pixel MV is tested, and otherwise, the 4-pixel MV is skipped. Basically, when checking the integer or 4-pixel MV, the motion information and RD cost etc. for the 1 / 4 pixel MV are already known, and this can be reused to speed up the encoding process for the integer or 4-pixel MV .
[0100] 2.3.2 Triangle Prediction Mode
[0101] The concept of the triangle prediction mode (TPM) is to introduce a new triangle partition for motion compensation prediction . As shown in FIGS. 13A and 13B, the CU is divided into two triangle prediction units in the diagonal or anti-diagonal direction. Each triangle prediction unit in the CU is 1 A unique single predictive motion vector and reference frame derived from a list of single predictive candidate lists. The index is used for interpretation. After predicting the triangular prediction units, the diagonal Adaptive weighting is applied to the edges. Then, transformation and quantization are applied to the entire CU. Perform the operation. Note that this mode applies only to merge mode (note that skip mode does not apply). (This is treated as a special merge mode.)
[0102] Figures 13A and 13B show how the CU is divided into two triangular prediction units (two division patterns). This is an explanatory diagram for division. Figure 13A: 135-degree division type (division from the upper left corner to the lower right corner), diagram 13B: 45-degree division pattern.
[0103] 2.3.2.1 Single Prediction Candidate List for TPM
[0104] [ka]
[0105] Specifically, the following steps are included:
[0106] 1) When adding canonical movement candidates from spatially neighboring blocks, a full pruning operation is performed. by, Obtain a list of possible regular movements from A1, B1, B0, A0, B2, Col, and Col2. (Corresponding to blocks 1-7 in Figure 14).
[0107] 2) Set the variable numCurrMergeCand=0.
[0108] [ka]
[0109] [ka]
[0110] [ka]
[0111] [ka]
[0112] 7) If numCurrMergeCand is less than 5, zero motion vector candidates Add.
[0113] When you insert a candidate into the list, it is compared with all the previously added candidates. If we need to check whether it is the same as one of them, this process is This is called re-pruning.
[0114] 2.3.2.2 Adaptive Weighting Process
[0115] After predicting each triangle prediction unit, adapt to the diagonal edge between two triangle prediction units. Weighting is applied to derive the final prediction for the entire CU. The two sets of weight coefficients are as follows: Define. • The first set of weight coefficients is {7 / 8, 6 / 8, 4 / 8, 2 / 8, 1 / 8} and {7 / 8 ,4 / 8,1 / 8 are used as luminance and color difference samples, respectively. The second set of weight coefficients is {7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8, 2 / 8, 1 / 8}. } and {6 / 8, 4 / 8, 2 / 8} are used as luminance and color difference samples, respectively.
[0116] A set of weight coefficients is selected based on a comparison of the motion vectors of two triangular prediction units. The second set of weight coefficients is used when the reference pictures of the two triangular prediction units are different, or if they are different. This is used when the difference in motion vectors is greater than 16 pixels. Otherwise, the first A set of weighting coefficients is used.
[0117] 2.3.2.3 Signal Notification in Triangle Prediction Mode (TPM)
[0118] A single bit flag to indicate whether or not TPM is being used is first signaled. This may be done. Then, two division patterns (as shown in Figures 13A and 13B), and Further signal the selected merge index for each of the two splits.
[0119] 2.3.2.3.1 Signaling of TPM Flags
[0120] Let W and H represent the width and height of a single luminance block, respectively. If the value is <64, the triangle prediction mode will be disabled.
[0121] When encoding a single block in affine mode, the triangle prediction mode is also disabled. .
[0122] When one block is encoded in merge mode, one bit flag is signaled. This indicates whether the triangle prediction mode is enabled or disabled for this block. It is possible.
[0123] [ka]
[0124] Figure 15 shows the neighborhood blocks used for context selection in TPM flag coding. Examples of (A and L) are shown.
[0125] 2.3.2.3.2 Display of the two division patterns (shown in Figure 13), and the two divisions Signaling of the selected merge index for each
[0126] Furthermore, the partition pattern and the merge index of the two partitions are encoded relative to each other. In existing implementations, the two partitions could not use the same reference index. It is limited. Therefore, two (split patterns) * N (maximum number of merge candidates) * (N-1 There are ) possibilities, and N is set to 5. One display is coded, and the division pattern is The mapping between the two merge indices and coded instructions is defined below. It is derived from the array.
[0127] const uint8_t g_TriangleCombination[TRIA NGLE_MAX_NUM_CANDS][3]={{0,1,0},{1,0,1}, {1,0,2},{0,0,1},{0,2,0},{1,0,3},{1,0,4}, {1,1,0},{0,3,0},{0,4,0},{0,0,2},{0,1,2}, {1,1,2},{0,0,4},{0,0,3},{0,1,3},{0,1,4}, {1,1,4},{1,1,3},{1,2,1},{1,2,0},{0,2,1}, {0,4,3},{1,3,0},{1,3,2},{1,3,4},{1,4,0}, {1,3,1},{1,2,3},{1,4,1},{0,4,1},{0,2,3}, {1,4,2},{0,3,2},{1,4,3},{0,3,1},{0,2,4}, {1,2,4},{0,4,2},{0,3,4}};
[0128] Division pattern (45 degrees or 135 degrees) = g_TriangleCombination n[signaled indication][0]; Merge index of candidate A=g_TriangleCom bination[signaled indication][1]; Merge index of candidate B=g_TriangleCom bination[signaled indication][2];
[0129] When two movement candidates A and B are derived, the two divisions (P) can be derived from either A or B. U1, PU2) Motion information can be set, and PU1 will contain the motion information of merge candidate A or B. Whether or not to use the report depends on the predicted direction of the two movement candidates. Table 1 shows the two divisions. This shows the relationship between the two derived motion candidates A and B.
[0130] [Table 1]
[0131] 2.3.2.3.3 Entropy of the display (indicated by merge_triangle_idx) - encoding
[0132] merge_triangle_idx is within the range [0, 39] (including each of them). It is located in the K_th order Exponential Golomb(EG) code. This is used for binarizing merge_triangle_idx (K is set to 1). ). K-th orderEG
[0133] (At the expense of encoding smaller numbers using more bits) To encode larger numbers in bits, this is done using a non-negative integer parameter k. It can be generalized. To encode a non-negative integer x with an exp-Golomb code of degree k, Do the following: 1. Using the aforementioned order-0 exp-Golomb code [x / 2 k ] is a symbol To assign a number. Next, 2. x mod 2 k Encode it in binary.
[0134] [Table 2]
[0135] 2.3.3 Affine Motion Compensation Prediction
[0136] In HEVC, only translational motion models are applied for motion compensation prediction (MCP). In the real world, there are various types of movement, such as zoom in / zoom out. There are rotations, perspective movements, and other irregular movements. In VVC, there are 4 parameters. Using fin models and 6-parameter affine models, simplified affine transformation motion compensation Apply the prediction. The affine motion field of the block, as shown in Figures 16A and 16B. In the case of a 4-parameter affine model (Figure 16A), the motion vectors of the two control points (CP) are... Represented by MV, in the case of a 6-parameter affine model (Figure 16B), there are three CPMs. It is represented by V.
[0137] The motion vector field (MVF) of a block is given by the four parameters in equation (1). The model (where the four parameters are defined as variables a, b, e, and f) and equation (2 ) in a 6-parameter affine model (where 4 parameters are variables a, b, c, d, Using e and f (defined as e and f), they can be expressed by the following formulas, respectively.
[0138]
number
[0139]
number
[0140] [ka]
[0141] To further simplify motion compensation prediction, affine transformation prediction based on subblocks is suitable. It is used. Each M × N (in the current VVC, both M and N are set to 4) sub-b To derive the motion vector of the lock, as shown in Figure 17, the center of each subblock The motion vector of the sample is calculated according to equations (1) and (2), with a fractional precision of 1 / 16. It is rounded down to the nearest whole number. Next, a motion compensation interpolation filter of 1 / 16 pixels is applied to the derived motion. A vector is used to generate predictions for each subblock. The interpolation filter for 1 / 16 pixels is: It will be introduced in affine mode.
[0142] After MCP, the high-precision motion vectors of each subblock are rounded to the same value as the normal motion vectors. Save with precision.
[0143] 2.3.3.1 Affine Prediction Signal Notification
[0144] Similar to translational motion models, there are two modes for signaling side information using affine prediction. There are two modes: AFFINE_INTER mode and AFFINE_MERGE mode. be.
[0145] 2.3.3.2. AF_INTER mode
[0146] For CUs where both width and height are greater than 8, AF_INTER mode can be applied. Yes, it is possible. To indicate whether AF_INTER mode is used, the bitstream can be modified. In this case, the affine flag at the CU level is signaled.
[0147] In this embodiment, for each reference picture list (list 0 or list 1), three types Using the same type of affine motion predictor, construct a list of affine AMVP candidates in the following order: Each candidate includes the estimated CPMV of the current block. The best CP found on the encoder side. Difference in MV (mv in Figure 20) 0、 mv 1、 (e.g., mv2) and estimated CPMV signaling So Furthermore, the index of affine AMVP candidates that derive the estimated CPMV is the signal. You will be notified.
[0148] 1) Inherited affine motion predictor
[0149] The order of checks is: Checking for spatial MVPs in HEVC AMVP list construction. The order is similar. First, the current block of {A1,A0} that is affine encoded From the first block which has the same reference picture as the first block, the inherited affine motion prediction on the left The child is derived. Next, the inherited affine motion predictor is affine encoded, and currently The first block in {B1, B0, B2} has the same reference picture as the block in question. Derived from, derived from the block. Figure 19 shows five blocks A1, A0, B1, B 0 and B2 are shown.
[0150] When it is found that the neighboring blocks are encoded in affine mode, the CPMV of the encoding unit including this neighboring block is used to derive the prediction child of the CPMV of the current block. For example, if A1 is encoded in non - affine mode and A0 is encoded in 4 - parameter aff ine mode, the inherited affine MV predictor on the left is derived from A0. In this case, for the upper - left CPMV in Figure 21B, it is MV0 N , and for the upper - right CPMV , it is the CPMV including A0 shown by CPMV and MV1 N to derive the estimated CPMV of the current block, represented by MV0 , MV1 , and MV2 C , for the upper - left (coordinates (x0, y0)), upper - right (coordinates (x1, y1)) and lower - right positions C of the current block. C
[0151] 2) Constructed affine motion predictor
[0152] The constructed affine motion predictor consists of control - point motion vectors (CPMVs) with the same reference picture, derived from neighboring inter - encoded blocks, as shown in Figure 20. When the current affine motion model is 4 - parameter affine, the number of CPMVs is 2, and when it is not, and the current affine motion model is 6 - parameter affine, the number of CPMVs is 3. The upper - left CPMV m - v0 - is inter - coded and is derived by the MV of the first block in the group {A, B, C} that has the same reference picture as the current block. The upper - right CPMV m - v1 - is inter - coded and is the same as the current block and has the MV of the first block in the group {A, B, C} that has the same reference picture as the current The first block of group {D, E} has the same reference picture as the block of MV It is derived by the following. The CPMVm ̄v2 ̄ in the lower left is intercoded, and the current The first block of the MV of group {F, G} has the same reference picture as Rock. This is how it is derived.
[0153] - If the current affine motion model is a 4-parameter affine, the constructed affine The fin motion predictor is established when both m ̄v0 ̄ and m ̄v1 ̄ are established, i.e., m ̄ It is inserted into the candidate list only if it is v0 and mv1. Top left of the current block (coordinates) Used as the estimated CPMV for the position (x0, y0), upper right (coordinates (x1, y1)). .
[0154] - If the current affine motion model is a 6-parameter affine, then m ̄v0 ̄, If m ̄v1 ̄ and m ̄v2 ̄ are all established, that is, m ̄v0 ̄, m ̄v 1 ̄ and m ̄v2 ̄ are all the top-left corners of the current block's position (coordinates (x0, y0)). The estimated CPMV for the upper right (coordinates (x1, y1)) and lower right (coordinates (x2, y2)) are used. The constructed affine motion predictor is only inserted into the candidate list when it is used in this way.
[0155] When inserting a constructed affine motion predictor into the candidate list, pruning is applied. It will not be done.
[0156] 3) Standard AMVP motion predictor
[0157] The following applies until the number of affine motion predictors reaches its maximum: 1) If available, set all CPMVs to equal mv2 and affine motion Derive the predictor. 2) If available, set all CPMVs to equal m ̄v1 ̄ and affine motion Derive the predictor. 3) If available, set all CPMVs to m ̄v0 ̄ for affine motion prediction. Derive the child. 4) If available, set all CPMVs to be equal to HEVCTMVP Then, we derive an affine motion predictor. 5) Derive the affine motion predictor by setting all CPMVs to zero MV. do.
[0158] Note, m ̄v i  ̄ has already been derived from the constructed affine motion predictor.
[0159] Figure 18A shows an example of a 4-parameter affine model. Figure 18B shows a 6-parameter affine model. An example of a model is shown.
[0160] Figure 19 shows an example of the MVP of the inherited affine candidate AF_INTER.
[0161] Figure 20 shows an example of the MVP of the constructed affine candidate AF_INTER.
[0162] When 4 / 6 parameter affine mode is used in AF_INTER mode Therefore, 2 / 3 control points are required, and thus, as shown in Figure 18, for these control points It is necessary to encode 2 / 3 of the MVDs. In existing implementations, MV is It is proposed that the following derivation be performed, namely, mvd1 and mvd2 are predicted from mvd0. It will be done.
[0163] mv0=m ̄v0 ̄+mvd0 mv1 = mv1 + mvd1 + mvd0 mv2 = mv2 + mvd2 + mvd0
[0164] Here, m ̄v i  ̄, mvd i , mv1 is located in the upper left, as shown in Figure 18B. Predicted motion vectors for pixel (i=0), upper right pixel (i=1), and lower left pixel (i=2). The difference between two motion vectors is the motion vector. Note that two motion vectors (for example, mvA( The sum of xA, yA) and mvB(xB, yB)) is calculated by summing the two modules separately. It is equivalent to the two modules of newMV = mvA + mvB. Set the lines to (xA+xB) and (yA+yB), respectively.
[0165] 2.3.3.3 AF_MERGE mode
[0166] When applying CU in AF_MERGE mode, CU is applied to a valid neighboring reconstructed block. From this, we obtain the first block encoded in affine mode. Then, we select the candidate block. The order of selection is as shown in Figure 21A, A, B, C, D, E, from left, top, top right, bottom left to top left. For example, the adjacent lower left block is as shown by A0 in Figure 21B, When encoded in Finn mode, the upper left and upper right corners of neighboring CU / PUs containing block A , the motion vector mv0 of the control point (CP) in the lower left corner N , mv1 N and mv2 N Take it out. And then, mv0 N , mv1 N and mv2 N Based on this, the top left of the current CU / PU Movement vector mv0 (upper right / lower left) C , mv1 C and mv2 C (6-parameter affine) It calculates (used only in the model). Note that in VTM-2.0, the upper left corner is A subblock (for example, a 4x4 block in VTM) stores MV0, and the upper right corner The subblock located at mv1 is if the current block is affine coded. Remember. If the current block is encoded with a 6-parameter affine model, then the bottom left Subblocks located in the corners remember mv2, otherwise (4 parameter affinmo In Dell, LB stores mv2'. Other subblocks record the MV used in MC. To remember.
[0167] Current CU mv0 C , mv1 C , mv2 C After deriving the CPMV, a simplified affine motion The MVF of the current CU is generated according to model equations (1) and (2). To determine whether or not it is encoded in AF_MERGE mode, use affine mode If there is at least one encoded neighborhood block, then the bitstream contains an affine The flag is signaled.
[0168] In existing implementations, the affine merge candidate list can be constructed using the following steps. To be built.
[0169] 1) Insert the inherited affine candidate.
[0170] The inherited affine candidate is the affine motion of its effective neighboring affine coding block. This means deriving the candidate from Dell. From the affine motion model of neighboring blocks. Derive up to two inherited affine candidates and insert them into the candidate list. (Left side of the predictor field) In total, the scan order is {A0, A1}, and in the case of the above predictor, the scan order is {B0 ,B1,B2}.
[0171] 2) Insert the constructed affine candidate.
[0172] The number of candidates in the affine merge candidate list is less than MaxNumAffineCand. If this is the case (for example, 5), insert the constructed affine candidate into the candidate list. The selected affine candidates are constructed by combining motion information from the vicinity of each control point. It means that.
[0173] a) First, from the identified spatial and temporal neighborhoods shown in Figure 22, the movement of the control point The following information is derived. CPk(k=1,2,3,4) represents the k-th control point. A0,A 1, A2, B0, B1, B2, B3 are spaces for predicting CPk (k=1,2,3). T is the target position, and T is the temporal position for predicting CP4. The coordinates of CP1, CP2, CP3, and CP4 are (0, 0), (W, 0), (H, 0), (W, H), where W and H are the width and height of the current block.
[0174] The movement information for each control point is acquired according to the following priority order. - In the case of CP1, the priority of checking is B2->B3->A2. If available If B2 is available, then B2 is used. If both 2 and B3 are unavailable, A2 is used. All three candidates are available. If this is not possible, the movement information of CP1 cannot be obtained. - In the case of CP2, the priority of checks is B1->B0. - In the case of CP3, the priority of checks is A1->A0. - Use T for CP4.
[0175] b) Next, we use these combinations of control points to construct an affine merge candidate. ru. I. To construct a candidate for a 6-parameter affine, motion information for three control points is required. The three control points are in the following four combinations ({CP1, CP2, CP4}, {C P1, CP2, CP3}, {CP2, CP3, CP4}, {CP1, CP3, CP4}) You can choose one of the following: {CP1,CP2,CP3},{CP2,CP3, The combinations {CP4}, {CP1,CP3,CP4} are represented by the top left, top right, and bottom left control points. It is converted into a 6-parameter motion model. II. To construct a 4-parameter affine candidate, motion information of two control points is necessary. This is essential. The two control points are in two combinations ({CP1,CP2}, {CP1,CP3 You may choose one of the following:}) and use this combination at the top-left and top-right control points. Convert it into a 4-parameter motion model. III. Insert the constructed affine candidate combinations into the candidate list in the following order. {CP1,CP2,CP3},{CP1,CP2,CP4},{CP1,CP3,CP4 },{CP2,CP3,CP4},{CP1,CP2},{CP1,CP3} i. For each combination, check the reference index of List X for each CP. If they are all the same, this combination is valid for list X. It has CPMV. This combination is valid for both List 0 and List 1. If a CPMV does not exist, this combination will be marked as invalid. Otherwise, it is valid, and CPMV is included in the subblock merge list.
[0176] 3) Padding with zero motion vector
[0177] If the number of candidates in the affine merge candidate list is less than 5, the list will be full. Up to this point, zero motion vectors with a reference index of zero are inserted into the candidate list.
[0178] Specifically, for the subblock merge candidate list, MV is set to (0,0), A 4-parameter merge where the prediction direction is set from List 0 (for P-slice) to single prediction. Candidates and bipredictions (in the case of B-slice) are performed.
[0179] 2.3.4 Reference to the current picture
[0180] [ka]
[0181] Similar to the design of CRP in HEVC SCC and VVC, the use of IBC mode is The signal is notified at both the sequence level and the picture level. When IBC mode is enabled in SPS, it is enabled at the picture level. It can be done. When IBC mode is enabled at the picture level, the current reconstruction The building picture is treated as a reference picture. Therefore, to signal the use of IBC mode... Therefore, at the top of the existing VVC intermode, no block-level syntax changes are required. do not have.
[0182] [ka]
[0183] 2.3.5 Merge List Design in VVC
[0184] There are three different merge list construction processes supported by VVC.
[0185] [ka]
[0186] [ka]
[0187] [ka]
[0188] 2.3.5.1 Subblock merge candidate list
[0189] In addition to the regular merge list for non-subblock merge candidates, all subblock related It is recommended to place the potential movements of each group into a separate merge list.
[0190] Subblock-related move candidates are placed in a separate merge list and then merged using "sub-block merge". This will be referred to as the "candidate list".
[0191] In one example, the subblock merge candidate list includes affine merge candidates and ATMVP candidates. Includes supplementary and / or subblock-based STMVP candidates.
[0192] 2.3.5.1.1 Another ATMVP Embodiment
[0193] In this contribution, ATMVP merge candidates in the regular merge list are affine merged. Move to the first position in the list. All merge candidates in the new list (i.e.) The merge candidate list (based on subblocks) is based on a subblock coding tool.
[0194] 2.3.5.1.2 ATMVP for VTM-3.0
[0195] In VTM-3.0, in addition to the regular merge candidate list, there is also a subblock merge candidate list. A special merge candidate list called a "st" (also known as an affine merge candidate list) is added. The list of candidate subblock mergers must satisfy the following criteria in this order: b. ATMVP candidates (available or unavailable) c. Inherited Affine Candidates d. Constructed affine candidates e. Padding as a zero-MV4 parameter-affine model
[0196] [ka]
[0197] [ka]
[0198] ATMVP in VTM-3.0 is much simpler than ATMVP in JEM. This is the case. When generating ATMVP merge candidates, the following process is applied. a. As shown in Figure 22, check the neighboring blocks A1, B1, B0, and A0, and The first intercoded but not CPR-coded unit, indicated as Lock X. Find the block. b. Initialize TMV=(0,0). One MV (denoted as MV') is placed in block X. If there is a collocated reference picture (when signaled to the slice header), Refer to the source and set TMV to equal MV'. c. Let the center point of the current block be (x0, y0), and then, the collocated blocks The corresponding positions of (x0, y0) in the ch are given by M = (x0 + MV'x, y0 + MV'y). Arrange it as follows. Find block Z which contains M. i. ATMVP is unavailable if Z is intra-encoded. ii. If Z is intercoded, the MVZ_0 of the two lists of block Z And MVZ_1 are MVdefault0 and MVdefault1 (Reflist 0 index0) and (Reflist1 index0) are scaled and stored. It can be done. d. Assume that for each 8x8 subblock, its center point is (x0S, y0S) Next, the corresponding position of (x0S, y0S) in the collocated picture is M The position is specified as S=(x0S+MV'x, y0S+MV'y). Block containing MS. Find ZS. i. If ZS is intra-encoded, MVdefault0, MVdefau lt1 is assigned to the subblock. ii. If ZS is intercoded, the MVZ of the two lists of block ZS S_0 and MVZS_1 are (Reflist0 index0) and (Reflist1 It is scaled to index0 and allocated to the subblock.
[0199] MV clipping and masking in ATMVP :
[0200] In collocated pictures, the corresponding position is defined as M or MS. In total, it is clipped so that it is within the designated area. The size of the CTU is VTM-3.0 In this case, S × S, S = 128. The upper left position of the collocated CTU is (xC If TU, yCTU, then at the corresponding position M or MS at (xN, yN) The location is within the effective region xCTU <= xN <xCTU+S+4;yCTU<=yN<yCTU+ Clipped to S
[0201] In addition to clipping, (xN, yN) is also xN=xN&MASK, yN=yN&M Masked as ASK, here MASK is ~(2 N An integer equal to -1), N =3, and at least 3 bits are set to 0. Therefore, xN and yN must not be multiples of 8. It must be done. ("~" represents the bitwise complement operator.)
[0202] Figure 24 shows an example of a valid corresponding region in a collocated picture.
[0203] 2.3.5.1.3 Syntax design in slice headers
[0204] [Table 3]
[0205] 2.3.5.2 Normal Merge List
[0206] Unlike merge list designs, VVC uses history-based motion vector prediction (HMV). Method P is used.
[0207] The HMVP stores the aforementioned encoded motion information. The movement information of the 'k' is defined as an HMVP candidate. Multiple HMVP candidates are called an HMVP table. The data is stored in a table, and this table is maintained on the fly during the encoding / decoding process. When encoding / decoding a new slice begins, the HMVP table becomes empty. Whenever there is an intercoded block, the associated motion information is updated to a new H It is added as the last entry in the table as an MVP candidate. The overall coding flow is shown in Figure 25. vinegar.
[0208] HMVP candidates can be used in both AMVP and merge candidate list construction processes. Figure 26 shows the revised merge candidate list construction process (highlighted in blue). TMV If the merge candidate list is not full after inserting a P candidate, it will be stored in the HMVP table. You can use the HMVP candidate to add it to the merge candidate list. One block is Typically, from the perspective of motion information, there is a high correlation between the nearest neighboring block and the next block. Considering this, insert the HMVP candidates in the table in descending order of the index. First, add the last entry to the list, and then add the first entry last. Similarly, HMV Redundancy removal is applied to the P candidates. The total number of available merge candidates is the number of mergeable M When the maximum number of merge candidates that can be signaled is reached, the merge candidate list construction process terminates.
[0209] 2.4 MV rounding
[0210] In VVC, if MV is right-shifted, it is requested to round MV toward 0. In a formalized form, if we right-shift MV(MVx,MVy) by N bits, the result is MV'( MVx',MVy') is derived as follows:
[0211] MVx'=(MVx+((1<<N)> >1)-(MV_x>=0?1:0))>>N ;
[0212] MVy'=(MVy+((1<<N)> >1)-(MVy>=0?1:0))>>N;
[0213] 2.5 Embodiments of Reference Picture Resampling (RPR)
[0214] ARC, also known as Reference Picture Resampling (RPR), is a technique used in existing and future video standards. It is incorporated into the category.
[0215] In some embodiments of RPR, collocated pictures are current pictures If the resolution differs from that of the reference picture, TMVP will be disabled. Also, the resolution of the reference picture If the current picture is different, BDOF and DMVR will be disabled.
[0216] If the resolution of the reference picture is different from the resolution of the current picture, it will be treated as a normal MC. The interpolation section is defined as follows:
[0217] 8.5.6.3 Interpolation of fractional samples
[0218] 8.5.6.3.1 Overview
[0219] The input for this process is as follows: - The top left luminance sample of the current picture relative to the top left luminance sample of the current encoded subblock The luminance position (xSb, ySb) that defines the sample, - The variable sbWidth defines the width of the current coded subblock. - The variable sbHeight defines the height of the current coded subblock. - Motion vector offset mvOffset, - Finely tuned motion vector refMvLX, - Selected reference picture sample array refPicLX, - 1 / 2 sample interpolation filter index hpelIfIdx, - Bidirectional optical flow flag bdofFlag, - A variable cIdx that defines the color component index of the current block.
[0220] The output of this process is as follows: - Predicted sample value (sbWidth + brdExtSize) × (sbHeight) +brdExtSize) array predSamplesLX.
[0221] The predicted block boundary expansion size, brdExtSize, is derived as follows: brdExtSize=(bdofFlag||(inter_affine_flag [xSb][ySb] && sps_affine_prof_enabled_fl ag))?2:0 (8-752)
[0222] The variable fRefWidth is the PicOutput of the reference picture in the luminance sample. Set to equal to WidthL.
[0223] The variable fRefHeight is the PicOutput of the reference picture in the luminance sample. It is set to be equal to tHeightL.
[0224] The motion vector mvLX is set to equal to (refMvLX-mvOffset). . - If cIdx is equal to 0, the following applies: - The scaling factor and its fixed-point representation are defined as follows: hori_scale_fp=((fRefWidth<<14)+(PicOut putWidthL>>1)) / PicOutputWidthL (8-753) vert_scale_fp=((fRefHeight<<14)+(PicOu tputHeightL>>1)) / PicOutputHeightL (8-754 ) - Let (xIntL, yIntL) be the brightness position given by the full sample unit. Let (xFracL, yFracL) be the offset given in units of 1 / 16 samples. These variables, in this section only, represent fractional sample positions within the reference sample sequence refPicLX. It is used to define the location. - Reference sample bounding block for padding (xSbInt L ,ySbInt L The top-left coordinate of ) is (xSb+(mvLX[0]>>4),ySb+(mvLX[1]> Set to equal to >4)). - Each luminance sample position (x) in the predicted luminance sample array predSamplesLX L =0..sbWidth-1+brdExtSize,y L =0..sbHeight- For 1 + brdExtSize), the corresponding predicted luminance sample value predSampl esLX[x L ][y L The formula is derived as follows: - (refxSb L ,refySb L ) and (refx L ,refy L ) to 1 / Motion vector given in units of 16 samples (refMvLX[0],refMvLX[ Let this be the brightness position indicated by [1]). Variable refxSb L refx L refySb L , re fy L This is derived as follows: refxSb L =((xSb<<4)+refMvLX[0])*hori_sca le_fp (8-755) refx L =((Sign(refxSb)*((Abs(refxSb)+128 )>>8)+x L *((hori_scale_fp+8)>>4))+32)>>6 (8-756) refySb L =((ySb<<4)+refMvLX[1])*vert_sca le_fp (8-757) refyL=((Sign(refySb)*((Abs(refySb)+128 )>>8)+yL*((vert_scale_fp+8)>>4))+32)>>6 (8-758) - Variable xInt L , yInt L xFrac L , and yFrac L The following applies: This leads to the following: xCot L =refx L >>4 (8-759) yInt L =refy L >>4 (8-760) xFrac L =refx L &15 (8-761) yFrac L =refy L &15 (8-762) - Is bdofFlag equal to TRUE? (sps_affine_prof_en If abled_flag is equal to TRUE, inter_affine_flag[xS If [b][ySb] is equal to TRUE, and one or more of the following conditions are true, then the predicted luminance is Sample value predSamplesLX[x L ][y L This is specified in section 8.5.6.3.3. As shown, (xInt L +(xFrac L >>3)-1),yInt L +(yFrac L >>3)-1) and refPicLX to sample integer luminance samples It is derived by calling the extraction process. 1. x L It is equal to 0. 2. x L This is equal to sbWidth+1. 3. y L It is equal to 0. 4. y L This is equal to sbHeight+1. - Otherwise, as specified in Section 8.5.6.3.2, (xIntL-(b rdExtSize>0?1:0),yIntL-(brdExtSize>0?1:0 )), (xFracL,yFracL), (xSbInt L ,ySbInt L ), ref PicLX, hpelIfIdx, sbWidth, sbHeight, and (xSb By inputting ,ySb), we will call the luminance sample 8-tap interpolation filtering process. Therefore, the predicted luminance sample value predSamplesLX[x L ][y L Derive ]. - Otherwise (cIdx is not equal to 0), the following applies: - (xIntC, yIntC) is the chroma position given by the full sample unit. Let (xFracC, yFracC) be the offset given in units of 1 / 32 samples. These variables are, only in this section, general fractional values within the reference sample array refPicLX. It is used to define the location of the sample. - Reference sample bounding block for padding (xSbIntC, ySbIn The top-left coordinate of tC) is ((xSb / SubWidthC)+(mvLX[0]>>5), It is set to equal to (ySb / SubHeightC)+(mvLX[1]>>5)). - Predicted chroma sample sequence predSamplesLX, each chroma sample position ( For xC=0..sbWidth-1, yC=0..sbHeight-1), the correspondence is as follows: The predicted chroma sample values predSamplesLX[xC][yC] are as follows: This leads to the following: - (refxSb C ,refySb C ) and (refx C ,refy C ) to 1 The motion vector (mvLX[0], mvLX[1]) given in units of / 32 samples This will be used as the schroma position. Variable refxSb C refySb C refx C , refy C teeth The following is the derivation: refxSb C =((xSb / SubWidthC<<5)+mvLX[0])* hori_scale_fp (8-763) refx C =((Sign(refxSb C )*((Abs(refxSb C )+ 256)>>9)+xC*((hori_scale_fp+8)>>4))+16)> >5 (8-764) refySb C= ((ySb / SubHeightC << 5) + mvLX[1]) * vert_scale_fp (8 - 765) refy C = ((Sign(refySb C ) * ((Abs(refySb C ) + 256) >> 9) + yC * ((vert_scale_fp + 8) >> 4)) + 16) > > 5 (8 - 766) - The variable xInt C , yInt C , xFrac C , yFrac C are derived as follows. Derivation. xInt C = refx C >> 5 (8 - 767) yInt C = refy C >> 5 (8 - 768) xFrac C = refy C & 31 (8 - 769) yFrac C = refy C & 31 (8 - 770) - The predicted sample value predSamplesLX[xC][yC] is derived by calling the process specified in 8.5. 6.3.4 with (xIntC, yIntC), (xFracC, yFracC), (xSbIntC, ySbIntC) , sbWidth, sbHeight, and refPicLX as inputs.
[0225] 8.5.6.3.2 Luminance Sample Interpolation Filtering Process
[0226] The inputs to this process are as follows. - The luminance position in the full sample unit (xInt L , yInt L ), - Brightness position in fractional sample units (xFrac L yFrac L ), - Border for padding of the reference sample relative to the luminance sample in the upper left of the reference picture The full sample unit (xSbInt) defines the sample in the upper left of the block. L ,ySb Int L Brightness position in ) - Brightness reference sample array refPicLX L , - 1 / 2 sample interpolation filter index hpelIfIdx, - The variable sbWidth defines the width of the current subblock. - The variable sbHeight defines the height of the current subblock. - The top-left sample of the current subblock relative to the top-left luminance sample of the current picture. The luminance position (xSb, ySb) that defines it,
[0227] The output of this process is the predicted luminance sample value, predSampleLX. L That is the case.
[0228] The variables shift1, shift2, and shift3 are derived as follows: - Variable shift1 is Min(4, BitDepth Y Set to equal to _8), and variable s Set hift2 to equal to 6, and set the variable shift3 to Max(2,14-BitDept h Y Set to equal to ). - The variable picW is set to equal pic_width_in_luma_samples. And the variable picH is equal to pic_height_in_luma_samples It will be set.
[0229] xFrac L or yFrac LBrightness for each 1 / 16 fractional sample position p equal to Interpolation filter coefficient f L [p] is derived as follows: - MotionModelIdc[xSb][ySb] is greater than 0, and sbWidth When both h and sbHeight are equal to 4, the luminance interpolation filter coefficient f L [p] Specify in Table 8-12. - Otherwise, the luminance interpolation filter coefficient f is determined based on hpelIfIdx. L [p] Specify in Table 8-11.
[0230] If i=0..7, the full sample unit (xInt i ,yInt i ) Brightness The position is derived as follows: - subpic_treated_as_pic_flag[SubPicIdx] If it is equal to 1, the following applies: xCot i =Clip3(SubPicLeftBoundaryPos,SubPi cRightBoundaryPos,xInt L +i-3) (8-771) yInt i =Clip3(SubPicTopBoundaryPos,SubPic BotBoundaryPos,yInt L +i-3) (8-772) - Otherwise (subpic_treated_as_pic_flag[Sub If [PicIdx] is equal to 0, the following applies: xCot i =Clip3(0,picW-1,sps_ref_wraparound _enabled_flag? ClipH((sps_ref_wraparound_offset_minus 1+1)*MinCbSizeY,picW,xInt L +i-3): (8-773) xCot L +i-3) yInt i =Clip3(0,picH-1,yInt L +i-3) (8-77 4)
[0231] When i=0..7, the brightness position in the full sample unit is further as follows: It will be corrected. xCot i =Clip3(xSbInt L -3, xSbInt L +sbWidth+4 xInt i (8-775) yInt i =Clip3(ySbInt L -3, ySbInt L +sbHeight+ 4, yInt i ) (8-776)
[0232] Predicted luminance sample value predSampleLX L This is derived as follows: - Both xFrac L and yFrac L If it is equal to 0, predSampleL X L The value of is derived as follows: predSampleLX L =refPicLX L [xInt3][yInt3]< hift3 (8-777) - No, xFrac L If yFrac is not equal to 0, L If it is equal to 0, predSampleLX L The value of is derived as follows: predSampleLX L =( Σ 7 i=0 f L [xFrac L ][i]*ref PicL W L [xInt i ][yInt3])>>shift1 (8-778) - No, xFrac L If yFrac is equal to 0, L If p is not equal to 0, redSampleLX L The value of is derived as follows: predSampleLX L =( Σ 7 i=0 f L [yFrac L ][i]*ref PicL W L [xInt3][yInt i ])>>shift1 (8-779) - No, xFrac L If yFrac is not equal to 0, L If it is not equal to 0 predSampleLX L The value of is derived as follows: - The sample array temp[n] for n=0..7 is derived as follows: temp[n]=( Σ 7 i=0 f L [xFrac L ][i]*refPicLX L [xI nt i ][yInt n ])>>shift1 (8-780) - Predicted luminance sample value predSampleLX L This is derived as follows: predSampleLX L =( Σ 7 i=0 f L [yFrac L][i]*temp[i ])>>shift2 (8-781)
[0233] [Table 4]
[0234] [Table 5]
[0235] 8.5.6.3.3 Brightness integer sample extraction process
[0236] The input for this process is as follows: - Full sample unit (xInt L ,yInt L Brightness position in ) - Brightness reference sample array refPicLX L ,
[0237] The output of this process is the predicted luminance sample value, predSampleLX. L That is the case. This variable shift is Max(2,14-BitDepth Y Set to equal to ) . The variable picW is set to be equal to pic_width_in_luma_samples. Therefore, the variable picH is set to be equal to pic_height_in_luma_samples. It is determined.
[0238] The brightness position in the full sample unit (xInt, yInt) is derived as follows: do. xInt=Clip3(0,picW-1,sps_ref_wraparound _enabled_flag? (8-782) ClipH((sps_ref_wraparound_offset_min us1+1)*MinCbSizeY,picW,xInt L ):xInt L ) yInt=Clip3(0,picH-1,yInt L ) (8-783)
[0239] Predicted luminance sample value predSampleLX L This is derived as follows: predSampleLX L =refPicLX L [xInt][yInt]< hift3 (8-784)
[0240] 8.5.6.3.4 Chroma Sample Interpolation Processing
[0241] The input for this process is as follows: - Full sample unit (xInt C ,yInt C ) Chroma position, - Chroma position in fractional sample units of 1 / 32 (xFrac C yFrac C ), - Border for reference sample padding relative to the chroma sample in the upper left of the reference picture The full sample unit (xSbIntC,ySb) defines the sample in the upper left of the block. Chroma position in IntC) - The variable sbWidth defines the width of the current subblock. - The variable sbHeight defines the height of the current subblock. - Chroma reference sample sequence refPicLX C .
[0242] The output of this process is the predicted chroma sample value, predSampleLX. C That is the case.
[0243] The variables shift1, shift2, and shift3 are derived as follows: - Variable shift1 is Min(4, BitDepth C Set to equal to -8, variable sh Set ift2 to equal to 6, and set variable shift3 to Max(2,14-BitDepth C Set to equal to ). - Variable picW C is pic_width_in_luma_samples / SubW Set to equal to idthC, variable picH C is pic_height_in_luma It will be set to be equal to _samples / SubHeightC.
[0244] Table 8-13 shows xFrac C or yFrac C Each 1 / 32 fractional sample position is equal to Chroma interpolation filter coefficient f of p C [p] indicates
[0245] The variable xOffset is (sps_ref_wraparound_offset_m It is set to equal to inus1+1)*MinCbSizeY) / SubWidthC.
[0246] If i=0..3, the full sample unit (xInt i ,yInt i ) in The position of M is derived as follows: - subpic_treated_as_pic_flag[SubPicIdx] If it is equal to 1, the following applies: xCot i =Clip3(SubPicLeftBoundaryPos / SubWi dthC,SubPicRightBoundaryPos / SubWidthC,xI nt L +i) (8-785) yInti =Clip3(SubPicTopBoundaryPos / SubHei ghtC,SubPicBotBoundaryPos / SubHeightC,yIn t L +i) (8-786) - Otherwise (subpic_treated_as_pic_flag[Sub If [PicIdx] is equal to 0, the following applies: xCot i =Clip3(0,picW C -1,sps_ref_wraparoun d_enabled_flag?ClipH(xOffset,picW C xInt C +i-1): (8-787) xCot C +i-1) yInt i =Clip3(0,picH C -1, yInt C +i-1) (8-78 8)
[0247] Full sample unit (xInt i ,yInt i The chroma position in ) is i=0... In case 3, it is further modified as follows: xCot i =Clip3(xSbIntC-1,xSbIntC+sbWidth+2 xInt i ) (8-789) yInt i =Clip3(ySbIntC-1,ySbIntC+sbHeight+ 2, yInt i (8-790)
[0248] Predicted ChromaSample Values predSampleLX C This is derived as follows: - xFracC and yFrac C If both are equal to 0, predSampleL X C The value of is derived as follows: predSampleLX C =refPicLX C [xInt1][yInt1] < <shift3 (8-791) - No, xFrac C If yFrac is not equal to 0, C If is equal to 0, p redSampleLX C The value of is derived as follows: predSampleLX C =( Σ 3 i=0 f C [xFrac C ][i]*ref PicL W C [xInt i ][yInt1])>>shift1 (8-792) - No, xFrac C If yFrac is equal to 0, C If p is not equal to 0, redSampleLX C The value of is derived as follows: predSampleLX C =( Σ 3 i=0 f C [yFrac C ][i]*ref PicL W C [xInt1][yInt i ])>>shift1 (8-793) - No, xFrac C If yFrac is not equal to 0, C If it is not equal to 0 predSampleLX C The value of is derived as follows: - The sample array temp[n] for n=0..3 is derived as follows: temp[n]=( Σ 3 i=0 f C [xFrac C ][i]*refPicLX C [xInt i ][yInt n ])>>shift1 (8-794) - Predicted chroma sample value predSampleLX C This is derived as follows: predSampleLX C =( f C [yFrac C ][0]*temp[0] +f C [yFrac C ][1]*temp[1]+f C [yFrac C ][2]*tem p[2]+ (8-795) f C [yFrac C ][3]*temp[3])>>shift2
[0249] [Table 6] [Table 7]
[0250] 2.6 Embodiments Using Subpictures
[0251] In the current syntax design of subpictures in existing implementations, the position of the subpicture and The dimensions are derived as follows:
[0252] [Table 8]
[0253] [ka]
[0254] The variable NumSubPicGridCols is derived as follows: NumSubPicGridCols=(pic_width_max_in_luma _samples+subpic_grid_col_width_minus1*4+ 3) / (subpic_grid_col_width_minus1*4+4) (7- 5)
[0255] [ka]
[0256] The variable NumSubPicGridRows is derived as follows: NumSubPicGridRows=(pic_height_max_in_lum a_samples+subpic_grid_row_height_minus1* 4+3) / (subpic_grid_row_height_minus1*4+4) (7 -6)
[0257] [ka]
[0258] Variables SubPicTop[subpic_grid_idx[i][j]], SubP icLeft[subpic_grid_idx[i][j]], SubPicWidt h [subpic_grid_idx[i][j]], SubPicHeight[sub pic_grid_idx[i][j]], and NumSubPics are derived as follows To release.
[0259] NumSubPics=0 for(i=0;i.<NumSubPicGridRows;i++){ for(j=0;j<NumSubPicGridCols;j++){ if(i==0) SubPicTop[subpic_grid_idx[i][j]]=0 else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i-1][j]){ SubPicTop[subpic_grid_idx[i][j]]=i SubPicHeight[subpic_grid_idx[i-1][j]] =i-SubPicTop[subpic_grid_idx[i-1][j]] } if(j==0) SubPicLeft[subpic_grid_idx[i][j]]=0 ( 7-7) else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i][j-1]){ SubPicLeft[subpic_grid_idx[i][j]]=j SubPicWidth[subpic_grid_idx[i][j]]=j- SubPicLeft[subpic_grid_idx[i][j-1]] } if(i==NumSubPicGridRows-1) SubPicHeight[subpic_grid_idx[i][j]]=i -SubPicTop[subpic_grid_idx[i-1][j]]+1 i f(j==NumSubPicGridRows-1) SubPicWidth[subpic_grid_idx[i][j]]=j- SubPicLeft[subpic_grid_idx[i][j-1]]+1 if(subpic_grid_idx[i][j]>NumSubPics) NumSubPics=subpic_grid_idx[i][j] } }
[0260] [ka]
[0261] 2.7 Inter-intra-connection prediction (CIIP)
[0262] Inter-intra merge prediction uses CIIP (Combined) as a special merge candidate. Inter-Intra Prediction is adopted for VVC. This is because W <= This can only be enabled for W×H blocks with 64 and H <= 64.
[0263] 3. Disadvantages of existing implementations
[0264] In current VVC designs, ATMVP has the following problems: 1) Whether or not ATMVP is applied is inconsistent at the slice level and the CU level. 2) In the slice header, ATMVP may be enabled even if TMVP is disabled. On the other hand, the ATMVP flag is signaled before the TMVP flag. 3) Masking is always performed, regardless of whether the MV is compressed or not. 4) The effective corresponding area may be too large. 5) The derivation of TMV is very complex. 6) A better default MV is desirable, even if ATMVP is unavailable. 7) The MV scaling method in ATMVP does not need to be efficient. 8) ATMVP should consider CPR cases. 9) Even if affine prediction is disabled, the default 0 affine merge candidates are included in the list. You can do that. 10) The current picture is treated as a long-term reference picture, and other pictures are treated as short-term reference pictures. They will be treated as chats. For both ATMVP and TMVP candidates, collocation Motion information from a time block in a picture is fixed to a reference index. It scales to a reference picture that has (i.e., each reference picture in the current design) (0 for the character). However, when CPR mode is enabled, the current picture It is also treated as a reference picture, and the current picture has an index equal to 0. You can also add it to Reference Picture List 0 (RefPicList0). a. In TMVP, the temporal block is encoded in CPR mode, RefPic If the reference picture in List0 is a short reference picture, TMVP candidates are unavailable. It will be set. b. The referenced picture in RefPicList0 with index 0 is the current picture. Yes, the current picture is an intra-random access point (IRAP) picture. In this case, the ATMVP candidate will be set to unavailable. c. In the case of ATMVP subblocks within a single block, from one temporal block When deriving motion information for a subblock, this temporal block is encoded in CPR mode. If this is the case, the default ATMVP candidate will populate the movement information of this subblock. Supplement (A single time block identified by the starting TMV and the center position of the current block) The (derived from) is used. 11) MV is right-shifted to integer precision, but does not follow the rounding rules in VVC. 12) In ATMVP, the position of corresponding blocks in different pictures is defined. MV(MVx,MVy) (for example, TMV is 0) used for this purpose is collocation It is used as is because it refers to a picture that has been processed with the same resolution. This is based on the assumption that it is a certain degree. However, if RPR is enabled, different pictures You may use the resolution. To derive subblock motion information, collocations are used. A similar problem exists with identifying the corresponding block in a picture. ru. 13) The width or height of one block is greater than 32, and the CIIP coded block If the maximum conversion block size is 32, then generate an intra-predictive signal with CU size. On the other hand, the interpretation signal is generated in TU size (multiple 32x current blocks). (Recursively divide into 32 blocks). Deriving the intra-predictive signal using CU is possible. This results in lower efficiency.
[0265] The current design has problems. Firstly, RefPicList0 has an index of 0. If the reference picture is the current picture, and the current picture is not an IRAP picture The ATMVP procedure is still invoked, but neither of the time-moving vectors is current Since scaling to fit the picture is not possible, the ATMVP procedure is available. We were unable to find a suitable candidate for ATMVP.
[0266] 4. Examples of Embodiments and Techniques
[0267] The following list of techniques and embodiments is considered an example to illustrate the general concept. It should be. These technologies should not be interpreted in a narrow sense. Furthermore, these technologies These can be combined in any way according to the encoder or decoder embodiment. ru.
[0268] 1. Whether TMVP is permitted and / or whether CPR is used, To determine / parse the maximum number of candidates in the subblock merge candidate list, and / or considered in determining whether an ATMVP candidate should be added to the candidate list. It should be set to the maximum number of subblock merge candidates in the list, which should be defined as ML. a) In one example, ATMVP is the most promising candidate in the subblock merge candidate list. In large number determination or parsing, the ATMVP usage flag is off (equal to 0). Alternatively, if TMVP is disabled, it is presumed that this is not applicable. i. In one example, the ATMVP usage flag is on (equal to 1), and TMVP If disabled, ATMVP candidates are in the subblock merge candidate list or AT Not added to the MVP candidate list. ii. In one example, the ATMVP usage flag is on (equal to 1), and TMV If P is disabled and the affine usage flag is off (equal to 0), ML If this is set to equal to 0, it means that subblock merging is not applicable. iii. In one example, the ATMVP usage flag is on (equal to 1), and TM If VP is enabled and the affine usage flag is off (equal to 0), then ML is equal to 1. It will be set accordingly. b) In one example, ATMVP is enabled when the ATMVP usage flag is off (equal to 0) Or, the collocated reference picture of the current picture is the current picture itself. If so, determine the maximum number of candidates in the subblock merge candidate list or parse the syntax. It is presumed that it will not be applicable at that time. i. In one example, the ATMVP usage flag is on (equal to 1), and the current P If the collocated reference picture of Kucha is the current picture itself, AT MVP candidates are not added to the subblock merge candidate list or the ATMVP candidate list. stomach. ii. In one example, the ATMVP usage flag is on (equal to 1), and the current The collocated reference picture of the picture is the current picture itself, and affiliate If the usage flag is off (equal to 0), ML is set to equal to 0, which means that This means that block merging is not applicable. iii. In one example, the ATMVP usage flag is on (equal to 1), and currently The collocated reference picture of the picture is not the current picture itself, but the after If the 'In Use' flag is off (equal to 0), ML is set to equal to 1. c) In one example, the ATMVP usage flag is off (equal to 0), or The reference picture with reference picture index 0 in reference list 0 is the current picture. If that is the case, ATMVP is the largest candidate in the subblock merge candidate list. It is presumed that this is not applicable when determining or parsing numbers. i. In one example, the ATMVP usage flag is on (equal to 1), and the reference list A collocated reference picture with reference picture index 0 in T0 is The current picture itself, and the ATMVP candidate is in the subblock merge candidate list. They will not be added to the ATMVP candidate list. ii. In one example, the ATMVP usage flag is on (equal to 1), and the reference The reference picture with reference picture index 0 in Street 0 is the current picture itself If the affine usage flag is off (equal to 0), then ML is equal to 0. This setting means that subblock merging is not applicable. iii. In one example, the ATMVP usage flag is on (equal to 1), and reference The referenced picture with referenced picture index 0 in List 0 is the current picture. Rather than that, if the affine usage flag is off (equal to 0), ML is equal to 1. It will be set accordingly. d) In one example, the ATMVP usage flag is off (equal to 0), or The reference picture with reference picture index 0 in reference list 1 is the current picture. If that is the case, ATMVP is the largest candidate in the subblock merge candidate list. It is presumed that this is not applicable when determining or parsing numbers. i. In one example, the ATMVP usage flag is on (equal to 1), and the reference list The collocated reference picture with reference picture index 0 in T1 is The current picture itself, and the ATMVP candidate is in the subblock merge candidate list. They will not be added to the ATMVP candidate list. ii. In one example, the ATMVP usage flag is on (equal to 1), and the reference The reference picture with reference picture index 0 in Street 1 is the current picture itself If the affine usage flag is off (equal to 0), then ML is equal to 0. This setting means that subblock merging is not applicable. iii. In one example, the ATMVP usage flag is on (equal to 1), and reference The reference picture with reference picture index 0 in List 1 is the current picture. If it is not the case and the affine usage flag is off (equal to 0), then ML is equal to 1. It will be set.
[0269] 2. If TMVP is disabled at the slice / tile / picture level, ATMV P is implicitly disabled, and the ATMVP flag is not signaled. a) In one example, the ATMVP flag is set in the slice header / tile header / PPS. The signal is sent after the TMVP flag. b) In one example, the ATMVP and / or TMVP flags are used in the slice header / Signaling is not required in the tile header / PPS, and is only required in the SPS header. The number will be notified.
[0270] 3. Whether to mask the corresponding location in ATMVP, and how to mask it. Whether or not depends on whether the MV is compressed and how it is compressed. (xN, yN) is the coordinator of the current block / subblock and the coordinator The starting motion vector (e.g., TMV) in the selected picture is used to calculate the result. Let's assume it's the corresponding position. a) In one example, when it is not necessary to compress the MV (for example, when signaled by SPS) (If sps_disable_motioncompression is 1), (xN (xN,y) is not masked. Otherwise, (MV needs to be compressed) (xN,y N) is masked as xN=xN&MASK, yN=yN&MASK. Here, MA SK is ~(2 M It is equal to -1), where M is an integer such as 3 or 4. b) 2 each K ×2 K The MV compression method for MV memory results in a block is the same motion information Share and use the mask in ATMVP processing ~(2 M -1) is defined as K is equal to M. It is not necessary; for example, it is assumed that M = K + 1. c) The MASK used in ATMVP and TMVP may be the same or different. It's okay if it is.
[0271] 4. In one example, the MV compression method may be flexible. a) In one example, the MV compression method is uncompressed, 8x8 compression (in Bullet3.a) Choose between M=3) or 16x16 compression (M=4 in Bullet3.a). It is possible. b) In one example, the MV compression method is VPS / SPS / PPS / slice header / The group header may be signaled. c) In one example, the MV compression method is used in different standard profiles / levels / layers. You can set it differently.
[0272] 5. The effective corresponding areas in ATMVP may be adaptable. a) For example, the valid corresponding area may depend on the width and height of the current block. stomach. b) For example, the effective coverage area may depend on the MV compression method. i. In one example, if the MV compression method is not used, the effective coverage area is smaller. Furthermore, when the MV compression method is used, the effective supported area is larger.
[0273] 6. The effective corresponding area in ATMVP is smaller than the CTU area, with a size of M × N. It may be based on a basic domain having the following: For example, the size of the CTU in VTM-3.0 is The size is 128x128, and the basic area size may be 64x64. Current block Let W and H be the width and height of the element. a) In one example, W <= M and H <= N, and the current block is one basic domain If it means being inside the region, then the valid corresponding region in ATMVP is the croque This is an extension in the collocated basic area and collocated picture. Figure 2 Number 7 provides an example. i. For example, suppose the top-left position of the placed basic region is (xBR, yBR). Therefore, the corresponding position in (xN, yN) is in the effective region xBR <= xN <xBR+M+4 ;yBR<=yN <yBR+Nにクリッピングされる。
[0274] Figure 27 shows the proposed effective area when the current block is within the basic area (BR). An exemplary embodiment is shown.
[0275] Figure 28 shows an exemplary embodiment of the effective area when the current block is not within the basic area. vinegar. b) In one example, if W > M and H > N, then the current block is one base This means it is not within the area, and divides the current block into multiple parts. Each part is ATMV Within P, there are individual valid corresponding regions. The corresponding location B in the located block is the part in which location A is located. It should be within the corresponding effective area. i. For example, divide the current block into non-overlapping primary regions. Each primary region corresponds to The effective area is the basic colocation area and the collocated picture. This is an extension. Figure 28 shows an example. 1. For example, suppose the current block's position A is within one basic region R. The basic collocation area for R in a collated picture is defined as CR. The corresponding position of A in the selected block is position B, and the upper left position of CR is ( (xCR, yCR) and then, the effective region xCR <= xN < xCR+M+4;yCR<=yN <yCR+Nにクリッピングされる。
[0276] 7. The position of corresponding blocks in different pictures as used in ATMVP. The motion vectors used to define this can be derived as follows (for example, 2.3 (TMV in .5.1.2). a) In one example, TMV is always set to be equal to the default MV, such as (0,0). It can be done. i. In one example, the default MV is VPS / SPS / PPS / slice header. The signal is notified in the / tile group header / CTU / CU. b) In one example, the TMV is stored in the HMVP table in the following way: Set as MV. i. If the HMVP list is empty, TMV will default to MV, for example (0,0 It is set to be equal to ). ii. Otherwise (the HMVP list is not empty), 1. TMV may be set to be equal to the first element stored in the HMVP table. stomach. 2. Alternatively, TMV is set to be equal to the last element stored in the HMVP table. It may be determined. 3. Alternatively, TMV may be set to be equal to a specific MV stored in the HMVP table. It may be determined. a. In one example, a specific MV refers to reference list 0. b. In one example, a specific MV refers to reference list 1. c. In one example, a specific MV is a specific reference picture in reference list 0. For example, it refers to a referenced picture with index 0. d. In one example, a specific MV is a specific reference picture in reference list 1. For example, it refers to a referenced picture with index 0. e. In one example, a particular music video references a collocated picture. . 4. Alternatively, a specific MV stored in the HMVP table (for example, bull If the value described in t3. is not found, you may set TMV to be equal to the default MV. a. In one example, search only the first element stored in the HMVP table, Find a specific music video. b. In one example, search only the last element stored in the HMVP table, Find a specific music video. c. In one example, examine some or all of the elements stored in the HMVP table. Search and find a specific music video. 5. Alternatively, the TMV obtained from HMVP is the current picture itself. It is not possible to refer to it. 6. Alternatively, the TMV obtained from the HMVP table is not referenced. If not, the image may be scaled to fit the collocated picture. c) In one example, the TMV is set to one MV of one particular neighborhood block. Other neighboring blocks are not included. i. A specific neighboring block is one of blocks A0, A1, B0, B1, B2 in Figure 22. It's okay to have it. ii. TMV may be set to be equal to the default MV in the following cases: 1. No specific neighboring blocks exist. 2. Certain neighboring blocks are not intercoded. iii. The TMV is set to be equal to a specific MV stored in a specific neighboring block. That's fine. 1. In one example, a specific MV refers to reference list 0. 2. In one example, a specific MV refers to reference list 1. 3. In one example, a specific MV is a specific reference picture in reference list 0, For example, it refers to a reference picture with index 0. 4. In one example, a specific MV is a specific reference picture in reference list 1, For example, it refers to a reference picture with index 0. 5. In one example, a specific music video references a collocated picture. 6. If a specific MV stored in a particular neighboring block is not found, then TMV You may set this to be equal to the default MV. iv. A TMV obtained from a particular neighboring block may not refer to a corolla if it does not. It may be scaled to fit the condensed picture. v. A TMV obtained from a specific neighboring block refers to the current picture itself. It is not possible.
[0277] 8. As disclosed in 2.3.5.1.2, MV used in ATMVP default0 and MVdefault1 may also be derived as follows: a) In one example, MVdefault0 and MVdefault1 are (0,0 It is set to be equal to ). b) In one example, MVdefaultX (X=0 or 1) is derived from HMVP do. i. If the HMVP list is empty, MVdefaultX will be a default value such as (0,0). It is set to be equal to the defined default MV. 1. The predefined default MV is VPS / SPS / PPS / slice header The data / tile group header / CTU / CU may be signaled. ii. Otherwise (the HMVP list is not empty), 1. MVdefaultX is equal to the first element stored in the HMVP table. You can set it to that. 2. MVdefaultX is equal to the last element stored in the HMVP table. You can set it to that. 3. MVdefaultX is only for specific MVs stored in the HMVP table. They may be set to be equal. a. In one example, a specific MV refers to reference list X. b. In one example, a particular MV is a particular reference picture in reference list X. For example, it refers to a referenced picture with index 0. 4. If a specific MV stored in the HMVP table is not found, MVdef You may set aultX to be equal to the predefined default MV. a. In one example, search only the first element stored in the HMVP table. . b. In one example, search only the last element stored in the HMVP table. . c. In one example, examine some or all of the elements stored in the HMVP table. To search. 5. MVdefaultX obtained from the HMVP table is not referenced. In combination with a collocated picture. It may be scaled. 6. MVdefaultX obtained from HMVP is the current picture itself It cannot be referenced. c) In one example, MVdefaultX(X=0 or 1) is a neighboring block or We derive it from there. i. Neighboring blocks include blocks A0, A1, B0, B1, and B2 in Figure 22. That's good too. 1. For example, you can use only one of these blocks to execute MVdefaultX. To release. 2. Alternatively, use some or all of these blocks with MVdefaul Derive tX. a. These blocks will be processed sequentially until a valid MVdefaultX is found. It will be checked. 3. If a valid MVdefaultX is found in one or more selected neighboring blocks... If not found, it is set to a predefined default MV such as (0,0). It can be done. a. The predefined default MV is VPS / SPS / PPS / slice The data may be signaled in the lid / tile group header / CTU / CU. ii. If a valid MVdefaultX is not found in a particular neighboring block: I don't know. 1. No specific neighboring blocks exist. 2. Certain neighboring blocks are not intercoded. iii. MVdefaultX is a specific MV stored in a specific neighboring block. It may also be set to be equal only to [this value]. 1. In one example, a specific MV refers to reference list X. 2. In one example, a particular MV may have a specific reference picture in reference list X. For example, a reference picture with index 0 could be used. iv. MVdefaultX obtained from a specific neighboring block, to a specific reference pin For example, scaling to the reference picture with index 0 in reference list X. You can do it. v. MVdefaultX obtained from a specific neighboring block is the current picture It is not possible to refer to that thing.
[0278] 9. For either a subblock or non-subblock ATMVP candidate, co-location One subblock / one temporal block for the entire block in a selected picture If the lock is encoded in CPR mode, instead use one default motion candidate. It may be used. a) In one example, the default motion candidate is associated with the center position of the current block. It may be defined as a candidate for a given movement (for example, as disclosed in 2.3.5.1.2). , MVdefault0 and / or MVdefaul used in ATMVP t1). b) In one example, the default motion candidate is both reference pictures if available. For the character, the (0,0) motion vector and the reference picture index equal to 0. It may also be defined as follows.
[0279] 10. Note that default behavior information in ATMVP processing (for example, 2.3.5.1. As disclosed in 2, MVdefault0 and MVde used in ATMVP Fault 1) is based on the location of the position used in the subblock motion information derivation process. It may be derived by this. In this proposed method, for its subblock, default Since motion information is directly assigned, there is no need to further derive motion information. a) In one example, instead of using the center position of the current block, the current block You may also use the center position of a subblock (for example, a central subblock). b) Examples of existing and proposed implementations are shown in Figures 29A and 29B, respectively.
[0280] 11. ATMVP candidates are to always be made available in the following ways: a) If the center point of the current block is (x0, y0), then the collocated blocks The corresponding positions of (x0, y0) in the ch are given by M = (x0 + MV'x, y0 + MV'y). Let's find block Z containing M. If Z is intra-encoded, then item 6 Derive MVdefault0 and MVdefault1 by some proposed method. ru. b) Alternatively, block Z is not placed to acquire motion information, as suggested in item 8. Several methods are used to obtain MVdefault0 and MVdefault1. It is applied directly for that purpose. c) Alternatively, the default motion candidates used in ATMVP processing are always available. Based on the current design, it is set to be unavailable (for example, temporal If the lock is intra-encoded, another motion vector will be used instead of the default motion candidate. You may use Tor. i. In one example, the international application PCT / CN20 incorporated herein by reference The solution in issue 18 / 124639 may be applied. d) Alternatively, whether ATMVP candidates are always available depends on other high-level It depends on the Bell syntax information. i. In one example, to slice / tile / picture header or other video unit ATMVP candidate only if the ATMVP enable flag is presumed to be true. It may be set to always be available. ii. In one example, the above method may involve a slice header / picture header or other visual The ATMVP enable flag in the image unit is set to true, and the current picture is Not an IRAP picture, and the current picture has a reference index equal to 0. It may be applicable only if it is not inserted in icList0. e) ATMVP candidates are allocated a fixed index or a fixed group index. It can be assigned. If an ATMVP candidate is not always available, a fixed index / group index can be assigned. The algorithm may also infer other types of motion candidates (e.g., affine candidates).
[0281] [ka]
[0282] 13. Note that non-affine padding candidates may also be included in the subblock merge candidate list. It is considered to be. a) If the subblock merge candidate list is not filled, zero movement non-affine part You may add more candidates for the ding. b) If you select such padding candidates, the current block will have affine_ The flag needs to be set to 0. c) Alternatively, if the list of candidate subblock merges is not filled, and affine usage is used If lag is off, zero-movement non-affine padding candidate subblock merge candidate Include it in the stock.
[0283] 14. MV0 and MV1 are reference list 0 and reference list 1 of the block containing the corresponding location. Let's assume that these represent MV (for example, MV0 and MV1 are explained in Chapter 2.3.5.1.2) (This could be MVZ_0 and MVZ_1, or MVZS_0 and MVZS_1). MV0 'and MV1' is the list of references to be derived for the current block or subblock. Represents MV in T0 and reference list 1. In that case, MV0' and MV1' are S It should be derived by Kaling. a) MV0, if the collocated picture is in reference list 1. b) MV1, if the collocated picture is in reference list 0.
[0284] 15. In a reference picture list X (PicRefListX, for example, X=0), Treat the current picture as a reference picture with index M (for example, 0). In this case, the ATMVP and / or TMVP allow / deny flags are for slices / tiles or It may be inferred to be false to other types of video units. Here, M is ATMV In P / TMVP processing, time block motion information is sent to PicRefListX. It may be equal to the picture index of the object reference to be scaled. a) Alternatively, the above method may be used if the current picture is an intra-random access point ( IRAP is only applicable if it is a picture. b) In one example, index the current picture in PicRefListX If it is treated as a reference picture set to M (for example, 0), and / or Pic A reference picture whose index in RefListY is set to N (for example, 0) and When treating it this way, it is assumed that the ATMVP and / or TMVP allow / deny flags are false. This is also acceptable. Variables M and N are objects used in TMVP or ATMVP processing. This represents the reference picture index. c) In the case of ATMVP processing, the confirmation bitstream contains the movement information of the current block. The rule is that the derived collocated picture is not the current picture. It's restricted. d) Alternatively, if the above conditions are true, the ATMVP or TMVP process is invoked It will not be done.
[0285] 16. Reference picture list X for the current block (PicRefListX, for example) For example, a reference picture whose index at X=0 is set to M (for example, 0) is currently If it is a picture, ATMVP can still be enabled for this block. It is being done. a) In one example, the motion information for all subblocks refers to the current picture. b) In one example, when obtaining motion information of a subblock from a time block, An intertemporal block is a reference picture that points to the current picture of the temporal block. It is encoded as follows. c) In one example, when obtaining motion information of a subblock from a time block, Kaling operations are not applied.
[0286] 17. Regardless of the use of ATMVP, how should the subblock merge index be encoded? To unify. a) In one example, for the first L bins, they are context-encoded. The remaining bins are bypass-encoded. In one example, L is set to 1. b) Alternatively, for all bins, they are context-encoded.
[0287] 18. In ATMVP, to find corresponding blocks in different pictures. The MV(MVx,MVy) used in this (for example, TMV is 0) is the MV scaling process. Using a similar rounding method, we right-shift to integer precision (denoted as MVx', MVy'). That's fine. a) Alternatively, in ATMVP, locate the corresponding blocks within different pictures. The MV used (for example, TMV is 0) is rounded using the same rounding method as the MV averaging process. You may also right-shift to integer precision. b) Alternatively, in ATMVP, locate the corresponding block within a different picture. The MV used (for example, TMV is 0) is used for Adaptive MV Resolution (AMVR) processing. You could also right-shift to integer precision using the same rounding method.
[0288] 19. In ATMVP, to find corresponding blocks in different pictures. The MV(MVx,MVy) used in this (for example, TMV is 0) is rounded in the direction of approaching 0. You can also right-shift to integer precision (denoted as (MVx',MVy')). a) For example, MVx' = (MVx + ((1<<N)> >1)-(MVx>=0?1: 0))>>N;N is an integer representing the resolution of the MV, for example, N=4. i. For example, MVx' = (MVx + (MVx >= 0 ? 7 : 8)) >> 4. b) For example, MVy'=(MVy+((1<<N)> >1)-(MVy>=0?1: 0))>>N;N is an integer representing the resolution of the MV, for example, N=4. i. For example, MVy'=(MVy+(MVy>=0?7:8))>>4.
[0289] 20. In one example, MV(MVx) in bullet18 and bullet19. ,MVy) is used to derive the default motion information used in ATMVP. Using the center position of the subblock and the shifted MV, or the left of the current block Using the upper position and shifted MV, to define the position of the corresponding block It is used. a) In one example, MV(MVx,MVy) is the current block during ATMVP processing. To derive the movement information of subblocks in the 'K', for example, the center position of the subblock And the shifted MV is used to define the position of the corresponding block. ru.
[0290] 21. The methods proposed in bullet 18, 19, and 20 are different pictures or currently Others that require defining the position of a reference block in a picture using a motion vector It may also be applied to encoding tools.
[0291] 22. Used in ATMVP to find corresponding blocks within different pictures. The MV(MVx,MVy) (for example, TMV at 0) is collocation The picture may be scaled or modified. a) In one example, collocated pictures (or conformance within them) The width and / or height of the window is determined by the current picture (or the comfort within it). If the width and / or height of the monthly window differs, you can scale the MV. stomach. b) Width and height of the collocated pictures (in the conformance window) These are shown as W1 and H1, respectively. Current picture (conformance win Let the width and height of the dow be W2 and H2, respectively. Then, MV(MVx,MVy ) scales as MVx'=MVx*W1 / W2 and MVy'=MVy*H1 / H2 It can also be used as a ring.
[0292] 23. The current block used to derive motion information in ATMVP processing The center point (for example, the position (x0, y0) in 2.3.5.1.2) is scaled Further modifications may be made by adding a call / offset. a) In one example, collocated pictures (or conformance within them) The width and / or height of the window is the same as the current picture (or the conformer within it). If the width and / or height of the center point differs from that of the window, you may further adjust the center point. . b) The top-left position of the conformance window in a collocated picture Let the position be X1 and Y1. The conformance window defined in the current picture Let the top left position be X2 and Y2. Collocated picture (conformation) The width and height of the window are shown as W1 and H1, respectively. Set the width and height of the (conformance window) to W2 and H2, respectively. In that case, (x0, y0) is x0' = (x0 - X2) * W1 / W2 + X1, y0' Alternatively, you can modify it as =(y0-Y2)*H1 / H2+Y1. i. Alternatively, x0' = x0 * W1 / W2 and y0' = y0 * H1 / H2.
[0293] 24. Corresponding positions used to derive motion information in ATMVP processing (e.g.) For example, position M) in 2.3.5.1.2 is scaled and / or offset. Further modifications may be made by adding... a) In one example, collocated pictures (or conformance within them) The width and / or height of the window is the same as the current picture (or the conformer within it). If the width and / or height of the (window) is different, further adjust the corresponding position. That's good too. b) The top-left position of the conformance window in a collocated picture Let the position be X1 and Y1. The conformance window defined in the current picture Let the top left position be X2 and Y2. Collocated picture (conformation) The width and height of the window are shown as W1 and H1, respectively. Set the width and height of the (conformance window) to W2 and H2, respectively. In that case, M(x,y) is x'=(x-X2)*W1 / W2+X1 and y'=( You can also correct it as y-Y2)*H1 / H2+Y1. i. Alternatively, x' = x * W1 / W2 and y' = y * H1 / H2.
[0294] Sub-picture related
[0295] 25. In one example, subpictures with different positions (i,j) and (i,j-1) belong to different subpictures. In this case, the width of subpicture S ending at column (j-1) is j - the leftmost column of subpicture S. They may be set to be equal. a) Embodiments based on existing implementation examples are highlighted below. NumSubPics=0 for(i=0;i. <NumSubPicGridRows;i++){ for(j=0;j <NumSubPicGridCols;j++){ if(i==0) SubPicTop[subpic_grid_idx[i][j]]=0 else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i-1][j]){ SubPicTop[subpic_grid_idx[i][j]]=i SubPicHeight[subpic_grid_idx[i-1][j]] =i-SubPicTop[subpic_grid_idx[i-1][j]] } [ka] if(i==NumSubPicGridRows-1) SubPicHeight[subpic_grid_idx[i][j]]=i -SubPicTop[subpic_grid_idx[i-1][j]]+1 i f(j==NumSubPicGridRows-1) SubPicWidth[subpic_grid_idx[i][j]]=j- SubPicLeft[subpic_grid_idx[i][j-1]]+1 if(subpic_grid_idx[i][j]>NumSubPics) NumSubPics=subpic_grid_idx[i][j] } }
[0296] 26. In one example, a subpic ending with (NumSubPicGridRows-1) rows. The height of Kucha S is (NumSubPicGridRows-1)-the maximum of SubPicture S You can also set it to be equal to the previous row + 1. a) Embodiments based on existing implementation examples are highlighted below. NumSubPics=0 for(i=0;i. <NumSubPicGridRows;i++){ for(j=0;j <NumSubPicGridCols;j++){ if(i==0) SubPicTop[subpic_grid_idx[i][j]]=0 else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i-1][j]){ SubPicTop[subpic_grid_idx[i][j]]=i SubPicHeight[subpic_grid_idx[i-1][j]] =i-SubPicTop[subpic_grid_idx[i-1][j]] } if(j==0) SubPicLeft[subpic_grid_idx[i][j]]=0 ( 7-7) else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i][j-1]){ SubPicLeft[subpic_grid_idx[i][j]]=j SubPicWidth[subpic_grid_idx[i][j]]=j- SubPicLeft[subpic_grid_idx[i][j-1]] } [ka] if(subpic_grid_idx[i][j]>NumSubPics) NumSubPics=subpic_grid_idx[i][j]
[0297] 27. In one example, the grid ends with (NumSubPicGridColumns-1) columns. The width of subpicture S is (NumSubPicGridColumns-1)-subpicture The leftmost column of Cha S may be set to be equal to the next column plus 1. a) Embodiments based on existing implementation examples are highlighted below. NumSubPics=0 for(i=0;i. <NumSubPicGridRows;i++){ for(j=0;j <NumSubPicGridCols;j++){ if(i==0) SubPicTop[subpic_grid_idx[i][j]]=0 else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i-1][j]){ SubPicTop[subpic_grid_idx[i][j]]=i SubPicHeight[subpic_grid_idx[i-1][j]] =i-SubPicTop[subpic_grid_idx[i-1][j]] } if(j==0) SubPicLeft[subpic_grid_idx[i][j]]=0 ( 7-7) else if(subpic_grid_idx[i][j]!=subpic_ grid_idx[i][j-1]){ SubPicLeft[subpic_grid_idx[i][j]]=j SubPicWidth[subpic_grid_idx[i][j]]=j- SubPicLeft[subpic_grid_idx[i][j-1]] } [ka] if(subpic_grid_idx[i][j]>NumSubPics) NumSubPics=subpic_grid_idx[i][j]
[0298] [ka]
[0299] [ka]
[0300] RPR related
[0301] 30. Syntax elements (flags, etc.) indicated as RPR_flag indicate that RPR is a video unit It is signaled to indicate whether it can be used in a set (sequence, etc.). RPR_f LAG may be signaled via SPS, VPS, or DPS. a) In one example, if you are notified that RPR should not be used (for example, RPR_ If the flag is 0, all widths / heights notified by PPS are signaled by SPS. The maximum width / maximum height must be equal to the maximum width / maximum height. b) In one example, if you are notified that RPR should not be used (for example, RPR_ If the flag is 0, all widths / heights of the PPS are not notified and are signaled via the SPS. It is presumed to be the maximum width / maximum height. c) In one example, when a signal is issued to prevent the use of RPR (for example, RP If R_flag is 0, conformance window information is used in the decoding process. No. Otherwise (signaled to use RPR), conform Swindow information may be used in the decoding process.
[0302] 31. Used in motion compensation processing to derive the predicted block for the current block. The interpolation filter determines whether the resolution of the reference picture differs from that of the current picture, or if it is related to the current picture. Based on whether the width and / or height of the new picture is greater than the resolution of the current picture. You may choose accordingly. a. In one example, if condition A is met and condition A is the current picture and / or reference If the process depends on the dimensions of the picture, you may apply an interpolation filter that requires fewer taps. i. In one example, condition A is that the resolution of the reference picture is different from that of the current picture. And so it is. ii. In one example, condition A is that the width and / or height of the reference picture is the current pitch It is even larger than that of Kucha. iii. In one example, condition A is W1 > a*W2 and / or H1 > b*H2 Here, (W1, H1) represents the width and height of the reference picture, and (W2, H2) represents the width and height of the current picture, and a and b are two factors, for example, a=b=1 It is 0.5. iv. In one example, condition A may depend on whether biprediction is used. 1) Condition A is satisfied only when biprediction is used for the current block. v. In one example, condition A may depend on M and N, where M and N This represents the width and height of the current block. 1) For example, condition A is satisfied only if M*N <= T, where T is 6 It is an integer, such as 4. 2) For example, condition A is satisfied only if M <= T1 or N <= T2. Here, T1 and T2 are integers, for example, T1 = T2 = 4. 3) For example, condition A is satisfied only when M <= T1 and N <= T2. Here, T1 and T2 are integers, for example, T1 = T2 = 4. 4) For example, condition A is when M*N=T, or when M=T1 or N=T2. The equation is satisfied, where T, T1, and T2 are integers, for example, T=64 and T1=T2=4. 5) In one example, the smaller condition in the above sub-bullet is the larger It can be replaced with the other option. vi. In one example, a 1-tap filter is applied. That is, filtering Output the integer pixels that have not been interpolated as the interpolation result. vii. In one example, if the resolution of the reference picture is different from that of the current picture, An ilinear filter is applied. viii. In one example, if the resolution of the reference picture is different from that of the current picture, Or if the width and / or height of the referenced picture is greater than the resolution of the current picture. A 4-tap or 6-tap filter will be applied. 1) A 6-tap filter may be used for affine motion compensation. 2) A 4-tap filter may be used for interpolation of the chroma sample. b. Whether to apply the method disclosed in bullet31, and / or how Whether it is applicable to the color components may depend on the color components. i. For example, these methods apply only to the luminance component. c. Whether to apply the method disclosed in bullet31, and / or how Whether or not it is applied may depend on the interpolation filtering direction. i. For example, this method applies only to horizontal filtering. ii. For example, this method applies only to vertical filtering.
[0303] CIIP related
[0304] 32. The intra-prediction signal used in CIIP processing is at the TU level instead of the CU level. This may be done in a different way (for example, by using an external reference sample instead of CU). a) In one example, if either the width or height of the CU is greater than the maximum conversion block size If it is large, the CU may be divided into multiple TUs, for example, the reference samples outside the TU This may be used to generate intra / inter predictions for each TU. b) In one example, when the maximum conversion size K is less than 64 (for example, K=32) Intra prediction used in CIIP is different from that in a normal intra code block. It is executed in a recursive manner. c) For example, a KM×KN CIIP coding block where M and N are integers can be coded as K× By dividing the K blocks into MN, an intra-prediction is performed for each K×K block. The intra-prediction of the subsequently encoded / decoded K×K block is performed as described above. The reconstructed K×K block may depend on the sample.
[0305] 5. Additional exemplary embodiments 5.1 Embodiment #1: In SPS / PPS / Slice Header / Tile Group Header Examples of syntax design
[0306] The changes compared to the VTM3.0.1rC1 standard software are shown in large bold. The font is used to emphasize the following:
[0307] [Table 9]
[0308] 5.2 Embodiment #2: In SPS / PPS / Slice Header / Tile Group Header Examples of syntax design
[0309] 7.3.2.1 Sequence Parameter Set RBSP Syntax
[0310] [Table 10]
[0311] If sps_sbtmvp_enabled_flag is equal to 1, then in the subblock You may also use a time-motion vector predictor based on CVS where slice_type is I This specifies that a picture can be decoded, including all slices that are not equal to 0. The sps_sbtmvp_enabled_flag is a time-based dynamic based on subblocks. This specifies that the vector predictor will not be used in CVS. (sps_sbtmvp_en) If abled_flag does not exist, it is presumed to be equal to 0.
[0312] five_minus_max_num_subblock_merge_cand Merge motion vectors based on subblocks supported by slices subtracted from 5. Specifies the maximum number of candidates for the Most Valuable Player (MVP). (five_minus_max_num_su) If bblock_merge_cand does not exist, 5-sps_sbtmvp_e It is presumed to be equal to nabled_flag. Merge MVP candidate based on subblocks. The maximum number of MaxNumSubblockMergeCand is derived as follows:
[0313] MaxNumSubblockMergeCand=5-five_minus_ma x_num_subblock_merge_cand (7-45)
[0314] The value of MaxNumSubblockMergeCand is within the range of 0 to 5.
[0315] 8.3.4.2 Motion vectors and reference indices in subblock merge mode Derivation process of kusu
[0316] The input for this process is as follows:
[0317] ...[There are no changes to the current VVC specification proposal]
[0318] The output of this process is as follows:
[0319] ...[There are no changes to the current VVC specification proposal]
[0320] Variables numSbX, numSbY, and subblock merge candidate list subblo ckMergeCandList is derived through the following sequential steps:
[0321] sps_sbtmvp_enabled_flag is equal to 1, (the current image is IR If AP is true and the current image is at index 0 of reference picturelist 0, In conclusion, the following applies:
[0322] To merge candidates from neighboring coding units as defined in Section 8.3.2.3 The derivation process involves taking X as 0 or 1, and the position of the luminance coding block (xCb, yCb), Brightness coding block width cbWidth, Brightness coding block height cbHeight, Brightness Called with the encoded block width as input, the output is the availability flag availableF lagA0, availableFlagA1, availableFlagB0, av availableFlagB1 and availableFlagB2, reference index refIdxLXA0, refIdxLXA1, refIdxLXB0, refIdxL XB1 and refIdxLXB2, and the prediction list usage flag predFlagLX A0, predFlagLXA1, predFlagLXB0, predFlagLXB 1 and predFlagLXB2, and motion vectors mvLXA0, mvLXA1, These are mvLXB0, mvLXB1, and mvLXB2.
[0323] Derivation process of subblock-based temporal merge candidates as defined in Section 8.3.4.3 xSbIdx=0..numSbX-1, ySbIdx=0..numSbY-1 X is 0 or 1, luminance position (xCb, yCb), luminance coding block width cbW idth, luminance coding block height cbHeight, availability flag, available eFlagA0, availableFlagA1, availableFlagB0, availableFlagB1, reference index refIdxLXA0, refId xLXA1, refIdxLXB0, efIdxLXB1, Prediction list usage flag pre dFlagLXA0, predFlagLXA1, predFlagLXB0, pred FlagLXB1, motion vector mvLXA0,mvLXA1,mvLXB0,mvLX Called with B1 as input, the output is the availability flag availableFlagSbC ol, luminance coding subblock in horizontal numSbX and vertical numSbY Number of ks, reference index refIdxLXSbCol, luminance motion vector mvLXSb Col[xSbIdx][ySbIdx] and the prediction list usage flag predFlag LXSbCol[xSbIdx][ySbIdx]
[0324] If sps_affine_enabled_flag is equal to 1, the sample location (xNbA0,yNbA0), (xNbA1,yNbA1), (xNbA2,yNbA2 ), (xNbB0,yNbB0), (xNbB1,yNbB1), (xNbB2,yNb B2), (xNbB3, yNbB3), and variables numSbX and numSbY are as follows: It is derived as follows.
[0325] [There are no changes to the current VVC specification proposal.]
[0326] 5.3 Embodiment #3 Example of MV rounding The syntax changes are based on existing implementations.
[0327] 8.5.5.3 Derivation of temporal merge candidates based on subblocks ...
[0328] [ka]
[0329] 8.5.5.4 Derivation of time-merge-based motion data based on subblocks ...
[0330] [ka]
[0331] 5.3 Embodiment #3: Example of MV rounding The syntax changes are based on existing implementations.
[0332] 8.5.5.3 Derivation of temporal merge candidates based on subblocks ...
[0333] [ka]
[0334] 8.5.5.4 Derivation of time-merge-based motion data based on subblocks ...
[0335] [ka]
[0336] 5.4 Embodiment #4: Second example of MV rounding
[0337] 8.5.5.3 Derivation of temporal merge candidates based on subblocks
[0338] The input for this process is as follows: - The top left luminance sample of the current picture relative to the top left luminance sample of the current luminance coding block Sample brightness position (xCb, yCb), - The variable cbWidth defines the width of the current encoded block in the luminance sample. - Variable cbHeight that defines the height of the current encoded block in the luminance sample. . - Availability flag of the neighboring coding unit, availableFlagA1, - The reference index of the neighboring coding unit is refIdxLXA1 where X is 0 or is 1, - Prediction list utilization flag for neighboring coding units predFlagLXA1 and X is 0 or 1, - Motion vector in mvLXA1 with 1 / 16 fractional sample precision of neighboring coding units The condition is such that X is either 0 or 1.
[0339] The output of this process is as follows: - Availability flag availableFlagSbCol, - Luminance coding subblocks in horizontal numSbX and vertical numSbY The number - Reference indexes refIdxL0SbCol and refIdxL1SbCol, - 1 / 16 fractional sample precision mvL0SbCol[xSbIdx][ySbIdx] The luminance motion vector in mvL1SbCol[xSbIdx][ySbIdx], However, xSbIdx=0..numSbX-1, ySbIdx=0..numSbY-1, - Prediction list usage flag predFlagL0SbCol[xSbIdx][ySbI dx] and predFlagL1SbCol[xSbIdx][ySbIdx], however xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1.
[0340] The availability flag availableFlagSbColl is derived as follows: - If one or more of the following conditions are true, set availableFlagSbCol to 0 This will be set. - slice_temporal_mvp_enabled_flag is equal to 0. - sps_sbtmvp_enabled_flag is equal to 0. - cbWidth is less than 8. - cbHeight is less than 8. - Otherwise, the following ordered steps apply.
[0341] 1. The position of the top-left sample in the luminance coding tree block containing the current coding block ( xCtb, yCtb) and the position of the center sample in the lower right corner of the current luminance coding block (x The values Ctr, yCtr) are derived as follows: xCtb=(xCb>>CtuLog2Size)< <ctulog2size ( 8-542) yctb="(yCb">>CtuLog2Size)< <CtuLog2Size ( 8-543) xCtr = xCb + (cbWidth / 2) (8-544) yCtr = yCb + (cbHeight / 2) (8 - 545)
[0342] 2. The luminance position (xColCtrCb, yColCtrCb) is determined by ColPic. For the top-left luminance sample of the specified collocated picture, within ColPic Co-position luminance coding block containing the position given by (xCtr, yCtr) of the section It is set to be equal to the top-left sample.
[0343] 3. Time-based merge movement based on subblocks as defined in Section 8.5.5.4 The data derivation process involves setting X to 0 and 1, (xCtb, yCtb), and location (xCol CtrCb,yColCtrCb), Availability Flag Availability Flag Availableabilit y flag A1, prediction list usage flag predFlagLXA1, and reference index The function is called with the input refIdxLXA1 and the motion vector mvLXA1, and output The force is collocated to the motion vector ctrMVLX, with X as 0 and 1. The block prediction list uses the flag ctrPredFlagLX and the time motion vector te It's mpMv.
[0344] 4. The variable availableFlagSbCol is derived as follows: - Both ctrPredFlagL0 and ctrPredFlagL1 are equal to 0 In this case, availableFlagSbCol is set to equal to 0. - Otherwise, availableFlagSbCol is set to equal to 1.
[0345] If availableFlagSbCol is equal to 1, the following applies: - Variables numSbX, numSbY, sbWidth, sbHeight, refId xLXSbCol is derived as follows: numSbX=cbWidth>>3 (8-546) numSbY=cbHeight>>3 (8-547) sbWidth=cbWidth / numSbX (8-548) sbHeight=cbHeight / numSbY (8-549) refIdxLXSbCol=0 (8-550)
[0346] - xSbIdx=0..numSbX-1 and ySbIdx=0...numSbY If -1, the motion vector mvLXSbCol[xSbIdx][ySbIdx] and The prediction list usage flag predFlags LXSbCol[xSbIdx] is as follows: This is how it is derived.
[0347] - The top left of the current encoding subblock for the luminance sample in the top left of the current picture The luminance position (xSb, ySb) that defines the sample is derived as follows. xSb=xCb+xSbIdx*sbWidth+sbWidth / 2 (8-55 1) ySb=yCb+ySbIdx*sbHeight+sbHeight / 2 (8- 552)
[0348] [ka]
[0349] - The variable currCb contains the luminance code that includes the current encoding subblock in the current picture. Defines the numbered block. - The variable colCb is defined internally by ColPic as ((xColSb>>3)<< A luminance coding block containing the correction position given by 3,(yColSb>>3)<<3) To stipulate. - The brightness position (xColCb, yColCb) is specified by ColPic. For the upper left luminance sample of the located picture, specified by colCb It is set to be equal to the top-left sample of the same position luminance coding block. - The derivation process for identical positional motion vectors as defined in Section 8.5.2.12 is cur refI is set to be equal to rCb,colCb,(xColCb,yColCb),0. It is called with sbFlag set to equal to dxL0, and the output is subb Lock mvL0SbCol[xSbIdx][ySbIdx] and available It is assigned to the motion vector of FlagL0SbCol. - The derivation process for identical positional motion vectors as defined in Section 8.5.2.12 is cur rCb,colCb,(xColCb,yColCb), refI set to equal to 0 It is called with sbFlag set to equal to dxL1, and the output is subblock ックMVL1SbCol[xSbIdx][ySbIdx]and availableF It is assigned to the motion vector of lagL1SbCol. - AvailableFlagL0SbCol and availableFlagL If both 1SbCol are equal to 0, and X is 0 and 1, then the following applies: . mvLXSbCol[xSbIdx][ySbIdx]=ctrMvLX (8-5 56) predFlagLXSbCol[xSbIdx][ySbIdx]=ctrPre dFlagLX (8-557)
[0350] 8.5.5.4 Derivation of time-merge-based motion data based on subblocks
[0351] The input for this process is as follows: - Position of the top-left sample of the luminance coding tree block containing the current coding block (x Ctb, yCtb), - The top-left sample of the luminance coding block located in the same place as the bottom-right center sample. Position(xColCtrCb,yColCtrCb). - Availability flag of the neighboring coding unit, availableFlagA1, - Reference index of the neighboring coding unit refIdxLXA1, - Prediction list utilization flag for neighboring coding units predFlagLXA1, - Motion vector in mvLXA1 with 1 / 16 fractional sample precision of neighboring coding units Ru.
[0352] The output of this process is as follows: - Motion vectors ctrMvL0 and ctrMvL1, - Prediction list usage flags ctrPredFlagL0, ctrPredFlagL1, - Temporal motion vector tempMv.
[0353] The variable tempMv is set as follows: tempMv[0]=0 (8-558) tempMv[1]=0 (8-559)
[0354] The variable `currPic` defines the current picture.
[0355] If availableFlagA1 is equal to TRUE, the following applies: - If all of the following conditions are true, tempMv is set to equal to mvL0A1 ru. - predFlagL0A1 is equal to 1, - DiffPicOrderCnt(ColPic,RefPicList[0][ refIdxL0A1]) is equal to 0, - Otherwise, if all of the following conditions are true, tempMv is mvL1A1 Set to equal to :. - The slice type is the same as B. - predFlagL1A1 is equal to 1. - DiffPicOrderCnt(ColPic,RefPicList[1][ [refIdxL1A1]) is equal to 0.
[0356] [ka]
[0357] The array colPredMode contains the collocated pictures specified by ColPic. The prediction mode array CuPredMode[0] is set to equal to the specified mode.
[0358] Motion vectors ctrMvL0, ctrMvL1, and prediction list utilization flag ctrP redFlagL0 and ctrPredFlagL1 are derived as follows: - colPredMode[xColCb][yColCb] is MODE_INTE If R is equal to the following, then the following applies: - The variable currCb contains (xCtrCb, yCtrCb) within the current picture. Defines the luminance coding block. - The variable colCb is defined internally by ColPic as ((xColCb>>3)<< A luminance coding block containing the correction position given by 3,(yColCb>>3)<<3) To stipulate. - The brightness position (xColCb, yColCb) is specified by ColPic. For the upper left luminance sample of the located picture, specified by colCb It is set to be equal to the top-left sample of the same position luminance coding block. - The derivation process for identical positional motion vectors specified in section 8.5.2.12 is cur rCb, colCb, (xColCb, yColCb), refI set to equal to 0 dxL0 and sbFlag, set to equal to 1, are inputs, and the output is ctrMvL0 It is called by assigning it to ctrPredFlagL0. - The derivation process for identical positional motion vectors specified in section 8.5.2.12 is cur refI is set to equal to rCb,colCb,(xColCb,yColCb),0. dxL1 and sbFlag, set to 1, are inputs, and the output is ctrMvL1. It is called by assigning it to ctrPredFlagL1. - Otherwise, the following applies: ctrPredFlagL0=0 (8-563) ctrPredFlagL1=0 (8-564)
[0359] 5.5 Embodiment #5: Third example of MV rounding
[0360] 8.5.5.3 Derivation of temporal merge candidates based on subblocks
[0361] The input for this process is as follows: - The top left luminance sample of the current picture relative to the top left luminance sample of the current luminance coding block Sample brightness position (xCb, yCb), - The variable cbWidth defines the width of the current encoded block in the luminance sample. - Variable cbHeight that defines the height of the current encoded block in the luminance sample. . - Availability flag of the neighboring coding unit, availableFlagA1, - The reference index of the neighboring coding unit is refIdxLXA1 where X is 0 or is 1, - Prediction list utilization flag for neighboring coding units predFlagLXA1 and X is 0 or 1, - Motion vector in mvLXA1 with 1 / 16 fractional sample precision of neighboring coding units The condition is such that X is either 0 or 1.
[0362] The output of this process is as follows: - Availability flag availableFlagSbCol, - Luminance coding subblocks in horizontal numSbX and vertical numSbY The number - Reference indexes refIdxL0SbCol and refIdxL1SbCol, - 1 / 16 fractional sample precision mvL0SbCol[xSbIdx][ySbIdx] The luminance motion vector in mvL1SbCol[xSbIdx][ySbIdx], However, xSbIdx=0..numSbX-1, ySbIdx=0..numSbY-1, - Prediction list usage flag predFlagL0SbCol[xSbIdx][ySbI dx] and predFlagL1SbCol[xSbIdx][ySbIdx], however xSbIdx=0..numSbX-1,ySbIdx=0..numSbY-1.
[0363] The availability flag availableFlagSbColl is derived as follows: - If one or more of the following conditions are true, set availableFlagSbCol to 0 This will be set. - slice_temporal_mvp_enabled_flag is equal to 0. - sps_sbtmvp_enabled_flag is equal to 0. - cbWidth is less than 8. - cbHeight is less than 8. - Otherwise, the following ordered steps apply.
[0364] 5. The position of the top-left sample in the luminance coding tree block containing the current coding block ( xCtb, yCtb) and the position of the center sample in the lower right corner of the current luminance coding block (x The values Ctr, yCtr) are derived as follows: xCtb=(xCb>>CtuLog2Size)< <ctulog2size ( 8-542) yctb="(yCb">>CtuLog2Size)< <CtuLog2Size ( 8-543) xCtr = xCb + (cbWidth / 2) (8-544) yCtr = yCb + (cbHeight / 2) (8 - 545)
[0365] 6. The luminance position (xColCtrCb, yColCtrCb) is determined by ColPic. For the top-left luminance sample of the specified collocated picture, within ColPic Co-position luminance coding block containing the position given by (xCtr, yCtr) of the section It is set to be equal to the top-left sample.
[0366] 7. Time merge-based movement based on subblocks as defined in Section 8.5.5.4 The data derivation process involves setting X to 0 and 1, (xCtb, yCtb), and location (xCol CtrCb,yColCtrCb), Availability Flag Availability Flag Availableabilit y flag A1, prediction list usage flag predFlagLXA1, and reference index The function is called with the input refIdxLXA1 and the motion vector mvLXA1, and output The force is collocated to the motion vector ctrMVLX, with X as 0 and 1. The block prediction list uses the flag ctrPredFlagLX and the time motion vector te It's mpMv.
[0367] 8. The variable availableFlagSbCol is derived as follows: - Both ctrPredFlagL0 and ctrPredFlagL1 are equal to 0 If not available, availableFlagSbCol is set to equal to 0. - Otherwise, availableFlagSbCol will be set to equal to 1. .
[0368] If availableFlagSbCol is equal to 1, the following applies:
[0369] - Variables numSbX, numSbY, sbWidth, sbHeight, refId xLXSbCol is derived as follows: numSbX=cbWidth>>3 (8-546) numSbY=cbHeight>>3 (8-547) sbWidth=cbWidth / numSbX (8-548) sbHeight=cbHeight / numSbY (8-549) refIdxLXSbCol=0 (8-550)
[0370] - xSbIdx=0..numSbX-1 and ySbIdx=0...numSbY If -1, the motion vector mvLXSbCol[xSbIdx][ySbIdx] and The prediction list usage flag predFlags LXSbCol[xSbIdx] is as follows: This is how it is derived.
[0371] - The top left of the current encoding subblock for the luminance sample in the top left of the current picture The luminance position (xSb, ySb) that defines the sample is derived as follows. xSb=xCb+xSbIdx*sbWidth+sbWidth / 2 (8-55 1) ySb=yCb+ySbIdx*sbHeight+sbHeight / 2 (8- 552)
[0372] [ka]
[0373] - The variable currCb contains the luminance code that includes the current encoding subblock in the current picture. Defines the numbered block. - The variable colCb is defined internally by ColPic as ((xColSb>>3)<< A luminance coding block containing the correction position given by 3,(yColSb>>3)<<3) To stipulate. - The brightness position (xColCb, yColCb) is specified by ColPic. For the upper left luminance sample of the located picture, specified by colCb It is set to be equal to the top-left sample of the same position luminance coding block. - The derivation process for identical positional motion vectors as defined in Section 8.5.2.12 is cur refI is set to be equal to rCb,colCb,(xColCb,yColCb),0. It is called with sbFlag set to equal to dxL0, and the output is subb Lock mvL0SbCol[xSbIdx][ySbIdx] and available It is assigned to the motion vector of FlagL0SbCol. - The derivation process for identical positional motion vectors as defined in Section 8.5.2.12 is cur rCb,colCb,(xColCb,yColCb), refI set to equal to 0 It is called with sbFlag set to equal to dxL1, and the output is subblock ックMVL1SbCol[xSbIdx][ySbIdx]and availableF It is assigned to the motion vector of lagL1SbCol. - AvailableFlagL0SbCol and availableFlagL If both 1SbCol are equal to 0, and X is 0 and 1, then the following applies: . mvLXSbCol[xSbIdx][ySbIdx]=ctrMvLX (8- 556) predFlagLXSbCol[xSbIdx][ySbIdx]=ctrPre dFlagLX (8-557)
[0374] 8.5.5.4 Derivation of time-merge-based motion data based on subblocks
[0375] The input for this process is as follows: - Position of the top-left sample of the luminance coding tree block containing the current coding block (x Ctb, yCtb), - The top-left sample of the luminance coding block located in the same place as the bottom-right center sample. Position(xColCtrCb,yColCtrCb). - Availability flag of the neighboring coding unit, availableFlagA1, - Reference index of the neighboring coding unit refIdxLXA1, - Prediction list utilization flag for neighboring coding units predFlagLXA1, - Motion vector in mvLXA1 with 1 / 16 fractional sample precision of neighboring coding units Ru.
[0376] The output of this process is as follows: - Motion vectors ctrMvL0 and ctrMvL1, - Prediction list usage flags ctrPredFlagL0, ctrPredFlagL1, - Temporal motion vector tempMv.
[0377] The variable tempMv is set as follows: tempMv[0]=0 (8-558) tempMv[1]=0 (8-559)
[0378] The variable `currPic` defines the current picture.
[0379] If availableFlagA1 is equal to TRUE, the following applies: - If all of the following conditions are true, tempMv is set to equal to mvL0A1 ru. - predFlagL0A1 is equal to 1, - DiffPicOrderCnt(ColPic,RefPicList[0][ refIdxL0A1]) is equal to 0, - Otherwise, if all of the following conditions are true, tempMv is mvL1A1 Set to equal to :. - The slice type is the same as B. - predFlagL1A1 is equal to 1. - DiffPicOrderCnt(ColPic,RefPicList[1][ [refIdxL1A1]) is equal to 0.
[0380] [ka]
[0381] The array colPredMode contains the collocated pictures specified by ColPic. The prediction mode array CuPredMode[0] is set to equal to the specified mode.
[0382] Motion vectors ctrMvL0, ctrMvL1, and prediction list utilization flag ctrP redFlagL0 and ctrPredFlagL1 are derived as follows: - colPredMode[xColCb][yColCb] is MODE_INTER If equal to, the following applies: - The variable currCb contains (xCtrCb, yCtrCb) within the current picture. Defines the luminance coding block. - The variable colCb is defined internally by ColPic as ((xColCb>>3)<< A luminance coding block containing the correction position given by 3,(yColCb>>3)<<3) To stipulate. - The brightness position (xColCb, yColCb) is specified by ColPic. For the upper left luminance sample of the located picture, specified by colCb It is set to be equal to the top-left sample of the same position luminance coding block. - The derivation process for identical positional motion vectors specified in section 8.5.2.12 is cur rCb, colCb, (xColCb, yColCb), refI set to equal to 0 dxL0 and sbFlag, set to equal to 1, are inputs, and the output is ctrMvL0 It is called by assigning it to ctrPredFlagL0. - The derivation process for identical positional motion vectors specified in section 8.5.2.12 is cur refI is set to equal to rCb,colCb,(xColCb,yColCb),0. dxL1 and sbFlag, set to 1, are inputs, and the output is ctrMvL1. It is called by assigning it to ctrPredFlagL1. - Otherwise, the following applies: ctrPredFlagL0=0 (8-563) ctrPredFlagL1=0 (8-564)
[0383] 8.5.6.3 Interpolation of fractional samples
[0384] 8.5.6.3.1 General
[0385] The input for this process is as follows: - The top left luminance sample of the current picture relative to the top left luminance sample of the current encoded subblock The luminance position (xSb, ySb) that defines the sample, - The variable sbWidth defines the width of the current coded subblock. - The variable sbHeight defines the height of the current coded subblock. - Motion vector offset mvOffset, - Finely tuned motion vector refMvLX, - Selected reference picture sample array refPicLX, - 1 / 2 sample interpolation filter index hpelIfIdx, - Bidirectional optical flow flag bdofFlag, - A variable cIdx that defines the color component index of the current block.
[0386] The output of this process is as follows: - Predicted sample value (sbWidth + brdExtSize) × (sbHeight) +brdExtSize) array predSamplesLX.
[0387] The predicted block boundary expansion size, brdExtSize, is derived as follows: brdExtSize=(bdofFlag||(inter_affine_fl ag[xSb][ySb] && sps_affine_prof_enabled_ flag))?2:0 (8-752)
[0388] The variable fRefWidth is the PicOutput of the reference picture in the luminance sample. Set to equal to WidthL.
[0389] The variable fRefHeight is the PicOutput of the reference picture in the luminance sample. It is set to be equal to tHeightL.
[0390] The motion vector mvLX is set to equal to (refMvLX-mvOffset). .
[0391] - If cIdx is equal to 0, the following applies:
[0392] - The scaling factor and its fixed-point representation are defined as follows: hori_scale_fp=((fRefWidth<<14)+(PicOut putWidthL>>1)) / PicOutputWidthL (8-753) vert_scale_fp=((fRefHeight<<14)+(PicOu tputHeightL>>1)) / PicOutputHeightL (8-754 )
[0393] - Let (xIntL, yIntL) be the brightness position given by the full sample unit. Let (xFracL, yFracL) be the offset given in units of 1 / 16 samples. These variables, in this section only, represent fractional sample positions within the reference sample sequence refPicLX. It is used to define the location.
[0394] - Reference sample bounding block for padding (xSbInt L ,ySbIn t L Set the top-left coordinate of ) to equal to (xSbIntL, ySbIntL), and (xSb+ Set (mvLX[0]>>4), ySb+(mvLX[1]>>4)) to be equal.
[0395] - Each luminance sample position (x) in the predicted luminance sample array predSamplesLX L =0..sbWidth-1+brdExtSize,y L =0..sbHeight- For 1 + brdExtSize), the corresponding predicted luminance sample value predSampl esLX[x L ][y L The formula is derived as follows: - (refxSb L ,refySb L ) and (refx L ,refy L ) to 1 Motion vector given in units of / 16 samples (refMvLX[0],refMvLX [1]) is the brightness position pointed to. Variable refxSb L refx L refySb L , r efy L This is derived as follows: refxSb L =((xSb<<4)+refMvLX[0])*hori_sc ale_fp (8-755) refx L =((Sign(refxSb)*((Abs(refxSb)+12 8)>>8) +x L *((hori_scale_fp+8)>>4))+32)>>6 (8 -756) refySb L =((ySb<<4)+refMvLX[1])*vert_sc ale_fp (8-757) refyL=((Sign(refySb)*((Abs(refySb)+12 8)>>8)+yL* ((vert_scale_fp+8)>>4))+32)>>6 (8-758 ) - Variable xInt L , yInt L xFrac L , and yFrac L The following Derive the result from this. xCot L =refx L >>4 (8-759) yInt L =refy L >>4 (8-760) xFrac L =refx L &15 (8-761) yFrac L =refy L &15 (8-762)
[0396] [ka]
[0397] - Is bdofFlag equal to TRUE? (sps_affine_prof_en If abled_flag is equal to TRUE, inter_affine_flag[xS If [b][ySb] is equal to TRUE, and one or more of the following conditions are true, then the predicted luminance is Sample value predSamplesLX[x L ][y L ] is defined in 8.5.6.3.3 As shown, (xInt L +(xFrac L >>3)-1),yInt L +(yFrac L >>3)-1) and refPicLX to take integer luminance samples It is derived by calling the extraction process. 1. x L It is equal to 0. 2. x L This is equal to sbWidth+1. 3. y L It is equal to 0. 4. y L This is equal to sbHeight+1.
[0398] [ka]
[0399] - Otherwise (cIdx is not equal to 0), the following applies: - (xIntC, yIntC) is the chroma position given by the full sample unit. Let (xFracC, yFracC) be the offset given in units of 1 / 32 samples. These variables are, only in this section, general fractional values within the reference sample array refPicLX. It is used to define the location of the sample. - Reference sample bounding block for padding (xSbIntC, ySbIn The top-left coordinate of tC) is ((xSb / SubWidthC)+(mvLX[0]>>5), It is set to equal to (ySb / SubHeightC)+(mvLX[1]>>5)). - Predicted chroma sample sequence predSamplesLX, each chroma sample position ( For xC=0..sbWidth-1, yC=0..sbHeight-1), the correspondence is as follows: The predicted chroma sample values predSamplesLX[xC][yC] are as follows: This leads to the following: - (refxSb C ,refySb C ) and (refx C ,refy C ) to 1 The motion vector (mvLX[0], mvLX[1]) given in units of / 32 samples This will be used as the schroma position. Variable refxSb C refySb C refx C , refy C teeth The following is the derivation: refxSb C =((xSb / SubWidthC<<5)+mvLX[0])* hori_scale_fp (8-763) refx C =((Sign(refxSb C )*((Abs(refxSb C )+ 256)>>9) +xC*((hori_scale_fp+8)>>4))+16)>>5 (8 -764) refySb C =((ySb / SubHeightC<<5)+mvLX[1]) *vert_scale_fp (8-765) refy C =((Sign(refySb C )*((Abs(refySb C )+ 256)>>9) +yC*((vert_scale_fp+8)>>4))+16)>>5 (8 -766) - Variable xInt C , yInt C xFrac C yFrac C The following is derived To release. xCot C =refx C >>5 (8-767) yInt C =refy C >>5 (8-768) xFrac C =refy C &31 (8-769) yFrac C =refy C &31 (8-770) - Predicted sample values predSamplesLX[xC][yC] are (xIntC, yIntC),(xFracC,yFracC),(xSbIntC,ySbIntC) 8.5. Takes sbWidth,sbHeight, and refPicLX as input. It is derived by calling the process specified in 6.3.4.
[0400] 8.5.6.3.2 Brightness Sample Interpolation Filtering Process
[0401] [ka]
[0402] The output of this process is the predicted luminance sample value, predSampleLX. L That is the case.
[0403] The variables shift1, shift2, and shift3 are derived as follows: - Variable shift1 is Min(4, BitDepth Y Set to equal to _8), and variable s Set hift2 to equal to 6, and set the variable shift3 to Max(2,14-BitDept h Y Set to equal to ). - The variable picW is set to equal pic_width_in_luma_samples. And the variable picH is equal to pic_height_in_luma_samples It will be set.
[0404] [ka]
[0405] If i=0..7, the full sample unit (xInt i ,yInt i ) Brightness The position is derived as follows: - subpic_treated_as_pic_flag[SubPicIdx] If it is equal to 1, the following applies: xCot i =Clip3(SubPicLeftBoundaryPos,SubP icRightBoundaryPos,xInt L +i-3) (8-771) yInt i =Clip3(SubPicTopBoundaryPos,SubPi cBotBoundaryPos,yInt L +i-3) (8-772)- Others In the case of (subpic_treated_as_pic_flag[SubPicIdx If ] is equal to 0, the following applies: xCot i =Clip3(0,picW-1,sps_ref_wraparoun d_enabled_flag? ClipH((sps_ref_wraparound_offset_minu s1+1)*MinCbSizeY,picW,xInt L +i-3): (8-773 ) xCot L +i-3) yInt i =Clip3(0,picH-1,yInt L +i-3) (8-774 )
[0406] When i=0..7, the brightness position in the full sample unit is further as follows: It will be corrected. xCot i =Clip3(xSbInt L -3, xSbIntL+sbWidth+ 4, xInt i (8-775) yInt i =Clip3(ySbInt L -3, ySbInt L +sbHeight +4, yInt i ) (8-776)
[0407] Predicted luminance sample value predSampleLX L This is derived as follows: - xFrac L and yFrac L If both are equal to 0, predSampleL X L The value of is derived as follows: predSampleLX L =refPicLX L [xInt3][yInt3]< <shift3 (8-777) - No, xFrac L If yFrac is not equal to 0, L If it is equal to 0, predSampleLX L The value of is derived as follows: predSampleLX L =( Σ 7 i=0 f L [xFrac L ][i]*refP icLX L [xInt i ][yInt3])>>shift1 (8-778) - No, xFrac L If yFrac is equal to 0, L If p is not equal to 0, redSampleLX L The value of is derived as follows: predSampleLX L =( Σ 7 i=0 f L [yFrac L ][i]*refP icLX L [xInt3][yInt i ])>>shift1 (8-779) - No, xFrac L If yFrac is not equal to 0, L If it is not equal to 0 predSampleLX L The value of is derived as follows: - The sample array temp[n] for n=0..7 is derived as follows: temp[n]=( Σ 7 i=0 f L [xFrac L ][i]*refPicLX L [ xCot i ][yInt n ])>>shift1 (8-780) - Predicted luminance sample value predSampleLX L This is derived as follows: predSampleLX L =( Σ 7 i=0 f L [yFrac L ][i]*temp [i])>>shift2 (8-781)
[0408] [Table 11]
[0409] [Table 12]
[0410] Figure 30 is a flowchart of the video processing method 3000. Method 3000 consists of steps In 3010, the conversion between the current block of video and the bitstream representation of video. Therefore, the maximum number of candidates (ML) in the merge candidate list based on subblocks and / or, a subblock-based temporal motion vector prediction (SbTMVP) candidate, time Whether Target Motion Vector Prediction (TMVP) is enabled for use during conversion, or Based on whether to use the current Picture Reference (CPR) encoding mode for the conversion, This includes determining whether to add it to a merge candidate list based on subblocks.
[0411] Method 3000 performs the conversion in step 3020 based on the determination. This includes performing the following actions.
[0412] Figure 31 is a flowchart of the image processing method 3100. Method 3100 is a step In 3110, the conversion between the current block of video and the bitstream representation of video. Therefore, Temporal Motion Vector Prediction (TMVP), Temporal Motion Vector based on subblocks The SbTMVP (SbTMVP) tool and the affine coding mode are enabled for the transformation. Based on whether or not it is present, the most promising candidate in the merge candidate list based on subblocks. This includes determining whether a number is large (ML).
[0413] Method 3100 includes performing a conversion based on the determination in step 3120.
[0414] Figure 32 is a flowchart of the image processing method 3200. Method 3200 is a step In 3210, the current block of the first video segment of the video and the video bitstream For conversion between frame representations, the temporal motion vector at the first video segment level Because the Torrential Prediction (TMVP) mode is disabled, the motion vector prediction is based on the subblock. This includes determining that the conversion for measurement (SbTMVP) mode is disabled.
[0415] Method 3200 includes performing a transformation based on the determination in step 3220, The bitstream representation includes whether or not it includes SbTMVP mode display, and / or Or, the display of SbTMVP mode versus TMVP mode in the merge candidate list. It conforms to the format that defines the position.
[0416] Figure 33 is a flowchart of the image processing method 3300. Method 3300 is a step In 3310, Subblock-based Temporal Motion Vector Prediction (SbTMVP) tool The current state of video encoded using the Temporal Motion Vector Prediction (TMVP) tool. This includes performing conversions between the current block and the bitstream representation of the video. The coordinates of the corresponding position of the block or the subblock of the current block are Based on motion vector compression associated with the SbTMVP tool or TMVP tool. The mask is selectively applied using a mask, and the mask is applied to the coordinate values and the mask values. Includes bitwise AND operations between them.
[0417] Figure 34 is a flowchart of the image processing method 3400. Method 3400 is a step In 3410, based on one or more features of the current block of the video segment of the video , subblock-based motion vector prediction (SbTMVP) for the current block This includes determining the valid corresponding area in the current block to which the rule should be applied.
[0418] Method 3400, in step 3420, determines the current block and project based on this determination. This includes performing conversions between the image and its bitstream representation.
[0419] Figure 35 is a flowchart of the image processing method 3500. Method 3500 is a step In 3510, Subblock-based Temporal Motion Vector Prediction (SbTMVP) tool For the current block of video being encoded using this method, the default motion vector is This includes making a judgment.
[0420] Method 3500, in step 3520, determines the current block and video based on the determination. This includes performing conversions between bitstream representations and the current block's center position. Moving from the block containing the corresponding position in the linked collocated pictures. If a motion vector cannot be obtained, a default motion vector is determined.
[0421] Figure 36 is a flowchart of the image processing method 3600. Method 3600 is a step In 3610, for the current block of the video segment of the video, the current block The current picture is a reference picture whose index in the reference picture list X is set to M. If it is a chat and M and X are integers, and X=0 or X=1 then in the subblock Based on the Temporal Motion Vector Prediction (SbTMVP) tool or Temporal Motion Vector Prediction ( This includes inference when the TMVP tool is disabled.
[0422] Method 3600, in step 3620, uses inference to determine the current block and image. This includes performing conversions between bitstream representations.
[0423] Figure 37 is a flowchart of the image processing method 3700. Method 3700 is a step In 3710, the current picture of the current block is , a reference picture having an index set to M in the reference picture list X Furthermore, when M and X are integers, the time motion vector prediction based on the subblock (Sb This includes determining whether the TMVP tool should be enabled.
[0424] Method 3700, in step 3720, determines the current block and project based on this determination. This includes performing conversions between the image and its bitstream representation.
[0425] Figure 38 is a flowchart of the image processing method 3800. Method 3800 is a step In 3810, a conversion is performed between the current block of video and the bitstream representation of the video. The current block is coded using a coding tool based on the subblock, including the actions taken. The process of transforming and converting involves predicting the time-dependent motion vector (SbTMV) based on subblocks. P) Using multiple bins (N) when the tool is enabled or disabled Encode the block merge index using a unified method.
[0426] Figure 39 is a flowchart of the image processing method 3900. Method 3900 is a step In 3910, Subblock-Based Temporal Motion Vector Prediction (SbTMVP) tool For the current block of video encoded using the SbTMVP tool, To define the corresponding blocks in the current picture and in a different picture, including the blocks. This includes determining the motion vector of the eye.
[0427] Method 3900, in step 3920, determines the current block and video based on the determination. This includes performing conversions between bitstream representations.
[0428] Figure 40 is a flowchart of the image processing method 4000. Method 4000 consists of steps In 4010, the conversion between the current block of video and the bitstream representation of the video. Therefore, based on whether affine prediction is enabled to transform the current block Then, it is decided whether or not to insert the zero-movement affine merge candidate into the subblock merge candidate list. This includes determining.
[0429] Method 4000 performs the conversion based on the determination in step 4020. Includes.
[0430] Figure 41 is a flowchart of the image processing method 4100. Method 4100 is a step In 4110, the current block of the video and the list of candidate subblock mergers are used. For conversion between the image and its bitstream representation, the subblock merge candidate list is full. If not, zero movement non-affine padding candidate subblock merge candidate list This includes inserting it into the to.
[0431] Method 4100 includes, in step 4120, performing a conversion after insertion.
[0432] Figure 42 is a flowchart of the image processing method 4200. Method 4200 is a step In 4210, the conversion between the current block of video and the bitstream representation of video. Therefore, one of the blocks containing the corresponding position in the collocated picture Using the rules that determine whether to derive a motion vector from the motion vector above, the motion vector This includes determining the value of the toll.
[0433] Method 4200 performs a transformation based on the motion vector in step 4220. Includes.
[0434] Figure 43 is a flowchart of the image processing method 4300. This method 4300 is an engineering In step 4310, the conversion between the current block of video and the bitstream representation of the video is performed. Therefore, the current block or subblock of the current block within the picture placed in the same position The time block associated with the lock is a previously encoded sample within the same picture. When encoding using an encoding mode in which the video unit is reconfigured based on the code. For conversion, a time motion vector based on a subblock with default motion candidates. This includes making decisions using the sbTMVP prediction tool.
[0435] Method 4300 performs a transformation in step 4320 based on default motion candidates. This includes.
[0436] Figure 44 is a flowchart of the image processing method 4400. This method 4400 is an engineering In step 4410, the change between the current block of video and the bitstream representation of the video occurs. For subblock-based temporal motion vector prediction (sbTMVP) processing, which is part of the conversion process. This is then used in the subblock motion information derivation process for the subblocks of the current block. Based on the location of the object, default motion information for sbTMVP processing is derived. Includes.
[0437] Method 4400 performs a transformation in step 4420 based on default motion information. This includes.
[0438] Figure 45 is a flowchart of the image processing method 4500. This method 4500 is an engineering In step 4510, subblock-based temporal motion vector prediction (sbTMVP) The current block of the video encoded using the code, and the bitstream representation of the video, For conversion, the current picture in the current block is different from the corresponding block in the picture. This involves determining the modified motion vector used to pinpoint the position of the object. The corrected motion vectors are used in the sbTMVP tool to refine the motion vectors used for prediction. This involves determining something that is generated by right-shifting with numerical precision.
[0439] Method 4500 includes performing the conversion based on the decision in operation 4520. nothing.
[0440] Figure 46 is a block diagram of the image processing device 4600. One of the methods described herein is... To implement the above, device 4600 may be used. Device 4600 is a smartphone Even if implemented on tablets, computers, Internet of Things (IoT) receivers, etc. Good. The device 4600 comprises one or more processing units 4602 and one or more memory units 460 4 may include video processing hardware 4606. Processing unit 4602 is specified in this specification. It may be configured to implement one or more of the methods described in the document. Memory(s) 4 604 refers to the data used to implement the methods and techniques described herein. It may also be used to store the code. The video processing hardware 4606 is specified herein. The techniques described may be used to implement them in hardware circuits.
[0441] In some embodiments, the video encoding method is as described with reference to Figure 46. This may be carried out using devices implemented on a hardware platform.
[0442] Some embodiments of the disclosed technology enable image processing tools or modes. This includes determining or judging whether a video processing tool or mode is enabled. If this is the case, the encoder will use this tool or motor when processing one block of video. Using or implementing this tool or mode, as a result The resulting bitstream does not necessarily need to be modified. That is, the video blocks or The conversion of video to a bitstream representation is performed by video processing tools based on decisions or judgments. Use this video processing tool or mode when the mode is enabled. Another example In this case, when a video processing tool or mode is enabled, the decoder will... The system recognizes that the frame has been modified based on a video processing tool or mode, and the bitstream It processes the image. That is, it is an image processing tool that is enabled based on a decision or judgment. This mode is used to convert the bitstream representation of the video into blocks of video.
[0443] Some embodiments of the disclosed technology involve a decision to disable an image processing tool or mode. or includes making a determination. For example, if the video processing tool or mode is disabled If present, the encoder converts blocks of video into a bitstream representation of the video. Do not use this tool or mode. In another example, video processing tool or mode If disabled, the decoder will determine or judge the bitstream based on Recognizing that the image has not been corrected using the enabled video processing tools or modes, Process the bitstream.
[0444] Figure 47 shows an exemplary image processing system in which various technologies disclosed herein may be implemented. This is a 4700 block diagram. Various implementation forms exist for the modules of the System 4700. It may include some or all of it. System 4700 is for receiving video content It may also include an input unit 4702. The video content is in raw or uncompressed format. The data may be received as, for example, 8 or 10-bit multimodule pixel values, and The data may be received in a compressed or encoded format. Input unit 4702 is a net This represents a work interface, peripheral bus interface, or storage interface. It is permissible. Examples of network interfaces include Ethernet (registered trademark). Wired interfaces such as passive optical networking (PON), and Wi-Fi (registration required) Examples include trademarks or wireless interfaces such as cellular interfaces.
[0445] System 4700 implements various encoding or encoding methods described herein. It may include an encoding module 4704 which can do the following. The encoding module 4704 is The average bitrate of the video from input unit 4702 is the output of encoding module 4704. The video can be reduced to generate an encoded representation of the video. Therefore, this encoding technique is video compression It is sometimes called video code conversion technology. The output of the encoding module 4704 is As represented by Joule 4706, it may be stored or transmitted via connected communication. It may be transmitted. Received, stored or communicated in input unit 4702. The bitstream (or encoded) representation of the generated video is used by module 4708. The pixel values or displayable values are used and transmitted to the display interface unit 4710. You may generate video. Generate video that the user can see from the bitstream representation. The process of doing so is sometimes called video unfolding. Furthermore, specific video processing operations are called "encoding". Although referred to as an operation or tool, an encoding tool or operation is an encoder and its corresponding... or a decoding tool or action performed by the decoder that reverses the decoding result. This will be understood.
[0446] Examples of peripheral bus interface units or display interface units are: Universal Serial Bus (USB) or High-Definition Multimedia Interface (HDM) I(registered trademark)) or may include DisplayPort, etc. Storage interface Examples of these include Serial Advanced Technology Attachment (SATA), PCI, Including IDE interfaces, etc. The technologies described herein are for mobile phones, notebook computers, etc. A computer, smartphone, or device capable of performing digital data processing and / or image display. This may be implemented in various other electronic devices, such as other devices.
[0447] In some embodiments, the following technical proposals can be implemented.
[0448] A1. For conversion between the current block of video and the bitstream representation of said video. , the maximum number of candidates (ML) in the merge candidate list based on subblocks and / or Time-motion vector prediction (SbTMVP) is used to create a merge candidate list based on the subblock. Whether to include it depends on the use of Temporal Motion Vector Prediction (TMVP) during transformation. Either the current Picture Reference (CPR) encoding mode is used for the conversion. This includes making a determination based on whether or not, and performing a conversion based on that determination. Image processing method.
[0449] A2. The TMVP tool is disabled, or the SbTMVP tool is disabled. Based on the determination of whether or not it is the case, the use of the SbTMVP candidate will be disabled, as described in Solution A1. The method.
[0450] Determining A3.ML is done when the SbTMVP tool or TMVP tool is disabled. Based on whether or not it is present, the SbTMVP candidate is selected from the merge candidate list based on the subblock. The method of Solution A2, including the exclusion of supplements.
[0451] A4. For conversion between the current block of video and its bitstream representation. Temporal motion vector prediction (TMVP), subblock-based temporal motion vector prediction The SbTMVP tool and affine coding modes are for use in this transformation. Based on whether it is valid, the maximum in the merge candidate list based on subblocks This video includes determining the candidate numbers (ML) and performing this transformation based on the determination. Processing method.
[0452] A5. Due to the determination that affine coding mode is enabled, ML is on the fly The method described in Solution A4, which is set up and signaled in a bitstream representation.
[0453] A6. It was determined that the affine coding mode was disabled, and the ML was predefined. The method described in Solution A4.
[0454] Determining A7.ML means that the TMVP tool is determined to be disabled. Therefore, including setting ML to 0, the SbTMVP tool is enabled, and the current block The method described in Solution A2 or A6 disables the affine coding mode of the buck.
[0455] Determining A8.ML is done by determining that the SbTMVP tool is valid. This includes setting ML to 1, enabling the TMVP tool, and the current block The method described in Solution A2 or A6, which disables the affine coding mode.
[0456] A9. The SbTMVP tool is disabled, or the current picture in the current block By determining that the collocated reference picture is the current picture The method described in Solution A1 disables the use of the SbTMVP candidate.
[0457] Determining A10.ML means that the SbTMVP tool is disabled or the current P Based on whether the collocated reference picture of Kucha is the current picture, sub A solution that includes excluding SbTMVP candidates from the block-based merge candidate list. The method described in A9.
[0458] Determining A11.ML is the collocated reference picture of the current picture. Based on the determination that this is the current picture, ML is set to 0, and currently The method of Solution A9, which includes disabling affine coding of the block.
[0459] Determining A12.ML means that the SbTMVP tool is determined to be valid. Therefore, the collocated reference picture of the current picture is not the current picture. If affine coding is disabled for the current block, set ML to 1. Including the method described in Solution A9.
[0460] A13. The SbTMVP tool is disabled, or reference picture list 0(L The reference picture with reference picture index 0 in 0) is currently in the current block The use of SbTMVP candidates is disabled when it is determined to be a picture. The method described in Solution A1.
[0461] Determining A14.ML means that the SbTMVP tool is disabled or L Is the current picture the referenced picture with referenced picture index 0 at 0? Based on this, we will exclude SbTMVP candidates from the merge candidate list based on subblocks. The method described in Solution A13, including the above.
[0462] Determining A15.ML means that the SbTMVP tool is determined to be valid. Therefore, including setting ML to 0, the reference picture index 0 in L0 is The reference picture is the current picture, and affine coding for the current block is disabled. The method described in solution A10 or A13.
[0463] Determining A16.ML means that the SbTMVP tool is determined to be valid. Therefore, it includes setting ML to 1 and having a reference picture index of 0 in L0. The reference picture is not the current picture, and the affine encoding of the current block is disabled. The method described in A13.
[0464] A17. The SbTMVP tool has been determined to be disabled, and the SbTMVP candidate Either its use is disabled, or the reference picture in reference picture list 1 (L1) Solution: The referenced picture with index 0 is the current picture of the current block. The method described in A1.
[0465] Determining A18.ML means that the SbTMVP tool is disabled, or L Is the reference picture with reference picture index 0 in 1 the current picture? Based on this, we will exclude SbTMVP candidates from the merge candidate list based on subblocks. The method described in Solution A17, including the above.
[0466] Determining A19.ML means that the SbTMVP tool is determined to be valid. Therefore, setting ML to 0 and the reference picture index 0 in L1 is currently Disable the reference picture, which is a picture, and the affine coding of the current block. The method described in A17, including the method described in A17.
[0467] Determining A20.ML means that the SbTMVP tool is determined to be valid. Therefore, setting ML to 1, including having reference picture index 0 in L1 The reference picture is not the current picture, and the affine coding of the current block is invalid. A method described in A17.
[0468] A21. The current block of the first video segment of one video and the bitstamp of this video. For conversion to and from the REEM representation, the temporal motion vector is at the first video segment level. Because the prediction (TMVP) mode is disabled, the motion based on one subblock is not displayed. Determine that the SbTMVP (SbTMVP) mode is disabled for this transformation. This includes performing a conversion based on this determination, and the bitstream representation is Sb Whether TMVP mode display is included and / or in the merge candidate list The format that defines the position of the SbTMVP display relative to the TMVP mode display. The video processing method to which it is applied.
[0469] A22. The first video segment may be a sequence, slice, tile, or picture. The method described in solution A21.
[0470] A23. The format includes the display of TMVP mode at the first video segment level. Solution A21 specifies that the display of SbTMVP mode should be omitted. Method of description.
[0471] A24. The above format is a display of SbTMVP mode, and a display of TMVP mode. Furthermore, Solution A21 specifies that the decoding order must be at the first video segment level. The method.
[0472] A25. The above format is determined to be in TMVP mode, therefore SbT The omission of the MVP mode display is specified in one of the solutions A21 to A24. The method.
[0473] A26. The above format is such that the display in SbTMVP mode is at the video sequence level. Solution A21 specifies that it is included and omitted at the second video segment level. Method of loading.
[0474] A27. The second video segment at the second video segment level is slice, tile, Alternatively, the method described in Solution A26, which is a picture.
[0475] A28. The conversion generates the current block from the bitstream representation, solution A1~ The method described in any of A27.
[0476] A29. Solution A, the conversion generates a bitstream representation from the current block. The method described in any of 1 to A27.
[0477] A30. Performing the above conversion is done based on one or more decoding rules of the bitstream A method according to any of solutions A1 to A27, including the step of parsing the expression.
[0478] A31. A video system including a processing unit and non-temporary memory containing instructions. The device is such that the instructions executed by the processing unit are any of the solutions A1 to A43 given to the processing unit. A device in a video system that implements the method described in Proposal 1.
[0479] A32. Computer program products stored on non-temporary computer-readable media. There exists a program code to execute one of the solutions A1 to A43. Computer program products, including code.
[0480] In some embodiments, the following technical proposals can be implemented.
[0481] B1. Subblock-based Temporal Motion Vector Prediction (SbTMVP) tool or time Current block of video encoded using Interstitial Motion Vector Prediction (TMVP) tool This includes performing a conversion between this video and its bitstream representation, and SbTMVP Tool Use a mask based on motion vector compression associated with the TMVP tool. Then, the coordinates of the position corresponding to the current block or a subblock of this current block Selectively masking and applying this mask creates a gap between the coordinate values and the mask values. A video processing method that includes AND operations on a per-bit basis.
[0482] B2. The coordinates are (xN, yN) and the mask (MASK) is equal to ~(2M-1) It is a number, M is an integer, and the masked coordinates (xN', yN') obtained by applying the mask are We obtain xN'=xN&MASK, yN'=yN&MASK, and "~" is bit The NOT operation is bitwise, and "&" is bitwise AND, as described in Solution B1. Method of loading.
[0483] B3. The method of solution B2, where M=3 or M=4.
[0484] B4. Based on the compression of the motion vector, multiple subblocks of size 2K×2K are generated. The same motion information is shared, and K is an integer not equal to M, as described in Solution B2 or B3. method.
[0485] B5. The method described in solution B4, where M = K + 1.
[0486] B6.SbTMVP tool or motion vector associated with TMVP tool is compressed. If it is determined that the mask is not applied, the method according to Solution 1.
[0487] B7. The mask for the TMVP tool is the same as the mask for the TMVP tool. The method described in any of the solutions B1 to B6.
[0488] B8. The mask for the ATMVP tool is different from the mask for the TMVP tool. The method described in any of the resolutions B1 to B6.
[0489] B9. One type of compression is uncompressed, 8x8 compression, or 16x16 compression. The method described in Proposal B1.
[0490] B10. The compression type is video parameter set (VPS), sequence parameter Picture Parameter Set (SPS), Picture Parameter Set (PPS), Slice Header, or The method described in Solution B9, which is signaled in the Illg group header.
[0491] B11. The compression type is a standard profile, level, corresponding to the current block. Alternatively, a method based on layers, as described in Solution B9 or B10.
[0492] B12. Based on one or more features of the current block of the video segment of the video, The Subblock-Based Motion Vector Prediction (SbTMVP) tool is suitable for use with blocks. To determine the valid corresponding area of the current block for use, and based on this determination This includes performing a conversion between the current block and the video bitstream representation. Image processing methods.
[0493] B13. Solution B12 includes one or more features, including the height or width of the current block. Methods used.
[0494] B14. One or more features are associated with the compression of the motion vector of the current block. The method described in Solution B12, including the Ip.
[0495] B15. When it is determined that the compression type does not include compression, the valid corresponding area The region is of size 1, and the valid corresponding region is determined to include K×K compression of the compression type. By being determined, the second size, which is larger than the first size, is defined as solution B14. Method of description.
[0496] B16. The size of the valid corresponding region is M × N equal to the size of the encoded tree units (CT). U) is based on a base region smaller than the size of the region, and the current block size is W× H, the method described in solution B12.
[0497] The size of the B17.CTU region is 128×128, M=64, and N=64. The method described in solution B16.
[0498] B18.By determining that W≦M and H≦N, the valid corresponding region is The basic domain and extension of collocation in collocated pictures, The method described in Resolution B16.
[0499] If B19.W > M and H > N is determined, the current block is divided into multiple parts. Each of the multiple parts is an individual valid corresponding area for applying the SbTMVP tool. The method described in Solution B16, including the method described in Solution B16.
[0500] B20. Use the Subblock-Based Time Motion Vector Prediction (SbTMVP) tool. Determine the default motion vector for the current block of the encoded video. Based on this determination, between the current block and the bitstream representation of this video This includes performing a transformation and is associated with the center position of the current block. A motion vector is obtained from a block containing the corresponding position in the selected picture. A video processing method that determines the default motion vector when it is determined that the object is not present.
[0501] B21. The default motion vector is set to (0,0), as described in Solution B20. Method of loading.
[0502] B22. The default motion vector is based on historical motion vector prediction (HMVP). A method for solution B20 derived from the table.
[0503] The default behavior vector is determined to be empty when the B23.HMVP table is found to be empty. The method described in Solution B22, in which Tor is set to (0,0).
[0504] B24. Default motion vectors are predefined and are part of the video parameter set (VPS ), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), S Rice header, tile group header, coding tree unit (CTU), or coding The method described in Solution B22, which is signaled to the Unit (CU).
[0505] Based on the determination that the B25.HMVP table is not empty, the default behavior Solution B22 describes setting the vector to the first element stored in the HMVP table. method.
[0506] Based on the determination that the B26.HMVP table is not empty, the default behavior Set the vector to the last element stored in the HMVP table, as described in Solution B22. method.
[0507] Based on the determination that the B27.HMVP table is not empty, the default behavior Solution B22: Set the vector to a specific motion vector stored in the HMVP table. Methods used.
[0508] B28. The method described in Solution B27, referencing Reference List 0 for a specific motion vector. .
[0509] B29. The method described in Solution B27, refer to Reference List 1 for the specific motion vector. .
[0510] B30. A specific motion vector refers to a specific reference picture in reference list 0. The method described in solution B27.
[0511] B31. A specific motion vector refers to a specific reference picture in reference list 1. The method described in solution B27.
[0512] B32. The specific reference picture has index 0, solution B30 or B31 Methods used.
[0513] B33. A specific motion vector refers to a collocated picture, Solution B Method 27.
[0514] In the search process for the B34.HMVP table, a specific motion vector was not found. If it is determined that, the default motion vector will be a predefined default motion vector. Set to the method described in Solution B22.
[0515] B35. The search process searches only the first element of the HMVP table, or the last A method using solution B34 to search only for elements.
[0516] B36. The search process searches only a subset of the elements in the HMVP table. Solution B The method described in 34.
[0517] B37. The default motion vector does not refer to the current picture of the current block. , the method described in Solution B22.
[0518] B38. Determining whether the default motion vector does not refer to a collocated picture. Based on this, the default motion vector is scaled to the collocated picture. The method described in solution B22.
[0519] B39. The default motion vector is derived from neighboring blocks, as in solution B20. Method of description.
[0520] B40. The upper right corner of the neighboring block (A0) is directly adjacent to the lower left corner of the current block. Or, the lower right corner of the neighboring block (A1) is directly adjacent to the lower left corner of the current block. If the lower left corner of a nearby block (B0) is directly adjacent to the upper right corner of the current block Either the lower right corner of the neighboring block (B1) is directly adjacent to the upper right corner of the current block. Either the bottom right corner of the neighboring block (B2) is directly adjacent to the top left corner of the current block. The method described in Solution B39 is relevant.
[0521] B41. The default motion vector is for neighboring blocks A0, A1, B0, B1, B2 A method for solution B40, derived from only one of the following.
[0522] B42. The default motion vector is for neighboring blocks A0, A1, B0, B1, B2 The method of solution B40, derived from one or more of the blocks.
[0523] B43. Default value valid for any of the neighboring blocks A0, A1, B0, B1, or B2. If it is determined that no motion vector is found, a default motion vector is predefined. Set the default motion vector as described in Solution B40.
[0524] B44. Predefined default motion vectors are used in the video parameter set (VPS ), Sequence Parameter Set (SPS), Picture Parameter Set (PPS), S Rice header, tile group header, coding tree unit (CTU), or coding The method described in Solution B43, which is signaled in the Unit (CU).
[0525] B45. Solution B43: The predefined default motion vector is (0,0). Or the method described in B44.
[0526] B46. The default motion vector is set to a specific motion vector from a neighboring block. The method specified in Solution B39.
[0527] B47. The method described in Solution B46, referring to Reference List 0 for a specific motion vector. .
[0528] B48. The method described in Solution B46, refer to Reference List 1 for a specific motion vector. .
[0529] B49. A specific motion vector refers to a specific reference picture in reference list 0. , the method described in Solution B46.
[0530] B50. A specific motion vector refers to a specific reference picture in reference list 1. , the method described in Solution B46.
[0531] B51. The specific reference picture has index 0, solution B49 or B50 Methods used.
[0532] B52. A specific motion vector refers to a collocated picture, Solution B Method 46.
[0533] B53. The block containing the corresponding position in the collocated picture is When it is determined that it is coded, the default motion vector is used in the solution. Method as described in Proposal B20.
[0534] B54. The derivation method includes the corresponding position in the collocated picture. The method described in Solution B20, which is corrected when it is determined that the lock is not located. .
[0535] B55. Default motion vector candidates are always available, as described in Solution B20. method.
[0536] B56. If it is determined that the default motion vector candidates are set to unavailable Alternatively, the method described in Solution B20 derives the default motion vector.
[0537] B57. The availability of default motion vectors is determined by the bit associated with the video segment. A method for Solution B20 based on syntactic information in stream representation.
[0538] B58. Syntax information includes the display to enable the SbTMVP tool, and the video segment is The method according to Solution B57, which is a slice, tile, or picture.
[0539] B59. The current picture in the current block is an intra-random access point (IR). AP) The current picture has reference index 0, not the reference index picture. The method described in Solution B58 does not insert the reference picture list 0 (L0).
[0540] B60. The SbTMVP tool is determined to be enabled, and is associated with the SbTMVP tool. Assign a fixed index or set of fixed indexes to the assigned candidate, and use SbTMVP. If the tool is determined to be invalid, it will be associated with an encoding tool other than the SbTMVP tool. Solution B20: Assign a fixed index or set of fixed indexes to the rejected candidates. Methods used.
[0541] B61. For the current block of the video segment, the current P Kucha has the index set to M in the reference picture list X. It is determined that it is a char, M and X are integers, and X=0 or X=1. Therefore, the Subblock-Based Time Motion Vector Prediction (SbTMVP) tool or time Interstitial Motion Vector Prediction (TMVP) tool will be disabled for video segments. The process of inferring and, based on that inference, the relationship between the current block and the video bitstream representation. A video processing method that includes performing a conversion.
[0542] B62. Reference picture list X for the SbTMVP tool or TMVP tool Then, M is the reference picture index that scales the motion information of the time block. The method described in Solution B61, which corresponds to S.
[0543] B63. The current picture is an intra-random access point (IRAP) picture. The method described in Solution B61.
[0544] B64. For the current block of the video, the current picture of the current block is the reference picture. A reference picture in the kucharist X that has an index set to M, and M When X is determined to be an integer, the time movement vector based on the subblock To determine whether the application of the SbTMVP prediction tool is effective, and based on this determination This includes performing a conversion between the current block and the video bitstream representation, and A video processing method.
[0545] B65. The motion information corresponding to each subblock of the current block is obtained by referring to the current picture. Refer to the method described in Solution B64.
[0546] B66. Motion information for the subblock of the current block is from one time block. Derived, this time block refers to the current picture of this time block, The method described in Solution B64, which is encoded with at least one reference picture.
[0547] B67. The conversion is performed using the method described in Solution B66, excluding the scaling operation.
[0548] B68. Performing a conversion between the current block of video and its bitstream representation. The current block includes and is encoded using a subblock-based encoding tool. Performing this transformation is equivalent to subblock-based temporal motion vector prediction (SbTMVP). Based on whether the tool is enabled or disabled, multiple bins (N) are used. A video processing method that includes encoding the subblock merge index in a unified manner.
[0549] B69. The first number of bins (L) of multiple bins are context-encoded, and the second number of bins The (NL) is bypass-encoded as described in Solution B68.
[0550] The method described in solution B69, where B70.L=1.
[0551] B71. Each of the multiple bins is context-encoded, as described in Solution B68. .
[0552] B72. The conversion generates the current block from the bitstream representation, solution B1~ The method described in any of the B71 instructions.
[0553] B73. The conversion generates a bitstream representation from the current block, solution B1~ The method described in any of the B71 instructions.
[0554] B74. Performing a conversion involves converting the bitstream representation based on one or more decoding rules. A method according to any of solutions B1 to B71, including parsing.
[0555] B75. A processing unit and a non-temporary memory containing instructions are provided in the video system. The device is such that the instructions executed by the processing unit are one of the solutions B1 to B11. A device characterized by implementing the method described in Proposal 1.
[0556] B76. Computer program products stored on non-temporary computer-readable media If applicable, the computer program product should be one of the solutions B1 to B11. It includes program code for enforcing the law.
[0557] In some embodiments, the following technical proposals can be implemented.
[0558] C1. Using the Subblock-Based Time Movement Vector Prediction (SbTMVP) tool For the current block of the encoded video, the SbTMVP tool processes the current block. To determine the location of the corresponding block in a picture that includes the current picture and a different picture. Determine the motion vector to be used, and based on this determination, the current block and video A video processing method that includes performing a conversion between a bitstream representation and a video.
[0559] C2. The motion vector will be set to the default motion vector as described in Solution 1. Law.
[0560] C3. The default motion vector is (0,0), as described in solution C2.
[0561] C4. Default motion vectors are video parameter sets (VPS), sequence parameters Parameter set (SPS), Picture parameter set (PPS), Slice header, Thread group header, coding tree unit (CTU), or coding unit (CU) The method of solution C2, which is signaled in [location].
[0562] C5. The motion vector is stored in the Historical Motion Vector Prediction (HMVP) table. The method described in Solution C1, which sets the motion vector to the specified value.
[0563] Based on the determination that the C6.HMVP table is empty, the motion vector is deflated. The method used in solution C5 to set the ost motion vector.
[0564] C7. The default motion vector is (0,0), as described in solution C6.
[0565] Based on the determination that the C8.HMVP table is not empty, the motion vector is HM The method described in Solution C5, which sets the first motion vector stored in the VP table.
[0566] When it is determined that the C9.HMVP table is not empty, the motion vector is converted to HMVP. The method described in Solution C5, which sets the last motion vector stored in the table.
[0567] Based on the determination that the C10.HMVP table is not empty, the motion vector is H The method described in Solution C5, which sets a specific motion vector to be stored in the MVP table.
[0568] C11. The method used in Solution C10, which refers to a specific motion vector, see Reference List 0. .
[0569] C12. The method used in Solution C10, refer to Reference List 1, for a specific motion vector. .
[0570] C13. A specific motion vector refers to a specific reference picture in reference list 0. The method described in solution C10.
[0571] C14. A specific motion vector refers to a specific reference picture in reference list 1. The method described in solution C10.
[0572] C15. The specific reference picture has index 0, solution C13 or 14. Method of description.
[0573] C16. A specific motion vector refers to a collocated picture, Solution C Method 10.
[0574] In the search process for the C17.HMVP table, a specific motion vector was not found. Solution C5: If it is determined that the motion vector is the default motion vector. Methods used.
[0575] C18. The search process searches only the first element of the HMVP table, or the last A method similar to solution C17, which searches only for elements.
[0576] C19. The search process searches only a subset of the elements in the HMVP table. Solution C Method 17.
[0577] The motion vector stored in the C20.HMVP table does not refer to the current picture. The method described in Solution C5.
[0578] C21. Pictures with collocated motion vectors stored in the HMVP table Because it was determined that it was not being referenced, the motion vector stored in the HMVP table was not used. The method described in Solution C5, which scales to the converted picture.
[0579] C22. The motion vector is set to a specific motion vector of a particular neighboring block. The method described in Solution C1.
[0580] C23. The upper right corner of a specific neighboring block (A0) is directly adjacent to the lower left corner of the current block. Alternatively, the bottom right corner of a specific neighboring block (A1) directly corresponds to the bottom left corner of the current block. The lower left corner of an adjacent or specific neighboring block (B0) is the upper right corner of the current block. The right-right corner of a directly adjacent block, or a specific neighboring block (B1), is the upper right corner of the current block. Either directly adjacent to a corner, or the lower right corner of a specific neighboring block (B2) is the current block Solution C22, which is directly adjacent to the top left corner, or directly adjacent to the top left corner of the current block. Method of description.
[0581] C24. When it is determined that no block exists in a particular neighborhood, the motion vector is The method described in Solution C1 sets the default motion vector.
[0582] C25. When it is determined that a particular neighboring block is not intercoded, The method described in Solution C1, which sets the motion vector to the default motion vector.
[0583] C26. The method described in Solution C22, referencing Reference List 0 for a specific motion vector. .
[0584] C27. The method described in Solution C22, refer to Reference List 1 for a specific motion vector. .
[0585] C28. A specific motion vector refers to a specific reference picture in reference list 0. , the method described in solution C22.
[0586] C29. A specific motion vector refers to a specific reference picture in reference list 1. , the method described in solution C22.
[0587] C30. A specific referenced picture has index 0, see Solution C28 or C29. Method of description.
[0588] C31. A specific motion vector refers to a collocated picture, Solution C The method described in 22 or C23.
[0589] C32. It is determined that a particular neighboring block does not reference a collocated picture. Solution C2: By being determined, the motion vector is set to the default motion vector. The method described in 2 or C23.
[0590] C33. The default motion vector is (0,0), solution C24~C32 is A method using one of the following methods.
[0591] C34. It is determined that a specific motion vector stored in a particular neighboring block cannot be found. If this occurs, set this motion vector to the default motion vector, as described in Solution C1. Method of loading.
[0592] C35. A specific motion vector is a specific motion vector that is collocated to the P35. Because it is determined that the picture does not reference the other picture, the single collocated picture is assigned to the other picture. The method described in solution C22.
[0593] C36. A specific motion vector does not refer to the current picture, as described in Solution C22. method.
[0594] C37. The conversion generates the current block from the bitstream representation, solution C1~ The method described in any of C36.
[0595] C38. The conversion generates a bitstream representation from the current block, solution C1~ The method described in any of C36.
[0596] C39. Performing a conversion involves converting the bitstream representation based on one or more decoding rules. A method according to any of solutions C1 to C36, including parsing.
[0597] C40. A video system including a processing unit and a non-temporary memory containing instructions. The device is positioned such that the instructions executed by the device are one of the solutions C1 to C25. A device characterized by implementing the method described in the proposal.
[0598] C41. Computer program products stored on non-temporary computer-readable media. If applicable, the computer program product should be one of the solutions C1 to C25. It includes program code for enforcing the law.
[0599] In some embodiments, the following technical proposals can be implemented.
[0600] D1. For conversion between the current block of video and the bitstream representation of video, Based on whether affine prediction is enabled for the current block transformation, Determine whether to insert the zero-affine merge candidate into the subblock merge candidate list. A video processing method that includes performing this determination and, based on this determination, performing this conversion.
[0601] D2. The affine usage flag in the bitstream representation is determined to be off. Therefore, do not insert zero-movement affine merge candidates into the subblock merge candidate list. The method described in Plan D1.
[0602] D3. The affine usage flag was determined to be off, so it is not a non-affine candidate. Further insert the default motion vector candidates into the subblock merge candidate list. The method described in Solution D2, which is included in this.
[0603] D4. Use the current block of the video and the list of candidate subblock merges to select the video block. For conversion to and from stream representations, the subblock merge candidate list is filled. If no candidate is found, the zero-movement non-affine padding candidate is selected as a subblock merge candidate. Video processing including inserting into a list and then performing this transformation following the insertion. method.
[0604] D5. Solution further includes setting the affine use flag for the current block to 0. The method described in D4.
[0605] D6. The insertion step is performed when the affine usage flag in the bitstream representation is turned off. The method described in Solution D4, further based on whether or not this is the case.
[0606] D7. For conversion between the current block of video and the bitstream representation of video, The motion vector is a block containing the corresponding position in the collocated picture. Using a rule that determines if a motion vector is derived from one or more motion vectors, A video processing method that includes determining the torque and performing this transformation based on the motion vector. .
[0607] D8.1 or more motion vectors are motion vectors in reference list 0 and reference list 1 It has MV0 and MV1 representing the torques, and the motion vector to be derived is the reference RIS It comprises MV0' and MV1' representing motion vectors in T0 and reference list 1, The method described in Solution D7.
[0608] D9. It is determined that one collocated picture is in reference list 0. The method according to Solution D8, wherein MV0' and MV1' are derived based on MV0.
[0609] D10. It is determined that one collocated picture is in reference list 1. Based on this, MV0' and MV1' are derived based on MV1, as described in Solution D8. method.
[0610] D11. The conversion is a solution D1-D that generates the current block from the bitstream representation. The method described in any of the ten methods.
[0611] D12. The conversion generates a bitstream representation from the current block, solution D1~ The method described in any one of the D16 options.
[0612] D13. Performing a conversion involves converting the bitstream representation based on one or more decoding rules. A method according to any of the solutions D1 to D10, including parsing.
[0613] D14. A video system including a processing unit and non-temporary memory containing instructions. The device is such that the instructions executed by the processing unit are one of the solutions D1 to D18. A device characterized by implementing the method described in one of the proposals.
[0614] D15. Computer program products stored on non-temporary computer-readable media. The computer program product will be one of the solutions D1 to D18. Includes program code for performing the described method.
[0615] In some embodiments, the following technical solutions can be implemented.
[0616] E1. A video processing method comprising the current block of video and the bitstream representation of video. For conversion, the current block or current block within the picture placed at the same position The time block associated with the subblock of the 'k' is previously encoded within the same picture. The video unit is encoded using an encoding mode in which the video unit is reconstructed based on the sample. If so, the time based on the subblock which has a default move candidate for the conversion The motion vector prediction (sbTMVP) tool determines and the default motion A method that includes performing a conversion based on the candidate.
[0617] E2. Instead of the sbTMVP candidate for a subblock or non-subblock, default A method using motion candidates, as described in solution E1.
[0618] E3. The default motion candidate is the motion associated with the center position of the current block. The method described in Solution E1 or E2, including the candidate.
[0619] E4. The default motion candidate is (0,0), and the reference picture list 0 or The aforementioned reference picture index in reference picture list 1 is zero, solution E1 or Methods described in E2.
[0620] E5. The encoding mode is intrablock copy (IBC) mode. The method described in any of E1 to E4.
[0621] E6. A video processing method comprising the current block of video and the bitstream representation of video. Temporal motion vector prediction (sbTMVP) based on subblocks, which is part of the transformation between them. ) Processing for deriving subblock movement information for the subblock of the current block Based on the location used, default motion information for sbTMVP processing is derived. A method that includes outputting information and performing a conversion based on default motion information.
[0622] E7. The aforementioned position is not the center position of the current block, but a specific sub-position of the current block. The method described in solution E6, which is the central position of the block.
[0623] E8. The method described in Solution E7, wherein the particular subblock is the central subblock. .
[0624] E9. The conversion generates the current block from the bitstream representation. A method using one of the decisions E1 to E8.
[0625] E10. The conversion generates the bitstream representation from the current block. The method described in any of solutions E1 to E8.
[0626] E11. Performing the above conversion is performed based on one or more decoding rules of the bitstream A method according to any of solutions E1 to E8, including parsing the expression.
[0627] E12. A device comprising a processing unit and a non-temporary memory in which instructions are stored in the processing unit. An image system device, in which instructions are executed by a processing unit, An apparatus that causes the method described in any one of solutions E1 to E11 to be implemented.
[0628] E13. Computer program products stored on non-temporary computer-readable media. There is a program to perform the method described in one of the solutions E1 to E11. Computer program products, including code.
[0629] In some embodiments, the following technical solutions can be implemented.
[0630] F1. A video processing method comprising a time motion vector prediction (sbT) based on subblocks. The current block of video encoded using the MVP tool, and the bitstream of the video. For the purpose of representation and conversion, the current picture in the current block is different from the corresponding picture within the picture. This determines the modified motion vector used to pinpoint the position of the block. Therefore, the corrected motion vector is used in the sbTMVP tool for prediction. The determination and the determination are generated by right-shifting the metric with integer precision. A method that includes performing a conversion.
[0631] F2. The aforementioned right shift uses the same rounding process as the motion vector scaling process. The method used in solution F1, which involves calculation.
[0632] F3. The aforementioned right shift uses the same rounding operation as the motion vector averaging process. The method used in solution F1.
[0633] F4. The aforementioned right shift is used in Adaptive Motion Vector Resolution (AMVR) processing. The method used in solution F1, which uses the same rounding operation.
[0634] F5. Right shift uses rounding towards zero, and the motion vector is MV = (MVx The motion vector is expressed as MV' = (MVx', MVy') and the right-shifted motion vector is MV' = (MVx', MVy'). The method described in Solution F1.
[0635] F6. The right-shifted motion vector is MVx' = (MVx + ((1<<N)> > 1)-(MVx≧0?1:0))>>N, and MVy'=(MVy+((1<<N)> It is calculated as >1)-(MVy≧0?1:0))>>N, where N is the resolution of the motion vector. The integer representing the method used in solution F5.
[0636] The solution method for F7.N=4 is as described in F6.
[0637] F8. The aforementioned right-shifted motion vector is given by MVx' = (MVx + (MVx ≥ 0 ≤ 7: Calculated using 8))>>4 and MVy'=(MVy+(MVy≧0?7:8))>>4 The solution is as described in method F5.
[0638] F9. Further use the modified motion vector to pinpoint the position of another corresponding block. Stop, derive the default motion information used by the sbTMVP tool, solution F1~F The method described in any of the eight methods.
[0639] F10. Deriving the default motion information is the current block center position and The method of solution F9, further based on the aforementioned modified motion vector.
[0640] F11. Deriving default behavior information for subblocks of the current block is Based on the subblock's center position and the modified motion vector, solution F9 Method of description.
[0641] F12. The above conversion uses a different encoding tool than the sbTMVP tool, Use the modified motion vector to reference a different picture or the current picture. A method to locate the block using one of the solutions F1-F11.
[0642] F13. The conversion generates the current block from the bitstream representation. A method using one of the solutions F1 to F12.
[0643] F14. The conversion generates the bitstream representation from the current block. A method using one of the solutions F1 to F12.
[0644] F15. Performing the above conversion is done based on one or more decoding rules of the bitstream A method of any of solutions F1 to F12, which includes parsing the expression.
[0645] F16. Image comprising a processing unit and non-temporary memory in which instructions are stored for that processing unit. A device of the system, in which instructions are executed by the processing unit, An apparatus that implements one of the methods described in solutions F1 to F15.
[0646] F17. Computer program products stored on non-temporary computer-readable media. There is a program to perform one of the methods described in the solution F1-F15. Computer program products, including code.
[0647] Disclosed and other solutions, examples, embodiments, modules described herein, And the functional operation includes the structures and their structural equivalents disclosed herein, digitally. In electronic circuits, or computer software, firmware, or hardware They may be implemented, or one or more of them in combination. And other embodiments include one or more computer program products, namely, data Because it is implemented by the processing unit, or to control the operation of the data processing unit, One or more modules of computer program instructions encoded on a computer-readable medium It can be implemented as such. This computer-readable medium is a machine-readable storage device, machine Machine-readable memory substrates, memory devices, compositions of materials that provide machine-readable propagating signals, or this It may be one or more combinations of these. The term "data processing device" is, for example, , programmable processing unit, computer, or multiple processing units or computers This includes all equipment, devices, and machines for processing data. In addition to hardware, this includes code that creates the execution environment for the computer program, for example. Processing unit firmware, protocol stack, database management system, operator This may include code that constitutes a coding system, or one or more combinations thereof. Yes, it is possible. Propagated signals are artificially generated signals, such as electricity, light, or electricity generated by a machine. It is an electromagnetic signal, generated to encode information for transmission to a suitable receiving device.
[0648] 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) It may be recorded, or it may be stored in a single file dedicated to that program. and multiple adjustment files (for example, one or more modules, subprograms, or code It may be stored in a file that stores part of the code. This can be done by a single computer located at one site, or by distributing the communication network across multiple sites. Deploying to run on multiple computers interconnected by a network. It is also possible.
[0649] The processing and logic flows described herein operate on input data and produce outputs. One that executes one or more computer programs to perform a function by doing so. This can be done by the above programmable processing unit. The processing and logic flow are Furthermore, logic circuits for specific applications, such as FPGAs (Field Programmable Gate Arrays), This can be done by a Ray or ASIC (Application-Specific Integrated Circuit), and the device can also It can be implemented as a logic circuit for a special purpose.
[0650] Processing units suitable for executing computer programs include, for example, general-purpose and specialized microcontrollers. Both processing units, as well as any one or more processing units of any type of digital computer. This includes. Generally, the processing unit has read-only memory or random access memory or It receives instructions and data from both. An essential element of a computer is that it executes instructions. A processing unit for performing the operation, and one or more memory devices for storing instructions and data. Generally, computers use one or more mass storage devices to store data. For example, this may include magnetic, magneto-optical disks, or optical disks, or a large of these. It operates to receive data from or transfer data to a capacitive storage device. They may be coupled as possible. However, a computer has such a device It is not necessary. A computer suitable for storing computer program instructions and data. Readable media include all forms of non-volatile memory, media, and memory devices, for example. For example, EPROM, EEPROM, flash memory devices, magnetic disks, etc. Partial hard disk or removable disk, magneto-optical disk, and CD-ROM This includes semiconductor memory devices such as DVD-ROM discs. The processing unit and memory are It may be complemented by a logic circuit for specific purposes, or it may be used in conjunction with a logic circuit for specific purposes. It may be incorporated.
[0651] This patent specification contains many details, but these may not apply to any subject matter or claims. It should not be interpreted as limiting the scope of, and is specific to a particular embodiment of a particular technology. This should be interpreted as a description of possible features. The specific features described in the context may be implemented in combination in a single example. Furthermore, the various features described in the context of one example may be described separately or by default in multiple embodiments. It may be implemented using an appropriate subcombination of the intent. Furthermore, the features are specific combinations It may be stated above that it acts in this way, and may be initially asserted as such, but One or more features from the combination may, in some cases, be extracted from the combination. The claimed combination can be a subcombination or subcombination. It may also be directed towards variations of the .
[0652] Similarly, the operation is shown in a specific order in the drawings, which is to achieve the desired result. To achieve this, such actions must be performed in a specific or sequential order as indicated. Or, it should be understood that all the operations indicated must be performed. No. Also, various system modules in the embodiments described in this patent specification The separation of should be understood to be necessary in all embodiments. There isn't one.
[0653] Only a few implementation forms and examples are described and illustrated in this patent specification. Based on the content described, other embodiments, extensions, and modifications are possible.
Claims
1. A video processing method, Encoding using the subblock-based temporal motion vector prediction (sbTMVP) tool. For the conversion between the current block of the video and the bitstream representation of the video, The position of the corresponding block in a picture different from the current picture of the current block Determining the modified motion vector used to find the modified The resulting motion vector is an integer of the motion vector used for prediction in the sbTMVP tool. The determination generated by right-shifting with precision, This includes performing the conversion based on the aforementioned determination, method.
2. The aforementioned right shift is the same rounding used in motion vector scaling. Use the operation, The method according to claim 1.
3. The aforementioned right shift uses the same rounding operation as that used in motion vector averaging. Use The method according to claim 1.
4. The aforementioned right shift is used in adaptive motion vector resolution (AMVR) processing. Use the same rounding operation, The method according to claim 1.
5. The aforementioned right shift uses rounding operations toward zero, The aforementioned motion vector is expressed as MV = (MVx, MVy), The right-shifted motion vector is expressed as MV' = (MVx', MVy'). The method according to claim 1.
6. The aforementioned right-shifted motion vector is given by MVx' = (MVx + ((1 << N) >> 1) - (MVx≧0?1:0))>>N, and MVy'=(MVy+((1<<N)>>1) -(MVy≧0?1:0))>>N is calculated, where N represents the resolution of the motion vector. It is an integer. The method according to claim 5.
7. The method according to claim 6, wherein N = 4.
8. The aforementioned right-shifted motion vector is given by MVx' = (MVx + (MVx ≥ 0 ? 7 : 8)) >>4, and MVy' = (MVy + (MVy ≥ 0? 7:8)) >>4 is calculated. 、 The method according to claim 5.
9. The modified motion vector is the default motion used by the sbTMVP tool. It is further used to pinpoint the location of another corresponding block from which the information is derived. The method according to any one of claims 1 to 8.
10. The derivation of the default motion information is the current block's center position and the Based on the corrected motion vector, The method according to claim 9.
11. Deriving the default motion information for the subblock of the current block is , further based on the center position of the subblock and the modified motion vector, The method according to claim 9.
12. The conversion is performed by the position of the reference block in the different picture or the current picture. To pinpoint the location, the sbTMVP tool uses the modified motion vectors described above. This uses a different coding tool. The method according to any one of claims 1 to 11.
13. The conversion generates the current block from the bitstream representation. The method according to any one of claims 1 to 12.
14. The conversion generates the bitstream representation from the current block. The method according to any one of claims 1 to 12.
15. Performing the aforementioned conversion involves converting the bitstream representation based on one or more decoding rules. Including parsing, The method according to any one of claims 1 to 12.
16. A video system device comprising a processing unit and a non-temporary memory containing instructions, The instruction executed by the processing unit is any one of claims 1 to 15. To have the method described in paragraph 1 carried out, Device.
17. A computer program product stored on a non-temporary computer-readable medium, Includes program code for performing the method described in any one of claims 1 to 15 、 Computer program products.