Motion candidate list construction for intra block copy mode

By constructing the intra-block copy (IBC) motion candidate list and updating the IBC Merge list, the problem of inefficient video encoding and decoding in the prior art is solved, and efficient processing and bandwidth management of high-resolution videos are realized.

CN113454996BActive Publication Date: 2025-02-18DOUYIN VISION CO LTD +1
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080013764.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2019-02-17
Filing Date
2020-02-17
Publication Date
2025-02-18
Estimated Expiration
2040-02-17

AI Technical Summary

Technical Problem

Existing video compression technologies are difficult to effectively manage digital video bandwidth requirements, especially in high-resolution video processing, resulting in ineffective encoding and decoding.

Method used

By constructing an intra-block copy (IBC) motion candidate list, efficient conversion between video blocks and coded representations is achieved, and Merge candidates are added using conditions to update the IBC Merge list.

Benefits of technology

Improves the efficiency of video encoding and decoding and reduces the bandwidth requirement, especially when dealing with high-resolution video.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113454996B_ABST
    Figure CN113454996B_ABST
Patent Text Reader

Abstract

A method for video processing is provided, comprising: performing conversion between a current video block of a video and a codec representation of the video using a candidate intra block copy (IBC) motion candidate list; and making a decision on whether to update the IBC motion candidate list by adding motion candidates based on conditions.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application is intended to timely claim the priority and benefits of International Patent Application No. PCT / CN2019 / 075302 filed on February 17, 2019, under applicable patent law and / or under the rules of the Paris Convention. The entire disclosure of the foregoing application is incorporated by reference as part of the disclosure of this application. Technical Field

[0003] This patent document relates to video processing technology, equipment and systems. Background Art

[0004] Despite advances in video compression technology, digital video still accounts for the largest use of bandwidth on the Internet and other digital communications networks. As the number of networked user devices capable of receiving and displaying video increases, bandwidth demand for digital video usage is expected to continue to grow. Summary of the invention

[0005] Devices, systems and methods related to digital video processing, and in particular, to constructing a motion candidate list for intra block copy mode are described. The described methods can be applied to existing video processing standards (e.g., High Efficiency Video Coding (HEVC)) and future video processing standards or video processing hardware / software such as video codecs.

[0006] In one representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: using an intra-block copy (IBC) Merge candidate list, performing a conversion between a current video block of a video and a codec representation of the video; and making a decision on whether to update the IBC Merge list by adding Merge candidates based on conditions.

[0007] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: maintaining an intra-block copy (IBC) Merge list to which Merge candidates are added according to a rule for conversion between a current video block of a video and a codec representation of the video; and performing the conversion using the IBC Merge list.

[0008] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: maintaining an intra-block copy (IBC) Merge list to which a special IBC Merge candidate is added for conversion between a current video block of a video and a codec representation of the video; and performing the conversion using the IBC Merge list, wherein the special IBC Merge candidate is selected by the current video block, and a prediction block of the current video block is derived based on one or more default values ​​without using motion compensation.

[0009] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: during a conversion between a current video block and a codec representation of the current video block, constructing an intra-block copy (IBC) motion candidate list, wherein inserting motion candidates into the IBC motion candidate list is limited by size; and performing the conversion using the IBC motion candidate list.

[0010] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: constructing an intra-block copy (IBC) motion candidate list according to a construction rule for conversion between a current video block of a video and a codec representation of the video; and performing the conversion based on the IBC motion candidate list, wherein the construction rule specifies that a spatial neighboring block at a different relative position than a spatial neighboring block to be checked for addition to the IBC motion candidate list is checked for addition to a regular motion candidate list.

[0011] In another representative aspect, the disclosed technology can be used to provide a method for video processing, the method comprising: constructing an intra-block copy (IBC) motion candidate list based on color component identifications of the current video block for conversion between a current video block of a video and a codec representation of the video; and performing the conversion based on the IBC motion candidate list.

[0012] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: determining whether to enable an intra-block copy (IBC) mode for conversion between a current video block of a video and a codec representation of the video based on a rule regarding block size, wherein in the IBC mode, a prediction block of the current video block is calculated based on a block vector in a picture including the current video block; and performing the conversion based on the determination.

[0013] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: for conversion between a current video block of a video and a codec representation of the video, determining based on a position of the current video block whether to prohibit the use of an intra-block copy (IBC) mode, wherein in the IBC mode, a prediction block of the current video block is calculated based on a block vector in a picture including the current video block; and performing the conversion based on the determination.

[0014] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: performing a conversion between a current video block of a video region of a video and a codec representation of the video, wherein a rule controlling construction or updating of an intra block copy (IBC) mode includes an indication in the codec representation at a video region level, and wherein the intra block copy mode includes generating a prediction block using at least a block vector pointing to a picture including the current video block.

[0015] In another representative aspect, the disclosed technology can be used to provide a method for video processing. The method includes: for conversion between a current video block of a video and a codec representation of the video, constructing an intra-block copy (IBC) motion candidate list, the list storing one or more candidates for representing the current video block and pointing to a picture containing the current video block; and performing the conversion using the IBC motion candidate list, wherein the codec representation includes a first field for deriving a maximum size of the IBC motion candidate list and a second field different from the first field for deriving a maximum size of a conventional motion candidate list.

[0016] In yet another representative aspect, the above method is embodied in the form of processor executable code and stored in a computer readable program medium.

[0017] In yet another representative aspect, a device configured or operable to perform the above method is disclosed. The device may include a processor programmed to implement the method.

[0018] In yet another representative aspect, a video decoder device may implement a method as described herein.

[0019] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the description and the claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0020] Figure 1 An example of constructing a Merge candidate list is shown.

[0021] Figure 2 Examples of locations of spatial candidates are shown.

[0022] Figure 3An example of candidate pairs for which redundancy check of spatial merge candidates is performed is shown.

[0023] Figure 4A and Figure 4B An example of the location of the second prediction unit (PU) based on the size and shape of the current block is shown.

[0024] Figure 5 An example of motion vector scaling of a temporal merge candidate is shown.

[0025] Figure 6 An example of candidate positions of time-domain Merge candidates is shown.

[0026] Figure 7 An example of generating a combined bi-predictive Merge candidate is shown.

[0027] Figure 8 An example of constructing motion vector prediction candidates is shown.

[0028] Fig. 9 An example of motion vector scaling of spatial motion vector candidates is shown.

[0029] Fig.10 An example of an encoding and decoding flow of a history-based motion vector prediction (HMVP) candidate is shown.

[0030] Fig.11 An example of updating a table in the HMVP method is shown.

[0031] Fig.12 An example of intra block copy is shown.

[0032] Fig.13 Different examples of allowed reference areas are shown.

[0033] FIG. 14A to FIG. 14C A flow chart of an example method for video processing is shown.

[0034] FIG. 15A to FIG. 15C A flow chart of an example method for video processing is shown.

[0035] FIG. 16A to FIG. 16C A flow chart of an example method for video processing is shown.

[0036] Fig.17 A flow chart of an example method for video processing is shown.

[0037] Fig.18A and Fig.18B A block diagram illustrating an example of a hardware platform for implementing the visual media decoding or visual media encoding techniques described in this document is shown. DETAILED DESCRIPTION

[0038] Due to the growing demand for higher resolution video, video processing methods and techniques are ubiquitous in modern technology. Video codecs typically include electronic circuits or software that compress or decompress digital video, and are constantly being improved to provide higher codec efficiency. Video codecs convert uncompressed video to a compressed format and vice versa. There is a complex relationship between video quality, the amount of data used to represent the video (determined by the bit rate), the complexity of the encoding and decoding algorithms, the sensitivity to data loss and errors, the ease of editing, random access, and end-to-end delay (latency). The compression format generally conforms to a standard video compression specification, such as the High Efficiency Video Codec (HEVC) standard (also known as H.265 or MPEG-H Part 2), the upcoming Versatile Video Codec standard, or other current and / or future video codec standards.

[0039] Embodiments of the disclosed technology can be applied to existing video codec standards (e.g., HEVC, H.265) and future standards to improve compression performance. Section headings are used in this document to improve the readability of the description, but do not in any way limit the discussion or embodiments (and / or implementation methods) to only the corresponding sections.

[0040] 1 Example of inter-frame prediction in HEVC / H.265

[0041] Video codec standards have improved significantly over the years and now provide, in part, high codec efficiency and support for higher resolutions. The latest standards such as HEVC and H.265 are based on a hybrid video codec structure that utilizes temporal prediction plus transform coding.

[0042] 1.1 Example of prediction mode

[0043] Each inter-predicted PU (prediction unit) has motion parameters for one or two reference picture lists. In some embodiments, the motion parameters include motion vectors and reference picture indexes. In other embodiments, inter_pred_idc signaling may also be used to notify the use of one of the two reference picture lists. In yet other embodiments, the motion vector may be explicitly encoded as a delta relative to the predicted value.

[0044] When a CU is encoded or decoded in skip mode, a PU is associated with the CU and there are no significant residual coefficients, no coded motion vector deviations or reference picture indices. A Merge mode is defined whereby the motion parameters of the current PU are obtained from neighboring PUs including spatial and temporal candidates. Merge mode can be applied to any inter-predicted PU, not just for skip mode. An alternative to Merge mode is explicit transmission of motion parameters, where each PU explicitly signals the motion vectors, the corresponding reference picture index for each reference picture list, and the use of the reference picture list.

[0045] When signaling indicates that one of the two reference picture lists is to be used, a PU is generated from a block of samples. This is called "unidirectional prediction". Unidirectional prediction is available for P slices and B slices.

[0046] When signaling indicates that both reference picture lists are to be used, a PU is generated from two blocks of samples. This is called "bi-prediction". Bi-prediction is only available for B slices.

[0047] Reference Image List

[0048] In HEVC, the term inter prediction is used to refer to predictions derived from data elements (e.g., sample values ​​or motion vectors) of reference pictures other than the currently decoded picture. As in H.264 / AVC, a picture can be predicted from multiple reference pictures. Reference pictures used for inter prediction are organized in one or more reference picture lists. A reference index identifies which reference picture in the list should be used to create the prediction signal.

[0049] A single reference picture list (list 0) is used for P slices, and two reference picture lists (list 0 and list 1) are used for B slices. It should be noted that the reference pictures included in lists 0 / 1 can be pictures from both the past and the future in terms of capture / display order.

[0050] 1.1.1 Example of constructing a candidate for Merge mode

[0051] When predicting a PU using Merge mode, the index pointing to the entry in the Merge candidate list is parsed from the bitstream and used to retrieve the motion information. The construction of this list can be summarized in the following sequence of steps:

[0052] Step 1: Initial candidate derivation

[0053] Step 1.1: Spatial Candidate Derivation

[0054] Step 1.2: Redundancy check of spatial candidates

[0055] Step 1.3: Time Domain Candidate Derivation

[0056] Step 2: Additional candidate insertions

[0057] Step 2.1: Create bidirectional prediction candidates

[0058] Step 2.2: Insert zero motion candidates

[0059] Figure 1 An example of constructing a Merge candidate list based on the above sequence of steps is shown. For spatial Merge candidate derivation, up to four Merge candidates are selected from candidates located at five different positions. For time domain Merge candidate derivation, up to one Merge candidate is selected from two candidates. Since a constant number of candidates for each PU is assumed at the decoder, additional candidates are generated when the number of candidates does not reach the maximum number of Merge candidates (MaxNumMergeCand) signaled in the slice header. Since the number of candidates is constant, the index of the best Merge candidate is encoded using truncated unary binarization (TU). If the size of the CU is equal to 8, all PUs of the current CU share a single Merge candidate list, which is the same as the Merge candidate list of the 2N×2N prediction unit.

[0060] 1.1.2 Constructing Spatial Merge Candidates

[0061] In the derivation of spatial merge candidates, Figure 2 Up to four Merge candidates are selected from the candidates at the positions depicted in . The order of derivation is A1, B1, B0, A0, and B2. Position B2 is considered only when any PU at position A1, B1, B0, A0 is unavailable (for example, because it belongs to another stripe or slice) or is intra-coded. After adding the candidate at position A1, a redundancy check is performed on the addition of the remaining candidates, which ensures that candidates with the same motion information are excluded from the list, thereby improving coding efficiency.

