Conditional encoding of indication of palette mode usage

By adopting palette mode encoding technology in video encoding technology, the problem of low video encoding efficiency in the existing technology is solved, and more efficient bandwidth utilization and video quality improvement is achieved.

JP7656000B2Active Publication Date: 2025-04-02DOUYIN VISION CO LTD +1
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023166048
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-07-20
Filing Date
2023-09-27
Publication Date
2025-04-02
Estimated Expiration
2040-02-24

AI Technical Summary

Technical Problem

Existing video encoding technologies are difficult to efficiently utilize bandwidth when processing video images, especially when digital video accounts for most of the bandwidth of the Internet and other digital communication networks. How to improve video encoding efficiency to adapt to the growing bandwidth needs is a challenge.

Method used

The palette mode encoding technology in an image or video decoder is used to improve encoding efficiency by converting video images into block and bitstream representations and processing the palette mode signals according to specific format rules.

Benefits of technology

Through palette mode encoding technology, the amount of video data can be effectively reduced and encoding efficiency can be improved, thereby better adapting to the growing bandwidth demand and improving video quality.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007656000000081
    Figure 0007656000000081
  • Figure 0007656000000082
    Figure 0007656000000082
  • Figure 0007656000000083
    Figure 0007656000000083
Patent Text Reader

Abstract

To provide a device, a system, and a method for conditional encoding for palette mode encoding.SOLUTION: A method that is executed by a video processing device includes converting between a block of a video and a bitstream representation of the video. The bitstream representation is processed according to a formatting rule that defines signal notification such that a first instruction for using a palette mode and a second instruction for using intra block copy (IBC) mode are dependent on each other.SELECTED DRAWING: Figure 27
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Books The wish is, This is a divisional application of Japanese Patent Application No. 2022-503887, which is based on International Patent Application No. PCT / CN2020 / 076369 filed on February 24, 2020. Priority and benefit of international patent application PCT / CN2019 / 096933, filed on July 20, 2019 Mainly Stretch Above The entire disclosure of this application is incorporated by reference as part of the disclosure of this specification.

[0002] This specification relates to video and image coding technology. [Background technology]

[0003] Digital video is the largest bandwidth used on the Internet and other digital communications networks. The number of connected user devices capable of receiving and displaying video is increasing. As more and more people use digital video, the bandwidth demands for digital video usage are expected to continue to grow. . Summary of the Invention

[0004] The disclosed technique relates to a video or image decoder or This may be used by some embodiments of the encoder.

[0005] In one exemplary embodiment, a method of image processing is disclosed. The method includes: This involves converting between blocks of regions and bitstream representations of the image. The stream representation is signaled when the first indication of the use of palette mode for this block is The first format rule specifies whether the prediction mode is known for this block. a second format rule that specifies the location of this first instruction relative to a second instruction of use of the code. The matter will be processed in accordance with the rules.

[0006] In another exemplary aspect, a method of image processing is disclosed. The method includes: For conversion between video domain blocks and bitstream representations of video, this block A prediction is performed based on one or more allowed prediction modes, including at least one palette mode of the The method includes determining whether to use the palette mode according to the prediction mode. The method also includes performing the conversion based on one or more allowed prediction modes. nothing.

[0007] In another exemplary aspect, a method of image processing is disclosed. The method includes: This includes converting between video and bitstream representations. The first instruction is to use the palette mode and the second instruction is to use the intra block copy (IBC) mode. According to the format rules that specify that the first instruction and the second instruction for are processed.

[0008] In another exemplary aspect, a method of image processing is disclosed. The method includes: For conversion between block and bitstream representations of this video, a Determine the presence of an indication of the use of palette mode in this bitstream representation. and performing the conversion based on the determination.

[0009] In another exemplary aspect, a method of image processing is disclosed. The method includes: This bitstream representation is used to convert between the image and a bitstream representation of this video. The presence of an indication of the use of intra block copy (IBC) mode at the current time is The method includes determining based on a dimension of the block and performing the conversion based on the determination.

[0010] In another exemplary aspect, a method of image processing is disclosed. The method includes: The video containing this block is used for conversion between this block and a bitstream representation of this video. Is palette mode allowed for this block based on the region's second directive? and performing this conversion based on this determination.

[0011] In another exemplary aspect, a method of image processing is disclosed. The method includes: The video containing this block is used for conversion between this block and a bitstream representation of this video. Based on the second indication of the region, an intra block copy (IBC) is performed on this block. determining whether the mode is permitted and performing this conversion based on this determination This includes the following.

[0012] In another exemplary aspect, a method of image processing is disclosed. The method includes: A palette mode transform unit that is coded separately from the prediction mode using a code, Determine which block or region to process and use this palette mode. This may involve performing further processing on the transform unit, coding block, or region. nothing.

[0013] In another exemplary aspect, a method of video processing is disclosed. The method comprises: For locks, the samples associated with one palette entry in Palette Mode , a first bit depth different from a second bit depth associated with the current video block. determining whether the at least one palette entry is currently present; and based on the at least one palette entry, and performing further processing of the video block.

[0014] In another exemplary aspect, another method of video processing is disclosed. The method includes: Converts between the current video block of the capture and a bitstream representation of this video. In the bitstream representation, the intra block copy mode is used to Information regarding whether the current video block is used in the conversion is signaled or not. The method includes performing a transformation based on the coding conditions of the intra-block. Copy mode copies this current video block from another video block in this picture. This includes encoding.

[0015] In yet another exemplary aspect, another method of video processing is disclosed. Whether to apply a deblocking filter while converting the current video block of the image picture. where the current video block includes determining whether all pixels of the current video block are A palette mode code that represents the current video block using a smaller representative sample value. If you decide to apply a deblocking filter, This involves performing a transformation so that a filtering filter is applied.

[0016] In yet another exemplary aspect, another method of image processing is disclosed. The conversion between the current video block of the picture of the video being determining a quantization or dequantization process for use during the conversion, where The image block uses a representative sample value that is less than the total pixels of the current image block. The current video block is encoded using palette mode encoding, and this quantization The method includes performing this conversion based on a determination of a quantization or inverse quantization process.

[0017] In yet another exemplary aspect, another method of image processing is disclosed. a current video block of a video that contains a number of video blocks and a bitstream representation of this video Determine that the current video block is a palette-coded block for conversion between and based on the determination, dividing the current video block into an intra-coded block. By considering this, we can carry out the list construction process in the maximum probability mode and and performing the conversion based on the result of the processing, the palette coding block comprising: It is encoded or decoded using a palette or representation sample values.

[0018] In yet another exemplary aspect, another method of video processing is disclosed.

[0019] In yet another exemplary aspect, another method of image processing is disclosed. a current video block of a video containing a number of video blocks and a bitstream representation of this video Determine that the current video block is a palette-coded block for conversion between and based on the determination, classifying the current video block as a non-intra coded block. By considering the list to be a block, the maximum probability mode list construction process is performed, and this list construction process and performing the conversion based on the result of the palette coding process. The signal is encoded or decoded using the sample or representation sample values.

[0020] In yet another exemplary aspect, another method of image processing is disclosed. a current video block of a video containing a number of video blocks and a bitstream representation of this video Determine that the current video block is a palette-coded block for conversion between Based on this determination, the current video block is determined to be an unavailable block. By thinking about it, we can carry out a list-building process and then decide on this based on the results of this list-building process. and performing a conversion, the palette coding block converting the palette or representation sample. The data is encoded or decoded using the rule value.

[0021] In yet another exemplary aspect, another method of image processing is disclosed. During conversion between the current video block and a bitstream representation of the current video block, determining that the current image block is a palette-coded block; The conversion used for this transformation is based on the fact that the image block is a palette-coded block. determining a range of text coding bins and determining a range of context coding bins based on the range of text coding bins; This includes performing this conversion using

[0022] In yet another exemplary aspect, the method described above comprises a video encoder including a processing unit. It may be implemented by:

[0023] In yet another exemplary aspect, the methods are implemented in the form of processor executable instructions. The method may be implemented in a computer-readable program medium.

[0024] These and other aspects are further described herein. [Brief description of the drawings]

[0025] [Figure 1] An example of intra block copy is shown. [Diagram 2] 1 shows an example of a block coded in palette mode. [Diagram 3] An example of using a palette predictor to signal palette entries is given below. [Figure 4] 4 shows examples of horizontal and vertical traverse scans. [Diagram 5] An example of encoding a palette index is shown below. [Figure 6] FIG. 1 is a block diagram illustrating an example of a video processing device. [Figure 7] FIG. 2 is a block diagram illustrating an example implementation of a video encoder. [Figure 8] 1 is a flowchart illustrating an example of a video processing method. [Figure 9] 1 shows examples of pixels involved in filter on / off decision and strong / weak filter selection. [Figure 10] An example of binarization of four modes is shown. [Figure 11] An example of binarization of four modes is shown. [Figure 12] 67 examples of intra mode prediction directions are shown. [Figure 13] 4 shows examples of neighboring video blocks. [Figure 14] Examples of ALF filter shapes are shown (chroma: 5x5 diamond, luma: 7x7 diamond). [Figure 15] (a) shows an example of a subsampled Laplacian computation for vertical gradients. (b) shows an example of a subsampled Laplacian computation for horizontal gradients. (c) shows an example of a subsampled Laplacian computation for diagonal gradients. (d) shows an example of a subsampled Laplacian computation for diagonal gradients. [Figure 16] 13 shows an example of a modified division in a virtual boundary. [Figure 17] 13 shows an example of modified ALF filtering for luminance components at a virtual boundary. [Figure 18] 4 shows examples of 1-D3 pixel patterns for pixel classification in EO. [Figure 19] Here is an example of grouping four bands and expressing them by their starting band positions. [Figure 20] 1 shows an example of the top left neighborhood block used in CIIP weight derivation. [Figure 21] 1 shows an example of luminance mapping using a chroma scaling architecture. [Figure 22] An example of a scan order for a 4x4 block is shown below. [Diagram 23] 4 shows another example of a scan order for a 4×4 block. [Figure 24] FIG. 1 is a block diagram illustrating an example video processing system in which the disclosed techniques can be implemented. [Diagram 25] 1 is a flowchart illustrating a video processing method according to the present technology. [Figure 26] 11 is another flowchart illustrating another image processing method according to the present technology. [Figure 27] 11 is another flowchart illustrating another image processing method according to the present technology. [Figure 28] 11 is another flowchart illustrating another image processing method according to the present technology. [Figure 29] 11 is another flowchart illustrating another image processing method according to the present technology. [Diagram 30] 11 is another flowchart illustrating another image processing method according to the present technology. [Diagram 31] 11 is another flowchart illustrating yet another image processing method according to the present technique. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0026] The present specification provides a method for improving the quality of decompressed or decoded digital video or images. In particular, the present invention provides various techniques that can be used by a decoder of an image or video bitstream. For the sake of simplicity, the term "video" is used herein to mean a sequence of pictures (traditionally called a video). In addition, the term video encoder is used to include both the image and the individual images. The encoding process is then repeated to reconstruct the decoded frames that are used for further encoding. These techniques may be implemented during processing.

[0027] Section headings are used herein for ease of understanding, and the disclosures contained in a section may be incorporated herein by reference. The present invention is not intended to limit an embodiment to only that section. Thus, an embodiment in a section may be It can be combined with the embodiments of other chapters.

[0028] 1. Summary of the Invention

[0029] The present specification relates to a video coding technology. This paper focuses on palette coding using color-based representations. It may be applied to the standard, or the standard (Versatile Video Coding) may be established. The present invention may be applied to determine future video encoding standards or video codecs. It is also applicable to

[0030] 2. Initial consultations

