Counter-based update of intra prediction mode
By using counter-based intra-code method in video encoding and decoding technology, the frequency table and intra-prediction mode table are updated, and the problem of low efficiency in video bandwidth requirements in the prior art is solved, achieving more efficient resource utilization and performance improvement.
Patent Information
- Application Number
- CN202080057707.X
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-08-30
- Filing Date
- 2020-08-19
- Publication Date
- 2025-05-23
- Estimated Expiration
- 2040-08-19
AI Technical Summary
Existing video encoding and decoding technologies are not efficient in dealing with video bandwidth requirements, especially in the Internet and digital communication networks, resulting in waste of resources and degradation of performance.
The conversion process between the video and image intra-coded representation is optimized by selectively updating the frequency table and the sorted intra-prediction mode table.
It improves the compression performance of video encoding and codec, reduces bandwidth requirements, and improves the system's resource utilization and performance performance.
Smart Images

Figure CN114287131B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] In accordance with the applicable Patent Law and / or Paris Convention, this application promptly claims the priority and benefits of International Patent Application No. PCT / CN2019 / 101443 filed on August 19, 2019, International Patent Application No. PCT / CN2019 / 103075 filed on August 28, 2019, and International Patent Application No. PCT / CN2019 / 103647 filed on August 30, 2019. For all legal purposes, the entire disclosure of the above applications is incorporated herein by reference as part of the disclosure of this application. Technical Field
[0003] This patent document relates to video encoding and decoding technology, equipment and systems. Background Art
[0004] Despite advances in video compression, digital video still represents the largest use of bandwidth on the Internet and other digital communications networks. As the number of connected user devices capable of receiving and displaying video increases, bandwidth requirements for digital video usage are expected to continue to grow. Summary of the invention
[0005] The present invention relates to digital video coding and decoding, and more particularly to devices, systems and methods for video and image intra-frame coding and decoding based on counters. The described methods can be applied to existing video coding standards (e.g., High Efficiency Video Coding (HEVC)) and future video / image coding standards or video / image codecs.
[0006] In one example aspect, an example method of video processing includes: performing a conversion between a video comprising a video unit and a codec representation of the video, wherein, when processing the video unit in the conversion, one or more frequency tables are selectively updated to include information about the frequency of one or more intra-frame prediction modes of the video unit used in the processing, wherein the frequency indicates the occurrence of one or more intra-frame prediction modes used for the conversion, and wherein, when processing the video unit, one or more sorted intra-frame prediction mode (IPM) tables are selectively updated to indicate the one or more intra-frame prediction modes used in the processing.
[0007] In yet another example aspect, an example method of video processing comprises: performing conversion between a video unit of a video and a codec representation of the video using one or more frequency tables or one or more sorted intra-prediction mode (IPM) tables, wherein the one or more frequency tables include information about the frequency of one or more intra-prediction modes used in the conversion of the video, wherein the frequency indicates the occurrence of one or more intra-prediction modes used for the conversion, wherein the one or more sorted IPM tables indicate the one or more intra-prediction modes in sorted order, wherein the one or more frequency tables or the one or more sorted IPM tables are used for intra-mode encoding and decoding in the process of constructing a most probable mode (MPM) list of size N, wherein N is an integer.
[0008] In yet another example aspect, an example method of video processing includes performing a conversion between a video block of a video and a codec representation of the video, wherein the codec representation includes a syntax element indicating a selected intra-prediction mode for the conversion, the codec representation does not include one or more syntax elements indicating a most probable mode (MPM), or an index to an MPM list, or intra-prediction modes remaining other than the intra-prediction modes included in the MPM list, and wherein the selected intra-prediction mode is based on historical information indicating a frequency of one or more intra-prediction modes used in another conversion between one or more video blocks of the video and the video before the conversion of the video block.
[0009] In yet another example aspect, an example method of video processing comprises: performing a conversion between a video comprising a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially, wherein when one of the plurality of video units is processed in the conversion, one or more frequency tables and / or one or more ordered intra-frame prediction mode (IPM) tables are reset or initialized, wherein the one or more frequency tables include information about the frequency of one or more intra-frame prediction modes used to process a previous video unit in the plurality of video units, wherein the previous video unit temporally precedes the video unit, wherein the frequency indicates the occurrence of one or more intra-frame prediction modes used by the conversion, and wherein the one or more ordered IPM tables indicate the one or more intra-frame prediction modes used in the processing.
[0010] In yet another example aspect, an example method of video processing comprises performing a conversion between a video comprising a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially, wherein the conversion comprises resetting or initializing a frequency table using one or more specific values of one or more entries in a frequency table, wherein the frequency table comprises information regarding the frequency of one or more intra-frame prediction modes used to process the plurality of video units in the conversion, and wherein the frequency indicates the occurrence of the one or more intra-frame prediction modes used by the conversion.
[0011] In yet another example aspect, an example method of video processing includes: performing conversion between a video including a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially; and, after performing the conversion on one of the plurality of video units, determining: (1) whether a reset or initialization process is enabled for a frequency table, an ordered intra-prediction mode (IPM) table, and / or a history-based motion prediction (HMVP) table, and / or (2) a technique for resetting or initializing the frequency table, the ordered IPM table, and / or the HMVP table, wherein the determination is based on decoded information of the video unit other than the decoded intra-prediction mode, wherein the frequency table includes information about the frequency of one or more intra-prediction modes used to process a previous video unit in the plurality of video units in the conversion, wherein the previous video unit temporally precedes the video unit, wherein the frequency indicates an occurrence of the one or more intra-prediction modes used for the conversion, and wherein the ordered IPM table indicates the one or more intra-prediction modes used in the processing.
[0012] In yet another example aspect, an example method of video processing comprises: performing a conversion between a video including a video unit and a codec representation of the video, wherein, after encoding or decoding the video unit using an intra-frame prediction mode, one or more frequency tables and / or one or more sorted intra-frame prediction mode (IPM) tables are selectively updated according to a rule, wherein the one or more frequency tables include information about the frequency of the intra-frame prediction mode used to process the video unit in the conversion, wherein the frequency indicates the occurrence of the intra-frame prediction mode used for the conversion, and wherein the one or more sorted IPM tables indicate the intra-frame prediction mode used in the processing.
[0013] In yet another example aspect, a video processing method is disclosed. The method includes: using one or more frequency tables to perform a conversion between a video unit of a video and a codec representation of the video unit, wherein the one or more frequency tables include information about the frequency of intra-prediction modes used in the conversion of the video; and, due to the conversion, selectively updating the one or more frequency tables based on the codec mode of the video unit.
[0014] In another example aspect, another video processing method is disclosed. The method includes: using a frequency table to perform a conversion between a video unit of a video and a codec representation of the video unit, wherein the frequency table includes a plurality of entries, each entry representing a frequency of occurrence of a corresponding intra-frame codec mode in the conversion; and, using the conversion, selectively updating the frequency table based on the codec information of the video unit.
[0015] In another aspect, another video processing method is disclosed. The method includes: using one or more frequency tables and / or using one or more intra-frame prediction mode tables sorted according to the frequency order indicated in the one or more frequency tables to perform conversion between a current video unit and a next video unit of a video and a codec representation; wherein the one or more frequency tables include information about the frequency of the intra-frame prediction mode used in the conversion; and wherein the one or more frequency tables and / or the one or more intra-frame prediction mode tables are reset or initialized between the use of the conversion of the current video unit and the use of the conversion of the next video unit.
[0016] In yet another example aspect, another video processing method is disclosed. The method includes: using one or more frequency tables to perform conversion between a video unit of a video and a codec representation of the video unit, wherein the one or more frequency tables include information about the frequency of intra-frame prediction modes used in the conversion of the video and auxiliary information about the occurrence of the intra-frame prediction mode.
[0017] In another example aspect, another video processing method is disclosed. The method includes: for a conversion between a video unit of a video and a codec representation of the video, determining an intra-frame prediction mode for the conversion; and performing the conversion based on the intra-frame prediction mode; wherein the intra-frame prediction mode is signaled by a syntax element in the codec representation.
[0018] In yet another representative aspect, the above method is embodied in the form of processor executable code and stored in a computer readable program medium.
[0019] In yet another representative aspect, a device configured or operable to perform the above method is disclosed. The device may include a processor programmed to implement the method.
[0020] In yet another representative aspect, a video decoder device may implement the methods described herein.
[0021] The above and other aspects and features of the disclosed technology are described in more detail in the drawings, the description and the claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 67 intra prediction modes are shown.
[0023] Figure 2 An example of ALWIP for a 4x4 block is shown.
[0024] Figure 3 An example of ALWIP for an 8x8 block is shown.
[0025] Figure 4 is an example of ALWIP for 8×4 blocks.
[0026] Figure 5 is an example of ALWUP for a 16×16 block.
[0027] Figure 6 An example of four reference lines adjacent to a prediction block is shown.
[0028] Figure 7 An example of partitioning of 4x8 blocks and 8x4 blocks is shown.
[0029] Figure 8 Examples of partitioning for all blocks except 4x8, 8x4, and 4x4 are shown.
[0030] Fig. 9 An example of neighboring blocks used in the MPM list building process is shown.
[0031] Fig.10 An example of deriving the "CR" position of a DM from the corresponding luma block is shown.
[0032] Fig.11 An example of a bilinear intra prediction mode is shown.
[0033] Fig.12 is an example diagram of an update frequency table and a sorted IPM table.
[0034] Figure 13-14 An example of a decoding flow chart in some embodiments is shown.
[0035] Fig.15 An example of an update and reordering process is shown.
[0036] Fig.16 An example of constructing an MPM list and a non-MPM list using a frequency table is shown.
[0037] Fig.17 An example of constructing all MPM modes using a frequency table as well as a non-MPM list is shown.
[0038] Fig.18 is a diagram of an MPM builder using local and global sublists.
[0039] Figure 19A-19Bis a flow chart of the video processing method.
[0040] Fig. 20 is a block diagram of an example hardware platform for implementing video processing techniques.
[0041] Fig.21 is a flow chart of an example method for video processing.
[0042] Fig. 22 An example of an update and reordering process in one example embodiment is shown.
[0043] Fig.23 An example of an area (filled with shaded area) within a CTU that may be used to update the table is shown.
[0044] Figure 24A-24B An example of applying a reset before decoding a grey CU / PU / TU within a CTU is shown. In one example, B and C = 2, H is the CTU height, and W is the CTU width.
[0045] Figure 25A-25B An example of applying a reset before decoding a grey CU / PU / TU within a CTU is shown. In one example, B and C = 2, H is the CTU height, and W is the CTU width.
[0046] Fig.26 is a block diagram illustrating an example video processing system in which the various techniques disclosed herein may be implemented.
[0047] Fig. 27 is a block diagram illustrating a video encoding and decoding system according to some embodiments of the present disclosure.
[0048] Fig.28 is a block diagram illustrating an encoder according to some embodiments of the present disclosure.
[0049] Fig.29 is a block diagram illustrating a decoder according to some embodiments of the present disclosure.
[0050] Figures 30A-30G An example method of video processing is shown. DETAILED DESCRIPTION
[0051] Embodiments of the disclosed technology can be applied to existing video coding standards (e.g., HEVC, H.265) and future standards to improve compression performance. In this article, section headings are used to improve the readability of the specification and do not in any way limit the scope of the discussion or embodiments to only each section.
[0052] 1. Overview
[0053] This document relates to image / video codec technology. Specifically, it relates to intra-mode codec in image / video codec. It can be applied to existing video codec standards, such as HEVC, or to-be-determined standards (Versatile Video Codec). It may also be applicable to future video codec standards or video codecs.
[0054] 2. Preliminary Discussion
[0055] Video codec standards have evolved primarily through the development of the well-known ITU-T and ISO / IEC standards. ITU-T developed H.261 and H.263, ISO / IEC developed MPEG-1 and MPEG-4 Vision, and the two organizations jointly developed the H.262 / MPEG-2 Video and H.264 / MPEG-4 Advanced Video Codec (AVC) and H.265 / High Efficiency Video Codec (HEVC) standards. Since H.262, video codec standards have been based on a hybrid video codec structure that uses temporal prediction plus transform codec. To explore future video codec technologies beyond HEVC, VCEG and MPEG jointly established the Joint Video Exploration Team (JVET) in 2015. Since then, JVET has adopted many new methods and applied them to reference software called the Joint Exploration Model (JEM). In April 2018, a Joint Video Experts Team (JVET) between VCEG (Q6 / 16) and ISO / IEC JTC1 SC29 / WG11 (MPEG) was established to develop the next-generation Versatile Video Coding (VVC) standard, with the goal of reducing the bit rate by 50% compared to HEVC.
[0056] The latest version of the VVC draft, Versatile Video Codec (Draft Submission) can be found at:
[0057] http: / / phenix.it-sudparis.eu / jvet / doc_end_user / documents / 15_Gothenburg / wg11 / JVET-O2001-v14.zip
[0058] The latest reference software for VVC, called VTM, can be found at:
[0059] https: / / vcgit.hhi.fraunhofer.de / jvet / VVCSoftware_VTM / tags / VTM-5.0
[0060] 2.1 Luminance Intra-frame Prediction Method
[0061] 2.1.1 Intra-mode codec with 67 intra-prediction modes
[0062] To capture arbitrary edge orientations present in natural videos, the number of directional intra modes is extended from 33 used in HEVC to 65. Additional directional modes are Figure 1 As indicated by dashed arrows in , planar and DC modes remain unchanged. Therefore, there are 67 intra prediction modes in total. These more densely populated directional intra prediction modes apply to all block sizes and luma and chroma intra prediction.
[0063] The conventional angular intra prediction direction is defined as 45 degrees to -135 degrees in the clockwise direction, such as Figure 1 As shown. In VTM2, for non-square blocks, several normal angle intra prediction modes are adaptively replaced with wide angle intra prediction modes. The replaced modes are signaled using the original method and remapped to the index of the wide angle mode after parsing. The total number of intra prediction modes remains unchanged, i.e. 67, and the intra mode encoding and decoding remains unchanged.
[0064] In HEVC, each intra-coded block has a square shape and the length of each side is a power of 2. Therefore, no division operation is required to generate intra prediction factors using the DC mode. In VVV, blocks can have a rectangular shape and in the usual case, a division operation must be used for each block. To avoid division operations for DC prediction, only the longer side is used to calculate the average for non-square blocks.
[0065] In addition to the 67 intra prediction modes, Wide Angle Intra Prediction (WAIP) for non-square blocks and Position Dependent Intra Prediction Combination (PDPC) methods are enabled for specific blocks. PDPC applies to the following intra modes without signaling: Planar, DC, Horizontal, Vertical, Bottom Left Angular Mode and its eight neighboring Angular Modes, and Top Right Angular Mode and its eight neighboring Angular Modes.
[0066] 2.1.2 Affine Linear Weighted Intra Prediction (ALWIP, also known as Matrix-based Intra Prediction)
[0067] Affine Linear Weighted Intra Prediction (ALWIP, also known as Matrix-based Intra Prediction (MIP)) was proposed in JVET-N0217.
[0068] 2.1.2.1 Generating Reduced Prediction Signals via Matrix-Vector Multiplication
[0069] First, the adjacent reference samples are downsampled by averaging to generate a reduced reference signal bdry red Then, the reduced prediction signal pred is calculated by calculating the matrix-vector product and adding the offsetred .
[0070] pred red =A.bdry red +b
[0071] Here, A is a matrix having W in the case of W=H=4. red ·H red rows and 4 columns, while in all other cases it has 8 columns. b is the dimension W red ·H red Vector.
[0072] 2.1.2.2 Diagram of the entire ALWIP process
[0073] Figures 2 to 5 The whole process of averaging, matrix-vector multiplication, and linear interpolation is shown for different shapes in . Note that the remaining shapes are handled as one of the cases shown below.
[0074] 1. Given a 4×4 block, ALWIP takes two averages along each axis of the boundary. The resulting four input samples enter the matrix-vector multiplication operation. The matrix is taken from the set S 0 After adding the offset, 16 final prediction samples are obtained. Linear interpolation is not necessary to generate the prediction signal. Therefore, a total of (4·16) / (4·4)=4 multiplication operations are performed per sample. Figure 2 is a diagram of ALWIP for a 4×4 block.
[0075] 2. Given an 8×8 block, ALWIP takes four averages along each axis of the boundary. The resulting eight input samples enter the matrix-vector multiplication operation. The matrix is taken from the set S 1 . 16 samples are generated at odd positions of the prediction block. Therefore, a total of (8·16) / (8·8)=2 multiplication operations are performed on each sample. After adding the offset, these samples are vertically interpolated using the reduced top boundary. Then horizontal interpolation is performed using the original left boundary. Figure 3 is a diagram of ALWIP for 8×8 blocks.
[0076] 3. Given an 8×4 block, ALWIP takes four average values along the horizontal axis of the boundary and four original boundary values at the left boundary. The resulting eight input samples enter the matrix-vector multiplication operation. The matrix is taken from the set S 1 . 16 samples are generated at the odd horizontal positions and at each vertical position of the prediction block. Therefore, a total of (8·16) / (8·4)=4 multiplication operations are performed on each sample. After adding the offset, these samples are horizontally interpolated using the original left boundary. Figure 4 is a diagram of ALWIP for 8×4 blocks.
[0077] The situation after transposition is also handled accordingly.
[0078] 4. Given a 16×16 block, ALWIP takes four averages along each axis of the boundary. The resulting eight input samples enter the matrix-vector multiplication operation. The matrix is taken from the set S 2 . 64 samples are generated at odd positions of the prediction block. Therefore, a total of (8·64) / (16·16)=2 multiplications are performed on each sample. After adding the offset, these samples are vertically interpolated using the eight averages of the top boundary. They are then horizontally interpolated using the original left boundary. In this case, the interpolation process does not add any multiplications. Therefore, in total, two multiplications are required per sample to calculate the ALWIP prediction. Figure 5 is a diagram of ALWIP for 16×16 blocks.
[0079] For larger shapes, the procedure is essentially the same, and it is easy to check that the number of multiplications per sample point is less than four.
[0080] For W×8 blocks (W>8), only horizontal interpolation is required because samples are given at odd horizontal positions and at each vertical position.
[0081] Finally, for W×4 blocks (W>8), let A k is a matrix formed by discarding each row corresponding to the odd entries on the horizontal axis of the downsampling block. Therefore, the output size is 32, and again, only horizontal interpolation is performed.
[0082] The situation after transposition is also handled accordingly.
[0083] 2.1.2.3 Intra-frame mode settings
[0084] Based on the block size, the total number of intra prediction modes used in a MIP has different settings. More specifically, the following applies:
[0085] - For 4x4 blocks, there are 34 patterns
[0086] - Otherwise, if neither the width nor the height of the block is greater than 8, there are 18 modes
[0087] - Otherwise (block width and height are both greater than 8), there are 10 modes
[0088] During the MPM list construction process, if the neighboring block is encoded or decoded in MIP mode, the corresponding intra prediction mode is set to planar mode.
[0089] 2.1.3 Multiple Reference Lines (MRL)
[0090] Multiple reference line (MRL) intra prediction uses more reference lines for intra prediction. Figure 6 In Figure 1, an example of 4 reference lines is shown, where the samples of segments A and F are not obtained from the reconstructed adjacent samples, but are filled by the closest samples of segments B and E, respectively. HEVC intra picture prediction uses the nearest reference line (i.e., reference line 0). In MRL, 2 additional lines (reference line 1 and reference line 3) are used.
[0091] The index of the selected reference line (mrl_idx) is signaled and used to generate the intra prediction factor. For reference line indices greater than 0, only additional reference line modes are included in the MPM list, and only the MPM index is signaled without the remaining modes. The reference line index is signaled before the intra prediction mode, and, in case of a non-zero reference line index being signaled, planar mode and DC mode are excluded from the intra prediction mode.
[0092] MRL is disabled for the first row of blocks within a CTU to prevent the use of extended reference samples outside the current CTU row. Likewise, PDPC is disabled when additional rows are used.
[0093] 2.1.4 Intra-frame sub-block segmentation (ISP)
[0094] In JVET-M0102, ISP is proposed, as shown in Table 1, which partitions the luma intra prediction block vertically or horizontally into 2 or 4 sub-partitions according to the size of the block. Figure 7 and Figure 8 Examples of two possibilities are shown. All subpartitions satisfy the condition of having at least 16 samples. For block size, if 4×N or N×4 (N>8) is allowed, there may be 1×N or N×1 subpartitions.
[0095] Table 1: Number of sub-divisions depending on block size (maximum transform size represented by maxTBSize)
[0096]
[0097]
[0098] For each of these sub-partitions, a residual signal is generated by entropy decoding the coefficients sent by the encoder, then inverse quantizing and inverse transforming them. Then, intra prediction is performed on this sub-partition, and finally the corresponding reconstructed samples are obtained by adding the residual signal to the prediction signal. Therefore, the reconstructed values of each sub-partition will be used to generate the prediction of the next partition, repeating the process, and so on. All sub-partitions share the same intra mode.
[0099] Table 2: trTypeHor and trTypeVer depending on predModeIntra
[0100]
[0101] 2.2 Luma Intra-mode Encoding and Decoding
[0102] The allowed intra prediction modes are divided into two parts: intra prediction modes in the most probable mode (MPM) list; and the remaining modes. Whether to use the modes in the MPM list or the remaining modes is controlled by a flag (intra_luma_mpm_flag).
[0103] For the MPM list, the first one is always set to planar mode, so a separate flag is first signaled to indicate whether the selected mode is planar. If not, the MPM list size is assumed to be equal to 6, and the index of this MPM list minus 1 is further signaled.
[0104] Alternatively, the size of the MPM list can be considered differently as 5, and planar mode is not included in the list. However, it is still signaled whether the mode is planar mode when intra_luma_mpm_flag is equal to true. In this case, when a block selects a non-planar MPM mode, the index of the MPM list is signaled.
[0105] 2.2.1 Construction of MPM List
[0106] Assuming that the mode on the left is represented as "Left" and the mode above is represented as "Above", the unified MPM list is constructed in the following steps:
[0107] – When the intra prediction mode of a neighboring block is invalid, its intra mode is set to “planar” by default.
[0108] – If the 'left' and 'top' modes are the same and both are angled:
[0109] ○MPM List → {plane, left, left-1, left+1, DC, left-2}
[0110] – If the 'left' and 'top' modes are different and both are angled:
[0111] ○ Set the Max mode to the larger of the Left and Top modes
[0112] ○ If the difference between the "left" and "top" modes is between 2 and 62 (inclusive)
[0113] ■MPM list → {plane, left, top, DC, max-1, max+1}
[0114] Otherwise
[0115] ■MPM list → {plane, left, top, DC, max -2, max +2}
[0116] – If the 'left' and 'top' modes are different, and one of the 'left' and 'top' modes is an angle mode, and the other is a non-angle mode:
[0117] ○ Set the Max mode to the larger of the Left and Top modes
[0118] ○MPM List → {plane, max, DC, max-1, max+1, max-2}
[0119] – If both “Left” and “Top” modes are non-angle modes:
[0120] ○MPM list → {plane, DC, V, H, V-4, V+4}
[0121] Fig. 9 An example of neighboring blocks used in the MPM list building process is shown.
[0122] 2.2.2 Provisions on Intra-mode Coding and Decoding
[0123] 7.3.8.5 Codec unit syntax
[0124]
[0125]
[0126]
[0127]
[0128]
[0129]
[0130] 8.4.2 Derivation of Luma Intra Prediction Mode
[0131] The inputs to this process are:
[0132] – Luma position (xCb, yCb), specifies the top left sample of the current luma codec block relative to the top left luma sample of the current picture,
[0133] – The variable cbWidth specifies the width of the current codec block in luminance samples.
[0134] – The variable cbHeight specifies the height of the current codec block in luma samples.
[0135] In this process, the luma intra prediction mode IntraPredModeY[xCb][yCb] is derived.
[0136] Table 8-1 specifies the values of intra prediction mode IntraPredModeY[xCb][yCb] and the associated name.
[0137] Table 8-1 Definitions of intra prediction modes and associated names
[0138]
[0139] Note: Intra prediction modes INTRA_LT_CCLM, INTRA_L_CCLM, and INTRA_T_CCLM are only applicable to chroma components.
[0140] IntraPredModeY[xCb][yCb] is derived as follows:
[0141] – If intra_luma_not_planar_flag[xCb][yCb] is equal to 0, set IntraPredModeY[xCb][yCb] equal to INTRA_PLANAR.
[0142] – Otherwise, if BdpcmFlag[xCb][yCb] is equal to 1, set IntraPredModeY[xCb][yCb] equal to BdpcmDir[xCb][yCb]? INTRA_ANGULAR50:INTRA_ANGULAR18.
[0143] – Otherwise (intra_luma_not_planar_flag[xCb][yCb] is equal to 1), the following sequential steps apply:
[0144] 1. Set the neighboring positions (xNbA, yNbA) and (xNbB, yNbB) equal to (xCb-1, yCb+cbHeight-1) and (xCb+cbWidth-1, yCb-1), respectively.
[0145] 2. For X replaced by A or B, derive the variable candIntraPredModeX as follows:
[0146] – Invoke the derivation procedure for neighbor block availability specified in section 6.4.4, with as input the position (xCurr, yCurr) set equal to (xCb, yCb), the neighbor position (xNbY, yNbY) set equal to (xNbX, yNbX), checkPredModeY set equal to FALSE, and cIdx set equal to 0, and assign the output to availableX.
[0147] – Derived candidate intra prediction mode candIntraPredModeX as follows:
[0148] – If one or more of the following conditions are true, candIntraPredModeX is set equal to INTRA_PLANAR.
[0149] –The variable availableX is equal to FALSE.
[0150] –CuPredMode[0][xNbX][yNbX] is not equal to MODE_INTRA.
[0151] –intra_mip_flag[xNbX][yNbX] is equal to 1.
[0152] –X is equal to B and yCb-1 is less than ((yCb>>CtbLog2SizeY)< <CtbLog2SizeY)。
[0153] – Otherwise, set candIntraPredModeX equal to IntraPredModeY[xNbX][yNbX].
[0154] 3. Derivation of candModeList[x] for x=0..4 is as follows:
[0155] – If candIntraPredModeB is equal to candIntraPredModeA, and candIntraPredModeA is greater than INTRA_DC, then candModeList[x] for x=0..4 is derived as follows:
[0156] candModeList[0]=candIntraPredModeA (8-6)
[0157] candModeList[1]=2+((candIntraPredModeA+61)%64) (8-7)
[0158] candModeList[2] = 2 + ((candIntraPredModeA - 1) % 64)(8 - 8)
[0159] candModeList[3] = 2 + ((candIntraPredModeA + 60) % 64)(8 - 9)
[0160] candModeList[4] = 2 + (candIntraPredModeA % 64)(8 - 10)
[0161] – Otherwise, if candIntraPredModeB is not equal to candIntraPredModeA, and either candIntraPredModeA or candIntraPredModeB is greater than INTRA_DC, then the following applies:
[0162] – Derive variables minAB and maxAB as follows:
[0163] minAB = Min(candIntraPredModeA, candIntraPredModeB)(8 - 11)
[0164] maxAB = Max(candIntraPredModeA, candIntraPredModeB)(8 - 12)
[0165] – If both candIntraPredModeA and candIntraPredModeB are greater than INTRA_DC, then derive candModeList[x] for x = 0..4 as follows:
[0166] candModeList[0] = candIntraPredModeA(8 - 13)
[0167] candModeList[1] = candIntraPredModeB(8 - 14)
[0168] – If maxAB - minAB is equal to 1 (including 1), then the following applies:
[0169] candModeList[2] = 2 + ((minAB + 61) % 64)(8 - 15)
[0170] candModeList[3] = 2 + ((maxAB - 1) % 64)(8 - 16)
[0171] candModeList[4]=2+((minAB+60)%64) (8-17)
[0172] – Otherwise, if maxAB-minAB is greater than or equal to 62, the following applies:
[0173] candModeList[2]=2+((minAB-1)%64) (8-18)
[0174] candModeList[3]=2+((maxAB+61)%64) (8-19)
[0175] candModeList[4]=2+(minAB%64) (8-20)
[0176] – Otherwise, if maxAB-minAB is equal to 2, the following applies:
[0177] candModeList[2]=2+((minAB-1)%64) (8-21)
[0178] candModeList[3]=2+((minAB+61)%64) (8-22)
[0179] candModeList[4]=2+((maxAB-1)%64) (8-23)
[0180] – Otherwise, the following applies:
[0181] candModeList[2]=2+((minAB+61)%64) (8-24)
[0182] candModeList[3]=2+((minAB-1)%64) (8-25)
[0183] candModeList[4]=2+((maxAB+61)%64) (8-26)
[0184] – Otherwise, (candIntraPredMode or candIntraPredModeB is greater than INTRA_DC), then candModeList[x] for x=0..4 is derived as follows:
[0185] candModeList[0]=maxAB (8-27)
[0186] candModeList[1]=2+((maxAB+61)%64) (8-28)
[0187] candModeList[2]=2+((maxAB-1)%64) (8-29)
[0188] candModeList[3]=2+((maxAB+60)%64) (8-30)
[0189] candModeList[4]=2+(maxAB%64) (8-31)
[0190] – Otherwise, the following applies:
[0191] candModeList[0]=INTRA_DC (8-32)
[0192] candModeList[1]=INTRA_ANGULAR50 (8-33)
[0193] candModeList[2]=INTRA_ANGULAR18 (8-34)
[0194] candModeList[3]=INTRA_ANGULAR46 (8-35)
[0195] candModeList[4]=INTRA_ANGULAR54 (8-36)
[0196] 4. Derive IntraPredModeY[xCb][yCb] by applying the following procedure:
[0197] – If intra_luma_mpm_flag[xCb][yCb] is equal to 1, set IntraPredModeY[xCb][yCb] equal to candModeList[intra_luma_mpm_idx[xCb][yCb]].
[0198] – Otherwise, IntraPredModeY[xCb][yCb] can be derived by applying the following sequential steps:
[0199] 1. When i = 0..3 and for each i, j = (i+1)..4, candModeList[i] is greater than candModeList[j], the two values are swapped as follows: (candModeList[i], candModeList[j]) = Swap(candModeList[i], candModeList[j]) (8-37)
[0200] 2. IntraPredModeY[xCb][yCb] is derived in the following order:
[0201] i. Set IntraPredModeY[xCb][yCb] equal to intra_luma_mpm_remainder[xCb][yCb].
[0202] ii. The value of IntraPredModeY[xCb][yCb] increases by 1.
[0203] iii. For i equal to 0 to 4 (inclusive), when IntraPredModeY[xCb][yCb] is greater than or equal to candModeList[i], the value of IntraPredModeY[xCb][yCb] is increased by 1.
[0204] The variable IntraPredModeY[x][y] with x=xCb..xCb+cbWidth-1 and y=yCb..yCb+cbHeight-1 is set equal to IntraPredModeY[xCb][yCb].
[0205] 2.3 Chroma Intra Prediction Mode
[0206] For chroma intra mode codec, a total of 8 or 5 intra modes are allowed for chroma intra mode codec, depending on whether the cross component linear model (CCLM) is enabled. These modes include five traditional intra modes and three cross component linear model modes (IntraPredModeC is set to 81, 82, and 83, respectively).
[0207] 2.3.1DM Mode
[0208] In chroma direct mode or derived mode (DM), the prediction mode of the co-located luma block is used to derive the chroma intra prediction mode.
[0209] First, derive the intra prediction mode lumaIntraPredMode:
[0210] ●If the co-located luma block is encoded or decoded in MIP mode, set lumaIntraPredMode equal to planar mode.
[0211] ●Otherwise, if the co-located luma block is encoded or decoded in IBC mode or palette mode, lumaIntraPredMode is set equal to DC mode.
[0212] ● Otherwise, lumaIntraPredMode is set equal to the intra prediction mode of the co-located luma block covering the corresponding luma sample at the center of the chroma block. Fig.10 An example is shown in .
[0213] Second, the chroma intra prediction mode (called IntraPredModeC) is derived from the lumaIntraPredMode highlighted in bold italics in the table below. Note that intra_chroma_pred_mode equal to 4 refers to DM mode.
[0214] Table 8-2 Definition of IntraPredModeC[xCb][yCb] depending on cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode and lumaIntraPredMode
[0215]
[0216] Finally, if the color format of the picture is 4:2:2, IntraPredModeC is further modified for DM mode according to the following table.
[0217] When chroma_format_idc is equal to 2, the 4:2:2 mapping process from chroma intra prediction mode X to mode Y is specified
[0218]
[0219] The following detailed draft for deriving chroma intra prediction modes is defined in VVCCD:
[0220] 8.4.3 Derivation of Chroma Intra Prediction Mode
[0221] The inputs to this process are:
[0222] – Luma position (xCb, yCb), specifies the top left sample of the current chroma codec block relative to the top left luma sample of the current picture,
[0223] – The variable cbWidth specifies the width of the current codec block in luminance samples.
[0224] – The variable cbHeight specifies the height of the current codec block in luma samples.
[0225] In this process, the chroma intra prediction mode IntraPredModeY[xCb][yCb] is derived.
[0226] The corresponding luma intra prediction mode lumaIntraPredMode is derived as follows:
[0227] – If intra_mip_flag[xCb][yCb] is equal to 1, lumaIntraPredMode is set equal to INTRA_PLANAR.
[0228] – Otherwise, if CuPredMode[0][xCb][yCb] is equal to MODE_IBC or MODE_PLT, lumaIntraPredMode is set equal to INTRA_DC.
[0229] – Otherwise, set lumaIntraPredMode equal to IntraPredModeY[xCb+
[0230] cbWidth / 2][yCb+cbHeight / 2].
[0231] The chroma intra prediction mode IntraPredModeC[xCb][yCb] is derived using cclm_mode_mode_flag, cclm_mode_idx, intra_chroma_pred_mode and lumaIntraPredMode as specified in Table 8-2.
[0232] Table 8-2 Definition of IntraPredModeC[xCb][yCb] depending on cclm_mode_flag, cclm_mode_idx, intra_chroma_pred_mode and lumaIntraPredMode
[0233]
[0234] When chroma_format_idc is equal to 2, chroma intra prediction mode Y is derived using chroma intra prediction mode X in Table 8-2 as specified in Table 8-3, and chroma intra prediction mode X is then set equal to chroma intra prediction mode Y.
[0235] Table 8-3 Definition of the 4:2:2 mapping process from chroma intra prediction mode X to mode Y when chroma_format_idc is equal to 2
[0236]
[0237] 2.4 Intra-frame prediction in the Audio Video Standard (AVS)
[0238] In addition to the angular intra prediction mode, AVS also supports variants of the planar mode and the bilinear mode.
[0239] In the planar mode of AVS, the prediction value is obtained by linearly interpolating two samples in the left and upper neighboring blocks using the following formula:
[0240] P[x,y]=(a+(x-(M>>1)+1)×b+(y-(N>>1)+1)×c+16)>>5
[0241] Among them, (x, y) represents the coordinates relative to the upper left sample point in the current block, and the variables a, b, and c depend on the values of the block width M and block height N and the reconstructed adjacent sample points.
[0242] In the bilinear mode of AVS, a multi-step interpolation process is required. The sample point to be predicted is denoted as "C", its top two neighboring samples are denoted as "A" and "H", its left two neighboring samples in the same row are denoted as "B" and "G", the bottom sample point in the same column is denoted as "E", and the rightmost sample point in the same row is denoted as "F". The relationship between all the sample points is shown in Figure 1 First, the predicted value of the lower right sample point "D" in the current block is derived by linear interpolation using A and B. Then, based on the distance information, the predicted value of "E" is derived using the sample point "B" and the predicted sample point "D", and the predicted value of "F" is derived using the sample point "A" and the predicted sample point "D". Subsequently, the predicted value of "C" is obtained using the predicted values of the samples "G", "H", "E" and "F".
[0243] Fig.11 An example of a bilinear intra prediction mode is depicted.
[0244] 3 Examples of technical problems overcome by the solutions provided by this document
[0245] The existing technical design of intra mode codec still depends on the intra prediction mode (IPM) of spatially adjacent blocks. However, for screen content, the IPM of non-adjacent blocks has higher relevance. It is necessary to study how to better utilize this information.
[0246] 4. List of technologies and embodiments
[0247] The following enumeration will serve as an example to explain the general concept. These inventions should not be interpreted narrowly. In addition, these inventions can be combined in any way.
[0248] In the following discussion, the conventional intra prediction method may represent a method of intra prediction using adjacent rows / columns, which may use an interpolation filter along the prediction direction. Also, the additional intra coding method may represent those methods newly introduced in VVC that may be introduced in the future and require additional signaling notification for use of the method. The additional method may be one or more of ALWIP, MRL, ISP, or QR-BDPCM / PCM, etc.
[0249] Assume that there are M allowed intra prediction modes (IPM) for a given block type. For example, the block type can be a given block dimension (whether 4×4 or larger); a given codec method (e.g., whether general intra codec or MIP).
[0250] The following example illustrates the use of the frequency table and the IPM table. For example, if 100 blocks are encoded and decoded in intra mode during conversion, 10 is DC (IPM with index 1), 20 is Planar (IPM with index 0), 40 is Ver (IPM with index 50), and 30 is IPM with index 7.
[0251] In this case, the frequency table might be like [40, 30, 20, 10 ...], while the IPM table is [50, 7, 0, 1]. Therefore, in this embodiment, for an index equal to k, the value of IPMTable[k] is the intra-prediction mode, while the value of FrequencyTable[k] shows the occurrence of mode IPMTable[k].
[0252] The method described below may be referred to as history-based intra prediction.
[0253] General concept of frequency table and sorted IPM table
[0254] 1. Maintain one or more frequency tables (also called history tables / history lists) during the encoding / decoding process of the video unit, where the frequency table records the frequency of the intra-frame mode. When a block (e.g., CU or PU) completes encoding / decoding, the frequency table and the sorted IPM table can be updated.
[0255] a. In one example, the frequency table can be further associated with the sorted IPM table.
[0256] i. Furthermore, alternatively, when the frequency table is updated, the sorted IPM table may be updated accordingly.
[0257] ii. Alternatively, the entries in the frequency table may be associated with an intra prediction mode and the occurrence / frequency of the intra prediction mode. In this case, there is no need to further maintain an ordered IPM table corresponding to the frequency table.
[0258] iii. In one example, the kth entry of the sorted IPM table represents the kth most frequently used IPM in history.
[0259] b. In one example, the frequency table may be further associated with the IPM order mapping table.
[0260] i. In one example, the k-th entry of the IPM order mapping table represents the index of the order of the IPM with index equal to k.
[0261] c. In one example, assume that the frequency table is represented by FrequencyTable, the sorted IPM table is represented by IPMTable, and the IPM order mapping table is represented by . Then, for an index equal to k, the value of IPMTable[k] is the intra-prediction mode indicating the sorting result, and the value of FrequencyTable[k] shows the occurrence of the mode IPMTable[k].
[0262] d. In one example, assume that the frequency table is represented by freqT, the sorted IPM table is represented by modeT, and the IPM order mapping table is represented by orderT. Then, for an index equal to k, the value of modeT[k] is the intra-frame prediction mode indicating the sorting result, the value of orderT[k] is the mapping index after sorting the mode with index equal to k, and the value of freqT[k] shows the occurrence of the mode with index equal to k.
[0263] i. Furthermore, alternatively, orderT[modeT[k]]=k, where, for example, k may represent the order index k.
[0264] ii. In addition, alternatively, modeT[orderT[m]]=m, where, for example, m may represent an intra prediction mode;
[0265] iii. Furthermore, alternatively, freqT[modeT[k]]>=freqT[modeT[k+1]].
[0266] e. In one example, a video unit is a sub-region of a CTU (eg, VPDU) / CTU / CTB / multiple CTUs / multiple CUs / CTU row / slice / brick / slice / picture / sub-picture, etc.
[0267] f. In one example, the updated table can be further used to encode and decode subsequent blocks.
[0268] g. In one example, for each block type, a frequency table and / or a sorted IPM table may be maintained.
[0269] i. Alternatively, a frequency table and / or sorted IPM table may be maintained for the various blocks.
[0270] ii. A type (or a kind) of blocks may refer to blocks having the same width and / or the same height.
[0271] 2. The frequency table may be associated with M entries, and each entry is associated with the frequency of one intra-prediction mode among the M allowed intra-prediction modes.
[0272] a. In one example, the IPM ordered table may have the same number of entries as the associated frequency table.
[0273] b. In one example, M intra prediction modes may be grouped into N categories.
[0274] i. Furthermore, alternatively, the frequency table may be associated with N entries, where N is less than M, and each entry is associated with a frequency of a category that may correspond to one or more prediction modes.
[0275] 1) Furthermore, alternatively, the sorted IPM table associated with the frequency table may also have N entries showing sorted category indices.
[0276] c. In one example, the frequency table may be associated with N entries, where N is less than M. The N entries correspond to N intra prediction modes selected from the M intra prediction modes.
[0277] i. In one example, the M intra prediction modes may not include the wide-angle intra prediction mode.
[0278] ii. In one example, the N intra prediction modes may include at least one of DC, planar, horizontal, vertical, and bilinear IPM.
[0279] iii. In one example, the N selected intra prediction modes may be predefined or signaled or derived according to codec information (eg, whether it is screen content).
[0280] d. In one example, the frequency table may be associated with N entries, where N is less than M. The N entries correspond to N intra prediction modes that are updated on the fly based on the decoded information.
[0281] i. In one example, N IPMs may be initialized first and then updated based on the decoded information.
[0282] Use of sorted IPM tables (also known as table-based intra-mode encoding and decoding)
[0283] 3. The frequency table / sorted IPM table can be used for intra mode encoding and decoding during the MPM list construction process, assuming the MPM list size is N.
[0284] a. In one example, the entire MPM list is determined from one or more sorted IPM tables.
[0285] i. In one example, the top N modes showing the highest frequencies can be used as the input to the MPM list.
[0286] 4. Intra mode encoding and decoding can be based on both the frequency table / sorted IPM table and other table - independent methods.
[0287] a. In one example, the entire MPM list is determined from one or more sorted IPM tables and other table - independent methods.
[0288] i. In one example, the top M (M < N) modes showing the highest frequencies can be used as the input to the MPM list.
[0289] b. In one example, the modes selected from the sorted IPM table can be combined with other intra prediction modes derived from table - independent methods to form the final MPM list.
[0290] i. In one example, the other intra prediction modes derived from table - independent methods can include using some default modes (e.g., planar / DC).
[0291] ii. Alternatively, the other intra prediction modes derived from table - independent methods can be some modes derived from spatially neighboring (adjacent or non - adjacent) blocks.
[0292] 1) In one example, the spatially neighboring blocks can be defined as the "above" block and the "left" block of the current block, as Fig. 9 depicted.
[0293] 2) In one example, the default mode order is {mode of the left block, mode of the above block, planar, DC}.
[0294] 3) In one example, for the case where the above block or the left block is not available (e.g., CTU or stripe boundary), - 1 is used instead of the missing mode index.
[0295] iii. In one example, the other intra prediction modes can be added to the MPM list before those modes selected from the sorted IPM table.
[0296] iv. In one example, the other intra prediction modes can be added to the MPM list after those modes selected from the sorted IPM table.
[0297] v. In one example, other intra prediction modes may be added to the MPM list before and after those modes selected from the sorted IPM table.
[0298] vi. In one example, pruning may be applied to avoid adding redundant patterns to the MPM list.
[0299] vii. In one example, the order of adding IPMs derived from the sorted IPM table and non-table based methods can be changed from block to block and from one video unit to another.
[0300] viii. In one example, the number of IPMs derived from the sorted IPM table and from the non-table based approach may vary from block to block and from one video unit to another.
[0301] ix. In one example, the first L (eg, L=2 or 6) patterns in the sorted table may be added to the MPM list.
[0302] x. In one example, the last L (eg, L=2 or 6) patterns in the sorted table may be added to the MPM list.
[0303] xi. In one example, when adding patterns (a selected L (eg, L=2 or 6)) in the sorted table to the MPM list, the addition may be done based on ascending / descending order of the entry index.
[0304] xii. In one example, when the modes (the selected L (eg, L=2 or 6)) in the sorted table are added to the MPM list, the addition may be done based on the ascending / descending order of the intra prediction mode index.
[0305] 1) In one example, the indexes of the first L patterns in the sorted table can be selected to add them to the MPM list, denoted as iPM 0 ,iPM 1 ..,iPM L-1 , where orderT[iPM m ]=m, m is [0, L-1]. If iPM i Smaller than iPM j , you can use iPM i Add in iPM j Before.
[0306] a. Alternatively, if iPM i Bigger than iPM j , you can use iPM i Add in iPMj Before.
[0307] c. Whether to determine the entire MPM list from the sorted IPM table may depend on frequency.
[0308] d. Whether to determine the entire MPM list from the sorted IPM table may depend on decoding information, such as block dimensions (e.g., whether the width and / or height of the block is not greater than a threshold) / video content type (e.g., whether it is screen content).
[0309] 5. The sorted IPM table can be used for intra-mode encoding and decoding of modes other than MPM.
[0310] a. In one example, the indexes of the smaller signaling of the remaining patterns correspond to the patterns with higher frequency in the sorted IPM table.
[0311] 6. Instead of encoding and decoding the MPM flag / MPM list index / the rest of the intra prediction modes except the MPM, a syntax element may be encoded and decoded to indicate the selected IPM, which may depend on historical information (e.g., frequency information). Alternatively, the mapping between the codec syntax element value and the IPM may change from block to block.
[0312] a. In one example, it is proposed to directly encode and decode the index into the sorted IPM table.
[0313] i. Additionally, alternatively, the IPM to be used for encoding / decoding the block is derived from the index.
[0314] ii. In one example, assuming the ordered IPM table is [VER, HOR, DC, Planar, Mode3, ...], an index equal to 0 is interpreted as vertical intra prediction mode.
[0315] b. In one example, it is proposed to directly encode and decode the index corresponding to the intra prediction mode based on the descending order of the frequency associated with the IPM.
[0316] i. In one example, assume that the frequency table is [F(Planar), F(DC), F(Mode 1), .. F(VER), ..]. If F(VER) and F(DC) are two maximum values, a codec index of "0" may be used to indicate a "VER" mode, and a codec index of "1" may be used to indicate a "DC" mode.
[0317] c. In one example, the index may be encoded using a binarization method, such as truncated unary / truncated binary / exponential Golomb method, etc.
[0318] d. In one example, the index may be context-encoded for all bins or a portion of bins (such as the first few bins).
[0319] 7. The proposed method can be applied to chroma direct mode (DM) codecs, where the DM is determined based on a frequency table / sorted IPM table / IPM order mapping table (such as the IPM associated with the highest frequency table).
[0320] 8. The proposed method can be applied to chroma direct mode (DM) coding and decoding, where the chroma mode candidate list is determined based on the frequency table / sorted IPM table / IPM order mapping table (e.g., the IPM associated with the highest frequency).
[0321] Reset / initialization of frequency table and / or sorted IPM table
[0322] 9. When encoding / decoding a new video unit, the frequency table and / or the sorted IPM table may be reset / initialized.
[0323] a. In one example, a video unit is a sub-region of a CTU (e.g., VPDU) / CTU / CTB / multiple CTUs / multiple CUs / CTU row / slice / brick / strip / picture / sub-picture, etc.
[0324] b. In one example, the sorted IPM table may be reset / initialized to be the same as the allowed intra prediction modes in ascending order of index, e.g., [planar, DC, mode2, ..., mode66].
[0325] c. In one example, the sorted IPM table may be reset / initialized to be the same as the allowed intra prediction modes in descending order of index, such as [mode 66, mode 65, ..., mode 2, DC, planar].
[0326] d. In one example, the sorted IPM table may be reset / initialized to include the default MPMs first, followed by the remaining modes.
[0327] i. In one example, the default MPM may include {VER, HOR, VER-4, VER+4, 2, DIA}
[0328] ii. In one example, the default MPM may include {plane, DC, VER, HOR, 2, DIA}
[0329] iii. In one example, the DIA mentioned above is the IPM with the largest index.
[0330] iv. Furthermore, alternatively, these default modes may be placed in the table in a different order.
[0331] v. Furthermore, alternatively, how these default modes are defined and / or how these default modes are placed may depend on the block type / decoding information.
[0332] 10. The frequency table can be reset / initialized by specifying specific values for one or more entries in the table.
[0333] a. In one example, specific values corresponding to IPMs may be set to equal values.
[0334] i. In one example, “equal value” may be set to N (eg, N=0).
[0335] b. In one example, a specific value corresponding to an IPM may be set to a unique value, that is, for any two IPMs, their initialization frequency values are different.
[0336] c. In one example, specific values corresponding to IPMs may be set to the same or different values, that is, for at least two IPMs, their initialization frequency values are different; for at least another two IPMs, their initialization frequency values are the same.
[0337] d. In an example, assuming that the allowed MPMs are represented by K, the default MPM is defined
[0338] List.
[0339] i. In one example, the initialization value of the i-th IPM excluded in the MPM list is set to (M-1-i).
[0340] ii. In one example, the initialization value of the j-th IPM in the MPM list (where j is in the range of [0, K-1]) is set to M+f(j), where f(j) returns a positive integer value.
[0341] 1) In one example, f(j) is set to (Kj).
[0342] e. In one example, multiple groups of specific values may be predefined, and a group of values may be selected from them according to the codec information.
[0343] When to update the frequency table and / or sorted IPM table
[0344] 11. The frequency table and / or the sorted IPM table may be updated after encoding / decoding a block in a general intra prediction mode.
[0345] a. In one example, the frequency table and / or the sorted IPM table may be updated only when the prediction mode is intra mode.
[0346] i. Furthermore, alternatively, when the prediction mode is not equal to the intra mode, the frequency table and / or the sorted IPM table are not allowed to be updated.
[0347] b. In one example, after encoding / decoding a block in matrix-based intra prediction (MIP) mode, the frequency table and / or the sorted IPM table may or may not be updated.
[0348] i. Alternatively, the frequency table and / or the sorted IPM table is updated after decoding a block coded in a matrix-based intra prediction (MIP) mode.
[0349] ii. In one example, the conversion from MIP mode to general intra mode may be updated.
[0350] c. In one example, the frequency table and / or the sorted IPM table may not be updated after decoding a block encoded in intra sub-partitioning (ISP) mode.
[0351] i. Alternatively, the frequency table and / or the sorted IPM table may be updated after decoding a block coded in intra sub-partitioning (ISP) mode.
[0352] 1) For example, the frequency table and / or the sorted IPM table may be updated once after decoding the entire block.
[0353] 2) For example, the frequency table and / or the sorted IPM table may be updated once after decoding one sub-partition.
[0354] d. In one example, after encoding / decoding a block in BDPCM / RDPCM mode, the frequency table and / or the sorted IPM table may or may not be updated.
[0355] e. In one example, the frequency table and / or the sorted IPM table may not be updated after encoding / decoding a block in an intra-prediction mode that is not part of the selected intra-prediction mode, such as mentioned in bullet point 2.c.
[0356] 12. The frequency table and / or the sorted IPM table may be updated after encoding / decoding a block in a prediction mode that is not equal to intra mode, such as inter / IBC / palette mode.
[0357] a. In one example, if a block is encoded in a prediction mode that is not equal to intra mode and an intra prediction signal is generated, such as using a combined intra-inter prediction (CIIP) mode, the frequency table and / or the sorted IPM table may be updated.
[0358] b. In one example, if a block is coded / decoded in a prediction mode that is not equal to the intra mode and no intra prediction signal is generated, updating of the frequency table and / or the sorted IPM table may not be allowed.
[0359] i. Alternatively, the default IPM may be used to update the table.
[0360] How to update frequency table and / or sorted IPM table
[0361] 13. The frequency table may be updated based on the input IPM (e.g., the decoded IPM of the current block). Assume that before the nth update of the table (where n starts from 1), the input IPM is represented as M i , and the frequency is represented as F n (M i ).
[0362] a. In one example, the frequency associated with M i is updated to F n+1 (M i ), e.g., F n+1 (M i ) = F n (M i ) + K, where K is an integer.
[0363] i. In one example, K is set to 1.
[0364] ii. In one example, K is set to a value greater than 1.
[0365] iii. In one example, K is set to a value equal to (1 << A), where A is an integer value.
[0366] iv. In one example, K is set to an integer value greater than the number of entries in the frequency table.
[0367] v. In one example, K may depend on the initialization value, i.e., F 0 .
[0368] 1) In one example, K is set to be equal to the maximum value of P * the initialization value (i.e., the maximum value of F 0 (M i ), where P is a positive integer value.
[0369] vi. In one example, K depends on the intra prediction mode and / or the block type.
[0370] 1) In one example, K is set to an integer value greater than the number of allowed intra prediction modes.
[0371] 2) In one example, K is set equal to P*the number of allowed intra prediction modes, where P is a positive integer value.
[0372] vii. In one example, K depends on the number of table updates, for example, based on a variable n.
[0373] viii. In one example, K can be updated on the fly based on decoder information (eg, intra prediction mode).
[0374] b. In one example, with the addition of M i The frequencies associated with the other IPMs remain unchanged, i.e., F n+1 (M j )=F n (M j ).
[0375] i. Alternatively, you can change the i The frequency is associated with a portion of the other IPMs, and for the remaining IPMs, the frequency remains unchanged.
[0376] c. Alternatively, the frequency table may be updated based on the input class index (eg, the mapped class index with the decoded IPM of the current block) and the associated frequency with the input class index.
[0377] d. In one example, the length of the frequency table may be less than the number of allowed IPMs (eg, 6, 12).
[0378] i. In one example, the length of the frequency table can be set to the number of allowed MPMs.
[0379] ii. In one example, when the frequency table needs to be updated with an input pattern, and if the frequency of the input pattern is already included in the frequency table, the corresponding frequency may be updated accordingly.
[0380] iii. In one example, when the frequency table needs to be updated with an input pattern, and if the frequency of the input pattern is not included in the frequency table, the entry with the lowest frequency (corresponding IPM is M) may be updated. n ) is replaced by the frequency of the input pattern.
[0381] 1) In addition, alternatively, the sorted IPM table can also use the input mode instead of mode M n .
[0382] 14. The sorting of frequencies associated with different IPMs may be applied to generate an updated sorted IPM table.
[0383] a. In one example, the frequency table is fully sorted in descending order according to the updated pattern frequency values.
[0384] b. The sorting process may be performed from the current entry to the last entry corresponding to the input pattern.
[0385] i. Alternatively, the sorting process may be performed from the current entry to the first entry corresponding to the input pattern.
[0386] c. Fig.12 An example is shown in . After the update, with M i The associated frequency is F n+1 (M i ). Apply forward search until a solution is found that satisfies F n+1 (M j )>F n+1 (M i )>=F n+1 (M j-1 ) j until.
[0387] d. Once a pattern is found that satisfies certain conditions, the sorting process can be terminated.
[0388] i. Fig.12 An example is shown in . After updating, with M i The associated frequency is F n+1 (M i Once we find a solution that satisfies F n+1 (M j )>F n+1 (M i )>=F n+1 (M j-1 ) j , then apply forward search.
[0389] e. In one example, a sequence table is used to record the display mode sequence frequency table instead of sorting the frequency table. i order, and the corresponding frequencies can be obtained.
[0390] f. In one example, only a few elements of the frequency table are taken into account in the sorting process.
[0391] i. In one example, when updating the frequency table for the current mode, the comparison process involves the first L elements.
[0392] Fig.12 is an example diagram of an update frequency table and a sorted IPM table.
[0393] 15. In addition to the pattern occurrence information, the frequency table can also store other auxiliary information, such as the location where the pattern occurs.
[0394] a. In one example, the location may include starting coordinates (eg, relative to video unit, CTU / slice / etc.) and / or block size.
[0395] b. In one example, after encoding / decoding an intra block, both the pattern frequency and position information need to be updated.
[0396] i. In one example, the i The associated frequency is updated to F n+1 (M i )(F n+1 (M i )=F n (M i )+K), where K is an integer.
[0397] ii. In one example, the i The associated position information is replaced with the latest encoded / decoded block.
[0398] c. In one example, the frequency table may be sorted according to the position information before encoding / decoding a new block.
[0399] i. In one example, the frequency table may be sorted according to the Euclidean distance between the current location and the recorded location.
[0400] A general solution to history-based intra prediction / history-based motion prediction (HMVP) (e.g., in Described in PCT / CN2018 / 093663, PCT / CN2018 / 102370, PCT / CN2018 / 107178, PCT / CN2019 / 101443 , the entire contents of which are incorporated herein by reference).
[0401] 16. Whether and / or how to update the frequency table and / or the sorted IPM table and / or the HMVP table may depend on the decoded information.
[0402] a. In one example, the update process may be called for blocks within a region, which may be smaller than a CTU / CTB / VPDU / A*B region that may cover multiple CUs.
[0403] Fig.23 Examples of areas within a CTU (filled in red or grey) that may be used to update the table are shown.
[0404] b. In one example, the decoding information may include the position of the current block (eg, the relative position of the upper left sample point relative to the current picture / CTU / VPDU / predefined area).
[0405] i. In one example, the coordinates of the upper left sample point of a video unit (e.g., CU / PU / TU / VPDU / CTU / predetermined region size) are represented by (x, y) relative to the current slice / tile / brick / picture. The reset / initialization process is called if (x, y) satisfies certain conditions.
[0406] 1) In one example, this process may be called when x%M equals K0 and / or y%N equals K1.
[0407] 2) In one example, this process may be called when (M – (x%M)) is greater than K0 and / or (N – (y%N)) is greater than K1.
[0408] 3) In one example, the process may be called when (M - (x%M)) equals K0 and / or (N - (y%N)) equals K1.
[0409] 4) In one example, the process may be called when (x%W==0&&y%H==0)||(W-(x%W)>=A0&&H-(y%H)>=A1), where A0 and A1 are positive integers, such as 4 / 8.
[0410] 5) In one example, M is the width of a CTU / CTB, or the width of 1 / S*CTU / CTB, where S is a positive integer (eg, S=2).
[0411] 6) In one example, N is the height of CTU / CTB, or 1 / S*the height of CTU / CTB, where S is a positive integer (eg, S=2).
[0412] 7) In one example, K0 and K1 are equal to 4 / 8 / the width and height of the smallest CU / PU / TU / CB, respectively.
[0413] c. In one example, the update process may be called after encoding / decoding a video unit (e.g., CU / PU / TU / VPDU / CTU / predetermined region size).
[0414] d. In one example, the decoding information may be how many CUs / PUs / TUs have been encoded and decoded (eg, how many CUs using a general intra prediction mode).
[0415] e. In one example, when there are multiple PUs / TUs in a CU, the update process is called only after a certain (eg, the last) PU / TU in the CU.
[0416] i. Alternatively, when there are multiple PUs / TUs within a CU, the update process can be called after each PU / TU within the CU.
[0417] 17. Whether and / or how to reset / initialize the frequency table and / or the sorted IPM table and / or the HMVP table may depend on decoded information other than the decoded prediction mode.
[0418] a. In one example, the reset / initialization process may be called within a CTU / CTB / VPDU / predefined region size.
[0419] i. Fig.23 An example of a reset / initialization process for blocks in a blank area is shown.
[0420] ii. In one example, the reset / initialization process may be called before encoding / decoding a new CTU and / or CU / PU / TU / CB / TB / PB whose y coordinate relative to the upper left sample point of the CTU is located at half of the CTU and whose x coordinate is equal to 0.
[0421] iii. In one example, the reset / initialization process may be called before encoding / decoding a new CTU and / or CU / PU / TU / CB / TB / PB whose x coordinate relative to the upper left sample point of the CTU is located at half of the CTU and whose y coordinate is equal to 0.
[0422] Fig.24A A CU highlighted in grey is shown whose top left sample point has a y coordinate equal to H / B and an x coordinate equal to 0.
[0423] Fig. 24B The CU highlighted in grey is shown, whose top left sample point has an x-coordinate equal to W / C. Figure 24A-24B An example of applying a reset before decoding a grey CU / PU / TU within a CTU is shown. In one example, B and C = 2, H is the CTU height, and W is the CTU width.
[0424] iv. In one example, the reset / initialization process may be called before encoding / decoding a new CTU and / or CU / PU / TU / CB / TB / PB whose y coordinate relative to the upper left sample point of the CTU is located at half of the CTU or equal to 0 and whose x coordinate is equal to 0.
[0425] v. In one example, the reset / initialization process may be called before encoding / decoding a new CTU and / or CU / PU / TU / CB / TB / PB whose x coordinate relative to the upper left sample point of the CTU is located at half of the CTU or equal to 0, and whose y coordinate is equal to 0.
[0426] Fig.25A A CU highlighted in grey is shown, whose top left sample point has an x-coordinate equal to W / C or 0, and a y-coordinate equal to 0.
[0427] Fig.25B A CU highlighted in grey is shown whose top left sample point has a y coordinate equal to H / B or 0, and an x coordinate equal to 0.
[0428] Figure 25A-25B An example of applying a reset before decoding a grey CU / PU / TU within a CTU is shown. In one example, B and C = 2, H is the CTU height, and W is the CTU width.
[0429] b. In one example, the decoding information may include the position of the current block (eg, the position of the upper left sample point relative to the current picture / CTU / VPDU / predefined area).
[0430] i. In one example, relative to the current slice / tile / brick / picture, the coordinates of the upper left sample point of a video unit (e.g., CU / CB / PU / PB / TU / TB / VPDU / CTU / CTB / predetermined region size) are represented by (x, y). The reset / initialization process is called when (x, y) meets certain conditions.
[0431] 1) In one example, when x%M and / or y%N equals 0, the process may be called.
[0432] 2) In one example, the process may be called when (M - (x%M)) is not greater than K0 and / or (N - (y%N)) is not greater than K1.
[0433] 3) In one example, the process may be called when (M - (x%M)) equals K0 and / or (N - (y%N)) equals K1.
[0434] 4) In one example, M is the width of the CTU / CTB (denoted by W CTU ), or the width of 1 / S*CTU / CTB, where S is a positive integer (e.g., S=2).
[0435] 5) In one example, N is the height of the CTU / CTB (denoted by H CTU ), or 1 / S*CTU / CTB, where S is a positive integer (e.g., S=2).
[0436] 6) In one example, K0 and K1 are equal to 4 / 8 / the width and height of the smallest CU / PU / TU / CB, respectively.
[0437] 7) In one example, the procedure may be called when the following conditions are met: (x%W CTU = = 0 & & y % H CTU = =0)||(W CTU –(x%W CTU )<=4&&(H CTU –(y%H CTU )<=4))
[0438] 8) In one example, the procedure may be called when the following conditions are met: (x%(W CTU >>1)==0&&y%H CTU = =0)
[0439] 9) In one example, the procedure may be called when the following conditions are met: (x%W CTU = = 0 & & y% (H CTU >>1)==0)
[0440] c. In one example, the decoding information may be how many CUs / PUs / TUs have been encoded and decoded (eg, how many CUs using a general intra prediction mode).
[0441] Enabling the proposed method
[0442] 18. An indication of whether the proposed method is enabled and / or which bullet points are to be applied may be signaled in the video unit level.
[0443] a. In one example, a video unit may be a slice / brick / strip / picture / sub-picture / sequence / view, etc.
[0444] b. In one example, whether to enable the proposed method and / or how to enable the proposed method may be signaled in a sequence parameter set / view parameter set / adaptation parameter set / picture parameter set / picture header / slice header / sequence header.
[0445] i. In one example, a syntax element may be signaled to indicate whether determining IPM from a frequency table / / sorted IPM table / IPM order mapping table is enabled.
[0446] ii. In one example, a syntax element may be signaled to indicate how many IPMs may be determined from the frequency table / / ordered IPM table / IPM order mapping table.
[0447] iii. In one example, a syntax element may be signaled to indicate how many MPMs may be determined from the frequency table / sorted IPM table / IPM order mapping table.
[0448] c. In one example, whether and / or how to enable the proposed method may be controlled by other syntax elements (such as a syntax element for indicating whether video content is screen content).
[0449] d. In one example, whether and / or how to enable the proposed method may be controlled by some features derived from reconstructed samples in previously coded blocks.
[0450] 19. Whether to enable the proposed method and / or how to enable the proposed method may depend on codec information, such as block dimension, slice type / picture type / temporal layer index / video content, etc.
[0451] a. In one example, for blocks with a width no greater than T1 and a height no greater than T2, the proposed method can be applied.
[0452] b. In one example, for blocks whose width is not greater than T1 or whose height is not greater than T2, the proposed method can be applied.
[0453] c. In one example, for blocks whose width times height is not greater than T3, the proposed method can be applied.
[0454] d. In one example, for blocks whose width is not greater than T1 and whose height is not greater than T2, the proposed method can be disabled.
[0455] e. In one example, for blocks whose width is not greater than T1 or whose height is not greater than T2, the proposed method can be disabled.
[0456] f. In one example, for blocks whose width times height is not greater than T3, the proposed method may be disabled.
[0457] 20. Whether to enable the proposed method and / or how to enable the proposed method may depend on the color component / color coding method (e.g., separate plane coding) / color format (e.g., 4:2:2 or 4:4:4) / partition tree coding method (e.g., single tree or dual tree).
[0458] a. In one example, the proposed method can be applied only to luma intra prediction mode coding.
[0459] For purposes of illustration, some embodiments are described that use the techniques listed above.
[0460] 5. Embodiment
[0461] An example of the decoding process is shown below. A table with intra-mode frequencies is maintained and updated during the encoding / decoding process. More specifically, the table records the frequencies of intra-modes and sorts the modes by accumulated frequencies.
[0462] 5.1 Example #1
[0463] Fig.13 and Fig.14 An example of a decoding flow chart using the proposed method is shown.
[0464] First, when a new slice or new CTU is encountered, the table is reset with a series of fixed values (or an array consisting of patterns of neighboring blocks). After decoding / encoding a block with intra information, the table can be updated accordingly. The updated table can be further utilized during encoding and decoding of subsequent blocks.
[0465] 5.2 Example #2
[0466] First, when a new video unit (e.g., a strip or a new CTU) is encountered, the table is reset with a series of fixed values (or an array of patterns of adjacent blocks). In particular, the table can be reset or initialized according to the content of the strip. If it is a screen content strip, mode set0 is used for initialization. Otherwise, mode set1 can be used. Based on VVC, mode set0 includes six modes {VER, HOR, VER-4, VER+4, 2, DIA}, which can be assigned a higher initial frequency when a screen content strip is encountered. Mode set1 also contains six modes. The first six modes in mode set1 can be {plane, DC, VER, HOR, 2, DIA}. Alternatively, when a natural scene strip is encountered, the initialized mode set1 can be assigned a higher initial frequency. More specifically, if mode M i Not in set0 or set1, then mode M i Frequency F n (M i ) is reset to F n (M i )=(66-M i ). Otherwise, set mode M j Frequency F n (M j )Reset to F n (M j )=67+(6-idx(M j )), where idx(M j ) represents the associated index in set0 or set1. In VVC, 67 intra modes are supported. Therefore, i and j are in the range of 0 to 66.
[0467] Secondly, after decoding a block containing intra information, the table is updated by recalculating the frequency of the associated intra mode. In particular, the intra information can be an intra mode in an intra-coded block or an intra mode in an intra-inter combined block. Fig.15 As shown, in particular, after the mode update, the frequency associated with the current intra-frame mode is adjusted to F n+1 (M i )=F n (M i )+δ(δ=1).
[0468] Fig.15 An example of an update and reordering process is shown.
[0469] Third, after the pattern is updated, the frequency table is reordered in descending order according to the updated pattern frequency. In particular, the frequencies of the updated pattern and the previous pattern are compared and swapped until the frequency of the updated pattern is lower than that of the previous pattern.
[0470] For efficient implementation, a sequence table is used to assist the updating and sorting procedures. In particular, the sequence table simultaneously records the associated mode order in the frequency table. i The order of the corresponding frequencies can be obtained. In this way, the search time can be greatly saved.
[0471] Using the sequential list, only six candidates are involved in the sorting process. In particular, the current intra mode and the first six modes in the sequential list are compared.
[0472] Therefore, this table can be used during the construction of the Most Probable Mode (MPM) list or the Remaining Mode (RM) list.
[0473] For the construction of the MPM list, the patterns near the front of the frequency table are first added to the MPM list after the patterns of the left adjacent block, the patterns of the upper adjacent block, the plane, and the DC pattern. Subsequently, a redundancy check is applied to skip the same patterns. After the MPM list is determined, the remaining patterns can be constructed using the patterns that are not in the MPM, and then the remaining patterns are sorted according to the pattern frequency according to the frequency table. Fig.16 The overall determination process is shown in FIG.
[0474] Fig.16 An example of constructing an MPM list and a non-MPM list using a frequency table is shown.
[0475] However, if Fig.17 As shown, the MPM list can also be built directly using the first few modes in the frequency table.
[0476] Fig.17 An example of constructing all MPM modes using a frequency table as well as a non-MPM list is shown.
[0477] 5.3 Example #3
[0478] Two sublists are maintained, named local and global sublists. The local sublist contains some patterns derived from neighboring blocks, while the global sublist corresponds to the sorted IPM list. Based on some conditions, it is decided how many MPMs are from the local sublist and how many are from the global sublist. Fig.18 An example is shown in .
[0479] Fig.18 is a diagram of an MPM builder using local and global sublists.
[0480] exist Fig.19A An example encoder encoding and decoding process is shown in . The construction strategy of the MPM list is replaced by our proposed method, which utilizes both short-distance and long-distance correlations to further improve the intra-frame encoding and decoding efficiency. In particular, the local and global sub-lists will be maintained separately following predefined principles. Local sub-lists are used to retain patterns that can characterize short-distance correlations. Typically, the patterns of DC, plane, and adjacent CUs are included in the local sub-list in a certain order. In addition, a global sub-list is established to capture patterns with long-distance similarities with the help of a frequency table. In this way, a conditional random field (CRF)-based merge is performed to construct the final MPM list. Subsequently, RDO is performed, and the best intra-frame mode of the current block is used for CU encoding and decoding.
[0481] 5.4 Example #4
[0482] First, when a new video unit (e.g., a slice or a new CTU) is encountered, the table is reset with a series of fixed values. Mode set0 is used for initialization. In one example, mode set0 includes two modes {VER, HOR} that can be assigned a higher initial frequency. N (e.g., 34 or 66) intra prediction modes are supported, and L (e.g., 2) MPMs are supported. More specifically, if the intra prediction mode M i If not in set0, mode M i Frequency F n (M i ) is reset to F n (M i )=(NM i ). Otherwise, set mode M j Frequency F n (M j )Reset to F n (M j )=N+(L-idx(M j )), where idx(M j ) represents the associated index in set0 (e.g., idx(VER)=0, idx(HOR)=1). Thus, i and j are in the range of 0 to N-1.
[0483] ● In one example, assume that a 34-mode frequency is used for checking and updating. During the initialization / reset process, the following applies:
[0484] F 0 [VER]=33+(2-0),F 0[HOR] = 33 + (2-1);
[0485] orderT[VER]=0, orderT[HOR]=1;
[0486] modeT[0]=VER, modeT[1]=HOR;
[0487] For the rest of the IPM (excluding VER and HOR), the following applies:
[0488] – Set currOrder = 2;
[0489] – For patterns 2 to 33, the following order applies:
[0490] ○F 0 [mode] = (33 – mode). Or, F 0 [mode]=L.
[0491] ○orderT[mode]=currOrder. Or, orderT[mode]=2.
[0492] ○modeT[currOrder]=mode
[0493] ○currOrder++.
[0494] Among them, VER and HOR are vertical / horizontal intra-frame prediction modes respectively; freqT is the frequency table, F n It represents the state after the nth update process, modeT is the sorted intra prediction mode table, and orderT is used to derive the mapping index of a given intra prediction mode.
[0495] Secondly, after decoding a block containing intra information, the table is updated by recalculating the frequency of the associated intra mode. In particular, the intra information may be an intra mode in an intra codec block. Fig. 22 As shown, in particular, after the mode update, the frequency associated with the current intra mode (denoted by M i Indicates) adjusted to F n+1 (M i )=F n (M i )+δ(e.g., δ=70 or 1).
[0496] Third, after the pattern is updated, the frequency table is reordered in descending order according to the updated pattern frequency. In particular, the frequencies of the updated pattern and the previous pattern are both compared and swapped until the frequency of the updated pattern is lower than the frequency of the previous pattern. Alternatively, only the updated frequency can be compared with the frequencies associated with the first L patterns in the sorted table.
[0497] For efficient implementation, a sequence table is used to assist the updating and sorting procedures. In particular, the sequence table simultaneously records the order of the relevant patterns in the frequency table. i The order of the numbers can be obtained and the corresponding frequencies can be obtained. In this way, the search time can be greatly saved.
[0498] For the sequential list, only L (eg, 2) candidates are involved in the sorting process. Specifically, the current intra mode is compared with the first L modes in the sequential list.
[0499] Therefore, the table can be used in the construction of the most probable mode (MPM) list or the rest mode (RM) list. For the construction of the MPM list, the first few (e.g., 2) patterns in the frequency table can also be used directly to build the MPM list. In particular, the patterns in the MPM list can be sorted in ascending order according to the pattern index. Subsequently, a redundancy check is applied to remove identical patterns.
[0500] 5.5 Example #5
[0501] 3Terms and descriptions
[0502] The following terms and definitions apply to this document.
[0503] Intra mode frequency table:
[0504] It is used for intra prediction and consists of the frequency of the intra prediction mode of the prediction unit.
[0505] 4 Abbreviations
[0506] FIMC frequency-based intra-frame mode codec (frequency-based intra-frame mode codec)
[0507] 7.1.2.2 Sequence Header Description
[0508] See Table 14 for a description of the sequence header.
[0509] Table 14 Sequence header description
[0510]
[0511]
[0512] 7.2.2.2 Sequence Header
[0513] Frequency intra mode coding permission flag fimc_enable_flag
[0514] Binary variable. The value "1" indicates that frequency-based intra mode coding / decoding can be used; the value "0" indicates that frequency-based intra mode coding / decoding should not be used. The value of FimcEnableFlag is equal to the value of fimc_enable_flag. If fimc_enable_flag does not exist in the bitstream, the value of FimcEnableFlag is equal to 0.
[0515] 9.4 Maximum Coding Unit Decoding
[0516] Decode the maximum decoding units in sequence according to the raster scan order within the stripe. The decoding process is as follows:
[0517] – If the current maximum coding unit is the first maximum coding unit in the current row of the stripe, initialize the value of candidate number CntHmvp in the historical motion information table to 0
[0518] – In the following discussion, the symbol IpdCnt represents the number of intra prediction modes. When EIPM is off, the value of IpdCnt is set to 34; when EIPM is on, the value of IpdCnt is set to 66. x0 and y0 represent the horizontal and vertical positions. LcuSizeInBit is set to 8 by default, representing log2(LcuSize). When the condition "((x0 % (1 << LcuSizeInBit)) == 0) && ((y0 % (1 << (LcuSizeInBit - 1)) == 0)" is encountered during decoding of the current coding unit, initialize the value of the high-frequency mode candidate number CntFimc in the intra mode frequency table to 2, and initialize the values of the high-frequency modes ModeFimc[0] and ModeFimc[1] in the intra mode frequency table to Intra_Luma_Vertical(12) and Intra_Luma_Horizontal(24) respectively, and initialize the intra mode frequency table FimcFrequencyList according to the following steps.
[0519]
[0520] Decode the coding tree of the current maximum coding unit, and decode each coding unit of the coding tree in sequence (see 9.5). After completing the decoding of the current maximum coding unit, update LcuIndex according to the following steps. After the update, if the value of LcuIndex / pictureWidthInLcu is greater than or equal to PatchBelowInLcu, end the decoding of all maximum decoding units in the current chip.
[0521] 9.5 Coding Unit Decoding
[0522] 9.5.6.2 General intra prediction mode
[0523] Each prediction block of the current codec unit uses the following method to determine its general intra prediction mode:
[0524] a) If the current prediction block E is a luminance block
[0525] 1) If the value of FimcEnableFlag is 1, the prediction value of the current prediction block prediction mode is calculated according to the following steps:
[0526] ◆predIntraPredMode0 is equal to Min(ModeFimc[0],ModeFimc[1])
[0527] ◆predIntraPredMode1 is equal to Max(ModeFimc[0],ModeFimc[1])
[0528] 2) If the value of FimcEnableFlag is 0, the current prediction block prediction is calculated according to the following steps:
[0529] Predicted value of the test mode:
[0530] ◆If the left prediction block A "exists" and is a general intra-frame prediction block, assign A's IntraLumaPredMode to intraPredModeA; otherwise, intraPredModeA is equal to 0
[0531] ◆If the upper prediction block B "exists" and is a normal intra-frame prediction block, the IntraLumaPredMode of B is assigned to intraPredModeB; otherwise, intraPredModeB is equal to 0.
[0532] If intraPredModeA is not equal to intraPredModeB, then predIntraPredMode0 is equal to the minimum value (intraPredModeA, intraPredModeB), and predIntraPredMode1 is equal to the maximum value (intraPredModeA, intraPredModeB); otherwise:
[0533] 1. If intraPredModeA is equal to 0, then predIntraPredMode0 is equal to 0 and predIntraPredMode1 is equal to 2.
[0534] 2. If intraPredModeA is not equal to 0, then predIntraPredMode0 is equal to 0, and predIntraPredMode1 is equal to intraPredModeA.
[0535] 3) If the value of intra_luma_pred_mode is 0, IntraLumaPredMode is equal to predIntraPredMode0; otherwise, if the value of intra_luma_pred_mode is 1, IntraLumaPredMode is equal to predIntraPredMode1; otherwise:
[0536] If intra_luma_pred_mode minus 2 is less than predIntraPredMode0, then IntraLumaPredMode is equal to intra_luma_pred_mode minus 2.
[0537] ◆ Otherwise, if the value of intra_luma_pred_mode minus 1 is greater than predIntraPredMode0 and less than predIntraPredMode1, then IntraLumaPredMode is equal to intra_luma_pred_mode minus 1;
[0538] ◆Otherwise, IntraLumaPredMode is equal to intra_luma_pred_mode.
[0539] 4) If the value of FimcEnableFlag is 1, the intra mode frequency table is updated using the luma intra prediction mode IntraLumaPredMode of the current prediction unit according to the method defined in 9.20.
[0540] b) If the current prediction block E is a chroma block:
[0541] 1) If the luminance prediction mode IntraLumaPredMode of the prediction block with a PredBlockOrder value of 0 in the current codec unit is equal to 0, 2, 12, or 24, isRedundant is equal to 1; otherwise, isRedundant is equal to 0.
[0542] 2) If the value of tscpm_enable_flag is equal to "1" and the value of intra_chroma_pred_mode is equal to 1, then IntraChromaPredMode is equal to 5;
[0543] 3) Otherwise,
[0544] ◆If the value of tscpm_enable_flag is equal to "1" and the value of intra_chroma_pred_mode is not equal to 0, the value of intra_chroma_pred_mode is subtracted by 1;
[0545] If isRedundant is equal to 0, then IntraChromaPredMode is equal to intra_chroma_pred_mode; otherwise, perform the following operations in sequence:
[0546] ●If IntraLumaPredMode is equal to 0, predIntraChromaPredMode is equal to 1; if IntraLumaPredMode is equal to 2, predIntraChromaPredMode is equal to 4; if IntraLumaPredMode is equal to 12, predIntraChromaPredMode is equal to 3; if IntraLumaPredMode is equal to 24, predIntraChromaPredMode is equal to 2.
[0547] ●If the value of intra_chroma_pred_mode is equal to 0, then IntraChromaPredMode is equal to 0; otherwise, if the value of intra_chroma_pred_mode is less than predIntraChromaPredMode, then IntraChromaPredMode is equal to intra_chroma_pred_mode; otherwise, IntraChromaPredMode is equal to intra_chroma_pred_mode plus 1.
[0548] c) According to the value of IntraLumaPredMode, look up Table 79 to obtain the intra prediction mode of the luma prediction block. According to the value of IntraChromaPredMode, look up Table 80 to obtain the intra prediction mode of the chroma prediction block.
[0549] 9.20 Update frequency table of intra mode
[0550] After completing the decoding of the current prediction unit, if the current prediction unit is an intra-frame prediction unit rather than a block copy intra-frame prediction unit, when FimcEnableFlag is equal to 1, the intra-frame mode frequency table FimcFrequencyList is updated according to the luminance intra-frame prediction mode IntraLumaPredMode and the high frequency mode of the current prediction block; otherwise, the operations defined in this article will not be performed.
[0551] a) Add 70 to FimcFrequencyList[IntraLumaPredMode];
[0552] b) Let FreqCurr equal FimcFrequencyList[IntraLumaPredMode];
[0553] c) Let Mode0 equal ModeFimc[0] and Freq0 equal FimcFrequencyList[Mode0];
[0554] d) Let Mode1 equal ModeFimc[1] and Freq1 equal FimcFrequencyList[Mode1];
[0555] e) If FreqCurr is greater than or equal to Freq0, ModeFimc[0] is equal to IntraLumaPredMode;
[0556] 1) If Mode0 is not equal to IntraLumaPredMode, ModeFimc[1] is equal to Mode0.
[0557] 2) Otherwise, ModeFimc[1] is equal to Mode1.
[0558] f) Otherwise, if FreqCurr is greater than or equal to Freq1, ModeFimc[1] is equal to IntraLumaPredMode.
[0559] 1) Otherwise, ModeFimc will not be updated.
[0560] Fig. 20is a block diagram of a video processing device 2000. Device 2000 may be used to implement one or more methods described herein. Device 2000 may be embodied as a smart phone, a tablet computer, a computer, an Internet of Things (IoT) receiver, etc. Device 2000 may include one or more processors 2002, one or more memories 2004, and video processing hardware 2006. (Multiple) processors 2002 may be configured to implement one or more methods described herein. (Multiple) memories 2004 may be used to store data and code for implementing the methods and techniques described herein. Video processing hardware 2006 may be used to implement some of the techniques described herein in hardware circuits. In some embodiments, hardware 2006 may be at least partially in a processor, such as in a graphics coprocessor.
[0561] In some embodiments, the following solutions may be implemented as preferred solutions.
[0562] The following solution can be implemented with the additional techniques described in the items listed in the previous section (eg, items 1, 3, 4, and 5).
[0563] 1. A video processing method (eg, Fig.21 The method 2100 shown in FIG. 2 comprises: performing (2102) a conversion between a video unit of a video and a codec representation of the video unit using one or more frequency tables, wherein the one or more frequency tables include information about the frequency of intra-frame prediction modes used in the conversion of the video; and selectively updating (2104) the one or more frequency tables based on the codec mode of the video unit due to the conversion.
[0564] 2. The method according to solution 1 also includes: determining one or more sorted intra-frame prediction mode (IPM) tables, which store intra-frame prediction modes in the order of frequency in the one or more frequency tables.
[0565] 3. The method according to any one of solutions 1-2, wherein selectively updating comprises: updating one or more frequency tables when an intra-frame prediction mode is used during conversion of the video unit.
[0566] 4. The method of any one of solutions 1-2, wherein selectively updating comprises: avoiding updating one or more frequency tables when intra-prediction mode is not used during transition of the video unit.
[0567] 5. A method according to any one of solutions 1-4, wherein the one or more frequency tables include tables for multiple types of video units.
[0568] 6. The method according to any one of solutions 1-5, wherein the video unit is a prediction unit (PU).
[0569] 7. The method according to any one of solutions 1-5, wherein the video unit is a codec unit (CU).
[0570] 8. The method of solution 1, wherein for conversion, one or more frequency tables and / or one or more IPM tables are used to construct a most probable codec mode (MPM) list.
[0571] 9. The method of solution 8, wherein the MPM codec list can be constructed using N entries from one or more sorted IPM tables with the highest frequency.
[0572] 10. A method according to any one of solutions 1-9, wherein the converted codec mode for the video unit is derived based on one or more frequency tables, one or more IPM tables, and non-table based operations.
[0573] 11. The method of solution 10, wherein the codec mode is derived by first generating an MPM codec list.
[0574] 12. The method of solution 10, wherein an MPM codec list is constructed using one or more IPM tables and non-table based operations, and the codec mode is determined from the MPM list.
[0575] 13. The method of solution 8, wherein the converted codec mode for the video unit is derived from one or more IPM tables and the remaining modes not in the MPM codec list.
[0576] The following solution can be implemented together with the additional techniques described in the items listed in the previous section (e.g., items 9 and 10).
[0577] 14. The method according to solution 3, wherein the intra prediction mode is a general intra prediction mode.
[0578] 15. The method according to solution 2, wherein, due to the transition, one or more frequency tables and one or more IPM tables are selectively updated depending on whether intra mode is used for the transition.
[0579] 16. The method of solution 2, wherein one or more frequency tables and one or more IPM tables are selectively updated due to a switch using a matrix-based intra prediction (MIP) mode.
[0580] 17. The method of solution 2, wherein one or more frequency tables and one or more IPM tables are not updated due to a switch using a matrix-based intra prediction (MIP) mode.
[0581] 18. The method of solution 2, wherein one or more frequency tables and one or more IPM tables are not updated due to conversion using intra sub-segmentation (ISP) mode.
[0582] 19. The method of solution 2, wherein one or more frequency tables and one or more IPM tables are selectively updated due to a conversion using a non-intra mode.
[0583] 20. The method according to solution 19, wherein the non-intra mode is an inter mode or an intra block copy mode or a palette mode.
[0584] The following solution can be implemented with the additional techniques described in the items listed in the previous section (e.g., item 11).
[0585] 21. The method according to solution 3, wherein the intra prediction mode used during the conversion is M i , and the corresponding frequency before the nth update is F n (M i ) indicates that n starts at 1, and then for M i , F n (M i ) is updated to F n+1 (M i ), where F n+1 (M i )=F n (M i )+K, where K is an integer.
[0586] 22. The method according to solution 21, wherein K=1.
[0587] 23. The method of solution 21, wherein K is a function of the type of codec unit or intra prediction mode.
[0588] The following solution can be implemented with the additional techniques described in the items listed in the previous section (e.g., item 12).
[0589] 24. The method of solution 2, wherein the one or more sorted IMP tables are sorted according to a sorting rule.
[0590] 25. The method of solution 24, wherein the sorting rule specifies sorting in descending order after updating.
[0591] 26. The method according to solution 24, wherein the sorting rule stipulates that the sorting is terminated when an entry that meets the condition is found.
[0592] The following solution can be implemented with the additional techniques described in the items listed in the previous section (eg, item 2).
[0593] 27. A video processing method, comprising: using a frequency table to perform conversion between a video unit of a video and a codec representation of the video unit, wherein the frequency table includes multiple entries, each entry representing the frequency of occurrence of a corresponding intra-frame codec mode in the conversion; and, utilizing the conversion, selectively updating the frequency table based on the codec information of the video unit.
[0594] 28. The method of solution 27, further comprising: maintaining an ordered intra prediction mode (IPM) table comprising M entries associated with corresponding M entries in the frequency table.
[0595] 29. A method according to any of solutions 27-28, wherein M entries are grouped into N categories, wherein N is less than M.
[0596] 30. The method of solution 27, wherein the frequency table includes N entries, the method further comprising:
[0597] An ordered intra-prediction mode (IPM) table is maintained, the table comprising M entries, where M is greater than N, and where the N entries of the frequency table are associated with corresponding N entries in the IPM table.
[0598] The following solution can be implemented with the additional techniques described in the items listed in the previous section (eg, items 7 and 8).
[0599] 31. A video processing method, comprising: using one or more frequency tables and / or using one or more intra-frame prediction mode tables sorted according to the frequency order indicated in the one or more frequency tables, performing conversion between a current video unit and a next video unit of a video and a codec representation; wherein the one or more frequency tables include information about the frequency of the intra-frame prediction mode used in the conversion; and wherein the one or more frequency tables and / or the one or more intra-frame prediction mode tables are reset or initialized between use in the conversion of the current video unit and use in the conversion of the next video unit.
[0600] 32. A method according to solution 31, wherein the current video unit and / or the next video unit is, of the video: a sub-region of a codec tree unit, or a codec tree unit, or a codec tree block, or multiple codec tree units, or multiple codec units of a codec tree unit row, or a slice, or a brick, or a strip, or a picture, or a sub-picture.
[0601] 33. A method according to any of solutions 31-32, wherein the order of frequencies is in ascending order of frequencies.
[0602] 34. A method according to any one of solutions 31-33, wherein resetting or initializing the one or more intra-frame prediction mode tables includes switching between ascending and descending order.
[0603] 35. A method according to any of solutions 31-34, wherein resetting or initializing the one or more frequency tables includes setting entries of the one or more frequency tables to predetermined values.
[0604] 36. The method of solution 35, wherein the predetermined values are equal to each other.
[0605] 37. The method of solution 35, wherein the predetermined values are different from each other.
[0606] 38. A method according to any of solutions 35-37, wherein the predetermined value is defined in multiple sets and a specific set is selected based on codec information used in the conversion.
[0607] The following solution can be implemented with the additional techniques described in the items listed in the previous section (e.g., item 13).
[0608] 39. A video processing method, comprising: using one or more frequency tables to perform conversion between a video unit of a video and a codec representation of the video unit, wherein the one or more frequency tables include information about the frequency of an intra-frame prediction mode used in the conversion of the video and auxiliary information about the occurrence of the intra-frame prediction mode.
[0609] 40. The method according to solution 39, wherein the auxiliary information includes a starting position or a block size where the intra-frame prediction mode appears.
[0610] 41. A method according to any of solutions 39-40, wherein the one or more frequency tables and / or auxiliary information are updated upon conversion of video units.
[0611] 42. A method according to any of solutions 39-41, wherein the conversion is performed by first sorting the one or more frequency tables according to a starting position.
[0612] The following solution can be implemented together with the additional techniques described in the items listed in the previous section (e.g., items 14 and 15).
[0613] 43. The method of any of solutions 1-42, wherein a field in the codec representation indicates that the method is used during conversion.
[0614] 44. A method according to any of solutions 1-42, wherein the video unit corresponds to a slice, tile, strip, picture, sub-picture, sequence, or view of the video.
[0615] 45. The method according to any of the solutions 1-42, wherein the method is applied to the conversion because the video unit satisfies a criterion.
[0616] 46. The method according to solution 3, wherein the criteria include the size of the video unit, or the slice type, or the picture type, or the temporal layer index, or the content of the video.
[0617] 47. A method according to any of solutions 1 to 46, wherein the one or more frequencies are associated with a specific type of video unit.
[0618] 48. A method according to any one of solutions 1 to 46, wherein one frequency table is associated with one specific type of video unit; and different frequency tables are associated with different specific types of video units.
[0619] 49. A method according to any of solutions 47-48, wherein a specific type corresponds to a specific block dimension.
[0620] 50. A method according to any of the solutions 47-48, wherein the specific type corresponds to a specific encoding and decoding method used during conversion.
[0621] The following solution can be implemented with the additional techniques described in the items listed in the previous section (eg, item 6).
[0622] 51. A video processing method, comprising: determining an intra-frame prediction mode for conversion between a video unit of a video and a codec representation of the video; and performing the conversion based on the intra-frame prediction mode; wherein the intra-frame prediction mode is signaled in the codec representation using a syntax element.
[0623] 52. The method of solution 51, wherein the value of the syntax element is changeable from one video unit to another.
[0624] 53. A method according to any of the solutions 51-52, wherein the intra-frame prediction mode is based on historical or frequency information of previous intra-frame prediction modes during conversion.
[0625] 54. A method according to any one of solutions 51-53, wherein the syntax element encodes an index to a table of intra-frame prediction modes.
[0626] 55. A method according to solution 54, wherein the index is based on a table of intra-frame prediction modes arranged in descending order.
[0627] 56. A method according to any one of solutions 1-55, wherein the video unit corresponds to a video codec block.
[0628] 57. A method according to any one of solutions 1 to 56, wherein the conversion includes encoding the video into a codec representation.
[0629] 58. A method according to any one of solutions 1 to 56, wherein the conversion includes decoding the codec representation to generate pixel values of the video.
[0630] 59. A video decoding device, comprising: a processor configured to implement the method according to one or more of solutions 1 to 58.
[0631] 60. A video encoding device, comprising: a processor configured to implement the method according to one or more of solutions 1 to 58.
[0632] 61. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement the method according to any one of solutions 1 to 58.
[0633] 62. The method, apparatus or system described in this document.
[0634] Fig.26 2600 . 2600 may include an input 2602 for receiving video content. The video content may be received in a raw or uncompressed format, such as 8-bit or 10-bit multi-component pixel values, or may be received in a compressed or codec format. The input 2602 may represent a network interface, a peripheral bus interface, or a storage interface. Examples of network interfaces include wired interfaces such as Ethernet, a passive optical network (PON), and wireless interfaces such as Wi-Fi or a cellular interface.
[0635] System 2600 may include a codec component 2604, which can implement various encoding or decoding methods described herein. Codec component 2604 can reduce the average bit rate of the video from input 2602 to the output of codec component 2604 to generate the codec representation of the video. Therefore, codec technology is sometimes referred to as video compression or video transcoding technology. The output of codec component 2604 can be stored or transmitted by connected communication, as shown in component 2606. The storage or communication bit stream (or codec) of the video received at input 2602 represents a displayable video that can be used by component 2608 to generate pixel values or send to display interface 2610. The process of generating a user-viewable video from a bit stream representation is sometimes referred to as video decompression. In addition, although some video processing operations are referred to as "codec" operations or tools, it should be understood that codec tools or operations are used at encoders, and the corresponding decoding tools or operations of the reverse codec results will be performed by decoders.
[0636] Examples of peripheral bus interfaces or display interfaces may include Universal Serial Bus (USB) or High Definition Multimedia Interface (HDMI) or Display Port, etc. Examples of storage interfaces include SATA (Serial Advanced Technology Attachment), PCI, IDE interfaces, etc. The techniques described herein may be implemented in a variety of electronic devices, such as mobile phones, laptops, smart phones, or other devices capable of performing digital data processing and / or video display.
[0637] Some embodiments of the disclosed technology include making a decision or determination to enable a video processing tool or mode. In one example, when a video processing tool or mode is enabled, the encoder will use or implement the tool or mode in the processing of a video block, but will not necessarily modify the generated bitstream based on the use of the tool or mode. That is, the conversion from a video block to a bitstream representation of a video will use the video processing tool or mode when the video processing tool or mode is enabled based on the decision or determination. In another example, when a video processing tool or mode is enabled, the decoder processes the bitstream in the case of a known modification of the bitstream based on the video processing tool or mode. That is, the conversion from the bitstream representation of a video to a video block will be performed using the video processing tool or mode enabled based on the decision or determination.
[0638] Some embodiments of the disclosed technology include making a decision or determination to disable a video processing tool or mode. In one example, when the video processing tool or mode is disabled, the encoder will not use the tool or mode in the conversion of video blocks to a bitstream representation of the video. In another example, when the video processing tool or mode is disabled, the decoder processes the bitstream knowing that the video processing tool or mode enabled based on the decision or determination has not been used to modify the bitstream.
[0639] Fig. 27 1 is a block diagram illustrating an example video coding system 100 that may utilize the techniques of the present invention. Fig. 27 As shown, the video codec system 100 may include a source device 110 and a target device 120. The source device 110 generates encoded video data, which may be referred to as a video encoding device. The target device 120 may decode the encoded video data generated by the source device 110, which may be referred to as a video decoding device. The source device 110 may include a video source 112, a video encoder 114, and an input / output (I / O) interface 116.
[0640] The video source 112 may include a source, such as a source of a video capture device, an interface for receiving video data from a video content provider, and / or a computer graphics system for generating video data, or a combination of these sources. The video data may include one or more pictures. The video encoder 114 encodes the video data from the video source 112 to generate a bit stream. The bit stream may include a sequence of bits that form a codec representation of the video data. The bit stream may include a codec picture and associated data. The codec picture is a codec representation of the picture. The associated data may include a sequence parameter set, a picture parameter set, and other grammatical structures. The I / O interface 116 may include a modulator / demodulator (modem) and / or a transmitter. The encoded video data may be directly sent to the target device 120 via the network 130a via the I / O interface 116. The encoded video data may also be stored on a storage medium / server 130b for access by the target device 120.
[0641] Target device 120 may include an I / O interface 126 , a video decoder 124 , and a display device 122 .
[0642] The I / O interface 126 may include a receiver and / or a modem. The I / O interface 126 may obtain encoded video data from the source device 110 or the storage medium / server 130b. The video decoder 124 may decode the encoded video data. The display device 122 may display the decoded video data to the user. The display device 122 may be integrated with the target device 120, or may be external to the target device 120, which is configured to interface with an external display device.
[0643] The video encoder 114 and the video decoder 124 may operate according to a video compression standard, such as the High Efficiency Video Codec (HEVC) standard, the Versatile Video Codec (VVM) standard, and other current and / or future standards.
[0644] Fig.28 is a block diagram showing an example of a video encoder 200, which may be Fig. 271. The video encoder 114 in the system 100 is shown in FIG.
[0645] Video encoder 200 may be configured to perform any or all of the techniques of this disclosure. Fig.28 In the example of , video encoder 200 includes multiple functional components. The techniques described in this disclosure can be shared between the various components of video encoder 200. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0646] The functional components of the video encoder 200 may include a segmentation unit 201, a prediction unit 202 which may include a mode selection unit 203, a motion estimation unit 204, a motion compensation unit 205 and an intra-frame prediction unit 206, a residual generation unit 207, a transform unit 208, a quantization unit 209, an inverse quantization unit 210, an inverse transform unit 211, a reconstruction unit 212, a buffer 213 and an entropy coding unit 214.
[0647] In other examples, the video encoder 200 may include more, fewer, or different functional components. In an example, the prediction unit 202 may include an intra block copy (IBC) unit. The IBC unit may perform prediction in an IBC mode, wherein at least one reference picture is a picture in which the current video block is located.
[0648] Furthermore, some components, such as the motion estimation unit 204 and the motion compensation unit 205, may be highly integrated, but for the purpose of explaining the Fig.28 In the example, they are shown separately.
[0649] The partitioning unit 201 may partition a picture into one or more video blocks. The video encoder 200 and the video decoder 300 may support various video block sizes.
[0650] The mode selection unit 203 may select one of the codec modes, intra or inter, based on the error result, for example, and provide the resulting intra or inter codec block to the residual generation unit 207 to generate residual block data, and to the reconstruction unit 212 for reconstructing the codec block for use as a reference picture. In some examples, the mode selection unit 203 may select a combination of intra prediction and inter prediction (CIIP) modes, wherein the prediction is based on an inter prediction signal and an intra prediction signal. In the case of inter prediction, the mode selection unit 203 may also select a resolution of motion vectors for the block (e.g., sub-pixel or integer pixel precision).
[0651] To perform inter-frame prediction on the current video block, the motion estimation unit 204 may generate motion information of the current video block by comparing the current video block with one or more reference frames from the buffer 213. The motion compensation unit 205 may determine a predicted video block of the current video block based on the motion information and decoded samples of the picture from the buffer 213, rather than based on the picture associated with the current video block.
[0652] Motion estimation unit 204 and motion compensation unit 205 may perform different operations on the current video block, for example, depending on whether the current video block is in an I slice, a P slice, or a B slice.
[0653] In some examples, the motion estimation unit 204 may perform unidirectional prediction on the current video block, and the motion estimation unit 204 may search the reference picture of list 0 or list 1 for the reference video block of the current video block. Then, the motion estimation unit 204 may generate a reference index indicating the reference picture containing the reference video block in list 0 or list 1 and a motion vector indicating the spatial displacement between the current video block and the reference video block. The motion estimation unit 204 may output the reference index, the prediction direction indicator, and the motion vector as the motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current block based on the reference video block indicated by the motion information of the current video block.
[0654] In other examples, the motion estimation unit 204 may perform bidirectional prediction on the current video block, and the motion estimation unit 204 may search for a reference picture in list 0 for a reference video block of the current video block, and may also search for a reference picture in list 1 for another reference video block of the current video block. The motion estimation unit 204 may then generate a reference index and a motion vector, the reference index indicating a reference picture containing a reference video block in list 0 or list 1, and the motion vector indicating a spatial displacement between the reference video block and the current video block. The motion estimation unit 204 may output the reference index and the motion vector of the current video block as motion information of the current video block. The motion compensation unit 205 may generate a predicted video block of the current video block based on the reference video block indicated by the motion information of the current video block.
[0655] In some examples, motion estimation unit 204 may output a full set of motion information for use in a decoding process by a decoder.
[0656] In some examples, motion estimation unit 204 may not output a full set of motion information for the current video. Instead, motion estimation unit 204 may reference motion information of another video block to signal motion information of the current video block. For example, motion estimation unit 204 may determine that the motion information of the current video block is sufficiently similar to the motion information of an adjacent video block.
[0657] In one example, motion estimation unit 204 may indicate in a syntax structure associated with the current video block a value that indicates to video decoder 300 that the current video block has the same motion information as another video block.
[0658] In another example, the motion estimation unit 204 may identify another video block and a motion vector difference (MVD) in a syntax structure associated with the current video block. The motion vector difference indicates the difference between the motion vector of the current video block and the motion vector of the indicated video block. The video decoder 300 may use the motion vector of the indicated video block and the motion vector difference to determine the motion vector of the current video block.
[0659] As described above, the video encoder 200 may predictively signal motion vectors. Two examples of predictive signaling techniques that may be implemented by the video encoder 200 include Advanced Motion Vector Prediction (AMVP) and merge mode signaling.
[0660] The intra prediction unit 206 may perform intra prediction on the current video block. When the intra prediction unit 206 performs intra prediction on the current video block, the intra prediction unit 206 may generate prediction data for the current video block based on decoded samples of other video blocks in the same picture. The prediction data for the current video block may include a predicted video block and various syntax elements.
[0661] The residual generation unit 207 can generate residual data of the current video block by subtracting (eg, indicated by a minus sign) the predicted video block of the current video block from the current video block. The residual data of the current video block may include residual video blocks corresponding to different sample components of samples in the current video block.
[0662] In other examples, for the current video block, such as in skip mode, there may be no residual data for the current video block, and the residual generation unit 207 may not perform a subtraction operation.
[0663] Transform processing unit 208 may generate one or more transform coefficient video blocks for a current video block by applying one or more transforms to the residual video block associated with the current video block.
[0664] After transform processing unit 208 generates a transform coefficient video block associated with the current video block, quantization unit 209 may quantize the transform coefficient video block associated with the current video block based on one or more quantization parameter (QP) values associated with the current video block.
[0665] The inverse quantization unit 210 and the inverse transform unit 211 may apply inverse quantization and inverse transform to the transform coefficient video block, respectively, to reconstruct the residual video block from the transform coefficient video block. The reconstruction unit 212 may add the reconstructed residual video block to the corresponding samples of the one or more predicted video blocks generated by the prediction unit 202 to generate a reconstructed video block associated with the current block to be stored in the buffer 213.
[0666] After reconstruction unit 212 reconstructs the video block, a loop filtering operation may be performed to reduce video blocking artifacts in the video block.
[0667] The entropy coding unit 214 may receive data from other functional components of the video encoder 200. When the entropy coding unit 214 receives data, the entropy coding unit 214 may perform one or more entropy coding operations to generate entropy-coded data and output a bitstream including the entropy-coded data.
[0668] Fig.29 is a block diagram illustrating an example of a video decoder 300, which may be Fig. 27 The video decoder 114 in the system 100 is shown.
[0669] Video decoder 300 may be configured to perform any or all of the techniques of this disclosure. Fig.29 In the example of , video decoder 300 includes multiple functional components. The techniques described in this disclosure can be shared between the various components of video decoder 300. In some examples, a processor can be configured to perform any or all of the techniques described in this disclosure.
[0670] exist Fig.29 In the example of FIG. 3 , the video decoder 300 includes an entropy decoding unit 301, a motion compensation unit 302, an intra-frame prediction unit 303, an inverse quantization unit 304, an inverse transform unit 305, and a reconstruction unit 306 and a buffer 307. In some examples, the video decoder 300 can perform the same operations as those generally performed for the video encoder 200 ( Fig.28 ) is the reverse of the encoding process described in .
[0671] The entropy decoding unit 301 may obtain an encoded bitstream. The encoded bitstream may include entropy encoded video data (e.g., encoded blocks of video data). The entropy decoding unit 301 may decode the entropy encoded video data, and the motion compensation unit 302 may determine motion information from the entropy decoded video data, including motion vectors, motion vector precision, reference picture list indexes, and other motion information. The motion compensation unit 302 may determine such information, for example, by performing AMVP and merge mode.
[0672] The motion compensation unit 302 may generate motion compensated blocks, possibly performing interpolation based on interpolation filters. An identifier of the interpolation filter used with sub-pixel precision may be included in the syntax element.
[0673] The motion compensation unit 302 may use the interpolation filter used by the video encoder 200 during encoding and decoding of the video block to calculate the interpolation of the sub-integer pixels of the reference block. The motion compensation unit 302 may determine the interpolation filter used by the video encoder 200 according to the received syntax information and use the interpolation filter to generate a prediction block.
[0674] The motion compensation unit 302 may use some syntax information to determine the size of blocks used to encode (multiple) frames and / or (multiple) slices of the encoded video sequence, partitioning information for each macroblock describing how the images of the encoded video sequence are partitioned, a mode indicating how each partition is encoded, one or more reference frames (and reference frame lists) for each inter-frame coded block, and other information used to decode the encoded video sequence.
[0675] The intra prediction unit 303 may use, for example, an intra prediction mode received in the bitstream to form a prediction block from spatially adjacent blocks. The inverse quantization unit 303 inversely quantizes, i.e., dequantizes, the quantized video block coefficients provided in the bitstream and decoded by the entropy decoding unit 301. The inverse transform unit 303 performs inverse transform.
[0676] The reconstruction unit 306 may add the residual block to the corresponding prediction block generated by the motion compensation unit 202 or the intra prediction unit 303 to form a decoded block. If necessary, a deblocking filter may also be applied to filter the decoded block to remove blocky artifacts. The decoded video block is then stored in a buffer 307, which provides reference blocks for subsequent motion compensation / intra prediction and also produces decoded video for presentation on a display device.
[0677] Fig. 30A An example method 3000A for video processing is shown. The method 3000A includes: performing (3002A) a conversion between a video including a video unit and a codec representation of the video, wherein, while processing the video unit in the conversion, one or more frequency tables are selectively updated to include information about the frequency of one or more intra-frame prediction modes of the video unit used in the processing, wherein the frequency indicates the occurrence of the one or more intra-frame prediction modes used for the conversion, and wherein, while processing the video unit, one or more sorted intra-frame prediction mode (IPM) tables are selectively updated to indicate the one or more intra-frame prediction modes used in the processing.
[0678] Fig. 30BAn example method 3000B for video processing is shown. The method 3000B includes: performing (3002B) a conversion between a video unit of a video and a codec representation of the video using one or more frequency tables or one or more sorted intra-prediction mode (IPM) tables, wherein the one or more frequency tables include information about the frequency of one or more intra-prediction modes used in the conversion of the video, wherein the frequency indicates the occurrence of the one or more intra-prediction modes used for the conversion, wherein the one or more sorted IPM tables indicate the one or more intra-prediction modes in sorted order, wherein the one or more frequency tables or the one or more sorted IPM tables are used for intra-mode encoding and decoding in the process of constructing a most probable mode (MPM) list of size N, where N is an integer.
[0679] Fig. 30C An example method 3000C for video processing is shown. The method 3000C includes: performing (3002C) a conversion between a video block of a video and a codec representation of the video, wherein the codec representation includes a syntax element indicating a selected intra-prediction mode for the conversion, wherein the codec representation does not include one or more syntax elements indicating a most probable mode (MPM), or an index to an MPM list, or intra-prediction modes other than the intra-prediction modes included in the MPM list, and wherein the selected intra-prediction mode is based on historical information indicating a frequency of one or more intra-prediction modes used in another conversion between one or more video blocks of the video and the video prior to the conversion of the video block.
[0680] Fig.30D An example method 3000D for video processing is shown. The method 3000D includes: performing (3002D) a conversion between a video including a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially, wherein when one of the plurality of video units is processed in the conversion, one or more frequency tables and / or one or more ordered intra-prediction mode (IPM) tables are reset or initialized, wherein the one or more frequency tables include information about the frequency of one or more intra-prediction modes used to process a previous video unit in the plurality of video units, wherein the previous video unit temporally precedes the video unit, wherein the frequency indicates an occurrence of the one or more intra-prediction modes used for the conversion, and wherein the one or more ordered IPM tables indicate the one or more intra-prediction modes used in the processing.
[0681] Fig.30EAn example method 3000E for video processing is shown. The method 3000E includes: performing (3002E) a conversion between a video including a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially, wherein the conversion includes resetting or initializing a frequency table using one or more specific values of one or more entries in a frequency table, wherein the frequency table includes information about the frequency of one or more intra-frame prediction modes used to process the plurality of video units in the conversion, and wherein the frequency indicates the occurrence of the one or more intra-frame prediction modes used for the conversion.
[0682] Fig.30F An example method 3000F for video processing is shown. The method 3000F includes: performing (3002F) conversion between a video including a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially; and, after performing the conversion on one of the plurality of video units, determining (3004F): (1) whether a reset or initialization process is enabled for a frequency table, an ordered intra-prediction mode (IPM) table, and / or a history-based motion prediction (HMVP) table, and / or (2) a technique for resetting or initializing the frequency table, the ordered IPM table, and / or the HMVP table, wherein the determination is based on decoded information of the video unit other than the decoded intra-prediction mode, wherein the frequency table includes information about a frequency of one or more intra-prediction modes used to process a previous video unit in the plurality of video units in the conversion, wherein the previous video unit temporally precedes the video unit, wherein the frequency indicates an occurrence of the one or more intra-prediction modes used for the conversion, and wherein the ordered IPM table indicates the one or more intra-prediction modes used in the processing.
[0683] Figure 30G An example method 3000G for video processing is shown. The method 3000G includes: performing (3002G) a conversion between a video including a video unit and a codec representation of the video, wherein, after encoding or decoding the video unit using an intra-frame prediction mode, one or more frequency tables and / or one or more sorted intra-frame prediction mode (IPM) tables are selectively updated according to a rule, wherein the one or more frequency tables include information about the frequency of the intra-frame prediction mode used for processing the video unit in the conversion, wherein the frequency indicates the occurrence of the intra-frame prediction mode used for the conversion, and wherein the one or more sorted IPM tables indicate the intra-frame prediction mode used in the processing.
[0684] The following three sections describe example video processing techniques:
[0685] Chapter A
[0686] Example 1. A video processing method, comprising:
[0687] Performs conversion between the video containing the video unit and a codec representation of that video,
[0688] wherein, when processing a video unit in the conversion, one or more frequency tables are selectively updated to include information about the frequency of one or more intra prediction modes of the video unit used in the processing,
[0689] wherein the frequency indicates the occurrence of one or more intra prediction modes for conversion, and
[0690] Wherein, when processing the video unit, one or more sorted intra-frame prediction mode (IPM) tables are selectively updated to indicate one or more intra-frame prediction modes used in the processing.
[0691] Example 2. The method of Example 1, wherein the one or more sorted IPM tables are associated with one or more frequency tables.
[0692] Example 3. The method of any of Examples 1-2, wherein when one or more frequency tables are updated, one or more sorted IPM tables are updated accordingly.
[0693] Example 4. A method according to any one of Examples 1-2, wherein one or more sorted IPM tables are not updated because entries in one or more frequency tables include intra-frame prediction modes and the occurrence or frequency of the intra-frame prediction mode.
[0694] Example 5. The method of any of Examples 1-2, wherein a k-th entry of the one or more sorted IPM tables represents a historically k-th most frequently used intra prediction mode.
[0695] Example 6. The method of Example 1, wherein the video unit comprises a sub-region of a codec tree unit (CTU).
[0696] Example 7. A method according to Example 6, wherein a sub-region of a CTU includes a virtual pipeline data unit (VPDU), another CTU, a codec tree block (CTB), multiple CTUs, multiple codec units (CUs), a CTU row, a slice, a brick, a stripe, a picture, or a sub-picture.
[0697] Example 8. The method of Example 1, wherein one or more frequency tables are associated with the IPM order mapping table.
[0698] Example 9. The method of Example 8, wherein the k-th entry of the IPM order map represents the sorting index of the intra prediction mode with an index equal to k.
[0699] Example 10. The method of Example 1, wherein the video unit is a prediction unit (PU).
[0700] Example 11. The method of Example 1, wherein the video unit is a codec unit (CU).
[0701] Example 12. A method according to Example 1, wherein one or more frequency tables and one or more ordered IPM tables are used for another conversion between one or more additional video units of the video and a codec representation of the video, wherein the video unit temporally precedes the one or more additional video units.
[0702] Example 13. The method of Example 1, wherein the value of the intra-frame prediction mode in the sorted IPM table is associated with an index value that is the same as the index value of the frequency of the intra-frame prediction mode in the frequency table.
[0703] Example 14. The method of example 1, wherein one or more frequency tables and one or more sorted IPM tables are updated for each block type of the video.
[0704] Example 15. The method of example 1, wherein a frequency table from the one or more frequency tables and the one or more sorted IPM tables are updated for multiple block types of the video.
[0705] Example 16. The method of any of Examples 14-15, wherein the block types include blocks having the same width and / or the same height.
[0706] Example 17. The method of Example 1, wherein for an index value equal to k:
[0707] The first value modeT[k] is the intra prediction mode associated with the index value equal to k in the sorted IPM table,
[0708] The second value orderT[k] is the mapping index of the intra prediction mode associated with the index value equal to k after sorting the intra prediction modes in the IPM order mapping table, and
[0709] The third value freqT[k] is the frequency of the intra prediction mode associated with the index value equal to k in the frequency table.
[0710] Example 18. The method of Example 17, wherein orderT[modeT[k]]=k, where k represents an order index.
[0711] Example 19. The method of Example 17, wherein modeT[orderT[m]]=m, where m represents an intra prediction mode.
[0712] Example 20. The method of Example 17, wherein freqT[modeT[k]]>=freqT[modeT[k+1]].
[0713] Example 21. A method according to Example 1, wherein a frequency table from one or more frequency tables is associated with M entries, wherein M is an integer, and wherein each entry is associated with the frequency of one of the M allowed intra-frame prediction modes.
[0714] Example 22. The method of Example 21, wherein a sorted IPM table from the one or more sorted IPM tables includes the same number of entries as the number of entries in the frequency table associated with the sorted IPM table.
[0715] Example 23. The method of Example 21, wherein the allowed M intra-frame prediction modes are grouped into N categories, where N is an integer.
[0716] Example 24. A method according to Example 23, wherein the frequency table includes N entries, wherein N is an integer less than M, and wherein each entry in the frequency table is associated with a frequency corresponding to a category of the one or more intra-frame prediction modes.
[0717] Example 25. The method of Example 23, wherein one or more sorted IPM tables are associated with the frequency table, and wherein the one or more sorted IPM tables include N entries having sorted category indices.
[0718] Example 26. A method according to Example 21, wherein the frequency table includes N entries, wherein N is an integer less than M, and wherein the N entries correspond to N selected intra-frame prediction modes from the allowed M intra-frame prediction modes.
[0719] Example 27. The method of Example 26, wherein the allowed M intra-frame prediction modes do not include a wide-angle intra-frame prediction mode.
[0720] Example 28. A method according to Example 26, wherein the N selected intra-frame prediction modes include at least one of a direct current (DC) mode, a planar mode, a horizontal mode, a vertical mode, or a bilinear intra-frame prediction mode.
[0721] Example 29. The method of Example 26, wherein the N selected intra prediction modes are predefined or signaled or derived from codec information of the video unit.
[0722] Example 30. The method of Example 29, wherein the codec information indicates whether the video unit includes screen content.
[0723] Example 31. A method according to Example 21, wherein the frequency table includes N entries, wherein N is an integer less than M, wherein the N entries correspond to N intra-frame prediction modes, and wherein the frequency table including the N entries is updated during conversion based on decoding information of the video unit.
[0724] Example 32. The method of Example 31, wherein the N intra prediction modes are first initialized and then updated based on the decoded information of the video unit.
[0725] Example 33. A video processing method, comprising:
[0726] performing conversion between video units of a video and a codec representation of the video using one or more frequency tables or one or more ordered intra prediction mode (IPM) tables,
[0727] wherein the one or more frequency tables include information about the frequency of one or more intra prediction modes used in the conversion of the video,
[0728] wherein frequency indicates the occurrence of one or more intra prediction modes for conversion,
[0729] wherein the one or more sorted IPM tables indicate one or more intra prediction modes in sorted order,
[0730] wherein one or more frequency tables or one or more sorted IPM tables are used for intra-mode coding in the process of constructing a most probable mode (MPM) list of size N, and
[0731] Where N is an integer.
[0732] Example 34. The method of Example 33, wherein all MPM lists are determined by one or more sorted IPM tables.
[0733] Example 35. A method according to Example 34, wherein the one or more intra-frame prediction modes include top N intra-frame prediction modes associated with the highest frequency, and wherein the top N intra-frame prediction modes are used as input to the MPM list.
[0734] Example 36. The method of Example 33, wherein one or more frequency tables and one or more sorted IPM tables are used for intra-mode encoding and decoding.
[0735] Example 37. The method of Example 36, wherein all MPM lists are determined by the one or more sorted IPM tables and other non-table based intra prediction methods.
[0736] Example 38. A method according to Example 37, wherein the top M intra-frame prediction modes associated with the highest frequencies are used as input to the MPM list, where M is an integer less than N.
[0737] Example 39. A method according to Example 36, wherein one or more selected intra-frame prediction modes from one or more ordered IPM tables are combined with other intra-frame prediction modes derived from a non-table based intra-frame prediction method to form an MPM list.
[0738] Example 40. A method according to Example 39, wherein the other intra-frame prediction modes are derived from a non-table based intra-frame prediction method including one or more default intra-frame prediction modes.
[0739] Example 41. The method of Example 40, wherein the one or more default intra prediction modes include a planar mode or a direct current (DC) mode.
[0740] Example 42. A method according to Example 39, wherein the other intra-frame prediction modes are derived from a non-table-based intra-frame prediction method, which non-table-based intra-frame prediction method includes one or more intra-frame prediction modes derived from spatially neighboring blocks available for the video unit.
[0741] Example 43. The method of Example 42, wherein the spatially neighboring blocks include neighboring blocks that are immediately adjacent to the video unit or neighboring blocks that are not immediately adjacent to the video unit.
[0742] Example 44. The method of Example 42, wherein the spatial neighboring block comprises an upper neighboring block located above the video unit or a left neighboring block located on the left side of the video unit.
[0743] Example 45. A method according to Example 42, wherein the default intra-frame prediction mode order is: the intra-frame prediction mode from the left neighboring block located on the left side of the video unit, the intra-frame prediction mode from the upper neighboring block located above the video unit, the planar mode, and the direct current (DC) mode.
[0744] Example 46. A method according to Example 39, wherein, for a first intra-frame prediction mode that is not available on the left side of the video unit and is associated with a left neighboring block, or for a second intra-frame prediction mode that is not available above the video unit and is associated with an upper neighboring block, a value of -1 is used to replace the missing mode index in the MPM list.
[0745] Example 47. The method of Example 46, wherein the video unit comprises a codec tree unit or a slice boundary.
[0746] Example 48. A method according to Example 39, wherein the other intra-frame prediction modes are added to the MPM list before adding one or more selected intra-frame prediction modes from the one or more sorted IPM tables to the MPM list.
[0747] Example 49. A method according to Example 39, wherein after adding one or more selected intra-frame prediction modes from one or more sorted IPM tables to the MPM list, other intra-frame prediction modes are added to the MPM list.
[0748] Example 50. A method according to Example 39, wherein other intra-frame prediction modes are added to the MPM list before and after one or more selected intra-frame prediction modes from one or more ordered IPM tables are added to the MPM list.
[0749] Example 51. A method according to Example 39, wherein a pruning technique is applied to other intra-frame prediction modes and one or more selected intra-frame prediction modes to avoid adding redundant intra-frame prediction modes to the MPM list.
[0750] Example 52. A method according to Example 39, wherein the order of adding intra-frame prediction modes derived from one or more sorted IPM tables and from a non-table based intra-frame prediction method is changed between one video unit of a video to another video unit of a video and between one video block of a video to another video block of a video.
[0751] Example 53. A method according to Example 39, wherein the number of intra-frame prediction modes derived from one or more ordered IPM tables and from a non-table based intra-frame prediction method changes between one video unit of a video to another video unit of a video and between one video block of a video to another video block of a video.
[0752] Example 54. The method of Example 39, wherein the first L intra prediction modes in the one or more sorted IPM tables are added to the MPM list.
[0753] Example 55. The method of Example 39, wherein the last L intra prediction modes in the one or more sorted IPM tables are added to the MPM list.
[0754] Example 56. The method of Example 39, wherein one or more selected intra prediction modes from the sorted IPM table are added to the MPM list based on an ascending order of entry indices of the sorted IPM table.
[0755] Example 57. The method of Example 39, wherein one or more selected intra prediction modes from the sorted IPM table are added to the MPM list based on a descending order of entry indices of the sorted IPM table.
[0756] Example 58. A method according to Example 39, wherein one or more selected intra-frame prediction modes from the sorted IPM table are added to the MPM list based on an ascending order of the intra-frame prediction mode index.
[0757] Example 59. The method of Example 39, wherein one or more selected intra prediction modes from the sorted IPM table are added to the MPM list based on a descending order of the intra prediction mode index.
[0758] Example 60. The method of any of Examples 58-59, wherein one or more indices of the first L intra prediction modes in the sorted IPM table are selected to be added to the MPM list.
[0759] Example 61. A method according to Example 60, wherein, in response to a first value of the first intra-frame prediction mode being less than a second value of the second intra-frame prediction mode, the first intra-frame prediction mode is added to the MPM list before the second intra-frame prediction mode is added to the MPM list.
[0760] Example 62. A method according to Example 60, wherein, in response to a first value of the first intra-frame prediction mode being greater than a second value of the second intra-frame prediction mode, the first intra-frame prediction mode is added to the MPM list before the second intra-frame prediction mode is added to the MPM list.
[0761] Example 63. The method of Example 28, wherein whether to determine the entire MPM list from the one or more sorted IPM tables depends on the frequency of one or more intra-prediction modes.
[0762] Example 64. The method of Example 36, wherein whether to determine the entire MPM list from the one or more ordered IPM tables depends on a rule associated with decoding information of the video unit.
[0763] Example 65. The method of Example 64, wherein the decoded information comprises block dimensions or video content type.
[0764] Example 66. A method according to Example 65, wherein the rules associated with the block dimensions include whether the block width and / or the block height is greater than a threshold.
[0765] Example 67. The method of Example 65, wherein the rules associated with the video content type include whether the video content type is screen content.
[0766] Example 68. The method of Example 33, wherein the sorted IPM table from the one or more sorted IPM tables is an intra-mode codec for remaining intra-prediction modes other than the most probable mode included in the MPM list.
[0767] Example 69. The method according to Example 68,
[0768] wherein the first value of the first index of the first remaining intra-frame prediction mode corresponds to the first intra-frame prediction mode,
[0769] wherein the second value of the second index of the second remaining intra-frame prediction mode corresponds to the second intra-frame prediction mode,
[0770] wherein, in response to the first intra prediction mode having a higher frequency than the second intra prediction mode, the first value is less than the second value, and
[0771] Therein, the first value is included in the codec representation.
[0772] Example 70. A video processing method comprising:
[0773] Perform conversions between video chunks of a video and a codec representation of that video,
[0774] wherein the codec representation comprises a syntax element indicating a selected intra prediction mode for conversion,
[0775] wherein the codec representation does not include one or more syntax elements indicating a most probable mode (MPM), or an index to an MPM list, or remaining intra-prediction modes other than the intra-prediction modes included in the MPM list, and
[0776] The selected intra-prediction mode is based on historical information indicating a frequency of one or more intra-prediction modes used in another conversion between one or more video blocks of the video and the video prior to the conversion of the video block.
[0777] Example 71. The method of Example 70, wherein a mapping between syntax elements and a selected intra-prediction mode changes from one video block to another.
[0778] Example 72. The method according to any one of Examples 70-71,
[0779] wherein the ordered intra prediction mode (IPM) table comprises one or more indexes associated with one or more intra prediction modes in the ordered IPM table,
[0780] The selected intra prediction mode is selected from one or more intra prediction modes, and
[0781] Therein, the syntax element includes an index from one or more indices.
[0782] Example 73. The method of Example 72, wherein one or more indexes are used to select the selected intra-frame prediction mode.
[0783] Example 74. The method of Example 72, wherein the one or more indices include an index value of zero corresponding to a first intra-prediction mode listed in the sorted IPM table.
[0784] Example 75. A method according to any one of Examples 70-71,
[0785] wherein the sorted intra prediction mode (IPM) table comprises indexes associated with intra prediction modes in the sorted IPM table,
[0786] Where the index is in descending order based on the usage frequency associated with the intra prediction mode,
[0787] wherein the selected intra prediction mode is from the intra prediction mode, and
[0788] Therein, the syntax element comprises an index from the index.
[0789] Example 76. A method according to Example 75, wherein the index with the lowest value is associated with the intra-frame prediction mode with the highest usage frequency.
[0790] Example 77. The method according to any one of Examples 70-71,
[0791] wherein the ordered intra prediction mode (IPM) table comprises one or more indexes associated with one or more intra prediction modes in the ordered IPM table,
[0792] Wherein, one or more indexes are encoded and decoded using a binarization technique,
[0793] wherein the selected intra prediction mode is from one or more intra prediction modes, and
[0794] Therein, the syntax element includes an index from one or more indices.
[0795] Example 78. The method of Example 77, wherein the binarization technique comprises a truncated unary method, a truncated binary method, or an exponential Golomb method.
[0796] Example 79. According to the method described in any one of Examples 70-71,
[0797] wherein the ordered intra prediction mode (IPM) table comprises one or more indexes associated with one or more intra prediction modes in the ordered IPM table,
[0798] Among them, one or more indexes are context-encoded and decoded for all containers or part of the containers.
[0799] wherein the selected intra prediction mode is from one or more intra prediction modes, and
[0800] Therein, the syntax element includes an index from one or more indices.
[0801] Example 80. A method according to Example 79, wherein the portion of containers includes a first number of containers.
[0802] Example 81. A method according to any one of Examples 1-80,
[0803] wherein a chroma direct mode (DM) codec is applied to a video unit or video block, and
[0804] The DM codec is determined based on a frequency table, or one or more frequency tables, or an ordered IPM table, or one or more ordered IPM tables, or an IPM ordering mapping table.
[0805] Example 82. The method of Example 81, wherein the IPM ordering map comprises an intra prediction mode associated with a highest frequency table.
[0806] Example 83. A method according to any one of Examples 1-80,
[0807] wherein a chroma direct mode (DM) codec is applied to a video unit or video block, and
[0808] The chroma DM candidate list is determined based on a frequency table, or one or more frequency tables, or a sorted IPM table, or one or more sorted IPM tables, or an IPM sorting mapping table.
[0809] Example 84. A method according to any of Examples 1-83, wherein an indication of whether to selectively update or use one or more frequency tables or one or more sorted IPM tables for a video unit is signaled in a codec representation at a video unit level.
[0810] Example 85. The method of Example 84, wherein the video unit comprises a slice, a tile, a strip, a picture, a sub-picture, a sequence, or a view.
[0811] Example 86. A method according to Example 84, wherein an indication of whether to selectively update or use one or more frequency tables or one or more sorted IPM tables and / or another indication of a technique for selectively updating one or more frequency tables or one or more sorted IPM tables is included in a sequence parameter set, a view parameter set, an adaptation parameter set, a picture parameter set, a picture header, a slice header, or a sequence header.
[0812] Example 87. A method according to Example 86, wherein a syntax element in the codec representation indicates whether to enable determining one or more intra-frame prediction modes from one or more frequency tables, or one or more sorted IPM tables, or an IPM order mapping table.
[0813] Example 88. A method according to Example 86, wherein a syntax element in the codec representation indicates the number of one or more intra-frame prediction modes determined from one or more frequency tables, or one or more sorted IPM tables, or an IPM order mapping table.
[0814] Example 89. A method according to Example 86, wherein a syntax element in the codec representation indicates the number of most likely modes determined from one or more intra-frame prediction modes from one or more frequency tables, or one or more sorted IPM tables, or an IPM order mapping table.
[0815] Example 90. The method according to Example 84,
[0816] wherein indicating in a syntax element in the codec representation whether to selectively update or use one or more frequency tables or one or more sorted IPM tables and / or a technique for selectively updating and using one or more frequency tables or one or more sorted IPM tables is used, and
[0817] The syntax element indicates whether the video content of the video unit is screen content.
[0818] Example 91. The method according to Example 84,
[0819] Wherein, whether to selectively update or use one or more frequency tables or one or more sorted IPM tables and / or the technology of selectively updating and using one or more frequency tables or one or more sorted IPM tables is based on features derived from reconstructed samples in a previously coded block that temporally precedes a video block associated with a video unit.
[0820] Example 92. The method according to any one of Examples 1-91,
[0821] Whether to selectively update or use one or more frequency tables or one or more sorted IPM tables and / or the technology of selectively updating or using one or more frequency tables or one or more sorted IPM tables is based on the coding information of the video block.
[0822] Example 93. The method of Example 92, wherein the codec information includes block dimensions, slice type, picture type, temporal layer index, or video content of the video unit.
[0823] Example 94. A method according to Example 92, wherein when the width of the video unit is less than or equal to T1 and the height is less than or equal to T2, one or more frequency tables or one or more sorted IPM tables are selectively updated or used, where T1 and T2 are integers.
[0824] Example 95. A method according to Example 92, wherein when the width of the video unit is less than or equal to T1 or the height is less than or equal to T2, one or more frequency tables or one or more sorted IPM tables are selectively updated or used, where T1 and T2 are integers.
[0825] Example 96. The method of Example 92, wherein one or more frequency tables or one or more sorted IPM tables are selectively updated or used when the width multiplied by the height of the video unit is less than or equal to T3, wherein T3 is an integer.
[0826] Example 97. A method according to Example 92, wherein when the width of the video unit is less than or equal to T1 and the height is less than or equal to T2, selectively updating or using one or more frequency tables or one or more sorted IPM tables is prohibited, wherein T1 and T2 are integers.
[0827] Example 98. A method according to Example 92, wherein when the width of the video unit is less than or equal to T1 or the height is less than or equal to T2, selectively updating or using one or more frequency tables or one or more sorted IPM tables is prohibited, wherein T1 and T2 are integers.
[0828] Example 99. A method according to Example 92, wherein when the width multiplied by the height of the video unit is less than or equal to T3, selectively updating or using one or more frequency tables or one or more arranged IPM tables is prohibited, where T3 is an integer.
[0829] Example 100. A method according to any one of Examples 1 to 99,
[0830] Among them, whether to selectively update one or more frequency tables or one or more sorted IPM tables and / or the technology used to selectively update one or more frequency tables or one or more sorted IPM tables is based on the color component of the video unit, or the color encoding and decoding method, or the color format, or the partition tree encoding and decoding method.
[0831] Example 101. A method according to Example 100, wherein one or more frequency tables or one or more sorted IPM tables are selectively updated and / or the technology used to selectively update one or more frequency tables or one or more sorted IPM tables is only used for luma intra-frame prediction mode encoding and decoding.
[0832] Example 102. A method according to any one of Examples 1 to 101, wherein the conversion includes encoding the video into a codec representation.
[0833] Example 103. A method according to any one of Examples 1 to 101, wherein the conversion includes decoding the codec representation to generate pixel values of the video.
[0834] Example 104. A video decoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 103.
[0835] Example 105. A video encoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 103.
[0836] Example 106. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement a method according to any one of Examples 1 to 103.
[0837] Section B
[0838] Example 1. A video processing method, comprising:
[0839] performing a conversion between a video comprising a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially,
[0840] wherein when processing one of the plurality of video units in the conversion, one or more frequency tables and / or one or more ordered intra prediction mode (IPM) tables are reset or initialized,
[0841] wherein the one or more frequency tables include information about frequencies of one or more intra prediction modes used to process previous video units in the plurality of video units,
[0842] wherein the previous video unit precedes the video unit in time,
[0843] wherein the frequency indicates the occurrence of one or more intra prediction modes for conversion, and
[0844] The one or more sorted IPM tables indicate one or more intra prediction modes used in the processing.
[0845] Example 2. The method of Example 1, wherein the video unit comprises a sub-region of a codec tree unit (CTU).
[0846] Example 3. A method according to Example 1, wherein a sub-region of the CTU includes a virtual pipeline data unit (VPDU), another CTU, a codec tree block (CTB), multiple CTUs, multiple codec units (CUs), a CTU row, a slice, a brick, a stripe, a picture, or a sub-picture.
[0847] Example 4. The method of Example 1, wherein the one or more sorted IPM tables are reset or initialized to be the same as the intra-prediction mode allowed set arranged in ascending order of index.
[0848] Example 5. The method of Example 1, wherein the one or more sorted IPM tables are reset or initialized to be the same as the intra-prediction mode allowed set in descending order of index.
[0849] Example 6. The method of Example 5, wherein the one or more sorted IPM tables first include a plurality of default most probable modes (MPMs), followed by the remaining intra prediction modes except for the plurality of default MPMs.
[0850] Example 7. The method according to Example 6, wherein the multiple default MPMs include the following mode set: {vertical mode, horizontal mode, vertical mode with offset of -4, vertical mode with offset of +4, mode 2, diagonal mode}.
[0851] Example 8. The method according to Example 6, wherein the multiple default MPMs include the following mode set: {planar mode, direct current (DC) mode, vertical mode, horizontal mode, mode 2, diagonal mode}.
[0852] Example 9. A method according to any of Examples 7-8, wherein the diagonal mode is the intra-frame prediction mode with the largest index.
[0853] Example 10. The method of Example 6, wherein the plurality of default MPMs are included in one or more sorted IPM tables in different orders.
[0854] Example 11. The method of Example 6, wherein the identification of the plurality of default MPMs and the technique of using the same to add the plurality of default MPMs to the one or more sorted IPM tables is based on decoding information of a block type of a video or a video unit.
[0855] Example 12. A video processing method, comprising:
[0856] performing a conversion between a video comprising a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially,
[0857] wherein the converting comprises resetting or initializing the frequency table using one or more specific values of one or more entries in the frequency table,
[0858] wherein the frequency table includes information about the frequency of one or more intra prediction modes used in processing the plurality of video units in the conversion, and
[0859] The frequency indicates the occurrence of one or more intra prediction modes used for the conversion.
[0860] Example 13. The method of Example 12, wherein one or more specific values corresponding to one or more intra prediction modes are set to the same value.
[0861] Example 14. The method of Example 13, wherein the same value is set to N, and wherein N is an integer.
[0862] Example 15. The method of Example 14, wherein N is equal to zero.
[0863] Example 16. A method according to Example 12, wherein one or more specific values corresponding to one or more intra-frame prediction modes are set to one or more unique values, wherein each intra-frame prediction mode is associated with a unique value.
[0864] Example 17. A method according to Example 12, wherein one or more specific values corresponding to one or more intra-frame prediction modes include a first set of at least two values that are the same for a first set of at least two intra-frame prediction modes and a second set of at least two values that are different for a second set of at least two intra-frame prediction modes.
[0865] Example 18. The method of Example 12, wherein K represents the number of allowed most probable modes (MPMs), and wherein a default MPM list is defined.
[0866] Example 19. A method according to Example 18, wherein the initialization value of the i-th intra-frame prediction mode excluded from the default MPM list is set to (M-1-i), where M is an integer.
[0867] Example 20. A method according to Example 18, wherein the initialization value of the jth intra-frame prediction mode is set to M+f(j), wherein f(j) returns a positive integer value, wherein M is an integer, and wherein j is in the range of 0 to K-1 including 0 and K-1.
[0868] Example 21. A method according to Example 20, wherein f(j) is set to (Kj).
[0869] Example 22. The method of Example 12, wherein a plurality of specific value sets for a plurality of entries in the frequency table are predefined, and wherein a specific value set is selected for a set of entries from the frequency table based on codec information of a plurality of video units.
[0870] Example 23. A video processing method, comprising:
[0871] performing conversion between a video comprising a plurality of video units and a codec representation of the video, wherein the plurality of video units are processed sequentially; and
[0872] After performing the conversion on a video unit of the plurality of video units, determining: (1) whether a reset or initialization process is enabled for a frequency table, an ordered intra-prediction mode (IPM) table, and / or a history-based motion prediction (HMVP) table, and / or (2) a technique for resetting or initializing the frequency table, the ordered IPM table, and / or the HMVP table,
[0873] wherein the determination is based on decoded information of the video unit other than the decoded intra prediction mode,
[0874] wherein the frequency table includes information about frequencies of one or more intra prediction modes used for processing a previous video unit among the plurality of video units in the conversion,
[0875] wherein the previous video unit is earlier in time than the video unit,
[0876] wherein the frequency indicates the occurrence of one or more intra prediction modes for conversion, and
[0877] Therein, the sorted IPM table indicates one or more intra prediction modes used in the processing.
[0878] Example 24. A method according to Example 23, wherein a reset or initialization process is enabled within a codec tree unit (CTU) of a video unit, a codec tree block (CTB) of a video unit, a virtual pipeline data unit (VPDU) of a video unit, or a predefined region size of a video unit.
[0879] Example 25. The method according to Example 24,
[0880] Wherein, before encoding or decoding a new CTU of a video unit, and / or a codec unit (CU), a prediction unit (PU), a transform unit (TU), a codec block (CB), a transform block (TB), or a prediction block (PB) of a video unit, a reset or initialization process is enabled,
[0881] wherein the y coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is located at half of the CTU of the video unit, and
[0882] The x coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is zero.
[0883] Example 26. The method according to Example 24,
[0884] Wherein, before encoding or decoding a new CTU of a video unit, and / or a codec unit (CU), a prediction unit (PU), a transform unit (TU), a codec block (CB), a transform block (TB), or a prediction block (PB) of a video unit, a reset or initialization process is enabled,
[0885] wherein the x-coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is located at half of the CTU of the video unit, and
[0886] The y coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is zero.
[0887] Example 27. The method according to Example 24,
[0888] Wherein, before encoding or decoding a new CTU of a video unit, and / or a codec unit (CU), a prediction unit (PU), a transform unit (TU), a codec block (CB), a transform block (TB), or a prediction block (PB) of a video unit, a reset or initialization process is enabled,
[0889] The y coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is located at half of the video unit CTU or equal to zero, and
[0890] The x coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is zero.
[0891] Example 28. The method according to Example 24,
[0892] Wherein, before encoding or decoding a new CTU of a video unit of a video, and / or a codec unit (CU), a prediction unit (PU), a transform unit (TU), a codec block (CB), a transform block (TB), or a prediction block (PB) of a video unit, a reset or initialization process is enabled,
[0893] The x coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is located at half of the video unit CTU or equal to zero, and
[0894] The y coordinate of the upper left sample point of the new CTU or CU or PU or TU or CB or TB or PB is zero.
[0895] Example 29. The method of Example 23, wherein the decoded information includes a position of a current video block associated with the video unit.
[0896] Example 30. A method according to Example 29, wherein the coordinates of the upper left sample point of the video unit relative to the current strip or slice or tile or picture are (x, y), and wherein the determination whether to enable the reset or initialization process is based on the x coordinate and / or the y coordinate.
[0897] Example 31. A method according to Example 30, wherein the video unit includes a codec unit, a codec block, a prediction unit, a prediction block, a transform unit, a transform block, a virtual pipeline data unit (VPDU) of a video unit, a codec tree unit (CTU), a codec tree block (CTB), or a predefined area.
[0898] Example 32. A method according to any of Examples 30-31, wherein a reset or initialization process is enabled when (x%M) and / or (y%N) is equal to zero, where % is a modulo operator.
[0899] Example 33. A method according to any one of Examples 30-31, wherein a reset or initialization process is enabled when (M–x%M)) is not greater than K0 and / or (N–(y%N)) is not greater than K1, where % is a modulo operator.
[0900] Example 34. A method according to any one of Examples 30-31, wherein a reset or initialization process is enabled when (M–(x%M)) is equal to K0 and / or (N–(y%N)) is equal to K1, where % is a modulo operator.
[0901] Example 35. The method according to any one of Examples 32-34,
[0902] Where M is the width of the CTU or CTB, or
[0903] Where M is (1 / S*CTU or CTB width),
[0904] Wherein, S is a positive integer.
[0905] Example 36. The method according to any one of Examples 32-34,
[0906] Where N is the height of the CTU or CTB, or
[0907] Where N is (1 / S*CTU or CTB height),
[0908] Wherein, S is a positive integer.
[0909] Example 37. The method according to any one of Examples 32-34,
[0910] Among them, K0 and K1 are equal to 4 or 8, or are respectively equal to the width and height of the minimum decoding unit (CU), or are respectively equal to the width and height of the minimum prediction unit (PU), or are respectively equal to the width and height of the minimum transform unit (TU), or are respectively equal to the width and height of the minimum decoding block (CB).
[0911] Example 38. The method according to any one of Examples 30-31,
[0912] Among them, when x%W CTU Equal to zero and y%H CTU When it is equal to 0, or when (W CTU –(x%W CTU ) is less than or equal to 4 and (H CTU –(y%H CTU ) is less than or equal to 4, the reset or initialization process is enabled,
[0913] where % is the modulo operator, and
[0914] Among them, W CTU and H CTU are the width and height of CTU respectively.
[0915] Example 39. The method according to any one of Examples 30-31,
[0916] Among them, when x%(W CTU >>1) is equal to 0 and y%HCTU is equal to 0, the reset or initialization process is enabled,
[0917] Among them, % is the modulo operator,
[0918] Among them, W CTU and H CTU are the width and height of the CTU, respectively, and
[0919] Among them, >> is the right shift operator.
[0920] Example 40. The method according to any one of Examples 30-31,
[0921] Where x%W CTU When y%(HCTU>>1) is equal to 0, the reset or initialization process is enabled.
[0922] Among them, % is the modulo operator,
[0923] Among them, W CTU and H CTU are the width and height of the CTU, respectively, and
[0924] Among them, >> is the right shift operator.
[0925] Example 41. A method according to Example 23, wherein the decoding information indicates the number of coding units (CUs), or the number of prediction units (PUs), or the number of transform units (TUs) that have been encoded and decoded.
[0926] Example 42. A method according to any of Examples 1-41, wherein the conversion includes: encoding the video into a codec representation.
[0927] Example 43. A method according to any of Examples 1-41, wherein the conversion includes: decoding the codec representation to generate pixel values of the video.
[0928] Example 44. A video decoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 43.
[0929] Example 45. A video encoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 43.
[0930] Example 46. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement a method according to any one of Examples 1 to 43.
[0931] Chapter C
[0932] Example 1. A video processing method, comprising:
[0933] performing a conversion between a video comprising a video unit and a codec representation of the video,
[0934] After encoding or decoding the video unit using the intra-frame prediction mode, one or more frequency tables and / or one or more sorted intra-frame prediction mode (IPM) tables are selectively updated according to the rule,
[0935] wherein the one or more frequency tables include information about the frequency of intra prediction modes used in processing the video unit in the conversion,
[0936] where frequency indicates the occurrence of the intra prediction mode for switching, and
[0937] Therein, one or more sorted IPM tables indicate the intra prediction mode used in the processing.
[0938] Example 2. The method of Example 1, wherein the rule specifies that the one or more frequency tables and the one or more sorted IPM tables are updated only when the intra prediction mode is an intra mode.
[0939] Example 3. The method of Example 1, wherein the rule specifies that when the intra prediction mode is not an intra mode, updating of one or more frequency tables and one or more sorted IPM tables is not allowed.
[0940] Example 4. The method of Example 1, wherein the rule specifies that when the intra prediction mode is a matrix-based intra prediction (MIP) mode, one or more frequency tables and one or more sorted IPM tables are updated.
[0941] Example 5. The method of Example 1, wherein the rule specifies that updating one or more frequency tables and one or more sorted IPM tables is not allowed when the intra prediction mode is a matrix-based intra prediction (MIP) mode.
[0942] Example 6. The method of Example 4, wherein when the MIP mode is converted to the intra prediction mode, one or more frequency tables and one or more sorted IPM tables are updated.
[0943] Example 7. The method of Example 1, wherein the rule specifies that after decoding a video unit encoded and decoded in intra sub-partitioning (ISP) mode, one or more frequency tables and one or more sorted IPM tables are not updated.
[0944] Example 8. The method of Example 1, wherein the rule specifies updating one or more frequency tables and one or more sorted IPM tables after decoding a video unit encoded and decoded in intra sub-partitioning (ISP) mode.
[0945] Example 9. The method of Example 8, wherein the one or more frequency tables and the one or more sorted IPM tables are updated once after the video unit is completely decoded.
[0946] Example 10. The method of Example 8, wherein the one or more frequency tables and the one or more sorted IPM tables are updated once after decoding a sub-partition of the video unit.
[0947] Example 11. A method according to Example 1, wherein the rule specifies updating one or more frequency tables and one or more sorted IPM tables after encoding or decoding a video unit using a block differential pulse codec modulation (BDPCM) mode or a residual differential pulse codec modulation (RDPCM) mode.
[0948] Example 12. A method according to Example 1, wherein the rule stipulates that one or more frequency tables and one or more sorted IPM tables are not updated after a video unit is encoded or decoded using a block differential pulse codec modulation (BDPCM) mode or a residual differential pulse codec modulation (RDPCM) mode.
[0949] Example 13. The method of Example 1, wherein the rule specifies that after encoding or decoding a video unit using an intra-prediction mode not included in the selected set of intra-prediction modes, one or more frequency tables and one or more sorted IPM tables are not updated.
[0950] Example 14. The method of Example 1, wherein the rule provides for updating one or more frequency tables and one or more sorted IPM tables after encoding or decoding a video unit using a prediction mode other than intra mode.
[0951] Example 15. The method of Example 14, wherein the intra mode comprises an inter mode, an intra block copy (IBC) mode, or a palette mode.
[0952] Example 16. The method of Example 14, wherein the rule provides for updating the one or more frequency tables and the one or more sorted IPM tables in response to an intra prediction signal generated when encoding or decoding the video unit.
[0953] Example 17. The method of Example 16, wherein the video unit is encoded and decoded in combined intra-inter prediction (CIIP) mode.
[0954] Example 18. The method according to Example 14, wherein the rule specifies that in response to no intra prediction signal being generated during encoding or decoding of a video unit, updating of one or more frequency tables and one or more sorted IPM tables is not allowed.
[0955] Example 19. The method according to Example 18, wherein the rule further specifies using a default set of one or more intra prediction modes to update one or more frequency tables and one or more sorted IPM tables.
[0956] Example 20. The method according to Example 1,
[0957] wherein the rule further specifies updating one or more frequency tables based on the intra prediction mode selected for encoding or decoding the video unit.
[0958] Example 21. The method according to Example 20,
[0959] wherein the frequency of the intra prediction mode used for encoding or decoding a previous video unit of the video is Fn(Mi),
[0960] wherein the intra prediction mode is Mi,
[0961] wherein the previous video unit is temporally prior to the video unit,
[0962] wherein the rule specifies that after encoding or decoding the video unit, the frequency of the intra prediction mode is updated to Fn+1(Mi) = Fn(Mi) + K, and
[0963] wherein K and n are integers.
[0964] Example 22. The method according to Example 21, wherein K is set to 1.
[0965] Example 23. The method according to Example 21, wherein K is set to a value greater than 1.
[0966] Example 24. The method according to Example 21, wherein K is set to a value equal to (1<<A), where A is an integer value and << is the left shift operator.
[0967] Example 25. The method according to Example 21, wherein K is set to an integer value greater than the number of entries in the frequency table among the one or more frequency tables.
[0968] Example 26. The method according to Example 21, wherein K is based on a set of initial values.
[0969] Example 27. A method according to Example 26, wherein K is set to (P*maximum value of the initial value set), where P is a positive integer value.
[0970] Example 28. The method of Example 21, wherein the value of K is based on an intra-prediction mode and / or a block type of the video unit.
[0971] Example 29. The method of Example 28, wherein K is set to an integer value greater than the number of allowed intra-prediction modes.
[0972] Example 30. A method according to Example 28, wherein K is equal to (P*number of allowed intra-frame prediction modes), where P is a positive integer value.
[0973] Example 31. The method of Example 21, wherein the value of K is based on the number of times the table is updated.
[0974] Example 32. A method according to Example 21, wherein the value of K is based on the variable n.
[0975] Example 33. The method of Example 21, wherein the value of K is determinable based on decoder information of the video unit.
[0976] Example 34. The method of Example 33, wherein the decoder information indicates an intra-prediction mode.
[0977] Example 35. The method according to Example 20,
[0978] Wherein, the frequency of the intra-frame prediction mode of the previous video unit of the video is Fn(Mi),
[0979] Among them, the intra prediction mode is Mi,
[0980] wherein the previous video unit precedes the video unit in time,
[0981] The rule states that after encoding or decoding a video unit using an intra-frame prediction mode (Mi), other frequencies (Fn+1(Mj)) of other intra-frame prediction modes remain unchanged.
[0982] Among them, Fn+1(Mj)=Fn(Mj),
[0983] The other intra-frame prediction mode is different from the intra-frame prediction mode, and
[0984] Here, n is an integer.
[0985] Example 36. A method according to Example 35, wherein the rule stipulates that the frequencies associated with some of the intra-frame prediction modes other than the intra-frame prediction mode are changed, and wherein the frequencies of the remaining intra-frame prediction modes except some of the other intra-frame prediction modes remain unchanged.
[0986] Example 37. The method of Example 20, wherein the rule provides for updating the one or more frequency tables based on an input category index and an associated frequency of the input category index.
[0987] Example 38. The method of Example 37, wherein the input category index comprises a category index having a mapping of a decoded intra-prediction mode for a current block of the video unit.
[0988] Example 39. The method of Example 37, wherein a length of a frequency table from the one or more frequency tables is less than a number of allowed intra-prediction modes.
[0989] Example 40. The method of Example 39, wherein the length of the frequency table is set to the number of allowed most probable modes (MPMs).
[0990] Example 41. The method of Example 39, wherein, when the frequency table is to be updated with an input pattern, the frequency of the input pattern is updated accordingly in response to the frequency of the input pattern being previously included in the frequency table.
[0991] Example 42. A method according to Example 39, wherein, when the frequency table is to be updated with an input mode, in response to the frequency of the input mode not being previously included in the frequency table, another intra-frame prediction mode with the lowest frequency is replaced with the frequency of the input mode.
[0992] Example 43. The method of Example 42, wherein an ordered IPM table of the one or more ordered IPM tables replaces another intra-prediction mode with the input mode.
[0993] Example 44. The method according to Example 1,
[0994] wherein the rule provides for updating a frequency table in one or more frequency tables,
[0995] wherein the sorted IPM tables in the one or more sorted IPM tables are sorted according to the frequencies associated with the plurality of intra prediction modes in the updated frequency table, and
[0996] Among them, the multiple intra-frame prediction modes include the intra-frame prediction mode.
[0997] Example 45. The method according to Example 44, wherein after updating the frequency table, the frequency table is sorted in descending order according to the values of the frequencies of the plurality of intra prediction modes.
[0998] Example 46. A method according to Example 44, wherein the frequency table is sorted based on a current entry associated with an intra-frame prediction mode in the frequency table that was added to the last entry in the frequency table.
[0999] Example 47. A method according to Example 44, wherein the frequency table is sorted based on a current entry associated with an intra-frame prediction mode in the frequency table added to the first entry in the frequency table.
[1000] Example 48. A method according to Example 44, wherein, after updating the frequency table and the sorted IPM table, a forward search technique is applied until an intra-frame prediction mode (Mj) satisfying Fn+1(Mj)>Fn+1(Mi)>=Fn+1(Mj-1) is found, wherein Mi is the intra-frame prediction mode, and wherein the frequency associated with Mi is Fn+1(Mi).
[1001] Example 49. The method according to Example 44, wherein the sorting of the frequency table is terminated when an intra-frame prediction mode that satisfies the condition is found.
[1002] Example 50. A method according to Example 49, wherein, after updating the frequency table, a forward search technique is applied to find an intra-frame prediction mode (Mj) that satisfies the following conditions: Fn+1(Mj)>=Fn+1(Mi)>=Fn+1(Mj-1), wherein Mi is the intra-frame prediction mode, and wherein the frequency associated with Mi is Fn+1(Mi).
[1003] Example 51. A method according to Example 44, wherein a sequence table records the order of the multiple intra-frame prediction modes, and wherein the order of the intra-frame prediction mode (Mi) is obtained from the sequence table.
[1004] Example 52. A method according to Example 44, wherein at least some entries of the frequency table are used to sort the frequency table.
[1005] Example 53. A method according to Example 52, wherein when sorting and updating the frequency table, the first L elements of the frequency table are used in the comparison process.
[1006] Example 54. The method of Example 1, wherein one or more frequency tables store auxiliary information for video units.
[1007] Example 55. The method of Example 54, wherein the auxiliary information includes position information of a video unit to which an intra-frame prediction mode is applied.
[1008] Example 56. The method of Example 55, wherein the position information comprises starting coordinates and / or block size.
[1009] Example 57. The method of Example 56, wherein the starting coordinates are relative to the video unit or codec tree unit (CTU) or slice.
[1010] Example 58. The method of Example 55, wherein frequency and position information of the intra prediction mode is updated after encoding or decoding an intra block associated with the video block.
[1011] Example 59. A method according to Example 58, wherein the frequency Fn+1(Mi) of the intra-frame prediction mode (Mi) is updated to Fn+1(Mi)=Fn(Mi)+K, where K is an integer.
[1012] Example 60. The method of Example 58, wherein the position information associated with the intra-prediction mode is replaced by a most recently encoded or decoded video block of the video.
[1013] Example 61. A method according to Example 55, wherein the frequency table is sorted according to the position information before encoding or decoding a new video block of the video.
[1014] Example 62. A method according to Example 60, wherein the frequency table is sorted according to the Euclidean distance between the current position and the position information stored in the frequency table.
[1015] Example 63. A method according to Example 1, wherein the rule stipulates that the technology used to update one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction (HVMP) tables is based on decoding information of the video unit.
[1016] Example 64. A method according to Example 63, wherein the rule specifies updating one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction (HVMP) tables for video blocks within a region of the video unit.
[1017] Example 65. The method according to Example 64,
[1018] The area is smaller than a codec tree unit (CTU), a codec tree block (CTB), or a virtual pipeline data unit (VPDU), and
[1019] Among them, this area covers multiple codec units (CU).
[1020] Example 66. The method of Example 63, wherein the decoded information includes a location of the video unit.
[1021] Example 67. A method according to Example 66, wherein the position includes a relative position of a top left sample point of a video unit relative to a current picture or a codec tree unit (CTU), a virtual pipeline data unit (VPDU), or a predefined area.
[1022] Example 68. A method according to Example 67, wherein the coordinates of the upper left sample point of the video unit are (x, y), and wherein enabling a reset or initialization process for one or more frequency tables, one or more sorted IPM tables, and / or HMVP tables is based on whether the coordinates (x, y) satisfy a condition.
[1023] Example 69. A method according to Example 67, wherein the video unit includes a codec unit (CU), a prediction unit (PU), a transform unit (TU), a virtual pipeline data unit (VPDU), a codec tree unit (CTU), or a predefined region size, and wherein the coordinates (x, y) are determined relative to a current slice, tile, or picture.
[1024] Example 70. A method according to Example 67, wherein a reset or initialization process is enabled when (x%M) is equal to K0 and / or (y%N) is equal to K1, where % is a modulo operator.
[1025] Example 71. A method according to Example 67, wherein a reset or initialization process is enabled when (M–(x%M)) is greater than K0 and / or (N–(y%N)) is greater than K1, where % is a modulo operator.
[1026] Example 72. A method according to Example 67, wherein a reset or initialization process is enabled when (M–(x%M)) is equal to K0 and / or (N–(y%N)) is equal to K1, where % is a modulo operator.
[1027] Example 73. A method according to Example 67, wherein a reset or initialization process is enabled when (x%W) is equal to 0 and (y%H) is equal to 0, or when (W-(x%W)>=A0 and H-(y%H)>=A1), wherein A0 and A1 are positive integers and wherein % is a modulo operator.
[1028] Example 74. A method according to Example 73, wherein A0 or A1 is 4 or 8.
[1029] Example 75. A method according to any one of Examples 70-72, wherein M is the width of a codec tree unit (CTU) or a codec tree block, or wherein M is 1 / S*the width of a CTU or a CTB, wherein S is a positive integer.
[1030] Example 76. A method according to any one of Examples 70-72, wherein N is the height of a codec tree unit (CTU) or a codec tree block, or wherein N is 1 / S*the height of a CTU or a CTB, wherein S is a positive integer.
[1031] Example 77. A method according to any one of Examples 70-72, wherein K0 and K1 are equal to 4 or 8, or are equal to the width and height of the minimum decoding unit (CU), or are equal to the width and height of the minimum prediction unit (PU), or are equal to the width and height of the minimum transform unit (TU), or are equal to the width and height of the minimum decoding block (CB).
[1032] Example 78. A method according to Example 63, wherein the rule provides for updating one or more frequency tables and / or one or more sorted IPM tables after encoding or decoding the video unit.
[1033] Example 79. A method according to Example 78, wherein the video unit includes a codec unit (CU), a prediction unit (PU), a transform unit (TU), a virtual pipeline data unit (VPDU), a codec tree unit (CTU), or a predefined area.
[1034] Example 80. A method according to Example 63, wherein the decoding information includes the number of codec units (CUs) that have been encoded and decoded using intra-frame prediction mode, the number of prediction units (PUs), and the number of transform units (TUs).
[1035] Example 81. A method according to Example 63, wherein the rule stipulates that for a video unit including multiple prediction units (PUs) or transform units (TUs) within a codec unit (CU), one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction (HVMP) tables are updated after a prediction unit (PU) or transform unit (TU) within the CU.
[1036] Example 82. A method according to Example 63, wherein the rule stipulates that for a video unit including multiple prediction units (PUs) or transform units (TUs) within a codec unit (CU), one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction (HVMP) tables are updated after each prediction unit (PU) or each transform unit (TU) within the CU.
[1037] Example 83. A method according to any of Examples 1-82, wherein the conversion includes encoding the video into a codec representation.
[1038] Example 84. A method according to any of Examples 1-82, wherein the conversion includes decoding the codec representation to generate pixel values of the video.
[1039] Example 85. A video decoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 84.
[1040] Example 86. A video encoding device comprising: a processor configured to implement the method according to one or more of Examples 1 to 84.
[1041] Example 87. A computer program product having computer code stored thereon, which, when executed by a processor, causes the processor to implement a method according to any one of Examples 1 to 84.
[1042] From the foregoing, it will be appreciated that, for purposes of illustration, specific embodiments of the presently disclosed technology have been described herein, but that various modifications may be made without departing from the scope of the invention. Therefore, the presently disclosed technology is not to be limited except as set forth in the appended claims.
[1043] The solutions, examples, embodiments, modules and functional operations disclosed herein and described elsewhere can be implemented in digital electronic circuits, or computer software, firmware or hardware, including the structures disclosed herein and their structural equivalents, or a combination of one or more thereof. The disclosed embodiments and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, for execution by a data processing device or for controlling the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material composition that affects a machine-readable propagation signal, or a combination of one or more thereof. The term "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or a multiprocessor or a computer group. In addition to hardware, the device may also include code that creates an execution environment for a computer program, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagation signal is an artificially generated signal, such as a machine-generated electrical signal, an optical signal, or an electromagnetic signal, which is generated to encode information for transmission to an appropriate receiving device.
[1044] The solutions, examples, embodiments, modules and functional operations disclosed herein and described elsewhere can be implemented in digital electronic circuits, or computer software, firmware or hardware, including the structures disclosed herein and their structural equivalents, or a combination of one or more thereof. The disclosed embodiments and other embodiments can be implemented as one or more computer program products, i.e., one or more modules of computer program instructions encoded on a computer-readable medium, for execution by a data processing device or for controlling the operation of the data processing device. The computer-readable medium can be a machine-readable storage device, a machine-readable storage substrate, a storage device, a material composition that affects a machine-readable propagation signal, or a combination of one or more thereof. The term "data processing device" includes all devices, equipment and machines for processing data, including, for example, a programmable processor, a computer or a multiprocessor or a computer group. In addition to hardware, the device may also include code that creates an execution environment for a computer program, for example, code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more thereof. A propagation signal is an artificially generated signal, such as a machine-generated electrical signal, an optical signal, or an electromagnetic signal, which is generated to encode information for transmission to an appropriate receiving device.
[1045] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language (including compiled or interpreted languages) and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program, or in multiple coordinated files (e.g., files that store one or more modules, subroutines, or portions of code). A computer program may be deployed for execution on one or more computers that are located at one site or distributed across multiple sites and interconnected by a communications network.
[1046] The processes and logic flows described herein may be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows may also be performed by, and the apparatus may be implemented as, special purpose logic circuits, for example, FPGAs (field programmable gate arrays) or ASICs (application specific integrated circuits).
[1047] For example, processors suitable for executing computer programs include general and special purpose microprocessors, and any one or more of any type of digital computer. Typically, the processor will receive instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor that executes instructions and one or more storage devices that store instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, such as magnetic disks, magneto-optical disks, or optical disks, or be operatively coupled to one or more mass storage devices to receive data from them or transfer data to one or more mass storage devices, or both. However, a computer does not necessarily have such a device. Computer-readable media suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CDROM and DVD-ROM optical disks. The processor and memory may be supplemented by, or incorporated into, dedicated logic circuits.
[1048] Although this patent document contains many details, they should not be interpreted as limitations on any implementation or claim scope, but rather as descriptions of features of specific embodiments. Some features described in this patent document in the context of separate embodiments can also be implemented in combination in a single embodiment. Conversely, various functions described in the context of a single embodiment can also be implemented separately in multiple embodiments, or in any suitable subcombination. In addition, although the above-mentioned features may be described as working in some combinations, or even initially claimed to be so, in some cases, one or more features in the claim combination can be removed from the combination, and the combination of claims can be directed to subcombinations or variations of subcombinations.
[1049] Likewise, although operations are described in a particular order in the drawings, this should not be understood as requiring that such operations be performed in the particular order or order shown, or that all illustrated operations be performed, in order to achieve the desired results. In addition, the separation of various system components in the embodiments of this patent document should not be understood as requiring such separation in all embodiments.
[1050] Only a few implementations and examples are described, and other implementations, enhancements, and variations can be made based on what is described and illustrated in this patent document.
Claims
1. A video processing method, include: performing conversion between a video comprising a video unit and a bitstream of said video, After encoding or decoding the video unit using the intra-frame prediction mode, one or more frequency tables and / or one or more sorted intra-frame prediction mode IPM tables are selectively updated according to the rule, wherein the one or more frequency tables include information about the frequency of the intra prediction mode used in processing the video unit in the conversion, wherein the frequency indicates the occurrence of the intra prediction mode used for the conversion, wherein the one or more sorted IPM tables indicate the intra prediction mode used in the processing, and The rule stipulates that when the intra-frame prediction mode is not an intra-frame prediction mode in the intra-frame prediction mode set, updating of the one or more frequency tables and the one or more sorted IPM tables is not allowed.
2. The method according to claim 1, in, The rule provides that the one or more frequency tables and the one or more sorted IPM tables are updated only when the intra prediction mode is an intra prediction mode in the set of intra prediction modes.
3. The method according to claim 1, in, The rule specifies that when the intra prediction mode is a matrix-based intra prediction MIP mode, the one or more frequency tables and the one or more sorted IPM tables are updated.
4. The method according to claim 1, in, The rule specifies that when the intra prediction mode is a matrix-based intra prediction MIP mode, updating of the one or more frequency tables and the one or more sorted IPM tables is not allowed.
5. The method according to claim 3, in, When the MIP mode is converted to the intra prediction mode, the one or more frequency tables and the one or more sorted IPM tables are updated.
6. The method according to claim 1, in, The rule stipulates that after decoding the video unit encoded in the intra-frame sub-partitioned ISP mode, the one or more frequency tables and the one or more sorted IPM tables are not updated.
7. The method according to claim 1, in, The rules provide that after decoding the video unit encoded in the intra-frame sub-partitioned ISP mode, the one or more frequency tables and the one or more sorted IPM tables are updated.
8. The method according to claim 7, in, After the video unit is completely decoded, the one or more frequency tables and the one or more sorted IPM tables are updated once.
9. The method according to claim 7, in, After decoding a sub-partition of the video unit, the one or more frequency tables and the one or more sorted IPM tables are updated once.
10. The method according to claim 1, in, The rule stipulates that after encoding or decoding the video unit using the block differential pulse code modulation BDPCM mode or the residual differential pulse code modulation RDPCM mode, the one or more frequency tables and the one or more sorted IPM tables are updated.
11. The method according to claim 1, wherein, The rule stipulates that after encoding or decoding the video unit using the block differential pulse code modulation BDPCM mode or the residual differential pulse code modulation RDPCM mode, the one or more frequency tables and the one or more sorted IPM tables are not updated.
12. The method according to claim 1, wherein, The rule stipulates that after encoding or decoding the video unit using a prediction mode other than the intra prediction mode, the one or more frequency tables and the one or more sorted IPM tables are updated.
13. The method according to claim 12, wherein, The prediction mode other than the intra prediction mode includes an inter mode, an intra block copy IBC mode, or a palette mode.
14. The method according to claim 12, wherein, The rule stipulates that in response to generating an intra prediction signal during encoding or decoding of the video unit, the one or more frequency tables and the one or more sorted IPM tables are updated.
15. The method according to claim 14, wherein, The video unit is encoded or decoded in a combined intra-inter prediction CIIP mode.
16. The method according to claim 12, wherein, The rule stipulates that in response to not generating an intra prediction signal during encoding or decoding of the video unit, updating the one or more frequency tables and the one or more sorted IPM tables is not allowed.
17. The method according to claim 16, wherein, The rule further stipulates that the one or more frequency tables and the one or more sorted IPM tables are updated using a default set of one or more intra prediction modes.
18. The method according to claim 1, wherein, The rule further stipulates that the one or more frequency tables are updated based on the intra prediction mode selected for encoding or decoding the video unit.
19. The method according to claim 18, wherein, The frequency of the intra prediction mode used to encode or decode the previous video unit of the video is F n (M i ), Among them, the intra-frame prediction mode is M i , wherein, the previous video unit is temporally prior to the video unit, The rule specifies that after encoding or decoding the video unit, the frequency of the intra-frame prediction mode is updated to F n+1 (M i )=Fn(M i )+K, and wherein, K and n are integers.
20. The method according to claim 19, wherein, K is set to 1.
21. The method according to claim 19, wherein, K is set to a value greater than 1.
22. The method according to claim 19, wherein, K is set to a value equal to (1 << A), where A is an integer value, and where << is a left shift operator.
23. The method according to claim 19, wherein, K is set to an integer value greater than the number of entries in any of the one or more frequency tables.
24. The method according to claim 19, wherein, K is based on a set of initial values.
25. The method according to claim 24, wherein, Set K to (P*maximum of the initial value set), where P is a positive integer value.
26. The method according to claim 19, in, The value of K is based on the intra-prediction mode and / or block type of the video unit.
27. The method according to claim 26, in, K is set to an integer value greater than the number of allowed intra prediction modes.
28. The method according to claim 26, in, K is equal to (P*number of allowed intra prediction modes), where P is a positive integer value.
29. The method according to claim 19, in, The value of K is based on the number of times the table is updated.
30. The method according to claim 19, in, The value of K is based on the variable n.
31. The method according to claim 19, in, Based on the decoder information of the video unit, the value of K is determinable.
32. The method according to claim 31, in, The decoder information indicates the intra prediction mode.
33. The method according to claim 18, in, The frequency of the intra prediction mode for the previous video unit of the video is F n (M i ), Among them, the intra-frame prediction mode is M i , wherein the previous video unit precedes the video unit in time, The rule stipulates that when using the intra prediction mode (M i ) after encoding or decoding the video unit, other frequencies (F n+1 (M j )) remain unchanged, Among them, F n+1 (M j )=Fn(M j ), wherein the other intra-frame prediction mode is different from the intra-frame prediction mode, and Here, n is an integer.
34. The method according to claim 33, in, The rule provides that frequencies associated with some of the other intra-frame prediction modes other than the intra-frame prediction mode are changed, and wherein frequencies of the remaining intra-frame prediction modes other than the some of the other intra-frame prediction modes remain unchanged.
35. The method according to claim 18, in, The rules provide for updating the one or more frequency tables based on an input category index and an associated frequency of the input category index.
36. The method according to claim 35, in, The input category index comprises a category index having a mapping of a decoded intra-prediction mode for a current block of the video unit.
37. The method according to claim 35, in, A length of a frequency table from the one or more frequency tables is less than a number of allowed intra prediction modes.
38. The method according to claim 37, in, The length of the frequency table is set to the number of allowed most probable modes MPM.
39. The method according to claim 37, in, When the frequency table is to be updated with an input pattern, in response to the frequency of the input pattern being previously included in the frequency table, the frequency of the input pattern is updated accordingly.
40. The method according to claim 37, in, When the frequency table is to be updated with an input mode, in response to the frequency of the input mode not being previously included in the frequency table, another intra prediction mode having the lowest frequency is replaced with the frequency of the input mode.
41. The method according to claim 40, in, An ordered IPM table of the one or more ordered IPM tables replaces the another intra prediction mode with the input mode.
42. The method according to claim 1, in, the rule providing for updating a frequency table from the one or more frequency tables, wherein the sorted IPM tables in the one or more sorted IPM tables are sorted according to the frequencies associated with the multiple intra-frame prediction modes in the updated frequency table, and The multiple intra-frame prediction modes include the intra-frame prediction mode.
43. The method according to claim 42, in, After updating the frequency table, the frequency table is sorted in descending order according to values of the frequencies of the plurality of intra prediction modes.
44. The method according to claim 42, in, The frequency table is sorted based on a current entry associated with the intra prediction mode in the frequency table added to a last entry in the frequency table.
45. The method according to claim 42, in, The frequency table is sorted based on a current entry associated with the intra prediction mode in the frequency table added to a first entry in the frequency table.
46. The method according to claim 42, in, After updating the frequency table and the sorted IPM table, a forward search technique is applied until an intra prediction mode (M j ) satisfies F n+1 (M j )>F n+1 (M i )>=F n+1 (M j-1 ), where M i is the intra prediction mode, and wherein, with M i The associated frequency is F n+1 (M i ).
47. The method according to claim 42, in, When an intra-frame prediction mode that meets the condition is found, the sorting of the frequency table is terminated.
48. The method according to claim 47, in, After updating the frequency table, a forward search technique is applied to find the one intra prediction mode (M) that satisfies the condition. j ): F n+1 (M j )>=F n+1 (M i )>=F n+1 (M j-1 ), where M i is the intra prediction mode, and wherein, with M i The associated frequency is F n+1 (M i ).
49. The method according to claim 42, in, The sequence table records the sequence of the plurality of intra prediction modes, and wherein the intra prediction mode (M) is obtained from the sequence table. i ) in the order of .
50. The method according to claim 42, in, At least some of the entries of the frequency table are used to sort the frequency table.
51. The method according to claim 50, in, When the frequency table is sorted and updated, the first L elements of the frequency table are used in the comparison process.
52. The method according to claim 1, in, The one or more frequency tables store auxiliary information for the video unit.
53. The method according to claim 52, in, The auxiliary information includes location information of the video unit in which the intra prediction mode is applied.
54. The method according to claim 53, in, The position information includes a starting coordinate and / or a block size.
55. The method according to claim 54, in, The starting coordinates are relative to the video unit or codec tree unit CTU or slice.
56. The method according to claim 53, in, After encoding or decoding an intra block associated with the video unit, frequency and position information of the intra prediction mode is updated.
57. The method according to claim 56, in, The intra prediction mode (M i ) frequency F n+1 (M i ) is updated to F n+1 (M i )=F n (M i )+K, where K is an integer.
58. The method according to claim 56, in, The position information associated with the intra prediction mode is replaced by a most recently encoded or decoded video block of the video.
59. The method according to claim 53, in, Before encoding or decoding a new video block of the video, the frequency table is sorted according to the position information.
60. The method according to claim 58, in, The frequency table is sorted according to the Euclidean distance between a current position and the position information stored in the frequency table.
61. The method according to claim 1, in, The rules specify that the technique by which to update the one or more frequency tables, the one or more ordered IPM tables, and / or the one or more history-based motion vector prediction (HMVP) tables is based on decoded information of the video unit.
62. The method according to claim 61, in, The rules specify updating the one or more frequency tables, the one or more sorted IPM tables, and / or the one or more history-based motion vector prediction (HMVP) tables for video blocks within a region of the video unit.
63. The method according to claim 62, in, The area is smaller than a codec tree unit CTU, a codec tree block CTB, or a virtual pipeline data unit VPDU, and The area covers multiple coding and decoding units CU.
64. The method according to claim 61, in, The decoded information includes a location of the video unit.
65. The method according to claim 64, in, The position includes a relative position of an upper left sample point of the video unit relative to a current picture or a codec tree unit CTU, a virtual pipeline data unit VPDU, or a predefined area.
66. The method according to claim 65, in, The coordinates of the upper left sample point of the video unit are (x, y), and wherein, based on whether the coordinates (x, y) meet a condition, a reset or initialization process is enabled for the one or more frequency tables, the one or more sorted IPM tables, and / or the HMVP table.
67. The method according to claim 66, in, The video unit includes a codec unit CU, a prediction unit PU, a transform unit TU, a virtual pipeline data unit VPDU, a codec tree unit CTU, or a predefined region size, and wherein the coordinates (x, y) are determined relative to a current slice, a piece, a brick, or a picture.
68. The method according to claim 66, in, When (x%M) is equal to K0 and / or (y%N) is equal to K1, the reset or initialization process is enabled, Wherein, M is the width of the codec tree unit CTU or the codec tree block CTB, or 1 / S*CTU or CTB, where S is a positive integer, Where N is the height of the codec tree unit CTU or codec tree block CTB, or 1 / S*CTU or CTB height, Wherein, K0 and K1 are equal to 4 or 8, or are respectively equal to the width and height of the minimum decoding unit CU, or are respectively equal to the width and height of the minimum prediction unit PU, or are respectively equal to the width and height of the minimum transform unit TU, or are respectively equal to the width and height of the minimum decoding block CB, Here, % is the modulo operator.
69. The method according to claim 66, in, When (M–(x%M)) is greater than K0 and / or (N–(y%N)) is greater than K1, the reset or initialization process is enabled, Wherein, M is the width of the codec tree unit CTU or the codec tree block CTB, or 1 / S*CTU or CTB, where S is a positive integer, Where N is the height of the codec tree unit CTU or codec tree block CTB, or 1 / S*CTU or CTB height, Wherein, K0 and K1 are equal to 4 or 8, or are respectively equal to the width and height of the minimum decoding unit CU, or are respectively equal to the width and height of the minimum prediction unit PU, or are respectively equal to the width and height of the minimum transform unit TU, or are respectively equal to the width and height of the minimum decoding block CB, Here, % is the modulo operator.
70. The method according to claim 66, in, When (M–(x%M)) is equal to K0 and / or (N–(y%N)) is equal to K1, the reset or initialization process is enabled, Wherein, M is the width of the codec tree unit CTU or the codec tree block CTB, or 1 / S*CTU or CTB, where S is a positive integer, Where N is the height of the codec tree unit CTU or codec tree block CTB, or 1 / S*CTU or CTB height, Wherein, K0 and K1 are equal to 4 or 8, or are respectively equal to the width and height of the minimum decoding unit CU, or are respectively equal to the width and height of the minimum prediction unit PU, or are respectively equal to the width and height of the minimum transform unit TU, or are respectively equal to the width and height of the minimum decoding block CB, Here, % is the modulo operator.
71. The method according to claim 66, in, When (x%W) is equal to 0 and (y%H) is equal to 0, or when W-(x%W)>=A0 and H-(y%H)>=A1, the reset or initialization process is enabled, Where W is the width of the codec tree unit CTU, H is the height of CTU, Among them, A0 and A1 are positive integers, Here, % is the modulo operator.
72. The method according to claim 71, in, A0 or A1 is 4 or 8.
73. The method according to claim 61, in, The rules provide for updating the one or more frequency tables and / or the one or more sorted IPM tables after encoding or decoding the video unit.
74. The method according to claim 73, in, The video unit includes a codec unit CU, a prediction unit PU, a transform unit TU, a virtual pipeline data unit VPDU, a codec tree unit CTU, or a predefined area.
75. The method according to claim 61, in, The decoding information includes the number of coding units CU, the number of prediction units PU, and the number of transformation units TU that have been coded and decoded using the intra prediction mode.
76. The method according to claim 61, in, The rule stipulates that for a video unit including multiple prediction units PU or transformation units TU in a codec unit CU, after a certain prediction unit PU or transformation unit TU in the CU, the one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction HMVP tables are updated.
77. The method according to claim 61, in, The rule stipulates that for a video unit including multiple prediction units PU or transform units TU within a codec unit CU, after each prediction unit PU or each transform unit TU within the CU, the one or more frequency tables, one or more sorted IPM tables, and / or one or more history-based motion vector prediction HMVP tables are updated.
78. The method according to any one of claims 1 to 77, in, The converting includes encoding the video into the bitstream.
79. The method according to any one of claims 1 to 77, in, The converting includes decoding the bitstream to generate pixel values of the video.
80. A video decoding device, include: A processor configured to implement the method according to any one of claims 1-77, 79.
81. A video encoding device, include: A processor configured to implement the method according to any one of claims 1-78.
82. A computer program product having computer code stored thereon which, when executed by a processor, causes the processor to implement the method according to any one of claims 1-79.
Citation Information
Patent Citations
Intra mode coding using mode use statistics to generate MPM list
WO2019137732A1