[0062] To reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only Figure 3 The pairs linked by arrows in , and candidates are added to the list only if the corresponding candidates used for redundancy checking do not have the same motion information. Another source of repeated motion information is a "second PU" associated with a partition other than 2N×2N. As an example, Figure 4A and Figure 4BThe second PU in the N×2N and 2N×N cases is depicted, respectively. When the current PU is partitioned into N×2N, the candidate at position A1 is not considered for list construction. In some embodiments, adding this candidate may result in two prediction units having the same motion information, which is redundant for having only one PU in the codec unit. Similarly, when the current PU is partitioned into 2N×N, position B1 is not considered.

[0063] 1.1.3 Constructing Time Domain Merge Candidates

[0064] In this step, only one candidate is added to the list. Specifically, in the derivation of the temporal Merge candidate, the scaled motion vector is derived based on the co-located PU of the picture with the smallest POC (Picture Order Count) difference with the current picture in a given reference picture list. The reference picture list to be used for derivation of the co-located PU is explicitly signaled in the slice header.

[0065] Figure 5 An example of deriving a scaled motion vector for a temporal Merge candidate (as a dotted line) is shown, which is scaled from the motion vector of the collocated PU using the POC distances tb and td, where 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 collocated picture and the collocated picture. The reference picture index of the temporal Merge candidate is set equal to zero. For B slices, two motion vectors (one for reference picture list 0 and the other for reference picture list 1) are obtained and combined to generate a bidirectional prediction Merge candidate.

[0066] In the collocated PU(Y) belonging to the reference frame, the position of the temporal candidate is selected between candidates C0 and C1, such as Figure 6 If the PU at position C0 is not available, is intra-coded, or is outside the current CTU, then position C1 is used. Otherwise, position C0 is used in the derivation of the time-domain Merge candidate.

[0067] 1.1.4 Constructing additional types of merge candidates

[0068] In addition to the space-time Merge candidates, there are two additional types of Merge candidates: combined bidirectional prediction Merge candidates and zero Merge candidates. Combined bidirectional prediction Merge candidates are generated by utilizing space-time Merge candidates. Combined bidirectional prediction Merge candidates are only used for B slices. Combined bidirectional prediction candidates are generated by combining the first reference picture list motion parameters of an initial candidate with the second reference picture list motion parameters of another initial candidate. If the two tuples provide different motion hypotheses, they will form a new bidirectional prediction candidate.

[0069] Figure 7 An example of this process is shown where two candidates in the original list (710, on the left) (having either mvL0 and refIdxL0 or mvL1 and refIdxL1) are used to create a combined bi-predictive Merge candidate that is added to the final list (720, on the right).

[0070] Zero motion candidates are inserted to fill the remaining entries in the Merge candidate list and thus reach the MaxNumMergeCand capacity. These candidates have zero spatial displacement and a reference picture index that starts at zero and increases each time a new zero motion candidate is added to the list. The number of reference frames used by these candidates is 1 and 2 for unidirectional prediction and bidirectional prediction, respectively. In some embodiments, no redundancy check is performed on these candidates.

[0071] 1.2 Embodiment of Advanced Motion Vector Prediction (AMVP)

[0072] AMVP exploits the spatio-temporal correlation of motion vectors with neighboring PUs for explicit transmission of motion parameters. It builds a motion vector candidate list by first checking the availability of neighboring PU positions in the left and above time domain, removing redundant candidates and adding zero vectors to make the candidate list a constant length. The encoder can then select the best prediction value from the candidate list and send the corresponding index indicating the selected candidate. Similar to Merge index signaling, the index of the best motion vector candidate is encoded using truncated unary. In this case, the maximum value to be encoded is 2 (see Figure 8 ). In the following sections, details about the derivation process of motion vector prediction candidates will be provided.

[0073] 1.2.1 Example of deriving AMVP candidates

[0074] Figure 8 The derivation process of motion vector prediction candidates is outlined and can be implemented for each reference picture list with refidx as input.

[0075] In motion vector prediction, two types of motion vector candidates are considered: spatial motion vector candidates and temporal motion vector candidates. For spatial motion vector candidate derivation, the final result is based on the location as previously described in Figure 2 Two motion vector candidates are derived based on the motion vectors of each PU at the five different positions shown in FIG.

[0076] For temporal motion vector candidate derivation, one motion vector candidate is selected from two candidates derived based on two different collocated positions. After generating the first spatio-temporal candidate list, duplicate motion vector candidates in the list are removed. If the number of possible candidates is greater than two, motion vector candidates whose reference picture index within the associated reference picture list is greater than 1 are removed from the list. If the number of spatio-temporal motion vector candidates is less than two, an additional zero motion vector candidate is added to the list.

[0077] 1.2.2 Constructing Spatial Motion Vector Candidates

[0078] In the derivation of spatial motion vector candidates, we first select the candidate from the position as previously described in Figure 2 Consider up to two candidates out of the five possible candidates derived in the PU at the position shown in , and those positions are the same as the positions of the motion Merge. The derivation order on the left side of the current PU is defined as A0, A1, and scaled A0, scaled A1. The derivation order on the upper side of the current PU is defined as B0, B1, B2, scaled B0, scaled B1, scaled B2. Therefore, for each side, there are four cases that can be used as motion vector candidates, two of which do not require spatial scaling, and two use spatial scaling. The four different cases are summarized as follows:

[0079] --No airspace scaling

[0080] (1) Same reference picture list and same reference picture index (same POC)

[0081] (2) Different reference picture lists, but the same reference picture (same POC)

[0082] --Airspace scaling

[0083] (3) Same reference picture list, but different reference pictures (different POC)

[0084] (4) Different reference picture lists and different reference pictures (different POCs)

[0085] First check the non-spatial scaling case, then the case where spatial scaling is allowed. When the POC is different between the reference picture of the neighboring PU and the reference picture of the current PU, spatial scaling is considered regardless of the reference picture list. If all PUs of the left candidate are unavailable or intra-coded, scaling for the upper motion vector is allowed to help parallel derivation of the left and upper MV candidates. Otherwise, spatial scaling is not allowed for the upper motion vector.

[0086] like Fig. 9 As shown in the example in , for the spatial scaling case, the motion vectors of neighboring PUs are scaled in a similar way to temporal scaling. One difference is that the reference picture list and the index of the current PU are given as input; the actual scaling process is the same as that of temporal scaling.

[0087] 1.2.3 Constructing temporal motion vector candidates

[0088] Except for the reference picture index derivation, all the processes used to derive the temporal Merge candidate are the same as those used to derive the spatial motion vector candidate (e.g. Figure 6 In some embodiments, the reference picture index is signaled to the decoder.

[0089] 2. Example of inter-frame prediction method in VVC

[0090] There are several new codec tools for inter-frame prediction improvements, such as Adaptive Motion Vector Difference Resolution (AMVR) for signaling MVD, affine prediction mode, triangle prediction mode (TPM), advanced TMVP (ATMVP, also known as SbTMVP), generalized bidirectional prediction (GBI), and bidirectional optical flow (BIO).

[0091] In VVC, a quadtree / binarytree / multitree (QT / BT / TT) structure is used to divide images into square or rectangular blocks.

[0092] In addition to QT / BT / TT, VVC also uses a separate tree (also known as a dual codec tree) for I-frames. Using the separate tree, the codec block structure is signaled separately for the luminance and chrominance components.

[0093] 2.1 Pairwise Average Candidates

[0094] The pairwise average candidate is generated by averaging the predetermined candidate pairs in the current Merge candidate list, and the predetermined candidate pairs are defined as {(0,1), (0,2), (1,2), (0,3), (1,3), (2,3)}, where these numbers represent the Merge index of the Merge candidate list. The average motion vector is calculated separately for each reference list. If two motion vectors are available in one list, they are averaged even if they point to different reference pictures; if only one motion vector is available, the motion vector is used directly; if no motion vector is available, the list is kept invalid. The pairwise average candidate replaces the combined candidate in the HEVC standard.

[0095] The complexity analysis of the pairwise average candidates is summarized in Table 1. For the worst case of additional computation for averaging (last column in Table 1), 4 additions and 4 shifts are required per pair (MVx and MVy are in L0 and L1), and 4 reference index comparisons are required per pair (refIdx0 is valid in L0 and L1, and refIdx1 is valid). There are 6 pairs, with 24 additions, 24 shifts, and 24 reference index comparisons. The combined candidates in the HEVC standard use 2 reference index comparisons per pair (refIdx0 is valid in L0, and refIdx1 is valid in L1), and there are 12 pairs, with 24 reference index comparisons.

[0096] Table 1: Operational analysis of pairwise average candidates

[0097]

[0098] 2.2 History-based Motion Vector Prediction (HMVP)

[0099] A history-based MVP (HMVP) method is proposed, where the HMVP candidate is defined as the motion information of the previous coded block. During the encoding / decoding process, a table with multiple HMVP candidates is maintained. When a new slice is encountered, the table is cleared. Whenever there is an inter-frame coded block, the associated motion information is added to the last entry of the table as a new HMVP candidate. The entire encoding and decoding process is as follows Fig.10 shown.

[0100] In one example, the table size is set to L (eg, L=16 or 6, or 44), which indicates that a maximum of L HMVP candidates can be added to the table.

[0101] (1) In one embodiment, if there are more than L HMVP candidates from the previously coded block, a First-In-First-Out (FIFO) rule is applied so that the table always contains the latest L motion candidates from the previously coded block. Fig.11 An example of applying the FIFO rule to remove HMVP candidates and add new candidates to the table used in the proposed method is depicted.

[0102] (2) In another embodiment, whenever a new motion candidate is added (such as the current block is inter-coded and in non-affine mode), a redundancy check process is first applied to identify whether there is the same or similar motion candidate in the LUT.

[0103] 3. Intra-frame block copy

[0104] Intra-frame block copy (IBC), also known as current picture reference, has been adopted in HEVC Screen Content Coding extension (HEVC-SCC) and the current VVC test model (VTM-3.0). IBC extends the concept of motion compensation from inter-frame coding to intra-frame coding. Fig.12 As indicated, when IBC is applied, the current block is predicted by a reference block in the same picture. The samples in the reference block must have been reconstructed before the current block is encoded or decoded. Although IBC is not efficient for most camera-captured sequences, it shows significant codec gains for screen content. The reason is that there are many repeated patterns in screen content pictures, such as icons and text characters. IBC can effectively remove the redundancy between these repeated patterns. In HEVC-SCC, IBC can be applied if the inter-frame codec unit (CU) selects the current picture as its reference picture. In this case, MV is renamed as Block Vector (BV), and BV always has integer pixel precision. For compatibility with the main profile HEVC, the current picture is marked as a "long-term" reference picture in the decoded picture buffer (DPB). It should be noted that, similarly, in the multi-view / 3D video codec standard, inter-view reference pictures are also marked as "long-term" reference pictures.

[0105] Once the BV has found its reference block, a prediction can be generated by copying the reference block. The residual can be obtained by subtracting the reference pixels from the original signal. Transforms and quantization can then be applied as in other codec modes.

[0106] However, when the reference block is outside the picture, or overlaps with the current block, or is outside the reconstruction area, or is outside the valid area subject to certain constraints, some or all pixel values ​​are undefined. Basically, there are two solutions to deal with this problem. One is to prohibit this situation, for example, bitstream conformance. The other is to apply padding to those undefined pixel values. The following subsections describe these solutions in detail.

[0107] 4. IBC in HEVC Screen Content Codec Extension

[0108] In the screen content codec extension of HEVC, when a block uses the current picture as a reference, it should ensure that the entire reference block is within the available reconstruction area, as shown in the following specification text:

[0109] The variables offsetX and offsetY are derived as follows:

[0110] offsetX=(ChromaArrayType==0)? 0:(mvCLX[0]&0x7?2:0) (8-104)

[0111] offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x7?2:0) (8-105) The bitstream consistency requirement is: when the reference picture is the current picture, the luminance motion vector mvLX shall comply with the following constraints:

[0112] - When the derivation process for z-scan order block availability as specified in clause 6.4.1 is called with (xCurr, yCurr) set equal to (xCb, yCb) and the adjacent luminance position (xNbY, yNbY) set equal to (xPb+(mvLX[0]>>2)-offsetX, yPb+(mvLX[1]>>2)-offsetY) as input, the output shall be equal to TRUE.

