Method and device for video processing and medium
By applying intra-frame block copying and local illumination compensation techniques in video processing, the problem of low efficiency in existing video encoding and decoding is solved, and the encoding and decoding efficiency is improved, making it suitable for HEVC and VVC standards.
Patent Information
- Application Number
- CN202480028324.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-04-26
- Filing Date
- 2024-04-25
- Publication Date
- 2025-12-30
AI Technical Summary
The efficiency of existing video encoding and decoding technologies needs to be further improved, especially in terms of intra-frame block copying and local illumination compensation.
By employing intra-block copying (IBC) and local illumination compensation (LIC) techniques, parameters are determined and compensation processes are performed to improve encoding and decoding efficiency by identifying whether IBC-LIC is applied to video units.
It improves the encoding and decoding efficiency of video processing, is compatible with HEVC and VVC standards, and enhances the performance of video encoders and decoders.
Smart Images

Figure CN121241564A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of this disclosure generally relate to video processing techniques, and more specifically, to intra-block copying with local illumination compensation. Background Technology
[0002] Today, digital video capabilities are being applied to all aspects of people's lives. Various video compression technologies have been proposed for video encoding / decoding, such as MPEG-2, MPEG-4, ITU-TH.263, ITU-TH.264 / MPEG-4 Part 10 Advanced Video Codec (AVC), ITU-TH.265 High Efficiency Video Codec (HEVC) standard, and Multi-Functional Video Codec (VVC) standard. However, the encoding and decoding efficiency of video encoding and decoding technologies is generally expected to be further improved. Summary of the Invention
[0003] Embodiments of this disclosure provide a solution for video processing.
[0004] In a first aspect, a method for video processing is proposed. This method includes: for conversion between video units and bitstreams of video units, determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video unit; if it is determined that IBC-LIC is applied to the video unit, determining a set of parameters used in IBC-LIC; performing a compensation process based on the prediction or reconstruction of the video unit based on IBC-LIC; and performing a conversion based on the compensated prediction or reconstruction of the video unit. In this manner, encoding and decoding efficiency can be improved.
[0005] In a second aspect, an apparatus for video processing is provided. The apparatus includes a processor and a non-transitory memory having instructions thereon. When executed by the processor, the instructions cause the processor to perform the method according to the first aspect of this disclosure.
[0006] In a third aspect, a non-transitory computer-readable storage medium is proposed. This non-transitory computer-readable storage medium stores instructions that cause a processor to perform the method according to the first aspect of this disclosure.
[0007] In a fourth aspect, another non-transitory computer-readable recording medium is proposed. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: conversion between video units and bitstreams of video units; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on the prediction or reconstruction of the video units based on the IBC-LIC; and generating a bitstream based on the compensated prediction or reconstruction of the video units.
[0008] In a fifth aspect, a method for storing video bitstreams is proposed. The method includes: conversion between video units and video unit bitstreams for the video; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on the prediction or reconstruction of the video units based on the IBC-LIC; generating a bitstream based on the compensated prediction or reconstruction of the video units; and storing the bitstream in a non-transitory computer-readable recording medium.
[0009] This synopsis aims to present, in a simplified form, the selected concepts further described below in the detailed embodiments. This synopsis is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Attached Figure Description
[0010] The above and other objects, features, and advantages of exemplary embodiments of the present disclosure will become more apparent from the following detailed description with reference to the accompanying drawings. In the exemplary embodiments of the present disclosure, the same reference numerals generally refer to the same components.
[0011] Figure 1 A block diagram illustrating an example video codec system according to some embodiments of the present disclosure is shown; Figure 2 A block diagram illustrating a first example video encoder according to some embodiments of the present disclosure is shown; Figure 3 A block diagram illustrating an example video decoder according to some embodiments of the present disclosure is shown; Figure 4 An example of a VVC encoder block diagram is shown; Figure 5 Several intra-frame prediction modes are shown; Figure 6A and Figure 6BReference samples for wide-angle intra-frame prediction are shown; Figure 7 This illustrates the problem of discontinuities when the orientation exceeds 45°; Figure 8 An example of scaling motion vectors for temporal Merge candidates is shown; Figure 9A and Figure 9B The MMVD search point is shown; Figure 10 An example of local lighting compensation is shown; Figure 11 This indicates that no downsampling was performed on the short side; Figure 12 The IBC reference area is shown, depending on the current CU location; Figure 13 An example of symmetry is shown in a screen content image; Figure 14A A schematic diagram of BV adjustment for horizontal flipping is shown; Figure 14B A schematic diagram of BV adjustment for vertical flipping is shown; Figure 15 The intra-frame template matching search area used is shown; Figure 16 A template for deriving the parameters of the LIC for IBC is shown; Figure 17 Sample points used to derive the IBC-LIC parameters for the template are shown; Figure 18 An adjusted reference template is shown when the RR-IBC is horizontally flipped; Figure 19 An adjusted reference template is shown when the RR-IBC is vertically flipped; Figure 20 A flowchart of a method for video processing according to embodiments of the present disclosure is shown; and Figure 21 A block diagram of a computing device in which various embodiments of the present disclosure may be implemented is shown.
[0012] In all the accompanying drawings, the same or similar reference numerals usually refer to the same or similar elements. Detailed Implementation
[0013] The principles of this disclosure will now be described with reference to some embodiments. It should be understood that these embodiments are described for illustrative purposes only and to help those skilled in the art understand and implement this disclosure, and do not imply any limitation on the scope of this disclosure. In addition to the methods described below, the disclosure described herein can be implemented in various other ways.
[0014] In the following description and claims, unless otherwise defined, all scientific and technical terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0015] The terms "an embodiment," "embodiment," "example embodiment," etc., used in this disclosure refer to embodiments that may include specific features, structures, or characteristics, but not every embodiment is required to include that specific feature, structure, or characteristic. Furthermore, these phrases do not necessarily refer to the same embodiment. Additionally, when a specific feature, structure, or characteristic is described in conjunction with an example embodiment, whether explicitly described or not, it is believed that such a feature, structure, or characteristic affecting its relation to other embodiments is within the knowledge of those skilled in the art.
[0016] It should be understood that although the terms “first” and “second”, etc., can be used to describe various elements, these elements should not be limited to these terms. These terms are used only to distinguish one element from another. For example, a first element may be referred to as a second element, and similarly, a second element may be referred to as a first element, without departing from the scope of the exemplary embodiments. As used herein, the term “and / or” includes any and all combinations of one or more of the listed terms.
[0017] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit the exemplary embodiments. As used herein, the singular forms “a,” “an,” and “the” are also intended to include the plural forms unless the context clearly indicates otherwise. It should also be understood that the terms “comprising,” “including,” “having,” “having,” “containing,” and / or “comprising” as used herein indicate the presence of the said features, elements, and / or components, but do not exclude the presence or addition of one or more other features, elements, components, and / or combinations thereof.
[0018] Example Environment Figure 1 This is a block diagram illustrating an example video encoding / decoding system 100 from which the techniques of this disclosure may be utilized. As shown, the video encoding / decoding system 100 may include a source device 110 and a destination device 120. The source device 110 may also be referred to as a video encoding device, and the destination device 120 may also be referred to as a video decoding device. In operation, the source device 110 may be configured to generate encoded video data, and the destination device 120 may be configured to decode the encoded video data generated by the source device 110. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0019] Video source 112 may include sources such as video capture devices. Examples of video capture devices include, but are not limited to, interfaces for receiving video data from video content providers, computer graphics systems for generating video data, and / or combinations thereof.
[0020] Video data may include one or more images. Video encoder 114 encodes the video data from video source 112 to generate a bitstream. The bitstream may include a sequence of bits forming a codec representation of the video data. The bitstream may include codec images and associated data. The codec images are codec representations of images. The associated data may include sequence parameter sets, image parameter sets, and other syntax structures. I / O interface 116 may include a modulator / demodulator and / or a transmitter. Encoded video data can be directly transmitted to destination device 120 via network 130A through I / O interface 116. Encoded video data may also be stored on storage medium / server 130B for access by destination device 120.
[0021] The destination device 120 may include an I / O interface 126, a video decoder 124, and a display device 122. The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may acquire encoded video data from the source device 110 or the storage medium / server 130B. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to a user. The display device 122 may be integrated with the destination device 120, or it may be external to the destination device 120, which is configured to interface with an external display device.
[0022] The video encoder 114 and the video decoder 124 can operate according to video compression standards, such as the High Efficiency Video Codec (HEVC) standard, the Multi-Functional Video Codec (VVC) standard, and other existing and / or further standards.
[0023] Figure 2 This is a block diagram illustrating an example of a video encoder 200 according to some embodiments of the present disclosure. The video encoder 200 may be... Figure 1 An example of a video encoder 114 in system 100 is shown.
[0024] The video encoder 200 can be configured to implement any or all of the technologies disclosed herein. Figure 2 In the example, the video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video encoder 200. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0025] In some embodiments, the video encoder 200 may include a segmentation unit 201, a prediction unit 202, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213, and an entropy coding unit 214. The prediction unit 202 may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205, and an intra-frame prediction unit 206.
[0026] In other examples, the video encoder 200 may include more, fewer, or different functional components. In one example, the prediction unit 202 may include an intra-block copy (IBC) unit. The IBC unit can perform prediction in an IBC mode, where at least one reference picture is the picture in which the current video block is located.
[0027] Furthermore, although some components (such as motion estimation unit 204 and motion compensation unit 205) can be integrated, for interpretable purposes, these components are... Figure 2 The examples are shown separately.
[0028] The segmentation unit 201 can segment an image into one or more video blocks. The video encoder 200 and the video decoder 300 can support various video block sizes.
[0029] The mode selection unit 203 can select one of several codec modes (intra-frame codec or inter-frame codec) based, for example, on the error result, and provide the resulting intra-frame or inter-frame codec block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 to reconstruct the coded block for use as a reference image. In some examples, the mode selection unit 203 can select an intra-frame / inter-frame joint prediction (CIIP) mode, where prediction is based on inter-frame prediction signals and intra-frame prediction signals. In the case of inter-frame prediction, the mode selection unit 203 can also select a resolution for the block based on the motion vector (e.g., sub-pixel precision or integer pixel precision).
[0030] To perform inter-frame prediction on the current video block, motion estimation unit 204 can generate motion information for the current video block by comparing one or more reference frames from buffer 213 with the current video block. Motion compensation unit 205 can determine the predicted video block for the current video block based on the motion information and decoded samples of images from buffer 213 other than the image associated with the current video block.
[0031] The motion estimation unit 204 and the motion compensation unit 205 can perform different operations on the current video block, for example, depending on whether the current video block is in an I-strip, P-strip, or B-strip. As used herein, an "I-strip" can refer to a portion of an image composed of macroblocks, all of which are based on macroblocks within the same image. Furthermore, as used herein, in some aspects, "P-strip" and "B-strip" can refer to portions of an image composed of macroblocks that do not depend on macroblocks within the same image.
[0032] In some examples, motion estimation unit 204 can perform unidirectional prediction on the current video block, and can search reference images in list 0 or list 1 to find a reference video block for the current video block. Motion estimation unit 204 can then generate a reference index indicating the reference image containing the reference video block in list 0 or list 1, and a motion vector indicating the spatial displacement between the current video block and the reference video block. Motion estimation unit 204 can output the reference index, prediction direction indicator, and motion vector as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video block indicated by the motion information of the current video block.
[0033] Alternatively, in other examples, motion estimation unit 204 can perform bidirectional prediction on the current video block. Motion estimation unit 204 can search for reference images in list 0 to find a reference video block for the current video block, and can also search for reference images in list 1 to find another reference video block for the current video block. Motion estimation unit 204 can then generate reference indices indicating the reference images containing the reference video blocks in lists 0 and 1, and motion vectors indicating the spatial displacement between the reference video blocks and the current video block. Motion estimation unit 204 can output the reference index and motion vector of the current video block as motion information for the current video block. Motion compensation unit 205 can generate a predicted video block for the current video block based on the reference video blocks indicated by the motion information of the current video block.
[0034] In some examples, the motion estimation unit 204 can output a complete set of motion information for use in the decoder's decoding process. Alternatively, in some embodiments, the motion estimation unit 204 can reference the motion information of another video block to transmit the motion information of the current video block via a signal. For example, the motion estimation unit 204 can determine that the motion information of the current video block is sufficiently similar to the motion information of neighboring video blocks.
[0035] In one example, the motion estimation unit 204 may indicate a value to the video decoder 300 in the syntax structure associated with the current video block, which indicates that the current video block has the same motion information as another video block.
[0036] In another example, motion estimation unit 204 may identify another video block and motion vector difference (MVD) in the syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. Video decoder 300 can use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0037] As discussed above, the video encoder 200 can transmit motion vectors via signals in a predictive manner. Two examples of predictive signaling techniques that can be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and Merge Pattern Signaling.
[0038] Intra-prediction unit 206 can perform intra-prediction on the current video block. When intra-prediction unit 206 performs intra-prediction on the current video block, it can generate prediction data for the current video block based on decoded samples of other video blocks in the same frame. The prediction data for the current video block can include the predicted video block and various syntax elements.
[0039] The residual generation unit 207 can generate residual data for the current video block by subtracting (e.g., indicated by a minus sign) multiple predicted video blocks from the current video block. The residual data for the current video block may include residual video blocks corresponding to different sample components of the samples in the current video block.
[0040] In other examples, such as in skip mode, residual data may not exist for the current video block, and residual generation unit 207 may not perform subtraction operations.
[0041] The transform processing unit 208 can generate one or more transform coefficient video blocks for the current video block by applying one or more transforms to the residual video block associated with the current video block.
[0042] After the transform processing unit 208 generates a transform coefficient video block associated with the current video block, the quantization unit 209 can quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0043] The inverse quantization unit 210 and the inverse transform unit 211 can apply inverse quantization and inverse transform to the transform coefficient video block respectively to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 can add the reconstructed residual video block to the corresponding samples of one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current video block for storage in the buffer 213.
[0044] After the video block is reconstructed by reconstruction unit 212, a loop filtering operation can be performed to reduce video block artifacts in the video block.
[0045] Entropy encoding unit 214 can receive data from other functional components of video encoder 200. When entropy encoding unit 214 receives data, it can perform one or more entropy encoding operations to generate entropy-encoded data and output a bitstream including the entropy-encoded data.
[0046] Figure 3 This is a block diagram illustrating an example of a video decoder 300 according to some embodiments of the present disclosure. The video decoder 300 may be... Figure 1 An example of video decoder 124 in system 100 is shown.
[0047] The video decoder 300 can be configured to perform any or all of the technologies disclosed herein. Figure 3 In the example, the video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared among the various components of the video decoder 300. In some examples, the processor can be configured to perform any or all of the techniques described in this disclosure.
[0048] exist Figure 3 In the example, the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, a reconstruction unit 306, and a buffer 307. In some examples, the video decoder 300 can perform a decoding process that is generally contrasted with the encoding process described with respect to the video encoder 200.
[0049] Entropy decoding unit 301 can retrieve the encoded bitstream. The encoded bitstream may include entropy-encoded video data (e.g., encoded video data blocks). Entropy decoding unit 301 can decode the entropy-encoded video data, and based on the entropy-encoded video data, motion compensation unit 302 can determine motion information including motion vectors, motion vector precision, reference picture list indices, and other motion information. Motion compensation unit 302 can determine this information, for example, by performing AMVP and Merge mode. AMVP is used, which includes deriving several most likely candidates based on data from neighboring blocks (PBs) and reference pictures. Motion information typically includes horizontal motion vector displacement values and vertical motion vector displacement values, one or two reference picture indices, and, in the case of a prediction region in a B-strip, an identifier of which reference picture list is associated with each index. As used herein, in some aspects, "Merge mode" may refer to deriving motion information from spatially or temporally neighboring blocks.
[0050] The motion compensation unit 302 can generate motion compensation blocks and can perform interpolation based on an interpolation filter. The identifier of the interpolation filter to be used, with sub-pixel accuracy, can be included in the syntax element.
[0051] The motion compensation unit 302 can use the interpolation filter used by the video encoder 200 during the encoding of a video block to calculate the interpolated values for sub-integer pixels of the reference block. The motion compensation unit 302 can determine the interpolation filter used by the video encoder 200 based on the received syntax information, and the motion compensation unit 302 can use the interpolation filter to generate a prediction block.
[0052] Motion compensation unit 302 may use at least some of the syntax information to determine the size of the blocks used to encode (multiple) frames and / or (multiple) stripes of the encoded video sequence, segmentation information describing how each macroblock of the image of the encoded video sequence is segmented, a pattern indicating how each segment is encoded, one or more reference frames (and a list of reference frames) for each inter-frame coded block, and other information for decoding the encoded video sequence. As used herein, in some aspects, a “strip” can refer to a data structure that can be decoded independently of other stripes of the same image in terms of entropy encoding / decoding, signal prediction, and residual signal reconstruction. A strip can be an entire image or a region of an image.
[0053] Intra-prediction unit 303 can use, for example, an intra-prediction mode received in the bitstream to form prediction blocks from spatially adjacent blocks. Dequantization unit 304 dequantizes (i.e., dequantizes) the quantized video block coefficients provided in the bitstream and decoded by entropy decoding unit 301. Inverse transform unit 305 applies the inverse transform.
[0054] The reconstruction unit 306 can obtain the decoded block, for example, by adding the residual block to the corresponding predicted block generated by the motion compensation unit 302 or the intra-frame prediction unit 303. If necessary, a deblocking filter can also be applied to filter the decoded block to remove block artifacts. The decoded video block is then stored in a buffer 307, which provides a reference block for subsequent motion compensation / intra-frame prediction and also generates decoded video for presentation on a display device.
[0055] Some exemplary embodiments of this disclosure will be described in detail below. It should be understood that section headings are used in this document for ease of understanding and not to limit the embodiments disclosed in a section to that section only. Furthermore, although some embodiments are described with reference to multi-functional video codecs or other specific video codecs, the disclosed techniques are also applicable to other video codec techniques. Furthermore, although some embodiments describe video encoding and decoding steps in detail, it should be understood that the corresponding decoding steps for de-encoding and de-decoding will be implemented by the decoder. Additionally, the term video processing includes video encoding or compression, video decoding or decompression, and video transcoding, wherein video pixels are represented from one compression format to another compression format or at different compression bitrates.
[0056] 1. Brief Overview This disclosure relates to video codec techniques. Specifically, it relates to intra-block copying (IBC), how and / or whether to combine IBC with local illumination compensation, and other codec tools in image / video codecs. It can be applied to existing video codec standards such as HEVC or multi-function video codecs (VVC). It can also be applied to future video codec standards or video codecs.
[0057] 2. Introduction Video codec standards have primarily evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, while ISO / IEC developed MPEG-1 and MPEG-4 Vision. The two organizations jointly developed the H.262 / MPEG-2 video standard, the H.264 / MPEG-4 Advanced Video Codec (AVC) standard, and the H.265 / HEVC standard. Starting with H.262, video codec standards are based on a hybrid video codec architecture, utilizing temporal prediction plus transform coding. To explore future video codec technologies beyond HEVC, the Joint Video Exploration Team (JVET) was established in 2015 by VCEG and MPEG. Since then, JVET has adopted many new methods and incorporated them into reference software called the Joint Exploration Model (JEM). In April 2018, the Joint Video Experts Group (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to develop the VVC standard, with the goal of reducing the bit rate by 50% compared to HEVC.
[0058] 2.1 Encoding / decoding streams of typical video codecs Figure 4An example of a VVC encoder block diagram is shown, comprising three loop filtering blocks: Deblocking Filter (DF), Sample Adaptive Compensation (SAO), and ALF. Unlike DF, which uses predefined filters, SAO and ALF utilize the original samples of the current image, reducing the mean square error between the original and reconstructed samples by adding an offset and applying a Finite Impulse Response (FIR) filter, respectively, and by leveraging the side information transmitted through the signal transmission offset and filter coefficients via encoding and decoding. ALF is located at the final processing stage of each image and can be viewed as a tool attempting to capture and repair artifacts caused by previous stages.
[0059] 2.2 Intra-mode encoding and decoding with 67 intra-prediction modes Figure 5 Sixty-seven intra-frame prediction modes are shown. This is to capture arbitrary edge directions presented in natural video, such as... Figure 5 As shown, the number of directional intra-prediction modes has been expanded from 33 used in HEVC to 65, while the planar mode and DC mode remain unchanged. These denser directional intra-prediction modes are applicable to all block sizes and both luma intra-prediction and chroma intra-prediction.
[0060] In HEVC, each intra-coded block has a square shape, and the length of each side is a power of 2. Therefore, division is not required to generate intra-prediction values using DC mode. In VVC, blocks can have rectangular shapes, which generally requires division for each block. To avoid division for DC prediction, only the longer side is used to calculate the average of non-square blocks.
[0061] 2.2.1 Wide-angle intra-frame prediction Although 67 modes are defined in VVC, the precise prediction direction for a given intra-prediction mode index depends on the block shape. Regular angular intra-prediction directions are defined clockwise from 45 degrees to -135 degrees. In VVC, for non-square blocks, several regular angular intra-prediction modes are adaptively replaced by wide-angle intra-prediction modes. The replaced modes are transmitted via signaling using the original mode index, which is then remapped to the wide-angle mode index after resolution. The total number of intra-prediction modes remains unchanged at 67, and the intra-mode encoding / decoding method remains unchanged.
[0062] Figure 6A and Figure 6B The diagram shows reference samples for wide-angle intra-frame prediction. To support these prediction directions, an upper reference of length 2W+1 and a left reference of length 2H+1 are defined, as follows: Figure 6A and Figure 6B As shown. Figure 6A and Figure 6BReference samples for wide-angle intra-frame prediction are shown.
[0063] The number of modes replaced in the wide-angle directional mode depends on the block aspect ratio. The replaced intra-prediction modes are shown in Table 1.
[0064] Table 1 – Intra-prediction modes replaced by wide-angle mode
[0065] like Figure 7 As shown, in the case of wide-angle intra-frame prediction, two vertically adjacent predicted samples can use two non-adjacent reference samples. Therefore, a low-pass reference sample filter and edge smoothing are applied to wide-angle prediction to reduce the increased gap. The negative impact of wide-angle mode. If the wide-angle mode represents a non-fractional offset. There are 8 wide-angle modes that satisfy this condition, namely [-14, -12, -10, -6, 72, 76, 78, 80]. When a block is predicted through these modes, the samples in the reference cache are directly copied without applying any interpolation. With this modification, the number of samples required for smoothing is reduced. In addition, it aligns the design of non-fractional modes in regular prediction modes with that of wide-angle modes.
[0066] In VVC, in addition to 4:2:0, 4:2:2 and 4:4:4 chroma formats are also supported. The chroma derivation mode (DM) derivation table for the 4:2:2 chroma format was originally ported from HEVC, with the number of entries expanded from 35 to 67 to align with the expansion of intra-prediction modes. Since the HEVC specification does not support prediction angles below -135 degrees and above 45 degrees, the luma intra-prediction modes in the range of 2 to 5 are mapped to 2. Therefore, the chroma DM derivation table for the 4:2:2 chroma format is updated by replacing some values in the mapping table entries to more accurately translate the prediction angles for chroma blocks.
[0067] 2.3 Inter-frame prediction For each inter-frame prediction CU, motion parameters consist of a motion vector, a reference picture index, and a reference picture list usage index, along with additional information required for inter-frame prediction sample generation using new encoding / decoding features of the VVC. Motion parameters can be transmitted via signaling in an explicit or implicit manner. When a CU is encoded / decoded in skip mode, the CU is associated with a PU and does not have significant residual coefficients, encoded motion vector increments, or reference picture indices. A Merge mode is defined, whereby motion parameters for the current CU are obtained from neighboring CUs, including spatial and temporal candidates, as well as additional scheduling introduced in the VVC. The Merge mode can be applied to any inter-frame prediction CU, not just skip mode. An alternative to the Merge mode is explicit transmission of motion parameters, where the motion vector for each reference picture list, the corresponding reference picture index, the reference picture list usage flag, and other necessary information are explicitly transmitted via signaling for each CU.
[0068] 2.4 Intra-Block Copy (IBC) Intra-Block Copy (IBC) is a tool used in the HEVC extension on SCC. It is well known to significantly improve the encoding and decoding efficiency of screen content material. Since IBC mode is implemented as a block-level encoding / decoding mode, block matching (BM) is performed at the encoder to find the optimal block vector (or motion vector) for each CU. Here, the block vector is used to indicate the displacement from the current block to a reference block that has already been reconstructed within the current image. The luma block vector of an IBC-encoded CU is integer-precision. The chroma block vector is also rounded to integer precision. When combined with AMVR, IBC mode can switch between 1-pixel motion vector precision and 4-pixel motion vector precision. IBC-encoded CUs are considered a third prediction mode, distinct from intra-frame or inter-frame encoding / decoding modes. IBC mode is suitable for CUs with a width and height of 64 luma samples or less.
[0069] On the encoder side, hash-based motion estimation for IBC is performed. The encoder performs RD checks on blocks with a width or height no greater than 16 luminance samples. For non-Merge mode, block vector search is first performed using a hash-based search. If the hash search does not return valid candidates, a local search based on block matching is performed.
[0070] In hash-based search, hash key matching (32-bit CRC) between the current block and reference blocks is extended to all allowed block sizes. Hash key calculation for each location in the current image is based on 4×4 sub-blocks. For the larger current block, a hash key match with a reference block is determined when all hash keys of all 4×4 sub-blocks match the hash key at the corresponding reference location. If multiple reference blocks are found to match the hash key of the current block, the block vector cost of each matching reference is calculated, and the one with the lowest cost is selected.
[0071] In block matching search, the search scope is set to cover both the previous CTU and the current CTU.
[0072] At the CU level, IBC mode is transmitted via signaling using a flag, and it can be transmitted via signaling as either IBC AMVP mode or IBC skip / Merge mode as follows: – IBC Skip / Merge Mode: The Merge candidate index is used to indicate which block vector from the list of neighboring candidate IBC codec blocks is used to predict the current block. The Merge list consists of spatial candidates, HMVP candidates, and paired candidates.
[0073] – IBC AMVP Mode: Block vector differences are encoded and decoded in the same way as motion vector differences. The block vector prediction method uses two candidates as prediction values, one from the left nearest neighbor and one from the top nearest neighbor (if IBC encoded and decoded). When either nearest neighbor is unavailable, the default block vector is used as the prediction value. A flag is transmitted via signaling to indicate the index of the block vector prediction value.
[0074] 2.5 Merge Schema with MVD (MMVD) In addition to the implicitly derived motion information being directly used for the Merge pattern of the current CU's prediction sample generation, a Merge pattern with motion vector difference (MMVD) is introduced in VVC. The MMVD flag is transmitted via signaling immediately after the regular Merge flag is sent to indicate whether the MMVD pattern is used by the CU.
[0075] In MMVD, after a Merge candidate is selected, it is further refined through MVD information transmitted via signals. This further information includes a Merge candidate flag, an index specifying the amplitude of motion, and an index indicating the direction of motion. In MMVD mode, one of the top two candidates in the Merge list is selected as the MV basis. The MMVD candidate flag is transmitted via signals to specify which candidate to use between the first and second Merge candidates. Figure 8 A schematic diagram of motion vector scaling for temporal Merge candidates is shown.
[0076] Figure 9A and Figure 9B An example of an MMVD search point is shown. The distance index specifies motion amplitude information and indicates a predefined offset from the starting point. For example... Figure 9A and Figure 9B As shown, the offset is added to the horizontal or vertical component of the starting MV. The relationship between the distance index and the predefined offset is specified in Table 2.
[0077] Table 2 Relationship between Distance Index and Predefined Offset
[0078] The direction index indicates the direction of the MVD relative to the starting point. The direction index can represent the four directions shown in Table 3. It should be noted that the meaning of the MVD sign can vary depending on the information of the starting MV. When the starting MV is a non-predictive MV or a bidirectional predictive MV, and both lists point to the same side of the current image (i.e., both reference POCs are greater than or less than the current image's POC), the sign in Table 3 specifies the sign of the MV offset added to the starting MV. When the starting MV is a bidirectional predictive MV, and the two MVs point to different sides of the current image (i.e., one reference POC is greater than the current image's POC, and the other reference POC is less than the current image's POC), and the POC difference in list 0 is greater than the POC difference in list 1, the sign in Table 3 specifies the sign of the MV offset added to the list 0 MV component of the starting MV, and has the opposite value for the sign of the list 1 MV. Otherwise, if the POC difference in list 1 is greater than the POC difference in list 0, the sign in Table 3 specifies the sign of the MV offset added to the list 1 MV component of the starting MV, and has the opposite value for the sign of the list 0 MV.
[0079] MVD is scaled based on the POC difference in each direction. If the POC differences in the two lists are the same, no scaling is needed. Otherwise, if the POC difference in list 0 is greater than the POC difference in list 1, the MVD of list 1 is scaled by defining the POC difference of L0 as td and the POC difference of L1 as tb, as follows. Figure 8 As shown. If the POC difference of L1 is greater than the POC difference of L0, then the MVD of list 0 is scaled in the same way. If the initial MV is unidirectionally predicted, then the MVD is added to the available MV.
[0080] Table 3 – Symbols of MV Offsets Specifyed by Direction Index
[0081] 2.6 Local Illumination Compensation (LIC) Local Illumination Compensation (LIC) is an encoding / decoding tool that addresses the problem of local illumination variations between the current image and its temporal reference image. LIC is based on a linear model, where a scaling factor and an offset are applied to the reference samples to obtain the predicted samples for the current block. Specifically, LIC can be mathematically modeled by the following equation:
[0082] in In coordinates The prediction signal for the current block at that location; It is composed of motion vectors The reference block it points to; and These are the corresponding scaling factors and offsets applied to the reference block. Figure 10 The LIC procedure is shown. Figure 10 An example of local illumination compensation is shown. Figure 10 In this context, when LIC is applied to a block, the Minimum Mean Square Error (LMSE) method is employed, which minimizes the number of neighboring samples in the current block (i.e., ...). Figure 10 templates in T ) and its corresponding reference sample in the time-domain reference image (i.e. Figure 10 In T0 or T1 The difference between ) is used to derive the LIC parameters (i.e. and The value of ). Furthermore, to reduce computational complexity, both the template sample and the reference template sample are downsampled (adaptive downsampling) to derive the LIC parameters; that is, only Figure 10 The shaded samples in the data were used for derivation. and .
[0083] Figure 11 This shows that no downsampling is applied to the short side. To improve encoding / decoding performance, such as... Figure 11 As shown, no downsampling was performed for the short side.
[0084] 2.7 IBC with Template Matching A proposal was put forward for both the IBC Merge mode and the IBC AMVP mode, which also combine template matching with IBC.
[0085] Compared to the Merge list used in the regular IBC Merge mode, the IBC-TM Merge list has been modified so that candidates are selected based on a deduplication method, where the motion distance between candidates is the same as in the regular TM Merge mode. The zero-motion satisfying condition (which is meaningless in relation to intra-frame encoding and decoding) has been replaced by motion vectors to the left (-W, 0), top (0, -H), and top-left (-W, -H) CUs, and then, if necessary, the list is satisfied with the leftmost one without deduplication.
[0086] In IBC-TM Merge mode, the selected candidate is refined using a template matching method before the RDO or decoding process. IBC-TM Merge mode competes with the regular IBC Merge mode, and the TM-Merge flag is transmitted via signaling.
[0087] In the IBC-TM AMVP mode, up to three candidates are selected from the IBC Merge list. Each of the three selected candidates is refined using a template matching method and ranked according to its resulting template matching cost. Then, typically only the first two are considered during motion estimation.
[0088] Figure 12 The IBC reference region, which depends on the current CU position, is shown. This is because the IBC motion vector is constrained to integers and, as... Figure 12 Within the reference area shown, template matching refinement is therefore fairly straightforward for both IBC-TM Merge and AMVP modes. Thus, in IBC-TM Merge mode, all refinements are performed with integer precision, and in IBC-TM AMVP mode, they are performed with either integer precision or 4-pixel precision. In both cases, the refined motion vectors in each refinement step must adhere to the constraints of the reference area.
[0089] 2.8 IBC Merge Mode with Block Vector Difference The IBC Merge mode with block vector difference is shown below.
[0090] The distance set is {1 pixel, 2 pixels, 4 pixels, 8 pixels, 12 pixels, 16 pixels, 24 pixels, 32 pixels, 40 pixels, 48 pixels, 56 pixels, 64 pixels, 72 pixels, 80 pixels, 88 pixels, 96 pixels, 104 pixels, 112 pixels, 120 pixels, 128 pixels}, and the BVD direction is two horizontal directions and two vertical directions.
[0091] The basic candidates are selected from the top five candidates in the reordered IBC Merge list. And based on the SAD cost between the template (the row above and column to the left of the current block) and its reference for each basic candidate, all possible MBVD refinement positions (20×4) are reordered. Finally, the top 8 refinement positions with the lowest template SAD cost are reserved as available positions for MBVD index encoding and decoding.
[0092] 2.9 Reconstructing the Reordered IBC (RR-IBC) Screen content codecs such as Intra-Block Copy (IBC) generate predictive blocks by directly copying previously encoded reference regions from the same image. Figure 13 An example of symmetry in a screen content image is shown. Symmetry is frequently observed in video content, especially in text character areas and computer-generated graphics within sequences of screen content, such as... Figure 13 As shown. Therefore, specific screen content encoding / decoding tools that take into account symmetry will effectively compress such video content.
[0093] A Reconstruction Reordering IBC (RR-IBC) mode is proposed for screen content video encoding and decoding. When applied, samples in the reconstructed block are flipped according to the flip type of the current block. On the encoder side, the original block is flipped before motion search and residual calculation, while the prediction block is derived without flipping. On the decoder side, the reconstructed block is flipped back to recover the original block.
[0094] Two flipping methods are supported for blocks encoded with RR-IBC: horizontal flipping and vertical flipping. Syntax flags are first signaled for blocks encoded with IBC AMVP, indicating whether the reconstruction has been flipped. If it has been flipped, another flag is further signaled to specify the flipping type. For IBC Merge, the flipping type is inherited from the neighboring block without syntax signaling. Considering horizontal or vertical symmetry, the current block and the reference block are typically aligned horizontally or vertically. Therefore, when horizontal flipping is applied, the vertical component of the BV is not signaled and is presumed to be equal to 0. Similarly, when vertical flipping is applied, the horizontal component of the BV is not signaled and is presumed to be equal to 0.
[0095] Figure 14A A schematic diagram of BV adjustment for horizontal flipping is shown. Figure 14B A schematic diagram of BV adjustment for vertical flip is shown. To better utilize symmetry, a flip-aware BV adjustment method is applied to refine the block vector candidates. For example, as... Figure 14A and Figure 14B As shown, and These represent the coordinates of the center sample points of neighboring blocks and the center sample point of the current block, respectively. and These represent the BV of the neighboring block and the BV of the current block, respectively. This is especially relevant when the neighboring block is encoded and decoded using a horizontal flipping method. The horizontal component is not inherited directly from the neighboring block BV, but rather by adding the motion displacement. The horizontal component (represented as) ) and is calculated, that is Similarly, in the case where adjacent blocks are encoded and decoded using vertical flipping, The vertical component is added by the motion displacement. The vertical component (represented as) ) and is calculated, that is .
[0096] 2. Intra-frame template matching (10 frames) Intra-frame template matching prediction (intra-frame TMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches the reconstructed portion of the current frame for the template most similar to the current template and uses the corresponding block as the prediction block. The encoder then transmits the use of this mode via signaling, and the same prediction operation is performed on the decoder side.
[0097] Figure 15 The intra-frame template matching search region used is shown. The prediction signal is obtained by comparing the L-shaped causal nearest neighbors of the current block with... Figure 15 It is generated by matching another block in a predefined search region, which consists of the following parts: R1: Current CTU R2: Top left CTU, R3: Above CTU, R4: Left CTU.
[0098] SAD was used as the cost function.
[0099] Within each region, the decoder searches for the template with the smallest SAD relative to the current template and uses its corresponding block as the prediction block.
[0100] Dimensions of all regions ( ) is set to block dimension ( Proportional to each other, with a fixed number of SADs per pixel for comparison. That is:
[0101]
[0102] in" " is a constant that controls the trade-off between gain and complexity. In practice, " "Equals 5."
[0103] For CUs with width and height dimensions less than or equal to 64, the intra-frame template matching tool is enabled. The maximum CU size for intra-frame template matching is configurable.
[0104] When DIMD is not used in the current CU, the intra-template matching prediction mode is transmitted at the CU level via a dedicated flag.
[0105] 3. Problem In the current design of IBC, the entire block is copied directly from the reconstructed region in the current image. However, the encoding and decoding efficiency of IBC can be limited when lighting changes occur within the current image.
[0106] 4. Detailed Solution The detailed embodiments described below should be considered as examples for explaining general concepts. These embodiments should not be interpreted in a narrow sense. Furthermore, these embodiments can be combined in any way.
[0107] In this disclosure, intra-block copying (IBC) may not be limited to current IBC techniques, but can be interpreted as a technique for obtaining a reference (or predicted) block using samples in the current strip / slice / sub-picture / image / other video unit (e.g., CTU line) that excludes conventional intra-prediction methods.
[0108] In this disclosure, Local Illumination Compensation (LIC) is not limited to current LIC techniques. LIC can refer to inter-frame prediction techniques that model the local illumination variation between the current block and its predicted block as a function of the local illumination variation between the current block template and the reference block template. The parameters of the function can be given by linear equations (e.g., α ×p[x]+ β It can be expressed as a nonlinear equation.
[0109] In this disclosure, CIBCIP (or IBC-CIIP) may refer to a codec tool that combines intra block copying (IBC) and intra prediction. It is a codec tool that uses both IBC and intra prediction to obtain block predictions.
[0110] In this disclosure, IBC-GPM can refer to an encoding / decoding tool that uses IBC to obtain predictions of at least one sub-segment in a video unit when the video unit is geometrically divided into more than one sub-segment.
[0111] In the following discussion, IBC can be replaced by other codec tools that rely on encoded / decoded / reconstructed information within the same region, such as palettes or intra-frame template matching.
[0112] IBC with LIC 1. It was proposed that refined prediction samples can be derived as follows: ,in Let f represent the predicted sample points of a video unit, and f is any function.
[0113] a. In one example, ,in α and β The parameter represents the linear equation.
[0114] b. In one example, a function or at least one of its arguments can be deduced based on the template of the current block.
[0115] c. In one example, the predicted sample points can be derived using IBC.
[0116] i. In one example, a function or at least one of its parameters can be deduced based on a template of a reference block of the current block, wherein the reference block can be located by a block vector (BV).
[0117] d. In one example, one or more offsets can be used to modify one or more derivation parameters.
[0118] i. In one example, one or more offsets may be transmitted by signaling, derived, or predefined.
[0119] ii. In one example, whether and / or how to use offsets to modify one or more parameters can be determined by signal transmission, predefined, or using codec information.
[0120] 2. It is proposed that LIC can be applied to compensate for the prediction (reconstruction) of video cells, where IBC is used to obtain the prediction (reconstruction) of video cells. It is denoted as IBC-LIC.
[0121] a. In one example, linear or nonlinear equations / models can be used in IBC-LIC to compensate for the prediction of video cells.
[0122] i. In one example, a linear equation could be ,in This represents the prediction of the video unit, and α and β The parameter represents the linear equation.
[0123] ii. In one example, the equation could be , where c i It is a parameter and x i This indicates encoding / decoding information.
[0124] 1) In one example, the encoding / decoding information may refer to reconstructed / referenced / predicted samples, or values calculated using reconstructed / referenced / predicted samples (e.g., gradients), or location information of reconstructed / referenced / predicted samples.
[0125] b. In one example, the parameters of the equations used in IBC-LIC can be predefined or transmitted via signals in the bitstream.
[0126] c. In one example, the parameters of the equations used in IBC-LIC can be derived using encoding / decoding information.
[0127] i. In one example, the current template and reference template, composed of the reconstructed (adjacent or non-adjacent) samples of the video unit's neighbors, can be used to derive parameters. Example in... Figure 16 It is shown in the middle.
[0128] 1) In one example, the reference template can be derived using the BV used to obtain the prediction of the video unit.
[0129] a) In one example, when BV is a fraction BV, it can be rounded to an integer BV.
[0130] i. In one example, the clipping operation can be used when rounding the fraction BV.
[0131] ii. Alternatively, fractional BV is still used to derive the reference template.
[0132] 1. In one example, the same interpolation method used to derive the prediction of the video unit was used to derive the reference template.
[0133] 2. Alternatively, different interpolation methods, such as different interpolation taps, are used to derive the reference template, unlike the interpolation methods used to derive the predictions for the video units.
[0134] a. In one example, a 2-tap interpolation filter can be used.
[0135] iii. In one example, whether and / or how fractional BV is used to derive the reference template may depend on the encoding / decoding information.
[0136] 1. In one example, the encoding / decoding information can be color components.
[0137] a. In one example, fractional BV is used to derive a reference template for the luminance and / or chrominance components.
[0138] b. In another example, fractional BV cannot be used to derive a reference template for the chromaticity component.
[0139] i. In one example, for the chromaticity component, the fractional BV is rounded to the integer BV.
[0140] 2. In one example, the encoding / decoding information can refer to the template type.
[0141] a. In one example, the fraction BV can be used only in the top left template.
[0142] iv. Alternatively, IBC-LIC may not be applied with fractional BV.
[0143] b) In one example, predefined parameters can be used when the reference template is not available.
[0144] i. Alternatively, IBC-LIC may not be used when the reference template is unavailable.
[0145] c) In one example, padding can be used when one or more samples of the reference template are unavailable.
[0146] 2) In one example, some or all samples of the current template and the reference template can be used to derive parameters.
[0147] 3) In one example, the least squares error method can be used to derive parameters.
[0148] 4) In one example, methods used for solving linear / nonlinear equations in other codec tools (e.g., MSE minimization) can be used to derive parameters.
[0149] a) In one example, the method could refer to the Cholesky decomposition used in ALF and its variants.
[0150] b) In one example, the method could refer to the LDL decomposition used in CCCM and its variants.
[0151] c) In one example, the method could refer to Gaussian elimination used in CCCM and its variants.
[0152] 5) In one example, minimizing MSE can be used as a metric for solving linear / nonlinear equations.
[0153] a) In one example, other metrics can be used to solve linear / nonlinear equations, such as SSE or the mean of SSE.
[0154] b) In one example, subjective metrics can be used to solve linear / nonlinear equations, such as SSIM.
[0155] ii. In one example, the parameters can be derived using the current template and the reference template in the same way as for LIC for inter-frame prediction.
[0156] iii. In one example, more than one method can be used to derive the parameters for IBC-LIC.
[0157] 1) In one example, the method used can be determined by signal transmission, or by predefined methods, or by using codec information.
[0158] 2) In one example, more than one method can be used to derive more than one set of parameters, and the predictions of the current video unit modified with more than one set of parameters can be fused.
[0159] a) In one example, the weights used for fusion can be predefined, transmitted via signaling, or determined using codec information.
[0160] d. In one example, some or all of the predicted samples of a video unit can be compensated using IBC-LIC.
[0161] 3. In one example, IBC-LIC can be applied to IBC AMVP mode and / or IBC Merge mode.
[0162] a. In one example, IBC AMVP mode can refer to normal IBC AMVP, or TM-based IBC AMVP, or RR-IBC AMVP mode, or CIBCIP (IBC-CIIP), or IBC-GPM, or other IBC AMVP modes in which the BV prediction value is derived and the BVD is transmitted / derived through signal transmission.
[0163] b. In one example, IBC Merge mode can refer to normal IBC Merge mode, or IBC-TM Merge mode, or IBC-MBVD mode, or CIBCIP (IBC-CIIP), or IBC-GPM.
[0164] i. In one example, IBC-LIC can be applied to a specific IBC Merge candidate type.
[0165] ii. In another example, IBC-LIC may not be allowed to be applied to a specific IBC Merge candidate type.
[0166] 1) In one example, the Merge candidate type can refer to the RR-IBC candidate.
[0167] c. Alternatively, IBC-LIC may not be permitted to be used with one or more of the above IBC codec tools.
[0168] i. In one example, the IBC codec tool could refer to RR-IBC, or CIBCIP (IBC-CIIP), or IBC-GPM.
[0169] d. In one example, whether and / or how IBC-LIC is applied for IBC AMVP mode and / or IBC Merge mode can be determined by signal transmission or by encoding / decoding information.
[0170] e. In one example, one or more syntax elements may be signaled to indicate whether and / or how IBC-LIC is applied for IBC AMVP mode and / or IBC Merge mode.
[0171] f. In one example, whether and / or how IBC-LIC can be inherited for the IBC Merge mode.
[0172] i. In one example, whether and / or how IBC-LIC inheritance is applied can be associated with the Merge candidate.
[0173] 1) In one example, IBC-LIC can be disabled when the Merge candidate is a specific Merge type.
[0174] a) In one example, a specific type could refer to RR-IBC.
[0175] ii. In one example, whether IBC-LIC is applied for IBC Merge mode can be deduced.
[0176] 1) In one example, a template-based matching method can be used.
[0177] a) In one example, when IBC-LIC is applied, the first cost (C1) can be computed between the prediction and reconstruction of the template of the current video unit; when IBC-LIC is not applied, the second cost (C2) can be computed between the prediction and reconstruction of the template of the current video unit.
[0178] i. In one example, when When IBC-LIC can be applied; when In this case, IBC-LIC may not be applied.
[0179] ii. In one example, when When IBC-LIC can be applied; when In this case, IBC-LIC may not be applied, where S is the scaling factor.
[0180] iii. In one example, when When IBC-LIC can be applied; when In this case, IBC-LIC may not be applied, where O is the offset.
[0181] 4. In one example, IBC-LIC can be used during the reordering of the BV candidate list.
[0182] a. In one example, the BV candidate list could refer to the IBC AMVP candidate list and / or the IBC Merge candidate list.
[0183] i. In one example, the BV candidate list may refer to the IBC regular Merge list and / or the IBC TM Merge list and / or the IBC-MBVD Merge list.
[0184] b. In one example, two rounds of reordering can be used to reorder the BV candidate list.
[0185] i. In one example, IBC-LIC can be applied to the first reordering, or the second reordering, or both the first and second reordering.
[0186] c. In one example, whether and / or how to apply IBC-LIC during the BV candidate list reordering process can be the same as applying IBC-LIC to the current video unit.
[0187] d. In one example, when IBC-LIC is used as a BV candidate, the template prediction can be refined using the IBC-LIC model.
[0188] i. In one example, neighboring reconstructed samples of the left / top template and / or neighboring reconstructed samples of the reference template of the left / top template can be used to derive IBC-LIC parameters. Example in Figure 17 It is shown in the middle.
[0189] 1) In one example, the reference template for the left / top template can be derived using the BV associated with the BV candidate.
[0190] 2) In one example, the reconstructed samples of the left / top template and / or the reconstructed samples of the reference template of the left / top template and / or the left / top template can be constrained in the IBC cache.
[0191] 3) In one example, IBC-LIC may not be used when the neighboring reconstructed samples of the left / top template and / or the neighboring reconstructed samples of the reference template of the left / top template and / or the left / top template are outside the IBC cache.
[0192] a) Alternatively, when the neighboring reconstructed samples of the left / top template and / or the neighboring reconstructed samples of the reference template of the left / top template and / or the left / top template are outside the IBC cache, the samples outside the IBC cache can be filled with samples in the IBC cache, and IBC-LIC can be used.
[0193] e. In one example, IBC-LIC can be applied to one or more BV candidates in the BV candidate list.
[0194] i. In one example, whether to apply IBC-LIC to a BV candidate may depend on the type of BV candidate.
[0195] 1) In one example, the type of BV candidate can refer to spatial BV candidate, or HMVP BV candidate, or paired BV candidate, or default BV candidate, or other types of BV candidate.
[0196] ii. In one example, IBC-LIC can be applied to a subset of BV candidates in the list.
[0197] f. In one example, when the BV candidate is RR-IBC (e.g., the RR-IBC flip type is horizontal or vertical), IBC-LIC may not be used.
[0198] i. As an alternative, IBC-LIC can be used.
[0199] 1) In one example, the original BV of the BV candidate can be used to derive the IBC-LIC parameters.
[0200] 2) In one example, the adjusted BV of the BV candidate based on the RR-IBC inversion type can be used to derive the IBC-LIC parameters.
[0201] g. In one example, a set of IBC-LIC parameters can be derived.
[0202] i. In one example, the derived set of IBC-LIC parameters can be used in the left and / or top templates.
[0203] h. In one example, multiple sets of IBC-LIC parameters can be derived.
[0204] i. In one example, the first set of IBC-LIC parameters can be used in the left template.
[0205] ii. In one example, the second set of IBC-LIC parameters can be used in the template above.
[0206] i. In one example, whether and / or how IBC-LIC is applied to BV candidate list reordering can depend on the specific codec tool used with the BV candidate list.
[0207] i. In one example, when the codec tool is in IBC AMVP mode and / or IBC regular Merge mode and / or IBC TM Merge mode and / or IBC-MBVD Merge mode, IBC-LIC can be applied to BV candidate list reordering.
[0208] ii. Alternatively, when the codec tool is in IBC AMVP mode and / or IBC regular Merge mode and / or IBC TMMerge mode and / or IBC-MBVD Merge mode, IBC-LIC may not be applied to BV candidate list reordering.
[0209] 5. In one example, when RR-IBC is used, IBC-LIC can be used.
[0210] a. In one example, the position / shape of the template used for the LIC may depend on whether RR-IBC is applied.
[0211] b. In one example, the original BV, which is not adjusted according to the RR-IBC flip type, can be used to derive the IBC-LIC parameters.
[0212] c. In one example, the BV adjusted according to the RR-IBC flip type can be used to derive the IBC-LIC parameters.
[0213] d. In one example, the original template of the reference block can be used to derive the IBC-LIC parameters.
[0214] i. In one example, the original template of the reference block can be constrained in the IBC cache.
[0215] ii. In one example, IBC-LIC may not be used when the original template is not in the IBC cache.
[0216] 1) Alternatively, when the original template is not in the IBC cache, the original template can be filled with samples from the IBC cache and then used in the IBC-LIC.
[0217] e. In one example, the adjusted template of the reference block can be used to derive the IBC-LIC parameters.
[0218] i. In one example, the adjusted template of the reference block can be constrained in the IBC cache.
[0219] ii. In one example, the adjusted template of the reference block can be adjusted according to the RR-IBC flip type.
[0220] 1) In one example, when the RR-IBC flip type is horizontal, the adjusted left and top templates of the reference template can be used. Example in Figure 18 It is shown in the middle.
[0221] 2) In one example, when the RR-IBC flip type is vertical, the adjusted left and top templates of the reference template can be used. Example in... Figure 19 It is shown in the middle.
[0222] iii. In one example, IBC-LIC may not be used when the modified template is not in the IBC cache.
[0223] 1) Alternatively, when the adjusted template is not in the IBC cache, the adjusted template can be filled with samples from the IBC cache and then used in the IBC-LIC.
[0224] f. In one example, IBC-LIC can be used with a specific RR-IBC inversion type.
[0225] i. In one example, the flip type can be horizontal.
[0226] ii. In one example, the flip type can be vertical.
[0227] 6. In one example, IBC-LIC can be used when more than one BV is used to obtain the prediction / reconstruction signal of the video unit.
[0228] a. In one example, IBC-LIC can be used to refine one or more prediction signals generated by more than one BV.
[0229] i. In one example, the final predicted signal can be fused with the predicted signal refined by IBC-LIC.
[0230] ii. In one example, the parameters of IBC-LIC can be derived individually.
[0231] b. In one example, IBC-LIC can be used to refine the final prediction signal, which is fused using prediction signals generated by more than one BV.
[0232] i. In one example, the parameters of IBC-LIC can be derived using one or more BVs.
[0233] ii. In one example, more than one BV can be weighted and averaged into a single BV and used to derive parameters.
[0234] 7. In one example, whether and / or how to apply IBC-LIC may depend on codec information including the following: a. Block dimensions and / or block size i. In one example, a block is allowed to be encoded and decoded using IBC-LIC when the block size (W×H) is less than or equal to the threshold (T1), where W and H represent the block width and block height, respectively.
[0235] 1) In one example, T1 = 256, or 512, or 1024, or 2048, or 4096.
[0236] 2) In one example, T1 may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0237] 3) In one example, T1 can depend on the strip / image type.
[0238] ii. In one example, a block is allowed to be encoded and decoded using IBC-LIC when the block size (W×H) is greater than or equal to the threshold (T2), where W and H represent the block width and block height, respectively.
[0239] 1) In one example, T2 = 4, or 8, or 16, or 32, or 64, or 128, or 256.
[0240] 2) In one example, T2 may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0241] 3) In one example, T2 can depend on the strip / image type.
[0242] iii. In one example, when the block size W and / or H is less than or equal to a threshold ( When W and H are used, the block is allowed to be encoded and decoded using IBC-LIC, where W and H represent the block width and block height, respectively.
[0243] 1) In one example, = 4, or 8, or 16, or 32, or 64, or 128, or 256.
[0244] 2) In one example, This can depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0245] 3) In one example, It can depend on the strip / image type.
[0246] iv. In one example, when the block size W and / or H is greater than or equal to a threshold ( When W and H are used, the block is allowed to be encoded and decoded using IBC-LIC, where W and H represent the block width and block height, respectively.
[0247] 1) In one example, = 4, or 8, or 16, or 32, or 64, or 128, or 256.
[0248] 2) In one example, This can depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0249] 3) In one example, It can depend on the strip / image type.
[0250] v. In one example, block size can refer to the brightness block size.
[0251] vi. In one example, block size can refer to chroma block size.
[0252] b. The encoded and decoded information can indicate the depth of the block.
[0253] c. Strip / image type and / or segmentation tree type (single tree, dual tree, or local dual tree) i. In one example, IBC-LIC can be applied only to I stripes / pictures.
[0254] d. Block location e. Quantization parameters f. Color components 8. In one example, more than one LIC equation can be used to compensate for the prediction (reconstruction) of video cells derived using IBC.
[0255] a. In one example, multiple LIC types can refer to having one or more existing parameters for the LIC (e.g., and The different LIC equations adjust the parameters of the equation.
[0256] i. In one example, adjusting the parameter can be used to adjust... Such as or .
[0257] ii. In one example, adjusting parameters can be used to adjust... Such as or .
[0258] iii. In one example, the indication of adjusting parameters can be transmitted via signaling in the bitstream.
[0259] 1) In one example, a set of adjustment parameters can be predefined / derived / transmitted via signaling, and the indication is transmitted via signaling in the bitstream.
[0260] iv. In one example, the indication for adjusting parameters can be derived using encoding / decoding information.
[0261] v. In one example, the instruction to adjust parameters can be inherited.
[0262] 1) In one example, the indication of the adjustment parameters of the current block can be inherited from neighboring blocks (adjacent or non-adjacent).
[0263] 2) In one example, the indication of the adjustment parameters for the current chroma block can be inherited from the luminance block.
[0264] b. In one example, more than one LIC equation argument can be derived using different templates.
[0265] i. In one example, different sample rows of the template can be used.
[0266] 1) In one example, the indication of the i-th sample row used to derive the parameters can be transmitted by signal or derived.
[0267] 2) In one example, more than one sample row can be used.
[0268] ii. In one example, the left template, or the top template, or the top left template, the bottom left template, and the top right template can be used.
[0269] 1) In one example, more than one set of parameters can be derived using different templates.
[0270] a) In one example, the parameters can be derived using the left / top / top left / bottom left / top right templates or combinations thereof.
[0271] 2) In one example, an indication of which template the parameter is derived from can be transmitted via signaling or derived by signaling.
[0272] 3) In one example, whether and / or how to use different templates to derive parameters can depend on encoding / decoding information such as block dimensions / sizes.
[0273] iii. In one example, templates can be adjacent and / or non-adjacent.
[0274] iv. In one example, samples from different locations in the template can be used.
[0275] 1) In one example, location can refer to the downsampling location.
[0276] v. In one example, samples of different categories can be used.
[0277] 1) In one example, different categories can be classified based on the sample points of the template.
[0278] 2) In one example, the average value of the samples in the template can be used to derive different categories.
[0279] 3) In one example, how to determine different categories may depend on encoding / decoding information, such as block dimension / size or bit depth.
[0280] 4) In one example, two or three categories can be used.
[0281] 5) In one example, whether and / or how to determine the category can differ for different color components.
[0282] a) In one example, more than one category is used for the luminance component, and one category is used for the chrominance component.
[0283] c. In one example, more than one method can be used to derive the parameters for IBC-LIC.
[0284] i. In one example, the method used can be determined by signal transmission, predefined method, or codec information.
[0285] ii. In one example, the first method can be transmitted via signal along with the second method.
[0286] 1) In one example, the first method could refer to LDL / Gaussian elimination.
[0287] 2) In one example, the second method could refer to the least squares error method.
[0288] iii. In one example, the first method may be transmitted via signal before or after the second method.
[0289] 1) In one example, for the IBC AMVP mode, the first method can be signaled before the second method.
[0290] 2) In one example, for the IBC AMVP mode, the first method can be transmitted via signaling after the second method.
[0291] iv. In one example, whether and / or how to use more than one method may depend on the video content, such as what the camera captures or what is on the screen.
[0292] d. In one example, more than one method and / or more than one template can be used to derive more than one set of parameters, wherein the predicted signal of the current block modified with more than one set of parameters can be fused.
[0293] i. In one example, the weights used for fusion can be predefined, transmitted via signaling, or determined using codec information.
[0294] e. In one example, whether and how to apply more than one LIC equation can be indicated using syntax elements transmitted via signals in the bitstream.
[0295] f. In one example, whether and how to apply one of the more than one LIC equations can be adaptively determined.
[0296] 9. In one example, at least one parameter and / or at least one IBC-LIC equation for a video unit encoded / decoded prior to the current video unit can be reused for the current video unit.
[0297] a. In one example, video units encoded / decoded before the current video unit can be in different strips / slices / pictures / CTUs / CTU rows.
[0298] b. In one example, a video unit that was encoded / decoded before the current video unit can be in the same strip / slice / picture / CTU / CTU row as the current video unit.
[0299] c. In one example, the video unit encoded / decoded before the current video unit can be a neighboring spatial domain (e.g., adjacent and / or non-adjacent) video unit.
[0300] d. In one example, reused parameters can be stored in a list / table (e.g., the HMVP IBC-LIC parameter table).
[0301] i. In one example, the list / table can be updated during the encoding / decoding process.
[0302] ii. In one example, the maximum size of the list / table can be predefined, transmitted via signal, or derived.
[0303] iii. In one example, the list / table can be reinitialized at the beginning of the strip / piece / image / CTU / CTU.
[0304] 1) In one example, the list / table can be reinitialized to an empty list / table.
[0305] 2) In one example, a list / table can be reinitialized using one or more predefined / derived / signaled parameters.
[0306] iv. In one example, how and / or whether to use / update the list / table can depend on the encoding / decoding information.
[0307] 1) In one example, encoding / decoding information can refer to block dimension / size / location.
[0308] e. In one example, when the current video unit is a chroma video unit, the multiplexed parameters can come from the luma video unit and / or the chroma video unit.
[0309] 10. In one example, IBC-LIC can be applied to a sub-block within the current video unit.
[0310] a. In one example, whether and / or how IBC-LIC is applied to a sub-block can be predefined, signaled, or determined.
[0311] i. In one example, syntax elements can be used to indicate whether IBC-LIC is applied at the sub-block level.
[0312] ii. In one example, whether and / or how IBC-LIC is applied to a sub-block can depend on the block dimension / size.
[0313] iii. In one example, IBC-LIC may be applied to all child blocks or may not be applied to all child blocks.
[0314] iv. In one example, IBC-LIC may be applied to some sub-blocks, and IBC-LIC may not be applied to other sub-blocks.
[0315] 1) In one example, the part of the sub-block to which IBC-LIC is applied can be a boundary sub-block.
[0316] b. In one example, the IBC-LIC parameters can be derived differently for at least one sub-block.
[0317] c. In one example, the IBC-LIC parameter can be shared by at least one sub-block.
[0318] 11. In one example, the position / shape of the template may depend on the encoding / decoding information.
[0319] a. In one example, if the left neighboring sample is not available, then the template only includes the top neighboring sample.
[0320] b. In one example, if the upper neighboring sample is not available, then the template only includes the left neighboring sample.
[0321] c. In one example, if neither the left neighboring sample nor the upper neighboring sample is available, then IBC-LIC may not be applicable.
[0322] d. In one example, the template can refer to the template of the current block or the reference block.
[0323] e. In one example, the position / shape of the template may depend on whether RR-IBC or regular IBC is applied.
[0324] f. In one example, the position / shape of the template can consist of one or more sample rows.
[0325] g. In one example, the position / shape of the template can be predefined, transmitted by a signal, or derived on the fly.
[0326] h. In one example, the position / shape of the template can depend on the width and height of the video unit.
[0327] i. In one example, the reference template can be constrained in the IBC cache.
[0328] i. Alternatively, the reference template may not be restricted to the IBC cache.
[0329] 12. Determining whether a block is allowed to be encoded or decoded in IBC-LIC mode may depend on encoded or decoded information including the following: a. Block dimensions and / or block size i. In one example, when the block size (W×H) is less than or equal to the threshold (T), the block is allowed to be encoded and decoded in IBC-LIC mode, where W and H represent the block width and block height, respectively.
[0330] 1) In one example, T = 256, or 512, or 1024, or 2048, or 4096.
[0331] 2) In one example, T may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0332] ii. In one example, a block is allowed to be encoded and decoded using IBC-LIC when the block size (W×H) is greater than or equal to the threshold (T4), where W and H represent the block width and block height, respectively.
[0333] 1) In one example, T4 = 4, or 8, or 16, or 32, or 64, or 128, or 256, or 512, or 1024, or 2048.
[0334] 2) In one example, T4 may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0335] iii. In one example, when the block size W and / or H is less than or equal to a threshold ( When W and H are used, the block is allowed to be encoded and decoded using IBC-LIC, where W and H represent the block width and block height, respectively.
[0336] 1) In one example, = 4, 8, 16, or 32, or 64, or 128, or 256.
[0337] 2) In one example, This can depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0338] iv. In one example, when the block size W and / or H is greater than or equal to a threshold ( When W and H are used, the block is allowed to be encoded and decoded using IBC-LIC, where W and H represent the block width and block height, respectively.
[0339] 1) In one example, = 4, 8, 16, or 32, or 64, or 128, or 256.
[0340] 2) In one example, This can depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0341] v. In the examples above, T, T4, , It can depend on the strip / image type.
[0342] vi. In one example, block size can refer to the brightness block size.
[0343] vii. In one example, block size can refer to chroma block size.
[0344] b. Block depth.
[0345] c. Block location.
[0346] d. Strip / Image type.
[0347] e. Time-domain layer (e.g., time-domain layer index).
[0348] f. Color format.
[0349] g. Color components.
[0350] 13. In one example, whether and / or how IBC-LIC is applied may depend on the color format and / or color components.
[0351] a. In one example, IBC-LIC can be applied to all color components.
[0352] b. In one example, whether and / or how IBC-LIC is applied to the first component may depend on whether IBC-LIC is applied to the second component.
[0353] i. In one example, the first component may refer to the chromaticity component (e.g., Cb and / or Cr), and the second component may refer to the luminance component (e.g., Y).
[0354] ii. In one example, IBC-LIC can be applied to the first component in the same way as IBC-LIC can be applied to the second component.
[0355] 1) Alternatively, the way IBC-LIC is applied to the first component may differ from the way IBC-LIC is applied to the second component.
[0356] iii. In one example, the determination of whether and / or how to apply IBC-LIC to the first video unit in the first component may depend on the second video unit in the second component.
[0357] 1) In one example, the second video unit may be a co-positional luminance video unit of the first video unit.
[0358] a) In one example, , where P C and P L These represent the positions of the first video unit and the second video unit, respectively.
[0359] b) In one example This can refer to the center position of the chroma video unit. The width and height of the chroma video unit are represented as W and H, respectively, with x ranging from 0 to W - 1 (inclusive) and y ranging from 0 to H - 1 (inclusive).
[0360] i. In one example, .
[0361] ii. In one example, .
[0362] iii. In one example, .
[0363] iv. In one example, .
[0364] c) In one example It can refer to the upper left / upper right / lower left / lower right position of the chroma video unit.
[0365] 2) In one example, the second video unit may be a co-position luminance video unit or a spatially adjacent (adjacent and / or non-adjacent) luminance video unit of a co-position luminance video unit.
[0366] a) In one example, the spatial proximity luminance video unit can refer to the left proximity luminance video unit, the lower left proximity luminance video unit, the upper left proximity luminance video unit, the upper top proximity luminance video unit, and the upper right proximity luminance video unit.
[0367] b) In one example, when the co-occurring luminance video unit is not encoded or decoded in IBC mode or IntraTMP mode, spatially adjacent (adjacent and / or non-adjacent) luminance video units of the co-occurring luminance video unit can be used.
[0368] 3) In one example, when the second video unit is encoded or decoded in IBC mode or IntraTMP mode, IBC-LIC can be applied to the first video unit.
[0369] c. In one example, IBC-LIC can be applied to the luminance component but not to the chrominance component.
[0370] i. In one example, the luminance component can refer to Y in the YCbCr color space or G in the RGB color space.
[0371] ii. In one example, the chromaticity components may refer to Cb and / or Cr in the YCbCr color space or R and / or B in the RGB color space.
[0372] d. In one example, the derivation method for the IBC-LIC parameters of the first component can be the same as that for the second component.
[0373] i. Alternatively, the derivation method for the IBC-LIC parameters for the first component may differ from that for the second component.
[0374] e. In one example, how the IBC-LIC parameters are derived may depend on the color components and / or color format.
[0375] i. In one example, the number of samples used to derive the IBC-LIC parameters for the chromaticity components can depend on the color format.
[0376] 1) In one example, for a 4:4:4 color format, the number of samples used for the chroma component can be the same as that for the luminance component.
[0377] a) Alternatively, for the 4:4:4 color format, the number of samples used for the chroma component can be different from that for the luminance component.
[0378] 2) In one example, for a 4:2:0 / 4:2:2 color format, the number of samples used for the chroma component can be different from that for the luminance component.
[0379] 3) In one example, regardless of the color format, the minimum sample point used to derive the IBC-LIC parameters for the chroma component can be the same as that for the luminance component.
[0380] f. In one example, for the second component (e.g., chromaticity components such as Cb and / or Cr), at least one parameter may not be derived, but rather inherited from the first component (e.g., Y).
[0381] g. In one example, the IBC-LIC parameters can be derived separately for different components.
[0382] i. Alternatively, at least one parameter can be shared by different components.
[0383] ii. In one example, different components can refer to the luminance component and the chrominance component.
[0384] iii. In one example, different components may refer to chromaticity components (e.g., Cb and Cr).
[0385] h. In one example, when the luminance BV is used for the chrominance component, it can be modified according to the color format.
[0386] i. In one example, , .
[0387] ii. In one example, , .
[0388] iii. In one example, , .
[0389] iv. In one example, , .
[0390] v. In one example, , .
[0391] 1) In one example, BV C It can be used to derive predictions for chroma video units.
[0392] 2) In one example, BV C It can be used to derive a reference template for deriving IBC-LIC parameters for chroma video units.
[0393] 3) In one example, when BV C When it is a fraction BV, it can be rounded to an integer BV.
[0394] a) In one example, the clipping operation can be used when rounding the fraction BV.
[0395] b) Alternatively, fractional BV is still used to derive the reference template.
[0396] i. In one example, the same interpolation method used to derive the prediction for the chroma video unit was used to derive the reference template.
[0397] ii. Alternatively, different interpolation methods, such as different interpolation taps, may be used to derive the reference template, unlike the interpolation methods used to derive the predictions for the video units.
[0398] 1. In one example, a 2-tap interpolation filter can be used.
[0399] i. In one example, one or more samples of the first component can be used to derive the parameters of the second component.
[0400] i. In one example, the first component may be luminance, and the second component may be Cb and / or Cr.
[0401] ii. In one example, the first component may be Cb(Cr) and the second component may be Cr(Cb).
[0402] Signaling regarding IBC-LIC 14. The indication of IBC-LIC mode can be conditionally transmitted via signaling, wherein the conditions may include: a. Whether specific codec methods are allowed, such as IBC (IBC AMVP or IBC Merge), RR-IBC, CIBCIP (IBC-CIIP), IBC-TM, or IBC-GPM. b. Block dimensions and / or block size i. In one example, when the block size (W×H) is less than or equal to the threshold (T3), the indication of the IBC-LIC mode may not be transmitted via signaling, where W and H represent the block width and block height, respectively.
[0403] 1) In one example, T3 = 256, or 512, or 1024, or 2048, or 4096.
[0404] 2) In one example, T3 may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0405] 3) In one example, T3 can depend on the strip / image type.
[0406] ii. In one example, when the block size (W×H) is less than or equal to the threshold (T4), the indication of the IBC-LIC mode may not be transmitted via signaling, where W and H represent the block width and block height, respectively.
[0407] 1) In one example, T4 = 16, or 32, or 64, or 128, or 256.
[0408] 2) In one example, T4 may depend on whether the IBC AMVP mode or the IBC Merge mode is used.
[0409] 3) In one example, T4 can depend on the strip / image type.
[0410] iii. In one example, block size can refer to the brightness block size.
[0411] c. Block depth d. Strip / image type and / or segmentation tree type (single tree, dual tree, or local dual tree) e. Temporal layer identifier f. Block position g. Color components h. In one example, the indication of IBC-LIC mode may not be transmitted via signaling, but rather deduced.
[0412] i. In one example, if the indication of IBC-LIC mode is not transmitted via signaling, it can be presumed to be the default value.
[0413] i. In one example, if the indication of IBC-LIC mode is not transmitted via signaling, it can be presumed to be false.
[0414] ii. In one example, if the indication of IBC-LIC mode is not transmitted via signaling, it can be presumed to be true.
[0415] 15. Whether the current block is encoded or decoded in IBC-LIC mode can be transmitted via signals using one or more syntax elements.
[0416] a. In one example, syntax elements may be binary-coded using fixed-length codes, rounded unary codes, unary codes, or EG codes, or encoded as flags.
[0417] b. In one example, syntax elements can be either bypassed or context-encoded.
[0418] i. The context may depend on encoded and decoded information, such as block dimensions and / or block size and / or stripe / picture type and / or information about neighboring blocks (adjacent or non-adjacent) and / or information about other encoding and decoding tools used for the current block and / or information about the temporal layer.
[0419] 1) In one example, the context may depend on whether neighboring blocks are encoded or decoded using IBC-LIC.
[0420] c. In one example, when the current video unit is encoded or decoded by IBC, the indication of the IBC-LIC mode can be transmitted via signaling.
[0421] d. In one example, when the current video unit is in IBC Merge mode, the indication of IBC-LIC mode may not be transmitted via signaling.
[0422] e. In one example, syntax elements may be transmitted via signals before or after instructions from a particular codec tool.
[0423] i. In one example, a specific codec tool may refer to RR-IBC mode, or IBC-TM mode, or IBC-MBVD mode, or CIBCIP (IBC-CIIP), or IBC-GPM.
[0424] ii. In one example, whether and / or how the signal transmission syntax element is transmitted may depend on whether IBC mode, RR-IBC mode, or IBC-TM mode, or IBC-MBVD mode, or CIBCIP (IBC-CIIP), or IBC-GPM is enabled for the video unit.
[0425] iii. In one example, syntax elements may be transmitted via signaling after an indication of RR-IBC mode.
[0426] 1) In one example, when the RR-IBC mode is applied, the syntax element indicating IBC-LIC is not transmitted via signal and is set to the default value indicating that IBC-LIC is not applied.
[0427] iv. In one example, when the video unit is in IBC-AMVP mode, syntax elements can be transmitted via signals.
[0428] f. In one example, one or more syntax elements may be transmitted via signaling at the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.
[0429] g. In one example, syntax elements can be encoded and decoded in a predictive manner.
[0430] h. For example, the syntax elements of the current block can be predicted from the syntax elements of neighboring blocks.
[0431] i. In one example, whether a block is allowed to be encoded or decoded in IBC-LIC mode can depend on one or more syntax elements.
[0432] i. In one example, one or more syntax elements may be transmitted via signals as general constraint information.
[0433] 1) In one example, when a syntax element indicating general constraints on IBC-LIC (e.g., When X1 is equal to X1 (e.g., X1 = 0 or X1 = 1), IBC-LIC should not be allowed.
[0434] 2) In one example, when a syntax element indicating general constraints on IBC (e.g., When X is equal to X2 (e.g., X2 = 0 or X2 = 1), IBC-LIC should not be allowed.
[0435] ii. In one example, one or more syntax elements may be transmitted via signaling at the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.
[0436] 16. Whether and / or how to apply the methods disclosed above may depend on the video characteristics.
[0437] a. In one example, video characteristics could refer to screen content, camera-captured / natural content, or mixed content.
[0438] i. In one example, one or more syntax elements can be used to indicate whether a video unit belongs to a certain type of content.
[0439] ii. In one example, the content to which a video unit belongs can be adaptively determined, for example, using the reconstructed / raw samples and / or predicted / raw samples, hash values of the video unit's neighbors.
[0440] iii. In one example, which content a video unit belongs to can be adaptively determined, for example, whether one or more neighboring (adjacent or non-adjacent) video units are encoded or decoded in a specific mode (e.g., IBC, Palette, IntraTMP).
[0441] 17. The methods disclosed above can be applied to other encoding and decoding tools.
[0442] a. In one example, the encoding / decoding tool could refer to inter-frame prediction, such as LIC.
[0443] b. In one example, the codec tool could refer to intra-frame prediction, such as IntraTMP.
[0444] c. In one example, the codec tool could refer to a loop filter.
[0445] General aspects 18. In the above examples, a video unit can refer to a color component / sub-picture / strip / piece / code-decode tree unit (CTU) / CTU line / CTU group / code-decode unit (CU) / prediction unit (PU) / transform unit (TU) / code-decode tree block (CTB) / code-decode block (CB) / prediction block (PB) / transform block (TB) / block / sub-block of a block / sub-region within a block / any other region containing more than one sample or pixel.
[0446] 19. Whether and / or how the methods disclosed above can be applied to be transmitted via signaling at the sequence level / picture group level / picture level / strip level / piece group level, such as in the sequence header / picture header / SPS / VPS / DPS / DCI / PPS / APS / strip header / piece group header.
[0447] 20. Whether and / or how the methods disclosed above can be applied to transmit signals at PB / TB / CB / PU / TU / CU / VPDU / CTU / CTU lines / strips / films / sub-images / other types of areas containing more than one sample point or pixel.
[0448] 21. Whether and / or how the methods disclosed above are applied may depend on the encoded / decoded information, such as block size, color format, single-tree / dual-tree segmentation, color components, and stripe / image type.
[0449] As used herein, the term "video unit" or "video block" can be a sequence, picture, strip, slice, brick, sub-picture, codec tree unit (CTU) / codec tree block (CTB), CTU / CTB row, one or more codec units (CU) / codec blocks (CB), one or more CTU / CTB, one or more virtual pipeline data units (VPDU), or a sub-region within a picture / strip / slice / brick. The term "reference row" can refer to a row and / or column of reconstructed samples that are adjacent or non-adjacent to the current block and are used to derive intra-prediction of the current video unit via an interpolation filter along a specific direction, and the specific direction is determined by an intra-prediction mode (e.g., conventional intra-prediction with an intra-prediction mode), or by weighting the reference samples of the reference row using a matrix or vector (e.g., MIP) to derive intra-prediction of the current video unit.
[0450] Figure 20 A flowchart of a method 2000 for video processing according to an embodiment of the present disclosure is shown. Method 2000 is implemented during the conversion between video units of a video and a bitstream of a video.
[0451] At box 2010, for the conversion between video units and video unit bitstreams, it is determined whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video unit. In some embodiments, the video unit includes at least one of the following: color components, prediction blocks (PB), transform blocks (TB), codec blocks (CB), prediction units (PU), transform units (TU), codec tree blocks (CTB), codec units (CU), codec tree units (CTU), CTU rows, CTU groups, stripes, slices, sub-pictures, blocks, sub-regions within blocks, or regions containing more than one sample or pixel.
[0452] At box 2020, if IBC-LIC is applied to a video cell, a set of parameters used in IBC-LIC is determined. At box 2030, an compensation process is performed based on the prediction or reconstruction of the video cell using IBC-LIC.
[0453] At box 2040, a conversion is performed based on the compensated prediction or reconstruction of the video units. In some embodiments, the conversion may include encoding the video units into a bitstream. Alternatively or additionally, the conversion may include decoding the video units from the bitstream. In this way, encoding / decoding efficiency and performance can be improved.
[0454] In some embodiments, whether fractional block vectors (BVs) are used to derive a reference template used to derive a set of parameters and / or the manner in which fractional block vectors (BVs) are used to derive a reference template used to derive a set of parameters depends on the encoding / decoding information. In some other embodiments, IBC-LIC is not applied to fractional B. In some embodiments, the encoding / decoding information includes color components. For example, fractional BVs are used to derive a reference template for at least one of the luma or chroma components.
[0455] In some other embodiments, the fractional BV cannot be used to derive a reference template for at least one of the luminance or chrominance components. For example, for the chrominance component, the fractional BV is rounded down to an integer BV.
[0456] In some embodiments, the encoding / decoding information includes the template type. For example, fractional BV is used for the top-left template.
[0457] In some embodiments, if a reference template used to derive a set of parameters is unavailable, a set of predefined parameters is used as a set of parameters. In some other embodiments, if a reference template used to derive a set of parameters is unavailable, IBC-LIC is not used. In some embodiments, if one or more samples of the reference template used to derive a set of parameters are unavailable, padding is used.
[0458] In some embodiments, IBC-LIC is used if multiple BVs are used to obtain predictions or reconstructions of video units. In some embodiments, IBC-LIC is used to refine one or more prediction signals generated by multiple BVs. For example, the final prediction signal is combined with one or more prediction signals refined by IBC-LIC. In some other embodiments, a set of parameters of IBC-LIC is derived separately.
[0459] In some embodiments, IBC-LIC is used to refine the final prediction signal, which is a combination of prediction signals generated from multiple BVs. In some embodiments, a set of parameters for IBC-LIC is derived using multiple BVs. In some other embodiments, multiple BVs are weighted and averaged into a single BV and used to derive a set of parameters.
[0460] In some embodiments, the indication of the adjustment parameters is transmitted via signaling in the bitstream. In some embodiments, a set of adjustment parameters is predefined. Alternatively, a set of adjustment parameters is derived. Alternatively, a set of adjustment parameters is transmitted via signaling, and the indication of the set of adjustment parameters is transmitted via signaling in the bitstream.
[0461] In some embodiments, the indication of adjustment parameters is derived using codec information. In some other embodiments, the indication of adjustment parameters is inherited. For example, the indication of adjustment parameters for the current block is inherited from neighboring blocks that are adjacent or not adjacent to the current block. As another example, the indication of adjustment parameters for the current chroma block is inherited from the luma block.
[0462] In some embodiments, the indication of the i-th sample row used to derive a set of parameters is transmitted via signaling or derived. In some other embodiments, multiple sample rows are used to derive a set of parameters.
[0463] In some embodiments, multiple sets of parameters are derived using different templates. For example, a set of parameters may be derived using at least one of the following: left template, top template, top-left template, bottom-left template, or top-right template.
[0464] In some embodiments, an indication of which template is used to derive a set of parameters is transmitted via signaling or is derived. In some other embodiments, whether a different template is used to derive a set of parameters and / or the manner in which different templates are used to derive a set of parameters depends on the encoding / decoding information.
[0465] In some embodiments, the way different categories of samples are determined depends on encoding / decoding information. For example, encoding / decoding information may include one or more of the following: block dimension, block size, or bit depth. In some embodiments, two or three categories of samples are used to derive a set of parameters.
[0466] In some embodiments, whether to determine the sample category and / or the method of determining the sample category differs for different color components. For example, multiple categories are used for the luminance component, and one category is used for the chrominance component.
[0467] In some embodiments, a first scheme for deriving a set of parameters and a second scheme for deriving a set of parameters are transmitted together via a signal. For example, the first method is an LDL or Gaussian elimination scheme. In some embodiments, the second method is a least-squares error scheme.
[0468] In some embodiments, a first scheme for deriving a set of parameters is transmitted via signaling before a second scheme for deriving a set of parameters. Alternatively, the first scheme for deriving a set of parameters is transmitted via signaling after a second scheme for deriving a set of parameters. For example, for the Intra-Block Copy (IBC) Advanced Motion Vector Prediction (AMVP) mode, the first scheme is transmitted via signaling before the second scheme. As another example, for the IBC AMVP mode, the first scheme is transmitted via signaling after the second scheme.
[0469] In some embodiments, whether and / or how multiple methods are used to derive a set of parameters depends on the video content. For example, the video content includes at least one of camera-captured content or screen content.
[0470] In some embodiments, one or more samples of the first component are used to derive parameters of the second component. In some embodiments, the first component is a luminance component, and the second component is at least one of the following: Cb or Cr. In some other embodiments, the first component is Cb, and the second component is Cr. Alternatively, the first component is Cr, and the second component is Cb.
[0471] In some embodiments, an indication of whether and / or how a set of parameters of the IBC-LIC is derived is given at one of the following: sequence level, picture group level, picture level, strip level, or slice group level. In some embodiments, an indication of whether and / or how a set of parameters of the IBC-LIC is derived is given at one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice group header. In some embodiments, an indication of whether and / or how a set of parameters of the IBC-LIC is derived is given at one of the following: PB, TB, CB, PU, TU, CU, VPDU, CTU, CTU line, strip, slice, sub-picture, or region containing more than one sample or pixel.
[0472] In some embodiments, whether and / or how a set of parameters of IBC-LIC is derived is based on encoded and decoded information of video units. Encoded and decoded information may include at least one of the following: block size, color format, single-tree segmentation, dual-tree segmentation, color components, stripe type, or picture type.
[0473] According to another embodiment of this disclosure, a non-transitory computer-readable recording medium is provided. This non-transitory computer-readable recording medium stores a bitstream of video generated by a method performed by an apparatus for video processing. The method includes: conversion between video units and bitstreams of video units for the purpose of video processing; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on the prediction or reconstruction of the video units based on the IBC-LIC; and generating a bitstream based on the compensated prediction or reconstruction of the video units.
[0474] According to further embodiments of this disclosure, a method for storing a bitstream of video is provided. The method includes: conversion between video units and bitstreams of video units for the purpose of video; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on the prediction or reconstruction of the video units based on the IBC-LIC; generating a bitstream based on the compensated prediction or reconstruction of the video units; and storing the bitstream in a non-transitory computer-readable recording medium.
[0475] The embodiments of this disclosure can be described according to the following entries, and their features can be combined in any reasonable manner.
[0476] Item 1. A video processing method comprising: for a video unit of a video and a bitstream of the video unit, determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video unit; if it is determined that the IBC-LIC is applied to the video unit, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or reconstruction of the video unit based on the IBC-LIC; and performing the conversion based on the compensated prediction or reconstruction of the video unit.
[0477] Item 2. The method according to Item 1, wherein whether or not fractional block vectors (BV) are used to derive the reference template used to derive the set of parameters and / or the manner in which fractional block vectors (BV) are used to derive the reference template used to derive the set of parameters depends on the encoding / decoding information.
[0478] Item 3. The method according to Item 2, wherein the encoding / decoding information includes color components.
[0479] Item 4. The method according to Item 3, wherein the fraction BV is used to derive the reference template for at least one of the luminance component or chrominance component.
[0480] Item 5. According to the method described in Item 3, the fraction BV cannot be used to derive the reference template for at least one of the luminance component or chrominance component.
[0481] Item 6. The method according to Item 5, wherein for the chromaticity component, the fraction BV is rounded to an integer BV.
[0482] Item 7. The method according to Item 2, wherein the encoding / decoding information includes a template type.
[0483] Item 8. The method described in Item 7, wherein the fraction BV is used in the top left template.
[0484] Item 9. The method described in Item 1, wherein the IBC-LIC is not applied together with the fractional BV.
[0485] Item 10. The method according to Item 1, wherein if the reference template used to derive the set of parameters is unavailable, a set of predefined parameters is used as the set of parameters.
[0486] Item 11. The method according to Item 1, wherein the IBC-LIC is not used if the reference template used to derive the set of parameters is unavailable.
[0487] Item 12. The method according to Item 1, wherein padding is used if one or more samples of the reference template used to derive the set of parameters are unavailable.
[0488] Item 13. The method according to Item 1, wherein the IBC-LIC is used if multiple BVs are used to obtain the prediction or the reconstruction of the video unit.
[0489] Item 14. The method according to Item 13, wherein the IBC-LIC is used to refine one or more prediction signals generated by the plurality of BVs.
[0490] Item 15. The method according to Item 14, wherein the final prediction signal is combined with one or more prediction signals refined by IBC-LIC.
[0491] Item 16. The method according to Item 14, wherein the set of parameters of IBC-LIC is derived separately.
[0492] Item 17. The method according to Item 13, wherein the IBC-LIC is used to refine the final prediction signal, the final prediction signal being combined using prediction signals generated by the plurality of BVs.
[0493] Item 18. The method according to Item 17, wherein the set of parameters of IBC-LIC is derived using the plurality of BVs.
[0494] Item 19. The method according to Item 17, wherein the plurality of BVs are weighted and averaged into a single BV and used to derive the set of parameters.
[0495] Item 20. The method according to Item 1, wherein an indication of the adjustment parameters is transmitted via a signal in the bit stream.
[0496] Item 21. The method according to Item 20, wherein a set of adjustment parameters is predefined, or wherein the set of adjustment parameters is derived, or wherein the set of adjustment parameters is transmitted by signaling, and an indication of the set of adjustment parameters is transmitted by signaling in the bit stream.
[0497] Item 22. The method according to Item 1, wherein the indication for adjusting the parameters is derived using encoding / decoding information.
[0498] Item 23. The method according to Item 1, wherein the instruction for adjusting the parameters is inherited.
[0499] Item 24. The method according to Item 23, wherein the indication of the adjustment parameter of the current block is inherited from a neighboring block that is adjacent or not adjacent to the current block.
[0500] Item 25. The method according to Item 23, wherein the indication of the adjustment parameter of the current chroma block is inherited from the luminance block.
[0501] Item 26. The method according to Item 1, wherein the indication used to derive the i-th sample row of the set of parameters is transmitted by signal or derived.
[0502] Item 27. The method according to Item 1, wherein multiple sample rows are used to derive the set of parameters.
[0503] Item 28. The method described in Item 1, wherein multiple sets of parameters are derived using different templates.
[0504] Item 29. The method according to Item 28, wherein the set of parameters is derived using at least one of the following: left template, top template, upper left template, lower left template, or upper right template.
[0505] Item 30. The method according to Item 1, wherein an indication of which template is used to derive the set of parameters is transmitted by signal or derived.
[0506] Item 31. The method according to Item 1, wherein whether different templates are used to derive the set of parameters and / or the manner in which different templates are used to derive the set of parameters depends on the encoding / decoding information.
[0507] Item 32. The method according to Item 1, wherein the way different categories of samples are determined depends on the encoding / decoding information.
[0508] Item 33. The method according to Item 1, wherein two or three categories of samples are used to derive the set of parameters.
[0509] Item 34. The method described in Item 1, wherein whether the category of the sample point is determined and / or the method of determining the category of the sample point is different for different color components.
[0510] Item 35. The method according to Item 34, wherein multiple categories are used for the luminance component and one category is used for the chromaticity component.
[0511] Item 36. The method according to Item 1, wherein a first scheme for deriving the set of parameters and a second scheme for deriving the set of parameters are transmitted together by signaling.
[0512] Item 37. The method according to Item 36, wherein the first scheme is an LDL or Gaussian elimination scheme.
[0513] Item 38. The method according to Item 36, wherein the second scheme is a least squares error scheme.
[0514] Item 39. The method according to Item 1, wherein a first scheme for deriving the set of parameters is transmitted by signal before a second scheme for deriving the set of parameters, or wherein the first scheme for deriving the set of parameters is transmitted by signal after the second scheme for deriving the set of parameters.
[0515] Item 40. The method according to Item 39, wherein for the Intra-Block Copy (IBC) Advanced Motion Vector Prediction (AMVP) mode, the first scheme is transmitted via signaling prior to the second scheme.
[0516] Item 41. The method according to Item 39, wherein, for the IBC AMVP mode, the first scheme is transmitted via signaling after the second scheme.
[0517] Item 42. The method according to Item 1, wherein whether multiple schemes are used to derive the set of parameters and / or the manner in which multiple schemes are used to derive the set of parameters depends on the video content.
[0518] Item 43. The method according to Item 42, wherein the video content includes at least one of camera-captured content or screen content.
[0519] Item 44. The method according to Item 1, wherein one or more samples of the first component are used to derive the parameters of the second component.
[0520] Item 45. The method according to Item 44, wherein the first component is a luminance component, and the second component is at least one of the following: Cb or Cr.
[0521] Item 46. The method according to Item 44, wherein the first component is Cb and the second component is Cr, or wherein the first component is Cr and the second component is Cb.
[0522] Item 47. The method according to any one of items 1 to 46, wherein the video unit comprises at least one of the following: color component, prediction block (PB), transform block (TB), codec block (CB), prediction unit (PU), transform unit (TU), codec tree block (CTB), codec unit (CU), codec tree unit (CTU), CTU row, CTU group, strip, slice, sub-picture, block, sub-region within a block, or region containing more than one sample point or pixel.
[0523] Item 48. The method according to any one of items 1 to 47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated at one of the following: sequence level, picture group level, picture level, strip level, or slice group level.
[0524] Item 49. The method according to any one of items 1 to 47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated in one of the following: sequence header, picture header, sequence parameter set (SPS), video parameter set (VPS), dependency parameter set (DPS), decoding capability information (DCI), picture parameter set (PPS), adaptive parameter set (APS), strip header, or slice header.
[0525] Item 50. The method according to any one of items 1 to 47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated in one of the following locations: PB, TB, CB, PU, TU, CU, VPDU, CTU, CTU line, strip, slice, sub-picture, or region containing more than one sample point or pixel.
[0526] Item 51. The method according to any one of items 1 to 47, wherein whether and / or how the set of parameters of the IBC-LIC is derived is based on the encoded information of the video unit, and wherein the encoded information includes at least one of the following: block size, color format, single-tree segmentation, dual-tree segmentation, color components, stripe type, or picture type.
[0527] Item 52. The method according to any one of items 1 to 51, wherein the conversion includes encoding the video unit into the bitstream.
[0528] Item 53. The method according to any one of items 1 to 51, wherein the conversion includes decoding the video unit from the bitstream.
[0529] Item 54. An apparatus for video processing, 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 items 1 to 53.
[0530] Item 55. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method according to any one of items 1 to 53.
[0531] Item 56. A non-transitory computer-readable recording medium storing a bitstream of video generated by a method performed by means of an apparatus for video processing, wherein the method includes: conversion between video units of the video and a bitstream of the video units; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that the IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or reconstruction of the video units based on the IBC-LIC; and generating the bitstream based on the compensated prediction or reconstruction of the video units.
[0532] Item 57. A method for storing a bitstream of video, comprising: converting between video units of the video and a bitstream of the video units; determining whether intra-block copying (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video units; if it is determined that the IBC-LIC is applied to the video units, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or reconstruction of the video units based on the IBC-LIC; generating the bitstream based on the compensated prediction or reconstruction of the video units; and storing the bitstream in a non-transitory computer-readable recording medium.
[0533] Example device Figure 21 A block diagram of a computing device 2100 in which various embodiments of the present disclosure may be implemented is shown. The computing device 2100 may be implemented as a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300), or may be included in a source device 110 (or video encoder 114 or 200) or a destination device 120 (or video decoder 124 or 300).
[0534] It should be understood that, Figure 21 The computing device 2100 shown is for illustrative purposes only and is not intended to imply any limitation on the functionality and scope of the embodiments of this disclosure.
[0535] like Figure 21 As shown, computing device 2100 includes general-purpose computing device 2100. Computing device 2100 may include at least one or more processors or processing units 2110, memory 2120, storage unit 2130, one or more communication units 2140, one or more input devices 2150, and one or more output devices 2160.
[0536] In some embodiments, computing device 2100 can be implemented as any user terminal or server terminal with computing capabilities. The server terminal can be a server, large computing device, etc., provided by a service provider. The user terminal can be, for example, any type of mobile terminal, fixed terminal, or portable terminal, including mobile phones, stations, units, devices, multimedia computers, multimedia tablet computers, internet nodes, communicators, desktop computers, laptop computers, notebook computers, netbook computers, tablet computers, personal communication system (PCS) devices, personal navigation devices, personal digital assistants (PDAs), audio / video players, digital cameras / camcorders, positioning devices, television receivers, radio receivers, e-book devices, gaming devices, or any combination thereof, and includes accessories and peripherals of these devices, or any combination thereof. It is conceivable that computing device 2100 can support any type of interface to the user (such as "wearable" circuitry devices, etc.).
[0537] Processing unit 2110 can be a physical processor or a virtual processor, and can perform various processes based on programs stored in memory 2120. In a multiprocessor system, multiple processing units execute computer-executable instructions in parallel to improve the parallel processing capability of computing device 2100. Processing unit 2110 may also be referred to as a central processing unit (CPU), microprocessor, controller, or microcontroller.
[0538] Computing device 2100 typically includes various computer storage media. Such media can be any media accessible by computing device 2100, including but not limited to volatile and non-volatile media, or removable and non-removable media. Memory 2120 can be volatile memory (e.g., registers, cache, random access memory (RAM)), non-volatile memory (such as read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), or flash memory) or any combination thereof. Storage cell 2130 can be any removable or non-removable media and may include machine-readable media, such as memory, flash drives, disks, or other media that can be used to store information and / or data and can be accessed within computing device 2100.
[0539] The computing device 2100 may also include additional removable / non-removable storage media, volatile / non-volatile storage media. Although in Figure 21 Not shown, but may provide disk drives for reading from and / or writing to removable non-volatile disks, and optical disc drives for reading from and / or writing to removable non-volatile optical discs. In this case, each drive may be connected to a bus (not shown) via one or more data media interfaces.
[0540] Communication unit 2140 communicates with another computing device via a communication medium. Furthermore, the functionality of components in computing device 2100 can be implemented by a single computing cluster or by multiple computing machines communicating via communication connections. Therefore, computing device 2100 can operate in a networked environment using logical connections to one or more other servers, networked personal computers (PCs), or other general-purpose network nodes.
[0541] Input device 2150 can be one or more of various input devices, such as a mouse, keyboard, trackball, voice input device, etc. Output device 2160 can be one or more of various output devices, such as a monitor, speaker, printer, etc. With the aid of communication unit 2140, computing device 2100 can also communicate with one or more external devices (not shown), such as storage devices and display devices, and / or with one or more devices that enable a user to interact with computing device 2100, or any device that enables computing device 2100 to communicate with one or more other computing devices (e.g., network card, modem, etc.), if needed. Such communication can be performed via an input / output (I / O) interface (not shown).
[0542] In some embodiments, some or all components of computing device 2100 may not be integrated into a single device, but may be deployed in a cloud computing architecture. In a cloud computing architecture, components may be provided remotely and may work together to achieve the functionality described herein. In some embodiments, cloud computing provides computing, software, data access, and storage services without requiring end users to know the physical location or configuration of the systems or hardware providing these services. In various embodiments, cloud computing provides services via a wide area network (WAN), such as the Internet, using suitable protocols. For example, a cloud computing provider provides applications via a WAN that can be accessed through a web browser or any other computing component. The software or components of the cloud computing architecture, along with the corresponding data, may be stored on servers at remote locations. Computing resources in a cloud computing environment may be consolidated or distributed at locations in remote data centers. Cloud computing infrastructure may provide services through shared data centers, although they may appear as a single access point for users. Therefore, cloud computing architectures can be used to provide the components and functionality described herein from service providers at remote locations. Alternatively, they may be provided from conventional servers or may be installed directly or otherwise on client devices.
[0543] In embodiments of this disclosure, computing device 2100 can be used to implement video encoding / decoding. Memory 2120 may include one or more video codec modules 2125 having one or more program instructions. These modules can be accessed and executed by processing unit 2110 to perform the functions of the various embodiments described herein.
[0544] In an example embodiment of performing video encoding, input device 2150 may receive video data as input 2170 to be encoded. The video data may be processed, for example, by video codec module 2125 to generate an encoded bitstream. The encoded bitstream may be provided as output 2180 via output device 2160.
[0545] In an example embodiment of performing video decoding, input device 2150 may receive an encoded bitstream as input 2170. The encoded bitstream may be processed, for example, by a video codec module 2125 to generate decoded video data. The decoded video data may be provided as output 2180 via output device 2160.
[0546] While this disclosure has been specifically shown and described with reference to preferred embodiments, those skilled in the art will understand that various changes in form and detail may be made without departing from the spirit and scope of this application as defined by the appended claims. These changes are intended to be covered by the scope of this application. Therefore, the foregoing description of embodiments of this application is not intended to be limiting.
Claims
1. A method of video processing, comprising: for a conversion between a video unit of a video and a bitstream of the video unit, determining whether intra block copy (IBC) and local illumination compensation (LIC) (IBC-LIC) are applied to the video unit; if it is determined that the IBC-LIC is applied to the video unit, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or a reconstruction of the video unit by the IBC-LIC; and performing the conversion based on the prediction or the reconstruction of the video unit that is compensated.
2. The method of claim 1, wherein whether a fractional block vector (BV) is used and / or a manner in which a fractional block vector (BV) is used to derive a reference template used to derive the set of parameters depends on coding information.
3. The method of claim 2, wherein the coding information comprises a color component.
4. The method of claim 3, wherein the fractional BV is used to derive the reference template for at least one of a luma component or a chroma component.
5. The method of claim 3, wherein the fractional BV cannot be used to derive the reference template for at least one of a luma component or a chroma component.
6. The method of claim 5, wherein for a chroma component, the fractional BV is rounded to an integer BV.
7. The method of claim 2, wherein the coding information comprises a template type.
8. The method of claim 7, wherein the fractional BV is used for a top-left template.
9. The method of claim 1, wherein the IBC-LIC is not applied with a fractional BV.
10. The method of claim 1, wherein if a reference template used to derive the set of parameters is unavailable, a set of pre-defined parameters is used as the set of parameters.
11. The method of claim 1, wherein if a reference template used to derive the set of parameters is unavailable, the IBC-LIC is not used.
12. The method of claim 1, wherein if one or more samples of a reference template used to derive the set of parameters are unavailable, padding is used.
13. The method of claim 1, wherein if multiple BVs are used to obtain the prediction or the reconstruction of the video unit, the IBC-LIC is used.
14. The method of claim 13, wherein the IBC-LIC is used to refine one or more prediction signals generated by the multiple BVs.
15. The method of claim 14, wherein a final prediction signal is combined with the one or more prediction signals refined by IBC-LIC.
16. The method of claim 14, wherein the set of parameters of IBC-LIC is derived separately.
17. The method of claim 13, wherein the IBC-LIC is used to refine a final prediction signal that is combined using prediction signals generated by the plurality of BVs.
18. The method of claim 17, wherein the set of parameters of IBC-LIC is derived using the plurality of BVs.
19. The method of claim 17, wherein the plurality of BVs are weighted averaged into a single BV and used to derive the set of parameters.
20. The method of claim 1, wherein an indication of an adjustment parameter is signaled in the bitstream.
21. The method of claim 20, wherein a set of adjustment parameters is predefined, or wherein the set of adjustment parameters is derived, or wherein the set of adjustment parameters is signaled and an indication of the set of adjustment parameters is signaled in the bitstream.
22. The method of claim 1, wherein an indication of an adjustment parameter is derived using coding information.
23. The method of claim 1, wherein an indication of an adjustment parameter is inherited.
24. The method of claim 23, wherein the indication of the adjustment parameter of a current block is inherited from a neighboring block that is adjacent or non-adjacent to the current block.
25. The method of claim 23, wherein the indication of the adjustment parameter of a current chroma block is inherited from a luma block.
26. The method of claim 1, wherein an indication of an i-th sample row used to derive the set of parameters is signaled or derived.
27. The method of claim 1, wherein multiple sample rows are used to derive the set of parameters.
28. The method of claim 1, wherein multiple sets of parameters are derived using different templates.
29. The method of claim 28, wherein the set of parameters is derived using at least one of: a left template, an above template, a top-left template, a bottom-left template, or a top-right template.
30. The method of claim 1, wherein an indication of which template is used to derive the set of parameters is signaled or derived.
31. The method of claim 1, wherein whether different templates are used to derive the set of parameters and / or a manner in which different templates are used to derive the set of parameters depends on coding information.
32. The method of claim 1, wherein a manner in which different categories of samples are determined depends on coding information.
33. The method of claim 1, wherein two or three categories of samples are used to derive the set of parameters.
34. The method of claim 1, wherein whether a category of samples is determined and / or a manner in which a category of samples is determined is different for different color components.
35. The method of claim 34, wherein multiple categories are used for a luma component and one category is used for a chroma component.
36. The method of claim 1, wherein a first scheme to derive the set of parameters is signaled together with a second scheme to derive the set of parameters. 37. The method of claim 36, wherein the first scheme is an LDL or Gaussian elimination scheme.
38. The method of claim 36, wherein the second scheme is a least square error scheme.
39. The method of claim 1, wherein a first scheme used to derive the set of parameters is signaled prior to a second scheme used to derive the set of parameters, or wherein the first scheme used to derive the set of parameters is signaled after the second scheme used to derive the set of parameters.
40. The method of claim 39, wherein for an intra block copy (IBC) advanced motion vector prediction (AMVP) mode, the first scheme is signaled prior to the second scheme.
41. The method of claim 39, wherein for an IBC AMVP mode, the first scheme is signaled after the second scheme.
42. The method of claim 1, wherein whether and / or how the set of parameters is derived using multiple schemes depends on video content.
43. The method of claim 42, wherein the video content comprises at least one of camera captured content or screen content.
44. The method of claim 1, wherein one or more samples of a first component are used to derive parameters of a second component.
45. The method of claim 44, wherein the first component is a luma component and the second component is at least one of: Cb or Cr.
46. The method of claim 44, wherein the first component is Cb and the second component is Cr, or wherein the first component is Cr and the second component is Cb.
47. The method of any of claims 1-46, wherein the video unit comprises at least one of: a color component, a prediction block (PB), a transform block (TB), a coding block (CB), a prediction unit (PU), a transform unit (TU), a coding tree block (CTB), a coding unit (CU), a coding tree unit (CTU), a CTU row, a CTU group, a slice, a tile, a subpicture, a block, a subregion within a block, or a region containing more than one sample or pixel.
48. The method of any of claims 1-47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated at one of: a sequence level, a group of pictures level, a picture level, a slice level, or a tile group level.
49. The method of any of claims 1-47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated in one of: a sequence header, a picture header, a sequence parameter set (SPS), a video parameter set (VPS), a dependent parameter set (DPS), a decoding capability information (DCI), a picture parameter set (PPS), an adaptation parameter set (APS), a slice header, or a tile group header. 50. The method of any of claims 1 to 47, wherein an indication of whether and / or how the set of parameters of the IBC-LIC is derived is indicated at one of: a PB, a TB, a CB, a PU, a TU, a CU, a VPDU, a CTU, a CTU line, a slice, a tile, a subpicture, or a region containing more than one sample or pixel.
51. The method of any of claims 1 to 47, wherein whether and / or how the set of parameters of the IBC-LIC is derived is based on coded information of the video unit, and wherein the coded information comprises at least one of: a block size, a color format, a single tree partitioning, a dual tree partitioning, a color component, a slice type, or a picture type.
52. The method of any of claims 1 to 51, wherein the converting comprises encoding the video unit into the bitstream.
53. The method of any of claims 1 to 51, wherein the converting comprises decoding the video unit from the bitstream.
54. An apparatus for video processing, 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 of claims 1 to 53.
55. A non-transitory computer-readable storage medium storing instructions that cause a processor to perform the method of any of claims 1 to 53.
56. A non-transitory computer-readable recording medium storing a bitstream of a video generated by a method performed by an apparatus for video processing, wherein the method comprises: determining whether intra block copy (IBC) and local illumination compensation (LIC) (IBC-LIC) is applied to a video unit of the video; if it is determined that the IBC-LIC is applied to the video unit, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or a reconstruction of the video unit by the IBC-LIC; and generating the bitstream based on the compensated prediction or the reconstruction of the video unit.
57. A method for storing a bitstream of a video, comprising: determining whether intra block copy (IBC) and local illumination compensation (LIC) (IBC-LIC) is applied to a video unit of the video; if it is determined that the IBC-LIC is applied to the video unit, determining a set of parameters used in the IBC-LIC; performing a compensation process based on a prediction or a reconstruction of the video unit by the IBC-LIC; generating the bitstream based on the compensated prediction or the reconstruction of the video unit; and storing the bitstream in a non-transitory computer-readable recording medium.