Weighting Coefficient for Prediction Sample Filtering in Intra Mode
The PDPC method addresses challenges in video coding by determining weighting factors based on block dimensions or sample positions, improving prediction accuracy and reducing discontinuity in non-square blocks and wide-angle modes.
Patent Information
- Application Number
- JP2023198244
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-08-14
- Filing Date
- 2023-11-22
- Publication Date
- 2025-06-11
- Estimated Expiration
- 2040-08-14
AI Technical Summary
Existing video coding standards face challenges in efficiently encoding and decoding video data, particularly in handling non-square blocks and wide-angle intra prediction modes, which can lead to discontinuity issues and require complex filtering processes.
The proposed solution involves using a position-dependent intra prediction (PDPC) method that combines adjacent samples with a prediction signal to generate a refined prediction signal, and determining weighting factors based on the dimensions of the current video block or the position of the samples, especially in planar and DC modes.
This approach improves the quality of decompressed video by reducing discontinuity issues and enhancing prediction accuracy, particularly in non-square blocks and wide-angle intra prediction modes, while simplifying the filtering processes.
Smart Images

Figure 0007691473000025 
Figure 0007691473000026 
Figure 0007691473000027
Abstract
Description
Technical Field
[0001] This document relates to video and image coding and decoding techniques.
[0002] Cross - reference to related applications This application is a divisional application of Japanese Patent Application No. 2022 - 508748, and is based on International Patent Application No. PCT / CN2020 / 109217 filed on August 14, 2020. The said international patent application claims the priority and benefits of International Patent Application No. PCT / CN2019 / 100615 filed on August 14, 2019. All of the above - mentioned patent applications are incorporated herein by reference in their entirety.
Background Art
[0003] Digital video occupies the largest bandwidth usage in the Internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth demand for digital video utilization is expected to continue to increase.
Summary of the Invention
[0004] The disclosed technology can be used by embodiments of a video or image decoder or encoder to perform video coding and decoding using intra prediction sample filtering.
[0005] As an example, a method for video processing is disclosed. The method includes, according to rules, deriving a weighting factor for adjacent samples of samples of a current video block of a video, and performing a conversion between the current video block and a coded representation of the video. Here, the rules stipulate that when the current video block is coded using the planar mode or the DC mode, the weighting factor is determined from at least one of the dimension of the current video block or the position of the samples of the current video block. Here, the current video block uses a position dependent intra prediction (PDPC) method that combines adjacent samples with the prediction signal of the current video block to generate a refined prediction signal of the current video block. And here, the weighting factor of the prediction signal of the sample is determined based on the weighting factor of the corresponding adjacent sample of the sample.
[0006] In yet another example, the above method can be implemented by a video encoder device comprising a processor.
[0007] In yet another example, the above method can be implemented by a video decoder device comprising a processor.
[0008] In yet another example, these methods may be embodied in the form of processor-executable instructions and stored on a computer-readable program medium.
[0009] These and other aspects are further described in this document.
Brief Description of the Drawings
[0010]
Figure 1
Figure 2
Figure 3A
Figure 3B
Figure 4
Figure 5A
Figure 5B
Figure 5C
Figure 5D
Figure 6
Figure 7
Figure 8
Figure 9
Figure 10
Figure 11A
Figure 11B
Figure 12
Figure 13
Best Mode for Carrying Out the Invention
[0011] This document provides various techniques that can be used by a decoder for a bitstream of an image or video to improve the quality of decompressed or decoded digital video or images. For the sake of brevity, here the term "video" is used to include both a sequence of pictures (what is traditionally called video) and individual images. Further, a video encoder can also implement these techniques during the encoding process to reconstruct the decoded frames for further encoding.
[0012] Section headings are used in this document to facilitate understanding and are not intended to limit the embodiments and techniques to the corresponding sections. Thus, embodiments from one section can be combined with embodiments from other sections.
[0013] 1. Summary This document relates to video coding techniques. Specifically, it is related to intra prediction in image / video coding. This can be applied to existing video coding standards such as HEVC, or to standards being finalized (Versatile Video Coding). This is also applicable to future video coding standards or video codecs.
[0014] 2. Background Video coding standards have mainly evolved through the development of well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, ISO / IEC created MPEG-1 and MPEG-4 Visual, and the two organizations jointly created the H.262 / MPEG-2 Video, H.264 / MPEG-4 Advanced Video Coding (AVC), and H.265 / High Efficiency Video Coding (HEVC) standards. Since H.262, video coding standards have been based on a hybrid video coding structure that utilizes temporal prediction and transform coding. To explore future video coding technologies beyond HEVC, in 2015, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET). Since then, many new methods have been adopted by JVET and incorporated into the reference software named Joint Exploration Model (JEM). In April 2018, JVET between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was created and is working on the VVC standard aiming to reduce the bitrate by 50% compared to HEVC.
[0015] The latest version of the VVC draft, namely Versatile Video Coding (Draft 6), can be found below. http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 15_Gothenburg / wg11 / JVET-O2001-v14.zip
[0016] The latest reference software for VVC, named VTM, can be found below. https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-5.2
[0017] 2.1 Color Space and Chroma Subsampling A color space, also known as a color model (or color system), is an abstract mathematical model that simply describes a range of colors as a numeric tuple, typically as three or four values or color components (e.g., RGB). Basically, a color space is an elaboration of a coordinate system and a subspace.
[0018] For video compression, the most frequently used color spaces are YCbCr and RGB. YCbCr, Y'CbCr, or YPb / CbPr / Cr is a family of color spaces used as part of the color picture pipeline in video and digital photo systems, as also written as YCBCR or Y'CBCR. Y′ is the luma component, and CB and CR are the blue-difference and red-difference chroma components. Y′ (with prime) is distinguished from Y which is luminance, meaning that the light intensity is non-linearly encoded based on gamma corrected RGB primaries.
[0019] Chroma subsampling is the practice of encoding an image by implementing a lower resolution for chroma information than for luma information, taking advantage of the fact that the human visual system has lower acuity for color differences than for luminance.
[0020] 2.1. 1:4:4 Since the three Y'CbCr components each have the same sample rate, there is no chroma subsampling. This scheme is sometimes used in high-end film scanners and film post-production.
[0021] 2.1.2 4:2:2 The two chroma components are sampled at half the luminance sample rate, and the horizontal chroma resolution is halved. As a result, the bandwidth of the uncompressed video signal is reduced by one-third, and there is little or no visual difference.
[0022] 2.1.3 4:2:0 In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but the Cb and Cr channels are sampled only on every other line of this scheme, so the vertical resolution is halved. Thus, the data rate is the same. Cb and Cr are subsampled by a factor of two horizontally and vertically. There are three variations of the 4:2:0 scheme, which have different horizontal and vertical positions. · In MPEG-2, Cb and Cr are cosited horizontally. Cb and Cr are placed between vertical pixels (interstitially). · In JPEG / JFIF, H.261, and MPEG-1, Cb and Cr are located in the gaps between alternate luminance samples. · In 4:2:0 DV, Cb and Cr are cosited horizontally. Vertically, they are cosited on alternate lines.
[0023] 2.2 Coding Flow of a Typical Video Codec Figure 1 shows an example of an encoder block diagram of VVC that includes three in-loop filtering blocks, namely, a deblocking filter (DF), sample adaptive offset (SAO), and ALF. Different from the DF that uses a predefined filter, SAO and ALF use the original samples of the current picture to reduce the mean squared error between the original samples and the reconstructed samples by adding an offset and applying a finite impulse response (FIR) filter respectively, and have coded side information that signals the offset and filter coefficients. ALF is placed at the final processing stage of each picture and can be regarded as a tool that captures and tries to fix the artifacts generated in the previous stage.
[0024] 2.3 Intra Mode Coding by 67 Intra Prediction Modes To capture any edge direction presented in natural videos, the number of direction intra modes in VTM4 has been extended from 33 to 65 as used in HEVC. The new direction modes not present in HEVC are shown as red dotted arrows in Figure 2, and the planar mode and DC mode remain the same. These more dense direction intra prediction modes are applied for all block sizes and for both luma and chroma intra prediction. Conventional angular intra prediction directions are defined from 45 degrees to -135 degrees in the clockwise direction as shown in Figure 2. In VTM2, some conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The replaced modes are signaled using the original method and remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes does not change, i.e., it is 67, and the intra mode coding does not change.
[0025] In HEVC, each coding block has a square shape, and the length of each side is a power of 2. Therefore, no division operation is required to generate an intra-predictor using the DC mode. In VVV2, a block can, in general, have a rectangular shape that requires the use of a division operation for each block. To avoid the division operation for DC prediction, only the long side is used to calculate the average of the non-square block.
[0026] Figure 2 shows an example of one of the 67 intra prediction modes.
[0027] 2.4 Wide-Angle Intra Prediction for Non-Square Blocks Conventional angular intra prediction directions are defined from 45 degrees to -135 degrees in the clockwise direction. In VTM2, some of the conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The replaced modes are signaled using the original method and remapped to the indices of the wide-angle modes after parsing. The total number of intra prediction modes does not change, i.e., 67, and the intra mode coding does not change.
[0028] Figures 3A - 3B show examples of reference samples for wide-angle intra prediction.
[0029] To support these prediction directions, an upper reference of length 2W + 1 and a left reference of length 2H + 1 are defined as shown in Figures 3A - 3B.
[0030] The number of modes of the replaced modes in the wide-angle direction mode depends on the aspect ratio of the block. The replaced intra prediction modes are shown in Table 2-1. [Table 1] Intra prediction modes replaced by the wide-angle mode in Table 2-1
[0031] Figure 4 shows the problem of discontinuity in the case of directions exceeding 45 degrees.
[0032] As shown in Figure 4, for two vertically adjacent prediction samples, two non-adjacent reference samples can be used in the case of wide-angle intra prediction. Therefore, a low-pass reference sample filter and side smoothing are applied to the wide-angle prediction to reduce the negative effect of the increased gap Δp α of.
[0033] 2.5 Combinations of Position-Dependent Intra Prediction In VTM2, the result of intra prediction in the planar mode is further corrected by the position-dependent intra prediction combination (PDPC) method. PDPC is an intra prediction method that calls a combination of unfiltered boundary reference samples and HEVC-style intra prediction with filtered boundary reference samples. PDPC is applied without signalling for the following intra modes: Planar, DC, Horizontal, Vertical, Lower Left Angle mode, and its 8 adjacent angle modes, and Upper Right Angle mode, and its 8 adjacent angle modes.
[0034] The intra prediction sample pred(x,y) is predicted using an intra prediction mode (DC, Planar, Angle), and a linear combination of reference samples according to the formula is further applied to generate the final prediction sample pred(x,y) as follows. pred(x,y)=(wL×R (-1,y) +wT×R (x,-1) -wTL×R (-1,-1) +(64 - wL - wT + wTL)×pred(x,y)+32)>>6(2 - 1) Here, R (x,-1) 、R (-1,y) represents the reference sample located at the upper left of the current sample (x,y), and R (-1,-1)represents a reference sample that is currently located at the top-left corner of the block.
[0035] When PDPC is applied to DC, planar, horizontal, and vertical intra modes, no additional boundary filters are required. They are required for the HEVCDC mode boundary filter or the horizontal / vertical mode edge filter.
[0036] Figures 5A - 5D show the reference samples (R (x,-1) , R (-1,y) , and R (-1,-1) ) of PDPC applied to various prediction modes. The predicted sample pred(x', y') is located at (x', y') within the prediction block. The coordinate x of the reference sample R (x,-1) is given by x = x' + y' + 1, and the coordinate y of the reference sample R (-1,y) is given by y = x' + y' + 1.
[0037] Figures 5A - 5D show exemplary definitions of the samples used by PDPC applied to diagonal and adjacent angle intra modes. Figure 5A shows an example of the top-right diagonal mode. Figure 5B shows an example of the bottom-left diagonal mode. Figure 5C shows an example of the adjacent top-right diagonal mode. Figure 5D shows an example of the adjacent bottom-left diagonal mode.
[0038] PDPC weighting depends on the prediction mode and is shown in Table 2 - 2.
Table 2
[0039] The details of PDPC in VVCdraft6 are as follows.
[0040] 8.4.5.2.5 General Intra-Sample Prediction The input to this process is as follows. - The sample position (xTbCmp, yTbCmp) that specifies the top-left sample of the current transform block with respect to the top-left sample of the current image, - The variable predModeIntra that specifies the intra prediction mode, - The variable nTbW that specifies the transform block width, - The variable nTbH that specifies the transform block height, - The variable nCbW that specifies the coding block width, - The variable nCbH that specifies the coding block height, - The variable cIdx that specifies the color component of the current block.
[0041] The output of this process is the predicted samples predSamples[x][y] for x = 0..nTbW-1, y = 0..nTbH-1.
[0042] The variables refW and refH are derived as follows. - When IntraSubPartitionsSplitType is equal to ISP_NO_SPLIT, or when cIdx is not equal to 0, it is as follows. refW = nTbW * 2 (8-118) refH = nTbH * 2 (8-119) - Otherwise (when IntraSubPartitionsSplitType is not equal to ISP_NO_SPLIT and cIdx is equal to 0), it is as follows. refW = nCbW + nTbW (8-120) refH = nCbH + nTbH (8-121)
[0043] The variable refIdx that specifies the intra prediction reference line index is derived as follows. refIdx = (cIdx == 0)? IntraLumaRefLineIdx[xTbCmp][yTbCmp] : 0 (8-122)
[0044] The wide-angle intra prediction mode mapping process specified in clause 8.4.5.2.6 is called with preModeIntra, nTbW, nTbH, and cIdx as inputs and with the modified predModeIntra as output.
[0045] The variable refFilterFlag is derived as follows. - If predModeIntra is equal to any of the values 0, -14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80, then refFilterFlag is set to 1. - Otherwise, refFilterFlag is set to 0.
[0046] For the generation of reference samples p[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1, and x = -refIdx..refW - 1, y = -1 - refIdx, the following ordered steps are applied. 1. The reference sample availability marking process specified in clause 8.4.5.2.7 is called using the sample position (xTbCmp, yTbCmp). With the intra prediction reference line index refIdx, reference sample width refW, reference sample height refH, and color component index cIdx as inputs and with the reference samples refUnfilt[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1, and x = -refIdx..refW - 1, y = -1 - refIdx as output. 2. If at least one sample at x = -1 - refIdx, y = -1 - refIdx..refH - 1 and x = -refIdx..refW - 1, y = -1 - refIdx is marked as "not available for intra prediction", the reference sample substitution process defined in Clause 8.4.5.2.8 is called. The intra prediction reference line index refIdx, reference sample width refW, reference sample height refH, and reference samples refUnfilt[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1 and x = -refIdx..refW - 1, y = -1 - refIdx are used. Then, with the color component index cIdx as the input and the modified reference samples refUnfilt[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1 and x = -refIdx..refW - 1, y = -1 - refIdx as the output. 3. The reference sample filtering process defined in Clause 8.4.5.2.9 is called using the intra prediction reference line index refIdx, transform block width nTbW and height nTbH, reference sample width refW, reference sample height refH, reference filter flag refFilterFlag, and non-filtered samples refUnfilt[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1 and x = -refIdx..refW - 1, y = -1 - refIdx. Then, with the color component index cIdx as the input and the reference samples p[x][y] at x = -1 - refIdx, y = -1 - refIdx..refH - 1 and x = -refIdx..refW - 1, y = -1 - refIdx as the output.
[0047] The intra sample prediction process according to predModeIntra is applied as follows. - If -predModeIntra is equal to INTRA_PLANAR, the corresponding intra prediction mode process specified in Clause 8.4.5.2.10 is called with the transform block width nTbW, the transform block height nTbH, and the reference sample array p as inputs, and the predicted sample array predSamples is output. - Otherwise, if -predModeIntra is equal to INTRA_DC, the corresponding intra prediction mode process specified in Clause 8.4.5.2.11 is called with the transform block width nTbW, the transform block height nTbH, the intra prediction reference line index refIdx, and the reference sample array p as inputs, and the predicted sample array predSamples is output. - Otherwise, if -predModeIntra is equal to INTRA_LT_CCLM, INTRA_L_CCLM, or INTRA_T_CCLM, the corresponding intra prediction mode process specified in Clause 8.4.5.2.13 is called with the intra prediction mode -predModeIntra, the sample position (xTbC, yTbC) set at (xTbCmp, yTbCmp), the transform block width nTbW, height nTbH, the color component index cIdx, and the reference sample array p as inputs, and the output is the predicted sample array predSamples. - Otherwise, the corresponding intra prediction mode process specified in Clause 8.4.5.2.12 is called. The intra prediction mode -predModeIntra, the intra prediction reference line index refIdx, the transform block width nTbW, the transform block height nTbH, the reference sample width refW, the reference sample height refH, the coded block width nCbW and height nCbH, the reference filter flag refFilterFlag, the color component index cIdx and the reference sample array p are used as inputs, and the predicted sample array predSamples is output.
[0048] When all of the following conditions are true, the position-dependent prediction sample filtering process specified in clause 8.4.5.2.14 is called. Using the intra prediction mode predModeIntra, the transform block width nTbW, the transform block height nTbH, the prediction samples predSamples[x][y] for x = 0..nTbW-1, y = 0..nTbH-1, the reference sample width refW, the reference sample height refH, the reference samples p[x][y] for x = -1, y-1..refH-1, and x = 0..refW-1, y = -1, with the color component index cIdx as input, and the output is the modified prediction sample array predSamples. - nTbW is 4 or more, and nTbH is 4 or more or cIdx is not equal to 0 - refIdx is equal to 0, or cIdx is not equal to 0 - BdpcmFlag[xTbCmp][xTbCmp] is equal to 0 - Any of the following conditions is true: - preModeIntra is equal to INTRA_PLANAR - preModeIntra is equal to INTRA_DC - preModeIntra is less than or equal to INTRA_ANGULAR18 - preModeIntra is less than or equal to INTRA_ANGULAR50
[0049] 8.4.5.2.14 Position-Dependent Intra Prediction Sample Filtering Process The inputs to this process are as follows. - The intra prediction mode predModeIntra, - The variable nTbW that specifies the transform block width, - The variable nTbH that specifies the transform block height, - The variable refW that specifies the reference sample width, - The variable refH that specifies the reference sample height, - The prediction samples predSample[x][y] for x = 0..nTbW-1, y = 0..nTbH-1, - x = -1, y = -1..refH - 1, and for x = 0..refW - 1, y = -1, the adjacent sample p[x][y] - The variable cIdx that specifies the color component of the current block
[0050] The output of this process is the modified prediction sample presample[x][y] for x = 0..nTbW - 1, y = 0..nTbH - 1
[0051] Depending on the value of cldx, the function clip1Cmp is set as follows - If cIdx is equal to 0, clip1Cmp is set equal to Clip1Y - Otherwise, clip1Cmp is set equal to Clip1C
[0052] The variable nScale is derived as follows - If predModeIntra is greater than INTRA_ANGULAR50, nScale is set equal to Min(2, Log2(nTbH) - Floor(Log2(3 * invAngle - 2)) + 8) using invAngle specified in clause 8.4.5.2.12 - Otherwise, if predModeIntra is less than INTRA_ANGULAR18, nScale is set equal to Min(2, Log2(nTbW) - Floor(Log2(3 * invAngle - 2)) + 8) using the invAngle specified in clause 8.4.5.2.12 - Otherwise, nSacle is set to ((Log2(nTbW) + Log2(nTbH) - 2) >> 2)
[0053] The reference sample arrays mainRef[x] and sideRef[y] for x = 0..refW - 1 and y = 0..refH - 1 are derived as follows mainRef[x] = p[x][-1] sideRef[y]=p[-1][y] (8-244)
[0054] The variables refL[x][y], refT[x][y], wT[y], wL[x], and wTL[x][y] are derived as follows for x = 0..nTbW-1, y = 0..nTbH-1. - When predModeIntra is equal to INTRA_PLANAR or INTRA_DC, the following conditions apply. refL[x][y]=p[-1][y] (8-245) refT[x][y]=p[x][-1] (8-246) wT[y]=32>>((y<<1)>>nScale) (8-247) wL[x]=32>>((x<<1)>>nScale) (8-248) wTL[x][y]=0 (8-249) - Otherwise, when predModeIntra is equal to INTRA_ANGULAR18 or INTRA_ANGULAR50, the following occurs. refL[x][y]=p[-1][y] (8-250) refT[x][y]=p[x][-1] (8-251) wT[y]=(predModeIntra==INTRA_ANGULAR18)? 32>>>>(y<<1)>>nScale:0 (8-252) wL[x]=(predModeIntra==INTRA_ANGULAR50)? 32>>>>(x<1)>>nScale:0 (8-253) wTL[x][y]=(predModeIntra==INTRA_ANGULAR18)?wT[y]:wL[x] (8-254) - Otherwise, when predModeIntra is less than INTRA_ANGULAR18 and nScale is 0 or greater, the following ordered steps apply. 1. The variables dXInt[y] and dX[x][y] are derived as follows using the invAngle specified in clause 8.4.5.2.12 according to intraPredMode. dXInt[y]=((y + 1)*invAngle + 256)>>9 dX[x][y]=x + dXInt[y] (8 - 255) 2. The variables refL[x][y], refT[x][y], wT[y], wL[x], and wTL[x][y] are derived as follows. refL[x][y]=0 (8 - 256) refT[x][y]=(y < (3 << nScale))? mainRef[dX[x][y]] : 0 (8 - 257) wT[y]=32 >> ((y << 1) >> nScale) (8 - 258) wL[x]=0 (8 - 259) wTL[x][y]=0 (8 - 260) - Otherwise, if predModeIntra is greater than INTRA_ANGULAR50 and nScale is 0 or greater, the following ordered steps apply. 1. The variables dYInt[x] and dY[x][y] are derived as follows using the invAngle specified in clause 8.4.5.2.12 according to intraPredMode. dYInt[x]=(((x + 1)*invAngle + 256)>>9 dY[x][y]=y + dYInt[x] (8 - 261) 2. The variables refL[x][y], refT[x][y], wT[y], wL[x], and wTL[x][y] are derived as follows. refL[x][y]=(y < (3 << nScale))? sideRef[dY[x][y]] : 0 (8 - 262) refL[x][y]=0 (8 - 263) wT[y]=0 (8 - 264) wL[x]=32 >> ((x << 1) >> nScale) (8 - 265) wTL[x][y] = 0 (8 - 266) - Otherwise, refL[x][y], refT[x][y], wT[y], wL[x], and wTL[x][y] are all set to 0.
[0055] The values of the modified prediction samples predSamples[x][y] for x = 0..nTbW - 1, y = 0..nTbH - 1 are derived as follows. predSamples[x][y] = clip1Cmp((refL[x][y] * wL[x] + refT[x][y] * wT[y] - p[-1][-1] * wTL[x][y] + (64 - wL[x] - wT[y] + wTL[x][y]) * predSamples[x][y] + 32) >> 6) (8 - 267)
[0056] 2.6 Intra-Subblock Partition (ISP ) In JVET - M0102, as shown in Table 1, an ISP that divides the luma intra - prediction block into two or four sub - partitions either vertically or horizontally according to the block size is proposed. Figures 6 and 7 show examples related to two possibilities. All sub - partitions satisfy the condition of having at least 16 samples.
Table 3
[0057] Figure 6 shows an example related to the division of 4×8 blocks and 8×4 blocks.
[0058] Figure 7 shows an example related to the division of all blocks except 4×8, 8×4, and 4×4.
[0059] For each of these sub - partitions, a residual signal is generated by entropy - decoding the coefficients transmitted by the encoder, then they are inverse - quantized and inverse - transformed. Next, the sub - partition is intra - predicted, and the corresponding reconstructed sample is finally obtained by adding the residual signal to the predicted signal. Thus, the reconstructed value of each sub - partition is available for generating the predicted value of the next sub - partition, which repeats the process, etc. All sub - partitions share the same intra - mode.
[0060] Based on the intra - mode and the split used, two different classes of processing orders are used, which are called the normal order and the reversed order. In the normal order, the first sub - partition to be processed contains the top - left sample of the CU and continues downward (horizontal split) or rightward (vertical split). As a result, the reference samples used to generate the sub - partition predicted signal are placed only to the left and above the line. On the other hand, the reverse processing order starts with a sub - partition containing the bottom - left sample of the CU and continues upward, or starts with a sub - partition containing the top - right sample of the CU and continues leftward.
[0061] 2.7 Quantized Residual Domain BDPCM In JVET - N0413, quantization residual domain BDPCM (hereinafter referred to as RBDPCM) has been proposed. Intra - prediction is performed for the entire block by copying samples in the prediction direction (horizontal or vertical prediction) in the same way as intra - prediction. The residual is quantized, and the delta between the quantized residual and the quantized value of its predictor (horizontal or vertical) is coded. For a block of size M (rows)×N (columns), r i,j, where \(0\leq i\leq M - 1\) and \(0\leq j\leq N - 1\), is the prediction residual after performing intra prediction horizontally (by copying the left adjacent pixel values for each predicted block line) or vertically (by copying the upper adjacent pixel values for each predicted block line) using the unfiltered samples from the upper or left block boundary samples. \(Q(r i,j ), where \(0\leq i\leq M - 1\) and \(0\leq j\leq N - 1\), represents the quantized version of the residual \(r i,j . Here, the residual is the difference between the original block and the predicted block values. Then, block DPCM is applied to the quantized residual samples, resulting in a modified \(M\times N\) array \(R'\) with elements \(r' i,j . In the case of vertical BDPCM, it is as follows.
Number
[0062] For horizontal prediction, similar rules apply, and the residual quantization samples are obtained as follows.
Number
[0063] The residual quantization sample \(r' i,j is sent to the decoder.
[0064] On the decoder side, the above calculations are reversed to generate \(Q(r i,j ), where \(0\leq i\leq M - 1\) and \(0\leq j\leq N - 1\). In the case of vertical prediction, it is as follows.
Number
[0065] In the case of horizontal prediction, it is as follows.
Number
[0066] The inverse quantized residual \(Q-1 (Q(r i,j )) is added to the intra-block prediction value to generate a reconstructed sample value.
[0067] The main advantage of this scheme is that during the analysis of the coefficients, when the coefficients are being analyzed, a predictor can simply be added so that inverse DPCM can be performed on the fly or can be performed after the analysis.
[0068] The transform skip is used at any time in the quantization residual domain BDPCM.
[0069] 2.8 Cross-Component Linear Model Prediction (CCLM) To reduce cross-component redundancy, the cross-component linear model (CCLM) prediction mode is used in VTM4. For this purpose, a linear model is used to predict the chroma samples as follows based on the reconstructed luma samples of the same CU. pred C (i,j) = α · rec L '(i,j) + β
[0070] Here, pred C (i,j) represents the predicted chroma sample within the CU, and rec L '(i,j) represents the downsampled reconstructed luma sample of the same CU. The linear model parameters α and β are derived from the relationship between the luma values and chroma values of two samples. They are the luma samples having the minimum sample value and the maximum sample value within a set of adjacent downsampled luma samples, and the corresponding chroma samples. The linear model parameters α and β are obtained according to the following equations.
Equation
Equation
[0071] Here, Ya and Xa represent the luma value and chroma value of the luma sample, indicating the maximum value of the luma sample. Also, Xb and Yb represent the luma value and chroma value of the minimum luma sample, respectively. FIG. 8 shows an example of the position of the upper-left sample and the samples of the current block involved in the CCLM mode.
[0072] FIG. 8 shows an example of the position of the samples used for the derivation of α and β. The division operation for calculating the parameters is performed using a look-up table. To reduce the memory required for storing the table, the diff value (the difference between the maximum value and the minimum value) and the parameter α are represented in exponential notation. For example, diff is approximated with a 4-bit significant part and an exponent. Therefore, the table of 1 / diff is reduced to 16 elements of 16 significant values as follows. DivTable[]={0,7,6,5,5,4,4,3,2,2,1,1,1,1,0}
[0073] This has the advantage of reducing both the complexity of the calculation and the memory size required to store the necessary tables.
[0074] In addition to calculating the linear model coefficients using the upper template and the left template, they can alternatively be used in two other LM modes called the LM_A mode and the LM_L mode.
[0075] In the LM_A mode, the linear model coefficients are calculated using only the upper template. To obtain more samples, the upper template is expanded to (W + H). In the LM_L mode, the linear model coefficients are calculated using only the left template. To obtain more samples, the left template is expanded to (H + W).
[0076] In the case of a non-square block, the upper template is expanded to W + W, and the left template is expanded to H + H.
[0077] To match the chroma sample positions of the 4:2:0 video sequence, two types of downsampling filters are applied to the luma samples, achieving a 2:1 downsampling ratio in both the horizontal and vertical directions. The selection of the downsampling filter is specified by the SPS level flag. The two downsampling filters are as follows and correspond to the contents of "type-0" and "type-2" respectively.
Number
Number
[0078] Note that when the upper reference line is at the CTU boundary, only one luma line (the general line buffer for intra prediction) is used to create the downsampled luma samples.
[0079] According to the current VVC design, PDPC is further applied to the prediction block generated in the CCLM mode based on the luma samples.
[0080] This parameter calculation is executed as part of the decoding process and not just as an encoder search operation. As a result, syntax is not used to transmit the values of α and β to the decoder.
[0081] In chroma intra mode coding, a total of 8 intra modes are permitted for chroma intra mode coding. These modes include 5 conventional intra modes and 3 cross-component linear model modes (CCLM, LM_A, LM_L). Chroma mode coding directly depends on the intra prediction mode of the corresponding luma block. In an I slice, since the block partitioning structures of the luma component and the chroma component are separately enabled, one chroma block may correspond to multiple luma blocks. Therefore, in chroma DM mode, the intra prediction mode of the corresponding luma block covering the center position of the current chroma block is directly inherited.
[0082] 2.9 Chroma Intra Prediction Mode Regarding chroma intra mode coding, a total of 8 or 5 intra modes are permitted for chroma intra mode coding depending on whether the cross-component linear model (CCLM) is enabled. These modes include 5 conventional intra modes and 3 cross-component linear model modes (IntraPredModeC is set to 81, 82, 83 respectively).
[0083] 2.9.1 DM Mode In chroma direct mode or derived mode (DM), the prediction mode of the co-located luma block is used to derive the chroma intra prediction mode.
[0084] First, the intra prediction mode lumaIntraPredMode is derived. · If the co-located luma block is coded in MIP mode, lumaIntraPredMode is set equal to the planar mode. · Otherwise, if the co-located luma block is coded in IBC mode or palette mode, lumaIntraPredMode is set equal to the DC mode. · Otherwise, lumaIntraPredMode is set equal to the intra prediction mode of the co-located luma block covering the corresponding luma samples at the center of the chroma block. One example is shown in FIG. 9.
[0085] Next, the intra chroma prediction mode (denoted as IntraPredModeC) is derived according to lumaIntraPredMode, as highlighted in bold and italic in the following table. Note that intra_croma_pred_mode equal to 4 refers to the DM mode.
[0086] Note in VVC that due to the dual tree, one chroma block may correspond to the luma region covering multiple CUs. For example, in FIG. 9, the gray region of the chroma block corresponds to the luma region covering 5 CUs. When deriving the DM mode, only one of the 5 CUs is checked, which is "CR" as shown in FIG. 9.
[0087] FIG. 9 shows one example of the "CR" position for DM derivation from the corresponding luma region.
Table 4
[0088] Finally, when the color format of the picture is 4:2:2, IntraPredModeC is further modified for the DM mode according to the following table.
Table 5
[0089] 3. Examples of Technical Problems Solved by Embodiments PDPC has the following problems. 1. In the planar mode or DC mode, the weighting coefficients of adjacent samples (e.g., wL, wT, and wLT) depend on prediction angles that are not defined in the planar and DC modes. 2. PDPC is enabled in the CCLM mode, but the selection method for adjacent samples, the weights applied to the adjacent samples, and the chroma prediction signal generated from the luma block using the linear model is undefined. 3. PDPC is enabled when "predModeIntra is less than or equal to INTRA_ANGULAR50". For the upper right wide-angle mode, PDPC is enabled. Therefore, PDPC is disabled for a given wide-angle mode, which may not be reasonable.
[0090] 4. List of Technologies and Embodiments The following list should be considered as examples for explaining general concepts. These items should not be interpreted narrowly. Furthermore, these items can be combined in any way.
[0091] Let the width and height of a block (such as CU / PU / TU / CB / PB / TB, etc.) be W and H respectively, and let predSamples(x,y) represent the predicted sample value at position (x,y). Here, x = 0...W - 1, y = 0...H - 1. (x,y) are the coordinates of the sample relative to the top-left sample of the block, and x and y are the horizontal and vertical positions of the sample respectively. R(x,y) represents adjacent samples (for example, reconstructed adjacent samples, or reconstructed adjacent samples modified by a predetermined filtering process), where x = -1, y = -1...refH - 1, and x = 0...refW - 1, y = -1, and here, refH and refW are the height and width of the reference adjacent samples. Let maxTbSize be the maximum transform block size, for example, 32 or 64, and let wL[x] and wT[y] be the weight coefficients of the left adjacent sample and the top adjacent sample respectively. Let the function Log2(N) be the base-2 logarithm of N. 1. In the planar mode and / or DC mode, it has been proposed that the weighting coefficients of adjacent samples in PDPC depend only on the dimensions of the block (for example, the width indicated by W and the height indicated by H), and / or the position of the samples to be filtered. Apply PDPC. a. In one example, for the sample at position (x,y), the weighting coefficient of the top adjacent sample (for example, R (x,-1) ) can be defined as wT[y]=N1>((y<N2)>>nScale). Here, nScale = ((Log2(W)+Log2(H)-N3)>>N4), and N1, N2, N3, and N4 are non-negative integers. b. In one example, for the sample at position (x,y), the weighting coefficient of the left adjacent sample (for example, R (-1,y) ) can be defined as wL[x]=N1>((x<N2)>>nScale). Here, nScale = ((Log2(W)+Log2(H)-N3)>>N4). c. In one example, for the sample at position (x,y), the weighting coefficient of the top-left adjacent sample (for example, R (-1,-1) ) can be set equal to zero. d. N1, N2, N3, and N4 are non-negative integers. For example, N1 = 32, N2 = 1, N3 = 2, and N4 = 2. 2. Whether to apply PDPC and how to apply it may depend on whether the current block is coded in the CCLM mode (such as LM, LM-T, LM-L, etc.). a. PDPC may not be applied in the CCLM mode. b. Alternatively, PDPC can be applied together with the CCLM mode. Here, the prediction signal generated from the luma block and chroma adjacent samples is used to derive the final predicted chroma block. The selection of adjacent chroma samples and / or weighting factors can be defined as follows. i. In one example, the method of selecting adjacent chroma samples and / or the method of determining the weighting factors of adjacent chroma samples may be the same as in a predetermined mode (such as the planar mode). ii. Alternatively, when the corresponding luma block is coded in an intra prediction mode such as an angular prediction mode (further including, for example, a wide-angle prediction mode, a vertical mode, or a horizontal mode), or a planar mode, or a DC mode, such an intra prediction mode can be used to select adjacent chroma samples and determine the weighting factors of adjacent chroma samples. 1. In one example, the corresponding luma block is one of the coding units / prediction units / transformation units covered by the corresponding luma region (such as the gray region in FIG. 9). a. In one example, the corresponding luma block is such that the coding unit / prediction unit / transformation unit covers the corresponding luma sample (such as CR in FIG. 9) of the central chroma sample. iii. Alternatively, when the corresponding luma block is coded in an intra prediction mode such as an angular prediction mode (further including, for example, a wide-angle prediction mode, a vertical mode, or a horizontal mode), or a planar mode, or a DC mode, such an intra prediction mode can be used to select adjacent chroma samples and determine the weighting factors of adjacent chroma samples. c. Alternatively, PDPC may be applied to a CCLM coding block having a prediction signal generated from a luma block, and chroma adjacent samples may be derived instead of using reconstructed chroma adjacent samples. i. In one example, the adjacent chroma samples may be derived from adjacent luma samples of the corresponding luma block using a linear model derived in the CCLM process. d. Alternatively, the corresponding reconstructed luma samples within the corresponding luma block may be filtered by PDPC before being used to predict chroma samples. i. In one example, when filtering the reconstructed luma samples, the method of selecting adjacent samples and / or the method of determining the weighting coefficients of adjacent luma samples may be the same as in a predefined mode (e.g., planar mode). ii. Alternatively, the method of selecting adjacent luma samples and / or the method of determining the weighting coefficients of adjacent luma samples may depend on the intra prediction mode of the luma block. 1. In one example, when a luma block is coded in an intra prediction mode such as an angular prediction mode (including wide-angle prediction mode, vertical mode, or horizontal mode), or a planar mode, or a DC mode, such an intra prediction mode may be used to select adjacent luma samples and determine the weighting coefficients of adjacent luma samples. 3. Whether to apply PDPC may depend on whether the current block is coded in a wide-angle intra prediction mode. a. PDPC can be applied to blocks in the wide-angle intra prediction mode. i. In one example, PDPC may be applied to blocks having some specific (but not all) wide-angle intra prediction modes. b. PDPC may not be applied to blocks in the wide-angle intra prediction mode. 4. Whether PDPC can be applied to a block depends on the upper adjacent sample and the left adjacent sample of Equation (2-1) (e.g., R (-1,y) and R (x,-1)Both may depend on whether they are “involved” in the intra prediction direction. For example, in the intra prediction process, assume that a sample is predicted from an adjacent left / upper sample (which may be placed at a fractional position). If there is a half-line crossing the upper / left adjacent row / column, the starting point is the left / upper adjacent sample, and both the upper adjacent sample and the left adjacent sample are said to be “involved” along the intra prediction direction of the sample. R (-1,-1) Note that R is always considered to be either the left adjacent sample or the upper adjacent sample, but not both. a. In one example, the intra prediction direction may be defined as an angular intra prediction mode. i. In one example, the intra prediction direction may exclude vertical or horizontal prediction directions. ii. In one example, the intra prediction direction may be in DC and / or planar modes. iii. In one example, the intra prediction direction may exclude wide-angle intra prediction modes. b. In one example, if both the upper adjacent sample and the left adjacent sample are “involved” in the intra prediction direction for predicting at least N samples (e.g., N = 1) of a block, PDPC may be applied. One example is shown in FIGS. 10(a) and (b). Here, PDPC is enabled. i. Alternatively, further, if two adjacent samples are not “involved” in the intra prediction process for predicting any sample of the block, PDPC may not be applied. Examples are shown in FIGS. 10(c) and 10(d).
[0092] FIG. 10 shows examples of adjacent samples involved along the prediction direction. 5. Whether to enable or disable PDPC may depend on the color component. a. In one example, PDPC may be enabled for the luma color component (e.g., Y in the YCbCr color format, G in the RGB color format), but may be disabled for at least one chroma color component (e.g., Cb and / or Cr in the YCbCr color format, B and / or R in the RBB color format). 6. Multiple methods of PDPC may be permitted based on how many samples the filtering process requires to derive one final predicted sample. a. In one example, one final predicted sample may be derived according to one or more left adjacent samples (filtered or unfiltered), and an intra prediction value (e.g., pred(x,y) in Equation 2-1) obtained from, for example, a normal intra prediction process. b. In one example, one final predicted sample may be derived according to one or more upper adjacent samples (filtered or unfiltered), and an intra prediction value (e.g., pred(x,y) in Equation 2-1) obtained from, for example, a normal intra prediction process. c. Which method of PDPC is applied to a block may depend on the coded information. i. Block dimension ii. Block shape iii. Ratio of block width to height iv. Index or flag signaled in the video unit 7. Whether PDPC can be applied to a block may depend on the block dimension and / or block shape (square or non-square). a. In one example, PDPC may be disabled for non-square blocks. b. In one example, whether to enable or disable PDPC may depend on the ratio of block width to block height. c. When the block size is small, PDPC may be prohibited. i. In one example, when the width of the block is less than or equal to a threshold value T (e.g., T = 2,4), PDPC is not permitted. ii. In one example, when the height of the block is less than or equal to a threshold value T (e.g., T = 2,4), PDPC is not permitted. iii. In one example, when the number of luma samples in the block is less than or equal to a threshold value T (e.g., 16, 32, 64), PDPC is not permitted. d. When the block size is large, PDPC may be prohibited. i. In one example, when the width of the block is greater than or equal to a threshold value T (e.g., T = 32), PDPC is not permitted. ii. In one example, when the height of the block is greater than or equal to a threshold value T (e.g., T = 32), PDPC is not permitted. iv. In one example, when the number of luma samples in the block is greater than or equal to a threshold value T (e.g., 1024), PDPC is not permitted. e. Whether to enable or disable PDPC can be determined independently for different color components.
[0093] 5. Embodiments Newly added parts are highlighted in bold and italic, and deleted parts are marked with double brackets (e.g., [[a]] indicates the deletion of the character 'a').
[0094] 5.1 One Example This is an example of item (bullet) 1.
Table 6
[0095] 5.2 One Example This is an example of item 2 and item 3.
Table 7
[0096] Figure 11A is a block diagram of a video processing apparatus 1100. The apparatus 1100 can be used to implement one or more of the methods described herein. The apparatus 1100 can be embodied in a smartphone, a tablet, a computer, a mono Internet of Things (IoT) receiver, and the like. The apparatus 1100 may include one or more processors 1102, one or more memories 1104, and video processing hardware 1106. The processor 1102 may be configured to implement one or more of the methods described in this document. The memory(ies) 1104 may be used to store data and code used to implement the methods and techniques described herein. The video processing hardware 1106 may be used to implement some of the techniques described in this document in a hardware circuit. In some embodiments, the hardware 1106 may be at least partially within the processor 1102, such as within a graphics coprocessor.
[0097] FIG. 11B is another example of a block diagram of a video processing system that can implement the disclosed technology. FIG. 11B is a block diagram showing an exemplary video processing system 1200 in which various technologies disclosed herein can be implemented. Various implementations can include some or all of the components of system 2400. System 2400 can include an input 2402 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8 or 10 bit multi-component values, or may be received in a compressed or encoded format. Input 2402 can represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, passive optical network (PON), etc., and wireless interfaces such as Wi-Fi® or cellular interfaces.
[0098] System 2400 may include a coding component 2404 that can implement various coding or encoding methods described in this document. The coding component 2404 can reduce the average bit rate of the video from input 2402 to the output of the coding component 2404 to generate a coded representation of the video. Thus, coding techniques are sometimes referred to as video compression or video transcoding techniques. The output of the coding component 2404 can be stored or transmitted via connected communication as represented by component 2406. The stored or communicated bitstream (or coded) representation of the video received at input 2402 may be used by component 2408 to generate pixel values that are sent to a display interface 2410 or a viewable video. The process of generating a video that a user can view from the bitstream representation is sometimes referred to as video decompression. Further, certain video processing operations are referred to as “coding” operations or tools, but it will be understood that coding tools or operations are used in an encoder and the corresponding decoding tools or operations that reverse the result of coding are executed in a decoder.
[0099] Examples of a peripheral bus interface or a display interface can include a Universal Serial Bus (USB), or a High-Definition Multimedia Interface (HDMI (registered trademark)), or a DisplayPort, etc. Examples of a storage interface include SATA (serial advanced technology attachment), PCI, IDE interface, etc. The techniques described in this document can be embodied in various electronic devices such as a mobile phone, a laptop, a smartphone, or other devices capable of performing digital data processing and / or video display.
[0100] In some embodiments, the video processing method described in this patent document can be implemented using an apparatus implemented on a hardware platform as described with respect to FIGS. 11A or 11B.
[0101] Some embodiments of the disclosed technology include making a determination or decision to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, the encoder uses or implements the tool or mode in processing video blocks, but does not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, the conversion from a video block to a video bitstream representation uses the video processing tool or mode when enabled based on the determination or decision. In another example, when a video processing tool or mode is enabled, the decoder processes the bitstream knowing that the bitstream has been modified based on the video processing tool or mode. That is, the conversion from a video bitstream representation to a video block is performed using the video processing tool or mode enabled based on the determination or decision.
[0102] Some embodiments of the disclosed technology include making a determination or decision to disable a video processing tool or mode. In one example, when a video processing tool or mode is disabled, the encoder does not use the tool or mode when converting a video block to a video bitstream representation. In another example, when a video processing tool or mode is disabled, the decoder processes the bitstream knowing that the bitstream has not been modified using the video processing tool or mode disabled based on the determination or decision.
[0103] In this document, the term "video processing" can refer to video encoding, video decoding, video compression, or video decompression. For example, a video compression algorithm may be applied during the conversion from the pixel representation of a video to the corresponding bitstream representation, and vice versa. The current bitstream representation of a video block may, for example, be co-located at different places within the bitstream or correspond to diffused bits, as defined by the syntax. For example, a macroblock may be encoded from the perspective of the transformed and coded error residual values and also using bits within headers and other fields in the bitstream.
[0104] Various techniques and embodiments may be described using the following clause-based format. The first set of clauses describes certain features and aspects related to the technology disclosed in the previous section.
[0105] The following sections can be implemented with additional implementation methods described in the items listed in the previous section (e.g., clause 1).
[0106] 1. A method of video processing (e.g., method 1200 shown in FIG. 12), comprising determining a weighting factor applied to adjacent samples for a conversion using an auto-encoding mode for the conversion between a current video block of a video and an encoded representation of the current video block, the weighting factor being fully defined by the size of the current video block or the sample position to which the weighting factor is applied (1202), and performing the conversion based on the determination (1204). Here, the auto-encoding mode includes a planar encoding mode of the DC encoding mode.
[0107] 2. The sample position is (x, y), and the weighting factor of the adjacent sample is wT[y] = N1 >> ((y << N2) >> nScale), where nScale = ((Log2(W) + Log2(H) - N3) >> N4), and N1, N2, N3, and N4 are non - negative integers, the method according to clause 1.
[0108] 3. The sample position is (x, y), and the weighting factor of the adjacent sample is wL[x] = N1 >> ((x << N2) >> nScale), where nScale = ((Log2(W) + Log2(H) - N3) >> N4), and N1, N2, N3, and N4 are non - negative integers, the method according to clause 1.
[0109] 4. The sample position is (x, y), and the weighting factor of the adjacent sample at the upper - left position is zero, the method according to clause 1.
[0110] 5. The method according to any one of clauses 1 - 4, wherein N1 = 32, N2 = 1, N3 = 2, or N4 = 2.
[0111] The following solutions can be implemented together with the additional techniques described in the items listed in the previous section (e.g., items 2, 3, 4, and 7).
[0112] 6. A method for video processing, comprising: determining whether an intra - coding mode is applied to a current video block based on a rule using a coding mode used for the current video block during conversion between the current video block of the video and its coded representation; and performing the conversion based on the determination.
[0113] 7. The method according to clause 6, wherein the coding mode includes a cross - component linear model (CCLM).
[0114] 8. The method according to clause 7, wherein the rule specifies disabling the self-encoding mode when CCLM is used.
[0115] 9. The method according to clause 7, wherein the rule specifies enabling the self-encoding mode when CCLM is used.
[0116] 10. The second rule further specifies the position of the reference sample used during the self-encoding-based conversion, according to the method described in clause 9.
[0117] 11. The second rule specifies using the same position as the position of the reference sample used in the planner encoding mode, according to the method described in clause 10.
[0118] 12. The second rule specifies that self-encoding uses predicted luma samples or derived chroma adjacent samples during the conversion of the current video block, according to the method described in clause 10.
[0119] 13. The encoding mode includes a wide-angle intra prediction mode, according to the method described in clause 6.
[0120] 14. The rule specifies disabling the self-encoding mode when the wide-angle intra prediction mode is used, according to the method described in clause 6.
[0121] 15. The rule specifies enabling self-encoding for the wide-angle intra prediction mode being used, according to the method described in clause 6.
[0122] 16. The encoding mode is defined by whether the upper sample or the left sample is involved during the intra prediction of the current video block, according to the method described in clause 6.
[0123] 17. The intra prediction includes an angular intra prediction mode, according to the method described in clause 16.
[0124] 18. The coding mode is the method according to clause 6 that corresponds to the height or width of the current video block, or the shape of the current video block.
[0125] 19. The rule is the method according to clause 18 that stipulates that the self-coding mode is disabled for a current video block having a non-square shape.
[0126] The following clauses can be implemented together with the additional techniques described in the items (e.g., item 5) listed in the previous section.
[0127] 20. A method for video processing, comprising: determining, during conversion between a current video block of a video and a coded representation of the current video block, whether the self-coding mode is applied to the current video block based on a rule for using components of the current video block; and performing the conversion based on the determination.
[0128] 21. The rule is the method according to clause 20 that stipulates enabling the self-coding mode because the current video block is a luma block.
[0129] 22. The rule is the method according to clause 20 that stipulates disabling the self-coding mode because the current video block is a chroma block.
[0130] The following solutions can be implemented together with the additional techniques described in the items (e.g., item 6) listed in the previous section.
[0131] 23. A method of video processing, comprising: during conversion between a current video block of a video and an encoded representation of the current video block, determining, based on rules, to apply a plurality of self-encoding modes to the current video block; and executing the conversion using results of applying the plurality of self-encoding modes.
[0132] 24. The method according to clause 23, wherein the plurality of self-encoding modes include encoding modes based on left adjacent samples that are filtered or not filtered.
[0133] 25. The method according to clause 23, wherein the plurality of self-encoding modes include encoding modes based on upper adjacent samples that are filtered or not filtered.
[0134] 26. The method according to any one of clauses 23-25, wherein the rules are based on encoded information including dimensions of the current video block, or shape of the current video block, or ratio of height to width of the current video block, or a flag signaled in the encoded representation.
[0135] 27. The method according to any one of the above clauses, wherein the self-encoding mode includes a position-dependent intra prediction combination (PDPC) mode.
[0136] 28. The method according to any one of clauses 1-27, wherein the step of converting includes encoding the video into the encoded representation.
[0137] 29. The method according to any one of clauses 1-27, wherein the step of converting includes decoding the encoded representation to generate pixel values of the video.
[0138] 30. A video decoding apparatus including a processor configured to implement the method according to one or more of clauses 1-27.
[0139] A video coding apparatus including a processor configured to implement the method according to one or more of clauses 1-27.
[0140] A computer program product having computer code stored therein, which, when executed by a processor, causes the processor to execute the method according to any of clauses 1-27.
[0141] The method, apparatus, or system described in this document.
[0142] The second set of clauses describes certain features and aspects related to the technology disclosed in the previous section, for example, to explain Example 1.
[0143] 1. A method of video processing (e.g., method 1300 shown in FIG. 13), comprising: deriving a weighting coefficient for adjacent samples related to samples of a current video block of a video according to rules (1302); and performing a conversion between the current video block and a coded representation of the video (1304), wherein the rules specify that when the current video block is coded using a planar mode or a DC mode, the weighting coefficient is determined from at least one of the dimensions of the current video block or the position of the samples, and the current video block uses a position-dependent intra prediction (PDPC) method to combine the adjacent samples with a prediction signal of the current video block to generate a refined prediction signal of the current video block, and the weighting coefficient of the prediction signal of the samples is determined based on the weighting coefficient of the corresponding adjacent samples of the samples.
[0144] 2. The rule stipulates that for the sample position (x, y), the weighting coefficient of the upper adjacent sample is wT[y] = N1 >> ((y << N2) >> nScale), where nScale = ((Log2(W) + Log2(H) - N3) >> N4), and N1, N2, N3, and N4 are non - negative integers, the method described in Clause 1.
[0145] 3. The upper adjacent sample includes the position (x, - 1), the method described in Clause 2.
[0146] 4. The rule stipulates that for the sample position (x, y), the weighting coefficient of the left adjacent sample is wL[x] = N1 >> ((x << N2) >> nScale), where nScale = ((Log2(W) + Log2(H) - N3) >> N4), and N1, N2, N3, and N4 are non - negative integers, the method described in Clause 1.
[0147] 5. The left adjacent sample includes the position (-1, y), the method described in Clause 4.
[0148] 6. The rule stipulates that for the sample position (x, y), the weighting coefficient of the upper - left adjacent sample is zero, the method described in Clause 1.
[0149] 7. The position of the upper - left adjacent sample is (-1, -1), the method described in Clause 6.
[0150] 8. N1 = 32, N2 = 1, N3 = 2, or N4 = 2, the method described in any of Clauses 2 - 5.
[0151] 9. The step of performing the conversion includes generating the coded representation from the current video block, the method described in any of Clauses 1 - 8.
[0152] 10. The step of performing the conversion includes generating the current video block from the coded representation, the method described in any of Clauses 1 - 8.
[0153] A video processing apparatus comprising a processor configured to implement the method according to any one of clauses 1-10.
[0154] A computer program product storing computer code, which, when executed by a processor, causes the processor to execute the method according to any one of clauses 1-10.
[0155] What is disclosed, as well as other solutions, examples, embodiments, modules, and the functional operations described in this document, can be implemented in various systems, digital electronic circuits, or computer software, firmware, or hardware, or in one or more combinations thereof, including the structures disclosed herein and their structural equivalents. The implementation of the technical matters described herein can be implemented as one or more modules of a computer program product, for example, computer program instructions encoded on a tangible and non-transitory computer-readable medium for use by or to control the operation of a data processing apparatus. A computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matters affecting a machine-readable propagated signal, or one or more combinations thereof. The term "data processing apparatus" encompasses all apparatus, devices, and machines for processing data, including, for example, a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code for creating an execution environment for the computer program in question, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or one or more combinations thereof. A propagated signal is an artificially generated signal, for example, a machine-generated electrical, optical, or electromagnetic signal generated to encode information for transmission to an appropriate receiver device.
[0156] A computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and can be deployed in any form, including as a stand-alone program or as modules, components, subroutines, or other units suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. The program can be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple cooperating files (e.g., files that hold one or more modules, subprograms, or portions of code). A computer program can be deployed to be executed on one computer or one site, or it can be distributed across multiple computers and executed on multiple computers interconnected by a communication network.
[0157] The processes and logical flows described in this document can be executed by one or more programmable processors that execute one or more computer programs to perform functions by operating on input data and generating output. The processes and logical flows can also be executed by special-purpose logic circuits, such as FPGs (field programmable gate arrays) or ASICs (application specific integrated circuits), and the apparatus can also execute them.
[0158] Processors suitable for the execution of a computer program include, for example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. In general, a processor receives instructions and data from a read only memory, or a random access memory, or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. In general, a computer is also operatively coupled to one or more mass storage devices, such as magnetic disks, magneto-optical disks, or optical disks, for receiving or transferring data thereto. However, a computer need not have such devices. Computer readable media suitable for storing computer program instructions and data include, for example, all forms of non-volatile memory, media, and memory devices including semiconductor memory devices such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD ROM and DVD-ROM disks. The processor and the memory may be supplemented by, or incorporated in, special purpose logic circuitry.
[0159] This patent document contains many details, but these are not intended to limit the scope of any invention or what can be claimed, and should be construed as descriptions of features specific to particular embodiments of a particular invention. In the context of separate embodiments, the specific features described in this patent document can also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment can also be implemented separately, or in any suitable sub-combination, in multiple embodiments. Further, features may be described as acting in a particular combination and may initially be claimed as such, but one or more features from the claimed combination may, in some cases, be excised from the combination, and the claimed combination may be directed to a sub-combination or a variation of a sub-combination.
[0160] Similarly, although the drawings show operations in a particular order, this should not be understood as requiring that such operations be performed in that particular order or in a sequential order to achieve the desired result, or that all of the illustrated operations be performed. Further, the separation of various system components in the embodiments described in this patent document should not be understood as requiring such separation in all embodiments.
[0161] Only a few embodiments and examples are described, and other implementations, extensions, and variations can be made based on what is described and explained in this patent document.
Claims
1. A method for video processing, comprising: generating predicted samples of the current video block for conversion between the current video block of the video and the bitstream of the video; generating modified predicted samples of the current video block using a position-dependent intra prediction sample filtering process; performing the conversion based on the modified predicted samples, wherein in the filtering process, a first predicted sample and at least one adjacent sample of the current video block are combined to generate a modified first predicted sample based on a weighting coefficient of the first predicted sample and at least one weighting coefficient of the at least one adjacent sample; when the current video block is coded using a planar or DC mode, the at least one weighting coefficient of the at least one adjacent sample is determined only from the dimensions of the current video block and the position of the first predicted sample; and when a cross-component linear model prediction (CCLM) mode is used for a video block, the filtering process is not applied to the video block. A method.
2. The dimensions of the current video block include the width and height of the current video block. The method according to claim 1.
3. For the position (x, y) of the first predicted sample, the weighting coefficient for the upper adjacent sample of the at least one adjacent sample is wT[y]=N1>>((y<N2)>>nScale), where nScale = ((Log2(W)+Log2(H)-N3)>>N4), W is the width of the current video block, H is the height of the current video block, and N1, N2, N3, and N4 are non-negative integers. The method according to claim 1 or 2.
4. The upper adjacent sample is a sample located at the position (x, -1). The method according to claim 3.
5. For the position (x, y) of the first predicted sample, the weighting coefficient for the left adjacent sample of the at least one adjacent sample is wL[x]=N1>>((x<N2)>>nScale). The method according to claim 3 or 4.
6. The left adjacent sample is the sample placed at position (-1, y). The method according to claim 5.
7. N1 = 32, N2 = 1, N3 = 2, or N4 = 2. The method according to claim 5 or 6.
8. Regarding the position (x, y) of the first predicted sample, the weighting coefficient for the upper left adjacent sample is zero. The method according to any one of claims 1 to 7.
9. The conversion includes encoding the current video block into the bitstream. The method according to any one of claims 1 to 8.
10. The conversion includes decoding the current video block from the bitstream. The method according to any one of claims 1 to 8.
11. An apparatus for processing video data comprising a processor and a non-transitory memory storing instructions, which, when executed by the processor, cause the processor to generate predicted samples of the current video block for conversion between the current video block of the video and the bitstream of the video, generate modified predicted samples of the current video block using a position-dependent intra prediction sample filtering process, and perform the conversion based on the modified predicted samples, such that in the filtering process, a first predicted sample and at least one adjacent sample of the current video block are combined to generate a modified first predicted sample based on a weighting coefficient of the first predicted sample and at least one weighting coefficient of the at least one adjacent sample, when the current video block is coded using the planar or DC mode, the at least one weighting coefficient of the at least one adjacent sample is determined only from the dimensions of the current video block and the position of the first predicted sample, and when the cross-component linear model prediction (CCLM) mode is used for a video block, the filtering process is not applied to the video block, apparatus.
12. The dimensions of the current video block include the width and height of the current video block. The apparatus according to claim 11.
13. Regarding the position (x, y) of the first prediction sample, the weighting coefficient for the upper adjacent sample of the at least one adjacent sample is wT[y] = N1 >> ((y < N2) >> nScale), where nScale = ((Log2(W) + Log2(H) - N3) >> N4), W is the width of the current video block, H is the height of the current video block, and N1, N2, N3, and N4 are non - negative integers, The apparatus according to claim 11 or 12.
14. A non - transitory computer - readable storage medium storing instructions which, when executed, cause a processor to generate prediction samples of the current video block for conversion between the current video block of a video and the bitstream of the video, generate modified prediction samples of the current video block using a position - dependent intra - prediction sample filtering process, and execute the conversion based on the modified prediction samples, such that in the filtering process, a first prediction sample and at least one adjacent sample of the current video block are combined to generate a modified first prediction sample based on the weighting coefficient of the first prediction sample and at least one weighting coefficient of the at least one adjacent sample, when the current video block is coded using the planar or DC mode, the at least one weighting coefficient of the at least one adjacent sample is determined only from the dimensions of the current video block and the position of the first prediction sample, and when the cross - component linear model prediction (CCLM) mode is used for a video block, the filtering process is not applied to the video block, A non - transitory computer - readable storage medium.
15. A method for storing a bitstream of a video, comprising: generating prediction samples of the current video block of the video; generating modified prediction samples of the current video block using a position - dependent intra - prediction sample filtering process; and generating the bitstream based on the modified prediction samples. storing the bitstream of the video in a non-transitory computer-readable storage medium; and in the filtering process, a first prediction sample and at least one neighboring sample of the current video block are combined to generate a modified first prediction sample based on a weighting coefficient of the first prediction sample and at least one weighting coefficient of the at least one neighboring sample; when the current video block is coded using a planar or DC mode, the at least one weighting coefficient of the at least one neighboring sample is determined only from the dimension of the current video block and the position of the first prediction sample, and when a cross-component linear model prediction (CCLM) mode is used for a video block, the filtering process is not applied to the video block; method