[0113] - When the derivation process of z-scan order block availability as specified in clause 6.4.1 is called with (xCurr, yCurr) set equal to (xCb, yCb) and the adjacent luminance position (xNbY, yNbY) set equal to (xPb+(mvLX[0]>>2)+nPbW-1+offsetX, yPb+(mvLX[1]>>2)+nPbH-1+offsetY) as input, the output shall be equal to true.

[0114] -One or both of the following conditions should be true:

[0115] The value of -(mvLX[0]>>2)+nPbW+xB1+offsetX is less than or equal to 0.

[0116] The value of -(mvLX[1]>>2)+nPbH+yB1+offsetY is less than or equal to 0.

[0117] - The following conditions should be true:

[0118] (xPb+(mvLX[0]>>2)+nPbSw–1+offsetX) / CtbSizeY-xCb / CtbSizeY<=yCb / CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh–1+offsetY) / CtbSizeY

[0119] (8-106)

[0120] Therefore, it will not happen that the reference block overlaps with the current block or that the reference block is outside the picture. No padding of the reference or prediction blocks is required.

[0121] 5. IBC in VVC test model

[0122] In the current VVC test model (ie, VTM-3.0 design), the entire reference block should have a current coding tree unit (CTU) and not overlap with the current block. Therefore, there is no need to fill the reference or prediction block.

[0123] 5.1IBC Merge Mode

[0124] In IBC Merge mode, the indexes pointing to the entries in the IBC Merge candidate list are parsed from the bitstream. The construction of the IBC Merge list can be summarized according to the following sequence of steps:

[0125] Step 1: Derivation of Spatial Candidates

[0126] Step 2: Insertion of HMVP candidates

[0127] Step 3: Insertion of pairwise average candidates

[0128] In the derivation of spatial merge candidates, Figure 2Up to four Merge candidates are selected from the candidates at the positions depicted in . The order of derivation is A1, B1, B0, A0 and B2. Position B2 is considered only when any PU at position A1, B1, B0, A0 is not available (for example, because it belongs to another stripe or slice) or is encoded with IBC. After adding the candidate at position A1, a redundancy check is performed on the insertion of the remaining candidates, which ensures that candidates with the same motion information are excluded from the list, thereby improving encoding and decoding efficiency. In order to reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only the possible pairs of candidates are considered. Figure 3 The pairs are linked by arrows in , and a candidate is added to the list only if the corresponding candidate for redundancy check does not have the same motion information.

[0129] After the insertion of the spatial domain candidates, if the IBC Merge list size is still less than the maximum IBC Merge list size, the IBC candidates from the HMVP table can be inserted. A redundancy check is performed when inserting HMVP candidates.

[0130] Finally, the pairwise average candidates are inserted into the IBC Merge list.

[0131] When the reference block identified by the Merge candidate is outside the picture, or overlaps with the current block, or is outside the reconstruction area, or is outside the valid area subject to certain constraints, the Merge candidate is called an invalid Merge candidate.

[0132] Note that invalid merge candidates can be inserted into the IBC Merge List.

[0133] 5.2 IBC AMVP Model

[0134] In IBC AMVP mode, the AMVP index pointing to the entry in the IBC AMVP list is parsed from the bitstream. The construction of the IBC AMVP list can be summarized according to the following sequence of steps:

[0135] Step 1: Derivation of Spatial Candidates

[0136] Check A0, A1 until a usable candidate is found.

[0137] Check B0, B1, B2 until a usable candidate is found.

[0138] Step 2: Insertion of HMVP candidates

[0139] οStep 3: Insertion of zero candidates

[0140] After the insertion of the spatial candidates, if the IBC AMVP list size is still less than the maximum IBC AMVP list size, the IBC candidates from the HMVP table may be inserted.

[0141] Finally, the zero candidate is inserted into the IBC AMVP list.

[0142] 6. Disadvantages of existing implementation methods

[0143] Assume that the maximum IBC Merge list size is MaxMrgListSizeIbc, the maximum IBC AMVP list size is MaxAmvpListSizeIbc, and the maximum Merge list size of the regular Merge mode is MaxMrgListSize.

[0144] The current IBC Merge mode may have the following problems:

[0145] ο Even if an invalid Merge candidate will never be selected, it can be inserted into the IBC Merge List. This is inefficient because more bits may be required to signal the Merge Index.

[0146] o The number of available IBC Merge candidates in the IBC Merge list may be less than MaxMrgListSizeIbc. This is inefficient because the IBC Merge index is encoded and decoded with truncated unary codes assuming that the maximum length of the code is MaxMrgListSizeIbc-1.

[0147] 7. Example Method for Constructing a Motion Candidate List for Intra Block Copy

[0148] Embodiments of the currently disclosed technology overcome the shortcomings of existing implementations, thereby providing a video codec with higher codec efficiency. Based on the disclosed technology, constructing a motion candidate list for intra-frame block copy can enhance existing video codec standards and future video codec standards, as described in the following examples described for various implementations. The examples of the disclosed technology provided below explain the general concepts and are not meant to be interpreted as limiting. In the examples, unless explicitly indicated to the contrary, the various features described in these examples can be combined.

[0149] Assume that the video block has height H and width W.

[0150] 1. Some IBC Merge candidates may be considered “unavailable” and may not be inserted into the IBC Merge list.

[0151] a. In one example, if the reference block identified by the Merge candidate overlaps with the current block, the Merge candidate can be considered "unavailable".

[0152] b. In one example, if some samples of the reference block identified by the Merge candidate are outside the picture, the Merge candidate may be considered “unavailable”.

[0153] c. In one example, if all samples of the reference block identified by the Merge candidate are outside the picture, the Merge candidate can be considered "unavailable".

[0154] d. In one example, if some samples of the reference block identified by the Merge candidate are outside the reconstruction area, the Merge candidate can be considered “unavailable”.

[0155] e. In one example, if all samples of the reference block identified by the Merge candidate are outside the reconstruction area, the Merge candidate can be considered "unavailable".

[0156] f. In one example, if some samples of the reference block identified by the Merge candidate are outside the valid area subject to certain constraints, the Merge candidate may be considered “unavailable”.

[0157] g. In one example, if all samples of the reference block identified by the Merge candidate are outside the valid area subject to certain constraints, the Merge candidate can be considered "unavailable".

[0158] h. In one example, the constraint may be that the reference sample cannot come from the upper CTU row or the area above the upper CTU row.

[0159] i. In one example, the constraint condition may be that the reference sample in the reference block cannot be in the current block.

[0160] j. In one example, the constraint may be that the reference samples can only come from the current CTU row.

[0161] k. In one example, the constraint may be that the reference sample cannot come from the left CTU.

[0162] 1. In one example, the constraint may be that the reference samples can only come from the current CTU.

[0163] m. In one example, the constraint may be that the reference samples can only come from a predetermined area.

[0164] i. The region may depend on the location of the current block.

[0165] ii. The area may depend on the size of the current block.

[0166] iii. The region may depend on the position of the M×N block containing the current block, such as M=N=128 or M=N=64.

[0167] iv. The area may depend on the resolution of the image.

[0168] v. The region may depend on the encoding / decoding order of blocks within a CTU or M×N rectangle.

[0169] vi. In one example, the region may include samples in the left CTU and samples in the current CTU.

[0170] vii. In one example, the region may include samples in the left CTU or / and samples in the upper CTU and samples in the current CTU.

[0171] viii. In one example, a slice / strip / picture may be divided into N×M (N>0 and M>0, e.g., N=M=128) rectangles, and for a block in the N×M rectangle, a region may include samples in the left N×M rectangle and samples in the current N×M rectangle.

[0172] 1. Alternatively, the region may include samples in the left N×M rectangle or / and samples in the upper N×M rectangle as well as samples in the current N×M rectangle.

[0173] ix. In one example, a CTU or / and a N×M rectangle may be divided into K (K>=1, for example, K=4) sub-regions (for example, the sub-region size is 64×64), and the region may depend on the position of the sub-region or / and the encoding / decoding order. Fig.13 Shown in.

[0174] 1. In one example, the sub-regions may have the same size.

[0175] 2. In one example, different sub-regions may have different sizes.

[0176] n. In one example, spatial candidates from certain spatially adjacent / non-neighboring blocks may be considered “unavailable”.

[0177] i. Alternatively, the spatial domain candidates may always be inserted into the IBC Merge list.

[0178] o. In one example, certain HMVP candidates may be considered “unavailable”.

[0179] i. Alternatively, HMVP candidates may always be inserted into the IBC Merge list.

[0180] p. In one example, some pairwise candidates may be considered “unavailable”.

[0181] i. Alternatively, pairwise candidates may always be inserted into the IBC Merge list.

[0182] q. In one example, if a candidate is determined to be "unavailable", it is not put into the IBC Merge list.

[0183] i. In an alternative example, if a candidate is determined to be "unusable", it is still placed in the IBC Merge list, but such a candidate cannot be selected in the conforming bitstream.

[0184] r. In one example, if all candidates are determined to be "unavailable", the IBC Merge mode is not signaled.

[0185] s. In an alternative example, if all candidates are determined to be "unusable", IBC Merge mode may still be signaled, but IBC Merge mode may not be selected in the conforming bitstream.

[0186] 2. Additional IBC Merge candidates may be inserted into the IBC Merge list.

[0187] a. In one example, a default Merge candidate (such as derived from the block size) may be inserted into the IBCMerge list.

[0188] i. For example, (-W,-H) can be inserted.

[0189] ii. For example, (-W,-3*H / 2) can be inserted.

[0190] iii. For example, (-3*W / 2,-H) can be inserted.

[0191] iv. For example, (-3*W / 2,-3*H / 2) can be inserted.

[0192] v. For example, (-2*W,0) can be inserted.

[0193] vi. For example, (0,-2*H) can be inserted.

[0194] vii. For example, (-W,0) can be inserted.

[0195] viii. For example, (0, -H) can be inserted.

[0196] ix. The default Merge candidate may depend on the location and / or size of the block.

[0197] x. The order of inserting default merge candidates may depend on the location and / or size of the chunks.

[0198] xi. The default Merge candidate may be signaled from the encoder to the decoder (such as with VPS / SPS / PPS / picture header / slice header / slice group header, etc.).

[0199] b. One or more offset candidates may be derived from the selected available IBC Merge candidate (such as by adding some offsets to the motion vector).

[0200] i. In one example, the selected available IBC Merge candidates may include those from certain spatially adjacent / non-adjacent blocks (such as only from A1; or Figure 2 One or more IBC Merge candidates derived from A1 and B1).

[0201] ii. Alternatively, the selected available IBC Merge candidates may include one or more HMVP candidates derived from the HMVP table.

[0202] iii. Alternatively, the selected available IBC Merge candidates may include one or more pair-wise Merge candidates.

[0203] iv. Alternatively, in addition, "unusable" Merge candidates (eg, those defined in bullet 1) can be used to generate new Merge candidates.

[0204] 1. Alternatively, “unavailable” additional IBC Merge candidates may not be allowed.

[0205] v. Alternatively, before adding these offset candidates, the selected available IBC Merge candidates may be defined as all available IBC candidates.

[0206] 1. Alternatively, before adding these offset candidates, the selected available IBC Merge candidates can be defined as the first K (K>=0) IBC candidates. The variable K is not greater than the number of available IBC candidates.

[0207] vi. In one example, the value of (OffsetX i ,OffsetY i )(1<=i<=N1)

[0208] The N1 (N1>=0) MV offsets represented are added to the spatial IBC Merge candidate to generate a new Merge candidate.

[0209] 1. In one example, N1 may be different for different spatial domain Merge candidates.

[0210] vii. In an example, N2 (N2>=0) MV offsets may be added to the HMVPMerge candidate to generate a new Merge candidate.

[0211] 1. In one example, N2 may be different for different HMVP Merge candidates.

[0212] viii. In one example, N3 (N3>=0) MV offsets may be added to the paired Merge candidates to generate new Merge candidates.

[0213] 1. In one example, N 3 may be different for different pairs of Merge candidates.

[0214] ix. In one example, N4 (N4>=0) MV offsets may be added to currently available Merge candidates to generate new Merge candidates.

[0215] 1. In one example, N4 may be different for different Merge candidates.

[0216] 2. For example, N4 can be greater than 0 only for the first available Merge candidate.

[0217] The x.MV offset may depend on the Merge candidate or / and the position or / and size of the block in the CTU or M×N rectangle or / and the encoding / decoding order of the blocks.