[0031] Video coding standards have emerged primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T has developed H.261 and H.263, and ISO / IEC has developed MPEG- 1 and MPEG-4 Visual, and the two organizations have jointly developed H.262 / MPEG-2 Video o and H.264 / MPEG-4 AVC(Advanced Video Coding ) and co-created the H.265 / HEVC standard. Since H.262, video coding standards have It is based on a hybrid video coding structure that utilizes inter prediction and transform coding. In 2015, VCEG and MPEG jointly established the VCEG-MPEG 2.0 standard for video coding. We established JVET (Joint Video Exploration Team). Since then, many new methods have been adopted by JVET and JEM (Joint Exp This has been incorporated into a reference software called the Loration Model. In April 2018, VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG Joint Video Expert Team (JVET) during 11 (MPEG) was launched and began formulating the VVC standard with the goal of reducing the bit rate by 50% compared to HEVC. They are working together.

[0032] FIG. 7 is a block diagram of an example implementation of a video encoder. However, the video encoder also performs the video decoding function (to encode the next video data). We show that the system incorporates a feedback loop (reconstructing a compressed representation of video data to obtain a vinegar.

[0033] 2.1 Intra-block copy

[0034] Intra Block Copy (IBC), aka current picture reference, is a HEVC script HEVC-SCC and the current VVC test model (VT IBC is a concept of motion compensation that was introduced in interframe coding. As shown in Figure 1, the current block is coded as follows: If applicable, it is predicted by one reference block in the same picture. Before encoding or decoding a block, the samples in the reference block are already reconstructed. IBC is a standard for most camera-captured sequences. It is not very efficient for video coding, but it does show significant coding gains for screen content. The reason is that in screen content pictures, icons, characters, etc. are repeated. IBC effectively removes the redundancy between these repeating patterns. In HEVC-SCC, an inter-coding unit (CU) is If you select the current picture as its reference picture, you can apply IBC. In this case, MV is renamed to block vector (BV), and BV always has integer pixel accuracy. To comply with the Main Profile HEVC, the current picture is The picture is marked as a "long-term" reference picture in the DPB. In multiple view / 3D video coding standards, inter-view reference pictures are also called “long-term” reference pictures. It will be marked as Kucha.

[0035] After the BV finds the reference block, it generates a prediction by copying this reference block. The residual can be obtained by subtracting the reference pixels from the original signal. Yes, and just like other coding modes, transforms and quantization can be applied. .

[0036] However, if the reference block is outside the picture or overlaps with the current block, If the area is outside the reconstructed region, or if it is limited by some constraint, If it is outside the defined valid area, some or all of the pixel value is undefined. There are two solutions to deal with such problems. The second is to not allow for data stream conformance with these undefined pixel values. The solution is to apply filtering. The following subsections explain the solution in detail.

[0037] 2.2 IBC in HEVC Screen Content Coding Extensions

[0038] In the HEVC Screen Content Coding Extension, a block is When using a structure as a reference, the entire reference block is It should be ensured that the body is within the available reconstructed area.

[0039] [ka]

[0040] Thus, cases where the reference block overlaps with the current block, or where the reference block The out-of-picture case does not occur. There is no need to fill in reference or predicted blocks. There is none.

[0041] 2.3 IBC in the VVC test model

[0042] In the current VVC test model, e.g., VTM-4.0 design, the entire reference block is It should have the current coding tree unit (CTU) and should not overlap with the current block. Therefore, there is no need to pad the reference or predicted blocks. Thus, for each CU, MODE_I is There are three prediction modes in total: NTRA, MODE_INTER, and MODE_IBC. There is a

[0043] 2.3.1 IBC Merge Mode

[0044] In IBC merge mode, an index that points to an entry in the IBC merge candidate list. The IBC merge list is constructed as follows: The steps can be summarized as follows:

[0045] Step 1: Derive spatial candidates

[0046] Step 2: Inserting HMVP candidates

[0047] Step 3: Inserting pairwise average candidates

[0048] In deriving spatial merge candidates, up to four merge candidates are selected from the candidates located at the positions shown in the figure. The page candidates are selected. The derivation order is A1, B1, B0, A0, B2. Position A If any of the PUs B1, B0, or A0 is not available (for example, another slice or or belongs to a tile) or is not coded in IBC mode. Position B2 is considered. After adding the candidate in position A1, the remaining candidates are inserted. This allows candidates with the same motion information to be removed from the list with confidence. In order to reduce the computational complexity, the above-mentioned redundancy check is used. In the check, we do not consider all possible candidate pairs. Instead, we use the Consider only pairs linked by the arrows marked with A candidate is added to the list only if it does not have the same motion information.

[0049] After inserting spatial candidates, the IBC merge list size is still less than the maximum IBC merge list size. If the IBC candidate from the HMVP table is smaller than the buffer size, the IBC candidate from the HMVP table can be inserted. When inserting HMVP candidates, a redundancy check is performed.

[0050] Finally, the pairwise average candidate is inserted into the IBC merge list.

[0051] If the reference block identified by the merge candidate is outside the picture or the current If it overlaps with a block, or is outside the reconstructed region, or if some constraints are met, A merge candidate is called an invalid merge candidate if it is outside the valid region bounded by .

[0052] Note that invalid merge candidates may be inserted into the IBC merge list.

[0053] 2.3.2 IBC AMVP mode

[0054] In IBC AMVP mode, the AMV that points to an entry in the IBC AMVP list. The P index is parsed from the bitstream. This IBC AMVP list The construction of can be summarized according to the following sequence of steps:

[0055] Step 1: Derive spatial candidates

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

[0057] Check B0, B1, B2 until an available candidate is found.

[0058] Step 2: Inserting HMVP candidates

[0059] Step 3: Inserting zero candidates

[0060] After inserting spatial candidates, the IBC AMVP list size is still up to IBC A Insert IBC candidates from HMVP table if smaller than MVP list size can be done.

[0061] Finally, insert the zero candidate into the IBC AMVP list.

[0062] 2.4 Palette Mode

[0063] The basic idea behind palette mode is to assign samples in a CU to representative color values. The idea is to express it as a small set. This set is called a palette. Also, the escape symbol The palette is then updated by signaling the (possibly quantized) element values ​​after the It is also possible to show samples that lie outside the

[0064] 2.5 Palette Mode in HEVC Screen Content Encoding Extensions (HE VC-SCC)

[0065] In the palette mode in HEVC-SCC, the palette and index map are A prediction scheme is used for the coding.

[0066] 2.5.1 Encoding Palette Entries

[0067] To encode the palette entries, a palette predictor is maintained. In HEVC-SCC, the maximum size of the palette and the palette predictor are signaled. palette_predictor_initializer_present _flag is introduced into the PPS. If this flag is 1, This signals an entry to initialize the palette predictor. The palette predictor is It is initialized at the beginning of each CTU row, each slice, and each tile. Depending on the value of edictor_initializer_present_flag, alette_predictor to 0 or signaled by PPS The palette predictor is initialized using the palette predictor initialization entry. In SCC, to specifically disable the initialization of the palette predictor at the PPS level, you can use Enabled palette predictor initialization module 0.

[0068] For each entry in the palette predictor, whether it is part of the current palette The reuse flag is signaled to indicate that the After this, the number of new palette entries is , signaled using an exponential-Golomb code of degree 0. Finally, the new palette entry The element values ​​for the link are signaled.

[0069] 2.5.2 Palette Index Encoding

[0070] The pallet index uses horizontal and vertical traverses as shown in Figure 4. The palette_transpose_flag can be used to The following subsections explicitly signal the scanning order in the Assume that is horizontal.

[0071] The palette index has two parameters: "INDEX" and "COPY_ABOVE". The data is encoded using in-palette sample mode. The palette is also signaled as "INDEX" mode and has an index equal to the maximum palette size. This mode can be changed using flags other than the top line, or by changing the previous mode. Signaled if the command is "COPY_ABOVE". In " mode, copies the palette index of the sample in the row above. "INDEX" In the "INDEX" mode, the palette index is explicitly signaled. For both "COPY_ABOVE" and "COPY_ABOVE" modes, the resulting Signals a running value that specifies the number of samples to follow. If it is part of an execution in "COPY_ABOVE" or "COPY_ABOVE" mode, the escape sequence The escape element value is signaled for each symbol. The encoding of the palette index is shown in Figure 5. As shown in.

[0072] This syntax sequence is executed as follows: First, the index value for the CU is This is followed by a truncated binary encoding. ed binary coding) to ensure that the actual index values ​​of the entire CU are In bypass mode, both the number of indexes and the index value are signed. This groups index-related bypass bins. Bit sample mode (if required) and execution are signaled in an interleaved manner Finally, group the element escape values ​​that correspond to the escape samples for the entire CU. and encodes it in bypass mode.

[0073] After signaling the index value, the additional syntax element last_run_type_fl ag. This syntax element, in conjunction with the number of indices, Eliminates the need to signal the execution value corresponding to the last execution.

[0074] In HEVC-SCC, the palette modes are 4:2:2, 4:2:0, and monochrome. This is also valid for other chroma formats. Palette entries and palette indexes The signaling for the chroma frame is nearly the same for all chroma formats. For monochrome formats, each palette entry consists of three elements: In this case, each palette entry consists of a single element. In this case, the chroma samples are associated with luma sample indices that are divisible by 2. After restructuring the palette index, only a single element is associated with a sample. If not present, only the first element of the palette entry is used. The difference is the escape element value. For each escape sample, the escape The number of group element values ​​may vary depending on the number of elements associated with that sample.

[0075] In VVC, a dual-tree coding structure is used to code intra slices. So the luma component and the two chroma components have different palettes and palette indices. Also, the two chroma elements may have the same palette and palette index. Share.

[0076] 2.6 Deblocking Scheme in VVC

[0077] In the following description, pN M is the Nth subpixel to the left of the Mth row relative to the vertical edge. represents the Nth sample above the Mth column relative to the horizontal edge, and qN M teeth, The Nth sample to the right of the Mth row for a vertical edge, or the Mth column for a horizontal edge pN represents the Nth sample below the eye. M and qN M An example is shown in Figure 9.

[0078] In the following explanation, p N is the Nth sample to the left of the row relative to the vertical edge , or the Nth sample above the horizontal edge of the column, and q N is the vertical edge For a horizontal edge, the Nth sample on the right side of the row, or the Nth sample on the bottom side of the column Represents a sample.

[0079] The filter on / off decision is made for four rows as one unit. Figure 9 shows the filter The pixels involved in the on / off decision of the filter are shown in the two red boxes for the first four rows. The six pixels are used to determine whether the filter is on or off for the four rows. The six pixels in the two red boxes for the first four rows are the six pixels in the two red boxes for the second four rows of the filter. Used to determine whether the switch is on or off.

[0080] In some embodiments, the vertical edges of the picture are first selected. The input samples are corrected by the edge filtering process and the horizontal edges of the picture are filtered. The vertical and horizontal edges in the CTB of each CTU are filtered by the coding unit. The vertical edges of the coding blocks in a coding unit are processed separately. Starting from the left edge of the coding block, we move their geometry towards the right edge of the coding block. The edges are filtered in order to proceed through them. The horizontal edges of the block start at the top edge of the coding block and run The edges are filtered downwards, proceeding through them in their geometric order.

[0081] 2.6.1 Boundary determination

[0082] It applies filtering to 8x8 block boundaries. (Because of the use of motion estimation and ATMVP, the boundary of a transform block or a coding subblock Must be a lock boundary, otherwise the filter is disabled. .

[0083] 2.6.2 Boundary strength calculation

[0084] For transform block boundaries / coding sub-block boundaries, it is located on an 8x8 grid. If you place it, you may filter it and use bS[xD i ][y D j ]([xD i ][yD j The settings for ] represent coordinates) are defined as follows:

[0085] - the code of a coding unit in which sample p0 or q0 is coded in intra prediction mode If it is in the encryption block, bS[xD i ][yD j ] is set equal to 2.

[0086] - Or, the block edge is also a transformation block edge and samples p0 or q If 0 is in a transform intra block that contains one or more non-zero transform coefficient levels, then bS[ xD i ][yD j ] is set equal to 1.

[0087] or the prediction mode of the coding sub-block containing the sample p0 is the same as that of the sample q0 If the prediction mode of the coding sub-block containing bS[xD i ][yD j ] is 1 is set equal to

[0088] - Or, if one or more of the following conditions are true, then bS[xD i ][yD j ] to 1 Set it equal to

[0089] the coding sub-block containing sample p0 and the coding sub-block containing sample q0 Both blocks are coded in IBC prediction mode, and the prediction of the two coding sub-blocks is The absolute difference in the horizontal or vertical components of the motion vectors used is 4 in 1 / 4 luma samples. That's all.

[0090] For the prediction of the coding subblock containing sample p0, A different reference picture or a different number of motion vectors are used for the prediction of the coded subblock. can be.

[0091] NOTE 1 – The reference pictures used for the two coding subblocks are either the same or The difference is whether we use an index into reference picture list 0 to form the prediction. , or an index into reference picture list 1; and Regardless of whether their index positions in the reference picture list are different, It is determined solely based on whether it is referenced.

[0092] NOTE 2 – The coding subblock with the top-left sample containing (xSb,ySb) The number of motion vectors used for prediction is PredFlagL0[xSb][ySb]+ Equivalent to PredFlagL1[xSb][ySb].

[0093] - one motion vector for predicting the coding sub-block containing sample p0 , and one motion vector predicts the coding sub-block containing sample q0. The absolute difference in the horizontal or vertical components of the motion vectors used is 1 / 4 luminance The sample size is 4 or more.

[0094] - Sample p0 using two motion vectors and two different reference pictures The coding sub-block containing the 3D vectors is predicted using two motion vectors from the same two reference pictures. q0 is used to predict the coding sub-block containing sample q0, and two coding The absolute difference in the horizontal or vertical components of the two motion vectors used to predict a coding subblock. is 4 or more in quarter-luminance sample units.

[0095] - Coding involving sample p0 using two motion vectors of the same reference picture Predict a subblock,sample q,using two motion vectors of the same reference picture. Predict a coded sub-block that contains zeros, and both of the following conditions hold:

[0096] - the horizontal division of the motion vectors in list 0 used for the prediction of the two coded subblocks Or the absolute difference between the vertical components is greater than or equal to 4 in the quarter luminance samples, or 2 The horizontal or vertical component of the motion vector in List 1 used to predict one coding subblock. The absolute difference between the elements is greater than or equal to 4 in units of 1 / 4 luma samples.

[0097] - the list 0 motion vector used for predicting the coding sub-block containing sample p0 The horizontal or vertical component of the matrix is ​​used to predict the coding subblock that contains sample q0. the absolute difference between the list 1 motion vector and the corresponding list 2 motion vector is greater than or equal to 4 in 1 / 4 luma samples, or the list 1 motion vector used to predict the coding sub-block containing sample p0 and the link used to predict the coding subblock containing sample q0. The absolute difference between the step 0 motion vector and the step 1 motion vector is greater than or equal to 4 in units of 1 / 4 luma samples.

[0098] - Or, the variable bS[xD i ][yD j ] to 0.

[0099] The calculation rules for BS are summarized in Tables 2-1 and 2-2.

[0100] [Table 1]

[0101] [Table 2]

[0102] 2.6.3 Deblocking of Luminance Components

[0103] The deblocking decision process is described in this subsection.

[0104] [ka]

[0105] Condition 1 is the "large block condition." This condition is that the P and Q side samples are The variables bSidePisLargeBlk and bSideQisLargeBlk are bSidePisLarg eBlk and bSideQisLargeBlk are defined as follows:

[0106] bSidePisLargeBlk=((edge ​​type is vertica l and p0belongs to CU with width>=32)|| (edge ​​type is horizontal and p0belongs to CU with height>=32))? TRUE:FALSE

[0107] bSideQisLargeBlk=((edge ​​type is vertica l and q0belongs to CU with width>=32)|| (edge ​​type is horizontal and q0belongs to CU with height>=32))?TRUE:FALSE

[0108] Based on bSidePisLargeBlk and bSideQisLargeBlk Therefore, condition 1 is defined as follows:

[0109] [ka]

[0110] [ka]

[0111] - First derive dp0, dp3, dq0, dq3 as HEVC. - (If p is 32 or more) dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1 dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1 - (If q is 32 or more) dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1 dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1

[0112] [ka]

[0113] If condition 1 and condition 2 are valid, any block uses a subblock. Check further to see if this is the case. If(bSidePisLargeBlk) If(mode block P==SUBBLOCKMODE) Sp=5 Other Sp=7 Other Sp=3 If(bSideQisLargeBlk) If(mode block Q==SUBBLOCKMODE) Sq=5 Other Sq=7 Other Sq=3

[0114] [ka]

[0115] [ka]

[0116] dpq is derived in the same way as in HEVC. sp3=Abs(p3-p0), derived similarly to HEVC. if (p is 32 or more) if(Sp==5) sp3=(sp3+Abs(p5-p3)+1)>>1 Other sp3=(sp3+Abs(p7-p3)+1)>>1 sq3=Abs(q0-q3) is derived in the same way as HEVC if(q is 32 or more) If(Sq==5) sq3=(sq3+Abs(q5-q3)+1)>>1 Other sq3=(sq3+Abs(q7-q3)+1)>>1

[0117] As in HEVC, StrongFilterCondition = (dpq is less than or equal to (β>>2), sp3+sq3 is less than or equal to (3*β>>5), and Abs(p0-q0) is less than or equal to (5*t C +1)>>1) Is it less than or equal to ?TRUE:FALSE.

[0118] 2.6.4 Stronger deblocking filter for luminance (for larger blocks) (designed for

[0119] Bilinear filters are used when samples on both sides of a boundary belong to one large block. A sample belonging to a large block is considered to be a vertical edge with a width ≥ 32. For horizontal edges, this is defined as when the height is ≥ 32.

[0120] The bilinear filter is shown below.

[0121] Next, in the above-mentioned HEVC deblocking, the boundary sample of the block, i=0 ~p in Sp-1 i , and q for j=0 to Sq-1 i (p i and q i is vertical Filtering edges The ith sample in a row, or filtering a horizontal edge. The ith sample in the sequence being matched is replaced by linear interpolation as follows:

[0122]

number

[0123] where tcPD i and tcPD j The term is based on the position-dependent clipping method described in Chapter 2.3.6. g j ,f i ,Middle s,t ,P s and Q s is shown in Table 2-3.

[0124] [Table 3]

[0125] 2.6.5 Chroma Deblocking Control

[0126] A strong chroma filter is used on both sides of the block boundary. The data is selected if both sides of the chroma edge are 8 (chroma position) or more, and three conditional The following decisions are satisfied: the first one is boundary-enhanced as well as the large block. The proposed filter is used to determine the degree of the chroma sample domain. This is applicable when the block width or height perpendicular to the block edge is 8 or more. The second and third ones are essentially the same as the HEVC luma deblocking decision. These are on / off and strong filter decisions, respectively.

[0127] In the first determination, the boundary strength is determined for chroma filtering as shown in Table 2-2. (bS) is modified. Check the conditions in Table 2-2 in order. If the conditions are met, , the remaining lower priority conditions are skipped.

[0128] If a big block boundary is detected, bS is equal to 2 or bS is equal to 1. Then, chroma deblocking is performed.

[0129] The second and third conditions are basically the HEVC luminance filter, as follows: This is similar to a decision.

[0130] In the second condition, we then derive d similarly to HEVC luma deblocking. The second condition is TRUE if d is less than β.

[0131] In the third condition, StrongFilterCondition is as follows: It is derived. dpq is derived in the same way as in HEVC. sp3=Abs(p3-p0), derived similarly to HEVC. sq3=Abs(q0-q3) is derived in the same way as in HEVC.

[0132] As in the HEVC design, StrongFilterCondition=(dp q is less than or equal to (β>>2), sp3+sq3 is less than or equal to (β>>3), and Abs(p0-q0) is less than or equal to (5*t C +1)>>1) or less.

[0133] 2.6.6 Strong Deblocking Filter for Chroma

[0134] A strong deblocking filter for chroma is defined as follows: p2'=(3*p3+2*p2+p1+p0+q0+4)>>3 p1'=(2*p3+p2+2*p1+p0+q0+q1+4)>>3 p0'=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3

[0135] The proposed chroma filter performs deblocking on a 4x4 chroma sample grid. conduct.

[0136] 2.6.7 Position-Dependent Clipping

[0137] Position-dependent clipping tcPD modifies 7, 5, and 3 samples at the boundaries. A luminance filtering process is applied to the output samples, which includes a strong and long filter. Given the error distribution, we use the quantization noise for samples that are expected to have higher quantization noise. It is proposed to increase the clipping value so that the true sample of the reconstructed sample value is It is expected to have higher deviations from the pull values.

[0138] For each P or Q bound filtered by the asymmetric filter, Based on the result of the decision-making process in the decoder, a position-dependent threshold table is sent to the decoder as side information. Selected from two tables provided (i.e., Tc7 and Tc3, summarized below) do. Tc7={6,5,4,3,2,1,1}; Tc3={6,4,2}; tcPD = (Sp = = 3)?Tc3:Tc7; tcQD=(Sq==3)?Tc3:Tc7;

[0139] For P or Q boundaries that are filtered with short symmetric filters, the smaller position Dependent thresholds are applied. Tc3={3,2,1};

[0140] After defining the threshold, the signal is filtered according to the tcP and tcQ clipping values. T i and q' i Clipping the sample values. p'' i =Clip3(p' i +tcP i ,p' i -tcP i ,p' i ); q'' j =Clip3(q' j +tcQ j ,q' j -tcQ j ,q' j );

[0141] Here, p' i , q' i is the filtered sample value, and p'' i , q'' j is the output sample value after clipping, and tcP i , tcP i is the VVC tc parameter The clipping threshold is derived from the tcPD and tcQD data. The function Clip3 is The clipping function, as specified in VVC.

[0142] 2.6.8 Sub-block Deblocking Adjustment

[0143] Parallel friendly deblocking and subblocking using both long filters To allow for blocking, the long filter is added to the brightness control for the long filter. Subblock deblocking (AFFINE, ATMVP, or DMVR) as shown The user is limited to modifying a maximum of five samples. Block deblocking is done by dividing blocks into subblocks on an 8x8 grid close to CU or implicit TU boundaries. The boundary correction is adjusted to be limited to a maximum of two samples on each side.

[0144] The following applies to sub-block boundaries that are not aligned with CU boundaries. If(mode block Q==SUBBLOCKMODE && edge != 0) { if(!(implicitTU &&(edge==(64 / 4)))) if(edge==2||edge==(orthogonalLength- 2)||edge==(56 / 4)||edge==(72 / 4)) Sp=Sq=2; Other Sp=Sq=3; Other Sp=Sq=bSideQisLargeBlk ?5:3 }

[0145] In this case, edges equal to 0 correspond to CU boundaries, edges equal to 2 or to the orthogonal length -2. The equal edges correspond to the boundary 8 samples of the subblock from the CU boundary. If an implicit partition of U is used, then the implicit TU is true.

[0146] 2.6.9 Limitation to 4CTU / 2CTU row buffers for luma / chroma

[0147] If a horizontal edge is aligned with a CTU boundary, the filtering of the horizontal edge is In this case, Sp=3, and in the case of chroma, Sp=1, Sq=1.

[0148] 2.7 Intra-mode coding in VVC

[0149] In order to capture arbitrary edge directions in natural video, we The number of available intra modes is extended from 33 to 65 as used in HEVC. The new directional modes not present in EVC are shown in Figure 12 by the red dotted arrows and are planar modes. The directional and DC modes remain the same. These denser intra prediction modes are , applies to all block sizes and to both luma and chroma intra prediction.

[0150] In VTM5, some conventional angular intra prediction modes are not supported for non-square blocks. For this reason, the wide-angle intra prediction mode is adaptively replaced by the wide-angle intra prediction mode. For more information, see Chapter 3.3.1.2.

[0151] In HEVC, all intra-coded blocks have a square shape and The length of each edge of is a power of 2. Thus, we use DC mode to predict the intra-predictor No division operations are required to generate In the general case, it is necessary to use a division operation for each block. To avoid division operations for the measurement, we use only the long side to calculate the average of non-square blocks. Calculate.

[0152] To keep the complexity of MPM list generation low, two available By considering the intra modes in the vicinity of the MPM, the intra mode with 6 MPMs is The encoding method is used. To build the MPM list, consider the following three aspects: i. Default intra mode ii. Nearby intra mode iii. Derived intra mode

[0153] Regardless of whether the MRL and ISP coding tools are applied, A unified 6-MPM list is used for the lock. The MPM list is based on the top left neighborhood. The mode of the left block is constructed based on the intra mode of the block on the left. If we set it to Left and the mode of the above block to Above, the integrated MPM list will be as follows: (The left and upper blocks are shown in FIG. 13.) - If no neighboring blocks are available, the intra mode defaults to Pla Set to nar. - If modes Left and Above are both non-angle modes, then: do. ○ MPM list→{Planar,DC,V,H,V-4,V+4} - One of the modes Left and Above is an angle mode and the other is a non-angle mode If so, then: ○ Set Max mode to Left and Above to a larger mode . ○ MPM list→{Planar,Max,DC,Max-1,Max+1, Max-2} - If both Left and Above have angles and are different, become. ○ Set Max mode to Left and Above to a larger mode . ○ When the difference between Left mode and Above mode is within the range of 2~62 ■ MPM list→{Planar,Left,Above,DC,Max- 1,Max+1} ○ Or, ■ MPM list→{Planar,Left,Above,DC,Max- 2,Max+2} - If Left and Above both have angles and are the same, become. ○ MPM list→{Planar,Left,Left-1,Left+1, DC, Left-2}

[0154] Also, the first bin of the mpm index code name is CABAC context encoded. The current intrablock is MRL-compliant, ISP-compliant, or normal A total of three contexts are used, depending on whether the block is an intra block or not.

[0155] During the process of generating the six MPM lists, pruning is used to remove duplicate modes. Allows only one mode to be included in the MPM list. 61 non-MPM modes For entropy coding of do.

[0156] In the case of chroma intra mode encoding, a total of eight Intra modes are allowed. These modes include five traditional intra modes and three Contains three component common linear model modes (CCLM, LM_A and LM_L) The chroma mode signaling and derivation process is shown in Table 2-4. Chroma mode encoding is In an I slice, the intra prediction mode of the luma block is directly dependent on the intra prediction mode of the luma block. Since the separation of block division structures for the and chroma elements is enabled, A lock may correspond to multiple luminance blocks. Therefore, in chroma DM mode, The intra prediction mode of the corresponding luminance block containing the center position of the chroma block is direct. Inherited.

[0157] [Table 4]

[0158] 2.8 Quantized Residual Block Differential Pulse Code Modulation (QR-BDPCM)

[0159] In JVET-M0413, quantized residual block differential pulse code modulation (Q R-BDPCM) has been proposed to efficiently code screen content. .

[0160] The prediction directions used in QR-BDPCM are vertical and horizontal prediction modes. Intra prediction can be supported in the same way as intra prediction, depending on the prediction direction (horizontal or vertical prediction). The residual is quantized and the quantized residual is and its predictor (horizontal or vertical) quantized value. This is For a block of size M (rows) × N (columns), r i,j , 0≦i≦M-1, 0≦j≦N-1 are filled from the boundary samples of the top or left block. Using unmapped samples, the pixel to the left of the prediction block is vertically (for each line in the prediction block, copy the values ​​from the neighbor above Let Q(r i , j ), 0 ≦i≦M-1, 0≦j≦N-1 is the residual r i , j represents a quantized version of The residual is the difference between the original block and the predicted block value. is applied to the quantified residual samples, resulting in element r i , j A modified M×N array R with ~ When the vertical BDPCM is signaled,

[0161]

number

[0162] For horizontal prediction, a similar rule applies: the residual quantized samples are calculated by the following formula: Obtained.

[0163]

number

[0164] Residual quantized sample r ~ i,j is sent to the decoder.

[0165] At the decoder, the above calculation is reversed to obtain Q(r i,j ), 0≦i≦M-1, 0≦j≦ N-1. For vertical prediction:

[0166]

number

[0167] For the horizontal direction:

[0168]

number

[0169] The dequantized residual Q -1 (Q(r i,j )) is added to the intra block prediction value and Generates the configured sample values.

[0170] The main advantage of this scheme is that the reverse DPCM can be calculated on-the-fly during coefficient parsing. You can do this by simply adding the predictors during coefficient parsing, or by This can be done after the analysis.

[0171] 2.9 Adaptive Loop Filter

[0172] In VTM5, the adaptive loop filter (ALF) with block-based filter adaptation ) is applied to the luminance components, which are then split into 4x4 blocks based on the direction and effect of the local gradient. Select one of 25 filters for each.

[0173] 2.9.1 Filter Shape

[0174] In VTM5, two diamond filter shapes (shown in Figure 14) are used. Luminance Element A 7x7 diamond is applied to the center of the pixel, and a 5x5 diamond is applied to the chroma element.

[0175] 2.9.2 Block Division

[0176] For the luminance component, we classify each 4x4 block into one of 25 classes. The index C is calculated based on the quantized value of its directionality D and activity A^ as follows: It is derived as follows.

[0177]

number

[0178] To calculate D and A^, we first use the 1-D Laplacian to find the horizontal, vertical and and compute the gradients in the two diagonal directions.

[0179]

number

[0180] In this case, i and j represent the coordinates of the top-left sample of a 4×4 intra block, and R (i,j) denotes the reconstructed sample at coordinate (i,j).

[0181] Subsampled 1-D Laplacian to reduce the complexity of block partitioning The same calculation is applied to the gradient calculation in all directions, as shown in Figure 15(a)-(d). Sub-sampling positions are used.

[0182] Then, set the Dmax and Dmin values ​​of the horizontal and vertical gradients as follows: do.

[0183]

number

[0184] The maximum and minimum values ​​of the two diagonal gradients are set as follows:

[0185]

number

[0186] To derive the value of the directivity D, these values ​​are compared with each other and with two thresholds t1 and t2. compare.

[0187]

number

[0188] The activity value A is calculated as follows:

[0189]

number

[0190] A is further quantized into the range of 0 to 4, and the quantized value is defined as A^.

[0191] For chroma elements in a picture, no classification method is applied, i.e. a single ALF function is used. A set of numbers is applied to each chroma element.

[0192] 2.9.3 Geometric Transformation of Filter Coefficients and Clipping Values

[0193] Before filtering each 4 × 4 luminance block, the gradient calculated for that block is Based on the arrangement, the filter coefficients f(k,l) and the corresponding filter clipping values ​​c( k,l) are subjected to a geometric transformation such as rotation or diagonal and vertical flip. This is equivalent to applying these transformations to the samples in the filter's support domain. By aligning the different blocks to which ALF is applied, The idea is to make something similar.

[0194] We introduce three geometric transformations including diagonal, vertical flip and rotation. Diagonal:f D (k,l)=f(l,k),c D (k, l) = c(l, k), (2-9-9) Vertical flip:f V (k,l)=f(k,Kl-1),c V (k,l) =c(k,Kl-1) (2-9-10) Rotation:f R (k,l)=f(Kl-1,k),c R (k, l) = c(K- l-1,k) (2-9-11)

[0195] In this case, K is the size of the filter, 0≦k, l≦K-1 are the coefficient coordinates, and the position (0,0) is the upper left corner, and position (K-1,K-1) is the lower right corner. Based on the gradient value calculated for the block, the filter coefficients f(k,l) and the clipping factor The relationship between the transformation and the four gradients in the four directions is shown in the table below. Stop.

[0196] [Table 5]

[0197] 2.9.4 Filter Parameter Signaling

[0198] In VTM5, the ALF filter parameters are stored in the Adaptive Parameter Set (APS). Up to 25 sets of intensity filter coefficients and crosstalk are signaled in one APS. Clipping value index and up to one set of chroma filter coefficients and clipping values To reduce bit overhead, different In the slice header, the filter coefficients of the current slice can be merged. The index of the APS to be used for the Rice is signaled.

[0199] The clipping value index decoded from the APS is a luminance table of clipping values. Luma table and Chroma table of clipping values You can now use the clipping function to determine the clipping values. The clipping values ​​depend on the internal bit depth. Specifically, the luminance table of clipping values and the chroma table is given by the following formula:

[0200]

number

[0201] where B is equal to the internal bit depth and N is the allowed clipping limit in VTM5.0. This is equal to 4, the number of binning values.

[0202] The filtering process may be controlled at the CTB level. The ALF is applied to the luminance CTB. One flag is always signaled to indicate whether or not one brightness CTB is enabled. Select one of 16 fixed filter sets and filter multiple APSs at once. You can select one filter set. The icon indicates which filter set is applied. The filter set index is signaled for the luma CTB as follows: A set of 16 fixed filters is predefined and hard-coded in both the decoder and the processor. Do it.

[0203] The filter coefficients are quantized with a norm equal to 128 to reduce the multiplication complexity. , the coefficient value for non-central locations is -2 7 ~2 7 -1 to fall within the range of the bitstream Conformance applies. The center position coefficient is not signaled in the bitstream and is 128 is considered to be equal to

[0204] 2.9.5 Filtering process

[0205] On the decoder side, when ALF is enabled for CTB, each sample in the CU (i,j) is filtered, resulting in sample value R'(i, j) is obtained.

[0206]

number

[0207] where f(k,l) represents the decoded filter coefficients and K(x,y) is the clipping coefficient. where c(k,l) is the decoded clipping parameter. and l vary between -L / 2 and L / 2, where L represents the filter length. The function K(x,y)=min(y,max(-y,x)), which is the function Clip3 Corresponds to (-y,y,x).

[0208] 2.9.6 Virtual Boundary Filtering for Line Buffer Reduction

[0209] In VTM5, to reduce the row buffer requirements for ALF, A modified block partitioning and filtering is used for the samples. Then, we shift the horizontal CTU boundary by “N” samples as shown in Figure 16. Thus, we define the virtual boundary as the row, N, equal to 4 for the luminance component and For , it is equal to 2.

[0210] We apply the modified block partitioning to the luminance component as shown in Figure 2-11. For the 1D Laplacian gradient calculation of the 4x4 block above the boundary, the sub-pixels above the virtual boundary are Similarly, we use only the 1D Laplacian gradient of the 4×4 block below the virtual boundary. For the distribution calculation, we use only the samples below the virtual boundary. Therefore, the 1D Laplacian Taking into account the reduced number of samples used for gradient calculation, the activity value Scale the quantization of A.

[0211] For the filtering process, a symmetric padding operation on the virtual boundary is performed on the luminance and As shown in Figure 17, the samples to be filtered are used for both the If it is below the virtual boundary, pad the neighboring samples that are above the virtual boundary. Meanwhile, the corresponding samples on the other side are also padded symmetrically.

[0212] 2.10 Sample Adaptive Offset :SAO)

[0213] The encoder uses the offsets specified for each CTB to calculate the deblocking filtered Apply sample adaptive offset (SAO) to the reconstructed signal. The HM encoder: First, determine whether to perform SAO processing on the current slice. When applied, each CTB is classified into one of five SAO types, as shown in Table 2-6. The concept of SAO is to classify pixels into categories and add an offset to the pixels in each category. The SAO calculation is a pixel-by-pixel calculation for SAO types 1-4. Edge offset (EO) using edge characteristics for classification and SAO type 5 and a band offset (BO) that uses pixel intensity for pixel classification. TB is sao_merge_left_flag, sao_merge_u Has SAO parameters including p_flag, SAO type, and four offsets If sao_merge_left_flag is equal to 1, the current CTB is merged with the SAO Reuse the type and CTB offset to the left. If g is equal to 1, the current CTB re-registers the SAO type and offset of the above CTB. Use it.

[0214] [Table 6]

[0215] 2.10.1 Operation of each SAO type

[0216] As shown in Figure 18, the edge offset is calculated using four 1-D3 pixel patterns: Classify the current pixel p by considering the edge direction information. From left to right, 0°, 90°, 13° Available in 5° and 45°.

[0217] Classify each CTB into five categories according to Table 2-7.

[0218] [Table 7]

[0219] Band Offset (BO) is the band of the most significant 5 bits of the pixel value. The 32 uniform pixels in one CTB region are used as the index. In other words, the pixel intensity range is divided into 32 equal bands from zero to the maximum intensity value. The pixel is divided into 8-bit pixels (e.g., 255 for 8-bit pixels). As shown in the figure, four adjacent bands are grouped together and each group is indicated by its leftmost position. The encoder searches all positions and eliminates distortion by compensating for the offset of each band. The group with the greatest reduction in is obtained.

[0220] 2.11 Unified Inter and Intra Prediction (CIIP)

[0221] In VTM5, if CUs are encoded in merge mode, there must be at least 64 CUs. (i.e., CU width × CU height is 64 or more), and C If both the U width and CU height are less than 128 luma samples, the inset is inserted into the current CU. An additional byte is added to indicate whether the combined inter / intra prediction (CIIP) mode is applied. As the name suggests, CIIP prediction is signaled by the inter prediction signal. The intra prediction signal is combined with the inter prediction signal, which is the same as that applied in the normal merge mode. Processing using CIIP mode P inter The inter prediction signal is derived in the plane After normal intra prediction processing in mode, the intra prediction signal P intra Derive: Then, the intra prediction signal and the inter prediction signal are combined using a weighted average, and the combined signal is In this case, the weight value is set as follows according to the coding mode of the upper left neighboring block (shown in FIG. 20): It is calculated as follows.

[0222] - isIntraTop if the top neighbor is available and is intra-coded Set isIntraTop to 1, or set isIntraTop to 0. - isIntraLeft if the left neighbor is available and is intra-coded Set isIntraLeft to 1, or set isIntraLeft to 0. -If (isIntraLeft+isIntraLeft) is equal to 2, then wt is 3. is set to. - Or, if (isIntraLeft+isIntraLeft) is equal to 1, If so, wt is set to 2. - Alternatively, set wt to 1.

[0223] The CIIP forecast is formed as follows. P CIIP =((4-wt)*P inter +wt*P intra +2)>>2 (3-1)

[0224] 2.12 Luminance Mapping with Chroma Scaling (LMCS)

[0225] In VTM5, a new processing block is added before the loop filter, the chroma scaler. An additional coding tool called Luminance Mapping by Coding (LMCS) is added. It has two main components: 1) Inclusion of luminance components based on an adaptive piecewise linear model. 1) Applying luminance-dependent chroma residual scaling for the chroma components; Figure 21 shows the LMCS architecture from the decoder's perspective. The light blue shaded blocks indicate areas where processing has been applied in the mapped domain. These are inverse quantization, inverse transform, luma intra prediction, and luma prediction and luma The unshaded blocks in Figure 21 are the original (i.e., These indicate where actions are applied in non-blocking (non-pinged) domains. Loop filters such as ALF and SAO, motion compensation prediction, chrominance intra prediction, Add the chroma prediction along with the chroma residual and store the decoded picture as a reference picture. The light yellow shaded blocks in Figure 21 represent the front and rear of the luminance signal. New LMCS functional block including mapping and luminance-dependent chroma scaling operations Like most other tools in VVC, LMCS uses the SPS flag. It can be enabled / disabled at the sequence level using

[0226] 3. Examples of problems to be solved by the embodiments

[0227] A palette flag usually imposes different restrictions and classifications on its entropy coding. Whether the current CU uses palette mode or not. However, in previous video coding standards, How to better encode the palette flags has not yet been fully explored.

[0228] Palette samples, when processed by post-loop filtering, give a visual It is possible that the device has a chefact.

[0229] For non-square blocks, the palette scanning order can be improved.

[0230] 4. Example of embodiment

[0231] The following detailed invention should be considered as examples to illustrate the general concept. These inventions should not be construed narrowly. Moreover, these inventions do not include any can be combined in a manner

[0232] 1. Use of palette mode for transform units / prediction units / coding blocks / regions The indication for may be coded separately from the prediction mode. In one example, the prediction mode may be coded before the indication of palette usage. . i. Alternatively, and in addition, the indication of palette usage may be conditional based on a prediction mode. may be signaled by 1. In one example, when the prediction mode is an intra block copy mode (all i.e., MODE_IBC), the signaling of the use of palette mode is skipped. Alternatively, if the current prediction mode is MODE_IBC, the palette It may be inferred that the instructions for use are false. 2. In one example, the prediction mode is an inter mode (i.e., MODE_INT If the RGB_PAL_USE_PALETTE_MODE is set to 0, the signaling of the indication to use the palette mode may be skipped. Alternatively, if the current prediction mode is MODE_INTER, the palette mode It may be inferred that the instructions for use are false. 3. In one example, the prediction mode is an intra mode (i.e., MODE_INT If the RA is selected, the signaling of the indication to use the palette mode may be skipped. Alternatively, if the current prediction mode is MODE_INTRA, the palette mode It may be inferred that the instructions for use are false. 4. In one example, the prediction mode is skip mode (i.e., skip-free). If lag is equal to 1, the signaling of the use of palette mode may be skipped. Alternatively, if the current CU also uses skip mode, It may be inferred that the indication of use of hot mode is false. 5. In one example, the prediction mode is an intra mode (e.g., MODE_INTR In case A), an indication of the use of the palette mode may be signaled. If the prediction mode is inter mode or intra block copy mode, The signaling of the indication of the use of the hot mode may be skipped. a) Alternatively, further, the prediction mode is an intra mode and pulse code modulation If not in (PCM) mode, an indication to use palette mode may be signaled. b) Alternatively, further, if the prediction mode is an intra mode, the palette model An indication to use the PCM mode may be signaled before an indication to use the PCM mode. If palette mode is applied, the signaling of the use of PCM mode is skipped. This is also fine. c) Alternatively, further, the prediction mode is inter mode or intra block If in copy mode, the signaling of the instruction to use palette mode may be skipped. stomach. 6. In one example, the prediction mode is an inter mode (e.g., MODE_INTE R), an indication of the use of palette mode may be signaled. a) Alternatively, if the prediction mode is an intra mode, the use of palette mode The signaling of the instruction for may be skipped. 7. In one example, when the prediction mode is an intra block copy mode, Alternatively, an indication of the use of the preview mode may be signaled. Signals the use of palette mode when in center or intra mode may be skipped. ii. Alternatively, further based on the type of picture / slice / tile group The indication of the use of palette mode may be conditionally signaled by the INTEGER_PALETTE_MODE_USE command. b. In one example, the prediction mode is coded after indicating the use of palette mode. Good too. c. In one example, the prediction mode is INTRA mode or INTER_MODE. If so, an indication of the use of palette mode may be signaled. In one example, the indication of palette mode usage is a skip flag, a prediction mode , and may be encoded after the PCM mode flag. ii. In one example, the indication of palette mode usage is provided by a skip flag, a predictive mode flag, It may be coded after the bitstream and before the PCM mode flag. iii. In one example, if the current block is coded in intra mode, An indication of Red mode and IBC mode may also be signaled. 1. In one example, one bit flag indicates whether the mode is palette or IBC mode. It may be signaled to indicate whether it is signaled or not. 2. In one example, the bit flag signaling indicates the block dimension, one tile / IBC or Palette mode for tile groups / slices / pictures / sequences It may be skipped under certain conditions, such as whether or not the d. In one example, the prediction mode (e.g., whether it is an intra mode or The pixel size (whether it is a palette mode or not) is coded first, then it is coded whether it is a palette mode or not. Some conditional signaling is performed. In one example, if the prediction mode is an intra mode, it is a palette mode. Another flag may further be signaled to indicate whether the 1. In one example, one video data unit (e.g., a sequence / picture) / tilegroup / tile), the palette mode is enabled by the "another flag " may be signaled. 2. In one example, the "separate flag" is signaled under block size conditions. Good too. 3. Alternatively, if it is not palette mode, then it is PCM mode. A flag may further be signaled to indicate whether or not 4. In one example, the "different flag" is context-based according to the information of neighboring blocks. Alternatively, the "separate flag" may be coded in only one context. Alternatively, the "another flag" may be bypass coded, That is, it may be without context. ii. Alternatively, if the prediction mode is an inter mode, is it an IBC mode? Another flag may further be signaled to indicate whether 1. In one example, one video data unit (e.g., a sequence / picture) / tile group / tile) when IBC mode is enabled, "another flag" may be signaled. 2. In one example, the "separate flag" is signaled under block size conditions. Good too.

[0233] 2. It is proposed to add palette mode as an additional candidate prediction mode. There is no need to signal the use of the predictive mode separately from the predictive mode. In one example, the prediction mode is intra slice / I picture / intra tile Includes Intra, Intrablock Copy, and Palette modes for groups good. b. Alternatively, the prediction mode can be an intra slice / I picture / intra tile group. This may include intra and palette modes for grouping. c. In one example, the prediction modes are intra, intrablock for 4×4 blocks, The following modes may also be included: backcopy, backcopy, and palette mode. d. In one example, the prediction mode is inter-slice and / or B-picture / tile Intra, Inter, Intrablock Copy and Palette Modes for Groups may include: e. In one example, the prediction mode is inter-slice / P and / or B picture / time may include intra, inter, and intra block copy modes for group . f. Alternatively, the prediction modes can be intra, inter, intra block copy, and and palette mode. g. In one example, inter modes are not included in the prediction modes for a 4x4 block. Good too. h. In one example, if the block is not coded as skip mode (this is the case (This is a special case of the counter mode), the prediction mode index is In some embodiments, one or more video streams may be coded in a context-based manner. The signaling of the option is based on the block dimensions (e.g., 4×4) or the prediction mode that is to be disabled (e.g., For example, IBC mode is disabled and the corresponding bin is skipped. It may be skipped. i. In one example, the four modes of binarization are Intra(1), Inter(00), , IBC(010), and Pallet(011). Here, the three bins are is used, with each bit corresponding to one bin value. ii. In one example, the four mode binarization is performed by using the intra ( 10), Inter (00), IBC (01), and Palette (11). Here, two bins are used, with each bit corresponding to one bin value. iii. In one example, the current slice is an intra slice and in the SPS If IBC is not enabled, palette and intra mode binarization will are defined as Intra(1) and Intra(0), where one bin is used. iv. In one example, if the current slice is not intra slice and the SPS If IBC is not enabled, the binarization for palette, inter and intra modes is , intra(1), inter(00), and Palette(01). Here, two bins are used, with each bit corresponding to one bin value. v. In one example, the current slice is an intra slice and the I If BC is enabled, palette and intra mode binarization is done using IBC(1). , Palette(01), Intra(00), where two bins are used. where each bit corresponds to one bin value. vi. In one example, the four modes of binarization are Inter(1), Intra(01 ), IBC(001), and Palette(000). Here, the three bipartites are A bin is used, with each bit corresponding to one bin value. vii. In one example, the four modes of binarization are Intra(1), Inter(0 1), IBC(001), and Pallet(000). Here, the three Bins are used, with each bit corresponding to one bin value. viii. In one example, the binarization of the four modes is performed by interleaving the Defined as -(0), Intra(10), IBC(111), and Palette(110) Here, three bins are used, with each bit corresponding to one bin value.

[0234] 3. Signaling the use of Pallet / IBC mode depends on information from other modes. Good too. In one example, the current prediction mode is an intra mode and not an IBC mode. In that case, an indication to use the palette mode may be signaled. b. In one example, the current prediction mode is intra mode and not palette mode. If not, an indication to use the IBC mode may be signaled.

[0235] 4. How to signal mode information depends on slice / picture / tile group may depend on the type of In one example, if it is an I-slice intra tile group, one flag may be signaled to indicate whether it is in IBC mode, if not, another flag may be further signaled to indicate whether it is in palette mode or intra mode. b. In one example, if it is an I-slice / intra-tile group, One flag may be signaled to indicate whether the is in intra mode. If not in intra mode, indicates whether it is in palette or IBC mode Another flag may further be signaled such as:

[0236] 5. Instructions to use Palette Mode may be signaled and / or guided based on the following conditions: It may be issued. a. Block dimensions of the current block i. In one example, the indication to use palette mode is that the width*height is less than or equal to a threshold (e.g. , 64*64) blocks may be signaled only. ii. In one example, the indication to use palette mode is that both the width and height are below a threshold. It may be signaled only for blocks that are equal to or greater than (eg, 64). iii. In one example, the indication to use palette mode is true if all of the following conditions are true: It may be signaled only for blocks where . 1. The width and / or height is greater than or equal to a threshold, e.g. 16. 2. Width and / or height are below a threshold (e.g. 32 or 64) iv. In one example, the indication to use palette mode is a block whose width is equal to its height. (i.e., square blocks) may be signaled only. b. Prediction mode of the current block c. Quantization parameters for the current block d. Palette flags of neighboring blocks e. Intra block copy flags of neighboring blocks f. Color format indication (e.g. 4:2:0, 4:4:4) g. Split / Double Coding Tree Structure h. Slice / tile group type and / or picture type

[0237] 6. The indication to use IBC mode is signaled and / or derived based on the following conditions: This may be done. a. Block dimensions of the current block i. In one example, the indication to use IBC mode is that both width or height are greater than 128. It may be signaled only for blocks smaller than 1. b. Prediction mode of the current block c. Quantization parameters for the current block d. Palette flags of neighboring blocks e. Intra block copy flags of neighboring blocks f. Color format indication (e.g. 4:2:0, 4:4:4) g. Split / Double Coding Tree Structure h. Slice / tile group type and / or picture type

[0238] 7. Palette mode is not affected by intra mode (e.g. MO) in the deblocking decision process. DE_INTRA). In one example, when the p-side or q-side samples are coded in palette mode , the boundary strength is set to 2. b. In one example, both p-side and q-side samples are coded in palette mode. If so, the boundary strength is set to 2. c. Alternatively, the palette mode may be used in the deblocking decision process to determine whether the inter mode ( For example, it may be treated as MODE_INTER.

[0239] 8. Palette mode is a separate mode (e.g. MO) in the deblocking decision process. DE_PLT). In one example, the p-side and q-side samples are coded in palette mode. , the boundary strength is set to 0. Alternatively, if the samples on one side are coded in palette mode, the boundary strength is It is set to 0. b. In one example, the p-side samples are coded in IBC mode and the q-side samples are When coded in palette mode, the boundary strength is set to 1, and vice versa. c. In one example, the p-side samples are coded in intra mode and the q-side samples are coded in If is coded in palette mode, the boundary strength is set to 2, and vice versa.

[0240] 9. Palette mode is treated as a conversion skip block in the deblocking process. This is also fine. Alternatively, the palette mode may be used to deblock the BDPCM blocks. may be treated as

[0241] 10. Based on slice / tile group / picture level flags, one block The integrator may signal and / or derive an indication of the use of palette mode for the [ka] b. In one example, this flag is set to true for a slice / tile group / picture. Alternatively, in addition, such a flag If indicates that the palette mode is disabled, the palette mode for one block is This option skips signaling the use of the palette mode and assumes that the palette mode is invalid.

[0242] 11. Based on slice / tile group / picture level flags, one block Intra-block copy mode (IBC) is used to signal and / or may be derived. [ka] b. In one example, this flag is set to I for a slice / tile group / picture. Indicates whether BC mode is enabled. Alternatively, in addition, such a flag , indicates that IBC mode is disabled, and indicates that IBC mode is used for one block. It skips the signaling used and assumes that IBC mode is disabled.

[0243] 12. The samples associated with one palette entry are the original / reconstructed samples. The bit depth may be different from the internal bit depth and / or bit depth of the input stream. In one example, a sample associated with 1 may have a bit depth equal to N Having shown that, the following may apply: i. In one example, N may be an integer (e.g., 8). ii. In one example, N is the internal bit depth of the original / reconstructed samples, and and / or may be greater than the bit depth. iii. In one example, N is the internal bit depth of the original / reconstructed samples and and / or bit depth. iv. In one example, N may depend on: 1. Block dimensions of the current block 2. Quantization parameters for the current block 3. Color format indication (e.g. 4:2:0, 4:4:4) 4. Split / Double Coding Tree Structure 5. Slice / tile group type and / or picture type 6. Palette Entries 7. Predictive Palette Entries 8. Color Component Index b. In one example, samples associated with multiple palette entries are The depth of the slit may be 10 mm. i. In one example, C0 and C1 are the two palette entries in the current palette. may have bit depths equal to b0 and b1, respectively. It doesn't have to be that way. 1. In one example, b0 is the internal bit depth of the original / reconstructed samples and and / or b1 may be larger / smaller than the original / Larger / smaller than the internal bit depth and / or bit depth of the reconstructed samples It's okay. c. In one example, in palette mode, samples are associated with palette entries. The sample may be reconstructed according to the shifted values ​​of the attached samples. i. In one example, the sample may be reconfigured by left-shifting the sample in the palette entry by M bits. ii. In one example, the reconfigured value is (C <<< M) + (1 << (M - 1)), where C is the palette entry in this case. iii. In one example, the sample may be reconfigured by right-shifting the sample in the palette entry by M bits. iv. In one example, the reconfigured value may be clip(((C + (1 << (M - 1))) >> M), 0, (1 << N) - 1), where C is the palette entry and N is the bit depth of the reconfiguration in this case. v. Alternatively, further, in one example, M may depend on the difference in bit depth between samples associated with the palette entry and the internal bit depth of the reconfigured sample / original sample. 1. In one example, M may be equal to the internal bit depth minus the bit depth of the sample in the palette entry. 2. In one example, M may be equal to the bit depth of the sample in the palette entry minus the internal bit depth. 3. In one example, M may be equal to the bit depth of the original sample minus the bit depth of the sample in the palette entry. 4. In one example, M may be equal to the bit depth of the sample in the palette entry minus the bit depth of the original sample. 5. In one example, M may be equal to the bit depth of the reconfigured sample minus the bit depth of the sample in the palette entry. 6. In one example, M may be equal to the bit depth of the original sample minus the bit depth of the reconfigured sample. 7. In one example, M may be equal to the bit depth of the palette entry minus the bit depth of the reconfigured sample. 8. In one example, M may be equal to the bit depth of the palette entry minus the bit depth of the original sample. 9. In one example, M may be equal to the bit depth of the reconfigured sample minus the bit depth of the original sample. 10. In one example, M may be equal to the bit depth of the original sample minus the bit depth of the palette entry. 11. In one example, M may be equal to the bit depth of the palette entry minus the bit depth of the internal bit depth. 12. In one example, M may be equal to the bit depth of the internal bit depth minus the bit depth of the palette entry. 13. In one example, M may be equal to the bit depth of the reconfigured sample minus the bit depth of the internal bit depth. 14. In one example, M may be equal to the bit depth of the internal bit depth minus the bit depth of the reconfigured sample. 15. In one example, M may be equal to the bit depth of the original sample minus the bit depth of the reconfigured sample. 16. In one example, M may be equal to the bit depth of the reconfigured sample minus the bit depth of the original sample. 17. In one example, M may be equal to the bit depth of the palette entry minus the bit depth of the reconfigured sample. 6. In one example, M is determined by the bit depth of the samples in the palette entry. It may be equal to the bit depth minus the bit depth of the reconstructed samples. vi. In one example, M may be an integer (eg, 2). vii. Alternatively, in one example, M may depend on: 1. Block dimensions of the current block 2. Quantization parameters for the current block 3. Color format indication (e.g. 4:2:0, 4:4:4) 4. Split / Double Coding Tree Structure 5. Slice / tile group type and / or picture type 6. Palette Entries 7. Predictive Palette Entries 8. Sample position in a block / picture / slice / tile 9. Color Component Index viii. In one example, a sample-based lookup in a palette entry The pop operation may be used during the reconstitution of a sample. 1. In one example, the value in the lookup table is the SPS / VP of the LCU. S / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / G The notification may be signaled in the group. 2. In one example, the value in the lookup table is the SPS / VP of the LCU. S / PPS / Picture Header / Slice Header / Tile Group Header / LCU Row / G It may be inferred in the group.

[0244] 13. Signaled / Derived Quantization Parameter (QP) of Palette Coding Block ) are first clipped etc. before being used to derive the escape pixel / sample. It may be modified. In one example, the QP range applied to a palette-coded block is mode and / or may be treated similarly to the BDPCM mode. b. In one example, the QP applied to the palette-coded block is max(Qp,4 +T), where T is an integer value and Qp is the number of iterations for this block. is the signaled or derived quantization parameter for i. In one example, T may be a predefined threshold. [ka]

