Method and apparatus for chroma coding
Patent Information
- Application Number
- JP2026520192
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-10-05
- Filing Date
- 2024-09-30
- Publication Date
- 2026-10-13
Smart Images

Figure 2026533906000001_ABST
Abstract
Description
[Technical Field]
[0001] (Cross-reference to related applications) This application claims priority to U.S. Provisional Application No. 63 / 542,674, entitled "CHROMACODING," filed on 5 October 2023, which is incorporated herein by reference in its entirety.
[0002] Embodiments of this disclosure relate to video coding. [Background technology]
[0003] Digital video has become mainstream and is used in a wide range of applications, including digital television, video phones, and video conferencing. These digital video applications are made possible by advances in computing and communication technologies, as well as efficient video coding techniques. Various video coding techniques can be used to compress video data, and as a result, coding can be performed on video data using one or more video coding standards. Exceptional video coding standards may include, but are not limited to, Versatile Video Coding (H.266 / VVC), High-Efficiency Video Coding (H.265 / HEVC), Advanced Video Coding (H.264 / AVC), Moving Picture Expert Group (MPEG) coding, and Enhanced Video Coding Model (ECM). [Overview of the project]
[0004] According to one aspect of the present disclosure, a decoding method by a decoder is provided. The method may include, in response to luminance blocks at the same location in a single-tree partition being encoded using intra-template matching (intraTMP) or intra-block copying (IBC), the processor determining that the corresponding chroma difference (also called chroma) block is eligible for prediction using a block vector-inductive (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode. The method may include, by the processor, parsing the bitstream to obtain a BVG-CCCM flag. The method may include, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chroma difference block, the processor generating a BVG-CCCM mode prediction for the corresponding chroma difference block.
[0005] A decoder is provided according to another aspect of the present disclosure. The decoder may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions may cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions may cause the processor to parse a bitstream and obtain a BVG-CCCM flag. When executed by the processor, the memory for storing instructions may cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0006] A further aspect of the present disclosure provides a device for decoding. The device for decoding may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions can cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions can cause the processor to parse a bitstream and obtain a BVG-CCCM flag. When executed by the processor, the memory for storing instructions can cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode has been selected for the corresponding chrominance block.
[0007] In yet another aspect of the present disclosure, a non-temporary computer-readable medium for storing instructions for a decoder is provided. When executed by the decoder's processor, the instructions can cause the decoder's processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the decoder's processor, the instructions can cause the decoder's processor to parse the bitstream and obtain a BVG-CCCM flag. When executed by the decoder's processor, the instructions can cause the decoder's processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0008] According to one aspect of the present disclosure, an encoding method by an encoder is provided. The method may include the processor determining, in response to luminance blocks at the same location in a single-tree partition being encoded using intraTMP or IBC, that the corresponding chrominance block is eligible for prediction using the BVG-CCCM mode. The method may include the processor encoding a BVG-CCCM flag. The method may include the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode has been selected for the corresponding chrominance block.
[0009] An encoder is provided according to another aspect of the present disclosure. The encoder may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions may cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions may cause the processor to encode a BVG-CCCM flag. When executed by the processor, the memory for storing instructions may cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0010] A further aspect of the present disclosure provides an apparatus for encoding. The apparatus for encoding may include a processor and a memory for storing instructions. When executed by the processor, the memory for storing instructions can cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions can cause the processor to encode a BVG-CCCM flag. When executed by the processor, the memory for storing instructions can cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0011] In yet another aspect of the present disclosure, a non-temporary computer-readable medium for storing instructions for an encoder is provided. When executed by the encoder's processor, the instructions can cause the encoder's processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the encoder's processor, the instructions can cause the encoder's processor to encode a BVG-CCCM flag. When executed by the encoder's processor, the instructions can cause the encoder's processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0012] In yet another aspect of this disclosure, a non-temporary computer-readable medium for storing a bitstream is provided, the bitstream being generated in accordance with one or more operations described herein.
[0013] These exemplary embodiments are described not to limit or define the present disclosure, but to illustrate examples to aid in its understanding. Further embodiments are described in embodiments for carrying out the invention, which provide further explanation. [Brief explanation of the drawing]
[0014] The accompanying drawings incorporated herein and constituting part thereof illustrate embodiments of the present disclosure and, together with the description, further illustrate the principles of the present disclosure and further enable those skilled in the art to implement and utilize the present disclosure.
[0015] [Figure 1] A block diagram of an exemplary coding system according to some embodiments of this disclosure is shown. [Figure 2] An exemplary block diagram of a decoding system according to some embodiments of this disclosure is shown. [Figure 3] A detailed block diagram of an exemplary encoder in the encoding system of Figure 1, according to some embodiments of this disclosure, is shown. [Figure 4] A detailed block diagram of an exemplary decoder in the decoding system shown in Figure 2, according to some embodiments of the present disclosure, is shown. [Figure 5] The following are illustrative pictures of a coding tree unit (CTU) divided into several embodiments of the present disclosure. [Figure 6] An exemplary CTU divided into coding units (CUs) according to some embodiments of this disclosure is shown. [Figure 7] This shows schematic visualizations of the current CU block and spatially adjacent and non-adjacent reconstructed samples to the current block, according to some embodiments of the present disclosure. [Figure 8] A schematic visualization of the angular modes of VVC according to some embodiments of this disclosure is shown. [Figure 9A] The diagrams show slice splitting for intra-prediction according to some embodiments of this disclosure. [Figure 9B] FIG. 1 illustrates a diagram of tile division for intra prediction according to some embodiments of the present disclosure. [Figure 9C] FIG. 2 illustrates a diagram of wavefront parallel processing for intra prediction according to some embodiments of the present disclosure. [Figure 10A] FIG. 3 illustrates a diagram of intra block copy (IBC) according to some embodiments of the present disclosure. [Figure 10B] FIG. 4 illustrates a diagram of intra template matching prediction (intraTMP) according to some embodiments of the present disclosure. [Figure 10C] FIG. 5 illustrates a diagram of an extended search region for intraTMP according to some embodiments of the present disclosure. [Figure 11] FIG. 6 illustrates a diagram of fractional pixel positions of intraTMP according to some embodiments of the present disclosure. [Figure 12] FIG. 7 illustrates a diagram of a direct block vector (DBV) mode according to some embodiments of the present disclosure. [Figure 13] FIG. 8 illustrates a diagram of DBV prediction according to some embodiments of the present disclosure. [Figure 14] FIG. 9 illustrates a diagram of the spatial component of a convolutional cross-component intra prediction model (CCCM) filter according to some embodiments of the present disclosure. [Figure 15] FIG. 10 illustrates a diagram of a reference region used to calculate the CCCM filter according to some embodiments of the present disclosure. [Figure 16] FIG. 11 illustrates a reference region used to calculate a block vector guided CCCM (BVG-CCCM) filter according to some embodiments of the present disclosure. [Figure 17] FIG. 12 illustrates a flowchart of a decoding method according to some embodiments of the present disclosure. [Figure 18] A flowchart of an encoding method according to some embodiments of this disclosure is shown. Embodiments of this disclosure will be described with reference to the accompanying drawings. [Modes for carrying out the invention]
[0016] While several configurations and arrangements are described, please understand that these are for illustrative purposes only. Those skilled in the art will recognize that other configurations and arrangements can be used without departing from the spirit and scope of this disclosure. It will also be apparent to those skilled in the art that this disclosure can be adopted in various other applications.
[0017] References in this specification to “one embodiment,” “a certain embodiment,” “exemplary embodiment,” “several embodiments,” and “specific embodiment” indicate that the embodiments described may include certain features, structures, or characteristics, but it should be noted that not all embodiments necessarily include those specific features, structures, or characteristics. Furthermore, such phrases do not necessarily refer to the same embodiment. Moreover, if a particular feature, structure, or characteristic is described in relation to one embodiment, it is within the knowledge of those skilled in the art to realize such feature, structure, or characteristic in relation to other embodiments, whether explicitly described or not.
[0018] In general, terms can be understood, at least partially, from their contextual use. For example, the term “one or more” as used herein may, at least partially contextually, be used to describe any feature, structure, or characteristic in the singular, or to describe a combination of features, structures, or characteristics in the plural. Similarly, terms such as “a,” “an,” or “the” can also be understood, at least partially contextually, to convey either singular or plural use. Furthermore, the term “based on” is not necessarily intended to convey an exclusive set of factors, and can be understood, at least partially contextually, to allow for the presence of additional factors that are not necessarily explicitly described.
[0019] Various embodiments of video encoding systems are described with reference to various devices and methods. These devices and methods are described in the following detailed description and are illustrated in the accompanying drawings by various modules, components, circuits, steps, operations, processes, algorithms, etc. (collectively referred to as “elements”). These elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the specific application and the design constraints imposed on the overall system.
[0020] The techniques described herein may be used for a variety of video encoding applications. As described herein, video encoding includes both encoding and decoding of video. Video encoding and decoding may be performed in units of blocks. For example, encoding / decoding processes such as transformation, quantization, prediction, in-loop filtering, and reconstruction may be performed on an encoding block, a transformation block, or a prediction block. As described herein, the block to be encoded / decoded is referred to as the “current block.” For example, the current block may represent an encoding block, a transformation block, or a prediction block according to the current encoding / decoding process. Furthermore, as used in this disclosure, the term “unit” is understood to refer to a basic unit for performing a particular encoding / decoding process, and the term “block” is understood to refer to a sample array of a given size. Unless otherwise specified, “block” and “unit” may be used interchangeably.
[0021] Figure 1 shows a block diagram of an exemplary encoding system 100 according to some embodiments of the present disclosure. Figure 2 shows a block diagram of an exemplary decoding system 200 according to some embodiments of the present disclosure. Each system 100 or 200 may be applied to or integrated into a variety of data-processing systems and devices, such as computers and wireless communication devices. For example, system 100 or 200 may be all or part of a mobile phone, desktop computer, laptop computer, tablet, in-vehicle computer, game console, printer, positioning device, wearable electronic device, smart sensor, virtual reality (VR) device, augmented reality (AR) device, or any other suitable electronic device with data processing capabilities. As shown in Figures 7 and 8, system 100 or 200 may include a processor 102, memory 104, and interface 106. These components are shown connected to each other by a bus, but other types of connections are also permitted. It is understood that system 100 or 200 may include any other suitable components for performing the functions described herein.
[0022] Processor 102 may include microprocessors such as graphics processing units (GPUs), image signal processors (ISPs), central processing units (CPUs), digital signal processors (DSPs), tensor processing units (TPUs), vision processing units (VPUs), neural processing units (NPUs), synergistic processing units (SPUs), or physics processing units (PPUs), microcontroller units (MCUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), programmable logic devices (PLDs), state machines, gate logic, discrete hardware circuits, and other suitable hardware configured to perform the various functions described throughout this disclosure. Although only one processor is shown in Figures 7 and 8, it will be understood that multiple processors may be included. The processor 102 may be a hardware device having one or more processing cores. The processor 102 may execute software.Software is broadly interpreted to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executable files, execution threads, procedures, functions, etc., whether they are called software, firmware, middleware, microcode, hardware description languages, etc. Software may include computer instructions written in interpreted languages, compiled languages, or machine code. Other techniques for instructing hardware are also permitted under the broad category of software.
[0023] Memory 104 may broadly include both memory (also known as primary / system memory) and storage (also known as secondary memory). For example, memory 104 may include random-access memory (RAM), read-only memory (ROM), static RAM (SRAM), dynamic RAM (DRAM), ferro-electric RAM (FRAM®), electrically erasable programmable ROM (EEPROM), compact disc read-only memory (CD-ROM) or other optical disc storage, magnetic disk storage or other magnetic storage devices such as hard disk drives (HDD), flash drives, solid-state drives (SSD), or any other medium that can be used to carry or store desired program code in the form of instructions accessible and executable by processor 102. Broadly speaking, memory 104 may be embodied by any computer-readable medium such as non-temporary computer-readable media. Although Figures 1 and 2 show only one memory location, it should be understood that multiple memory locations can be included.
[0024] Interface 106 may broadly include data interfaces and communication interfaces configured to receive and transmit signals in the process of sending and receiving information with other external network elements. For example, interface 106 may include input / output (I / O) devices and wired or wireless transceivers. Although only one memory is shown in Figures 1 and 2, it is understood that multiple interfaces can be included.
[0025] The processor 102, memory 104, and interface 106 can be implemented in various ways in system 100 or 200 to perform video encoding functions. In some embodiments, the processor 102, memory 104, and interface 106 of system 100 or 200 are implemented (e.g., integrated) on one or more system-on-chip (SoCs). In one example, the processor 102, memory 104, and interface 106 may be integrated into an application processor (AP) SoC that handles application processing in an operating system (OS) environment, including the execution of video encoding and decoding applications. In another example, the processor 102, memory 104, and interface 106 may be integrated onto a dedicated processor chip for video encoding, such as a GPU or ISP chip dedicated to image and video processing in a real-time operating system (RTOS).
[0026] As shown in Figure 1, in the encoding system 100, the processor 102 may include one or more modules, such as the encoder 101. Although Figure 1 shows that the encoder 101 resides within a single processor 102, it is understood that the encoder 101 may include one or more submodules that can be implemented on different processors located close to or far from each other. The encoder 101 (and any corresponding submodule or subunit) may be a hardware unit of the processor 102 (e.g., part of an integrated circuit) designed for use with other components or software units implemented by the processor 102 by executing at least a portion of a program (e.g., instructions). The program instructions may be stored in a computer-readable medium such as memory 104, and when executed by the processor 102, they may perform processes having one or more functions related to video encoding, such as picture splitting, inter-prediction, intra-prediction, transformation, quantization, filtering, and entropy coding, as will be described in detail below.
[0027] Similarly, as shown in Figure 2, in the decoding system 200, the processor 102 may include one or more modules, such as the decoder 201. Although Figure 2 shows that the decoder 201 resides within a single processor 102, it is understood that the decoder 201 may include one or more submodules that can be implemented on different processors located close to or far from each other. The decoder 201 (and any corresponding submodule or subunit) may be a hardware unit of the processor 102 (e.g., part of an integrated circuit) designed for use with other components or software units implemented by the processor 102 by executing at least a portion of a program (e.g., instructions). The program instructions may be stored in a computer-readable medium such as memory 104, and when executed by the processor 102, they may perform processes having one or more functions related to video decoding, such as entropy decoding, inverse quantization, inverse transform, inter-prediction, intra-prediction, and filtering, as will be described in detail below.
[0028] Figure 3 shows a detailed block diagram of an exemplary encoder 101 in the encoding system 100 of Figure 1, according to some embodiments of the present disclosure. As shown in Figure 3, the encoder 101 may include a splitting module 302, an inter-prediction module 304, an intra-prediction module 306, a transform module 308, a quantization module 310, an inverse quantization module 312, an inverse transform module 314, a filter module 316, a buffer module 318, and an encoding module 320. Each of the elements shown in Figure 3 is shown independently to represent a distinct characteristic function in the video encoder, but it should be understood that this does not mean that each component is formed by separate hardware or a single software configuration unit. That is, each element is included as listed as an element for convenience of explanation, and at least two elements may be combined to form a single element, or one element may be divided into multiple elements to perform a function. It should also be understood that some of the elements may not be essential elements for performing the functions described in the present disclosure, but may be optional elements for improving performance. It is also understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the specific application and design constraints imposed on the encoder 101.
[0029] The splitting module 302 may be configured to split a video input picture into at least one processing unit. The picture may be a video frame or a video field. In some embodiments, the picture includes an array of luminance samples in a monochrome format, or an array of luminance samples and two corresponding arrays of color difference samples. The processing unit may be a prediction unit (PU), a transform unit (TU), or a coding unit (CU). The splitting module 302 may encode the picture by splitting the picture into a combination of coding units, prediction units, and transform units, and selecting a combination of coding units, prediction units, and transform units based on a predetermined criterion (e.g., a cost function).
[0030] Like H.265 / HEVC, H.266 / VVC is a block-based hybrid spatial and temporal predictive coding scheme. As shown in Figure 5, during coding, the input picture 500 is first divided into square blocks called CTUs 502 by the partitioning module 302. For example, a CTU 502 may be a 128 × 128 pixel block. As shown in Figure 6, each CTU 502 of the input picture 500 can be divided into one or more CUs 602 by the partitioning module 302, which can be used for prediction and transformation. Unlike H.265 / HEVC, in H.266 / VVC, the CUs 602 can be rectangular or square and can be coded without further division into prediction and transformation units. For example, as shown in Figure 6, the division of a CTU 502 into CUs 602 may include quadtree division (shown by solid lines), binary tree division (shown by dashed lines), and ternary tree division (shown by dashed lines). According to some embodiments, each CU602 may be the same size as its root CTU, or it may be a subdivision of the root CTU502 down to a minimum of 4x4 blocks.
[0031] Referring to Figure 3, the inter-prediction module 304 may be configured to perform inter-prediction on the prediction unit, and the intra-prediction module 306 may be configured to perform intra-prediction on the prediction unit. The system can decide whether to use inter-prediction or intra-prediction on the prediction unit, and determine specific information (e.g., intra-prediction mode, motion vector, reference picture, etc.) according to each prediction method. In this case, the processing unit for performing the prediction may differ from the processing unit for determining the prediction method and specific details. For example, the prediction method and prediction mode may be determined at the prediction unit, and the prediction may be performed at the transformation unit. The residual coefficients in the residual block between the generated prediction block and the original block may be input to the transformation module 308. Furthermore, prediction mode information, motion vector information, etc., used for prediction may be encoded into a bitstream by the encoding module 320 along with the residual coefficients and quantization level. It is understood that in certain encoding modes, the original block may be encoded directly without generating a prediction block via the prediction module 304 or 306. It is also understood that in certain encoding modes, prediction, transformation, and / or quantization may be skipped.
[0032] In some embodiments, the interpretation module 304 may predict prediction units based on information about at least one picture that precedes or follows the current picture, and possibly based on information about a partial region encoded in the current picture. The interpretation module 304 may include submodules such as a reference picture interpolation module, a motion prediction module, and a motion compensation module (not shown). For example, the reference picture interpolation module may receive reference picture information from the buffer module 318 and generate pixel information from the reference picture in units of integer pixels or less. For luminance pixels, a discrete cosine transform (DCT) based 8-tap interpolation filter with varying filter coefficients may be used to generate pixel information in units of 1 / 4 pixels or less in units of integer pixels or less. For chrominance signals, a DCT-based 4-tap interpolation filter with varying filter coefficients may be used to generate pixel information in units of 1 / 8 pixels or less in units of integer pixels or less. The motion prediction module may perform motion prediction based on the reference picture interpolated by the reference picture interpolation unit. Various methods can be used to calculate motion vectors, including the full search-based block matching algorithm (FBMA), three-step search (TSS), and the new three-step search algorithm (NTS). The motion vector may have motion vector values in units of 1 / 2, 1 / 4, or 1 / 16 pixels, or integer Pels, based on the interpolated pixels. The motion prediction module can predict the current prediction unit by changing the motion prediction method. Various methods can be used for motion prediction, such as the skip method, merge method, advanced motion vector prediction (AMVP), and intra-block copy method.
[0033] Continuing to refer to Figure 3, in some embodiments, the intra-prediction module 306 may generate prediction units based on information about reference pixels surrounding the current block, which are pixel information within the current picture. The reference pixels may be located on reference lines not adjacent to the current block. If a neighboring block of the current prediction unit is a block where inter-prediction has been performed, and therefore the reference pixels are pixels where inter-prediction has been performed, the reference pixels included in the inter-predicted block may be used in place of the reference pixel information of the neighboring block where intra-prediction has been performed. That is, if a reference pixel is unavailable, at least one of the available reference pixels may be used in place of the unavailable reference pixel information. In intra-prediction, the prediction modes may include an angle prediction mode that uses reference pixel information corresponding to the prediction direction, and a non-angle prediction mode that does not use direction information when making predictions. A mode for predicting luminance information may differ from a mode for predicting color difference information, and the intra-prediction mode information or predicted luminance signal information used to predict luminance information may be used to predict color difference information. When intraprediction is performed and the size of the prediction unit is the same as the size of the transformation unit, intraprediction for the prediction unit may be performed based on the left pixel, upper left pixel, and upper pixel of the prediction unit. However, when intraprediction is performed and the size of the prediction unit is different from the size of the transformation unit, intraprediction may be performed using the reference pixels based on the transformation unit.
[0034] The intra-prediction method may generate a prediction block after applying an adaptive intra-smoothing (AIS) filter to a reference pixel according to the prediction mode. The type of AIS filter applied to the reference pixel may vary. To perform the intra-prediction method, the intra-prediction mode of the current prediction unit may be predicted from the intra-prediction modes of prediction units located in the vicinity of the current prediction unit. When predicting the prediction mode of the current prediction unit using mode information predicted from neighboring prediction units, if the intra-prediction mode of the current prediction unit is the same as that of the neighboring prediction unit, information indicating that the prediction mode of the current prediction unit is the same as that of the neighboring prediction unit may be transmitted using predetermined flag information. If the prediction modes of the current prediction unit and the neighboring prediction units are different, the prediction mode information of the current block may be encoded with additional flag information.
[0035] As shown in Figure 3, a residual block may be generated that includes a prediction unit that has performed a prediction based on the prediction units generated by the prediction module 304 or 306, and residual coefficient information (also referred to herein as “residuals”) which is the difference value of the prediction unit between that unit and the original block. The generated residual block may be input to the transformation module 308. Additional details of residuals and transformations for video encoding are provided below.
[0036] In hybrid video coding systems, video signal redundancy is first exploited by applying an inter- or intra-prediction tool to each CU. The difference between the original sample of a CU and its predicted block is generally called the residual. Even after prediction, residuals may still have high spatial correlations. While conditional entropy coding can capture some spatial dependencies between neighboring samples, it is computationally impractical to form a statistical model of entropy coding that fully utilizes the spatial correlations in residuals. In contrast, transform coding is a practical and effective method for spatially decorrelating residuals.
[0037] For example, the transformation module 308 may transform residuals using an integerized version of the two-dimensional discrete cosine transform (DCT), which can be applied separately in the horizontal and vertical directions. For an M × N residual sample block (where M is the width of the block and N is the height of the block), the transformation module 308 may obtain the transformation coefficients by applying an M × M DCT to each row to obtain intermediate transformation coefficients, and then applying an N × N DCT to each column of the intermediate transformation coefficients.
[0038] In the case of intra-coded CUs (also referred to herein as "intraCUs"), spatially adjacent reconstructed samples are used to predict the current block, and the intra-prediction mode is signaled only once for the entire CU. Each CU consists of one or more identically located coding blocks (CBs) corresponding to the color components of the video sequence. For example, since consumer video generally takes a 4:2:0 chroma difference format, each CU consists of a luminance CB and two chroma difference CBs having one-quarter of the samples of the luminance CB. Intra-prediction and transform coding are performed at the prediction block (PB) level and transform block (TB) level, respectively. Each CB consists of a single TB, except in intra-sub-partition (ISP) mode and in the case of implicit partitioning. For luminance CBs, the maximum side length of the TB is 64 and the minimum side length is 4. Furthermore, the luminance TB is further specified as a W×H rectangular block with width W and height H, where W,H ∈ {4,8,16,32,64}. In the case of color difference CB, the maximum TB side length is 32, and the chroma TB is a W×H rectangular block with width W and height H. Here, W,H ∈ {2,4,8,16,32}, but to address memory architecture and throughput requirements, blocks of shape 2×H and 4×2 are excluded.
[0039] Figure 7 shows schematic visualizations 700 of the current CU block 702 and spatially adjacent and non-adjacent reconstructed samples to the current block, according to several aspects of the present disclosure. In Figure 7, the numbers 0, 1, 2, ... indicate the pixel line indices associated with the current CU block 702.
[0040] In VVC, the intra-predictive sample of the current block is generated using a reference sample obtained from the reconstructed sample of an adjacent block. In the case of a W×H block, the reference sample is spatially adjacent to the current block and consists of a vertical line of 2·H reconstructed samples extending downward from the left side of the block, the upper left reconstructed sample, and a horizontal line of 2·W reconstructed samples extending to the right from the top of the current block. This "L"-shaped sample set may be referred to as the "reference line" in this disclosure. The reference line directly adjacent to the current CU block 702 is shown as the line at index 0 in Figure 7.
[0041] Like AVC and HEVC, VVC also supports an angle intra-prediction mode. Angle intra-prediction is a directional intra-prediction method. Compared to HEVC, VVC's angle intra-prediction is improved by increased prediction accuracy and adaptation to a new segmentation framework. The former is achieved by increasing the number of angle prediction directions and employing more accurate interpolation filters, while the latter is achieved by introducing a wide-angle intra-prediction mode. In VVC, the number of directional modes available for a given block has increased from 33 directions in HEVC to 65 directions. VVC's angle mode 800 is shown in Figure 8.
[0042] Directions with even index numbers from 2 to 66 are equivalent to the angular mode directions supported by HEVC. For square blocks, an equal number of angular modes are assigned to the top and left sides of the block. Rectangular intrablocks, which do not exist in HEVC, are a central element of the VVC partitioning scheme, and additional intraprediction directions are assigned to the longer sides of the block. These additional modes assigned along the longer sides are called Wide-Angle Intra Prediction (WAIP) modes because they correspond to prediction directions with angles greater than 45° to the horizontal or vertical modes. WAIP modes for a particular mode index are defined by mapping the original direction mode to a mode with an opposite direction equal to an index offset of 1, as shown in Figure 8. For a particular rectangular block, the aspect ratio (e.g., the ratio of width to height) is used to determine which angular modes are replaced by their corresponding wide-angle modes.
[0043] In the case of VVC square blocks, each pair of horizontally or vertically adjacent predicted samples is predicted from an adjacent pair of reference samples. In contrast, WAIP extends the angular range of directional prediction beyond 45°, so for coded blocks predicted in WAIP mode, adjacent predicted samples may be predicted from non-adjacent reference samples.
[0044] In addition to the lines of directly adjacent samples, one of the two non-adjacent reference lines (line 1 and line 2) shown in Figure 7 may contain the input sample for intra-prediction in VVC. In the case of ECM, even more non-adjacent reference lines may be used. The use of adjacent and non-adjacent reference samples is called multiple reference line (MRL) prediction.
[0045] The intra-modes available for MRL are DC mode and angle prediction mode. However, not all of these modes are combined with MRL for a given block. In VVC, MRL modes are always combined with a mode in the Most Probable Mode (MPM) list. This combination means that when non-adjacent reference lines are used, the intra-prediction mode is one of the MPMs. The design of such MPM-based MRL prediction modes is based on the observation that non-adjacent reference lines are primarily beneficial for texture patterns with sharp, strongly directional edges. In these cases, there is usually a strong correlation between the texture patterns of adjacent blocks and the current block, so MPMs are chosen much more frequently. On the other hand, choosing a non-MPM for intra-prediction indicates that the edges are not consistently distributed across adjacent blocks, and therefore, the MRL prediction mode is less likely to be useful in this case. Furthermore, since Planar mode is typically used for smooth regions, it has been observed that MRL does not provide additional coding gain when the intra-prediction mode is Planar mode. As a result, MRL always excludes Planar mode, which is one of the MPMs. The angle or DC prediction process in MRL is very similar to that of directly adjacent reference lines. However, for angle modes with non-integer gradients, a DCT-based interpolation filter (DCTIF) is always used. This design choice is supported by experimental results and is consistent with empirical observations that MRL is primarily beneficial for edges with sharp and strong directionality, and that DCTIF is better suited to retaining more high frequencies than some other filters.
[0046] From a hardware design perspective, applying multiple reference lines as proposed in the first method requires the additional cost of line buffers used to hold the additional reference lines. In typical hardware designs, line buffers are part of the on-chip memory architecture for image and video encoding, and minimizing their on-chip area is crucial. To address this issue, MRL is disabled and not signaled for encoding units mounted on the upper boundary of the CTU. In this way, the additional buffers for holding non-adjacent reference lines are limited to 128, which is the width of the maximum unit size.
[0047] In several known approaches, an intra-prediction fusion method has been proposed to improve the accuracy of intra-prediction. More specifically, if the current block is a luminance block, encoded in non-integer gradient angle mode, not in ISP mode, and the block size (width × height) is greater than 16, then two prediction blocks generated from two different reference lines are "fused," and the prediction fusion is calculated as a weighted sum of the two prediction blocks. More specifically, the first reference line at index i (line i ) is specified in the current signaling scheme within the bitstream, and the prediction block generated from this reference line using the selected intra-prediction mode is p(line i This is expressed as ), where p(·) represents the operation that generates a prediction block from a reference line in a given intra-prediction mode. In known approaches, the reference line i+1 The second reference line is implicitly selected. That is, the second reference line is one index position away from the current block relative to the first reference line. Similarly, the predicted block generated from the second reference line is p(line i+1 It is expressed as ). The weighted sum of the two prediction blocks is obtained as follows and acts as the predictor of the current block according to equation (1).
[0048] p fusion =w0*p(line i)+w1*p(line i+1 ) (1) Here, p fusion The 'w0' represents the fusion prediction, and w0 and w1 are two weighting coefficients, which are set to 3 / 4 and 1 / 4 respectively in the experiment.
[0049] In the intra prediction method described above, the predictor is derived depending on adjacent reference samples. However, this itself depends on whether the reference samples are available in the current CU. Sample availability depends on two factors: 1) whether the sample has already been reconfigured, and 2) whether the sample belongs to a logical unit that the current CU is permitted to use.
[0050] To determine whether a sample has already been reconstructed, we consider the partitioning structure of the VVC. Referring to Figure 5, each picture is partitioned into square CTU tiles, which are processed in raster scan order. If the intra-prediction method is run on the current CU602 within the current CTU502, then samples belonging to other CTUs preceding the current CTU502 in the raster scan order have been reconstructed and may be available for prediction. Samples belonging to CTUs following the current CTU502 in the raster scan order have not been reconstructed and are therefore not available.
[0051] Each CTU502 itself is divided into CUs by a hierarchical structure consisting of quadtree, binary tree, and ternary tree splits, an example of which is shown in Figure 6. The scan order of the CUs within the CTU502 is determined by the split structure. In the case of a single-level split, the partitions are scanned in the following order: 1) from left to right for horizontal binary or horizontal ternary tree splits, 2) from top to bottom for vertical binary or vertical ternary tree splits, and 3) top left, top right, bottom left, and bottom right for quadtree splits.
[0052] If a partition includes further hierarchical divisions, all CUs within that partition are scanned before proceeding to the CUs of the next partition. Figure 6 shows an example where CTU502 is divided into 15 CUs. Each CU602 in Figure 6 is numbered from 1 to 15 to indicate its scan order. When the intra-prediction method is performed on the current CU within the current CTU, samples belonging to other CUs within the current CTU that precede the current CU in the current CTU's partition scan order are reconstructed and may be available for prediction. Samples belonging to the current CU, or to CUs that follow the current CU in the current CTU's partition scan order, are not reconstructed and therefore unavailable.
[0053] Samples belonging to CTUs preceding the current CTU in the raster scan order are considered to have been reconstructed according to the definition above. However, they are not necessarily available for intra-prediction. To be considered available for prediction, they must also belong to a logical unit that the current CU is permitted to use. The picture may be divided into sub-picture partitions, each containing an integer CTU. Figure 9A shows a diagram of slice partitions 900 of a picture for intra-prediction according to some embodiments of the present disclosure. Samples belonging to slice partitions 904 other than the slice containing the current CU (of CTU 902) are not available for intra-prediction. This restriction makes it possible to decode slices independently.
[0054] Figure 9B shows a diagram of a picture tile partition 901 for intra-prediction according to some embodiments of the present disclosure. Samples belonging to tile partition 906 other than the tile containing the current CU (CTU 902) are not available for intra-prediction. This restriction makes it possible to decode tiles independently.
[0055] Figure 9C shows a diagram of a picture wavefront parallel processing 903 for intra prediction according to some embodiments of the present disclosure.
[0056] The way intra-prediction methods (e.g., slicing, tiling, or wavefront parallel processing) handle the unavailability of reference samples required for prediction varies depending on the method. If such samples are unavailable, the method may simply be disabled. Alternatively, extrapolation of the unavailable samples may be performed, such as through boundary extension.
[0057] In the intra prediction method described above, with reference to Figures 9A to 9C, predictors are derived only from spatially adjacent reference samples. However, a greater coding gain can be achieved by expanding the range of reconstructed samples that can be used to derive predictors. One example of this is the intra-block copy (IBC) mode.
[0058] Figure 10A shows a diagram of the IBC1000 according to some embodiments of the present disclosure.
[0059] Referring to Figure 10A, when the current CU1004 is predicted by intra-block copy mode, a block vector (BV) 1010 is signaled to indicate which block in the same picture will be copied to function as the predictor 1012 for the current block. This block vector signaling can be performed by signaling a block vector difference (BVD) in the bitstream, thereby determining the block vector by adding the BVD to the block vector predictor. Alternatively, if the block vector from the previous CU is a perfect match to the current block vector, it may be signaled by a merge flag. Regardless of the signaling mechanism, the block vector points to a location in the same picture and indicates a block of samples equal in size to the current CU1004 that will be used as the predictor block for the current CU1004. Several limitations may apply to the block vector. In the first limitation, the block vector 1010 may point to a block of samples in the current picture that is available for intra-prediction. In the second limitation, block vector 1010 may be limited to the search area defined for the IBC tool, which may be smaller than the current picture. For example, in VVC, the IBC search area is the current CTU 1002 and the previous CTU. In ECM, the IBC search area is the current CTU row 1006 and the CTU row above 1014 if the CTU size is 256x256, and the current CTU row 1006 and the two CTU rows above if the current CTU size is 128x128 or less.
[0060] To further improve encoding performance, ECM-9.0 proposes a fractional pixel IBC method. More specifically, in addition to the existing integer pixel IBC, a 1 / 16 pixel resolution is supported. For fractional pixel motion compensation, the 8-tap luminance filter and chrominance filter used in VVC are used to interpolate fractional pixel values. After an IBC block is encoded, the 1 / 16 pixel resolution is stored for encoding future blocks.
[0061] Figure 10B shows a diagram of intraTMP1001 according to some embodiments of the present disclosure.
[0062] Referring to Figure 10B, intraTMP is an intra-prediction mode similar to IBC in that the current CU1022 is also predicted by a block of samples from the current picture. intraTMP can only be selected as a prediction mode for CUs with a size of 64x64 or less. However, unlike IBC, the block vector 1024 is not signaled in the bitstream in intraTMP. Instead, the decoder 201 compares a predefined L-shaped or other shaped template of reconstructed samples adjacent to the current CU1022 with a template of the same shape for a candidate predictor in a predetermined search region. If the template is L-shaped, both the left and upper adjacent samples of the current CU1022 or the intraTMP predictor 1026 are used. Let TmpW be the width of the left template region and TmpH be the width of the upper template region. Other template shapes include a left template, which contains only the left template region, and an upper template, which consists only of the upper template region.
[0063] The intraTMP predictor block is determined by finding the best candidate template that matches the current CU template. The best match can be determined by finding the template that minimizes the sum of absolute differences (SAD) or the sum of absolute transformed differences (SATD), or by comparing hashes between templates. The search algorithm through the search domain may be exhaustive (e.g., by scanning templates across the entire search domain with a shift in sample resolution) or fast (e.g., by performing a coarse search first, and then performing a local refinement search around the best match from the coarse search). In either case, since the search algorithm is executed identically by both the encoder and decoder, the intraTMP predictor is implicitly known by both encoder 101 and decoder 201 without requiring signaling in the bitstream. An example of intraTMP is shown in Figure 10B, where the current CU template and the best match template are indicated by hatching.
[0064] Continuing to refer to Figure 10B, for intraTMP predictor 1026 to be selected, the sample block corresponding to intraTMP predictor 1026 must be completely contained within the search region. The search region is shown in Figure 10B by a dashed shaded line. Within the current CTU1020, the search region is confined to a rectangular block of samples, one corner bounded by the upper left corner of the current CTU1020 and the other corner bounded by the upper left corner of the current CU1022.
[0065] Outside the current CTU1020, the search region is limited by imposing a maximum length of intraTMP block vectors on (searchRangeWidth1028, searchRangeHeight1030), where searchRangeWidth1028 and searchRangeHeight1030 are set proportionally to the dimensions of the current CU1022, i.e., searchRangeWidth = a * BlkW and searchRangeHeight = a * BlkH, where "a" is a constant controlling the trade-off between gain and complexity, and BlkW and BlkH are the width and height of the current CU1022, respectively. Here, in the ECM-7.0 test software, "a" is set to 5. searchRangeHeight1030 limits the length of block vectors only in the negative vertical direction (i.e., towards the top of the picture). For block vectors with a positive vertical component, the search region is limited by the bottom boundary of the current CTU row. For example, in Figure 10B, the search area extends to the lower boundary of the left CTU 1032 regardless of the value of searchRangeHeight 1030. Furthermore, these limitations on the search range do not apply to the current CTU 1020. For example, even in the case of a small CU where searchRangeWidth 1028 and searchRangeHeight 1030 may be smaller than the dimensions of the current CTU 1020, the search area extends to the upper left corner of the current CTU 1020.
[0066] Beyond the limitations imposed by the search region, the intraTMP predictor 1026 and its template must consist of samples available for intra-prediction. For example, the search region boundary is still overridden by the boundaries of a picture, slice, or tile. Let (currCuX,currCuY) be the coordinates of the top-left corner of the current CU relative to the current picture. Then, the left boundary of the intraTMP search region is initially set to intraTmpLeftBound=currCuX-searchRangeWidth. Taking the picture boundary into consideration, the left boundary is clipped to allow a sample width of TmpW for the predictor template.
number
[0067] To speed up the template matching process, the search area is initially traversed horizontally or vertically in increments of 2 pixels at a time. This is also known as the search subsampling coefficient of 2. This reduces the complexity of the template matching search by a quarter. After finding the best match from the initial search, a refinement process is performed. Refinement is done through a second template matching search with a narrowed range around the best match. In ECM-7.0, the narrowed range is set to BlkH / 2.
[0068] Figure 10C shows a diagram of an extended search area for intraTMP1003 according to some embodiments of the present disclosure.
[0069] Referring to Figure 10C, in the case of small CUs, the search range may be excessively restricted, making it difficult to obtain good predictors. For example, a 4x4 CU is only allowed a maximum search range of (20,20). To improve this situation in small CUs, some implementations impose a minimum limit on the intraTMP search range. For example, searchRangeWidth=max(a*BlkW,minSearchRange) and searchRangeHight=max(a*BlkH,minSearchRange), where minSearchRange is set to 128.
[0070] This implementation excludes some areas within the current CTU1020 that are available for prediction. This specification proposes extending the search area within the current CTU1020 to include the areas directly above and to the left of the current CU1022. The proposed modified search area is shown in Figure 10C, where the areas added to the search area compared to the area in Figure 10B are marked with cross-hatch shading.
[0071] Figure 11 shows a fractional-pel position 1100 of the intraTMP according to some embodiments of this disclosure.
[0072] Referring to Figure 11, ECM-9.0 employs a multiple-candidate intraTMP prediction method. The candidate list is constructed from candidate BVs ranked in ascending order based on template matching cost. In other words, BV0 has the lowest template matching cost, BV1 has the next lowest, and so on. The index of the selected candidate is signaled by a bitstream.
[0073] In ECM-9.0, fractional pixel precision is enabled for intraTMPs. More specifically, an intraTMP block may have a fractional BV with a 1 / 4 pixel resolution. Three fractional pixel offsets (e.g., 1 / 2 pixel, 1 / 4 pixel, and 3 / 4 pixel) are supported in eight directions around an integer pixel position, resulting in fractional pixel positions as shown in Figure 11. If a non-zero fractional pixel offset is signaled, a direction index is signaled to indicate which direction is used. A 4-tap DCT-IF interpolation filter in ECM is used for sub-per interpolation of intraTMPs.
[0074] ECM-9.0 also employs intraTMP prediction blocks derived from the model. Model parameters are derived using the template of the current block and its corresponding matching template. Prediction blocks are obtained by applying the model to filter the reference block.
[0075] ECM-9.0 employs a fusion method that blends multiple reference blocks to derive the final predicted block using a Wiener filter-based weight derivation method. The block vectors (BVs) of these reference blocks are obtained through a template matching search process.
[0076] ECM-9.0 uses three additional intraTMP modes: left template, top template, and L-shaped fusion mode. The left and top template modes derive template matching candidates using only the left or top template, while the L-shaped fusion mode uses both the left and top templates. The fusion mode fuses the two best or five best L-shaped candidates using a linear combination formula based on template matching cost or mean-squared error (MSE) minimization.
[0077] In the current ECM-9.0, the syntax related to intraTMP is shown in Table 1.
[0078] [Table 1]
[0079] Referring to Table 1, intra_tmp_flag indicates whether the intra prediction type for the current block is intraTMP, intra_tmp_fusion_flag indicates whether fusion is used for the current block, and intra_tmp_fusion_idx specifies the candidate set used for intraTMP fusion. The range of intra_tmp_fusion_idx is from 0 to 2, and intra_tmp_fusion_idx is used to indicate one of three candidate sets {BV0~BV4}, {BV5~BV9}, and {BV10~BV14}. intra_tmp_fusion_weight_type indicates whether a SAD-based weight derivation method or a Wiener filter-based weight derivation method is used. intra_tmp_idx specifies the index of the BV in the candidate list used for the current block. The range of intra_tmp_idx is from 0 to 18. Candidates from L-shaped templates, top templates, and left templates are included in the same candidate list. `intra_tmp_sub_pel_precision_idx` specifies the precision index of the current block. `intra_tmp_sub_pel_precision_idx` ranges from 0 to 3, used to represent integer pixel precision, 1 / 2 pixel precision, 1 / 4 pixel precision, and 3 / 4 pixel precision, respectively. `intra_tmp_sub_pel_direction_idx` specifies the subpel direction index of the current block. `intra_tmp_sub_pel_phase_idx` ranges from 0 to 7.
[0080] In the current ECM-9.0, an intraTMP block can be encoded at fractional pixel BV resolution only if the current block is not encoded as a fused intraTMP (e.g., intra_tmp_fusion_flag is 1) or a filtered intraTMP (e.g., intra_tmp_filter_flag is 1).
[0081] If a block is encoded as either a fused intraTMP or a filtered intraTMP, the intraTMP block has only a BV with full pixel (integer pixel) resolution.
[0082] After an intraTMP block is encoded, regardless of whether the current intraTMP encoded block has an integer pixel BV or a 1 / 4 pixel fractional resolution BV, only the integer pixel BV information of the current intraTMP block is stored for encoding future blocks. More specifically, if the current intraTMP has a 1 / 4 pixel fractional BV, this 1 / 4 pixel fractional BV is first rounded to an integer pixel resolution. Next, the integer pixel BV is converted to a 1 / 16 pixel resolution (by shifting the current integer pixel BV left by 4). The converted 1 / 16 pixel resolution BV is stored in ECM-9.0 for encoding future blocks.
[0083] Referring again to Figure 6, an example is shown in which CTU502 is divided into CU602, each CU602 consisting of three color components (one luminance (Y) component and two color difference (Cb and Cr) components). In such cases where all color components are divided together, the division structure is called a single tree.
[0084] VVC supports an alternative splitting structure for intra-slices, where the luminance and chrominance components are split independently. This structure is sometimes called a dual-tree. This dual-tree splitting structure introduces overhead used to signal both the luminance and chrominance tree splits. However, this additional signaling overhead may be offset by the benefit of greater flexibility in the splitting structure, such as when large chrominance CUs can be signaled independently of the luminance splitting structure.
[0085] In a single-tree partition, each intra-prediction CU signals both the luminance intra-prediction mode and the chrominance intra-prediction mode. Since the luminance intra-prediction mode is signaled first, the chrominance prediction mode can be determined using information from the luminance prediction mode. For example, a direct mode (DM) flag may be signaled to indicate that the chrominance component copies the intra-prediction direction of the luminance component. That is, the chrominance component uses the same intra-prediction mode as the luminance component (as shown in Figure 8).
[0086] In dual-tree partitioning, the entire luminance tree of the luminance CU is decoded before the chrominance tree is decoded. Therefore, when the chrominance intra-prediction mode of the chrominance CU is determined, information such as the selected luminance intra-prediction mode of the luminance CU at the same location is available. As with single-tree partitioning, a direct mode (DM) flag may be signaled to indicate that the chrominance CU copies the intra-prediction direction of the luminance CU at the same location. Additionally, a direct block vector (DBV) flag may be signaled to indicate that the chrominance CU copies the intraTMP or IBC block vector of the luminance CU at the same location.
[0087] Figure 12 shows a diagram of a direct block vector (DBV) mode 1200 according to some embodiments of the present disclosure. Figure 13 shows a diagram of a DBV prediction process 1300 according to some embodiments of the present disclosure. Figures 12 and 13 are described together.
[0088] Referring to Figure 12, the five corresponding luminance blocks 1202 for the chrominance block 1204 may be checked in a predefined order, for example, the center (C), top-left (TL), top-right (TR), bottom-left (BL), and bottom-right (BR) blocks. If any one of these five luminance blocks 1202 is encoded in either IBC mode or intraTMP mode, the current chrominance block 1204 is eligible for DBV mode. Furthermore, once DBV mode is selected, the BV of the first IBC or intraTMP encoded luminance block is used to derive the BV for encoding the current chrominance block 1204.
[0089] For example, referring to Figure 13, the BV(bvL) of the first luminance block, encoded in either IBC or intraTMP mode, is used to derive the BV(bvC) of the current chrominance block, where bvC[0] and bvC[1] represent the pixel displacements along the horizontal and vertical directions relative to the upper-left corner of the current chrominance block, respectively. bvC can be derived by scaling bvL using the chroma sampling ratio. For example, if the chroma format is 4:2:0 (which indicates that the chrominance components are subsampled by a factor of 2 in both the vertical and horizontal directions), bvC can be obtained by 0.5*bvL. The reference chrominance block 1304, pointed to by the block vector (bvC) of the current chrominance block, is directly copied to predict the current chrominance block 1302 shown in Figure 13. Assume that the coordinates of the upper-left corner of the current chrominance block 1302 are (xCb, yCb). Reference color difference block 1304 refers to a block of the same size whose upper-left corner coordinates are (xCb+bvC[0], yCb+bvC[1]).
[0090] When single-tree partitioning is used, the chrominance component and the corresponding luminance component use the same partition. Currently, DBV is not permitted in single-tree partitioning. However, if the luminance block of a single-tree CU is encoded in IBC, the direct chrominance mode (DM) is interpreted as signaling the same prediction as DBV. That is, if the prediction mode of the corresponding chrominance block is signaled as direct mode (DM), bvL is inherited by the corresponding chrominance block, deriving bvC, and directly copying the reference chrominance block indicated by bvC.
[0091] Figure 14 shows a diagram of the spatial component 1400 of a convolutional cross-component intra-predictive model (CCCM) filter according to some embodiments of the present disclosure. Figure 15 shows a diagram of the reference region 1500 used to compute the CCCM filter according to some embodiments of the present disclosure. Figure 16 shows a reference region 1600 used to compute a block vector-induced CCCM (BVG-CCCM) filter according to some embodiments of the present disclosure. Figures 14-16 are described together.
[0092] Referring to Figure 14, CCCM applies a convolutional cross-component model to predict chrominance samples from reconstructed luminance samples. When chroma subsampling is used, the reconstructed luminance samples are downsampled to match a low-resolution chroma grid. There may be multiple models to choose from. Therefore, there is an option to use a single-model or multi-model CCCM variant. The multi-model variant uses two models: one model is derived for samples above the average luminance reference value, and the other model is derived for the remaining samples. The multi-model CCCM mode can be selected for PUs where at least 128 reference samples are available.
[0093] The 7-tap convolution filter used in CCCM is composed of a 5-tap plus-sign shaped spatial component, a non-linear term P, and a bias term B. As shown in Figure 14, the input to the 5-tap spatial component of the filter consists of the center (C) luma sample at the same position as the predicted chrominance sample, and its adjacent samples above / north (N), below / south (S), left / west (W), and right / east (E).
[0094] The non-linear term P is expressed as the square of the center luma sample C, and is scaled to the range of the sample values of the content as shown in the following equation (1).
[0095] P=(C*C+midVal)>>bitDepth (1) That is, in the case of 10-bit content, the non-linear term P is calculated as shown in the following equation (2).
[0096] P=(C*C+512)>>10 (2) The bias term B represents the scalar offset between the input and the output, and is set to the intermediate chrominance value (512 in the case of 10-bit content).
[0097] The output of the filter is, as shown in the following equation (3), the filter coefficient c i calculated as the convolution between and the input value, and clipped to the valid range of chrominance samples.
[0098] [Equation] The filter coefficient c iThis is calculated by minimizing the mean-squared error (MSE) between the predicted color difference samples and the reconstructed color difference samples within the reference region. Figure 15 shows a reference region 1502 consisting of six lines of color difference samples to the left and above the prediction unit (PU) 1504. The reference region 1502 extends 1 PU width to the right and 1 PU height below the boundary of PU 1504. The reference region is adjusted to include only available samples. The extension 1506 into the region shown in blue is necessary to support the "side samples" of the plus shape space filter and is padded where it is not available.
[0099] MSE minimization is performed by calculating the autocorrelation matrix of the luminance input and the cross-correlation vector between the luminance input and the chrominance output. The autocorrelation matrix is LDL decomposed, and the final filter coefficients are calculated using back substitution. This process roughly follows the calculation of adaptive loop filter (ALF) coefficients in ECM, but LDL decomposition is chosen instead of Cholesky decomposition to avoid the use of square root operations. This approach uses only integer arithmetic.
[0100] The use of CCCM mode is signaled by a PU level flag for context-adaptive binary arithmetic coding (CABAC). A new CABAC context has been included to support this. In terms of signaling, CCCM can be considered a submode of the cross-component linear model (CCLM). That is, the CCCM flag is signaled only when the intra-prediction mode is LM_CHROMA_IDX (enables single-model CCCM) or MMLM_CHROMA_IDX (enables multi-model CCCM).
[0101] In CCCM technology, spatially adjacent reconstructed regions shown in Figure 15 are used to calculate the CCCM filter. Referring to Figure 16, in BVG-CCCM technology, reference regions (reference luminance blocks) are determined using block vectors (BV) of identical luminance blocks encoded in IBC or intraTMP mode, where the arrows represent the BV of luminance and chrominance. Instead of spatially adjacent regions, these reference regions are used to calculate the BVG-CCCM parameters. BVG-CCCM forms the CCCM prediction using the calculated filter parameters and identical luminance samples.
[0102] The BVG-CCCM mode is only available for intra-slice. Furthermore, a sequence parameter set (SPS) level flag is introduced to enable or disable the mode. Additionally, the BVG-CCCM mode uses an 11-tap filter for cross-component prediction, as shown in equation (4) below.
[0103]
number
[0104] To determine the block vector from luminance blocks at the same location, BVG-CCCM checks the same five locations as the DBV mode shown in Figure 12. In the case of dual-tree partitioning, when the corresponding luminance is encoded in either intraTMP or IBC, the chrominance blocks can be encoded as BVG-CCCM or DBV mode.
[0105] Referring again to Figure 3, the conversion module 308 can convert the video signal in the residual block from the pixel domain to the conversion domain (e.g., the frequency domain depending on the conversion method). It will be understood that in some examples the conversion module 308 may be skipped and the video signal may not be converted to the conversion domain.
[0106] The quantization module 310 may be configured to quantize the coefficients at each position within an encoded block to generate a quantization level for that position. The current block may be a residual block. That is, the quantization module 310 can perform the quantization process for each residual block. A residual block may contain N × M positions (samples), each associated with a converted or unconverted video signal / data, such as luminance and / or chrominance information, where N and M are positive integers. In this disclosure, before quantization, the converted or unconverted video signal at a particular position is referred to herein as a “coefficient”. After quantization, the quantized value of a coefficient is referred herein as a “quantization level” or “level”.
[0107] Quantization can be used to reduce the dynamic range of a converted or unconverted video signal so that fewer bits are used to represent the video signal. Quantization typically involves division by the quantization step size followed by rounding, while inverse quantization involves multiplication by the quantization step size. The quantization step size can be denoted by the quantization parameter (QP). This type of quantization process is called scalar quantization. Quantization of all coefficients within a coding block can be performed independently, and this type of quantization method is used in several existing video compression standards such as H.264 / AVC and H.265 / HEVC. The QP in quantization can affect the bitrate used to encode / decode the video picture. For example, a higher QP may result in a lower bitrate, and a lower QP may result in a higher bitrate.
[0108] In the case of an N×M coding block, a specific coding scan order may be used to convert the two-dimensional (2D) coefficients of the block into a one-dimensional (1D) order for coefficient quantization and coding. Typically, the coding scan starts from the upper-left corner of the coding block and stops at the lower-right corner, or the last non-zero coefficient / level in the lower-right direction. It is understood that the coding scan order can include any appropriate order, such as a zigzag scan order, a vertical (column) scan order, a horizontal (row) scan order, a diagonal scan order, or any combination thereof. The coding scan order information may be utilized in the quantization of coefficients within the coding block. For example, it may depend on the status of the previous quantization level along the coding scan order. To further improve coding efficiency, multiple quantizers, such as two scalar quantizers, can be used by the quantization module 310. Which quantizer is used to quantize the current coefficient may depend on the information preceding the current coefficient in the coding scan order. Such a quantization process is called dependency quantization.
[0109] Referring to Figure 3, the coding module 320 may be configured to encode the quantization level at each position within the coding block into a bitstream. In some embodiments, the coding module 320 may perform entropy coding on the coding block. Entropy coding may convert each quantization level into its respective binary representation, such as a binary bin, using various binarization methods, such as Golomb-Rice binarization. The binary representation can then be further compressed using an entropy coding algorithm. The compressed data can then be added to the bitstream. In addition to quantization levels, the coding module 320 may encode various other information input from, for example, prediction modules 304 and 306, such as block type information, prediction mode information, split unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information for the coding unit. In some embodiments, the coding module 320 may perform residual coding on the coding block to convert the quantization levels into a bitstream. For example, after quantization, there may be N×M quantization levels for an N×M block. These N × M levels can be zero or non-zero values. If the non-zero levels are not binary, they can be further binarized to binary bins, for example, using a combination of truncated rice (TR) and restricted EGk binarization.
[0110] Non-binary syntactic elements can be mapped to binary codewords. A bijective mapping between symbols and codewords (usually using codes of a simple structure) is called binarization. Both binary symbols (also called bins) of binary syntactic elements and codewords of non-binary data can be coded using binary arithmetic coding. The core coding engine for context-adaptive binary arithmetic coding (CABAC) supports two modes of operation: one is context coding mode, where bins are coded with an adaptive probabilistic model, and the other is a simpler bypass mode that uses a fixed probability of 1 / 2. The adaptive probabilistic model is also called a context, and the assignment of a probabilistic model to individual bins is called context modeling.
[0111] As shown in Figure 3, the inverse quantization module 312 may be configured to inverse quantize the quantization level, and the inverse transform module 314 may be configured to inverse transform the coefficients transformed by the transform module 308. The reconstructed residual blocks generated by the inverse quantization module 312 and the inverse transform module 314 can be combined with the predicted units predicted via the prediction module 304 or 306 to generate a reconstructed block.
[0112] The filter module 316 may include at least one of a deblocking filter, a sample adaptive offset (SAO), and an adaptive loop filter (ALF). The deblocking filter can remove block distortion caused by the boundaries between blocks in the reconstructed picture. The SAO module can correct the offset relative to the original video on a pixel-by-pixel basis for the video that has been deblocked. The ALF may be performed based on a value obtained by comparing the reconstructed and filtered video with the original video. The buffer module 318 may be configured to store the reconstructed blocks or pictures calculated via the filter module 316, and the reconstructed and stored blocks or pictures may be provided to the interprediction module 304 when interprediction is performed.
[0113] Figure 4 shows a detailed block diagram of an exemplary decoder 201 in the decoding system 200 of Figure 2, according to some embodiments of the present disclosure. As shown in Figure 4, the decoder 201 may include a decoding module 402, an inverse quantization module 404, an inverse transform module 406, an interpretation module 408, an intrapretation module 410, a filter module 412, and a buffer module 414. It is understood that each of the elements shown in Figure 4 is shown independently to represent a distinct characteristic function in the video decoder, and this does not mean that each component is formed by separate hardware or a single software configuration unit. That is, each element is included as listed as an element for convenience of explanation, and at least two elements may be combined to form a single element, or one element may be divided into multiple elements to perform a function. It is also understood that some of the elements may not be essential elements for performing the functions described in the present disclosure, but may be optional elements for improving performance. It is further understood that these elements may be implemented using electronic hardware, firmware, computer software, or any combination thereof. Whether such elements are implemented as hardware, firmware, or software depends on the specific application and design constraints imposed on decoder 201.
[0114] When a video bitstream is input from a video encoder (e.g., encoder 101), the input bitstream can be decoded by decoder 201 in the reverse order of the video encoder. Therefore, some of the decoding details described above regarding encoding may be omitted for the sake of simplicity. Decoding module 402 may be configured to decode the bitstream to obtain various information encoded in the bitstream, such as the quantization level at each position of the encoded block. In some embodiments, decoding module 402 may perform entropy decoding (decompression) corresponding to the entropy coding (compression) performed by the encoder, such as video local-area network (VLC) coding, context-adaptive variable-length coding (CAVLC), CABAC, syntax-based binary arithmetic coding (SBAC), PIPE coding, etc., to obtain a binary representation (e.g., binary bin). The decoding module 402 may further convert the binary representation to a quantization level using Golomb-Rice binarization, including, for example, EGk binarization or a combination of TR and limited EGk binarization. In addition to the quantization level of the position within the conversion unit, the decoding module 402 may decode various other information, such as parameters used in Golomb-Rice binarization (e.g., Rice parameters), block type information of the coding unit, prediction mode information, partition unit information, prediction unit information, transmission unit information, motion vector information, reference frame information, block interpolation information, and filtering information. During the decoding process, the decoding module 402 may perform rearrangement on the bitstream to reconstruct and rearrange the data from a 1D sequence to a 2D reconstructed block through a reverse scan method based on the coding scan order used by the encoder.
[0115] The inverse quantization module 404 may be configured to inverse quantize the quantization level of each position in an encoded block (e.g., a 2D reconstructed block) to obtain the coefficients for each position. In some embodiments, the inverse quantization module 404 may also perform dependent inverse quantization based on quantization parameters provided by the encoder, including information related to the quantizers used in dependent quantization, such as the quantization step size used by each quantizer.
[0116] The inverse transform module 406 may be configured to perform inverse transforms, such as inverse discrete cosine transform (DCT), inverse DST, and inverse Carunen-Lobe transform (KLT), on the DCT, DST, and KLT performed by the encoder, respectively, to return the data from the transformed region (e.g., coefficients) back to the pixel region (e.g., luminance and / or chrominance information). In some embodiments, the inverse transform module 406 may selectively perform transform operations (e.g., DCT, DST, KLT) depending on a plurality of pieces of information, such as the prediction method, the size of the current block, and the prediction direction.
[0117] The inter-prediction module 408 and the intra-prediction module 410 may be configured to generate prediction blocks based on information related to the generation of prediction blocks provided by the decoding module 402 and information on previously decoded blocks or pictures provided by the buffer module 414. As described above, when performing intra-prediction in a manner similar to the operation of the encoder, if the size of the prediction unit and the size of the transformation unit are the same, intra-prediction for the prediction unit may be performed based on the pixels to the left of the prediction unit, the upper left pixels, and the upper pixels. However, if the size of the prediction unit and the size of the transformation unit are different when intra-prediction is performed, intra-prediction may be performed using reference pixels based on the transformation unit.
[0118] For example, the interpretation module 408 may be configured to receive a bitstream from the encoder containing a reference frame, a current frame, and instructions for weight coefficients related to a multiple-hypothesis prediction (MHP) procedure.
[0119] The interprediction module 408 may be configured to perform an MHP procedure on CUs in the current frame based on search blocks in the reference frame (e.g., the reference frame and / or reference template). In some embodiments, to perform the MHP procedure, the interprediction module 408 may be configured to perform template matching on CUs in the current frame based on search blocks in the reference frame and weight coefficients to obtain motion information. In some embodiments, to perform the MHP procedure, the interprediction module 408 may be configured to identify weight coefficient indices associated with weight coefficients based on template matching. The interprediction module 408 may be configured to identify the weight coefficient codes of the weight coefficients based on instructions contained in the bitstream. The interprediction module performs the interprediction procedure based on the current frame, the reference frame, the weight coefficient indices, and the weight coefficient codes of the weight coefficients and decodes the bitstream.
[0120] A reconstructed block or picture, combined from the outputs of the inverse transform module 406 and the prediction module 408 or 410, may be provided to the filter module 412. The filter module 412 may include a deblocking filter, an offset correction module, and an ALF. The buffer module 414 stores the reconstructed picture or block and may use it as a reference picture or reference block for the interprediction module 408, or it may output the reconstructed picture.
[0121] In accordance with the scope of this disclosure, the encoding module 320 and the decoding module 402 may be configured to employ a quantization level binarization scheme using Rice parameters adapted to the bit depth and / or bitrate in order to encode the picture of the video and improve encoding efficiency.
[0122] Currently, BVG-CCCM may not be permitted with single-tree partitioning. Therefore, if a slice containing both intra and inter-slices is encoded with single-tree partitioning, BVG-CCCM cannot be used for those slices. Inter-slices can currently only be encoded with single-tree partitioning. Therefore, the encoding performance of color difference blocks in such slices with single-tree partitioning can be further improved.
[0123] To overcome these challenges of other technologies, this disclosure proposes that BVG-CCCM may be permitted for single-tree splitting. Unlike the dual-tree splitting described above, each chrominance block in a single-tree splitting uniquely corresponds to one identical luminance block. Therefore, the check procedure described for the DBV mode with reference to Figure 12 is skipped.
[0124] Continuing to refer to Figure 4, in order to overcome these and other challenges, the Disclosure proposes an intra-prediction module 410 configured to perform BVG-CCCM predictions on a single-tree partition.
[0125] For luminance blocks encoded in intraTMP or IBC, the reference luminance block ref_luma is represented by the block vector bvL. Similarly, the corresponding reference chroma block ref_chroma is represented by the block vector bvC, where bvC is a scaled version of bvL depending on the chroma format of the video sequence. For example, if the chroma (chrominance) format is 4:2:0, bvC may be obtained by 0.5*bvL for both the horizontal and vertical directions. If the chroma format is 4:4:4, bvC may be equal to bvL. If the chroma format is 4:2:2, the horizontal component of bvC can be obtained by scaling the horizontal component of bvL by 0.5, and the vertical component of bvC may be set to be equal to the vertical component of bvL.
[0126] The intra-prediction module 410 (or inter-prediction module 408) may determine whether the BVG-CCCM mode is eligible for a single-tree partition based on eligibility criteria. In the case of a single-tree partition, if the luminance block at the same position in the current chrominance block is encoded as either intraTMP or IBC, the intra-prediction module 410 (or inter-prediction module 408) may determine that the BVG-CCCM mode is eligible.
[0127] More specifically, if a single-tree splitting is used to encode the current slice (including both intra and inter-slices), and the luminance blocks at the same location are encoded in either IBC or intraTMP, the intra-prediction module 410 (or inter-prediction module 408) may use the corresponding block vector bvL to derive the chrominance block vector bvC according to the chroma format. The reference regions for luminance and chrominance may be determined as shown in Figure 16, along with arrows representing the BV of the luminance and chrominance. Instead of spatially adjacent regions, the intra-prediction module 410 (or inter-prediction module 408) may use these reference regions to compute the BVG-CCCM filter parameters. If the BVG-CCCM mode is selected, the intra-prediction module 410 (or inter-prediction module 408) may use the computed filter parameters and the luminance samples at the same location to form the CCCM prediction. Similar to the BVG-CCCM mode for dual-tree splitting, the BVG-CCCM mode proposed for single-tree splitting may use an 11-tap filter for cross-component prediction, as shown in equation (5) below.
[0128]
number
[0129] Once the filter parameters are derived, the intra-prediction module 410 (or inter-prediction module 408) can use the derived filters to filter luminance blocks at the same location and generate a BVG-CCCM prediction for the current chrominance block.
[0130] If the BVG-CCCM mode is eligible, the intra-prediction module 410 (or inter-prediction module 408) may determine whether BVG-CCCM is selected in a variety of ways, as described below.
[0131] In some implementations, if the CCCM flag is true and BVG-CCCM is determined to be eligible, the BVG-CCCM flag may be signaled in single-tree partitioning. If the BVG-CCCM flag is equal to 1, the intra-prediction module 410 (or inter-prediction module 408) may use BVG-CCCM to generate a prediction for the current chrominance block. If the BVG-CCCM flag is equal to 0, the intra-prediction module 410 (or inter-prediction module 408) may use normal CCCM to generate a prediction for the current chrominance block, where BVG-CCCM is conditionally signaled after CCCM (for example, it may be considered a submode of CCCM). If the corresponding luminance Cbf is non-zero, the BVG-CCCM flag may be signaled.
[0132] The above configuration describes how to control the BVG-CCCM mode at the CU level with CU-level signaling. Furthermore, the BVG-CCCM mode can be enabled jointly or individually at different levels, such as the Sequence Parameter Set (SPS), Picture Header (PH), Picture Parameter Set (PPS), and Slice Header (SH) levels.
[0133] Figure 17 shows a flowchart of a decoding method 1700 according to some embodiments of the present disclosure. Method 1700 may be performed by a system such as a decoding system 200, a decoder 201, an interpretation module 408, and an intrapretation module 410. Method 1700 may include operations 1702–1708 described below. It should be understood that some steps may be optional, and some steps may be performed in a different order or simultaneously than those shown in Figure 17.
[0134] Referring to Figure 17, in 1702, the system may determine that the corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the luminance block at the same position in the single-tree partition being encoded using intraTMP or IBC. For example, referring to Figure 4, the intra-prediction module 410 (or inter-prediction module 408) may determine whether the BVG-CCCM mode is eligible for a single-tree partition based on the eligibility criteria. In the case of a single-tree partition, if the luminance block at the same position in the current chrominance block is encoded as either intraTMP or IBC, the intra-prediction module 410 (or inter-prediction module 408) may determine that the BVG-CCCM mode is eligible.
[0135] In 1704, the system may parse the bitstream to obtain the BVG-CCCM flag. In some implementations, the BVG-CCCM flag may be parsed from the bitstream after the CCCM flag. In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero. In some implementations, the BVG-CCCM mode may be enabled at one or more of the SPS, PH, PPS, or SH levels. For example, referring to Figure 4, the intra-prediction module 410 (or inter-prediction module 408) may parse the bitstream to obtain the BVG-CCCM flag.
[0136] In 1706, the system may generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for that chrominance block. In some implementations, the BVG-CCCM mode prediction may be associated with an intra-picture prediction or an inter-picture prediction. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for a corresponding chrominance block, the system may generate an 11-tap filter for cross-component prediction based on luminance blocks at the same position in a single-tree division to generate a BVG-CCCM mode prediction for a corresponding chrominance block. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for a corresponding chrominance block, the system may filter luminance blocks at the same position in a single-tree division to generate a BVG-CCCM mode prediction for that chrominance block. For example, referring to Figure 4, if a single-tree partitioning is used to encode the current slice (including both intra and inter-slices), and the luminance blocks at the same location are encoded using either IBC or intraTMP, the intra-prediction module 410 (or inter-prediction module 408) may use the corresponding block vector bvL to derive the chrominance block vector bvC according to the chroma format. The reference regions for luminance and chrominance may be determined as shown in Figure 16, along with arrows representing the BV of luminance and chrominance. Instead of spatially adjacent regions, the intra-prediction module 410 (or inter-prediction module 408) may use these reference regions to compute the BVG-CCCM filter parameters. If the BVG-CCCM mode is selected, the intra-prediction module 410 (or inter-prediction module 408) may use the computed filter parameters and the luminance samples at the same location to form a CCCM prediction.Similar to the BVG-CCCM mode for dual-tree partitioning, the BVG-CCCM mode proposed for single-tree partitioning may use an 11-tap filter for cross-component prediction, as shown in equation (5) above. The input to the five spatial tap components of the filter consists of a central (C) luminance sample at the same location as the predicted chromomorphic difference sample, and its adjacent samples to the north (N), south (S), left (W), and east (E) of that location, as shown in Figure 14. The nonlinear term P represents the square of the corresponding luminance sample, and B is the bias term. Once the filter parameters are derived, the intra-prediction module 410 (or inter-prediction module 408) may use the derived filter to filter out luminance blocks at the same location and generate a BVG-CCCM prediction for the current chromomorphic difference block.
[0137] In 1708, the system may generate a CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for the corresponding chrominance block. For example, referring to Figure 4, if the BVG-CCCM flag is equal to 0, the intra-prediction module 410 (or inter-prediction module 408) may generate a CCCM prediction for the current chrominance block using the normal CCCM mode.
[0138] Figure 18 shows a flowchart of the encoding method 1800 according to some embodiments of the present disclosure. Method 1800 may be performed by a system such as an encoding system 100, an encoder 101, an interpretation module 304, or an intrapretation module 306. Method 1800 may include operations 1802-1808, as described below. It should be understood that some steps may be optional, and some steps may be performed in a different order or simultaneously than those shown in Figure 18.
[0139] Referring to Figure 18, in 1802, the system may determine that the corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the luminance block at the same position in the single-tree partition being encoded using intraTMP or IBC. For example, referring to Figure 3, the intra-prediction module 306 (or inter-prediction module 304) may determine whether the BVG-CCCM mode is eligible for a single-tree partition based on the eligibility criteria. In the case of a single-tree partition, if the luminance block at the same position in the current chrominance block is encoded as either intraTMP or IBC, the intra-prediction module 306 (or inter-prediction module 304) may determine that the BVG-CCCM mode is eligible.
[0140] In 1804, the system may encode the BVG-CCCM flag. In some implementations, the BVG-CCCM flag may be encoded after the CCCM flag. In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero. In some implementations, the BVG-CCCM mode may be enabled at one or more of the SPS, PH, PPS, or SH levels. For example, referring to Figure 3, the intra-prediction module 306 (or inter-prediction module 304) may encode the BVG-CCCM flag.
[0141] In 1806, the system may generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for that chrominance block. In some implementations, the BVG-CCCM mode prediction may be associated with an intra-picture prediction or an inter-picture prediction. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for a corresponding chrominance block, the system may generate an 11-tap filter for cross-component prediction based on luminance blocks at the same position in a single-tree division to generate a BVG-CCCM mode prediction for a corresponding chrominance block. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for a corresponding chrominance block, the system may filter luminance blocks at the same position in a single-tree division to generate a BVG-CCCM mode prediction for that chrominance block. For example, referring to Figure 3, if a single-tree partitioning is used to encode the current slice (including both intra and inter-slices), and the luminance blocks at the same location are encoded using either IBC or intraTMP, the intra-prediction module 306 (or inter-prediction module 304) may use the corresponding block vector bvL to derive the chrominance block vector bvC according to the chroma format. The reference regions for luminance and chrominance may be determined as shown in Figure 16, along with arrows representing the BV of the luminance and chrominance. Instead of spatially adjacent regions, the intra-prediction module 306 (or inter-prediction module 304) may use these reference regions to compute the BVG-CCCM filter parameters. If the BVG-CCCM mode is selected, the intra-prediction module 306 (or inter-prediction module 304) may use the computed filter parameters and the luminance samples at the same location to form a CCCM prediction.Similar to the BVG-CCCM mode for dual-tree partitioning, the BVG-CCCM mode proposed for single-tree partitioning may use an 11-tap filter for cross-component prediction, as shown in equation (5) above. The input to the five spatial tap components of the filter consists of a central (C) luminance sample at the same location as the predicted chromomorphic difference sample, and its adjacent samples to the north (N), south (S), left (W), and east (E) of that location, as shown in Figure 14. The nonlinear term P represents the square of the corresponding luminance sample, and B is the bias term. Once the filter parameters are derived, the intra-prediction module 306 (or inter-prediction module 304) may use the derived filter to filter out luminance blocks at the same location and generate a BVG-CCCM prediction for the current chromomorphic difference block.
[0142] In 1808, the system may generate a CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for the corresponding chrominance block. For example, referring to Figure 3, if the BVG-CCCM flag is equal to 0, the intra-prediction module 306 (or inter-prediction module 304) may generate a CCCM prediction for the current chrominance block using the normal CCCM mode.
[0143] In various embodiments of this disclosure, the functions described herein may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be stored as instructions on a non-temporary computer-readable medium. Computer-readable medium includes computer storage media. Storage media may be any available medium accessible by a processor, such as processor 102 in Figures 1 and 2. Such computer-readable media may include, but are not limited to, any other media accessible by a processing system, such as a mobile device or computer, such as an HDD, flash drive, SSD, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures. As used herein, disks and discs include CDs, laserdiscs, optical discs, digital-purpose discs (DVDs), and floppy disks, where a disk typically reproduces data magnetically, while a disc uses a laser to reproduce data optically. Any combination of the above should also be included within the scope of computer-readable media.
[0144] According to one aspect of the present disclosure, a decoding method by a decoder is provided. The method may include the processor determining that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode, in response that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. The method may include the processor analyzing the bitstream to obtain a BVG-CCCM flag. The method may include the processor generating a BVG-CCCM mode prediction for a corresponding chrominance block, in response that the BVG-CCCM flag indicates that the BVG-CCCM mode has been selected for that chrominance block.
[0145] In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block may include the processor generating an 11-tap filter for cross-component prediction based on luminance blocks at the same location in the single-tree partition. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block may include the processor filtering luminance blocks at the same location in the single-tree partition to generate a BVG-CCCM mode prediction for the corresponding chrominance block.
[0146] In some implementations, the method may include the processor generating a CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for that chrominance block.
[0147] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0148] In some implementations, the BVG-CCCM flag can be parsed from the bitstream after the CCCM flag.
[0149] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0150] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0151] A decoder is provided according to another aspect of the present disclosure. The decoder may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions may cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions may cause the processor to parse a bitstream and obtain a BVG-CCCM flag. When executed by the processor, the memory for storing instructions may cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0152] In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the memory storing the instruction may, when executed by the processor, cause the processor to generate an 11-tap filter for cross-component prediction based on luminance blocks at the same location in the single-tree partitioning, in order to generate a BVG-CCCM mode prediction for the corresponding chrominance block. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the memory storing the instruction may, when executed by the processor, cause the processor to filter luminance blocks at the same location in the single-tree partitioning to generate a BVG-CCCM mode prediction for the corresponding chrominance block.
[0153] In some implementations, when the memory storing the instruction is executed by the processor, the processor may cause the processor to generate a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
[0154] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0155] In some implementations, the BVG-CCCM flag can be parsed from the bitstream after the CCCM flag.
[0156] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0157] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0158] A further aspect of the present disclosure provides a device for decoding. The device for decoding may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions can cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions can cause the processor to parse a bitstream and obtain a BVG-CCCM flag. When executed by the processor, the memory for storing instructions can cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode has been selected for the corresponding chrominance block.
[0159] In yet another aspect of the present disclosure, a non-temporary computer-readable medium for storing instructions for a decoder is provided. When executed by the decoder's processor, the instructions can cause the decoder's processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the decoder's processor, the instructions can cause the decoder's processor to parse the bitstream and obtain a BVG-CCCM flag. When executed by the decoder's processor, the instructions can cause the decoder's processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0160] In some implementations, when the instruction is executed by the decoder's processor in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the decoder's processor may generate an 11-tap filter for cross-component prediction based on luminance blocks at the same position in the single-tree division to generate a BVG-CCCM mode prediction for the corresponding chrominance block. In some implementations, when the instruction is executed by the decoder's processor in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the decoder's processor may generate a BVG-CCCM mode prediction for the corresponding chrominance block by filtering luminance blocks at the same position in the single-tree division.
[0161] In some implementations, when the instruction is executed by the decoder's processor, the decoder's processor may generate a CCCM mode prediction for the corresponding chrominance block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding chrominance block.
[0162] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0163] In some implementations, the BVG-CCCM flag can be parsed from the bitstream after the CCCM flag.
[0164] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0165] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0166] According to one aspect of the present disclosure, an encoding method by an encoder is provided. The method may include the processor determining, in response to luminance blocks at the same location in a single-tree partition being encoded using intraTMP or IBC, that the corresponding chrominance block is eligible for prediction using the BVG-CCCM mode. The method may include the processor encoding a BVG-CCCM flag. The method may include the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode has been selected for the corresponding chrominance block.
[0167] In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block may include the processor generating an 11-tap filter for cross-component prediction based on luminance blocks at the same location in the single-tree partition. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the processor generating a BVG-CCCM mode prediction for the corresponding chrominance block may include the processor filtering luminance blocks at the same location in the single-tree partition to generate a BVG-CCCM mode prediction for the corresponding chrominance block.
[0168] In some implementations, the method may include the processor generating a CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for that chrominance block.
[0169] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0170] In some implementations, the BVG-CCCM flag may be encoded after the CCCM flag.
[0171] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0172] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0173] An encoder is provided according to another aspect of the present disclosure. The encoder may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions may cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions may cause the processor to encode a BVG-CCCM flag. When executed by the processor, the memory for storing instructions may cause the processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0174] In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the memory storing the instruction may, when executed by the processor, cause the processor to generate an 11-tap filter for cross-component prediction based on luminance blocks at the same location in the single-tree partitioning, in order to generate a BVG-CCCM mode prediction for the corresponding chrominance block. In some implementations, in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the memory storing the instruction may, when executed by the processor, cause the processor to filter luminance blocks at the same location in the single-tree partitioning to generate a BVG-CCCM mode prediction for the corresponding chrominance block.
[0175] In some implementations, when the memory storing the instruction is executed by the processor, the processor may cause the processor to generate a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
[0176] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0177] In some implementations, the BVG-CCCM flag may be encoded after the CCCM flag.
[0178] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0179] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0180] A further aspect of this disclosure provides an apparatus for encoding. The apparatus for encoding may include a processor and memory for storing instructions. When executed by the processor, the memory for storing instructions may cause the processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to luminance blocks at the same location in a single-tree partition being encoded using intraTMP or IBC. When executed by the processor, the memory for storing instructions may cause the processor to encode a BVG-CCCM flag.
[0181] When the instruction is executed by the processor, the memory storing the instruction may cause the processor to generate a BVG-CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block.
[0182] In yet another aspect of the present disclosure, a non-temporary computer-readable medium for storing instructions for an encoder is provided. When executed by the encoder's processor, the instructions can cause the encoder's processor to determine that a corresponding chrominance block is eligible for prediction using the BVG-CCCM mode in response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intraTMP or IBC. When executed by the encoder's processor, the instructions can cause the encoder's processor to encode a BVG-CCCM flag. When executed by the encoder's processor, the instructions can cause the encoder's processor to generate a BVG-CCCM mode prediction for a corresponding chrominance block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block.
[0183] In some implementations, when the instruction is executed by the encoder's processor in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the encoder's processor may generate an 11-tap filter for cross-component prediction based on luminance blocks at the same position in the single-tree division to generate a BVG-CCCM mode prediction for the corresponding chrominance block. In some implementations, when the instruction is executed by the encoder's processor in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding chrominance block, the encoder's processor may generate a BVG-CCCM mode prediction for the corresponding chrominance block by filtering luminance blocks at the same position in the single-tree division.
[0184] In some implementations, when the instruction is executed by the encoder's processor, the encoder's processor may generate a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
[0185] In some implementations, BVG-CCCM mode prediction can be associated with intrapicture prediction or interpicture prediction.
[0186] In some implementations, the BVG-CCCM flag may be encoded after the CCCM flag.
[0187] In some implementations, the BVG-CCCM flag may be signaled if the cbf_luma syntax element is non-zero.
[0188] In some implementations, BVG-CCCM mode can be enabled at one or more of the following levels: SPS level, PH level, PPS level, or SH level.
[0189] In yet another aspect of this disclosure, a non-temporary computer-readable medium for storing a bitstream is provided, the bitstream being generated in accordance with one or more operations described herein.
[0190] The above description of embodiments clarifies the general nature of the disclosure, and such embodiments can be readily modified and / or adapted for various uses without excessive experimentation and without departing from the general concepts of the disclosure by applying the knowledge of those skilled in the art.
[0191] Accordingly, such adaptations and modifications are intended to be within the meaning and scope of the equivalents of the disclosed embodiments based on the teachings and guidance presented herein. The terminology and language used herein are for illustrative purposes only, not limiting purposes, and should be understood to be interpreted by those skilled in the art in light of the teachings and guidance.
[0192] Embodiments of the present disclosure have been described above with the help of functional configuration blocks that demonstrate the implementation of specified functions and their relationships. The boundaries of these functional configuration blocks are arbitrarily defined herein for the sake of explanation. Alternative boundaries can be defined as long as the specified functions and their relationships are adequately performed.
[0193] The summary and abstract sections may describe one or more, but not all, exemplary embodiments of the disclosure as contemplated by the inventors, and are therefore not intended to limit the scope of the disclosure and the accompanying claims in any way.
[0194] Various functional blocks, modules, and steps are disclosed above. The provided arrangements are illustrative and not limiting. Thus, functional blocks, modules, and steps can be rearranged and combined in ways different from the examples provided above. Similarly, some embodiments include only a subset of functional blocks, modules, and steps, and any such subset is permitted.
[0195] The scope and intent of this disclosure should not be limited by any of the exemplary embodiments described above, but should be defined solely in accordance with the following claims and their equivalents.
Claims
1. A decoding method using a decoder, In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), the processor determines that the corresponding chrominance block is eligible for prediction using a block vector-inductive (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, The aforementioned processor analyzes the bitstream to obtain the BVG-CCCM flag, A method comprising: the processor generating a BVG-CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block.
2. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the processor generates a BVG-CCCM mode prediction for the corresponding color difference block. The processor generates 11 tap filters for cross-component prediction based on luminance blocks at the same position in the single-tree division, The method according to claim 1, comprising: using the processor to filter luminance blocks at the same position in the single-tree division to generate the BVG-CCCM mode prediction for the corresponding color difference block.
3. The method according to claim 1, further comprising the processor generating a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
4. The method according to claim 1, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
5. The method according to claim 1, wherein the BVG-CCCM flag is analyzed from the bitstream after the CCCM flag.
6. The method according to claim 1, wherein the BVG-CCCM flag is signaled when the cbf_luma syntax element is non-zero.
7. The method according to claim 1, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
8. It is a decoder, Processor and A memory for storing instructions, and when the instructions are executed by the processor, the processor, In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, The bitstream is analyzed to obtain the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. A decoder that performs this operation.
9. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the memory storing the instruction, when executed by the processor, provides the processor with the following information: Based on the luminance blocks at the same position in the single-tree division, an 11-tap filter for cross-component prediction is generated, The luminance blocks at the same position in the single-tree division are filtered to generate the BVG-CCCM mode prediction for the corresponding color difference block. The decoder according to claim 8, which causes the following to occur.
10. When the aforementioned instruction is executed by the processor, the memory storing the instruction is used by the processor. The decoder according to claim 8, which generates a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
11. The decoder according to claim 8, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
12. The decoder according to claim 8, wherein the BVG-CCCM flag is analyzed from the bitstream after the CCCM flag.
13. The decoder according to claim 8, wherein the BVG-CCCM flag is signaled when the cbf_luma syntactic element is non-zero.
14. The decoder according to claim 8, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
15. A device for decoding, Processor and A memory for storing instructions, and when the instructions are executed by the processor, the processor, In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, The bitstream is analyzed to obtain the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. A device that performs an action.
16. A non-temporary computer-readable medium for storing instructions, When the aforementioned instruction is executed by the decoder's processor, the decoder's processor will: In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, The bitstream is analyzed to obtain the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. A non-temporary computer-readable medium that enables the operation of a computer.
17. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the instruction, when executed by the decoder's processor, to generate a BVG-CCCM mode prediction for the corresponding color difference block, causes the decoder's processor to: Based on the luminance blocks at the same position in the single-tree division, an 11-tap filter for cross-component prediction is generated, The luminance blocks at the same position in the single-tree division are filtered to generate the BVG-CCCM mode prediction for the corresponding color difference block. A non-temporary computer-readable medium according to claim 16, which causes the following to occur.
18. When the aforementioned instruction is executed by the processor of the decoder, the processor of the decoder will: A non-temporary computer-readable medium according to claim 16, which generates a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
19. The non-temporary computer-readable medium according to claim 16, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
20. The non-transient computer-readable medium according to claim 16, wherein the BVG-CCCM flag is analyzed from the bitstream after the CCCM flag.
21. The non-temporary computer-readable medium according to claim 16, wherein the BVG-CCCM flag is signaled when the cbf_luma syntactic element is non-zero.
22. The non-temporary computer-readable medium according to claim 16, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
23. An encoding method using an encoder, In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), the processor determines that the corresponding chrominance block is eligible for prediction using a block vector-inductive (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, The aforementioned processor encodes the BVG-CCCM flag, A method comprising: the processor generating a BVG-CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block.
24. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the processor generates a BVG-CCCM mode prediction for the corresponding color difference block. The processor generates 11 tap filters for cross-component prediction based on luminance blocks at the same position in the single-tree division, The method according to claim 23, comprising: using the processor to filter luminance blocks at the same position in the single-tree division to generate the BVG-CCCM mode prediction for the corresponding color difference block.
25. The method according to claim 23, further comprising the processor generating a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
26. The method according to claim 23, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
27. The method according to claim 23, wherein the BVG-CCCM flag is encoded after the CCCM flag.
28. The method according to claim 23, wherein the BVG-CCCM flag is encoded when the cbf_luma syntax element is non-zero.
29. The method according to claim 23, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
30. It is an encoder, Processor and It includes memory for storing instructions, and when the instructions are executed by the processor, the processor In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, Encoding the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. An encoder that performs this action.
31. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the memory storing the instruction, when executed by the processor, provides the processor with the following information: Based on the luminance blocks at the same position in the single-tree division, an 11-tap filter for cross-component prediction is generated, The luminance blocks at the same position in the single-tree division are filtered to generate the BVG-CCCM mode prediction for the corresponding color difference block. The encoder according to claim 30, which causes the following to be performed.
32. The encoder according to claim 30, wherein the memory storing the instruction causes the processor to generate a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block when executed by the processor.
33. The encoder according to claim 30, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
34. The encoder according to claim 30, wherein the BVG-CCCM flag is encoded after the CCCM flag.
35. The encoder according to claim 30, wherein the BVG-CCCM flag is signaled when the cbf_luma syntax element is non-zero.
36. The encoder according to claim 30, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
37. A device for encoding, Processor and The system includes memory for storing instructions, and when the instructions are executed by the processor, the processor receives In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, Encoding the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. A device that performs an action.
38. A non-temporary computer-readable medium for storing instructions, When the aforementioned instruction is executed by the encoder's processor, the encoder's processor will: In response to the fact that luminance blocks at the same location in a single-tree partition are encoded using intra-template matching (intraTMP) or intra-block copying (IBC), it is determined that the corresponding chrominance block is eligible for prediction using a block vector-guided (BVG)-convolutional cross-component intra-predictive model (CCCM) (BVG-CCCM) mode, Encoding the BVG-CCCM flag, In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, a prediction of the BVG-CCCM mode for the corresponding color difference block is generated. A non-temporary computer-readable medium that enables the operation of a computer.
39. In response to the BVG-CCCM flag indicating that the BVG-CCCM mode is selected for the corresponding color difference block, the instruction, when executed by the processor of the encoder, to generate a BVG-CCCM mode prediction for the corresponding color difference block, causes the processor of the encoder to: Based on the luminance blocks at the same position in the single-tree division, an 11-tap filter for cross-component prediction is generated, The luminance blocks at the same position in the single-tree division are filtered to generate a BVG-CCCM mode prediction for the corresponding color difference block. A non-temporary computer-readable medium according to claim 38, which causes the following to occur.
40. The non-temporary computer-readable medium according to claim 38, wherein when the instruction is executed by the processor of the encoder, the processor of the encoder generates a CCCM mode prediction for the corresponding color difference block in response to the BVG-CCCM mode flag indicating that the BVG-CCCM mode is not selected for the corresponding color difference block.
41. The non-temporary computer-readable medium according to claim 38, wherein the BVG-CCCM mode prediction is associated with intrapicture prediction or interpicture prediction.
42. The non-temporary computer-readable medium according to claim 38, wherein the BVG-CCCM flag is encoded after the CCCM flag.
43. The non-temporary computer-readable medium according to claim 38, wherein the BVG-CCCM flag is signaled when the cbf_luma syntactic element is non-zero.
44. The non-temporary computer-readable medium according to claim 38, wherein the BVG-CCCM mode is enabled at one or more of the sequence parameter set (SPS) level, picture header (PH) level, picture parameter set (PPS) level, or slice header (SH) level.
45. A non-temporary computer-readable medium for storing a bitstream, The bitstream is a non-transient computer-readable medium generated in accordance with one or more operations described in any one of claims 23 to 29.