[0218] c. Additional IBC Merge candidates may be inserted after some or all pairwise Merge candidates.

[0219] i. Alternatively, additional IBC Merge candidates may be interleaved with certain pairwise Merge candidates or / and default Merge candidates.

[0220] d. Additional IBC Merge candidates may be inserted after some or all of the default Merge candidates.

[0221] i. Alternatively, additional IBC Merge candidates may be inserted before some or all of the default Merge candidates.

[0222] ii. Alternatively, additional IBC Merge candidates may be interleaved with the default Merge candidates.

[0223] e. Additional IBC Merge candidates may be inserted after checking a certain spatial neighboring block (eg, B0).

[0224] i. Alternatively, additional IBC Merge candidates may be interleaved with the remaining spatial neighbor candidates in addition.

[0225] f. Additional IBC Merge candidates may be inserted after some or all spatial Merge candidates.

[0226] i. Alternatively, in addition, an additional IBCMerge candidate is inserted before the HMVP Merge candidate.

[0227] ii. Alternatively, additional IBC Merge candidates may be inserted after the spatial Merge candidate and interleaved with the HMVP Merge candidate and / or the pairwise Merge candidate.

[0228] iii. Alternatively, the additional IBC Merge candidates may be interleaved with certain spatial Merge candidates or / and HMVPMerge candidates or / and paired Merge candidates or / and default Merge candidates.

[0229] g. Additional IBC Merge candidates may be inserted after some or all HMVP Merge candidates.

[0230] i. Alternatively, additionally, insert additional IBC Merge candidates before the pairwise Merge candidates.

[0231] ii. Alternatively, additional IBCMerge candidates may be inserted after the HMVP Merge candidate and interleaved with the paired Merge candidates.

[0232] iii. Alternatively, additional IBC Merge candidates may be interleaved with certain HMVP Merge candidates or / and Pair Merge candidates or / and Default Merge candidates.

[0233] 3. A special IBC Merge candidate may be inserted into the IBC Merge list. When a special IBC Merge candidate is selected by block, some default values ​​may be used to derive the prediction block and no motion compensation is performed.

[0234] a. In one example, if a special IBC Merge candidate is selected, a default value may be used to predict the entire block.

[0235] b. In one example, if a special IBC Merge candidate is selected, the block may be divided into N (N>=1) sub-blocks, and different default values ​​may be used to predict different sub-blocks.

[0236] c. In one example, N (N>=0) special IBC Merge candidates may be inserted into the IBC Merge list.

[0237] d. In one example, some special IBC Merge candidates may be inserted into the IBC Merge list multiple times.

[0238] e. In one example, different special IBC Merge candidates may correspond to different default values ​​for the prediction block.

[0239] f. In one example, a special IBC Merge candidate can be inserted into the IBC Merge list only if the number of "available" candidates is less than MaxMrgListSizeIbc.

[0240] i. Alternatively, in addition, special IBC Merge candidates may be inserted into the IBC Merge list until the list size is equal to MaxMrgListSizeIbc.

[0241] g. In one example, special IBC Merge candidates may be inserted after certain types of Merge candidates.

[0242] i. For example, a special IBC Merge candidate can be inserted after an inherited Merge candidate.

[0243] 1. Alternatively, in addition, a special IBCMerge candidate is inserted before the HMVP Merge candidate.

[0244] ii. For example, a special IBC Merge candidate may be inserted after the HMVP Merge candidate.

[0245] 1. Alternatively, additionally, a special IBCMerge candidate is inserted before the pairwise Merge candidate.

[0246] iii. For example, a special IBC Merge candidate may be inserted after a pairwise Merge candidate.

[0247] iv. For example, a special IBC Merge candidate may be inserted after the additional Merge candidates described in Example 2.

[0248] v. For example, a special IBC Merge candidate can be inserted after all other Merge candidates.

[0249] h. In one example, special IBC Merge candidates can be interleaved with other Merge candidates.

[0250] i. The default value can be signaled by SPS / VPS / PPS / slice group header / strip header.

[0251] j. The default value can be implicitly derived at the decoder.

[0252] i. For example, 1<<(bitDepth-1) can be used as the default value, where bitDepth is the bit depth of the sample.

[0253] ii. For example, 1<<bitDepth can be used as the default value.

[0254] iii. For example, 0 can be used as the default value.

[0255] k. The default value can depend on the bit depth of the sample.

[0256] l. For different color components, the default value can be different.

[0257] m. The default value can be derived based on previously decoded pictures / strips / slices.

[0258] n. Alternatively, in addition, set the residual block to all-zero coefficients, i.e., use the default value to derive the reconstructed block of the current block.

[0259] 4. The spatial neighboring blocks used to construct the IBC Merge list can be different from those used for the regular Merge list.

[0260] a. In one example, when the motion information of the spatial neighboring blocks results in unavailable IBC Merge candidates, the neighboring blocks of the spatial neighboring blocks can be further checked.

[0261] b. In one example, the motion information derived from the neighboring blocks of the spatial neighboring blocks can be added after all candidates derived from the spatial neighboring blocks (e.g., Figure 2 A1, B1, A0, B0, B2 in

[0262] c. Alternatively, when the motion information of the spatial neighboring blocks results in unavailable IBC Merge candidates, the motion information of the neighboring blocks of the spatial neighboring blocks can be added (if it is not unavailable).

[0263] 5. Up to K1 (K1 >= 1) spatial Merge candidates can be inserted into the IBC Merge list.

[0264] a.K1 may depend on MaxMrgListSizeIbc.

[0265] 6. A maximum of K2 (K2>=0) HMVP Merge candidates can be inserted into the IBC Merge list.

[0266] a.K2 can depend on MaxMrgListSizeIbc.

[0267] b. K2 may be different from K2 used in the regular Merge mode, such as N is not equal to 5.

[0268] 7. A maximum of K3 (K3>=0) pairwise Merge candidates can be inserted into the IBC Merge list.

[0269] a.K3 may depend on MaxMrgListSizeIbc.

[0270] b. K3 can be different from the K3 used for regular Merge mode.

[0271] c.K3 can be equal to zero, which means that the pairwise merge candidate may never be inserted into the IBC merge list.

[0272] 8. IBC mode can be enabled / disabled based on rules regarding block size.

[0273] a. In one example, when the block size contains less than M*H samples, for example, 16 or 32 or 64 luma samples, IBC Merge or / and IBC AMVP mode is not allowed.

[0274] b. In one example, when the block size contains more than M*H samples, for example, 16 or 32 or 64 luma samples, IBC Merge or / and IBC AMVP mode is not allowed.

[0275] c. Alternatively, when the minimum size of the width or / and height of the block is less than or not greater than X, the IBC Merge or / and IBC AMVP mode is not allowed. In one example, X is set to 8.

[0276] d. Alternatively, when the width of the block > th1 or >= th1 and / or the height of the block > th2 or >= th2, IBCMercure and / or IBC AMVP mode are not allowed. In one example, X is set to 64.

[0277] i. For example, disable IBC Merge or / and IBC AMVP mode for M×M (e.g., 128×128) blocks.

[0278] ii. For example, disable the IBC Merge and / or IBC AMVP modes for N×M / M×N blocks, e.g., where N >= 64 and M = 128.

[0279] iii. For example, disable the IBC Merge and / or IBC AMVP modes for N×M / M×N blocks, e.g., where N >= 4 and M = 128.

[0280] e. Alternatively, when the width of the block < th1 or <= th1 and / or the height of the block < th2 or <= th2, the IBC Merge and / or IBC AMVP modes are not allowed. In one example, th1 and / or th2 are set to 8.

[0281] 9. The IBC mode can be disallowed according to the block position.

[0282] a. In one example, the first CU in the CTU row cannot use the IBC mode.

[0283] b. In one example, the first CU in the CTU cannot use the IBC mode.

[0284] c. In one example, the CU located at the left boundary of the CTU row cannot use the IBC mode.

[0285] d. In one example, the CU located at the left boundary of the CTU cannot use the IBC mode.

[0286] 10. When the IBC mode is not allowed, there is no need to send a flag indicating the IBC mode, and the IBC mode is inferred as false.

[0287] 11. An indication for informing whether the proposed method is enabled can be signaled in the PPS / VPS / picture header / slice header / slice group header / CTU group.

[0288] a. In one example, if an independent tree segmentation structure (e.g., a dual tree) is applied, the indication can be signaled more than once for a picture / slice / slice group / CTU.

[0289] b. In one example, if an independent tree segmentation structure (e.g., a dual tree) is applied, the indication can be signaled separately for different color components.

[0290] i. Alternatively, the indication can be signaled only for one color component, and the indication can be applied to all other color components.

[0291] 12. It is proposed that MaxMrgListSizeIbc can be different from MaxMrgListSize.

[0292] a. In one example, the maximum Merge candidate list size in IBC Merge mode may be signaled using SPS / VPS / PPS / slice group header / slice header.

[0293] b. In one example, MaxMrgListSizeIbc is less than MaxMrgListSize, and MaxMrgListSize-MaxMrgListSizeIbc may be signaled in SPS / VPS / PPS / slice group header / slice header.

[0294] c. In one example, MaxMrgListSizeIbc is greater than MaxMrgListSize, and MaxMrgListSizeIbc-MaxMrgListSize may be signaled in SPS / VPS / PPS / slice group header / slice header.

[0295] 13. How to construct the IBC Merge list may depend on the color components.

[0296] a. For example, when dual trees are used for luma and chroma components, the IBCMercure lists can be different for luma and chroma components.

[0297] 14. The above method can also be applied to IBC AMVP mode.

[0298] The examples described above may be combined in the context of the method described below (eg, method 1400 ), which may be implemented at a video decoder or a video encoder.

[0299] Fig.14A A flow chart of an exemplary method for video processing is shown. The method 1410 includes, at step 1412, performing a conversion between a current video block of a video and a codec representation of the video using an intra-block copy (IBC) motion candidate list. The method 1410 also includes, at step 1414, making a decision on whether to update the IBC Merge list by adding motion candidates based on a condition.

[0300] Fig. 14B A flow chart of an exemplary method for video processing is shown. The method 1420 includes, at step 1422, maintaining an intra-block copy (IBC) motion candidate list to which motion candidates are added according to a rule for conversion between a current video block of a video and a codec representation of the video. The method 1420 also includes, at step 1424, performing the conversion using the IBC motion candidate list.

[0301] Fig. 14CA flow chart of an exemplary method for video processing is shown. The method 1430 includes, at step 1432, maintaining an intra-block copy (IBC) motion candidate list to which a special IBC motion candidate is added for conversion between a current video block of a video and a codec representation of the video. The method 1430 also includes, at step 1434, using the IBC motion candidate list to perform the conversion. In some embodiments, the special IBC motion candidate is selected by the current video block, and the prediction block of the current video block is derived based on one or more default values ​​without using motion compensation.

[0302] Fig.15A A flow chart of an exemplary method for video processing is shown. The method 1510 includes, at step 1512, constructing an intra-block copy (IBC) motion candidate list during conversion between a current video block and a codec representation of the current video block, wherein inserting motion candidates into the IBC motion candidate list is subject to size constraints. The method 1510 also includes, at step 1514, performing the conversion using the IBC motion candidate list.

[0303] Fig. 15B A flow chart of an exemplary method for video processing is shown. The method 1520 includes, at step 1522, constructing an intra-block copy (IBC) motion candidate list for conversion between a current video block of a video and a codec representation of the video according to a construction rule. The method 1520 also includes, at step 1524, performing the conversion based on the IBC motion candidate list. In some embodiments, the construction rule specifies that the spatial neighboring blocks to be checked for addition to the IBC motion candidate list are at different relative positions than the spatial neighboring blocks to be checked for addition to the regular motion candidate list.

[0304] Fig. 15C A flow chart of an exemplary method for video processing is shown. The method 1530 includes, at step 1532, constructing an intra-block copy (IBC) motion candidate list based on color component identifications of the current video block for conversion between a current video block of the video and a codec representation of the video. The method 1530 also includes, at step 1534, performing the conversion based on the IBC motion candidate list.

[0305] Fig.16AA flow chart of an exemplary method for video processing is shown. The method 1610 includes, at step 1612, determining whether to enable an intra-block copy (IBC) mode for conversion between a current video block of a video and a codec representation of the video based on rules regarding block size, wherein in the IBC mode, a prediction block for the current video block is calculated based on a block vector in a picture including the current video block. The method 1610 also includes, at step 1614, performing the conversion based on the determination.

[0306] Fig. 16B A flow chart of an exemplary method for video processing is shown. The method 1620 includes, at step 1622, determining, based on the position of the current video block, whether to prohibit the use of an intra-block copy (IBC) mode for conversion between a current video block of a video and a codec representation of the video, wherein in the IBC mode, a prediction block for the current video block is calculated based on a block vector in a picture including the current video block. The method 1620 also includes, at step 1624, performing the conversion based on the determination.

[0307] Fig. 16C A flow chart of an exemplary method for video processing is shown. The method 1630 includes, at step 1632, performing a conversion between a current video block of a video region of a video and a codec representation of the video, wherein a rule controlling construction or updating of an intra block copy (IBC) mode includes an indication in the codec representation at a video region level, and wherein the intra block copy mode includes generating a prediction block using at least a block vector pointing to a picture including the current video block.

[0308] Fig.17 A flow chart of an exemplary method for video processing is shown. The method 1700 includes, at step 1702, constructing an intra-block copy (IBC) motion candidate list for conversion between a current video block of a video and a codec representation of the video, the list storing one or more candidates for representing the current video block and pointing to a picture containing the current video block. The method 1700 also includes, at step 1704, using the IBC motion candidate list to perform the conversion. In some embodiments, the codec representation includes a first field for deriving a maximum size of the IBC motion candidate list and a second field different from the first field for deriving a maximum size of the conventional motion candidate list.

[0309] 8. Example Implementations of the Disclosed Technology

[0310] Fig.18A1 is a block diagram of a video processing apparatus 1800. The apparatus 1800 may be used to implement one or more methods described herein. The apparatus 1800 may be included in a smartphone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. The apparatus 1800 may include one or more processors 1802, one or more memories 1804, and video processing hardware 1806. The processor(s) 1802 may be configured to implement one or more methods described in this document (including but not limited to FIG. 14A to FIG. 17 1804 can be used to store code and data for implementing the methods and techniques described herein. Video processing hardware 1806 can be used to implement some of the techniques described in this document in hardware circuits.

[0311] Fig.18B is another example of a block diagram illustrating a video processing system in which the disclosed technology may be implemented. Fig.18B 4100 is a block diagram illustrating an example video processing system 4100 in which various techniques disclosed herein may be implemented. Various embodiments may include some or all of the components of system 4100. System 4100 may include an input 4102 for receiving video content. The video content may be received in a raw or uncompressed format, for example, 8 or 10 bit multi-component pixel values, or may be in a compressed or encoded format. Input 4102 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces (such as Ethernet, Passive Optical Network (PON), etc.) and wireless interfaces (such as Wi-Fi or cellular interfaces).

[0312] System 4100 may include a codec component 4104 that can implement various codecs or encoding methods described in this document. Codec component 4104 can reduce the average bit rate of the video from input 4102 to the output of codec component 4104 to generate a codec representation of the video. Codec technology is therefore sometimes referred to as video compression or video transcoding technology. The output of codec component 4104 can be stored or sent via a communication connected as represented by component 4106. The bitstream (or codec) representation of the storage or communication transmission of the video received at input 4102 can be used by component 4108 to generate pixel values ​​or to be sent to a displayable video of display interface 4110. The process of generating user-visible video from bitstream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at encoders, and the corresponding decoding tools or operations of the inverted codec results will be performed by decoders.

[0313] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachmen), PCI, IDE interfaces, etc. The technology described in this document may be embodied in various electronic devices, such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.

[0314] In some embodiments, such as regarding FIG. 14A to FIG. 17 Any of the described video processing methods may be implemented using an apparatus implemented on a hardware platform.

[0315] Various techniques and embodiments may be described using the following clause-based format.

[0316] The first group of clauses describes certain features and aspects of the disclosed technology listed in previous sections, including, for example, Examples 1-3.

[0317] 1. A method for video processing, comprising: performing a conversion between a current video block of a video and a codec representation of the video using an intra block copy (IBC) motion candidate list; and making a decision on whether to update the IBC motion candidate list by adding motion candidates based on a condition.

[0318] 2. The method of clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that the reference block identified by the motion candidate overlaps with the current video block.

[0319] 3. A method as described in clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that at least one sample of the reference block identified by the motion candidate is located outside the picture including the current video block.

[0320] 4. A method as described in clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that every sample of the reference block identified by the motion candidate is located outside the picture including the current video block.

[0321] 5. A method according to clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that at least one sample of the reference block identified by the motion candidate is outside the reconstructed region corresponding to the current video block.

[0322] 6. A method as described in clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that every sample of the reference block identified by the motion candidate is outside the reconstructed region corresponding to the current video block.

[0323] 7. A method according to clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that at least one sample of the reference block identified by the motion candidate is outside the valid area restricted by the constraint condition.

[0324] 8. A method as described in clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that every sample of the reference block identified by the motion candidate is outside the valid area restricted by the constraint condition.

[0325] 9. A method according to clause 7 or 8, wherein the constraint does not allow samples in the reference block to be located in a Codec Tree Unit (CTU) row above a CTU row comprising the current video block.

[0326] 10. A method according to clause 7 or 8, wherein the constraint does not allow samples in the reference block to be located within the current video block.

[0327] 11. A method according to clause 7 or 8, wherein the constraint allows samples in the reference block to be located in a current codec tree unit (CTU) row comprising the current video block.

[0328] 12. A method according to clause 7 or 8, wherein the constraint does not allow samples in the reference block to be located in a codec tree unit (CTU) to the left of the CTU comprising the current video block.

[0329] 13. A method according to clause 7 or 8, wherein the constraint allows samples in the reference block to be located in a current codec tree unit (CTU) comprising the current video block.

[0330] 14. A method according to clause 7 or 8, wherein the constraint allows samples in the reference block to be located in a predetermined area.

[0331] 15. A method according to clause 14, wherein the predetermined area depends on at least one of: i) the position of the current video block, ii) the size of the current video block, iii) the position of the M×N block including the current video block, iv) the resolution of the picture including the current video block, or v) the encoding or decoding order of blocks within a codec tree unit (CTU) or an M×N rectangle.

[0332] 16. A method according to clause 14, wherein the predetermined area includes at least one of the following: i) samples in a codec tree unit (CTU) to the left of the CTU of the current video block; ii) samples in the current video block; iii) samples in a CTU above the CTU of the current video block.

[0333] 17. A method according to clause 14, wherein the video area including the current video block is divided into N×M rectangles, and for the block in the current N×M rectangle, the predetermined area includes at least one of the following: i) samples in the N×M rectangle to the left of the current N×M rectangle; ii) samples in the N×M rectangle above the current N×M rectangle; or iii) samples in the current N×M rectangle.

[0334] 18. A method according to clause 14, wherein at least one of a codec tree unit (CTU) or an N×M rectangle is divided into K sub-regions, K is an integer equal to or greater than 1, and wherein the predetermined region depends on the position of the sub-region and / or the encoding or decoding order of the sub-region.

[0335] 19. The method of clause 1, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition is that the motion candidate is a spatial candidate from a specific spatially adjacent or non-adjacent block.

[0336] 20. A method as described in clause 1, wherein the motion candidate is added to an IBC motion candidate list, and wherein the condition is that the motion candidate is a spatial candidate from a spatially adjacent or non-neighboring block.

[0337] 21. The method of clause 1, wherein the motion candidate is not added to an IBC motion candidate list, and wherein the condition is that the motion candidate is a specific history-based motion vector prediction (HMVP) candidate.

[0338] 22. The method of clause 1, wherein the motion candidate is added to an IBC motion candidate list, and wherein the condition is that the motion candidate is a History-Based Motion Vector Prediction (HMVP) candidate.

[0339] 23. The method of clause 1, wherein the motion candidate is not added to an IBC motion candidate list, and wherein the condition is that the motion candidate is a specific pair candidate.

[0340] 24. The method of clause 1, wherein the motion candidate is added to an IBC motion candidate list, and wherein the condition is that the motion candidate is a paired candidate.

[0341] 25. A method according to any of clauses 2 to 19, 21 and 23, wherein motion candidates that are not added to the IBC motion candidate list based on a condition are designated as unavailable.

[0342] 26. A method as described in clause 1, wherein the motion candidate is not selected in the conforming bitstream, and wherein the condition is that the motion candidate is designated as unavailable and added to an IBC motion candidate list.

[0343] 27. The method of clause 1, wherein, in a case where all motion candidates in the IBC motion candidate list are designated as unavailable, the IBC mode is not signaled.

[0344] 28. A method as described in clause 1, wherein, in the event that all motion candidates in the IBC motion candidate list are designated as unavailable, the IBC mode is signaled but the IBC mode is not selected in the conforming bitstream.

[0345] 29. The method of clause 1, wherein motion candidates that are not added to the IBC motion candidate list are used to generate new motion candidates.

[0346] 30. A method for video processing, comprising: maintaining an intra-block copy (IBC) motion candidate list to which motion candidates are added according to a rule for conversion between a current video block of a video and a codec representation of the video; and performing the conversion using the IBC motion candidate list.

[0347] 31. The method of clause 30, wherein the motion candidates comprise one or more default motion candidates.

[0348] 32. A method according to clause 31, wherein the motion candidate includes at least one of the following coordinates: (-W, H), (-W, 3*H / 2), (-3*W / 2, -H), (-3*W / 2, -3*H / 2), (-2*W, 0), (0, -2*H) or (-W, 0), (0, -H), W and H represent the width and height of the current video block.

[0349] 33. The method of clause 31, wherein the one or more default motion candidates are determined based on a position of the current video block and / or a size of the current video block.

[0350] 34. The method of clause 31, wherein the order in which the one or more default motion candidates are inserted is based on a position of the current video block and / or a size of the current video block.

[0351] 35. A method according to clause 31, wherein one or more default motion candidates are signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a picture header, a slice header or a slice group header.

[0352] 36. The method of clause 30, wherein the motion candidates comprise one or more offset candidates derived by adding offsets to motion vectors of one or more selected motion candidates in the IBC motion candidate list.

[0353] 37. A method according to clause 36, wherein the one or more selected motion candidates include one or more motion candidates derived from specific spatially adjacent or non-adjacent blocks.

[0354] 38. The method of clause 36, wherein the one or more selected motion candidates comprise one or more IBC History-Based Motion Vector Prediction (HMVP) candidates derived from an IBC HMVP table.

[0355] 39. The method of clause 36, wherein the one or more selected motion candidates comprise one or more paired motion candidates.

[0356] 40. The method of clause 36, wherein the one or more selected motion candidates are defined as motion candidates included in the IBC motion candidate list before the motion candidate is added.

[0357] 41. A method according to clause 36, wherein one or more offset candidates are obtained by at least one of the following: i) adding N1 motion vector offsets to spatial motion candidates; ii) adding N2 motion vector offsets to HMVP motion candidates; iii) adding N3 motion vector offsets to paired motion candidates; or iv) adding N4 motion vector offsets to currently available motion candidates, and wherein N1, N2, N3 and N4 are equal to or greater than 0.

[0358] 42. A method according to clause 36, wherein the value of the offset depends on at least one of: i) the motion candidate, ii) the position of the current video block, iii) the size of the block, or iv) the encoding or decoding order of the blocks in the codec tree unit or M×N rectangle.

[0359] 43. A method as described in clause 30, wherein the motion candidate is inserted after a specific paired motion candidate, a specific default motion candidate, a specific spatial motion candidate, or a specific history-based motion vector prediction (HMVP) motion candidate.

[0360] 44. A method as described in clause 30, wherein the motion candidate is inserted after all paired motion candidates, all default motion candidates, all spatial motion candidates or all history-based motion vector prediction (HMVP) motion candidates in the IBC motion candidate list.

[0361] 45. A method for video processing, comprising: maintaining an IBC motion candidate list to which special intra block copy (IBC) motion candidates are added for conversion between a current video block of a video and a codec representation of the video; and using the IBC motion candidate list to perform the conversion, wherein the special IBC motion candidate is selected by the current video block, and a prediction block of the current video block is derived based on one or more default values ​​without using motion compensation.

[0362] 46. ​​A method according to clause 45, wherein a default value is used to predict the entire block.

[0363] 47. The method of clause 45, wherein the current video block is divided into one or more sub-blocks, and wherein a different default value of the one or more default values ​​is used to predict each of the one or more sub-blocks.

[0364] 48. The method of clause 45, wherein a special IBC motion candidate is added to the IBC motion candidate list multiple times.

[0365] 49. The method of clause 45, wherein one or more additional special IBC motion candidates are added to the IBC motion candidate list.

[0366] 50. The method of clause 49, wherein the plurality of special IBC motion candidates correspond to different default values ​​for predicting the current video block.

[0367] 51. A method as described in clause 45, wherein the special IBC motion candidate is added to the IBC motion candidate list only when the number of available candidates is less than a predetermined value.

[0368] 52. The method of clause 45, wherein special IBC motion candidates are added to the IBC motion candidate list until a size of the IBC motion candidate list is equal to a predetermined value.

[0369] 53. A method according to clause 45, wherein the special IBC motion candidate is added to the IBC motion candidate list i) after at least one inherited motion candidate; ii) after the HMVP motion candidate; iii) after the paired motion candidate; or v) after all other motion candidates.

[0370] 54. The method according to clause 45, wherein additional motion candidates are added to the IBC motion candidate list, and special IBC motion candidates are added to the additional motion candidates in the IBC motion candidate list.

[0371] 55. The method according to clause 45, wherein the special IBC motion candidates are interleaved with other motion candidates.

[0372] 56. The method according to clause 45, wherein one or more default values are signaled by a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a slice header, or a slice group header.

[0373] 57. The method according to clause 45, wherein one or more default values are implicitly derived at the decoder.

[0374] 58. The method according to clause 57, wherein one or more default values include at least one of 1<<(bitDepth

[0375] - 1), 1<<bitDepth, and 0, where bitDepth is the bit depth of the samples of the current video block.

[0376] 59. The method according to clause 45, wherein one or more default values are based on the bit depth of the samples of the current video block.

[0377] 60. The method according to clause 45, wherein different default values of one or more default values are used for different color components of the current video block.

[0378] 61. The method according to clause 45, wherein one or more default values are derived based on a previously processed video region of the video, which is a picture, a slice, or a strip.

[0379] 62. The method according to clause 45, wherein one or more default values are used to derive the reconstructed block of the current video block.

[0380] 63. The method according to any one of clauses 1 to 62, wherein the IBC motion candidate list is an IBC Merge candidate list.

[0381] 64. The method according to any one of clauses 1 to 62, wherein the IBC motion candidate list is an IBC AMVP candidate list.

[0382] 65. The method according to any one of clauses 1 - 64, wherein performing the transformation includes generating an encoded / decoded representation from the current block.

[0383] 66. A method according to any of clauses 1-64, wherein performing the conversion comprises generating the current block from a codec representation.

[0384] 67. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method of any one of clauses 1 to 66.

[0385] 68. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing the method according to any of clauses 1 to 66.

[0386] The second group of clauses describes certain features and aspects of the disclosed technology listed in the previous sections, including, for example, Examples 4-7, 13, and 14.

[0387] 1. A video processing method, comprising: during a conversion between a current video block and a codec representation of the current video block, constructing an intra block copy (IBC) motion candidate list, wherein insertion of motion candidates into the IBC motion candidate list is subject to size constraints; and performing the conversion using the IBC motion candidate list.

[0388] 2. The method of clause 1, wherein the motion candidates are spatial motion candidates, and wherein at most K1 spatial motion candidates are inserted into the IBC motion candidate list, K1 being equal to or greater than 1.

[0389] 3. The method of clause 2, wherein K1 is based on MaxMrgListSizeIbc.

[0390] 4. The method of clause 1, wherein the motion candidate is a history-based motion vector prediction (HMVP) motion candidate, and wherein a maximum of K2 HMVP motion candidates are inserted into the IBC motion candidate list, K2 being equal to or greater than 0.

[0391] 5. The method of clause 4, wherein K2 is based on MaxMrgListSizeIbc.

[0392] 6. A method according to clause 4, wherein K2 is different from a maximum number of motion candidates for a regular motion candidate list other than the IBC motion candidate list.

[0393] 7. The method of clause 1, wherein the motion candidates are pairwise Merge candidates, and wherein at most K3 pairwise motion candidates are inserted into the IBC motion candidate list, K3 being equal to or greater than 0.

[0394] 8. The method of clause 7, wherein K3 is based on MaxMrgListSizeIbc.

[0395] 9. A method as described in clause 4, wherein K3 is different from the maximum number of motion candidates for a regular motion candidate list other than the IBC motion candidate list.

[0396] 10. The method according to clause 6 or 9, wherein the regular motion candidate list is a Merge list of non-IBC mode.

[0397] 11. A method for video processing, comprising: constructing an intra-block copy (IBC) motion candidate list according to a construction rule for conversion between a current video block of a video and a codec representation of the video; and performing the conversion based on the IBC motion candidate list, wherein the construction rule specifies that spatial neighboring blocks to be checked for addition to the IBC motion candidate list are at different relative positions than spatial neighboring blocks to be checked for addition to a regular motion candidate list.

[0398] 12. A method according to clause 11, wherein, for construction of a conventional motion candidate list, a first block located at a first relative position relative to an inter-frame Merge codec block is checked, and for construction of an IBC motion candidate list, a third block located at a first relative position relative to a current video block is not checked.

[0399] 13. A method according to clause 11, wherein, for construction of an IBC motion candidate list, a second block located at a second relative position relative to the current video block is checked, and for construction of a conventional motion candidate list, a fourth block located at a second relative position relative to the inter-frame Merge codec block is not checked.

[0400] 14. A method as described in clause 11, wherein maintaining the IBC motion candidate list comprises: checking neighboring blocks of the spatial neighboring block if the motion information of the spatial neighboring block produces a motion candidate that is not inserted into the IBC motion candidate list.

[0401] 15. The method of clause 14, wherein maintaining the IBC motion candidate list further comprises: adding motion information derived from neighboring blocks after all motion candidates derived from spatially neighboring blocks.

[0402] 16. A method as described in clause 11, wherein maintaining the IBC motion candidate list comprises: adding motion information of neighboring blocks of the spatial neighboring blocks if the motion information of the spatial neighboring blocks produces a motion candidate that is not inserted into the IBC motion candidate list.

[0403] 17. A method for video processing, comprising: constructing an intra block copy (IBC) motion candidate list based on color component identifications of a current video block for conversion between a current video block of a video and a codec representation of the video; and performing the conversion based on the IBC motion candidate list.

[0404] 18. A method according to clause 17, wherein a dual tree is used for luma and chroma components and the IBC motion candidate lists are different for luma and chroma components.

[0405] 19. A method according to any one of clauses 1 to 18, wherein the current video block is encoded and decoded in IBC (Intra Block Copy) AMVP (Advanced Motion Vector Prediction) mode, wherein, in this mode, an AMVP index pointing to an entry in an IBC AMVP list is parsed from the codec representation.

[0406] 20. A method according to any of clauses 1 to 18, wherein the IBC Movement candidate list is an IBC Merge candidate list.

[0407] 21. A method according to any of clauses 1 to 20, wherein performing the conversion comprises generating a codec representation from the current block.

[0408] 22. A method according to any of clauses 1 to 20, wherein performing the conversion comprises generating the current block from a codec representation.

[0409] 23. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of clauses 1 to 22.

[0410] 24. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing the method according to any of clauses 1 to 22.

[0411] The third group of clauses describes certain features and aspects of the disclosed technology listed in previous sections, including, for example, Examples 8-11.

[0412] 1. A method for video processing, comprising: determining whether to enable an intra-block copy (IBC) mode for conversion between a current video block of a video and a codec representation of the video based on a rule regarding block size, wherein in the IBC mode, a prediction block of the current video block is calculated based on a block vector in a picture including the current video block, and performing the conversion based on the determination.

[0413] 2. A method according to clause 1, wherein the IBC mode is an IBC Merge mode, wherein, in the IBC Merge mode, an index pointing to an entry in an IBC Merge list is parsed from a codec representation; or the IBC mode is an IBC AMVP (Advanced Motion Vector Prediction) mode, wherein, in the IBC AMVP mode, an AMVP index pointing to an entry in an IBC AMVP list is parsed from a codec representation.

[0414] 3. The method of clause 1, wherein the determining determines that for a current video block having a block size containing fewer than M*H samples, the IBC mode is not enabled.

[0415] 4. The method of clause 1, wherein the determining determines that for a current video block having a block size containing more than M*H samples, the IBC mode is not enabled.

[0416] 5. The method of clause 1, wherein the determining determines that the IBC mode is not enabled for a current video block whose minimum dimension of width and / or height is less than or not greater than a predetermined value.

[0417] 6. The method of clause 1, wherein the determining determines that the IBC mode is not enabled for a current video block having a width equal to or greater than a first predetermined value and / or a height equal to or greater than a second predetermined value.

[0418] 7. The method of clause 1, wherein the determining determines that the IBC mode is not enabled for a current video block having a width greater than a first predetermined value and a height greater than a second predetermined value.

[0419] 8. A method according to clause 6 or 7, wherein the IBC mode is not enabled for a current video block that is an M×M block, an N×M block, or an M×N block, wherein M is 128 and N is an integer equal to or greater than 4 or an integer equal to or greater than 64.

[0420] 9. The method of clause 7, wherein the first predetermined value and the second predetermined value are both equal to 64.

[0421] 10. The method of clause 1, wherein the determining determines that the IBC mode is not enabled for a current video block having a width equal to or less than a first predetermined value and / or a height equal to or less than a second predetermined value.

[0422] 11. The method of clause 10, wherein the first predetermined value and the second predetermined value are 8.

[0423] 12. The method of clause 10, wherein the determining determines to disable the IBC mode for the current video block, and an indication of the IBC mode for the current video block is not present in the codec representation.

[0424] 13. The method of clause 10, wherein the determining determines to disable the IBC mode for the current video block and skips parsing of an indication of the IBC mode for the current video block.

[0425] 14. A method for video processing, comprising: determining, based on a position of the current video block, whether to prohibit the use of an intra-block copy (IBC) mode for conversion between a current video block of a video and a codec representation of the video, wherein, in the IBC mode, a prediction block of the current video block is calculated based on a block vector in a picture including the current video block; and performing the conversion based on the determination.

[0426] 15. The method of clause 14, wherein the determining determines that use of the IBC mode is prohibited for a first codec unit (CU) in a codec tree unit (CTU) row or in a codec tree unit.

[0427] 16. The method of clause 14, wherein the determining determines that use of the IBC mode is prohibited for a codec unit (CU) located at a codec tree unit (CTU) row or a left boundary of a codec tree unit.

[0428] 17. A method according to any of clauses 14 to 16, wherein the determining determines that use of the IBC mode is prohibited, and wherein no indication of the IBC mode is sent and the IBC mode is inferred to be false.

[0429] 18. A method for video processing, comprising: performing a conversion between a current video block of a video region of a video and a codec representation of the video, wherein rules controlling construction or updating of an intra-block copy (IBC) mode are included in an indication in the codec representation at a video region level, and wherein the intra-block copy mode includes generating a prediction block using at least a block vector pointing to a picture including the current video block.

[0430] 19. The method of clause 18, wherein the video region comprises a picture parameter set (PPS), a video parameter set (VPS), a picture header, a slice group header, a sequence parameter set (SPS).

[0431] 20. The method of clause 18, wherein an independent tree partitioning structure is applied to the current video block and the indication is signaled multiple times for the video region.

[0432] 21. The method of clause 18, wherein an independent tree partitioning structure is applied to the current video block, and the indication is signaled separately for different color components of the current video block.

[0433] 22. The method of clause 18, wherein the independent tree partitioning structure is applied to the current video block and the indication is signaled only for one color component of the current video block.

[0434] 23. A method according to any of clauses 1 to 22, wherein performing the conversion comprises generating a codec representation from the current block.

[0435] 24. A method according to any of clauses 1 to 22, wherein performing the conversion comprises generating the current block from a codec representation.

[0436] 25. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of clauses 1 to 24.

[0437] 26. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for performing the method according to any of clauses 1 to 24.

[0438] The fourth group of clauses describes certain features and aspects of the disclosed technology listed in previous sections, including, for example, Example 12.