[0245] 14. How to encode escape samples / symbols is a quantum-switchable bypass may be unified whether or not is enabled. In one example, the escape sample may be signaled with a fixed length. b. In one example, the escape sample is signaled with a fixed length using N bits. This may also be the case. i. In one example, N can be an integer (e.g., 8 or 10) and is defined as follows: You may depend on it. 1. SPS / VPS / PPS / Picture Header / Slice Header / Timing of LCU Messages signaled in the LCU group header / LCU line / group 2. Internal Bit Depth 3. Input Bit Depth 4. Block dimensions of the current block 5. Quantization parameters for the current block 6. Color format indication (e.g. 4:2:0, 4:4:4) 7. Split / Double Coding Tree Structure 8. Slice / Tile Group Type and / or Picture Type c. In one example, the code length to signal one escape pixel / sample is , may depend on the internal bit depth. Alternatively, the code length to signal one escape pixel / sample is , may depend on the input bit depth. d. In one example, the code length to signal one escape pixel / sample is , may depend on the quantization parameter. i. In one example, code for signaling one escape pixel / sample The length may be f(Qp). 1. In one example, the function f is defined as (internal bit depth - (Qp - 4) / 6). It may be defined as

[0246] 15. Quantization and quantization for palette-coded and non-palette-coded blocks / or the inverse quantization process may be defined in a different way. In one example, instead of using a quantization process for the transform coefficients or residuals, A bit shift may be used to quantize the escape samples. b. In one example, instead of using an inverse quantization process for the transform coefficients or residuals, A left bit shift may be used to dequantize the escape samples. c. On the encoder side, the following may be applied: i. In one example, the escape pixel / sample value is signaled as f(p,Qp). where p is the pixel / sample value. ii. In one example, a function f is defined as p>>(((Qp-4) / 6). where p is the pixel / sample value and Qp is the quantization parameter. iii. In one example, escape pixel / sample values ​​are signaled as p>>N where p is the pixel / sample value. 1. In one example, N may be an integer (e.g., 2) depending on: Good too. a) SPS / VPS / PPS / Picture Header / Slice Header / Task of LCU Messages signaled in file group headers / LCU lines / groups b) Internal Bit Depth c) Input bit depth d) Block dimensions of the current block e) Quantization parameters for the current block f) Color format indication (e.g., 4:2:0, 4:4:4) g) Split / Double Coding Tree Structure h) Slice / tile group type and / or picture type d. At the decoder side, the following may be applied: i. In one example, the escape pixel / sample value is expressed as f(bd,p,Qp). It may be signaled. 1. In one example, the function f is clip(0,(1<<(bd-(Qp-4) / 6))-1,(p+(1<<(bd-1)))>>((Qp-4) / 6)) This may also be the case. ii. In one example, the escape pixel / sample value is reconstructed as f(p,Qp). where p is the decoded escape pixel / sample value. 1. In one example, f may be defined as p<((Qp-4) / 6). iii. In one example, the escape pixel / sample value is f(bd,p,Qp). where p is the decoded escape pixel / sample value. be. 1. In one example, the function clip is clip(0,(1< <bd)-1,p< <((Qp-4) / 6)). iv. In the above example, the clip function clip(a,i,b) is (i <a?a :(i>b?b:i)). v. In the above example, the clip function clip(a,i,b) is (i<=a?a :(i>=b?b:i)). vi. In the above example, p is the pixel / sample value and bd is the internal bit depth or is the input bit depth and Qp is the quantization parameter.

