Cross-component adaptive loop filter
Patent Information
- Application Number
- JP2023200063
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-11-04
- Filing Date
- 2023-11-27
- Publication Date
- 2025-03-26
- Estimated Expiration
- 2040-11-04
Smart Images

Figure 0007651660000031 
Figure 0007651660000032 
Figure 0007651660000033
Abstract
Description
[Technical Field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application is a divisional application of Japanese Patent Application No. 2022-525117, which is based on International Patent Application No. PCT / CN2020 / 126332 filed on November 4, 2020. Priority and benefit of International Patent Application No. PCT / CN2019 / 115321, filed November 4, 2019, is claimed. All of the foregoing patent applications are incorporated herein by reference in their entirety. .
[0002] This patent specification relates to video encoding and decoding techniques, devices and systems. . [Background technology]
[0003] Currently, we are improving the performance of current video codec technology to achieve better compression rates. or providing a video encoding and decoding method that allows for lower complexity or parallel implementation. Industry experts have recently introduced several new video coding tools. have been proposed and trials are currently underway to determine their effectiveness. Summary of the Invention
[0004] Device for digital video coding, in particular for motion vector management , a system and method are described. The described method is compatible with existing video coding standards. (For example, High Efficiency Video Coding coding, HEVC) or various video coding) and future video coding standards Or it can be applied to a video codec.
[0005] In one exemplary embodiment, the disclosed technology is used to provide a method for image processing. This method may be used to determine the current video unit of a video that contains one or more video blocks. For conversion to and from a bitstream representation of video, a small portion of the current video unit is used according to the rules. Cross-component adaptive loop filtering (CC-ALF) is applied to at least some video blocks. ) padding used to pad out unavailable samples while applying the tool and performing a transformation based on this determination, said rules currently Adaptive Loop Filtering (ALF) tool for one or more video blocks of a video unit It specifies that the sigma is also used to pad out unavailable samples while applying .
[0006] In another exemplary aspect, the disclosed technology provides an alternative method for image processing. This method involves combining a video unit of a video with a bitstream representation of this video. During this conversion, unavailable samples of the video unit are filtered by the adaptive loop. Adaptive Loop Filtering (ALF) processing or Cross-Component Adaptive Loop Filtering (CC-A Padded in a predefined padding order according to the rules for applying LF) processing. can be.
[0007] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to enable the application of an adaptive loop filter (ALF). For a video region of a given video, determine if that video region intersects at a video unit boundary. and converting between video and bitstream representations of video, The image area is then multiplied according to the rules by which the image area intersects with the boundaries of the image units. Divide it into several partitions.
[0008] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to separate the video units and video bits according to the rules. The rules include converting between the sample and stream representations, and converting between the sample and stream representations at the boundaries of the video units. Adaptive Loop Filtering (ALF) and / or cross-component adaptive loop filtering The application of filtering (CC-ALF) allows cross-boundary filtering. If not, it is not permitted.
[0009] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to identify the video units of a video and the bitstream representation of the video. The bitstream representation complies with the format rules and includes conversion between The area is different from the coding tree block, and the formatting rules are Adaptive Loop Filtering (ALF) tool and / or Cross-Component Adaptive Loop Filtering (CC-AL F) Syntax elements are included in the bitstream representation that indicate the applicability of the tool to the video domain. This specifies whether
[0010] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to identify the video units of a video and the bitstream representation of the video. For the conversion between and, according to the rules, cross-component adaptive loop flows to the video unit samples. Determine the applicability of the CC-ALF filtering tool and, based on this determination, The bitstream representation includes the conversion of CC-ALF to video units. A rule contains directives that are available for use, and a rule specifies one or more conditions that override the directives.
[0011] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to separate the video units and video bits according to the rules. This rule includes converting to and from a stream representation, and the operations used during the conversion are First clipping operation, cross-component, corresponding to the adaptive loop filtering (ALF) Second clipping corresponding to the CC-ALF offset derivation filtering operation, and the chroma filtered signal to derive the final chroma sample value. Three clipping operations, including a third clipping operation that corresponds to the fine adjustment of the sample It is stipulated that at least one of them is omitted.
[0012] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to combine a first video unit of a video with a bitstream of the video. For conversion to and from the system representation, the cross-component adaptive loop filtering (CC- ALF offset and performing this conversion based on this determination. ,This rule sets the CC-ALF offset as [-(1<<(BitDepthC-1)) ,(1<<(BitDepthC-1))-1]. Specifies clipping to a range of 0 to 1000, and BitDepthC is the bit depth value.
[0013] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to combine a first video unit of a video with a bitstream of the video. For conversion to and from the system representation, the cross-component adaptive loop filtering (CC- ALF offset and converting it using the CC-ALF offset. The rules include using a rounding offset based on the bit depth value instead of a fixed value. This specifies that the CC-ALF offset is rounded.
[0014] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to separate the video units and video bits according to the rules. Rules are applied to samples of video units, including converting to and from a stream representation. Chroma adaptive loop filtering (ALF) processing and / or cross-component adaptive loop filtering One or more processing steps used during the filtering (CC-ALF) process are the same. This stipulates that:
[0015] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to separate the video units and video bits according to the rules. The method includes: converting a second color of the video unit to a second color of the video unit; The first color component of the video unit is sampled by applying a correction using the component information. The present invention provides for modifying the adaptive loop filter value for a video unit. Based on one or more parameters used in the Allocation of Factors (ALF) process.
[0016] In yet another exemplary aspect, the disclosed technology provides another method for image processing. This method may be used to combine the first subpicture of the video with the bitstream of the video. For conversion to and from the system representation, the cross-component loop filtering (CC-AL) is performed according to the rules. F) is applicable to the first subpicture sample; The CC-ALF for the sample includes performing a decision-based transformation on the second sub-picture. The rule uses samples from the first subpicture and / or the second subpicture. Whether loop filtering across subpicture boundaries is allowed for a subpicture. It is based on Uka.
[0017] Further, in a representative embodiment, a processor and a non-transitory memory loaded with instructions are included. An apparatus in a video system is disclosed, the instructions being executed by a processor. and causing a processor to implement any one or more of the disclosed methods.
[0018] It is also a computer program product stored on a non-transitory computer-readable medium. and a computer containing program code for performing any one or more of the disclosed methods. A computer program product is disclosed.
[0019] These and other aspects and features of the disclosed technology are set forth in the drawings, description and claims. is explained in more detail. [Brief explanation of the drawings]
[0020] [Figure 1] FIG. 1 shows an example of an encoder block diagram. [Figure 2] FIG. 2 shows an example of a shape transformation based adaptive loop filter (GALF) filter shape. [Figure 3] FIG. 3 shows an example of a loop filter line buffer associated with one luminance component. [Figure 4] FIG. 4 shows an example of a loop filter line buffer associated with a chroma component. [Figure 5A]FIG. 5A shows an example of modified ALF block classification at a hypothetical boundary for N=4. [Figure 5B] FIG. 5B shows an example of modified ALF block classification at a hypothetical boundary for N=4. [Figure 6A] FIG. 6A shows examples of one line, two lines, and three lines near a virtual boundary (VB) in connection with modified luminance ALF filtering. [Figure 6B] FIG. 6B shows examples of one line, two lines, and three lines near a virtual boundary (VB) in connection with modified luminance ALF filtering. [Figure 6C] FIG. 6C shows examples of one line, two lines, and three lines near a virtual boundary (VB) in connection with modified luminance ALF filtering. [Figure 7A] FIG. 7A shows an example of one line and two lines close to the virtual boundary (VB) in relation to modified chroma ALF filtering. [Figure 7B] FIG. 7B shows an example of one line and two lines close to the virtual boundary (VB) in connection with modified chroma ALF filtering. [Figure 8] FIG. 8 shows an example of ALF (MALF) based on correction coefficients. [Figure 9A] FIG. 9A shows an example of a subsampled Laplacian calculation. [Figure 9B] FIG. 9B shows an example of a subsampled Laplacian calculation. [Figure 9C] FIG. 9C shows an example of a subsampled Laplacian calculation. [Figure 9D] FIG. 9D shows an example of a subsampled Laplacian calculation. [Figure 10A] FIG. 10A shows an example of the placement of a CC-ALF relative to other loop filters. [Figure 10B] FIG. 10B shows an example of a diamond filter. [Figure 11] FIG. 11 shows an example of a 3×4 diamond filter. [Figure 12]FIG. 12 shows an example of raster scan slice division of a picture. [Figure 13] FIG. 13 shows an example of dividing a picture into rectangular slices. [Figure 14] FIG. 14 shows another example of dividing a picture into rectangular slices. [Figure 15] FIG. 15 shows an example of sub-picture division of a picture. [Figure 16] FIG. 16 shows an example of an ALF processing unit and an example of a narrow ALF processing unit. [Figure 17] FIG. 17 shows an example of applying repeat padding to an ALF processing unit. [Figure 18] FIG. 18 shows an example of filling in unavailable samples. [Figure 19] FIG. 19 is a block diagram illustrating an example hardware platform for implementing the visual media decoding or visual media encoding techniques described in this patent specification. [Figure 20] FIG. 20 shows a flowchart of the video processing. [Figure 21] FIG. 21 is a block diagram illustrating an exemplary video processing system in which the disclosed techniques can be implemented. [Figure 22] FIG. 22 is a block diagram illustrating an exemplary video coding system. [Figure 23] FIG. 23 is a block diagram illustrating an encoder in accordance with some embodiments of the disclosed techniques. [Figure 24] FIG. 24 is a block diagram illustrating a decoder in accordance with some embodiments of the disclosed techniques. [Figure 25A] FIG. 25A shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. [Figure 25B] FIG. 25B shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. [Figure 25C]FIG. 25C shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. [Figure 25D] FIG. 25D shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. [Figure 25E] FIG. 25E shows a flowchart of an exemplary method for video processing, consistent with some implementations of the disclosed technology. [Figure 25F] FIG. 25F shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. [Figure 25G] FIG. 25G shows a flowchart of an exemplary method for video processing according to some implementations of the disclosed technology. DETAILED DESCRIPTION OF THE INVENTION
[0021] 1. Video coding in HEVC / H.265 Video coding standards are primarily developed through the well-known ITU-T and ISO / IEC standards. ITU-T created H.261 and H.263, and ISO / IEC developed MP EG-1 and MPEG-4 Visual, and both organizations are H.262 / MPEG-2 V ideo and H.264 / MPEG-4 AVC (Advanced Video Cod ing) and co-created the H.265 / HEVC standard. The standard uses a hybrid video coding structure that utilizes temporal prediction and transform coding. In 2015, to explore future video coding technologies beyond HEVC, is a joint project of VCEG and MPEG called JVET (Joint Video Exploration Since then, many new methods have been adopted by JVET. The reference software called JEM (Joint Exploration Mode) In April 2018, VCEG (Q6 / 16) and ISO / IE C JTC1 SC29 / WG11(MPEG) Joint Video Exp The Joint Virtuoso Team (JVET) was launched, achieving a 50% bitrate reduction compared to HEVC. We are working to develop VVC standards with this goal in mind.
[0022] 2.1. Color Space and Chroma Subsampling A color space, also known as a color model (or color system), is a set of numerical tags that represent a range of colors. It is an abstract mathematical model that is easily described as a tuple, typically consisting of 3 or Four values or color components (e.g. RGB). Basically, a color space is a coordinate system and a subspace. It is a synthesis of the above.
[0023] For video compression, the most frequently used color spaces are YCbCr and RGB.
[0024] YCbCr, Y'CbCr, or Y Pb / Cb Pr / Cr are YCBCR or Also known as Y'CBCR, it is a part of the color imaging pipeline of video and digital photography systems. It is a family of color spaces that are used as part of the RGB color space. Y' is the luminance component, and CB and C R is the blue-difference and red-difference chroma component. Y' (which has a prime number) is distinct from Y, and Y is the luminance, and the light intensity is nonlinearly coded based on the gamma-corrected RGB primaries. This means:
[0025] Chroma subsampling is because the human visual system has a lower perception of color difference than luminance. By taking advantage of this, the chrominance information is implemented to have a lower resolution than the luminance information, and the image is This is a method of encoding the above.
[0026] 2.1.1. 4:4:4 Each of the three Y'CbCr components has the same sample rate and therefore the chroma sub-sampler This method is not available with high-end film scanners and cinema post-processing. It may be used for induction.
[0027] 2.1.2. 4:2:2 The two chrominance components are sampled at half the luma sample rate, resulting in a horizontal chrominance resolution of The image quality is halved, which makes it visually comparable to uncompressed video with little or no difference. The signal bandwidth can be reduced by a factor of three.
[0028] 2.1.3. 4:2:0 In 4:2:0, the horizontal sampling is doubled compared to 4:1:1, but this scheme Since the Cb and Cr channels are sampled only on every other line, the vertical resolution is The horizontal and vertical axes are halved, so the data rate remains the same. Cb and Cr are horizontal and vertical axes, respectively. Subsampled by a factor of 2 in both the vertical and horizontal directions. There are three variants of the :2:0 scheme: ● In MPEG-2, Cb and Cr are horizontally aligned. Cb and Cr are vertically aligned. It is located between pixels in the direction (located between the grids). ● In JPEG / JFIF, H.261, and MPEG-1, Cb and Cr are interchangeable. They are spaced apart between each other luminance sample. ● In 4:2:0 DV, Cb and Cr are horizontally co-located. They are co-located alternately.
[0029] 2.1.4. Coding of Different Color Components Based on the value of separate_colour_plane_flag, the variable Chr The values of omaArrayType are assigned as follows: - If separate_colour_plane_flag is equal to 0, Chr omaArrayType is set equal to chroma_format_idc. - Otherwise (separate_colour_plane_flag equals 1) ChromaArrayType is set to 0.
[0030] 2.2 Typical video codec coding flow Figure 1 shows three in-loop filtering blocks: the deblocking filter VVC encoder block including (DF), sample adaptive offset (SAO) and ALF An example of a block diagram is shown. Unlike DF (which uses predefined filters), SAO and and ALF use the original samples of the current picture and offset them, respectively. By adding and applying a finite impulse response (FIR) filter Therefore, the original sample is decoded using coding side information that signals the offset and filter coefficients. The ALF reduces the mean square error between the input and the reconstructed samples. Located at the processing stage, it attempts to capture and correct artifacts created in previous stages It can be seen as a tool to
[0031] 2.3 Adaptive loop filter based on shape transformation in JEM Geometry transformation-based adaptation using block-based filter adaptation in JEM A loop filter (GALF) is applied to the luminance component based on the direction and magnitude of the local gradient. Based on this, one of 25 filters is selected for each 2x2 block.
[0032] 2.3.1. Filter Shape In JEM, up to three diamond filter shapes (shown in Figure 2) are selected for the luminance component. Figure 2 shows three GALF filter shapes: 5x5 diamond, 7x7 Diamond, 9x9 diamond (from left to right) showing the filter shape used for the luma component To do this, an index is signaled at the picture level.
[0033] 2.3.1.1. Block Division Each 2x2 block is classified into one of 25 classes. The classification index C is Based on the quantized values of its directionality D and activity A^, it is derived as follows: . C=5D+A^ (1)
[0034] To calculate D and A^, we first use the 1-D Laplacian to find the horizontal, vertical and and calculate the gradients in the two diagonal directions.
[0035]
number
[0036] i and j represent the coordinates of the top left sample of a 2x2 block, and R(i,j) is the coordinate At (i,j) we denote the reconstructed sample.
[0037] Then, set the Dmax and Dmin values of the horizontal and vertical gradients as follows: do.
[0038]
number
[0039]
number
[0040] To derive the value of the directionality D, these values are compared with each other and with two thresholds t1 and t2. Compare.
[0041]
number
[0042] The activity value A is calculated as follows:
[0043]
number
[0044] A is further quantized into the range of 0 to 4, and the quantized value is defined as A^.
[0045] For both chroma components in a picture, no classification method is applied, i.e., a single ALF A set of coefficients is applied to each chroma component.
[0046] 2.3.1.2. Geometric Transformation of Filter Coefficients Before filtering each 2x2 block, the Based on the gradient values, the filter coefficients f(k,l) are rotated or adjusted in the diagonal and vertical directions. This applies geometric transformations such as reversing the direction of the image. The idea is to apply ALF to different blocks, The aim is to make them more similar by aligning their directions.
[0047] Three geometric transformations are introduced, including diagonal, vertical flip, and rotation. Diagonal: f D (k,l)=f(l,k), Vertical flip:f V (k,l)=f(k,Kl-1), (9) Rotation:f R (k,l)=f(Kl-1,k) In this case, K is the size of the filter, 0≦k, l≦K-1 are the coefficient coordinates, and the position ( Position (0,0) is in the top left corner and position (K-1,K-1) is in the bottom right corner. is applied to the filter coefficients f(k,l) based on the gradient value calculated for the lock. The relationship between the transformation and the four gradients in the four directions is summarized in Table 1.
[0048] [Table 1]
[0049] 2.3.1.3. Filter Parameter Signaling In JEM, the GALF filter parameters are set for the first CTU, i.e., Signaled after the slice header and before the SAO parameters of the first CTU. Maximum 2 Five sets of luma filter coefficients can be signaled to reduce bit overhead. To achieve this, filter coefficients of different classifications can be merged. The ALF coefficients can be stored and reused as the GALF coefficients for the current picture. The current picture uses the GALF coefficients stored for the reference picture, and the GALF coefficients A user may choose to bypass this signaling, in which case the user will only need to index to one reference picture. Only the reference picture is notified, and the GALF coefficients of the specified reference picture stored in memory are used for the current Inherited by the picture.
[0050] To support GALF time prediction, a candidate list of GALF filter sets is maintained. At the start of decoding a new sequence, the candidate list is empty. After encoding, the corresponding set of filters may be added to a candidate list. When the filter size reaches the maximum allowed value (i.e., 6 in the current JEM), a new set of filters is ,overwrite the oldest set in the order of decoding, i.e., first-in-first-out (FIFO) rule. To avoid duplication, the candidate list is updated by applying If you do not use temporal prediction, only one set can be added to the list. To support general scalability, there are multiple candidate lists of filter sets, Each candidate list is associated with one time layer. Specifically, the time layer index Each array allocated by (TempIdx) is a sequence of the previous A filter set for the decoded picture may be constructed. For example, the kth array may be k is assigned to be associated with TempIdx equal to contains only filter sets from pictures with k or less. Then, the filter set associated with this picture is used to filter out the same or higher Temp. Updates the array associated with Idx.
[0051] The time prediction of GALF coefficients is performed in an indirect manner to minimize the signaling overhead. For intra-frames, temporal prediction is not available and A set of six fixed filters is assigned to each class. To do this, a flag for each class is signaled and, if necessary, the selected fixed filter instance is updated. Even if you select a fixed filter for a given class, this For a class, we can transmit the coefficients of the adaptive filter f(k,l), in which case the reconstruction The coefficients of the filter applied to the resulting image will be the sum of both sets of coefficients.
[0052] The filtering process of the luminance component can be controlled at the CU level. One flag is signaled to indicate whether it applies to the luminance component of U. For ma components, whether GALF is applied is indicated only at the image level.
[0053] 2.3.1.4. Filtering process On the decoder side, when GALF is enabled for a block, this block Each sample R(i,j) in the block is filtered, resulting in Here, L represents the filter length, and fm, n represents the filter coefficients, and f(k,l) represents the decoded filter coefficients.
[0054]
number
[0055] Alternatively, the filtering process of the adaptive loop filter can be expressed as follows: do.
[0056]
number
[0057] where sample I(x+i,y+j) is the input sample and O(x,y) is the filter. is the filtered output sample (i.e., the filter result), and w(i,j) is the filter coefficient In fact, VTM4.0 uses integer arithmetic for fixed-point precision calculations. It is being implemented.
[0058]
number
[0059] where L is the filter length and w(i,j) are the filter coefficients in fixed-point precision. is.
[0060] 2.4. Nonlinear ALF 2.4.1. Filtering Reformulation Equation (11) can be reformulated as follows without affecting coding efficiency: This can be done.
[0061]
number
[0062] Here, w(i,j) is the same filter coefficient as in equation (11) [however, w(0,0) is equal to 1 in equation (13), but 1-Σ in equation (11) (i,j)≠(0,0) w(i,j) is equal to].
[0063] 2.4.2. Modified Filters Using the filter formula (13) above, we can use a simple clipping function to approximate The neighboring sample value (I(x+i,y+j)) is the fill value of the current sample value (I(x,y)). Easily introduce nonlinearity by reducing the effect if the signal differs too much from the tarring. This makes ALF more efficient.
[0064] In this proposal, the ALF filter is modified as follows:
[0065]
number
[0066] where K(d,b)=min(b,max(-b,d)) is the clipping function , k(i,j) is the clipping parameter, which depends on the (i,j) filter coefficient The encoder performs an optimization to find the best k(i,j).
[0067] For ease of implementation, the filter coefficients w(i,j) are stored and used with integer precision. The formula can be rewritten as follows:
[0068]
number
[0069] where w(k,l) represents the decoded filter coefficients and K(x,y) represents the clipping coefficients. where c(k,l) represents the decoded clipping parameter. and l varies between (-L / 2) and (L / 2), where L represents the filter length. The clipping function K(x,y)=min(y ,max(-y,x))
[0070] In the implementation of JVET-N0242, clipping is performed for each ALF filter. The parameter k(i,j) is specified to signal one clipping value for each filter coefficient. This allows up to 12 signals to be sent in the bitstream per luma filter. can signal clipping values, and up to 6 clippings for the chroma filters. This means that the mapping value can be signaled.
[0071] To limit the signaling cost and encoder complexity, the clipping value is estimated as , limiting it to a small set of possible values. Use only the same four fixed values for each group.
[0072] The variance of local differences is often larger for luma than for chroma, so the luma fraction Two different sets of filters are used: chromatic and chromic. Each set has a maximum sample rate of 1000 s. value (here 1024 for a 10-bit bit depth) and if not required, You can disable ripping.
[0073] The set of clipping values used in the JVET-N0242 study is shown in Table 2. Four values is the full range of sample values (encoded on 10 bits) for luminance in the logarithmic domain. The range of 4 to 1024 for color and chroma is selected almost equally.
[0074] More precisely, the luminance table of clipping values was obtained by the following formula:
[0075]
number
[0076] Similarly, the chroma table of clipping values is obtained according to the following formula:
[0077]
number
[0078] [Table 2]
[0079] The selected clipping value is the value corresponding to the index of the clipping value in Table 2 above. The ROM encoding is used to encode the "alf_data" syntax element. The formula is the same as the encoding scheme for the filter index.
[0080] 2.5. Virtual Boundaries Picture-based processing in hardware and embedded software is highly Due to the large picture buffer requirement, this is not practically acceptable. Using an off-chip picture buffer is very expensive and requires external memory access. This significantly increases access, power consumption, and data access latency. In production, DF, SAO, and ALF have been changed from image-based decoding to LCU-based decoding. When using LCU-based processing for DF, SAO, and ALF, multiple L To process CUs in parallel, the LCU pipeline method is used to perform raster scans on each LCU. In this case, the upper and lower LCUs are used to process one LCU row. Since we need pixels from the LCU row, we need the line A buffer is required. If an off-chip line buffer (e.g., DRAM) is used, ,The bandwidth and power consumption of external memory increases, and on-chip line buffers (e.g., S Therefore, the line buffer is already a picture buffer. Although much smaller than the line buffer, it is still desirable to reduce the line buffer. .
[0081] In VTM-4.0, the total number of line buffers required for the luminance component is as shown in Figure 3. is 11.25 lines. The line buffer requirements are explained below. Deblocking of horizontal edges overlapping with the edge is determined and filtered using the first C Lines K, L, M, M from the TU and lines O, P from the lowest CTU are required. Therefore, deblocking of horizontal edges that overlap the CTU boundary is , is postponed until the lower CTU arrives. Therefore, for lines K, L, M, and N, the reconstructed The obtained luminance samples must be stored in a line buffer (4 lines). SAO filtering can be performed on lines A to J. Line J is the SAO filter. This means that the sample in line K is changed by deblocking. In the case of SAO filtering on line K, edge offset classification is performed. The settings are stored in the line buffer only (this is a 0.25 luminance line). Filtering can only be performed on lines A to F. As shown in FIG. Each 4x4 block is classified into an 8x8 activity window. This activity window is used to calculate the 1D Laplacian and determine the gradient. Requires a 9x9 window.
[0082] Therefore, for the block classification of the 4x4 block overlapping with lines G, H, I, and J, J is , we need SAO filtered samples below the virtual boundary. Furthermore, ALF For classification, the SAO filtered samples of lines D, E, and F are needed. Furthermore, the ALF filtering on line G is achieved by adding three SAO filters from the upper line. Therefore, the total line buffer requirement is: It is. - Line KN (Horizontal DF pixels): 4 lines - Line DJ (SAO filtered pixels): 7 lines - SAO edge offset classifier value between line J and line K: 0.25 lines
[0083] Therefore, the total number of luminance lines required is 7+4+0.25=11.25.
[0084] Similarly, the line buffer requirements for the chroma components are illustrated in Figure 4. The line buffer requirement is estimated to be 6.25 lines.
[0085] To eliminate the line buffer requirement for SAO and ALF, recent VVCs The concept of virtual boundary (VB) is introduced. As shown in Figure 3, VB is the horizontal LCU boundary. For each LCU, the SAO and A LF can process pixels above VB before the lower LCU arrives, but Until the LCU comes, the pixels below VB cannot be processed, which is Considering the hardware implementation cost, we proposed a method to minimize the gap between the VB and the horizontal LCU boundary. The space between the two pixels is divided into four pixels for luminance (i.e., N=4 in Fig. 3) and two pixels for chroma (i.e., That is, N=2 in FIG.
[0086] 2.5.1. Modified ALF Block Classification when VB Size N is 4 Figures 5A and 5B show the case where the virtual boundary is on four lines of the CTU boundary (N=4). Figure 5A shows the classification of a 4x4 block starting at line G. 5A shows the classification of the 4x4 block starting at line K, and FIG. 5B shows the classification of the 4x4 block starting at line K. For a 4x4 block starting at line G, block classification uses only lines E to J. However, the Laplacian gradient calculation for the samples belonging to line J is performed by another Laplacian below. In (line K), so line K is padded with line J.
[0087] Similarly, for a 4x4 block starting at line K, as shown in Figure 5B, the block classification uses only lines K to P. However, the Laplacian gradient of the samples belonging to line K The calculation requires another line above (line J). Therefore, line J is It is padded with K.
[0088] 2.5.2. Double-sided padding for samples that straddle a virtual boundary As shown in Figures 6A-6C, the truncated version of the filter reduces the lines close to the virtual boundary. It is used to filter the luminance samples belonging to the virtual boundary ( VB) (per side) and one required line to be padded above / below. 6B shows the two required lines to be padded (per side) above / below VB. However, Figure 6C shows the three required lines to be padded (per edge) above / below VB. In Figures 6A to 6C, VB is represented by a gray line. For example, when filtering the line M shown in Figure 3, i.e., the 7x7 diamond support When the central sample is on line M, it is necessary to approach one line above VB. In this case, the sample above VB is copied from the bottom - right sample below VB. For example, the solid - line P0 sample is copied to the position of the upper dashed line. Symmetrically, the solid - line P3 sample is also copied to the position of the bottom - right dashed line even if a sample for that position is available. The copied samples are only used for the luminance filtering process.
[0089] The padding method used for the ALF virtual boundary is also well - known as "two - sided padding". When padding one sample located at (i,j) (for example, P0A with a dotted line in FIG. 6B), as shown in FIGS. 6A - 6C and FIGS. 7A - 7C, the corresponding sample located at (m,n) sharing the same filter coefficients (for example, P3 B with a dotted line in FIG. 6C) also performs padding even if a sample is available. Similarly, as shown in FIGS. 7A - 7C, the two - sided padding method is also used for chroma ALF filtering. FIG. 7A shows
[0090] the need to pad one necessary line above / below the virtual boundary (VB) (one side), and FIG. 7B shows the need to pad two necessary lines above / below VB (one side). In FIGS. 7A and 7B, VB is represented by a gray line. FIG. 7B shows the need to pad two necessary lines above / below VB (one side). In FIGS. 7A and 7B, VB is represented by a gray line. In FIGS. 7A and 7B, VB is represented by a gray line.
[0091] <00007The process involves modifying the filter coefficients (also known as modified-coeff based ALF , MALF). For example, the sample in line L / I When filtering, the filter coefficient c5 is modified to c5', and in this case, 8 copies the luminance samples from the solid line P0A to the dashed line P0A and from the solid line P3B to the dashed line P3B. In this case, double padding and MALF are not required. Assuming the current sample is located at (x,y), it produces the same result.
[0092]
number
[0093] Because, due to padding, K(d,b)=d and I(x-1,y-1)=I Because (x-1, y-2).
[0094] However, when nonlinear ALF is enabled, MALF and double-sided padding This can produce different filtering results because the nonlinear parameters are: For example, for filter coefficients c5 and c1, there is a clipping This is because the parameters are different.
number
[0095] 2.6. Shape transformation based adaptive loop filter in VVC The current design of GALF in VVC has the following major differences compared to the design in JEM: There are significant changes. 1) Adaptive filter shapes are eliminated. Only 7x7 filter shapes are allowed for the luminance component. Only 5x5 filter shapes are allowed for the chrominance components. 2) The ALF filter coefficients are determined by the ALF Adaptation parameter set (ALF Adaptation This is signaled in the APS (Asynchronous Parameter Set). 3) A nonlinear ALF may be applied. 4) For each CTU, one bit flag per color component indicates whether ALF is enabled or disabled. The user is signaled whether or not to 5) Class index calculation is done at a 4x4 level instead of a 2x2 level. As proposed in JVET-L0147, subsampled data for ALF classification The Laplacian calculation method used is the Laplacian calculation method for each sample in a block. There is no need to calculate horizontal / vertical / 45 diagonal / 135 degree gradients. Instead, you can calculate 1:2 Subsampling is used.
[0096] 2.7. Signaling ALF parameters in the adaptation parameter set In the latest version of the VVC draft, the ALF parameters are defined as the adaptive parameter set (A Adaptation Parameter Set (APS) Each APS may have up to 25 pairs of Luminance filter coefficients and clipping value indexes, as well as up to eight pairs of chroma filters The data coefficient and clipping value index can be signaled. To reduce the headroom, the filter coefficients of different classifications of luminance components can be merged. In the slice header, the index of the APS used for the current slice is signaled. You will be notified.
[0097] The filter coefficients are quantized with a norm equal to 128 to reduce the complexity of multiplications. , coefficient value of non-central locations is -2 7 ~2 7 -1 to be included in the bitstream Conformance applies. The center position coefficient is not signaled in the bitstream and is 128 is considered to be equal to
[0098] The detailed signal transduction of ALF (JVET-P2001-v9) is as follows:
[0099] [Table 3]
[0100] [Table 4]
[0101] 7.4.3.5 Adaptation Parameter Set Semantics Each APS RBSP must be available to the decoding process before it is referenced or TemporalId of the coded slice NAL unit to be coded. or provided through external means. It shall be. Let aspLayerId be the nuh_layer_id of the APS NAL unit. The layer with nuh_layer_id equal to aspLayerId is an independent layer. (i.e., vps_independent_layer_flag[GeneralL If ayerIdx[aspLayerId]]) is equal to 1, set APS RBSP The APS NAL unit containing the coding slice NAL unit that references it It shall have nuh_lay_id equal to nuh_layer_id. In this case, the APS NAL unit containing the APS RBSP is A codec that is equal to or refers to the nuh_layer_id of the source NAL unit. nuh_layer_i of the direct dependent layers of the layer containing the feeding slice NAL unit d. Within the access unit, adaptation_parameter_set_id All APS with a specific value of NA and a specific value of aps_params_type The L units have the same content. The adaptation_parameter_set_id is the set that other syntax elements refer to. Provides the identifier of the APS. aps_params_type equals ALF_APS or SCALING_APS If necessary, the value of adaptation_parameter_set_id must be in the range of 0 to 7. The scope of the scope of the If aps_params_type is equal to LMCS_APS, then adaptati The value of on_parameter_set_id shall be in the range of 0 to 3. aps_params_type is implemented in APS as shown in Table 3. Specifies the type of APS parameters to be used. aps_params_type is 1 (LMC S_APS), adaptation_parameter_set_id The value must be in the range 0 to 3.
[0102] [Table 5]
[0103] NOTE 1 - Each type of APS has its own adaptation_parameter_set_i Use a separate value space for d. NOTE 2 - APS NAL unit (adaption_parameter_set_i d and aps_params_type) between pictures Different slices in a picture can be shared and refer to different ALF APS. It is possible. If aps_extension_flag=0, the APS RBSP syntax structure includes Indicates that the s_extension_data_flag syntax element is not present. If _extension_flag=1, aps_ex is added to the APS RBSP syntax structure. Indicates the presence of the tension_data_flag syntax element. aps_extension_data_flag can have any value. Its presence and value determine the decoder's conformance to the features specified in this specification version. Decoders conforming to this specification version will not affect all aps_ext The tension_data_flag syntax element MUST be ignored.
[0104] 7.4.3.14 Adaptive Loop Filter Data Semantics alf_luma_filter_signal_flag=1 is the luminance filter set alf_luma_filter_signal_fl Indicates that the filter is signaled. ag=0 indicates that no luminance filter set is signaled. If alf_chroma_filter_signal_flag is equal to 1, Indicates that a chroma filter is signaled. If gnal_flag is equal to 0, it indicates that the chroma filter is not signaled. If ChromaArrayType is equal to 0, alf_chroma_filte r_signal_flag is equal to 0. The variable NumAlfFilters, which specifies the number of different adaptive loop filters, is set to 25. It is determined. alf_luma_clip_flag=0 means that linear adaptive loop filtering is applied to the luminance alf_luma_clip_flag=1 specifies that the It is provided that shape adaptive loop filtering can be applied to the luminance component. alf_luma_num_filters_signalled_minus1 Class 1 defines the number of adaptive loop filter classes that can signal the luminance coefficients. alf_luma_num_filters_signalled_minus1 value is in the range of 0 to NumAlfFilters-1. alf_luma_coeff_delta_idx[filtIdx] is filt The range from 0 to NumAlfFilters-1 for the filter class indicated by Idx. Specifies the index of the signaled adaptive loop filter brightness coefficient delta over a range alf_luma_coeff_delta_idx[filtIdx] does not exist. If not, it is inferred to be 0. The length of dx[filtIdx] is Ceil(Log2(alf_luma_num_f filters_signalled_minus1+1) bits. alf_luma_coeff_signalled_flag equal to 1 indicates that alf_luma_coeff_flag[sfIdx] is signaled. alf_luma_coeff_signalled_flag equal to 0 indicates that alf_luma_coeff_flag[sfIdx] is not signaled. alf_luma_coeff_flag[sfIdx]=1 indicates alf_luma_coeff Specifies that the coefficient of the luminance filter to be signaled. _flag[sfIdx]=0 means that all filters of the luminance filter indicated by sfIdx are If not present, alf_luma_coeff_flag is set to 0. [sfIdx] is set equal to 1. alf_luma_coeff_abs[sfIdx][j] is the value indicated by sfIdx. alf_luma_coeff Specifies the absolute value of the j-th coefficient of the signal luminance filter. If _abs[sfIdx][j] is not present, it is inferred to be equal to 0. The order k of the exp-Golomb binarization uek(v) is set equal to 3. alf_luma_coeff_sign[sfIdx][j] is the value indicated by sfIdx The sign of the j-th intensity coefficient of the filter is defined as follows: - if alf_luma_coeff_sign[sfIdx][j] is equal to 0 , the corresponding luminance filter coefficients have positive values. - otherwise (alf_luma_coeff_sign[sfIdx][j] =1), the corresponding luminance filter coefficients have negative values. If alf_luma_coeff_sign[sfIdx][j] does not exist, is inferred to be equal to 0. sfIdx=0..alf_luma_num_filters_signalled The variable filtCoeff[sfIdx][j] for _minus1,j=0..11 is It is initialized as follows. filtCoeff[sfIdx][j]=alf_luma_coeff_abs[ sfIdx][j]*(1-2 * alf_luma_coeff_sign[sfI dx][j]) (7-47) Element AlfCoeff L [adaptation_parameter_set_id luminance filter coefficient AlfCoeff with ][filtIdx][j] L [adapt ation_parameter_set_id], (where filtIdx=0..N umAlfFilters-1, j=0..11) is derived as follows: AlfCoeff L [adaptation_parameter_set_id][ filtIdx][j]=filtCoeff[alf_luma_coeff_del ta_idx[filtIdx]][j] (7-48) Fixed filter coefficient AlfFixFiltCoeff[i][j] (where i=0..64 , j=0..11), and AlfClassToFiltMap[m][n] (where The filter mapping class for m=0..15, n=0..24 is derived as follows: It is served.
[0105] AlfFixFiltCoeff= { {0,0,2,-3,1,-4,1,7,-1,1,-1,5} {0,0,0,0,0,-1,0,1,0,0,-1,2} {0,0,0,0,0,0,0,1,0,0,0,0} {0,0,0,0,0,0,0,0,0,0,0,-1,1} {2,2,-7,-3,0,-5,13,22,12,-3,-3,17} {-1,0,6,-8,1,-5,1,23,0,2,-5,10} {0,0,-1,-1,0,-1,2,1,0,0,-1,4} {0,0,3,-11,1,0,-1,35,5,2,-9,9} {0,0,8,-8,-2,-7,4,4,2,1,-1,25} {0,0,1,-1,0,-3,1,3,-1,1,-1,3} {0,0,3,-3,0,-6,5,-1,2,1,-4,21} {-7,1,5,4,-3,5,11,13,12,-8,11,12} {-5,-3,6,-2,-3,8,14,15,2,-7,11,16} {2,-1,-6,-5,-2,-2,20,14,-4,0,-3,25} {3,1,-8,-4,0,-8,22,5,-3,2,-10,29} {2,1,-7,-1,2,-11,23,-5,0,2,-10,29} {-6,-3,8,9,-4,8,9,7,14,-2,8,9} {2,1,-4,-7,0,-8,17,22,1,-1,-4,23} {3,0,-5,-7,0,-7,15,18,-5,0,-5,27} {2,0,0,-7,1,-10,13,13,-4,2,-7,24} {3,3,-13,4,-2,-5,9,21,25,-2,-3,12} {-5,-2,7,-3,-7,9,8,9,16,-2,15,12} {0,-1,0,-7,-5,4,11,11,8,-6,12,21} {3,-2,-3,-8,-4,-1,16,15,-2,-3,3,26} {2,1,-5,-4,-1,-8,16,4,-2,1,-7,33} {2,1,-4,-2,1,-10,17,-2,0,2,-11,33} {1,-2,7,-15,-16,10,8,8,20,11,14,11} {2,2,3,-13,-13,4,8,12,2,-3,16,24} {1,4,0,-7,-8,-4,9,9,-2,-2,8,29} {1,1,2,-4,-1,-6,6,3,-1,-1,-3,30} {-7,3,2,10,-2,3,7,11,19,-7,8,10} {0,-2,-5,-3,-2,4,20,15,-1,-3,-1,22} {3,-1,-8,-4,-1,-4,22,8,-4,2,-8,28} {0,3,-14,3,0,1,19,17,8,-3,-7,20} {0,2,-1,-8,3,-6,5,21,1,1,-9,13} {-4,-2,8,20,-2,2,3,5,21,4,6,1} {2,-2,-3,-9,-4,2,14,16,3,-6,8,24} {2,1,5,-16,-7,2,3,11,15,-3,11,22} {1,2,3,-11,-2,-5,4,8,9,-3,-2,26} {0,-1,10,-9,-1,-8,2,3,4,0,0,29} {1,2,0,-5,1,-9,9,3,0,1,-7,20} {-2,8,-6,-4,3,-9,-8,45,14,2,-13,7} {1,-1,16,-19,-8,-4,-3,2,19,0,4,30} {1,1,-3,0,2,-11,15,-5,1,2,-9,24} {0,1,-2,0,1,-4,4,0,0,1,-4,7} {0,1,2,-5,1,-6,4,10,-2,1,-4,10} {3,0,-3,-6,-2,-6,14,8,-1,-1,-3,31} {0,1,0,-2,1,-6,5,1,0,1,-5,13} {3,1,9,-19,-21,9,7,6,13,5,15,21} {2,4,3,-12,-13,1,7,8,3,0,12,26} {3,1,-8,-2,0,-6,18,2,-2,3,-10,23} {1,1,-4,-1,1,-5,8,1,-1,2,-5,10} {0,1,-1,0,0,-2,2,0,0,1,-2,3} {1,1,-2,-7,1,-7,14,18,0,0,-7,21} {0,1,0,-2,0,-7,8,1,-2,0,-3,24} {0,1,1,-2,2,-10,10,0,-2,1,-7,23} {0,2,2,-11,2,-4,-3,39,7,1,-10,9} {1,0,13,-16,-5,-6,-1,8,6,0,6,29} {1,3,1,-6,-4,-7,9,6,-3,-2,3,33} {4,0,-17,-1,-1,5,26,8,-2,3,-15,30} {0,1,-2,0,2,-8,12,-6,1,1,-6,16} {0,0,0,-1,1,-4,4,0,0,0,-3,11} {0,1,2,-8,2,-6,5,15,0,2,-7,9} {1,-1,12,-15,-7,-2,3,6,6,-1,7,30} }, (7-49)
[0106] AlfClassToFiltMap= { {8,2,2,2,3,4,53,9,9,52,4,4,5,9,2,8,10,9, 1,3,39,39,10,9,52} {11,12,13,14,15,30,11,17,18,19,16,20,20, 4,53,21,22,23,14,25,26,26,27,28,10} {16,12,31,32,14,16,30,33,53,34,35,16,20, 4,7,16,21,36,18,19,21,26,37,38,39} {35,11,13,14,43,35,16,4,34,62,35,35,30,5 6,7,35,21,38,24,40,16,21,48,57,39} {11,31,32,43,44,16,4,17,34,45,30,20,20,7 ,5,21,22,46,40,47,26,48,63,58,10} {12,13,50,51,52,11,17,53,45,9,30,4,53,19 ,0,22,23,25,43,44,37,27,28,10,55} {30,33,62,51,44,20,41,56,34,45,20,41,41, 56,5,30,56,38,40,47,11,37,42,57,8} {35,11,23,32,14,35,20,4,17,18,21,20,20,2 0,4,16,21,36,46,25,41,26,48,49,58} {12,31,59,59,3,33,33,59,59,52,4,33,17,59 ,55,22,36,59,59,60,22,36,59,25,55} {31,25,15,60,60,22,17,19,55,55,20,20,53, 19,55,22,46,25,43,60,37,28,10,55,52} {12,31,32,50,51,11,33,53,19,45,16,4,4,53 ,5,22,36,18,25,43,26,27,27,28,10} {5,2,44,52,3,4,53,45,9,3,4,56,5,0,2,5,10 ,47,52,3,63,39,10,9,52} {12,34,44,44,3,56,56,62,45,9,56,56,7,5,0 ,22,38,40,47,52,48,57,39,10,9} {35,11,23,14,51,35,20,41,56,62,16,20,41, 56,7,16,21,38,24,40,26,26,42,57,39} {33,34,51,51,52,41,41,34,62,0,41,41,56,7 ,5,56,38,38,40,44,37,42,57,39,10} {16,31,32,15,60,30,4,17,19,25,22,20,4,53 ,19,21,22,46,25,55,26,48,63,58,55} }, (7-50)
[0107] AlfCoeff L [adaptation_parameter_set_id][ filtIdx][j] (where filtIdx=0..NumAlfFilters-1 ,j=0..11) has a value of -2 7 ~2 7 -1 range means that the bitstream It is a conformance requirement. alf_luma_clip_idx[sfIdx][j] is the signal indicated by sfIdx The clipping value used before multiplying the j-th coefficient of the notified luminance filter. alf_luma_clip_idx[sfIdx][j ](where sfIdx=0..alf_luma_num_filters_signal The value of (led_minus1 and j=0..11) must be in the range 0 to 3. Stream conformance requirements. Luminance filter clipping value AlfClip L[adaptation_parame ter_set_id] (However, element AlfClip L [adaptation_para meter_set_id][filtIdx][j], where filtIdx=0.. NumAlfFilters-1 and j=0..11) are BitDepth Y Equal to The bitDepth and alf_luma_clip_idx are set to Set equal to _luma_coeff_delta_idx[filtIdx]][j] The value is derived as specified in Table 4 depending on the clipIdx being used. alf_chroma_num_alt_filters_minus1 plus 1 is Specifies the number of alternative filters for the chroma components. alf_chroma_clip_flag[altIdx]=0 is the index a When using a chroma filter with ltIdx, a linear adaptation loop is applied to the chroma components. Specifies that filtering is applied, and alf_chroma_clip_flag[ altIdx]=1 when using the chroma filter with index altIdx. If so, it specifies that nonlinear adaptive loop filtering be applied to the chroma components. If not present, alf_chroma_clip_flag[altIdx] is equal to 0. It is inferred that alf_chroma_coeff_abs[altIdx][j] is the index Absolute value of the jth chroma filter coefficient for the alternative chroma filter with altIdx alf_chroma_coeff_abs[altIdx][j] exists. If not, it is inferred to be equal to 0. The value of s[altIdx][j] is 0 to 2 7 -1 (inclusive) This is a requirement for stream compatibility. The order k of the exp-Golomb binarization uek(v) is set equal to 3. alf_chroma_coeff_sign[altIdx][j] is the index The sign of the j-th chroma filter coefficient of the alternative chroma filter with the value altIdx is given by It is specified as follows. - alf_chroma_coeff_sign[altIdx][j] is equal to 0 If not, the corresponding chroma filter coefficient has a positive value. - otherwise (alf_chroma_coeff_sign[altIdx] [j]=1), the corresponding chroma filter coefficients have negative values. If alf_chroma_coeff_sign[altIdx][j] does not exist, If it is, it is inferred to be equal to 0. AlfCoeff C [adaptation_parameter_set_id][ Chroma filter coefficient AlfCoeff with elements altIdx][j] C [adapt ation_parameter_set_id][altIdx](where altIdx =0..alf_chroma_num_alt_filters_minus1,j= 0..5) is derived as follows: AlfCoeff C [adaptation_parameter_set_id][ altIdx][j]=alf_chroma_coeff_abs[altIdx][ j]*(1-2*alf_chroma_coeff_sign[altIdx][j] ) (7-51) AlfCoeff C [adaptation_parameter_set_id][ altIdx][j] value (where altIdx=0..alf_chroma_num _alt_filters_minus1,j=0..5) is -2 7 -1~2 7 -1 standard Being within the range is a requirement for bitstream compatibility. alf_chroma_clip_idx[altIdx][j] is the index a Clipping used before multiplying the j-th coefficient of the alternative chroma filter with ltIdx. alf_chroma_clip_idx Specifies the clipping index for the color value. [altIdx][j] value (where altIdx=0..alf_chroma_nu m_alt_filters_minus1,j=0..5) is in the range 0 to 3 It is a requirement for bitstream conformance. Element AlfClip C [adaptation_parameter_set_id] Chroma filter clipping value AlfClip with [altIdx][j] C [ad aptation_parameter_set_id][altIdx] (where al tIdx=0..alf_chroma_num_alt_filters_minus 1,j=0..5) is the BitDepth C bitDepth and and set equal to alf_chroma_clip_idx[altIdx][j] The value is derived as specified in Table 4, depending on the clipIdx specified in the
[0108] [Table 6]
[0109] 2.8. Signaling of ALF parameters for CTU In VTM6, the ALF filter parameters are stored in an adaptive parameter set (APS). Up to 25 sets of luminance filter coefficients and criteria can be signaled in one APS. Clipping value index, and up to 8 pairs of chroma filter coefficients and clipping values To reduce bit overhead, the index can be signaled. Filter coefficients of different classes of magnitude components can be merged. , the index of the APS used for the current slice is signaled.
[0110] The clipping value index decoded from the APS is used to find the luminance table of clipping values. Luma table and Chroma table of clipping values These clipping values can then be determined using The mapping value depends on the internal bit depth.
[0111] In the slice header, specify the set of luma filters to be used for the current slice. Up to seven APS indexes can be signaled, as shown in Figure 1. may be further controlled at the CTB level. Whether ALF is applied to the luminance CTB or not. One flag is always signaled to indicate the brightness. One brightness CTB consists of 16 fixed flags. Select one filter set from the filter sets and use one filter set from multiple APSs. You can select which filter set is applied. The filter set index is signaled for TB. In both, a set of 16 fixed filters is predefined and hard-coded.
[0112] For chroma components, it indicates the set of chroma filters used for the current slice. , signal the APS index in the slice header. At the CTB level, the APS If there are multiple chroma filter sets in the chroma CTB, a filter index is assigned to each chroma CTB. Signals a box.
[0113] Specifically, the following applies:
[0114] To indicate whether at least one CTU in a slice applies ALF, first Encodes the slice on / off control flag. If true, for each CTU, check Check and signal in turn.
[0115] Bold underlined text indicates proposed changes to an existing standard.
[0116] Regarding the luminance part: 1. Whether the ALF applies to the Luminance CTB. If yes, go to step 2. If not, no further signaling is required. 2. Check the number of ALF APS used by the current slice and set it to num Expressed in ALFAPS. 3. If numALFAPS is equal to 0, the index of the fixed filter (e.g., a lf_luma_fixed_filter_idx) is signaled. If so, the following applies: - A flag to indicate whether it is predicted from the first ALF APS. Signal notification. - If not, go to step 4. Otherwise, A for Luminance CTB The signaling of the LF parameter is turned off. 4. If numALFAPS is greater than 1, it is predicted from ALF APS. Signals a flag to indicate whether the - If not, signal the index of the fixed filter. - If it is larger, and numALFAPS is greater than 2, the ALF APS Subtract 1 from the index and round it down to the nearest unary signal.
[0117] Regarding chroma: 1. Whether ALF applies to Cb / Cr CTB. If yes, step 2 If not, no further signaling is required. 2. Signal the index of the filter associated with the i-th ALF APS. Here, the APS index is signaled in the slice header.
[0118] [Table 7]
[0119] 2.9. Cross-component adaptive loop filter (CC_ALF) The cross-component adaptive loop filter (CC-ALF) uses the luminance sample values to CC-ALF basically adjusts the brightness level when CC-ALF is applied. It performs per-chroma sample correction by filtering the samples. This tool is applied as a filter step by filtering the information in the bitstream. This information is used to determine (a) the filter coefficients for each chroma component and (b) the sample block. and a mask that controls the application of the filter for the lock.
[0120] Figure 10A below shows the placement of CC-ALF relative to the other loop filters. LF applies a linear diamond filter (shown in Figure 10B) to the luminance channel for each chroma component. It works by doing the following and is expressed as follows:
[0121]
number
[0122] The CC-ALF process is further described in JVET-O0636. Key features include: Below is included. ● Based on the spatial scaling between the luminance and chrominance planes, the center of the support region is The luminance position (x C ,y C ) is calculated. ● All filter coefficients are transmitted in APS and have 8-bit dynamic range. . ● APS may be referenced in the slice header. ● The CC-ALF coefficients used for each chroma component of a slice are also The reuse of these temporal sub-layer filter coefficient sets is This is facilitated by using the slice level flags. ● The application of the CC-ALF filter is controlled by a variable block size, and the block size of the sample The block size is signaled by the context coding flag received for each block. is received at the slice level for each chroma component along with the CC-ALF enable flag. ● Border padding for horizontal virtual borders uses repetition. It uses the same type of padding as regular ALF.
[0123] 2.9.1. Further simplification of CC-ALF in JVET-P1008 Compared to JVET-P0080, in order to simplify the design of CC-ALF, the following Propose a new approach. - Complexity reduction As shown in Figure 11, the filter shape is changed to a 3x4 diamond shape, and the filter operation Reduces the multiplier. o Limit dynamic range of CC-ALF coefficients to 6 bits o Allows sharing of chroma ALF and multiplier. - Alignment with ALF o Restrict filter selection to signaling at CTU level o Temporal layer coefficient buffer removal o Use of symmetry line selection in ALF virtual boundary
[0124] Also, because the simplification reduces coding efficiency, up to four filters per chroma component are used. is limited to be applicable.
[0125] 2.9.1.1. CC-ALF Syntax and Semantics Bold underlined text indicates proposed changes to an existing standard.
[0126] [Table 8] [Table 9] [Table 10]
[0127] [Table 11] [Table 12]
[0128] [Table 13]
[0129] alf_ctb_cross_component_cb_idc[xCtb>>Ct alf_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY] equal to 0 indicates that a cross-component Cb filter is not applied to the luminance position (xCtb,yCtb) of the block of Cb color component samples. alf_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY] not equal to 0 indicates that alf_cross_component_cb_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]-th cross-component Cb filter is applied to the luminance position (xCtb,yCtb) of the block of Cb color component samples. alf_ctb_cross_component_cr_idc[xCtb>>Ct If alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY] is not equal to 0, it indicates that the cross-component Cr filter is applied to the luma location (xCtb,yCtb) of the block of Cr color component samples. If alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY] is not equal to 0, it indicates that the alf_cross_component_cr_idc[xCtb>>CtbLog2SizeY][yCtb>>CtbLog2SizeY]-th cross-component Cr filter is applied to the luma location (xCtb,yCtb) of the block of Cr color component samples.
[0130] 2.10. Picture, Subpicture, Slice, Tile, and CTU Division 2.10.1. Dividing a Picture into Subpictures, Slices, and Tiles This section describes how to divide a picture into subpictures, slices, and tiles. This specifies whether
[0131] A picture is divided into one or more tile rows and one or more tile columns. A tile is a sequence of CTUs covering a rectangular area of an image. The CTUs in a tile are scanned in raster scan order within that tile.
[0132] A slice is an integer number of complete tiles or It consists of an integer number of consecutive complete CTU rows.
[0133] Two modes of slicing: raster scan slicing mode and rectangular slicing mode. In raster scan slice mode, one slice is one A tile in a picture contains one complete sequence of tiles in a raster scan. In the shape slice mode, a slice collectively forms a rectangular region of the picture. Multiple complete tiles, or multiple portions of a single tile that collectively form a rectangular area of the picture A rectangular slice contains any complete, contiguous CTU row. The tiles are scanned in the order of raster scan within the rectangular area corresponding to the tile.
[0134] A subpicture is one or more slices that collectively cover a rectangular area of a picture. Includes.
[0135] FIG. 12 shows an example of raster scan slice division of a picture, where the picture is divided into 12 slices. It is divided into tiles and three raster scan slices.
[0136] FIG. 13 shows an example of a rectangular slice division of a picture, where the picture is divided into 24 tiles (6 The image is divided into 9 rectangular slices (4 tile columns and 4 tile rows).
[0137] Figure 14 shows an example of a picture divided into tiles and rectangular slices. The pixel is divided into four tiles (two columns of tiles and two rows of tiles) and four rectangular slices. and is divided into
[0138] Figure 15 shows an example of sub-picture division of a picture, where the picture is divided into 28 sub-pictures of various dimensions. [Ed.(RS): By integrating Figure 15 into Figure 14, This helps explain the consistency of the concept.]
[0139] The picture is coded using three separate color planes (separate_color our_plane_flag is equal to 1), the slice is Contains only the CTU of one color component identified by the corresponding value of ne_id, and Each color component array in consists of slices with the same color_plane_id. Coding slices with different values of color_plane_id in the same image are For each value of color_plane_id, that value of color_plane_id The coded slice NAL units having the first C Under the constraint that the CTU addresses must be in increasing order in tile scan order for the TU, They can be interleaved with each other.
[0140] If separate_colour_plane_flag is equal to 0, the picture Each CTU in is contained in exactly one slice. If plane_flag is equal to 1, each CTU of a color component is mapped to exactly one slice. (i.e., the information for each CTU in a picture is present in exactly three slices) , these three slices have different colour_plane_id values).
[0141] 3. Shortcomings of existing implementations The padding method used for the ALF virtual border is either "double-sided padding" or "mirroring" This may be referred to as "mirrored padding," where (i ,j), as shown in Fig. 6 and Fig. 7, , samples are available, but the corresponding,located at (m,n) shares the same filter coefficients. The samples are also padded.
[0142] Picture boundaries / 360° video virtual boundaries, normal boundaries (e.g. top and bottom boundaries) The padding method used is called "one-sided padding" or "repeated padding". If one sample used is outside the boundary, it is added to the pixel Copied from an available sample inside the channel (e.g., the nearest available sample) .
[0143] The current CC-ALF design has the following problems: 1. The padding method used in CC-ALF is different from the padding used in nonlinear ALF. are not fully aligned with the current methodology. 2. The CC-ALF on / off control is at the CTB level, i.e., when it is enabled If all chroma samples in the CTB correspond to one chroma sample, modified by adding an offset derived from the filtered luma sample It shall be. 3. For each chroma sample with both CC-ALF and Chroma-ALF applied, three steps (Chroma ALF filtering, CC-ALF offset derivation, and final chroma At least three clips from the chroma filter sample (fine-tuning the chroma filter sample to derive the sample) Ping calculation is required. Specifically, the following three stages are explained. a. Clipping filtered chroma samples in chroma ALF processing That is, sum chromaALF =curr+(sum chromaALF +64)>>7) (8-1290) alfPicture[xCtbC+x][yCtbC+y]=Clip3(0,(1 < <BitDepthC)-1,sum chromaALF ) (8-1291) where "curr" represents the chroma sample before it is filtered, and "sum chromaALF " is a chroma ALF filter support for clipped chroma signals. It represents the sum of the sample differences multiplied by the chroma ALF filter coefficients. b. Clip the derived offset (indicated by sum) to a range depending on the luminance bit depth To do so, i.e. sum=Clip3(-(1<<(BitDepthC-1)),(1<<(BitD epthC-1))-1,sum) (8-1292) where "sum" is the CC-ALF filter support for luminance samples. Represents the sum multiplied by the ALF filter coefficients. c. After adding the derived offset to the filtered chroma samples, Clip chroma samples fine-tuned. sum=alfPicture[xCtbC+x][yCtbC+y]+(sum+6 4)>>(7+(BitDepthY-BitDepthC)) (8-1293) ccAlfPicture[xCtbC+x][yCtbC+y]=Clip3(0, (1< <BitDepth C )-1,sum) (8-1294) Here, "alfPicture[xCtbC+x][yCtbC+y]" is chr represents the chroma samples after being filtered by the oma ALF (output of stage a), and "s um" is the CC-ALF filter function applied to the luminance samples in the CC-ALF filter support The output of stage b is the sum of the multiplied numbers, and ccAlfPicture is the final fine-tuning. represents the adjusted chroma samples (output of stage c, final stage). 4. As shown in equation (8-1293), the output of stage b, i.e., the sum of the variables, is 64 It is rounded to an offset equal to (BitDepthY-BitDepthC) If (BitDepthY - BitDepthC) is not equal to 0, the rounding Offset is not optimal.
[0144] 4. Exemplary Techniques and Embodiments The details of the embodiments detailed below are considered examples to illustrate the general concepts. These embodiments should not be interpreted narrowly. The embodiments can be combined in any way.
[0145] In this disclosure, an ALF filter is applied to a given color component using information of the given color component. may represent a filter to be used (e.g., a luminance ALF filter (linear or non-linear) The chroma ALF filter uses the chroma information to apply to the luminance. For example, the Cb chroma ALF filter filters the Cb samples. The Cr chroma ALF filter is used to filter the Cr samples. On the other hand, the CC-ALF filter uses at least one color component that is different from the first color component information. The second color component information may also be used to represent a filter to be applied to the first color component (e.g. , the first color component may be Cb or Cr, and the second color component may be luminance).
[0146] In CC-ALF, the "sample correction" is derived and then processed in the sample before ALF. By adding the "pull" can be derived directly.
[0147] Video units are slice / tile / brick / subpicture / picture / 360 degree virtual It can be a virtual picture (surrounded by a 360 degree virtual boundary) or it can be a multi-sample / picture It may also be other types of image regions, including pixels.
[0148] In the following description, a sample being "at the boundary of a video unit" means that the sample and the video This may mean that the distance to the unit boundary is less than or equal to a threshold. A "line" is a sequence of samples at one and the same horizontal position or one and the same vertical position. The sample may contain multiple samples (i.e., samples from the same row and / or samples from the same column). In one example, the function Abs(x) may be defined as follows:
[0149]
number
[0150] An "ALF processing unit" is a unit bounded by two horizontal and two vertical boundaries. Two horizontal boundaries can be two ALF virtual boundaries or one ALF virtual boundary. Imaginary boundary and one picture boundary (or slice boundary / tile boundary / brick boundary / sub The two vertical boundaries can be One vertical CTU boundary or one vertical CTU boundary and one picture boundary (or slice boundary) boundary / tile boundary / brick boundary / subpicture boundary / 360 degree virtual boundary) An example is shown in Figure 16.
[0151] "Narrow ALF processing unit" means a unit with two horizontal boundaries and two vertical boundaries. Refers to the enclosed unit. One horizontal perimeter is one ALF virtual perimeter or one 360 may contain a virtual boundary of one degree, and other horizontal boundaries may be one slice / brick / tile / sub It may include a picture boundary or one 360 degree virtual boundary or one picture boundary. The vertical boundary can be a CTU boundary, a picture boundary, a 360 degree virtual boundary or a slice / brick / It can be a tile / subpicture boundary, an example is shown in Figure 16.
[0152] In this disclosure, neighboring samples are samples outside the current video unit that contains the current sample. (e.g. outside the current picture / subpicture / tile / slice / brick / CTU) where filtering across such video unit boundaries is not permitted. or the adjacent sample and the current sample are on different sides of the imaginary 360 degree boundary, Marked as "unavailable" when filtering across the 0-degree virtual boundary is not permitted In yet another example, adjacent samples may be in different video units. and the current processing unit (e.g., ALF processing unit or narrow ALF processing unit) If the video is outside the " may be marked.
[0153] Similarly, samples filtered by CC-ALF (e.g., the current CC-ALF luma samples in the design), the sample contains the current chroma sample. If it is located in a different video unit, this sample can also be marked as "unavailable". This can be done. 1. In CC-ALF, the method for padding "unavailable" samples is ALF You can follow the same rules as used for a. In one example, "mirroring padding" is the AL F may be applied for padding of "unavailable" samples at the virtual boundary. b. In one example, "repeated padding" is used to / Tile / Brick / Subpicture / Picture / "Not Available" in 360° Virtual Boundary may be applied to pad the samples of c. In one example, "repeated padding" is the ALF virtual boundary in CC-ALF. May be applied to all boundaries except the boundary. i. Alternatively, "repeat padding" may be applied to all boundaries. ii. Alternatively, "repeat padding" may be applied to all horizontal boundaries. iii. Alternatively, "repeat padding" may be applied to all vertical boundaries. . iv. Alternatively, "mirroring padding" may be applied to all horizontal borders. stomach. v. Alternatively, you may apply "mirroring padding" to all vertical borders. . vi. Alternatively, "mirroring padding" may be applied to all borders. d. In one example, "repetition padding" is implemented by the "ALF processing unit" or C TU, or "narrow ALF processing unit" or "basic ALF processing unit" (defined below) (defined as a single unit) or all of these processing units may be applied to different image domains. . e. How repeated padding is applied determines whether adjacent samples are adjacent sequences with different where the current slice is a raster scan slice and and / or the adjacent slices may be raster scan slices. i. In one example, for samples in a raster scan slice, "Unavailable" may be applied to "ALF Processing Units". The sample in is padded with its nearest sample in the current ALF processing unit. For example, as shown in Figure 17, the left adjacent sample of the current "ALF processing unit" The pull is "unavailable" and its nearest neighbor in the current "ALF processing unit" Pad each "unavailable" sample from the sample. 2. Processing unit (e.g., ALF processing unit or / and narrow ALF processing unit) or / and CTU) unavailable adjacent samples are ALF or / and CC-AL In F, padding may be done in a predefined order as follows: a. If adjacent samples above the processing unit are unavailable, these samples are The top row of knit may be padded. i. Alternatively or additionally, the upper left adjacent sample is the top left sample of the processing unit. May be padded. ii. Alternatively or additionally, the upper right neighboring sample is the right-most sample of the processing unit. It may be padded with b. If the adjacent sample below the processing unit is unavailable, It can be padded. i. Alternatively or additionally, the bottom left adjacent sample is the bottom left sample of the processing unit. May be padded. ii. Alternatively or additionally, the lower right adjacent sample is the lower right most sample of the processing unit. It may be padded with c. If the adjacent sample to the left of the processing unit is unavailable, You can pad it with d. If the adjacent sample to the right of the processing unit is unavailable, the column to the right of the processing unit You can pad it with e. The adjacent sample to the left of the processing unit and the adjacent sample above are available. ,If the upper left neighboring sample of a processing unit is unavailable, the upper neighboring sample is used. , the neighboring sample to the top left of the processing unit can be padded. i. Alternatively, use the left neighbor to find the top left neighbor of the processing unit. The rule may be padded. f. The upper left and upper adjacent samples of the processing unit are unavailable, and the left If the adjacent sample on the left side is available, the adjacent sample on the left side is used to process the sample on the left side of the processing unit. The adjacent samples above can be padded. g. The upper left and adjacent samples to the left of the processing unit are unavailable, and the upper If the adjacent sample on the side is available, the upper adjacent sample is used to adjacent samples can be padded. h. The adjacent samples to the right and below the processing unit are available and ready for processing. If the neighboring sample to the right of the processing unit is unavailable, the neighboring sample below is used for processing. The adjacent sample to the bottom right of the logical unit can be padded. i. Alternatively, use the adjacent sample on the right to access the adjacent sample on the bottom right of the processing unit. You can pad the rule. i. The adjacent samples to the right and below the processing unit are unavailable, and the If the adjacent sample on the right side is available, the adjacent sample on the right side is used to Adjacent samples can be padded. j. If the adjacent samples below and to the right of the processing unit are unavailable and If the adjacent sample on the side is available, the adjacent sample on the bottom is used to process the right of the processing unit. The adjacent samples below can be padded. k. If the adjacent samples to the upper right and right of the processing unit are unavailable and the If the adjacent sample on the side is available, the upper adjacent sample is used to adjacent samples can be padded. l. The upper right and upper adjacent samples of the processing unit are unavailable, and the right If the adjacent sample on the right side is available, the adjacent sample on the right side is used to process the right side of the processing unit. The adjacent samples above can be padded. m. The adjacent sample below and to the left of the processing unit is unavailable and the If the adjacent sample on the left side is available, the adjacent sample on the bottom side is used to The adjacent samples below can be padded. n. The adjacent samples to the left and below the processing unit are unavailable and the If the adjacent sample on the left side is available, the adjacent sample on the left side is used to process the sample on the left side of the processing unit. The adjacent samples below can be padded. o. A processing unit is N of CTUs represented by ctuUp (N is an integer, e.g., N=4) rows and the CtbSize of the CTU represented by ctuDown under ctuUp - M (M is an integer, e.g., M=N) rows. When checking whether a pull is available, the relationship between the adjacent sample and ctuDown is It may be considered. i. In one example, the adjacent sample is in a different video unit than ctuDown. (e.g. adjacent samples and ctuDown are in different bricks / tiles / slices / subpictures, or they are on different sides of the 360-degree imaginary boundary), If such cross-video-unit filtering is not allowed, adjacent samples will be marked as "unavailable." It is considered "acceptable." ii. Alternatively, to check the availability of adjacent samples, The relationship with tuUp may also be considered. 3. "Unavailable" samples in raster scan slices are handled by CC-ALF or / and and may be padded in a predefined order in ALF. in a slice of. In one example, the upper CTU and the left CTU are in the same slice as the current slice. If the upper left CTU is in a different slice than the current slice, The "unavailable" neighboring sample is its nearest neighbor in the CTU above the current CTU. It is padded with samples. An example is shown in Figure 18. i. Alternatively, the "unavailable" adjacent sample in the top left CTU is the current CTU. is padded with its nearest neighboring sample in the left CTU of b. In one example, the lower CTU and the right CTU are in the same slice as the current slice. If the lower right CTU is in a slice different from the current slice, The "unavailable" adjacent sample in the current CTU is its nearest neighbor in the CTU below the current CTU. An example is shown in Figure 18. i. Alternatively, the "unavailable" adjacent sample of the bottom right CTU is located to the right of the current CTU. It is padded with its nearest neighboring samples in the CTU. 4. Processing units (e.g., ALF processing units, or / and narrow ALF processing units) A tile (or CTU) consists of one or more bricks / slices / tiles / subpictures. When a boundary or / and a 360-degree virtual boundary intersect, and such boundary is crossed If filtering is not allowed, multiple processing units (horizontal and / or vertical) It may be split (directly). a. Alternatively, or in addition, the division process may be performed by a processing unit on any brick / slice / task. Picture / Subpicture Boundaries or / and 360° Virtual Boundaries or / and ALF Virtual Boundaries This may be done recursively until no more crossings occur. processing is not allowed, e.g., only such boundaries can be processing unit boundaries. Hereinafter, such a processing unit will be referred to as a "basic ALF processing unit." The "F Processing Unit" must cross the "ALF Processing Unit" at any of such boundaries. If so, it may be an "ALF processing unit." b. Alternatively, and in addition, after such division process is completed, ALF process and / or and CC-ALF processing, for example, ALF processing in the "basic ALF processing unit" or / and CC-ALF. c. Alternatively, the above padding method is performed on the "basic ALF processing unit" Good too. d. Predefine different horizontal boundaries when generating "basic ALF processing units" You may check them in the order they were given. i. In one example, the check order is ALF virtual boundary, 360 degree virtual boundary, and then B A CTU boundary is a block / slice / tile / subpicture boundary. ii. In one example, the check order is 360-degree virtual boundary, ALF virtual boundary, and It is a CTU boundary which is a brick / slice / tile / subpicture boundary. iii. In one example, in forming a "basic ALF processing unit", the top boundary and A different check order may be used for the top and bottom boundaries. a) For example, in the case of the top boundary, the checking order is ALF virtual boundary, 360-degree virtual boundary, boundaries, and CTU boundaries, which are brick / slice / tile / subpicture boundaries. b) For example, in the case of the bottom boundary, the check order is 360-degree virtual boundary, ALF virtual boundary, boundaries, and CTU boundaries, which are brick / slice / tile / subpicture boundaries. e. Predefine different vertical boundaries when generating "basic ALF processing units" You can check them in the order they were listed. i. In one example, the check order is 360 degree virtual boundary, then brick / slice. / Tile / Subpicture boundaries are CTU boundaries. ii. In one example, the check order is brick / slice / tile / subpicture The boundary, and the CTU boundary, which is a 360-degree virtual boundary. iii. In one example, when generating the "basic ALF processing unit", the left and right boundaries are A different checking order may be used for the left and right bounds. 5. If such cross-boundary filtering is not permitted, ALF or and / or CC-ALF processing is disabled for samples at video unit boundaries. has been proposed. a. In one example, ALF and / or CC-ALF treatment of the sample includes at least If there are N (N is an integer) "unavailable" samples, ALF and / or CC-ALF processing is skipped, e.g., N=1 or 2 or is third magnitude. b. In one example, a sample is at a horizontal video unit boundary and crosses such a boundary. No filtering is allowed, and the vertical distance between the sample and the video unit boundary is M If the sample is below the ALF or / and CC-ALF threshold, the ALF and / or CC-ALF threshold are For example, M=0 or 1 or 2 or 3. c. In one example, a sample is at a vertical video unit boundary and crosses such boundary. If the horizontal distance between the sample and the video unit boundary is M, filtering is not allowed. If the sample is below the ALF or / and CC-ALF skips the sample. For example, M=0 or 1 or 2 or 3. 6. Turn on / off ALF and / or CC-ALF for video areas different from CTB. It is proposed that the control may be determined. In one example, the image area is an "ALF processing unit" or "narrow ALF processing unit." The ALF processing unit is a "basic ALF processing unit." b. In one example, the on / off control is explicitly signaled to the video area. Good too. c. In one example, on / off control may be implicitly derived for the image area . 7. The CC-ALF signaled on / off control flag is set to the first video unit (e.g. For example, the first video unit may be associated with a CTB, but for samples in the first video unit, the signal Even if the flag indicates that CC-ALF is enabled, LF may still be disabled. In one example, CC-ALF is enabled for samples in the first video unit. Whether it is enabled or disabled may depend on the location of the sample. b. In one example, CC-ALF is enabled for the samples in the first video unit. Whether the CC-ALF processing is performed or disabled may depend on the luma samples included in the CC-ALF processing. c. In one example, CC-ALF is enabled for samples in the first video unit. The enablement or disablement depends on the current sample and its neighboring samples, e.g. It may depend on these differences. d. In one example, CC-ALF is enabled for samples in the first video unit. Whether it is enabled or disabled may depend on the derived offset. i. In one example, if the derived offset is greater than (or not less than) a threshold value , the offset may be discarded, i.e., CC-ALF is disabled (if the offset is 0 (equivalent to resetting to ii. In one example, the derived offset is less than (or does not exceed) a threshold value. , the offset may be discarded, i.e., CC-ALF is disabled (if the offset is 0 (equivalent to resetting to e. In one example, CC-ALF is enabled for the samples in the first video unit. Whether a block containing chroma samples and / or adjacent blocks is enabled or disabled depends on the This may depend on the coding information in the block. 8. Therefore, the clipping process is divided into three stages (listed in the third bullet point of Section 3) and It has been proposed to reduce this to 1 or 2. a. In one example, when CC-ALF is enabled, chroma ALF filtering Clipping is omitted in the processing. b. In one example, the clipping process of the derived offset in the CC-ALF process is It is omitted. c. In one example, both of the above methods are applied. 9. The clipping range of the derived offset in CC-ALF processing is [-(1<(B itDepthC-1)),(1<(BitDepthC-1))-1] (inclusive) The range may be set differently. In one example, a smaller range may be utilized. b. In one example, this range may be independent of bit depth. c. In one example, the range is adaptively changed from a first image area to another image area. This may also be done. d. In one example, this range is determined by the non-linear clipping used in chroma ALF processing. It may be derived from the range (eg, k(i,j) in equation (14)). 10. Derived offsets (e.g., sums in the bullets in Section 3) are not fixed values (i.e., That is, instead of 64, it may be rounded to a value according to the bit depth using a rounding offset. a. In one example, the rounding offset is the first color component (e.g., Y) and the second color component It may depend on the bit depth difference between the two (e.g., Cbr or Cr). Alternatively, it may also depend on the bit depth of the CC-ALF filter coefficients. good. ii. In one example, the rounding offset is (1<<(K-1+(BitDepth Y-BitDepthC))), and K is the bit depth of the CC-ALF filter coefficients. BitDepthY and BitDepthC represent the luminance and bit depths, respectively. It represents the bit depth of the RGB and chrominance components. b. In one example, the following may be applied to replace equation (8-1293): The deleted text is marked with double brackets (e.g., [[a]] becomes means the deletion of the letter "a"). sum=alfPicture[xCtbC+x][yCtbC+y]+(sum+ Off[
[64] ])>>(7+(BitDepthY-BitDepthC)) ( 8-1293) ccAlfPicture[xCtbC+x][yCtbC+y]=Clip3(0 ,(1< <BitDepth C )-1,sum') (8-1294) Here, Off is (1<(6+(BitDepthY-BitDepthC)). are set equal. 11. It is proposed to jointly optimize chroma-ALF and CC-ALF. In one example, chroma ALF and CC-ALF for the CTB or video area If both are enabled, CC-ALF is applied after chroma ALF. Only in ALF processing, clipping operations (e.g. chroma ALF or / and CC - Chroma samples generated by ALF are filtered to a predetermined range that may depend on the chroma bit depth. (clip within) may be applied. b. In one example, chroma ALF and CC-ALF for the CTB or video domain If both are enabled, CC-ALF is applied before chroma ALF, and ALF Only in processing are clipping operations (e.g. chroma ALF or / and CC-AL The chroma samples generated by F are clipped to within a predetermined range, which may depend on the chroma bit depth. (to clip) may be applied. 12. Modify the sample S in the first color component as S=S+D, where D is, for example, For example, CC-ALF is an adaptive loop filtering method that uses second color component information. It is a more derived offset and can be adaptively clipped. For example, S = S + C It may be modified as lip3 (Dlow, Dhigh, D), where Dlow and / or Dhigh may be different for different samples. For example, Dlow and / or Dhigh are signals from the encoder to the decoder. You may be notified. b. For example, Dlow and / or Dhigh may be derived based on the value of S . c. For example, Dlow and / or Dhigh may be derived based on the position of S. stomach. d. For example, multiple candidates for Dlow and / or Dhigh may be signaled. , or may be predefined. The selected candidate may be signaled from the encoder. and may be derived in the decoder. 13. CC-ALF for the first sample S of the first subpicture is used as the second subpicture. Then, the first sub-picture and / or the second sub-picture may depend on the sample Loop filtering across subpictures is allowed for a picture. determines whether S is filtered by CC-ALF (e.g., loop_filter_ac of the first and / or second subpicture ross_subpic_enabled_flag). In one example, a sub-picture spanning loop filter is If not allowed, S will not be filtered by CC-ALF. b. In one example, a cross-subpicture loop filter is applied to the second subpicture. If not allowed, S will not be filtered by CC-ALF. c. In one example, a subpicture is assigned to the first subpicture and the second subpicture. If loop filtering across channels is not allowed, S is filtered by CC-ALF. It is not played. d. In one example, a subpicture is added to the first subpicture or the second subpicture. If loop filtering across channels is not allowed, S is filtered by CC-ALF. It is not played. 14. Whether and / or how the above methods are applied is determined by the following columns: The criteria may be based on one or more of the conditions listed. a. Video content (e.g., screen content or nature content) b. In one example, the default mode is DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit (LCU) / Coding Unit (CU) / LCU Row / LCU Group / TU / PU Block This may be signaled in the lock / video coding unit. c. CU / PU / TU / Block / Video Coding Unit Location d. Decoding information for the current block and / or its neighboring blocks i. Block dimensions / blocks of the current block and / or its neighboring blocks shape e. Display color formats (e.g., 4:2:0, 4:4:4, RGB, YUV) etc.) f. Coding tree structure (e.g., dual tree or single tree) g. Slice / Tile Group Type and / or Picture Type h. Color components (e.g., may only be applied to the luma and / or chroma components) . i. Time Layer ID j. Standard Profile / Level / Tier
[0154] 5. Additional Embodiments In this document, text changes in the VVC draft are indicated in bold underlined font. vinegar.
[0155] 6. Exemplary Implementations of the Disclosed Technology FIG. 19A is a block diagram of a video processing device 1900. The device 1900 is The device 1900 may be used to implement one or more of the described methods. This is being implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. The device 1900 may include one or more processors 1902 and one or more memories 1904. and video processing hardware 1906. 902 may be configured to implement one or more of the methods described herein. The memory(s) 1904 are used to implement the methods and techniques described herein. It may also be used to store data and code to be processed. 06 to implement some of the techniques described herein in hardware circuitry. may be part of the processor 1902 (e.g., a graphics processor) The processor may be a GPU or other signal processing circuit.
[0156] FIG. 21 illustrates an exemplary video processing system in which various techniques disclosed herein may be implemented. 2100. Various implementations may be implemented using the components of system 2100. The system 2100 may include some or all of the video content. The video content may include an input unit 2102. The pixel values may be received in bits, e.g., 8 or 10 bit multi-component pixel values, or The input unit 2102 may receive the network network interface, peripheral bus interface, or storage interface Examples of network interfaces are Ethernet, Wired interfaces such as Passive Optical Network (PON) and Wi-Fi (registered trademark) ) or a wireless interface such as a cellular interface.
[0157] The system 2100 may implement various coding or encoding methods described herein. The coding component 2104 may include a coding component 2104 that can The component 2104 encodes the average bit rate of the video from the input unit 2102. 2104 to generate a coded representation of the video. Therefore, this coding technique is sometimes called video compression or video transcoding. The output of the coding component 2104 is then processed by the component 2106. As represented by the symbol ".sub.1", it may be stored or transmitted via a connected communication. The bitstream of the stored or communicated video received at the input unit 2102 The stream (or coding) representation is used by component 2108 to display The pixel values sent to the interface unit 2110 or the displayable image may be generated. The process of generating a user-viewable image from a bitstream representation is It is sometimes called decompression (video unpacking). Furthermore, certain video processing operations are called "encoding" operations. The encoding tools or operations are used by the encoder to produce the encoding results. It will be understood that the corresponding decoding tools or operations for reversing are performed at the decoder. .
[0158] An example of a peripheral bus interface or display interface is the Universal Serial Bus (US) Bus (USB) or High-Definition Multimedia Interface (HDMI®) or display port, etc. Examples of storage interfaces are serial Advanced Technology Attachment (SATA), PCI, IDE interface The technology described herein is applicable to mobile phones, laptops, smartphones, etc. various devices, such as a computer, or other device capable of digital data processing and / or image display. It may be implemented in an electronic device.
[0159] FIG. 22 illustrates an example video coding system 100 that may utilize techniques of this disclosure. FIG.
[0160] As shown in FIG. 22, the video coding system 100 includes a source device 110 and The source device 110 may include a video encoding device. Destination device 120 generates encoded video data, which may also be referred to as video decoding data. 10. Decodes encoded video data generated by a source device 110, which may be referred to as a source device. possible.
[0161] The source device 110 includes a video source 112, a video encoder 114, and an input / output (I and a 116 (I / O) interface.
[0162] The video source 112 may be a source such as a video capture device, a video content provider, or the like. Interface for receiving video data from a video recorder and / or for generating video data a computer graphics system for creating a The video data may include one or more pictures. 14 encodes video data from a video source 112 to generate a bitstream. A bitstream contains a sequence of bits that form a coded representation of video data. The bitstream may contain coded pictures and associated data. A coding picture is a coding representation of a picture. The data stored includes sequence parameter sets, picture parameter sets, and other configuration The I / O interface 116 may include a modulator / demodulator (modem) and / or The encoded video data may be transmitted via a network 130a. and sent directly to the destination device 120 via the I / O interface 116. The encoded video data can be stored in a file for access by the destination device 120. The information may be stored in the storage medium / server 130b.
[0163] The destination device 120 includes an I / O interface 126, a video decoder 124, and and a display device 122.
[0164] The I / O interface 126 may include a receiver and / or a modem. The interface 126 receives data from the source device 110 or storage medium / server 130b. The video decoder 124 may obtain the encoded video data from the The display device 122 may then display the decoded video data to the user. The display device 122 may be integrated with the destination device 120 or may be an external display. External to the destination device 120 configured to interface with the destination device It may also be in.
[0165] Video encoder 114 and video decoder 124 are implemented using High Efficiency Video Coding (HEV C) standard, the Universal Video Coding (VVC) standard, and other current and / or future standards. It may operate in accordance with video compression standards such as those in
[0166] FIG. 23 is a block diagram showing an example of a video encoder 200. 200 may be the video encoder 114 in the system 100 shown in FIG. stomach.
[0167] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. In the embodiment of FIG. 23, the video encoder 200 includes a number of functional modules: The techniques described in this disclosure include shared memory between various modules of video encoder 200. In some examples, the processor may implement any of the techniques described in this disclosure. Alternatively, the device may be configured to perform all of the above.
[0168] The functional modules of the video encoder 200 include a partition unit 201 and a mode A selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra prediction unit 206. a prediction unit 202 which may include a measurement unit 206, a residual generation unit 207, and a transform unit 208. a transform unit 208, a quantization unit 209, an inverse quantization unit 210, and an inverse transform unit a block 211, a reconstruction unit 212, a buffer 213, and an entropy coding The device may include a unit 214.
[0169] In other examples, video encoder 200 may have more, fewer, or different functions. In one example, the prediction unit 202 may include an intra-block An IBC unit may contain at least one reference In IBC mode, the picture in which the current video block is located is the prediction (p redication) can be carried out.
[0170] In addition, some components such as a motion estimation unit 204 and a motion compensation unit 205 The components may be highly integrated, but for purposes of illustration, they are shown separately in the example of FIG. It is expressed.
[0171] The division unit 201 can divide a picture into one or more video blocks. The video encoder 200 and the video decoder 300 support various video block sizes. You may also port it.
[0172] The mode selection unit 203 may select, for example, an intra or inter mode based on the error result. and select one of the coding modes The resulting block is fed to a residual generation unit 207 to generate residual block data; 212 to be used as a reference picture. In an embodiment of the present invention, the mode selection unit 203 may Intra- and inter-prediction (CI) is a method for predicting signals based on measured and intra-predicted signals. The mode selection unit 203 may select a combination of IP (Internet Protocol) modes. For pixel prediction, the resolution of the motion vectors for the blocks (e.g., sub-pixel or You may choose a resolution of several pixels.
[0173] A motion estimation unit 204 performs inter prediction on the current video block. The method involves comparing the current video block with one or more reference frames from buffer 213. The motion compensation unit 205 may generate motion information for the current video block. is a picture from buffer 213 other than the picture associated with the current video block. A prediction video block is generated for the current video block based on the motion information and the decoded samples. The check may be made.
[0174] The motion estimation unit 204 and the motion compensation unit 205 may, for example, is an I-slice, a P-slice, or a B-slice. Different operations may be performed on the image blocks.
[0175] In some examples, the motion estimation unit 204 performs a unidirectional motion estimation on the current video block. For the current video block, motion estimation unit 204 performs forward prediction. may search the reference pictures in list 1 to find the reference video block. The estimation unit 204 estimates the reference video block, the current video block, and the reference video block. and a motion vector indicating the spatial displacement between the reference pixels in list 0 or list 1. The motion estimation unit 204 may generate a reference index that indicates the motion of the image. The motion information of the current video block is calculated by adding the motion vector, prediction direction indicator, and prediction index to the motion vector of the current video block. The motion compensation unit 205 may output the motion information of the current video block as A prediction video block for the current block may be generated based on the reference video block indicated by .
[0176] In another example, motion estimation unit 204 may bidirectionally predict the current video block. Preferably, the motion estimation unit 204 selects a reference picture from the list 0 for the current video block. The reference picture in List 1 may be searched for to lock the reference picture block. , and may search for another reference video block for the current video block in Motion estimation unit 204 uses the reference blocks in List 0 and List 1, which contain reference video blocks. a reference index indicating the reference picture and a distance between the reference video block and the current video block The motion estimation unit 204 may generate a motion vector that indicates the spatial displacement of the current The reference index and motion vector of the video block are added to the motion information of the current video block. The motion compensation unit 205 may output the motion information of the current video block as A prediction video block for the current video block may be generated based on the reference video block. stomach.
[0177] In some examples, the motion estimation unit 204 may perform the following steps for the decoding process of the decoder: The full set of motion information may be output.
[0178] In some examples, the motion estimation unit 204 may generate a full set of motion information for the current picture. Rather, motion estimation unit 204 may output a motion vector of another video block. The motion information of the current video block may be signaled by referring to the motion information. The estimation unit 204 calculates the motion information of the current video block by comparing it with the motion information of the neighboring video blocks. may be determined to be sufficiently similar to
[0179] In one example, the motion estimation unit 204 calculates the syntax associated with the current video block. In the structure, the current video block is shown to have the same motion information as another video block. The value shown to the image decoder 300 may be:
[0180] In another example, the motion estimation unit 204 may estimate the structure associated with the current video block. In the sentence structure, different video blocks and motion vector differences (MVDs) may be identified. The motion vector difference is the difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 300 calculates the motion vector of the indicated video block. The motion vector of the current video block is determined using the difference between the vector and the motion vector. Good too.
[0181] As mentioned above, video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by video encoder 200 are: Includes adaptive vector prediction (AMVP) and merge mode signaling.
[0182] Intra prediction unit 206 may perform intra prediction on the current video block. If intra prediction unit 206 intra predicts the current video block, The prediction unit 206 uses the decoded samples of other video blocks in the same picture. Based on the prediction, prediction data for the current video block may be generated. The prediction data for a block may include a predicted video block and various syntax elements. good.
[0183] The residual generation unit 207 generates a predicted residual of the current video block from the current video block. By subtracting the video blocks (e.g., indicated by a minus sign), Residual data may be generated for the current video block. The residual image data corresponds to different sample components of the samples in the current image block. It may contain blocks.
[0184] In another example, for example in skip mode, the residual for the current video block The data may be missing and the residual generation unit 207 may not perform the subtraction operation.
[0185] Transform processing unit 208 performs a transform on the residual video block associated with the current video block. Applying one or more transformations to generate one or more transformation functions for the current video block. Several video blocks may be generated.
[0186] The transform processing unit 208 generates the transform coefficient video block associated with the current video block. After generating , the quantization unit 209 generates one or more The transformation coefficient associated with the current video block is calculated based on the quantization parameter (QP) value of the Several image blocks may be quantized.
[0187] Inverse quantization unit 210 and inverse transform unit 211 apply inverse quantization to the transform coefficient video block. and applying the inverse transform to the residual video block. The reconstruction unit 212 may generate one or more predictions generated by the prediction unit 202. Add the reconstructed residual video block to the corresponding sample from the video block and calculate the current video block. The reconstructed video blocks associated with the blocks can be generated and stored in buffer 213. Cut.
[0188] After reconstruction unit 212 reconstructs the video blocks, To reduce filtering artifacts, a loop filtering operation may be performed.
[0189] The entropy coding unit 214 is a component of the other functional components of the video encoder 200. The entropy encoding unit 214 may receive data from performing one or more entropy encoding operations to generate entropy encoded data; A bitstream containing the entropy encoded data may be output.
[0190] FIG. 24 is a block diagram showing an example of a video decoder 300. 0 may be the video decoder 114 in the system 100 shown in FIG.
[0191] The video decoder 300 is configured to perform any or all of the techniques of this disclosure. In the embodiment of FIG. 24, the video decoder 300 includes multiple functional components. The techniques described in this disclosure are shared among the various components of video decoder 300. In some examples, the processor may include any of the techniques described in this disclosure. Or it may be configured to do all of the above.
[0192] In the embodiment of FIG. 24, the video decoder 300 includes an entropy decoding unit 301 , a motion compensation unit 302, an intra prediction unit 303, an inverse quantization unit 304, an inverse The image processing system includes a transformation unit 305, a reconstruction unit 306, and a buffer 307. The decoder 300 may, in some examples, be similar to the video encoder 200 (e.g., FIG. 23). A decoding pass may be performed that is roughly the reverse of the encoding pass described above.
[0193] The entropy decoding unit 301 retrieves the coded bitstream. The bit stream is entropy-encoded video data (e.g., The entropy decoding unit 301 may include an entropy encoding unit. The entropy-decoded video data is decoded, and a motion compensation unit is generated from the entropy-decoded video data. The frame 302 stores the motion vector, the motion vector precision, the reference picture list index, and The motion compensation unit 302 may determine motion information including, for example, AMVP and merge mode implementations may determine such information.
[0194] The motion compensation unit 302 may generate motion compensated blocks, possibly performs interpolation based on an interpolation filter. The syntax element includes the The interpolation filter may include an identifier for the interpolation filter to be used.
[0195] Motion compensation unit 302 is used by video encoder 20 during the encoding of a video block. Interpolation for sub-integer pixels of the reference block using an interpolation filter such as The motion compensation unit 302 may calculate a value for the video encoder based on the received syntax information. The encoder 200 determines the interpolation filter to be used and uses this interpolation filter to generate the predicted block. A check may be generated.
[0196] The motion compensation unit 302 uses a portion of the syntax information to The blocks used to encode the frame(s) and / or slice(s). block size, how each macroblock of a picture in a coded video sequence is partition information describing how the image is divided into segments, a mode indicating how each segment is coded, one or more reference frames (and reference frame lists) between each inter-coded block; and other information for decoding the encoded video sequence.
[0197] The intra prediction unit 303 may, for example, predict the intra frames received in the bitstream. Prediction modes may be used to form a prediction block from spatially adjacent blocks. The inverse quantization unit 303 is provided to the bitstream, and the entropy decoding unit The quantized video block coefficients decoded by 301 are dequantized (i.e., The inverse transform unit 303 applies the inverse transform.
[0198] The reconstruction unit 306 performs the reconstruction of the residual block and the motion compensation unit 202 or the intra prediction. The decoded block is summed with the corresponding prediction block generated by unit 303. If desired, a block may be formed after decoding to remove block artifacts. A deblocking filter may be applied to filter the deblocked blocks. The decoded video blocks are stored in a buffer 307, which stores the subsequent motion. Provides a reference block for compensation.
[0199] Some embodiments of the disclosed technology may include enabling video processing tools or modes. In one example, determining or judging whether a video processing tool or mode is enabled. When a video block is processed, the encoder uses this tool or mode to process one video block. use or implement a tool, but the resulting It is not necessary to modify the bitstream that is being displayed, i.e., The conversion of the image into a bitstream representation is performed by a video processing tool or If a mode is enabled, use this video processing tool or mode. If a video processing tool or mode is enabled, the decoder has been modified based on the video processing tool or mode, and i.e., the video processing tools or modes activated based on the decision or judgment. The conversion from the bitstream representation of the video to blocks of video is performed using a
[0200] As used herein, the term "video processing" refers to video encoding, video decoding, video compression, or can refer to image decompression. For example, a video compression algorithm converts a pixel representation of an image into a It may be applied during conversion to a corresponding bitstream representation or vice versa. The bitstream representation of the current video block, as specified by the syntax, may be, for example: This may correspond to bits spread at the same or different locations in the bitstream. For example, a macroblock can be represented in terms of transformed and coded error residual values. from, and using bits in the header and other fields in the bitstream may be encoded as
[0201] The disclosed methods and techniques enable the use of the techniques disclosed herein. Image processing devices such as smartphones, laptops, desktop computers, and similar devices This will be beneficial for embodiments of video encoders and / or decoders that are integrated into devices. is understood.
[0202] FIG. 20 is a flow chart illustrating an example of a method 2000 for video processing. In 2010, the authors published a paper on visual units and coding representations of visual media. and performing a conversion between the two, wherein during the conversion, an adaptive loop filter (ALF) is used. The above rules are related to the use of the cross-component adaptive loop filter (CC-ALF). Applied to pad out unavailable samples.
[0203] Some embodiments can be described using a format based on the following items: The following items present exemplary embodiments of the techniques described in the previous section.
[0204] 1. Transformation between visual media image units and visual media coding representations During the transformation, one or more rules using an adaptive loop filter (ALF) are ,Unavailable sub-segments associated with the use of cross-component adaptive loop filters (CC-ALF) The video processing method applied to pad the samples.
[0205] 2. The ALF filters applied to the color components of the video unit are Item 1, as defined using information provided by the color components.
[0206] 3. The CC-ALF filter applied to the first color component of the video unit is defined using information provided by at least a second color component of the image unit , The method according to any one or more of items 1 to 2.
[0207] 4. The video unit may be a slice, tile, brick, subpicture, picture, or or any of items 1-3, which corresponds to a 360-degree virtual picture surrounded by a 360-degree virtual boundary. Any one or more of the methods described above.
[0208] 5. In one or more ALF virtual boundaries associated with the use of CC-ALF, Apply the mirroring padding rules to the unusable samples, items 1 to 4 or one or more methods described therein.
[0209] 6. Slices, tiles, bricks, and pictures associated with the use of CC-ALF , subpicture, or 360-degree virtual boundary to unavailable samples. Apply the rules for repeated padding to one or more of items 1 to 5. How to post.
[0210] 7. One or more ALF virtual boundaries, excluding one or more ALF virtual boundaries associated with the use of CC-ALF. One or more of items 1 to 6, to which the rules for repeated padding apply on the upper boundary The method described above.
[0211] 8. The one or more boundaries may be all boundaries, horizontal boundaries, or vertical boundaries. Item 8. The method according to item 7, comprising one of the following:
[0212] 9. One or more ALF virtual boundaries, excluding one or more ALF virtual boundaries associated with the use of CC-ALF. Apply the rules for mirroring padding to the top border, one of items 1-6 The above method.
[0213] 10. The one or more boundaries may be one of all boundaries, horizontal boundaries, or vertical boundaries. Item 10. The method according to item 9, comprising:
[0214] 11. The video unit consists of an ALF processing unit, a coding tree unit (CTU ), or one or more of items 1 to 10 corresponding to the basic ALF processing unit How to do it.
[0215] 12. The ALF processing unit is bounded by two horizontal and two vertical boundaries. Item 12. The method according to item 11, wherein the unit to be measured is defined.
[0216] 13. Two horizontal boundaries can be two ALF virtual boundaries or one ALF virtual boundary. Picture / Slice / Tile / Brick / Subpicture or 360° Virtual Item 12. The method according to item 11, comprising:
[0217] 14. A basic ALF processing unit may also be called an ALF processing unit, a CTU, or a narrow ALF processing unit. It is generated based on recursively dividing the processing units, and the boundaries of the basic ALF processing units are Line, brick / slice / tile / subpicture borders, and / or 360 degree virtual Boundary and / or ALF virtual boundary where filtering across the boundary is not permitted Item 12. The method according to item 11, wherein the crossing is not performed at .
[0218] 15. The rule for repeat padding is that adjacent samples of a video unit are different. 15. The method of any one of items 1 to 14, based on whether it is within a slice.
[0219] 16. The current slice of the video unit is a raster scan slice, and the adjacent slices Item 16. The method according to item 15, wherein the slices are also raster scan slices.
[0220] 17. The current video unit is an ALF processing unit, and padding unavailable adjacent samples using the nearest available sample, item 1 5 to 16. The method according to any one or more of claims 5 to 16.
[0221] 18. A method of processing an image, comprising: encoding a visual unit of a visual medium and a visual medium; Transforms between representations and pads out unavailable samples of video units during the transformation. One or more predefined rules associated with the use of ALF or CC-ALF processing Specifies the padding order used.
[0222] 19. The predefined padding order requires that at least one top row of a video unit 19. The method of claim 18, comprising padding unavailable samples using
[0223] 20. The predefined padding order requires that at least one bottom line of a video unit 19. The method of claim 18, comprising padding unavailable samples using
[0224] 21. A predefined padding order must use at least one left column of a video unit. 19. The method of claim 18, comprising padding unavailable samples using
[0225] 22. A predefined padding order must use at least one right column of a video unit. 19. The method of claim 18, comprising padding unavailable samples using
[0226] 23. A method of processing an image, comprising: encoding a visual unit of a visual medium and a visual medium; representation and during the conversion, check whether one or more adjacent samples of a video unit are available. One or more rules that determine whether a video unit is a video frame or a video frame are associated with one or more adjacent samples. Includes relationships with the selected parameters.
[0227] 24. The parameters associated with the video unit (denoted as ctuDown) are: ctuDown=CtbSize-M (where M is an integer) The method described.
[0228] 25. If an adjacent sample is included in the second video unit with a different value for ctuDown, If included, one or more rules allow filtering across the second video unit. Item 25. The method according to item 24, wherein the method is not performed.
[0229] 26. One or more rules are based on one or more adjacent samples and the number of rows in the video unit. 24. The method of claim 23, further comprising a relationship with the tuUp parameter.
[0230] 27. Any one or more of items 18-26 where the unavailable sample is an adjacent sample The method described above.
[0231] 28. Unavailable samples are included in the raster scan slice, item 18-2 6. The method according to any one or more of claims 6 to 10.
[0232] 29. Unavailable adjacent samples spatially located in the upper left CTU relative to the video unit is the closest neighboring sample located spatially in the upper CTU relative to the video unit. 29. The method according to Item 28, wherein the
[0233] 30. Unavailable adjacent samples spatially located in the lower right CTU relative to the video unit. is parsed with its nearest neighboring sample, which is spatially located in the lower CTU relative to the video unit. 29. The method according to Item 28, wherein the
[0234] 31. A video processing method, comprising: converting to and from the CG representation and applying ALF and / or CC-ALF during the conversion. These rules apply to ALF and / or RGB samples located on video unit boundaries. Disable CC-ALF application when cross-boundary filtering is not permitted. This stipulates that:
[0235] 32. At least N adjacent subgroups associated with ALF and / or CC-ALF If a sample is determined to be unavailable, the application of ALF and / or CC-ALF will be disabled. Item 32. The method according to Item 31,
[0236] 33. The boundaries of a video unit are horizontal boundaries, and the horizontal boundaries of a sample and a video unit are Once the vertical distance of is determined to be less than or equal to M samples, ALF and / or CC-A 32. The method of claim 31, wherein application of LF is disabled.
[0237] 34. The boundary of a video unit is a vertical boundary, and the vertical boundary of a sample and a video unit Once the horizontal distance of is determined to be less than or equal to M samples, ALF and / or CC-A Item 32. The method of item 31, wherein applying LF is disabled.
[0238] 35. A method of processing a video, comprising: Converts to and from coding representations and applies ALF and / or CC-ALF during conversion. One or more rules in the AL Provides for selectively turning on or off F and / or CC-ALF.
[0239] 36. ALF and / or CC-ALF are on or for the second video unit. Whether it is turned off or not is clearly indicated in the coding representation of the second video unit. Item 36. The method according to Item 35.
[0240] 37. ALF and / or CC-ALF are on or for the second video unit. Whether the item is turned off is derived from the coding representation of the second video unit. 35. The method according to claim 35.
[0241] 38. If the flags associated with the first video unit are ALF and / or CC- Indicates that ALF is enabled and during conversion, the first video unit is automatically selected based on one or more conditions. Choose to apply ALF and / or CC-ALF to samples located in the 38. The method according to any one or more of items 35 to 37, wherein the
[0242] 39. The one or more conditions include a spatial location of the sample relative to the first image unit; Item 39. The method according to item 38.
[0243] 40. One or more conditions include luminance sample values used in CC-ALF. Item 39. The method according to item 38.
[0244] 41. One or more conditions include the difference in sample value between a sample and its adjacent samples; Item 39. The method according to item 38.
[0245] 42. One or more conditions are applied to the filtered luma samples corresponding to the chroma samples. Item 39. The method of item 38, including using a pull to derive a relationship between the offset value and the threshold.
[0246] 43. A method of processing a video, comprising: Converts between coding representations, and during conversion, selects ALF and / or CC-ALF One or more rules that apply to the omission of at least one of the three clipping operations The first clipping operation corresponds to chroma ALF filtering, and the second The first clipping operation corresponds to the CC-ALF offset derivation, and the third clipping operation corresponds to Supports fine-tuning of chroma filter samples to derive final chroma sample values .
[0247] 44. One or more rules applying ALF and / or CC-ALF may be Specifies that the first clipping operation is omitted if it is valid to apply F. Item 44. The method according to item 43.
[0248] 45. One or more rules applying ALF and / or CC-ALF may be Specifies that if applying F is invalid, the second clipping operation is omitted. Item 44. The method according to item 43.
[0249] 46. One or more rules applying ALF and / or CC-ALF shall be Item 43 specifies that the first clipping operation and the second clipping operation are omitted. How to do it.
[0250] 47. During the second clipping operation, the derived CC-ALF offset is [-(1<(B itDepthC-1)),(1<(BitDepthC-1))-1] A first range that is different from a second range, and the endpoints of the second range are included in the second range, and Bi Item 44. The method of item 43, wherein tDepthC is a bit depth value.
[0251] 48. The method of item 47, wherein the first range lacks dependency on the bit depth value.
[0252] 49. A third range associated with a second video unit is associated with a first video unit. Item 48. The method of item 47, wherein the first range is defined to be different from the associated first range.
[0253] 50. The first range is the first clipping operation corresponding to the chroma ALF filtering. Item 48. The method of item 47, wherein the nonlinear clipping range used in the calculation is derived.
[0254] 51. During the second clipping operation, the bit depth value is used instead of a fixed value to Item 48. The method of item 47, wherein the output CC-ALF offset is rounded.
[0255] 52. During the second clipping operation, the derived CC-ALF offset is calculated using the following formula: Item 48. The method according to item 47, wherein the number is rounded. sum=alfPicture[xCtbC+x][yCtbC+y]+(sum+O ff)>>(7+(BitDepthY-BitDepthC))ccAlfPictu re[xCtbC+x][yCtbC+y]=Clip3(0,(1< <BitDept hC)-1,sum), Off is (1<(6+(BitDepthY-Bit DepthC)) and alfPicture[xCtbC+x][yCt bC+y] represents the chroma sample after applying the first clipping operation, and sum is , the CC-ALF filter supports luminance samples after applying the second clipping operation. represents the sum of the CC-ALF filter coefficients, and ccAlfPicture represents the third Represents the final refined chroma sample after applying the ripping operation.
[0256] 53. A method of processing an image, comprising: encoding a visual unit of a visual medium and a visual medium; During the conversion, the video units are subjected to chroma ALF processing and / or C Collaboratively optimize C-ALF processing.
[0257] 54. Chroma ALF conversion results in chroma samples that are within a predefined range. Processing and / or clipping chroma samples generated by CC-ALF processing Item 54. The method of item 53, including a clipping operation for
[0258] 55. The predefined ranges are based at least in part on chroma bit depth values. Item 55. The method according to Item 54.
[0259] 56. Joint optimization is achieved when CC-ALF processing is applied after chroma-ALF processing. 55. The method according to item 54, including applying a clipping operation only during CC-ALF processing. Law.
[0260] 57. Joint optimization is achieved when CC-ALF processing is applied before chroma-ALF processing. Item 54, including applying clipping operations only during chroma ALF processing. Law.
[0261] 58. A method of processing an image, comprising: During the conversion, the information of the second color component of the video unit is used to convert the video The sample values of the first color component of the image unit are corrected, and the information of the second color component of the image unit is corrected. , based on one or more parameters used in the adaptive loop filtering process.
[0262] 59. One or more parameters used in the adaptive loop filtering process are clipped. The clipping parameter used for the first sample value is the Unlike the clipping parameters used for the second sample value, the first and Item 59. The method of item 58, wherein the first sample value and the second sample value are included in a video unit.
[0263] 60. The clipping parameters specify the minimum and maximum clipping values. 60. The method of claim 59, wherein the range is defined as having
[0264] 61. The minimum and / or maximum clipping values shall be determined by the coding representation. 61. The method of claim 60, wherein the signal is clearly signaled in
[0265] 62. The minimum and / or maximum clipping values are fractionalized into the sample values. Item 60. The method according to item 60, wherein the method is based on a
[0266] 63. The minimum and / or maximum clipping values are specified for a video unit. Item 61. The method of item 60, wherein the spatial location of the sample values is based in part on the spatial location of the sample values.
[0267] 64. The minimum and / or maximum clipping values are predefined values. Item 61. The method according to Item 60, wherein
[0268] 65. The minimum and / or maximum clipping values are independent of other parameters. 61. The method of claim 60, derived from
[0269] 66. A method of processing a video, comprising: converting between the coded representations, and during the conversion, The application of the C-ALF processing is based on a second sample of a second video unit of the visual media. This is done selectively, and selectively based on the loop filter across the video unit. This includes determining whether a claim is valid or invalid.
[0270] 67. The application of CC-ALF processing to the first sample of the first video unit is Cross-video unit routing for one video unit and / or a second video unit Item 67. The method of item 66, wherein the filter is skipped based on a determination that the filter is invalid.
[0271] 68. The application of CC-ALF processing to the first sample of the first video unit The cross-image unit loop filter is determined to be ineffective for the first image unit. 67. The method according to item 66, wherein the skipping is based on
[0272] 69. The application of CC-ALF processing to the first sample of the first video unit involves multiple A loop filter that spans multiple video units is disabled for the second video unit. Item 67. The method of item 66, skipped based on the decision.
[0273] 70. Flags associated with the first video unit and / or the second video unit. Based on reading the video unit loop filter, it determines whether the loop filter across the video unit is enabled or disabled. 69. The method according to any one or more of items 66 to 69, wherein the method determines whether the
[0274] 71. CC-ALF processing and / or the ALF processing is performed on i. the components of the video unit. ii.DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header Tile Group Header / Tile Group Header / Largest Coding Unit (LCU) / Coding Unit Unit (CU) / LCU row / LCU group / TU / PU block / video coding unit Signaled messages, iii. CU / PU / TU / Block / Video Coding Unit the location of the unit; iv. the shape or dimensions of the video unit and / or the location of adjacent video units; vii. Color format display; viii. Coding tree - structure, ix. slice / tile group type and / or picture type, x. Color components of the image unit, xi. Time layer ID or xii. Profile / Level / Temperature of the standard The method described in any one or more of items 1 to 70 is associated with at least one of the following: Law.
[0275] 72. A processor configured to implement the method described in one or more of items 1 to 71. A video decoding device comprising:
[0276] 73. A processor configured to implement the method described in one or more of items 1 to 71. A video encoding device comprising:
[0277] 74. A computer program product having computer code stored therein, When the code is executed by a processor, the processor performs any one of the steps 1 to 71. Implement the method described in.
[0278] 75. A method, apparatus or system as described herein.
[0279] The second section presents an illustrative implementation of the techniques discussed in the previous section.
[0280] 1. The current video unit of a video, which consists of one or more video blocks, and the bitstream of the video. For conversion to and from the stream representation, at least some of the current video units are converted according to the rules. Applying cross-component adaptive loop filtering (CC-ALF) to the video block Determine the padding process used to pad out unavailable samples while (2512) and making a conversion based on that decision (2514). indicates that the padding process applies adaptive loop filtering to one or more video blocks of the current video unit. Also used to pad unavailable samples while applying filtering (ALF) A video processing method (e.g., method 2510 shown in FIG. 25A) that specifies that the
[0281] 2. The ALF tools are applied to the color components of the current video unit. The information provided by the color components of the current video unit is used to compensate for the sample values of the color components. Item 1. The method according to item 1, comprising correcting
[0282] 3. The CC-ALF tool is applied to the first color component of the current video unit, The sample values of the second component of the video unit are used to calculate the value of the first component of the current video unit. 3. The method according to any one or more of items 1 to 2, comprising correcting the sample values.
[0283] 4. Current video units are slices, tiles, and frames enclosed by a 360-degree virtual boundary. Items 1 to 3 correspond to the picture, subpicture, picture or 360-degree virtual picture. Any one or more of the methods described above.
[0284] 5. The padding process is performed using one or more ALs associated with the use of the CC-ALF tool. F corresponds to the mirroring padding applied to unavailable samples at the virtual boundary. The method according to any one of items 1 to 4.
[0285] 6. Padding operations are related to the use of CC-ALF, including slicing, tiling, and Use in one of the following: brick, picture, subpicture, or 360-degree virtual boundaries One of items 1-4, corresponding to the repeat padding applied to the unacceptable samples The method described above.
[0286] 7. The padding process is performed using one or more ALF virtual Items 1-4 correspond to repeated padding applied to one or more boundaries, excluding the boundary. Any one or more of the methods described above.
[0287] 8. The one or more boundaries may be all boundaries, horizontal boundaries, or vertical boundaries. Item 8. The method according to item 7, comprising one of the following:
[0288] 9. The padding process is performed using one or more ALF virtual Item, corresponding to applying mirroring padding to one or more borders, excluding the border 5. The method according to any one or more of 1 to 4.
[0289] 10. The one or more boundaries may be one of all boundaries, horizontal boundaries, or vertical boundaries. Item 10. The method according to item 9, comprising:
[0290] 11. The current video unit consists of an ALF processing unit, a coding tree unit ( CTU), or one or more of items 1 to 10 corresponding to the basic ALF processing unit The method described below.
[0291] 12. The ALF processing unit is bounded by two horizontal and two vertical boundaries. Item 12. The method according to item 11, wherein the unit to be measured is defined.
[0292] 13. Two horizontal boundaries can be two ALF virtual boundaries or one ALF virtual boundary. and Picture / Slice / Tile / Brick / Subpicture or 360° Virtual Boundary 12. The method of claim 11, further comprising:
[0293] 14. A basic ALF processing unit may also be called an ALF processing unit, a CTU, or a narrow ALF processing unit. It is generated based on recursively dividing the processing units, and the boundaries of the basic ALF processing units are Line, brick / slice / tile / subpicture borders, and / or 360 degree virtual Boundary and / or ALF virtual boundary where filtering across the boundary is not permitted Item 12. The method according to item 11, wherein the crossing is not performed at .
[0294] 15. Padding is performed on adjacent slices where adjacent samples of the current video unit are different. One or more of items 1-4, corresponding to repeated padding based on whether it is within The method described above.
[0295] 16. The current slice of the current video unit is a raster scan slice, and the current Item 16. The method according to Item 15, wherein the slice adjacent to the slice is also a raster scan slice. .
[0296] 17. The current video unit is an ALF processing unit, and Pad unavailable samples using the nearest available sample, item 15. 6. The method according to any one or more of claims 6 to 10.
[0297] 18. Converting between video units and video bitstream representations (25 22), which includes adaptive loop filtering (ALF) or cross-component adaptation during the transformation. In applying the loop filtering (CC-ALF) process, the video unit A video processing method that pads unavailable samples in a predefined padding order. method (e.g., method 2520 shown in FIG. 25B).
[0298] 19. A video unit corresponds to a processing unit, and the rules are: Item 18 specifies a predefined padding sequence for padding samples. How to post.
[0299] 20. The predefined padding order must be at least one row or Use at least one column to pad out unavailable samples, At least one row or at least one column position is based on the position of the unavailable sample. Item 19. The method according to item 18, wherein the
[0300] 21. The predefined padding order must be at least one sample of the video unit. and padding unavailable samples using at least one sample Item 19. The method of item 18, wherein the position of the sample is determined based on the position of the unavailable sample.
[0301] 22. The availability of at least one adjacent sample of a video unit is determined by the presence of one or more adjacent samples. The sample and the parameter associated with the video area (ctuDown or ctuUp) The video area is determined based on the relationship of one coding tree unit (CTU). ctuUP corresponding to N rows and ctu corresponding to "CtbSize-M" rows of CTU Item 18, wherein M is an integer. Law.
[0302] 23. If the adjacent sample is in a different second video unit than ctuDown, The rule specifies that filtering across second video units is not allowed, item 22. The method according to claim 22.
[0303] 24. A video unit is a current coding tree unit contained in a raster scan slice. The rules are for padding unavailable samples of a video unit. Item 19. The method of item 18, which specifies a padding order defined for
[0304] 25. The predefined padding order is for the upper CTU in a raster scan slice. A slice different from the raster scan slice using its nearest neighboring sample located Item 18 includes padding unavailable samples located in the top left CTU within the The method described below.
[0305] 26. The predefined padding order is for the left CTU in a raster scan slice. A slice different from the raster scan slice using its nearest neighboring sample located Item 18 includes padding unavailable samples located in the top left CTU within the The method described below.
[0306] 27. Predefined padding order is different from raster scan slices. The unavailable samples located in the lower right CTU in the raster scan slice are Item 1 includes padding using its nearest neighboring sample located in the TU. 8. The method according to claim 8.
[0307] 28. Predefined padding order is used for different slices than raster scan slices. The unavailable samples located in the bottom right CTU in the raster scan slice are Item 1 includes padding using its nearest neighboring sample located in the TU. 8. The method according to claim 8.
[0308] 29. About the image area of the image with the adaptive loop filter (ALF) enabled determining whether the image region intersects a image unit boundary (2532); converting between the image and its bitstream representation (2534), Therefore, the image area is not aligned according to the rules due to the image area intersecting the boundaries of the image units. 25C, wherein the image processing method is divided into multiple sections.
[0309] 30. Cross-boundary filtering is not permitted. .
[0310] 31. The image area is processed by an ALF processing unit, a narrow ALF processing unit, or a coding unit. Item 29. The method according to item 29, corresponding to a log tree unit.
[0311] 32. A video unit can be a brick, slice, tile, subpicture, or 360°. 30. The method of claim 29, corresponding to a 30-degree virtual picture.
[0312] 33. The rule is to reframe the video area until it no longer straddles a video unit boundary. 30. The method of claim 29, further comprising recursively splitting.
[0313] 34. The filtering process corresponds to ALF processing or CC-ALF processing, and the rules are Furthermore, the item stipulating that filtering processing be performed after the completion of the division processing of the image area is specified. 29 or 30.
[0314] 35. The padding process used to pad at least one sample. is obtained after dividing the video area until the video area does not cross the video unit boundary. 30. The method of claim 29, wherein the method is performed on a basic ALF processing unit.
[0315] 36. The rules check different horizontal boundaries in a given order to determine if the video area is a video unit. The basic ALF processing unit obtained after dividing the image area until it no longer crosses the boundary of Item 29. The method according to item 29, wherein the method further comprises generating a
[0316] 37. The predefined order is ALF virtual boundary, 360 virtual boundary, and video unit. Item 37. A coding tree unit (CTU) boundary, which is a boundary of a coding tree unit (CTU) according to Item 36. method.
[0317] 38. The predefined order is 360-degree virtual boundary, ALF virtual boundary, and video unit. Item 37. A coding tree unit (CTU) boundary, which is a boundary of a coding tree unit (CTU) according to Item 36. method.
[0318] 39. The rules allow for predefined variations in the top and bottom boundaries of a video unit. Item 37. The method according to item 36, which specifies the order:
[0319] 40. In the method according to item 29, the rule checks different vertical boundaries in a predetermined order. The image area is divided until it no longer straddles the boundaries of the image units. This defines the creation of a basic ALF processing unit that can be used
[0320] 41. The predefined order is the 360-degree virtual boundary and the boundary of the video unit. Item 41. The method of item 40, wherein the boundary is a cross-carrier tree unit (CTU).
[0321] 42. The predefined order is the coding tree unit (CTU) of the video unit. ) boundary and a 360-degree virtual boundary.
[0322] 43. The rules allow different predefined orders for the left and right boundaries of a video unit. Item 40. The method according to item 40, which defines the order.
[0323] 44. Rules govern the conversion between video units and video bitstream representations. The rule includes performing adaptive loop filtering for samples located on video unit boundaries. Adaptive Loop Filtering (ALF) and / or Cross-Component Adaptive Loop Filtering (CC-A LF) is not permitted if cross-boundary filtering is not permitted. A video processing method that specifies that
[0324] 45. At least N adjacent subgroups associated with ALF and / or CC-ALF If a sample is determined to be unavailable, the application of ALF and / or CC-ALF will be disabled. Item 45. The method of item 44, wherein N is an integer.
[0325] 46. The boundaries of a video unit are horizontal boundaries, and the horizontal boundaries of a sample and a video unit Once the vertical distance of is determined to be less than or equal to M samples, ALF and / or CC-A Item 45. The method of item 44, wherein applying LF is disabled, and M is an integer.
[0326] 47. The boundary of a video unit is a vertical boundary, and the vertical boundary of a sample and a video unit Once the horizontal distance of is determined to be less than or equal to M samples, ALF and / or CC-A Item 45. The method of item 44, wherein applying LF is disabled, and M is an integer.
[0327] 48. Including converting between video units of video and bitstream representations of video. The bitstream representation complies with the format rules, and the video domain is represented by a coding tree. Unlike locks, formatting rules are implemented using Adaptive Loop Filtering (ALF) tools and and / or cross-component adaptive loop filtering (CC-ALF) tools for the video domain specifies whether syntax elements are included in the bitstream representation that indicate applicability to Image processing method.
[0328] 49. The method according to item 48, wherein the image region corresponds to an ALF processing unit.
[0329] 50. The applicability of the ALF and / or CC-ALF tools is 49. The method of claim 48, explicitly shown in a Reams representation.
[0330] 51. The applicability of the ALF and / or CC-ALF tools is derived; Item 49. The method according to item 48.
[0331] 52. Rules for conversion between video units and video bitstream representations Therefore, we use the cross-component adaptive loop filtering (CC-ALF) tool in the video unit. Determine which transformations are applicable to the sample (2542) and perform the transformations based on the determination. The bitstream representation includes the CC-ALF being used for video units (2544). The rules specify one or more conditions that override the instructions. An image processing method (eg, method 2540 shown in FIG. 25D).
[0332] 53. Item 5, where one or more conditions include the spatial location of the sample relative to the image unit. The method described in 2.
[0333] 54. One or more conditions include luminance sample values used in CC-ALF. Item 53. The method according to item 52.
[0334] 55. One or more conditions include the difference in sample value between a sample and its adjacent samples; Item 53. The method according to item 52.
[0335] 56. One or more conditions are applied to the filtered luma samples corresponding to the chroma samples. 53. The method according to claim 52, including a relationship between an offset value derived using a pull and a threshold value. .
[0336] 57. One or more conditions are met for blocks containing chroma samples and / or blocks Item 53. The method of item 52, including coding information of adjacent blocks.
[0337] 58. Rules govern the conversion between video units and video bitstream representations. The rule includes performing the conversion by using a chroma adaptive loop filter. First clipping operation corresponding to ALF, cross-component adaptive loop filtering (CC-ALF) A second clipping operation corresponding to the offset derivation, and the final clipping operation Supports fine-tuning of chroma filtered samples to derive chroma sample values. Omit at least one of the three clipping operations, including the third clipping operation A video processing method that specifies
[0338] 59. The rule states that when it is valid to apply CC-ALF, the first clipping Item 59. The method according to item 58, which provides for omitting operations.
[0339] 60. The rule states that if applying CC-ALF is invalid, the second clipping Item 59. The method according to item 58, which provides for omitting operations.
[0340] 61. The rule allows the first and second clipping operations to be omitted. Item 58. The method according to Item 58, wherein
[0341] 62. For conversion between a first video unit of a video and a bitstream representation of the video: Determines the cross-component adaptive loop filtering (CC-ALF) offset according to the rules and performing a transformation based on this determination (2554), The rule is to set the CC-ALF offset as [-(1<<(BitDepthC-1)),( 1<<(BitDepthC-1))-1] into a first range that is different from a second range BitDepthC is the bit depth value. method (e.g., method 2550 shown in Figure 25E).
[0342] 63. The method of item 62, wherein the first range lacks dependency on the bit depth value.
[0343] 64. A third range associated with a second video unit is associated with a first video unit. Item 63. The method of item 62, wherein the first range is defined to be different from the associated first range.
[0344] 65. The first range is a separate clipping operation corresponding to chroma ALF filtering. 63. The method of claim 62, wherein the nonlinear clipping range is derived from the nonlinear clipping range used in
[0345] 66. For conversion between a first video unit of a video and a bitstream representation of the video: According to the rules, one cross-component adaptive loop filtering (CC-ALF) offset (2562) and perform this transformation using the CC-ALF offset. (2564) and the convention is to use the CC-ALF offset as the bit depth instead of a fixed value. A method of video processing (e.g., Method 2560 shown in Figure 25F).
[0346] 67. The rounding offset depends on the bit depth difference between the first and second color components. Item 66. The method according to item 66.
[0347] 68. The CC-ALF offset is rounded using the following formula: sum=alfPicture[xCtbC+x][yCtbC+y]+(sum+O ff)>>(7+(BitDepthY-BitDepthC)) and ccAlfPi cture[xCtbC+x][yCtbC+y]=Clip3(0,(1< <BitD epthC)-1,sum), where Off is (1<(6+(BitDepth Y-BitDepthC)) and alfPicture[xCtbC+x ][yCtbC+y] represents the chroma sample after applying the first clipping operation. , sum is the brightness of the CC-ALF filter support after applying the second clipping operation. represents the sum of the degree samples multiplied by the CC-ALF filter coefficients, and ccAlfPicture represents the final refined chroma sample after applying the third clipping operation, BitDepthC and BitDepthY are the bit depths of the luminance and chrominance components, respectively. Item 67. The method according to Item 66, which represents
[0348] 69. Rules govern the conversion between video units and video bitstream representations. The rules include performing a chroma adaptive loop filter applied to the samples of the video unit. Adaptive Loop Filtering (ALF) processing and / or Cross-Component Adaptive Loop Filtering (CC-A LF) video processing, which specifies that one or more processing steps used during processing are the same method.
[0349] 70. Chroma ALF conversion results in chroma samples that are within a predefined range. Processing and / or clipping chroma samples generated by CC-ALF processing Item 69. The method of item 69, including a clipping operation for
[0350] 71. The predefined ranges are based at least in part on chroma bit depth values. Item 70. The method according to Item 70.
[0351] 72. If CC-ALF processing is applied after chroma ALF processing, clipping 71. The method of claim 70, wherein the calculation is applied only during CC-ALF processing.
[0352] 73. If CC-ALF processing is applied before chroma ALF processing, clipping Item 71. The method of item 70, wherein the calculation is applied only during chroma ALF processing.
[0353] 74. Rules govern the conversion between video units and video bitstream representations. The rules include modifying the second color component of the video unit during the conversion using information about the second color component of the video unit. modify the values of the samples of the first color component of the video unit by applying The corrections are used in the adaptive loop filtering (ALF) process for the video unit. A method of processing an image based on one or more parameters determined by the image processing method.
[0354] 75. One or more parameters used in the adaptive loop filtering process are clipped. The clipping parameter used for the first sample value is the Unlike the clipping parameters used for the second sample value, the first and Item 75. The method of item 74, wherein the first sample value and the second sample value are contained in a video unit.
[0355] 76. The clipping parameter specifies the minimum and maximum clipping values. 76. The method of claim 75, wherein the range is defined as having
[0356] 77. The minimum and / or maximum clipping values are 77. The method of claim 76, which is clearly signaled in the representation.
[0357] 78. The minimum and / or maximum clipping values are part of the sample value. 77. The method of claim 76, wherein the method is based on a quantitative analysis.
[0358] 79. The minimum and / or maximum clipping values are set for a video unit. 77. The method of claim 76, wherein the spatial location of the sample values is based in part on the spatial location of the sample values.
[0359] 80. Are minimum and / or maximum clipping values signaled? 77. The method of claim 76, as previously defined.
[0360] 81. The minimum and / or maximum clipping values are determined by other parameters. 77. The method of claim 76, wherein the method is derived from
[0361] 82. For conversion between a first subpicture of a video and a bitstream representation of the video: According to the rules, cross-component loop filtering (CC-ALF) is performed on the first subpicture. (2572) and, based on this determination, The CC-ALF for the sample includes performing a transformation (2574) on the second sub-picture. The rule uses samples from the first subpicture and / or the second subpicture. Whether loop filtering across subpicture boundaries is allowed for a subpicture. A video processing method (e.g., method 2570 shown in FIG. 25G) based on the above.
[0362] 83. Loop filtering across subpicture boundaries is performed for the first subpicture. If not permitted, skip CC-ALF for the sample, as described in item 82. method.
[0363] 84. Loop filtering across subpicture boundaries is performed for the second subpicture. If not allowed, skip CC-ALF for the first sample, see item 82. The method described.
[0364] 85. Subpicture for the first subpicture and / or the second subpicture If cross-boundary loop filtering is not allowed, CC- How to skip ALF, item 82.
[0365] 86. Whether loop filtering across subpicture boundaries is permitted depends on the based on a flag associated with the first sub-picture and / or the second sub-picture; 85. The method according to any one or more of items 82 to 84.
[0366] 87. A method according to any one of the preceding paragraphs, further comprising at least one of the following: 1) the type of video content, 2) the sequence parameter set (S PS), Video Parameter Set (VPS), Picture Parameter Set (PPS), Dependent Adaptive Parameter Set (DPS), Adaptive Parameter Set (APS), Picture Header, Rice header, tile group header, maximum coding unit (LCU), codec LCU (LCU row), LCU group, transform unit (TU), prediction unit 3. Messages signaled in the PU block or video coding unit ) the position of the CU, PU, TU, block, or video coding unit; 4) the current block 5) Decryption information of the current block and / or neighboring blocks; Dimensions or shape of the contact block, 6) Color format indication, 7) Coding tree structure ,8) Slice type, Tile group type, and / or Picture type, ,9) Color 10) Type of ingredient, 11) Time tier identifier, 12) Standard profile / level / tier.
[0367] 88. Item 88. Transforming includes encoding the video into the bitstream representation. 10. The method according to any one of claims 1 to 87.
[0368] 89. Conversion involves decoding video from a bitstream representation. 10. The method according to claim 9, wherein
[0369] 90. To carry out the method described in any one or more of items 1 to 89. A video processing device including the configured processor.
[0370] 91. When implemented, the method described in any one or more of items 1 to 89 is A computer-readable medium having stored thereon program code to be executed by a processor.
[0371] 92. A coding representation or bitstream produced in accordance with any of the above methods A computer-readable medium storing a stream representation.
[0372] The disclosed and other solutions, examples, embodiments, modules, The implementation of the rules and functional operations is within the scope of the structures disclosed herein and their structural equivalents. any digital electronic circuit, including computer software, firmware, or may be implemented in hardware, or in a combination of one or more thereof. The disclosed and other embodiments may be implemented as one or more computer program products. , i.e., to be implemented by or to control the operation of a data processing apparatus. one of computer program instructions encoded on a computer-readable medium for controlling The computer-readable medium may be implemented as one or more modules. -readable storage device, machine-readable storage substrate, memory device, material that provides a machine-readable propagated signal The "data processing device" may be a composition of the above, or a combination of one or more of these. The term may refer to, for example, a programmable processing unit, a computer, or multiple processors. or any apparatus, device, and This device includes, in addition to the hardware, the execution environment of the computer program. The code that creates the boundary, e.g., processor firmware, protocol stacks, databases a data management system, an operating system, or a combination of one or more of these. A propagated signal may include an artificially generated signal, e.g., a machine-generated code. A generated electrical, optical, or electromagnetic signal that encodes information for transmission to an appropriate receiving device. It is generated to
[0373] Computer programs (programs, software, software applications) , script, or code) is a language that is written in a compiled or interpreted It can be written in any form of programming language, including standard Modules suitable for use as standalone programs or in any computing environment Developed in any form, including as a module, component, subroutine, or other unit. A computer program does not necessarily have to be a file in a file system. It does not necessarily correspond to a file. A program may contain other programs or data. to a portion of a file (for example, one or more scripts stored in a markup language document) It may be recorded or stored in a single file dedicated to that program. and multiple coordination files (e.g., one or more modules, subprograms, or code) The program may be stored in a file (a file that stores part of the program). The data can be stored on a single computer located at one site or on a communication network distributed across multiple sites. Deploying it to run on multiple computers interconnected by a network is also possible.
[0374] The processes and logic flows described herein operate on input data and produce output. execute one or more computer programs to perform functions by creating This can be done by one or more programmable processors. Low also refers to application-specific logic circuits, such as FPGAs (Field Programmable Gate Arrays). This can be done by a chip array (CSI) or an ASIC (application specific integrated circuit), It can also be implemented as special purpose logic circuitry.
[0375] Processors suitable for executing computer programs include, for example, general purpose and special purpose microprocessors. both a processor and any one or more processors of any kind of digital computer Typically, a processor uses read-only memory or random access memory. It receives instructions and data from 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; Generally, a computer uses one or more memory devices to store data. It may include a mass storage device, such as a magnetic, magneto-optical, or optical disk. or receiving data from or sending data to these mass storage devices. However, the computer may be operatively coupled to transfer It is not necessary to have a device for storing computer program instructions and data. Suitable computer readable media include any form of non-volatile memory, media, and memory devices, such as EPROMs, EEPROMs, flash memory devices, magnetic disks Disks, such as internal hard disks or removable disks, magneto-optical disks, and Includes semiconductor storage devices such as CD-ROM and DVD-ROM disks. The memory may be supplemented by special purpose logic circuitry, or may be implemented as a single chip. It may be incorporated into the clock circuit.
[0376] This patent specification contains many details, which may not be sufficient to encompass the scope of any subject matter or the scope of any claim. The present invention should not be construed as limiting the scope of the present invention, but rather as being specific to particular embodiments of particular technologies. The description of the features that may be present in the present patent document should be interpreted as a description of the features that may be present in the present patent document. Certain features described in the context may be implemented in combination in a single example. Conversely, various features that are described in the context of one example may be used in multiple embodiments. Further, the features may be implemented separately or in any suitable subcombination. The compounds described above as acting in specific combinations and originally claimed as such Although one or more features from a claimed combination may be combined, The claimed combination may be extracted from the set, and the claimed combination may be a subcombination or sub-combination. It may also be directed to variations of the combination.
[0377] Similarly, although operations may be shown in a particular order in the figures, this is not to be construed as a guarantee that a desired result will be achieved. that such actions be performed in the particular order or sequence shown, in order to It should not be understood as requiring that all actions be performed. Also, the separation of the various system components in the examples described in this patent specification It should not be understood that all embodiments require such separation.
[0378] Only some implementations and examples are described and illustrated in this patent document. Other embodiments, extensions, and variations are possible based on the content provided.
Claims
1. 1. A method for processing video data, comprising the steps of: determining a padding scheme to be used to pad unavailable samples during application of a cross-component adaptive loop filter (CC-ALF) tool to at least some samples of a current video unit of a video for conversion between the current video unit and a bitstream of the video, the current video unit including one or more samples, the current video unit corresponding to a current coding tree unit; performing said conversion based on said determining; the CC-ALF tool is applied to a first color component of the current video unit and includes correcting sample values of the first color component of the current video unit using sample values of a second color component of the current video unit; if a first unavailable sample is located in a coding tree unit to the right of the current video unit and both the coding tree unit below the current video unit and the coding tree unit to the right of the current video unit are available, padding the first unavailable sample with a nearest neighbor sample located in the coding tree unit below; the lower right coding tree unit is located in a second slice different from a first slice in which the current video unit is located, and the lower coding tree unit and the right coding tree unit are both located in the first slice; if a second unavailable sample is located in an upper left coding tree unit of the current video unit, and both the coding tree unit above the current video unit and the coding tree unit to the left of the current video unit are available, padding the second unavailable sample with a nearest neighboring sample that brings the second unavailable sample to a position in the upper coding tree unit; A method according to claim 1, wherein the top left coding tree unit is located in a second slice different from a first slice located in the current video unit, and the top coding tree unit and the left coding tree unit are both located in the first slice.
2. 2. The method of claim 1, wherein the padding process corresponds to mirrored padding applied to the unavailable samples at one or more ALF virtual boundaries associated with use of the CC-ALF tool.
3. 2. The method of claim 1, wherein the padding process corresponds to one-sided padding applied to the unavailable samples at any of a slice, tile, picture, subpicture, or 360 degree virtual boundary associated with the application of the CC-ALF.
4. The method of claim 1 , wherein the padding process corresponds to one-sided padding applied to one or more boundaries excluding one or more ALF virtual boundaries related to the application of the CC-ALF.
5. The method of any one of claims 1 to 4, wherein the converting comprises encoding the video into the bitstream.
6. The method of any one of claims 1 to 4, wherein the converting comprises decoding the video from the bitstream.
7. 1. A video data processing apparatus comprising a processing unit and a non-transitory memory comprising instructions which, when executed by the processing unit, cause the processing unit to: determining a padding scheme to be used to pad unavailable samples during application of a cross-component adaptive loop filter (CC-ALF) tool to at least some samples of a current video unit of a video, the current video unit including one or more samples, for conversion between the current video unit and a bitstream of the video, the current video unit corresponding to a current coding tree unit; performing the conversion based on the determination; the CC-ALF tool is applied to a first color component of the current video unit and includes correcting sample values of the first color component of the current video unit using sample values of a second color component of the current video unit; if a first unavailable sample is located in a coding tree unit to the right of the current video unit and both the coding tree unit below the current video unit and the coding tree unit to the right of the current video unit are available, padding the first unavailable sample with a nearest neighbor sample located in the coding tree unit below; the lower right coding tree unit is located in a second slice different from a first slice in which the current video unit is located, and the lower coding tree unit and the right coding tree unit are both located in the first slice; if a second unavailable sample is located in an upper left coding tree unit of the current video unit, and both the coding tree unit above the current video unit and the coding tree unit to the left of the current video unit are available, padding the second unavailable sample with a nearest neighboring sample that brings the second unavailable sample to a position in the upper coding tree unit; A video data processing device, wherein the upper left coding tree unit is located in a second slice different from a first slice located in the current video unit, and the upper coding tree unit and the left coding tree unit are both located in the first slice.
8. A non-transitory computer-readable storage medium having instructions stored thereon, the instructions configuring a processor to: determining a padding scheme to be used to pad unavailable samples during application of a cross-component adaptive loop filter (CC-ALF) tool to at least some samples of a current video unit of a video, the current video unit including one or more samples, for conversion between the current video unit and a bitstream of the video, the current video unit corresponding to a current coding tree unit; performing the conversion based on the determination; the CC-ALF tool is applied to a first color component of the current video unit and includes correcting sample values of the first color component of the current video unit using sample values of a second color component of the current video unit; if a first unavailable sample is located in a coding tree unit to the right of the current video unit and both the coding tree unit below the current video unit and the coding tree unit to the right of the current video unit are available, padding the first unavailable sample with a nearest neighbor sample located in the coding tree unit below; the lower right coding tree unit is located in a second slice different from a first slice in which the current video unit is located, and the lower coding tree unit and the right coding tree unit are both located in the first slice; if a second unavailable sample is located in an upper left coding tree unit of the current video unit, and both the coding tree unit above the current video unit and the coding tree unit to the left of the current video unit are available, padding the second unavailable sample with a nearest neighboring sample that brings the second unavailable sample to a position in the upper coding tree unit; a first slice located in the current video unit, the top left coding tree unit being located in a second slice different from a first slice located in the current video unit, and the top coding tree unit and the left coding tree unit both being located in the first slice.
9. A method for storing a video bitstream, the method comprising: determining, for a current video unit of a video that includes one or more samples, a padding scheme to be used to pad unavailable samples during application of a cross-component adaptive loop filter (CC-ALF) tool to at least some samples of the current video unit, the current video unit corresponding to a current coding tree unit; generating the bitstream based on the determination; and storing the bitstream on a non-transitory computer-readable recording medium; the CC-ALF tool is applied to a first color component of the current video unit and includes correcting sample values of the first color component of the current video unit using sample values of a second color component of the current video unit; if a first unavailable sample is located in a coding tree unit to the right of the current video unit and both the coding tree unit below the current video unit and the coding tree unit to the right of the current video unit are available, padding the first unavailable sample with a nearest neighbor sample located in the coding tree unit below; the lower right coding tree unit is located in a second slice different from a first slice in which the current video unit is located, and the lower coding tree unit and the right coding tree unit are both located in the first slice; if a second unavailable sample is located in an upper left coding tree unit of the current video unit, and both the coding tree unit above the current video unit and the coding tree unit to the left of the current video unit are available, padding the second unavailable sample with a nearest neighboring sample that brings the second unavailable sample to a position in the upper coding tree unit; A method according to claim 1, wherein the top left coding tree unit is located in a second slice different from a first slice located in the current video unit, and the top coding tree unit and the left coding tree unit are both located in the first slice.
Citation Information
Patent Citations
JPP7401666B
Method and Apparatus of Slice Boundary Padding for Loop Filtering
US20130128986A1