[0439] 1. A method for video processing, comprising: constructing an intra-block copy (IBC) motion candidate list for conversion between a current video block of a video and a codec representation of the video, the list storing one or more candidates for representing the current video block and pointing to a picture containing the current video block; and performing the conversion using the IBC motion candidate list, wherein the codec representation includes a first field for deriving a maximum size of the IBC motion candidate list and a second field different from the first field for deriving a maximum size of a conventional motion candidate list.

[0440] 2. A method as described in clause 1, wherein the maximum size of the IBC motion candidate list is different from the maximum size of the regular motion candidate list.

[0441] 3. A method according to clause 1, wherein the maximum size of the IBC motion candidate list is in the range between 1 and 6.

[0442] 4. A method according to clause 1, wherein the maximum size of the regular motion candidate list is in the range between 1 and 6.

[0443] 5. A method as described in clause 1, wherein the maximum size of the IBC motion candidate list is signaled in a sequence parameter set (SPS), video parameter set (VPS), or picture parameter set (PPS), a picture header, a slice group header, or a slice header.

[0444] 6. A method according to clause 1, wherein the maximum size of the IBC motion candidate list is smaller than the maximum size of the regular motion candidate list, and the difference between the maximum size of the IBC motion candidate list and the maximum size of the regular motion candidate list is signaled in a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header, a slice group header or a slice header.

[0445] 7. A method according to clause 1, wherein the maximum size of the IBC motion candidate list is greater than the maximum size of the regular motion candidate list, and the difference between the maximum size of the IBC motion candidate list and the maximum size of the regular motion candidate list is signaled in a sequence parameter set (SPS), a video parameter set (VPS), a picture parameter set (PPS), a picture header, a slice group header or a slice header.

[0446] 8. A method according to any one of clauses 1 to 7, wherein the regular motion candidate list is a Merge list of a non-IBC mode.

[0447] 9. A method according to any of clauses 1 to 7, wherein the normal motion candidate list is a Merge list for non-IBC and non-sub-block inter modes.

[0448] 10. A method according to any of clauses 1 to 9, wherein the IBC Movement candidate list is an IBC Merge candidate list.

[0449] 11. A method according to any of clauses 1 to 9, wherein the IBC Sports Candidate List is an IBC AMVP Candidate List.

[0450] 12. A method according to any of clauses 1-11, wherein performing the conversion comprises generating a codec representation from the current block.

[0451] 13. A method according to any of clauses 1-11, wherein performing the conversion comprises generating the current block from a codec representation.

[0452] 14. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when executed by the processor, cause the processor to perform the method according to any one of clauses 1 to 13.

[0453] 15. A computer program product stored on a non-transitory computer readable medium, the computer program product comprising program code for executing the method according to any of clauses 1 to 13.

[0454] The fifth group of clauses describes certain features and aspects of the disclosed technology listed in the previous sections.

[0455] 1. A method for video processing, comprising: during a conversion between a current video block and a bitstream representation of the current video block, making a decision based on a condition regarding inserting a Merge candidate into an IBC Merge list; and performing the conversion using the IBC Merge list based on the decision.

[0456] 2. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that the reference block identified by the Merge candidate overlaps with the current video block.

[0457] 3. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that at least one sample of the reference block identified by the Merge candidate is located outside the picture including the current video block.

[0458] 4. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that each sample of the reference block identified by the Merge candidate is outside the picture that includes the current video block.

[0459] 5. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that at least one sample of the reference block identified by the Merge candidate is outside the reconstructed region corresponding to the current video block.

[0460] 6. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that each sample of the reference block identified by the Merge candidate is outside the reconstructed region corresponding to the current video block.

[0461] 7. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that at least one sample of the reference block identified by the Merge candidate is outside the valid area restricted by the constraint condition.

[0462] 8. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that each sample of the reference block identified by the Merge candidate is outside the valid area limited by the constraint condition.

[0463] 9. A method according to clause 7 or 8, wherein the constraint comprises that the reference sample is not located in a Codec Tree Unit (CTU) row above a CTU row comprising the current video block.

[0464] 10. A method according to clause 7 or 8, wherein the constraint comprises that the reference sample is not located within the current video block.

[0465] 11. A method according to clause 7 or 8, wherein the constraint comprises that the reference samples are located in a current codec tree unit (CTU) row comprising the current video block.

[0466] 12. A method according to clause 7 or 8, wherein the constraint comprises that the reference sample is not located in a codec tree unit (CTU) to the left of a CTU comprising the current video block.

[0467] 13. A method according to clause 7 or 8, wherein the active region is based on the position of the current video block.

[0468] 14. A method according to clause 7 or 8, wherein the active area is based on the width or height of the current video block.

[0469] 15. A method according to clause 7 or 8, wherein the active region is based on the resolution of a picture comprising the current video block.

[0470] 16. The method of clause 1, wherein the Merge candidate is not inserted into the IBC Merge list, and wherein the condition is that the Merge candidate is a spatial candidate from a non-adjacent block.

[0471] 17. A method according to any one of clauses 2 to 16, wherein the Merge candidate is designated as unavailable.

[0472] 18. The method of clause 1, wherein the Merge candidate is inserted into an IBC Merge list, and wherein the condition is that the Merge candidate is a spatial candidate from a non-adjacent block.

[0473] 19. The method of clause 1, wherein the Merge candidate is inserted into an IBC Merge list, and wherein the condition is that the Merge candidate is a History-Based Motion Vector Prediction (HMVP) candidate.

[0474] 20. The method of clause 1, wherein the Merge candidate is not selected in the conforming bitstream, and wherein the condition is that the Merge candidate is designated as unavailable and inserted into the IBC Merge list.

[0475] 21. The method of clause 1, wherein the Merge candidate is inserted into an IBC Merge list, and wherein the condition is that the Merge candidate is a default Merge candidate.

[0476] 22. The method of clause 21, wherein the default merge candidate is signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or a slice group header.

[0477] 23. The method of clause 1, wherein the Merge candidate is derived by adding an offset to a motion vector of a selected Merge candidate in an IBC Merge list.

[0478] 24. The method of clause 23, wherein the selected Merge candidate comprises one or more History-Based Motion Vector Prediction (HMVP) candidates derived from an HMVP table.

[0479] 25. The method according to clause 23, wherein the selected Merge candidate comprises one or more paired Merge candidates.

[0480] 26. The method of clause 1, wherein the Merge candidate is inserted after a specific pairwise Merge candidate, a specific default Merge candidate, a specific spatial Merge candidate, or a specific history-based motion vector prediction (HMVP) Merge candidate in an IBC Merge list.

[0481] 27. The method of clause 1, wherein the Merge candidate is inserted after all pairwise Merge candidates, all default Merge candidates, all spatial Merge candidates, or all history-based motion vector prediction (HMVP) Merge candidates in an IBC Merge list.

[0482] 28. The method of clause 1, wherein the Merge candidate is a special IBC Merge candidate inserted into an IBC Merge list, wherein one or more default values ​​are used to derive the prediction block, and wherein motion compensation is not performed.

[0483] 29. The method of clause 28, wherein the current video block is divided into one or more sub-blocks, and wherein a different default value of the one or more default values ​​is used to predict each of the one or more sub-blocks.

[0484] 30. The method of clause 28, wherein a special IBC Merge candidate is inserted into the IBC Merge List multiple times.

[0485] 31. The method of clause 28, wherein the special IBC Merge candidate is inserted after at least one inherited Merge candidate in the IBC Merge list.

[0486] 32. The method of clause 28, wherein the special IBC Merge candidate is inserted before the HMVP Merge candidate in the IBC Merge list.

[0487] 33. The method of clause 28, wherein the special IBC Merge candidate is inserted before the paired Merge candidates in the IBC Merge list.

[0488] 34. The method of clause 28, wherein the one or more default values ​​are signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header, or a slice group header.

[0489] 35. The method of clause 28, wherein the one or more default values ​​are based on a bit depth of samples of the current video block.

[0490] 36. The method of clause 28, wherein a different default value of the one or more default values ​​is used for each color component of the current video block.

[0491] 37. The method of clause 1, wherein the Merge candidate is a spatial Merge candidate, and wherein at most K1 ≥ 1 spatial Merge candidates are inserted into the IBC Merge list.

[0492] 38. The method of clause 37, wherein K1 is based on MaxMrgListSizeIbc.

[0493] 39. The method of clause 1, wherein the Merge candidate is based on a historical motion vector prediction (HMVP) Merge candidate, and wherein at most K2≥0 HMVP Merge candidates are inserted into the IBC Merge list.

[0494] 40. The method of clause 39, wherein K2 is based on MaxMrgListSizeIbc.

[0495] 41. The method of clause 1, wherein the maximum size of the IBC Merge list is MaxMrgListSizeIbc which is different from MaxMrgListSize.

[0496] 42. A method as described in clause 41, wherein MaxMrgListSizeIbc is signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a slice header or a slice group header.

[0497] 43. The method according to clause 41, wherein MaxMrgListSizeIbc < MaxMrgListSize, and wherein (MaxMrgListSize - MaxMrgListSizeIbc) is signaled by a slice header, a slice group header, a video parameter set (VPS), a sequence parameter set (SPS), or a picture parameter set (PPS).

[0498] 44. The method according to clause 41, wherein MaxMrgListSizeIbc > MaxMrgListSize, and wherein (MaxMrgListSizeIbc - MaxMrgListSize) is signaled by a slice header, a slice group header, a video parameter set (VPS), a sequence parameter set (SPS), or a picture parameter set (PPS).

[0499] 45. The method according to clause 1, wherein constructing the IBC Merge list is based on one or more color components of the current video block.

[0500] 46. The method according to any one of clauses 1 to 45, wherein the transformation includes generating pixel values of the current video block from a bitstream representation.

[0501] 47. The method according to any one of clauses 1 to 45, wherein the transformation includes generating a bitstream representation from the current video block.

[0502] 48. An apparatus in a video system, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when run by the processor, cause the processor to implement the method according to any one of clauses 1 to 47.

[0503] 49. A computer program product stored on a non-transitory computer-readable medium, the computer program product comprising program code for performing the method according to any one of clauses 1 to 47.

[0504] It can be understood from the foregoing that specific embodiments of the disclosed technology have been described herein for purposes of illustration, but various modifications may be made without departing from the scope of the invention. Accordingly, the disclosed technology is not limited except as by the appended claims.

[0505] The embodiments of the subject matter and functional operations described in this patent document can be implemented in various systems, digital electronic circuits, or in computer software, firmware or hardware, including the structures disclosed in this specification and their structural equivalents, or in a combination of one or more of them. The embodiments of the subject matter described in this specification can be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a tangible and non-transitory computer-readable medium, for execution by a data processing device or controlling the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a material combination that implements a machine-readable propagation signal, or a combination of one or more of them. The term "data processing unit" or "data processing device" covers all devices, equipment and machines for processing data, for example, including a programmable processor, a computer or multiple processors or computers. In addition to hardware, the device may also include code that creates an operating environment for the computer program in question, for example, code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.

[0506] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subroutines, or portions of code). A computer program may be deployed to execute on one or more computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0507] The processes and logic flows described in this specification can be executed by one or more programmable processors running one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuits, and the apparatus can also be implemented as special purpose logic circuits, such as FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits).

[0508] For example, processors suitable for executing computer programs include general and special microprocessors, and any one or more processors of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more large-capacity storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operably coupled to receive data from one or more large-capacity storage devices or to transmit data to them or both. However, a computer does not require such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, for example, including semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices. The processor and memory can be supplemented by or incorporated into a dedicated logic circuit.

[0509] Intended to combine the instructions and the Figure 1 The foregoing are to be considered exemplary, where exemplary means example. As used herein, the use of "or" is intended to include "and / or" unless the context clearly indicates otherwise.

[0510] Although this patent document contains many details, these should not be interpreted as limitations on any invention or the scope of the protection claimed, but rather as descriptions of features unique to specific embodiments of specific inventions. Certain features described in this patent document in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment may also be implemented in multiple embodiments individually or in any suitable sub-combination. In addition, although the above-mentioned features may be described as working in certain combinations and even initially claimed to be protected in this way, in some cases, one or more features in the combination may be deleted from the claimed combination, and the claimed combination may point to a sub-combination or a variation of a sub-combination.

[0511] Similarly, although operations are described in a particular order in the drawings, this should not be understood as requiring that the operations be performed in the particular order or sequentially shown, or that all of the operations shown be performed, in order to achieve the desired results. In addition, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.