[0247] 16. The palette coding block uses 1 during the list construction process in maximum probability mode (MPM). Alternatively, the frame may be treated as a single intra block (eg, MODE_INTRA). In one example, the index of neighboring (adjacent or non-adjacent) blocks is used during construction of the MPM list. When fetching intramode, neighboring blocks (e.g., to the left and / or above) are If the file is encoded in intraframe mode, set it to the default mode, traditional intraframe encoding. The MODE_INTRA block may be treated as a separate block (e.g., MODE_INTRA). In one example, the default mode is DC / PLANAR / VER / HOR mode. It may be a code. ii. In one example, the default mode may be one intra prediction mode. good. iii. 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 / It may be signaled in the video coding unit.

[0248] 17. The palette coding block uses non- may be treated as an intra block (e.g., with prediction mode equal to MODE_PLT) may be treated as a block with In one example, the intra mode of neighboring blocks is falsified during construction of the MPM list. When you click, one neighboring block (e.g., to the left and / or above) is in palette mode. If it is coded in inter mode, it is treated as if it were coded in inter mode. may be treated in a similar manner. b. In one example, the intra mode of neighboring blocks is falsified during construction of the MPM list. When you click, one neighboring block (e.g., to the left and / or above) is in palette mode. If the data is encoded in IBC mode, it should be treated as if it were encoded in the same or similar manner as the data encoded in IBC mode. may be handled in such a manner.

[0249] 18. Chroma blocks coded in DM mode correspond to the chroma blocks coded in palette mode. The selected luma block may be interpreted as having the default intra prediction mode. In one example, the corresponding luma block coded in palette mode is If the block is coded in DM mode, it is an intra block (e.g., MODE_IN TRA) or a palette block (e.g., MODE_PLT). b. In one example, the default prediction mode is DC / PLANAR / VER / HOR It may be a mode. c. In one example, the default prediction mode may be one intra prediction mode. good. d. In one example, the default prediction mode is DPS / SPS / VPS / PPS / A PS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit ( LCU) / coding unit (CU) / LCU row / LCU group / TU / PU block / This may be signalled in the video coding unit.

[0250] 19. Palette coding blocks are based on history-based motion vector prediction (HMVP), List building for MERGE and / or Advanced Motion Vector Prediction (AMVP) modes During this period, the block may be treated as unavailable. In one example, an unavailable block means a block that does not have motion information. or its motion information cannot be used as a prediction for other blocks. b. In one example, blocks coded in palette mode are During list construction in E and / or AMVP mode, intra-block (e.g., MODE_INTRA) or palette block (e.g., MODE_PLT ) may be treated as Alternatively, in one example, HMVP, MERGE and / or AMVP lists When fetching motion information of neighboring blocks during the construction of a frame, the frame is coded in palette mode. The neighboring blocks may be treated as having invalid reference indices. ii. Alternatively, in one example, HMVP, MERGE and / or AMVP links If motion information of neighboring blocks is fetched during the construction of the block, it is coded in palette mode. The neighboring blocks are treated as inter-blocks with a reference index of 0. Good too. iii. Alternatively, in one example, HMVP, MERGE and / or AMVP When building the list of modes, the motion information of neighboring blocks is fetched. The neighboring blocks coded with the 3D code are treated as inter blocks with zero motion vectors. This is also fine.

[0251] 20. How to handle blocks coded in palette mode (e.g., see above) The decision on whether and / or how to apply the methodology will be based on: Good too. a. Visual content (e.g., screen content or natural content) b. In one example, the default mode is DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit (LC U) / coding unit (CU) / LCU row / LCU group / TU / PU block / image This may be signalled in the coding unit. c. CU / PU / TU / block / video coding unit location d. Block dimensions of the current block and / or its neighboring blocks e. Block shapes of the current block and / or its neighboring blocks f. Color format indication (e.g. 4:2:0, 4:4:4, RGB, YUV etc.) g. Coding tree structure (e.g., dual tree or single tree) h. Slice / tile group type and / or picture type i. Color components (e.g., may only apply to luma and / or chroma components) . j. Time layer ID k. Standard Profile / Level / Tier

[0252] 21. The context coding bins for a palette coding block are contained within a certain range. The number of users may be restricted to a certain number. In one example, a counter is configured to record the number of context-encoded bins. If the counter exceeds a threshold, the context code is assigned to one block. Instead of using the encoding, bypass encoding is applied. Alternatively, allocate a NumColorComp counter and use NumColorComp may record the number of bins that are context coded using The number of color components encoded in one block (e.g., one in the YUV format). For CU, NumColorComp is set to 3). ii. Alternatively, the counter may be initialized to zero and one bin may be After encoding, the counter is incremented by one. b. Alternatively, the counter may be initialized with some value greater than zero (e.g., W*H*K). After encoding one bin in the context, the counter is decremented by 1. If the counter is less than or equal to T, the bypass code is used instead of using the context coding. Encryption is applied. In one example, T is set to 0 or 1. ii. In one example, T is set according to the information decoded or the number of coding passes, etc. It is determined. c. In one example, the palette coding block is , compared to TS coded blocks or non-TS coded blocks, with the same or different thresholds. It may have. i. In one example, the number of context coding bins for the palette coding block may be set to (W*H*T), where W and H are each one block. In one example, T is the width and height of a TS coding block. The offset is set to be the same as that used for the metric, e.g., 1.75 or 2. ii. In one example, the number of context coding bins in a palette coding block is It may be set to (W*H*NumColorComp*T), where W and H are the width and height of one block, and NumColorComp is the The number of color components coded in this block (for example, one CU in YUV format). (NumColorComp is set to 3) and T is an integer. where T is set to be the same as that used for the TS coding block, e.g. , 1.75 or 2. d. In one example, the threshold of the palette coding block is determined based on the observation of the context coding bin. From the point of view, it may be smaller than a TS coded block or a non-TS coded block. e. In one example, the threshold for the palette coding block is set to the context coding bin (c From the perspective of ontext coded bins, TS coded blocks or non-TS coded blocks The block may be larger than the block size.

[0253] 22. The palette coding block uses the neighboring intra blocks in CIIP mode. In the statistical process, it is treated as a non-intra block (e.g., MODE_PLT (The block is treated as having a prediction mode equal to In one example, in CIIP mode, the number of nearby intra blocks is counted. When fetching the intra-mode of a neighboring block, one neighboring block (e.g., the left and / or above) are coded in palette mode, it is coded in inter mode It may be treated in the same or similar manner as it was encoded. b. In one example, while counting neighboring intra blocks in CIIP mode, When fetching the intra-mode of a neighboring block, one neighboring block (e.g., the left and / or above) are coded in palette mode, then they are coded in IBC mode. may be treated in the same or similar manner as if it were encrypted. c. Alternatively, the palette coding block may use neighboring intra-pixels in CIIP mode. In the process of calculating the block statistics, it may be treated as an intra block.

[0254] 23. Pre- and / or post-filtering processing for palette-coded samples It is suggested to skip it. In one example, the palette-coded samples may not be deblocked. b. In one example, the palette-coded samples are offset compensated in the SAO process. It does not have to be compensated. c. In one example, the palette-encoded samples are filtered in the ALF process. It does not have to be done. i. In one example, classification in the ALF process skips palette-encoded samples. You can also press d. In one example, LMCS may be disabled for palette coded samples. stomach.

[0255] 24. It is proposed to add more scan orders in palette mode. In one example, a reverse horizontal cross scan order may be used, defined as follows: i. In one example, the scan direction for odd rows may be from left to right. ii. In one example, the scan direction for the even rows may be from right to left. iii. In one example, the scan order for a 4x4 block was as shown in FIG. This is also fine. b. In one example, a reverse vertical traverse scan order may be used, defined as follows: i. In one example, the scan direction for odd rows may run from top to bottom. ii. In one example, the scan direction for the even rows may be from bottom to top. iii. In one example, the scan order for a 4x4 block was as shown in FIG. This is also fine.

[0256] 25. The permissible scan order combinations may depend on the shape of the block. In one example, if the ratio between the width and height of one block is greater than a threshold, Only the horizontal traverse scan order and the reverse horizontal traverse scan order may be applied. In one example, the threshold value is equal to 1. ii. In one example, the threshold value is equal to 4. b. In one example, if the ratio between the height and width of one block is greater than a threshold, Only vertical traverse and reverse vertical traverse scan orders may be applied. In one example, the threshold value is equal to 1. ii. In one example, the threshold value is equal to 4.

[0257] 26. In QR-BDPCM processing, one intra prediction direction and / or one It is proposed to only allow the scanning direction. In one example, in a block with a width greater than its height, only the vertical direction is allowed. can be. b. In one example, for blocks whose width is less than their height, only the horizontal orientation is allowed. c. In one example, QR-BDPCM direction indication is inferred for non-square blocks. It may be measured. i. In one example, the QR-BDPCM direction indication further includes a width greater than height indication. For larger blocks, vertical inference may be made. ii. In one example, the QR-BDPCM direction indication further comprises a width less than a height. For small blocks, horizontal guesses may be made.

[0258] 27. The methods in bullets 24, 25, and 26 are for w*Th ≥ h or h*Th ≧w, where w and h are the block sizes, respectively. where Th is the width and height of the block, and Th is the threshold value. In one example, Th is an integer (e.g., 4 or 8) and may be based on: stomach. i. Video content (e.g., screen content or natural content); ii. In one example, the default mode is DPS / SPS / VPS / PPS / A PS / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit ( LCU) / coding unit (CU) / LCU row / LCU group / TU / PU block / This may be signalled in the video coding unit. iii. CU / PU / TU / Block / Video Coding Unit Location iv. Block dimensions of the current block and / or its neighboring blocks v. Block shapes of the current block and / or its neighboring blocks vi. Color format indication (e.g. 4:2:0, 4:4:4, RGB, Y UV, etc.) vii. Coding tree structure (e.g., dual tree or single tree) viii. Slice / Tile Group Type and / or Picture Type ix. Color components (e.g., may only be applied to the luminance and / or chroma components) stomach). x. Time layer ID xi. Standard Profiles / Levels / Tiers

[0259] 5. Additional Embodiments

[0260] 5.1 Embodiment 1

[0261] This chapter describes how the video bitstream representation compares to the baseline bitstream syntax. The modifications are shown in bold italic text. The input fields are highlighted.

[0262] [Table 8]

[0263] [ka]

[0264] [Table 9]

[0265] [ka]

[0266] [Table 10]

[0267] [Table 11]

[0268] [ka]

[0269]

Table 12

[0270]

change

[0271]

Table 13

[0272]

Table 14

[0273]

Table 15

[0274]

Table 16

[0275]

Table 17

[0276]

change

[0277]

change

[0278]

Table 18

[0279] [Table 19]

[0280] 5.2 Embodiment #2

[0281] In this embodiment, modeType will be described. The newly added text is Shown in bold italics.

[0282] [ka]

[0283] 5.3 Example #3

[0284] In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. Newly added text is in bold italics, deleted text is in bold italics. The text is marked with "[[]]".

[0285] [Table 20]

[0286] 5.4 Example #4

[0287] In this embodiment, the syntax of the coding unit is described. pred_mode_plt_flag is signaled after _mode_ibc_flag and pred_mode_pl is set only if the current prediction mode is MODE_INTRA. t_flag is signaled. Newly added text is in bold italics. and the deleted text is marked with "[[]]".

[0288] [Table 21]

[0289] 5.5 Embodiment #5

[0290] In this embodiment, the syntax of the coding unit is described. _mode_ibc_flag is signaled after pred_mode_plt_flag. Newly added text is in bold italics, deleted text is in bold italics. The target is marked with "[[]]".

[0291] [Table 22]

[0292] 5.6 Example #6

[0293] In this embodiment, the syntax of the coding unit is described. pred_mode_ibc_flag is signaled after _mode_plt_flag and pred_mode_pl is set only if the current prediction mode is MODE_INTRA. t_flag is signaled. Newly added text is in bold italics. and the deleted text is marked with "[[]]".

[0294] [Table 23]

[0295] 5.7 Example #7

[0296] In this embodiment, the syntax of the coding unit is described. When the mode is MODE_INTRA, pred_mode_plt_flag and p red_mode_ibc_flag is signaled. Newly added text is in bold. The deleted text is shown in italics and the deleted text is marked with "[[]]".

[0297] [Table 24]

[0298] 5.8 Example #8

[0299] In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag and pred_mode_ibc_flag are predefined Signaled if the measurement mode is not MODE_INTRA. Deleted text is marked with “[[]]”. do.

[0300] [Table 25]

[0301] 5.9 Example #9

[0302] In this embodiment, the syntax of the coding unit is described. When the mode is MODE_INTER, pred_mode_plt_flag and and pred_mode_ibc_flag are signaled. New text added is shown in bold italics and deleted text is marked with "[[]]". .

[0303] [Table 26]

[0304] 5.10 Example #10

[0305] In this embodiment, the meaning of pred_mode_plt_flag will be explained. Added text is in bold italics.

[0306] [ka]

[0307] 5.11 Example #11

[0308] In this embodiment, the meaning of pred_mode_plt_flag will be explained. Added text is in bold italics.

[0309] [ka]

[0310] 5.12 Example #12

[0311] In this embodiment, the derivation of the boundary strength will be described. are shown in italics.

[0312] 8.8.3.5 Boundary Filtering Strength Derivation Process

[0313] The inputs to this process are: One picture sample array recPicture, Specifies the top-left sample of the current coding block relative to the top-left sample of the current picture The position (xCb, yCb) to be coded, the variable nCbW that specifies the width of the current coding block, The variable nCbH specifies the height of the coding block, the vertical (EDGE_VER) edge is the variable that specifies which horizontal (EDGE_HOR) edges are to be filtered. geType, a variable cIdx that specifies the color components of the current coding block, two dimensions (nCb W) x (nCbH) array of edgeFlags.

[0314] The output of this process is a two-dimensional (nCbW) × (nCb H) Array bS. ...

[0315] Variable bS[xD i ][yD j ] is derived as follows: If cIdx is equal to 0 and samples p0 and q0 are both If the coding block contains a flag equal to 1, then bS[xD i ][yDj] is , is set equal to 0. Alternatively, sample p0 or q0 is a coding unit coded in intra prediction mode. If it is in the coding block of the bit, bS[xD i ][yDj] is set equal to 2 can be. Alternatively, the block edge is also a transformation block edge, and the sample p0 or q0 is If ciip_flag is equal to 1 in the coding block, then bS[xD i ][yDj] is set equal to 2. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 , bS[xD i ][yDj ] is set equal to 1.

[0316] [ka]

[0317] Alternatively, the prediction mode of the coding sub-block containing the sample p0 is different from the prediction mode of the coding sub-block containing the sample q0. If the prediction mode of the coding subblock containing the i ][yD j ] is equal to 1 It is set correctly. Alternatively, if cIdx is 0 and one or more of the following conditions are true, then bS[ xD i ][yD j ] is set equal to 1. the coding sub-block containing sample p0 and the coding sub-block containing sample q0 Both are coded in IBC prediction mode and are used to predict the two coding sub-blocks. The absolute difference in the horizontal or vertical components of the motion vectors generated must be greater than or equal to 4 in units of 1 / 4 luma samples. be. For the prediction of the coding sub-block containing sample p0, A different reference picture or a different number of motion vectors may be used for the prediction of the subblock.

[0318] NOTE 1 – The reference pictures used for the two coding subblocks may be the same or different. Either an index into reference picture list 0 is used to form the prediction, or Whether the reference picture list is formed using an index into the reference picture list 1 or the reference picture list 2, and Which picture is referenced is always the same, regardless of whether their index positions in the picture list are different. The judgement is based solely on whether

[0319] NOTE 2 – The prediction of the coding sub-block whose top left sample contains (xSb,ySb) The number of motion vectors used for estimation is PredFlagL0[xSb][ySb]+Pr Equivalent to edFlagL1[xSb][ySb].

[0320] One motion vector is used to predict the coding sub-block that contains sample p0. One motion vector is used to predict the coding sub-block containing sample q0. The absolute difference in the horizontal or vertical components of the motion vectors used is the 1 / 4 luma sample. 4 or more per frame. Using two motion vectors and two different reference pictures. , predict the coding sub-block containing sample p0, and use the two motion vectors of the same two reference pictures. The prediction vector is used to predict the coding sub-block containing sample q0 and the same reference picture The horizontal or vertical of the two motion vectors used to predict the two coding subblocks of the The absolute difference of the direct components is greater than or equal to 4 in 1 / 4 luma sample units. Using two motion vectors from the same reference picture, the coding subblock containing sample p0 is The motion vectors of the same reference picture are used to predict the block, including sample q0. The coding sub-block containing the sigma-based prediction is predicted such that both of the following conditions hold: The horizontal or vertical of the list 0 motion vectors used for predicting the two coded subblocks. The absolute difference between the direct components is greater than or equal to 4 for the quarter-luminance samples, or the two coding The absolute value between the horizontal or vertical components of the motion vectors in List 1 used to predict the subblocks is The pairwise difference is greater than or equal to 4 in quarter-luminance samples. The list 0 motion vector used to predict the coding subblock containing sample p0. The list used to predict the horizontal or vertical element and the coding subblock containing sample q0 1 The absolute difference between the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples, or The horizontal and vertical lengths of the list 1 motion vectors used to predict the coding subblock containing sample p0. or vertical element and the list 0 motion vector used to predict the coding subblock containing sample q0. The absolute difference between the input vectors is greater than or equal to 4 in units of 1 / 4 luma samples. Or, the variable bS[xD i ][yD j ] to 0.

[0321] 5.13a Implementation #13a

[0322] In this embodiment, the derivation of the boundary strength will be described. are shown in italics.

[0323] 8.8.3.5 Boundary Filtering Strength Derivation Process

[0324] The inputs to this process are: One picture sample array recPicture, Specifies the top-left sample of the current coding block relative to the top-left sample of the current picture The position (xCb, yCb) where the current coding block is to be coded. The variable nCbW specifies the width of the current coding block. The variable nCbH that specifies the height of the coding block, the vertical (EDGE_VER) edge or The variable edg specifies which horizontal (EDGE_HOR) edges are filtered. eType, - a variable that specifies the color component of the current coding block cIdx, two-dimensional (nC bW) × (nCbH) array of edgeFlags.

[0325] The output of this process is a two-dimensional (nCbW) × (nCb H) Array bS. ...

[0326] Variable bS[xD i ][yD j ] is derived as follows: If cIdx is equal to 0 and samples p0 and q0 are both If the coding block contains a flag equal to 1, then bS[xD i ][yD j ]teeth , is set equal to 0. Alternatively, sample p0 or q0 is a coding unit coded in intra prediction mode. If it is in the coding block of the bit, bS[xD i ][yD j ] is set equal to 2 can be. Alternatively, the block edge is also a transformation block edge, and the sample p0 or q0 is If ciip_flag is equal to 1 in the coding block, then bS[xD i ][yD j ] is set equal to 2. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 , bS[xD i ][yD j ] is set equal to 1.

[0327] [ka]

[0328] Alternatively, the prediction mode of the coding sub-block containing the sample p0 is different from the prediction mode of the coding sub-block containing the sample q0. If the prediction mode of the coding subblock containing thei ][yD j ] is equal to 1 It is set correctly. Alternatively, if cIdx is 0 and one or more of the following conditions are true, then bS[ xD i ][yD j ] is set equal to 1. the coding sub-block containing sample p0 and the coding sub-block containing sample q0 Both are coded in IBC prediction mode and are used to predict the two coding sub-blocks. The absolute difference in the horizontal or vertical components of the motion vectors generated must be greater than or equal to 4 in units of 1 / 4 luma samples. be. For the prediction of the coding sub-block containing sample p0, A different reference picture or a different number of motion vectors may be used for the prediction of the subblock.

