Coding of palette mode in prediction processing
Patent Information
- Application Number
- JP2023201864
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2019-07-29
- Filing Date
- 2023-11-29
- Publication Date
- 2025-07-30
AI Technical Summary
Existing video encoding standards face inefficiencies in encoding digital video due to limitations in palette mode signaling and processing, particularly in handling block conversions and deblocking filters, which can lead to artifacts and suboptimal encoding efficiency.
The method involves separate signaling of palette mode instructions from prediction modes, conditional use of palette mode based on predictive modes, and optimized deblocking processes, including adaptive filtering and improved scanning orders, to enhance encoding efficiency and reduce artifacts.
This approach improves the quality of decompressed video by optimizing palette mode encoding, reducing artifacts, and enhancing encoding efficiency, particularly for screen content with repetitive patterns.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
[Technical field]
[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) Pursuant to the applicable patent laws and / or regulations under the Paris Convention, this application Priority and Claims of International Patent Application No. PCT / CN2019 / 098204, filed on July 29, The purpose of the application is to timely assert claims and benefits against the applicant for all purposes under the law. The entire disclosure of which is incorporated by reference as part of the disclosure of this specification.
[0002] This specification relates to video and image encoding and decoding techniques. [Background technology]
[0003] Digital video is the largest form of communication on the Internet and other digital communications networks. It occupies bandwidth usage. It is the number of connected users that can receive and display video. As the number of user devices increases, the bandwidth demands for digital video usage continue to grow. It is predicted that. 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 indicates that the first use of palette mode is signaled for this block. The first format rule specifies whether the prediction mode for this block is notified. a second formatting rule that specifies the position of this first indication relative to the second indication of use of the code. and processed accordingly.
[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. indicates the first use of palette mode and the second use of intra-block copy (IBC) mode. According to the format rules that specify the use of two signals interdependently, 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 transformation 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 second view of the region? 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. An intra-block copy (IBC) is performed on this block based on the second representation of the region. 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 palette mode palette for conversion between and the bitstream representation of this video. determining a first bit depth of a first sample associated with the entry. The bit depth of the first block is different from a second bit depth associated with the block. This also includes performing conversion based on a specified format.
[0013] In another exemplary aspect, a method of video processing is disclosed. The method comprises: For conversion between block and bitstream representations of images, coding in palette mode is used. The neighboring blocks of the current block are divided into blocks that are located above or below the current block. If it is located to the left, it builds a list of Maximum Probability Mode (MPM) candidates for the current block. During the process, it is decided to process the block as an intra-coded block with the default mode. The method also includes performing a transformation based on the determination.
[0014] In another exemplary aspect, a method of video processing is disclosed, the method comprising: A block of video encoded as a palette mode coded block in a stream representation. Determine the parameters for rule-based deblocking filtering for the block. The method includes using the parameters for deblocking filtering to It also includes converting between block and bitstream representations of video.
[0015] In another exemplary aspect, a method of video processing is disclosed. The method comprises: For conversion between blocks and bitstream representation of the image, the maximum probability model of the current block is used. While building a list of MPM candidates, the current , and decides to treat the blocks adjacent to the block as non-intra coded blocks. The method also includes performing a transformation based on the determination.
[0016] In another exemplary aspect, a method of image processing is disclosed. The method includes: determining a quantization parameter associated with the block; Based on the correction value of the data, the image block is partially converted into a palette-coded block. and encoding the bitstream representation of the image data into the bitstream representation of the image data. and signaling coded information associated with the meter.
[0017] In another exemplary aspect, a method of video processing is disclosed, the method comprising: Deriving a quantization parameter based on a stream representation and correcting the quantization parameter Based on the modified quantization parameter, the palette coding block is and partially decrypting the lock.
[0018] In another exemplary aspect, a method of video processing is disclosed, the method comprising: For blocks of video coded as palette-coded blocks in the stream representation, Therefore, the bit is set regardless of whether bypass mode is enabled for the block. determining a representation of the escape samples of the block in the stream representation. The method includes converting between the block and bitstream representations based on the determining. Also includes.
[0019] In another exemplary aspect, a method of video processing is disclosed, the method comprising: For blocks of video coded as palette-coded blocks in the stream representation, determining a first quantization process based on the first quantization process. The first quantization process is a non-palette mode quantization process. This method is different from the second quantization process that can be applied to the coding block. This also includes converting between block and bitstream representations based on the block representation.
[0020] In another exemplary aspect, a method of image processing is disclosed. The method comprises: , an image including a luma block and a corresponding chroma block, and a bitstream representation of the image. This rule converts the current luma block into a palette coding mode. If the corresponding current chroma block is encoded using the derived mode, the current Treat luma blocks as having the default intra prediction mode, and the current chroma blocks as having the This palette code specifies that the block is to be coded in the default intra-prediction mode. The encoding mode encodes the current luma block using a palette of representative sample values. This includes:
[0021] In another exemplary embodiment, a method of video processing is disclosed. The method includes: This includes performing a conversion between the image including the block and a bitstream representation of the image. For the transformation of , we build a list of motion candidates for each block according to the rule. The motion information of a block coded using the palette coding mode is transferred to the subsequent block. This specifies that the RFC 2211 standard treats all ASCII characters as unavailable or invalid for encoding.
[0022] In another exemplary aspect, a method of video processing is disclosed, the method comprising: A block of video encoded as a palette mode coded block in a stream representation. For each block, the number of context coding bins of the block is determined based on a rule. The method further comprises: determining a block of video and a bitstream of video based on the determining. This includes converting between representations.
[0023] In another exemplary aspect, a method of video processing is disclosed. The method comprises: The block is encoded using the palette encoding mode and the corresponding current chroma block is encoded using the palette encoding mode. When encoding using the derivation mode, the current luma block is converted to the default intra block. Prediction mode and treat the current chroma block as having the default intra prediction mode. The luma block and the corresponding chroma block are coded according to the rules that specify that the This includes converting between a video containing the palette and a bitstream representation of the video. The luminance coding mode encodes the current luma block using a palette of representative sample values. This includes:
[0024] In another exemplary embodiment, a method of video processing is disclosed. The method includes: performing a conversion between an image including the image and a bitstream representation of the image; ,For this transformation, the motion information of the block coded using the palette coding mode is treated as unavailable or invalid for encoding of consecutive blocks. We build a list of motion candidates for each block based on the following rules:
[0025] In another exemplary aspect, a method of video processing is disclosed, the method comprising: A block of video encoded as a palette mode coded block in a stream representation. For each block, the number of context coding bins of the block is determined based on a rule. The method further comprises: determining a block of video and a bitstream of video based on the determining. This includes converting between representations.
[0026] In another exemplary aspect, a method of video processing is disclosed. The method comprises: For the conversion between blocks and the bitstream representation of this image, an inter- and intra-coded neighbors of the current block for intra-combined prediction modes. This rule includes determining the number of blocks for inter and intra joint prediction modes. The palette coding model is used to count the number of intra-coded neighboring blocks for a given pixel. This defines a method for handling blocks coded using the palette coding mode. The method includes encoding the block using a palette of representative sample values. The method also includes performing a transformation based on the determination.
[0027] In another exemplary aspect, a method of video processing is disclosed. The method comprises: For conversion between blocks and the bitstream representation of this image, This includes deciding to skip operations for samples in the current block. This sample is coded using the palette coding mode. Using The method also includes performing a transformation based on the determination.
[0028] In another exemplary aspect, a method of image processing is disclosed. The method includes: A choice of three or more scan orders for conversion between the image frame and the bitstream representation of this video. This block determines the scan order used to generate a palette of representative sample values. The method further comprises performing a transformation based on the determination. include.
[0029] In another exemplary aspect, a method of image processing is disclosed. The method includes: To convert between the block and the bitstream representation of this video, blocks are divided based on the block shape. determining one or more scan orders for scanning coefficients of the block based on the determination; This also includes performing conversion based on
[0030] In another exemplary aspect, a method of image processing is disclosed. The method includes: quantization of intra prediction of blocks for conversion between the block and its bitstream representation The difference between the quantized residual and a prediction of the quantized residual is then modulated using Differential Pulse Coded Modulation (DPCM). Block-based quantized residual domain difference pulses representing the bitstream representation of the block For BPCM processing, the coefficients of a block are scanned in one scan order. The method determines whether to apply a transformation to the block based on the determination. Also includes.
[0031] 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.
[0032] 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.
[0033] 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. The copy mode copies this current video block from another video block in this picture. This includes encoding the
[0034] 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. determining whether the current video block is smaller than all pixels of the current video block; Palette mode coding is used to represent the current video block using the smallest representative sample values. If it is determined that the image is encoded using a deblocking filter, and applying a deblocking filter to
[0035] 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 conversion of the current image; The block uses a representative sample value that is less than the total pixels of the current video block. Determining whether the current video block is encoded using palette mode encoding. and performing the transform based on a determination of the quantization or inverse quantization process.
[0036] 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, 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.
[0037] 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.
[0038] 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 this, 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.
[0039] 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
[0040] In yet another exemplary aspect, the method described above comprises a video encoder including a processing unit. It may be implemented by:
[0041] 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.
[0042] These and other aspects are further described herein. [Brief description of the drawings]
[0043] [Figure 1] FIG. 1 is an example of intra block copy. [Diagram 2]FIG. 2 is an example of a block coded in palette mode. [Diagram 3] FIG. 3 is an example of the use of a palette predictor to signal palette entries. [Figure 4] FIG. 4 is an example of horizontal and vertical traverse scans. [Diagram 5] FIG. 5 is an example of encoding a palette index. [Figure 6] FIG. 6 is a block diagram illustrating an example of a video processing device. [Figure 7] FIG. 7 is a block diagram illustrating an example implementation of a video encoder. [Figure 8] FIG. 8 is a flowchart illustrating an example of a video processing method. [Figure 9] FIG. 9 shows an example of pixels involved in filter on / off decision and strong / weak filter selection. [Figure 10] FIG. 10 shows an example of binarization of four modes. [Figure 11] FIG. 11 shows an example of binarization of four modes. [Figure 12] FIG. 12 is an example of 67 intra mode prediction directions. [Figure 13] FIG. 13 is an example of neighboring video blocks. [Figure 14] FIG. 14 shows examples of ALF filter shapes (saturation: 5×5 diamond, brightness: 7×7 diamond). [Figure 15A] FIG. 15A is an example of a subsampled Laplacian calculation of vertical gradients. [Figure 15B] FIG. 15B is an example of a subsampled Laplacian calculation for horizontal gradients. [Figure 15C] FIG. 15C is an example of a subsampled Laplacian calculation for diagonal gradients. [Figure 15D] FIG. 15D is an example of a subsampled Laplacian calculation for diagonal gradients. [Figure 16] FIG. 16 is an example of a modified division in the virtual boundary. [Figure 17] FIG. 17 is an example of modified ALF filtering for the luminance component at the virtual boundary. [Figure 18] FIG. 18 shows four examples of 1-D3 pixel patterns for pixel classification in EO. [Figure 19] FIG. 19 shows an example in which four bands are grouped and expressed by the starting band position. [Figure 20] FIG. 20 is an example of the top-left neighborhood block used in the CIIP weight derivation. [Figure 21] FIG. 21 is an example of luma mapping using a chroma scaling architecture. [Figure 22] FIG. 22 is an example of a scanning order for a 4×4 block. [Diagram 23] FIG. 23 is another example of a scan order for a 4×4 block. [Figure 24] FIG. 24 is a block diagram illustrating an example video processing system 2400 in which various techniques disclosed herein may be implemented. [Diagram 25] FIG. 25 is a flowchart showing another video processing method according to the present technology. [Figure 26] FIG. 26 is another flowchart illustrating another image processing method according to the present technology. [Figure 27] FIG. 27 is another flowchart illustrating another image processing method according to the present technology. [Figure 28] FIG. 28 is another flowchart illustrating another image processing method according to the present technology. [Figure 29] FIG. 29 is another flowchart illustrating another image processing method according to the present technology. [Diagram 30] FIG. 30 is another flowchart illustrating another image processing method according to the present technology. [Diagram 31] FIG. 31 is another flowchart illustrating another image processing method according to the present technology. [Diagram 32] FIG. 32 is another flowchart illustrating another image processing method according to the present technology. [Diagram 33] FIG. 33 is another flowchart illustrating another image processing method according to the present technology. [Diagram 34] FIG. 34 is another flowchart illustrating another image processing method according to the present technology. [Diagram 35] FIG. 35 is another flowchart illustrating another image processing method according to the present technology. [Figure 36A] FIG. 36A is another flowchart illustrating another image processing method according to the present technique. [Figure 36B] FIG. 36B is another flowchart illustrating another image processing method according to the present technology. [Figure 37] FIG. 37 is another flowchart illustrating another image processing method according to the present technology. [Figure 38] FIG. 38 is another flowchart illustrating another image processing method according to the present technology. [Figure 39] FIG. 39 is another flowchart illustrating another image processing method according to the present technology. [Diagram 40] FIG. 40 is another flowchart illustrating another image processing method according to the present technology. [Diagram 41] FIG. 41 is another flowchart illustrating another image processing method according to the present technology. [Diagram 42] FIG. 42 is another flowchart illustrating another image processing method according to the present technology. [Diagram 43] FIG. 43 is another flowchart illustrating another image processing method according to the present technology. [Diagram 44] FIG. 44 is another flowchart illustrating another image processing method according to the present technology. [Diagram 45] FIG. 45 is another flowchart illustrating another image processing method according to the present technology. [Figure 46] FIG. 46 is another flowchart illustrating yet another image processing method according to the present technology. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0044] 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.
[0045] 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.
[0046] 1. Summary of the Invention 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
[0047] 2. Initial consultations 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 It has been incorporated into the reference software called the Loration Mode. In April 2018, VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG1 1 (MPEG) and the Joint Video Expert Team (JVET) The VVC standard was established with the goal of reducing the bit rate by 50% compared to HEVC. They are teaming up.
[0048] 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.
[0049] 2.1 Intra-block copy Intra Block Copy (IBC), also known as Current Picture Reference (CPR) Ent Picture Referencing (HEVC Screen Content Encoding extension function (HEVC-SCC:Screen Content Coding e extensions) and is adopted in the current VVC test model (VTM-4.0) IBC extends the concept of motion compensation from interframe coding to intraframe coding. As shown in Figure 1, the current block is extended to the same picture when IBC is applied. The current block is predicted by one of the reference blocks in Before the IBC, the samples in the reference block must already be reconstructed. , which is not very efficient for most camera-captured sequences, For screen content, it shows a significant coding gain. This is because content pictures often contain repeated patterns of icons, characters, etc. BC can effectively remove the redundancy between these repeating patterns. In the SCC, an inter-coding unit (CU) encodes the current picture as its reference picture. If you select MV as the block vector, IBC can be applied. The vector was renamed Block Vector (BV), and BV always has integer pixel accuracy. To conform to the Main Profile HEVC, the current picture is decoded as a picture buffer. Long-term reference in the Decoded Picture Buffer (DPB) Similarly, in multiple view / 3D video coding standards, In this case, inter-view reference pictures are also marked as "long-term" reference pictures.
[0050] 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. .
[0051] 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.
[0052] 2.2 IBC in HEVC Screen Content Coding Extensions 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. The variables offsetX and offsetY are derived as follows: offsetX=(ChromaArrayType==0)?0:(mvCLX[ 0]&0×7 ?2:0) (8-106) offsetY=(ChromaArrayType==0)?0:(mvCLX[ 1]&0×7 ?2:0) (8-107) If the reference picture is the current picture, the luma motion vector mvLX is determined according to the following constraint: It is a bitstream conformance requirement that - the derivation process for the availability of z-scan order blocks as specified in 6.4.1 is (xCurr,yCurr) is set equal to (xCb,yCb), and (xPb+(m vLX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offs The input is called the luminance position (xNbY, yNbY) of the neighborhood of the input pixel. When called, the output is TRUE. - the derivation process for the availability of z-scan order blocks as specified in 6.4.1 is (xCurr, yCurr) set equal to (xCb.yCb), (xPb + (mv LX[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2 )+nPbH-1+offsetY) NbY) as input, the output is TRUE. -One or both of the following conditions are true: - (mvLX[0]>>2)+nPbW+xB1+offsetX is less than or equal to 0. do. - (mvLX[1]>>2)+nPbH+yB1+offsetY is less than or equal to 0 do. -The following conditions are true: (xPb+(mvLX[0]>>2)+nPbSw-1+offsetX) / CtbS izeY-xCurr / CtbSizeY<=yCurr / CtbSizeY-(yPb +(mvLX[1]>>2)+nPbSh-1+offsetY) / CtbSizeY (8-108)
[0053] 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.
[0054] 2.3. IBC in the VVC test model In the current VVC test model, e.g., VTM-4.0 design, the entire reference block is Must have a current coding tree unit (CTU) The reference or predicted block is padded and does not overlap with the current block. There is no need to use the IBC flag. The IBC flag is encoded as the prediction mode of the current CU. For each CU, MODE_INTRA, MODE_INTER, and MODE There are three prediction modes in total: _IBC.
[0055] 2.3.1 IBC Merge Mode 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:
[0056] Step 1: Derive spatial candidates Step 2: Inserting HMVP candidates Step 3: Inserting pairwise average candidates
[0057] 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 candidate is selected. The derivation order is A1, B1, B0, A0, B2. Position A 1, B1, B0, or A0 PU (Prediction Unit) can be used If it is not (for example, because it belongs to a different slice or tile) or if the IBC mode Position B2 is considered only if it is not coded in the byte order. After adding the candidates for position A1, ,When ,the ,remaining ,candidates ,are ,inserted, ,a ,redundancy ,check ,so ,that ,they ,have ,the ,same ,motion ,information. This allows candidates to be removed from the list with confidence, improving coding efficiency. To reduce this, we consider all possible candidate pairs in the redundancy check described above. Instead, we consider only the pairs linked by the arrows shown in the drawing and A candidate is checked only if the corresponding candidate does not have the same motion information. Add to the list.
[0058] 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.
[0059] Finally, the pairwise average candidate is inserted into the IBC merge list.
[0060] 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 .
[0061] Note that invalid merge candidates may be inserted into the IBC merge list.
[0062] 2.3.2 IBC AMVP mode 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:
[0063] Step 1: Derive spatial candidates
[0064] Check A0, A1 until a usable candidate is found.
[0065] Check B0, B1, B2 until an available candidate is found.
[0066] Step 2: Inserting HMVP candidates
[0067] Step 3: Inserting zero candidates
[0068] 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.
[0069] Finally, insert the zero candidate into the IBC AMVP list.
[0070] 2.4 Palette Mode 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 filtered by signaling the (possibly quantized) component values after the It is also possible to show samples that lie outside the
[0071] 2.5 Palette Mode in HEVC Screen Content Encoding Extensions (HE VC-SCC) In the palette mode in HEVC-SCC, the palette and index map are A prediction scheme is used for the coding.
[0072] 2.5.1 Encoding Palette Entries To encode the palette entries, a palette predictor is maintained. In the meter set (SPS: Sequence Parameter Set), The maximum size of the let and the palette predictor are signaled. , palette_predictor_initializer_present_f lag is introduced into the PPS. If this flag is 1, then in the bitstream: An entry is signaled to initialize the palette predictor. The palette predictor is It is initialized at the beginning of each TU row, each slice, and each tile. Depending on the value of ictor_initializer_present_flag, Reset the ette predictor to 0 or the packet Initialize the palette predictor using the initialization entries of the let predictor. In C, the subroutine is used to allow explicit overriding of the palette predictor initialization at the PPS level. Enabled the zero-size palette predictor initialization module.
[0073] 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 , signal using an exponential-Golomb code of degree 0. Finally, The component values for are signaled.
[0074] 2.5.2 Palette Index Encoding 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.
[0075] The palette index has two main palette sample modes: "INDEX" and " COPY_ABOVE". As mentioned above, the escape symbol is also Signaled as "INDEX" mode, an index equal to the maximum palette size is This mode is assigned using flags other than the top line, or if the previous mode was If the "COPY_ABOVE" mode is selected, a signal is sent. In "INDEX" mode, it copies the palette index of the sample in the row above. In the "INDEX" and " In both cases of "COPY_ABOVE" mode, subsequent Signals the actual value that defines the number of samples. or part of execution in "COPY_ABOVE" mode, escape symbols The palette index encoding is shown in Figure 5. vinegar.
[0076] 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 component escape values corresponding to the escape samples for the entire CU. and encodes it in bypass mode.
[0077] 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.
[0078] In HEVC-SCC, the palette modes are 4:2:2, 4:2:0, and monochrome. Palette entries and palette indexes The signaling is nearly the same for all chroma formats. For a matte, each palette entry consists of three components: In the subsampled luminance direction, each palette entry consists of a single component. , chroma samples are associated with chroma sample indices that are divisible by 2. After reconstructing the index, if only a single component is associated with a sample, In this case, only the first component of the palette entry is used. The only difference in signaling is Escape component value. Escape component value signaled for each escape sample. may vary depending on the number of components associated with the sample.
[0079] In VVC, a dual-tree coding structure is used to code intra slices. So the luma component and the two chroma components use different palettes and palette indices. Also, the two chroma components may share the same palette and palette index. Yes.
[0080] 2.6 Deblocking Scheme in VVC In the following description, pN M is the Nth sample on the left side of the Mth row relative to the vertical edge. represents the Nth sample on the top of the Mth column relative to the edge, or horizontal edge, and qN M Is For a vertical edge, the Nth sample on the right of the Mth row, or for a horizontal edge, the Mth column pN represents the Nth sample below M and qN M An example is shown in Figure 9.
[0081] In the following explanation, p N is the Nth sample to the left of the row relative to the vertical edge, Or, q represents the upper Nth sample in the column relative to the horizontal edge. N is for vertical edges For the Nth sample on the right side of the row, or for the Nth sample on the bottom side of the column, represent.
[0082] The filter is turned on / off for each 4 rows. The six pixels in the two red boxes in the first four rows are involved in the decision of the four rows. The six items in the two red boxes in the second four rows are used to determine whether the filter is on or off. The pixels in are used to determine whether the filters in the second four rows are on or off.
[0083] 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. The left edge of the coding block is The coding unit is coded in the geometric order of 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.
[0084] 2.6.1 Boundary determination 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. .
[0085] 2.6.2 Boundary strength calculation For the transform block boundary / coding sub-block boundary, it is necessary to consider the 8x8 grid. If it is located, it may be filtered, and bS[xD i ][yD j ]([xD i ][yD j The settings for ] represent coordinates) are defined as follows:
[0086] - sample p0 or q0 is a coding unit coded in intra prediction mode If it is in the encryption block, bS[xD i ][yD j ] is set equal to 2.
[0087] -Or the block edge is also a transformation block edge and samples p0 or q0 If bS[x D i ][yD j ] is set equal to 1.
[0088] Alternatively, the prediction mode of the coding sub-block containing the sample p0 is If the prediction mode is different from the prediction mode of the coding sub-block containing bS[xD i ][yD j ] to 1 are set equal.
[0089] -or-- bS[xD if one or more of the following conditions are true: i ][yD j ] is 1 is set equal to
[0090] the coding sub-block containing sample p0 and the coding sub-block containing sample q0 Both blocks are coded in IBC prediction mode and are used to predict the two coding sub-blocks. The absolute difference between the horizontal or vertical components of the motion vectors to be processed must be less than or equal to 4 quarter-luminance samples. Above.
[0091] For 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 subblocks. .
[0092] NOTE 1 – The reference pictures used for the two coding subblocks may be the same or different. The decision to add a pixel to the reference picture list is made by using an index into reference picture list 0 or an index into reference picture list 1. , and the reference picture list Regardless of whether the index position in the The judgement is based solely on the
[0093] NOTE 2 - The upper left sample (xSb, ySb) is used to predict the coding subblock that contains it. The number of motion vectors to be used is PredFlagL0[xSb][ySb]+PredFlag gL1[xSb][ySb] is equal to
[0094] - 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 between the horizontal or vertical components of the motion vectors used is 1 / 4 luminance subpixels. The sample size is 4 or more.
[0095] - Using two motion vectors and two different reference pictures, including sample p0 The coding subblocks are predicted using two motion vectors from the same two reference pictures. q0, and predicts the coding sub-block containing sample q0. The absolute difference between the horizontal or vertical components of the two motion vectors used to predict a subblock is , 4 or more in quarter luma sample units.
[0096] - Using two motion vectors of the same reference picture, the coding sub-picture containing sample p0 We predict the block,sample q0 using two motion vectors of the same reference picture. A coding sub-block containing the criterion:
[0097] - the horizontal or vertical division of the motion vectors in list 0 used for the prediction of the two coding subblocks The absolute difference between the vertical components is greater than or equal to 4 in the quarter-luminance samples, or two signs. The linear relationship between the horizontal or vertical components of the motion vectors in List 1 used to predict the motion vectors of the corresponding subblocks. The pairwise difference is greater than or equal to 4 in quarter-luminance samples.
[0098] - the list 0 motion vector used for predicting the coding sub-block containing sample p0 and the link used to predict the coding subblock containing sample q0. The absolute difference between the first and second motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples, or is the list of motion vectors used to predict the coding subblock containing sample p0. The list used to predict the horizontal or vertical component and the coding subblock containing sample q0 0 motion vector is greater than or equal to 4 in 1 / 4 luma sample units.
[0099] - Or, the variable bS[xD i ][yD j ] to 0.
[0100] The calculation rules for BS are summarized in Tables 2-1 and 2-2.
[0101] [Table 1]
[0102] [Table 2]
[0103] 2.6.3 Luminance Deblocking Decision 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] - dp0, dp3, dq0, dq3 are first derived as HEVC
[0112] - if(p side is 32 or more)
[0113] dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1
[0114] dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1
[0115] - if(q side is 32 or more)
[0116] dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1
[0117] dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1
[0118] [ka]
[0119] As shown in Chapter 2.2.4, d = dp0 + dq0 + dp3 + dq3.
[0120] If condition 1 and condition 2 are valid, any block uses a subblock. Check further to see if this is the case.
[0121] If (bSidePisLargeBlk)
[0122] If (mode block P == SUBBLOCKMODE)
[0123] Sp=5
[0124] Else
[0125] Sp=7
[0126] Else
[0127] Sp=3
[0128] If(bSideQisLargeBlk)
[0129] If(mode block Q == SUBBLOCKMODE)
[0130] Sq=5
[0131] Else
[0132] Sq=7
[0133] Else
[0134] Sq=3
[0135] [ka]
[0136] [ka]
[0137] dpq is derived similarly to HEVC.
[0138] sp3 = Abs(p3-p0), derived similarly to HEVC
[0139] if(p side is 32 or more)
[0140] if(Sp==5)
[0141] sp3=(sp3+Abs(p5-p3)+1)>>1
[0142] Else
[0143] sp3=(sp3+Abs(p7-p3)+1)>>1
[0144] sq3=Abs(q0-q3) is derived in the same way as in HEVC
[0145] if(q side is 32 or more)
[0146] If(Sq==5)
[0147] sq3=(sq3+Abs(q5-q3)+1)>>1
[0148] Else
[0149] sq3=(sq3+Abs(q7-q3)+1)>>1
[0150] Similar to HEVC, StrongFilterCondition = (dpq is less than (β>>2), sp3+sq3 is less than (3*β>>5), and Abs(p0-q0) is less than (5*t C +1)>>1) less than?TRUE:FALSE
[0151] 2.6.4 Stronger deblocking filter for luminance (for larger blocks) (Design) Bilinear filters are used when the 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.
[0152] The bilinear filter is shown below.
[0153] Next, i=0~Sp-1 and j=0~Sq-1, q i (pi, qi are vertical Filtering edges The ith sample in a row, or filtering a horizontal edge. the i-th sample in the column to be matched) the boundary sample p iLinearly interpolate the following: Replace with.
[0154]
number
[0155] tcPD i and tcPD j The term is position-dependent clipping as described in chapter 2.3.6. , g j ,f i ,Middle s,t ,P s and Q s is shown in Table 2-3.
[0156] [Table 3] [Table 4]
[0157] 2.6.5 Saturation Deblocking Control A saturation filter is used on both sides of the block boundaries, where the saturation filter is If both sides of the saturation edge are 8 (saturation position) or more, and three conditions are met (the first condition is , for determining boundary strength as in large blocks) is satisfied. The proposed filter subtracts blocks perpendicular to the edges of the blocks in the chroma sample domain. The second and third conditions are applicable when the width or height of the lock is 8 or more. Basically it is the same as the HEVC Luminance Deblocking decision, which is an on / off decision and and a strong filter is determined.
[0158] In the first determination, the boundary strength ( bS) is modified. The conditions in Table 2-2 are checked in order. If the conditions are met, Any remaining lower priority conditions are skipped.
[0159] If a big block boundary is detected, bS is equal to 2 or bS is equal to 1. Then, chroma deblocking is performed.
[0160] The second and third conditions are basically the HEVC luminance filter, as follows: This is similar to a decision.
[0161] In the second condition, we derive d similarly to HEVC luma deblocking.
[0162] The second condition is TRUE if d is less than β.
[0163] In the third condition, StrongFilterCondition is as follows: It is derived.
[0164] dpq is derived in the same way as in HEVC.
[0165] sp3=Abs(p3-p0) is derived in the same way as in HEVC.
[0166] sq3=Abs(q0-q3) is derived in the same way as in HEVC.
[0167] In HEVC design, StrongFilterCondition=(dpq is less than (β>>2), sp3+sq3 is less than (β>>3), and Abs(p0-q0) is less than (5*t C +1)>>1).
[0168] 2.6.6 Strong Deblocking Filter for Saturation A strong deblocking filter for saturation is defined as follows:
[0169] p2´=(3*p3+2*p2+p1+p0+q0+4)>>3
[0170] p1´=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
[0171] p0´=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
[0172] The proposed chroma filter performs deblocking on a 4x4 chroma sample grid. .
[0173] 2.6.7 Position-Dependent Clipping 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.
[0174] 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. A selection is made from two tables provided (i.e., Tc7 and Tc3 shown below). Tc7={6,5,4,3,2,1,1}; Tc3={6,4,2}; tcPD = (Sp = = 3)?Tc3:Tc7; tcQD=(Sq==3)?Tc3:Tc7;
[0175] For P or Q boundaries that are filtered with short symmetric filters, the smaller position Dependent thresholds are applied. Tc3={3,2,1};
[0176] After defining the threshold, the signal is filtered according to the tcP and tcQ clipping values. T i and q´ i Clipping 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 );
[0177] where p´ i and q´ i is the filtered sample value, and p´´ i Oh Biq´´ j is the output sample value after clipping, and tcP i tcP i is VVC t c is the clipping threshold derived from the parameters tcPD and tcQD. lip3 is the clipping function, as specified in VVC.
[0178] 2.6.8 Sub-block Deblocking Adjustment 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 a maximum of 5 sample modifications. A subblock boundary that is close to a CU or implied TU boundary on a data block may have up to two Subblock deblocking is now limited to only modifying up to 100 samples. will be adjusted.
[0179] The following applies to sub-block boundaries that are not aligned with CU boundaries.
[0180] If (mode block Q==SUBBLOCKMODE && edge !=0) {
[0181] if(!(implicitTU && (edge==(64 / 4))))
[0182] if(edge==2 || edge==(orthogonalLength -2) || edge==(56 / 4) || edge==(72 / 4))
[0183] Sp=Sq=2;
[0184] Else
[0185] Sp=Sq=3;
[0186] Else
[0187] Sp=Sq=bSideQisLargeBlk ?5:3
[0188] }
[0189] In this case, edges equal to 0 correspond to CU boundaries, edges equal to 2, or edges equal to orthog An edge with length equal to OnalLength-2 is a subblock boundary 8 samples from a CU boundary. Here, if an implicit division of TUs is used, then the implicit TU is true.
[0190] 2.6.9 Limitation to 4CTU / 2CTU Row Buffers for Luma / Chroma If a horizontal edge is aligned with a CTU boundary, the filtering of the horizontal edge is In the case of color, we limit it to Sp=3, and in the case of saturation, we limit it to Sp=1, Sq=1.
[0191] 2.7 Intra-mode coding in VVC In order to capture any edge direction that appears in natural video, the directional The number of intra modes will be expanded from 33 used in HEVC to 65. The new directional mode is shown in Figure 12 by the red dotted arrows and is a combination of the planar mode and the DC mode. These denser directional intra prediction modes are It applies to both the block size and to luma and chroma intra prediction.
[0192] 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.
[0193] In HEVC, all intra-coded blocks have a square shape and The length of each side of is a power of 2. Thus, we use DC mode to make the intra predictor No division operations are required to generate them. In VTM5, blocks are rectangular and In the general case, it is necessary to use a block-wise division operation. To avoid division operations for the squares, only the long side is used to calculate the average of non-square blocks. It is used.
[0194] Complexity of Most Probable Mode (MPM) List Generation To keep the reliability low, we consider the two available nearby intra-modes. Intra-mode coding method with 6 MPMs is used. Construct MPM list To achieve this, the following three aspects are considered.
[0195] 1. Default intra mode 2. Nearby Intra Mode 3. Derived Intra Mode
[0196] For intra blocks, regardless of whether MRL and ISP coding tools are applied. A unified 6-MPM list is used for all blocks. The MPM list is It is constructed based on the intra mode. Here, the mode of the left block is set as Left. If the mode of the above block is set to Above, the integrated MPM list will be configured as follows: (The left and upper blocks are shown in FIG. 13.)
[0197] -If no neighboring blocks are available, the intra mode defaults to Plan It is set to ar.
[0198] -If both Left and Above modes are non-angle modes,
[0199] *MPM list → {Planar, DC, V, H, V-4, V+4}
[0200] -One of the Left and Above modes is in angle mode and the other is in non-angle mode. If so, it will look like this:
[0201] *Set Mode Max to a larger mode on Left and Above.
[0202] *MPM list → {Planar, Max, DC, Max-1, Max+1, Max -2}
[0203] - If both Left and Above have angles and are different, then become.
[0204] *Set Mode Max to a larger mode on Left and Above.
[0205] *When the difference between Left and Above modes is within the range of 2~62
[0206] MPM List → {Planar, Left, Above, DC, Max-1, Ma x+1}
[0207] *If not,
[0208] MPM List → {Planar, Left, Above, DC, Max-2, Ma x+2}
[0209] -If Left and Above both have angles and are the same, then become.
[0210] *MPM list → {Planar, Left, Left-1, Left+1, DC, Left-2}
[0211] Also, the first bin of the mpm index codeword is the CABAC context code The current intra block is MRL enabled, ISP enabled, or A total of three contexts are used depending on whether it is a normal intra block or not. .
[0212] 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 ated Binary Code) is used.
[0213] For chroma intra mode coding, a total of 8 Intra-modes are used for chroma intra mode coding. These modes include five traditional intra modes and three Component common linear model modes are included (CCLM, LM_A, and LM_L). The chroma mode signaling and derivation process is shown in Table 2-4. The chroma mode encoding is In the I slice, the intra prediction mode of the luminance and chrominance blocks is directly dependent on the intra prediction mode of the I slice. Since the separation of the block division structure for the components is enabled, one chroma block is Therefore, in the case of chroma DM mode, the current chroma block The intra prediction mode of the corresponding luminance block is directly inherited from the central position of the corresponding luminance block.
[0214] [Table 5]
[0215] 2.8 Quantized Residual Block Differential Pulse Code Modulation (QR-BDPCM) In some embodiments, quantized residual block differential pulse code modulation (QR) -BDPCM:quantized residual block differen tial pulse-code modulation (TIM) converts screen content into An efficient coding is proposed.
[0216] The prediction direction used in QR-BDPCM is vertical prediction mode and horizontal prediction mode. Intra prediction is similar to intra prediction in that it can be done in either horizontal or vertical prediction. By copying samples, prediction is performed on the entire block. The residual is quantized and the quantized residual is It encodes the delta between the difference 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 (copying the values line by line) or vertically (copying the values up and down for each line in the prediction block) Let Q(r i , j ) ,0≦i≦M-1,0≦j≦N-1 is the residual r i,j represents a quantized version of In this case, the residual is the difference between the original block and the predicted block value. is applied to the quantized residual samples, resulting in an element r ~ i , j Modified with M × N array R ~ When the vertical BDPCM is signaled, .
[0217]
number
[0218] For horizontal prediction, a similar rule applies: the residual quantized samples are calculated by the following formula: Obtained.
[0219]
number
[0220] Residual quantized sample r ~ i,j is sent to the decoder.
[0221] 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,
[0222]
number
[0223] For the horizontal direction,
[0224]
number
[0225] The dequantized residual Q -1 (Q(r i,j )) is added to the intra block prediction value and Generates the configured sample values.
[0226] The main advantage of this scheme is that it performs the reverse DPCM on the fly during coefficient parsing. You can just add the predictors during coefficient parsing, or do it after parsing. It is also possible.
[0227] 2.9 Adaptive Loop Filter In VTM5, the adaptive loop filter (ALF) with block-based filter adaptation : Adaptive Loop Filter) is applied. The luminance component is filtered by the local gradient. Select one of 25 filters for each 4x4 block based on direction and function. do.
[0228] 2.9.1 Filter Shape In VTM5, two diamond filter shapes (shown in Figure 14) are used. Luminance Component A 7x7 diamond is applied to the chromaticity component, and a 5x5 diamond is applied to the saturation component.
[0229] 2.9.2 Block Division For the luma component, each 4x4 block is classified into one of 25 classes. The class index C is determined based on the quantized value of its directionality D and activity A^ as follows: It is derived as follows:
[0230]
number
[0231] 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.
[0232]
number
[0233] 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).
[0234] Subsampled 1-D Laplacian to reduce the complexity of block partitioning As shown in Figures 15A to 15D, the same calculation is applied to the gradient calculation in all directions. The sampling position is used.
[0235] Then, the maximum and minimum values of the gradient D in the horizontal and vertical directions are calculated as follows: Set it as follows.
[0236]
number
[0237] The maximum and minimum values of the two diagonal gradients are set as follows:
[0238]
number
[0239] To derive the value of the directivity D, these values are compared with each other and with two thresholds t1 and t2. compare.
[0240]
number
[0241] If both are TRUE, then D is set to 0.
[0242]
number
[0243] If so, continue with step 3; otherwise, continue with step 4.
[0244]
number
[0245] If so, then D is set to 2; alternatively, D is set to 1.
[0246]
number
[0247] If so, then D is set to 4; alternatively, D is set to 3.
[0248] The activity value A is calculated as follows:
[0249]
number
[0250] A is further quantized into the range of 0 to 4, and the quantized value is defined as A^.
[0251] For the chroma component in the picture, no classification method is applied, i.e., a single ALF coefficient is applied to each chroma component.
[0252] 2.9.3. Geometric Transformation of Filter Coefficients and Clipping Values 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.
[0253] We introduce three geometric transformations, including diagonal, vertical flip and rotation.
[0254]
number
[0255] where K is the size of the filter, 0≦k, l≦K-1 are the coefficient coordinates, and the position ( Position (0,0) is the top left corner and position (K-1,K-1) is the bottom right corner. The filter coefficients f(k,l) and clipping are calculated based on the gradient value calculated for the clock. The relationship between the transformation and the four gradients in the four directions is summarized in the table below. Can.
[0256] [Table 6]
[0257] 2.9.4 Filter Parameter Signaling 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. A set of up to one chroma filter coefficient and clipping value index 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 device is signaled.
[0258] The clipping value index decoded from the APS is a luminance table of clipping values. Luma table and Chroma table of clipping values ble) can be used to determine the clipping values. The clipping value depends on the internal bit depth. Specifically, the luminance table and The color and saturation tables are obtained by the following formulas:
[0259]
number
[0260] where B is the internal bit depth and N is the clipping limit allowed in VTM5.0. This is equal to 4, the number of metric values.
[0261] 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 of two filter sets. Which filter set is suitable for the luminance CTB? The filter set index that indicates which filter set is to be used is signaled. A set of 16 fixed filters is predefined and hard-coded in both the NI RTC and the NI RTC Reader.
[0262] 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
[0263] 2.9.5 Filtering process 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.
[0264]
number
[0265] In this case, f(k,l) represents the decoded filter coefficients and K(x,y) represents the clipping coefficients. 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(-y ,y,x).
[0266] 2.9.6 Virtual Boundary Filtering for Line Buffer Reduction 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. Therefore, we define the virtual boundary as the row, N, which is equal to 4 for the luma component and For , it is equal to 2.
[0267] 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.
[0268] For the filtering process, a symmetric padding operation on the virtual boundary is performed on the luminance and As shown in Figure 17, the sample to be filtered is used for both the saturation and chrominance components. If it is below the boundary, then padding is applied to nearby samples that are above the virtual boundary. Meanwhile, the corresponding samples on the other side are also symmetrically padded.
[0269] 2.10 Sample Adaptive Offset :SAO) 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.
[0270] [Table 7]
[0271] 2.10.1 Operation of each SAO type 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° 5°, 45° or less.
[0272] Classify each CTB into five categories according to Table 2-7.
[0273] [Table 8]
[0274] The band offset (BO) is the band of the upper 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.
[0275] 2.11 Unified Inter and Intra Prediction (CIIP) 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. Combined Inter / Intra Prediction (CIIP) iction) An additional flag is signaled to indicate whether composite mode applies. As the name suggests, CIIP prediction uses inter-prediction and intra-prediction signals. The same inter prediction process that is applied in the normal merge mode is used to combine CIIP Mode P inter The inter prediction signal is derived from the normal After the intra prediction process, the intra prediction signal P intra Then, the weighting The intra prediction signal and the inter prediction signal are combined using the average, in this case the top left neighbor According to the coding mode of the block (shown in FIG. 20), the weight value is calculated as follows:
[0276] - isIntraTop if the top neighbor is available and is intra-coded 1, or set isIntraTop to 0.
[0277] - isIntraLeft if the left neighbor is available and is intra-coded to 1, or set isIntraLeft to 0.
[0278] - If (isIntraLeft+isIntraLeft) is equal to 2, wt is Set to 3.
[0279] - Or, if (isIntraLeft+isIntraLeft) is equal to 1, If so, wt is set to 2.
[0280] - Alternatively, set wt to 1.
[0281] The CIIP forecast is formed as follows.
[0282]
number
[0283] 2.12 Luminance Mapping with Chroma Scaling (LMCS) Chroma scaling as a new processing block before the loop filter in VTM5 Luma Mapping with Chroma LMCS has two main components: 1) In-loop mapping of luminance components based on an adaptive piecewise linear model; and 2) for the chroma component, we apply luminance-dependent chroma residual scaling. The light blue shaded area in Figure 21 shows the LMCS architecture from the reader's point of view. The blocks indicate where in the mapped domain the processing is applied, and these includes inverse quantization, inverse transform, luma intra prediction, and addition of luma prediction and luma residual. The unshaded blocks in Figure 21 are the original (i.e., unmapped) data. Indicates where in the main the processing is applied. These are non-blocking, ALF, SAO Loop filters such as motion compensation prediction, chroma intra prediction, and chroma residual are added together with chroma prediction. The method includes: calculating the decoded picture as a reference picture; The light yellow shaded blocks represent the forward and backward mapping of the luminance signal and the luminance-dependent chromaticity. The new LMCS function block includes the degree scaling process. Like most tools, LMCS uses the SPS flag to enable at the sequence level. You can enable / disable it.
[0284] 3. Examples of problems to be solved by the embodiments 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.
[0285] Palette samples, when processed by post-loop filtering, give a visual It is possible that the device has a chefact.
[0286] For non-square blocks, the palette scanning order can be improved.
[0287] 4. Example of embodiment 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 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. . Alternatively, the indication of the use of the palette may be conditional based on the 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 a skip mode (i.e., a skip frame). 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 the pulse code conversion If the mode is not PCM (Pulse-Code Modulation), An indication of the use of the forwarding mode may be signaled. b) Alternatively, further, if the prediction mode is an intra mode, the palette An indication of use of the mode may be signaled before an indication of use of the PCM mode. In this case, if palette mode is applied, the signaling of the use of PCM mode is skipped. This may also be the case. c) Alternatively, further, the prediction mode is inter mode or intra block If the copy mode is selected, the signal to use the palette mode is skipped. good. 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 signaling of the instruction for use 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 an indication of 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 use 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 use is a skip flag, a predictive mode 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 also be signaled indicating 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 in palette mode, then it is in PCM mode. A flag may further be signaled indicating 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 also be signaled indicating whether or not 1. In one example, one video data unit (e.g., sequence / picture) When IBC mode is enabled for a " may be signaled. 2. In one example, the "separate flag" is signaled under the condition of the block size. This is also fine. 2. It is proposed to add palette mode as an additional candidate prediction mode. Thus, the indication of the use of palette mode does not need to be signaled separately from the prediction 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 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 for 4×4 blocks, intrablock 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 are 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 In the case of the 1st mode, which is a special case of the 2nd mode, the prediction mode index may be signaled. . In one example, the four modes of binarization are Intra(1), Inter(00), , IBC(010), and Palette(011). ii. In one example, the four mode binarization is performed by using the intra ( 10), Inter (00), IBC (01), and Palette (11). . 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 To(1) and Intra(0). 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). v. In one example, the current slice is an intra slice, and I If BC is enabled, palette and intra mode binarization is done using IBC(1). , palette(01), intra(00). vi. In one example, the four modes of binarization are Inter(1), Intra(01 ), IBC(001), and Pallet(000). vii. In one example, the four modes of binarization are Intra(1), Inter(0 1), IBC(001), and Pallet(000). 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) will be done. 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 an intra mode and not a palette mode. If not, an indication to use the IBC mode may be signaled. 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, A single flag may be signaled to indicate whether the IBC mode is in IBC mode. If not, add another flag to indicate whether it is in palette mode or intra mode. It may be signaled. b. In one example, if it is an I-slice / intra-tile group, A single flag may be signaled to indicate whether the device is in intra mode or not. If not, add another flag to indicate whether it is in palette mode or IBC mode. may be signaled. 5. Instructions for use of 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. 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 given when 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 flag of neighboring blocks f. Display color format (e.g. 4:2:0, 4:4:4) g. Split / Double Coding Tree Structure h. Slice / tile group type and / or picture type 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 In one example, the instruction to use IBC mode is: 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 flag of neighboring blocks f. Display color format (e.g. 4:2:0, 4:4:4) g. Split / Double Coding Tree Structure h. Slice / tile group type and / or picture type 7. Palette mode is determined by the intra mode (e.g. MO) in the deblocking decision process. DE_INTRA). In one example, 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 selected based on the inter mode ( For example, it may be treated as MODE_INTER. 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. 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. 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 10. Based on slice / tile group / picture level flags, one block The RGB color space may signal and / or derive an indication of the use of palette mode for the RGB color space. In one example, this flag is set to MMVD (Merge Vector Difference). h Motion Vector Difference (UMVE) and / or or Adaptive Motion Vector Resolution (AMVR) or Resolution) mode
[0288] [ka]
[0289] When merging with the original image, the motion vector difference (MVD) is small. Alternatively, it may further indicate whether a scalar difference is allowed.
[0290] [ka]
[0291] The signaling of the use of palette mode is skipped and palette mode is disabled. It is presumed that there are. b. In one example, this flag is set to true for a slice / tile group / picture. Alternatively, such a flag may also be , indicates that the palette mode is disabled, the palette mode for one block is The RGB palette mode is automatically disabled, so the RGB palette mode is automatically disabled. 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. In one example, this flag is set to 0 if the motion vector difference (MMVD, also known as UMVE) and / or Adaptive Motion Vector Resolution (AMVR) mode
[0292] [ka]
[0293] Indicates whether a small motion vector difference (MVD) is allowed in merging with the Alternatively,
[0294] [ka]
[0295] The signaling of the instruction to use IBC mode is skipped and IBC mode is assumed to be disabled. will be done. b. In one example, this flag is set to I for a slice / tile group / picture. Alternatively, such a flag may further indicate whether BC mode is enabled. If you want to indicate that IBC mode is disabled, enable IBC mode for one block. Skip using signal notification and assume IBC mode is disabled. 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. Display color format (e.g. 4:2:0, 4:4:4) 4. Split / Double Coding Tree Structure 5. Slice / Tile Group Type and / or Picture Type 6. Number of palette entries 7. Number of predicted palette entries 8. Color component index b. In one example, samples associated with multiple palette entries are The depth of the slit may be 100 mm. In one example, C0 and C1 are 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, the 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 at 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 at 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 at the palette entry. 2. In one example, M may be equal to the bit depth of the sample at 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 at the palette entry. 4. In one example, M may be equal to the bit depth of the sample at 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 at the palette entry. 6. In one example, M may be equal to the bit depth of the sample at the palette entry minus the bit depth of the reconfigured sample. It may be equal to the bit depth minus the constructed samples. vi. In one example, M may be an integer (eg, 2). vii. Alternatively, and in addition, in one example, M may depend on: 1. Block dimensions of the current block 2. Quantization parameters for the current block 3. Display color format (e.g. 4:2:0, 4:4:4) 4. Split / Double Coding Tree Structure 5. Slice / Tile Group Type and / or Picture Type 6. Number of palette entries 7. Number of predicted palette entries 8. Sample position in block / picture / slice / tile 9. Color component index viii. In one example, a lookup based on a sample in a palette entry The motion may be used during the reconstruction of the sample. 1. In one example, the values in the lookup table are the sequence parity of the LCU. Parameter Set (SPS:Sequence Parameter Set) / Video Parameter Meter Set (VPS:Video Parameter Set) / Picture Parameter PPS: Picture Parameter Set / Picture Header / Signaled in slice header / tile group header / LCU row / LCU group This may also be the case. 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 / LC It may be inferred in the U group. 13. Signaled / derived quantization parameters (QPs) for palette coding blocks Quantization Parameter) is clipped and escaped. may first be modified before being used to derive the pixel / sample. 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.
[0296] [ka]
[0297] 14. How to encode escape samples / symbols depends on quantum bypass may be unified regardless of whether it is enabled or not. 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 You may depend on it. 1. SPS / VPS / PPS / Picture Header / Slice Header / Tier of LCU Messages signaled in LCU group headers / LCU lines / LCU groups 2. Internal Bit Depth 3. Input Bit Depth 4. Block dimensions of the current block 5. Quantization parameters for the current block 6. Display color format (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 for signaling 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 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 / Messages signaled in tile group headers / LCU rows / LCU groups b) Internal Bit Depth c) Input bit depth d) Block dimensions of the current block e) Quantization parameters for the current block f) Display color format (e.g. 4:2:0, 4:4:4) g) Split / Double Coding Tree Structure h) Slice / tile group type and / or picture type d. On 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). stomach. 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. 16. The palette coding block is in maximum probability mode (MPM). During the process of building a list of MODE_LE Modes, one intra block (e.g., MODE_ INTRA). In one example, the indexing of adjacent (contiguous or non-contiguous) blocks during construction of an 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 Dependency Parameter Sets (DPS: Dependency Parameter Set) / SPS / VPS / PPS / AP S / Picture Header / Slice Header / Tile Group Header / Maximum Coding Unit (L CU: Largest Coding Unit) / Coding unit (CU: Codin g Unit) / LCU row / LCU group / TU / PU block / Video coding unit It may be signaled at 17. The palette coding block is in maximum probability mode (MPM). During the list construction process of the le Modes, they may be treated as non-intra blocks (e.g. For example, it may be treated as a block having a prediction mode equal to MODE_PLT. In one example, 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. 18. A chroma block coded in DM mode corresponds to a chroma block coded in palette mode. The chroma blocks may be interpreted as having the default intra prediction mode. In one example, the corresponding chroma block coded in palette mode is If the lock is coded in DM mode, intra blocks (e.g., MODE_INT RA) 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. 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 is a block that does not have motion information, or Indicates a block whose motion information cannot be used as a prediction for other blocks. b. In one example, blocks coded in palette mode are coded using HMVP, MERG 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. 20. How to handle blocks coded in palette mode (e.g., as described above) The decision on whether and / or how to apply the methodology will be based on: Good too. a. Video 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. Display color format (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 be applied only to the luma and / or chroma components). j.Temporary Layer ID k. Standard Profiles / Levels / Tiers 21. The context coding bins for a palette coding block are contained within a certain range. The number of times the ... 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 set it to one for each color component. NumColorComp may record the number of bins that are context coded using The number of color components encoded in one block (e.g., one pixel in the YUV format). For CU, NumColorComp is set to 3). ii. Alternatively, the counter may be initialized to zero and the context may count one bin. 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 decoded information 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. 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 for 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 (e.g., 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 determined based on the observations of the context coding bins. From this point of view, it may be larger than a TS coded block or a non-TS coded block. 22. The palette coding block encodes neighboring intra blocks in CIIP mode. In the counting process, it is treated as a non-intra block (e.g., MODE_P LT). In one example, in CIIP mode, while counting neighboring intra blocks, 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, 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, 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-blocks in CIIP mode. In the process of calculating the block statistics, it may be treated as an intra block. 23. Pre- and / or post-filtering processing for palette-coded samples It is suggested to skip it. In one example, the palette-encoded 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. 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 encoded samples. stomach. 24. In palette mode, it is proposed to add more scan orders. In one example, a reverse horizontal traverse scan order may be used, defined as follows: stomach. 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, using a reverse vertical traverse scan order defined as good. i. In one example, the scan direction for odd rows may be 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. 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 the 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. 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, the indication of the QR-BDPCM direction is estimated for non-square blocks. It may be measured. i. In one example, the QR-BDPCM orientation indication further includes a width greater than height. For larger blocks, vertical inference may be made. ii. In one example, the QR-BDPCM orientation indication further includes a width less than a height. For small blocks, horizontal guesses may be made. 27. The methods in bullets 24, 25, and 26 are 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. Display color format (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 luma and / or chroma components) ). x.Temporary Layer ID xi. Standard Profiles / Levels / Tiers
[0298] 5. Additional Embodiments In the following examples, newly added text is in bold italics, deleted text is in The removed text is marked with "[]".
[0299] 5.1 Embodiment #1 This chapter describes how the video bitstream representation compares to the baseline bitstream syntax. 1 illustrates an exemplary embodiment that may be modified in accordance with the present invention.
[0300] [Table 9]
[0301] [ka]
[0302] [Table 10]
[0303] [ka]
[0304] [Table 11]
[0305] [Table 12]
[0306] [ka]
[0307] [Table 13]
[0308] [ka]
[0309] [Table 14]
[0310] [Table 15]
[0311] [Table 16]
[0312] [Table 17]
[0313] [Table 18]
[0314] [ka]
[0315] [Table 19]
[0316] [Table 20]
[0317] 5.2 Embodiment #2 In this embodiment, modeType will be described.
[0318] For a coding unit in a coding tree node, [ka] Whether or not INTRA is available (MODE_TYPE_INTRA), each inter coding mode The variable modeType specifies whether it can be used or not (MODE_TYPE_INTER). Specify.
[0319] 5.3 Example #3 In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. The number will be notified.
[0320] [Table 21] [Table 22]
[0321] 5.4 Example #4 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.
[0322] [Table 23] [Table 24]
[0323] 5.5 Embodiment #5 In this embodiment, the syntax of the coding unit is described. _mode_ibc_flag is signaled after pred_mode_plt_flag. Be known.
[0324] [Table 25] [Table 26]
[0325] 5.6 Example #6 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.
[0326] [Table 27] [Table 28]
[0327] 5.7 Example #7 In this embodiment, the syntax of the coding unit is described. When the mode is MODE_INTRA, pred_mode_plt_flag and p The red_mode_ibc_flag is signaled.
[0328] [Table 29] [Table 30]
[0329] 5.8 Example #8 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.
[0330] [Table 31] [Table 32]
[0331] 5.9 Example #9 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.
[0332] [Table 33] [Table 34]
[0333] 5.10 Example #10 In this embodiment, the meaning of pred_mode_plt_flag will be explained. [ka]
[0334] 5.11 Example #11 In this embodiment, the meaning of pred_mode_plt_flag will be explained. [ka]
[0335] 5.12 Example #12 In this embodiment, derivation of the boundary strength will be described. 8.8.3.5 Boundary Filtering Strength Derivation Process 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 Position (xCb, yCb) A variable nCbW that defines the width of the current coding block, A variable nCbH that specifies the height of the current coding block; Whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges. The edgeType variable specifies whether to filter the A variable cIdx that specifies the color components of the current coding block; edgeFlags is a two-dimensional (nCbW) by (nCbH) array. The output of this process is a two-dimensional (nCbW) × (nCbH ) array bS. ... 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 lag equal to 1, then bS[xD i ][yD j ]teeth, It 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 i ][yD j ] is set equal to 2 do. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 is If iip_flag is equal to 1 in the coding block, then bS[xD i ][yD j ]teeth , is set equal to 2. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 is bS[xD i ][yD j ] is set equal to 1.
[0336] [ka]
[0337] Alternatively, the prediction mode of the coding sub-block including the sample p0 is the same as the prediction mode of the coding sub-block including the sample q0. If the prediction mode of the coding subblock is different, bS[xD i ][yD j ] is equal to 1 It is set easily. Alternatively, if cIdx is 0 and one or more of the following conditions are true, then bS[x D i ][yD j ] is set equal to 1. The coding sub-block containing sample p0 and the coding sub-block containing sample q0 are Both are coded in IBC prediction mode and are used to predict the two coded sub-blocks. The absolute difference in the horizontal or vertical components of the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples. do. 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 block. NOTE 1 - Whether the reference pictures used for the two coding subblocks are the same or different uses an index into reference picture list 0 to form a prediction, or Whether the image is formed using an index into the reference picture list 1 or not, and which picture is referenced, regardless of whether it is at a different index position in the picture list. The decision is based solely on whether Note 2 - The upper left sample containing (xSb, ySb) is used to predict the coding subblock. The number of motion vectors used is PredFlagL0[xSb][ySb]+PredF Equivalent to lagL1[xSb][ySb]. 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 vector used is 1 / 4 luma sample. The unit is 4 or more. Using two motion vectors and two different reference pictures, predicts the coding subblock using two motion vectors from the same two reference pictures, The coding sub-block containing sample q0 is predicted, and two coding sub-blocks of the same reference picture are The absolute difference in the horizontal or vertical components of the two motion vectors used to predict a block is 1 / 4 luma sample units or more. Using two motion vectors from the same reference picture, the coding subblock containing sample p0 is q0, using two motion vectors from the same reference picture. A coding sub-block is predicted such that both of the following conditions hold: The horizontal or vertical of the motion vectors in list 0 used for predicting the two coded subblocks. The absolute difference between the components is greater than or equal to 4 for the quarter-luminance samples, or the two coding samples The absolute difference between the horizontal or vertical components of the motion vectors in List 1 used to predict the subblock. The difference is 4 or more quarter luma samples. The horizontal axis of the list 0 motion vector used to predict the coding subblock containing sample p0. or List 1, which is used to predict the vertical component and the coding subblock containing sample q0 The absolute difference between the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples, or The horizontal or vertical position of the list 1 motion vector used to predict the coding subblock containing vector p0. is the vertical component and the list 0 motion vector used to predict the coding subblock containing sample q0. The absolute difference between the vectors is greater than or equal to 4 in quarter-luminance sample units. Or, the variable bS[xD i ][yD j ] to 0.
[0338] 5.13a Implementation #13a In this embodiment, derivation of the boundary strength will be described. 8.8.3.5 Boundary Filtering Strength Derivation Process 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 Position (xCb, yCb) A variable nCbW that defines the width of the current coding block, A variable nCbH that specifies the height of the current coding block; Whether to filter vertical (EDGE_VER) or horizontal (EDGE_HOR) edges. The edgeType variable specifies whether to filter the A variable cIdx that specifies the color components of the current coding block; edgeFlags is a two-dimensional (nCbW) by (nCbH) array. The output of this process is a two-dimensional (nCbW) × (nCbH ) array bS. ... 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 lag equal to 1, then bS[xD i ][yD j ]teeth, It 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 i ][yD j ] is set equal to 2 do. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 is If iip_flag is equal to 1 in the coding block, then bS[xD i ][yD j ]teeth , is set equal to 2. Alternatively, the block edge is also a transformation block edge, and sample p0 or q0 is bS[xD i ][yD j ] is set equal to 1.
[0339] [ka]
[0340] Alternatively, the prediction mode of the coding sub-block including the sample p0 is the same as the prediction mode of the coding sub-block including the sample q0. If the prediction mode of the coding subblock is different, bS[xD 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[x D i ][yD j ] is set equal to 1. The coding sub-block containing sample p0 and the coding sub-block containing sample q0 are Both are coded in IBC prediction mode and are used to predict the two coded sub-blocks. The absolute difference in the horizontal or vertical components of the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples. do. 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 block. NOTE 1 - Whether the reference pictures used for the two coding subblocks are the same or different uses an index into reference picture list 0 to form a prediction, or Whether the image is formed using an index into the reference picture list 1 or not, and which picture is referenced, regardless of whether it is at a different index position in the picture list. The decision is based solely on whether Note 2 - The upper left sample containing (xSb, ySb) is used to predict the coding subblock. The number of motion vectors used is PredFlagL0[xSb][ySb]+PredF Equivalent to lagL1[xSb][ySb]. 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 vector used is 1 / 4 luma sample. The unit is 4 or more. Using two motion vectors and two different reference pictures, predicts the coding subblock using two motion vectors from the same two reference pictures, The coding sub-block containing sample q0 is predicted, and two coding sub-blocks of the same reference picture are The absolute difference in the horizontal or vertical components of the two motion vectors used to predict a block is 1 / 4 luma sample units or more. Using two motion vectors from the same reference picture, the coding subblock containing sample p0 is q0, using two motion vectors from the same reference picture. A coding sub-block is predicted such that both of the following conditions hold: The horizontal or vertical of the motion vectors in list 0 used for predicting the two coded subblocks. The absolute difference between the components is greater than or equal to 4 for the quarter-luminance samples, or the two coding samples The absolute difference between the horizontal or vertical components of the motion vectors in List 1 used to predict the subblock. The difference is 4 or more quarter luma samples. The horizontal axis of the list 0 motion vector used to predict the coding subblock containing sample p0. or List 1, which is used to predict the vertical component and the coding subblock containing sample q0 The absolute difference between the motion vectors is greater than or equal to 4 in units of 1 / 4 luma samples, or The horizontal or vertical position of the list 1 motion vector used to predict the coding subblock containing vector p0. is the vertical component and the list 0 motion vector used to predict the coding subblock containing sample q0. The absolute difference between the vectors is greater than or equal to 4 in quarter-luminance sample units. Or, the variable bS[xD i ][yD j ] to 0.
[0341] 5.13b Implementation #13b In this embodiment, the encoding and reconstruction of escape samples is described.
[0342] [Table 35]
[0343] [ka] [ka]
[0344] [[list levelScale[] is levelScale when k=0..5. [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-7 7) recSamples[x][y]=Clip3(0,(1< <bitDepth)-1 ,tmpVal) (8-78)]
[0345] [ka]
[0346] 5.14 Embodiment #14 8.4.5.3 Palette Mode Decoding Process The inputs to this process are: - Specifies the top-left sample of the current block relative to the top-left luminance sample of the current picture Position (xCb, yCb) - The variable startComp defines the first color component in the palette table. - the variable cIdx, which defines the color components of the current block; - Two variables nCbW and nCbH that define the width and height of the current block, respectively . The output of this process is the array recSamples[x][y], where x=0..nCbW −1,y=0..nCbH−1 specifies the reconstructed sample values of the block. 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 nSubHeigh t is set to 1. -Alternatively, set nSubWidth to SubWidthC and nSubHeight Set to SubHeightC. The reconstructed sample array recSamples at position (xCb, yCb) is (nCbW × nCbH) block is x=0...nCTbW-1 and y=0...nCbH-1 Represented by recSamples[x][y], where x and 0~nCbW-1 are in the range The value of recSamples[x][y] for each y in the range of nCbH-1 is as follows: It is derived as follows. - The variables xL and yL are derived as follows: xL=palette_transpose_flag ? x * nSubHe ight:x * nSubWidth (8-234) yL=palette_transpose_flag ? y * nSubWi dth:y * nSubHeight (8-235) The variable bIsEscapeSample is derived as follows: -PaletteIndexMap[xCb+xL][yCb+yL] is MaxPal palette_escape_val_present If _flag is equal to 1, bIsEscapeSample is set to 1. -or- 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_transqua nt_bypass_flag is equal to 0), the following ordered steps are applicable: It is used. 1. The quantization parameter derivation process specified in Section 8.7.1 is performed on the left The position (xCb, yCb) that defines the top-left sample of the current block relative to the top sample. It is called using [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.]
[0347] [ka]
[0348] QpPrimeTsMin=4+min_qp_prime_ts_minus4 3. The variable bitDepth is derived as follows: bitDepth=(cIdx==0)?BitDepth Y :BitDepth C (8-241) 4.list levelScale[] is the levelScal when k=0..5. It is defined as e[k]={40, 45, 51, 57, 64, 72}. [Ed.(BB):For non-palette CUs, levelScale is rectNon Depends on TsFlag. Does it apply here too?] 5. The following applies: tmpVal=(PaletteEscapeVal[cIdx][xCb+xL] [yCb+yL]* levelScale[qP%6])<<(qP / 6)+32)>>6 (8-24 2) recSamples[x][y]=Clip3(0,(1< <bitDepth) -1,tmpVal) (8-243) When one of the following conditions is true: -cIdx is equal to 0 and numComps is equal to 1 -cIdx equals 3 The variable PredictorPaletteSize[startComp] and the array Pr The editorPaletteEntries are derived or modified as follows: for(i=0;i <CurrentPaletteSize[startComp ];i++) for(cIdx=startComp;cIdx<(startComp+nu mComps);cIdx++) newPredictorPaletteEntries[cIdx][i]= CurrentPaletteEntries[cIdx][i] newPredictorPaletteSize=CurrentPalette Size[startComp] for(i=0;i<PredictorPaletteSize && newP redictorPaletteSize<PaletteMaxPredictorS ize;i++) if(!PalettePredictorEntryReuseFlags[i ){ for(cIdx=startComp;cIdx<(startComp+n umComps);cIdx++) (8-244) newPredictorPaletteEntries[cIdx][ne wPredictorPaletteSize]= PredictorPaletteEntries[cIdx][i] newPredictorPaletteSize++ } for(cIdx=startComp;cIdx<(startComp+num Comps);cIdx++) for(i=0;i<newPredictorPaletteSize;i++ ) PredictorPaletteEntries[cIdx][i]=new PredictorPaletteEntries[cIdx][i] PredictorPaletteSize[startComp]=newPre dictorPaletteSize The value of PredictorPaletteSize[startComp] ranges from 0 to Pal The bitstream is limited to etteMaxPredictorSize. This is a system conformance requirement.
[0349] 5.15 Embodiment #15 8.4.2 Derivation Process for Luminance Intra Prediction Modes ... - or (skip_intra_flag[xPb][yPb] and DimFl ag[xPb][yPb] are all equal to 0), IntraPredModeY [xPb][yPb] are derived by the following sequential steps: 1. The neighboring positions (xNbA, yNbA) and (xNbB, yNbB) are respectively xPb-1,yPb) and (xPb,yPb-1). 2. If you replace X with either A or B, the variable candIntraPredM odeX is derived as follows: The z-scan-order block availability derivation process specified in Section 6.4.1 takes as input Then, set the position (xCurr, yCurr) equal to (xPb, yPb) and the neighboring position (xNbY ,yNbY) equal to (xNbX,yNbX), and the output is Assigned to ilableX. ●-Candidate intra prediction mode candIntraPredModeX is as follows: is derived. - if availableX is equal to FALSE, candIntraPre dModeX 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.
Chem.
[0350] 5.16 Embodiment #16 8.4.2 Derivation Process for Luminance Intra Prediction Mode The input to this process is as follows. - The luminance position (xCb, yCb) that defines the top-left sample of the current luminance coding block with respect to the top-left luminance sample of the current picture - The variable cbWidth that defines the width of the current coding block in the luminance sample, - The variable cbHeight that defines the height of the current coding block in the luminance sample. In this process, the luminance intra prediction mode IntraPredModeY[xCb] yCb] is derived. 1. When replacing X with either A or B, the variable candIntraPredM odeX is derived as follows.
[0351]
Chem.
[0352]
Chemical formula
[0353] 5.17 Embodiment #17 8.4.3 Derivation process for the luminance intra prediction mode The input to this process is as follows - The top - left sample of the current luminance coding block for the top - left luminance sample of the current picture The luminance position (xCb, yCb) that defines the pull - A variable cbWidth that defines the width of the current coded block in the luminance samples, - A variable cbHeight that defines the height of the current coded block in the luminance samples. In this process, the luminance intra prediction mode IntraPredModeY[xCb] yCb] is derived. 2. When X is replaced with either A or B, the variable candIntraPredM odeX is derived as follows. - The block availability derivation process defined in 6.4.X item [Ed.(BB): Neighborhood block availability derivation process tbd] takes as input the position (xCurr, yCurr) set equal to (xCb, yCb) and the neighborhood positions set equal to (xNbX, yNbX), calls it with (xNbY, yNbY), and assigns the output to availableX. - The candidate intra prediction mode candIntraPredModeX is derived as follows. - If one or more of the following conditions are true, candIntraPredModeX is derived as follows. - If one or more of the following conditions are true, candIntraPredModeX is
Transformation
[0354] 5.18 Embodiment #18 8.4.3 Derivation Process for Luminance Intra Prediction Modes 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. Luminance position (xCb, yCb) that specifies the pull a variable cbWidth that 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. In this process, the luminance intra prediction mode IntraPredModeY[xCb][ yCb] is derived. 3. If you replace X with either A or B, the variable candIntraPredM odeX is derived as follows:
[0355] [ka] The block availability derivation process defined in takes as input a set equal to (xCb, yCb). The specified position (xCurr, yCurr) is set equal to (xNbX, yNbX). Called at neighborhood position (xNbY, yNbY) and assigns the output to availableX do. - Candidate intra prediction mode candIntraPredModeX is as follows: It is derived. - If one or more of the following conditions are true, candIntraPredModeX is
Chemical formula
Chemical formula
[0356] - X is equal to B and yCb - 1 is less than ((yCb >> CtbLog2SizeY) < < CtbLog2SizeY). - Or, set candIntraPredModeX equal to IntraPredMod eY[xNbX][yNbX]. ··· When x = xCb..xCb + cbWidth - 1 and y = yCb..yCb + cbHeig ht - 1, the variable IntraPredModeY[x][y] is set equal to IntraPre dModeY[xCb][yCb].
[0357] 5.19 Embodiment #19
[0358]
Table 36
Table 37
[0359] 5.20 Embodiment #20
[0360] [Table 38] [Table 39]
[0361] 5.21 Embodiment #21
[0362] [Table 40] [Table 41]
[0363] 5.22 Example #22 In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. The number will be notified.
[0364] [Table 42] [Table 43]
[0365] 5.23 Embodiment #23
[0366] [Table 44] [Table 45]
[0367] 5.24 Embodiment #24 In this embodiment, the syntax of the coding unit is described. ed_mode_plt_flag is signaled after pred_mode_ibc_flag. The number will be notified.
[0368] [Table 46] [Table 47]
[0369] 5.25 Embodiment #25 In this embodiment, the syntax of the coding unit is described. The palette syntax is signaled when the measurement mode is MODE_PLT.
[0370] [Table 48] [Table 49] [Table 50]
[0371] 5.26 Embodiment #26 In this embodiment, a process of derivation of a chroma intra prediction mode will be described. [ka] The inputs to this process are: - The top-left sample of the current chroma coding block relative to the top-left luma sample of the current picture. Luminance position (xCb, yCb) that specifies the pull a variable cbWidth that 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. In this process, the chroma intra prediction mode IntraPredModeC[xCb][ yCb] is derived. The corresponding intra prediction mode lumaIntraPredMode is derived as follows: will be done. - lumaIn if intra_mip_flag[xCb][yCb] is equal to 1 traPredMode is set equal to INTRA_PLANAR. -Or CuPredMode[0][xCb][yCb] is MODE_IBC [ka] lumaIntraPredMode is set equal to INTRA_DC. -Or lumaIntraPredMode is IntraPredModeY[ The offset is set equal to [xCb+cbWidth / 2][yCb+cbHeight / 2]. ...
[0372] 5.27 Example #27 In this embodiment, a picture reconstruction process that performs a mapping process for luminance samples will be described. Reveal. Picture reconstruction with a mapping process for luma samples. The inputs to this process are That is correct. - The position of the top-left sample of the current block relative to the top-left sample of the current picture (x Curr, yCurr) - variable nCurrSw that specifies the block width, - variable nCurrSh, which specifies the height of the block; - (nCurrSw) x (nCurrSh) specifies the luma prediction samples for the current block. ) Array predSamples - (nCurrSw)×(nCurrS h) Array resSamples The output of this process is the reconstructed luma picture sample array recSamples. . Mapped predicted luminance samples predMapSamples (nCurrSw) The ×(nCurrSh) array is derived as follows: - predMapSamples[i][j] is the sample for i if one of the following conditions is true: If j = 0..nCurrSw-1,j = 0..nCurrSh-1, predSamp It is set equal to les[i][j]. -CuPredMode[0][xCurr][yCurr] is MODE_INTR Equal to A. -CuPredMode[0][xCurr][yCurr] is MODE_IBC equal. [ka] -CuPredMode[0][xCurr][yCurr] is MODE_INTER and ciip_flag[xCurr][yCurr] is equal to 1. -Or, (CuPredMode[0][xCurr][yCurr] is MODE_ If ciip_flag[xCurr][yCurr] is equal to 0, (if applicable), the following applies: ...
[0373] 5.28 Embodiment #28 In this embodiment, the scanning order corresponding to item 24 in Chapter 4 will be described. This process takes the block width blkWidth and block height blkHeight as inputs. Be encouraged. The output of this process is the arrays hReverScan[sPos][sComp] and vRe verScan[sPos][sComp]. The array hReverScan is The array vReverScan represents the reverse scan order in the vertical direction. The column index sPos ranges from 0 to (blkWidth*blkHeight)-1. Specifies the scan position of the range. If the array index sComp is 0, the horizontal component is specified. If the array index sComp is set to 1, the vertical component is defined. Based on the idth and blkHeight values, the array hTravScan fd v TravScan is derived as follows: 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++ } } else { 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++ } } else { for(y=blkHeight-1;y>=0;y--){ vReverScan[i][0]=x vReverScan[i][1]=y i++ } } }
[0374] 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. by using tablets, computers, IoT (Internet of Things) receivers, etc. The device 600 may be implemented with one or more processors 602 and one or more memories 604. 4 and video processing hardware 606. 02 may be configured to implement one or more of the methods described herein. The library(s) 604 may be used to implement the methods and techniques described herein. It may also be used to store data and code used in video processing hardware. The hardware circuit 606 is used to implement the techniques described herein in hardware circuitry. In some embodiments, the hardware 606 may include a processor 602 (e.g., The processor may be at least partially integrated in a graphics coprocessor.
[0375] 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)
[0376] 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.
[0377] 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
[0378] The method includes encoding a prediction mode before displaying the use of a palette mode. It is possible to do so.
[0379] This method conditionally signals the use of palette mode based on the prediction mode. and
[0380] This method uses intra block copy prediction mode and palette mode. The method may include skipping signaling of the indication.
[0381] 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.
[0382] This method uses the signal transmission when the prediction mode is inter mode and the palette mode is used. This may include skipping knowledge.
[0383] This method uses the palette mode based on the fact that the current prediction mode is inter mode. The indication of use of the password may be determined to be false.
[0384] This method is for the prediction mode to be intra mode and the use of palette mode to be indicated by a signal. This may include skipping knowledge.
[0385] This method uses the palette mode based on the fact that the current prediction mode is intra mode. The indication of use of the password may be determined to be false.
[0386] This method is for the prediction mode to be intra mode and the use of palette mode to be indicated by a signal. This may include skipping knowledge.
[0387] This method uses intra block copy prediction mode and palette mode. This may include signaling an indication of use.
[0388] 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.
[0389] The method may include adding a palette mode as a candidate prediction mode. do.
[0390] 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.
[0391] 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.
[0392] This method allows the use of palette mode to be signaled or conditionally It may include being derived using the
[0393] In this method, the conditions are the block size of the current block, the prediction mode of the current block, The quantization parameter (QP) of the current block, the palette flag of the neighboring blocks, Intrablock copy flag for blocks, color format indication, separate or duplicate Dual coding tree structure, or slice type, group type or picture type may include one or more of:
[0394] 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.
[0395] 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
[0396] 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
[0397] One solution is to compare the current video block of a video picture with the bitstream of this video. In the bitstream representation, the conversion is performed between the intra-frame representation and the Information about whether or not locked copy mode is used in this transformation is signaled. or a transformation derived based on the coding conditions of the current video block. This intra block copy mode includes copying from another video block in this picture. The video processing method may include encoding the current video block from the The following features may be implemented in various embodiments.
[0398] The encoding conditions include the block size of the current video block.
[0399] The encoding condition is a prediction mode of the current image block or a change in the current image block. It contains the quantization parameters used in the conversion.
[0400] With reference to items 13 to 15 disclosed in the previous chapter, in some embodiments, the following solutions are provided: It is preferred to implement
[0401] 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 video block; A palette representing the current video block using representative sample values less than all pixels of the block. It is determined that the image is to be coded using block-mode coding and that a deblocking filter is to be applied. and performing a transformation such that a deblocking filter is applied when It may include.
[0402] 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 to use during conversion to and from a pixel representation, The current video block has a representative sample value that is less than the total pixels of the current video block. The current video block is encoded using palette mode encoding. and performing the conversion based on the determination of the quantization or inverse quantization process.
[0013] Additional features may include the following.
[0403] The quantization or dequantization process determined for the current image block is a palette code. Different quantization or This is different from the other inverse quantization processes.
[0404] This transformation involves encoding the current video block into a bitstream representation.
[0405] - This transformation involves decoding a bitstream representation to produce the current video block of the video. This includes:
[0406] This decision is used in conjunction with another decision process that is used to transform other intra-coded video blocks. The same decision process is used as in
[0407] 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.
[0408] Referring to items 16-21 in the previous chapter, some solutions are as follows:
[0409] 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.
[0410] 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.
[0411] 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.
[0412] 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.
[0413] 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.
[0414] In the above method, the list construction process is a history-based motion vector prediction.
[0415] In the above method, the list construction process is performed using MERGE or advanced motion vector prediction models. It is a code.
[0416] In the above method, the determining step includes determining based on content of the video. and
[0417] The method, wherein the determination corresponds to a field in a bitstream representation. .
[0418] 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
[0419] 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 .
[0420] The method of claim 1, wherein the conversion comprises encoding the video into the bitstream representation. Method of posting.
[0421] In the above method, the converting step comprises decoding the bitstream representation to generate the video. This includes creating
[0422] 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.
[0423] 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 include the encoder and the corresponding Decoding tools or actions that reverse the results of decoding may be performed by the decoder. Let it be understood.
[0424] An example of a peripheral bus interface unit or a display interface unit is a Universal Serial Bus (USB) or high High Definition Multimedia Interface (HDMI) Ultramedia Interface, registered trademark) or DisplayPort, etc. An example of a storage interface is a Serial Advanced Technology Array. Attachment (SATA: Serial Advanced Technology A Attachment), PCI, IDE interfaces, etc. The technologies used may be mobile phones, laptops, smartphones, or digital data processing and The present invention may be implemented in a variety of electronic devices, including but not limited to other devices capable of displaying video images.
[0425] 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 an indication of the first use of the palette mode is signaled to the The format rules and the indication of the second use of the prediction mode for this block and a second formatting rule that specifies the position of the first representation of the first character.
[0426] 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 use of the prediction mode includes a measurement unit or region. This instruction is placed before the first use of the palette mode in the bitstream representation. It is decided.
[0427] In some embodiments, the indication of the first use of the palette mode is Conditionally included in the bitstream representation, based on the indications in Section 2. In some embodiments, the indication of the second use of the prediction mode is intra block copy (IB C) First use of palette mode in bitstream representation when indicating prediction mode In some embodiments, the instruction for the second use of the prediction mode is When indicating an inter prediction mode, the first of the palette modes in the bitstream representation In some embodiments, the second use instruction of the predictive mode is skipped. If the indication indicates an intra prediction mode, the first In some embodiments, the second use of the prediction mode is skipped. If the instruction indicates skip mode, the first bit in the palette mode is In some embodiments, the bitstream representation includes Skipping the instruction for the first use of a palette mode in Indicates that it has not been
[0428] In some embodiments, the indication of the first use of the palette mode is If the indication of use of 2 indicates IBC prediction mode, it is coded in the bitstream. In some embodiments, the indication of the first use of the palette mode is If the indication of use of 2 indicates intra prediction mode, In some embodiments, the prediction mode is Pulse Code Modulation (PCM). In some embodiments, the The first indication of the use of the JPEG2000 JPEG2000 mode is the use of PCM mode in the bitstream representation. In some embodiments, in the bitstream representation In some embodiments, the instruction to use the IBC mode is skipped. The representation of the code is encoded into a bitstream representation. If a chromatic prediction mode is used, a flag in the bitstream representation indicates that the palette mode is used. Indicates whether mode or IBC mode is signaled in the bitstream representation. In some embodiments, the flag is skipped based on the state of the block. The state is the block dimensions, whether IBC mode is enabled for the region associated with the block, Whether palette mode is enabled for the region associated with the block. This includes whether or not
[0429] In some embodiments, the indication of the first use of the palette mode is If the second use indication of the code indicates an inter prediction mode, In some embodiments, the first use indication of the palette mode is display the prediction mode or indicate the use of PCM mode. In some embodiments, the first use of the palette mode The indication of the skip mode or predictive mode is coded after the indication of the PCM mode. The .sbf file is encoded before the instruction for use.
[0430] In some embodiments, the indication of the first use of the palette mode is The second use of the prediction mode in the representation is positioned before the second use of the prediction mode. In this embodiment, the first instruction to use the palette mode is followed by the second instruction to use the prediction mode. and an indication of the use of the second prediction mode is located at the intermediate region in the bitstream representation. In some embodiments, the palette indicates a chromatic or inter-prediction mode. The primary use of the tile mode depends on the type of picture, slice, or tile group. In some embodiments, the first use of the palette mode is signaled based on The instruction includes setting a first flag to indicate that the palette mode is enabled for the block. In some embodiments, the instruction for using the palette mode may include The first usage indication is that the palette mode can be sequence level, picture level, or tile group. The condition is based on the first flag, which indicates whether it is valid at the group level or the tile level. In some embodiments, the block is included in the bitstream representation with When palette mode is disabled for a block, another flag indicating the PCM mode of the block is set. In some embodiments, a first flag is included in the bitstream representation. is context coded based on information from one or more neighboring blocks of the current block. In some embodiments, the first flag is set to one or more neighboring blocks of the current block. It is encoded without any context information from the lock.
[0431] In some embodiments, the indication of the second 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.
[0432] 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.
[0433] 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.
[0434] 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 inter mode.
[0435] 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.
[0436] 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.
[0437] 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.
[0438] 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.
[0439] 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.
[0440] 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.
[0441] In some embodiments, the prediction mode index is the prediction mode index for the current slice of 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.
[0442] 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 The second bin value "0" indicates Intra mode. In some embodiments, IBC mode The indication of the use of the bitstream representation of the sequence parameter set (SPS:Seq This is signaled in the Usage Parameter Set.
[0443] In some embodiments, the prediction mode index uses three binary bins: It is expressed as:
[0444] Here, the first bin value "1" represents inter mode, the first bin value "0" and the second The first bin value "1" represents the intra mode, the second bin value "0" and The first bin value "0", the second bin value "0" and the third bin value "1" represent the IBC mode. and the third bin value "0" indicates palette mode.
[0445] In some embodiments, the prediction mode index uses three binary bins: It is expressed as:
[0446] Here, the first bin value "1" represents intra mode, the first bin value "0" and the second bin value "1" represent intra mode, The first bin value "1" represents the inter mode, the second bin value "0" represents the inter mode, and the third bin value "1" represents the inter mode. The first bin value "0", the second bin value "0" and the third bin value "1" represent the IBC mode. and the third bin value "0" indicates palette mode.
[0447] In some embodiments, the prediction mode index uses three binary bins: where the first bin value "0" indicates inter mode, the first bin value "1" and The second bin value "0" indicates intra mode, the first bin value "1", the second bin value "1 " and the third bin value "1" indicates IBC mode, the first bin value "1", the second bin value "0" A value of "1" and a third bin value of "0" indicate palette mode.
[0448] 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.
[0449] 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 first and second representations of the palette mode. The instruction for using the intra block copy (IBC) mode and the instruction for 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.
[0450] In some embodiments, the format rule is that the prediction mode of the block is IB If it is equal to the first prediction mode that is not C mode, the first representation 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 a palette mode, In some embodiments, the indication is signaled in a bitstream representation. The first prediction mode is the intra mode.
[0451] 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 block dimensions, this bitstream table is used for conversion between the bitstream representation and the and determining the presence of an indication of the use of palette mode in the current state. Act 2820 includes performing a transformation based on the determination.
[0452] 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 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.
[0453] 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.
[0454] 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 larger than the bitstream representation, 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, then this indication is signaled in the bitstream representation.
[0455] 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, then 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.
[0456] 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 one embodiment, the feature includes a color format display of the blocks. 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.
[0457] FIG. 30 is a flow chart illustrating a video processing method 3000 according to the present technology. The method 3000, in operation 3010, comprises: for conversion between representations, based on a second representation of the image region that contains this block. The method includes determining whether palette mode is enabled for the block. The method 3000 also includes, at operation 3020, performing a transformation based on the determination. .
[0458] 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 table. If the indication indicates that fractional motion vector differential is enabled, palette mode is enabled. In some embodiments, the second indication excludes an explicit indication of whether the bit In some embodiments, the second The display indicates whether palette mode is enabled for the image area. In an embodiment, the bitstream representation is such that the second display uses a palette mode for the image domain. 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 mode is not explicitly allowed, the palette is not no cross mode is allowed.
[0459] 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 and the second representation 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.
[0460] 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 table. If the indication indicates that fractional motion vector differential is enabled, IBC mode is enabled. In some embodiments, the second indication excludes an explicit indication of whether the bit In some embodiments, the second The display indicates whether IBC mode is enabled for the image area. In this state, the bitstream representation is such that the second display does not have IBC mode enabled for the video area. 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. Not done.
[0461] FIG. 32 is a flow chart illustrating a video processing method 3200 according to the present technology. The method 3200, in operation 3210, comprises: The first sample associated with the palette entry in the palette mode for conversion between the current and determining a first bit depth for the block, the first bit depth being The associated second bit depth is different. The method 3200 also includes, in operation 3220: This includes performing a conversion based on that determination.
[0462] In some embodiments, the second bit depth is the internal bit depth for the block. In some embodiments, the second bit depth is a ratio of the original samples of the block to the In some embodiments, the second bit depth includes a bit depth associated with the In some embodiments, the bit depth associated with the reconstructed samples of the block. In some embodiments, the first bit depth is a positive integer. In some embodiments, the first bit depth is equal to 8. In some embodiments, the first bit depth is greater than the bit depth of the previous In some embodiments, the first bit depth is smaller than the second bit depth. is determined based on a dimension of the block. The bit depth is determined based on the quantization parameter of the block. In this embodiment, the first bit depth is determined based on an indication of a color format of the block. In some embodiments, the first bit depth is set to the encoding of the block. In some embodiments, the first bit depth is determined based on a tree structure. is the slice group type, tile group type, or picture type of the block is determined based on:
[0463] In some embodiments, the first bit depth is a palette element associated with the block. In some embodiments, the first bit depth is determined based on the number of entries in the first bit depth. It is determined based on the number of entries in the palette predictor associated with the block. In some embodiments, the first bit depth is determined by one or more indexes of the color components of the block. The decision is based on the criteria.
[0464] In some embodiments, the second sample is a separate palette in palette mode. The second sample is associated with a third bit depth different from the first bit depth. In some embodiments, the third bit depth is In some embodiments, the third bit depth is greater than the Less than the bit depth of 2.
[0465] In some embodiments, the third sample of the block is reconstructed based on shifting the value of the first sample by M bits (M is a positive integer). In some embodiments shifting the value of the first sample includes shifting the first sample M bits to the left. In some embodiments, the first sample has a value of C, and the reconstructed second sample has a value of (C << M)+(1 << (M - 1)). In some embodiments, shifting the value of the first sample includes shifting the first sample M bits to the right. In some embodiments, the first sample has a value of C, and the reconstructed second sample has a value determined based on (C+(1 << (M - 1))) >> M, and this value is limited by a minimum value of 0 and a maximum value of (1 << N)-1. In some embodiments, M is determined based on the difference between the first bit depth and the second bit depth. In some embodiments, M is equal to the second bit depth minus the first bit depth. In some embodiments, M is equal to the first bit depth minus the second bit depth. In some examples, M is equal to 2. In some embodiments, M is determined based on the size of the block. In some embodiments, M is determined based on the quantization parameter of the block. In some embodiments, M is determined based on an indication of the color format of the block. In some embodiments, M is determined based on the coding tree structure of the block. In some embodiments, M is determined based on the slice group type of the block. In some embodiments, M is determined based on the size of the block. In some embodiments, M is determined based on the quantization parameter of the block. In some embodiments, M is determined based on an indication of the color format of the block. In some embodiments, M is determined based on the coding tree structure of the block. In some embodiments, M is determined based on the slice group type of the block. The pixel size is determined based on the pixel size, tile group type, or picture type. In an embodiment, M is determined based on the number of palette entries associated with the block. In some embodiments, M is the number of predicted palette entries associated with the block. In some embodiments, M is determined based on the number of first The position of the sample and the third sample are determined based on the position of the sample and the third sample. Thus, M is determined based on the color component index of the block.
[0466] In some embodiments, the method includes: determining a first sample associated with a palette entry based on the lookup operation; In some embodiments, the values in the table of samples are Representation of sequence parameter set (SPS), video parameter set (VPS), pictorial PPS, picture header, slice header, tile group header The signal is generated by a header, a row of largest coding units (LCUs), or a group of LCUs. In some embodiments, the values in the table of samples are (SPS), video parameter set (VPS), picture parameter set (PPS), Picture header, slice header, tile group header, maximum coding unit (LCU) ) based on information in a row or group of LCUs in the bitstream representation. do.
[0467] FIG. 33 is a flow chart illustrating a video processing method 3300 according to the present technology. The method 3300 includes, in operation 3310, determining a current block of an image and a bit of the image. Neighborhood of the current block coded in palette mode for conversion to and from a stream representation If the neighboring block is located above or to the left of the current block, the block is added to the current block. Enable the default mode while building the list of candidate Maximum Probability Modes (MPMs) for locking. The method 3300 includes determining that the block is to be treated as an intra-coded block. , and at operation 3320, performing a transformation based on the determination.
[0468] In some embodiments, the default mode includes a planar mode. In the configuration, the default mode may include DC mode, vertical mode, or horizontal mode. In some embodiments, the default mode is to use the dependent parameter set. sequence parameter set, video parameter set, picture parameter set ( PPS), picture header, slice header, tile group header, maximum coding unit LCU, coding unit (CU), LCU row, LCU group, transform unit (T U), prediction unit (PU) block, or video coding in bitstream representation The unit is signaled.
[0469] FIG. 34 is a flow chart illustrating a method 3400 of video processing in accordance with the present technology. The method 3400 includes, in operation 3410, extracting a palette in a bitstream representation of the video. For blocks of video that are coded as mode coding blocks, the following rules are followed to determine whether they are non-blocking: The method 3400 includes determining parameters for filtering the signal. , in operation 3420, using the parameters for deblocking filtering: This includes converting between block and bitstream representations of video.
[0470] In some embodiments, the rules include parameters for deblocking filtering. This specifies that the block is treated as an intra-coded block of video for the purposes of determining the do.
[0471] In some embodiments, the first side of the block boundary or the second side of the block boundary. If is coded in palette mode, the boundary strength for deblocking filtering is In some embodiments, the first side of the block boundary and the second side of the block boundary are If the second side of the boundary is coded in palette mode, then the The boundary strength is determined to be 2. In some embodiments, the rule is To determine the filtering parameters, the block is divided into intra-coded blocks of the image. This stipulates that the information will be treated as a
[0472] In some embodiments, the rules define parameters for deblocking filtering as: To determine this, we distinguish the palette mode from other modes in deblocking filtering. In some embodiments, the first side or the second side of the block boundary is If the second side of the block boundary is coded in palette mode, the deblocking filter The boundary strength for the ring is determined to be 0. The first side of the block boundary is coded in palette mode, and the second side of the block boundary is coded in intraframe mode. When coded in block copy (IBC) mode, the In some embodiments, the first side of the block boundary is a pallet. If the first side of the block boundary is coded in intra mode and the second side of the block boundary is coded in intra mode, In this case, the boundary strength for deblocking filtering is 2.
[0473] In some embodiments, the rules define parameters for deblocking filtering as: To determine the palette mode, we use the conversion skip mode in deblocking filtering. In some embodiments, the rule specifies that the Use the palette mode to determine the filtering parameters of the deblocking filter. Block-based Delta Pulse Code Modulation (BDPCM) in the ring This section stipulates:
[0474] FIG. 35 is a flow chart illustrating a video processing method 3500 in accordance with the present technology. The method 3500 includes, in operation 3410, combining a current block of an image with a bitstream of the image. For conversion to and from the block representation, a list of maximum probability mode (MPM) candidates for the current block is While constructing the list, neighboring blocks of the current block coded in palette mode are The method includes determining to treat the block as a non-intra coded block. 0 also includes performing a transformation based on the determination in act 3520.
[0475] In some embodiments, the neighboring block is located above or to the left of the current block. If so, the neighboring block is treated as an inter-coded block. If the neighboring block is located above or to the left of the current block, The block is treated as an intra-coded block (IBC).
[0476] FIG. 36A is a flow chart illustrating a video processing method 3600 in accordance with the present technology. The method 3600 may, in operation 3610, perform, for a block of the image, The method 3600 includes determining a quantization parameter associated with the The block of the image is partially palette coded based on the modified value of the quantization parameter. The method includes encoding the image as a block into a bitstream representation of the image, the block comprising the operations In 3630, coding information related to a quantization parameter in a bitstream representation is The method further includes signaling information.
[0477] FIG. 36B is a flow chart illustrating a video processing method 3650 in accordance with the present technology. The method 3650 includes, in operation 3660, quantizing the image based on a bitstream representation of the image. The method 3650 includes, in operation 3670, deriving the quantization parameters. The palette is then adjusted based on the modified quantization parameters, which are determined by modifying the The method further includes partially decoding the encoded block.
[0478] In some embodiments, the quantization parameter sets an upper limit for the quantization parameter. In some embodiments, the quantization parameter is modified based on the quantization parameter. In some embodiments, the amount of The second parameter is associated with the block coded in the transform skip mode. In some embodiments, the quantization parameter is a block coded in block-based delta pulse code modulation (BDPCM) mode. The third quantization parameter associated with the
[0479] In some embodiments, the quantization parameter is denoted as Qp, and the quantization parameter is modified. Positively, this involves correcting the value of Qp to max(Qp,4+T), where T is non-negative. In some embodiments, T is based on a predefined threshold. In some embodiments, T is 4+Ts, where Ts is signaled in the bitstream representation. In some embodiments, Ts is a syntax element mi in the bitstream representation. Signaled at n_qp_prime_ts_minus4.
[0480] FIG. 37 is a flow chart illustrating a video processing method 3700 in accordance with the present technology. The method 3700 includes, in operation 3710, generating palettes in a bitstream representation of a video. For blocks of video that are coded as bypass coded blocks, The bitstream representation of the The method 3700 includes determining a representation of an escape sample of the lock. At 720, converting between the block and a bitstream representation based on the determining. This also includes doing.
[0481] In some embodiments, the escape samples are stored in the bit stream using a fixed length. In some embodiments, the fixed length comprises N bits, where N is In some embodiments, N is 8 or 10.
[0482] In some embodiments, the escape samples are based on the internal bit depth of the block. In some embodiments, the bitstream representation is represented using a length determined based on the In, the escape samples are of length determined based on the input bit depth of the block. In some embodiments, the bitstream representation is represented using the escape The samples are split into bits with lengths determined based on the quantization parameters of the block. In some embodiments, the length is represented as a quantity f(Qp). In some embodiments, the internal bits of a block are defined as a function of a fragmentation parameter. The input depth is d, and f(Qp) = (d-(Qp-4) / 6).
[0483] FIG. 38 is a flow chart illustrating a video processing method 3800 in accordance with the present technology. The method 3800 may include, in operation 3810, generating palettes in a bitstream representation of a video. determining a first quantization operation for a block of an image to be coded as a pixel coding block; The first quantization process includes a first quantization process applicable to non-palette mode coded blocks. This method 3800 differs from the quantization process of FIG. 2 by determining, in operation 3820, This also includes converting between block and bitstream representations based on the block and bitstream representations.
[0484] In some embodiments, the first quantization process is for quantizing the escape samples. This involves bit-shifting the escape samples of the block to the right to avoid In one embodiment, the first quantization process is a block quantization process for dequantizing the escape samples. In some embodiments, the method further comprises: bit-shifting the escape sample of the block to the left. Let the sample be p, the quantized sample be Qp, and the value of the escape sample be f(p, Qp) as a function of p and Qp. In some embodiments, (p, Qp)=p>>((Qp-4) / 6). In some embodiments, Let p be the length of the sample, and encode the value of the escape sample as p>>N, where N is an integer. In some embodiments, N is 2. In some embodiments, N is 2. The determination is based on the characteristics associated with
[0485] In some embodiments, the features include a sequence parameter set, a video parameter set, Set, Picture Parameter Set, Picture Header, Slice Header, Tile Group Signaling in a header, a row of a maximum coding unit (LCU), or a group of LCUs In some embodiments, the features include a value that is determined by an internal bit depth of the block. In some embodiments, the features include an input bit depth of the block. In some embodiments, the characteristics include a dimension of the block. In some embodiments, the characteristics include a quantization parameter for the block. In some embodiments, the features include a representation of the color format of the blocks. In some embodiments, the characteristics include a coding tree structure for the block. In this embodiment, the features include a slice type, a tile group, and a pixel group associated with the block. Contains the type or picture type.
[0486] In some embodiments, the sample is p and the bit depth associated with the block is Let bd be the quantized sample, Qp be the quantized sample, and the value of the escape sample be f(bd, p, Qp ) as a function of bd,p and Qp. In some embodiments, So, f(bd,p,Qp)=clip(0,(1<<(bd-(Qp-4) / 6))-1 ,(p+(1<<(bd-1)))>>((Qp-4) / 6)). In the form, f(bd,p,Qp)=clip(0,(1< <bd)-1,p<<(( In some embodiments, the clip is clip(a, i,b)=(i <a ? a:(i>b ? b:i)). In an embodiment, the clip is: clip(a,i,b)=(i<=a ? a:(i> In some embodiments, the bit depth is defined as b ? b:i). contains the internal bit depth or input bit depth.
[0487] FIG. 39 is a flow chart illustrating a video processing method 3900 in accordance with the present technology. The method 3900 includes, in operation 3910, determining whether a luminance block and a corresponding This involves converting between an image containing chroma blocks and a bitstream representation of the image. The rule in (1) encodes the current luma block using the palette coding mode and the corresponding If the current chroma block is coded in derived mode, the current luma block is coded in the default Treat the current chroma block as having intra prediction mode and set it to the default intra prediction mode. This palette coding mode is a typical sample. The method includes encoding the current luma block with a palette of drop values.
[0488] In some embodiments, the current brightness is encoded using a palette encoding mode. In some embodiments, the pallet block is treated as an intra block. The current luma block, coded using the palette coding mode, is treated as a palette block. In some embodiments, the default intra prediction mode is DC mode. , planar mode, vertical mode or horizontal mode. The default intra-prediction mode includes any intra-prediction mode. In the , the default intra prediction mode is the dependency parameter set, sequence parameter Meter set, video parameter set, picture parameter set, adaptive parameter set picture header, slice header, tile group header, maximum coding unit (L CU), coding unit (CU), LCU row, LCU group, transform unit (TU), This is signaled at the prediction unit (PU) block or the video coding unit.
[0489] FIG. 40 is a flow chart illustrating a video processing method 4000 according to the present technology. The modulus 4000 performs an operation 4010 to convert an image having one or more blocks and a bit-wise division of the image. This involves converting between a block representation and a stream representation. Build a list of motion candidates for each block. This rule is implemented using the palette coding mode. The motion information of a coded block is either unavailable or unavailable for coding subsequent blocks. is to be treated as invalid.
[0490] In some embodiments, the list of motion candidates is a list of motion vector predictor candidates based on history. In some embodiments, the list of motion candidates includes a merge candidate list. In some embodiments, the list of motion candidates includes motion vector prediction candidates. .
[0491] In some embodiments, a block is identified as having an invalid reference index. In some embodiments, a block is treated as having a reference index of 0. In some embodiments, a block is treated as having a zero motion vector. is treated as.
[0492] In some embodiments, the applicability of a rule may be determined by the In some embodiments, the features are based on the video content in the block. In some embodiments, the features include dependency parameter sets, sequences Parameter set, video parameter set, picture parameter set, adaptation parameter Set, Picture Header, Slice Header, Tile Group Header, Maximum Coding Unit (LCU), coding unit (CU), LCU row, LCU group, transform unit (TU ), a prediction unit (PU) block, or a video coding unit (TCU) block associated with this block. In some embodiments, the feature includes a message signaled by a block. The image area includes the location of the image area associated with the block, and the image area can be a CU, PU, TU or image In some embodiments, the features include a block or a neighborhood of blocks. In some embodiments, the features include the dimensions of the block or adjacent blocks. In some embodiments, the characteristics include the color font of the block. In some embodiments, the characteristics include an encoding of the block. In some embodiments, the features include the slice type of the block, the tag, In some embodiments, the specific image type includes an image group type or a picture type. The characteristics include color components of the block. In some embodiments, the characteristics include the time of the block. Includes an inter-layer identifier.
[0493] FIG. 41 is a flow chart illustrating a method 4100 of video processing in accordance with the present technology. 4100 performs an operation 4110 to convert a palette mode into a bitstream representation of an image. For a block of an image that is to be coded as a block coding block, the block The method 4100 includes determining a number of context coding bins for the block. converting between a block of video and a bitstream representation of the video based on the determination; The method further includes:
[0494] In some embodiments, determining the number of context coding bins comprises: The method includes assigning a counter to the block to keep track of the number of text-encoded bins. In some embodiments, the counter is a count of the number of components to be coded in the block. In some embodiments, the counter is initialized to 0. The bins are then incremented by one for each bin that is coded using context coding. In an embodiment, the counter is initialized to N, where N is a positive integer. For each bin that is coded using the
[0495] In some embodiments, the rule specifies a threshold value and the method includes exceeding or exceeding the threshold value. further includes applying bypass coding to an additional number of bins below the threshold. In some embodiments, the threshold value may be 0 or 1. In this case, the threshold is the number of coding passes of a block or the number of The determination is based on the decoded information.
[0496] In some embodiments, the threshold value is a transport stream (TS) coding block. The second is related to the number of context coding bins for the block or non-TS coded block. In some embodiments, the second threshold is represented as T, where T is This rule states that the threshold is W x H x T, where W is the width of the block and H is the width of the block. In some embodiments, the second threshold is represented by T. where T is a positive number. This rule specifies that W×H×C×T,W, where W is the block is the width of the block, H is the height of the block, and C is the color component to be coded in the block. In some embodiments, T is 1.75 or 2. In some embodiments, the threshold is less than a second threshold. is greater than the second threshold.
[0497] FIG. 42 is a flow chart illustrating a video processing method 4200 according to the present technology. The modulus 4200 performs an operation 4210 to convert a current block of the image to a bitstream of the image. For conversion to and from the representation, the inter and intra combined prediction modes are based on rules. The method includes determining the number of intra-coded neighboring blocks of the current block by using the The rule is that for inter and intra joint prediction modes, the intra-coded neighbors When counting the number of blocks, include blocks coded using the palette coding mode. The use of palette coding mode specifies a method of handling the representative sample values. The method 4200 also includes encoding the block using the bit. and performing a conversion based on the determination.
[0498] In some embodiments, the scheme is coded using a palette coding mode. The block is excluded from the count of the number of intra-coded neighboring blocks. In some embodiments, the palette code is used to specify that the blocks are to be treated as encoded blocks. Blocks coded in this mode are treated as blocks with a prediction mode of MODE_PLT. In some embodiments, blocks encoded in palette encoding mode are treated as In some embodiments, the packet is treated as an inter-coded block. A block coded using the red coding mode is the current block of the current picture. Intra-block copy (IBC) coding, which encodes the current block with samples from In some embodiments, the block is treated as a coded block in the A block coded using the red coding mode is written on top of the current block or on the current The block is the neighboring block to the left of the block.
[0499] In some embodiments, the scheme involves the use of a palette coding mode to encode blocks. The block is an intra-coded block that should be included in the count of intra-coded neighboring blocks. This stipulates that the information will be treated as a
[0500] FIG. 43 is a flow chart illustrating a video processing method 4300 according to the present technology. The modulus 4300 performs an operation 4310 to convert a current block of the image to a bitstream of the image. For conversion between representations, the filtering process uses the current block of samples. This example includes determining whether to skip an operation. Using the palette coding mode, the representative sample values are The method 4300 also includes operation 432. 0, this includes performing a conversion based on that determination.
[0501] In some embodiments, the operation smoothes one or more boundaries of the current block. In some embodiments, the operation may include a non-blocking operation. Reduce distortion by compensating for offsets in sample adaptive offset processing In some embodiments, the operation includes an adaptive loop filtering operation. In some embodiments, the operation may include a filtering operation in the process. includes a classification operation in the adaptive loop filtering process. The operation is performed by mapping luma samples using an adaptive piecewise linear model and chroma samples using Luminance mapping with chroma scaling operation where the filter undergoes a luminance-dependent chroma residual scaling operation Including ping.
[0502] FIG. 44 is a flow chart illustrating a method 4400 of video processing in accordance with the present technology. 4400 performs an operation 4410 to convert one block of one image and one bit of the image. A traversal order selected from three or more traversal orders for conversion to and from a bitstream representation. This block uses a palette of representative sample values to determine the order of the Based on the determination, the method 4400 proceeds to operation 4420. This includes performing conversions using
[0503] In some embodiments, the three or more scan orders include a reverse horizontal scan order. In some embodiments, the reverse horizontal scan order scans the block from left to right for an odd number of indices. The first row in a block is assigned index 0. In some embodiments, the reverse horizontal scan order divides the blocks into even numbered indices. The first row of a block contains an index, and the second row contains an index. Address 0 is assigned.
[0504] In some embodiments, the three or more scan orders may include a reverse vertical scan order. In some embodiments, the reverse vertical scan order scans the blocks from top to bottom in an odd number of rows. The first column of the block contains the index. In some embodiments, the reverse vertical scan order is Scanning from the top of the block upwards for columns with even indices; The first column of is assigned index 0.
[0505] In some embodiments, three or more scan orders are For each row, scan the coefficients of the block from left to right and for each row with an odd index, The three or more scan orders include a horizontal scan order in which the image is scanned from right to left. The coefficients of the block are scanned from top to bottom for rows with even indices, and The method further includes a vertical scan order for scanning rows having a first pixel from bottom to top, The first row is assigned index 0, and the first column of a block is assigned index 0. It can be said.
[0506] FIG. 45 is a flow chart illustrating a video processing method 4500 according to the present technology. The modulus 4500 performs an operation 4510 to combine blocks of video with a bitstream representation of the video. For the transform, one or more scan orders that scan the coefficients of a block based on the shape of the block. The method 4500 also includes, at operation 4520, determining an order based on the determination. This includes performing conversions based on
[0507] In some embodiments, one or more scan orders are based on the ratio of block width to block height. In some embodiments, one or more scan orders are applied if the ratio is greater than a threshold. The ordering is applied when the ratio of block height to width is greater than a threshold. In an embodiment, the threshold is equal to 1. In some embodiments, the threshold is equal to 4. .
[0508] FIG. 46 is a flow chart illustrating a video processing method 4600 according to the present technology. The modulus 4600 performs an operation 4610 to convert a block of video into a bitstream representation of the video. For the transformation of, we apply only one traversal order to this block, which traverses the coefficients of the block. We decided to use block-based quantized residual domain differential pulse coding modulation (BDPCM) The process executes the differential pulse coding modulation (DPCM) to obtain the The difference between the quantized residual of the quantized residual of the imager prediction and the prediction of the quantized residual of this block is calculated as the bit Based on the determination, the method 4600 also performs an operation 4620 to represent the This includes performing conversions based on
[0509] In some embodiments, the only scan order is one where the width of a block is equal to the height of a block. If it is greater, it involves scanning the block vertically. Therefore, the only traversal order is to traverse a block if its width is less than its height. In some embodiments, the only scanning order is: It is derived based on the shape of the block.
[0510] In some embodiments, the width of the block, denoted W, and the length of the block, denoted H, If the height and conditions are met, then at least one scanning order can be applied. In some embodiments, the condition includes W×Th≧H or H×Th≧W, where Th is In some embodiments, T is 4 or 8. In some embodiments, Th is determined based on characteristics of the image. In some embodiments, the characteristics include the content of the video. Decoder parameter set, slice parameter set, video parameter set for the multi-stream representation data set, picture parameter set, adaptation parameter set, picture header, slide Header, Tile Group Header, Largest Coding Unit (LCU), Coding Unit ( CU), LCU row, LCU group, tree unit (TU), picture unit (PU ) block, or a video coding unit of a bitstream representation In some embodiments, the features include information about blocks in a video image of the video. In some embodiments, the feature includes the size of the block or the location of the block. In some embodiments, this characteristic includes the size of the block adjacent the lock. The shape of the lock or the shape of a block adjacent to this block. In some embodiments, the characteristics include a color format of the block. In some embodiments, the features include a coding tree structure of the image. The characteristics include a slice type, a tile group type, or a picture type of the image. In some embodiments, the characteristics include color components of the blocks. In some embodiments, the features include the temporal layer identity of the video. The features include the profile, level and tier of the standard for video. can be done.
[0511] 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.
[0512] 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.
[0513] 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.
[0514] 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
[0515] 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. Deploy in any form, including as modules, components, 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.
[0516] 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.
[0517] 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.
[0518] 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.
[0519] 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.
[0520] 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 rule-based conversion is performed for converting a current block of an image to a bitstream representation of said image. Based on this, the intra prediction of the current block is performed for the inter and intra joint prediction mode. determining a number of coded neighboring blocks, said rule being based on said inter block size; and for intra joint prediction modes, count the number of intra-coded neighboring blocks. a method for handling blocks coded using a palette coding mode when Using the palette coding mode means using a palette of representative sample values determining, including encoding the block; and performing the conversion based on the determining. Image processing method.
2. The scheme is such that blocks coded using the palette coding mode are intra-blocked. Non-intra-coded blocks excluded from the count of the number of coded neighboring blocks. Specifies that it is treated as a lock, The video processing method according to claim 1 .
3. The blocks coded using the palette coding mode are designated MODE_PLT. , the block is treated as having a prediction mode The video processing method according to claim 2 .
4. The blocks coded using the palette coding mode are inter-coded. are treated as a single block, The video processing method according to claim 2 .
5. The block coded using the palette coding mode is the current block. The current block is coded with samples from the current picture of the current block. In the Interleaved Block Coding (IBC) coding mode, The video processing method according to claim 2 .
6. The block coded using the palette coding mode is the current block. the block is a block on the left side of the current block or a neighboring block on the right side of the current block, The image processing method according to any one of claims 3 to 5.
7. The scheme is such that a block coded using the palette coding mode is The intra-coded blocks to be included in the counting of intra-coded neighboring blocks. The characteristics of the method are that it is treated as a The video processing method according to claim 1 .
8. For conversion between a current block of an image and a bitstream representation of said image, a filter In the ring process, operations are skipped for the samples of the current block. determining that the samples are coded using a palette coding mode and Using the palette encoding mode allows the block to be encoded using a palette of representative sample values. determining a lock, the lock including encoding the lock; and performing the conversion based on the determining. Image processing method.
9. The operations include a non-blocking operation that smoothes one or more boundaries of the current block. 、 The video processing method according to claim 8.
10. The operation is performed in a sample adaptive offset process in which samples are sorted to reduce distortion. and compensating for offsets in the The video processing method according to claim 8.
11. The operation includes a filtering operation in an adaptive loop filtering process. The video processing method according to claim 8.
12. The operation includes a classification operation in an adaptive loop filtering process. The video processing method according to claim 8.
13. The operation involves mapping luma samples using an adaptive piecewise linear model, and chroma samples Luminance mapping with chroma scaling operation where the filter undergoes a luminance-dependent chroma residual scaling operation Including ping, The video processing method according to claim 8.
14. The transformation generates the current block from the bitstream representation. The image processing method according to any one of claims 1 to 13.
15. The transformation generates the bitstream representation from the current block. The image processing method according to any one of claims 1 to 13.
16. A processor configured to implement a video processing method according to any one of claims 1 to 15. Equipped with an apparatus; Image processing device.
17. A computer readable medium having the code stored thereon, Then, the image processing method according to any one of claims 1 to 15 is implemented in the image processing device. To make.