[0512] Only a few implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this patent document.

Claims

1. A method for processing video data, comprising: Performing conversion between a current video block of the video and a bitstream of the video using an intra block copy (IBC) motion candidate list; as well as Make a decision as to whether to update the IBC motion candidate list by adding a motion candidate based on the condition, wherein the motion candidate is not added to the IBC motion candidate list, and wherein the condition includes that a reference block identified by the motion candidate overlaps with the current video block.

2. The method according to claim 1, wherein: The condition includes that at least one sample of a reference block identified by the motion candidate is located outside a picture including the current video block.

3. The method according to claim 1, wherein: The condition includes that each sample of the reference block identified by the motion candidate is located outside the picture including the current video block.

4. The method according to claim 1, wherein: The condition includes that at least one sample of a reference block identified by the motion candidate is located outside a reconstruction region corresponding to the current video block.

5. The method according to claim 1, wherein: The condition includes that each sample of the reference block identified by the motion candidate is located outside a reconstruction region corresponding to the current video block.

6. The method according to claim 1, wherein: The condition includes that at least one sample of the reference block identified by the motion candidate is located outside the valid area restricted by the constraint condition.

7. The method according to claim 1, wherein: The condition includes that each sample of the reference block identified by the motion candidate is located outside the valid area restricted by the constraint condition.

8. The method according to claim 6 or 7, wherein: The constraint does not allow samples in the reference block to be located in a codec tree unit (CTU) row above a CTU row that includes the current video block.

9. The method according to claim 6 or 7, wherein: The constraint condition does not allow samples in the reference block to be located within the current video block.

10. The method according to claim 6 or 7, wherein: The constraint allows samples in the reference block to be located in a current codec tree unit (CTU) row that includes the current video block.

11. The method according to claim 6 or 7, wherein: The constraint does not allow samples in the reference block to be located in a codec tree unit (CTU) to the left of a CTU including the current video block.

12. The method according to claim 6 or 7, wherein: The constraint allows samples in the reference block to be located in a current codec tree unit (CTU) that includes the current video block.

13. The method according to claim 6 or 7, wherein: The constraint condition allows the samples in the reference block to be located in a predetermined area.

14. The method according to claim 13, wherein: The predetermined area depends on at least one of the following: i) the position of the current video block, ii) the size of the current video block, iii) the position of the M×N block including the current video block, iv) the resolution of the picture including the current video block, or v) the encoding or decoding order of blocks within a codec tree unit (CTU) or an M×N rectangle.

15. The method according to claim 13, wherein: The predetermined area includes at least one of the following: i) samples in a codec tree unit (CTU) to the left of the CTU of the current video block; ii) samples in the current video block; iii) samples in a CTU above the CTU of the current video block.

16. The method according to claim 13, wherein: A video area including the current video block is divided into N×M rectangles, and for a block in the current N×M rectangle, the predetermined area includes at least one of the following: i) samples in an N×M rectangle to the left of the current N×M rectangle; ii) samples in an N×M rectangle above the current N×M rectangle; or iii) samples in the current N×M rectangle.

17. The method according to claim 13, wherein: At least one of a codec tree unit (CTU) or an N×M rectangle is divided into K sub-regions, K is an integer equal to or greater than 1, and wherein the predetermined region depends on the position of the sub-region and / or the encoding or decoding order of the sub-region.

18. The method according to claim 1, wherein: The condition includes that the motion candidate is a spatial candidate from a specific spatially adjacent or non-adjacent block.

19. The method according to claim 1, wherein: The motion candidate is added to the IBC motion candidate list, and wherein the condition is that the motion candidate is a spatial candidate from a spatially adjacent or non-adjacent block.

20. The method according to claim 1, wherein: The condition includes that the motion candidate is a specific history-based motion vector prediction (HMVP) candidate.

21. The method according to claim 1, wherein: The motion candidate is added to the IBC motion candidate list, and wherein the condition is that the motion candidate is a history-based motion vector prediction (HMVP) candidate.

22. The method according to claim 1, wherein: The condition includes that the motion candidate is a specific pair candidate.

23. The method according to claim 1, wherein: The motion candidate is added to the IBC motion candidate list, and wherein the condition is that the motion candidate is a pair candidate.

24. The method according to any one of claims 1 to 7, 18, 20 and 22, wherein: Motion candidates that are not added to the IBC motion candidate list based on the condition are designated as unavailable.

25. The method of claim 1, wherein: The motion candidate is not selected in a conforming bitstream, and wherein the condition is that the motion candidate is designated as unavailable and added to the IBC motion candidate list.

26. The method of claim 1, wherein: In case all motion candidates in the IBC motion candidate list are designated as unavailable, the IBC mode is not signaled.

27. The method of claim 1, wherein: In case all motion candidates in the IBC motion candidate list are designated as unavailable, the IBC mode is signaled but not selected in the conforming bitstream.

28. The method of claim 1, wherein: Motion candidates that are not added to the IBC motion candidate list are used to generate new motion candidates.

29. The method of claim 1, further comprising: For conversion between a current video block of a video and a bitstream of the video, an intra block copy (IBC) motion candidate list is maintained to which motion candidates are added according to a rule.

30. The method of claim 29, wherein: The motion candidates include one or more default motion candidates.

31. The method according to claim 30, wherein: The motion candidate includes at least one of the following coordinates: (-W, H), (-W, 3*H / 2), (-3*W / 2, -H), (-3*W / 2, -3*H / 2), (-2*W, 0), (0, -2*H) or (-W, 0), (0, -H), where W and H represent the width and height of the current video block.

32. The method of claim 30, wherein: One or more default motion candidates are determined based on the position of the current video block and / or the size of the current video block.

33. The method of claim 30, wherein: The order in which the one or more default motion candidates are inserted is based on the position of the current video block and / or the size of the current video block.

34. The method of claim 30, wherein: The one or more default motion candidates are signaled in a video parameter set (VPS), a sequence parameter set (SPS), a picture parameter set (PPS), a picture header, a slice header, or a slice group header.

35. The method of claim 29, wherein: The motion candidates include one or more offset candidates derived by adding offsets to motion vectors of one or more selected motion candidates in the IBC motion candidate list.

36. The method of claim 35, wherein: The one or more selected motion candidates include one or more motion candidates derived from specific spatially adjacent or non-adjacent blocks.

37. The method of claim 35, wherein: The one or more selected motion candidates include one or more IBC History-Based Motion Vector Prediction (HMVP) candidates derived from an IBC HMVP table.

38. The method of claim 35, wherein: The one or more selected motion candidates include one or more pairs of motion candidates.

39. The method of claim 35, wherein: The one or more selected motion candidates are defined as motion candidates included in the IBC motion candidate list before adding the motion candidate.

40. The method of claim 35, wherein: The one or more offset candidates are obtained by at least one of the following: i) adding N1 motion vector offsets to spatial domain motion candidates; ii) Add N2 motion vector offsets to the HMVP motion candidate; iii) adding N3 motion vector offsets to the paired motion candidates; or iv) adding N4 motion vector offsets to the currently available motion candidates, and wherein N1, N2, N3 and N4 are equal to or greater than zero.

41. The method of claim 35, wherein: The value of the offset depends on at least one of: i) the motion candidate, ii) the position of the current video block, iii) the size of the block, or iv) the encoding or decoding order of blocks in a codec tree unit or an M×N rectangle.

42. The method of claim 29, wherein: The motion candidate is inserted after a specific paired motion candidate, a specific default motion candidate, a specific spatial motion candidate, or a specific history-based motion vector prediction (HMVP) motion candidate.

43. The method of claim 29, wherein: The motion candidate is inserted into the IBC motion candidate list after all paired motion candidates, all default motion candidates, all spatial motion candidates, or all history-based motion vector prediction (HMVP) motion candidates.

44. The method of claim 1, further comprising: maintaining an IBC motion candidate list to which special intra block copy (IBC) motion candidates are added for transitions between a current video block of a video and a bitstream of the video, The special IBC motion candidate is selected by the current video block, and the prediction block of the current video block is derived based on one or more default values ​​without using motion compensation.

45. The method of claim 44, wherein: A default value is used to predict the entire block.

46. ​​The method of claim 44, wherein: The current video block is divided into one or more sub-blocks, and wherein a different default value of one or more default values ​​is used to predict each of the one or more sub-blocks.

47. The method of claim 44, wherein: The special IBC motion candidate is added to the IBC motion candidate list multiple times.

48. The method of claim 44, wherein: One or more additional special IBC motion candidates are added to the IBC motion candidate list.

49. The method of claim 48, wherein: The multiple special IBC motion candidates correspond to different default values ​​for predicting the current video block.

50. The method of claim 44, wherein: The special IBC motion candidate is added to the IBC motion candidate list only when the number of available candidates is less than a predetermined value.

51. The method of claim 44, wherein: The special IBC motion candidates are added to the IBC motion candidate list until the size of the IBC motion candidate list is equal to a predetermined value.

52. The method of claim 44, wherein: A special IBC motion candidate is added to the IBC motion candidate list after i) at least one inherited motion candidate; ii) after the HMVP motion candidate; iii) after paired motion candidates; or v) after all other motion candidates.

53. The method of claim 44, wherein: Additional motion candidates are added to the IBC motion candidate list, and special IBC motion candidates are added after the additional motion candidates in the IBC motion candidate list.

54. The method of claim 44, wherein: The special IBC motion candidates are interleaved with other motion candidates.

55. The method of claim 44, wherein: The one or more default values are signaled in a Video Parameter Set (VPS), a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), a slice header, or a slice group header.

56. The method of claim 44, wherein: The one or more default values are implicitly derived at the decoder.

57. The method of claim 56, wherein: The one or more default values include at least one of 1<<(bitDepth–1), 1<<bitDepth, and 0, where bitDepth is the bit depth of the samples of the current video block.

58. The method of claim 44, wherein: The one or more default values are based on the bit depth of the samples of the current video block.

59. The method of claim 44, wherein: Different default values of the one or more default values are used for different color components of the current video block.

60. The method of claim 44, wherein: The one or more default values are derived based on a previously processed video region of the video, the video region being a picture, a slice, or a slice group.

61. The method of claim 44, wherein: The one or more default values are used to derive the reconstructed block of the current video block.

62. The method according to any one of claims 1-7, 18-23, 25-61, wherein The IBC motion candidate list is an IBC Merge candidate list.

63. The method according to any one of claims 1-7, 18-23, 25-61, wherein The IBC motion candidate list is an IBC AMVP candidate list.

64. The method according to any one of claims 1-7, 18-23, 25-61, wherein Performing the transformation includes generating the bitstream from the current video block.

65. The method according to any one of claims 1-7, 18-23, 25-61, wherein Performing the transformation includes generating the current video block from the bitstream.

66. A method for storing a bitstream of video, the method comprising: Using an Intra Block Copy (IBC) motion candidate list, generating a bitstream of the video based on a current video block of the video; Storing the generated bitstream in a non-transitory computer-readable recording medium; And Making a decision on whether to update the IBC motion candidate list by conditionally adding motion candidates, wherein the motion candidates are not added to the IBC motion candidate list, and wherein the condition is that a reference block identified by the motion candidate overlaps with the current video block.

67. The method according to claim 66, further comprising: Maintaining an Intra Block Copy (IBC) motion candidate list to which motion candidates are added according to rules for generating a bitstream of the video based on a current video block of the video.

68. The method according to claim 66, further comprising: Maintaining an IBC motion candidate list to which special Intra Block Copy (IBC) motion candidates are added for generating a bitstream of the video based on a current video block of the video, wherein the special IBC motion candidates are selected by the current video block, and the prediction block of the current video block is derived without using motion compensation based on one or more default values.

69. An apparatus for processing video data, comprising a processor and a non-transitory memory having instructions thereon, wherein the instructions, when run by the processor, cause the processor to implement the method according to any one of claims 1 to 68.

70. A non-transitory computer-readable recording medium storing instructions for causing a processor to execute the method according to any one of claims 1 to 68.

Citation Information

Patent Citations

  • Simplified sub-prediction unit (sub-pu) motion parameter inheritence (mpi)

    CN106105212A

  • Method and device for inducing motion prediction information

    CN109314785A

  • An improved merge candidate list construction method for intra block copy

    WO2015180014A1