[0329] NOTE 1 – The reference pictures used for the two coding subblocks may be the same or different. Either an index into reference picture list 0 is used to form the prediction, or Whether the reference picture list is formed using an index into the reference picture list 1 or the reference picture list 2, and Which picture is referenced is always the same, regardless of whether their index positions in the picture list are different. The judgement is based solely on whether

[0330] NOTE 2 – The prediction of the coding sub-block whose top left sample contains (xSb,ySb) The number of motion vectors used for estimation is PredFlagL0[xSb][ySb]+Pr Equivalent to edFlagL1[xSb][ySb].

[0331] One motion vector is used to predict the coding sub-block that contains sample p0. One motion vector is used to predict the coding sub-block containing sample q0. The absolute difference in the horizontal or vertical components of the motion vectors used is the 1 / 4 luma sample. The rule count is 4 or more. Using two motion vectors and two different reference pictures, The coding subblock is predicted using two motion vectors from the same two reference pictures. , predict the coding sub-block containing sample q0, and The absolute difference in the horizontal or vertical components of the two motion vectors used to predict a subblock is 1 / 4 luminance sample units is 4 or more. Using two motion vectors from the same reference picture, the coding subblock containing sample p0 is The motion vectors of the same reference picture are used to predict the block, including sample q0. The coding sub-block containing the sigma-based prediction is predicted such that both of the following conditions hold: The horizontal or vertical of the list 0 motion vectors used for predicting the two coded subblocks. The absolute difference between the direct components is greater than or equal to 4 for the quarter-luminance samples, or the two coding The absolute value between the horizontal or vertical components of the motion vectors in List 1 used to predict the subblocks is The pairwise difference is greater than or equal to 4 in quarter-luminance samples. The list 0 motion vector used to predict the coding subblock containing sample p0. The list used to predict the horizontal or vertical element and the coding subblock containing sample q0 1 The absolute difference between the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples, or The horizontal and vertical lengths of the list 1 motion vectors used to predict the coding subblock containing sample p0. or vertical element and the list 0 motion vector used to predict the coding subblock containing sample q0. The absolute difference between the input vectors is greater than or equal to 4 in units of 1 / 4 luma samples. Or, the variable bS[xD i ][yD j ] to 0.

[0332] 5.13b Implementation #13b

[0333] In this embodiment, the encoding and reconstruction of escape samples is described. Added text is in bold italics, deleted text is in "[[]]" " will be marked.

[0334] [Table 27]

[0335] [ka]

[0336] [ka]

[0337] [[The list levelScale[] is the level for k=0..5.]]. It is specified as lScale[k]={40, 45, 51, 57, 64, 72}. The following applies [[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL ][yCb+yL]*levelScale[qP%6])<<(qP / 6)+32)> >6(8-77) recSamples[x][y]=Clip3(0,(1< <bitDepth )-1,tmpVal) (8-78)]

[0338] [ka]

[0339] [ka]

[0340] [ka]

[0341] 5.14 Embodiment #14

[0342] Newly added text is in bold italics, and deleted text is marked with " It will be marked with "[[]]".

[0343] 8.4.5.3 Palette Mode Decoding Process

[0344] The inputs to this process are: - defines the top-left sample of the current block relative to the top-left luminance sample of the current picture. Position to be determined (xCb, yCb), - The variable startComp defines the first color element of the palette table, - the current The variable cIdx that defines the color component of the block, - Two variables nCbW and nCb that define the width and height of the current block, respectively H.

[0345] The output of this process is the array recSamples[x][y], where x=0..nCb W-1,y=0..nCbH-1 defines the reconstructed sample values ​​of the block.

[0346] Based on the value of cIdx, the variables nSubWidth and nSubHeight are It is derived as follows: - If cIdx is equal to 0, nSubWidth is set to 1 and nSubHeig ht is set to 1. - Or, set nSubWidth to SubWidthC and nSubHeigh Set t to SubHeightC.

[0347] The (nCbW xnCbH) block is x=0..nCTbW-1 and y=0..nCbH-1. The sampled samples are represented as recSamples[x][y], where x ranges from 0 to nCbW-1 and y ranges from 0 to n The value of recSamples[x][y] for each y in the range of CbH-1 is as follows: is derived. The variables xL and yL are derived as follows: xL=palette_transpose_flag ? x*nSubHeigh t:x*nSubWidth (8-234) yL=palette_transpose_flag ? y*nSubWidth :y*nSubHeight (8-235) The variable bIsEscapeSample is derived as follows: - PaletteIndexMap[xCb+xL][yCb+yL] is MaxPa equal to letteIndex, palette_escape_val_present If t_flag is equal to 1, bIsEscapeSample is set to 1. - Alternatively, set bIsEscapeSample to 0. - If bIsEscapeSample is equal to 0, the following applies: recSamples[x][y]=CurrentPaletteEntries[ cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (8-236) - Or, if cu_transquant_bypass_flag is equal to 1 , the following applies: recSamples[x][y]=PaletteEscapeVal[cIdx] [xCb+xL][yCb+yL](8-237) - Or (bIsEscapeSample is equal to 1 and cu_transqu ant_bypass_flag is equal to 0), the following ordered steps are performed: Applies.

[0348] 1. The quantization parameter derivation process specified in Section 8.7.1 is performed for the current picture. Position (xCb, yCb) that specifies the top-left sample of the current block relative to the top-left sample of ). [Ed.(BB): The QP is already derived at the beginning of the intra-CU decoding process. and there is no need to derive them again in this dependent claim. This is in the HEVC v4 SCC It seems like there is, but this redundancy can be eliminated. Please confirm.]

[0349] [ka]

[0350] 3. The variable bitDepth is derived as follows: bitDepth=(cIdx==0)?BitDepth Y :BitDepth C (8-241)

[0351] 4. list levelScale[] is the levelScale when k=0..5. It is defined as ale[k]={40,45,51,57,64,72} [Ed.(BB):For non-palette CUs, levelScale is rectNon Depends on TsFlag. Does it apply here too?]

[0352] 5. The following applies: tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][ yCb+yL]*levelScale[qP%6])<<(qP / 6)+32)>>6 (8-242) recSamples[x][y]=Clip3(0,(1< <bitDepth )-1,tmpVal)(8-243)

[0353] When one of the following conditions is true: - cIdx is equal to 0 and numComps is equal al to 1; - cIdx is equal to 3 The variable PredictorPaletteSize[startComp] and the array Pr The editorPaletteEntries are derived or modified as follows:

[0354] for(i=0;i <CurrentPaletteSize[startComp] ;i++) for(cIdx=startComp;cIdx<(startComp+num Comps);cIdx++) newPredictorPaletteEntries[cIdx][i]=C CurrentPaletteEntries[cIdx][i] newPredictorPaletteSize=CurrentPaletteS ize[startComp] for(i=0;i <PredictorPaletteSize && newPr editorPaletteSize);i++) if(!PalettePredictorEntryReuseFlags[i] ){ for(cIdx=startComp;cIdx<(startComp+nu mComps);cIdx++)(8-244) newPredictorPaletteEntries[cIdx][new PredictorPaletteSize]= PredictorPaletteEntries[cIdx][i] newPredictorPaletteSize++ } for(cIdx=startComp;cIdx<(startComp+numC omps);cIdx++) for(i=0;i <newPredictorPaletteSize;i++) PredictorPaletteEntries[cIdx][i]=newP predictorPaletteEntries[cIdx][i] PredictorPaletteSize[startComp]=newPred ictorPaletteSize

[0355] The value of PredictorPaletteSize[startComp] changes from 0 to Pa The bitstream is limited to the maximum PredictorSize. This is a system conformance requirement.

[0356] 5.15 Embodiment #15

[0357] Newly added text is in bold italics, and deleted text is marked with " It will be marked with "[[]]".

[0358] 8.4.2 Derivation Process for Luminance Intra Prediction Modes ...

[0359] - Alternatively, (skip_intra_flag[xPb][yPb] and DimF lag[xPb][yPb] are all equal to 0), IntraPredMode Y[xPb][yPb] is derived by the following sequential steps:

[0360] 1. The neighboring positions (xNbA, yNbA) and (xNbB, yNbB) are, respectively, It is set equal to (xPb-1,yPb) and (xPb,yPb-1).

[0361] 2. If you replace X with either A or B, the variable candIntraPred ModeX is derived as follows: - The z-scan-order block availability derivation process specified in Section 6.4.1 takes as input Set the position (xCurr, yCurr) equal to (xPb, yPb) and the neighboring position (xNbY, It is called with (xNbX,yNbY) equal to (xNbX,yNbX) and the output is Assigned to lableX. - Candidate intra prediction mode candIntraPredModeX is as follows: It is derived. -candIntraPred if availableX is equal to FALSE ModeX is set equal to INTRA_DC. [[-Or, CuPredMode[xNbX][yNbX] is MODE_ INTRA or pcm_flag[xNbX][yNbX] is equal to 1, or ca ndIntraPredModeX is set equal to INTRA_DC,

[0362] [ka]

[0363] -Or, X is equal to B and yPb_1 is ((yPb>CtbLog2Size candIntraPredMod if Y) is less than CtbLog2SizeY eB is set equal to INTRA_DC. -Or, IntraPredModeY[xNbX][yNbX] is greater than 34. If it is greater than 1, candIntraPredModeX is set equal to INTRA_DC. can be. ...

[0364] 5.16 Embodiment #16

[0365] Newly added text is in bold italics, and deleted text is marked with “ It is marked with [[]]”.

[0366] 8.4.2 Derivation Process for Luminance Intra Prediction Modes

[0367] The inputs to this process are: - The top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. The luminance position (xCb, yCb) that specifies the sample, - the variable cbWidth, which specifies the width of the current coding block in luma samples; A variable cbHeight that specifies the height of the current coding block in luma samples.

[0368] In this process, the luminance intra prediction mode IntraPredModeY[xCb][ yCb] is derived.

[0369] [ka]

[0370] ... (x=xCb..xCb+cbWidth-1, y=yCb..yCb+cbHeig For ht-1, the variable IntraPredModeY[x][y]) is It is set equal to edModeY[xCb][yCb].

[0371] 5.17 Embodiment #17

[0372] Newly added text is in bold italics, and deleted text is marked with “ It is marked with [[]]”.

[0373] 8.4.3 Derivation Process for Luminance Intra Prediction Modes

[0374] The inputs to this process are: - The top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. The luminance position (xCb, yCb) that specifies the sample, a variable cbWidth that specifies the width of the current coding block in luma samples, - The variable cbHeight, which specifies the height of the current coding block in luma samples. .

[0375] In this process, the luminance intra prediction mode IntraPredModeY[xCb] [yCb] is derived.

[0376] 2. If you replace X with either A or B, the variable candIntraPred ModeX is derived as follows: - Specified in Section 6.4.X [Ed.(BB): Neighborhood Block Availability Derivation Process tbd] The availability derivation process for the selected block takes as input (xCb, yCb) and sets it equal to Set the position (xCurr, yCurr) equal to the neighboring position (xNbX, yNbX). It is called at position (xNbY, yNbY) and assigns the output to availableX.

[0377] [ka]

[0378] ... (x=xCb..xCb+cbWidth-1, y=yCb..yCb+cbHeig For ht-1, the variable IntraPredModeY[x][y]) is It is set equal to edModeY[xCb][yCb].

[0379] 5.18 Embodiment #18

[0380] Newly added text is in bold italics, and deleted text is marked with " It will be marked with "[[]]".

[0381] 8.4.3 Derivation Process for Luminance Intra Prediction Modes

[0382] The inputs to this process are: - The top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. The luminance position (xCb, yCb) that specifies the sample, a variable cbWidth that specifies the width of the current coding block in luma samples, - The variable cbHeight, which specifies the height of the current coding block in luma samples. .

[0383] In this process, the luminance intra prediction mode IntraPredModeY[xCb][ yCb] is derived.

[0384] [ka]

[0385] ... (x=xCb..xCb+cbWidth-1, y=yCb..yCb+cbHeig For ht-1, the variable IntraPredModeY[x][y]) is It is set equal to edModeY[xCb][yCb].

[0386] 5.19 Example #19

[0387] Newly added text is in bold italics, and deleted text is marked with “ It is marked with [[]]”.

[0388] [Table 28]

[0389] 5.20 Example #20

[0390] Newly added text is in bold italics, and deleted text is marked with " It will be marked with "[[]]".

[0391] [Table 29]

[0392] 5.21 Embodiment #21

[0393] Newly added text is in bold italics, and deleted text is marked with “ It is marked with [[]]”.

[0394] [Table 30]

[0395] 5.22 Example #22

[0396] In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. Newly added text is in bold italics, deleted text is in bold italics. The text is marked with "[[]]".

[0397] [Table 31]

[0398] 5.23 Embodiment #23

[0399] Newly added text is in bold italics, and deleted text is marked with “ It is marked with [[]]”.

[0400] [Table 32]

[0401] 5.24 Embodiment #24

[0402] In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. Newly added text is in bold italics, deleted text is in bold italics. The text is marked with "[[]]".

[0403] [Table 33]

[0404] 5.25 Embodiment #25

[0405] In this embodiment, the syntax of the coding unit is described. The palette syntax is signaled when the measurement mode is MODE_PLT. Added text is in bold italics and deleted text is marked with “[]”. can be done.

[0406] [Table 34]

[0407] 5.26 Embodiment #26

[0408] In this embodiment, a process of derivation of a chrominance intra-prediction mode will be described. The highlighted text is shown in bold italics.

[0409] Derivation process for chrominance intra prediction modes

[0410] The inputs to this process are: - the top-left of the current chroma coding block relative to the top-left luma sample of the current picture The luminance position (xCb, yCb) that defines the sample, a variable cbWidth that specifies the width of the current coding block in luma samples, - The variable cbHeight, which specifies the height of the current coding block in luma samples. .

[0411] In this process, the chrominance intra-prediction mode IntraPredModeC[xCb ][yCb] is derived.

[0412] [ka]

[0413] 5.27 Example #27

[0414] In this embodiment, a picture reconstruction process that performs a mapping process for luminance samples will be described. Newly added text is in bold italics.

[0415] Picture reconstruction with a mapping process for luma samples.

[0416] The inputs to this process are: - The position of the top-left sample of the current block relative to the top-left sample of the current picture ( xCurr, yCurr), - variable nCurrSw that defines the block width, - variable nCurrSh, which specifies the block height; - an(nCurrSw)×(nCurr rSh)array predSamples, - an(nCurrSw)×(nCurr rSh)array resSamples.

[0417] The output of this process is the reconstructed luma picture sample array recSamples. be.

[0418] [ka]

[0419] 5.28 Embodiment #28

[0420] In this embodiment, a scanning order corresponding to Example 24 in Chapter 4 will be described.

[0421] This process requires the block width blkWidth and block height blkHeight. is entered.

[0422] The output of this process is the arrays hReverScan[sPos][sComp] and v ReverScan[sPos][sComp]. The array hReverScan is , which represents the horizontal reverse scan order, and the array vReverScan which represents the vertical reverse scan order. The array index sPos ranges from 0 to (blkWidth*blkHeight). Specifies the scan position in the range from -1 to 0. If a horizontal element is specified and the array index sComp is 1, a vertical element is specified. Based on the values ​​of blkWidth and blkHeight, the array hTravScan anfd vTravScan is derived as follows:

[0423] i=0 for(y=0;y)blkHeight;y++) { if(y%2!=0){ for (x = 0; x) blkWidth; x++) { hReverScan[i][0]=x hReverScan[i][1]=y i++ } } Other { for(x=blkWidth-1;x>=0;x--){ hReverScan[i][0]=x hReverScan[i][1]=y i++ } } } i=0 for(x=0;x)blkWidth;x++) { if(x%2!=0) { for(y=0;y)blkHeight;y++){ vReverScan[i][0]=x vReverScan[i][1]=y i++ } } Other { for(y=blkHeight-1;y>=0;y--){ vReverScan[i][0]=x vReverScan[i][1]=y i++ } } }

