Selective Use of Alternative Interpolation Filters in Image Processing
The method addresses the challenge of increasing bandwidth demand in digital video transmission by selectively applying alternative interpolation filters in video processing, thereby enhancing efficiency and quality.
Patent Information
- Application Number
- JP2023166357
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-20
- Filing Date
- 2023-09-27
- Publication Date
- 2025-05-27
- Estimated Expiration
- 2040-08-20
AI Technical Summary
Current video compression technologies face challenges in efficiently managing bandwidth usage, particularly as the number of connected devices increases, leading to higher demand for digital video transmission.
The proposed method involves determining the applicability of an alternative interpolation filter for video processing, specifically in converting video blocks between the current video and its encoded representation. This method considers factors such as reference picture resampling and encoding modes like merge mode with motion vector difference (MMVD) to optimize the conversion process.
By selectively applying alternative interpolation filters based on determined conditions, the method enhances video processing efficiency, potentially reducing bandwidth requirements and improving video quality in digital transmission.
Smart Images

Figure 0007684361000009 
Figure 0007684361000010 
Figure 0007684361000011
Abstract
Description
Technical Field
[0001] Cross - reference to related applications This This application claims the priority and benefit of International Patent Application No. PCT / CN2019 / 101541, filed on August 20, 2019 is mainly and claims a divisional application of Patent Application No. 2022-509198 based on International Patent Application No. PCT / CN2020 / 110147 filed on August 20, 2020 . above The entire disclosure of the previously filed application is incorporated herein by reference as part of the disclosure of this specification
[0002] This patent specification relates to video processing technologies, devices, and systems
Background Art
[0003] Despite the progress of video compression, digital video still occupies the largest bandwidth usage in the Internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for the use of digital video is predicted to continue to increase
Summary of the Invention
[0004] Devices, systems, and methods related to digital video processing, specifically related to deriving motion vectors are described. The methods described can be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC) or various video codings) and future video coding standards or video codecs can be applied .
[0005] In one representative aspect, the disclosed technology may be used to provide a method of video processing This method involves the current video block of the current picture of the video and the encoded For conversion with a representation, it includes determining the applicability of an alternative interpolation filter, where the applicability of the alternative interpolation filter indicates whether to apply this alternative interpolation filter in the conversion. This method performs the conversion based on the determination. Here, the applicability of the alternative interpolation filter is determined based on whether reference picture resampling for resampling the reference picture of the current picture to perform the conversion is used.
[0006] In another representative aspect, the disclosed technology may be used to provide a method for video processing. This method includes determining an encoding mode used to represent the current video block of the video as a merge mode with motion vector difference (MMVD ) that includes a motion vector representation providing information regarding the distance between the motion candidate and the starting point, and performing a conversion based on the encoding representation determined based on the current video block and the determination, where the conversion is performed using a predicted block for the current video block calculated using a 1 / 2 pixel interpolation filter selected according to a first rule defining a first condition that the 1 / 2 pixel interpolation filter is an alternative 1 / 2 pixel interpolation filter different from the default 1 / 2 pixel interpolation filter, and a second rule defining a second condition regarding whether to inherit the alternative 1 / 2 pixel interpolation filter.
[0007] In another representative aspect, the disclosed technology may be used to provide a method for video processing. This method includes determining the encoding mode used in the current video area of the video, and based on the encoding mode, determining the motion vector or motion vector difference value of the current video area. Performing a determination of the accuracy used for representation, and performing a conversion between the current video block and the encoded representation of the video including performing a conversion between the current video block and the encoded representation of the video
[0008] In another representative aspect, the disclosed technology may be used to provide a method for video processing This method includes determining the encoding mode of the current video block of the video as a merge mode with motion vector difference (MMVD), and based on the motion accuracy information of the base merge candidate associated with the current video block, determining a distance table that defines the relationship between the distance index and a predefined offset for the current video block and performing a conversion between the current video block and the encoded representation of the video using the distance table including performing a conversion between the current video block and the encoded representation of the video including performing a conversion between the current video block and the encoded representation of the video including performing a conversion between the current video block and the encoded representation of the video including performing a conversion between the current video block and the encoded representation of the video
[0009] In another representative aspect, the disclosed technology may be used to provide a method for video processing This method includes performing a first determination using an alternative 1 / 2 pixel interpolation filter, where the motion vector difference used for decoder-side motion vector fine-tuning (DMVR) calculation for a first video region has a resolution finer than an X pixel resolution where X is a fraction of an integer and performing a second determination that does not store the information of the alternative 1 / 2 pixel interpolation filter associated with the first video region or is not available for a second video region to be processed later and performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video based on the first determination and the second determination including performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video including performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video including performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video including performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video including performing a conversion between the video consisting of the first video region and the second video region and the encoded representation of the video
[0010] In another representative aspect, the disclosed technology may be used to provide a method for video processing It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block.
[0011] In another representative aspect, the disclosed technology may be used to provide a method for video processing. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. It is also possible. This method includes, in accordance with a rule, determining whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block.
[0012] In another representative aspect, the disclosed technology may be used to provide a method for video processing. It is also possible. This method includes, in accordance with a rule, determining the coefficients of an alternative 1 / 2 pixel interpolation filter for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates the relationship between the alternative 1 / 2 pixel interpolation filter and the 1 / 2 pixel interpolation filter used in a specific encoding mode. It is also possible. This method includes, in accordance with a rule, determining the coefficients of an alternative 1 / 2 pixel interpolation filter for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates the relationship between the alternative 1 / 2 pixel interpolation filter and the 1 / 2 pixel interpolation filter used in a specific encoding mode. It is also possible. This method includes, in accordance with a rule, determining the coefficients of an alternative 1 / 2 pixel interpolation filter for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates the relationship between the alternative 1 / 2 pixel interpolation filter and the 1 / 2 pixel interpolation filter used in a specific encoding mode. It is also possible. This method includes, in accordance with a rule, determining the coefficients of an alternative 1 / 2 pixel interpolation filter for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates the relationship between the alternative 1 / 2 pixel interpolation filter and the 1 / 2 pixel interpolation filter used in a specific encoding mode. It is also possible. This method includes, in accordance with a rule, determining the coefficients of an alternative 1 / 2 pixel interpolation filter for the current video block of the video, and performing conversion between the current video block and the encoded representation of this video based on the determination. The rule stipulates the relationship between the alternative 1 / 2 pixel interpolation filter and the 1 / 2 pixel interpolation filter used in a specific encoding mode.
[0013] In another representative aspect, the disclosed technology may be used to provide a method for video processing. This method includes applying an alternative 1 / 2 pixel interpolation filter according to a rule for converting a current video block of a video and an encoded representation of the video, and performing the conversion between the current video block and the encoded representation of the video, where the rule defines applying the alternative interpolation filter at positions in X pixels where X is other than 1 / 2.
[0014] In another representative aspect, the disclosed technology may be used to provide a method for video processing. This method includes making a first determination to select an alternative interpolation filter by a first video block of a video for a first motion vector component having X pixel accuracy, and making a second determination to use another alternative interpolation filter for a second motion vector component having an accuracy different from the X pixel accuracy where X is an integer fraction based on the first determination, and performing the conversion between the video including the first video block and the second video block and the encoded representation of the video. This includes performing the conversion between the video including the first video block and the second video block and the encoded representation of the video. including.
[0015] Furthermore, in a representative aspect, any one of the disclosed methods is an encoder side implementation form.
[0016] Also, in a representative aspect, any one of the disclosed methods is a decoder side implementation form.
[0017] One of the methods described above is implemented in the form of code executable by a processing device and stored in a computer-readable program medium. stored on a computer-readable program medium.
[0018] In yet another representative embodiment, a processing device and a non-transitory memory storing instructions are provided. An apparatus in a video system is disclosed. When the instructions are executed by the processing device the processing device is caused to implement any of the methods disclosed herein.
[0019] The above and other aspects and features of the disclosed technology will be described in more detail in the drawings, the description, and the claims below.
Brief Description of the Drawings
[0020]
Figure 1A
Figure 1B
Figure 2
Figure 3
Figure 4
Figure 5A
Figure 5B
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11A
Figure 11B
Figure 12
Figure 13
Figure 14A
Figure 14B
Figure 14C
Figure 14D
Figure 14E
Figure 14F
Figure 14G
Figure 14H
Figure 14I
[0021] 1. Video coding in HEVC / H.265 Video coding standards have emerged primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T has developed H.261 and H.263, and ISO / IEC has developed MPEG- 1 and MPEG-4 Visual, and the two organizations have jointly developed H.262 / MPEG-2 Video o and H.264 / MPEG-4 AVC (Advanced Video Coding ) and the H.265 / HEVC standard were jointly developed. Since H.262, video coding standards have been based on a hybrid video coding structure that utilizes temporal prediction and transform coding. To explore future video coding technologies beyond HEVC, in 2015, VCEG and MPEG jointly established the JVET (Joint Video Exploration Team). Since then, many new methods have been adopted by the JVET and incorporated into a reference software called JEM (Joint Exp loration Mode). In April 201 8, the Joint Video Expert Team (JVET) was established between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG1 1 (MPEG), and is working on formulating the VVC standard with the goal of reducing the bitrate by 50% compared to HEVC.
[0022] 2.1. Quadtree + Binary Tree (QTBT) Block Structure with Large CTUs In HEVC, the CTU is divided into CUs using a quadtree structure called the coding tree to adapt to various local features. The decision of whether to code a picture region using inter-picture (temporal) prediction or intra-picture (spatial) prediction is made at the CU level. Each CU can be further divided into one, two, or four PUs depending on the PU partition type. Inside one PU, the same prediction process is applied, and relevant information is sent to the decoder in PU units. After obtaining the residual block by applying the prediction process based on the PU partition type, another quadtree similar to the coding tree for the CU is used for coding the residual block. Based on the tree structure, a CU can be split into transform units (TUs). HEVC structure One of the important features of is that it has multiple partitioning concepts including CUs, PUs, and TUs.
[0023] FIG. 1 is a diagram showing a quadtree + binary tree (QTBT) block structure. The QTBT structure removes the concept of multiple partition types. That is, it removes the separation of the concepts of CUs, PUs, and TUs, and improves the flexibility of the shape of the CU partition. In the QTBT block structure, a CU can have either a square or a rectangle. As shown in FIG. 1, first, a coding tree unit (CTU) is split in a quadtree structure. The leaf nodes of the quadtree are further split by a binary tree structure. There are two types of splits in the binary tree: symmetric horizontal split and symmetric vertical split. The leaf nodes of the binary tree are called coding units (CUs ), and this segmentation is used for prediction and transform processing without further splitting. This means that in the encoded block structure of QTBT, CUs, PUs, and TUs have the same block size. In JEM, a CU often consists of coding blocks (CBs) of different color components. For example, in the case of P and B slices in the 4:2:0 chroma format , one CU contains one luminance CB and two chroma CBs. Also, a CU often consists of a single-component CB. For example, in the case of an I slice, one CU contains only one luminance CB or only two chroma CBs.
[0024] The following parameters are defined for the QTBT splitting scheme. - Size of CTU: The size of the root node of one quadtree, the same concept as in HEVC -MinQTSize: Minimum allowable size of the leaf nodes of the quadtree -MaxBTSize: Maximum allowable size of the root node of the binary tree -MaxBTDepth: Maximum allowable depth of the binary tree -MinBTSize: Minimum allowable size of the leaf nodes of the binary tree
[0025] In an example of the split structure of QTBT, set the size of the CTU as a 128×128 luminance sample with chrominance samples of two corresponding 64×64 blocks Set MinQTSize to 16×16, set MaxBTSize to 64×64, and set MinBTSize (for both width and height) to 4×4, and set MaxBTDepth to 4 Set MinQTSize to 16×16, set MaxBTSize to 64×64, and set MinBTSize (for both width and height) to 4×4, and set MaxBTDepth to 4 Set MinBTSize (for both width and height) to 4×4, and set MaxBTDepth to 4 The quadtree split is first applied to the CTU to generate the leaf nodes of the quadtree The leaf nodes of the quadtree can have sizes ranging from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size) The leaf nodes of the quadtree can have sizes ranging from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size) If the leaf node of the quadtree is 128×128, since its size exceeds MaxBTSize (i.e., 64×64), it is not further split by the binary tree Otherwise, the leaf node of the quadtree may be further split by the binary tree Therefore, the leaf node of this quadtree is also the root node of the binary tree, and the depth of that binary tree is 0 When the depth of the binary tree reaches MaxBTDepth (i.e., 4), no further splits are considered When the depth of the binary tree reaches MaxBTDepth (i.e., 4), no further splits are considered If the width of the node of the binary tree is equal to MinBTSize (i.e., 4), no further horizontal splits are considered Similarly, if the height of the node of the binary tree is equal to MinBTSize, no further vertical splits are considered The leaf nodes of the binary tree are not further split and are used for prediction and interpolation and further processed by the conversion process. In JEM, the maximum CTU size is 256× 256 luminance samples.
[0026] FIG. 1A shows an example of block splitting using QTBT, and FIG. 1B shows the corresponding tree representation is shown. The solid line represents the quadtree split, and the dotted line represents the binary tree split. At each split (i.e., non-leaf) node of the binary tree, one flag is signaled to indicate which split type (i.e., horizontal or vertical) is used. Here, 0 represents a horizontal split, and 1 represents a vertical split. In the case of a quadtree split, since the quadtree split always splits the block horizontally and vertically to generate four sub-blocks of equal size, there is no need to indicate the split type. Furthermore, the QTBT scheme supports the ability for luminance and chrominance to have separate QTBT structures. Currently, for P and B slices, the luminance and chrominance CTBs in one CTU share the same QTBT structure. However, for I slices, the luminance CTB is split into CUs by the QTBT structure, and the chrominance CTB is split into chrominance CUs by another QTBT structure. This means that one CU in one I slice consists of one coded block of one luminance component or one coded block of two chrominance components, and one CU in one P or B slice consists of coded blocks of all three color components. In HEVC, the inter prediction for small blocks is restricted to reduce the memory accesses of motion compensation, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks is restricted.
[0027] Furthermore, the QTBT scheme supports the ability for luminance and chrominance to have separate QTBT structures. Currently, for P and B slices, the luminance and chrominance CTBs in one CTU share the same QTBT structure. However, for I slices, the luminance CTB is split into CUs by the QTBT structure, and the chrominance CTB is split into chrominance CUs by another QTBT structure. This means that one CU in one I slice consists of one coded block of one luminance component or one coded block of two chrominance components, and one CU in one P or B slice consists of coded blocks of all three color components. In HEVC, the inter prediction for small blocks is restricted to reduce the memory accesses of motion compensation, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks is restricted. Furthermore, the QTBT scheme supports the ability for luminance and chrominance to have separate QTBT structures. Currently, for P and B slices, the luminance and chrominance CTBs in one CTU share the same QTBT structure. However, for I slices, the luminance CTB is split into CUs by the QTBT structure, and the chrominance CTB is split into chrominance CUs by another QTBT structure. This means that one CU in one I slice consists of one coded block of one luminance component or one coded block of two chrominance components, and one CU in one P or B slice consists of coded blocks of all three color components. In HEVC, the inter prediction for small blocks is restricted to reduce the memory accesses of motion compensation, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks is restricted. In HEVC, the inter prediction for small blocks is restricted to reduce the memory accesses of motion compensation, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks is restricted.
[0028] In HEVC, the inter prediction for small blocks is restricted to reduce the memory accesses of motion compensation, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks is restricted, and as a result, the bidirectional prediction for 4×8 and 8×4 blocks Testing is not supported, and inter prediction is not supported for 4x4 blocks. JEM In the QTBT of JEM, these restrictions are removed.
[0029] 2.2. Inter Prediction in HEVC / H.265 Each inter-predicted PU has motion parameters for one or two reference picture lists. The motion parameters include the motion vector and the reference picture index. The use of one of the two reference picture lists may be signaled using inter_pred_idc. The motion vector may be explicitly coded as a delta relative to the predictor. When one CU is coded in skip mode, one PU is associated with this CU, there are no significant residual coefficients, and there are no coded motion vector differences or reference picture indices either. The merge mode is specified, whereby the motion parameters for the current PU are obtained from neighboring PUs including spatial and temporal candidates. The merge mode can be applied not only for skip mode but also for any inter-predicted PU. As an alternative to the merge mode, there is explicit transmission of the motion parameters, and the motion vector (more precisely, the motion vector difference compared to the motion vector predictor), the corresponding reference picture index for each reference picture list, and the usage status of the reference picture list are explicitly signaled for each PU. Such a mode is referred to as advanced motion vector prediction (AMVP) in this disclosure.
[0030]
[0031] If signaling indicates the use of one of the two reference picture lists, the sample Generate a PU from one of the blocks. This is called "single prediction". P slice Single prediction is available for both P slices
[0032] If signaling indicates using both reference picture lists, generate a PU from 2 of the blocks. This is called "bi - directional prediction". Bi - directional prediction is available only for B slices
[0033] Next, the inter - prediction modes defined in HEVC will be described in detail. First, the merge mode will be described
[0034] 2.2.1. Merge mode 2.2.1.1. Derivation of merge mode candidates When predicting a PU using the merge mode, parse the index in the bit - stream that points to an entry in the merge candidate list and use this to retrieve the motion information . The construction of this list is defined in the HEVC standard and can be summarized based on the following sequence of steps . ● Step 1: Initial candidate derivation o Step 1.1: Spatial candidate derivation o Step 1.2: Redundancy check of spatial candidates o Step 1.3: Temporal candidate derivation ● Step 2: Insertion of additional candidates o Step 2.1: Creation of bi - directional prediction candidates o Step 2.2: Insertion of motion - zero candidates
[0035] These steps are also schematically shown in Figure 2. For spatial merge candidate derivation, select up to 4 merge candidates from among candidates at 5 different positions. Temporal merge candidates For derivation, select at most one merge candidate from two candidates. On the decoder side Since a fixed number of candidates are assumed for each PU, if the number of candidates obtained in step 1 does not reach the maximum number of merge candidates (MaxNumMergeCand) signaled in the slice header , additional candidates are generated. Since the number of candidates is fixed, the index of the best merge candidate is encoded using reduced unary binary (TU). If the size of the CU is equal to 8 , all PUs of the current CU share the same one merge candidate list as the merge candidate list of the 2N×2N prediction unit.
[0036] The operations associated with the above steps are described in detail below.
[0037] 2.2.1.2. Spatial candidate derivation In the derivation of spatial merge candidates, select at most four merge candidates from the candidates at the positions shown in Figure 3. The derivation order is A , B 1 , B 1 , B 0 , A 0 , B 2 . If any of the PUs at positions A 1 , B 1 , B 0 , A 0 is not available (for example, because it belongs to another slice or tile), or is intra-coded, then position B is considered 2 only. After adding the candidates at position A , adding the remaining candidates is subject to redundancy checking, which 1 can ensure that candidates with the same motion information are excluded from the list, improving the coding efficiency . To reduce the computational complexity, in the above redundancy check, the considered It does not consider all candidate pairs. Instead, only the pairs linked by arrows in FIG. 4 are considered, and the corresponding candidates used for redundancy checking are added to the list only if they do not have the same motion information. Another source of duplicate motion information is the "second PU" associated with a different split from 2N×2N. As an example, FIG. 5 shows the second PU for the cases of N×2N and 2N×N respectively. When the current PU is split into N×2N, the candidates at position A are not considered. In fact, adding this candidate would lead to two prediction units with the same motion information, which is redundant since one coding unit can have only one PU. Similarly, when the current PU is split into 2N×N, the position B is not considered. 2.2.1.3. Temporal Candidate Derivation In this step, only one candidate is added to the list. Specifically, in the derivation of this temporal merge candidate, a scaled motion vector is derived based on the same-position PU belonging to the picture with the minimum POC difference from the current picture in the given reference picture list. In the slice header, the reference picture list used for the derivation of the same-position PU is clearly signaled. As shown by the dotted line in FIG. 6, the scaled motion vector of the temporal merge candidate is obtained. This is scaled from the motion vector of the same-position PU using the POC distances tb and td. tb is defined as the POC difference between the reference picture of the current picture and the current picture, and td is defined as the POC difference between the reference picture of the same-position PU and the picture of the same position. Temporal m 1 1
[0038] Set the reference picture index of the picture candidate equal to zero. For the actual implementation of this scaling process, it is described in the HEVC specification. In the case of a B slice, two motion vectors, i.e., one for reference picture list 0 and the other for reference picture list 1, are obtained and combined to form a bi - directional prediction merge candidate.
[0039] In the same - position PU(Y) belonging to the reference frame, as shown in FIG. 7, select the position of the temporal candidate between candidate C 0 and candidate C 1 and. If the PU at position C 0 is not available, if it is intra - coded, or if it is outside the current CTU, position C 1 is used . Otherwise, position C 0 is used for the derivation of the temporal merge candidate.
[0040] 2.2.1.4. Additional candidate insertion In addition to the spatio - temporal merge candidates, there are two additional types of merge candidates, namely, combined bi - directional prediction merge candidates and zero merge candidates. Using the spatio - temporal merge candidates, generate combined bi - directional prediction merge candidates. The combined bi - directional prediction merge candidates are used in the case of B slices. By combining the first reference picture list motion parameter of the first candidate and the second reference picture list motion parameter of another candidate, generate combined bi - directional prediction candidates. If these two tuples provide different motion hypotheses, these tuples form new bi - directional prediction candidates. As an example, FIG. 8 shows, in the original list (left - hand side), having mvL0 and refIdxL0, or mvL1 and refIdxL1 The two candidates are used to generate a joint bidirectional predictive merge candidate that is added to the final list (right side). The combinations considered to generate these additional merge candidates are shown in There are various rules regarding this.
[0041] By inserting zero motion candidates and filling the remaining entries in the merge candidate list. ,The zero-motion candidates hit the MaxNumMergeCand capacity. These candidates are, The spatial displacement is zero, and it starts at zero and increases each time you add a new zero motion candidate to the list. The number of reference frames used by these candidates is One for unidirectional prediction and two for bidirectional prediction. No redundancy check is performed on these candidates.
[0042] 2.2.1.5. Motion Estimation Regions for Parallel Processing To speed up the encoding process, motion estimation can be done in parallel, thereby The motion vectors of all prediction units in a given region are derived simultaneously. A PU derives motion parameters from neighboring PUs until its associated motion estimation is completed. Since it is not possible to extract merge candidates from spatial neighborhoods, this may interfere with parallel processing. To mitigate the trade-off between coding efficiency and processing latency, HEVC defines the motion estimation region (MER). The size of the log2_parallel_merge_level_min us2" syntax element in the picture parameter set. When specifying a MER, merge candidates in the same region are marked as unavailable. Therefore, it is not considered in list construction.
[0043] 2.2.2.AMVP AMVP utilizes the spatio-temporal correlation between the motion vector and neighboring PUs, and uses this for explicit transmission of motion parameters. For each reference picture list, first, check the availability of the temporally neighboring PU positions on the left and above, remove redundant candidates, and add zero vectors to make the length of the candidate list constant, thereby constructing a motion vector candidate list. Next, the encoder can select the best predictor from the candidate list and transmit the corresponding index indicating the selected candidate. Similar to the signaling of the merge index, the index of the best motion vector candidate is encoded using a shortened unary term. In this case, the maximum value of the encoding target is 2 (see Figure 9). The following section will explain the details of the derivation process of the motion vector prediction candidates.
[0044] 2.2.2.1.Derivation of AMVP Candidates Figure 9 summarizes the derivation process of the motion vector prediction candidates.
[0045] In motion vector prediction, two types of motion vector candidates are considered: spatial motion vector candidates and temporal motion vector candidates. To derive the spatial motion vector candidates, finally, two motion vector candidates are derived based on the motion vectors of each PU at five different positions as shown in Figure 3.
[0046] To derive the temporal motion vector candidates, one motion vector candidate is selected from two candidates derived based on two different positions arranged at the same position. The spatio-temporal After creating the first list of candidates, remove duplicate motion vector candidates in the list. If the number of candidates is more than 2, remove motion vector candidates from the list whose reference picture index in the associated reference picture list is greater than 1. Spatial-temporal If the number of motion vector candidates is less than 2, add additional zero motion vector candidates to the list.
[0047] 2.2.2.2. Spatial motion vector candidates In the derivation of spatial motion vector candidates, among the five possible candidates derived from the PU located at the position as shown in Fig. 3, consider up to two candidates located at the same position as motion merge. A 0 A 1 Scaled A 0 Scaled A 1 Is defined as The derivation order for above the current PU is defined as B 0 B 1 B 2 Scaled B 0 Scaled B 1 Scaled B 2 Is defined as. For each side There are four cases that can be used as motion vector candidates, namely two cases not associated with spatial scaling and two cases using spatial scaling When summarizing the four different cases, it is as follows. ● Without spatial scaling -(1) Same reference picture list and same reference picture index (same POC) -(2) Different reference picture lists but the same reference picture (same POC ) ● Spatial scaling -(3)Same reference picture list, but different reference pictures (different PO C) -(4)Different reference picture lists, and different reference pictures (different PO C)
[0048] First, check the case of non-spatial scaling, and then perform spatial scaling. Regardless of the reference picture list, if the POC of the neighboring PU is different from the reference picture of the current PU, spatial scaling is considered. If all the PUs of the left candidate are not available or are intra-coded, the scaling of the upper motion vector is useful for the parallel derivation of the left and upper MV candidates. Otherwise, spatial scaling is not permitted for the upper motion vector. Regardless of the reference picture list, if the POC of the neighboring PU is different from the reference picture of the current PU, spatial scaling is considered. If all the PUs of the left candidate are not available or are intra-coded, the scaling of the upper motion vector is useful for the parallel derivation of the left and upper MV candidates. Otherwise, spatial scaling is not permitted for the upper motion vector. If all the PUs of the left candidate are not available or are intra-coded, the scaling of the upper motion vector is useful for the parallel derivation of the left and upper MV candidates. Otherwise, spatial scaling is not permitted for the upper motion vector. In the spatial scaling process, as shown in Figure 10, similar to the temporal scaling, the motion vectors of the neighboring PUs are scaled. The main difference is that the reference picture list and index of the current PU are given as inputs, and the actual scaling process is the same as the temporal scaling.
[0049] In the spatial scaling process, as shown in Figure 10, similar to the temporal scaling, the motion vectors of the neighboring PUs are scaled. The main difference is that the reference picture list and index of the current PU are given as inputs, and the actual scaling process is the same as the temporal scaling. The main difference is that the reference picture list and index of the current PU are given as inputs, and the actual scaling process is the same as the temporal scaling. is the same as the temporal scaling.
[0050] 2.2.2.3. Temporal Motion Vector Candidates The process for deriving the temporal merge candidates is the same as the process for deriving the spatial motion vector candidates (see Figure 7), except for deriving the reference picture index. The reference picture index is signaled to the decoder. The reference picture index is signaled to the decoder.
[0051] 2.3. Adaptive Motion Vector Resolution (AMVR) In VVC, in the case of the normal inter mode, the MVD is 1 / 4 luma samples, integer luma It can be coded in units of zero samples or four luminance samples. The MVD resolution is controlled at the coding unit (CU) level, and the MVD resolution flag is conditionally signaled for each CU having at least one non-zero MVD module. For a CU having at least one non-zero MVD component, a first flag is signaled to indicate whether 1 / 4 luminance sample M
[0052] V accuracy is used in the CU. If the first flag (equal to 1) indicates that 1 / 4 luminance sample MV accuracy is not used, another flag is signaled to indicate whether integer luminance sample MV accuracy or 4 luminance sample MV accuracy is used. If the first MVD resolution flag of the CU is zero, or if it is not coded for the CU (i.e., all MVDs in the CU are zero), 1 / 4 luminance sample MV resolution is used for the CU. If the CU uses integer luminance sample MV accuracy or 4 luminance sample
[0053] MV accuracy, the MVP in the AMVP candidate list of the CU is rounded to the corresponding accuracy.
[0054] 2.4. Interpolation Filter in VVC For luminance interpolation filtering, as shown in Table 1, an 8-tap separable interpolation filter is used for samples with an accuracy of 1 / 16 pixel.
[0055] [Table 1]
[0056] Similarly, as shown in Table 2, for chroma interpolation with an accuracy of 1 / 32 pixel, a 4-tap separable No interpolation filter is used.
[0057]
Table 2
[0058] For 4:2:2 vertical interpolation and 4:4:4 chroma channel horizontal and vertical interpolation , the odd positions in Table 2 are not used, and chroma interpolation of 1 / 16 pixel is performed.
[0059] 2.5. Alternative Luma 1 / 2 Pixel Interpolation Filter In JVET-N0309, an alternative 1 / 2 pixel interpolation filter has been proposed.
[0060] The switching of the 1 / 2 pixel luma interpolation filter is performed based on the accuracy of the motion vector. In addition to the existing 1 / 4 pixel, full pixel, and 4 pixel AMVR modes, a new 1 / 2 pixel precision AMVR mode is introduced. Only in the case of the accuracy of the motion vector of 1 / 2 pixel degree, the alternative 1 / 2 pixel degree luma interpolation filter can be selected.
[0061] 2.5.1. 1 / 2 Pixel AMVR Mode An additional AMVR mode for non-affine non-merge inter-coded CUs is proposed, which enables signaling of the motion vector difference with 1 / 2 pixel accuracy. The existing AMVR scheme in the current VVC draft is simply extended as follows. Immediately after the syntax element amvr_flag, when amvr_flag == 1, there is a newly context-modeled binary syntax element hpel_amvr_flag, which indicates the use of the new 1 / 2 pixel AMVR mode when hpel _amvr_flag == 1. Otherwise, that is, when hpel_amvr_flag == 0, the current VVC As in the draft, the selection between full pixel and 4-pixel AMVR mode is indicated by the syntax element amv r_precision_flag.
[0062] 2.5.2. Alternative Luma 1 / 2 Pixel Interpolation Filter For non-affine non-merge intra-coded CUs using 1 / 2 pixel motion vector precision (i.e., 1 / 2 pixel AMVR mode), the HEVC / VVC 1 / 2 pixel luma interpolation filter and one or more alternative 1 / 2 pixel interpolations are switched based on the value of the new syntax element if_idx. The syntax element if_idx is signaled only in the 1 / 2 pixel AMVR mode. In the skip / merge mode using spatial merge candidates, the value of the syntax element if_idx is inherited from neighboring blocks.
[0063] 2.5.2.1. Test 1: One Alternative 1 / 2 Pixel Interpolation Filter In this test case, there is one 6-tap interpolation filter as an alternative to the normal HEVC / VVC 1 / 2 pixel interpolation filter. The following table shows the mapping between the value of the syntax element if_idx
[0064] and the selected 1 / 2 pixel luma interpolation filter.
Table 3
[0065] 2.5.2.2. Test 2: Two Alternative 1 / 2 Pixel Interpolation Filters In this test case, there are two 8-tap interpolation filters as alternatives to the normal HEVC / VVC 1 / 2 pixel interpolation filter. The following table shows the mapping between the value of the syntax element if_idx and the selected 1 / 2 pixel luma interpolation filter.
[0066]
Table 4
[0067] The amvr_precision_idx is signaled to indicate whether the current CU is using 1 / 2 pixel, 1 pixel or 4 pixel MV precision. There are two bins to be coded.
[0068] The hpel_if_idx is signaled to indicate whether to use the default 1 / 2 pixel interpolation filter or an alternative 1 / 2 pixel interpolation filter. When using two alternative 1 / 2 pixel interpolation filters, there are two bins to be coded.
[0069] 2.6. Generalized Bidirectional Prediction In conventional bidirectional prediction, predictors from L0 and L1 are averaged and an equal weight of 0.5 is used to generate the final predictor. The predictor generation formula is shown in Equation (3). P TraditionalBiPred =(P L0 +P L1 +RoundingOffs et)>>shiftNum, (1) In Equation (3), let PT raditionalBiP red be the final predictor for conventional bi-prediction, then P L0 and P L1 are predictors from L0 and L1 respectively and the rounding offset and shift number are used to normalize the final predictor.
[0070] To enable applying different weights to the predictors from L0 and L1, generalized bi-prediction (GBI) has been proposed. The generation of the predictor is shown in Equation (4). P GBi =((1-w 1 )*PL0 +w 1 *P L1 +RoundingOffset GB i ) >> shiftNum GBi , (2) In Equation (4), P GBi is the final predictor of GBi. (1 - w 1 ) and w 1 are the selected GBI weights applied to the predictors of L0 and L1 respectively. Round ingOffset and seftNum GBi are used to normalize the final predictor in GBi. GBi
[0071] The supported weights of w 1 are {-1 / 4, 3 / 8, 1 / 2, 5 / 8, 5 / 4} . One set of equal weights and four sets of unequal weights are supported. In the case of equal weights, the process of generating the final predictor is exactly the same as the process in the conventional dual prediction mode. In the case of true dual prediction under random access (RA) conditions, the number of candidate weight sets is reduced to 3.
[0072] In the case of the advanced motion vector prediction (AMVP) mode, if this CU is coded by bidirectional prediction, the weight selection in GBI is explicitly signaled at the CU level. In the case of merge mode, the weight selection is inherited from the merge candidates.
[0073] 2.7. Merge Mode with MVD (MMVD) In addition to the merge mode, when the implicitly derived motion information is directly used for generating the prediction samples of the current CU, the merge mode with motion vector difference (MMVD) is introduced in VVC. Immediately after transmitting the skip flag and the merge flag, signal the MMVD flag to specify whether to use the MMVD mode for the CU.
[0074] In MMVD, after a merge candidate is selected, it is further fine-tuned by the signaled MVD information. This additional information includes a merge candidate flag, an index for specifying the magnitude of the motion, and an index for indicating the direction of the motion. In the MMVD mode, select one of the first two candidates in the merge list and use it as the MV base. The merge candidate flag is signaled to specify which one to use.
[0075] Figure 13 shows an example of an MMVD search. The distance index specifies information about the magnitude of the motion and indicates an offset from a predefined starting point. As shown in Figure 13, an offset is added to either the horizontal or vertical component of the starting MV. The relationship between the distance index and the predefined offset is shown in Table 3.
[0076]
Table 5
[0077] The direction index represents the direction of the MVD with respect to the starting point. The direction index can represent four directions, as shown in Table 4. Note that the meaning of the MVD code may vary according to the information of the starting MV. If the starting MV is an unpredicted MV or a bi-predicted MV and both lists point to the same side of the current picture (i.e., the POCs of the two reference codes are both greater than the POC of the current picture or both are less than the POC of the current picture) In this case, the sign in Table 4 specifies the sign of the MV offset added to the starting MV. Open If the starting MV is a bi-predicted MV and the two MVs point to different sides of the current picture (i.e., one reference POC is greater than the POC of the current picture and the other reference POC is less than the POC of the current picture), the sign in Table 4 defines the sign of the MV offset added to the list0 MV component of the starting MV, and the sign of the list1 MV has the opposite value.
[0078]
Table 6
[0079] The slice_fpel_mmvd_enabled_flag is signaled in the slice header to indicate whether fractional distances can be used for MMVD. If fractional distances are allowed for a slice, the following distance table is generated by multiplying the above distance by 4. For a slice for which fractional distances are allowed, by multiplying the above distance by 4, the following distance table is generated. When fractional distances are allowed for a slice, the following distance table is generated by multiplying the above distance by 4. Generated.
[0080]
Table 7
[0081] If slice_fpel_mmvd_enabled_flag is equal to 1, it specifies that the merge mode with motion vector differences uses the integer sample precision in the current slice. If slice_fpel_mmvd_enabled_flag is equal to 0, it specifies that the merge mode with motion vector differences can use the fractional sample precision in the current slice. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0. If slice_fpel_mmvd_enabled_flag is equal to 1, it specifies that the merge mode with motion vector differences uses the integer sample precision in the current slice. If slice_fpel_mmvd_enabled_flag is equal to 0, it specifies that the merge mode with motion vector differences can use the fractional sample precision in the current slice. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0. If slice_fpel_mmvd_enabled_flag is equal to 1, it specifies that the merge mode with motion vector differences uses the integer sample precision in the current slice. If slice_fpel_mmvd_enabled_flag is equal to 0, it specifies that the merge mode with motion vector differences can use the fractional sample precision in the current slice. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0. If slice_fpel_mmvd_enabled_flag is equal to 0, it specifies that the merge mode with motion vector differences can use the fractional sample precision in the current slice. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0. If slice_fpel_mmvd_enabled_flag is equal to 0, it specifies that the merge mode with motion vector differences can use the fractional sample precision in the current slice. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0. If it does not exist, the value of slice_fpel_mmvd_enabled_flag is presumed to be 0.
[0082] 3. Problems in Conventional Implementations An alternative 1 / 2 pixel interpolation filter may be merged and inherited in the motion vector difference (MMVD) mode even if the MV derived in the MMVD mode is not of 1 / 2 pixel precision, which is not appropriate.
[0083] When encoding amvr_precision_idx and hpel_if_idx, all bins are context-encoded.
[0084] An alternative interpolation filter flag may be inherited from spatially neighboring blocks if an associated merge candidate derived from spatially neighboring blocks is selected. However, if the inherited MV is further fine-tuned (e.g., using DMVR), the final MV may not point to 1 / 2 pixel precision. Therefore, even if the flag is true, the use of the new filter is under the condition that the flag is true and the MV is at 1 / 2 pixel (half pixel), so the alternative interpolation filter is also disabled.
[0085] Similarly, in AMVR processing, when the precision of AMVR is 1 / 2 pixel, both MVP and MVD are within 1 / 2 pixel. However, the final MV may not be within 1 / 2 pixel. In this case, even though the transmitted AMVR precision represents 1 / 2 pixel, using this new filter is not permitted.
[0086] 4. Exemplary Embodiments and Techniques The details of the following embodiments should be considered as examples for explaining general concepts and should not be interpreted in a narrow sense. Furthermore, these embodiments The states can be combined in any way.
[0087] Decoder-side Motion Vector Derivation (DMVD) is used to represent BDOF (Bidirectional Optical Flow) and / or DMVR (Decoder-side Motion Vector Refinement) and / or other tools associated with the refined motion vectors or predicted samples in the decoder. It is used.
[0088] In the following context, the default interpolation filter can represent those defined in HEVC / VVC. In the following description, the newly introduced interpolation filter (e.g., those proposed in JVET-N0309) can also be referred to as an alternative interpolation filter. The term MMVD may refer to any encoding method that can update the motion information decoded with a certain additional MVD. 1. For different N where N is not equal to 2, alternative 1 / N pixel interpolation filters may be used. It may be used. a. In one example, N may be equal to 4, 16, etc. b. In one example, the index of the 1 / N pixel interpolation filter may be signaled in the AMVR mode. It may be signaled. i. Additionally, alternatively, the index of the 1 / N pixel interpolation filter may be signaled only when the 1 / N pixel MV / MVD accuracy is selected by the block. It may also be signaled. c. In one example, the alternative 1 / N pixel interpolation filter may not be inherited in the merge mode and / or the MMVD mode. i. Additionally, alternatively, only the default 1 / N pixel interpolation filter may be used in the merge mode and / or the MMVD mode. d. In one example, an alternative 1 / N pixel interpolation filter may be inherited in the merge mode. e. In one example, an alternative 1 / N pixel interpolation filter may be inherited in the MMVD mode. i. In one example, an alternative 1 / N pixel interpolation filter may be inherited in the MMVD mode when the finally derived MV is at 1 / N pixel accuracy, i.e., the MV components are not at a finer MV accuracy. ii. In one example, an alternative 1 / N pixel interpolation filter may be inherited in the MMVD mode when K (K≥1) MV components of the finally derived MV are at 1 / N pixel accuracy. f. In one example, an alternative 1 / N pixel interpolation filter may be inherited in the MMVD mode and / or the merge mode, but the alternative 1 / N pixel interpolation filter is only used for motion compensation. The index of the alternative 1 / N pixel interpolation filter may not be stored for the block and may not be used by subsequent coding blocks. 2. The indication of the interpolation filter (e.g., the default 1 / 2 pixel interpolation filter, the alternative 1 / 2 pixel interpolation filter) may be stored together with other motion information such as motion vectors, reference indices, etc. a. In one example, when one block to be coded / decoded accesses a second block located in a different region (e.g., different CTU rows, different VPDUs), it is not permitted to use the interpolation filter associated with the second block in the coding / decoding of the current block. 3. The alternative 1 / 2 pixel interpolation filter may not be inherited in the merge mode and / or the MMVD mode. a. In one example, the alternative 1 / 2 pixel interpolation filter may not be inherited in the MMVD mode. It may not be necessary. i. Further alternatively, the default 1 / 2 pixel interpolation filter in VVC may always be used in the MMVD mode. It may always be used in the MMVD mode. ii. Alternatively, the alternative 1 / 2 pixel interpolation filter may be inherited in the MMVD mode. That is, in the case of the MMVD mode, the alternative 1 / 2 pixel interpolation filter associated with the base merge candidate can be inherited. That is, in the case of the MMVD mode, the alternative 1 / 2 pixel interpolation filter associated with the base merge candidate can be inherited. It can be inherited. b. In one example, the alternative 1 / 2 pixel interpolation filter may be inherited in the MMVD mode under specific conditions. It may be inherited in the MMVD mode under specific conditions. i. In one example, the alternative 1 / 2 pixel interpolation filter may be inherited if the finally derived MV is of 1 / 2 pixel accuracy, that is, there is no MV component with finer MV accuracy such as 1 / 4 pixel accuracy or 1 / 16 pixel accuracy. That is, there is no MV component with finer MV accuracy such as 1 / 4 pixel accuracy or 1 / 16 pixel accuracy. It may be inherited. ii. In one example, the alternative 1 / 2 pixel interpolation filter may be inherited in the MMVD mode if K (K≧1) MV components of the finally derived MV are of 1 / 2 pixel accuracy. If K (K≧1) MV components of the finally derived MV are of 1 / 2 pixel accuracy, it may be inherited in the MMVD mode. It may be inherited in the MMVD mode. iii. In one example, if the distance selected in MMVD (for example, the distance defined in Table 3) is of X pixel accuracy or coarser than X pixel accuracy (for example, X is 1 / 2 and 1 pixel, 2 pixels, 4 pixels, etc. are coarser than X pixel), the alternative 1 / 2 pixel interpolation filter may be inherited. For example, the distance defined in Table 3. For example, X is 1 / 2 and 1 pixel, 2 pixels, 4 pixels, etc. are coarser than X pixel. The alternative 1 / 2 pixel interpolation filter may be inherited. iv. In one example, if the distance selected in MMVD (for example, the distance defined in Table 3) is of X pixel accuracy or finer than X pixel accuracy (for example, X is 1 / 4, 1 / 16 pixel and is finer than X pixel), the alternative 1 / 2 pixel interpolation filter may not be inherited. For example, the distance defined in Table 3. For example, X is 1 / 4, 1 / 16 pixel and is finer than X pixel. The alternative 1 / 2 pixel interpolation filter may not be inherited. In the case of not using an alternative 1 / 2 pixel interpolation filter in v.MMVD, the information of the alternative 1 / 2 pixel interpolation filter is not stored for the block and may not be used by subsequent coded blocks. c. In one example, the alternative 1 / 2 pixel interpolation filter may be inherited in the MMVD mode and / or the merge mode, but the alternative 1 / 2 pixel interpolation filter is only used for motion compensation. Instead of the alternative 1 / 2 pixel interpolation filter, the index of the default 1 / 2 pixel interpolation filter may be stored for the block and may be used by subsequent coded blocks. d. The above method is also applicable to other cases where multiple interpolation filters can be applied for the accuracy of 1 / N pixels. 4. The MV / MVD accuracy information may be stored for the CU / PU / block coded in the AMVP mode and / or the affine interpolation mode, and may be inherited by the CU / PU / block coded in the merge mode and / or the affine merge mode. a. In one example, for the candidates derived from spatially adjacent (adjacent or non - adjacent) blocks, the MV / MVD accuracy of the associated adjacent blocks may be inherited. b. In one example, for the pairwise merge candidates, if the two related spatial merge candidates have the same MV / MVD accuracy, such MV / MVD accuracy may be assigned to the pairwise merge candidates, or a fixed MV / MVD accuracy (e.g., 1 / 4 pixel or 1 / 16 pixel) may be assigned. c. In one example, a fixed MV / MVD accuracy (e.g., 1 / 4 pixel or 1 / 16 pixel) may be assigned to the temporal merge candidates. d. In one example, the MV / MVD accuracy may be stored in a history-based motion vector prediction (H MVP) table or may be inherited by HMVP merge candidates. e. In one example, the MV / MVD accuracy of a base merge candidate may be inherited by a CU / PU / block encoded in the MMVD mode. f. In one example, the inherited MV / MVD accuracy may be used to predict the MV / MVD accuracy of subsequent blocks. g. In one example, the MV of a merge-encoded block may be rounded to the inherited MV / MVD accuracy. 5. Which distance table to use in MMVD may depend on the MV / MVD accuracy of the base merge candidate. a. In one example, if the MV / MVD of the base merge candidate is of 1 / N pixel accuracy , the distance used for MMVD should be of 1 / N pixel accuracy or coarser than 1 / N pixel. i. For example, if N = 2, the distance in MMVD may be only of accuracies such as 1 / 2 pixel, 1 pixel, 2 pixels, etc. b. In one example, a distance table that includes fractional distances (defined in Table 3) ( e.g., the distance table defined when slice_fpel_mmvd_enabled_flag is 0) may be modified according to the MV / MVD accuracy of the base merge candidate. i. For example, if the MV / MVD accuracy of the base merge candidate is 1 / N pixel and the finest MVD accuracy of the distance table is 1 / M pixel (e.g., M = 4), all distances in the distance table may be multiplied by M / N. 6. A CU / PU / block that selects an alternative 1 / 2 pixel interpolation filter (e.g., a mar When coded in the z-mode), if the MVD derived by DMVR is finer than X pixels (e.g., X = 1 / 2), the information of the alternative 1 / 2 pixel interpolation filter may not be stored for the CU / PU / block and may not be used in the following blocks. a. In one example, when performing DMVR at the sub-block level based on the MVD accuracy of the sub-blocks derived in DMVR, it may be independently determined whether to store the information of the alternative 1 / 2 pixel interpolation filter for each different sub-block. b. In one example, when the derived MVD has a finer accuracy than X pixels in at least N (e.g., N = 1) of the sub-blocks / blocks, the information of the alternative 1 / 2 pixel interpolation filter may not be stored and may not be used in subsequent blocks. 7. The interpolation filter information may be stored in a history-based motion vector prediction (HMVP) table and may be inherited by the HMVP merge candidates. a. In one example, when inserting a new candidate into the HMVP lookup table, the interpolation filter information can be considered. For example, two candidates with the same motion information but different interpolation filter information can be regarded as two different candidates. b. In one example, when inserting a new candidate into the HMVP lookup table, two candidates with the same motion information but different interpolation filter information can be regarded as the same candidate and can be done. 8. When inserting a merge candidate into the merge candidate list, the interpolation filter information may be considered in the pruning process. a. In one example, two merge candidates with different interpolation filters can be regarded as two different merge candidates. b. In one example, when inserting an HMVP merge candidate into the merge list, interpolation filter information may be considered in the pulling -ning process. c. In one example, when inserting an HMVP merge candidate into the merge list, interpolation filter information may not be considered in the pulling -ning process. 9. Note that when generating pairwise merge candidates and / or combined merge candidates and / or zero motion vector candidates and / or other default candidates, interpolation filter information may be considered instead of always using the default interpolation filter. a. In one example, when both candidates (involved in generating pairwise merge candidates or / and combined merge candidates) use the same alternative interpolation filter, such an interpolation filter may be inherited in the pairwise merge candidates or / and combined merge candidates. b. In one example, when one of the two candidates (involved in generating pairwise merge candidates or / and combined merge candidates) does not use the default interpolation filter, its interpolation filter may be inherited in the pairwise merge candidates or / and combined merge candidates. c. In one example, when one of the two candidates (involved in generating combined merge candidates) does not use the default interpolation filter, its interpolation filter may be inherited in the combined merge candidates However, such an interpolation filter may be used only in the corresponding prediction direction. d. In one example, when the two candidates (involved in generating combined merge candidates) use different interpolation filters, both of their interpolation filters may be inherited in the combined merge candidates. In this case, different interpolation filters may be used for different prediction directions. e. In one example, for K (K≧0) or fewer pairwise merge candidates and / or merged merge candidates, an alternative interpolation filter may be used. f. In one example, the default interpolation filter is always used for pairwise merge candidates and / or merged merge candidates. 10. When encoding the current block in IBC mode, it has been proposed to disable the use of 1 / 2 pixel motion vectors / motion vector difference precision. a. Additionally, alternatively, there is no need to signal an indication to use 1 / 2 pixel MV / MVD precision. b. In one example, when the current block is encoded in IBC mode, the alternative 1 / 2 pixel interpolation filter is always disabled. c. Additionally, alternatively, there is no need to signal an indication of the 1 / 2 pixel interpolation filter. d. In one example, the condition of "encoding the current block in IBC mode" may be replaced with "encoding the current block in one mode". Such a mode may be defined as, for example, the triangle mode, the merge mode, etc. 11. When encoding amvr_precision_idx and / or hpel_if_id x, only the first bin may be context encoded. a. Additionally, alternatively, other bins may be bypass encoded. b. In one example, the first bin of amvr_precision_idx may be bypass encoded. c. In one example, the first bin of hpel_if_idx may be bypass encoded d. In one example, only one context may be used to encode the first bin of amvr_precisio n_idx. e. In one example, only one context may be used to encode the bin of hpel_if_idx's first. f. In one example, all bins of amvr_precision_idx may share the same context. g. In one example, all bins of hpel_if_idx may share the same context stream. 12. When using an alternative interpolation filter, some encoding tools may not be permitted. a. In one example, when using an alternative interpolation filter, bidirectional optical flow (BDOF) may not be permitted. b. In one example, when using an alternative interpolation filter, DMVR or / and DMVD may not be permitted. c. In one example, when using an alternative interpolation filter, inter-intra combined prediction (CIIP) may not be permitted. i. In one example, if a merge candidate inherits an alternative interpolation filter, the CIIP flag may be skipped and inferred as false. ii. Alternatively, if the CIIP flag is true, the default interpolation filter may always be used. d. In one example, when using an alternative interpolation filter, SMVD (symmetric motion vector difference) may not be permitted. i. In one example, when using SMVD, the default interpolation filter is always used and the syntax elements related to the alternative interpolation filter are not signaled. ii. Alternatively, if the syntax elements related to the alternative interpolation filter indicate the use of the alternative interpolation filter, the syntax elements related to SMVD may not be signaled and the SMVD mode is not used.e. In one example, when using an alternative interpolation filter, SBT (sub-block transform) may not be permitted. i. In one example, when using SBT, the default interpolation filter is always used and syntax elements related to the alternative interpolation filter are not signaled. ii. Alternatively, when syntax elements related to the alternative interpolation filter indicate the use of the alternative interpolation filter, syntax elements related to SBT may not be signaled and SBT is not used. f. In one example, when using an alternative interpolation filter, triangular prediction may not be permitted in some cases. i. In one example, interpolation filter information is not inherited in triangular prediction and only the default interpolation filter may be used. g. Alternatively, when using an alternative interpolation filter, triangular prediction may be permitted in some cases. i. In one example, interpolation filter information may be inherited in triangular prediction as well. h. Alternatively, for the encoding tools described above, if it is enabled, the alternative 1 / 2 pixel interpolation filter can be disabled. 13. The filter may be applied to N-pixel accuracy MV. a. In one example, N may be equal to 1, 2, 4, etc. b. In one example, this filter may be a low-pass filter. c. In one example, this filter may be a 1-d filter. i. For example, this filter may be a one-dimensional horizontal filter. ii. For example, this filter may be a 1-d vertical filter . d. In one example, a flag may be signaled to indicate whether such a filter is being used . i. Additionally, alternatively, such a flag may be signaled only when using N- pel MVD accuracy (signaled in AMVR mode) for the block. It may also be signaled. 14. Different sets of weighting coefficients may be used for normal inter-mode and affine mode in GBI mode. a. In one example, the set of weighting coefficients used for normal inter-mode and affine mode may be signaled in SPS / Tile Group Header / Slice Header / VPS / PPS, etc. b. In one example, the set of weighting coefficients used for normal inter-mode and affine mode may be predefined in the encoder and decoder. 15. How to define / select the alternative interpolation filter may depend on the coding mode information. a. In one example, the allowed sets of alternative interpolation filters may be different for affine mode and non-affine mode. b. In one example, the allowed sets of alternative interpolation filters may be different for IBC mode and non-IBC mode. 16. In one example, whether the alternative 1 / 2 pixel interpolation filter is applied in the merge coded block or in the skip coded block is independent of whether the alternative 1 / 2 pixel interpolation filter is applied in the adjacent blocks. a. In one example, hpel_if_idx is not stored for any block. b. In one example, whether to inherit or discard the alternative 1 / 2 pixel interpolation filter may depend on the coding information and / or on the enabling / disabling of other coding tools. It may also depend. 17. In one example, whether the alternative 1 / 2 pixel interpolation filter is applied in the merge coded block or in the skip coded block is independent of whether the alternative 1 / 2 pixel interpolation filter is applied in the adjacent blocks. a. In one example, hpel_if_idx is not stored for any block. b. In one example, whether to inherit or discard the alternative 1 / 2 pixel interpolation filter may depend on the coding information and / or on the enabling / disabling of other coding tools. 18. In one example, whether the alternative 1 / 2 pixel interpolation filter is applied in the merge coded block or in the skip coded block is independent of whether the alternative 1 / 2 pixel interpolation filter is applied in the adjacent blocks. a. In one example, hpel_if_idx is not stored for any block. b. In one example, whether to inherit or discard the alternative 1 / 2 pixel interpolation filter may depend on the coding information and / or on the enabling / disabling of other coding tools. 19. In one example, whether the alternative 1 / 2 pixel interpolation filter is applied in the merge coded block or in the skip coded block is independent of whether the alternative 1 / 2 pixel interpolation filter is applied in the adjacent blocks. a. In one example, hpel_if_idx is not stored for any block. b. In one example, whether to inherit or discard the alternative 1 / 2 pixel interpolation filter may depend on the coding information and / or on the enabling / disabling of other coding tools. It may also depend. 20. In one example, whether the alternative 1 / 2 pixel interpolation filter is applied in the merge coded block or in the skip coded block is independent of whether the alternative 1 / 2 pixel interpolation filter is applied in the adjacent blocks. 17. In one example, whether an alternative 1 / 2 pixel interpolation filter is applied (e.g., in a merge coded block or a skip coded block) may depend on the coding information of the current block. a. In one example, when the merge index is K, the alternative 1 / 2 pixel interpolation filter is applied in a merge or skip coded block, and K is an integer such as 2, 3, 4, 5, etc. b. In one example, when the merge index Idx satisfies that Idx%S is equal to K, the alternative 1 / 2 pixel interpolation filter is applied in a merge or skip coded block. Here, S and K are integers. For example, S is 2 and K is 1. c. In one example, a specific merge candidate may apply an alternative 1 / 2 pixel interpolation filter. For example, a pairwise merge candidate may apply an alternative 1 / 2 pixel interpolation filter. 18. In one example, the alternative 1 / 2 pixel interpolation filter may be aligned with the 1 / 2 pixel interpolation filter used for affine interpolation prediction. a. For example, the integrated interpolation filter coefficients may be [3, -11, 40, 40, -11, 3]. b. For example, the integrated interpolation filter coefficients may be [3, 9, 20, 20, 9, 3]. 19. In one example, the alternative 1 / 2 pixel interpolation filter may be the same as the 1 / 2 pixel interpolation filter used for chroma interpolation prediction. a. For example, the integrated interpolation filter coefficients may be [-4, 36, 36, -4]. 20. In one example, the alternative interpolation filter may be applied not only at the 1 / 2 pixel position. a. For example, an alternative interpolation filter should be applied explicitly or implicitly when it is shown (e.g., when hpel_if_idx is 1), and the MV points to a position in the X pixel where X is not equal to 1 / 2 (e.g., 1 / 4 or 3 / 4 ), an alternative interpolation filter for the X pixel position should be applied. The alternative interpolation filter should have at least one coefficient different from the original interpolation filter for the X pixel position. b. In one example, the above black dots are applied after decoder-side motion vector fine-tuning (DMVR ) or MMVD or SMVD or other decoder-side motion derivation processes. c. In one example, when reference picture resampling (RPR) is used and the reference picture has a different resolution from the current picture, the above black dots are applied. 21. The alternative interpolation filter may be applied only in one prediction direction in the case of bi-prediction. 22. When selecting an alternative interpolation filter for an MV component with an accuracy of X pixels (e.g., X = 1 / 2) by one block, assuming there are MV components with accuracies other than X pixels ( e.g., 1 / 4, 1 / 16), for such MV components, other alternative interpolation filters may be used instead of the default interpolation filter. a. In one example, when a Gaussian interpolation filter is selected for an MV component with X pixel accuracy , the Gaussian interpolation filter may be used for MV components with accuracies other than X pixels. b. In one example, when a flat-top interpolation filter is selected for an MV component with X pixel accuracy , the flat-top interpolation filter may be used for MV components with accuracies other than X pixels. b. In one example, when a flat-top interpolation filter is selected for an MV component with X pixel accuracy , the flat-top interpolation filter may be used for MV components with accuracies other than X pixels. It may also be used for the MV component. c. In one example, such a constraint may be applied to a specific MV accuracy other than the X pixel accuracy. It may be applied accordingly. i. For example, such a constraint may be applied only to MV components that are more precise than the X pixel. It may be applied accordingly. ii. For example, such a constraint may be applied only to MV components that are less accurate than the X pixel. It may be applied accordingly. 23. Whether to apply an alternative interpolation filter and / or how to apply it may depend on whether RPR is used. It may depend on whether RPR is used. a. In one example, when RPR is used, an alternative interpolation filter should not be used. It should not be used. b. In one example, when the reference picture of the current block has a different resolution from the current picture, an alternative interpolation filter (e.g., 1 / 2 pixel interpolation filter) should not be used. It should not be used. It should not be used.
[0089] 5. Examples of Embodiments An example of the black circle 3 on JVET-O2001-vE is shown. The newly added parts are highlighted with thick underlined text. It is highlighted with thick underlined text.
[0090] 8.5.2.2. Derivation Process of Luminance Motion Vectors for Merge Mode This process is called only when general_merge_flag[xCb][yCb] is 1, where (xCb, yCb) defines the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture. This process is called only when general_merge_flag[xCb][yCb] is 1, where (xCb, yCb) defines the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture. This process is called only when general_merge_flag[xCb][yCb] is 1, where (xCb, yCb) defines the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture.
[0091] The input to this process is as follows. - The luminance position (xCb, yCb) of the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture. The luminance position (xCb, yCb) of the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture. - The variable cbWidth that defines the width of the current coded block in the luminance samples, - The variable cbHeigh that defines the height of the current coded block in the luminance samples t.
[0092] The output of this process is as follows. - Luminance motion vectors at 1 / 16 fractional sample precision mvL0[0][0] and mvL1[0][0] in. - Reference indices refIdxL0 and refIdxL1, - Prediction list usage flags predFlagL0[0][0] and predFlag L1[0][0], - 1 / 2 sample interpolation filter index hpelIfIdx, - Bidirectional prediction weight index bcwIdx. - Merge candidate list mergeCandList.
[0093] The bidirectional prediction weight index bcwIdx is set equal to 0.
[0094] The motion vectors mvL0[0][0], mvL1[0], reference indices refIdx L0, refIdxL1, and prediction usage flags predFlagLagL0[0][0 , predFlagL1[0][0] are derived in the following sequential steps. 1. The derivation process of spatial merge candidates from neighboring coded units defined in section 1.8.5.2.3 is called with the position (xCb, yCb) of the luminance coded block, the width c bWidth of the luminance coded block, and the height cbHeight of the luminance coded block as inputs, and the output is the availability flag availableFlagA 0 , availableFla gA 1 , availableFlagB 0, availableFlagB 1 and av ailableFlagB 2 , reference index refIdxLXA 0 , refIdxL XA 1 , refIdxLXB 0 , refIdxLXB 1 and refIdxLXB 2 , pre diction list usage flag predFlagLXA 0 , predFlagLXA 1 , predF lagLXB 0 , predFlagLXB 1 and predFlagLXB 2 and the motion ve ctor mvLXA 0 , mvLXA 1 , mvLXB 0 , mvLXB 1 and mvLXB 2 , where X is 0 or 1, and the half-sample interpolation filter index hpelIfIdxA 0 , hpelIfIdxA 1 , hpelIfIdxB 0 , hpelIfIdxB 1 , hpelIfIdxB 2 , and the bidirectional prediction weight index bcwIdxA 0 , bcwIdxA 1 , bcwIdxB 0 , bcwIdxB 1 , bcwIdxB 2 is shown. 2. The reference index refIdxLXCol (where X is 0 or 1) and the bidirectional prediction weight index bcwIdxCol of the temporal marker candidate Col are set to 0, and hpe lIfIdxCol is set to 0. 3. The derivation process of the temporal luminance motion vector prediction defined in Clause 3.8.5.2.11 is the luminance Degree position (xCb, yCb), luminance quantization block width cbWidth, luminance quantization block height cbHeight, and variable refIdxL0Col are called as inputs, and its outputs are availability flag availabilityFlagL0Col, and temporal motion vector mvL0Col. Variables availableFlagCol, predFl agL0Col, and predFlagL1Col are derived as follows. availableFlagCol = availableFlagL0Col (8 - 303) predFlagL0Col = availableFlagL0Col (8 - 304) predFlagL1Col = 0 (8 - 305) 4. When slice_type is B, the derivation process of the temporal luminance motion vector prediction is called with the luminance position (xCb, yCb), luminance quantization block width cbWidth, luminance quantization block height cbHeight, and variable refIdx L1Col as inputs, and its outputs are availability flag availability FlagL1Col, and temporal motion vector mvL1Col. Variables avail ableFlagCol and predFlagL1Col are derived as follows . availableFlagCol = availableFlagL0Col| |availableFlagL1Col (8 - 306) predFlagL1Col = availableFlagL1Col (8 - 307) 5. The merge candidate list mergeCandList is configured as follows. i = 0 if(availableFlagA1 ) mergeCandList[i++] = A 1 if (availableFlagB 1 ) mergeCandList[i++] = B 1 if (availableFlagB 0 ) mergeCandList[i++] = B 0 (8 - 308) if (availableFlagA 0 ) mergeCandList[i++] = A 0 if (availableFlagB 2 ) mergeCandList[i++] = B 2 if (availableFlagCol) mergeCandList[i++] = Col 6. The variables numCurrMergeCand and numOrigMergeCa nd are set equal to the number of merge candidates in mergeCandList. 7. If numCurrMergeCand is less than (MaxNumMergeCand - 1) and NumHmvpCand is greater than 0, the following applies. - The derivation process of history-based merge candidates as defined in item 8.5.2.6 is called with mergeCandList and numCurrMergeCand as inputs and is output and modified with morgeCandList and numCurrMergeCand as outputs. - OrigMergeCand is set equal to numCurrMergeCand. - OrigMergeCand is set equal to numCurrMergeCand is set. 8. If numCurrMergeCand is less than MaxNumMergeCand When it is greater than 1, the following applies. - The process of deriving the pair of average merge candidates defined in item 8.5.2.4 is mer geCandList, reference indices refIdxL0N, refIdxL1N, pre diction list usage flags predFlagL0N, preDFlagL1N, motion vectors m vL0N, mlvL1N, and all candidate N in mergeCandList 1 / 2 sample interpolation filter index hpelIfIdxN, and numCurr MergeCand are called as input, and the outputs are mergeCandList, n umCurrMergeCand, reference indices refIdxL0avgCand and refIdxL1avgCand, prediction list usage flags predFlagL0av gCand and predFlagL1avgCand, and the motion vectors mvL0avgCand and m vL1avgCand of candidate avgCand added to mergeCandL ist are assigned. The bidirectional prediction weight index bcwIdx of candidate avgCand added to mergeCandList is set equal to 0. - OrigMergeCand is set equal to numCurrMergeCand is set. The process of deriving zero motion vector merge candidates defined in item 9.8.5.2.5 is called with mergeCandList, reference indices refIdxL0N and refIdxL1N, prediction list usage flags predFlagL0N and predFlagL1N, motion vectors mvL0N and mvL1N of each candidate N in mergeCandList, and numCurrMergeCand as input, and the outputs are mergeCandList, numCurrMergeCand, reference index refIdxL0zeroCandm and refIdxL1zeroCand m 、prediction list usage flag predFlagL0zeroCand m and predFlagL1zeroCand m 、and all new candidates zeroCand added to mergeCandList m 's motion vector mvL0zeroCand m and mvL1zeroCand m are assigned. All new candidates zeroCand added to mergeCandList m 's 1 / 2 sample interpolation filter index hpelIfIdx is set to 0. All new candidates zeroCand added to mergeCandList m 's bidirectional prediction weight index bcwIdx is set equal to 0. The number of added candidates numZeroMergeCand is set equal to (numCurrMergeCand - numOrigMergeCand). If numZeroMergeCand is greater than 0, m ranges from 0 to numZeroMergeCand - 1 (both ends included). 10. Merge candidate list mergeCandList(N = mergeCandLi st[merge_idx[xCb][yCb]) at position merge_idx[x Cb][yCb] of candidate N, by replacing X with 0 or 1, the following assignment is performed. refIdxLX = refIdxLXN (8 - 309) predFlagLX[0][0] = predFlagLXN (8 - 3 10) mvLX[0][0][0] = mvLXN[0] (8 - 311) mvLX[0][0][1] = mvLXN[1] (8 - 312) hpelIfIdx = hpelIfIdxN (8 - 313) bcwIdx = bcwIdxN (8 - 314) When 11.mmvd_merge_flag[xCb][yCb] is equal to 1, the following is applied. - The derivation process of the merge motion vector difference as defined in 8.5.2.7 is performed with the luminance position (xCb, yCb), reference indices refIdxL0, refIdxL1, and prediction list usage flags predFlagL0[0][0] and predFlagL1 [0][0] as inputs, and the motion vector differences mMvdL0, mMvdL1 as outputs and is called. - The motion vector difference mMvdLX is added to the merge motion vector mvLX as follows when X is 0 and 1. mvLX[0][0][0]+=mMvdLX[0] (8-315) mvLX[0][0][1]+=mMvdLX[1] (8-316) mvLX[0][0][0]=Clip3(-2 17 ,2 17 -1,mvL X[0][0][0]) (8-317) mvLX[0][0][1]=Clip3(-2 17 ,2 17 -1,mvL X[0][0][1]) (8-318)
Chemical formula
[0095] 6. Exemplary Implementations of the Disclosed Technology FIG. 11A is a block diagram of a video processing apparatus 1100. The apparatus 1100 may be used to implement one or more of the methods described herein. The apparatus 1100 may be implemented by a smartphone, tablet, computer, IoT (Internet of Things) receiver, etc. The apparatus 1100 includes one or more processing devices 1102 and one or more memories 1104 and may be implemented by a smartphone, tablet, computer, IoT (Internet of Things) receiver, etc. The apparatus 1100 includes one or more processing devices 1102 and one or more memories 1104 and may be implemented by a smartphone, tablet, computer, IoT (Internet of Things) receiver, etc. The apparatus 1100 includes one or more processing devices 1102 and one or more memories 1104 and may include image processing hardware 1106 and a processing device (one or more 1102). The processing device may be configured to implement one or more of the methods described herein. The memory ( singular or plural) 1104 may be used to store data and code used to implement the methods and techniques described herein. The image processing hardware 1 106 may be used to implement some of the techniques described herein in a hardware circuit, and part or all of it may be part of the processing device 1102 (e.g., a graphics processing unit GPU or other signal processing circuit). 106 may be used to implement some of the techniques described herein in a hardware circuit, and part or all of it may be part of the processing device 1102 (e.g., a graphics processing unit GPU or other signal processing circuit). 106 may be used to implement some of the techniques described herein in a hardware circuit, and part or all of it may be part of the processing device 1102 (e.g., a graphics processing unit GPU or other signal processing circuit). 106 may be used to implement some of the techniques described herein in a hardware circuit, and part or all of it may be part of the processing device 1102 (e.g., a graphics processing unit GPU or other signal processing circuit).
[0096] FIG. 11B is another example of a block diagram of an image processing system in which the disclosed techniques may be implemented. FIG. 11B is a block diagram showing an exemplary image processing system 1150 that can implement various techniques disclosed herein. Various implementations may include some or all of the modules of the system 1150. The system 1150 may include an input unit 1152 for receiving video content. The video content may be received in an unprocessed or uncompressed format, such as 8 or 10-bit multi-module pixel values, or in a compressed or encoded format. The input unit 1152 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet (registered trademark), Passive Optical Network (PON), etc., and wireless interfaces such as Wi-Fi (registered trademark or a cellular interface. The video content may be received in an unprocessed or uncompressed format, such as 8 or 10-bit multi-module pixel values, or in a compressed or encoded format. The input unit 1152 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet (registered trademark), Passive Optical Network (PON), etc., and wireless interfaces such as Wi-Fi (registered trademark or a cellular interface. The input unit 1152 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet (registered trademark), Passive Optical Network (PON), etc., and wireless interfaces such as Wi-Fi (registered trademark ) or a cellular interface.
[0097] System 1150 may include an encoding module 1154 that implements various encoding or encoding methods described herein. The encoding module 1154 may reduce the average bit rate of the video from the input unit 1152 to the output of the encoding module 1154 and generate an encoded representation of the video. Thus, this encoding technique may be referred to as video compression or video codec technology. The output of the encoding module 1154 may be stored or transmitted via connected communication as represented by module 1156. The bitstream (or encoded) representation of the video received, stored, or communicated in the input unit 1152 may be used by module 1158 to generate pixel values or a displayable video to be transmitted to the display interface unit 1160. The process of generating a video that a user can view from the bitstream representation may be referred to as video decompression (video expansion). Further, certain video processing operations are referred to as "encoding" operations or tools, but it will be understood that the encoding tools or operations are reversed by a decoder by decoding tools or operations that reverse the results of the encoding. The encoding module 1154 may reduce the average bit rate of the video from the input unit 1152 to the output of the encoding module 1154 and generate an encoded representation of the video. Thus, this encoding technique may be referred to as video compression or video codec technology. The output of the encoding module 1154 may be stored or transmitted via connected communication as represented by module 1156. The bitstream (or encoded) representation of the video received, stored, or communicated in the input unit 1152 may be used by module 1158 to generate pixel values or a displayable video to be transmitted to the display interface unit 1160. The process of generating a video that a user can view from the bitstream representation may be referred to as video decompression (video expansion). Further, certain video processing operations are referred to as "encoding" operations or tools, but it will be understood that the encoding tools or operations are reversed by a decoder by decoding tools or operations that reverse the results of the encoding. Examples of the peripheral bus interface unit or the display interface unit may include a universal serial bus (USB), a high-definition multimedia interface (HDMI (registered trademark)), a display port, etc. Examples of the storage interface include a serial advanced technology attachment (SATA), a PCI, an IDE interface, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc. Examples of the peripheral bus interface unit or the display interface unit may include a universal serial bus (USB), a high-definition multimedia interface (HDMI (registered trademark)), a display port, etc. Examples of the storage interface include a serial advanced technology attachment (SATA), a PCI, an IDE interface, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc. Examples of the peripheral bus interface unit or the display interface unit may include a universal serial bus (USB), a high-definition multimedia interface (HDMI (registered trademark)), a display port, etc. Examples of the storage interface include a serial advanced technology attachment (SATA), a PCI, an IDE interface, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc.
[0098] Examples of the peripheral bus interface unit or the display interface unit may include a universal serial bus (USB), a high-definition multimedia interface (HDMI (registered trademark)), a display port, etc. Examples of the storage interface include a serial advanced technology attachment (SATA), a PCI, an IDE interface, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc. Examples of the peripheral bus interface unit or the display interface unit may include a universal serial bus (USB), a high-definition multimedia interface (HDMI (registered trademark)), a display port, etc. Examples of the storage interface include a serial advanced technology attachment (SATA), a PCI, an IDE interface, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc. The technology described herein may be applied to mobile phones, notebook computers, smart phones, etc. It may be implemented in various electronic devices such as a tophone or other devices capable of performing digital data processing and / or video display. It may be implemented in various electronic devices.
[0099] The video processing method described in this patent document may be implemented using a device implemented on a hardware platform as shown in FIG. 11A or FIG. 11B. It may be implemented using a device implemented on a hardware platform.
[0100] Some embodiments of the disclosed technology include determining or judging to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, the encoder uses or implements this tool or mode when processing one video block, but based on the use of this tool or mode, the resulting bitstream does not necessarily have to be modified. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. In another example, when a video processing tool or mode is enabled, the decoder knows that the bitstream has been modified based on the video processing tool or mode and processes the bitstream. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. It includes determining or judging to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, the encoder uses or implements this tool or mode when processing one video block, but based on the use of this tool or mode, the resulting bitstream does not necessarily have to be modified. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. In another example, when a video processing tool or mode is enabled, the decoder knows that the bitstream has been modified based on the video processing tool or mode and processes the bitstream. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. When a video processing tool or mode is enabled, the encoder uses or implements this tool or mode when processing one video block, but based on the use of this tool or mode, the resulting bitstream does not necessarily have to be modified. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. When a video processing tool or mode is enabled, the encoder uses or implements this tool or mode when processing one video block, but based on the use of this tool or mode, the resulting bitstream does not necessarily have to be modified. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. That is, the conversion from a video block to a bitstream representation of the video uses this video processing tool or mode when the video processing tool or mode is enabled based on a determination or judgment. In another example, when a video processing tool or mode is enabled, the decoder knows that the bitstream has been modified based on the video processing tool or mode and processes the bitstream. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. In another example, when a video processing tool or mode is enabled, the decoder knows that the bitstream has been modified based on the video processing tool or mode and processes the bitstream. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. In another example, when a video processing tool or mode is enabled, the decoder knows that the bitstream has been modified based on the video processing tool or mode and processes the bitstream. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment. That is, the conversion from the bitstream representation of the video to the video block is performed using the video processing tool or mode enabled based on a determination or judgment.
[0101] Some embodiments of the disclosed technology include determining or judging to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, the encoder converts a video block into a bitstream representation of the video. It includes determining or judging to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, the encoder converts a video block into a bitstream representation of the video. When a video processing tool or mode is disabled, the encoder converts a video block into a bitstream representation of the video. When doing so, do not use this tool or mode. In another example, when a video processing tool or mode is disabled, the decoder knows, based on a determination or decision, that the video processing tool or mode that has been disabled is not used to modify the bitstream, and processes the bitstream.
[0102] As used herein, the term “video processing” can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, or vice versa. The bitstream representation of a current video block may correspond to bits that are spread at the same or different locations within the bitstream, as defined by syntax, for example. For example, one macroblock may be encoded using bits in the header and other fields in the bitstream, from the perspective of the converted and encoded residual error values.
[0103] The disclosed methods and techniques are beneficial for embodiments of video encoders and / or decoders incorporated into video processing devices such as smartphones, notebook computers, desktop computers, and similar devices, so as to enable the use of the techniques disclosed herein.
[0104] FIG. 12 is a flowchart showing an example of a method 2000 for video processing. Method 1200 determines, at 1210, a set of motion information for a current video block based on applying at least one interpolation filter to a set of neighboring blocks. At least one interpolation filter is configurable to integer pixel accuracy or sub-pixel accuracy for one set of motion information. Method 1200 includes, at 1220, performing a conversion between the current video block and the bitstream representation of the current video block, the conversion including a decoder motion vector refinement (DMVR) step for refining the single set of motion information signaled
[0105] The first set of items describes some embodiments of the techniques disclosed
[0106] 1. Determining a single set of motion information based on applying at least one interpolation filter to a set of neighboring blocks for one current video block, wherein the at least one interpolation filter is configurable to integer pixel accuracy or sub-pixel accuracy of the single set of motion information, and performing a conversion between the current video block and the bitstream representation of the current video block, the conversion including a decoder motion vector refinement (DMVR) step for refining the single set of motion
[0107] information signaled in the bitstream representation, a video processing method. 2. The method according to item 1, wherein when the single set of motion information is associated with an adaptive motion vector resolution (AMVR)
[0108] mode, signaling an index of the at least one interpolation filter in the bitstream The item that inherits the index of at least one interpolation filter from the previous video block The method according to item 1
[0109] 4. When the set of the single motion information is associated with merging in the motion vector difference (MMVD) mode The method according to item 1, which inherits the index of at least one interpolation filter from the previous video block The method according to item 1, which inherits the index of at least one interpolation filter from the previous video block
[0110] 5. The at least one interpolation filter corresponds to a default filter having sub-pixel accuracy, and the set of the single motion information is associated with merging in the motion vector difference (MMVD) mode The method according to item 1 The method according to item 1
[0111] 6. The coefficient of the at least one interpolation filter for the current video block is inherited from the previous video block The method according to any one of items 2 to 4
[0112] 7. The sub-pixel accuracy of the set of the single motion information is equal to 1 / 4 pixel or 1 / 16 pixel The method according to any one of items 1 to 6
[0113] 8. One or more components of the set of the single motion information have sub-pixel accuracy The method according to any one of items 1 to 7
[0114] 9. The at least one interpolation filter is represented using six coefficients or eight coefficients The method according to item 1
[0115] 10. The index of the at least one interpolation filter is associated only with the current video block and not with subsequent video blocks The method according to item 5
[0116] 11. Information regarding the at least one interpolation filter is stored together with the set of the single motion information, the method according to item 1.
[0117] 12. The information regarding the at least one interpolation filter specifies the at least one interpolation filter as a default filter, the method according to item 11.
[0118] 13. Coefficients of the at least one interpolation filter for the current video block are prevented from being used by an interpolation filter of another video block, the method according to item 1.
[0119] 14. The at least one interpolation filter corresponds to a plurality of filters, and each filter is associated with the sub-pixel accuracy of the set of the single motion information in the plurality of filters, the method according to any one of items 1 to 13.
[0120] 15. The accuracy of each component of the set of the single motion information is below the sub-pixel accuracy of the set of the single motion information, the method according to any one of items 1 to 14.
[0121] 16. The at least one interpolation filter is stored in a history-based motion vector prediction (HMVP) lookup table, the method according to any one of items 1 to 15.
[0122] 17. The method according to item 16, further including: when it is detected that motion information of another video block is the same as one motion set of the current video block, inserting the set of the single motion information into the HMVP table without inserting the motion information of the another video block.
[0123] 18. The method according to item 16, further comprising detecting that motion information of another video block is the same as one motion set of the current video block, and inserting into the HMVP table the motion information of one motion information set of the current video block and the motion information of another video block. A method comprising.
[0124] 19. The method according to any one of items 17 to 18, wherein the another video block is related to one interpolation filter, and the insertion is at least partially based on at least one interpolation filter of the current video block and / or the interpolation filter of the another video block. A method according to any one of items 17 to 18, wherein the another video block is related to one interpolation filter, and the insertion is at least partially based on at least one interpolation filter of the current video block and / or the interpolation filter of the another video block. A method according to any one of items 17 to 18, wherein the another video block is related to one interpolation filter, and the insertion is at least partially based on at least one interpolation filter of the current video block and / or the interpolation filter of the another video block.
[0125] 20. The method according to any one of items 17 to 19, wherein the current video block and the another video block correspond to pairwise candidates or combined merge candidates. A method according to any one of items 17 to 19, wherein the current video block and the another video block correspond to pairwise candidates or combined merge candidates.
[0126] 21. The method according to any one of items 17 to 20, wherein at least one interpolation filter of the current video block is the same as the interpolation filter of the another video block. A method according to any one of items 17 to 20, wherein at least one interpolation filter of the current video block is the same as the interpolation filter of the another video block.
[0127] 22. The method according to any one of items 17 to 20, wherein at least one interpolation filter of the current video block is different from the interpolation filter of the another video block. A method according to any one of items 17 to 20, wherein at least one interpolation filter of the current video block is different from the interpolation filter of the another video block.
[0128] 23. The method according to item 1, wherein the current video block is encoded in an intra block copy (IBC) mode, and the use of the sub-pixel accuracy in the representation of the single set of motion information is disabled. A method according to item 1, wherein the current video block is encoded in an intra block copy (IBC) mode, and the use of the sub-pixel accuracy in the representation of the single set of motion information is disabled. A method according to item 1, wherein the current video block is encoded in an intra block copy (IBC) mode, and the use of the sub-pixel accuracy in the representation of the single set of motion information is disabled.
[0129] 24. The method according to any one of items 1 to 23, wherein the use of at least one interpolation filter is disabled. A method according to any one of items 1 to 23, wherein the use of at least one interpolation filter is disabled.
[0130] 25. The at least one interpolation filter is associated with the amvr_precision_idx flag and / or the hpel_if_idx flag, and the method according to item 1. Method.
[0131] 26. The amvr_precision_idx flag and / or the hpel_i f_idx flag is associated with a bypass-coded bin or a context-coded bin, and the method according to item 25. Method.
[0132] 27. The first bin is a bypass-coded bin or a context-coded bin, and the method according to item 2 6.
[0133] 28. All bins share the same context, and the method according to any one of items 25 to 27. Method.
[0134] 29. Based on using the at least one interpolation filter, one or more video processing steps are disabled, and the method according to item 1.
[0135] 30. The one or more video processing steps include the decoder motion vector fine-tuning (DMV R) step, the bidirectional optical flow (BDOF) step, the inter-intra loop prediction (CIIP) step, the symmetric motion vector difference (SMVD) step, the sub block transform (SBT) step, and the triangular prediction step, and the method according to item 29. Method.
[0136] 31. The at least one interpolation filter corresponds to a default filter, and the method according to item 3 0.
[0137] 32. Disabling the one or more video processing steps includes invalidating the indication of the one or more video processing steps in the bitstream table In practice, the method according to any one of items 30 ~31, which includes invalidating the indication of the one or more video processing steps.
[0138] 33. Disabling the one or more video processing steps includes invalidating the inheritance of at least one interpolation filter of the current video block to another video block The method according to any one of items 30 to 31, which includes the above.
[0139] 34. The integer pixel accuracy of the single set of motion information corresponds to 1 pixel, 2 pixels, or 4 pixels, and the method is as described in item 1.
[0140] 35. The at least one interpolation filter is a low-pass filter, and the method is as described in item 34.
[0141] 36. The at least one interpolation filter is a one-dimensional filter, and the method is as described in item 34.
[0142] 37. The one-dimensional filter is a horizontal filter or a vertical filter, and the method is as described in item 36.
[0143] 38. The flag in the bitstream representation indicates whether to use the at least one interpolation filter, and the method is as described in item 34.
[0144] 39. The current video block is associated with an adaptive motion vector resolution (AMVR) mode, and the method is as described in any one of items 1 to 38.
[0145] 40. The at least one interpolation filter for the inter mode of the current video block The filter is different from the generalized bi-prediction (GBI) mode of the current video block, item The method described in any one of 1 to 39.
[0146] 41. The at least one interpolation filter is the method described in any one of items 1 to 40, which is determined in advance. The method described in any of them.
[0147] 42. The bitstream representation includes a video parameter set (VPS), a picture parameter set (PPS), a picture header, a tile group header, or a slice header associated with the current video block, and is the method described in any one of items 1 to 41. The method described in any one of items 1 to 41, including a video parameter set (VPS), a picture parameter set (PPS), a picture header, a tile group header, or a slice header associated with the current video block. The method described in any of them.
[0148] 43. The video processing is an encoder-side implementation form, and is the method described in any one or more of items 1 to 42. The method described in any one or more of items 1 to 42.
[0149] 44. The video processing is a decoder-side implementation form, and is the method described in any one or more of items 1 to 70. The method described in any one or more of items 1 to 70.
[0150] 45. An apparatus comprising a processing device and a non-transitory memory storing instructions therein, wherein the instructions are implemented by the processing device to cause the processing device to perform the method described in any one of items 1 to 44. An apparatus of a video system that causes the processing device to perform the method described in any one of items 1 to 44 when the instructions are implemented by the processing device. The method described in any one of items 1 to 44.
[0151] 46. A computer program product stored on a non-transitory computer-readable medium, including program code for executing the method described in any one or more of items 1 to 45. The computer program product includes program code for executing the method described in any one or more of items 1 to 45. The method described in any one or more of items 1 to 45.
[0152] In the second set of items, some embodiments of the technology disclosed in the previous chapter are described, for example, embodiments 3-6 and 16-23. Embodiments 3-6 and 16-23 are described.
[0153] 1. For the conversion between the current video block of the current picture of the video and the coded representation of the video , determining the applicability of an alternative interpolation filter (1412), where the applicability of the alternative interpolation filter indicates whether to apply this alternative interpolation filter in the conversion, and based on this determination, performing the conversion (1414), including the applicability of the alternative interpolation filter being determined based on whether reference picture resampling for the conversion by resampling the reference picture of the current picture is used, a video processing method (e.g., method 1410 shown in FIG. 14A).
[0154] 2. The method according to item 1, wherein by using the resampling of the reference picture, the alternative interpolation filter is not applied.
[0155] 3. The method according to item 2, wherein the reference picture has a resolution different from the resolution of the current picture.
[0156] 4. The method according to item 1, wherein when the determination determines not to apply the alternative interpolation filter, a default loop interpolation filter is applied.
[0157] 5. The method according to item 4, wherein the default interpolation filter corresponds to an 8 - tap filter having filter coefficients [-1, 4, -11, 40, 40, -11, 4, -1].
[0158] 6. The method according to any one of items 1 to 5, wherein the alternative interpolation filter corresponds to a 6 - tap filter having filter coefficients [3, 9, 20, 20, 9, 3].
[0159] 7. The alternative interpolation filter is a half-pixel filter used for predicting the current image block. 7. The method according to any one of items 1 to 6, wherein the filter is a prime interpolation filter.
[0160] 8. When using the alternative interpolation filter, the current image block is interpolated by 1 / 2 pixel. According to any one of items 1 to 7, the image is encoded with at least one motion vector pointing to the position of the image. How to.
[0161] 9. The current image block is horizontally 1 / A small number referring to a 2 pixel position or a vertical 1 / 2 pixel position, or a horizontal and vertical 1 / 2 pixel position. 9. The method according to any one of items 1 to 8, wherein the image is encoded with at least one motion vector.
[0162] 10. The current image block of the image is processed to provide information about the distance between the motion candidate and the starting point. The motion vector representation is expressed as a merge mode with motion vector difference (MMVD) including the motion vector representation determining (1422) a coding mode to be used for transforming the current video block based on the determining and the coded representation; and performing (1424) The transformation is performed when the half-pixel interpolation filter is different from the default half-pixel interpolation filter. a first rule defining a first condition that the filter is an alternative half-pixel interpolation filter; A second condition that defines a second condition for whether to inherit the replacement half-pixel interpolation filter. The current value calculated using the half-pixel interpolation filter selected according to the rule A method of video processing (e.g., FIG. 14) performed using a prediction block for a video block. Method 1420 shown in B).
[0163] 11. The second rule stipulates that when the distance has either X pixel accuracy or a coarser accuracy than X pixel accuracy, the method described in item 10, which inherits an alternative 1 / 2 pixel interpolation filter, is applicable.
[0164] 12. For the method described in item 11, X is 1 / 2, and the coarser accuracies are 1, 2, or 4.
[0165] 13. The second rule stipulates that when the distance has either X pixel accuracy or a finer accuracy than X pixel accuracy, the method described in item 10, which does not inherit an alternative 1 / 2 pixel interpolation filter, is applicable.
[0166] 14. For the method described in item 13, X is 1 / 4, and the finer accuracy is 1 / 16.
[0167] 15. A video processing method (e.g., method 1430 shown in FIG. 14C) includes determining the encoding mode used in the current video region of the video (1432), determining the accuracy used to represent the motion vector or motion vector difference value of the current video region based on the encoding mode (1434), and performing a conversion between the current video block and the encoded representation of the video (1436).
[0168] 16. For the method described in item 15, performing the determination includes determining whether to inherit the accuracy.
[0169] 17. For the method described in item 15, when the accuracy is not inherited, the method further includes storing the accuracy.
[0170] 18. When it is determined that the accuracy is inherited, the conversion directly signals the accuracy. Encoding the current video region into the encoded representation without the method according to item 15, including
[0171] 19. By the determination that the accuracy is not inherited, the conversion signals the accuracy and encodes the current video region into an encoded representation, the method according to item 15, including
[0172] 20. The video region corresponds to a video block, an encoding unit, or a prediction unit, the method according to item 15.
[0173] 21. The video region corresponds to an encoding unit, the method according
[0174] to item 15.
[0175] 23. The encoding mode is an advanced motion vector prediction (AMVP) mode that derives motion candidates from spatially and temporally adjacent blocks, an affine inter mode, a merge mode, and / or an affine merge mode, the method according to item 15.
[0176] 24. Inheriting the accuracy for representing the motion vector or the motion vector difference value used for the neighboring block for the candidates derived from the neighboring blocks, the method according
[0177] to item 15. 25. Assigning the same accuracy to the pairwise merge candidates associated with two spatial merge candidates having the same accuracy,
[0178] and if not, assigning fixed motion accuracy information to the pairwise merge candidates, the method according to item 15.26. The method according to item 15, which assigns a fixed precision to a time merge candidate.
[0179] 27. Before encoding the current video region or generating a decoded representation, further comprising maintaining at least one history-based motion vector prediction (HMVP) table, wherein the HMVP table includes one or more entries corresponding to the motion information of one or more previously processed blocks, and the precision is stored in the HMVP table and inherited by the HMVP merge candidate. The method according to item 15.
[0180] 28. For a current video region encoded in a merge mode (M MVD) having a motion vector difference to update motion information, inheriting the precision of a base merge candidate. The method according to item 15.
[0181] 29. Using the precision determined to be inherited to predict the precision of subsequent video regions. The method according to item 15 or 16.
[0182] 30. Rounding the motion vector of a video block encoded in a merge mode to the precision of the current video region. The method according to item 15.
[0183] 31. Determining the encoding mode of the current video block of the video as a merge mode (MMVD) having a motion vector difference (1442), and based on the motion precision information of the base merge candidate associated with the current video block, determining a distance table that defines the relationship between a distance index and a predefined offset for the current video block (1444), and using the distance table to determine the relationship between the current video block and the video. Performing conversion with symbolic expressions (1446), and a video processing method (for example, the method 1440 shown in FIG. 14 D).
[0184] 32. When N is a positive integer and the base merge candidate has 1 / N pixel accuracy, use a distance having 1 / N pixel accuracy or a coarser accuracy than 1 / N pixels, the method according to item 31 .
[0185] 33. The method according to item 31, where N is 2 and the distance is 1 / 2 pixel, 1 pixel, or 2 pixels .
[0186] 34. Modifying a distance table including fractional distances based on the motion accuracy information of the base merge candidate , the method according to item 31
[0187] 35. A flag is signaled to indicate whether fractional distances are allowed for the MMVD mode , the method according to item 34
[0188] 36. When N and M are positive integers, the base merge candidate has 1 / N pixel accuracy, and the finest motion vector difference accuracy of the distance table has 1 / M pixel accuracy, multiplying the distances in the distance table by M / N , the method according to item 34 .
[0189] 37. Performing a first determination (1452) using a motion vector difference used for decoder-side motion vector fine-tuning (DMVR) calculation for a first video region, which has a finer resolution than an X pixel resolution where X is a fraction, and not storing information on an alternative 1 / 2 pixel interpolation filter associated with the first video region as a result of the first determination, or making it unavailable for a second video region to be processed later , the second judgment determined using an alternative 1 / 2 pixel interpolation filter for the first video region, and not storing information on the alternative 1 / 2 pixel interpolation filter associated with the first video region or making it unavailable for a second video region to be processed later Performing a determination (1454), and based on the first determination and the second determination, performing a conversion between a video consisting of the first video region and the second video region and an encoded representation of the video (1456). The video processing method includes the above steps (for example, method 1450 shown in FIG. 14E). The video region consists of the first video region and the second video region, and the conversion between the video and the encoded representation of the video is performed. A video processing method including the above steps (for example, method 1450 shown in FIG. 14E). 0).
[0190] 38. The method according to item 37, wherein the video region corresponds to a video block, an encoding unit, or a prediction unit. The method according to item 37.
[0191] 39. The method according to item 37, wherein when the DMVR is performed at the sub-block level, the second determination is performed for each sub-block of the video. The method according to item 37.
[0192] 40. The method according to item 37, wherein the difference in motion vectors has a resolution finer than the X pixel resolution for at least N sub-blocks or blocks of the video. The method according to item 37.
[0193] 41. Determining (1462) whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video according to a rule, and based on the determination, performing a conversion between the current video block and the encoded representation of this video (1464). The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in this encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. A video processing method (for example, method 1460 shown in FIG. 14F). Based on the determination, perform a conversion between the current video block and the encoded representation of this video. The video processing method includes the above steps. The rule stipulates that when the current video block is encoded as a merge block or a skip-encoded block in this encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. When the current video block is encoded as a merge block or a skip-encoded block in this encoded representation, the determination is independent of whether the alternative 1 / 2 pixel interpolation filter is used to process the previous block encoded or decoded before this current video block. The previous block encoded or decoded before this current video block. A video processing method (for example, method 1460 shown in FIG. 14F). 0).
[0194] 42. A parameter that identifies whether to use the alternative 1 / 2 pixel interpolation filter for the conversion is not stored for any block of the video, the method according to item 41.
[0195] 43. Whether to inherit or discard the alternative 1 / 2 pixel interpolation filter depends on the encoding information and / or encoding tools that are enabled or disabled in the current video block and the method according to item 41.
[0196] 44. Determining (1462) whether an alternative 1 / 2 pixel interpolation filter is available for the current video block of the video according to the rules, and based on the determination, performing a conversion between the current video block and the encoded representation of this video (1464), including wherein the rules define the applicability of an alternative 1 / 2 pixel interpolation filter different from the default 1 / 2 pixel interpolation filter based on the encoding information of the current video block, a video processing method (for example, the method 1460 shown in FIG. 14F).
[0197] 45. The current video block is encoded as a merge block or a skip-encoded block in the encoded representation, the method according to item 44.
[0198] 46. When the encoded representation includes a merge index equal to K where K is a positive integer, the alternative 1 / 2 pixel interpolation filter is applied to the current video block encoded in merge or skip mode, the method according to item 44.
[0199] 47. When the encoded representation includes a merge index Idx such that S and K are positive integers and Idx%S is equal to K, the alternative 1 / 2 pixel interpolation filter is a merge Item 4 applied to the current video block encoded in the skip mode or the P mode The method according to item 4
[0200] 48. The method according to item 44, applying the alternative 1 / 2 pixel interpolation filter to a specific merge candidate The method according to item 44
[0201] 49. The method according to item 48, wherein the specific merge candidate corresponds to a pairwise merge candidate The method according to item 48
[0202] 50. A video processing method (e.g., method 1470 shown in FIG. 14G) for a current video block of a video, including: determining (1472) coefficients of an alternative 1 / 2 pixel interpolation filter according to rules; and performing (1474) conversion between the current video block and an encoded representation of the video based on the determination, wherein the rules define a relationship between the alternative 1 / 2 pixel interpolation filter and a 1 / 2 pixel interpolation filter used in a specific encoding mode The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction
[0203] 51. The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction The method according to item 50, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for affine inter prediction
[0204] 52. The method according to item 51, wherein the alternative interpolation filter has a coefficient set of [3, -11, 40, 40, -11, 3] The method according to item 51, wherein the alternative interpolation filter has a coefficient set of [3, -11, 40, 40, -11, 3]
[0205] 53. The method according to item 51, wherein the alternative interpolation filter has a coefficient set of [3, 9, 20, 20, 9, 3] The method according to item 51, wherein the alternative interpolation filter has a coefficient set of [3, 9, 20, 20, 9, 3]
[0206] 54. The method according to item 51, wherein the rules define aligning the alternative 1 / 2 pixel interpolation filter with a 1 / 2 pixel interpolation filter used for chroma inter prediction The method according to item 50 which defines that it is the same as the 1 / 2 pixel interpolation filter.
[0207] 55. The alternative interpolation filter has a coefficient set of [-4, 36, 36, -4]. , the method according to item 54.
[0208] 56. For the conversion between the current video block of the video and the encoded representation of the video, according to the rule applying an alternative 1 / 2 pixel interpolation filter (1482), and performing the conversion between the current video block and the encoded representation of the video (1484), wherein the rule defines applying this alternative interpolation filter at a position in X pixels, where X is other than 1 / 2, video processing method (for example, the method 1480 shown in FIG. 14H).
[0209] 57. The method according to item 56, wherein the use of the alternative interpolation filter is explicitly or implicitly indicated. described.
[0210] 58. The alternative interpolation filter has at least one coefficient different from the coefficients of the default interpolation filter assigned to the position in X pixels, the method according to item 57. described.
[0211] 59. The applying of the alternative 1 / 2 pixel interpolation filter is performed after decoder-side motion vector refinement (DMVR) or merge mode with motion vector difference (MMVD) or symmetric motion vector difference (SMVD) or other decoder-side motion derivation processing, the method according to item 56. described.
[0212] 60. The applying of the alternative 1 / 2 pixel interpolation filter is performed when reference picture resampling is used and the reference picture includes the current picture including the current video block The method according to item 56, which is performed when having a resolution different from the resolution of ャ.
[0213] 61. When the current video block uses bi-prediction, the method according to any one of items 56 to 60, where an alternative 1 / 2 pixel interpolation filter is applied only in one prediction direction.
[0214] 62. Performing a first determination (1492) to select an alternative interpolation filter for a first motion vector component having X pixel accuracy by a first video block of the video, and performing a second determination (1494) to use another alternative interpolation filter for a second motion vector component having an accuracy different from the X pixel accuracy where X is a fraction, based on the first determination, and performing a conversion (1496) between a video including the first video block and the second video block and an encoded representation of the video, wherein the video processing method includes these steps (for example, the method 1490 shown in FIG. 14I) . .
[0215] 63. The method according to item 62, wherein the alternative interpolation filter and the other alternative interpolation filter correspond to a Gaussian interpolation filter.
[0216] 64. The method according to item 62, wherein the alternative interpolation filter and the other alternative interpolation filter correspond to a flat-top interpolation filter.
[0217] 65. The method according to item 62, wherein the second motion vector component has an accuracy finer than the X pixel accuracy.
[0218] 66. The method according to item 62, wherein the second motion vector component has an accuracy coarser than the X pixel accuracy.
[0219] Performing the conversion includes generating the encoded representation from the current video block The method according to any one of items 1 to 66, including this
[0220] Performing the conversion includes generating the current video block from the encoded representation The method according to any one of items 1 to 66, including this
[0221] An apparatus comprising a processing device and a non - transient memory storing instructions therein wherein, when the instructions are implemented by the processing device, the processing device is caused to implement the method according to any one of items 1 to 68 An apparatus of a video system
[0222] A computer program product stored on a non - transient computer - readable medium comprising program code for executing the method according to any one of items 1 to 68 A computer program product
[0223] The disclosed and other solutions, examples, embodiments, modules rules, and implementations of functional operations described herein may be implemented in digital electronic circuits, or in computer software, firmware, or hardware, including the structures disclosed herein and their structural equivalents or in combinations of one or more of them. The disclosed and other embodiments may be implemented as one or more computer program products i.e., as one or more modules of computer program instructions encoded on a computer - readable medium for implementation by, or to control the operation of, a data - processing apparatus This computer - readable medium may be machine - readable A read memory device, a machine-readable memory substrate, a memory device, a substance that provides a machine-readable propagation signal The composition of, or one or more combinations of these may also be acceptable. The term "data processing device" refers to, for example, a programmable processing device, a computer, or a plurality of processing devices, or all devices, apparatuses, and machines including a computer for processing data. In addition to hardware, this device includes code for creating the execution environment of the computer program, for example, processing device firmware, protocol stack, database management system, operating system, or code constituting one or more combinations of these. The propagation signal is an artificially generated signal, for example, an electrically, optically, or electromagnetically generated signal generated by a machine, and is generated to encode information for transmission to a suitable receiving device. The propagation signal is an artificially generated signal, for example, an electrically, optically, or electromagnetically generated signal generated by a machine, and is generated to encode information for transmission to a suitable receiving device. The propagation signal is an artificially generated signal, for example, an electrically, optically, or electromagnetically generated signal generated by a machine, and is generated to encode information for transmission to a suitable receiving device.
[0224] A computer program (also referred to as a program, software, software application , script, or code) can be described in any form of programming language including a compiled language or an interpreted language, and it can be deployed in any form including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. The computer program does not necessarily correspond to a file in the file system. The program can be recorded as part of a file that holds other programs or data (for example, one or more scripts stored in a markup language document), or stored in a single file dedicated to the program, or in multiple files. The computer program does not necessarily correspond to a file in the file system. The program can be recorded as part of a file that holds other programs or data (for example, one or more scripts stored in a markup language document), or stored in a single file dedicated to the program, or in multiple files. It may be stored in a single file dedicated to the program, or in multiple files. It may be stored in an adjustment file (for example, a file that stores one or more modules, subprograms, or parts of code). One computer program can also be deployed to be executed on one computer located at one site or on multiple computers distributed across multiple sites and interconnected by a communication network. It may be stored in an adjustment file (for example, a file that stores one or more modules, subprograms, or parts of code). One computer program can also be deployed to be executed on one computer located at one site or on multiple computers distributed across multiple sites and interconnected by a communication network. It may be stored in an adjustment file (for example, a file that stores one or more modules, subprograms, or parts of code). One computer program can also be deployed to be executed on one computer located at one site or on multiple computers distributed across multiple sites and interconnected by a communication network. It may be stored in an adjustment file (for example, a file that stores one or more modules, subprograms, or parts of code). One computer program can also be deployed to be executed on one computer located at one site or on multiple computers distributed across multiple sites and interconnected by a communication network. It may be stored in an adjustment file (for example, a file that stores one or more modules, subprograms, or parts of code). One computer program can also be deployed to be executed on one computer located at one site or on multiple computers distributed across multiple sites and interconnected by a communication network.
[0225] The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits. The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits. The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits. The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits. The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits. The processes and logic flows described herein can be performed by one or more programmable processing devices that execute one or more computer programs to function by operating on input data and generating output. The processes and logic flows can also be performed by special-purpose logic circuits, such as FPGAs (Field Programmable Gate Arrays) or ASICs (Application Specific Integrated Circuits), and the apparatus can also be implemented as special-purpose logic circuits.
[0226] Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. Processing devices suitable for the execution of computer programs include, for example, both general-purpose and special-purpose microprocessing devices, as well as any one or more processing devices of any type of digital computer. Generally, a processing device receives instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processing device for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer may include one or more mass storage devices for storing data, such as magnetic, magneto-optical disks, or optical disks, or may receive data from or transfer data to these mass storage devices. It may be operably coupled to the sea urchin. However, the computer does not necessarily have such a device A computer-readable medium suitable for storing computer program instructions and data includes any form of non-volatile memory, media, and memory devices Including, for example, EPROM, EEPROM, flash memory devices, magnetic disks, such as Internal hard disks or removable disks, magneto-optical disks, and semiconductor memory devices such as CD-ROM And DVD-ROM disks. The processing device and memory may be supplemented by application-specific logic circuits or incorporated into application-specific logic circuits Including. The processing device and memory may be supplemented by application-specific logic circuits or incorporated into application-specific logic circuits It may be supplemented by specific-purpose logic circuits or incorporated into specific-purpose logic circuits It may be.
[0227] This patent specification contains many details, but these should not be construed as limiting the scope of any subject matter or the scope of the claims. Rather, they should be construed as descriptions of features that may be specific to a particular embodiment of a particular technology The specific features described in the context of separate embodiments in this patent document may be implemented in combination in one example Well. Conversely, the various features described in the context of one example may be implemented separately or in any suitable sub-combination in multiple embodiments It may be. Furthermore, the features are described above as acting in a particular combination and may initially be claimed as such Well, but one or more features from the claimed combination may, in some cases, be extracted from the combination, and the claimed combination may be directed to a sub-combination or variation of the sub-combination It may be. It may be. Well, but one or more features from the claimed combination may, in some cases, be extracted from the combination, and the claimed combination may be directed to a sub-combination or variation of the sub-combination It may be. It may be.
[0228] Similarly, although operations may be shown in a particular order in the figures, this is not intended to be limiting as to how the desired results are achieved. that such actions be performed in the particular order or sequence shown, in order to It should not be construed as requiring that all acts shown be performed. Also, the separation of the various system components in the examples described in this patent specification is It should not be understood that all embodiments require such separation.
[0229] Only certain implementations and examples are described and illustrated in this patent document. Other embodiments, extensions, and variations are possible based on the content provided.
Claims
1. A method for processing video, comprising: determining whether to use a first 1 / 2 pixel interpolation filter or a second 1 / 2 pixel interpolation filter based on whether a reference picture sampling tool is enabled for conversion between a current video block of a current picture of the video and the bitstream of the video; performing the conversion based on the determination; wherein based on the enabling of the reference picture sampling tool, the second 1 / 2 pixel interpolation filter other than the first 1 / 2 pixel interpolation filter is applied to the current video block; the second 1 / 2 pixel interpolation filter corresponds to an 8-tap filter having filter coefficients [-1, 4, -11, 40, 40, -11, 4, -1]; the first 1 / 2 pixel interpolation filter corresponds to a 6-tap filter having filter coefficients [3, 9, 20, 20, 9, 3]; a method.
2. The method according to claim 1, wherein based on the enabling of the reference picture sampling tool, the first 1 / 2 pixel interpolation filter is not applied to the current video block.
3. The method according to claim 1, wherein the 1 / 2 pixel interpolation filter index of the first 1 / 2 pixel interpolation filter is equal to 1, and the 1 / 2 pixel interpolation filter index of the second 1 / 2 pixel interpolation filter is equal to 0.
4. The method according to claim 1, wherein when the reference picture sampling tool is enabled, the resolution of the current picture is different from the resolution of the reference picture of the current video block.
5. The method according to claim 1, wherein when the first 1 / 2 pixel interpolation filter is used, the current video block is coded with at least one motion vector indicating a 1 / 2 pixel position.
6. The method according to claim 1, wherein when the first 1 / 2 pixel interpolation filter is used, the current video block is coded with at least one motion vector indicating a horizontal 1 / 2 pixel position or a vertical 1 / 2 pixel position, or both horizontal and vertical 1 / 2 pixel positions.
7. The method according to claim 1, wherein the conversion includes encoding the current video block into the bitstream.
8. The method according to claim 1, wherein the conversion includes decoding the current video block from the bitstream.
9. An apparatus for processing video data, comprising a processing device and a non-transitory memory having instructions, which, when executed by the processing device, cause the processing device to determine whether to use a first 1 / 2 pixel interpolation filter or a second 1 / 2 pixel interpolation filter based on whether a reference picture sampling tool is enabled for conversion between a current video block of a current picture of the video and the video bitstream, perform the conversion based on the determination, apply the second 1 / 2 pixel interpolation filter other than the first 1 / 2 pixel interpolation filter to the current video block based on the enabling of the reference picture sampling tool, wherein the second 1 / 2 pixel interpolation filter corresponds to an 8-tap filter having filter coefficients [-1, 4, -11, 40, 40, -11, 4, -1], wherein the first 1 / 2 pixel interpolation filter corresponds to a 6-tap filter having filter coefficients [3, 9, 20, 20, 9, 3], an apparatus.
10. The apparatus according to claim 9, wherein the first 1 / 2 pixel interpolation filter is not applied to the current video block based on the enabling of the reference picture sampling tool.
11. The apparatus according to claim 9, wherein the 1 / 2 pixel interpolation filter index of the first 1 / 2 pixel interpolation filter is equal to 1, and the 1 / 2 pixel interpolation filter index of the second 1 / 2 pixel interpolation filter is equal to 0.
12. The apparatus according to claim 9, wherein when the reference picture sampling tool is enabled, the resolution of the current picture is different from the resolution of the reference picture of the current video block.
13. A non-transitory computer-readable storage medium storing instructions, which cause a processing device to determine whether to use a first 1 / 2 pixel interpolation filter or a second 1 / 2 pixel interpolation filter based on whether a reference picture sampling tool is enabled for conversion between a current video block of a current picture of the video and the video bitstream, perform the conversion based on the determination, apply the second 1 / 2 pixel interpolation filter other than the first 1 / 2 pixel interpolation filter to the current video block based on the enabling of the reference picture sampling tool, The second 1 / 2 pixel interpolation filter corresponds to an 8-tap filter having filter coefficients [-1, 4, -11, 40, 40, -11, 4, -1], The first 1 / 2 pixel interpolation filter corresponds to a 6-tap filter having filter coefficients [3, 9, 20, 20, 9, 3], A non-transitory computer-readable storage medium.
14. A method for storing a video bitstream, comprising: Determining whether to use a first 1 / 2 pixel interpolation filter or a second 1 / 2 pixel interpolation filter based on whether a reference picture sampling tool is enabled for a current video block of a current picture of the video; Generating the bitstream based on the determination; Storing the bitstream in a non-transitory computer-readable recording medium, Based on the enabling of the reference picture sampling tool, the second 1 / 2 pixel interpolation filter other than the first 1 / 2 pixel interpolation filter is applied to the current video block, The second 1 / 2 pixel interpolation filter corresponds to an 8-tap filter having filter coefficients [-1, 4, -11, 40, 40, -11, 4, -1], The first 1 / 2 pixel interpolation filter corresponds to a 6-tap filter having filter coefficients [3, 9, 20, 20, 9, 3], Method.
Citation Information
Patent Citations
Motion compensation apparatus having at least one processing circuit shared by normal mode and resized reference frame mode and related motion compensation method
US20160080771A1