CN113678448A - Entry structure for palette mode encoding and decoding - Google Patents

Entry structure for palette mode encoding and decoding Download PDF

Info

Publication number
CN113678448A
CN113678448A CN202080027631.6A CN202080027631A CN113678448A CN 113678448 A CN113678448 A CN 113678448A CN 202080027631 A CN202080027631 A CN 202080027631A CN 113678448 A CN113678448 A CN 113678448A
Authority
CN
China
Prior art keywords
block
mode
palette
bit depth
video
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202080027631.6A
Other languages
Chinese (zh)
Other versions
CN113678448B (en
Inventor
朱维佳
张莉
许继征
张凯
刘鸿彬
王悦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Original Assignee
Beijing ByteDance Network Technology Co Ltd
ByteDance Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd, ByteDance Inc filed Critical Beijing ByteDance Network Technology Co Ltd
Publication of CN113678448A publication Critical patent/CN113678448A/en
Application granted granted Critical
Publication of CN113678448B publication Critical patent/CN113678448B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

An apparatus, system, and method for palette mode codec are described. An exemplary method for video processing comprises: for a transition between a block of a video and a bitstream representation of the video, a first bit depth of a first sample associated with a palette entry in a palette mode is determined. The first bit depth is different from a second bit depth associated with the block. The method also includes performing the conversion based on the determination.

Description

Entry structure for palette mode encoding and decoding
Cross Reference to Related Applications
The present application claims in time the priority and benefit of international patent application No. pct/CN2019/081863 filed on 2019, 4, 9, 2019, international patent application No. pct/CN2019/096933 filed on 2019, 7, 20, 2019, international patent application No. pct/CN2019/097288 filed on 2019, 7, 23, and international patent application No. pct/CN2019/098204 filed on 2019, 7, 29, applicable patent laws and/or regulations applicable to paris convention. The entire disclosure of the above application is incorporated by reference as part of the disclosure of this application for all purposes of united states law.
Technical Field
This document relates to video and image codec techniques.
Background
Digital video accounts for the greatest bandwidth usage on the internet and other digital communication networks. As the number of connected user devices capable of receiving and displaying video increases, the bandwidth required to pre-count the usage of digital video will continue to grow.
Disclosure of Invention
The disclosed techniques may be used by video or image decoder or encoder embodiments in which palette mode coding is used.
In one example aspect, a video processing method is disclosed. The method comprises the following steps: a conversion is performed between a block of a video region of a video and a bitstream representation of the video. The bitstream representation is processed according to a first format rule specifying whether the block is signaled with a first indication of use of the palette mode and a second format rule specifying a position of the first indication relative to a second indication of use of the prediction mode of the block.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: for a transition between a block of a video region in a video and a bitstream representation of the video, a prediction mode is determined based on one or more allowed prediction modes including at least a palette mode for the block. An indication of the use of the palette mode is determined based on the prediction mode. The method also includes performing a transition based on one or more allowed prediction modes.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: a conversion between blocks of video and a bitstream representation of the video is performed. The bitstream representation is processed according to a format rule specifying a first indication of use of a palette mode and a second indication of use of an Intra Block Copy (IBC) mode signaled interdependently with each other.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: for a transition between a block of video and a bitstream representation of the video, determining, based on a size of the block, a presence of an indication of use of a palette mode in the bitstream representation; and performing a conversion based on the determination.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: determining, for a transition between a block of video and a bitstream representation of the video, a presence of an indication of use of an Intra Block Copy (IBC) mode in the bitstream representation based on a size of the block; and performing a conversion based on the determination.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: determining, for a transition between a block of video and a bitstream representation of the video, whether the block allows palette mode based on a second indication of a region of the video containing the block; and performing a conversion based on the determination.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: for a transition between a block of video and a bitstream representation of the video, determining whether the block allows an Intra Block Copy (IBC) mode based on a second indication of a video region containing the block, and performing the transition based on the determination.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: for a transition between a block of a video and a bitstream representation of the video, a first bit depth of a first sample associated with a palette entry in a palette mode is determined. The first bit depth is different from a second bit depth associated with the block. The method also includes performing the conversion based on the determination.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: determining that a palette mode is to be used for processing a transform unit, a codec block, or a region, the use of the palette mode being coded separately from a prediction mode, and performing further processing of the transform unit, the codec block, or the region using the palette mode.
In another example aspect, a video processing method is disclosed. The method comprises the following steps: for a current video block, samples associated with one palette entry of the palette mode are determined to have a first bit depth that is different from a second bit depth associated with the current video block, and further processing for the current video block is performed based at least on the one palette entry.
In another example aspect, another video processing method is disclosed. The method comprises the following steps: performing a transition between a current video block of a picture of the video and a bitstream representation of the video, wherein in the transition, information about whether an intra block copy mode is used in the transition is signaled in the bitstream representation or derived based on codec conditions of the current video block; wherein the intra block copy mode comprises coding a current video block from another video block in the picture.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining whether a deblocking filter is to be applied during conversion of a current video block of a picture of video, wherein the current video block is coded using palette mode coding, wherein the current video block is represented using representative sample values that are less than a total pixels of the current video block, and in the event that it is determined that the deblocking filter is to be applied, performing the conversion such that the deblocking filter is applied.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining a quantization or inverse quantization process to be used during a conversion between a current video block of a picture of a video and a bitstream representation of the video, wherein the current video block is coded using palette mode coding, wherein the current video block is represented using representative sample point values that are less than a total pixels of the current video block, and performing the conversion based on determining the quantization or inverse quantization process.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; performing a list construction process of a most probable mode by regarding the current video block as an intra-coded block based on the determination, and performing conversion based on a result of the list construction process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps:
in yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; based on the determination, performing a list construction process of a most probable mode by treating the current video block as a non-intra-coded block, and performing conversion based on a result of the list construction process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; based on the determination, performing a list building process by treating the current video block as an unavailable block, and performing a conversion based on a result of the list building process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
In yet another example aspect, another video processing method is disclosed. The method comprises the following steps: determining, during a transition between a current video block and a bitstream representation of the current video block, that the current video block is a palette coded block, determining, based on the current video block being determined to be a palette coded block, a range of bits for a context codec of the transition; and performing a conversion according to the range of bits of the context codec.
In yet another example aspect, the above method may be implemented by a video encoder apparatus comprising a processor.
In yet another example aspect, the methods may be embodied in the form of processor-executable instructions and stored on a computer-readable program medium.
These and other aspects are further described in this document.
Drawings
Fig. 1 shows an example of intra block copy.
Fig. 2 shows an example of a block coded in palette mode.
Fig. 3 shows an example of signaling palette entries using a palette predictor.
Fig. 4 shows an example of horizontal and vertical traversal scans.
Fig. 5 shows an example of coding of palette indices.
Fig. 6 is a block diagram of an example of a video processing apparatus.
Fig. 7 shows a block diagram of an example implementation of a video encoder.
Fig. 8 is a flow chart for an example of a video processing method.
Fig. 9 shows an example of a pixel involving filter on/off decision and strong/weak filter selection.
Fig. 10 shows an example of binarization for four modes.
Fig. 11 shows an example of binarization for four modes.
Fig. 12 shows an example of 67 intra mode prediction directions.
Fig. 13 shows an example of an adjacent video block.
Fig. 14 shows an example of the shape of the ALF filter (chroma: 5 × 5 diamond, luminance: 7 × 7 diamond).
Fig. 15A shows an example of sub-sample Laplacian computation (Laplacian computation) for vertical gradients.
Fig. 15B shows an example of the sub-sample laplacian computation for the horizontal gradient.
Fig. 15C shows an example of a sub-sample laplacian computation for a diagonal gradient.
Fig. 15D shows an example of a sub-sample laplacian computation for a diagonal gradient.
FIG. 16 shows an example of a modified block classification at a virtual boundary.
Fig. 17 shows an example of modified ALF filtering for a luminance component at a virtual boundary.
FIG. 18 shows an example of four 1-D3 pixel patterns for pixel classification in EO.
Fig. 19 shows an example in which four frequency bands are grouped together and represented by their starting band positions.
Fig. 20 shows an example of top and left neighboring blocks used in CIIP weight derivation.
Fig. 21 shows an example of luminance mapping with a chroma scaling architecture.
Fig. 22 shows an example of the scanning order of 4 × 4 blocks.
Fig. 23 shows another example of the scanning order of 4 × 4 blocks.
FIG. 24 is a flowchart representation of a method for video processing in accordance with the present technology.
FIG. 25 is a flowchart representation of another method for video processing in accordance with the present technology.
FIG. 26 is a flow diagram representation of another method for video processing in accordance with the present technology.
FIG. 27 is a flowchart representation of another method for video processing in accordance with the present technology.
FIG. 28 is a flowchart representation of another method for video processing in accordance with the present technology.
FIG. 29 is a flowchart representation of another method for video processing in accordance with the present technology.
FIG. 30 is a flow diagram representation of another method for video processing in accordance with the present technology.
FIG. 31 is a flowchart representation of another method for video processing in accordance with the present technology.
FIG. 32 is a flowchart representation of another method for video processing in accordance with the present technology.
Detailed Description
This document provides various techniques that may be used by a decoder of an image or video bitstream to improve the quality of decompressed or decoded digital video or images. For the sake of brevity, the term "video" is used herein to include a sequence of pictures (conventionally referred to as video) and a single image. In addition, the video encoder may also implement these techniques during the encoding process in order to reconstruct the decoded frames for further encoding.
The section headings are used in this document for ease of understanding and do not limit the embodiments and techniques to the corresponding sections. Thus, embodiments of one section may be combined with embodiments of other sections.
1. Overview
This document relates to video coding and decoding techniques. In particular, it relates to motion vector palette coding, where a base-color based representation is employed in video coding. It can be applied to existing video codec standards (e.g. HEVC), or to finalized standards (general video codec). It may also be applicable to future video codec standards or video encoders.
2. Preliminary discussion
The video codec standard was developed primarily through the development of the well-known ITU-T and ISO/IEC standards. ITU-T makes H.261 and H.263, ISO/IEC makes MPEG-1 and MPEG-4Visual, and the two organizations together make the H.262/MPEG-2 video and the H.264/MPEG-4 enhanced video codec (AVC) and H.265/HEVC standards. Starting from h.262, the video codec standard is based on a hybrid video codec structure, in which temporal prediction and transform coding is utilized. To explore future video codec technologies beyond HEVC, VCEG and MPEG united in 2015 into the joint video exploration team (jfet). Thereafter, JFET adopted many new approaches and introduced them into reference software known as the "Joint exploration model" (JEM). In month 4 of 2018, the joint video experts group (jfet) between VCEG (Q6/16) and ISO/IEC JTC1SC29/WG11(MPEG) holds in an effort to the VVC standard, which aims at a 50% bit rate reduction compared to HEVC.
Fig. 7 is a block diagram of an example implementation of a video encoder. FIG. 7 shows an encoder implementation with a built-in feedback path, in which the video encoder also performs the video decoding function (reconstructing a compressed representation of the video data for encoding of the next video data)
2.1 Intra Block copy
The HEVC screen content codec extension (HEVC-SCC) and the current VVC test model (VTM-4.0) have adopted Intra Block Copy (IBC), also known as current picture reference. IBC extends the concept of motion compensation from inter-coding to intra-coding. As shown in fig. 1, when IBC is applied, the current block is predicted from a reference block in the same picture. Samples in the reference block must have been reconstructed before the current block is coded or decoded. Although IBC is not efficient for most camera-captured sequences, it shows significant codec gain of the screen content. The reason is that there are many repetitive patterns in the screen content picture, such as icons and text characters. IBC can effectively eliminate redundancy between these repetitive patterns. In HEVC-SCC, if a current picture is selected as its reference picture, a Coding Unit (CU) of inter coding may apply IBC. In this case, the MV is renamed to a Block Vector (BV), and the BV always has integer-pixel precision. For compatibility with the main profile HEVC, the current Picture is marked as a "long-term" reference Picture in a Decoded Picture Buffer (DPB). It should be noted that similarly, in the multiview/3D video coding standard, the inter-view reference picture is also labeled as a "long-term" reference picture.
After BV finds its reference blocks, prediction may be generated by copying the reference blocks. The residual may be obtained by subtracting the reference pixel from the original signal. Then, the transform and quantization can be applied as in other codec modes.
However, when the reference block is outside the picture, or overlaps with the current block, or is outside the reconstruction region, or is outside the effective region limited by some constraints, some or all of the pixel values are not defined. Basically, there are two solutions to this problem. One is to disable this, for example in bitstream consistency. The other is to apply padding to those undefined pixel values. The following subsections describe the solution in detail.
IBC in 2.2 HEVC screen content codec extensions
In the screen content codec extension of HEVC, when a block uses the current picture as a reference, it should be ensured that the entire reference block is within the available reconstruction region, as shown in the following text in the specification:
the variables offset x and offset y are derived as follows:
offsetX=(ChromaArrayType==0)?0:(mvCLX[0]&0x72:0) (8-106)
offsetY=(ChromaArrayType==0)?0:(mvCLX[1]&0x72:0) (8-107)
the requirement for bitstream conformance is that, when the reference picture is the current picture, the luminance motion vector mvLX should obey the following constraint:
-when invoking the derivation process of the z-scan order block availability specified in section 6.4.1 with (xCurr, yCurr) to be set to (xCb, yCb), and (xNbY, yNbY) to be set equal to (xPb + (mvLX [0] > >2) -offset x, yPb + (mvLX [1] > >2) -offset y) as input, the output should be TRUE (TRUE).
-when invoking the derivation process of the z-scan order block availability specified in section 6.4.1 with (xCurr, yCurr) to be set to (xCb, yCb), and adjacent luma positions (xNbY, ynbyy) to be set equal to (xPb + (mvLX [0] > >2) + nPbW-1+ offset x, yPb + (mvLX [1] > >2) + nPbH-1+ offset y) as inputs, the output should be TRUE (TRUE)
One or both of the following conditions should be true:
the value of- (mvLX [0] > >2) + nPbW + xB1+ offset X is less than or equal to 0.
The value of- (mvLX [1] > >2) + nPbH + yB1+ offset is less than or equal to 0.
The following conditions should be true:
(xPb+(mvLX[0]>>2)+nPbSw-1+offsetX)/CtbSizeY-xCurr/CtbSizeY<=yCurr/CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1+offsetY)/CtbSizeY (8-108)
IBC in VVC test model
In current VVC test models (e.g., VTM-4.0 designs), the entire reference block should overlap with the current Coding Tree Unit (CTU) and not overlap with the current block. Therefore, no padding reference or prediction block is needed. The IBC flag is coded as the prediction mode of the current CU. Thus, there are three prediction modes in total per CU: MODE _ INTRA \ MODE _ INTER and MODE _ IBC.
IBC Merge mode
In the IBC large mode, the index pointing to an entry in the IBC large candidate list is parsed from the bitstream. The construction of the IBC Merge list can be summarized according to the following sequence of steps:
step 1: deriving spatial domain candidates
Step 2: inserting HMVP candidates
Step 3: interpolating pairwise mean candidates
In the derivation of spatial domain Merge candidates, a maximum of four Merge candidates are selected among candidates located at positions depicted in the drawing. The order of derivation was a1, B1, B0, a0, and B2. Position B2 is only considered when any PU of position a1, B1, B0, a0 is unavailable (e.g., because it belongs to another stripe or block) or is not codec with IBC mode. After adding the candidate at position a1, the insertion of the remaining candidates is redundancy checked, which ensures that candidates with the same motion information are excluded from the list, resulting in an improved codec efficiency. In order to reduce computational complexity, not all possible candidate pairs are considered in the mentioned redundancy check. Instead, only pairs depicted in the figure that are connected with arrows are considered and candidates are added to the list only if the corresponding candidates for redundancy check have different motion information.
After inserting the spatial domain candidates, if the IBC Merge list size is still smaller than the maximum IBC Merge list size, the IBC candidates from the HMVP table may be inserted. Redundancy checking is performed when HMVP candidates are inserted.
Finally, the pairwise mean candidates are inserted into the IBC Merge list.
A Merge candidate is referred to as an invalid Merge candidate when the reference block identified by the Merge candidate is outside the picture, or overlaps with the current block, or is outside the reconstruction region, or is outside the valid region subject to some constraints.
Note that invalid Merge candidates may be inserted into the IBC Merge list.
2.3.2 IBC AMVP mode
In the IBC AMVP mode, the AMVP index pointing to an entry in the IBC AMVP list is parsed from the bitstream. The construction of the IBC AMVP list can be summarized according to the following sequence of steps:
step 1: deriving spatial domain candidates
Omicron examination A0、A1Until an available candidate is found.
Omicron examination B0、B1、B2Until an available candidate is found.
Step 2: inserting HMVP candidates
Step 3: inserting zero candidates
After inserting the spatial domain candidates, an IBC candidate from the HMVP table may be inserted if the IBC AMVP list size is still less than the maximum IBC AMVP list size.
Finally, zero candidates are inserted into the IBC AMVP list.
2.4 Palette Mode (Palette Mode)
The basic idea behind the palette mode is that the samples in the CU are represented by a small set of representative color values. This group is called a palette. Samples outside the palette may also be indicated by signaling escape symbols (escape symbols) followed by (possibly quantized) component values. This is shown in fig. 2.
Palette mode in 2.5 HEVC screen content codec extension (HEVC-SCC)
In the palette mode of HEVC-SCC, the prediction mode is used for coding and decoding palettes and index maps.
2.5.1 palette entries codec
To encode and decode palette entries, a palette predictor is maintained. The palette predictor and the maximum size of the palette are signaled in the Sequence Parameter Set (SPS). In HEVC-SCC, palette _ predictor _ initializer _ present _ flag is introduced in PPS. When this flag is 1, an entry for initializing the palette predictor is signaled in the bitstream. The palette predictor is initialized at the beginning of each CTU row, each stripe, and each slice. The palette predictor is reset to 0 or initialized using a palette predictor initializer entry signaled in the PPS, depending on the value of palette predictor initializer present flag. In HEVC-SCC, a size 0 palette predictor initializer is enabled to allow explicit disabling of palette predictor initialization at PPS level.
For each entry in the palette predictor, a reuse flag is signaled to indicate whether it is part of the current palette. This is shown in fig. 3. The reuse flag is transmitted using run-length (run-length) codec of zeros. Thereafter, the number of new palettes is signaled using an exponential Golomb code of zero order. Finally, the component value of the new palette entry is signaled.
2.5.2 coding of palette indices
As shown in fig. 4, horizontal and vertical traversal scans are used to encode and decode palette indices. The scanning order is explicitly signaled in the bitstream using palette _ transpose _ flag. For the remainder of this subsection, the scan is assumed to be horizontal.
The palette indices are coded using two primary palette sample patterns ("INDEX" and "COPY _ ABOVE"). As previously described, the escape symbol is also signaled as "INDEX" mode and is assigned an INDEX equal to the maximum palette size. This pattern is signaled using a flag other than the top row or when the previous pattern is "COPY _ ABOVE". In "COPY _ ABOVE" mode, the palette indices of the samples in the previous row will be copied. In "INDEX" mode, the palette INDEX is explicitly signaled. For both the "INDEX" and "COPY _ ABOVE" modes, a running value is signaled that specifies the number of subsequent samples that are also codec using the same mode. When escape symbols are part of a run in "INDEX" or "COPY _ ABOVE" mode, an escape component value will be signaled for each escape symbol. The encoding and decoding of the palette indices is shown in fig. 5.
This syntax order is done as follows. First, the number of index values of a CU is signaled. This is followed by using truncated binary codec to signal the actual index value of the entire CU. The index number and the index value are both coded and decoded in bypass mode. This combines the bypass binary groups associated with the index. The palette sample pattern (if needed) is then signaled and run in an interleaved fashion. Finally, the component escape values corresponding to the escape samples of the entire CU are combined and coded in bypass mode.
After signaling the index value, a further syntax element last _ run _ type _ flag is signaled. This syntax element, along with the number of indices, eliminates the need to signal the run value corresponding to the last run in the block.
In HEVC-SCC, there is also 4:2: 2. 4:2:0 and the monochrome chroma format enable palette mode. The signaling of palette entries and palette indices is almost the same for all chroma formats. If it is a non-monochrome format, each palette entry consists of 3 components. For the monochrome format, each palette entry consists of a single component. For the chroma direction of a sub-sample, a chroma sample is associated with a luma sample index that is divisible by 2. After reconstructing the palette index for the CU, only the first component of the palette entry is used if the sample point has only a single component associated with it. The only difference in signaling is the escape component value. The number of signaled escape component values may vary for each escape sample point depending on the number of components associated with that sample point.
In VVC, a dual tree coding structure is used to code an intra slice, so the luminance component and the two chrominance components may have different palettes and palette indices. In addition, the two chroma components share the same palette and palette index.
Deblocking scheme in 2.6 VVC
Note that, in the following description, pNMRepresenting the left Nth sample in the Mth row relative to the vertical edge, or the top Nth sample in the Mth column relative to the horizontal edge, qNMIndicating relative to vertical edgeThe nth sample on the right side of the M rows, or the nth sample on the bottom side of the mth column relative to the horizontal edge. pNMAnd qNMAn example of (a) is shown in figure 9.
Note that in the following description, pNRepresenting the Nth sample on the left in a row relative to a vertical edge, or the Nth sample on the top in a column relative to a horizontal edge, qNIndicating the nth sample on the right side in a row relative to a vertical edge or the nth sample on the bottom side in a row relative to a horizontal edge.
The filter on/off decision is made in units of four rows. Fig. 9 shows a pixel related to filter on/off decision. The 6 pixels in the two red boxes of the first four rows are used to determine the filter on/off of the 4 rows. The 6 pixels in the two red boxes of the next four rows are used to determine the filter on/off of the next four rows.
In some embodiments, vertical edges in the picture are filtered first. Then, the horizontal edges in the picture and the samples modified by the vertical edge filtering process are filtered as input. The vertical edge and the horizontal edge in the CTB of each CTU are processed on a codec unit basis, respectively. Vertical edges of codec blocks in a codec unit are filtered starting from the edge on the left-hand side of the codec block, crossing the edge in its geometric order, towards the right-hand side of the codec block. Horizontal edges of codec blocks in a codec unit are filtered starting from the edge at the top of the codec block, starting from its geometric order across the edge towards the bottom of the codec block.
2.6.1 boundary decision
The filtering is applied to 8x8 block boundaries. In addition, it must be a transform block boundary or a codec sub-block boundary (e.g., due to the use of Affine motion prediction (ATMVP)). For those without such a boundary the filter will be disabled.
2.6.2 boundary Strength calculation
For transform block boundaries/codec sub-block boundaries, if they are located in an 8x8 grid, they may be filtered and the bS [ xD ] of the edge will be filteredi][yDj](wherein [ xDi][yDj]To representCoordinates) are defined as follows:
if samples p0Or q0In the coding and decoding block of the coding and decoding unit which performs coding and decoding in the intra-frame prediction mode, bS [ xD ] is seti][yDj]Set equal to 2.
Else, if the block edge is also a transform block edge, and the sample point p0Or q0In a transform block containing one or more non-zero transform coefficient levels, then bS [ xD [ ] is seti][yDj]Is set equal to 1.
Else, if containing a sample point p0The prediction mode and the included sampling point q of the coding/decoding subblock0If the prediction modes of the coding and decoding subblocks are different, the bS [ xD ] is usedi][yDj]Is set equal to 1.
-otherwise, if one or more of the following conditions is true, then bS [ xD |)i][yDj]Set equal to 1:
containing spots p0And including a sample point q0Each codec sub-block of (1) is codec in IBC prediction mode and the absolute difference between the horizontal or vertical components of the motion vectors used for prediction of the two codec sub-blocks is greater than or equal to 4 (in units of quarter-luminance samples).
For contained samples p0Using and including samples q for the prediction of the coded sub-blocks0Different reference pictures or different numbers of motion vectors are predicted for the coded sub-blocks of (1).
Note 1-determining whether the reference pictures for the two coded sub-blocks are the same or different, depending only on which pictures are referenced, regardless of whether the prediction is formed using the index of reference picture list 0 or the index of reference picture list 1, and also regardless of whether the index positions in the reference picture lists are different.
Note 2-the number of motion vectors used to predict the codec sub-block using the top left corner samples covered (xSb, ySb) is equal to PredFlagL0[ xSb ] [ ySb ] + PredFlagL1[ xSb ] [ ySb ].
-using a motion vector to predict the contained sample point p0Coding and decoding unitBlock and uses a motion vector to predict the contained samples q0And the absolute difference between the horizontal or vertical components of the used motion vectors is greater than or equal to 4 (in units of quarter-luminance samples).
Predicting a contained sample point p using two motion vectors and two different reference pictures0Using two motion vectors of the same two reference pictures to predict the coded sub-block containing the sample point q0And for the same reference picture, the absolute difference between the horizontal or vertical components of the motion vectors used for prediction of the two codec sub-blocks is greater than or equal to 4 (in units of quarter-luma samples).
Predicting the inclusion sample point p using two motion vectors of the same reference picture0Using two motion vectors of the same reference picture to predict the sub-block containing the sample point q0And both of the following conditions are true:
-the absolute difference between the horizontal or vertical components of the list 0 motion vectors in the prediction for the two codec sub-blocks is greater than or equal to 4 (in quarter luma samples), or the absolute difference between the horizontal or vertical components of the list 1 motion vectors in the prediction for the two codec sub-blocks is greater than or equal to 4 (in quarter luma samples).
For predicting the contained sample points p0List 0 motion vector of coded sub-blocks and method for predicting contained samples q0List 1 motion vectors of the coded sub-blocks have an absolute difference between the horizontal or vertical components of greater than or equal to 4 (in units of quarter luminance samples) or, alternatively, for predicting a block containing samples p0List 1 motion vector of coded sub-blocks and method for predicting included samples q0List 0 motion vector of greater than or equal to 4 (in units of quarter luma samples) in absolute difference between horizontal or vertical components.
Else, the variable bS [ xD ]i][yDj]Is set equal to 0.
Tables 2-1 and 2-2 summarize the BS calculation rules.
TABLE 2-1. Border Strength (when SPS IBC is disabled)
Figure BDA0003295216660000131
TABLE 2-2. Border Strength (when SPS IBC is enabled)
Figure BDA0003295216660000132
2.6.3 deblocking decision for luma component
In this subsection, a deblocking (deblocking) decision process is described.
A wider and stronger luminance filter is a filter that is used only when all of condition1, condition2, and condition 3 are TRUE.
Condition1 is a "bulk condition". This condition detects whether the samples of the P-side (P-side) and Q-side (Q-side) belong to a large block, represented by the variables bsidepisislargeblk and bsideqisllargeblk, respectively. bSidePisLargeBlk and bsideqislrgeblk are defined as follows.
bsidepis largeblk ((edge type is vertical and p)0Is of width>CU) | | (edge type is horizontal and p |, 32 |0Is of height>CU of 32))? TRUE FALSE
bSideQisLargeBlk ((edge type is vertical and q is q)0Is of width>CU) | | (edge type is horizontal and q |)0Is of height>CU of 32))? TRUE FALSE
Based on bSidePisLargeBlk and bsideqislrgeblk, condition1 is defined as follows.
Condition 1? TRUE FALSE
Next, if condition1 is true, then condition2 will be further checked. First, the following variables were derived:
first derive dp0, dp3, dq0, dq3 as in HEVC
If p-edge is greater than or equal to 32
dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1
dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1
-if q-edge is greater than or equal to 32
dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1
dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1
Condition2 ═ d < β? TRUE FALSE
Where d is dp0+ dq0+ dp3+ dq3 as shown in section 2.2.4.
If Condition1 and Condition2 are valid, then a further check is made as to whether any blocks use sub-blocks:
Figure BDA0003295216660000141
Figure BDA0003295216660000151
finally, if both condition1 and condition2 are valid, the proposed deblocking method will check condition 3 (large block strong filter condition), which is defined as follows.
In condition 3StrongFilterCondition, the following variables are derived:
dpq is derived as in HEVC.
sp3=Abs(p3-p0) Derived as in HEVC
If p-edge is greater than or equal to 32
Figure BDA0003295216660000152
sq3=Abs(q0-q3) Derived as in HEVC
If q is greater than or equal to 32
Figure BDA0003295216660000153
As in HEVC, StrongFilterCondition ═ (dpq is less than (β)>>2),sp3+sq3Less than (3 x beta)>>5) And Abs (p)0-q0) Less than (5 × t)C+1)>>1)?TRUE:FALSE。
2.6.4 stronger deblocking Filter for luminance (designed for larger blocks)
When samples on either side of the boundary belong to a large block, a bilinear filter is used. Samples belonging to the large chunk are defined as: the width of the vertical edge > 32 and the height of the horizontal edge > 32.
The bilinear filter is listed below.
In the above HEVC deblocking, for block boundary samples p from i-0 to Sp-1iAnd block boundary samples q for j 0 to Sq-1j(piAnd q isiIs the ith sample in a row used to filter a vertical edge, or is the ith sample in a column used to filter a horizontal edge) is replaced by linear interpolation as follows:
—pi′=(fii*Middles,t+(64-fi)*Ps+32) > 6) cut to pi±tcPDi
-qj′=(gj*Middles,t+(64-gj)*Qs+32) > 6) cut to qj±tcPDj
Wherein tcPDiAnd tcPDjThe term is the position-dependent clipping described in section 2.3.6, and g is given in tables 2-3j、fi、Middles,t、PsAnd Qs
TABLE 2-3. Long tap deblocking Filter
Figure BDA0003295216660000161
Figure BDA0003295216660000171
2.6.5 deblocking control for chroma
Chroma strong filters are used on both sides of the block boundary. Here, when both sides of the chrominance edge are greater than or equal to 8 (chrominance position), the chrominance filter is selected and the following decision with three conditions is satisfied: the first condition is used for boundary strength and large block decision. The proposed filter may be applied when the block width or height orthogonal to the block edges is equal to or greater than 8 in the chroma sampling domain. The second and third conditions are substantially the same as HEVC luma deblocking decisions, on/off decisions and strong filter decisions, respectively.
In a first decision, for chroma filtering, the boundary strength (bS) is modified as shown in table 2-2. The conditions in Table 2-2 were examined in sequence. If the condition is satisfied, the remaining condition of lower priority is skipped.
When a large block boundary is detected, chroma deblocking is performed when bS equals 2 or bS equals 1.
The second and third conditions are essentially the same as the HEVC luma strong filter decisions, as follows.
In a second condition:
d is then derived as in HEVC luma deblocking.
When d is less than β, the second condition is TRUE.
In a third condition, StrongFilterCondition is derived as follows:
dpq is derived as in HEVC.
sp3=Abs(p3-p0) Derived as in HEVC
sq3=Abs(q0-q3) Derived as in HEVC
As in HEVC design, StrongFilterCondition ═ (dpq is less than (β)>>2),sp3+sq3Is less than (beta)>>3) And Abs (p)0-q0) Less than (5 × t)C+1)>>1)
2.6.6 robust deblocking Filter for chroma
The following strong deblocking filters for chroma are defined:
p2′=(3*p3+2*p2+p1+p0+q0+4)>>3
p1′=(2*p3+p2+2*p1+p0+q0+q1+4)>>3
p0′=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
the proposed chroma filter performs deblocking on a 4x4 grid of chroma samples.
2.6.7 location dependent clipping
Position-dependent clipping tcPD is applied to the output samples of the luminance filtering process involving a strong filter and a long filter that modify 7, 5 and 3 samples at the boundaries. Assuming a quantization error distribution, it is proposed to add a clipping value to samples expected to have higher quantization noise, and thus to expect a larger deviation of the reconstructed sample values from the true sample values.
For each P or Q boundary filtered with an asymmetric filter, depending on the outcome of the decision process in section 2.3.3, a table of position-dependent threshold values is selected from two tables provided to the decoder as secondary information (i.e., Tc7 and Tc3 listed below):
Tc7={6,5,4,3,2,1,1};
Tc3={6,4,2};
tcPD=(Sp==3)?Tc3:Tc7;
tcQD=(Sq==3)?Tc3:Tc7;
for P or Q boundaries filtered with a short symmetric filter, a lower magnitude position-dependent threshold is applied:
Tc3={3,2,1};
p 'filtered according to tcP and tcQ clip values after defining the threshold'iAnd q'iAnd (3) cutting sample values:
p”i=Clip3(p’i+tcPi,p’i–tcPi,p’i);
q”j=Clip3(q’j+tcQj,q’j–tcQj,q’j);
wherein, p'iAnd q'iIs the value of the sample point after filtering, p "iAnd q "jIs the output sample value after clipping, tcPi tcPiIs the clipping threshold derived from the VVC tc parameter and tcPD and tcQD. The function Clip3 is a clipping function as specified in VVC.
2.6.8 subblock deblocking adjustment
To enable parallel friendly deblocking (friendly deblocking) using both long filter and sub-block deblocking, the long filter is limited to modify up to 5 samples at the edge using sub-block deblocking (AFFINE or ATMVP or DMVR), as shown in the luma control for the long filter. In addition, sub-block deblocking is adjusted such that sub-block boundaries close to CU or implicit TU boundaries on an 8x8 grid are limited to modifying a maximum of two samples on each side.
The following applies to sub-block boundaries that are not aligned with CU boundaries.
Figure BDA0003295216660000191
Where an edge equal to 0 corresponds to a CU boundary, an edge equal to 2 or equal to orthogonalLength-2 corresponds to 8 samples from a sub-block boundary or the like, etc. An implicit TU is true if implicit partitioning of the TU is used.
2.6.9 restriction of 4CTU/2CTU line buffer for luminance/chrominance
When the horizontal edge is aligned with the CTU boundary, the filtering limit Sp of the horizontal edge is 3 for luminance, 1 for chrominance, and Sq is 1 for chrominance.
2.7 Intra mode coding in VVC
To capture any edge direction present in natural video, the number of directional intra modes in VTM5 is extended from 33 to 65 as used in HEVC. New directional modes that are not present in HEVC are indicated in fig. 12 with red dashed arrows, while the planar mode and the DC mode remain the same. These denser directional intra prediction modes are applicable to all block sizes and to both luma and chroma intra prediction.
In VTM5, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. Wide-angle intra prediction is described in section 3.3.1.2.
In HEVC, each intra coded block has a square shape and the length of each side thereof is a power of 2. Therefore, the intra predictor is generated using the DC mode without division. In VTM5, the blocks may have a rectangular shape, and in general, a division operation must be used for each block. To avoid dividing the DC prediction, only the longer side is used to calculate the average for the non-square block.
In order to keep the complexity of the Most Probable Mode (MPM) list generation low, an intra mode coding and decoding method with 6MPM is used by considering two available neighboring intra modes. The MPM list is constructed considering three aspects:
i. default intra mode
Neighboring intra mode
Derived intra mode
A unified 6-MPM list is used for intra blocks, whether or not MRL and ISP codec tools are applied. The MPM list is constructed based on the intra-modes of the left and upper neighboring blocks. Assuming that the pattern of the Left block is denoted as Left and the pattern of the upper block is denoted as Above, the unified MPM list is constructed as follows (FIG. 13 shows the Left and upper blocks)
-setting its intra mode to "plane" by default when neighboring blocks are not available.
-if both modes Left and Above are non-angular modes:
MPM list → { plane, DC, V, H, V-4, V +4}
If one of the modes Left and Above is angular mode and the other is non-angular mode:
setting mode Max to the larger of Left and Above
MPM List → { plane, Max, DC, Max-1, Max +1, Max-2}
-if Left and Above are both angular modes, and they are different:
set mode Max to the larger of Left and Above
If the difference between modes Left and Above is between 2 and 62 (including 2 and 62),
■ MPM List → { plane, Left, Above, DC, Max-1, Max +1}
Ol otherwise
■ MPM List → { plane, Left, Above, DC, Max-2, Max +2}
-if both Left and Above are angular modes, and they are the same:
MPM List → { plane, Left-1, Left +1, DC, Left-2}
Furthermore, the first bin of the MPM index codeword is CABAC context-coded. A total of three contexts are used, corresponding to whether the current intra block is MRL enabled, whether ISP enabled or a normal intra block.
In the 6MPM list generation process, pruning is used to delete duplicate patterns so that only unique patterns can be included in the MPM list. For entropy coding of 61 non-MPM modes, a Truncated Binary Code (TBC) is used.
For chroma intra mode coding, a total of 8 intra modes are allowed for chroma intra mode coding. These modes include five conventional intra modes and three cross-component linear model modes (CCLM, LM _ a, and LM _ L). The chroma mode signaling and derivation process is shown in tables 2-4. Chroma mode coding depends directly on the intra prediction mode of the corresponding luma block. Since separate block division structures are enabled for the luminance and chrominance components in the I-band, one chrominance block may correspond to a plurality of luminance blocks. Therefore, for the chroma DM mode, the intra prediction mode of the corresponding luminance block covering the center position of the current chroma block is directly inherited.
Table 24 derivation of chroma prediction mode from luma mode when cclm _ is enabled
Figure BDA0003295216660000211
2.8 quantized residual Block differential pulse code-decode modulation (QR-BDPCM)
In JFET-M0413, a quantized residual block differential pulse codec modulation (QR-BDPCM) is proposed to efficiently codec screen content.
The prediction directions used in the QR-BDPCM may be vertical and horizontal prediction modes. The entire block is intra-predicted by sample copy in a prediction direction (horizontal or vertical prediction) similar to the intra-prediction. The residual is quantized and the delta between the quantized residual and its predictor (horizontal or vertical) quantization value is coded. This can be described by: for a block of size M (rows) x N (columns), let rijI ≦ 0 ≦ M-1, and j ≦ 0 ≦ N-1 is the prediction residual after intra prediction using unfiltered samples from above or left block boundary samples, either horizontally (copying left neighboring pixel values of the whole prediction block row by row) or vertically (copying the top neighboring row to each row in the prediction block). Let Q (r)i,j) I is more than or equal to 0 and less than or equal to M-1, and j is more than or equal to 0 and less than or equal to N-1 represents residual error ri,jWherein the residual is the difference between the original block and the prediction block value. Then, block DPCM is applied to the quantized residual samples to obtain samples with elements
Figure BDA0003295216660000226
Modified M × N array of
Figure BDA0003295216660000227
When signaling vertical BDPCM:
Figure BDA0003295216660000221
for horizontal prediction, a similar rule applies, and residual quantized samples are obtained by
Figure BDA0003295216660000222
Quantizing the residual error to sample points
Figure BDA0003295216660000223
To the decoder.
At the decoder side, the above calculations are inverted to produce Q (r)i,j) I is more than or equal to 0 and less than or equal to M-1, and j is more than or equal to 0 and less than or equal to N-1. In the case of a vertical prediction,
Figure BDA0003295216660000224
in the case of the horizontal case,
Figure BDA0003295216660000225
inverse quantized residual Q-1(Q(ri,j) Add to the intra prediction value to produce reconstructed sample values.
The main advantage of this scheme is that the inverse DPCM can be done dynamically during coefficient parsing, simply by adding a predictor when parsing the coefficients, or can be performed after parsing.
2.9 adaptive Loop Filter
In VTM5, an Adaptive Loop Filter (ALF) with block-based filter adaptation is applied. For the luminance component, one of 25 filters is selected for each 4x4 block based on the direction and activity of the local gradient.
2.9.1 Filter shape
In VTM5, two diamond filter shapes are used (as shown in fig. 14). The 7 x 7 diamond is for the luminance component and the 5 x 5 diamond is for the chrominance component.
2.9.2 Block Classification
For the luminance component, each 4 × 4 block is classified into one of 25 classes. Classification index C is based on its directionality D and activity
Figure BDA0003295216660000231
Is derived as follows:
Figure BDA0003295216660000232
to calculate D and
Figure BDA0003295216660000233
the gradients in the horizontal, vertical and two diagonal directions are first calculated using a one-dimensional laplace transform:
Figure BDA0003295216660000234
Figure BDA0003295216660000235
Figure BDA0003295216660000236
Figure BDA0003295216660000237
where indices i and j refer to the coordinates of the upper left sample within the 4x4 block, and R (i, j) indicates the reconstructed sample at coordinate (i, j).
To reduce the complexity of the block classification, a one-dimensional laplacian computation of sub-samples is applied. As shown in fig. 15A-15D, the same sub-sample position is used for gradient calculations in all directions.
The D maxima and minima of the gradient in the horizontal and vertical directions are then set to:
Figure BDA0003295216660000238
the maximum and minimum values of the gradients in the two diagonal directions are set as:
Figure BDA0003295216660000239
to derive the value of the directivity D, two thresholds t are used1And t2These values are compared with each other:
step 1, if
Figure BDA00032952166600002310
And is
Figure BDA00032952166600002311
If true, D is set to 0.
Step 2, if
Figure BDA00032952166600002312
Continue from step 3; otherwise, continue from step 4.
Step 3, if
Figure BDA00032952166600002313
D is set to 2; otherwise set D to 1.
Step 4, if
Figure BDA00032952166600002314
Set D to 4; otherwise D is set to 3.
The activity value a is calculated as:
Figure BDA0003295216660000241
a is further quantized to a range of 0 to 4 (including 0 and 4), and the quantized value is represented as
Figure BDA0003295216660000242
For chroma components in a picture, no classification method is applied, i.e. a single set of ALF coefficients is applied to each chroma component.
2.9.3 geometric transformation of Filter coefficients and clipping values
Before each 4x4 luma block is filtered, a geometric transformation such as rotation or diagonal and vertical flipping is applied to the filter coefficients f (k, l) and corresponding filter clipping values c (k, l) depending on the gradient values calculated for that block. This is equivalent to applying these transforms to samples in the filter support area. The idea is to make the different blocks to which ALF is applied more similar by aligning their directionality.
Three geometric transformations were introduced, including diagonal, vertical flip, and rotation:
diagonal line: f. ofD(k,l)=f(l,k),cD(k,l)=c(l,k), (2-9-9)
And (3) vertically overturning: f. ofV(k,l)=f(k,K-l-1),cV(k,l)=c(k,K-l-1) (2-9-10)
Rotating: f. ofR(k,l)=f(K-l-1,k),cR(k,l)=c(K-l-1,k) (2-9-11)
Where K is the size of the filter and 0 ≦ K, l ≦ K-1 is the coefficient coordinate, such that position (0, 0) is in the upper left corner and position (K-1 ) is in the lower right corner. Depending on the gradient values calculated for the block, a transform is applied to the filter coefficients f (k, l) and the clipping values c (k, l). The following table summarizes the relationship between the transformation and the four gradients in the four directions.
Tables 2-5-mapping between gradients and transforms computed for a block
Gradient value Transformation of
gd2<gd1 and gh<gv Without conversion
gd2<gd1 and gv<gh Diagonal line
gd1<gd2 and gh<gv Vertically flipped
gd1<gd2 and gv<gh Rotate
2.9.4 Filter parameter Signaling
In VTM5, ALF filter parameters are signaled in an Adaptive Parameter Set (APS). In one APS, a maximum of 25 sets of luminance filter coefficients and clipping value indices, and a maximum of one set of chrominance filter coefficients and clipping value indices may be signaled. To reduce the bit overhead, different classes of filter coefficients may be combined. In the slice header, the index of the APS for the current slice is signaled.
The clipping value index decoded from the APS allows the clipping value to be determined using a luminance table of the clipping value and a chrominance table of the clipping value. These clipping values depend on the internal bit depth. More precisely, the luminance table of the clipping values and the chrominance table of the clipping values are obtained by the following formulas:
Figure BDA0003295216660000251
Figure BDA0003295216660000252
where B is equal to the internal bit depth and N is equal to 4, the number of clipping values allowed in VTM 5.0.
The filtering process can be controlled at the CTB level. The flag is always signaled to indicate whether ALF is applied to luma CTBs. Luminance CTB may select a filter set from 16 fixed filter sets and a filter set from APS. For luma CTB, a filter set index is signaled to indicate which filter set was applied. The 16 fixed filter sets are all predefined and hard coded in the encoder and decoder.
The filter coefficients are quantized with a specification equal to 128. To limit the multiplication complexity, bitstream conformance is applied such that the coefficient value at the non-central position should be-27To 27Range of-1 (including-2)7And 27-1). The center position coefficient is not signaled in the bitstream and is considered equal to 128.
2.9.5 Filtering Process
On the decoder side, when ALF is enabled for the CTB, each sample R (i, j) in the CU is filtered, resulting in a sample value R' (i, j) as shown below,
R′(i,j)=R(i,j)+((∑k≠0l≠0f(k,l)×K(R(i+k,j+l)-R(i,j),c(k,l))+64)>>7) (2-9-14)
where f (K, l) represents the decoded filter coefficients, K (x, y) is the clipping function, and c (K, l) represents the decoded clipping parameters. The variables k and 1 are in
Figure BDA0003295216660000253
And
Figure BDA0003295216660000254
where L represents the filter length. The clipping function K (x, y) ═ min (y, max (-y, x)), which corresponds to the function Clip3(-y, y, x).
2.9.6 virtual boundary filtering process for reducing line buffer
In VTM5, to reduce the line buffer requirements of ALF, modified block classification and filtering is applied to samples near horizontal CTU boundaries. For this purpose, the virtual boundary is defined as a line by shifting the horizontal CTU boundary by "N" samples, as shown in fig. 16, where N is equal to 4 for the luminance component and 2 for the chrominance component.
As shown in fig. 2-11, the modified block classification is applied to the luminance component. For the one-dimensional laplacian gradient calculation for a 4x4 block above the virtual boundary, only the samples above the virtual boundary are used. Similarly, for the one-dimensional laplacian gradient calculation of the 4x4 block below the virtual boundary, only the samples below the virtual boundary are used. Thus, the quantization of the activity value a may be scaled by taking into account the reduced number of samples used in the one-dimensional laplacian gradient calculation.
For the filtering process, a symmetric padding operation at the virtual boundary is used for the luminance and chrominance components. As shown in fig. 17, when a sample point to be filtered is located below the virtual boundary, adjacent sample points located above the virtual boundary are filled. Meanwhile, the corresponding sampling points of other edges are also filled in a symmetric manner.
2.10 Sample Adaptive Offset (SAO)
A Sample Adaptive Offset (SAO) is applied to the reconstructed signal after the deblocking filter by using an offset specified by the encoder for each CTB. The HM encoder first decides whether to apply the SAO process to the current slice. If SAO is applied to stripes, each CTB is classified as one of five SAO types, as shown in tables 2-6. The concept of SAO is to classify pixels and reduce distortion by adding an offset to the pixels of each class. SAO operations include Edge Offset (EO), which uses edge attributes for pixel classification, and Band Offset (BO), which uses pixel intensities for pixel classification in SAO types 1-4, and in SAO type 5. Each applicable CTB has SAO parameters including SAO _ merge _ left _ flag, SAO _ merge _ up _ flag, SAO type, and four offsets. If SAO _ merge _ left _ flag is equal to 1, the current CTB will reuse the SAO type and offset of the left CTB. If SAO _ merge _ up _ flag is equal to 1, the current CTB will reuse the SAO type and offset of the upper CTB.
TABLE 2-6 specification of SAO types
Figure BDA0003295216660000261
2.10.1 operations per SAO type
The classification of the current pixel p by edge offset uses four 1-D3 pixel patterns by considering edge orientation information, as shown in FIG. 18. These are, from left to right: 0 degrees, 90 degrees, 135 degrees, and 45 degrees.
Each CTB is classified into one of five categories according to tables 2-7.
TABLE 2-7-EO Pixel Classification rules
Categories Condition Means of
0 None of the following are Mostly monotonous
1 p<2 adjacent neighbors Local minimum
2 p<1 adjacent neighbor&&1 adjacent to each other (Edge)
3 p>1 adjacent neighbor&&1 adjacent to each other (Edge)
4 p>2 adjacent neighbors Local maximum
Band Offset (BO) classifies all pixels in one CTB region into 32 uniform bands by using the five most significant bits of the pixel value as band indexes. In other words, the pixel intensity range is divided into 32 equal segments from zero to the maximum intensity value (e.g., 255 for an 8-bit pixel). Four adjacent bands are grouped together and each group is indicated by its leftmost position, as shown in fig. 19. The encoder searches all positions to obtain the group with the largest distortion reduction by compensating the offset of each band.
2.11 Combined Inter and Intra Prediction (CIIP)
In VTM5, when a CU is coded in Merge mode, if the CU contains at least 64 luma samples (i.e., CU width multiplied by CU height is equal to or greater than 64), and if both CU width and CU height are less than 128 luma samples, an additional flag is signaled to indicate whether a combined inter/intra prediction (CIIP) mode is applied to the current CU. As the name implies, CIIP prediction combines an inter-prediction signal with an intra-prediction signal. Inter-frame prediction signal P in CIIP modeinterIs derived using the same inter prediction process as the conventional Merge mode. And, the intra prediction signal PintraDerived according to the conventional intra prediction process of planar mode. The intra and inter prediction signals are then combined using a weighted average, where the weight values are calculated from the codec modes of the top and left neighboring blocks (depicted in fig. 20), as follows:
-if the top neighbor is available and already intra-coded, setting isintranatop to 1, otherwise setting isintranatop to 0;
-if the left neighbor is available and intra-coded, setting isIntralft to 1, otherwise setting isIntralft to 0;
-if (isIntralft + isIntralft) equals 2, set wt to 3;
otherwise, if (isIntralft + isIntralft) equals 1, set wt to 2;
-otherwise, set wt to 1.
CIIP predictions are formed as follows:
PCIIP=((4-wt)*Pinter+wt*Pintra+2)>>2 (3-1)
2.12 luma mapping with chroma scaling (LMCS)
In VTM5, a codec tool called luma map with chroma scaling (LMCS) is added as a new processing block before the loop filter. LMCS has two main components: 1) a loop map of the luminance component based on the adaptive piecewise linear model; 2) for the chrominance components, a luminance-dependent chrominance residual scaling is applied. Figure 21 shows the LMCS architecture from the decoder perspective. The light blue shaded blocks in FIG. 21 indicate where in the mapping domain the processing is applied; and these include inverse quantization, inverse transformation, luma intra prediction, and addition of luma prediction to luma residual. The unshaded blocks in FIG. 21 indicate where in the original (i.e., unmapped) domain the processing is applied; and these include loop filters such as deblocking, ALF, and SAO, motion compensated prediction, chroma intra prediction, addition of chroma prediction and chroma residual, and storage of decoded pictures as reference pictures. The light yellow shaded block in fig. 21 is the new LMCS functional block, including the forward and reverse mapping of the luminance signal and the luminance-related chroma scaling process. As with most other tools in VVC, the LMCS may be enabled/disabled at the sequence level using the SPS flag.
3. Examples of problems addressed by embodiments
A palette flag is typically used to indicate whether palette mode is employed on the current CU, which may have different restrictions and differences on its entropy coding. However, there has been no adequate study in previous video codec standards on how to better encode the palette flags.
Palette samples may have visual artifacts if they are processed by a post-loop filtering process.
For non-square blocks, the palette scan order may be improved.
4. Examples of the embodiments
The following detailed description is to be considered as an example to explain the general concepts. These inventions should not be construed narrowly. Furthermore, these inventions may be combined in any manner.
1. The use of palette mode for transform unit/prediction unit/codec block/region indicates that the codec can be separately from the prediction mode.
a. In one example, the prediction mode may be coded prior to the indication of the use of the palette.
i. Alternatively, further, the indication of the use of the palette may be conditionally signaled based on the prediction mode.
1. In one example, when the prediction MODE is intra block copy MODE (i.e., MODE IBC), signaling the indication of use of the palette MODE may be skipped. Alternatively, further, when the current prediction MODE is MODE IBC, the indication of use of the palette may be inferred as false.
2. In one example, when the prediction MODE is INTER MODE (i.e., MODE INTER), signaling the indication of the use of the palette MODE may be skipped. Alternatively, also when the current prediction MODE is MODE INTER, the indication of the use of the palette MODE may be inferred as false.
3. In one example, when the prediction MODE is INTRA MODE (i.e., MODE _ INTRA), signaling the indication of the use of palette MODE may be skipped. Alternatively, also when the current prediction MODE is MODE _ INTRA, the indication of the use of the palette MODE may be inferred as false.
4. In one example, when the prediction mode is skip mode (i.e., skip flag is equal to 1), the indication of the use of palette mode may be skipped signaled. Alternatively, further, when skip mode is employed on the current CU, the indication of use of palette mode may be inferred as false.
5. In one example, when the prediction MODE is INTRA MODE (i.e., MODE _ INTRA), an indication of the use of palette MODE may be signaled. Alternatively, further, when the prediction mode is an inter mode or an intra block copy mode, the signaling of the indication of the use of the palette mode may be skipped.
a) Alternatively, further, when the prediction mode is intra mode and not Pulse Code Modulation (PCM) mode, an indication of the use of palette mode may be signaled.
b) Alternatively, further, when the prediction mode is intra mode, the indication of use of palette mode may be signaled prior to the indication of use of PCM mode. In one example, signaling the use of PCM mode may be skipped when palette mode is applied.
c) Alternatively, further, when the prediction mode is an inter mode or an intra block copy mode, signaling of an indication of use of the palette mode may be skipped.
6. In one example, when the prediction MODE is INTER MODE (i.e., MODE INTER), an indication of the use of the palette MODE may be signaled.
a) Alternatively, further, when the prediction mode is an intra mode, signaling of an indication of use of the palette mode may be skipped.
7. In one example, when the prediction mode is intra block copy mode, an indication of the use of palette mode may be signaled. Alternatively, further, when the prediction mode is an inter mode or an intra mode, signaling of the indication of the use of the palette mode may be skipped.
Alternatively, further, the indication of the use of palette mode may be conditionally signaled based on picture/slice group type.
b. In one example, the prediction mode may be codec following an indication of the use of the palette mode.
c. In one example, when the prediction MODE is INTRA MODE or INTER MODE, an indication of the use of palette MODE may be signaled.
i. In one example, the indication of the use of palette mode may be codec after the skip flag, the prediction mode, and the flag of the PCM mode.
in one example, the indication of the use of palette mode may be codec after the skip flag, prediction mode, and before the flag of PCM mode.
in one example, when the current block is coded in intra mode, an indication of the palette and IBC mode may be further signaled.
1. In one example, a one bit flag may be signaled to indicate whether palette or IBC mode is signaled.
2. In one example, the signaling bit flag may be skipped under certain conditions, such as block size, whether IBC is enabled for one slice/slice group/slice/picture/sequence, or palette mode.
d. In one example, the prediction mode (such as whether it is intra or inter) may be coded first, followed by conditional signaling of whether it is palette mode.
i. In one example, when the prediction mode is intra mode, another flag may also be signaled to indicate whether it is palette mode.
1. In one example, when palette mode is enabled for one video data unit (e.g., sequence/picture/slice group/slice), another flag may be signaled.
2. In one example, on condition of block size, a "further flag" may be signaled.
3. Alternatively, if it is not palette mode, a flag may also be signaled to indicate whether it is PCM mode or not.
4. In one example, the "another flag" may be context-coded according to information of neighboring blocks. Alternatively, the "another flag" may be context coded with only one context. Alternatively, the "other flag" may also be bypass coded, i.e. without context.
Alternatively, when the prediction mode is inter mode, another flag may also be signaled to indicate whether it is IBC mode.
1. In one example, when IBC mode is enabled for one video data unit (e.g., sequence/picture/slice group/slice), another flag may be signaled.
2. In one example, a "further flag" may be signaled on condition of the block size.
2. It is suggested to add the palette mode as an additional candidate for the prediction mode. Thus, there is no need to signal the indication of use of the palette mode separately from the prediction mode.
a. In one example, the prediction modes may include intra mode, intra block copy mode, and palette mode for intra slice/I picture/intra slice group.
b. Alternatively, the prediction modes may include intra mode, palette mode for intra slice/I picture/intra slice group.
c. In one example, the prediction modes may include an intra mode, an intra block copy mode, and a palette mode for a 4 × 4 block.
d. In one example, the prediction modes may include intra mode, inter mode, intra block copy mode, and palette mode for inter slices/P and/or B pictures/inter slice groups.
e. In one example, the prediction modes may include intra mode, inter mode, intra block copy mode for inter slices/P and/or B pictures/inter slice groups.
f. Alternatively, the prediction modes may include at least two of an intra mode, an inter mode, an intra block copy mode, and a palette mode.
g. In one example, for a 4x4 block. The inter mode may not be included in the prediction mode.
h. In one example, the prediction mode index may be signaled when a block is not coded in skip mode (which is a special case of inter mode).
i. In one example, binarization of four patterns is defined as: intra (1), inter (00), IBC (010), and palette (011).
in one example, binarization of four patterns is defined as: intra (10), inter (00), IBC (01), and palette (11), as shown in fig. 10.
in one example, if the current stripe is an intra stripe and IBC is not enabled in SPS, binarization of palette mode and intra mode is defined as: palette (1) and intra (0).
in one example, if the current stripe is not an intra stripe and IBC is not enabled in SPS, binarization of palette mode, inter mode, and intra mode is defined as: intra (1), inter (00), and palette (01).
v. in one example, if the current slice is an intra slice and IBC is enabled in SPS, then binarization of palette mode and intra mode is defined as: IBC (1), palette (01), and intra (00).
In one example, binarization of four patterns is defined as: inter (1), intra (01), IBC (001), and palette (000).
In one example, binarization of four patterns is defined as: intra (1), inter (01), IBC (001), and palette (000).
In one example, binarization of four patterns is defined as: inter (0), intra (10), IBC (111), and palette (110), as shown in fig. 11.
3. The indication of the use of the palette/IBC mode signaled may depend on information of other modes.
a. In one example, when the current prediction mode is intra mode and not IBC mode, an indication of the use of palette mode may be signaled.
b. In one example, when the current prediction mode is intra mode and not palette mode, an indication of the use of IBC mode may be signaled.
4. How the mode information is signaled may depend on the slice/picture/slice group type.
a. In one example, when it is an I slice/intra slice group, a flag may be signaled to indicate whether it is IBC mode. If not IBC mode, another flag may also be signaled to indicate whether it is palette mode or intra mode.
b. In one example, when it is an I slice/intra slice group, a flag may be signaled to indicate whether it is intra mode. If not intra mode, another flag may also be signaled to indicate whether it is palette mode or IBC mode.
5. The indication of the use of the palette mode may be signaled and/or derived based on the following conditions.
a. Block size of current block
i. In one example, the indication of the use of the palette mode may be signaled only for blocks whose width x height is less than or equal to a threshold (such as 64 x 64).
in one example, the indication of the use of the palette mode may be signaled only for blocks having a width and a height that are both greater than or equal to a threshold value, such as 64.
in one example, the indication of the use of the palette mode may be signaled only for blocks where all of the following conditions are true:
1. the width and/or height is greater than or equal to a threshold, such as 16;
2. the width and/or height is less than or equal to a threshold value, such as 32 or 64
in one example, an indication of the use of palette mode may be signaled only for blocks having a width equal to a height (i.e., square blocks).
b. Prediction mode of current block
c. Current quantization parameter of current block
d. Palette flags for neighboring blocks
e. Intra block copy flag for neighboring blocks
f. Color format indication (such as 4:2:0, 4:4:4)
g. Split/dual codec tree structure
h. Slice/slice group type and/or picture type
6. The indication of the use of IBC mode may be signaled and/or derived based on the following conditions.
a. Block size of current block
i. In one example, an indication of the use of IBC mode may be signaled only for blocks having a width or height less than 128.
b. Prediction mode of current block
c. Current quantization parameter of current block
d. Palette flags for neighboring blocks
e. Intra block copy flag for neighboring blocks
f. Color format indication (such as 4:2:0, 4:4:4)
g. Split/dual codec tree structure
h. Slice/slice group type and/or picture type
7. In the deblocking decision process, the palette MODE may be considered an INTRA MODE (e.g., MODE INTRA).
a. In one example, if samples on the p-side or q-side are coded with palette mode, the boundary strength is set to 2.
b. In one example, if samples on the p-side and q-side are coded in palette mode, the boundary strength is set to 2.
c. Alternatively, in the deblocking decision process, the palette MODE may be considered an INTER MODE (e.g., MODE INTER).
8. In the deblocking decision process, the palette MODE may be considered as a separate MODE (e.g., MODE _ PLT).
a. In one example, if samples on the p-side and q-side are coded in palette mode, the boundary strength is set to 0.
Alternatively, if samples on one side are coded in palette mode, the boundary strength is set to 0.
b. In one example, if samples on the p-side are coded in IBC mode and samples on the q-side are coded in palette mode, the boundary strength is set to 1 and vice versa.
c. In one example, if samples on the p-side are coded in intra mode and samples on the q-side are coded in palette mode, the boundary strength will be set to 2 and vice versa.
9. In the deblocking process, the palette mode may be considered as a transform-skip block a. alternatively, in the deblocking process, the palette mode may be considered as a BDPCM block.
10. An indication of the palette mode for a block may be signaled and/or derived based on the slice/slice group/picture level flag.
a. In one example, the flag indicates whether fractional Motion Vector Differences (MVDs) (e.g., slice _ fracmmvd _ flag) are allowed in combination with motion vector differences (MMVD, also known as UMVE) and/or Adaptive Motion Vector Resolution (AMVR) modes. Alternatively, further, if slice _ fracmmvd _ flag indicates that fractional MVD is enabled, the indication of the use of palette mode is skipped signaling and palette mode is inferred as disabled.
b. In one example, the flag indicates whether or not palette mode is enabled for slice/slice group/picture. Alternatively, further, when such flag indicates that palette mode is disabled, use of palette mode of the signaling block is skipped and palette mode is inferred as disabled.
11. An indication of the use of intra block copy mode (IBC) for a block may be signaled and/or derived based on slice/slice group/picture level flags.
a. In one example, the flag indicates whether fractional Motion Vector Differences (MVDs) (e.g., slice _ fracmmvd _ flag) are allowed in combination with motion vector differences (MMVD, also known as UMVE) and/or Adaptive Motion Vector Resolution (AMVR) modes. Alternatively, further, if slice _ fracmmvd _ flag indicates that fractional MVD is enabled, then signaling the indication of IBC mode is skipped and IBC mode is inferred as disabled.
b. In one example, the flag indicates whether IBC mode is enabled for slice/slice group/picture. Alternatively, further, when such a flag indicates that IBC mode is disabled, use of IBC mode of the signaling block is skipped and IBC mode is inferred as disabled.
12. Samples associated with one palette entry may have a different bit depth than the internal bit depth and/or the bit depth of the original/reconstructed samples.
a. In one example, the bit depth representing a sample point associated with one may be equal to N, and the following may apply:
i. in one example, N may be an integer (e.g., 8).
in one example, N may be greater than the internal bit depth and/or the bit depth of the original/reconstructed samples.
in one example, N may be less than the internal bit depth and/or the bit depth of the original/reconstructed samples.
in one example, N may depend on
1. Block size of current block
2. Current quantization parameter of current block
3. Indication of color format (such as 4:2:0, 4:4:4)
4. Split/dual codec tree structure
5. Slice/slice group type and/or picture type
6. Number of color matching strips
7. Predicting number of palette entries
8. Indexing of color components
b. In one example, samples associated with multiple palette entries may have different bit depths.
i. In one example, let C0, C1 be two palette entries in the current palette, and they may have bit depths equal to b0 and b1, respectively. b0 may not equal b1
1. In one example, b0 may be greater than/less than the internal bit depth and/or the internal bit depth of the original/reconstructed samples, and/or b1 may be greater than/less than the internal bit depth and/or the internal bit depth of the original/reconstructed samples.
c. In one example, in palette mode, samples may be reconstructed from shift values of samples associated with palette entries.
i. In one example, samples may be reconstructed by left-shifting samples in a palette entry by M bits.
in one example, the reconstruction value may be (C < < M) + (1< < (M-1)), where C is a palette entry.
in one example, samples may be reconstructed by right shifting samples in a palette entry by M bits.
in one example, the reconstructed value may be clip ((C + (1< < (M-1))) > > M,0, (1< < N) -1), where C is a palette entry and N is the reconstructed bit depth.
v. alternatively, further, in one example, M may depend on a bit depth difference between a sample associated with a palette entry and an internal bit depth of reconstructed/original samples.
1. In one example, M may be equal to the internal bit depth minus the bit depth of the samples in the palette entry
2. In one example, M may be equal to the bit depth of a sample point in a palette entry minus the internal bit depth
3. In one example, M may be equal to the bit depth of the original samples minus the bit depth of the samples in the palette entry
4. In one example, M may be equal to the bit depth of the samples in the palette entry minus the bit depth of the original samples.
5. In one example, M may be equal to the bit depth of the reconstructed samples minus the bit depth of the samples in the palette entry.
6. In one example, M may be equal to the bit depth of the samples in the palette entry minus the bit depth of the reconstructed samples.
In one example, M may be an integer (e.g., 2).
Alternatively, further, in one example, M may depend on
1. Block size of current block
2. Current quantization parameter of current block
3. Indication of color format (such as 4:2:0, 4:4:4)
4. Split/dual codec tree structure
5. Slice/slice group type and/or picture type
6. Number of color matching strips
7. Predicting number of palette entries
8. Sample location in block/picture/slice
9. Indexing of color components
In one example, a lookup operation based on samples in a palette entry may be used during reconstruction of the samples.
1. In one example, the values in the lookup table may be signaled in a Sequence Parameter Set (SPS)/Video Parameter Set (VPS)/Picture Parameter Set (PPS)/picture header/slice group header/LCU row/LCU group.
2. In one example, the values in the lookup table may be inferred in SPS/VPS/PPS/picture header/slice group header/LCU row/LCU group.
13. The Quantization Parameter (QP) of the signaled/derived palette codec block may be first modified before being used to derive escape pixels/samples, such as being clipped.
a. In one example, the QP range applied to the palette coded block may be processed in the same manner as the transform skip mode and/or the BDPCM mode.
b. In one example, the QP applied to the palette codec block may be modified to max (QP,4+ T), where T is an integer value and QP is a quantization parameter signaled or derived for the block.
i. In one example, T may be a predetermined threshold.
in one example, T may be equal to (4+ min _ qp _ prime _ ts _ minus4), where min _ qp _ prime _ ts _ minus4 may be signaled.
14. The escape samples/symbols may be unified regardless of whether transform quantization (transquant) bypass is enabled.
a. In one example, the escape samples may be signaled in fixed length signaling.
b. In one example, the escape samples may be signaled in fixed length signaling using N bits.
i. In one example, N may be an integer (e.g., 8 or 10) and may depend on
1. A message signaled in an SPS/VPS/PPS/picture header/slice group header/LCU row/LCU group.
2. Internal bit depth
3. Input bit depth
4. Block size of current block
5. Current quantization parameter of current block
6. Indication of color format (such as 4:2:0, 4:4:4)
7. Split/dual codec tree structure
8. Slice/slice group type and/or picture type
c. In one example, the codec length used to signal the escape pixels/samples may depend on the internal bit depth.
i. Alternatively, the codec length used to signal the escape pixels/samples may depend on the input bit depth.
d. In one example, the codec length used to signal the escape pixels/samples may depend on the quantization parameter.
i. In one example, the codec length to signal an escape pixel/sample may be f (Qp)
1. In one example, the function f can be defined as (internal bit depth- (Qp-4)/6).
15. The quantization and/or inverse quantization processes of the palette codec block and the non-palette codec block may be defined in different ways.
a. In one example, rather than using a quantization process on transform coefficients or residuals, a right shift may be used to quantize the escape samples.
b. In one example, rather than using an inverse quantization process on transform coefficients or residuals, left shifting may be used to inverse quantize escape samples.
c. At the encoder side, the following may apply:
i. in one example, the escape pixel/sample value may be signaled as f (p, Qp), where p is the pixel/sample value.
in one example, the function f can be defined as p > > ((Qp-4)/6), where p is the pixel/sample value and Qp is the quantization parameter.
in one example, an escape pixel/sample value may be signaled as p > > N, where p is the pixel/sample value.
1. In one example, N may be an integer (e.g., 2), and may depend on
a) A message signaled in an SPS/VPS/PPS/picture header/slice group header/LCU row/LCU group.
b) Internal bit depth
c) Input bit depth
d) Block size of current block
e) Current quantization parameter of current block
f) Indication of color format (such as 4:2:0, 4:4:4)
g) Split/dual codec tree structure
h) Slice/slice group type and/or picture type
d. At the decoder side, the following may apply:
i. in one example, the escape pixel/sample value may be signaled as f (bd, p, Qp)
1. In one example, the function f can be defined as clip (0, (1< < (bd- (Qp-4)/6)) -1, (p + (1< < (bd-1))) > ((Qp-4)/6)).
in one example, the escape pixel/sample values may be reconstructed as f (p, Qp), where p is the decoded escape pixel/sample value.
1. In one example, f can be defined as p < < (((Qp-4)/6)
in one example, the escape pixel/sample values may be reconstructed as f (bd, p, Qp), where p is the decoded escape pixel/sample value.
1. In one example, function clipping can be defined as clip (0, (1< < bd) -1, p < < (((Qp-4)/6))
in the above example, the clipping function clip (a, i, b) may be defined as (i < aa (i > bb: i)).
In the above example, the clipping function clip (a, i, b) may be defined as (i < ═ aa (i > ═ bb: i)).
In the above example, p may be a pixel/sample value, bd may be an internal bit depth or an input bit depth, and Qp is a quantization parameter.
16. During the list building process of the Most Probable MODE (MPM), the palette codec block may be considered an INTRA block (e.g., MODE INTRA).
a. In one example, when INTRA-MODE of neighboring (adjacent or non-adjacent) blocks is obtained during construction of the MPM list, neighboring blocks (e.g., left and/or top) may be considered as legacy INTRA-coded blocks (e.g., MODE INTRA) with a default MODE if they are coded in palette MODE.
i. In one example, the default mode may be a DC/PLANAR/VER/HOR mode.
in one example, the default mode may be any intra prediction mode.
in one example, the default mode may be signaled in DPS/SPS/VPS/PPS/APS/picture header/slice group header/maximum codec unit (LCU)/Codec Unit (CU)/LCU row/LCU group/TU/PU block/video codec unit.
17. During the list construction process of the Most Probable MODE (MPM), the palette coded block may be considered as a non-intra block (e.g., as a block with a prediction MODE equal to MODE _ PLT).
a. In one example, when acquiring intra-modes of neighboring blocks during construction of an MPM list, if the neighboring blocks (e.g., left and/or top) are coded in palette mode, they may be processed in the same or similar manner as blocks coded in inter-mode.
b. In one example, when the intra-mode of a neighboring block is obtained during construction of the MPM list, if the neighboring block (e.g., left and/or top) is coded in palette mode, it may be processed in the same or similar manner as a block coded in IBC mode.
18. A luma block coded in palette mode corresponds to a chroma block coded in DM mode and may be interpreted as having a default intra prediction mode.
a. In one example, when a chroma block is coded in the DM MODE, the corresponding luma block coded in the palette MODE may be considered an INTRA block (e.g., MODE _ INTRA) or a palette block (e.g., MODE _ PLT).
b. In one example, the default prediction mode may be the DC/PLANAR/VER/HOR mode.
c. In one example, the default prediction mode may be any intra prediction mode.
d. In one example, the default prediction mode may be signaled in DPS/SPS/VPS/PPS/APS/picture header/slice group header/maximum codec unit (LCU)/Codec Unit (CU)/LCU line/LCU group/TU/PU block/video codec unit.
19. During list construction of history-based motion vector prediction (HMVP), merge (merge), and/or Advanced Motion Vector Prediction (AMVP) modes, palette codec blocks may be considered as unavailable blocks.
a. In one example, an unavailable block may represent a block that does not have any motion information or whose motion information cannot be used as a prediction for other blocks.
b. In one example, in the list building process in HMVP, MERGE, and/or AMVP MODE, a block coded in palette MODE may be considered an INTRA block (e.g., MODE _ INTRA) or a palette block (e.g., MODE _ PLT).
i. Alternatively, in one example, a neighboring block that is coded in palette mode may be considered a block with an invalid reference index when motion information of the neighboring block is obtained during construction of the HMVP, MERGE, and/or AMVP list.
Alternatively, in one example, when motion information of a neighboring block is obtained during construction of an HMVP, MERGE, and/or AMVP list, the neighboring block coded with palette mode may be considered as an inter block with a reference index equal to 0.
Alternatively, in one example, a neighboring block that is coded in palette mode may be considered an inter block with zero motion vectors when motion information of the neighboring block is obtained during list construction of HMVP, MERGE, and/or AMVP modes.
20. How to process blocks coded with palette mode (e.g., whether and/or how to apply the above method) may be based on:
a. video content (e.g. screen content or natural content)
b. Message signaled in DPS/SPS/VPS/PPS/APS/Picture header/slice group header/maximum codec Unit (LCU)/Codec Unit (CU)/LCU line/LCU group/TU/PU Block/video codec Unit
Position of CU/PU/TU/block/video codec unit
d. Block size of current block and/or its adjacent blocks
e. Block shape of current block and/or its adjacent block
f. Indication of color format (such as 4:2:0, 4:4:4, RGB or YUV)
g. Coding and decoding tree structure (such as double tree or single tree)
h. Slice/slice group type and/or picture type
i. Color component (e.g., may apply only to luma component and/or chroma component)
j. Time domain layer ID
k. Standard profile/level/hierarchy
21. The context codec bits of the palette codec block may be limited to a certain range.
a. In one example, a counter is assigned to a block to record how many bins have been context coded. When the counter exceeds the threshold, bypass coding will be applied without using context coding.
i. Alternatively, a NumColorComp counter may be assigned to record how many bins have been context coded for each color component. NumColorComp is the number of color components to be coded in one block (e.g., NumColorComp is set to 3 for one CU in YUV format).
Alternatively, a counter may be initialized to zero and incremented by 1 after a bin is coded with context.
b. Alternatively, the counter may be initialized with some value greater than zero (e.g., W × H × K) and decremented by one after one binary bit is coded with context. When the counter is less than or equal to T, bypass coding will be applied without using context coding.
i. In one example, T is set to 0 or 1.
in one example, T is set according to decoding information or bypass codec times, etc.
c. In one example, the palette codec block may have the same or different threshold value as compared to a TS codec block or a non-TS codec block in terms of binary bits of the context codec.
i. In one example, the number of context codec bits of a palette codec block may be set to (W × H × T), where W and H are the width and height of one block, respectively, and T is an integer. In one example, T is set to be the same as T for the TS codec block, such as 1.75 or 2.
in one example, the number of context coding bits of a palette coded block may be set to (W × H × NumColorComp × T), where W and H are the width and height of one block, respectively. NumColorComp is the number of color components to be coded in one block (e.g., NumColorComp is set to 3 for a CU in YUV format), and T is an integer. In one example, T is set to be the same as T for the TS codec block, such as 1.75 or 2.
d. In one example, the threshold for the palette codec block may be less than a TS codec block or a non-TS codec block in terms of binary bits of the context codec.
e. In one example, the threshold for the palette codec block may be greater than a TS codec block or a non-TS codec block in terms of binary bits of the context codec.
22. During the process of counting adjacent intra blocks in CIIP MODE, the palette coded block may be considered a non-intra block (e.g., considered a block with a prediction MODE equal to MODE _ PLT).
a. In one example, when an intra mode of a neighboring block is acquired during counting of neighboring intra blocks in CIIP mode, if the neighboring block (e.g., left and/or top) is coded in palette mode, it may be processed in the same or similar manner as a block coded in inter mode.
b. In one example, when an intra mode of a neighboring block is acquired during counting of neighboring intra blocks in the CIIP mode, if the neighboring block (e.g., left and/or top) is coded in a palette mode, it may be processed in the same or similar manner as a block coded in the IBC mode.
c. Alternatively, during the process of counting adjacent intra blocks in the CIIP mode, the palette codec block may be treated as an intra block.
23. It is proposed to skip the pre-and/or post-filtering process of palette codec samples.
a. In one example, palette codec samples may not be deblocked.
b. In one example, palette codec samples may not be compensated for offset during SAO.
c. In one example, the palette codec samples may not be filtered during the ALF process.
i. In one example, classification in the ALF process may skip palette codec samples.
d. In one example, LMCS may be disabled for palette codec samples.
24. It is suggested to add more scan orders in the palette mode.
a. In one example, a reverse horizontal traversal scan order, as defined below, may be used.
i. In one example, the scan direction of the odd rows may be from left to right.
in one example, the scan direction of the even rows may be from right to left.
in one example, the scan order of the 4x4 blocks may be as shown in fig. 22.
b. In one example, an inverse vertical traversal scan order as defined below may be used.
i. In one example, the scan direction of the odd rows may be from top to bottom.
in one example, the scan direction of the even rows may be from bottom to top.
in one example, the scan order of the 4x4 blocks may be as shown in fig. 23.
25. The combination of allowed scan orders may depend on the block shape.
a. In one example, only the horizontal traversal and reverse horizontal traversal scan orders may be applied when the ratio between the width and height of the block is greater than a threshold.
i. In one example, the threshold is equal to 1.
in one example, the threshold is equal to 4.
b. In one example, only the vertical traversal and reverse vertical traversal scan orders may be applied when the ratio between the height and width of the block is greater than a threshold.
i. In one example, the threshold is equal to 1.
in one example, the threshold is equal to 4.
26. It is proposed to allow only one intra prediction direction and/or one scan direction in the QR-BDPCM process.
a. In one example, only the vertical direction is allowed on blocks with a width greater than the height.
b. In one example, only the horizontal direction is allowed on blocks whose width is smaller than their height.
c. In one example, an indication of the direction of the QR-BDPCM may be inferred for non-square blocks.
i. Further, in one example, for blocks with widths greater than heights, the indication of the direction of the QR-BDPCM may be inferred to be a vertical direction.
Further, in one example, for blocks having a width less than a height, the indication of the direction of the QR-BDPCM may be inferred to be a horizontal direction.
27. The methods in clauses 24,25 and 26 may be applied only to blocks where w Th > h or h Th > w, where w and h are the width and height of the block, respectively, and Th is a threshold.
a. In one example, Th is an integer (e.g., 4 or 8) and may be based on
i. Video content (e.g. screen content or natural content)
Message signaled in DPS/SPS/VPS/PPS/APS/Picture header/slice group header/maximum codec Unit (LCU)/Codec Unit (CU)/LCU line/LCU group/TU/PU Block/video codec Unit
Location of CU/PU/TU/block/video codec Unit
Block size of current block and/or its adjacent blocks
v. block shape of current block and/or its neighboring blocks
An indication of color format (e.g., 4:2:0, 4:4:4, RGB or YUV)
Coding and decoding tree structure (such as double tree or single tree)
Slice/slice group type and/or picture type
Color component (e.g. may apply only to luminance and/or chrominance components)
x. time domain layer ID
Standard profile/level/hierarchy
5. Additional embodiments
5.1 example 1
This section shows an example embodiment where the bitstream representation of the video may change compared to the reference bitstream syntax. Changes are highlighted using italicized bolded text entries.
Figure BDA0003295216660000452
sps _ plt _ enabled _ flag equal to 1 specifies that the palette mode may be used when decoding a picture in CVS. sps _ plt _ enabled _ flag equal to 0 specifies that the palette mode is not used in CVS. When sps _ plt _ enabled _ flag is not present, it is inferred to be equal to 0.
Figure BDA0003295216660000451
Figure BDA0003295216660000461
pred _ mode _ scc _ flag equal to 1 specifies that the current codec unit is codec by the screen content codec mode. pred _ mode _ scc _ flag equal to 0 specifies that the current codec unit is not codec by the screen content codec mode.
When pred _ mode _ scc _ flag is not present, it is inferred to be equal to 0.
pred _ mode _ plt _ flag equal to 1 specifies that the current codec unit is codec in palette mode.
pred _ mode _ plt _ flag equal to 0 specifies that the current codec unit is not codec in palette mode.
When pred _ mode _ plt _ flag is not present, it is inferred to be equal to the value of sps _ plt _ enabled _ flag when decoding I slice groups, and is inferred to be equal to 0 when decoding P or B slice groups.
When pred _ mode _ scc _ flag is equal to 1 and sps _ ibc _ enabled _ flag is equal to 0, pred _ mode _ plt _ flag is inferred to be equal to 1.
When pred _ MODE _ ibc _ flag is equal to 1, the variable CuPredMode [ x ] [ y ] is set equal to MODE _ PLT for x x0., x0+ cbWidth-1 and y y0., y0+ cbHeight-1.
Figure BDA0003295216660000462
Figure BDA0003295216660000471
Figure BDA0003295216660000472
Figure BDA0003295216660000481
pred _ mode _ plt _ flag equal to 1 specifies that the current codec unit is codec in palette mode. pred _ mode _ plt _ flag equal to 0 specifies that the current codec unit is not codec in palette mode.
When no pred _ mode _ plt _ flag is present, then when I slice groups are decoded and when P or B slice groups are decoded, they are inferred to be equal to the value of sps _ plt _ enabled _ flag and 0, respectively.
When pred _ MODE _ ibc _ flag is equal to 1, the variable CuPredMode [ x ] [ y ] is set equal to MODE _ PLT for x x0., x0+ cbWidth-1 and y y0., y0+ cbHeight-1.
Figure BDA0003295216660000482
Figure BDA0003295216660000491
pred _ mode _ plt _ flag equal to 1 specifies that the current codec unit is codec in palette mode. pred _ mode _ plt _ flag equal to 0 specifies that the current codec unit is not codec in palette mode.
When pred _ mode _ plt _ flag is not present, it is inferred to be equal to the value of sps _ plt _ enabled _ flag and 0, respectively, when I slice group is decoded and when P or B slice group is decoded.
When pred _ MODE _ ibc _ flag is equal to 1, the variable CuPredMode [ x ] [ y ] is set equal to MODE _ PLT for x x0., x0+ cbWidth-1 and y y0., y0+ cbHeight-1.
Figure BDA0003295216660000492
Figure BDA0003295216660000501
Figure BDA0003295216660000502
Figure BDA0003295216660000511
Figure BDA0003295216660000512
Figure BDA0003295216660000521
Figure BDA0003295216660000522
Figure BDA0003295216660000531
plt _ mode _ flag equal to 1 specifies that the current codec unit is codec in palette mode. intra _ mode _ plt _ flag equal to 0 specifies that the current codec unit is codec in palette mode.
When plt _ mode _ flag is not present, it is inferred to be equal to false (false).
When pred _ MODE _ scc _ flag is equal to 1, the variable CuPredMode [ x ] [ y ] is set equal to MODE _ PLT for x-x0., x0+ cbWidth-1, and y-y0., y0+ cbHeight-1.
pred _ mode _ flag equal to 0 specifies that the current codec unit is codec in inter prediction mode or IBC prediction mode. pred _ mode _ flag equal to 1 specifies that the current codec unit is codec in intra prediction mode or PLT mode. For x x0., x0+ cbWidth-1 and y y0., y0+ cbHeight-1, the variable CuPredMode [ x ] [ y ] is derived as follows:
-if pred _ MODE _ flag is equal to 0, set CuPredMode [ x ] [ y ] equal to MODE _ INTER.
Else (pred _ MODE _ flag equal to 1), set CuPredMode [ x ] [ y ] equal to MODE _ INTRA.
When pred _ mode _ flag is not present, it is inferred to be equal to 1 and 0 when I slice group is decoded and when P or B slice group is decoded, respectively.
TABLE 9-4 syntax elements and associated binarization
Figure BDA0003295216660000541
Table 9-10-assignment of ctxInc to syntax element using context coding and decoding bits
Figure BDA0003295216660000542
5.2 example #2
This embodiment describes a modeType. The newly added text is shown in italics and bold.
The variable modeType specifies whether INTRA, IBC, palette, and INTER codec MODEs (MODE _ TYPE _ ALL) can be used for a codec unit within a codec tree node, or whether only INTRA, palette, and IBC codec MODEs (MODE _ TYPE _ INTRA) can be used, or whether only INTER codec MODEs (MODE _ TYPE _ INTER) can be used.
5.3 example #3
This embodiment describes the codec unit syntax. In this embodiment, pred _ mode _ plt _ flag is signaled after pred _ mode _ ibc _ flag. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000543
Figure BDA0003295216660000551
Figure BDA0003295216660000561
5.4 example #4
This embodiment describes the codec unit syntax. In this embodiment, pred _ MODE _ plt _ flag is signaled after pred _ MODE _ ibc _ flag, and is signaled only when the current prediction MODE is MODE _ INTRA. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000562
Figure BDA0003295216660000571
Figure BDA0003295216660000581
5.5 example #5
This embodiment describes the codec unit syntax. In this embodiment, pred _ mode _ ibc _ flag is signaled after pred _ mode _ plt _ flag. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000582
Figure BDA0003295216660000591
Figure BDA0003295216660000601
5.6 example #6
This embodiment describes the codec unit syntax. In this embodiment, pred _ MODE _ ibc _ flag is signaled after pred _ MODE _ plt _ flag, and pred _ MODE _ plt _ flag is signaled only when the current prediction MODE is MODE _ INTRA. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000602
Figure BDA0003295216660000611
5.7 example #7
This embodiment describes the codec unit syntax. In this embodiment, pred _ MODE _ plt _ flag and pred _ MODE _ ibc _ flag are signaled when the prediction MODE is MODE _ INTRA. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000621
Figure BDA0003295216660000631
5.8 example #8
This embodiment describes the codec unit syntax. In this embodiment, pred _ MODE _ plt _ flag and pred _ MODE _ ibc _ flag are signaled when the prediction MODE is not MODE _ INTRA. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000632
Figure BDA0003295216660000641
Figure BDA0003295216660000651
5.9 example #9
This embodiment describes the codec unit syntax. In this embodiment, pred _ MODE _ plt _ flag and pred _ MODE _ ibc _ flag are signaled when the prediction MODE is MODE _ INTER. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000652
Figure BDA0003295216660000661
Figure BDA0003295216660000671
5.10 example #10
This embodiment describes the semantics of pred _ mode _ plt _ flag. The newly added text is shown in italics and bold.
pred _ mode _ plt _ flag specifies the use of the palette mode in the current codec unit. pred _ mode _ plt _ flag ═ 1 indicates that the palette mode is applied in the current codec unit. pred _ mode _ plt _ flag ═ 0 indicates that the palette mode is not applied to the current codec unit. When pred _ mode _ plt _ flag is not present, it is inferred to be equal to 0.
5.11 embodiment #11
This embodiment describes the semantics of pred _ mode _ plt _ flag. The newly added text is shown in italics and bold.
pred _ mode _ plt _ flag specifies the use of the palette mode in the current codec unit. pred _ mode _ plt _ flag ═ 1 indicates that the palette mode is applied in the current codec unit. pred _ mode _ plt _ flag ═ 0 indicates that the palette mode is not applied to the current codec unit. When pred _ mode _ plt _ flag is not present, it is inferred to be equal to 0.
When pred _ MODE _ PLT _ flag is equal to 1, the variable CuPredMode [ x ] [ y ] is set equal to MODE _ PLT for x-x0., x0+ cbWidth-1, and y-y0., y0+ cbHeight-1.
5.12 example #12
This embodiment describes the derivation of the boundary strength. The newly added text is shown in italics and bold.
8.8.3.5 derivation process of boundary filtering strength
The inputs to this process are:
the picture sample array recPicture,
specifying a position of a top left sample of the current codec block relative to a top left sample of the current picture (xCb, yCb),
a variable nCbW specifying the width of the current codec block,
a variable nCbH specifying the height of the current codec block,
a variable edgeType specifying whether to filter vertical (EDGE VER) or horizontal (EDGE HOR) EDGEs,
a variable cIdx specifying the color component of the current codec block,
two-dimensional (nCbW) x (nCbH) arrays edgeFlags.
The output of this process is a two-dimensional (nCbW) x (ncbh) array bS that specifies the boundary filtering strength.
The variable bS [ xDi ] [ yDj ] is derived as follows:
if cIdx is equal to 0, and the sample point p0And q is0All in the coding and decoding blocks with intra _ bdplcm _ flag equal to 1, then bS [ xD ]i][yDj]Is set equal to 0.
Otherwise, if the sample point p0Or q0In the coding and decoding block of the coding and decoding unit which performs coding and decoding in the intra-frame prediction mode, bS [ xD ] is seti][yDj]Set equal to 2.
Otherwise, if the block edge is also a transform block edge, and the sample point p is0Or q0In the codec block with ciip _ flag equal to 1, then bS [ xD [ ]i][yDj]Set equal to 2.
Otherwise, if the block edge is also a transform block edge, and the sample point p is0Or q0In a transform block containing one or more non-zero transform coefficient levels, then bS [ xD [ ] is seti][yDj]Is set equal to 1.
Otherwise, if the block edge is also a transform block edge, and sample p0And q is0In two codec blocks with pred _ mode _ plt _ flag equal to 1, then bS [ xD [ ]i][yDj]Is set equal to 0.
Otherwise, if sample point p is included0The prediction mode and the included sampling point q of the coding/decoding subblock0If the prediction modes of the coding and decoding subblocks are different, the bS [ xD ] is usedi][yDj]Is set equal to 1.
Otherwise, if cIdx is equal to 0 and one or more of the following conditions is true, then bS [ xD ]i][yDj]Is provided withIs equal to 1:
including the sample point p0And including a sample point q0Each codec sub-block of (1) is codec in IBC prediction mode, and the absolute difference between the horizontal or vertical components of the motion vectors used in the prediction of the two codec sub-blocks is greater than or equal to 4 (in units of quarter-luminance samples).
For containing a sample point p0Using the prediction of the coded sub-block of (2) and the prediction of the coded sub-block comprising the sample point q0Different reference pictures or different numbers of motion vectors of the coded sub-blocks.
Note 1-determining whether the reference pictures for the two coded sub-blocks are the same or different based only on which pictures are referenced, whether the index of reference picture list 0 or the index of reference picture list 1 is used to form the prediction, and whether the index positions in the reference picture lists are different.
Note 2-the number of predicted motion vectors for the codec sub-block of the left upper sample point overlay (xSb, ySb) is equal to PredFlagL0[ xSb ] [ ySb ] + PredFlagL1[ xSb ] [ ySb ].
A motion vector for predicting a pixel containing a sample p0A motion vector for predicting the block containing samples q0And the absolute difference between the horizontal or vertical components of the motion vectors used is greater than or equal to 4 (in units of quarter-luminance samples).
Using two motion vectors and two different reference pictures for predicting a contained sample point p0Using two motion vectors of two identical reference pictures for predicting the reference picture containing the sampling point q0And for the same reference picture, an absolute difference between horizontal or vertical components of motion vectors used for prediction of the two codec sub-blocks is greater than or equal to 4 (in units of quarter-luma samples).
Using two motion vectors of the same reference picture for prediction of a reference picture containing samples p0Using two motion vectors of the same reference picture for predicting the containing sample point q0And both of the following conditions areTrue:
the absolute difference between the horizontal or vertical components of the list 0 motion vectors for the predictions of the two codec sub-blocks is greater than or equal to 4 (in units of one-quarter luma samples), and the absolute difference between the horizontal or vertical components of the list 1 motion vectors for the predictions of the two codec sub-blocks is greater than or equal to 4 (in units of one-quarter luma samples).
For containing samples p0List 0 motion vector for prediction of coded sub-blocks and method for including samples q0List 1 motion vector of prediction of a codec sub-block the absolute difference between the horizontal or vertical components thereof is greater than or equal to 4 (in units of quarter luminance samples), or for inclusion of a sample p0List 1 motion vector for prediction of coded sub-blocks and method for including samples q0The absolute difference between the horizontal or vertical components of the predicted list 0 motion vectors of the codec sub-blocks of (1) is greater than or equal to 4 (in units of quarter-luma samples).
Otherwise, the variable bS [ xD ]i][yDj]Is set equal to 0.
5.13a embodiment #13a
This embodiment describes the derivation of the boundary strength. The newly added text is shown in italics and bold.
8.8.3.5 derivation process of boundary filtering strength
The inputs to this process are:
the picture sample array recPicture,
specifying a position of a top left sample of the current codec block relative to a top left sample of the current picture (xCb, yCb)
A variable nCbW specifying the width of the current codec block,
a variable nCbH specifying the height of the current codec block,
a variable edgeType specifying whether to filter vertical (EDGE VER) or horizontal (EDGE HOR) EDGEs,
a variable cIdx specifying the color component of the current codec block,
two-dimensional (nCbW) x (nCbH) arrays edgeFlags.
The output of this process is a two-dimensional (nCbW) x (ncbh) array bS that specifies the boundary filtering strength.
Variable bS [ xD ]i][yDj]The derivation is as follows:
if cIdx is equal to 0, and the sample point p0And q is0All in the coding and decoding blocks with intra _ bdplcm _ flag equal to 1, then bS [ xD ]i][yDj]Is set equal to 0.
Otherwise, if the sample point p0Or q0In the coding and decoding block of the coding and decoding unit which performs coding and decoding in the intra-frame prediction mode, bS [ xD ] is seti][yDj]Set equal to 2.
Otherwise, if the block edge is also a transform block edge, and the sample point p is0Or q0In the codec block with ciip _ flag equal to 1, then bS [ xD [ ]i][yDj]Set equal to 2.
Otherwise, if the block edge is also a transform block edge, and the sample point p is0Or q0In a transform block containing one or more non-zero transform coefficient levels, then bS [ xD [ ] is seti][yDj]Is set equal to 1.
Otherwise, if the block edge is also a transform block edge, and the sample point p is0Or q0In the codec block with pred _ mode _ plt _ flag equal to 1, then bS [ xD [ ]i][yDj]Is set equal to 0.
Otherwise, if sample point p is included0The prediction mode and the included sampling point q of the coding/decoding subblock0If the prediction modes of the coding and decoding subblocks are different, the bS [ xD ] is usedi][yDj]Is set equal to 1.
Otherwise, if cIdx is equal to 0 and one or more of the following conditions is true, then bS [ xD ]i][yDj]Set equal to 1:
including the sample point p0And including a sample point q0Are coded in IBC prediction mode and the absolute difference between the horizontal or vertical components of the motion vectors used for the prediction of the two coded sub-blocks is greater than or equal to 4 (in quarter of the luminance)Samples are units).
For containing a sample point p0Using the prediction of the coded sub-block of (2) and the prediction of the coded sub-block comprising the sample point q0Different reference pictures or different numbers of motion vectors of the coded sub-blocks.
Note 1-determining whether the reference pictures for the two coded sub-blocks are the same or different based only on which pictures are referenced, whether the index of reference picture list 0 or the index of reference picture list 1 is used to form the prediction, and whether the index positions in the reference picture lists are different.
Note 2-the number of predicted motion vectors for the codec sub-block of the left upper sample point overlay (xSb, ySb) is equal to PredFlagL0[ xSb ] [ ySb ] + PredFlagL1[ xSb ] [ ySb ].
A motion vector for predicting a pixel containing a sample p0A motion vector for predicting the block containing samples q0And the absolute difference between the horizontal or vertical components of the motion vectors used is greater than or equal to 4 (in units of quarter-luminance samples).
Using two motion vectors and two different reference pictures for predicting a contained sample point p0Using two motion vectors of two identical reference pictures for predicting the reference picture containing the sampling point q0And for the same reference picture, an absolute difference between horizontal or vertical components of motion vectors used for prediction of the two codec sub-blocks is greater than or equal to 4 (in units of quarter-luma samples).
Using two motion vectors of the same reference picture for prediction of a reference picture containing samples p0Using two motion vectors of the same reference picture for predicting the containing sample point q0And both of the following conditions are true:
the absolute difference between the horizontal or vertical components of the list 0 motion vectors for the predictions of the two codec sub-blocks is greater than or equal to 4 (in units of one-quarter luma samples), and the absolute difference between the horizontal or vertical components of the list 1 motion vectors for the predictions of the two codec sub-blocks is greater than or equal to 4 (in units of one-quarter luma samples).
For containing samples p0List 0 motion vector for prediction of coded sub-blocks and method for including samples q0List 1 motion vector of prediction of a codec sub-block the absolute difference between the horizontal or vertical components thereof is greater than or equal to 4 (in units of quarter luminance samples), or for inclusion of a sample p0List 1 motion vector for prediction of coded sub-blocks and method for including samples q0The absolute difference between the horizontal or vertical components of the predicted list 0 motion vectors of the codec sub-blocks of (1) is greater than or equal to 4 (in units of quarter-luma samples).
Otherwise, the variable bS [ xD ]i][yDj]Is set equal to 0.
5.13b embodiment #13b
This embodiment describes escape sampling codec and reconstruction. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
Figure BDA0003295216660000711
Figure BDA0003295216660000721
Decoding process for palette mode
The inputs to this process are:
specifying a position of an upper left luminance sample of the current block relative to an upper left luminance sample of the current picture (xCb, yCb),
the variable startComp specifying the first color component in the palette table,
a variable cIdx specifying the color component of the current block,
two variables nCbW and nCbH are specified for the width and height of the current block, respectively.
The output of this process is an array of reconstructed sample values recSamples [ x ] [ y ] specifying the block, where x is 0.
Depending on the value of cIdx, the variables nSubWidth and nSubHeight are derived as follows:
if cIdx is equal to 0, nSubWidth is set to 1 and nSubHeight is set to 1.
Otherwise, nSubWidth is set to supportdthc and nsubhight is set to subheight c.
The (nCbW x nCbH) block of reconstructed sample point array recSamples at position (xCb, yCb) is represented by recSamples [ x ] [ y ], where x is 0.. nCTbW-1 and y is 0.. nCbH-1, and the values of recSamples [ x ] [ y ] for each x in the range 0 to nCbW-1 (including 0 and nCbW-1) and each y in the range 0 to nCbH-1 (including 0 and nCbH-1) are derived as follows:
the variables xL and yL are derived as follows:
xL=palette_transpose_flagx*nSubHeight:x*nSubWidth (8-69)
yL=palette_transpose_flagy*nSubWidth:y*nSubHeight (8-70)
the variable bsiscepacaesampie is derived as follows:
if the palette indexmap [ xCb + xL ] [ yCb + yL ] is equal to MaxPaletteIndex and the palette _ escape _ val _ present _ flag is equal to 1, the bsispecapesample is set equal to 1.
Otherwise, bsisceracapisample is set equal to 0.
If bIsEsCapeSample is equal to 0, the following applies:
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]](8-71)
otherwise, if cu _ transquant _ bypass _ flag is equal to 1, the following applies:
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL] (8-72)
otherwise (bsispecepassasample equal to 1 and cu _ transquant _ bypass _ flag equal to 0), the following ordered steps will apply:
the quantization parameter derivation process specified in section 8.7.1 is invoked with a position (xCb, yCb) specifying the top-left sample of the current block relative to the top-left sample of the current picture.
The quantization parameter qP is derived as follows:
if the cIdx is equal to 0,
qP=Max(0,Qp′Y) (8-73)
otherwise, if cIdx is equal to 1,
qP=Max(0,Qp′Cb) (8-74)
otherwise (cIdx equals 2),
qP=Max(0,Qp′Cr) (8-75)
the variable bitDepth is derived as follows:
bitDepth=(cIdx==0)?BitDepthY:BitDepthC (8-76)
[ [ list levelScale [ ] is designated levelScale [ k ] ═ {40, 45, 51, 57, 64, 72}, where k is 0.. 5. ]]
The following applies:
[[tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-77)
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal)(8-78)]]
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]) (8-78)
when one of the following conditions is satisfied:
cIdx equals 0 and numcopies equals 1;
cIdx equals 3;
the variables predictorpalettesesize [ startComp ] and array predictorpaletteeentries are derived or modified as follows:
Figure BDA0003295216660000741
the requirement for bitstream conformance is that the value of predictorpplettesize [ startComp ] should be in the range of 0 to plettemaxpredictorsize (including 0 and plettemaxpredictorsize).
5.14 example #14
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
8.4.5.3 palette mode decoding process
The inputs to this process are:
-specifying a position of an upper left luminance sample of the current block relative to an upper left luminance sample of the current picture (xCb, yCb),
-a variable startComp specifying a first color component in the palette table,
a variable cIdx specifying the color component of the current block,
two variables nCbW and nCbH specifying the width and height, respectively, of the current block.
The output of this process is an array of reconstructed sample values recSamples [ x ] [ y ] specifying the block, where x is 0.
Depending on the value of cIdx, the variables nSubWidth and nSubHeight are derived as follows:
-if cIdx equals 0, then nSubWidth is set to 1 and nsubhight is set to 1.
-otherwise, nSubWidth is set to susbtidthc and nsubhight is set to SubHeightC.
The (nCbW x nCbH) block of reconstructed sample point array recSamples at position (xCb, yCb) is represented by recSamples [ x ] [ y ], where x is 0.. nCTbW-1 and y is 0.. nCbH-1, and the values of recSamples [ x ] [ y ] for each x in the range 0 to nCbW-1 (including 0 and nCbW-1) and each y in the range 0 to nCbH-1 (including 0 and nCbH-1) are derived as follows:
the variables xL and yL are derived as follows:
xL=palette_transpose_flagx*nSubHeight:x*nSubWidth (8-234)
yL=palette_transpose_flagy*nSubWidth:y*nSubHeight (8-235)
the variable bsiscepacaesampie is derived as follows:
-if palette indexmap [ xCb + xL ] [ yCb + yL ] equals MaxPaletteIndex and palette _ escape _ val _ present _ flag equals 1, setting bsispecapesample equal to 1.
-otherwise, setting bsiscecapesample equal to 0.
-if bsiscepacesample is equal to 0, the following applies:
recSamples[x][y]=CurrentPaletteEntries[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (8-236)
otherwise, if cu _ transquant _ bypass _ flag is equal to 1, the following applies:
recSamples[x][y]=PaletteEscapeVal[cIdx][xCb+xL][yCb+yL] (8-237)
else (bsispecepassample equal to 1 and cu _ transquant _ bypass _ flag equal to 0), the following ordered steps apply:
1. the quantization parameter derivation process specified in section 8.7.1 is invoked with a position (xCb, yCb) specifying the top-left sample of the current block relative to the top-left sample of the current picture.
[ Ed. (BB): the QP is already derived at the start of the intra CU decoding process, so it does not need to be derived again in this sub-clause. Although similar to HEVC v4 SCC, i believe that this redundancy can be eliminated. Please confirm. ]
2. The quantization parameter qP is derived as follows:
-if cIdx is equal to 0,
qP=Max(QpPrimeTsMin,Qp′Y) (8-238)
else, if cIdx is equal to 1,
qP=Max(QpPrimeTsMin,Qp′Cb) (8-239)
else (cIdx equals 2),
qP=Max(QpPrimeTsMin,Qp′Cr) (8-240)
where min _ qp _ prime _ ts _ minus4 specifies the minimum allowed quantization parameter for the transform skip mode, as follows:
QpPrimeTsMin=4+min_qp_prime_ts_minus4
3. the variable bitDepth is derived as follows:
bitDepth=(cIdx==0)?BitDepthY:BitDepthC (8-241)
4. the list levelScale [ ] is designated levelScale [ k ] = {40, 45, 51, 57, 64, 72}, where k ═ 0.. 5.
[ Ed. (BB): for a non-palette CU, levelScale depends on rectnottsflag, which should also be applied here? ]
5. The following applies:
tmpVal=(PaletteEscapeVal[cIdx][xCb+xL][yCb+yL]*levelScale[qP%6])<<(qP/6)+32)>>6 (8-242)
recSamples[x][y]=Clip3(0,(1<<bitDepth)-1,tmpVal) (8-243)
when one of the following conditions is true:
-cIdx equals 0 and numComps equals 1;
-cIdx equals 3;
the variables predictorpalettesesize [ startComp ] and array predictorpaletteeentries are derived or modified as follows:
Figure BDA0003295216660000771
the requirement for bitstream conformance is that the value of predictorpplettesize [ startComp ] should be in the range of 0 to plettemaxpredictorsize (including 0 and plettemaxpredictorsize).
5.15 example 15
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
8.4.2 derivation of luma Intra prediction modes
-else (skip _ intra _ flag [ xPb ] [ yPb ] and DimFlag [ xPb ] [ yPb ] both equal to 0), IntraPredModey [ xPb ] [ yPb ] is derived by the following ordered steps:
1. adjacent positions (xNbA, yNbA) and (xNbB, yNbB) are set equal to (xpB-1, yPb) and (xpB, yPb-1), respectively.
2. For X replaced by a or B, the variable candlntrapredmodex is derived as follows:
■ -call the availability derivation process of the block in z-scan order specified in section 6.4.1 with the position (xCurr, yCurr) set equal to (xPb, yPb), the adjacent position (xNbY, yNbY) set equal to (xNbX, yNbX) as input, and assign the output value to availableX.
■ -candidate intra prediction mode candlntrapredmodex is derived as follows:
■ -if availableX equals FALSE, CandIntrPredModex is set equal to INTRA _ DC.
■ [ -otherwise, if CuPredMode [ xNbX ] [ yNbX ] is not equal to MODE _ INTRA or pcm _ flag [ xNbX ] [ yNbX ] is equal to 1 or, CandIntrPredModex is set equal to INTRA _ DC ]
■ -otherwise, if CuPredMode [ xNbX ] [ yNbX ] is not equal to MODE _ INTRA, pcm _ flag [ xNbX ] [ yNbX ] is equal to 1 or palette _ MODE _ flag is equal to 1, candIntrPredModex is set equal to INTRA _ DC,
■ -otherwise, if X is equal to B and yPb-1 is less than ((yPb > > CtbLog2SizeY) < < CtbLog2SizeY), CandIntraPredModeB is set equal to INTRA _ DC.
■ -otherwise, if IntraPredModey [ xNbX ] [ yNbX ] is greater than 34, CandIntrPredModex is set equal to INTRA _ DC.
5.16 example #16
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
8.4.2 derivation of luma Intra prediction modes
The inputs to this process are:
-specifying a luminance position of a top left sample of the current luminance codec block relative to a top left luminance sample of the current picture (xCb, yCb),
a variable cbWidth specifying the width of the current codec block in the luminance samples,
a variable cbHeight specifying the height of the current codec block in the luminance samples.
In this process, the luma intra prediction mode IntraPredModey [ xCb ] [ yCb ] is derived.
1. For X replaced by a or B, the variable candlntrapredmodex is derived as follows:
-invoking section 6.4.X [ Ed. (BB) with as input a position (xCurr, yCurr) set equal to (xCb, yCb) and an adjacent position (xNbY, yNbY) set equal to (xNbX, yNbX): neighboring block availability check process pending to be determined ], and assigns the output to availableX.
The candidate intra prediction mode candlntrapredmodex is derived as follows:
-setting candlntrapredmodex equal to INTRA _ plan if one or more of the following conditions is true.
The variable availableX is equal to FALSE.
-CuPredMode [ xNbX ] [ yNbX ] is not equal to MODE _ INTRA.
-pred _ mode _ plt _ flag equal to 1.
Intra _ mip _ flag [ xNbX ] [ yNbX ] equals 1.
-X is equal to B and yCb-1 is less than ((yCb > > CtbLog2SizeY) < < CtbLog2 SizeY).
-otherwise, candIntraPredModeX is set equal to IntraPredModeY [ xNbX ] [ yNbX ].
The variable IntraPredModeY [ x ] [ y ] (where x ═ xcb.. xCb + cbWidth-1 and y ═ ycb.. yCb + cbHeight-1) is set equal to IntraPredModeY [ xCb ] [ yCb ].
5.17 example #17
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
8.4.3 derivation of luma Intra prediction modes
The inputs to this process are:
-specifying a luminance position of a top left sample of the current luminance codec block relative to a top left luminance sample of the current picture (xCb, yCb),
a variable cbWidth specifying the width of the current codec block in the luminance samples,
a variable cbHeight specifying the height of the current codec block in the luminance samples.
In this process, the luma intra prediction mode IntraPredModey [ xCb ] [ yCb ] is derived.
2. For X replaced by a or B, the variable candlntrapredmodex is derived as follows:
-invoking section 6.4.X [ Ed. (BB) with position (xCurr, yCurr) set to (xCb, yCb) and adjacent position (xNbY, yNbY) set equal to (xNbX, yNbX) as input: neighboring block availability check procedure pending ], and assigns the output to availableX.
The candidate intra prediction mode candlntrapredmodex is derived as follows:
-setting candlntrapredmodex equal to [ [ INTRA _ plan ] ] INTRA _ DC if one or more of the following conditions is true.
The variable availableX is equal to FALSE.
-CuPredMode [ xNbX ] [ yNbX ] is not equal to MODE _ INTRA.
Intra _ mip _ flag [ xNbX ] [ yNbX ] equals 1.
-X is equal to B and yCb-1 is less than ((yCb > > CtbLog2SizeY) < < CtbLog2 SizeY).
-otherwise, candIntraPredModeX is set equal to IntraPredModeY [ xNbX ] [ yNbX ].
The variable IntraPredModeY [ x ] [ y ] (where x ═ xcb.. xCb + cbWidth-1 and y ═ ycb.. yCb + cbHeight-1) is set equal to IntraPredModeY [ xCb ] [ yCb ].
5.18 example #18
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
8.4.3 derivation of luma Intra prediction modes
The inputs to this process are:
-specifying a luminance position of a top left sample of the current luminance codec block relative to a top left luminance sample of the current picture (xCb, yCb),
a variable cbWidth specifying the width of the current codec block in the luminance samples,
a variable cbHeight specifying the height of the current codec block in the luminance samples.
In this process, the luma intra prediction mode IntraPredModey [ xCb ] [ yCb ] is derived.
3. For X replaced by a or B, the variable candlntrapredmodex is derived as follows:
-invoking section 6.4.X [ Ed. (BB) with as input a position (xCurr, yCurr) set equal to (xCb, yCb) and an adjacent position (xNbY, yNbY) set equal to (xNbX, yNbX): neighboring block availability check procedure pending ], and assigns the output to availableX.
The candidate intra prediction mode candlntrapredmodex is derived as follows:
-setting candlntrapredmodex equal to [ [ INTRA _ plan ] ] INTRA _ DC if one or more of the following conditions is true.
The variable availableX is equal to FALSE.
-CuPredMode [ xNbX ] [ yNbX ] is not equal to MODE _ INTRA.
Intra _ mip _ flag [ xNbX ] [ yNbX ] equals 1.
-pred _ mode _ plt _ flag equal to 1.
-X is equal to B and yCb-1 is less than ((yCb > > CtbLog2SizeY) < < CtbLog2 SizeY).
-otherwise, candIntraPredModeX is set equal to IntraPredModeY [ xNbX ] [ yNbX ].
The variable IntraPredModeY [ x ] [ y ] (where x ═ xcb.. xCb + cbWidth-1 and y ═ ycb.. yCb + cbHeight-1) is set equal to IntraPredModeY [ xCb ] [ yCb ].
5.19 example #19
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
Figure BDA0003295216660000811
Figure BDA0003295216660000821
5.20 example #20
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
Figure BDA0003295216660000831
Figure BDA0003295216660000841
5.21 example #21
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
Figure BDA0003295216660000842
Figure BDA0003295216660000851
5.22 example #22
This embodiment describes the codec unit syntax. In this embodiment, pred _ mode _ plt _ flag is signaled after pred _ mode _ ibc _ flag. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000861
Figure BDA0003295216660000871
5.23 example #23
Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
Figure BDA0003295216660000872
Figure BDA0003295216660000881
Figure BDA0003295216660000891
5.24 example #24
This embodiment describes the codec unit syntax. In this embodiment, pred _ mode _ plt _ flag is signaled after pred _ mode _ ibc _ flag. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000892
Figure BDA0003295216660000901
Figure BDA0003295216660000911
5.25 example #25
This embodiment describes the codec unit syntax. In this embodiment, if the current prediction MODE is MODE _ PLT, the palette syntax is signaled. Newly added text is displayed in italics with bold and deleted text is marked with "[ ] ]".
7.3.7.5 codec Unit syntax
Figure BDA0003295216660000912
Figure BDA0003295216660000921
Figure BDA0003295216660000931
5.26 example #26
This embodiment describes the derivation process of the chroma intra prediction mode. The newly added text is shown in italics and bold.
Derivation process of chroma intra prediction mode
The inputs to this process are:
-specifying a luma position of top left samples of the current chroma codec block relative to top left luma samples of the current picture (xCb, yCb),
a variable cbWidth specifying the width of the current codec block in the luminance samples,
a variable cbHeight specifying the height of the current codec block in the luminance samples.
In this process, the chroma intra prediction mode IntraPredModeC [ xCb ] [ yCb ] is derived.
The corresponding luma intra predmode is derived as:
-if INTRA _ mip _ flag [ xCb ] [ yCb ] is equal to 1, set lumaIntraPredMode equal to INTRA _ PLANAR.
Else, if CuPredMode [0] [ xCb ] [ yCb ] is equal to MODE _ IBC or MODE _ PLT, the lumaIntraPredMode is set equal to INTRA _ DC.
Else, the lumaIntraPredMode is set equal to IntraPredModey [ xCb + cbWidth/2] [ yCb + cbHeight/2 ].
5.27 example #27
This embodiment describes a picture reconstruction process with a luminance sample point mapping process. The newly added text is shown in italics and bold.
And (4) reconstructing the picture with a brightness sample point mapping process. The inputs to this process are:
-the position of the upper left sample of the current block relative to the upper left sample of the current picture (xCyrr, yCurr),
a variable nCurrSw specifying the width of the block,
-a variable nCurrSh specifying the height of the block,
an (nCurrSw) x (nCurrSh) array predSamples specifying luma prediction samples for the current block,
an (nCurrSw) x (ncurrsh) array resSamples that specifies the luma residual samples for the current block.
The output of this process is the reconstructed luminance image sample array recSamples.
The (nCurrSw) x (ncurrsh) array of mapped predicted luma samples predMapSamples is derived as follows:
-setting predmapsampies [ i ] [ j ] equal to predSamples [ i ] [ j ] for i 0.. nCurrSh-1 if one of the following conditions is true.
CuPredMode [0] [ xCyrr ] [ yCurr ] equals MODE _ INTRA.
CuPredMode [0] [ xCyrr ] [ yCurr ] equals MODE _ IBC.
CuPredMode [0] [ xCyrr ] [ yCurr ] equals MODE _ PLT.
CuPredMode [0] [ xCyrr ] [ yCurr ] equal to MODE _ INTER, ciip _ flag [ xCyrr ] [ yCurr ] equal to 1.
Else (CuPredMode [0] [ xCyrr ] [ yCurr ] equal to MODE _ INTER and ciip _ flag [ xCyrr ] [ yCurr ] equal to 0), the following applies:
5.28 example #28
This embodiment describes an example scan order corresponding to example 24 in section 4.
The inputs to the process are the block width, blkWidth, and the block height, blkhight.
The outputs of this process are the arrays hReverScan [ sPos ] [ sComp ] and vReverScan [ sPos ] [ sComp ]. Array hReverScan represents the horizontal reverse scan order and array vReverScan represents the vertical reverse scan order. The array index sPos specifies the scan positions, ranging from 0 to (blkWidth blkhight) -1 (containing 0 and (blkWidth blkhight) -1). The array index sComp equal to 0 specifies the horizontal component and the array index sComp equal to 1 specifies the vertical component. Depending on the values of blkWidth and blkhight, the arrays hTravScan and vTravScan are derived as follows:
Figure BDA0003295216660000951
Figure BDA0003295216660000961
fig. 6 is a block diagram of a video processing apparatus 600. Apparatus 600 may be used to implement one or more of the methods described herein. The apparatus 600 may be embodied in a smartphone, tablet, computer, internet of things (IoT) receiver, and/or the like. The apparatus 600 may include one or more processors 602, one or more memories 604, and video processing hardware 606. The processor 602 may be configured to implement one or more of the methods described herein. The memory(s) 604 may be used for storing data and code for implementing the methods and techniques described herein. The video processing hardware 606 may be used to implement some of the techniques described in this document in hardware circuits.
Fig. 8 is a flow diagram of a method 800 for processing video. The method 800 comprises determining (805) that a palette mode is to be used for processing a transform unit, a codec block, or a region, the use of the palette mode being coded separately from a prediction mode, and performing (810) further processing of the transform unit, the codec block, or the region using the palette mode.
Some examples of palette mode codecs and their use are described in section 4 of this document, with reference to method 800.
Referring to method 800, a video block may be encoded in a video bitstream, where bit efficiency may be achieved by using bitstream generation rules related to palette mode coding.
The method may include wherein the prediction mode is coded prior to indicating use of the palette mode.
The method may include wherein the use of the palette mode is conditionally signaled based on the prediction mode.
The method may include wherein the prediction mode is an intra block copy mode and the signaling of the indication of the use of the palette mode is skipped.
The method may include wherein the indication of the use of the palette mode is determined to be false (false) based on the current prediction mode being an intra block copy mode.
The method may include wherein the prediction mode is an inter mode and signaling of an indication of use of the palette mode is skipped.
The method may include wherein the indication of use of the palette mode is determined to be false based on the current prediction mode being an inter mode.
The method may include wherein the prediction mode is intra mode and signaling of the indication of use of the palette mode is skipped.
The method may include wherein the indication of use of the palette mode is determined to be false based on the current prediction mode being an intra mode.
The method may include wherein the prediction mode is intra mode and signaling of the indication of use of the palette mode is skipped.
The method may comprise wherein the prediction mode is an intra block copy mode and signalling of an indication of use of the palette mode is performed.
The method may include wherein the indication of the use of the palette mode is signaled based on a picture, slice, or slice group type.
The method may comprise wherein the palette mode is added as a candidate for the prediction mode.
The method may include wherein the prediction mode includes one or more of: intra mode, intra block copy mode, or palette mode for intra slices, inter slices, I pictures, P pictures, B pictures, or intra slice groups.
The method may include wherein the prediction modes include two or more of: intra mode, inter mode, intra block copy mode, or palette mode.
The method may include wherein the use of the palette mode is indicated via signaling or derived based on a condition.
The method may include, wherein the conditions include one or more of: a block size of the current block, a prediction mode of the current block, a Quantization Parameter (QP) of the current block, a palette flag of a neighboring block, an intra block copy flag of a neighboring block, an indication of a color format, a single or dual coding tree structure or a slice type or a group type or a picture type.
The method may include wherein the signaling or deriving of the use of the palette mode is based on a slice level flag, a slice group level flag, or a picture level flag.
The method may include wherein the indication of the use of intra block copy mode is signaled or derived based on a slice level flag, a slice group level flag, or a picture level flag.
With reference to items 6 to 9 disclosed in the previous section, some embodiments may preferably use the following solutions.
A solution may include a method of video processing, the method comprising: performing a transition between a current video block of a picture of the video and a bitstream representation of the video, wherein in the transition, information about whether an intra block copy mode is used in the transition is signaled in the bitstream representation or derived based on codec conditions of the current video block; wherein the intra block copy mode comprises coding a current video block from another video block in the picture. The following features may be implemented in various embodiments:
-wherein the codec condition comprises a block size of the current video block.
-wherein the codec condition comprises a prediction mode of the current video block or a quantization parameter used in the conversion of the current video block.
With reference to items 13 to 15 disclosed in the previous section, some embodiments may preferably implement the following solution.
The solution may include a method for determining whether a deblocking filter is to be applied during conversion of a current video block of a picture of video, wherein the current video block is coded using palette mode coding, wherein the current video block is represented using representative sample values that are less than a total pixels of the current video block; and in a case where it is determined that the deblocking filter is to be applied, performing conversion so that the deblocking filter is applied.
Another solution may include a method of video processing, comprising determining to use a quantization or inverse quantization process during transitions between a current video block of a picture of video and a bitstream representation of the video, wherein the current video block is coded using palette mode coding, wherein the current video block is represented using representative sample point values that are less than a total pixels of the current video block; and performing a transformation based on the determined quantization or inverse quantization process. Other features may include:
-wherein the quantization or inverse quantization process determined for the current video block is different from another quantization or inverse quantization process applied to another video block coded differently from the palette coding mode.
-wherein the converting comprises encoding the current video block into a bitstream representation.
-wherein the converting comprises decoding the bitstream representation to generate a current video block of the video.
-wherein the determination uses the same decision process as another decision process for the conversion of another video block for intra-coding.
It will be appreciated that the disclosed techniques may be embodied in a video encoder or decoder to improve compression efficiency using an enhanced codec tree structure.
With reference to items 16 to 21 of the previous section, some solutions may be as follows:
a video processing method, comprising: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; performing a list construction process of a most probable mode by regarding the current video block as an intra-coded block based on the determination, and performing conversion based on a result of the list construction process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
The above method, wherein the list construction process treats the neighboring palette coded blocks as intra blocks with default mode.
A video processing method, comprising: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; based on the determination, performing a list construction process of a most probable mode by treating the current video block as a non-intra-coded block, and performing conversion based on a result of the list construction process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
The above method, wherein when acquiring the intra mode of the neighboring palette coded block, the list construction process regards the neighboring palette coded block as an inter coded block.
A video processing method, comprising: determining, for a transition between a current video block of a video comprising a plurality of video blocks and a bitstream representation of the video, that the current video block is a palette codec block; based on the determination, performing a list building process by treating the current video block as an unavailable block, and performing a conversion based on a result of the list building process; wherein a palette or a block representing a sample value pair is used for encoding or decoding the palette.
The above method wherein the list building process is used for history based motion vector prediction.
The above method wherein the list construction process is for MERGE or advanced motion vector prediction mode.
The method above wherein the determining further comprises determining based on content of the video.
The above method, wherein the determining corresponds to a field in the bitstream representation.
A method of video processing, comprising: determining, during a transition between a current video block and a bitstream representation of the current video block, that the current video block is a palette coded block, determining, based on the current video block being determined to be a palette coded block, a range of bits for a context codec of the transition; and performing a conversion according to the range of bits of the context codec.
The above method wherein, during the converting, the bits of the current video block that fall outside the range are either coded using a bypass coding technique or decoded using a bypass decoding technique.
The above method wherein the converting comprises encoding the video into a bitstream representation.
The above method wherein converting comprises decoding the bitstream representation to generate the video.
Fig. 24 is a block diagram illustrating an example video processing system 2400 in which various techniques disclosed herein may be implemented. Various implementations may include some or all of the components of system 2400. System 2400 can include an input 2402 for receiving video content. The video content may be received in a raw or uncompressed format (e.g., 8 or 10 bit multi-component pixel values), or may be received in a compressed or encoded format. Input 1902 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces (such as ethernet, Passive Optical Network (PON), etc.) and wireless interfaces (such as Wi-Fi or cellular interfaces).
System 2400 can include a codec component 2404 that can implement various codecs or encoding methods described herein. The codec component 2404 may reduce the average bit rate of the video from the input 2402 to the output of the codec component 2404 to produce a codec representation of the video. Thus, codec techniques are sometimes referred to as video compression or video transcoding techniques. The output of codec component 2404 may be stored or transmitted via a connected communication, as represented by component 2406. A stored or transmitted bitstream (or codec) representation of the video received at input 2402 can be used by component 2408 to generate pixel values or displayable video that is sent to display interface 2410. The process of generating user-visible video from a bitstream representation is sometimes referred to as video decompression. Further, while certain video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at the encoder and the corresponding decoding tools or operations that reverse the codec results will be performed by the encoder.
Examples of a peripheral bus interface or display interface may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Displayport, among others. Examples of storage interfaces include SATA (serial advanced technology attachment), PCI, IDE interfaces, and the like. The techniques described herein may be embodied in various electronic devices such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and/or video display.
Fig. 25 is a flow diagram of a method 2500 for video processing in accordance with the present technology. The method 2500 includes, at operation 2510, performing a conversion between a block of a video region of a video and a bitstream representation of the video. The bitstream representation is processed according to a first format rule specifying whether the block is signaled with a first indication of use of the palette mode and a second format rule specifying a position of the first indication relative to a second indication of use of the prediction mode of the block.
In some embodiments, the video region comprises a transform unit, a codec unit, a prediction unit, or a region of video. In some embodiments, the second indication of use of the prediction mode is placed before the first indication of use of the palette mode in the bitstream representation.
In some embodiments, the first indication of use of the palette mode is conditionally included in the bitstream representation based on the second indication of use of the prediction mode. In some embodiments, where the second indication of use of the prediction mode indicates an Intra Block Copy (IBC) prediction mode, the first indication of use of the palette mode is skipped in the bitstream representation. In some embodiments, where the second indication of use of the prediction mode indicates an inter prediction mode, the first indication of use of the palette mode is skipped in the bitstream representation. In some embodiments, where the second indication of use of the prediction mode indicates an intra-prediction mode, the first indication of use of the palette mode is skipped in the bitstream representation. In some embodiments, where the second indication of use of the prediction mode indicates a skip mode, the first indication of use of the palette mode is skipped in the bitstream representation. In some embodiments, the first indication to skip use of the palette mode in the bitstream representation indicates that the palette mode is not used.
In some embodiments, where the second indication of use of prediction mode indicates IBC prediction mode, the first indication of use of palette mode is codec in the bitstream. In some embodiments, where the second indication of use of prediction mode indicates intra-prediction mode, the first indication of use of palette mode is coded in the bitstream. In some embodiments, the prediction mode is not a Pulse Code Modulation (PCM) mode. In some embodiments, the first indication of use of the palette mode is coded before the indication of use of the PCM mode in the bitstream representation. In some embodiments, the indication of the use of the PCM mode is skipped in the bitstream representation. In some embodiments, the indication of IBC mode is coded in the bitstream representation. In some embodiments, where intra prediction mode is used, a flag in the bitstream representation indicates whether palette mode or IBC mode is signaled in the bitstream representation. In some embodiments, the flag is skipped based on a condition of the block, the condition including a size of the block, whether IBC mode is enabled for an area associated with the block, or whether palette mode is enabled for an area associated with the block.
In some embodiments, wherein the second indication of use of the prediction mode indicates an inter prediction mode, the first indication of use of the palette mode is coded in the bitstream. In some embodiments, the first indication of use of the palette mode is coded after at least one of: an indication of a skip mode, a prediction mode, or an indication of the use of a PCM mode. In some embodiments, the first indication of use of the palette mode is codec after the indication of the skip mode or the prediction mode and the first indication of use of the palette mode is codec before the indication of use of the PCM mode.
In some embodiments, the first indication of use of the palette mode is placed before the second indication of use of the prediction mode in the bitstream representation. In some embodiments, the first indication of the use of the palette mode is placed after the second indication of the use of the prediction mode, which indicates an intra or inter prediction mode in the bitstream representation. In some embodiments, the first indication of the use of the palette mode is signaled based on a picture, slice, or slice group type. In some embodiments, the first indication of use of the palette mode comprises a first flag indicating that the palette mode is enabled for the block. In some embodiments, the first indication of the use of the palette mode is conditionally included in the bitstream representation based on a first flag indicating that the palette mode is enabled at a sequence level, a picture level, a slice level, or a slice level. In some embodiments, in case the palette mode is disabled for a block, another flag indicating the PCM mode of the block is included in the bitstream representation. In some embodiments, the first flag is context coded based on information of one or more neighboring blocks of the current block. In some embodiments, the first flag is coded without context information from one or more neighboring blocks of the current block.
In some embodiments, the second indication of use of the prediction mode comprises a second flag indicating the prediction mode. In some embodiments, where the second flag in the bitstream representation indicates that the prediction mode is inter mode, the bitstream representation further comprises a third flag indicating whether intra block copy mode is enabled. In some embodiments, where the second flag in the bitstream representation indicates that the prediction mode is intra mode, the bitstream representation further comprises a third flag indicating whether intra block copy mode is enabled. In some embodiments, the third flag is conditionally included in the bitstream representation based on the size of the block.
In some embodiments, the block is a codec unit, and wherein the second flag in the bitstream representation indicates that the prediction mode is intra mode. In some embodiments, the first flag is conditionally included in the bitstream representation based on a size of the block.
Fig. 26 is a flow diagram of a method 2600 for video processing in accordance with the present technology. The method 2600 includes, at operation 2610, determining a prediction mode based on one or more allowed prediction modes including at least a palette mode for the block for a transition between the block for the video region in the video and a bitstream representation of the video. An indication of the use of the palette mode is determined based on the prediction mode. The method 2600 includes, at operation 2620, performing a conversion based on the determination.
In some embodiments, the one or more allowed prediction modes include intra-mode. In some embodiments, the one or more allowed prediction modes include an Intra Block Copy (IBC) mode. In some embodiments, the one or more allowed prediction modes include inter modes.
In some embodiments, the video region comprises an intra slice, an intra picture, or an intra slice group. In some embodiments, the one or more allowed prediction modes include intra mode, intra block copy mode, and palette mode.
In some embodiments, the video region comprises an inter slice, an inter picture, an inter slice group, a P slice, a B slice, a P picture, or a B picture. In some embodiments, the one or more allowed prediction modes include intra mode, intra block copy mode, palette mode, and inter mode.
In some embodiments, the blocks have a size of 4x 4. In some embodiments, where the block has a size of 4x4, the one or more allowed prediction modes do not include inter modes.
In some embodiments, the bitstream representation comprises at least a prediction mode index representing one or more allowed prediction modes without encoding the block in the skip mode, wherein the prediction mode index is represented using one or more binary bits.
In some embodiments, the prediction mode index is represented using three binary bits, wherein a first bit value "1" indicates an intra mode, wherein a first bit value "0" and a second bit value "0" indicate an inter mode, wherein a first bit value "0", a second bit value "1", a third bit value "0" indicates an IBC mode, and wherein a first bit value "0", a second bit value "1" and a third bit value "1" indicate a palette mode.
In some embodiments, the prediction mode index is represented using two binary bits, wherein a first bit value "1" and a second bit value "0" indicate an intra mode, wherein the first bit value "0" and the second bit value "0" indicate an inter mode, wherein the first bit value "0" and the second bit value "1" indicate an IBC mode, and wherein the first bit value "1" and the second bit value "1" indicate a palette mode.
In some embodiments, in case the current slice of the video is an intra slice and IBC mode is disabled, one binary bit is used to represent the prediction mode index, the first bit value "0" indicates intra mode and the second bit value "1" indicates palette mode.
In some embodiments, in the case where the current slice of the video is not an intra slice and IBC mode is disabled, the prediction mode index is represented using two binary bits, wherein the first bit value "1" represents intra mode, wherein the first bit value "0" and the second bit value "0" indicate inter mode, and wherein the first bit value "0" and the second bit value "1" indicate palette mode. In some embodiments, in the case that the current slice of the video is an intra slice and IBC mode is enabled, the prediction mode index is represented using two binary bits, wherein a first bit value "1" indicates IBC mode, wherein first and second bit values "0" and "1" indicate palette mode, and wherein first and second bit values "0" and "0" indicate intra mode. In some embodiments, the indication of the use of IBC mode is signaled in a Sequence Parameter Set (SPS) represented by the bitstream.
In some embodiments, the prediction mode index is represented using three binary bits, wherein a first bit value "1" indicates an inter mode, wherein first and second bit values "0" and "1" indicate an intra mode, wherein first, second, and third bit values "0", 0 "and" 1 "indicate an IBC mode, and wherein first, second, and third bit values" 0 ", 0" and "0" indicate a palette mode.
In some embodiments, the prediction mode index is represented using three binary bits, wherein a first bit value "1" indicates an intra mode, wherein first and second bit values "0" and "1" indicate an inter mode, wherein first, second, and third bit values "0", 0 "and" 1 "indicate an IBC mode, and wherein first, second, and third bit values" 0 ", 0" and "0" indicate a palette mode.
In some embodiments, the prediction mode index is represented using three binary bits, wherein a first bit value "0" indicates an inter mode, wherein first and second bit values "1" and "0" indicate an intra mode, wherein first, second, and third bit values "1", 1 "and" 1 "indicate an IBC mode, and wherein first, second, and third bit values" 1 ", 1" and "0" indicate a palette mode.
In some embodiments, signaling of one of the one or more binary bits is skipped in the bitstream representation if a condition is satisfied. In some embodiments, the condition includes a size of the block. In some embodiments, the conditions include: the prediction mode is disabled and wherein binary bits corresponding to the prediction mode are skipped in the bitstream representation.
Fig. 27 is a flow diagram of a method 2700 for video processing in accordance with the present technology. The method 2700 includes, in operation 2710, performing a conversion between a block of video and a bitstream representation of the video. The bitstream representation is processed according to a format rule specifying a first indication of use of a palette mode and a second indication of use of an Intra Block Copy (IBC) mode signaled interdependently with each other.
In some embodiments, the format rule specifies signaling a first indication in the bitstream representation in case the prediction mode of the block is equal to a first prediction mode that is not an IBC mode. In some embodiments, the format rule specifies signaling the second indication in the bitstream representation in case the prediction mode of the block is equal to the first prediction mode which is not the palette mode. In some embodiments, the first prediction mode is an intra mode.
Fig. 28 is a flow diagram of a method 2800 for video processing in accordance with the present technology. The method 2800 includes, at operation 2810, determining, for a transition between a block of video and a bitstream representation of the video, a presence of an indication of use of a palette mode in the bitstream representation based on a size of the block. The method 2800 includes, at operation 2820, performing a conversion based on the determination.
Fig. 29 is a flow diagram of a method 2900 for video processing, in accordance with the present technology. The method 2900 includes, at operation 2910, determining, for a transition between a block of video and a bitstream representation of the video, a presence of an indication of use of an Intra Block Copy (IBC) mode in the bitstream representation based on a size of the block. The method 2900 includes, at operation 2920, performing a transition based on the determination. In some embodiments, the size of the block comprises at least one of: the number of samples in a block, the width of a block, or the height of a block.
In some embodiments, the indication is signaled in the bitstream representation in case the width of the block is equal to or less than a threshold. In some embodiments, the indication is signaled in the bitstream representation in case the height of the block is equal to or less than a threshold. In some embodiments, the threshold is 64.
In some embodiments, the indication is signaled in the bitstream representation in case the width and height of the block are larger than a threshold. In some embodiments, the threshold is 4. In some embodiments, the indication is signaled in the bitstream representation in case the number of samples in the block is greater than a threshold. In some embodiments, the threshold is 16. In some embodiments, the indication is signaled in the bitstream representation in case the width of the block is equal to the height of the block.
In some embodiments, there is no indication in the bitstream representation in the following cases: (1) a width of the block is greater than a first threshold, (2) a height of the block is greater than a second threshold, or (3) a number of samples in the block is equal to or less than a third threshold. In some embodiments, the first and second thresholds are 64. In some embodiments, wherein the third threshold is 16.
In some embodiments, the determination is further based on characteristics associated with the block. In some embodiments, the characteristic comprises a prediction mode of the block. In some embodiments, the characteristic comprises a quantization parameter of the block. In some embodiments, the characteristic comprises a palette flag of a neighboring block of the block. In some embodiments, the characteristic comprises an IBC flag of a neighboring block of the block. In some embodiments, the characteristic comprises an indication of a color format of the block. In some embodiments, the characteristics include a coding tree structure of the blocks. In some embodiments, the characteristics include a slice group type, or a picture type of the block.
Fig. 30 is a flow diagram of a method 3000 for video processing in accordance with the present technology. The method 3000 includes, at operation 3010, determining, for a transition between a block of the video and a bitstream representation of the video, whether the block allows the palette mode based on a second indication of a region of the video containing the block. The method 3000 further includes, at operation 3020, performing a conversion based on the determination.
In some embodiments, a video region comprises a slice, a slice group, or a picture. In some embodiments, where the second indication indicates that fractional motion vector difference is enabled, the bitstream representation does not include an explicit indication of whether palette mode is allowed or not. In some embodiments, the second indication is represented as a flag present in the bitstream representation. In some embodiments, the second indication indicates whether or not the palette mode is enabled for the video region. In some embodiments, where the second indication indicates that palette mode is disabled for the video region, the bitstream representation does not include an explicit indication of whether palette mode is enabled. In some embodiments, a block does not allow palette mode in the event that the bitstream representation does not include an explicit indication of whether palette mode is allowed.
Fig. 31 is a flow diagram of a method 3100 for video processing in accordance with the present technology. The method 3100 includes, at operation 3110, determining, for a transition between a block of video and a bitstream representation of the video, whether the block allows an Intra Block Copy (IBC) mode based on a second indication of a video region containing the block. The method 3100 includes, at operation 3120, performing a transformation based on the determination.
In some embodiments, a video region comprises a slice, a slice group, or a picture. In some embodiments, where the second indication indicates that fractional motion vector difference is enabled, the bitstream representation does not include an explicit indication of whether IBC mode is allowed or not. In some embodiments, the second indication is represented as a flag present in the bitstream representation. In some embodiments, the second indication indicates whether IBC mode is enabled for the video region. In some embodiments, where the second indication indicates that IBC mode is disabled for the video region, the bitstream representation does not include an explicit indication of whether IBC mode is enabled. In some embodiments, where the bitstream representation does not include an explicit indication of whether IBC mode is allowed, the block does not allow IBC mode.
Fig. 32 is a flow diagram of a method 3200 for video processing in accordance with the present technique. The method 3200 includes, at operation 3210, determining a first bit depth of a first sample associated with a palette entry in a palette mode for a transition between a block of video and a bitstream representation of the video. The first bit depth is different from a second bit depth associated with the block. The method 3200 also includes, at operation 3220, performing a transformation based on the determination.
In some embodiments, the second bit depth comprises an internal bit depth of the block. In some embodiments, the second bit depth comprises a bit depth associated with an original sample of the block. In some embodiments, the second bit depth comprises a bit depth associated with 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 second bit depth. In some embodiments, the first bit depth is less than the second bit depth. In some embodiments, the first bit depth is determined based on a size of the block. In some embodiments, the first bit depth is determined based on a quantization parameter of the block. In some embodiments, 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 determined based on a coding tree structure of the block. In some embodiments, the first bit depth is determined based on a slice group type, or a picture type of the block.
In some embodiments, the first bit depth is determined based on the number of palette entries associated with the block. In some embodiments, the first bit depth is determined based on a number of entries in a palette predictor associated with the block. In some embodiments, the first bit depth is determined based on one or more indices of color components of the block.
In some embodiments, the second sample point is associated with another palette entry in the palette mode, the second sample point having a third bit depth different from the first bit depth. In some embodiments, the third bit depth is greater than the second bit depth. In some embodiments, the third bit depth is less than the second bit depth.
In some embodiments, a third sample of the block is reconstructed based on shifting the value of the first sample by M bits, where M is a positive integer. In some embodiments, shifting the value of the first sample point comprises left-shifting the first sample point by M bits. In some embodiments, the value of the first sample point is C, and wherein the value of the reconstructed second sample point is (C < < M) + (1< (M-1)). In some embodiments, shifting the value of the first sample point comprises right-shifting the first sample point by M bits. In some embodiments, the first sample point has a value of C, and wherein the reconstructed second sample point has a value determined based on (C + (1< (M-1)) > > M, the value being limited by a minimum value of 0 and a maximum value of (1< < N) -1. In some embodiments, M is determined based on a 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 embodiments, 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 a 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 a slice group type, or picture type of the block. In some embodiments, M is determined based on the number of palette entries associated with a block. In some embodiments, M is determined based on the number of predicted palette entries associated with the block. In some embodiments, M is determined based on the locations of the first and third samples in the block. In some embodiments, M is determined based on the index of the color component of the block.
In some embodiments, the method includes determining a first sample point associated with a palette entry based on a lookup operation performed on a table of sample points. In some embodiments, the values of the table of samples are signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice group header, a row of a Largest Coding Unit (LCU), or a LCU group represented by a bitstream. In some embodiments, the values of the table of samples are derived based on information in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice group header, a row of a Largest Coding Unit (LCU), or a group of LCUs in a bitstream representation.
In some embodiments, the translation generates the current block from a bitstream representation. In some embodiments, the transform generates a bitstream representation from the current block.
Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In an example, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of the video blocks, but does not necessarily modify the resulting bitstream based on the use of the tool or mode. That is, the conversion of the bitstream representation from the video block to the video will use the video processing tool or mode when enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, the decoder will process the bitstream based on the fact that the video processing tool or mode already knows that the bitstream has been modified. That is, the conversion from a bitstream representation of the video to video blocks will be performed using a video processing tool or mode that is enabled based on the decision or determination.
Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In an example, when a video processing tool or mode is disabled, the encoder will not use that tool or mode in the conversion of video blocks to a bitstream representation of the video. In another example, when a video processing tool or mode is disabled, the decoder will process the bitstream knowing that the bitstream has not been modified using a video processing tool or mode that is based on the decision or determination to be enabled.
The disclosed and other solutions, examples, embodiments, modules, and functional operations described in this document can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this document and their structural equivalents, or in combinations of one or more of them. The disclosed and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium for execution by, or to control the operation of, data processing apparatus. The computer readable medium can be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter effecting a machine-readable propagated signal, or a combination of one or more of them. The term "data processing apparatus" includes all apparatus, devices, and machines for processing data, including by way of example a programmable processor, a computer, or multiple processors or computers. The apparatus can include, in addition to hardware, code that creates an execution environment for the computer program in question, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them. A propagated signal is an artificially generated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, that is generated to encode information for transmission to suitable receiver apparatus.
A computer program (also known as a program, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language file), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
The processes and logic flows described in this document can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus can also be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. However, a computer need not have such devices. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
While this patent document contains many specifics, these should not be construed as limitations on the scope of any subject matter or claims, but rather as descriptions of features specific to particular embodiments of particular inventions. Certain features that are described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various functions described in the context of a single embodiment can also be implemented in multiple embodiments separately or in any suitable subcombination. Furthermore, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
Also, while operations are depicted in the drawings in a particular order, this should not be understood as requiring that such operations be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Moreover, the separation of various system components in the embodiments described herein should not be understood as requiring such separation in all embodiments.
Only a few implementations and examples have been described and other implementations, enhancements and variations can be made based on what is described and illustrated in this patent document.

Claims (44)

1. A video processing method, comprising:
for a transition between a block of a video and a bitstream representation of the video, determining a first bit depth of a first sample associated with a palette entry in a palette mode, wherein the first bit depth is different from a second bit depth associated with the block; and
performing the conversion based on the determination.
2. The method of claim 1, wherein the second bit depth comprises an internal bit depth of the block.
3. The method of claim 1, wherein the second bit depth comprises a bit depth associated with original samples of the block.
4. The method of claim 1, wherein the second bit depth comprises a bit depth associated with reconstructed samples of the block.
5. The method of any one or more of claims 1 to 4, wherein the first bit depth is a positive integer.
6. The method of claim 5, wherein the first bit depth is equal to 8.
7. The method of any one or more of claims 1-6, wherein the first bit depth is greater than the second bit depth.
8. The method of any one or more of claims 1-6, wherein the first bit depth is less than the second bit depth.
9. The method of any one or more of claims 1-8, wherein the first bit depth is determined based on a size of the block.
10. The method of any one or more of claims 1 to 9, wherein the first bit depth is determined based on a quantization parameter of the block.
11. The method of any one or more of claims 1 to 10, wherein the first bit depth is determined based on an indication of a color format of the block.
12. The method of any one or more of claims 1 to 11, wherein the first bit depth is determined based on a coding tree structure of the block.
13. The method of any one or more of claims 1 to 12, wherein the first bit depth is determined based on a slice group type, or a picture type of the block.
14. The method of any one or more of claims 1 to 13, wherein the first bit depth is determined based on a number of palette entries associated with the block.
15. The method of any one or more of claims 1-14, wherein the first bit depth is determined based on a number of entries in a palette predictor associated with the block.
16. The method of any one or more of claims 1 to 15, wherein the first bit depth is determined based on one or more indices of color components of the block.
17. A method as claimed in any one or more of claims 1 to 16, wherein a second sample point is associated with another palette entry in the palette mode, the second sample point having a third bit depth different from the first bit depth.
18. The method of claim 17, wherein the third bit depth is greater than the second bit depth.
19. The method of claim 17, wherein the third bit depth is less than the second bit depth.
20. The method of any one or more of claims 1-19, wherein a third sample of the block is reconstructed based on shifting a value of the first sample by M bits, where M is a positive integer.
21. The method of claim 20, wherein shifting the value of the first sample comprises left-shifting the first sample by M bits.
22. The method of claim 21, wherein the first samples have a value of C, and wherein the reconstructed second samples have a value of (C < < M) + (1< (M-1)).
23. The method of claim 20, wherein shifting the value of the first sample comprises right-shifting the first sample by M bits.
24. The method of claim 23, wherein the first samples have a value of C, and wherein the reconstructed second samples have values determined based on (C + (1< (M-1)) > > M, the values limited by a minimum value of 0 and a maximum value of (1< < N) -1.
25. The method of any one or more of claims 20-24, wherein M is determined based on a difference between the first bit depth and the second bit depth.
26. The method of claim 25, wherein M is equal to the second bit depth minus the first bit depth.
27. The method of claim 25, wherein M is equal to the first bit depth minus the second bit depth.
28. The method of any one or more of claims 20-27, wherein M is equal to 2.
29. The method of any one or more of claims 20 to 28, wherein M is determined based on a size of the block.
30. The method of any one or more of claims 20-29, wherein M is determined based on a quantization parameter of the block.
31. The method of any one or more of claims 20 to 30, wherein M is determined based on an indication of a color format of the block.
32. The method of any one or more of claims 20 to 31, wherein M is determined based on a coding tree structure of the block.
33. The method of any one or more of claims 20-32, wherein M is determined based on a slice group type, or a picture type of the block.
34. A method as claimed in any one or more of claims 20 to 33, wherein M is determined based on the number of palette entries associated with the block.
35. The method of any one or more of claims 20-34, wherein M is determined based on a number of predicted palette entries associated with the block.
36. The method of any one or more of claims 20 to 35, wherein M is determined based on the locations of the first and third samples in the block.
37. The method of any one or more of claims 20 to 36, wherein M is determined based on an index of a color component of the block.
38. The method of any one or more of claims 1 to 37, comprising:
determining the first sample point associated with the palette entry based on a lookup operation performed on a table of sample points.
39. The method of claim 38, wherein the table of values for samples is signaled in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice group header, a row of a Largest Coding Unit (LCU), or a group of LCUs represented by the bitstream.
40. The method of claim 38, wherein values of the table of samples are derived based on information in a Sequence Parameter Set (SPS), a Video Parameter Set (VPS), a Picture Parameter Set (PPS), a picture header, a slice group header, a row of a Largest Coding Unit (LCU), or a group of LCUs in a bitstream representation.
41. The method of any one or more of claims 1 to 40, wherein the converting generates the current block from the bitstream representation.
42. The method of any one or more of claims 1 to 40, wherein the transforming generates the bitstream representation from the current block.
43. A video processing apparatus comprising a processor configured to implement the method of any one or more of claims 1 to 42.
44. A computer readable medium having code stored thereon, which when executed, causes a processor to implement the method of any one or more of claims 1 to 42.
CN202080027631.6A 2019-04-09 2020-04-09 Entry structure for palette mode coding Active CN113678448B (en)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
CN2019081863 2019-04-09
CNPCT/CN2019/081863 2019-04-09
CN2019096933 2019-07-20
CNPCT/CN2019/096933 2019-07-20
CN2019097288 2019-07-23
CNPCT/CN2019/097288 2019-07-23
CN2019098204 2019-07-29
CNPCT/CN2019/098204 2019-07-29
PCT/CN2020/083887 WO2020207421A1 (en) 2019-04-09 2020-04-09 Entry construction for palette mode coding

Publications (2)

Publication Number Publication Date
CN113678448A true CN113678448A (en) 2021-11-19
CN113678448B CN113678448B (en) 2024-06-25

Family

ID=72750957

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080027631.6A Active CN113678448B (en) 2019-04-09 2020-04-09 Entry structure for palette mode coding

Country Status (2)

Country Link
CN (1) CN113678448B (en)
WO (1) WO2020207421A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4264943A1 (en) * 2021-02-09 2023-10-25 Google LLC Palette mode coding with designated bit depth precision

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104853211A (en) * 2014-02-16 2015-08-19 上海天荷电子信息有限公司 Image compression method and apparatus employing various forms of reference pixel storage spaces
US20150358631A1 (en) * 2014-06-04 2015-12-10 Qualcomm Incorporated Block adaptive color-space conversion coding
US20160105676A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Palette run hiding in palette-based video coding
WO2016074627A1 (en) * 2014-11-12 2016-05-19 Mediatek Inc. Methods of escape pixel coding in index map coding
US20160234498A1 (en) * 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
US20160345030A1 (en) * 2015-05-21 2016-11-24 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
CN106464875A (en) * 2014-06-20 2017-02-22 高通股份有限公司 Copy from previous rows for palette mode coding
US20170078683A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US20170085891A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding
CN107005717A (en) * 2014-11-12 2017-08-01 寰发股份有限公司 Pixel decoding method is jumped out in index mapping encoding and decoding
CN107409227A (en) * 2015-03-20 2017-11-28 联发科技(新加坡)私人有限公司 The palette coding method of inter prediction is used in Video coding
US20180041757A1 (en) * 2015-02-17 2018-02-08 Hfi Innovation Inc. Method and Apparatus for Palette Coding of Monochrome Contents in Video and Image Compression
US20180160129A1 (en) * 2015-06-18 2018-06-07 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016115728A1 (en) * 2015-01-23 2016-07-28 Mediatek Singapore Pte. Ltd. Improved escape value coding methods
WO2017063168A1 (en) * 2015-10-15 2017-04-20 富士通株式会社 Image coding method and apparatus, and image processing device

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104853211A (en) * 2014-02-16 2015-08-19 上海天荷电子信息有限公司 Image compression method and apparatus employing various forms of reference pixel storage spaces
US20150358631A1 (en) * 2014-06-04 2015-12-10 Qualcomm Incorporated Block adaptive color-space conversion coding
CN106464875A (en) * 2014-06-20 2017-02-22 高通股份有限公司 Copy from previous rows for palette mode coding
US20160105676A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Palette run hiding in palette-based video coding
WO2016074627A1 (en) * 2014-11-12 2016-05-19 Mediatek Inc. Methods of escape pixel coding in index map coding
CN107005717A (en) * 2014-11-12 2017-08-01 寰发股份有限公司 Pixel decoding method is jumped out in index mapping encoding and decoding
US20160234498A1 (en) * 2015-02-05 2016-08-11 Sharp Laboratories Of America, Inc. Methods and systems for palette table coding
US20180041757A1 (en) * 2015-02-17 2018-02-08 Hfi Innovation Inc. Method and Apparatus for Palette Coding of Monochrome Contents in Video and Image Compression
CN107409227A (en) * 2015-03-20 2017-11-28 联发科技(新加坡)私人有限公司 The palette coding method of inter prediction is used in Video coding
US20160345030A1 (en) * 2015-05-21 2016-11-24 Qualcomm Incorporated Grouping palette index at the end and index coding using palette size and run value
US20180160129A1 (en) * 2015-06-18 2018-06-07 Gurulogic Microsystems Oy Encoder, decoder and method employing palette utilization and compression
US20170078683A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Palette predictor initialization and merge for video coding
US20170085891A1 (en) * 2015-09-18 2017-03-23 Qualcomm Incorporated Restriction of escape pixel signaled values in palette mode video coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JIZHENG XU, LI ZHANG, KAI ZHANG, HONGBIN LIU, YUE WANG: "Non-CE8: On IBC reference buffer design", JOINT VIDEO EXPERTS TEAM (JVET)OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19–27 MARCH 2019, JVET-N0472_V2, pages 1 - 2 *
WEIJIA ZHU, JIZHENG XU, LI ZHANG, KAI ZHANG, HONGBIN LIU, YUE WANG: "CE8-related: Compound Palette Mode", JOINT VIDEO EXPERTS TEAM (JVET)OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11 14TH MEETING: GENEVA, CH, 19–27 MARCH 2019,JVET-N0259-V1, pages 1 - 11 *

Also Published As

Publication number Publication date
CN113678448B (en) 2024-06-25
WO2020207421A1 (en) 2020-10-15

Similar Documents

Publication Publication Date Title
CN114145013B (en) Mode determination for palette mode coding and decoding
CN114145018B (en) Quantization processing of palette mode
WO2020169103A1 (en) Independent coding of palette mode usage indication
CN113475077B (en) Independent coding and decoding of palette mode usage indication
CN114208191A (en) Video region segmentation based on color format
WO2021013120A1 (en) Quantization process for palette mode
CN114424565A (en) Size restriction based on chroma intra mode
CN113615188B (en) Joint coding and decoding of palette mode usage indication
US12063356B2 (en) Palette mode coding in prediction process
CN115362681A (en) Minimum allowed quantization of transform skip blocks in video coding
CN113678448B (en) Entry structure for palette mode coding
WO2021013210A1 (en) Mode determining for palette mode in prediction process

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant