Technique for modifying quantization parameters in transform skip mode.
Patent Information
- Application Number
- JP2023166006
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-07-03
- Filing Date
- 2023-09-27
- Publication Date
- 2025-03-05
- Estimated Expiration
- 2040-06-28
Smart Images

Figure 0007640637000045 
Figure 0007640637000046 
Figure 0007640637000047
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS Books The wish is, This is a divisional application of Japanese Patent Application No. 2021-578161, which is a national transition application of International Patent Application No. PCT / US2020 / 040028 filed on June 28, 2020, and this International Patent Application is, Priority and benefit of international patent application No. PCT / CN2019 / 093852 filed on June 28, 2019 and international patent application No. PCT / CN2019 / 094593 filed on July 3, 2019 Mainly Stretch . above The entire disclosure of this application is incorporated by reference as part of the disclosure of this specification.
[0002] This specification relates to video and image encoding and decoding techniques. [Background technology]
[0003] Digital video is the largest bandwidth used on the Internet and other digital communications networks. The bandwidth usage of the connected users that can receive and display the video. Bandwidth demands for digital video usage will continue to grow as the number of devices increases. is predicted. Summary of the Invention
[0004] The disclosed technology uses a palette coding mode to encode or decode video. It may be used by any video or image decoder or encoder embodiment.
[0005] In one exemplary embodiment, a video processing method is disclosed. The method includes: converting between a current video block of a video and a coded representation of the current video block; and the rule is an identity transform coding for representing the current video block in the coded representation. The tool determines the quantization parameters used to decode the current video block. A syntax field indicating a quantization parameter is added so that the value of the quantization parameter is modified according to a rule. and the identity transform coding tool is provided for the current block to be included in the The coefficient values in the transform domain of the current image block are the same as those of the residual block of the current image block. This makes it possible to
[0006] In another exemplary aspect, another image processing method is disclosed. converting between a previous video block and a coded representation of a current video block; The quantized representation is encoded using an identity transform based on a quantization parameter included in the encoded representation. Conform to formatting rules that prescribe the selective inclusion of syntax elements that indicate the use of the tool. do.
[0007] In yet another exemplary aspect, another image processing method is disclosed. converting between the current video block and a coded representation of the current video block; The encoded representation specifies that the encoded representation includes a syntax element indicating the input bit depth of the video. Conform to the formatting rules set forth in
[0008] In yet another exemplary aspect, another image processing method is disclosed. For conversion between video blocks of video units and a coded representation of video, Preprocessing is performed on the video block based on a quantization parameter associated with the video unit. determining whether to perform a computation or a post-processing computation; and performing the conversion based on said determination. Includes and.
[0009] In another exemplary aspect, the method described above is performed by a video decoder including a processing device. It may be implemented.
[0010] In another exemplary aspect, the method described above is performed by a video encoder including a processing device. It may be implemented as follows.
[0011] In yet another exemplary aspect, the methods are implemented in the form of processor executable instructions. The method may be implemented in a computer-readable program medium.
[0012] These and other aspects are further described herein. [Brief description of the drawings]
[0013] [Figure 1] FIG. 2 is an explanatory diagram of intra block copy. [Diagram 2] 1 shows examples of spatially nearby candidates. [Diagram 3] 1 shows an example of a block coded in palette mode. [Figure 4] 13 shows an example of the use of a palette predictor to signal palette entries. [Diagram 5] 4 shows examples of horizontal and vertical traverse scans. [Figure 6] An example of encoding a palette index is shown below. [Figure 7] An example of a multi-type tree splitting mode is shown. [Figure 8] 1 shows examples of pixels involved in filter on / off decision and strong / weak filter selection. [Figure 9] 13 shows an example of an implementation of the palette mode method combined with intra prediction. [Figure 10] 13 illustrates an example implementation of a composite palette mode. [Figure 11] An example of 67 intra prediction modes (directions) is shown. [Figure 12] An example of the top left neighborhood of the current video block is shown. [Figure 13] 1 illustrates an example of a luminance range corresponding to a chroma block. [Figure 14] 1 illustrates an example of inter prediction based on triangle partitions. [Figure 15] 1 shows an example of spatial and temporal neighboring blocks used to build a single prediction candidate list. [Figure 16] 4 shows examples of weights used in the blending process. [Figure 17A] FIG. 1 is a block diagram illustrating an example of a video processing device. [Figure 17B] FIG. 1 is a block diagram illustrating an example of a video processing device. [Figure 18A] 1 is a flowchart illustrating an example of a video processing method. [Figure 18B] 1 is a flowchart illustrating an example of a video processing method. [Figure 19] An example of the shape of the adaptive loop filter ALF (chroma: 5x5 diamond, luminance: 7x7 diamond) is shown. [Figure 20] (a) Subsampling positions for vertical gradients (top left), (b) subsampling positions for horizontal gradients (top right), (c) subsampling positions for diagonal gradients (bottom left), and (d) subsampling positions for diagonal gradients (bottom right). [Figure 21] 13 shows an example of a modified division in a virtual boundary. [Figure 22] 13 shows an example of modified ALF filtering for the luminance component at the virtual boundary. [Figure 23] Here are some examples of sample positions for pi,k and qi,k: [Figure 24] 1 shows an example of luminance mapping using a chroma scaling architecture. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0014] The present specification provides a method for improving the quality of decompressed or decoded digital video or images. In particular, the present invention provides various techniques that can be used by a decoder of an image or video bitstream. For the sake of simplicity, the term "video" is used herein to mean a sequence of pictures (traditionally called a video). In addition, the term video encoder is used to include both the image and the individual images. The encoding process is then repeated to reconstruct the decoded frames that are used for further encoding. These techniques may be implemented during processing.
[0015] Section headings are used herein for ease of understanding, and the disclosures contained in a section may be incorporated herein by reference. The present invention is not intended to limit an embodiment to only that section. Thus, an embodiment in a section may be It can be combined with the embodiments of other chapters.
[0016] 1. Summary of the Invention
[0017] This specification relates to a video coding technology. It may be applied to existing video coding standards such as HEVC, or it may be applied to new standards (Version The present invention may be applied to determine the standard video coding (SAT). It is also applicable to future video encoding standards or video codecs.
[0018] 2. Initial Discussions
[0019] Video coding standards have emerged primarily through the development of well-known ITU-T and ISO / IEC standards. ITU-T has developed H.261 and H.263, and ISO / IEC has developed MPEG- 1 and MPEG-4 Visual, and the two organizations have jointly developed H.262 / MPEG-2 Video o and H.264 / MPEG-4 AVC(Advanced Video Coding ) and co-created the H.265 / HEVC standard. Since H.262, video coding standards have It is based on a hybrid video coding structure that utilizes inter prediction and transform coding. In 2015, VCEG and MPEG jointly established the VCEG-MPEG 2.0 standard for video coding. We established JVET (Joint Video Exploration Team). Since then, many new methods have been adopted by JVET and JEM (Joint Exp The reference software, called the Loration Mode [3, 4], In April 2018, VCEG (Q6 / 16) and ISO / IEC JTC1 SC2 During WG11 (MPEG), the Joint Video Expert Team (J VET) was launched, and the VVC standard was revised with the goal of reducing the bit rate by 50% compared to HEVC. We are currently working on formulating it.
[0020] The latest version of VVC draft, namely Versatile Video Codi ng (draft 4) can be found at:
[0021] phenix.it-sudparis.eu / jvet / doc_end_user / current_document.php?id=5755
[0022] The latest reference software for VVC, called VTM, can be found at:
[0023] vcgit.hhi.fraunhofer.de / jvet / VVCSoftwar e_VTM / tags / VTM-4.0
[0024] 2.1 Intra-block copy
[0025] Intra Block Copy (IBC), also known as Current Picture Reference (CPR), is a VC Screen Content Coding Extensions (HEVC-SCC) and the current VVC test model IBC is an interframe motion compensation concept that has been adopted by Dell (VTM-4.0). As shown in Figure 1, the current block is , when IBC is applied, it is predicted by one reference block in the same picture. Before encoding or decoding the current block, the samples in the reference block have already been IBC must be configured to capture most of the sequence captured by the camera. It is not very efficient for performance, but it provides significant coding for screen content. The reason is that in the screen content picture, icons, characters, etc. IBC is a method to reduce redundancy between these repeating patterns. In HEVC-SCC, the inter-coding unit ( A CU) may apply IBC if it selects the current picture as its reference picture. In this case, the motion vector (MV) is renamed to the block vector (BV), and V always has integer pixel precision. To conform to the main profile HEVC, The picture is mapped as a "long-term" reference picture in the Decoded Picture Buffer (DPB). Similarly, in multiple view / 3D video coding standards, reference between views is also possible. The reference picture is also marked as a "long-term" reference picture.
[0026] After the BV finds the reference block, it generates a prediction by copying this reference block. The residual can be obtained by subtracting the reference pixels from the original signal. Yes, and just like other coding modes, transforms and quantization can be applied. .
[0027] FIG. 1 is an explanatory diagram of intra block copy.
[0028] However, if the reference block is outside the picture or overlaps with the current block, If the area is outside the reconstructed region, or if it is limited by some constraint, If it is outside the defined valid area, some or all of the pixel value is undefined. There are two solutions to deal with such problems. The second is to not allow for data stream conformance with these undefined pixel values. The solution is to apply filtering. The following subsections explain the solution in detail.
[0029] 2.2 IBC in HEVC Screen Content Coding Extensions
[0030] In the HEVC Screen Content Coding Extension, a block is When using a structure as a reference, the entire reference block is It should be ensured that the body is within the available reconstructed area.
[0031] The variables offsetX and offsetY are derived as follows: offsetX=(ChromaArrayType==0)?0:(mvCLX[0] &0×7?2:0) (2-1) offsetY=(ChromaArrayType==0)?0:(mvCLX[1] &0×7?2:0) (2-2)
[0032] If the reference picture is the current picture, the luma motion vector mvLX is determined according to the following constraint: It is a bitstream conformance requirement that - The derivation process for the availability of z-scan order blocks as specified in Section 6.4.1 is Set (xCurr,yCurr) equal to (xCb,yCb) and (xPb+(mv LX[0]>>2)-offsetX,yPb+(mvLX[1]>>2)-offse The input is called the luminance position (xNbY, yNbY) of the neighborhood of the input pixel. When issued, the output is TRUE. - The derivation process for the availability of z-scan order blocks as specified in Section 6.4.1 is (xCurr, yCurr) set equal to (xCb.yCb), (xPb + (mvL X[0]>>2)+nPbW-1+offsetX,yPb+(mvLX[1]>>2) The luminance position (xNbY, yN When called with input bY, the output is TRUE. -One or both of the following conditions are true: -(mvLX[0]>>2)+nPbW+xB1+offsetX is less than or equal to 0 . - The value of (mvLX[1]>>2) + nPbH + yB1 + offsetY is less than or equal to 0. . -The following conditions must be true: (xPb+(mvLX[0]>>2)+nPbSw-1+offsetX) / CtbSi zeY-xCurr / CtbSizeY<= yCurr / CtbSizeY-(yPb+(mvLX[1]>>2)+nPbSh-1 +offsetY) / CtbSizeY (2-3)
[0033] Thus, cases where the reference block overlaps with the current block, or where the reference block The out-of-picture case does not occur. There is no need to fill in reference or predicted blocks. There is none.
[0034] 2.3. IBC in the VVC test model
[0035] In the current VVC test model, i.e., VTM-4.0 design, the entire reference block should have a current coding tree unit (CTU) and not overlap with the current block. Therefore, there is no need to pad reference or predicted blocks. The IBC flag is The prediction mode of the current CU is encoded as the prediction mode of the current CU. There are three prediction models: INTRA, MODE_INTER, and MODE_IBC. There is a code.
[0036] 2.3.1 IBC Merge Mode
[0037] In IBC merge mode, an index that points to an entry in the IBC merge candidate list. The IBC merge list is constructed as follows: The steps can be summarized as follows: ● Step 1: Derive spatial candidates ● Step 2: Inserting HMVP candidates ● Step 3: Inserting pairwise average candidates
[0038] In deriving spatial merge candidates, candidates at positions A1, B1, B0, A0 and B2 We select up to four merge candidates from A1, B1, B0, A0, B 2. If any PU at locations A1, B1, B0, or A0 is not available (e.g. , because it belongs to a different slice or tile) or is coded in IBC mode If there is no match, then position B2 is considered. After adding the candidate for position A1, insert the remaining candidates. Then, a redundancy check is performed to ensure that candidates with the same motion information are listed. This can improve the coding efficiency.
[0039] After inserting spatial candidates, the IBC merge list size is still less than the maximum IBC merge list size. If the IBC candidate from the HMVP table is smaller than the buffer size, the IBC candidate from the HMVP table can be inserted. When inserting HMVP candidates, a redundancy check is performed.
[0040] Finally, the pairwise average candidate is inserted into the IBC merge list.
[0041] If the reference block identified by the merge candidate is outside the picture or the current If it overlaps with a block, or is outside the reconstructed region, or if some constraints are met, A merge candidate is called an invalid merge candidate if it is outside the valid region bounded by .
[0042] Note that invalid merge candidates may be inserted into the IBC merge list.
[0043] JVET-N0843 is used for VVC. In JVET-N0843, IB The BV predictor for the merge and AMVP modes of C is a common predictor that consists of the following elements: Share the list. ● Two spatially adjacent positions (A1 and B1 as in Figure 2) ● 5 HMVP Entries ● Zero vector by default
[0044] In merge mode, up to the first six entries in this list are used to determine the AMVP mode. For a shared markup, the first two entries in this list are used. Compliant with the requirements for the Glist domain (sharing the same list within the SMR).
[0045] In addition to the list of BV predictor candidates mentioned above, JVET-N0843 will also compare HMVP candidates and existing We also propose to simplify the pruning operation between merge candidates (A1, B1). In a simplified case, we only compare the first HMVP candidate with the spatial merge candidate, A maximum of two pruning operations are required.
[0046] In recent VVC and VTM5, in previous VTM and VVC versions, In addition to the current bitstream constraints, a configuration is added to disable IBC mode for 128x128. It is proposed to use explicit statement constraints, so that the presence of the IBC flag affects the support of the CU. Depends on size < 128×128.
[0047] 2.3.2 IBC AMVP mode
[0048] In IBC AMVP mode, the AMV that points to an entry in the IBC AMVP list. The P index is parsed from the bitstream. This IBC AMVP list The construction of can be summarized according to the following sequence of steps: ● Step 1: Derive spatial candidates ○Check A0, A1 until a usable candidate is found. ○Check B0, B1, B2 until a usable candidate is found. ● Step 2: Inserting HMVP candidates ● Step 3: Inserting zero candidates
[0049] After inserting spatial candidates, the IBC AMVP list size is still up to IBC A Insert IBC candidates from HMVP table if smaller than MVP list size can be done.
[0050] Finally, insert the zero candidate into the IBC AMVP list.
[0051] 2.3.3 Chroma IBC Mode
[0052] In the current VVC, motion compensation in chroma IBC mode is performed at the sub-block level. The chroma block is divided into multiple sub-blocks. Each sub-block is Determine whether the corresponding luminance block has one block vector. If so, If so, the validity is checked. The current VTM has encoder constraints and the current chroma CU A check is made to see whether all sub-blocks in the block have valid luminance block vectors. Tests the chroma IBC mode. For example, in a YUV420 video, the chroma blocks are The chroma blocks are NxM, and the collocation luminance area is 2Nx2M. The subblock size is 2 × 2. Chroma mv derivation, then block copy processing is performed. There are several steps to this. 1) A chroma block is first divided into (N>>1)*(M>>1) sub-blocks. can be. 2) Each subblock whose top left sample is located at (x,y) is (2x,2y) Then, fetch the corresponding luma block that contains the same top-left sample located in 3) The encoder checks the block vector (bv) of the fetched luma block. A bv is considered invalid if it meets one of the following conditions: a. There is no corresponding luminance block bv. The predicted block identified by b.bv has not yet been reconstructed. The predicted block identified in c.bv may overlap partially or completely with the current block. is. 4) The chrominance motion vector of a subblock is calculated by multiplying the motion vector of the corresponding luma subblock by is set to.
[0053] If all sub-blocks find a valid bv, the encoder performs IBC mode is allowed.
[0054] The decoding process of an IBC block is shown below. The part is highlighted in grey.
[0055] 8.6.1 General Decoding for Encoding Units Coded in IBC Prediction process
[0056] The inputs to this process are: the top-left sample of the current coding block relative to the top-left luma sample of the current picture The luminance position (xCb, yCb) that specifies a variable cbWidth that specifies the width of the current coding block in luma samples, a variable cbHeight that specifies the height of the current coding block in luma samples, - the variable tree type, which specifies whether a single or double tree is used, and If a dual tree is used, whether the current tree corresponds to the luma or chroma component. Specify.
[0057] The output of this processing is the corrected reconstructed image before in-loop filtering.
[0058] Current coding block at luminance position (xCb, yCb), luminance sample cbWidth the width of the current coding block, the height of the current coding block in luma samples cbHeight, and the The quantization parameter derivation process specified in Section 8.7.1 is performed using the quantization tree type as input. call.
[0059] The decoding process for encoding a unit coded in ibc prediction mode is as follows: It consists of ordered steps.
[0060] 1. The motion vector components of the current coding unit are derived as follows: 1. The tree type is equal to SINGLE_TREE or DUAL_TREE_LUMA. If not, the following applies: - Position of the luminance coding block (xCb, yCb), width of the luminance coding block cbWid th, the luminance coding block and the height cbHeight are input, and the luminance motion vector m The motion vector components are derived as specified in 8.6.2.1 with vL[0][0] as the output. The output process is called. - If the tree type is equal to SINGLE_TREE, the chroma movement of section 8.6.2.9 is The derivation process of the motion vector is as follows: This is performed using the chroma motion vector mvC[0][0]. - the number of luminance-coding sub-blocks in the horizontal direction numSbX and the vertical direction numSbY The numbers are all set to 1. 1. Otherwise, if the tree type is equal to DUAL_TREE_CHROMA the following applies: -LUMA coding sub-blocks in horizontal direction NUMSBX and vertical direction NUMBY The number is derived as follows: numSbX=(cbWidth>>2) (8-886) numSbY=(cbHeight>>2) (8-887) - Chroma motion vector mvC[xSbIdx][ySbIdx] is xSbIdx=0 If ..numSbX-1,ySbIdx=0..numSbY-1, it is derived as follows It will be: - The luminance motion vector mvL[xSbIdx][ySbIdx] is derived as follows: will be done. - The position (xCuY, yCuY) of the collocated LUMA coding unit is as follows: is derived. xCuY=xCb+xSbIdx*4 (8-888) yCuY=yCb+ySbIdx*4 (8-889) -CuPredMode[xCuY][yCuY] is equal to MODE_INTRA If mvL[xSbIdx][ySbIdx][0]=0 (8-890) mvL[xSbIdx][ySbIdx][1]=0 (8-891) predFlagL0[xSbIdx][ySbIdx]=0 (8-892) predFlagL1[xSbIdx][ySbIdx]=0 (8-893) -Other cases (CuPredMode[xCuY][yCuY] is MODE_IBC ), where the following is true: mvL[xSbIdx][ySbIdx][0]=MvL0[xCuY][yCuY][0] (8-894) mvL[xSbIdx][ySbIdx][1]=MvL0[xCuY][yCuY][1] (8-895) predFlagL0[xSbIdx][ySbIdx]=1 (8-896) predFlagL1[xSbIdx][ySbIdx]=0 (8-897) - The chroma motion vector derivation process in Section 8.6.2.9 is mvL[xSbIdx][ mvC[xSbIdx][ySbIdx] is the input and mvC[xSbIdx][ySbIdx] is the output. It is served. - Chroma motion vectors mvC[xSbIdx][ySbIdx] obey the following constraints This is a requirement of bitstream conformance. - The block availability derivation process specified in Section 6.4.X [ED.( BB: The adjacent block availability check process TBD checks the current chroma position (xC urr,yCurr)(xCb / SubWidthC,yCb / SubHeightC ) and the adjacent cro position (xCb / SubWidthC+(mvC[xSbIdx ][ySbIdx][0]>>5),yCb / SubHeightC+(mvC[xSb When called with inputs Idx][ySbIdx][1]>>5), the output is TRU It becomes E. - The block availability derivation process specified in Section 6.4.X [ED.( BB: The adjacent block availability check process TBD checks the current chroma position (xC urr,yCurr)(xCb / SubWidthC,yCb / SubHeightC ) and the adjacent cro position (xCb / SubWidthC+(mvC[xSbIdx ][ySbIdx][0]>>5)+cbWidth / SubWidthC-1,yCb / SubHeightC+(mvC[xSbIdx][ySbIdx][1]>>5)+ When it is called with input cbHeight / SubHeightC-1), the output is T The result is RUE. -One or both of the following conditions are true: - (mvC[xSbIdx][ySbIdx][0]>>5)+xSbIdx *2+2 is less than or equal to 0. - (mvC[xSbIdx][ySbIdx][1]>>5)+ySbIdx *2+2 is less than or equal to 0.
[0061] 2. The predicted samples for the current coding unit are derived as follows: -Tree type is equal to SINGLE_TREE or DUAL_TREE_LUMA If not, the predicted sample for the current CODING UNIT is derived as follows: The decoding process of the ibc block specified in 8.6.3.1 is the same as that of the luma coding block. The position of the block (xCb, yCb), the width of the luminance coding block cbWidth, The height of the block cbHeight, the brightness at horizontal numSbX and vertical numSbY. number of intensity-coded subblocks, luminance motion vector mvL[xSbIdx][ySbIdx] xSbIdx=0..numSbX-1, and SbIdx=0..numSbY-1, and set the variable cIdx equal to 0 as input, and set the predicted luminance sample's (cbWidth h) × (cbHeight) array predSamples L The ibc prediction sample ( predSamples) as output. -Or the tree type is SINGLE_TREE or DUAL_TREE_CH If it is equal to ROMA, the predicted samples of the current coding unit are derived as follows: do. The decoding process of the ibc block specified in 8.6.3.1 is the same as that of the luma coding block. The position of the block (xCb, yCb), the width of the luminance coding block cbWidth, The height of the block cbHeight, the brightness at horizontal numSbX and vertical numSbY. Number of subblocks coded with different degrees, xSbIdx=0..numSbX-1, ySbIdx=0 Chroma motion vector mvC[xSbIdx], ySbId with numSbY-1 Set x=0..numSbY-1, and variable cIdx equal to 1 as input, and ib c Predicted samples (predSamples) are the predicted chroma samples for chroma component Cb. Pull (cbWidth / 2) x (cbHeight / 2) array predSamples Cb It is called with ibc predicted samples (predSamples) as output. The decoding process of the ibc block specified in 8.6.3.1 is performed for the luma coding block The position (xCb, yCb) of the luminance coding block, the width cbWidth of the luminance coding block, The height of the block cbHeight, the brightness at horizontal direction numSbX, and the vertical direction numSbY. Number of coding sub-blocks, xSbIdx=0..numSbX-1, ySbIdx=0. Chroma motion vector mvC[xSbIdx], ySbIdx with numSbY-1 =0..numSbY-1, and set the variable cIdx equal to 2 as input, ibc Predicted samples (predSamples) is the predicted chroma samples for the chroma component Cr. predSamples is a (cbWidth / 2) x (cbHeight / 2) array of C r It is called with ibc predicted samples (predSamples) as output.
[0062] 3. The variables NumSbX[xCb][yCb] and NumSbY[xCb][yCb] are , are set equal to numSbX and numSbY, respectively.
[0063] 4. The residual samples of the current coding unit are derived as follows: - If the tree type is equal to SINGLE_TREE or the tree type is DUAL If _TREE_LUMA is set, it is encoded as an inter prediction mode as specified in Section 8.5.8. The decoding process of the residual signal of the encoded block is performed by dividing the position (xTb0, yTb0) by the luminance Position (xCb, yCb), width nTbW is the luminance coding block width cbWidth, height nT Let bH be equal to the luminance coding block height cbHeight and the variable cldxset be equal to 0. Input the array resSamples L It is called with the output: - If the tree type is equal to SINGLE_TREE or the tree type is DUAL If equal to _TREE_CHROMA, the inter prediction mode specified in Section 8.5.8. The decoding process of the residual signal of the coding block coded by Chroma position (xCb / 2, yCb / 2), width nTbW is chroma coding block width cbWi dth / 2, height nTbH is equal to the chroma coding block height cbHeight / 2, Set the variable cldxset equal to 1 as input and the array resSamples Cb Leave As a force, it is invoked. - If the tree type is equal to SINGLE_TREE or the tree type is DUAL If equal to _TREE_CHROMA, the inter prediction mode specified in Section 8.5.8. The decoding process of the residual signal of the coding block coded by Chroma position (xCb / 2, yCb / 2), width nTbW is chroma coding block width cbWi dth / 2, height nTbH is equal to the chroma coding block height cbHeight / 2, Set the variable cldxset equal to 2 as input and the array resSamples Cr Leave As a force, it is invoked.
[0064] 5. The reconstructed samples of the current coding unit are derived as follows: -If the tree type is equal to SINGLE_TREE or the tree type is DUA If it is equal to L_TREE_LUMA, the image reconstruction of the color components is performed as specified in 8.7.5. The block position (xB, yB) is (xCb, yCb) and the block width bWidth is cbWidth, block height bHeight to cbHeight, variable cIdx to 0, (cbWidth) × (cbHeight) array predSamples to predSa mplesL, (cbWidth) × (cbHeight) array resSamples resSamples L The input is set equal to the input, and the output is filtered in the loop. This is the corrected reconstructed image before filtering. - If the tree type is equal to SINGLE_TREE or the tree type is DUAL If it is equal to _TREE_CHROMA, the image redrawing of color components is performed as specified in 8.7.5. The construction process converts the block position (xB, yB) into (xCb / 2, yCb / 2) and the block width bW idth to cbWidth / 2, block height bHeight to cbHeight / 2, Set the variable cIdx to 1, and the (cbWidth / 2) × (cbHeight / 2) array predS amples to predSamples Cb , (cbWidth / 2)×(cbHeight ht / 2) Array resSamples to resSamples Cb Set the input equal to The output is the modified reconstructed image before in-loop filtering. - If the tree type is equal to SINGLE_TREE or the tree type is DUAL If it is equal to _TREE_CHROMA, the image redrawing of color components is performed as specified in 8.7.5. The construction process converts the block position (xB, yB) into (xCb / 2, yCb / 2) and the block width bW idth to cbWidth / 2, block height bHeight to cbHeight / 2, Set the variable cIdx to 2, and the (cbWidth / 2) × (cbHeight / 2) array predS amples to predSamples Cr , (cbWidth / 2)×(cbHeight ht / 2) Array resSamples to resSamples Cr Set the input equal to The output is the modified reconstructed image before in-loop filtering.
[0065] 2.4 Adaptive Motion Vector Resolution (AMVR)
[0066] In HEVC, use_integer_mv_flag is specified in the slice header. When the MVD is 0, the motion vector difference (MVD) is calculated in units of 1 / 4 luminance samples. Vector Difference (between the motion vector and the predicted motion vector of the CU) In VVC, adaptive motion vector resolution (AM) at the CU level is signaled. AMVR is a scheme that encodes the MVD of a CU with different precision. The current mode of the CU (normal AMVP mode or affine AVMP mode) Based on the above, the MVD of the current CU can be adaptively selected as follows: -Normal AMVP mode: 1 / 4 luma samples, integer luma samples or 4 luma samples. -Affine AMVP mode: 1 / 4 luma samples, integer luma samples or 1 / 16 luma samples sample.
[0067] CU-level, if the current CU has at least one non-zero MVD component The MVD resolution indication is conditionally signaled. All MVD components (i.e. That is, when both the horizontal and vertical MVDs of the reference list L0 and the reference list L1 are zero , a 1 / 4 luma sample MVD resolution is inferred.
[0068] For CUs with at least one non-zero MVD component, 1 / 4 The first flag indicates whether luma sample MVD precision is used in the CU. If the first flag is 0, no further signaling is required and the current 1 / 4 luma sample MVD precision is used for the current CU. Otherwise, normal For AMVP CUs, MVD precision of integer luma samples or 4 luma samples is used. A second flag is signaled to indicate whether the integer luminance is MVD precision of 1 / 16 luminance samples is used for affine AMVP CUs. Used to indicate whether the reconstructed MV is within the intended accuracy (1 / 4 luminance samples, 1 / 4 luma samples, or 4 luma samples) The motion vector predictor of a CU is rounded to the same precision as the MVD before being added to the MVD. Round the motion vector predictor towards zero (i.e., round negative motion vector predictors (positive motion vector predictors round towards positive infinity, and positive motion vector predictors round towards negative infinity).
[0069] The encoder uses the RD check to determine the motion vector resolution for the current CU. To avoid always performing CU-level RD checks three times for each MVD resolution, Therefore, in VTM4, the RD check for MVD accuracy other than 1 / 4 luma sample is performed under the condition In normal AVMP mode, first, 1 / 4 luminance sample MV Calculate the RD cost for D precision and integer luminance sample MV precision. Next, Compare the RD cost of MVD accuracy with the RD cost of 1 / 4 brightness sample MVD accuracy, and Determine whether the RD cost of sample MVD accuracy needs to be checked further. The RD cost of 1 / 4 luminance sample MVD accuracy is the RD cost of integer luminance sample MVD accuracy. If the 4 luminance sample MVD accuracy RD check is omitted. In the affine AMVP mode, affine merge / skip mode, merge / skip mode Mode, 1 / 4 luminance sampling MVD accuracy Normal AMVP mode, 1 / 4 luminance sampling M After checking the rate-distortion cost of the VD precision affine AMVP mode, the affine in If no monitor mode is selected, 1 / 16 luma sampling MV precision, 1-pel M V precision affine inter mode is not checked. Also, 1 / 16 luma samples and 1 1 / 4 luminance sample MV precision Affine Inter mode search starting point is ... Use the affine parameters obtained in the 3D sample MV precision affine inter mode.
[0070] 2.5 Palette Mode in HEVC Screen Content Coding Extensions (HEV C-SCC)
[0071] The basic idea behind palette mode is to assign samples in a CU to representative color values. The idea is to express it as a small set. This set is called a palette. Also, the escape symbol The palette is then filtered by signaling the (possibly quantized) component values after the It is also possible to show samples that lie outside the
[0072] In the palette mode in HEVC-SCC, the palette and index map are A prediction scheme is used for the coding.
[0073] 2.5.1 Encoding Palette Entries
[0074] To encode the palette entries, a palette predictor is maintained. In HEVC-SCC, the maximum size of the palette and the palette predictor are signaled. palette_predictor_initializer_present _flag is introduced into the PPS. If this flag is 1, This signals an entry to initialize the palette predictor. The palette predictor is It is initialized at the beginning of each CTU row, each slice, and each tile. Depending on the value of edictor_initializer_present_flag, alette_predictor to 0 or signaled by PPS The palette predictor is initialized using the palette predictor initialization entry. In SCC, to specifically disable the initialization of the palette predictor at the PPS level, you can use Enabled palette predictor initializer of 0.
[0075] For each entry in the palette predictor, a reuse flag is signaled and a part of the current palette is This is shown in Figure 4. The reuse flag is a run length of zeros. After this, the number of new palette entries is transmitted using the exponential go Finally, the components of the new palette entry are signaled using the The event value is signaled.
[0076] 2.5.2 Palette Index Encoding
[0077] The pallet index uses horizontal and vertical traverses as shown in Figure 5. The palette_transpose_flag can be used to The following subsections explicitly signal the scanning order in the Assume that is horizontal.
[0078] The palette index is used to select between the two main palette sample modes: 'INDE It is encoded using 'X' and 'COPY_ABOVE'. The INDEX symbol is also signaled as in "INDEX" mode and has an index equal to the maximum palette size. A mode is assigned an index, except for the top row, or if the previous mode is "C The flag is used to indicate this, unless it was "COPY_ABOVE". In "_ABOVE" mode, it copies the palette index of the sample in the row above. In "INDEX" mode, the palette index is signaled explicitly. In both "EX" and "COPY_ABOVE" modes, the same mode is used to sign The escape symbol signals a run value that specifies the number of subsequent samples to be encoded. If it is part of an execution in "INDEX" or "COPY_ABOVE" mode, An escape component value is signaled for each escape symbol. The encoding is shown in FIG.
[0079] This syntax sequence is executed as follows: First, the index value for the CU is This is followed by a truncated binary encoding. ed binary coding) to ensure that the actual index values of the entire CU are In bypass mode, both the number of indexes and the index value are signed. This groups index-related bypass bins. Bit sample mode (if required) and execution are signaled in an interleaved manner Finally, group the component escape values corresponding to the escape samples for the entire CU. and encodes it in bypass mode.
[0080] After signaling the index value, the additional syntax element last_run_type_fl ag. This syntax element, in conjunction with the number of indices, Eliminates the need to signal the execution value corresponding to the last execution.
[0081] In HEVC-SCC, the palette modes are 4:2:2, 4:2:0, and monochrome. This is also valid for other chroma formats. Palette entries and palette indexes The signaling for the chroma frame is nearly the same for all chroma formats. For monochrome formats, each palette entry consists of three components: In this case, each palette entry consists of a single component. In this case, the chroma samples are associated with luma sample indices that are divisible by 2. After reconstructing the palette index, only a single component is associated with a sample. If not present, only the first component of the palette entry is used. The difference is the escape component value. For each escape sample, the escape The number of component values may vary depending on the number of components associated with that sample.
[0082] 2.6 Coefficient Coding in Transform Skip Mode
[0083] In JVET-M0464 and JVET-N0280, residual coding was used as a conversion scheme. Transform Skip (TS) is used to adapt to the statistics and signal characteristics of the tap level. Several improvements have been proposed for the coefficient coding in mode p.
[0084] The proposed variations are given below.
[0085] No significant previous scan position: The residual signal reflects the spatial residual after prediction, and the energy compression by the transform for TS is Since this is not done, there will be zeros or non-significant levels at the end of the lower right corner of the transformation block. Therefore, in this case, the last significant scan position signal is The trust is omitted.
[0086] Sub-block CBF: If there is no last significant scan position signal, the coded_sub_block_fla The sub-block CBF signal with g needs to be modified as follows: ● Due to quantization, the non-significant sequences mentioned above are still localized in the transform block. Therefore, the last significant scan position is deleted as described above, and the last For all sub-blocks, except for the case where all CGs have zero coefficients, Since ed_sub_block_flag is encoded, code is There is no need to code d_sub_block_flag. ● The coded_s subblock that covers the DC frequency position (the upper left subblock) ub_block_flag represents a special case. The coded_sub_block_flag of a subblock is never signaled and is always If the last significant scan position is located in another subblock, then This means that there is at least one significant level outside the DC subblock. As a result, the DC subblock is coded_subblock_f It is assumed that lag is equal to 1, but may include only zero / non-significant levels. If there is no subsequent scanning position information, the coded_sub_block_fl of each subblock ag is signaled because other coded_sub_block_flag syntax elements The coded_sub_block_fl of the DC sub-block unless it is already equal to 0. ag. In this case, DC coded_sub_block_flag is equal to 1. (inferDcSbCbf=1). This DC sub-block contains at least Since there must be at least one significant level, all other If all sig_coeff_flag syntax elements are equal to 0, the first The sig_coeff_flag syntax element in position 1 is not signaled and is set equal to 1. (inferSbDcSigCoefflag=1). ● Change the context modeling of coded_sub_block_flag. The context model index is to the left of coded_sub_block_flag. and the coded_sub_block_flag on the current subblock. , are calculated instead of the disjunction of both.
[0087] sig_coeff_flag Context modeling: sig_coeff_flagThe local template in the context model is Modified to include only the left (NB0) and top (NB1) neighborhood of the local scan location The context model offset is the important neighborhood position sig_coeff_flag[N Therefore, we exclude the selection of different context sets according to the diagonal d in the current transformation interval. As a result, three context models for encoding sig_coeff_flag are A set of context models is obtained.
[0088] abs_level_gt1_flag and par_level_flag context modeling: One context model is used for abs_level_gt1_flag and par_level_flag.
[0089] abs_remainder encoding: The empirical distribution of the transformed skip residual absolute levels is typically still Laplacian or Although it is suitable for the geometric distribution, there exists an instability larger than the absolute level of the conversion coefficients. Specifically, the residual absolute level results in a higher variance within successively realized windows. This is because The binarization and context modeling of the abs_remainder syntax are as follows: This will motivate the company to revise the rules accordingly. ● Higher cutoff value for binarization, i.e., sig_coeff_flag, ab s_level_gt1_flag, par_level_flag, and abs_le Transition from vel_gt3 coding to abs_remainder Rice coding Higher compression efficiency is achieved by using dedicated context models for each point and bin location. Increasing the cutoff will result in more "greater than X" flags, For example, abs_level_gt5_flag, abs_l evel_gt7_flag etc. will be introduced. The cutoff itself is fixed at 5 (nu mGtFlags=5). Modify the template for Rice parameter derivation, i.e., for the current scan position Only the left and upper neighborhoods are modeled using the sig_coeff_flag context modeling. Consider it similar to a local template for tagging.
[0090] coeff_sign_flag Context modeling: Due to instabilities in the sequence of codes and the fact that the prediction residuals are often biased, Even if the empirical distribution of the context is approximately uniform, the code may be a poor fit to the context model. A code may be encoded using one dedicated context model, The code is parsed after sig_coeff_flag and all context codes are The bottles are grouped together.
[0091] 2.7 Quantized Residual Block Differential Pulse Code Modulation (QR-BDPCM)
[0092] In JVET-M0413, Quantized Residual Block Differential Pulse Code Modulation (QR-B DPCM) has been proposed for efficiently encoding screen content.
[0093] The prediction directions used in QR-BDPCM are vertical and horizontal prediction modes. Intra prediction can be supported in the same way as intra prediction, depending on the prediction direction (horizontal or vertical prediction). The residual is quantized and the quantized residual and its Encode the delta between the predictor (horizontal or vertical) quantized value. This is done as follows: For a block of size M (rows) × N (columns), r i,j ,0≦ i ≤ M-1, 0 ≤ j ≤ N-1 are filtered samples from the boundary samples of the top or left block. Using unmapped samples, the pixel value of the left neighboring pixel in the horizontal direction (for the prediction block) is multiplied by 1. line by line) or vertically (each line in the prediction block is copied to the neighboring line above Let Q(r i,j ), 0≦i≦ M-1, 0≦j≦N-1 is the residual r i,j represents a quantized version of , the difference between the original block and the predicted block value. Then, the block DPCM is applied to the difference sample, resulting in the element r~ i,j A modified M×N array R When the vertical BDPCM is signaled, we get:
[0094]
number
[0095] For horizontal prediction, a similar rule applies: the residual quantized samples are calculated by the following formula: Obtained.
[0096]
number
[0097] Residual quantization sample r~ i,j is sent to the decoder.
[0098] At the decoder, the above calculation is reversed to obtain Q(r i,j ), 0≦i≦M-1, 0≦j≦ N-1. For vertical prediction:
[0099]
number
[0100] For the horizontal direction:
[0101]
number
[0102] The dequantized residual Q -1 (Q(r i,j )) is added to the intra block prediction value and Generates the configured sample values.
[0103] The main advantage of this scheme is that the reverse DPCM can be calculated on-the-fly during coefficient parsing. You can do this by simply adding the predictors during coefficient parsing, or by This can be done after the analysis.
[0104] The proposed changes to the QR-BDPCM text are shown below.
[0105] [Table 1] [Table 2]
[0106] If bdpcm_flag[x0][y0] is 1, the luminance coding block at position (x0, y0) Specifies that the bdpcm_dir_flag is present in the coding unit that contains the lock. . bdpcm_dir_flag[x0][y0]=0 is used in the bdpcm block. Specifies that the prediction direction is horizontal, otherwise it is vertical.
[0107] 2.8 Partition Structure
[0108] In HEVC, the CTU is adapted to various local features, called a coding tree. The image is divided into CUs using a quadtree structure that is known as a quadtree. The decision to code a picture region using intrapicture (spatial) prediction is This is done at the leaf CU level. Each leaf CU can have one, two or three PUs depending on the PU split type. Within one PU, the same prediction process is applied. The prediction process based on the PU partition type is used to transmit the related information to the decoder on a PU-by-PU basis. After obtaining the residual block by applying Based on the different quadtree structure we have created, we can divide the leaf CUs into transform units (TUs). One of the key features of the HEVC structure is that it has multiple partitions, including CUs, PUs, and TUs. The key is to have a concept of
[0109] In VVC, nested multi-level segmentation structures using binary and ternary splits are used. The quadtree with type tree replaces the concept of multiple partition unit types. That is, unless it is necessary for a CU whose size is too large for the maximum transform length. Eliminates the separation of CU, PU, and TU concepts, and allows more flexibility for CU partition shapes In the coding tree structure, a CU can have either a square or a rectangle. First, the coding tree unit (CTU) is divided into quadtree structures. The leaf nodes of the quadtree can then be further partitioned by a multi-type tree structure. As shown in Figure 7, the branching types of the multi-type tree structure include vertical bifurcation (SPL) and IT_BT_VER), Horizontal bifurcation (SPLIT_BT_HOR), Vertical trifurcation (SPLIT_BT_VER) There are four types: horizontal three-way branch (SPLIT_TT_VER), horizontal three-way branch (SPLIT_TT_HOR). The leaf nodes of the type tree are called coding units (CUs), and if a CU is too large, As long as the maximum transform length is not reached, this segmentation can be used for prediction and transformation without further division. This is most often used for processing CUs, PUs, and TUs in nested In a quadtree with a multi-type tree coding block structure, the same block size is The maximum supported transform length is greater than the width or height of the CU's color components. An exception to this occurs when the pixel size is smaller than the pixel size. Also, the luma and chroma components are partitioned separately on the I-tile. In addition, JVET-K0353 and JVET-K0354 have the following structure: CTU / Signals a flag to determine whether to use a separate partition structure at the CU level. It is proposed to notify the public of the coding of the
[0110] 2.9 Deblocking Scheme in VTM-4.0
[0111] In the following description, pNM is the Nth subpixel on the left side of the Mth row with respect to the vertical edge. represents the Nth sample in the Mth column above the horizontal edge, and qNM represents the The Nth sample to the right of the Mth row for a vertical edge, or the Mth column for a horizontal edge pN represents the Nth sample below the eye. M and qN M An example is shown in Figure 8.
[0112] In the following description, pN is the Nth sample to the left of the row relative to the vertical edge. , or the Nth sample above the horizontal edge, and qN is the vertical edge. For a horizontal edge, the Nth sample on the right of the row, or for a horizontal edge, the Nth sample on the bottom of the column Represents a sample.
[0113] The filter on / off is determined for each of the four rows as a unit. Figure 8 shows the filter The pixels involved in the on / off decision of the filter are shown in the two red boxes for the first four rows. The six pixels are used to determine whether the filter is on or off for the four rows. The six pixels in the two red boxes for the first four rows are the six pixels in the two red boxes for the second four rows of the filter. Used to determine whether the switch is on or off.
[0114] In the current VTM, i.e. VTM-4.0, the non- A blocking scheme is used. First, the vertical edges of the picture are selected. Then, the vertical Taking the samples corrected by the edge filtering process as input, we filter the horizontal edges of the picture. The vertical and horizontal edges in the CTB of each CTU are filtered. Vertical edges of coding blocks in a coding unit are processed separately. Starting from the left edge of the coding block, the geometric The edges are filtered in a geometric order. The horizontal edge of the coding block starts at the top edge of the coding block and are filtered by proceeding through the edges in their geometric order downwards. .
[0115] 2.9.1 Boundary Determination
[0116] It applies filtering to 8x8 block boundaries. (Because of the use of motion estimation and ATMVP, the boundary of a transform block or a coding subblock Must be a lock boundary, otherwise the filter is disabled. .
[0117] 2.9.2 Boundary strength calculation
[0118] If it is a transform block boundary / coding sub-block boundary, it is located on an 8x8 grid. If you want to filter it, you can do so for bS[xD i ][yD j ]([x D i ][yD j The settings for ] represent coordinates) are defined as follows: - bS[xD i ][yD j ] is set equal to 2, in which case the sample p0 or q0 is in a coding block of a coding unit coded in intra prediction mode. - Or, the block edge is also a transformation block edge and samples p0 or q If 0 is in a transform intra block that contains one or more non-zero transform coefficient levels, then bS[ xD i ][yD j ] is set equal to 1. or the prediction mode of the coding sub-block containing the sample p0 is the same as that of the sample q0 If the prediction mode of the coding sub-block containing bS[xD i ][yD j ] is 1 is set equal to - Or, if one or more of the following conditions are TRUE, then bS[xD i ][yD j ] equal to 1. the coding sub-block containing sample p0 and the coding sub-block containing sample q0 Both blocks are coded in IBC prediction mode, and the prediction of the two coding sub-blocks is The absolute difference in the horizontal or vertical components of the motion vectors used is 4 / 4 luma sample units. That's all. For the prediction of the coding subblock containing sample p0, A different reference picture or a different number of motion vectors are used for the prediction of the coded subblock. can be. NOTE 1 – The reference pictures used for the two coding subblocks may be the same or different. Either an index into reference picture list 0 is used to form the prediction, or Whether the reference picture list is formed using an index into the reference picture list 1 or the reference picture list 2, and Which picture is referenced is always the same, regardless of whether their index positions in the picture list are different. The judgement is based solely on whether NOTE 2 - The prediction of the coding sub-block whose upper left sample contains (xSb, ySb) The number of motion vectors used for estimation is PredFlagL0[xSb][ySb]+Pr Equivalent to edFlagL1[xSb][ySb]. - one motion vector for predicting the coding sub-block containing sample p0 , and one motion vector predicts the coding sub-block containing sample q0. The absolute difference in the horizontal or vertical components of the motion vectors used is 1 / 4 luminance The sample size is 4 or more. - Sample p0 using two motion vectors and two different reference pictures The coding sub-block containing the 3D vectors is predicted using two motion vectors from the same two reference pictures. q0 is used to predict the coding sub-block containing sample q0, and two coding The absolute difference in the horizontal or vertical components of the two motion vectors used to predict a coded subblock. is 4 or more in quarter-luminance sample units. - Coding involving sample p0 using two motion vectors of the same reference picture Predict a subblock,sample q,using two motion vectors of the same reference picture. Predict a coded sub-block that contains zeros, and both of the following conditions hold: - the horizontal division of the motion vectors in list 0 used for the prediction of the two coded sub-blocks Or the absolute difference between the vertical components is greater than or equal to 4 for the quarter luminance samples, or The horizontal or vertical component of the motion vector of List 1 used to predict the coding subblock of is greater than or equal to 4 in quarter luma samples. - the list 0 motion vector used for predicting the coding sub-block containing sample p0 The horizontal or vertical component of the vector is used to predict the coding subblock that contains sample q0. the absolute difference between the list 1 motion vector and the corresponding list 2 motion vector is greater than or equal to 4 in 1 / 4 luma samples, or the list 1 motion vector used to predict the coding sub-block containing sample p0 and the link used to predict the coding subblock containing sample q0. The absolute difference between the step 0 motion vector and the step 1 motion vector is greater than or equal to 4 in units of 1 / 4 luma samples. - Or, the variable bS[xD i ][yD j ] to 0.
[0119] Tables 1 and 2 summarize the rules for calculating BS.
[0120] [Table 3]
[0121] [Table 4]
[0122] 2.9.3 Luminance Deblocking Decision
[0123] The deblocking decision process is described in this subsection.
[0124] A wider, stronger luminance filter is used when conditions 1, 2, and 3 are all true. This filter is used only when
[0125] Condition 1 is the "large block condition." This condition is that the P and Q side samples are The variables bSidePisLargeBlk and bSideQisLargeBlk are bSidePisLarg eBlk and bSideQisLargeBlk are defined as follows: bSidePisLargeBlk=((edge type is vertica l and p0belongs to CU with width>=32) | | (edge type is horizontal and p0belong s to CU with height>=32))?TRUE:FALSE bSideQisLargeBlk=((edge type is vertica l and q0belongs to CU with width>=32) | | (edge type is horizontal and q0belong s to CU with height>=32))?TRUE:FALSE
[0126] Based on bSidePisLargeBlk and bSideQisLargeBlk Therefore, condition 1 is defined as follows: Condition1=(bSidePisLargeBlk || bSidePis LargeBlk) ?TRUE:FALSE
[0127] Next, if condition 1 is TRUE, condition 2 is checked. First, the following variables Derive. - First derive dp0, dp3, dq0, and dq3 as HEVC - If (p side is 32 or more), dp0=(dp0+Abs(p50-2*p40+p30)+1)>>1 dp3=(dp3+Abs(p53-2*p43+p33)+1)>>1 - If (q side is 32 or more), dq0=(dq0+Abs(q50-2*q40+q30)+1)>>1 dq3=(dq3+Abs(q53-2*q43+q33)+1)>>1 Condition 2=(d<β)?TRUE:FALSE As shown in Chapter 2.2.4, where d = dp0 + dq0 + dp3 + dq3.
[0128] If condition 1 and condition 2 are valid, any block uses a subblock. Check further to see if this is the case. If(bSidePisLargeBlk) If(mode block P==SUBBLOCKMODE) Sp=5 else Sp=7 else Sp=3 If (bSideQisLargeBlk) If (mode block Q==SUBBLOCKMODE) Sq=5 else Sq=7 else Sq=3
[0129] Finally, if both conditions 1 and 2 are valid, the proposed unblocking method Then, check condition 3 (strong filter condition for large blocks) defined as follows: In condition 3, StrongFilterCondition, derive the following variables: . dpq is derived in the same way as in HEVC. sp3 = Abs(p3-p0), derived similarly to HEVC If (p side is 32 or more), then if(Sp==5) sp3=(sp3+Abs(p5-p3)+1)>>1 else sp3=(sp3+Abs(p7-p3)+1)>>1 sq3=Abs(q0-q3) is derived in the same way as in HEVC If (q side is 32 or more), then If(Sq==5) sq3=(sq3+Abs(q5-q3)+1)>>1 else sq3=(sq3+Abs(q7-q3)+1)>>1
[0130] As with HEVC, StrongFilterCondition=(dpq is (β> >2), sp3+sq3 is less than (3*β>>5), and Abs(p0-q0) is ( 5*t C +1)>>1)?TRUE:FALSE.
[0131] 2.9.4 Stronger deblocking filter for luminance (for larger blocks) Designed
[0132] Bilinear filters are used when the samples on both sides of a boundary belong to one large block. A sample belonging to a large block is considered to be a vertical edge with a width ≥ 32. For horizontal edges, this is defined as when the height is ≥ 32.
[0133] The bilinear filter is shown below.
[0134] Next, in the above-mentioned HEVC deblocking, the boundary subsequences of blocks for i=0 to Sp-1 are calculated. Sample P i and the boundary samples qi(p i , qi is the vertical Filter the i-th sample in a row, or filter a horizontal edge. The i-th sample in the column to be replaced by linear interpolation as follows:
[0135]
number
[0136] tcPD i and tcPD j The term is the position-dependent clipping described in chapter 2.9.7, and g j ,f i ,Middle s , t ,P s and Q s is shown in Table 3.
[0137] [Table 5] [Table 6]
[0138] 2.9.5 Chroma Deblocking Control
[0139] A strong chroma filter is used on both sides of the block boundary. The data is selected if both sides of the chroma edge are 8 (chroma position) or more, and three The first one is for boundary strength and large blocks, subject to the above conditions. The proposed filter performs block-based filtering in the chroma sample domain. This applies when the width or height of the block perpendicular to the edge of the block is 8 or more. The first and third are essentially the same as the HEVC luma deblocking decision, respectively. This determines whether the filter is on or off and whether it is strong. In the first determination, the boundary strength (bS ) is modified. The conditions in Table 2 are checked in order. If the conditions are met, the remaining priority The lower priority condition is skipped.
[0140] If a big block boundary is detected, bS is equal to 2 or bS is equal to 1. Then, chroma deblocking is performed.
[0141] The second and third conditions are basically the HEVC luminance filter, as follows: This is similar to a decision.
[0142] In the second condition, Then, we derive d similarly to HEVC luma deblocking. The second condition is TRUE if d is less than β.
[0143] In the third condition, StrongFilterCondition is as follows: It is derived. dpq is derived in the same way as in HEVC. sp3 = Abs(p3-p0), derived similarly to HEVC sq3=Abs(q0-q3) is derived in the same way as in HEVC
[0144] As in the HEVC design, StrongFilterCondition=(dp q is less than (β>>2), sp3+sq3 is less than (β>>3), and Abs(p0 _q0) is (5*t C +1)>>1 is less than.
[0145] 2.9.6 Strong Deblocking Filter for Chroma
[0146] A strong deblocking filter for chroma is defined as follows: p2'=(3*p3+2*p2+p1+p0+q0+4)>>3 p1'=(2*p3+p2+2*p1+p0+q0+q1+4)>>3 p0'=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3
[0147] The proposed chroma filter performs deblocking on a 4x4 chroma sample grid. conduct.
[0148] 2.9.7 Position-Dependent Clipping
[0149] Position-dependent clipping tcPD modifies 7, 5, and 3 samples at the boundaries. A luminance filtering process is applied to the output samples, which includes a strong and long filter. Given the error distribution, we use the quantization noise for samples that are expected to have higher quantization noise. It is proposed to increase the clipping value, so that the TRUE of the reconstructed sample value It is expected that the σ will have a higher deviation from the sample values.
[0150] For each P or Q bound filtered by the asymmetric filter, Based on the result of the decision-making process in the decoder, a position-dependent threshold table is sent to the decoder as side information. Selected from two tables provided (i.e., Tc7 and Tc3, summarized below) do. Tc7={6,5,4,3,2,1,1}; Tc3={6,4,2}; tcPD = (Sp = = 3)?Tc3:Tc7; tcQD=(Sq==3)?Tc3:Tc7;
[0151] For P or Q boundaries that are filtered with short symmetric filters, the smaller position Dependent thresholds are applied. Tc3={3,2,1};
[0152] After defining the threshold, the signal is filtered according to the tcP and tcQ clipping values. T i and q' i Clipping the sample values. p'' i =Clip3(p' i +tcP i ,p'i -tcP i ,p' i ); q'' j =Clip3(q' j +tcQ j ,q' j -tcQ j ,q' j ); Here, p' i and q' i is the filtered sample value, and p'' i and q'' j is the output sample value after clipping, and tcP i tcP i is VVC tc is the clipping threshold derived from the parameters tcPD and tcQD. ip3 is the clipping function, as specified in VVC.
[0153] 2.9.8 Sub-block deblocking adjustment
[0154] Parallel friendly deblocking and subblocking using both long filters To allow for blocking, the long filter is added to the brightness control for the long filter. Subblock deblocking (AFFINE, ATMVP, or DMVR) as shown The user is limited to modifying a maximum of five samples. Block deblocking is done by dividing blocks into subblocks on an 8x8 grid close to CU or implicit TU boundaries. The boundary correction is adjusted to be limited to a maximum of two samples on each side.
[0155] The following applies to sub-block boundaries that are not aligned with CU boundaries. If(mode block Q==SUBBLOCKMODE && edge != 0) { if(!(implicitTU && (edge==(64 / 4)))) if (edge==2 || edge==(orthogonalLeng th-2) || edge==(56 / 4) || edge==(72 / 4)) Sp=Sq=2; else Sp=Sq=3; else Sp=Sq=bSideQisLargeBlk?5:3 }
[0156] In this case, edges equal to 0 correspond to CU boundaries, edges equal to 2 or to the orthogonal length -2. The equal edges correspond to the boundary 8 samples of the subblock from the CU boundary. If an implicit partition of U is used, then implicit TU is TRUE.
[0157] 2.9.9 Limitation to 4CTU / 2CTU row buffers for luma / chroma
[0158] If a horizontal edge is aligned with a CTU boundary, the filtering of the horizontal edge is In this case, Sp=3, and in the case of chroma, Sp=1, Sq=1.
[0159] 2.10 Palette Mode Combined with Intra Prediction Mode (PCIP)
[0160] In JVET-M0051, a palette mode combined with intra prediction was proposed. In this scheme, the decoder first predicts the predicted block based on the intra prediction method. The decoder then decodes the palette and index map. The decoded palette information is used to fine-tune the prediction block and reconstruct the block.
[0161] Figure 9 shows an example of combining palette information and intra prediction information. First, the decoder Generate a prediction block (pixel values A0 to A15). Then the decoder operates in palette mode. Decode the index map. To reconstruct the block, use the decoded index If a pixel is a "0", the corresponding pixel is marked as a "P", as shown in Figure 6. Pixels marked with "P" are reconstructed by pixel values of the intra predicted block. Otherwise, the pixel is reconstructed with the palette colors C0, C1, etc.
[0162] 2.11 Composite Palette Mode (CPM)
[0163] As with JVET-N0259, samples in composite palette mode are When the sample size is 0, the sample can be reconstructed by copying the sample placed at the same position in the IBC prediction. Otherwise, the current sample is reconstructed by the colors in the palette. , showing the proposed palette mode.
[0164] In mixed palette mode, the luma block uses the first available merge candidate to Since the BC prediction is generated, there is no need to signal the motion information of the IBC prediction. In this case, the motion compensation of CPM is the same as that of VTM4.
[0165] In addition, the encoding of the escaped pixels is modified. The quantized residual between the IBC predicted samples is signaled. All escape pixels in the bit mode are extracted by combining the decoded residual and the IBC prediction. To be reconstructed.
[0166] 2.12 Intra prediction with 67 intra prediction modes in JVET-N0185 Mode Encoding
[0167] In order to capture arbitrary edge directions in natural video, we The number of available intra modes is extended from 33 to 65 as used in HEVC. The new directional modes not present in EVC are shown in Figure 11 by the red dotted arrows and are planar modes. The directional and DC modes remain the same. These denser intra prediction modes are , applies to all block sizes and to both luma and chroma intra prediction.
[0168] Regardless of whether the MRL and ISP coding tools are applied, A unified 6-MPM list is proposed for locks. The MPM list is shown in Figure 12. As shown in the figure, in VTM4.0 and other cases, the intra mode of the upper left neighboring block is used. It is composed.
[0169] Here, if the mode of the left side is Left and the mode of the above block is Above, The integrated MPM list is constructed in the following steps, in order: - If the intra prediction mode of a neighboring block is invalid, the intra mode is set to the default. The default is to set the plane. - If Left and Above are the same and both have angles, o MPM list → {Planar, Left, Left-1, Left+1, DC , Left-2} - If Left and Above are different and both have angles, o Set Max mode to Left and Above greater mode. o If the difference between Left mode and Above mode is within the range of 2~62 ■ MPM list→{Planar,Left,Above,DC,Max- 1,Max+1} Or, ■ MPM list → {Planar, Left, Above, DC, Max-2, Max+2} - Left and Above are different, and one of Left and Above is in angle mode. and the other is in non-angle mode, o Set Max mode to Left and Above greater mode. o MPM list → {Planar, Max, DC, Max-1, Max+1, Ma x-2} - If modes Left and Above are both non-angle modes, o MPM list → {Planar, DC, V, H, V-4, V+4}
[0170] If the mode index (e.g., Max+2) exceeds the range [0, 66], Any other valid mode index may be substituted.
[0171] The first MPM candidate, i.e., Planar mode, is trusted separately from the remaining MPM candidates. The number will be notified.
[0172] The more detailed syntax, semantics, and decoding process are described below:
[0173] [Table 7] [Table 8] [Table 9]
[0174] Syntax elements intra_luma_mpm_flag[x0][y0], intra_l uma_not_planar_flag[x0][y0], intra_luma_m pm_idx[x0][y0] and intra_luma_mpm_remainde r[x0][y0] specifies the intra prediction mode for the luma sample. The x0,y0 matrix is the left pixel of the considered coding block relative to the top-left luminance sample of the picture. Specifies the position (x0, y0) of the top luminance sample. If ag[x0][y0] is equal to 1, then the adjacent intra prediction is performed according to Section 8.4.2. The intra-prediction mode is inferred from the predicted coding unit.
[0175] intra_luma_mpm_flag[x0][y0] does not exist (for example, I SP is enabled or MRL is enabled (with reference index > 0) If so, it is inferred to be equal to 1.
[0176] intra_luma_not_planar_flag[x0][y0] does not exist If no MRL is available (e.g., MRL is available), it is inferred to be equal to 1.
[0177] 8.4.2 Derivation Process for Luminance Intra Prediction Modes
[0178] The inputs to this process are: - The top-left sample of the current luma coding block relative to the top-left luma sample of the current picture. The luminance position (xCb, yCb) that defines the sample a variable cbWidth that specifies the width of the current coding block in luma samples, - The variable cbHeight, which specifies the height of the current coding block in luma samples. .
[0179] In this process, the luminance intra prediction mode IntraPredModeY[xCb][ yCb] is derived. Table 8-1 shows the intra prediction mode IntraPredModeY[xCb][yCb]. Indicates a value and its associated name.
[0180] [Table 10]
[0181] Note: Intra prediction modes INTRA_LT_CCLM, INTRA_L_CCLM, INTRA_LT_CCLM, INTRA_L_CCLM NTRA_T_CCLM is only applicable to the chroma components.
[0182] IntraPredModeY[xCb][yCb] is derived as follows:
[0183] - intra_luma_not_planar_flag[xCb][yCb] is 1 If it is equal to, then the following ordered steps:
[0184] 1. The neighboring positions (xNbA, yNbA) and (xNbB, yNbB) are (x Cb-1,yCb+cbHeight-1) and (xCb+cbWidth-1,yC b-1).
[0185] 2. If you replace X with either A or B, the variable candIntraPredMo deX is derived as follows: - Section 6.4.X [Ed.(BB): Neighborhood Block Availability Derivation Process tbd] specifies The availability derivation process of the block to be processed takes as input the position (xCurr, yCurr) set equal to (xCb, yCb), and the neighboring position set equal to (xNbX, yNbX) (xNbY, yNbY) and assigns the output to availableX. - The candidate intra prediction mode candIntraPredModeX is derived as follows . - If one or more of the following conditions are TRUE, set candIntraPredMo deX equal to INTRA_PLANAR. - The variable availableX is equal to FALSE. - CuPredMode[xNbX][yNbX] is not equal to MODE_INTRA, and ciip_flag[xNbX][yNbX] is not equal to 1. - pcm_flag[xNbX][yNbX] is equal to 1. - X is equal to B, and yCb_1 is less than ((yCb >> CtbLog2SizeY) < < CtbLog2SizeY). - Otherwise, set candIntraPredModeX equal to IntraPred ModeY[xNbX][yNbX].
[0186] 3. When x = 0..4, candModeList[x] is derived as follows . - If candIntraPredModeB is equal to candIntraPredModeA and candIntraPredModeA is greater than INTRA_DC, then candModeList[x] (x = 0..4) is derived as follows. candModeList[0] = candIntraPredModeA (8 - 10) candModeList[1]=2+((candIntraPredModeA +61)%64) (8-12) candModeList[2]=2+((candIntraPredModeA -1)%64) (8-13) candModeList[3]=INTRA_DC (8-11) candModeList[4]=2+((candIntraPredModeA +60) %64) (8-14) - Else, if candIntraPredModeB is not equal to candIntraPredModeA, and candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC, the following applies: The variables minAB and maxAB are derived as follows: minAB=Min(candIntraPredModeA,candIntr aPredModeB) (8-24) maxAB=Max(candIntraPredModeA,candIntr aPredModeB) (8-25) - candIntraPredModeA and candIntraPredMod candMod for x=0..4 if both e and B are greater than INTRA_DC eList[x] is derived as follows: candModeList[0]=candIntraPredModeA (8 -27) candModeList[1]=candIntraPredModeB (8 -29) candModeList[2]=INTRA_DC (8-29) - if maxAB-minAB is in the range 2 to 62, the following applies: candModeList[3]=2+((maxAB+61)%64) (8 -30) candModeList[4]=2+((maxAB-1)%64) (8- 31) - If not, the following applies: candModeList[3]=2+((maxAB+60)%64) (8 -32) candModeList[4]=2+((maxAB)%64) (8-33 ) - Otherwise (candIntraPredModeA or candInt raPredModeB>INTRA_DC), candModeList for x=0..4 t[x] is derived as follows: candModeList[0]=maxAB (8-65)candMode List[1]=INTRA_DC (8-66) candModeList[2]=2+((maxAB+61)%64) (8- 66) candModeList[3]=2+((maxAB-1)%64) (8-6 7) candModeList[4]=2+((maxAB+60)%64) (8- 68) - If not, the following applies: candModeList[0]=INTRA_DC (8-71) candModeList[1]=INTRA_ANGULAR50 (8-72) candModeList[2]=INTRA_ANGULAR18 (8-73) candModeList[3]=INTRA_ANGULAR46 (8-74) candModeList[4]=INTRA_ANGULAR54 (8-75)
[0187] 4. IntraPredModeY[xCb][yCb] applies the following steps: It is derived by: - if intra_luma_mpm_flag[xCb][yCb] is equal to 1 , IntraPredModeY[xCb][yCb] candModeList[ It is set equal to intra_luma_mpm_idx[xCb][yCb]. - Otherwise, IntraPredModeY[xCb][yCb] in the following order: It is derived by applying the steps of 1. candModeList[i] is greater than candModeList[j] For i=0..3, for each i,j=(i+1)..4), both values are swapped as follows: (candModeList[i],candModeList[j]) = Swap(candModeList[i],candModeList[j]) (8 -94) 2. IntraPredModeY[xCb][yCb] is derived in the following steps: It is served. i.IntraPredModeY[xCb][yCb] is intra_luma It is set equal to _mpm_remainder[xCb][yCb]. ii. The value of IntraPredModeY[xCb][yCb] is increased by 1. iii.For i=0~4, IntraPredModeY[xCb][yCb] If is greater than or equal to candModeList[i], then IntraPredModeY[x The value of [Cb][yCb] is increased by 1.
[0188] - otherwise (intra_luma_not_planar_flag[xCb ][yCb] is equal to 0), IntraPredModeY[xCb][yCb] is equal to I Set equal to NTRA_PLANAR.
[0189] x=xCb..xCb+cbWidth-1 and y=yCb..yCb+cbHeig In the case of ht-1, the variable IntraPredModeY[x][y] is dMode is set equal to Y[xCb][yCb].
[0190] In the case of chroma intra mode coding, a total of eight These modes include five traditional intra modes and six The component common linear model modes are included (CCLM, LM_A and LM_L). The chroma mode signaling and derivation process is shown in Table 3. The chroma mode encoding is In an I slice, the intra prediction mode of the luminance and chrominance components is directly dependent on the intra prediction mode of the luminance block. The separation of the block division structure for the chroma components is enabled, so that one chroma block may correspond to multiple luma blocks. Therefore, in chroma DM mode, the current The intra prediction mode of the corresponding luminance block, including the center position of the luminance block, is directly inherited. can be.
[0191] [Table 11]
[0192] 2.13 History-Based Merge Candidate Deriving
[0193] History-based MVP (HMVP) merging candidates are merged after spatial MVP and TMVP. In this method, the motion information of the pre-encoded blocks is added to the template list. During the encoding / decoding process, multiple A table is maintained with the HMVP candidates. When a new CTU row is detected, the table The related CU is reset (empty) whenever there is a non-subblock inter-coded CU. The motion information is added to the last entry of the table as a new HMVP candidate.
[0194] In VTM5, the HMVP table size S is set to 5. This means that up to 5 It shows that we can add History Based MVP (HMVP) candidates to the table. A constrained first-in-first-out (FIFO) rule is used to insert motion candidates into the table. In this rule, the redundancy check is applied first and checks whether there are identical HMVPs in the table. If found, the identical HMVP is removed from the table and After that, all HMVP candidates are moved forward, and the HMVP candidates are merged in the merge candidate list construction process. The most recent HMVP candidates in the table are checked in order, It is inserted in the candidate list after the TMVP candidate. Redundancy check is performed by applied to potential merge candidates.
[0195] 2.14 Scaling List
[0196] The scaling list (cf quantization matrix) can be applied during the (de)quantization process. H In EVC, a user-defined scaling value is signaled in the PPS, allowing TB sizes, Each color component and prediction type (intra / inter) can have its own scaling list. However, the 32x chroma format is only used for 4:4:4 RExt chroma format. 32 chroma blocks are removed. For 16x16 and 32x32 scaling lists ,The scaling list is, together with the value used for the entry corresponding to the DC frequency location, The values are specified in an 8x8 grid where the value is repeated to the required size.
[0197] 2.15 Triangulation Mode for Inter Prediction (TPM)
[0198] In VTM4, triangulation mode is supported for inter prediction. The partition mode is 8x8 or more and is coded in skip or merge mode for CUs. This applies only to the CIIP mode and not to the MMVD or CIIP mode. If U, signals a CU-level flag to indicate whether triangulation mode applies. vinegar.
[0199] When using this mode (Figure 14), either a diagonal or anti-diagonal split can be used. Then, we divide one CU into two equal triangular partitions. Each partition is inter-predicted using its own motion, and for each partition Only uni-prediction is allowed for each partition, i.e., each partition can only have one motion vector and It has one reference index. As with conventional bi-prediction, it has two motion compensation predictions per CU. In order to reduce the need for a single prediction motion constraint, the From the single prediction candidate list constructed using the process, the single prediction behavior of each partition is calculated. Derive.
[0200] If the CU-level flag indicates that the current CU is coded in triangulation mode, If you use a triangulation mode, the orientation of the triangle partitions (diagonal or anti-diagonal) ), and two merge indexes (one for each partition). After predicting each of the triangle partitions, we perform adaptive weighted blending. is used to adjust the sample values along the diagonal or anti-diagonal edges. This is the overall CU prediction. As with other prediction modes, the transform and quantization process is applied to the entire CU. Finally, we use the triangulation mode to estimate the CUs. The motion field is stored in 4x4 units.
[0201] 2.15.1 Single prediction candidate list construction
[0202] This single prediction candidate list consists of five single prediction motion vector candidates. The spatially neighboring blocks (labeled 1 to 5 in Fig. 15) of 15. The seven blocks, including the blocks that are essentially in the same position (labeled 6-7 in FIG. 15). It is derived from the neighboring blocks of . Collect the seven neighboring blocks and, in the following order: First, we collect the motion vectors of the neighboring blocks that are uni-predicted. Then, the motion vectors of the neighboring blocks that are single predicted are collected and put into a single prediction candidate list. Then, for the bi-predicted neighboring blocks, we collect the L0 motion vectors (i.e. , the L0 motion vector part of the bi-predictive MV), the L1 motion vector (i.e., the L 1 motion vector part), and the averaged motion vector of L0, L1 motion vector of bi-predictive MV If the number of candidates is less than 5, we add a zero motion vector to the end of the list. Add.
[0203] 2.15.2 Blending along triangle division edges
[0204] After predicting each triangle partition with its own motion, we blend the two prediction signals. Applying the approximation 1 to the diagonal or anti-diagonal edges derives samples near the diagonal or anti-diagonal edges. The following weights are used:
[0205] As shown in the example of Figure 16, the brightness is 7 / 8, 6 / 8, 5 / 8, 4 / 8, 3 / 8. ,2 / 8,1 / 8}, and for chroma it is {6 / 8,4 / 8,2 / 8}.
[0206] 2.15.3 Motion Field Storage
[0207] The motion vectors of a CU coded in triangulation mode are stored in 4x4 units. Based on the position of the 4x4 unit, one predictive motion vector or two predictive motion vectors are used. Mv1 and Mv2 are partition 1 and partition 2, respectively. As shown in FIG. 16, four motion vectors are added to the non-weighted region. If there are 4 units in the same position, the Mv1 or Mv2 will be applied to those 4 units. Otherwise, if the 4×4 unit is located in the weighted region, The bi-predictive motion vectors Mv1 and Mv2 are stored according to the following process: Derive the vector.
[0208] 1) Mv1 and Mv2 are taken from different reference picture lists (one from L0 and the other from L 1), simply combine Mv1 and Mv2 to obtain a bi-predictive motion vector Form.
[0209] 2) Otherwise, if Mv1 and Mv2 come from the same list, and without loss of generality In this case, we assume that both come from L0. In this case,
[0210] a) If any reference picture of Mv2 (or Mv1) appears in L1, then Mv2 (or Mv1) is the L1 motion vector using its reference picture in L1. Then, the two motion vectors are combined to form a bi-predictive motion vector. .
[0211] b) Otherwise, instead of the bi-predictive motion, only the uni-predictive motion Mv1 is stored. do.
[0212] 2.16 In-loop filters
[0213] VTM5 has a total of three in-loop filters: the deblocking filter and the SAO. In addition to the two loop filters in HEVC, an adaptive loop filter (ALF) is added to VTM. The order of the filtering process in VTM5 is the deblocking filter , SAO, and ALF.
[0214] In VTM5, the SAO and deblocking filtering processes are the same as those in HEVC. It is almost the same as
[0215] In VTM5, a new process called Luminance Mapping with Chroma Scaling is implemented. (This process was previously called the Adaptive In-Loop Reshaper.) The new processing is done before deblocking.
[0216] 2.16.1 Adaptive Loop Filter
[0217] In VTM5, the adaptive loop filter (ALF) with block-based filter adaptation ) is applied to the luminance component, which is then divided into 4x4 blocks based on the direction and effect of the local gradient. Select one of 25 filters for each.
[0218] 2.16.1.1 Filter Shape
[0219] In VTM5, two diamond filter shapes (shown in Figure 19) are used. Luminance Component A 7x7 diamond is applied to the chromatic components, and a 5x5 diamond is applied to the chrominance components.
[0220] 2.16.1.2 Block Classification
[0221] For the luminance component, we classify each 4x4 block into one of 25 classes. The index C is calculated based on the quantized value of its directionality D and activity A^ as follows: It is derived as follows.
[0222]
number
[0223] To calculate D and A^, we first use the 1-D Laplacian to find the horizontal, vertical and and compute the gradients in the two diagonal directions.
[0224]
number
[0225] In this case, i and j represent the coordinates of the top-left sample of a 4×4 intra block, and R (i,j) denotes the reconstructed sample at coordinate (i,j).
[0226] Subsampled 1-D Laplacian to reduce the complexity of block partitioning The same subsampling is applied to the gradient calculation in all directions, as shown in Figure 20. Use the tag position.
[0227] Then, set the Dmax and Dmin values of the horizontal and vertical gradients as follows: do.
[0228]
number
[0229] The maximum and minimum values of the two diagonal gradients are set as follows:
[0230]
number
[0231] To derive the value of the directivity D, these values are compared with each other and with two thresholds t1 and t2. compare.
[0232]
number
[0233] The activity value A is calculated as follows:
[0234]
number
[0235] A is further quantized into the range of 0 to 4, and the quantized value is defined as A^.
[0236] For the chroma components in a picture, no classification method is applied, i.e. a single ALF function is used. A set of numbers is applied to each chroma component.
[0237] 2.16.1.3 Geometric Transformation of Filter Coefficients and Clipping Values
[0238] Before filtering each 4 × 4 luminance block, the gradient calculated for that block is Based on the arrangement, the filter coefficients f(k,l) and the corresponding filter clipping values c( k,l) are subjected to a geometric transformation such as rotation or diagonal and vertical flip. This is equivalent to applying these transformations to the samples in the filter's support domain. By aligning the different blocks to which ALF is applied, The idea is to make something similar.
[0239] We introduce three geometric transformations including diagonal, vertical flip and rotation.
[0240]
number
[0241] In this case, K is the size of the filter, 0≦k, l≦K-1 are the coefficient coordinates, and the position (0,0) is the upper left corner, and position (K-1,K-1) is the lower right corner. Based on the gradient value calculated for the block, the filter coefficients f(k,l) and the clipping factor The relationship between the transformation and the four gradients in the four directions is shown in the table below. Stop.
[0242] [Table 12]
[0243] 2.16.1.4 Filter Parameter Signaling
[0244] In VTM5, the ALF filter parameters are stored in the Adaptive Parameter Set (APS). Up to 25 sets of intensity filter coefficients and crosstalk are signaled in one APS. Clipping value index and up to one set of chroma filter coefficients and clipping values To reduce bit overhead, different In the slice header, the filter coefficients of the current slice can be merged. The index of the APS to be used for the Rice is signaled.
[0245] The clipping value index decoded from the APS is a luminance table of clipping values. Luma table and Chroma table of clipping values You can now use the clipping function to determine the clipping values. The clipping values depend on the internal bit depth. Specifically, the luminance table of clipping values and the chroma table is given by the following formula:
[0246]
number
[0247] where B is equal to the internal bit depth and N is the allowed clipping limit in VTM5.0. This is equal to 4, the number of binning values.
[0248] The filtering process may be controlled at the CTB level. The ALF is applied to the luminance CTB. One flag is always signaled to indicate whether or not one brightness CTB is enabled. Select one of 16 fixed filter sets and filter multiple APSs at once. You can select one filter set. The icon indicates which filter set is applied. The filter set index is signaled for the luma CTB as follows: A set of 16 fixed filters is predefined and hard-coded in both the decoder and the processor. Do it.
[0249] The filter coefficients are quantized with a norm equal to 128 to reduce the multiplication complexity. , the coefficient value for non-central locations is -2 7 ~2 7 -1 to fall within the range of the bitstream Conformance applies. The center position coefficient is not signaled in the bitstream and is 128 is considered to be equal to
[0250] 2.16.1.5 Filtering Process
[0251] On the decoder side, when ALF is enabled for CTB, each sample in the CU (i,j) is filtered, resulting in sample value R'(i, j) is obtained.
[0252]
number
[0253] In this case, f(k,l) represents the decoded filter coefficients and K(x,y) represents the clipping coefficients. where c(k,l) is the decoded clipping parameter. and l vary between -L / 2 and L / 2, where L represents the filter length. The clipping function K(x,y)=min(y,max(-y,x)) corresponds to the function Clip3(-y,y,x).
[0254] 2.16.1.6 Virtual Boundary Filtering for Row Buffer Reduction
[0255] In VTM5, to reduce the row buffer requirements for ALF, A modified block partitioning and filtering is used for the samples. Then, we shift the horizontal CTU boundary by “N” samples as shown in Figure 22. Therefore, we define the virtual boundary as the row,N,equals 4 for the luminance component and For , it is equal to 2.
[0256] We apply the modified block partitioning to the luminance component as shown in Figure 21. For the 1D Laplacian gradient calculation of the upper 4x4 block, the samples above the virtual boundary are Similarly, we use only the 1D Laplacian gradient meter for the 4×4 blocks below the virtual boundary. For the computation, we use only the samples below the virtual boundary. Therefore, the 1D Laplacian gradient Taking into account the reduced number of samples used in the calculation, the activity value A Scale the quantization.
[0257] For the filtering process, a symmetric padding operation on the virtual boundary is performed on the luminance and As shown in Figure 22, the samples to be filtered are used for both the chromatic and chrominance components. If it is below the virtual boundary, pad the neighboring samples that are above the virtual boundary. Meanwhile, the corresponding samples on the other side are also padded symmetrically.
[0258] 2.16.2 Long Tap Deblocking Filter
[0259] In VTM5, the deblocking filtering process is almost identical to that of HEVC. It is the same, with the following modifications added: a) A deblocking filter that depends on the average luminance level of the reconstructed samples. strength. b) Non-blocking tC table expansion c) A stronger deblocking filter for luma d) A stronger deblocking filter for chroma
[0260] 2.16.2.1 Filter strength dependent on reconstructed average luminance level
[0261] In HEVC, the filter strength of the deblocking filter is determined by the averaged quantization parameter. TaqP L The variables β and t C In VTM5, the non-blocking The quantization filter adjusts the luminance level of the reconstructed sample according to the luminance level of the qP L Add an offset to The strength of the deblocking filter is controlled by the reconstructed luminance level LL is derived as follows: LL=((p 0,0 +p 0,3 +q 0,0 +q 0,3 )>>2) / (1< <bitDep th) (3-15)
[0262] Here, the sample value p i、k and q i、k (i=0..3 and k=0 and 3) , is derived as shown in FIG.
[0263] Variable qP L is derived as follows: qP L =((Qp Q +Qp P +1)>>1)+qpOffset (3-16)
[0264] Here, Qp Q and Qp P are sample q 0,0 andp 0,0 Coding unit including The offset qpOffset depends on the transfer function and its value is S Signaled in the PS.
[0265] 2.16.2.2 Non-blocking tC table expansion
[0266] In VTM5, the max QP has been changed from 51 to 63, and non-blocking QP has been based on the block QP. reflecting the corresponding changes in the unblocking table that derives the value of the block parameter tC. Below is the updated tC table to accommodate the expanded QP range:
[0267] tC=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4, 5,5,6,6,7,8,9,10,11,13,14,16,18,20,22,25 ,28,31,35,39,44,50,56,63,70,79,88,99]
[0268] 2.16.2.3 Stronger deblocking filter for luma
[0269] If the samples on either side of the boundary belong to a large block, a bilinear filter (more A powerful deblocking filter is used. Samples belonging to large blocks are demultiplexed by vertical edges. Defined as width ≥ 32 for horizontal edges and height ≥ 32 for horizontal edges. Next, block boundary samples p for i=0 to Sp-1 are i , and block boundary samples q for j=0 to Sq-1 iis replaced by linear interpolation as follows:
[0270]
number
[0271] where tcPD i and tcPD j term is the position-dependent clipping, and g j , f i , Middle s、t , P s , and Q s is as follows:
[0272] [Table 13]
[0273] The stronger luminance filter above works when conditions 1, 2, and 3 are all true. Condition 1 is the "big block condition." This condition is used only when the P side and the Q side Conditions 2 and 3 are the following: It is determined by the element. Condition 2=(d<β)? TRUE:FALSE Condition 3 = StrongFilterCondition = (dpq is (β>>2), sp3+sq3 is less than or equal to (3*β>>5), and Abs(p0-q0) is less than or equal to (5*tC+1)>>1). ? TRUE:FALSE
[0274] 2.16.2.4 Strong Deblocking Filter for Chroma
[0275] A strong deblocking filter for chroma is defined as follows: p2'=(3*p3+2*p2+p1+p0+q0+4)>>3 (3-19) p1'=(2*p3+p2+2*p1+p0+q0+q1+4)>>3 (3-20) p0'=(p3+p2+p1+2*p0+q0+q1+q2+4)>>3 (3-21)
[0276] The chroma filter performs deblocking on an 8x8 chroma sample grid. A strong chroma filter is used on both sides of the block boundaries. Here, the chroma filter is selected if both sides of the chroma edge are 8 (chroma sample units) or more, and the three The following conditional decisions are satisfied: The first one is for boundary strength and large block decisions. The second and third are essentially the same as the decision for HEVC luminance, These are the on / off decision and the strong filter decision, respectively. The boundary strength (bS) is modified for chroma filtering as shown in Table 3- Check each of the 12 conditions in order. If a condition is met, check the remaining lower priority conditions. will be skipped.
[0277] [Table 14]
[0278] If a big block boundary is detected, bS is 2 or bS is 1. Chroma deblocking is performed. The second and third conditions are essentially the HEVC luminance This is similar to the strong filter decision.
[0279] 2.16.2.5 Deblocking Filter for Sub-Block Boundaries
[0280] In VTM5, the deblocking filter is enabled on an 8x8 grid as in HEVC. The deblocking filtering process is performed on the CU boundaries and on the 8x8 grid. The subblock boundaries include the STMVP and affine The prediction unit boundaries introduced by the modes and the SBT and ISP modes The input transform unit boundaries are included. For SBT and ISP sub-blocks on an 8x8 grid, the same logic of TUs of the HEVC deblocking filter is applied: if there are non-zero coefficients in any sub-block across the edge, the deblocking filter is applied to the TU boundary of the 8x8 grid.
[0281] For SbTMVP and affine subblocks on an 8x8 grid, HEVC nonblock The same logic of the deblocking filter for the PU applies. The filter considers the difference between the motion vector and the reference picture of the neighboring subblocks and calculates an 8×8 Applied to the grid.
[0282] 2.16.3 Luminance Mapping with Chroma Scaling (LMCS)
[0283] In VTM5, a new processing block, chroma scaling, is added before the loop filter. A coding tool called Luminance Mapping by Color (LMCS) is added. has two main components: 1) an in-loop for the luminance component based on an adaptive piecewise linear model; mapping, and 2) for the chroma components, applying luminance-dependent chroma residual scaling. Figure 24 shows the LMCS architecture from the decoder's perspective. The light blue shaded blocks indicate the areas where processing has been applied in the mapped domain. These are inverse quantization, inverse transform, luma intra prediction, and luma prediction and luma The unshaded blocks in Figure 24 are the original (i.e., These indicate where in the non-blocking (non-blocked) domain the action is applied. Loop filters such as ALF and SAO, motion compensation prediction, chrominance intra-prediction, chrominance Add the chroma prediction along with the residual and store the decoded picture as a reference picture The light yellow shaded blocks in Figure 24 represent the forward and backward luminance signals. New LMCS functional blocks including pixel mapping and luminance-dependent chroma scaling Like most other tools in VVC, LMCS uses the SPS flag. It can be enabled / disabled at the sequence level using
[0284] 2.16.3.1 Luminance Mapping Using a Piecewise Linear Model
[0285] The in-loop mapping of the luminance component distributes the code names across the dynamic range. Adjusts the dynamic range of the input signal by redistributing it to improve compression efficiency The luminance mapping is defined as a forward mapping function FwdMap and a corresponding backward mapping Use the function InvMap. The FwdMap function is a piecewise line with 16 equal segments. The InvMap function does not need to be signaled, instead It is derived from the FwdMap function instead.
[0286] The luminance mapping model is signaled at the tile group level. Presence flag is signaled first. If a luminance mapping model exists for the current tile group, , the corresponding piecewise linear model parameters are signaled. The piecewise linear model is Divide the dynamic range of the signal into 16 equal parts and for each part, determine its linear mapping. The coding parameters are expressed using the number of the chord name assigned to that part. For example, Each of the 16 pieces takes a 10-bit input. By default, A chord name is assigned. The number of signaled chord names is calculated by the scaling factor. , which is used to adjust the mapping function accordingly for that part. At the loop level, another LMCS enable flag is signaled, as shown in Figure 24. Indicates whether the MCS process is being applied to the current tile group.
[0287] Each ith piece of the FwdMap piecewise linear model, i=0…15, is a function of two input pivots. The input point InputPivot[] and two output (mapped) pivot points M Defined by appedPivot[].
[0288] InputPivot[] and MappedPivot[] are calculated as follows ( Assumes 10-bit video). 1) OrgCW=64 2) For i=0:16,InputPivot[i]=i*OrgCW3)For For i=0:16, MappedPivot[i] is calculated as follows: MappedPivot[0] = 0; for(i=0;i<16;i++) MappedPivot[i+1]=MappedPivot[i]+Signal ledCW[i] where SignalledCW[i] is the signalled code for the ith piece. The number of domain names.
[0289] As shown in Figure 24, for inter-coded blocks, the motion compensation prediction is performed on the mapped data. In other words, the motion compensation prediction block Y pred is the reference signal for DPB After being calculated based on Domain Y' pred =FwdMap(Y pred ) applies to Intra For coded blocks, intra prediction is done in the mapped domain, so FwdM The ap function is not applied. The reconstructed block Y r After is calculated, the InvMap function is applied, and the reconstructed intensity values of the mapped domain are multiplied by the reconstructed intensity values of the original domain. Converted to a luminance value (Y^ i =InvMap(Y r )). The InvMap function It applies to both coded luma blocks and inter-coded luma blocks.
[0290] The luminance mapping process (forward and / or reverse mapping) consists of a lookup It can be implemented using either a look-up table (LUT) or on-the-fly calculations. When using the FwdMapLUT and InvMapLUT, they are applied at the tile group level. The forward and reverse mappings can be precomputed and stored for use in the FwdMap(Y pred )=FwdMapLUT[Y pred ] and InvM ap(Y r )=InvMapLUT[Y r ] or on the It is also possible to use on-the-fly computations. For example, the forward mapping function FwdMap To figure out which piece a luminance sample belongs to, the sample value is 6 bits. (which corresponds to 16 equal pieces). Then the linear The model parameters are obtained and applied on the fly to calculate the mapped luminance values. Let i be the piece index, a1 and a2 be InputPivot[i] and and InputPivot[i+1], b1, and b2 are respectively set to MappedPivot[i ] and MappedPivot[i+1]. The FwdMap function is evaluated as follows: will be done.
[0291]
number
[0292] The InvMap function can be calculated on the fly in a similar way, but it does not know which region the sample belongs to. Apply a conditional check when identifying pieces instead of a simple right bit shift The difference is that the domains are not all the same size.
[0293] 2.16.3.2 Luminance-Dependent Chroma Residual Scaling
[0294] Chroma residual scaling compensates for the interaction between a luma signal and its corresponding chroma signal. Whether chroma residual scaling is enabled depends on the tile group. Also signaled at the level. If intensity mapping is enabled and dual tree partitions (individual If a luminance-dependent chroma tree (also called a chroma tree) is not applied to the current tile group, An additional flag is signaled to indicate whether existing chroma residual scaling is enabled. If no mapping is used or the current tile group has a dual tree party When this option is used, luma dependent chroma residual scaling is disabled. Additionally, luminance-dependent chroma residual scaling is Always disabled.
[0295] Chroma residual scaling depends on the average value of the corresponding luma prediction block (intra (both coded luma blocks and inter-coded luma blocks). The average value of avgY' is shown. ScaleInv The value of is calculated using the following procedure: 1) The index of the piecewise linear model to which avgY' belongs, based on the InvMap function Y Idx Find. 2) C ScaleInv =cScaleInv[Y Idx ], where cScaleInv [] is a precomputed 16-piece LUT.
[0296] The current block is Intra, CIIP, or Intra Block Copy (IBC, also known as If the pixel is coded as a current picture reference (current picture reference or CPR) mode, then avgY' is It is calculated as the average of the Intra, CIIP, or IBC predicted luminance values. Otherwise, avgY' is calculated as the average of the forward-mapped inter-predicted luminance values. (Y' in Figure 24) pred ). Unlike sample-based brightness mapping, C ScaleInv is a constant value for the entire chroma block. ScaleInv Well then, Kuro. Residual scaling is applied as follows:
[0297]
number
[0298] 2.16.3.3 Encoder-side LMCS parameter estimation
[0299] A non-normative reference implementation is provided for estimating the LMCS model parameters in VTM5.0. The VTM anchor is provided by the encoder because SDR and HDR are processed differently. The reference algorithm in TM5.0 is different for SDR and HDR sequences. In the case of SDR, the encoder algorithm is based on local luminance transformations. It is optimized for the PSNR metric. For HDR PQ sequences, The encoder algorithm is based on luminance values and uses the wPSNR (weighted PSNR) metric. It is optimized for ricks.
[0300] 2.16.3.3.1 LMCS Parameter Estimation for SDR
[0301] The basic idea of the VTM5.0 reference implementation for SDR is that it has more code names. Assign pieces to those dynamic range segments that are lower than the average deformation, Assign non-standard chord names to those dynamic range segments that are higher than the average variant. In this way, smooth areas of the picture are coded with more code words than average. is encrypted and vice versa.
[0302] For an SDR test sequence, the reference algorithm performs the following signal analysis: 1) Input video statistics assume that an intra-encoding bit depth of 10 bits is used. If the bit depth of the internal encoding is not 10 bits, the bit depth is It is first normalized to 10 bits. 2) Divide the dynamic range of [0,1023] into 32 equal pieces. 3) For the position of each luminance sample within the picture, the local spatial deformation of the luminance sample value is , calculated using a 5×5 neighborhood centered on the current position. Let the specific piece (out of 32) to which the current luminance sample value belongs be denoted as p. Thus, this local deformation is associated with the p-th piece. 4) For each of the 32 pieces, calculate the average local spatial deformation (bin_var) . 5) Based on the sorted bin_var statistics and the cumulative distribution function, set two thresholds Thr 1 and Thr2. 6) Depending on the bin_var statistics, assign one of four possible numbers of code names to each piece . a. If bin_var = 0, assign the 0 code name to the piece b. If bin_var < Thr1, assign a code name of 36, 38, or 40 according to the statistics c. If bin_var > Thr2, assign a code name of 28 or 32 according to the statistics d. Otherwise, assign the default 32 code name 7) If the total number of assigned code names exceeds 1023, adjust it so that the total number of code names becomes 102 3. 8) If the internal bit depth is not 10 bits, normalize the number of code names for each piece based on the actual internal bit depth. 9) Combine the number of code names assigned to two adjacent pieces in the 32-piece assignment and calculate the number of code names for 16 equal pieces SignalledCW[i], i = 0…15. For example, the 0th piece and the 1st piece are combined, and the 2nd nd piece and the 3rd piece are combined. 10) The SignalledCW[i] value is signaled at the tile group level.
[0303] When LMCS is applied, SSE is used for the luminance of the intra (I) tile group. weighted SSE is used for luminance in inter (P or B) tile groups. The weight w_lmcs(k) is the code name assignment for the kth piece of the piecewise linear model. Based on this, it is derived as follows: w_lmcs[k]=(SignalledCW[k] / OrgCW)^2 (3- twenty three)
[0304] SSE is always used to determine the chroma mode.
[0305] Regarding the picture-level decision of whether to enable LMCS, various coding Various considerations are given to the configuration. performs picture analysis for each IRAP picture as explained above to generate bin_v Then, all bin_var values are low (i.e. below the threshold) If the same IR is considered to be in the same frame, LMCS is disabled for the IRAP picture. For other inter-coded pictures in the AP period, all bin_var values are in the narrow range (i.e., the difference between the maximum and minimum bin_var values is If the range of bin_var is small, LMCS uses Enabled only for pictures with layer ID 0. Otherwise, bin_va If the range of r is not narrow, LMCS is enabled for all inter-coded pictures. will be done.
[0306] In all intra (AI) and low latency (LD) test conditions, the LMCS For AI, LCMS parameter estimation is enabled for all pictures. The model parameters are transmitted for every picture. In this case, the LCMS parameters are estimated at 1 second intervals, and the model parameters are The tile groups are sent in groups of tile frames.
[0307] 2.16.3.3.2 LMCS Parameter Estimation for HDR
[0308] The JVET HDR CTC includes two types of HDR sequences: PQ and HLG. These two types of sequences are different in the VTM reference encoder. For PQ sequences, the VTM reference encoder processes the luminance-based QP adaptation can be applied to spatially vary the QP value. In this case, static quantization is used. Similarly, LMCS is used to quantize these two types of sequences. For PQ, the LMCS is calculated as explained below. For HLG, the LMCS is applied using the default LMCS mapping function. has been disabled.
[0309] The VTM reference encoder provides an objective quality metric for HDR CTC: Uses wPSNR (weighted PSNR) instead of traditional PSNR. Default H The DRL MCS curve is matched with the dQP function to maximize the wPSNR metric. It is calculated as follows.
[0310] Luminance-based QP adaptation is based on the average of luminance sample values and local deconvolution per CTU. The filter QP (dQP) value is derived. dQP(Y)=max(-3,min(6,0.015*Y-1.5-6)) (3-24)
[0311] where Y is the average luminance value, and for 10-bit video, maxY=1023. The weight (W_SSE) used in the wPSNR calculation is derived based on the dQP value. W_SSE(Y)=2^(dQP(Y) / 3) (3-25)
[0312] The default LMCS curve is calculated based on the luminance sample values as follows: 1) Calculate the slope of the reconstruction curve: slope[Y] = sqrt(W_SSE(Y)) = 2^(dQP(Y) / 6). 2) If the signal is in a narrow range (also called the normal range), then Y ∈ [0,64) or Y Set slope[Y] = 0 for ∈(940,1023). 3) Slope [Y], F[Y+1]=F[Y]+slope[Y], Y=0...maxY- Integrate 1 to calculate F[Y]. 4) FwdLUT[Y] is F[Y] set to [0maxY], FwdLUT[Y]=clip Normalize to 3(0, maxY, round(F[Y]*maxY / F[maxY])) It is calculated by: 5) 16 equal pieces SignalledCW[i], i = 0...1, as follows: Calculate the number of code names for 5. SignalledCW
[15] =FwdLUT
[1023] -FwdLUT
[0960] ; for(i=14;i>=0;i--) SignalledCW[i]=FwdLUT[(i+1)*OrgCW]-FwdL UT[i*OrgCW];
[0313] Regarding the rate-distortion optimized mode decision at the encoder, when LMCS is applied, For Intra (I) tile groups, SSE is used for luma, and weighted SSE is Used as a distortion measure for chroma. For inter (P or B) tile groups If LCMS is selected, weighted SSE is used for both luma and chroma. applies to the group.
[0314] 3. Examples of technical limitations of prior art
[0315] Blocks coded in palette mode or its variants (PCIP, CPM, etc.) Several problems arise. 1. Palette modes may need to be specially handled in the deblocking process. 2. CPM and / or PCIP are intra prediction modes to improve coding efficiency. It may be treated as such. 3. The MV / BV of a CPM-coded block is divided into consecutive blocks to improve coding efficiency. It may be used as the MV / BV prediction of the block. 4. The intra prediction direction of PCIP coded blocks is determined by the successive predictions for coding efficiency. It may be used as intra mode prediction for the block being processed. 5. As with VTM, chroma CPM requires motion vector derivation at the subblock level. Complexity increases because of the need to 6. Chroma PCIP signaling does not take into account the availability of chroma IBC mode. 7. Non-transformation mode (i.e., a block is not encoded with a transform or is the identity (encoded with transform), e.g., when transform skip, bdpcm mode is used ,Some QPs may be inefficient. 8. If the corresponding luma block used to derive the mode is IBC coded, In this case, it is unclear how to handle DM modes for chroma.
[0316] 4. Exemplary Embodiments
[0317] The embodiments listed below should be considered examples to illustrate the general concepts. These embodiments should not be construed in a narrow sense. The techniques can be combined in any way, for example to improve coding efficiency and decoding or reduces the coding complexity.
[0318] The methods described below depend on the current palette mode, PCIP, CPM, or residual coding. This can be applied to other encoding methods that may rely on a palette for
[0319] 1. Palette mode is a method to use existing coding modes (e.g., intra, In addition to the IBC (Inter, IBC), it is treated as a separate mode (for example, MODE_PLT). It is possible. As an example, both P-side and Q-side blocks are coded in palette mode. If so, you may set the boundary strength to 0. b. As an example, block A on one side is coded in palette mode and block B on the other side is coded in palette mode. If block B is not coded in palette mode, the boundary strength is determined by the information in block B. may depend only on i. As an example, block B is coded in intra mode. , the boundary strength may be set to 2. ii. In one example, block B is coded in IBC mode. In this case, if block B has at least one nonzero coefficient, the boundary strength can be set to 1. good. iii. In one example, block B is coded in IBC mode. In this case, if all coefficients of block B are zero, the boundary strength may be set to 0. c. By way of example, the above method may also be used for PCIP, CPM or other pallet related methods. may be applied.
[0320] 2. CPM uses the IBC model in the deblocking process (e.g., deriving boundary strength). It may be treated the same as a code. a. Alternatively, CPM may be used in the deblocking process (e.g., deriving boundary strength, etc.) ), which may be treated the same as palette mode. b. Alternatively, CPM may be used in the deblocking process (e.g., deriving boundary strength, etc.). ), may be treated the same as intra mode. c. Alternatively, the way in which the deblocking filter is applied may depend on the usage of the CPM. good.
[0321] 3. PCIP uses the int It may be treated the same as la mode. a. Alternatively, PCIP may be used in the deblocking process (e.g., deriving boundary strengths, etc.). etc.), may be treated the same as palette mode. b. Alternatively, the way in which the deblocking filter is applied depends on the PCIP usage. Good too.
[0322] 4. Palette coding block / CPM / PCIP coding block flags are set to fixed values. It may be set explicitly or may depend on the presence of escape pixels in the block. As an example, the coded block flag may be set to 0. b. As an example, the coded block flag may be set to 1. c. As an example, if there are no escape pixels in the current block, The flag may be set to 0. d. As an example, if there is at least one escape pixel in the current block, the code The encapsulated block flag may be set to 1.
[0323] 5. Palette mode and / or CPM and / or PCIP encoded samples The pull may not be unblocked. As an example, P-side or Q-side blocks are coded with CPM and / or PCIP. If the P and / or Q side samples are blocked, do. b. As an example, P-side blocks are coded with CPM and / or PCIP, and Q-side blocks are coded with If the block is not coded with these modes, the samples on the P side are unblocked. may not be available, and vice versa. c. As an example, in the case of CPM mode, the deblocking filter copies from the IBC prediction. This can only be done for the sample that is blocked. Other samples in the palette entry are blocked. It may not be released. d. As an example, in PCIP mode, the deblocking filter This can only be done for the copied sample. Other samples in the palette entry are The lock may not be released.
[0324] 6. Indication of CPM usage for transform unit / prediction unit / coding block / region , Intra mode, Inter mode, IBC mode and Palette mode. The prediction modes may be coded separately. As an example, a syntax element related to a prediction mode (e.g., cu_skip_flag, pred_mode_flag, pred_mode_ibc_flag, and cu_ The palette_flag) can be coded before the indication of CPM use. i. Alternatively, and in addition, the indication of the use of CPM may be conditionally trusted based on the forecast mode. The number may be notified. 1. In one example, the CPM mode is the intra-block copy mode (i.e., MODE_I BC), the signaling of the indication of the use of the CPM mode may be skipped. If the current forecast mode is MODE_IBC, the Use CPM directive is FALSE. It may be inferred that
[0325] 7. Whether to signal CPM and / or PCIP related syntax for color components depends on the part Partition structure and / or color format and / or separate plane coding may depend on As an example, for a chroma component, if a single tree is applied, CPM and / or Alternatively, signaling of PCIP-related syntax may be skipped. b. Or, for chroma components, if dual tree is applied, CPM and and / or PCIP-related syntax may be notified. c. Or, if the color format is 4:0:0, the CPM and and / or skip signaling PCIP-related syntax. i. Alternatively, and in addition, they may still be signaled, but the decoding process Not used in
[0326] 8. The indication of the use of CPM mode for a chroma block is signaled in the corresponding luma block. Based on the coded information (e.g., prediction mode) of one or more selected blocks of This can be done. As an example, at least one of the selected luminance blocks is coded in IBC mode. If so, an indication of the CPM of the chroma block may be signaled. i. Or, all selected luminance blocks are coded in IBC mode. In that case, an indication of the CPM of the chroma block may be signaled. ii. Alternatively, the selected block is coded in intra block copy mode. If the MODE_IBC is not set (i.e., MODE_IBC), the instruction to use chroma CPM is invalid. Furthermore, the prediction mode of the selected block may be MODE_IBC If not, the use CPM directive is assumed to be the default value (e.g., false). This may be done. iii. Or, all selected blocks are in intra block copy mode ( That is, if the video is not encoded in MODE_IBC, the instruction to use chroma CPM is In addition, all selected blocks may not be signaled in IBC mode. If it is not encrypted, the Use CPM instruction will be set to the default value (e.g., false). It may be assumed that there is. b. In one example, the size of the selected luma block is the smallest CU / PU / TU size. It can be a unit for size or motion / mode storage (e.g. 4x4). c. As an example, the selected luminance blocks may be located in the center, top left, top right, It may be a CU / PU / TU that includes the bottom left or bottom right position. Examples of corresponding luminance regions is shown in Figure 4-1. In one example, the top-left coordinate of the current chroma block is (x0, y0), Assume that the width and height of the current chroma block are w0 and h0, respectively. The coordinates of the top left sample of the region, and the width and height of the corresponding luminance region are specified according to the color format. The signal may be scaled by a) In the case of 4:2:0 color format, the top left corner of the co-located luminance area Its coordinates are (2*x0, 2*y0), and its width and height are 2*w0 and 2*h0, respectively. be. b) In the case of 4:4:4 color format, the top left corner of the co-located luminance area Its coordinates are (x0, y0) and its width and height are w0 and h0, respectively. ii. The upper left coordinates of the luminance region arranged at the same position are (x, y), and its width and height are If the distances are W and H, the coordinates of the center position can be as follows: a) (x+W / 2,y+H / 2) b) (x+W / 2-1,y+H / 2-1) c) (x+W / 2,y+H / 2-1) d) (x+W / 2-1,y+H / 2) iii. The coordinates of the upper left corner of the luminance region arranged at the same position are (x, y), and its width is If the height is W and H, then the coordinates of the top left position could be (x, y). iv. The upper left coordinates of the luminance region arranged at the same position are (x, y), and its width and height are If the distances are W and H, the coordinates of the top right position could be: a) (x+W,y) b) (x+W-1,y) v. The coordinates of the top left corner of the co-located luminance region are (x, y), and its width and height are (x, y). If we let W and H be, then the coordinates of the bottom left position are: a) (x,y+H) b) (x,y+H-1) vi. The upper left coordinates of the luminance regions arranged at the same position are (x, y), and their width and height are If the depth is W and H, the coordinates of the bottom right position could be: a) (x+W,y+H) b) (x+W,y+H-1) c) (x+W-1,y+H) d) (x+W-1,y+H-1)
[0327] FIG. 13 shows an example of the corresponding luminance regions.
[0328] 9. Signaling the use of chroma PCIP mode is done by coding one or more selected luma blocks. The information may depend on the encrypted information. As an example, the selected block in the corresponding luminance block is an intrablock code. If the signal is encoded in IBC mode (i.e., MODE_IBC), the chroma PCIP In addition, the indication of use may not be signaled. If the prediction mode of the block is MODE_IBC, the instruction to use PCIP is false. It can be assumed that e. i. Or, all selected luminance blocks are coded in IBC mode. In this case, the PCIP indication for the chroma block may not be signaled. ii. Alternatively, all samples in the corresponding luma domain are coded in IBC mode. If the PCIP indication for a chroma block is not signaled, b. In one example, the size of the selected luma block is the smallest CU / PU / TU size. It can be a unit for size or motion / mode storage (e.g. 4x4). c. As an example, the selected luminance block is Even if it is a CU / PU / TU that contains the center, top left, top right, bottom left, or bottom right position of the degree area good. In one example, the top-left coordinate of the current chroma block is (x0, y0), Assume that the width and height of the current chroma block are w0 and h0, respectively. The coordinates of the top left sample of the region, and the width and height of the corresponding luminance region are specified according to the color format. The signal may be scaled by a) In the case of 4:2:0 color format, the top left corner of the co-located luminance area Its coordinates are (2*x0, 2*y0), and its width and height are 2*w0 and 2*h0, respectively. be. b) In the case of 4:4:4 color format, the top left corner of the co-located luminance area Its coordinates are (x0, y0) and its width and height are w0 and h0, respectively. ii. The upper left coordinates of the luminance region arranged at the same position are (x, y), and its width and height are If the distances are W and H, the coordinates of the center position can be as follows: a) (x+W / 2,y+H / 2) b) (x+W / 2-1,y+H / 2-1) c) (x+W / 2,y+H / 2-1) d) (x+W / 2-1,y+H / 2) iii. The coordinates of the upper left corner of the luminance region arranged at the same position are (x, y), and its width is If the height is W and H, then the coordinates of the top left position can be (x, y). iv. The upper left coordinates of the luminance region arranged at the same position are (x, y), and its width and height are If the distances are W and H, the coordinates of the top right position could be: a) (x+W,y) b) (x+W-1,y) v. The coordinates of the top left corner of the co-located luminance region are (x, y), and its width and height are (x, y). If we let W and H be, then the coordinates of the bottom left position are: a) (x,y+H) b) (x,y+H-1) vi. The upper left coordinates of the luminance regions arranged at the same position are (x, y), and their width and height are If the depth is W and H, the coordinates of the bottom right position could be: a) (x+W,y+H) b) (x+W,y+H-1) c) (x+W-1,y+H) d) (x+W-1,y+H-1)
[0329] 10. CPM mode can be added as a separate forecast mode (e.g. MO) in addition to the existing forecast modes. We propose to treat it as DE_PLT_IBC. In one example, the prediction mode is intra slice / I picture / intra tile Intra, intra block copy, palette mode, and CPM mode for looping It may also include b. Alternatively, the prediction mode can be an intra slice / I picture / intra tile group. This may include intra, palette mode, and CPM mode for the frame. c. In one example, the prediction mode is inter-slice and / or B-picture / tile group. Intra, Inter, Intra block copy, palette modes, and It may include a CPM mode. d. Alternatively, the prediction mode can be intra, inter, intra block copy, palette The mode may include at least two of a continuous mode, a continuous phase mode, and a continuous phase mode. e. In one example, the prediction mode is inter mode (i.e., MODE_INTER) If so, the signaling of the indication of the use of the CPM mode may be skipped. If the current prediction mode is MODE_INTER, the instruction to use CPM mode is FALSE. It may be assumed that it is SE.
[0330] 11. CPM may be treated as a special case of the existing prediction modes. In this case, C The syntax for PM modes is further signaled under certain conditions of use of existing predictive modes. This is also fine. As an example, when the prediction mode is intra mode (i.e., MODE_INTRA), In some cases, the signaling of CPM-related syntax may be skipped. If MODE_INTRA is set, it is assumed that the indication to use CPM mode is FALSE. It may be measured. b. As an example, when the prediction mode is a skip mode (i.e., the skip flag If ,the ,signaling ,of ,CPM-related ,constructs ,is ,skipped. If the current CU employs skip mode, the indication of CPM usage is incorrect. It may be inferred that. c. As an example, when the prediction mode is a palette mode (e.g., MODE_PLT), In that case, an indication of the use of CPM and CPM-related syntax may be signaled. d. Alternatively, the prediction mode is intra mode, inter mode, or intra block. If you are in copy mode, you can skip the CPM related syntax. e. Or, the prediction mode is intra mode rather than pulse code modulation (PCM) mode. If so, CPM-related syntax may be signaled. f. As an example, when the prediction mode is a palette mode (e.g., MODE_PLT), In this case, instructions to use CPM and CPM-related syntax may precede or precede instructions to use PCM mode. As an example, when the CPM mode is applied, the CPM-related Syntax signalling may be performed. g. Prediction mode is intra mode, inter mode, or intra block copy In this mode, signaling of CPM-related syntax may be skipped. h. Or, the prediction mode is intra mode rather than pulse code modulation (PCM) mode. If so, CPM-related syntax may be signaled. i. For example, when the prediction mode is an intra block copy mode, the CPM-related The syntax of may be signaled. j. Or, the prediction mode is palette mode, inter mode, or intra mode. If so, signalling of CPM-related syntax may be skipped. k. The above method may also be applied to PCIP or other pallet related methods.
[0331] 12. The MV of a CPM coded block is also used as the MV prediction for the following block. This may be done. a. As an example, the MV of a CPM-encoded block is the merging candidate of other blocks. It may be used as: b. As an example, the MV of a CPM-coded block is the HMVP candidate of another block. It may be used as a complement. i. Alternatively, after encoding the CPM-encoded block, HMVP The table may be updated. c. As an example, the MV of a CPM-coded block may be the AMVP candidate of another block. It may be used as a complement. d. Alternatively, after encoding one CPM coding block, the HMVP table update process The process is not permitted. e. Alternatively, the BV of a CPM-coded block is calculated based on the motion vector of the subsequent block. In some cases, the metric may not allow use of the metric as a predictor.
[0332] 13. The intra prediction direction of a PCIP coded block is the same as that of the subsequent blocks. It may also be used as a lamode predictor. a. As an example, the intra prediction direction of a PCIP coded block is It may be used as an MPM mode for the clock. i. For example, if a PCIP coded block selects the horizontal direction, The TRA mode may be set to VER_IDX, and the MPM mode for subsequent blocks It may also be used as. ii. As an example, if a PCIP coded block selects the vertical direction, The intra mode may be set to HOR_IDX, and the MPM mode for subsequent blocks may be It may also be used as a b. Alternatively, the intra prediction direction of a CPM coded block is set to the same as the MPM direction of the subsequent block. In some cases, we may not allow you to use the information in a manner that is consistent with our privacy policy.
[0333] 14. The maximum number of palette entries used is the number of entries for one image unit (CTB, CU, PU , TU, etc.) to another image unit. Binarization uses the maximum edge of the palette used. This can be changed depending on the number of entries. As an example, it may depend on the encoded information. i. As an example, it may depend on the dimensions of the block. a) As an example, the size of a larger block coded in palette mode is: may have a larger maximum number of entries, while being coded in palette mode Smaller block sizes may have smaller maximum number of entries. b) In one example, for a 4x4 block, only N0 palette entries are allowed. do. c) As an example, for 8x4 blocks and / or 4x8 blocks, N1 pallet Only single entry may be allowed. d) As an example, for an 8x8 block, only N2 palette entries are allowed. . e) As an example, for a 16x16 block, only N3 palette entries are allowed. can be. f) By way of example, N0, N1, N2 and N3 are fixed numbers (e.g., 3, 7 or 1 5), which may be the same or different. g) As an example, the relationship between the maximum pallet entry and the block dimensions is expressed as follows: Here, W and H are the current block width and block height, respectively, and Max is an operation that takes the greater of two inputs.
[0334] [Table 15]
[0335] h) As an example, the relationship between the maximum palette entry and the block dimensions is expressed as follows: Here, W and H are the current block width and block height, respectively, and Max is an operation that takes the greater of two inputs.
[0336] [Table 16]
[0337] b. In one example, it may depend on the color components. i. As an example, a luma block coded in palette mode has a maximum number of entries Chroma blocks coded in palette mode can be large, with a maximum number of entries is likely to be small. a) As an example, the maximum number of entries in a luminance block may be N, so The maximum number of entries in the block may be M. i. In one example, M is a fixed number (e.g., 3, 7, or 15) and M is less than N. It may be small. c. For example, it depends on the partitioning structure, such as dual tree or single tree. You may do so.
[0338] 15. Scaling matrix for palette / CPM / PCIP coding blocks (user-defined They propose to ban multiplications (e.g., scaling matrices). a. Alternatively, apply a scaling matrix to the palette / CPM / PCIP encoded block It is also possible. b. As an example, select the scaling matrix for the palette / CPM / PCIP coding block. The selection may be done in the same way as for transform skip coded blocks.
[0339] 16. Context modeling for encoding the use of IBC modes (e.g., cu_ skip_flag and / or pred_mode_ibc_flag) are Encoded information about blocks, e.g. block dimensions / block shape / partition tree Dependent on depth (e.g. QT / BT / TT / MTT depth) and / or slice type You may do so. In one example, the context for encoding the IBC flag indication is It may be derived based on size. In one example, the instruction to use the IBC mode under different block sizes is This may be signalled by using the following context: ii. Alternatively, a block having a block size smaller than T or not larger than T The IBC mode usage instruction for a block can use one context. Blocks of block size may use other contexts (e.g. only one) . iii. Alternatively, a block having a block size greater than or not less than T The IBC mode of locking can be used in one context. A block of this size may be used in other contexts (e.g. only one) stomach. iv. In one example, T may be based on: 1. Visual content (e.g. screen content or natural content) 2.DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Tile group header / Largest coding unit (LCU) / Coding unit (CU) / L Messages signaled in CU row / LCU group / TU / PU 3. Display color format (e.g. 4:2:0, 4:4:4) 4. Coding Tree Structure 5. Slice / Tile Group Type and / or Picture Type 6. Color components (e.g., may only be applied to chroma or luma components) 7. Time layer ID 8. Standard Profiles / Levels / Tiers 9. The signal is sent to the decoder. b. In one example, the context modeling for encoding the use of IBC mode is , derived based on block shape (e.g., square or non-square, width-to-height ratio) Good too. i. Alternatively, the indication of the IBC flag under different block shapes may differ depending on the context. This may be signaled by using a c. In one example, the context model of cu_skip_flag for an I slice The ring may differ from the context modeling for P / B slices. In one example, the context modeling of cu_skip_flag is It may depend on the cu_skip_flag information of the block. For PB slices, Only one context can be used to encode cu_skip_flag. Or vice versa. d. In one example, only one context encodes the use of IBC mode It may be used for. e. The above method only applies to what is used for a particular slice / picture type. Good too.
[0340] 17.cu_skip_flag context modeling is done when the neighboring blocks are IBC It may depend on whether the mode is coded or not. In one example, at least one or both of the neighboring blocks are in IBC mode. If the context is coded as
[0341] 18. The context coding of the bin associated with the first syntax element is the context coding of the neighboring blocks ( The second syntax element may depend on the value of the associated second syntax element (adjacent or non-adjacent). In one example, the first syntax element is an intra-inter prediction mode / triangle prediction mode. It may also be used to indicate a combination of b. In one example, the second syntax element may relate to the use of IBC; Or the context coding of the bin associated with the first syntax element is the context coding of the neighboring blocks This may depend on the use of IBC mode. c. Alternatively, this message indicates that the current slice / tile / sequence is It may also indicate whether it is content.
[0342] 19. The coding block flag (cbf) is not signaled, but is instead QR-BDPCM For blocks coded with the mode, an estimate may be made. Alternatively, in one example, cbf is a block encoded in QR-BDPCM mode. In the check, it may be inferred to be 1. b. The above method is applied to luma cbf and / or chroma cbf.
[0343] 20. To cover the center position of the current chroma block and / or derive the DM mode The corresponding luma block used for the RGBA is in intra mode (e.g., MODE_INTRA). If A is not encoded in DM mode, chroma DM mode may not be allowed. The corresponding luma block (e.g., the corresponding (covering the central position where the In one example, A is encoded in IBC and / or a variant of IBC mode. , chroma DM mode may not be allowed. b. In one example, A is encoded with a palette and / or a variation of the palette mode In this case, chroma DM mode may not be allowed. c. In one example, A is encoded with PCM and / or a variation of PCM mode , chroma DM mode may not be allowed. d. In the above example, if the chroma DM mode is not allowed (e.g., the corresponding luminance block Due to the lock prediction mode being in a specific mode), the Chroma DM mode instruction is , may or may not be signaled. Alternatively, an indication of chroma DM mode may be signaled. The combined bitstream is used when chroma DM mode is not allowed (e.g., when the corresponding luma block is not The decoded intra_chrominance is not supported because the prediction mode of the a_pred_mode is not a specific value (e.g., 4 when CCLM is off, C When CLM is on, condition 7) should be satisfied. e. In one example, if A is encoded in QR-BDPCM mode, then chroma DM The intra prediction mode in the mode is the intra prediction direction of A (e.g., bdpcm_d ir_flag). i. In one example, the intra prediction direction of A is vertical (e.g., bdpcm_di r_flag is 1), the intra prediction mode in chroma DM mode is vertical It may also be a mode (e.g., VER_IDX). ii. In one example, the intra prediction direction of A is horizontal (e.g., bdpcm_d When ir_flag is 0, the intra prediction mode in the chroma DM mode is water It may also be in flat mode (e.g., HOR_IDX). f. In one example, the intra prediction modes in the chroma DM mode are composite IBC and It may be derived based on the use of palette mode. i. In one example, the DM may be set to planar or horizontal / vertical prediction mode.
[0344] 21. Contains the center position of the current chroma block and / or for deriving the DM mode The corresponding luma block used for the RGB filter is in intra mode (e.g., MODE_INTRA). If the prediction block is not coded by the DM, the prediction block generated by the intra prediction method is A may be used to fill in the predicted block of a chroma block with the DM mode derivation process. The corresponding luma block used for processing (e.g., the corresponding center position of the current chroma block) (covering the device). In one example, A is encoded with a palette and / or a variation of the palette mode. In this case, the intra prediction method may be the method used for vertical intra prediction. i. Alternatively, in one example, A is a palette and / or a variation of the palette mode. When encoded, the prediction of the chroma DM mode may be filled in by horizontal prediction. ii. Alternatively, in one example, A is a palette and / or a variation of the palette mode. When encoded with , the prediction of the chroma DM mode may be padded by planar prediction. iii. Alternatively, in one example, A is a palette and / or palette mode change. When coded in this form, the prediction for the chroma DM mode may be padded by DC prediction. iv. Alternatively, in one example, A is a palette and / or a variation of the palette mode. When encoded with , the prediction of the chroma DM mode is overwritten by any intra prediction mode. This may also be possible. b. In one example, the prediction of a chroma block is based on the current color component or on another color component. Intra prediction mode of neighboring (adjacent or non-adjacent) luminance blocks and / or The chroma block may be generated based on the intra prediction mode of a neighboring (or non-neighboring) chroma block. c. In one example, the intra prediction method is assigned to the PCM block when constructing the MPM list. It may correspond to the intra prediction mode to be applied. d. In one example, the intra prediction method is an intra prediction method for a luma PCM block. The prediction mode may be a linear prediction mode. e. In one example, the intra prediction method is an intra prediction method for It may correspond to a trajectory prediction mode. f. In some implementations, the intra prediction method is the first in A's MPM list. The intra prediction method may be supported. g. The above method is for A being coded in IBC and / or variants of IBC mode. i. Alternatively, the method may further comprise the step of: A being encoded in PCM and / or a variant of PCM mode. This may be applied when ii. Alternatively, the method may further comprise the step of: A is a QR-BDPCM and / or a QR-BDPCM model; This may be applied when the image is encoded with a variant of the original code.
[0345] 22. The DM model is adapted according to the method for handling chroma blocks with invalid block vectors. The predictor may derive a prediction block for the chroma block having the given code. In one example, the prediction block of a chroma block having a DM mode is a default May be filled with values. Alternatively, the default value may be fixed at M. ii. Alternatively, the default value may depend on the input and / or internal bit depth. good. b. In one example, the method includes: If not, it may be applied. In one example, the method includes: and / or a variation of the IBC mode may be applied. ii. In one example, the method further comprises: and / or a variation of the palette mode may be applied.
[0346] 23. One block may have a default intra mode. In one example, the default mode is DC / PLANAR / VER / HOR mode. may be also possible. b. In one example, the default mode may be any intra mode. c. In one example, the default mode is the maximum probability mode in the intra mode coding process. It may be used as a multi-mode (MPM). i. Alternatively, in one example, fetching intra mode from a neighboring block If this block and the current block are in different video coding units (e.g., tiles, stripes, etc.), If the block is in a fixed size (rice, brick), the default mode of the neighboring block is used. d. In one example, in chroma DM mode, the default The default mode may be used to derive the DM mode. e. If the block is not coded in intra mode, the above method may be used. stomach. i. Alternatively, the method may be such that the block is IBC / Inter / QRDPCM / PCM / It may be used when encoding in palette mode. ii. Alternatively, if the intra mode of the current block is not decoded, the above method may be used.
[0347] 24. During MPM list construction, if a neighboring block is coded in PCM mode, it is This may be considered a DC prediction mode.
[0348] 25. How is TPM and / or TPM blending and / or storage of movement information handled? The decision as to how to apply the filter may be based on the coded information of neighboring blocks. In one example, the neighboring blocks (e.g., the left and upper neighbors in FIG. 12) If the block is encoded in IBC / palette / TS / QR-BDPCM mode, TPM blending may be disabled for the current block. b. In one example, the neighboring blocks (e.g., the left and upper neighbors in FIG. 12) If the block is encoded in IBC / palette / TS / QR-BDPCM mode, Another blending / motion storage operation may be applied to the current block.
[0349] Quantization parameters for blocks coded using the identity transform (e.g., transform skip mode, QR-BDPCM, etc.)
[0350] 26. Signalling the instruction of the encoding tool to use the identity transform shall be The quantization parameter may depend on the encoded quantization parameter. In one example, transform_skip_flag is trusted for some QPs. No signal may be signaled, in which case this flag is inferred to be 0. In one example, if QP is less than (4+QpBdOffsetY), nsform_skip_flag does not have to be notified. b.intra_bdpcm_flag may not be signaled for some QPs. In this case, this flag is assumed to be 0. In one example, if QP is less than (4+QpBdOffsetY), then int ra_bdpcm_flag does not have to be signaled.
[0351] 27. Quantization parameters decoded from the bitstream of an identity transform coded block The data is the offset of the range of luma / chroma quantization parameters (QpBdOffsetY, QpBdOffsetC). In one example, if transform_skip_flag is 1, Ripping may be applied. In one example, if transform_skip_flag is 1, then QP If the value is less than (4+QpBdOffsetY), set the QP value to (4+QpBdOffs etY). ii. In one example, if transform_skip_flag is 1, then Q If the P value is less than QT, it may be set to a value QT. If b.transform_skip_flag is 1, the decoded QP value is An offset can be added, called QPdec. In one example, QPdec+4+QpBdOffsetY is used instead of QPdec. may be applied to blocks with transform_skip_flag set to 1. c. The method may, for example, include: It may also be applicable to DPCM coded blocks. d. In one example, the modified quantization parameter is a delta QP signal for the subsequent block. It may be used for quantization / dequantization / filtering / prediction of notifications.
[0352] 28. Based on a fixed offset, the bitstream of the identity transform coded block is The quantization parameter decoded from the quantization signal may be modified. In one example, if transform_skip_flag is 1, Ripping may be applied. In one example, if transform_skip_flag is 1, then QP If the value is less than 4, the QP value may be set to 4. ii. In one example, if transform_skip_flag is 1, then Q If the P value is less than QT, it may be set to a value QT. If b.transform_skip_flag is 1, the decoded QP value is An offset can be added, called QPdec. i. In one example, use QPdec+4 instead of QPdec, This may be applied to blocks where skip_flag is 1. c. The method may, for example, include the step of: It may also be applicable to PCM coded blocks. d. In one example, the modified quantization parameter is used to signal delta QP of a subsequent block. It may be used for quantization / dequantization / filtering / prediction of knowledge.
[0353] 29. Decoded quantities from the bitstream for blocks coded with the identity transform The quantization parameter may be modified based on the input bit depth, denoted as bdi. In one example, if transform_skip_flag is 1, Ripping may be applied. In one example, if transform_skip_flag is 1, then QP If the value is less than (4+6*(bdi-8)), set the QP value to (4+6*(bdi-8 )). If b.transform_skip_flag is 1, the decoded QP value is An offset can be added, called QPdec. i. In one example, QPdec+(4+6*(bdi-8)) instead of QPdec may be applied to blocks with transform_skip_flag set to 1. c. The method may, for example, include: It may also be applicable to DPCM coded blocks. d. In one example, the modified quantization parameter is a delta QP signal for the subsequent block. It may be used for quantization / dequantization / filtering / prediction of notifications.
[0354] 30. Decoded quantities from the bitstream for blocks coded with the identity transform The child parameters are modified based on the internal bit depth (bd) and the input bit depth. Also commonly abbreviated as bdi. In one example, if transform_skip_flag is 1, Ripping may be applied. In one example, if transform_skip_flag is 1, then QP If the value is less than (4+6*(bd-bdi)), set the QP value to (4+6*(bd-bdi )). If b.transform_skip_flag is 1, the decoded QP value is An offset can be added, called QPdec. i. In one example, instead of QPdec, use QPdec+(4+6*(bd-bdi) ) may be applied to blocks with transform_skip_flag set to 1. c. The method may, for example, include: It may also be applicable to DPCM coded blocks. d. In one example, the modified quantization parameter is a delta QP signal for the subsequent block. It may be used for quantization / dequantization / filtering / prediction of notifications.
[0355] 31. Pre-processing (e.g., LMCS) and / or post-processing (e.g., block (filter after reconstruction) is enabled or disabled for blocks or blocks containing It may depend on a quantization parameter associated with the video unit. In one example, if the decoded QP is less than a threshold, pre-processing and / or post-processing may be performed. Processing may not be permitted. i. In one example, the threshold may be predefined. ii. Alternatively or additionally, the decoded QP may be used to modify the QP according to the above method. If the threshold is less than the threshold specified, pre-processing and / or post-processing may not be allowed. b. In one example, QP<(4+6*(bd-bd i )) non-blocking is allowed There may not be. Alternatively, you can set the bitstream constraints to bypass deblocking. stomach. c. In one example, QP<(4+6*(bd-bd i )) the adaptive loop filter is allowed. It may not be permitted. Alternatively, set the bitstream constraint to bypass the adaptive loop filter. This is also fine. d. In one example, QP<(4+6*(bd-bd i )) sample adaptive offset may not be permitted. Alternatively, a bitstream constraint may be added to bypass the sample adaptive offset. may be set. e. In one example, QP<(4+6*(bd-bd i )) LMCS is not allowed There are cases. Alternatively, you can set the bitstream constraints to bypass LMCS. stomach.
[0356] 32. The decoded quantization parameters above take into account the internal bit depth QP offset. (e.g., QpBdOffsetY is not added) stomach. a. Alternatively, the decoded quantization parameter is an internal bit depth QP offset The quantization parameter may take into account the above.
[0357] 33. It is proposed to indicate the input bit depth in the bitstream. In one example, in SPS / VPS, to indicate the bit depth of the input video, input_bitdepth_m May signal inus8. i. In one example, the syntax element has a range of 0..dQP, where dQP is a fixed value. b. In one example, in the SPS / VPS, (internal_bitdepth -input_bitdepth) put_bitdepth can be signaled to indicate the bit depth of the input video. i. In one example, the syntax element has a range of 0..dQP, where dQP is a fixed value.
[0358] 34. Whether and / or how to apply the above methods will be based on: It is okay. a. Video content (e.g., screen content or natural content) b.DPS / SPS / VPS / PPS / APS / Picture Header / Slice Header / Ta File Group Header / Largest Coding Unit (LCU) / Coding Unit (CU) / LCU Signaled in row / LCU group / TU / PU block / video coding unit message c. CU / PU / TU / block / video coding unit location d. Block dimensions of the current block and / or its neighboring blocks i. In one example, the method includes: This may only be applied if the e. Block shapes of the current block and / or its neighboring blocks f. Prediction mode of the current block and / or its neighboring blocks (e.g., pre d_mode_ibc_flag) g. Intra mode of the current block and / or its neighboring blocks h. Movement / block vectors of the current block and / or its neighboring blocks i. Display color format (e.g. 4:2:0, 4:4:4) j. Coding tree structure k. Slice / tile group type and / or picture type l. Color components (eg, may be applied only to chroma or luma components). m.Time layer ID n. Standard profile / level / tier
[0359] 5 Examples of additions to JVET-N1001-v6
[0360] [ka]
[0361] Sequence Parameter Set RBSP Syntax
[0362] [Table 17]
[0363] Coding Unit Syntax
[0364] [Table 18] [Table 19]
[0365] Prediction Mode Syntax The following full text and tables are proposed as new additions to the current version of the VVC. There are.
[0366] [Table 20]
[0367] Palette Syntax The following full text and tables are proposed as new additions to the current version.
[0368] [Table 21] [Table 22] [Table 23] [Table 24]
[0369] Palette Semantics
[0370] In the following semantics, array index x0,y0 points to the top-left luma sample of the picture. Specifies the location (x0, y0) of the top-left luminance sample of the considered coding block. .
[0371] cu_palette_flag specifies whether the current coding unit uses the palette mode. cu_palette_flag==1 specifies that the palette mode is set to the current encoding unit. cu_palette_flag==0 indicates that the current Indicates that no palette mode has been applied to the coding unit.
[0372] palette_predictor_run is the array PalettePredictor To determine the number of zeros that precede a non-zero entry in rEntryReuseFlags Used for. The value of palette_predictor_run is 0~(PredictorPal The bit size is in the range of etteSize-predictorEntryIdx. The predictorEntryIdx is an array of The one that corresponds to the current position of tePredictorEntryReuseFlags. The variable NumPredictedPaletteEntries is the number of entries from the predicted palette. Specifies the number of entries in the current palette that will be reused from the The value of paletteEntries ranges from 0 to palette_max_size. It should be within the range.
[0373] num_signalled_palette_entries[startComp] is explicitly signaled for the first color component of the current palette table startComp. Specifies the number of current palette entries to be displayed. num_signalled_palette_entries[startComp] If not present, it is assumed to be 0. The variable CurrentPaletteSize specifies the size of the current palette. It is derived as follows. CurrentPaletteSize[startComp]=NumPredict edPaletteEntries[startComp]+num_signalle d_palette_entries[startComp](XX) The value of CurrentPaletteSize[startComp] ranges from 0 to pale It should be in the range up to tte_max_size.
[0374] new_palette_entries[cIdx][i] is the i-th color component cIdx. Specifies the value of the eye signal palette entry. The variable PredictorPaletteEntries[cIdx][i] is the color component c Specifies the i-th element in the predictor palette for Idx. The variable CurrentP aletteEntries[cIdx][i] is the current palette entry for color component cIdx. Given the i-th element, it is derived as follows:
[0375] numPredictedPaletteEntries=0 for(i=0;i <PredictorPaletteSize[startComp ];i++) if(PalettePredictorEntryReuseFlags[i]){ for(cIdx=startComp;cIdx<(startComp+num Comps);cIdx++) CurrentPaletteEntries[cIdx][numPredic tedPaletteEntries]= PredictorPaletteEntries[cIdx][i] numPredictedPaletteEntries++ } for(i=0;i <num_signalled_palette_entries[ startComp];i++) for(cIdx=startComp;cIdx<(startComp+numC omps);cIdx++) CurrentPaletteEntries[cIdx][numPredict edPaletteEntries+i]= new_palette_entries[cIdx][i] (XX)
[0376] When palette_escape_val_present_flag is 1, the current The coding unit contains at least one escape-coded sample. If escape_val_present_flag is 0, the current sign is specified. Specifies that there are no escape-coded samples in the encoding unit. If not present, The value of palette_escape_val_present_flag is assumed to be 1. do. The variable MaxPaletteIndex is the palette index of the current coding unit. Specifies the maximum possible value of cu_palette. If te_ibc_mode is 0, CurrentPaletteSize+pale tte_escape_val_present_flag is set instead. , if cu_palette_ibc_mode is 1, MaxPaletteIn dex is CurrentPaletteSize+palette_escape_v It is set to al_present_flag+1.
[0377] num_palette_indices_minus1 plus1 is the number of The number of palette indices explicitly signaled or inferred for this block. If num_palette_indices_minus1 is not present, it is equal to 0 It is speculated that...
[0378] palette_index_idc is CurrentPaletteEntries The index into the array represented by palette_ind The value of ex_idc is 0 to MaxPalet for the first index of the block. teIndex, and for the remaining indices of the block, the range is 0..(Ma xPaletteIndex-1). If palette_index_idc is not present, it is inferred to be equal to 0. . The variable PaletteIndexIdc[i] is the index of the i-th palette. Explicitly signal or infer and store the array PaletteIndexIdc[i ] is initialized to 0.
[0379] copy_abo_indices_for_final_run_flag is 1 If horizontal traverse scan is used, the pallet index in the row above is used. Then, if vertical traverse scanning is used, the pallet index in the left column is Specifies that the palette index at the end of the coding unit is copied from the . copy_abo_indices_for_final_run_flag is 0 If the palette index of the last position of the coding unit is PaletteIndex Copied from idc[num_palette_indices_minus1] Specify and. copy_above_indices_for_final_run_flag is present If not, 0 is assumed.
[0380] If palette_transpose_flag is 1, the image of the current coding unit is Specifies that a vertical traversal scan is applied to scan the disjoint index. If palette_transpose_flag is 0, the image of the current coding unit is Specifies that a horizontal traversal scan should be applied to scan the disjoint index.
[0381] If copy_above_palette_indices_flag is 1, the palette The index is the same location in the row above if horizontal cross scanning is used, or If forward traverse scanning is used, it is equal to the pallet index of the same location in the left column. Specifies that copy_above_palette_indices_flag is If 0, the sample's palette index indication is coded into the bitstream. Indicates whether the value is known or inferred. If the variable CopyAboveIndicesFlag[xC][yC] is 1, the palette The index of the palette in the top row (horizontal scan) or left column (vertical scan) Specifies that the index is copied above the index. If [xC][yC] are 0, the palette index is explicitly coded in the bitstream. The array indices xC and yC indicate the picture Specifies the sample location (xC, yC) relative to the top-left luma sample of the pixel. The variables PaletteIndexMap[xC][yC] are the CurrentPalett Specifies the palette index, which is an index into the array represented by eEntries. The array indices xC, yC are the sample indices for the top-left luma sample of the picture. Specifies the position (xC, yC). The value of PaletteIndexMap[xC][yC] Must be in the range 0 to MaxPaletteIndex. The variable PaletteRun is CopyAboveIndicesFlag[xC][y If C] is 1, the palette is the same as the position in the row above (horizontal scan) or the column to the left (vertical scan). The index specifies the number of consecutive positions minus one, and CopyAboveIn If dicesFlag[xC][yC] is 0, consecutive Specify a number that is one less than the number of positions to be The variable PaletteMaxRun represents the maximum possible value of PaletteRun. A value of letteMaxRun ≥ 0 is a requirement for bitstream conformance. .
[0382] palette_run_prefix is the prefix for binarization of PaletteRun. Specify the box part.
[0383] palette_run_suffix is the suffix for the binarization of PaletteRun If palette_run_suffix does not exist, the palette The value of t_run_suffix is inferred to be 0. The value of PaletteRun is derived as follows: When -palette_run_prefix is less than 2, the following applies: PaletteRun=palette_run_prefix(XX) - Otherwise (palette_run_prefix is 2 or more), the following applies: do. PrefixOffset=1<<(palette_run_prefix-1) PaletteRun=PrefixOffset+palette_run_su ffix (XX)
[0384] palette_escape_val is the quantized escape character for the component. Specifies the encoded sample value. The variable PaletteEscapeVal[cIdx][xC][yC] is the eIndexMap[xC][yC] is (MaxPaletteIndex-1) , for samples where palet_escape_val_present_flag is 1 Specifies the escape value. The array index cIdx specifies the color component. The xC, yC coordinates are the sample position (xC, yC) relative to the top-left luma sample of the picture. C) is specified. If cldx is 0, PaletteEscapeVal[cIdx][xC][yC] 0 to (1<<((1<<(BitDepth Y +1))-1, and cIdx If is not 0, 0 to (1<<(BitDepth C +1))-1 This is a requirement of bitstream conformance.
[0385] General Decoding Process for Encoding Units Encoded in Intra-Prediction Mode
[0386] The inputs to this process are: the top-left sample of the current coding block relative to the top-left luma sample of the current picture The luminance position (xCb, yCb) that specifies a variable cbWidth that specifies the width of the current coding block in luma samples, - variable cbHeight that specifies the height of the current coding block in luma samples - the variable tree type, which specifies whether a single or double tree is used, and If a dual tree is used, whether the current tree corresponds to the luma or chroma component. Specify.
[0387] The output of this processing is the corrected reconstructed image before in-loop filtering. Current coding block at luminance position (xCb, yCb), luminance sample cbWidth the width of the current coding block, the height of the current coding block in luma samples cbHeight, and the variable Using the tree type as input, call the quantization parameter derivation process specified in Section 8.4.1. Jump out.
[0388] If treeType is equal to SINGLE_TREE or treeType is D If UAL_TREE_LUMA is set, the decoding of luma samples is specified as follows: will be done.
[0389] - If pcm_flag[xCb][yCb] is 1, the reconstructed image is as follows: It will be corrected. S L [xCb+i][yCb+j] = pcm_sample_luma[(cbHeight*j)+i]<<(BitD epth Y -PcmBitDepth Y ),(8-1) with i=0..cbWidth-1,j=0..cbHeight-1
[0390] - Otherwise, cu_palette_flag[xCb][yCb] is equal to 1. If not, the following applies: -If tree type is equal to SINGLE_TREE, the following applies: The general decoding process for the palette blocks specified in Section 1.XXX is Position (xCb, yCb), variable startComp to 0, variable cIdx to 0, variable nTb It is called with W set to cbWidth and the variable nTbH set to cbHeight. - If not, the following applies: 1. The general decoding process of the palette block specified in section XXX is Degree position (xCb, yCb), variable startComp to 0, variable cIdx to 0, variable nT It is called with bW set to cbWidth and the variable nTbH set to cbHeight. 2. General palette predictor updates for palette blocks as specified in Section 8.XX The new process is the luminance position (xCb, yCb), variable startComp is 0, variable numCo It is called with mps set to 1.
[0391] - If not, the following applies: 1. The derivation process for luma intra prediction modes specified in Section 8.2.2 is (xCb, yCb), the width cbWidth of the current coding block of luma samples, and It is called using as input the height cbHeight of the current coded block of luma samples. It is served. 2. The general decoding process for intra blocks specified in subclause 8.2.4.1 is Luminance position (xCb, yCb), tree type is treeType, variable nTbW is cbW idth, variable nTbH is equal to cbHeight, variable predModeI ntra is equal to IntraPredModeY[xCb][yCb], and the variable cIdx is called with the input set equal to 0, and the output is the modified version before in-loop filtering. This is the reconstructed picture. If treeType is equal to SINGLE_TREE or treeType is D If UAL_TREE_CHROMA is set, the chroma sample decoding process is as follows: is specified.
[0392] - If pcm_flag[xCb][yCb] is equal to 1, the reconstructed picture is It is corrected as follows: S Cb [xCb / SubWidthC+i][yCb / SubHeightC+j]= pcm_sample_chroma[(cbHeight / SubWidthC*j) +i]<<(BitDepth C -PcmBitDepth C ), with i=0..cbWidth / SubWidthC-1 and j=0. .cbHeight / SubHeightC-1 (8-2) S Cr [xCb / SubWidthC+i][yCb / SubHeightC+j] =pcm_sample_chroma[(cbHeight / SubWidthC*( j+cbHeight / SubHeightC))+i]<< (BitDepth C -PcmBitDepth C ), with i=0..cbWidth / SubWidthC-1 and j=0. .cbHeight / SubHeightC-1 (8-3)
[0393] - Otherwise, cu_palette_flag[xCb][yCb] is equal to 0. If not, the following applies: - If tree_type is equal to SINGLE_TREE, the following applies: 1. The general decoding process for the palette blocks specified in XXX is Place (xCb, yCb), set variable startComp to 0, variable cIdx to 1, and variable nTbW Set the variable (cbWidth / 2) to cbHeight and the variable (cbHeight / 2) to cbWidth. is called. 2. The general decoding process for the palette blocks specified in XXX is Place (xCb, yCb), set variable startComp to 0, set variable cIdx to 2, and set variable nTbW Set the variable (cbWidth / 2) to cbHeight and the variable (cbHeight / 2) to cbWidth. is called. 3. General palette predictor updates for palette blocks as specified in Section 8.XX The new process is the luminance position (xCb, yCb), variable startComp is 0, and variable num is Called with Comps set to 3. - If not, the following applies: 1. The general decoding process for the palette blocks specified in XXX is Place (xCb, yCb), set variable startComp to 1, set variable cIdx to 1, and set variable nTbW Set the variable (cbWidth / 2) to cbHeight and the variable (cbHeight / 2) to cbWidth. is called. 2. The general decoding process for the palette blocks specified in XXX is Place (xCb, yCb), set variable startComp to 1, variable cIdx to 2, and variable nTbW Set the variable (cbWidth / 2) to cbHeight and the variable (cbHeight / 2) to cbWidth. is called. 3. The general palette predictor update process for the palette block specified in Item XXX. The process is the luminance position (xCb, yCb), the variable startComp is set to 1, and the variable numCo It is called with mps set to 2.
[0394] - If not, the following applies: 1. The chrominance intra-prediction mode derivation process specified in Section 8.2.3 is position (xCb, yCb), the width cbWidth of the current coding block of luma samples, and It is called with input cbHeight, the height of the current coding block of luma samples. do. 2. The general decoding process for intra blocks specified in subclause 8.2.4.1 is Chroma position (xCb / 2, yCb / 2), tree type is treeType, variable nTb W is equal to (cbWidth / 2) and the variable nTbH is equal to (cbHeight / 2). The variable predModeIntra is IntraPredModeC[xCb][yC b], the variable cIdx is called with it set equal to 1, and the output is 4 is the reconstructed picture corrected before ringing. 3. The general decoding process for intra blocks specified in subclause 8.2.4.1 is Chroma position (xCb / 2, yCb / 2), tree type is treeType, variable nTb W is equal to (cbWidth / 2) and the variable nTbH is equal to (cbHeight / 2) The variable predModeIntra is IntraPredModeC[xCb][y Cb] and the variable cIdx is set equal to 2, and the output is 4 is the reconstructed picture modified before filtering.
[0395] [ka]
[0396] The inputs to this process are: - defines the top-left sample of the current block relative to the top-left luminance sample of the current picture. Position to be determined (xCb, yCb) - The variable startComp defines the first color component in the palette table, - the variable cIdx, which specifies the color components of the current block, - Two variables, nTbW and nTbH, that specify the width and height of the current block, respectively.
[0397] The output of this process is the array recSamples[x][y], where x=0..nT bW-1, y=0..nTbH-1 specify the reconstructed sample values of the block. Based on the value of cIdx, the variables nSubWidth and nSubHeight are It is derived as follows.
[0398] - If cIdx is equal to 0, nSubWidth is set to 1 and nSubHeig ht is set to 1. - If startComp is equal to 1 and cIdx>1, then nSubWidth is set to 1. and nSubHeight is set to 1. - Or, set nSubWidth to SubWidthC and nSubHeigh Set t to SubHeightC. - if cu_palette_ibc_mode[xCb][yCb] is equal to 1, The following applies: - The motion vector derivation process specified in 8.6.2 is performed by dividing the upper left luminance subpixel of the current image by the The luminance position (xCb, yCb) of the top-left sample of the current luminance coding block for ), the variable cbWidth, which specifies the width of the current coding block in luma samples, and The variable cbHeight specifies the height of the current coding block in luma samples. The output is the luma motion vector at -1 / 16 fractional sample precision mvL. It is Tor. - The general IBC prediction process specified in subclause 8.6.3 begins with the left A luminance position that specifies the top-left sample of the current coding block relative to the luminance sample above ( xCb, yCb), variable cbWid that specifies the width of the current coded block of luma samples th, a variable cbHeight that specifies the height of the current coding block of luma samples, The variables numSbX and nu specify the number of luminance coding sub-blocks in the horizontal and vertical directions. mSbY, motion vector mv[xSbIdx][ySbIdx], xSbIdx=0.. numSbX-1, and ySbIdx=0..numSbY-1, the color of the current block It is called with a variable cIdx that specifies the component index. The output is the predicted sample p An array of redSamples[x][y].
[0399] The reconstructed sample sequence recSamples at position (xCb, yCb) (nT bW xnTbH) block is x=0..nTbW-1, y=0..nTbH-1, r It is represented as ecSamples[x][y], where x ranges from 0 to nTbW-1 and 0 The value of recSamples[x][y] for each y in the range from to nTbH-1 is It is derived as follows:
[0400] - The variables xL and yL are derived as follows: xL=palette_transpose_flag ? x*nSubHeigh t:x*nSubWidth (5-4) yL=palette_transpose_flag ? y*nSubWidth :y*nSubHeight (5-5) The variable bIsEscapeSample is derived as follows: -PaletteIndexMap[xCb+xL][yCb+yL] is MaxPal palette_escape_val_present If _flag is equal to 1, bIsEscapeSample is set to 1. -or- set bIsEscapeSample to 0. If -bIsEscapeSample is equal to 0, the following applies: -cu_palette_ibc_mode[xCb][yCb] is equal to 1. the following applies: -PaletteIndexMap[xCb+xL][yCb+yL] is equal to 0 In that case, the following applies: recSamples[x][y]=predSamples[x][y] - If not, the following applies: recSamples[x][y]=CurrentPaletteEntrie s[cIdx][PaletteIndexMap[xCb+xL][yCb+yL]- 1] (5-6) - If not, the following applies: recSamples[x][y]=CurrentPaletteEntries [cIdx][PaletteIndexMap[xCb+xL][yCb+yL]] (5-7) -or if cu_transquant_bypass_flag is equal to 1 The following applies: recSamples[x][y]=PaletteEscapeVal[cIdx ][xCb+xL][yCb+yL] (5-8) -or- (bIsEscapeSample is equal to 1 and cu_transqua nt_bypass_flag is equal to 0), the following ordered steps are applicable: It is used. 1. The quantization parameter derivation process is performed by dividing the current block by the top-left sample of the current picture. It is called with a position (xCb, yCb) that defines the top-left sample of the lock. 2. The quantization parameter qP is derived as follows: - If cIdx is equal to 0 qP=Max(0,Qp'Y) (5-9)' - Or, if cIdx is equal to 1, qP=Max(0,Qp'Cb) (5-10) -or- (if cIdx is equal to 2), qP=Max(0,Qp'Cr) (5-11) 3. The variable bitDepth is derived as follows: bitDepth=(cIdx==0)?BitDepth Y :BitDept h C (5-12) 4.list levelScale[] is the levelScal when k=0..5. It is defined as e[k]={40, 45, 51, 57, 64, 72}. 5. The following applies: tmpVal=(PaletteEscapeVal[cIdx][xCb+xL] [yCb+yL]* levelScale[qP%6])<<(qP / 6)+32)>>6 (5- 13) recSamples[x][y]=Clip3(0,(1< <bitDept h)-1,tmpVal) (5-14)
[0401] [ka]
[0402] The inputs to this process are: - defines the top-left sample of the current block relative to the top-left luminance sample of the current picture. Position to be determined (xCb, yCb) - The variable startComp defines the first color component in the palette table, - The variable numComps specifies the number of color components in the palette table.
[0403] The output of this process is the variable Predictor, which specifies the size of the updated palette predictor. rPaletteSize[startComp], where cIdx=startCom p, …, startComp+numComps-1, i=0, array Predictor PaletteEntries[cIdx][i]. PredictorPale tteSize-1 specifies the updated palette predictor for the next block.
[0404] Variable PredictorPaletteSize and array PredictorPale The tteEntries are derived or modified as follows:
[0405] for(i=0;i <CurrentPaletteSize;i++) for(cIdx=startComp;cIdx<(startComp+numC omps);cIdx++) newPredictorPaletteEntries[cIdx][i]=Cu rrentPaletteEntries[cIdx][i] newPredictorPaletteSize=CurrentPaletteSi ze for(i=0;i <PredictorPaletteSize && newPre dictorPaletteSize <PaletteMaxPredictorSiz e;i++) if(!PalettePredictorEntryReuseFlags[i]) { for(cIdx=startComp;cIdx<(startComp+num Comps);cIdx++) (5-15) newPredictorPaletteEntries[cIdx][newP redictorPaletteSize]= PredictorPaletteEntries[cIdx][i] newPredictorPaletteSize++ } for(cIdx=startComp;cIdx<(startComp+numCo mps);cIdx++) for(i=0;i <newPredictorPaletteSize;i++) PredictorPaletteEntries[cIdx][i]=newPr editorPaletteEntries[cIdx][i] PredictorPaletteSize=newPredictorPalette Size
[0406] PredictorPaletteSize value changes from 0 to PaletteMaxPred It is a bitstream conformance requirement that the bitstream size be within the range of ictorSize.
[0407] 5.1 Example #2
[0408] 5.1.1 Scaling of conversion coefficients
[0409] The inputs to this process are: - The top-left sample of the current luma transformation block relative to the top-left luma sample of the current picture. The luminance position (xTbY, yTbY) that specifies the pull, - variable nTbW, which specifies the width of the transformation block; - variable nTbH, which specifies the height of the transformation block; - the variable cIdx, which specifies the color components of the current block, - The variable bitDepth, which specifies the bit depth of the current color components.
[0410] The output of this process is a (nTb W) × (nTbH) array d. The quantization parameter qP is derived as follows. If -cIdx is equal to 0, the following applies: - transform_skip_flag[xTbY][yTbY] is 1, or if intra_bdpcm_flag[xTbY][yTbY] is 1, The below applies. qP = Max(4 + QpBdOffsetY, Qp' Y ) (8-954)' - If not, qP=Qp' Y (8-954) - Otherwise, cIdx is equal to 1 and tu_joint_cbcr_resid If ual[xTbY][yTbY] is 1, the following applies: qP=Qp' CbCr (8-955) - Otherwise, if cIdx is 1, the following applies: qP=Qp' Cb (8-956) - Otherwise (cIdx=2), the following applies: qP=Qp' Cr
[0411] In one example, the highlighted condition may be further modified as follows: If transform_skip_flag[xTbY][yTbY] is 1, The below applies.
[0412] 5.2 Example #3
[0413] 5.2.1 Scaling of conversion coefficients
[0414] The inputs to this process are: - The top-left sample of the current luma transformation block relative to the top-left luma sample of the current picture. The luminance position (xTbY, yTbY) that specifies the pull, - variable nTbW, which specifies the width of the transformation block; - variable nTbH, which specifies the height of the transformation block; - the variable cIdx, which specifies the color components of the current block, - The variable bitDepth, which specifies the bit depth of the current color components.
[0415] The output of this process is a (nTb W) × (nTbH) array d. The quantization parameter qP is derived as follows. If -cIdx is equal to 0, the following applies: - transform_skip_flag[xTbY][yTbY] is 1, or intra_bdpcm_flag[ xTbY][yTbY] is 1, The following applies: qP=Max(4+(6*(input_bit_depth-8)),Qp' Y ) (8-954) - If not, qP=Qp' Y (8-954) - Otherwise, cIdx is equal to 1 and tu_joint_cbcr_resid If ual[xTbY][yTbY] is 1, the following applies: qP=Qp' CbCr (8-955) - Otherwise, if cIdx is 1, the following applies: qP=Qp' Cb (8-956) - Otherwise (cIdx=2), the following applies: qP=Qp' Cr
[0416] In one example, the highlighted condition may be further modified as follows: If transform_skip_flag[xTbY][yTbY] is 1, The below applies.
[0417] 5.3 Example #4
[0418] 5.3.1 Transform Coefficient Scaling Process The inputs to this process are:
[0419] - The top-left sample of the current luma transformation block relative to the top-left luma sample of the current picture. The luminance position (xTbY, yTbY) that specifies the pull, - variable nTbW, which specifies the width of the transformation block; - variable nTbH, which specifies the height of the transformation block; - the variable cIdx, which specifies the color components of the current block, - The variable bitDepth, which specifies the bit depth of the current color components.
[0420] The output of this process is a (nTb W) × (nTbH) array d. The quantization parameter qP is derived as follows. If -cIdx is equal to 0, the following applies: - transform_skip_flag[xTbY][yTbY] is 1, or if intra_bdpcm_flag[xTbY][yTbY] is 1, The below applies. qP = Max(4,Qp' Y ) (8-954) - If not, qP=Qp' Y (8-954) - Otherwise, cIdx is equal to 1 and tu_joint_cbcr_resid If ual[xTbY][yTbY] is 1, the following applies: qP=Qp' CbCr (8-955) - Otherwise, if cIdx is 1, the following applies: qP=Qp' Cb (8-956) - Otherwise (cIdx=2), the following applies: qP=Qp' Cr
[0421] In one example, the highlighted condition may be further modified as follows: If transform_skip_flag[xTbY][yTbY] is 1, The below applies.
[0422] FIG. 17A is a block diagram of a video processing device 1700. The device 1700 is The device 1700 may be used to implement one or more of the methods described herein. This is being implemented in smartphones, tablets, computers, Internet of Things (IoT) receivers, etc. The device 1700 may include one or more processing units 1702, one or more memories 1704, and , and video processing hardware 1706. 2 may be configured to implement one or more of the methods described herein. 1704 may be used to implement the methods and techniques described herein. The video processing hardware 1706 may be used to store data and code. may be used to implement the techniques described herein in hardware circuitry. The image processing hardware 1706 may be dedicated hardware or a graphical processing unit. Partially within the processing unit 1702 in the form of a graphics processing unit (GPU) or dedicated signal processing blocks. Or it may be completely contained.
[0423] FIG. 17B illustrates an exemplary video processing system in which the disclosed techniques can be implemented. FIG. 17B is another example of a block diagram in which various techniques disclosed herein may be implemented. 17 is a block diagram illustrating an example video processing system 1710. The system 1710 may include some or all of the components of the system 1710. It may also include an input unit 1712 for receiving video content. is a raw or uncompressed format, e.g. 8 or 10 bit multi-component The image may be received as pixel values or in a compressed or encoded format. The input unit 1712 is a network interface, a peripheral bus interface, An example of a network interface is Wired interfaces such as , Ethernet, and Passive Optical Networks (PON) and wireless interfaces such as Wi-Fi or cellular interfaces Includes the face.
[0424] The system 1710 may implement various encoding or encoding methods described herein. The encoding component 1714 may include an encoding component 1714 that can 14 is the average of the video from the input unit 1712 to the output of the encoding component 1714 The bit rate may be reduced to produce a coded representation of the video. is sometimes called video compression or video transcoding technology. The output of 714 may be stored, as represented by component 1716. , may be transmitted via a connected communication. The bitstream (or encoded) representation of the video stored or communicated may be used by the component 1718 and sent to the display interface unit 1720. A user may generate pixel values or a displayable image from the bitstream representation. The process of producing a viewable image is sometimes called image decompression. Furthermore, although certain video processing operations are referred to as "encoding" operations or tools, An operation is a corresponding decoding tool or operation used by an encoder to produce the result of the encoding. It will be appreciated that the inversion is performed by the decoder.
[0425] An example of a peripheral bus interface unit or a display interface unit is a Universal Serial Bus (USB) or High-Definition Multimedia Interface (HDM I (registered trademark) or display port. Examples of interfaces are Serial Advanced Technology Attachment (SATA), PCI, The technology described in this specification is applicable to mobile phones, laptops, etc. Computers, smartphones, or other devices capable of digital data processing and / or image display The present invention may be implemented in a variety of electronic devices, such as a mobile device.
[0426] FIG. 18A illustrates an exemplary method 1810 for video processing. In step 1812, a current video block of a video and a coded representation of the current video block In some implementations, the conversion includes converting between the rule being an identity transformation code for representing the current video block in the coded representation; Using a decoding tool, the quantization used to decode the current video block is determined. A syntax field indicating a parameter is provided, the value of the quantization parameter being modified according to a rule. The identity transform coding tool is provided to include the current block The coefficient values in the transform domain of the block are the same as those of the residual block of the current image block. In some implementations, the encoded representation can be A structure showing the use of coding tools using identity transformations based on the quantization parameters included in the representation. Conforms to formatting rules that specify the optional inclusion of sentence elements. In one embodiment, the coded representation includes a syntax element indicating an input bit depth of the video. It complies with formatting rules that stipulate that
[0427] FIG. 18B illustrates an exemplary method 1820 for video processing. The method 1820 includes the steps: In step 1822, a conversion between a video block of a video unit of a video and a coded representation of the video is performed. Therefore, the image is captured based on the quantization parameters associated with the video block or video unit. This includes determining whether to perform pre-processing or post-processing operations on the image block. The modulus 1820 includes, at step 1824, performing a transformation based on the determination.
[0428] Some embodiments of the disclosed technology may include a method for enabling video processing tools or modes. In one example, determining or judging that a video processing tool or mode is enabled. When a video block is processed, the encoder uses this tool or mode to use or implement a tool, but results in The resulting bitstream does not necessarily need to be modified; i.e., the block of video The conversion from the input video to a bitstream representation is made by a video processing tool or Use this video processing tool or mode if the tool or mode is enabled. When a video processing tool or mode is enabled in The bitstream is modified based on the video processing tool or mode. i.e., the video processing tools or The mode is used to convert from a bitstream representation of the image to blocks of the image.
[0429] Some embodiments of the disclosed technology include disabling video processing tools or modes. In one example, determining or judging that a video processing tool or mode is disabled. When enabled, the encoder converts blocks of video into a bitstream representation of the video. In another example, you may not use this tool or mode to If the mode is disabled, the decoder will determine whether the mode is disabled based on a decision or judgment. You know that the bitstream has not been modified using any video processing tools or modes. The bitstream is then processed.
[0430] As used herein, the term "video processing" refers to video encoding, video decoding, video compression, or For example, a video compression algorithm converts a pixel representation of an image into It may be applied during conversion to a corresponding bitstream representation or vice versa. A bitstream representation of a current video block may be, for example, as specified by the syntax: This may correspond to bits spread to the same or different locations in the bitstream. For example, a macroblock can be expressed as follows in terms of transformed and coded error residual values: and uses bits in the header and other fields in the bitstream to encode The signal may be encoded.
[0431] The following sections describe several embodiments and techniques. The first set of sections describes the techniques described in the previous chapter. Certain features and aspects of the disclosed technology are described.
[0432] 1. A video coding method comprising: a video domain of a video and a bitstream representation of the video domain; During conversion, the deblocking of the image region is performed based on the palette coding mode conditions for the image region. determining parameters for the conversion process and using the selected parameters to convert non-volatile memory during conversion; using blocking processing.
[0433] 2. The parameters of the deblocking process are either intra or inter coding mode. It is used to transform other video regions coded in the block-by-block or intra-block copy coding modes. The method according to item 1, wherein the parameters used are different from those of the method according to item 1.
[0434] 3. The parameters are that the image areas adjacent to the P and Q side image areas are palette mode codes. Items 1-2, including boundary strength values that are determined based on whether the 2. The method according to claim 1 ,
[0435] 4. For both P and Q side image areas coded in palette mode, The method of item 3, where the field strength is zero.
[0436] 5. Palette mode is a palette mode combined with intra prediction mode (PCIP ) or a palette mode combined with composite palette mode (CPM), The method according to any one of 1 to 4.
[0437] Section 4, item 1 provides additional examples and embodiments of the above methods.
[0438] 6. A video processing method comprising: During the conversion, the allocation rules are followed to allocate the coding modes of the video pictures based on the coding modes of the neighboring videos. Select the deblocking filter parameters to apply deblocking processing to the video blocks. The transformation is performed by selecting the appropriate block size and applying a deblocking process according to the allocation rules. and performing the allocation rule when the neighboring blocks are coded in a mixed palette mode. If the file is encoded in a different encoding mode, or if the file is encoded in a different encoding mode, the same parameters are used. The method to specify that the
[0439] 7. The method according to item 6, wherein the other encoding mode corresponds to an intra block copy mode. Law.
[0440] 8. The method according to item 6, wherein the other encoding mode corresponds to a palette encoding mode.
[0441] Section 4, item 2 provides additional examples and embodiments of the above methods.
[0442] 9. A video processing method comprising: During the conversion, the allocation rules are followed to allocate the coding modes of the video pictures based on the coding modes of the neighboring videos. Select the deblocking filter parameters to apply deblocking processing to the video blocks. The transformation is performed by selecting the appropriate block size and applying a deblocking process according to the allocation rules. and performing the allocation rule according to which the neighboring blocks are combined with the intra prediction mode. If the file is encoded in Predefined Palette Integral (PCIP) mode or in a different encoding mode, Specify that the same parameters be used if the
[0443] 10. The method according to claim 9, wherein the other encoding mode corresponds to an intra block copy mode. method.
[0444] 11. The method according to item 9, wherein the other encoding mode corresponds to a palette encoding mode.
[0445] Section 4, item 3 provides additional examples and embodiments of the above methods.
[0446] 12. A method of processing an image, comprising: A video block of a video picture is generated using a palette encoding mode used to encode pixels. converting between a bitstream representation of the video block and a bitstream representation of the video block; A flag in the frame representation indicates the presence of nonzero coefficients in the corresponding video block. This flag indicates the palette coding mode, the palette combined with the intra prediction mode. Video blocks encoded in Pulse-Camera Interpolated (PCIP) or Composite Palette Mode (CPM) The method used to signal a lock.
[0447] 13. The value of the flag depends on whether the corresponding block has escape pixels. 13. The method according to item 12.
[0448] Section 4, item 4 provides additional examples and embodiments of the above methods.
[0449] 14. A video processing method comprising: a video picture including a plurality of video blocks; A palette recovery method for recovering a palette associated with each of a plurality of image blocks during conversion to and from the bitstream representation of the image. Deblocking processing can be applied to each of a plurality of video blocks based on the encoding mode conditions. Based on its applicability, the non-blocking feature is divided into multiple blocks during the transformation. and selectively using a compounding process.
[0450] 15. Applicability is determined based on whether the deblocking process is in palette mode or intra prediction. Palette mode combined with mode (PCIP), or composite palette mode (CPM 15. The method according to claim 14, wherein the method determines that the approximation is not applicable to blocks encoded with the approximation.
[0451] 16. Applicability is judged by whether the P side block or the Q side block is in pallet mode. When the P-side sample is encoded in PCIP or CPM mode, 15. The method of claim 14, further comprising determining that the Q-side sample is not applicable.
[0452] Section 4, item 5 provides additional examples and embodiments of the above methods.
[0453] 17. A video processing method comprising: Converts between bitstream representations of video frames encoded in CPM (Common Mode) The bitstream representation includes intra modes applicable to the video domain, inter The image area is different from the mode, intra block copy mode, or palette mode indication. The method includes indicating a CPM mode at a region level.
[0454] 18. The image domain is divided into a transform unit, a prediction unit, or a coding block unit. The corresponding method according to item 17.
[0455] 19. The bitstream representation is applicable to intra-mode, inter-mode, and After the instruction for the intra block copy mode or palette mode, the instruction for the CPM mode 19. The method according to any one of items 17 to 18, including instructions.
[0456] Section 4, item 6 provides additional examples and embodiments of the above methods.
[0457] 20. A method of processing an image, comprising: A video block of a video picture using a coding mode used to code pixels. and converting between a bitstream representation of the video block and a palette coding mode The syntax elements for the code are used to determine the color of a given image block based on the characteristics of the color component to which the given image block belongs. Selectively included in the bitstream representation of the image block, the coding mode being palette coding. mode, combined with intra prediction (PCIP) mode or combined palette mode (C PM).
[0458] 21. A video processing method, comprising: a syntax element relating to a palette coding mode for a given video; It is further selectively included based on the partition structure or plane coding used for the block. A video processing method.
[0459] 22. Syntax elements are included only for dual-tree partition structures, items 20-2 1. The method according to claim 1
[0460] 23. A video picture is in 4:0:0 format and a given video block is In any of items 20-21, a syntax element is skipped due to a lock. The method described.
[0461] Section 4, item 7 provides additional examples and embodiments of the above methods.
[0462] 24. A given video block corresponds to a chroma component and the syntax for the palette coding mode The elements represent the coded values of one or more selected blocks of luminance blocks corresponding to a given image. 21. The method according to claim 20, wherein the information is selectively included based on the information obtained.
[0463] 25. One or more selected blocks of luminance blocks are coded as smallest coding units or 25. The method according to claim 24, which corresponds to a minimum prediction unit or a minimum transform unit size. .
[0464] Section 4, item 8 provides additional examples and embodiments of the above methods.
[0465] 26. The method according to any one of items 20 to 25, wherein the encoding mode is a PCIP mode. .
[0466] Section 4, item 9 provides additional examples and embodiments of the above methods.
[0467] 27. A video picture including a plurality of video blocks, and at least a portion of the plurality of blocks Converts to and from a bitstream representation of a video picture coded in a predictive coding mode. In other words, a video block may be used to code other video blocks in a video picture. A composite palette mode that is distinct from or is identified as a special case of the predictive coding mode of A video processing method encoded using the CPM (Common Per Second).
[0468] 28. Other predictive coding modes include intra mode, intra block copy, and palette mode, intra slice or I-picture or intra-tile group CPM mode 28. The method according to item 27, comprising:
[0469] Section 4, item 10 provides additional examples and embodiments of the above method.
[0470] 29. CPM is considered a special case of other predictive coding modes in bitstream representation. The syntax elements that signal CPM are identified as such and are used in conjunction with other predictive methods of which CPM is a special case. Item 28. The method of item 27, wherein the signaling is selectively based on the type of mode.
[0471] 30A. If the type of other prediction mode is intra mode, the signaling of the syntax element of CPM 30. The method of claim 29, wherein the knowledge is skipped.
[0472] 30B. If the type of other prediction mode is skip mode, the signaling of the syntax element of CPM 30. The method of claim 29, wherein the knowledge is skipped.
[0473] Section 4, item 11 provides additional examples and embodiments of the above methods.
[0474] 31. A video processing method, comprising: a current video block and a current video block in a composite palette; The first bitstream of the current video block is encoded using Continuously Moving Picture Mode (CPM). A first transformation is performed between the image representation of the current video block and the image representation of the current video block. the motion vector is determined based on the second bit of the next video block, and a second transformation of the motion vectors associated with the current video block. In the method, vector-based motion estimation is used during the second transform.
[0475] 32. The method according to item 31, in which motion prediction is used as a merging candidate for the second transform.
[0476] 33. Motion estimation is used as a history-based motion vector predictor during the second transform 33. The method according to item 31 or 32.
[0477] Section 4, item 12 provides additional examples and embodiments of the above methods.
[0478] 34. A video processing method, comprising: a current video block and a current video block that is an intra-video The first part of the current video block being coded in combined prediction and interpolation (PCIP) mode The first conversion is performed between the bitstream representation of the current video block and the bitstream representation of the current video block. and a next video block and an intra prediction direction associated with the next video block. and a second bitstream representation of the block, and a second transformation of the block, An intra-mode predictor based on the associated intra-prediction direction is used during the second transform. How to do it.
[0479] 35. The intra prediction direction associated with the current video block is up to 35. The method of claim 34, wherein the probability mode candidate is used.
[0480] Section 4, item 13 provides additional examples and embodiments of the above methods.
[0481] 36. A method for processing an image, comprising: Determining the maximum number of palette entries that may be used during conversion to and from the current and performing a conversion based on the bitstream representation of the field, A method for signaling the maximum number of changes in the body.
[0482] 37. A video unit is a coding tree block or a coding unit or a prediction unit. 37. The method according to item 36, corresponding to a transform or conversion unit.
[0483] 38. The maximum number is based on the coded information of the current video block, for items 36-37 Law.
[0484] Section 4, item 14 provides additional examples and embodiments of the above methods.
[0485] 39. A video processing method comprising: This is due to the use of palette coding mode during conversion to and from the bitstream representation of the determining that the use of the scaling matrix is invalid; and performing the conversion based on determining that the is invalid.
[0486] 40. A video processing method comprising: This is due to the use of palette coding mode during conversion to and from the bitstream representation of the determining that the use of a scaling matrix is permitted; performing the conversion based on a determination that the use of the column is permitted.
[0487] Section 4, item 15 provides additional examples and embodiments of the above methods.
[0488] 41. This method is applied to determine the characteristics of the image being transformed, item 1 to 40. A method according to any one of claims 1 to 40.
[0489] 42. The method of claim 41, wherein the characteristics of the video include a content type of the video.
[0490] 43. The method of claim 41, wherein the image characteristics include block dimensions used for the transformation.
[0491] 44. The video characteristics are as described in item 41, including the partition tree structure used for conversion. The method described.
[0492] Section 4, item 25 provides additional examples and embodiments of the above methods.
[0493] 46. A method of processing an image, comprising: Coding the use of Intra Block Copy (IBC) mode in the current video block and based on the configuration, synthesizing the current video block and the and converting the bitstream representation of the current video block to a bitstream representation of the current video block.
[0494] 47. The one or more features include a block size of the current image block. 46. The method according to claim 46.
[0495] 48. The method according to claim 46, wherein the one or more features include a shape of the current image block. How to.
[0496] 49. The method according to claim 48, wherein the shape is square or non-square.
[0497] Section 4, item 16 provides additional examples and embodiments of the above methods.
[0498] 50. The structure further comprises: The method according to item 46.
[0499] Section 4, item 17 provides additional examples and embodiments of the above method.
[0500] 51. The context includes a first syntax element, and the configuration includes a current video block. Item 47. The method according to item 46, further based on a second syntax element associated with a neighboring block of the Law.
[0501] Section 4, item 18 provides additional examples and embodiments of the above methods.
[0502] 52. A video processing method comprising: Regarding the selective inclusion of an indication of the encoding mode, an identity variable is determining a coding mode to use for the current video block based on the determination; and converting between the video and a bitstream representation.
[0503] 53. The encoding mode is a transform skip mode or a block differential pulse code modulation ( 53. The method according to item 52, wherein the QR-BDPCM.
[0504] Section 4, item 23 provides additional examples and embodiments of the above methods.
[0505] 54. Converting Between a Current Video Block and a Bitstream Representation of the Current Video Block making a first determination as to whether to use a pre-processing operation for said transformation; making a second decision as to whether to use a post-processing operation as a first decision and and performing a transformation consistent with said first determination and / or said second determination. The determination of step 2 is based on the amount of the current video block or the video area that includes the current video block. Use child parameters.
[0506] 55. When the quantization parameter is less than a threshold, the first decision or the second decision 55. The method of claim 54, wherein the determination does not allow pre-processing or post-processing operations.
[0507] 56. The method according to claim 55, wherein the threshold is a function of the bit depth of the current image block. Method of posting.
[0508] 57. The pre-processing operation includes luminance mapping with chroma scaling. A method according to any one of claims 1 to 56.
[0509] 58. Any one of items 54 to 57, wherein the post-processing operation includes a filtering operation. The method described above.
[0510] Item 31 of the previous section provides further variations of the techniques described in items 54-58. .
[0511] 59. The term, wherein the conversion includes generating pixel values in the image domain from a bitstream representation. A method according to any one of items 1 to 58.
[0512] 60. The term "conversion" refers to the generation of a bitstream representation from pixel values in an image domain. A method according to any one of items 1 to 58.
[0513] 61. A process configured to implement the method according to any one or more of items 1 to 58. A video processing device comprising a device.
[0514] 62. A processing device that, when executed, implements the method according to any one or more of items 1 to 58. A computer readable medium storing program code for causing
[0515] The second set of items describes specific features and aspects of the methodology disclosed in the previous section, e.g. Examples 26 to 33 are described.
[0516] 1. A method for processing an image, comprising: the current video block is converted to an encoded representation of the current video block by the rules Using an identity transform coding tool to represent the current image block in the coded representation. A syntax field indicating a quantization parameter used to decode the quantization block is provided. It is provided that the value of the parameter is included to be modified according to the rule, and the identity The transform coding tool converts the coefficient values in the transform domain of the current block into the A method for allowing the residual block of a video block to have the same value.
[0517] 2. Luminance quantization parameter range offset (QpBdOffsety) and / or Based on the chroma quantization parameter range offset (QpBdOffsetc), The method according to item 1, wherein the value of the child parameter is modified.
[0518] 3. The method according to item 1, wherein the value of the quantization parameter is modified based on a fixed offset. .
[0519] 4. The method according to claim 1, wherein the value of the quantization parameter is modified based on the input bit depth. Method of posting.
[0520] 5. Based on the internal bit depth and the input bit depth, the value of the quantization parameter is modified. 2. The method according to claim 1, wherein
[0521] 6. The identity transform coding tool is a transform skipper that skips the transform and inverse transform process. The method according to any one of items 1 to 5, which corresponds to a tap mode.
[0522] 7. The identity transform coding tool generates a quantized residual block corresponding to the current video block. Quantized Residual Block Differential Pulse Code Modulation (QPCM) - The method according to any one of items 1 to 5, which corresponds to a BDPCM mode.
[0523] 8. The rule is that if the syntax element is 1, then a clipping process is applied to the quantization parameter. 8. The method according to any one of items 1 to 7, further comprising applying the above-mentioned procedure.
[0524] 9. The quantization parameter is within the luminance quantization parameter range If it is smaller than the offset (QpBdOffsety), 4 and the luminance quantization parameter The value is set to the sum of the data range offset (QpBdOffsety) and the How to.
[0525] 10. If the quantization parameter is smaller than the certain value, the quantization parameter 9. The method according to claim 8, wherein the value is set to a constant value.
[0526] 11. If the quantization parameter is smaller than (4+6*(bd-bdi)), Set the quantization parameter to (4+6*(bd-bdi)), where bd is the internal bit depth. 9. The method according to claim 8, wherein bdi represents the input bit depth.
[0527] 12. The rule is that when the syntax element is 1, the quantization parameter (QP dec ) to off According to any one of items 1 to 7, the method specifies adding a set to obtain a modified quantization parameter. Method of posting.
[0528] 13. The modified quantization parameter is QP dec , 4 and the luminance quantization parameter Sum of range offset (QpBdOffsety) or QP dec and 4, The method according to any one of items 1 to 7.
[0529] 14. The modified quantization parameter is expressed as QP dec +(4 +6*(bdi-8)), where bdi is the input bit depth. The method according to any one of Items 4 to 12.
[0530] 15. The modified quantization parameter is used to process subsequent blocks of the image. The subsequent processing of the blocks is done by quantization, dequantization, filtering, or prediction operations. using at least one of a plurality of parameters including a delta quantization parameter for 15. The method according to any one of items 1 to 14, comprising:
[0531] 16. The value of the quantization parameter is obtained independently of the internal bit depth QP offset. 16. The method according to any one of items 1 to 15,
[0532] 17. The value of the quantization parameter is the range offset of the luma quantization parameter (QpB 16. The method according to any one of items 1 to 15, wherein the offset is obtained without adding dOffsety.
[0533] 18. The value of the quantization parameter is obtained using an internal bit depth QP offset. 16. The method according to any one of items 1 to 15,
[0534] 19. A method for processing an image, comprising: the encoded representation includes converting the encoded representation into a quantized representation; Selective inclusion of syntax elements to indicate the use of encoding tools using parameter-based identity transformations A method that conforms to formatting rules that stipulate that
[0535] 20. The encoding tool includes a transform skip mode that skips the transform and inverse transform processes. or a block differential to the quantized residual block corresponding to the current image block. Quantized Residual Block Differential Pulse Code Modulation (QP-BDPCM) 20. The method according to item 19, corresponding to the mode.
[0536] 21. The format rule determines whether the syntax element is a quantization parameter. 20. The method according to item 19, wherein the method does not include
[0537] 22. The format rule is such that the value of the quantization parameter is less than 4; or 4 plus the range offset of the luminance quantization parameter, 22. The method according to claim 21, wherein the method does not include
[0538] 23. The syntax elements include transform_skip_flag and / or in 23. The method according to any one of items 19 to 22, comprising tra_bdpcm_flag.
[0539] 24. Performing a conversion between a current video block of a video and a coded representation of the current video block. and wherein the coded representation includes a syntax element indicating an input bit depth of the video. A video processing method that complies with format rules that stipulate:
[0540] 25. The syntax element (input_bitdepth_8) is a sequence parameter The bit depth is included in the SPS or VPS. 25. The method of claim 24, wherein the input bit depth has a value subtracted by 8.
[0541] 26. The syntax element (internal_bitdepth_input_bitdepth pth) is a sequence parameter set (SPS) or video parameter set (VPS ) represents the input bit depth, and is the internal bit depth minus the input bit depth. 25. The method according to item 24, comprising:
[0542] 27. The syntax element has a range between 0 and dQP, where dQP is a fixed value. 5 or 26.
[0543] 28. A method of processing an image, comprising: For the conversion between determining whether to perform pre-processing or post-processing operations on the video block based on the and performing a transformation based on the determination.
[0544] 29. The pre-processing operation divides the luminance samples of the current image block into a first domain and a second domain. The chroma scaler reshapes the chroma residuals between the domains and scales them luminance-dependently. 29. The method of claim 28, which corresponds to luminance mapping with linear-correlation (LMCS) operations.
[0545] 30. The post-processing operation is a filter performed after reconstructing the current image block. 29. The method according to item 28, corresponding to a ring operation.
[0546] 31. If the quantization parameter is less than a threshold, the preprocessing and / or 29. The method according to claim 28, wherein no post-processing is permitted.
[0547] 32. The method according to claim 31, wherein the threshold is predefined.
[0548] 33. The method according to claim 31, wherein the quantization parameter is modified according to a rule.
[0549] 34. If the quantization parameter (QP) is smaller than (4+6*(bd-bdi)), In this case, no deblocking operation is performed, bd is the internal bit depth, and bdi is 29. The method of claim 28, further comprising indicating an input bit depth.
[0550] 35. If the quantization parameter (QP) is smaller than (4+6*(bd-bdi)), In this case, no adaptive loop filtering operation is performed, and bd indicates the internal bit depth. 29. The method according to item 28, wherein bdi indicates an input bit depth.
[0551] 36. If the quantization parameter (QP) is smaller than (4+6*(bd-bdi)), In this case, no sample adaptive offset operation is performed, and the bd indicates an internal bit depth, and 29. The method of claim 28, wherein bdi indicates an input bit depth.
[0552] 37. If the quantization parameter (QP) is smaller than (4+6*(bd-bdi)), In this case, no luminance mapping is performed in the chroma scaling (LMCS) operation, and the bd is 29. The method of claim 28, wherein bdi indicates an internal bit depth and bdi indicates an input bit depth.
[0553] 38. The converting step includes generating the encoded representation from the video. 38. The method according to any one of Items 1 to 37.
[0554] 39. The method of claim 1, wherein the converting step includes generating the image from the encoded representation. A method according to any one of items 1 to 37.
[0555] 40. A process configured to implement the method according to any one or more of items 1 to 39. A video processing device comprising a device.
[0556] 41. When executed, the method according to any one or more of items 1 to 39 is implemented in a processing device. A computer readable medium storing program code for causing
[0557] The disclosed and other solutions, examples, embodiments, modules, The implementation of the functions and operations may be implemented in any manner including the structures disclosed herein and their structural equivalents. Any digital electronic circuit, including computer software, firmware or may be implemented in hardware, or in a combination of one or more thereof. The disclosed and other embodiments may include one or more computer program products. i.e. to be implemented by or to control the operation of a data processing apparatus one of computer program instructions encoded on a computer readable medium for controlling The computer-readable medium may be implemented as one or more modules. -readable storage device, machine-readable storage substrate, memory device, material providing a machine-readable propagating signal - Patents.com or a combination of one or more of these. The term may refer to, for example, a programmable processing device, a computer, or a plurality of processing devices, or any apparatus, device, or device for processing data, including a computer; This device includes a machine that, in addition to the hardware, also includes the execution environment of the computer program. The code that creates the system, e.g., processor firmware, protocol stacks, database management The components that make up the operating system, the management system, or a combination of one or more of these A propagated signal may include an artificially generated signal, e.g., a machine-generated signal. A digital signal is an electrical, optical, or electromagnetic signal that encodes information for transmission to an appropriate receiving device. It is generated to
[0558] Computer programs (programs, software, software applications) , script, or code) is a language that can be compiled or interpreted. It can be written in any form of programming language, including the Module suitable for use as a standalone program or in any computing environment. Deploy in any form, including as modules, components, subroutines, or other units. A computer program does not necessarily have to deal with files in a file system. Programs may not respond to requests from other programs or files that hold data. recorded in one or more scripts stored in a markup language document The program may be stored in a single file dedicated to the program, or in multiple files. A tuning file (e.g., one or more modules, subprograms, or pieces of code) A computer program may be stored in a file (a file storing the program). A single computer located at a site or a communication network distributed across multiple sites It can also be deployed to run on multiple computers interconnected by do.
[0559] The processes and logic flows described herein operate on input data and produce output. execute one or more computer programs to perform functions by creating The processing and logic flow may be implemented by one or more programmable processing devices. The PLC also uses application-specific logic circuits, such as field programmable gate arrays (FPGAs). This can be done by a chip array (Chip Array) or an ASIC (Application Specific Integrated Circuit), and the device can also It may also be implemented as special purpose logic circuitry.
[0560] Suitable processing devices for the execution of a computer program include, for example, general purpose and special purpose microprocessors. Both the processor and any one or more processors of any kind of digital computer Typically, a processing unit includes a read-only memory or a random access memory. The essential elements of a computer are the A processor for executing and one or more memory devices for storing instructions and data. Generally, a computer has one or more mass storage devices for storing data. The device may include, for example, a magnetic, magneto-optical, or optical disk. to receive data from or transfer data to these mass storage devices. However, the computer may be operatively coupled to such a device. It is not necessary to have a computer suitable for storing computer program instructions and data. Computer readable media includes any form of non-volatile memory, media, and memory devices. Including, for example, EPROM, EEPROM, flash storage, magnetic disks, e.g. Internal hard disk or removable disk, magneto-optical disk, and CD-ROM and semiconductor storage devices such as DVD-ROM disks. It may be supplemented by, or incorporated into, special purpose logic circuits. It may be included.
[0561] This patent specification contains many details, which may be misleading in any respect as to the scope or scope of any subject matter or claims. The present invention should not be construed as limiting the scope of the present invention, but rather as being specific to particular embodiments of particular technologies. The description of the possible features of the present invention should be interpreted as a description of the possible features of the present invention. Certain features described in the context may be implemented in combination in one example. Conversely, various features that are described in the context of one example may also be used in multiple embodiments. Further, the features may be implemented separately or in any suitable subcombination. The compounds described above as acting in specific combinations and initially claimed as such However, one or more features from a claimed combination may, in some cases, be combined. The claimed combination may be extracted from any combination of the claimed The present invention may be directed to variations in the above combinations.
[0562] Similarly, although operations may be shown in a particular order in the figures, this is not intended to be limiting as to how the desired results are achieved. that such actions be performed in the particular order or sequence shown, in order to It should not be construed as requiring that all acts shown be performed. Also, the separation of the various system components in the examples described in this patent specification is It should not be understood that all embodiments require such separation.
[0563] Only certain implementations and examples are described and illustrated in this patent document. Other implementations, extensions and variations are possible based on the content provided. By way of example and example only, other implementations may be practiced based on what is described and illustrated in the present application. , extensions and modifications may be made.
Claims
1. A method for processing video data, determining, for conversion between a current video block of a video and a bitstream of the video, to clip a quantization parameter indicated by a syntax field of the current video block coded in a transform skip mode in which transform and inverse transform processes are skipped; clipping the value of the quantization parameter based on a variable indicating a minimum allowed quantization parameter for the transform skip mode; performing the transform based on the clipping; in the clipping, if the value of the quantization parameter is less than the value of the variable, the value of the quantization parameter is set to the value of the variable; the current video block is a chroma block, and a chroma prediction mode of the current video block is derived based on luma coding information of a first luma block corresponding to the current video block; If the first luminance block is a neighboring block of a second luminance block, a default mode for constructing an intra mode candidate list of the second luminance block is assigned to the first luminance block according to the second luminance block and the first luminance block being in different slices or tiles. method.
2. the value of the variable is greater than 0; The method of claim 1.
3. the value of the variable is 4 or greater; The method according to claim 1 or 2.
4. said value of said variable is equal to (4+X), where X is a predefined value equal to or greater than 0; The method according to claim 3.
5. X=6*Y, Y is determined based on at least one syntax element included in the bitstream. The method according to claim 4.
6. Y=bd−bdi, bd is an internal bit depth for coding the image; bdi is the input bit depth of the image; The method according to claim 5.
7. the current image block is coded according to a differential coding mode; In the differential coding mode, a difference between a quantized residual derived in an intra prediction mode of the current video block and a predicted value of the quantized residual is included in the bitstream.
7. The method according to any one of claims 1 to 6.
8. the transforming includes encoding the current video block into the bitstream.
8. The method according to any one of claims 1 to 7.
9. the converting includes decoding the current video block from the bitstream.
9. The method according to any one of claims 1 to 8.
10. 1. An apparatus for processing video data comprising a processor and a non-transitory memory having instructions stored thereon, the apparatus comprising: The instructions, when executed by the processing device, cause the processing device to: determining, for conversion between a current video block of a video and a bitstream of the video, to clip a quantization parameter indicated by a syntax field of the current video block coded in a transform skip mode in which transform and inverse transform processes are skipped; clipping the value of the quantization parameter based on a variable indicating a minimum allowed quantization parameter for the transform skip mode; performing the transform based on the clipping; in the clipping, if the value of the quantization parameter is less than the value of the variable, the value of the quantization parameter is set to the value of the variable; the current video block is a chroma block, and a chroma prediction mode of the current video block is derived based on luma coding information of a first luma block corresponding to the current video block; If the first luminance block is a neighboring block of a second luminance block, a default mode for constructing an intra mode candidate list of the second luminance block is assigned to the first luminance block according to the second luminance block and the first luminance block being in different slices or tiles. Device.
11. A non-transitory computer-readable storage medium storing instructions, comprising: The instructions may be for causing a processor to: determining, for conversion between a current video block of a video and a bitstream of the video, to clip a quantization parameter indicated by a syntax field of the current video block coded in a transform skip mode in which transform and inverse transform processes are skipped; clipping the value of the quantization parameter based on a variable indicating a minimum allowed quantization parameter for the transform skip mode; performing the transform based on the clipping; in the clipping, if the value of the quantization parameter is less than the value of the variable, the value of the quantization parameter is set to the value of the variable; the current video block is a chroma block, and a chroma prediction mode of the current video block is derived based on luma coding information of a first luma block corresponding to the current video block; If the first luminance block is a neighboring block of a second luminance block, a default mode for constructing an intra mode candidate list of the second luminance block is assigned to the first luminance block according to the second luminance block and the first luminance block being in different slices or tiles. A non-transitory computer-readable storage medium.
12. A method for storing a video bitstream, comprising the steps of: determining, for a current video block of a video, to clip a quantization parameter indicated by a syntax field of the current video block coded in a transform skip mode in which transform and inverse transform processes are skipped; clipping the value of the quantization parameter based on a variable indicating a minimum allowed quantization parameter for the transform skip mode; generating the bitstream based on the clipping; and storing the bitstream on a non-transitory computer-readable recording medium; in the clipping, if the value of the quantization parameter is less than the value of the variable, the value of the quantization parameter is set to the value of the variable; the current video block is a chroma block, and a chroma prediction mode of the current video block is derived based on luma coding information of a first luma block corresponding to the current video block; If the first luminance block is a neighboring block of a second luminance block, a default mode for constructing an intra mode candidate list of the second luminance block is assigned to the first luminance block according to the second luminance block and the first luminance block being in different slices or tiles. method.
Citation Information
Patent Citations
Restriction of Escape Pixel Signaling Values in Palette Mode Video Coding
JP2018532319A
Restriction of escape pixel signaled values in palette mode video coding
US20170085891A1