[0424] FIG. 6 is a block diagram of a video processing device 600. The device 600 is configured in accordance with the methods described herein. The device 600 may be used to implement one or more of the methods described herein. The present invention may be implemented by a mobile device, a computer, an IoT (Internet of Things) receiver, etc. The device 600 includes one or more processing units 602, one or more memories 604, and a video processing hardware. The processing unit(s) 602 may include a processor, a processor core, and / or a processor hardware 606. The memory (or memory units) may be configured to implement one or more of the methods described in. Number 604 represents data used to implement the methods and techniques described herein. The video processing hardware 606 may be used to store the video and image processing code. The techniques described herein may also be used to implement the techniques in hardware circuits.

[0425] FIG. 8 is a flow chart of a method 800 for processing video. Palette mode transform units coded separately from the prediction mode using the palette mode. determining (805) which palette, coding block, or region to process; Further processing is performed on this transform unit, coding block, or region using the (810)

[0426] With reference to method 800, some examples of palette mode encoding and its uses are given below: This is described in Chapter 4 of this specification.

[0427] Referring to method 800, a video block is encoded using a bitstream for palette mode coding. The stream generation rule can be used to achieve bit efficiency in video bitstreams. It may be encoded in

[0428] The method includes encoding the prediction mode before indicating the use of the palette mode. It is possible to do so.

[0429] This method conditionally signals the use of palette mode based on the prediction mode. and

[0430] This method uses intra block copy prediction mode and palette mode. This may include skipping signaling of the instruction to use.

[0431] This method is based on the fact that the current prediction mode is an intra block copy mode. , the indication of use of palette mode is determined to be false.

[0432] In this method, the prediction mode is the inter mode, and the use of the palette mode is indicated by a signal. This may include skipping knowledge.

[0433] This method uses the palette mode based on the fact that the current prediction mode is inter mode. The indication of use of the code may be determined to be false.

[0434] In this method, the prediction mode is the intra mode, and the use of the palette mode is indicated by a signal. This may include skipping knowledge.

[0435] This method uses the palette mode based on the fact that the current prediction mode is intra mode. The indication of use of the code may be determined to be false.

[0436] In this method, the prediction mode is the intra mode, and the use of the palette mode is indicated by a signal. This may include skipping knowledge.

[0437] This method uses intra block copy prediction mode and palette mode. This may include signaling an instruction to use.

[0438] This method creates a palette based on the type of picture, slice, or tile group. The method may include signaling an indication of use of the remote mode.

[0439] The method may include adding a palette mode as a candidate prediction mode. do.

[0440] This method is for predicting whether the prediction mode is an intra mode, an intra block copy mode, or an intra block copy mode. Palette mode for inter slice, I picture, P picture, B picture The tile group may include one or more of a tile, a texture, or an intratile group.

[0441] In this method, the prediction mode is intra mode, inter mode, intra block copy. The present invention may include two or more of a single-mode, a single-mode, or a palette mode.

[0442] This method allows the use of palette mode to be signaled or conditionally It may include being derived using the

[0443] This method uses the block size of the current block, the prediction mode of the current block, Lock quantization parameter (QP), palette flag of neighboring blocks, neighboring blocks Intrablock copy flags, color format indication, separate or dual sign Encoding tree structure, or slice type, group type, or picture type It may contain one or more.

[0444] This method uses slice-level flags, tile-group-level flags, or picture-level flags. Signaling or deriving the use of palette mode based on bell flags. can be done.

[0445] This method uses slice-level flags, tile-group-level flags, or picture-level flags. Signals or induces the use of intra block copy mode based on the signal flag. This may include releasing the

[0446] With reference to items 6 to 9 disclosed in the previous chapter, in some embodiments, the following solutions are provided: It is preferable to use

[0447] One solution is to compare the current video block of a video picture with the bitstream of this video. This includes converting between the 3D representation and the 3D representation, and the intra-block copy mode is used for this conversion. information about whether the feature is used in the bitstream representation is signaled in the bitstream representation, or derived based on the coding conditions of the current video block, where The Love Block Copy mode copies this current image block from another image block in this picture. In various embodiments, the present invention may include a video processing method including encoding an image block. The following features can be implemented using

[0448] The encoding conditions include the block size of the current video block.

[0449] The coding condition may be a prediction mode of the current video block or a Contains the quantization parameters used in the transform.

[0450] With reference to items 13 to 15 disclosed in the previous chapter, in some embodiments, the following solutions are provided: It is preferable to implement

[0451] One solution is to add a deblocking frame while transforming the current video block of the video picture. determining whether to apply a filter to the current image block; A packet representing the current image block using representative sample values ​​less than all pixels of the block. It has been determined that the image is encoded using red-mode coding and that a deblocking filter is to be applied. This includes a method for performing the transformation so that a deblocking filter is applied when That's fine too.

[0452] Another solution is to use the current video block of a picture of a video and the bit stream of this video. determining a quantization or dequantization process for use during conversion to and from a computer-based representation; , where the current video block has a representative pixel count that is less than the total pixels of the current video block. The sample values ​​are used to represent the current video block using palette mode coding. and performing the conversion based on a determination of the quantization or inverse quantization process. Additional features may include the following.

[0453] - The quantization or dequantization process determined for the current image block is a palette coding process. Different quantization or coding modes may be applied to different video blocks that are coded differently. is different from the other inverse quantization processes.

[0454] - this transformation involves encoding the current video block into a bitstream representation .

[0455] - This transformation decodes the bitstream representation to produce the current video block of the video. This includes:

[0456] - This decision is used to determine whether another decision is made that is used for the transformation of other intra-coded video blocks. The same decision process is used as in the process.

[0457] The disclosed technique uses an improved coding tree structure to improve compression efficiency. , it will be appreciated that the present invention may be implemented in a video encoder or decoder.

[0458] Referring to items 16-21 in the previous chapter, some solutions are as follows:

[0459] The current video block of a video that includes multiple video blocks and the bitstream table of this video For conversion between the current and the current image block, the current image block is a palette-coded block. determining whether the current video block is an intra-coded block based on the determination; By considering the list as a block, we can perform the list construction process of the maximum probability mode and and performing said conversion based on the results of a construction process, said palette coding block The image may be encoded or decoded using a palette or representation sample values. Image processing methods.

[0460] In the above method, the list construction process selects neighboring palette-encoded blocks as default models. The frame is treated as an intra block of the code.

[0461] The current video block of a video that includes multiple video blocks and the bitstream table of this video For conversion between the current and the current image block, the current image block is a palette-coded block. determining, based on the determination, to convert the current video block into a non-intra coded block; By considering it as a lock, we perform the list construction process in the maximum probability mode, and this list construction and performing the conversion based on the result of a reconstruction process, the palette coding block being , a palette or representation sample values ​​are used to encode or decode a video.

[0462] In the above method, the list construction process includes: When fetching a mode, the neighboring palette-coded blocks are treated as inter-coded blocks. Treat it as such.

[0463] The current video block of a video that includes multiple video blocks and the bitstream table of this video For conversion between the current and the current image block, the current image block is a palette-coded block. determining whether the current video block is an unavailable block based on the determination; By considering the above, we can perform a list construction process and, based on the results of this list construction process, and performing the conversion, the palette coding block converting the palette or representation sample into a A method of processing video in which images are encoded or decoded using sample values.

[0464] In the above method, the list construction process is a history-based motion vector prediction.

[0465] In the above method, the list construction process is performed using MERGE or advanced motion vector prediction models. It is a code.

[0466] In the above method, the determining step includes determining based on content of the video. and

[0467] The method, wherein the determination corresponds to a field in a bitstream representation. .

[0468] During conversion between the current video block and a bitstream representation of the current video block. determining that the current video block is a palette-coded block; The image block used for this transformation is a palette-coded block. determining a range of context coding bins; and performing the conversion based on the

[0469] In the above method, outlying bins of the current video block are bypass coded. Encode using a technique or decode using a bypass decoding technique during transformation .

[0470] The conversion includes encoding the video into the bitstream representation. How to.

[0471] In the above method, the converting step comprises decoding the bitstream representation to generate the video. This includes creating

[0472] FIG. 24 is an exemplary video processing system in which various techniques disclosed herein may be implemented. 2400. Various implementations of the modules of system 2400. The system 2400 may include an input for receiving video content. The video content may include a video output unit 2402. The video content may be in a raw or uncompressed format. For example, the image may be received as 8 or 10 bit multi-module pixel values, or may be compressed or The input unit 1902 may receive the signal in an encoded format. It may represent a peripheral bus interface, a peripheral bus interface, or a storage interface. Examples of network interfaces are Ethernet, Passive Optical Networks, Wired interfaces such as Passive Optical Network (PON) and Wi-Fi or Cellular - This includes wireless interfaces such as an interface.

[0473] The system 2400 may implement various encoding or encoding methods described herein. The encoding module 2404 may include an encoding module 2404 capable of encoding an input The average bit rate of the video from the input unit 2402 is output to the output of the encoding module 2404. This encoding technique may thus be referred to as video compression or This is sometimes called video transcoding technology. The output of the encoding module 2404 is As represented by module 2406, the information may be stored or transmitted via a connected communication The received, stored or communicated information may be transmitted to the input unit 2402. The bitstream (or encoded) representation of the video is used by module 2408. 24 to generate pixel values ​​or displayable images that are sent to the display interface unit 2410. The process of generating a user-viewable image from a bitstream representation. In addition, certain video processing operations are sometimes called "encoding." Although we refer to these operations or tools as "encoding", the encoding tools or operations are the encoder and its corresponding It is understood that a decoding tool or operation that reverses the result of the decoding is performed by the decoder. Let it be understood.

[0474] An example of a peripheral bus interface unit or a display interface unit is a Universal Serial Bus (USB) or High-Definition Multimedia Interface (HDM I (registered trademark) or display port. Examples of interfaces are Serial Advanced Technology Attachment (SATA), PCI, The technology described in this specification is applicable to mobile phones, laptops, etc. Computers, smartphones, or other devices capable of digital data processing and / or image display The present invention may be implemented in a variety of electronic devices, such as computer-implemented devices.

[0475] FIG. 25 is a flow chart illustrating a video processing method 2500 in accordance with the present technology. The method 2500 may, at operation 2510, include: This bitstream representation includes converting the bitstream representation to and from A first parameter that specifies whether a first indication of the use of palette mode is signaled for the and a second indication of the use of a prediction mode for this block. The first instruction is processed according to a second format rule that specifies the position of the first instruction.

[0476] In some embodiments, the video domain includes a video transform unit, a video encoding unit, a video prediction unit, a video encoding ... In some embodiments, the second predictive mode may include a measurement unit or region. This instruction is placed before the first instruction of use of the palette mode in the bitstream representation. It is decided.

[0477] In some embodiments, the first indication of the use of the palette mode is It is conditionally included in the bitstream representation based on a second indication for In some embodiments, the second indication of the use of the prediction mode is an intra block copy (IB C) When indicating a prediction mode, the first use of palette mode in the bitstream representation In some embodiments, the second instruction of use of the predictive mode is When indicating inter prediction mode, the use of palette mode in the bitstream representation is Skip the first instruction. In some embodiments, skip the second instruction of the use of the predictive mode. If the indication indicates an intra prediction mode, the use of palette mode shall be allowed in the bitstream representation. In some embodiments, the second instruction for using the prediction mode is skipped. If the instruction indicates skip mode, the use of palette mode shall be enabled in the bitstream representation. In some embodiments, the bitstream representation includes a first instruction for Skipping the first instruction on using palette modes in Indicates that it has not been

[0478] In some embodiments, the first indication of the use of the palette mode is If the second instruction for indicates IBC prediction mode, it is encoded in the bitstream. In some embodiments, the first indication of the use of the palette mode is If the second instruction for the bitstream indicates an intra-prediction mode, In some embodiments, the prediction mode is a pulse code modulation (PCM) mode. In some embodiments, the first indication of the use of the palette mode is The indication of the use of PCM mode in the stream representation is encoded before the stream representation. In the bitstream representation, the indication of the use of PCM mode is skipped. In some embodiments, an indication of the IBC mode is encoded in the bitstream representation. In some embodiments, when intra prediction modes are used, the bitstream The flags in the frame representation are palette mode or IBC mode, and bitstream representation. In some embodiments, the flag indicates whether the block The blocks are skipped based on their state, which is determined by the block dimensions, Whether IBC mode is enabled for the region or not Contains whether palette mode is enabled for the region.

[0479] In some embodiments, the first indication of the use of the palette mode is If the second instruction for the prediction mode indicates an inter prediction mode, In some embodiments, the first indication of the use of palette mode is a skip mode. at least one of the following: an indication of a mode, an indication of a predictive mode, or an indication of the use of a PCM mode In some embodiments, the first indication of use of the palette mode is is coded after the skip or prediction mode indication and the indication of the use of PCM mode. The data is encoded before display.

[0480] In some embodiments, the first indication of the use of the palette mode is The second indication of the use of the predictive mode in the representation of the image is positioned before the second indication of the use of the predictive mode in the representation of the image. In this embodiment, the first instruction to use the palette mode is followed by a second instruction to use the predictive mode. and a second indication of the use of the prediction mode is located at the inference bit in the bitstream representation. In some embodiments, the palette indicates a chromatic or inter-prediction mode. The primary indication of the use of the tile mode is based on the picture, slice, or tile group type. In some embodiments, the first indication of use of the palette mode is The indication includes a first flag indicating that the palette mode is enabled for the block. In some embodiments, the first indication of use of the palette mode may include: Palette mode can be set at the sequence level, picture level, tile group level, or tag level. The bitstream is conditionally updated based on the first flag that indicates that the In some embodiments, palette mode is disabled for blocks. When enabled, a separate flag is included in the bitstream representation to indicate the PCM mode of the block. In some embodiments, the first flag is one or more neighbors of the current block. In some embodiments, the first block is context coded based on the information of the block. A flag of 1 indicates that the current block does not have context information from one or more neighboring blocks. It will be encoded.

[0481] In some embodiments, the second indication of the use of the prediction mode includes a second indication of the prediction mode. In some embodiments, the second flag in the bitstream representation If the flag indicates that the prediction mode is inter mode, the bitstream representation is , and further includes a third flag indicating whether intra block copy mode is enabled. In some embodiments, a second flag in the bitstream representation indicates a prediction If the mode indicates an intra mode, the bitstream representation is an intra block. It further includes a third flag indicating whether back-copy mode is enabled. In an embodiment, the third flag specifies conditions for the bitstream representation based on the block size. Included with.

[0482] In some embodiments, a block is a coding unit and is represented in a bitstream table. The second flag in the current implementation indicates that the prediction mode is an intra mode. In an embodiment, the first flag is a conditional bitstream representation based on block size. Included with.

[0483] FIG. 26 is a flow chart illustrating a video processing method 2600 in accordance with the present technology. The method 2600, at operation 2610, comprises: At least one palette of this block is required for conversion to and from the bitstream representation. The method includes determining a prediction mode based on one or more allowed prediction modes including the mode. According to the prediction mode, an indication of the use of the palette mode is determined. At 620, performing a transformation based on the determination.

[0484] In some embodiments, the one or more allowed prediction modes includes an intra mode. In some embodiments, one or more of the allowed prediction modes may include an intra block copy. In some embodiments, one or more of the allowed prediction modes include Interleaved Block Coding (IBC) mode. , including intermode.

[0485] In some embodiments, the image region may be an intra-slice, an intra-picture, or In some embodiments, one or more of the allowed prediction models include an intratile group. The modes include an intra mode, an intra block copy mode, and a palette mode.

[0486] In some embodiments, the image domain may be an interslice, interpicture, or interframe. It includes a center tile group, P slice, B slice, P picture, or B picture. In some embodiments, the one or more allowed prediction modes are intra modes, intra Includes block copy mode, palette mode and inter mode.

[0487] In some embodiments, the block dimensions may be 4×4. In the embodiment, one or more of the allowed prediction modes are interleaved when the block dimensions are 4×4. Exclude the mode.

[0488] In some embodiments, the bitstream representation is such that the blocks are in skip mode. If not coded, at least one prediction mode representing one or more allowed prediction modes The prediction mode index is represented using one or more binary bins. will be done.

[0489] In some embodiments, the prediction mode index uses three binary bins: where the first bin value "1" indicates intra mode, the first bin value "0" and The second bin value "0" indicates inter mode, the first bin value "0", the second bin value "1 " and the third bin value "0" indicates the IBC mode, while the first bin value "0", the second value " The first bin value "1" and the third bin value "1" indicate palette mode.

[0490] In some embodiments, the prediction mode index uses two binary bins. where the first bin value "1" and the second bin value "0" indicate intra mode, The first bin value "0" and the second bin value "0" indicate an inter mode, and the first bin value A value of "0" and the second bin value of "1" indicate an IBC mode, and a value of "1" and the A bin value of "1" of 2 indicates palette mode.

[0491] In some embodiments, the prediction mode index is determined based on the current slice of the video. If the slice is intrasliced ​​and IBC mode is disabled, one binary bin is used. where the first bin value "0" represents intra mode and the second bin value "1" represents palette mode. Represents the code.

[0492] In some embodiments, the prediction mode index is determined based on the current slice of the video. If not intrasliced ​​and IBC mode is disabled, two binary bins are used. where the first bin value "1" represents intra mode, the first bin value "0" and the second The bin value "0" represents the inter mode, the first bin value "0" and the second bin value "1" represent In some embodiments, the prediction mode index indicates the palette mode. If the current slice is an intra slice and IBC mode is enabled, two It is represented using binary bins, with the first bin value "1" representing the IBC mode and the first bin A value of "0" and a second bin value of "1" represent palette mode, and a value of "0" and a The second bin value "0" indicates Intra mode. In some embodiments, IBC mode The use of the code is specified in the sequence parameter set (SPS) of the bitstream representation. The signal is sent.

[0493] In some embodiments, the prediction mode index uses three binary bins: where the first bin value "1" represents inter mode and the second bin value "0" represents and the second bin value "1" represents intra mode, the first bin value "0", the second bin value The first bin value "0", the second bin value "1" represent the IBC mode, A first bin value of "0" and a third bin value of "0" indicate palette mode.

[0494] In some embodiments, the prediction mode index uses three binary bins: where the first bin value "1" represents intra mode and the second bin value "0" represents and the second bin value "1" represents inter mode, the first bin value "0", the second bin value The first bin value "0", the second bin value "1" represent the IBC mode, A first bin value of "0" and a third bin value of "0" indicate palette mode.

[0495] In some embodiments, the prediction mode index uses three binary bins: where the first bin value "0" indicates inter mode and the second bin value "1 The first bin value "1" and the second bin value "0" indicate intra mode, and the second bin value "1" and the The first bin value "1" and the third bin value "1" indicate IBC mode, the first bin value "1" and the third bin value "1" indicate IBC mode, The second bin value "1" and the third bin value "0" indicate palette mode.

[0496] In some embodiments, if a condition is met, one or more binary bins are This signaling is skipped in the bitstream representation. In some embodiments, this condition is disabled. The prediction modes are included in the bitstream representation. Skip Inaribin.

[0497] FIG. 27 is a flow chart illustrating a video processing method 2700 in accordance with the present technology. The method 2700 may, at operation 2710, include: The bitstream representation includes converting between the current and current bitstreams. The first instruction and the second instruction of using the intra-block copy (IBC) mode are mutually dependent. The ACK signal is processed according to formatting rules that specify how the ACK signal is generated.

[0498] In some embodiments, the format rule is that the prediction mode of the block is IB If the first prediction mode is equal to a first prediction mode other than the C mode, the first instruction is signaled in the bitstream representation. In some embodiments, the format rule specifies that the If the prediction mode of the block is equal to the first prediction mode that is not palette mode, the second instruction In some embodiments, the indication is signaled in a bitstream representation. The first prediction mode is the intra mode.

[0499] FIG. 28 is a flow chart illustrating a video processing method 2800 in accordance with the present technology. The method 2800, at operation 2810, comprises: Based on the dimensions of this block, this bitstream is converted to and from the and determining the presence of an indication of the use of a palette mode in the representation. , and at operation 2820, performing a transformation based on the determination.

[0500] FIG. 29 is a flow chart illustrating a video processing method 2900 in accordance with the present technology. The method 2900 includes, at operation 2910, extracting a block of an image and a bitstream of the image. For conversion to and from the bitstream representation, the intra-block coding in this bitstream representation is The presence of an indication of the use of Interleaved Block Code (IBC) mode can be determined based on the dimensions of this block. The method 2900 includes, at operation 2920, performing a conversion based on the determination. In some embodiments, the block size includes the number of samples in the block. The parameters may include at least one of the following: amount, block width, or block height.

[0501] In some embodiments, if the width of the block is less than or equal to the threshold, the indication is In some embodiments, the block height is signaled in the stream representation. This indication is signaled in the bitstream representation if: In one embodiment, the threshold may be 64.

[0502] In some embodiments, if the width and height of a block are greater than a threshold, The indication is signaled in the bitstream representation. In some embodiments, the threshold is 4 In some embodiments, when the number of samples in a block is greater than a threshold, If the bitstream representation is greater than 1, this indication is signaled in the bitstream representation. In some embodiments, the threshold value may be 16. In some embodiments, the width of a block is If it is equal to the block height, this indication is signaled in the bitstream representation.

[0503] In some embodiments, (1) the width of the block is greater than a first threshold; and (2) (3) the height of the block is greater than a second threshold, or (4) the number of samples in the block If is less than or equal to the third threshold, the indication is not included in the bitstream representation. In some embodiments, the first threshold and the second threshold are 64. In an embodiment, the third threshold may be 16.

[0504] In some embodiments, this determination further comprises determining whether the block is associated with a feature. In some embodiments, the features include a prediction mode for the block. In some embodiments, the features include a quantization parameter for the block. In an embodiment, the features include palette flags of blocks neighboring the block. In this embodiment, the features include the IBC flags of the blocks in the block's neighborhood. In some embodiments, the characteristics include an indication of the color format of the block. In some embodiments, the features include a coding tree structure of the block. The feature is the slice group type, tile group type or picture type of the block. Includes Yip.

[0505] FIG. 30 is a flow chart illustrating a video processing method 3000 according to the present technology. The method 3000, in operation 3010, comprises: Based on the second indication of the image area that contains this block, Determining whether palette mode is enabled for the block. 3000 also includes, at act 3020, performing a transformation based on the determination.

[0506] In some embodiments, an image region may be a slice, a tile group, or a picture. In some embodiments, the bitstream representation may include a second pointer. If the indication indicates that fractional motion vector differential is enabled, palette mode is enabled. In some embodiments, the second instruction excludes an explicit indication of whether the bit In some embodiments, the second The indication indicates whether palette mode is enabled for the image area. In an embodiment, the bitstream representation further comprises a second instruction to specify a palette mode for the image region. If the mode is disabled, it is not clear whether palette mode is allowed. In some embodiments, the bitstream representation includes a palette If the block does not contain a clear indication of whether the mode is allowed, Mode is not allowed.

[0507] FIG. 31 is a flow chart illustrating a method 3100 of video processing in accordance with the present technology. 3100, in operation 3110, comprises: For conversion between, this block is selected based on a second indication of the image region that contains this block. Determines whether intrablock copy (IBC) mode is allowed for the lock. The method 3100 also includes, in act 3120, determining based on the determination: This includes performing a conversion.

[0508] In some embodiments, an image region may be a slice, a tile group, or a picture. In some embodiments, the bitstream representation may include a second pointer. If the indication indicates that fractional motion vector differential is enabled, IBC mode is enabled. In some embodiments, the second instruction excludes an explicit indication of whether or not the bit In some embodiments, the second The indication indicates whether IBC mode is enabled for the image area. In this embodiment, the bitstream representation includes a second indication that the IBC mode is disabled for the video region. When indicating that IBC mode is enabled, it must be clearly indicated whether IBC mode is allowed. In some embodiments, the bitstream representation does not allow IBC mode. If the block does not contain a clear indication of whether IBC mode is allowed, then IBC mode is not allowed for the block. It won't be done.

[0509] In some embodiments, the transformation generates the current block from the bitstream representation. In some embodiments, the transformation converts the current block into a bitstream representation. Generate.

[0510] Some embodiments of the disclosed technology may include a method for enabling video processing tools or modes. In one example, determining or judging that a video processing tool or mode is enabled. When a video block is processed, the encoder uses this tool or mode to use or implement a tool, but results in The resulting bitstream does not necessarily need to be modified; i.e., the block of video The conversion from the input video to a bitstream representation is made by a video processing tool or Use this video processing tool or mode if the tool or mode is enabled. When a video processing tool or mode is enabled in The bitstream is modified based on the video processing tool or mode. i.e., the video processing tools or The mode is used to convert from a bitstream representation of the image to blocks of the image.

[0511] Some embodiments of the disclosed technology include disabling video processing tools or modes. In one example, determining or judging that a video processing tool or mode is disabled. When enabled, the encoder converts blocks of video into a bitstream representation of the video. In another example, you may not use this tool or mode to If the mode is disabled, the decoder will not You know that the bitstream has not been modified using any video processing tools or modes. The bitstream is then processed.

[0512] The disclosed and other solutions, examples, embodiments, modules, The implementation of the functions and operations may be implemented in any manner including 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 include 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 providing a machine-readable propagating signal - Patents.com or a combination of one or more of these. The term may refer to, for example, a programmable processing device, a computer, or a plurality of processing devices, or any apparatus, device, or device for processing data, including a computer; This device includes a machine that, in addition to the hardware, also includes the execution environment of the computer program. The code that creates the system, e.g., processor firmware, protocol stacks, database management The components that make up the operating system, the management system, or a combination of one or more of these A propagated signal may include an artificially generated signal, e.g., a machine-generated signal. A digital signal is an electrical, optical, or electromagnetic signal that encodes information for transmission to an appropriate receiving device. It is generated to

[0513] Computer programs (programs, software, software applications) , script, or code) is a language that can be compiled or interpreted. It can be written in any form of programming language, including the Module suitable for use as a standalone program or in any computing environment. may be deployed in any form, including as modules, elements, subroutines, or other units. A computer program does not necessarily have to deal with files in a file system. Programs may not respond to requests from other programs or files that hold data. recorded in one or more scripts stored in a markup language document The program may be stored in a single file dedicated to the program, or in multiple files. A tuning file (e.g., one or more modules, subprograms, or pieces of code) A computer program may be stored in a file (a file storing the program). A single computer located at a site or a communication network distributed across multiple sites It can also be deployed to run on multiple computers interconnected by do.

[0514] 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 The processing and logic flow may be implemented by one or more programmable processing devices. The PLC also uses application-specific logic circuits, such as field programmable gate arrays (FPGAs). This can be done by a chip array (Chip Array) or an ASIC (Application Specific Integrated Circuit), and the device can also It may also be implemented as special purpose logic circuitry.

[0515] Suitable processing devices for the execution of a computer program include, for example, general purpose and special purpose microprocessors. Both the processor and any one or more processors of any kind of digital computer Typically, a processing unit includes a read-only memory or a random access memory. The essential elements of a computer are the A processor for executing and one or more memory devices for storing instructions and data. Generally, a computer has one or more mass storage devices for storing data. The device may include, for example, a magnetic, magneto-optical, or optical disk. to receive data from or transfer data to these mass storage devices. However, the computer may be operatively coupled to such a device. It is not necessary to have a computer suitable for storing computer program instructions and data. Computer readable media includes any form of non-volatile memory, media, and memory devices. Including, for example, EPROM, EEPROM, flash storage, magnetic disks, e.g. Internal hard disk or removable disk, magneto-optical disk, and CD-ROM and semiconductor storage devices such as DVD-ROM disks. It may be supplemented by, or incorporated into, special purpose logic circuits. It may be included.

[0516] This patent specification contains many details, which may be misleading in any respect as to the scope or scope of any subject matter or claims. 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 possible features of the present invention should be interpreted as a description of the possible features of the present invention. Certain features described in the context may be implemented in combination in one example. Conversely, various features that are described in the context of one example may also 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 initially claimed as such However, one or more features from a claimed combination may, in some cases, be combined. The claimed combination may be extracted from any combination of the claimed The present invention may be directed to variations in the above combinations.

[0517] Similarly, although operations may be shown in a particular order in the figures, this is not intended to be limiting as to how the desired results are achieved. that such actions be performed in the particular order or sequence shown, in order to It should not be construed as requiring that all acts shown be performed. Also, the separation of the various system components in the examples described in this patent specification is It should not be understood that all embodiments require such separation.

[0518] Only certain 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. A method for processing video data, determining whether a first indication is signaled in the bitstream based on a first predetermined condition for a first conversion between a first video block of visual media data of a video and a bitstream of the video; performing the first conversion based at least on the determining; the first predetermined condition relates to a dimension of the first image block; the first instruction indicates whether to enable a first prediction mode for the first video block; In the first prediction mode, the reconstructed samples are represented by a set of representative color values, the set of representative color values ​​including at least one of: 1) a palette predictor; 2) an escape sample; or 3) palette information included in the bitstream; The method comprises: determining that the first prediction mode is enabled for a second video block of the video for a second conversion between the second video block of the video and a bitstream of the video; determining, for the second video block, a quantization parameter associated with the second video block; deriving the escape samples based on a revised value of the quantization parameter; performing the second transformation based on at least the modified value of the quantization parameter; the modified value of the quantization parameter is equal to Max(4+T,Qp), where Qp denotes the quantization parameter and T is a non-negative integer value; T is determined based on sequence level syntax elements included in the bitstream. method.

2. the first indication is signaled in the bitstream if a width and a height of the first video block are each less than or equal to a first threshold. The method of claim 1.

3. the first threshold is 64; The method of claim 2.

4. the first indication is signaled in the bitstream if a width and height of the first video block are greater than a second threshold. The method according to any one of claims 1 to 3.

5. the first indication is signaled in the bitstream if a product of a width and height of the first video block is greater than a third threshold. The method according to any one of claims 1 to 3.

6. the first indication is signaled in the bitstream if a prediction mode of the first video block is MODE_INTRA. The method according to any one of claims 1 to 5.

7. the size of the first image block in the first predetermined condition is related to a color format of the first image block; The method according to any one of claims 1 to 6.

8. determining, for the first conversion, whether a second indication is signaled in the bitstream based on a second predetermined condition; performing the first conversion based at least on the determining; the second predetermined condition is related to at least one of a dimension of the first video block, a mode type, a sps_ibc_enabled_flag, a slice type, or a tree type; the second instruction indicates enabling a second prediction mode for the first video block; In the second prediction mode, the prediction samples of the first video block are derived from the same picture that contains the first video block indicated by a block vector of the first video block. The method according to any one of claims 1 to 7.

9. the second indication is signaled in the bitstream if a width and height of the first video block are each less than or equal to 64. The method according to claim 8.

10. if the tree type of the first video block is not DUAL_TREE_CHROMA and the mode type of the first video block is not MODE_TYPE_INTER, the second indication is signaled in the bitstream. The method according to claim 8.

11. the second indication is signaled after the first indication. The method according to claim 8.

12. the modified value of the quantization parameter is derived based on a clip function. The method according to any one of claims 1 to 11.

13. the modified value of the quantization parameter and the quantization parameter applied in transform skip mode have the same value limit; The method according to any one of claims 1 to 12.

14. the modified value of the quantization parameter and the quantization parameter applied in the transform skip mode have the same minimum allowed value. The method of claim 13.

15. the first transformation includes encoding the first video block into the bitstream. The method according to any one of claims 1 to 14.

16. the first conversion includes decoding the first video block from the bitstream. The method according to any one of claims 1 to 14.

17. 1. An apparatus for processing video data comprising a processor and a non-transitory memory having instructions stored thereon, the apparatus comprising: The instructions, when executed by the processing device, cause the processing device to: determining whether a first indication is signaled in the bitstream based on a first predetermined condition for a first conversion between a first video block of visual media data of a video and a bitstream of the video; performing the first conversion based at least on the determining; the first predetermined condition relates to a dimension of the first image block; the first instruction indicates whether to enable a first prediction mode for the first video block; In the first prediction mode, the reconstructed samples are represented by a set of representative color values, the set of representative color values ​​including at least one of: 1) a palette predictor; 2) an escape sample; or 3) palette information included in the bitstream; The instructions, when executed by the processing device, cause the processing device to: determining that the first prediction mode is enabled for a second video block of the video for a second conversion between the second video block of the video and a bitstream of the video; determining, for the second video block, a quantization parameter associated with the second video block; deriving the escape samples based on a revised value of the quantization parameter; performing the second transformation based on at least the modified value of the quantization parameter; the modified value of the quantization parameter is equal to Max(4+T,Qp), where Qp denotes the quantization parameter and T is a non-negative integer value; T is determined based on sequence level syntax elements included in the bitstream. Device.

18. A non-transitory computer-readable storage medium storing instructions, comprising: The instructions may be for causing a processor to: determining whether a first indication is signaled in the bitstream based on a first predetermined condition for a first conversion between a first video block of visual media data of a video and a bitstream of the video; performing the first conversion based at least on the determining; the first predetermined condition relates to a dimension of the first image block; the first instruction indicates whether to enable a first prediction mode for the first video block; In the first prediction mode, the reconstructed samples are represented by a set of representative color values, the set of representative color values ​​including at least one of: 1) a palette predictor; 2) an escape sample; or 3) palette information included in the bitstream; The instructions may be for causing a processor to: determining that the first prediction mode is enabled for a second video block of the video for a second conversion between the second video block of the video and a bitstream of the video; determining, for the second video block, a quantization parameter associated with the second video block; deriving the escape samples based on a revised value of the quantization parameter; performing the second transformation based on at least the modified value of the quantization parameter; the modified value of the quantization parameter is equal to Max(4+T,Qp), where Qp denotes the quantization parameter and T is a non-negative integer value; T is determined based on sequence level syntax elements included in the bitstream. A non-transitory computer-readable storage medium.

19. 1. A method for storing a video bitstream, comprising the steps of: determining, for a first video block of visual media data of the video, whether a first indication is signaled in the bitstream based on a first predetermined condition; generating the bitstream based at least on the determining; and storing the bitstream on a non-transitory computer readable recording medium; Including, the first predetermined condition relates to a dimension of the first image block; the first instruction indicates whether to enable a first prediction mode for the first video block; In the first prediction mode, the reconstructed samples are represented by a set of representative color values, the set of representative color values ​​including at least one of: 1) a palette predictor; 2) an escape sample; or 3) palette information included in the bitstream; The method comprises: determining, for a second video block of the video, that the first prediction mode is enabled for the second video block; determining, for the second video block, a quantization parameter associated with the second video block; deriving the escape samples based on a revised value of the quantization parameter; generating the bitstream based on at least the modified value of the quantization parameter; the modified value of the quantization parameter is equal to Max(4+T,Qp), where Qp denotes the quantization parameter and T is a non-negative integer value; T is determined based on sequence level syntax elements included in the bitstream. method.

Citation Information

Patent Citations

  • Restriction of escape pixel signaled values in palette mode video coding

    US20170085891A1