Allow matrix-based intra prediction blocks to have multiple transform blocks
By implementing MIP prediction of encoded blocks with width or height exceeding the maximum transform size in the video decoder, the problem that these blocks cannot perform MIP prediction is solved, and the encoding efficiency is improved.
Patent Information
- Application Number
- CN202080065601.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-19
- Filing Date
- 2020-09-17
- Publication Date
- 2025-05-06
- Estimated Expiration
- 2040-09-17
AI Technical Summary
In video encoding, when the width or height of the encoded block exceeds the maximum transform size, the current block cannot be encoded as a block predicted by matrix-based intra prediction (MIP), affecting the encoding efficiency.
By implementing a method in the decoder, the width and height of the current block are determined according to the syntax elements in the bitstream and whether it is an intra prediction block. If so, it is determined whether it is a block predicted by MIP and determines whether it has one transform block or multiple transform blocks. Based on this information, the block is decoded using the MIP weight matrix.
This method allows MIP prediction when the width or height of the encoding block exceeds the maximum transform size, thereby improving encoding efficiency.
Smart Images

Figure CN114424544B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to methods and apparatus for video encoding and decoding. Background Art
[0002] HEVC and VVC
[0003] High Efficiency Video Coding (HEVC) is a block-based video codec standardized by ITU-T and MPEG, using both temporal prediction and spatial prediction. Spatial prediction is achieved using intra (I) prediction from within the current picture. Temporal prediction is achieved using unidirectional (P) or bidirectional (B) inter prediction at the block level based on previously decoded reference pictures. In the encoder, the difference between the original pixel data and the predicted pixel data (called the residual) is transformed to the frequency domain, quantized, and then entropy encoded before being sent together with the necessary prediction parameters (such as prediction mode and motion vector) that are also entropy encoded. The decoder performs entropy decoding, inverse quantization, and inverse transformation to obtain the residual, which is then added to the intra-frame prediction or inter-frame prediction to reconstruct the picture.
[0004] MPEG and ITU-T are developing a successor to HEVC within the Joint Video Exploration Team (JVET). The name of the video codec under development is Versatile Video Coding (VVC). At the time of writing, the current version of the VVC draft specification is "Versatile Video Coding (Draft 6)", JVET-O2001-vE. When VVC is mentioned in this document, it refers to Draft 6 of the VVC specification.
[0005] Quantity
[0006] A video sequence consists of a series of pictures, where each picture consists of one or more components. Each component can be described as a two-dimensional rectangular array of sample values. Pictures in a video sequence typically include three components; a luminance component Y (where the sample values are luminance values) and two chrominance components Cb and Cr (where the sample values are chrominance values). Typically, the size of the chrominance component is 1 / 2 of the luminance component in each dimension. For example, the size of the luminance component of a high-definition (HD) picture can be 1920×1080, while the chrominance component can have a size of 960×540. Components are sometimes referred to as color components. In this document, we describe methods useful for encoding and decoding of video sequences. However, it should be understood that the described techniques can also be used for encoding and decoding of static images.
[0007] Blocks and cells
[0008] A block is a two-dimensional array of samples. In video coding, each component is divided into blocks, and the coded video bitstream is a series of blocks. Typically, in video coding, an image is divided into units covering a specific area of the image. Each unit consists of all blocks of all components that make up the specific area, and each block belongs to one unit. Macroblocks in H.264 and coding units (CUs) in high-efficiency video coding (HEVC) are examples of units. In video coding, a picture is typically divided into units covering a specific area. Each unit consists of all blocks that make up the specific area, and each block belongs entirely to only one unit. Coding units (CUs) in HEVC and VVC are examples of such units. Coding tree units (CTUs) are logical units that can be divided into several CUs.
[0009] In HEVC, CUs are square, i.e., they are of size N×N luma samples, where N can be 64, 32, 16, or 8. In the current H.266 Test Model Versatile Video Coding (VVC), CUs can also be rectangular, i.e., of size N×M luma samples, where N is different from M.
[0010] Intra prediction
[0011] There are two types of sample prediction: intra prediction and inter prediction. Intra prediction predicts a block based on spatial extrapolation of samples from previously decoded blocks of the same (current) picture. It can also be used in image compression, i.e., compression of static images where only one picture needs to be compressed / decompressed. Inter prediction predicts a block by using samples from previously decoded pictures.
[0012] Intra-directional prediction
[0013] Intra-frame directional prediction is utilized in HEVC and VVC. In HEVC, there are 33 angular modes, for a total of 35 modes. In VVC, there are 65 angular modes, for a total of 67 modes. The remaining two modes, "planar" and "DC", are non-angular modes. Mode index 0 is used for planar mode and mode index 1 is used for DC mode. Angular prediction mode indices range from 2 to 34 for HEVC and from 2 to 66 for VVC.
[0014] Intra directional prediction is used for all components in a video sequence, ie, the luma component Y, and the chroma components Cb and Cr.
[0015] Matrix-based Intra Prediction (MIP)
[0016] Matrix-based intra prediction is a coding tool included in the current version of the VVC draft. In order to predict the samples of the current block with a width of W and a height of H, the matrix-based intra prediction (MIP) takes a column of H reconstructed neighboring boundary samples on the left side of the current block and a row of W reconstructed neighboring samples above the current block as input. The predicted samples of the current block are derived based on the following three steps:
[0017] - For both adjacent row and column boundaries, each boundary can be averaged using an averaging method that depends on the current block size (bdry top and bdry left ) samples to extract two or four samples. The extracted averaged boundary samples are named reduced boundary bdry red .
[0018] - A matrix-vector multiplication may be performed using the extracted averaged boundary samples as input. The output is a reduced prediction signal consisting of a set of predicted sample values, where each predicted sample corresponds to a position in the current block, and where the set of positions is a subset of all positions of the current block. The output reduced prediction signal is named pred red .
[0019] - The prediction sample values at the remaining positions in the current block that are not in the set of positions can be generated from the reduced prediction signal by linear interpolation, which is a single-step linear interpolation in each direction (vertical and horizontal). The prediction signal consists of all the prediction sample values of the block. The order of interpolation depends on the relative width and height of the block. For example:
[0020] о If H>W, then depending on the current block size, use the named bdry red left or bdry redll left The horizontal linear interpolation is applied first by using the original upper boundary bdrytop. The vertical linear interpolation is applied after the horizontal linear interpolation. Depending on the block size, horizontal and / or vertical linear interpolation may not be performed for the block, such as Figures 1 to 6 shown.
[0021] o If H ≤ W, then depending on the current block size, by using a named bdry red top or bdry redII top The reduced upper boundary samples are first applied with vertical linear interpolation. By using the original left boundary bdry left , horizontal linear interpolation is applied after vertical linear interpolation. Depending on the block size, horizontal and / or vertical linear interpolation may not be performed on the block, e.g. Figures 1 to 6 shown.
[0022] Given a 4×4 block, bdry red Contains 4 samples derived by averaging every two samples at each boundary. pred red The size of is 4×4, the same as the current block. Therefore, horizontal and vertical linear interpolation can be skipped. Figure 1 An example of a MIP process for a 4x4 block is shown.
[0023] Given an 8×4 block, bdry red Contains 8 samples derived from the original left boundary and the average of every two samples of the upper boundary. red The size of is 4 × 4. The prediction signals at the remaining positions are obtained by using the original left boundary bdry left Generated by horizontal linear interpolation. Figure 2 An example of a MIP process for an 8x4 block is shown.
[0024] Given a W×4 block, where W ≥ 16, bdry red Contains 8 samples derived from the original left boundary and averaging every W / 4 samples of the upper boundary. pred red The size of is 8 × 4. The prediction signals at the remaining positions are obtained by using the original left boundary bdryl eft Perform horizontal linear interpolation to generate.
[0025] Given a 4×8 block, bdry red Contains 8 samples derived from averaging every two samples of the left boundary and the original upper boundary. pred red The size of is 4 × 4. The prediction signals at the remaining positions are obtained by using the original upper boundary bdry top Perform vertical linear interpolation to generate.
[0026] Given a 4×H block, where H ≥ 16, bdry red Contains 8 samples derived from averaging every H / 4 samples of the left boundary and the original upper boundary. pred red The size of is 4 × 8. The prediction signals at the remaining positions are obtained by using the original upper boundary bdry top Perform vertical linear interpolation to generate. Figure 3 An example of a MIP process for a 4x16 block is shown.
[0027] Given an 8×8 block, bdry red Contains 8 samples derived from averaging every two samples at each boundary. predred The size of is 4 × 4. The prediction signals at the remaining positions are first reduced by using the reduced upper boundary bdry red top Perform vertical linear interpolation, and secondly by using the original left border bdry left Performs horizontal linear interpolation generation. Figure 4 An example of a MIP process for an 8x8 block is shown.
[0028] Given a W×8 block, where W ≥ 16, bdry red Contains 8 samples derived from averaging every two samples at the left boundary and every W / 4 samples at the upper boundary. red The size of is 8 × 8. The prediction signals at the remaining positions are obtained by using the original left boundary bdry left Perform horizontal linear interpolation to generate. Figure 5 An example of a MIP process for a 16x8 block is shown.
[0029] Given 8×H blocks, where H ≥ 16, bdry red Contains 8 samples derived from averaging every H / 4 samples at the left border and averaging every two samples at the upper border. pred red The size of is 8 × 8. The prediction signals at the remaining positions are obtained by using the original upper boundary bdry top Perform vertical linear interpolation to generate.
[0030] Given a W×H block, where W ≥ 16 and H ≥ 16, bdry red Contains 8 samples, which are exported as follows:
[0031] -For H≤W, first, bdry redII top contains 8 samples, which are derived by averaging every W / 8 samples of the upper boundary. red Contains 8 samples, which are obtained by averaging every H / 4 samples of the left border and bdry redll top Every two samples are averaged and derived.
[0032] -For H>W, first, bdry redII left Contains 8 samples, which are derived by averaging every H / 8 samples on the left border. red Contains 8 samples, which are obtained from bdry redII leftIt is derived by averaging every two samples of and every W / 4 samples of the upper boundary.
[0033] pred red The size of is 8 × 8. The prediction signals at the remaining positions are generated using linear interpolation as follows:
[0034] -For H≤W, first use the reduced upper boundary sample bdry redII top Perform vertical linear interpolation, and then use the original left border bdry left Perform horizontal linear interpolation and reduce the upper boundary sample bdry redII top It is derived by averaging every W / 8 samples of the upper boundary.
[0035] - For H>W, first use the reduced left boundary sample bdry redll left Perform horizontal linear interpolation, and then use the original upper boundary bdry top Perform vertical linear interpolation and reduce the left boundary sample bdry redll left It is derived by averaging every H / 8 samples at the upper boundary.
[0036] Figure 6 An example MIP process for a 16×16 block is shown:
[0037] In the current version of VVC, MIP is only applied to the luma component.
[0038] In the current version of VVC, given a W×H block, MIP can be applied to the current block when the W / H or H / W ratio is equal to or less than 4. In other words, MIP is disabled for blocks of the following sizes: 4×32, 32×4, 4×64, 64×4, 8×64, or 64×8.
[0039] MIP weight matrix kernel and MipSizeId
[0040] The MIP weight matrix kernel is a matrix used for MIP matrix multiplication. The MIP weight matrix kernel can be stored in a lookup table.
[0041] In the current version of VVC, there are three types of MIP weight matrix cores. The type of MIP weight matrix core is specified by MipSizeId, and the range of MipSizeId is 0 to 2. In other words, when MipSizeId is determined, the type of MIP weight matrix core is selected by the determined MipSizeId.
[0042] MipSizeld is a variable that can be used to determine the number of input samples for the downscaled bounds, the number of output samples for the downscaled prediction, and the MIP weight matrix to be used for the current block.
[0043] In the current version of VVC, MipSizeId is determined by the size of the current block. Given a W×H block, MipSizeId is determined as follows:
[0044] - If both W and H are equal to 4, set MipSizeId equal to 0
[0045] - Otherwise, if both W and H are less than or equal to 8, set MipSizeId to 1
[0046] - Otherwise, set MipSizeId to 2
[0047] MIP prediction mode
[0048] The MIP prediction mode specifies the index of the MIP weight matrix in the matrix lookup table. In the current version of VVC, the number of MIP prediction modes is specified by MipSizeId as:
[0049] - If MipSizeId is equal to 0, the MIP mode number is 35
[0050] - If MipSizeId is equal to 1, the MIP mode number is 19
[0051] - If MipSizeId is equal to 2, the MIP mode number is 11
[0052] In the current version of VVC, given a W×H block, the number of MIP modes is equal to 0.
[0053] So, in other words, MIP is not allowed for the current block if:
[0054] -W / H greater than 4
[0055] -H / W greater than 4
[0056] The MIP weight matrix for MIP prediction is derived from the matrix lookup table using MipSizeId and MIP Mode Id. For example, when MipSizeId is equal to 0 and MIP Mode Id is equal to 0, the MIP weight matrix of size M x N (where M is equal to 16 and N is equal to 4) is derived as:
[0057] {
[0058] {37,59,77,28},{32,92,85,25},{31,69,100,24},
[0059] {33,36,106,29},
[0060] {24,49,104,48},{24,21,94,59},{29,0,80,72},
[0061] {35,2,66,84},
[0062] {32,13,35,99},{39,11,34,103},{45,21,34,106},
[0063] {51,24,40,105},
[0064] {50,28,43,101},{56,32,49,101},{61,31,53,102},
[0065] {61,32,54,100}
[0066] },
[0067] The MIP weight matrix is a two-dimensional matrix. The size of the MIP matrix can be expressed as M×N, where N is equal to bdry red (MIP input) The number of input samples, M is equal to or greater than pred red The number of output samples of (MIP output). The matrix multiplication of the MIP weight matrix with the input vector produces a vector of M samples, which are spatially located in a square matrix of size predC, where M = predC × predC.
[0068] The MIP output is a two-dimensional matrix of size predW × predH. The size of the MIP output can be expressed as predW × predH.
[0069] The size of the MIP input and MIP output depends on MipSizeId. Table 1 shows the size of the MIP input, MIP output and the size of the MIP weight matrix for each MipSizeId:
[0070] MipSizeId MIP INPUT size pred pred predC N 0 4 4 4 4 4 1 8 4 4 4 8 2 8 min(TbW,8) min(TbH,8) 8 8
[0071] Table 1: MIP input size, MIP output size, and MIP weight matrix size for each MipSizeId
[0072] TbW specifies the width of the transform block, and TbH specifies the height of the transform block. It can be found that the size of the MIP output predW×predH depends on the size of the transform block TbW×TbH.
[0073] In the current version of VVC, given a W×H block, where W specifies the current block width (also called cbWidth) and H specifies the current block height (also called cbHeight). The maximum luma transform block size is MaxTbSizeY. When cbWidth>MaxTbSizeY or cbHeight>MaxTbSizeY, MIP is disabled.
[0074] In other words, in the current version of VVC, the size of a MIP-coded block is equal to or smaller than MaxTbSizeY×MaxTbSizeY.
[0075] Transform block, coding block and prediction block
[0076] A coding block is the root node of two trees, the prediction tree and the transform tree. The prediction tree specifies the location and size of the prediction block. The transform tree specifies the location and size of the transform block. For the prediction tree, the segmentation information for luma and chroma is the same, while for the transform tree, the segmentation information for luma and chroma may or may not be the same.
[0077] In other words:
[0078] - The size of the transform block is equal to or smaller than the coding block which is the root node of the transform block.
[0079] - The size of the prediction block is equal to or smaller than the coding block which is the root node of the prediction block.
[0080] An example of a transform block being smaller than a coding block is when MaxTbSizeY is smaller than the coding unit width or height. The coding block is implicitly split into N transform blocks, with both sides of the transform block being equal to or smaller than MaxTbSizeY.
[0081] Figure 7 A non-exhaustive set of examples is shown, where at least one side of the CU or block before the split is equal to 64, and MaxTbSizeY is set equal to 32. These sizes are just example numbers. For a CU or block with both sides larger than MaxTbSizeY, the CU or block is split along two dimensions so that no side of the output transform block is larger than MaxTbSizeY.
[0082] Another example where the size of the transform block is smaller than the coding block is Intra Sub-Partitioning (ISP). When ISP is applied to a coding block, the coding block is split into 2 or 4 transform blocks. Figure 8 An example of dividing one coding block into 2 to 4 sub-division blocks is shown. Summary of the invention
[0083] One problem that may arise in the current version of VVC is that, given a W×H MIP-predicted coding block, where W specifies the width of the coding block, H specifies the height of the coding block, W is equal to or less than MaxTbSizeY, and H is equal to or less than MaxTbSizeY, where MaxTbSizeY specifies the maximum transform size. In other words, when W is greater than MaxTbSizeY or H is greater than MaxTbSizeY, the current block cannot be encoded as a MIP-predicted block.
[0084] This limitation of MIP prediction affects coding efficiency when a video encoder or decoder has a configuration in which the maximum coding block size is larger than the maximum transform size.
[0085] According to some embodiments of the inventive concept, a method for operating a decoder is provided. The method includes: determining the width and height of a current block of a bitstream based on syntax elements in a bitstream. The method also includes: determining whether the current block is an intra-prediction block. The method also includes: in response to the current block being an intra-prediction block, determining whether the intra-prediction block is a block predicted by matrix-based intra-prediction, that is, a MIP-predicted block. The method also includes: in response to the current block being a MIP-predicted block, determining whether the MIP-predicted block has one transform block or multiple transform blocks. The method also includes: determining a MIP weight matrix to be used for decoding the current block based on the MIP prediction mode of the current block. The method also includes: in response to determining that the MIP-predicted block has one transform block: deriving the MIP-predicted block based on the MIP weight matrix and a previously decoded element in the bitstream. The method also includes: in response to determining that the MIP predicted block has multiple transform blocks: deriving a first MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and deriving the remaining MIP predicted blocks based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block. The method also includes: outputting the MIP predicted block or the first MIP predicted block and the remaining predicted blocks for subsequent processing by a decoder.
[0086] A decoder and a computer program product having similar operation are provided.
[0087] A potential advantage of the inventive concept is that MIP prediction can be performed when the width or height of the current coding block is greater than the maximum transform size. This advantage improves coding efficiency by using MIP for coding blocks whose width or height is greater than the maximum transform size.
[0088] According to other embodiments of the present invention, the method is performed by a processor of a decoder. The method includes: decoding syntax elements in a bitstream, and deriving the size of the current coding block of the picture from the bitstream as a width value and a height value. The method also includes: in response to the current coding block being an intra-frame prediction block, determining whether the current coding block is a MIP predicted block by decoding elements in the bitstream. The method also includes: determining whether the current coding block has one transform block or multiple transform blocks. The method also includes: determining the matrix vector for the current coding block from a matrix vector lookup table by using the prediction mode of the current coding block and the values based on the width value and the height value of the current coding block as table indexes. The method also includes: determining the original boundary sample values of the current transform block. The method also includes: determining the reduced boundary bdry based on the values of the width value and the height value of the current coding block. red The method further includes: determining the reduced prediction signal pred based on the value of the width value and the height value of the current coding block red The method further includes: deriving a reduced boundary bdry from the original boundary sample value red The method further comprises: red , derives the reduced prediction signal pred red temp The method further comprises: red temp Each sample of is clipped using the sample value, deriving (1325) a reduced prediction signal pred red The method further comprises: determining whether to perform a reduction on the predicted signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Applying horizontal linear interpolation. The method further comprises: based on whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red The method further comprises: determining a reduced upper boundary bdry based on the applied interpolation. redll top The size and reduced left border of bdry redll left The method further includes: determining a reduced upper boundary bdry based on the applied interpolation redll top and the reduced left border bdry redll left The method further includes: decoding the current coding block by using each of the MIP prediction blocks.
[0089] Decoders and computer program products are provided that perform similar operations. BRIEF DESCRIPTION OF THE DRAWINGS
[0090] The accompanying drawings illustrate certain non-limiting embodiments of the inventive concept, and are included to provide a further understanding of the present disclosure, and are incorporated in and constitute a part of this application. In the drawings:
[0091] Figure 1 is a diagram of the MIP process for a 4 x 4 block;
[0092] Figure 2 is a diagram of the MIP process for an 8 x 4 block;
[0093] Figure 3 is a diagram of the MIP process for a 4 x 16 block;
[0094] Figure 4 is a diagram of the MIP process for an 8 x 8 block;
[0095] Figure 5 is a diagram of the MIP process for a 16 x 8 block;
[0096] Figure 6 is a diagram of the MIP process for a 16 x 16 block;
[0097] Figure 7 is an example of implicit transform splitting when the maximum transform size is set to 32;
[0098] Figure 8 is an example of dividing a block into 2 or 4 subpartitions;
[0099] Fig. 9 is a block diagram illustrating an example of a system environment in which an encoder and a decoder according to some embodiments of the present inventive concept may be implemented;
[0100] Fig.10 is a block diagram illustrating an encoder according to some embodiments;
[0101] Fig.11 is a block diagram illustrating a decoder according to some embodiments;
[0102] Figures 12 to 15 is a flowchart illustrating the operation of a decoder or an encoder according to some embodiments of the inventive concept. DETAILED DESCRIPTION
[0103] Hereinafter, the inventive concept will be described more fully with reference to the accompanying drawings, in which examples of embodiments of the inventive concept are shown. However, the inventive concept can be embodied in a variety of different forms and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided so that the disclosure will be comprehensive and complete, and the scope of the inventive concept will be fully conveyed to those skilled in the art. It should also be noted that these embodiments are not mutually exclusive. A component from one embodiment can be assumed by default to be present in / used in another embodiment.
[0104] The following description presents various embodiments of the disclosed subject matter. These embodiments are presented as teaching examples and are not to be construed as limiting the scope of the disclosed subject matter. For example, some details of the embodiments may be modified, omitted or expanded without departing from the scope of the subject matter.
[0105] Fig. 9 An example of an operating environment for an encoder 900 is illustrated, which can be used to encode a bitstream as described herein. The encoder 900 receives video from a network 902 and / or from a storage 904, encodes the video into a bitstream, and sends the encoded video to a decoder 906 via a network 908. The storage device 904 can be part of a repository of multi-channel audio signals, such as a repository of a store or streaming video service, a separate storage component, a component of a mobile device, etc. The decoder 906 can be part of a device 910 having a media player 912. The device 910 can be a mobile device, a set-top device, a desktop computer, etc. In other embodiments, the functionality of the decoder 910 can be distributed across multiple devices.
[0106] Fig.10 is a block diagram illustrating elements of an encoder 900, which is configured to encode video frames according to some embodiments of the present inventive concept. As shown, the encoder 900 may include a network interface circuit 1005 (also referred to as a network interface), which is configured to provide communication with other devices / entities / functions / etc. The encoder 900 may also include a processor circuit 1001 (also referred to as a processor) coupled to the network interface circuit 1005 and a memory circuit 1003 (also referred to as a memory) coupled to the processor circuit. The memory circuit 1003 may include a computer-readable program code, which, when executed by the processor circuit 1001, causes the processor circuit to perform operations according to the embodiments disclosed herein.
[0107] According to other embodiments, the processor circuit 1001 can be defined to include a memory, so that no separate memory circuit is required. As described herein, the operation of the encoder 900 can be performed by the processor 1001 and / or the network interface 1005. For example, the processor 1001 can control the network interface 1005 to send communications to the decoder 906 and / or receive communications from one or more other network nodes / entities / services (e.g., other encoder nodes, storage servers, etc.) through the network interface 1002. In addition, modules can be stored in the memory 1003, and these modules can provide instructions so that when the instructions of the modules are executed by the processor 1001, the processor 1001 performs the corresponding operations.
[0108] Fig.11 1 is a block diagram illustrating elements of a decoder 906, which is configured to decode video frames according to some embodiments of the present inventive concept. As shown, the decoder 906 may include a network interface circuit 1105 (also referred to as a network interface), which is configured to provide communication with other devices / entities / functions / etc. The decoder 906 may also include a processor circuit 1101 (also referred to as a processor) coupled to the network interface circuit 1105 and a memory circuit 1103 (also referred to as a memory) coupled to the processor circuit. The memory circuit 1103 may include a computer-readable program code, which, when executed by the processor circuit 1101, causes the processor circuit to perform operations according to the embodiments disclosed herein.
[0109] According to other embodiments, the processor circuit 1101 can be defined to include a memory, so that no separate memory circuit is required. As described herein, the operations of the decoder 906 can be performed by the processor 1101 and / or the network interface 1105. For example, the processor 1101 can control the network interface 1105 to receive communications from the encoder 900. In addition, modules can be stored in the memory 1103, and these modules can provide instructions so that when the instructions of the modules are executed by the processor 1101, the processor 1101 performs the corresponding operations.
[0110] One problem that may arise in the current version of VVC is that, given a W×H MIP-predicted coding block, where W specifies the width of the coding block, H specifies the height of the coding block, W is equal to or less than MaxTbSizeY, and H is equal to or less than MaxTbSizeY, where MaxTbSizeY specifies the maximum transform size. In other words, when W is greater than MaxTbSizeY or H is greater than MaxTbSizeY, the current block cannot be encoded as a MIP-predicted block.
[0111] This limitation of MIP prediction affects coding efficiency when a video encoder or decoder has a configuration in which the maximum coding block size is larger than the maximum transform size.
[0112] The inventive concepts described herein allow MIP predicted blocks when the width value of the current coding block is greater than the maximum transform size or the height value of the current block is greater than the maximum transform size. Thus, MIP predicted coding blocks with multiple transform blocks are allowed.
[0113] One advantage that can be achieved is that MIP prediction can be performed when the width or height of the current coding block is greater than the maximum transform size. This advantage improves coding efficiency by using MIP for coding blocks whose width or height is greater than the maximum transform size. An example in VVC has been implemented using VTM6.0 as the reference VVC software. As in the third embodiment (see paragraph
[0091] ), compared to the current software configuration, in this case, the maximum transform size is configured to be equal to 32.
[0114]
[0115]
[0116] In the following description, the term "sample" may be interpreted as "sample value". For example, the statement "X is derived from Y samples" may be interpreted as "X is derived from Y sample values". Similarly, the statement "X samples are derived from Y" may be interpreted as "X sample values are derived from Y". The term "MIP input" may be interpreted as "the extracted reduced boundary bdry used as input to the matrix multiplication". red The term “MIP output” can be interpreted as “the reduced prediction signal pred as the output of the matrix multiplication”. red ”.
[0117] In a first embodiment, a method for video encoding or decoding a current intra-frame prediction block is provided. The method can be preferably applied to a block encoded by matrix-based intra-frame prediction (MIP).
[0118] The method can derive the size of the current CU as a width value W and a height value H by decoding syntax elements in the bitstream.
[0119] The method may also determine whether the current block is an intra-frame prediction block by decoding elements in the bitstream.
[0120] The method determines whether the current CU has a mipFlag syntax element in the bitstream by checking one or several criteria. In other words, the method determines whether the current CU must encode the mipFlag syntax element into the bitstream or the current CU must decode the mipFlag syntax element from the bitstream by checking one or several criteria.
[0121] If the method identifies that the current CU has syntax elements in the bitstream, it determines that the current block is a MIP-predicted block by decoding the elements in the bitstream.
[0122] The method determines a MIP weight matrix to be used for the current block from a matrix lookup table by using the width and height of the current coding block and the MIP prediction mode of the current coding block.
[0123] The method derives the maximum transform size MaxTbSizeY by decoding elements in the bitstream.
[0124] The method determines whether the current MIP-predicted coding block has one transform block or multiple transform blocks by checking the following items:
[0125] - If W is equal to or less than MaxTbSizeY and H is equal to or less than MaxTbSizeY, then there is one transform block.
[0126] - Otherwise, there are multiple transform blocks.
[0127] When it is determined that there is a transform block, the method may derive a MIP prediction block by using the determined MIP weight matrix and previously decoded elements in the bitstream.
[0128] When multiple transform blocks are determined, the method may derive a first MIP prediction block by using the determined MIP weight matrix and previously decoded elements in the bitstream. The method derives the remaining prediction blocks by using the determined MIP weight matrix and previously decoded elements in the bitstream and decoded elements in one or several previously decoded transform blocks in the current coding block.
[0129] The method may derive the current block by using the derived one or several MIP prediction blocks.
[0130] In the second embodiment, when the method determines that the current block is an intra-predicted block, it determines that the current CU has a mipFlag syntax element in the bitstream. In other words, if the current block is an intra-predicted block, there is always a mipFlag syntax element in the bitstream.
[0131] In a third embodiment, when the method determines that the current block is an intra-predicted block, it determines that the current CU has a mipFlag syntax element in the bitstream by checking the following criteria:
[0132] - The current CU has no mipFlag syntax element in the bitstream if the following is true:
[0133] aW is greater than (T_whRatio×H), or
[0134] bH is greater than (T_whRatio×W),
[0135] - Otherwise, the current CU has a mipFlag syntax element in the bitstream.
[0136] Here, T_whRatio specifies a constant parameter, and as an example, T_whRatio is equal to 4.
[0137] In a fourth embodiment, if the method determines that the current block is an intra-predicted block, it determines that the current CU has a mipFlag syntax element in the bitstream by checking the following criteria:
[0138] - The current CU has no mipFlag syntax element in the bitstream if the following is true:
[0139] cW is greater than (T_whRatio×H), or
[0140] dH is greater than (T_whRatio×W), or
[0141] eW is greater than a predetermined threshold T, or
[0142] fH is greater than the predetermined threshold T
[0143] - Otherwise, the current CU has a mipFlag syntax element in the bitstream.
[0144] Here, T_whRatio specifies a constant parameter, and as an example, T_whRatio is equal to 4.
[0145] In addition, the threshold T is a constant parameter, and as an example, the threshold T is equal to 64.
[0146] In a fifth embodiment, the above method can be applied in an encoder and / or decoder of a video or image coding system. In other words, the decoder can perform the method described herein by all or a subset of the following steps to decode an intra-frame prediction block in a picture from a bitstream:
[0147] 1. The size of the current CU is derived as a width value W and a height value H by decoding the syntax elements in the bitstream.
[0148] 2. Determine whether the current block is an intra-frame prediction block by decoding the elements in the bitstream.
[0149] 3. Determine whether the current block has a supported MIP-predicted block size:
[0150] a. If the following is true, the current block cannot be predicted as a MIP block:
[0151] iW is greater than (T_whRatio×H), or
[0152] ii. H is greater than (T_whRatio×W), or
[0153] iii. W is greater than a predetermined threshold T, or
[0154] iv.H is greater than the predetermined threshold T
[0155] b. Otherwise, the current block can be predicted as a MIP block.
[0156] 4. If the method determines that the current block can be predicted as a MIP block, it determines that the current block is a MIP-predicted block by decoding elements in the bitstream.
[0157] 5. Determine the prediction mode of the current block by decoding the elements in the bitstream.
[0158] 6. Derive the mipSizeId value from the width value W and height value H of the current CU.
[0159] 7. Determine the matrix vector for the current block from the matrix vector lookup table by using the prediction mode and mipSizeId value as the table index.
[0160] 8. Derive the maximum transform size MaxTbSizeY by decoding the elements in the bitstream.
[0161] 9. Determine whether the current CU has one transform block or multiple transform blocks by checking the following criteria:
[0162] a. If W is equal to or less than MaxTbSizeY and H is equal to or less than MaxTbSizeY, then there is one transform block, where the width of the transform block is nTbW=W and the height is nTbH=H.
[0163] b. Otherwise, there are multiple transform blocks, where each transform block has a width nTbW = min(W, MaxTbSizeY) and a height nTbH = min(H, MaxTbSizeY).
[0164] 10. Determine the original boundary sample values of the current block. The original boundary samples are nTbW samples from the nearest neighboring samples above the current transform block and nTbH samples from the nearest neighboring samples on the left side of the current transform block.
[0165] 11. Determine the size of the reduced border bdryred by the mipSizeId value of the current block.
[0166] 12. Determine the reduced prediction signal pred by the mipSizeId value of the current block red Size.
[0167] 13. Derive the reduced boundary bdryred from the original boundary sample.
[0168] 14.By matrix vector and reduced boundary bdry red The matrix multiplication of derives the reduced prediction signal pred red temp .
[0169] 15. Through the pred red temp Each sample of is clipped using the sample value to derive the reduced prediction signal pred red .
[0170] 16. Determine whether to reduce the prediction signal pred by the width nTbW and height nTbH of the current transform block. red Applies vertical linear interpolation.
[0171] 17. Determine whether to reduce the prediction signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
[0172] 18. If it is determined that both vertical and horizontal linear interpolation are to be applied, then:
[0173] a. Determine which linear interpolation direction to apply first by using the width nTbW and height nTbH of the current transform block.
[0174] b. If you decide to apply vertical linear interpolation first, then
[0175] i. Determine the size of the reduced upper boundary bdryredIItop for vertical linear interpolation by the width nTbW and height nTbH of the current transform block.
[0176] ii. Derive the reduced upper boundary bdryredIItop from the original upper boundary sample.
[0177] c. If you decide to apply horizontal linear interpolation first, then
[0178] i. Determine the size of the reduced left boundary bdryredIIleft used for horizontal linear interpolation by the width nTbW and height nTbH of the current transform block.
[0179] ii. Derive the reduced left border bdryredIIleft from the original left border sample.
[0180] 19. Derive the first MIP prediction block pred by generating sample values at the remaining positions using linear interpolation.
[0181] 20. If it is determined in step 9 that there are multiple transform blocks in the current CU, repeat steps 10 to 19 to derive a second MIP prediction block for each transform block in the current CU.
[0182] 21. Decode the current block by using the derived one or several MIP prediction blocks.
[0183] In the sixth embodiment, an example of changing the current VVC draft text (in response to embodiment 3) is provided. For the MIP process of an embodiment (embodiment 2) of the present invention, the changes (deleted lines and double underlines) to the current VVC draft text (reference JVET-O2001-vE) are as follows:
[0184] 7.3.8.5 Code unit syntax
[0185]
[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193] The above-described inventive concept allows the use of a MIP-predicted coding block having multiple transform blocks. When the maximum transform size is configured to be a value smaller than the maximum intra-coded block size, the coding efficiency may be improved.
[0194] Now turn to Fig.12 , the operation of the decoder should now be described. In block 1201, the processing circuit 1101 may determine the width and height of a current block of the bitstream based on syntax elements in the bitstream. In block 1203, the processing circuit 1101 may determine whether the current block is an intra-frame predicted block. This may be accomplished by decoding elements in the bitstream.
[0195] In block 1205, the processing circuit 1101 may determine, in response to the current block being an intra-predicted block, whether the intra-predicted block is a block predicted by matrix-based intra prediction (MIP). In one embodiment, when determining whether the intra-predicted block is a block predicted by MIP, the processing circuit 1101 may determine, based on at least one criterion, whether the syntax element indicates that the intra-predicted block is a block predicted by MIP. In another embodiment, when determining whether the syntax element indicates that the intra-predicted block is a block predicted by MIP, the processing circuit 1101 may determine, based on the current block being an intra-predicted block, whether the syntax element indicates that the intra-predicted block is a block predicted by MIP.
[0196] In other embodiments, when determining whether the syntax element indicates that the intra-prediction block is a block predicted by MIP, the processing circuit 1101 may determine whether the syntax element indicates that the intra-prediction block is a block predicted by MIP based on the width being less than the first parameter multiplied by the height or the height being less than the first parameter multiplied by the width. In another embodiment, determining that the syntax element indicates that the intra-prediction block is a block predicted by MIP is also based on the width being less than the first threshold or the height being less than the first threshold.
[0197] In block 1207, the processing circuit 1101 may determine, in response to the current block being a MIP-predicted block, whether the MIP-predicted block has one transform block or multiple transform blocks. Fig.14 In determining whether the MIP predicted block has one transform block or multiple transform blocks, the processing circuit 1101 may derive a maximum transform size by decoding the elements in the bitstream in block 1401. In block 1403, the processing circuit 1101 may determine whether the width value is less than or equal to the maximum transform size derived by decoding the elements in the bitstream, and whether the height value is less than or equal to the maximum transform size. In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, the processing circuit 1101 may determine in block 1405 that there is one transform block, the width nTbW of the transform block being equal to the width value and the height nTbH of the transform block being equal to the height value. In response to the width value being greater than the maximum transform size or the height value being greater than the maximum transform size, the processing circuit 1101 may determine that there are multiple transform blocks, the width nTbW of each transform block being equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block being equal to the minimum of the height value and the maximum transform size.
[0198] In block 1209 , the processing circuit 1101 may determine a MIP weight matrix to be used for decoding the current block based on the width and height of the current block and the MIP prediction mode of the current block.
[0199] In block 1211 , the processing circuit 1101 may, in response to determining that the MIP predicted block has a transform block, derive the MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream.
[0200] In block 1213, processing circuit 1101 may, in response to determining that the MIP predicted block has multiple transform blocks, derive a first MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream. In block 1215, processing circuit 1101 may derive remaining MIP predicted blocks based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block.
[0201] In block 1217 , the processing circuit 1101 may output the MIP predicted block or the first MIP predicted block and the remaining predicted blocks for subsequent processing by a decoder.
[0202] Now go to Fig.13 In another embodiment, the processing circuit 1101 of the decoder may derive the size of the current coding block of the picture from the bitstream as a width value and a height value based on decoding a syntax element in the bitstream in block 1301 .
[0203] In block 1303, processing circuit 1101 may determine whether the current coding block is an intra-frame prediction block by decoding elements in the bitstream. In response to the current coding block being an intra-frame prediction block, processing circuit 1101 may determine in block 1305 whether the current coding block can be predicted as a block size predicted by MIP.
[0204] In block 1307 , the processing circuit 1101 may determine whether the current coding block is a MIP predicted block by decoding an element in a bitstream in response to the current coding block being an intra-predicted block.
[0205] In block 1309 , the processing circuit 1101 may determine a prediction mode for the current coding block and a value of mipSizeID (as described above) based on the width value and the height value, which specify the width and height of the transform block as a table index.
[0206] In block 1311, the processing circuit 1101 may determine whether the current coding block has one transform block or multiple transform blocks. Fig.14In one embodiment shown, the processing circuit 1101 may derive the maximum transform size by decoding an element in the bitstream in block 1401. For example, the maximum transform size may be a parameter in the bitstream. In block 1403, the processing circuit 1101 may determine whether the current block has one transform block or multiple transform blocks by determining in block 1403 whether the width value is less than or equal to the maximum transform size derived by decoding an element in the bitstream and whether the height value is less than or equal to the maximum transform size. In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, the processing circuit 1101 may determine in block 1405 that there is one transform block whose width nTbW is equal to the width value and whose height nTbH is equal to the height value. In response to the width value being greater than the maximum transform size and the height value being greater than the maximum transform size, the processing circuit 1101 may determine in box 1407 that there are multiple transform blocks, the width nTbW of each transform block being equal to the minimum value between the width value and the maximum transform size, and the height nTbH of each transform block being equal to the minimum value between the height value and the maximum transform size.
[0207] return Fig.13 In block 1313, the processing circuit 1101 may determine a matrix vector to be used for the current coding block from a matrix vector lookup table by using the prediction mode of the current coding block and values based on the width value and the height value of the current coding block as table indices.
[0208] In block 1315, the processing circuit 1101 may determine the original boundary sample value of the current transform (or prediction) block. In one embodiment, the processing circuit 1101 may determine the original boundary sample value by determining nTbW samples from the nearest neighboring samples above the current transform block and nTbH samples from the nearest neighboring samples on the left side of the current transform block.
[0209] In block 1317, the processing circuit 1101 may determine the reduced boundary bdry based on the value of the width value and the height value of the current coding block. red In block 1319, the processing circuit may determine the reduced prediction signal pred based on the value of the width value and the height value of the current coding block. red Size.
[0210] In block 1321, the processing circuit 1101 may derive a reduced boundary bdry from the original boundary samples. red In block 1323, the processing circuit 1101 may combine the matrix vector with the reduced boundary bdry red , derives the reduced prediction signal pred red tempIn block 1325, processing circuit 1101 may red temp Each sample of derives a reduced prediction signal pred using sample value clipping red .
[0211] In block 1327, the processing circuit 1101 may determine whether to perform a calculation on the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation. In determining whether to apply horizontal linear interpolation to the downscaled prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red When horizontal linear interpolation is applied, the processing circuit 1101 may determine whether to apply the reduced prediction signal pred according to the width nTbW and the height nTbH of the current transform block. red Apply vertical linear interpolation, and determine whether to downsample the predicted signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
[0212] In block 1329, the processing circuit 110 may determine whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation to apply interpolation. Fig.15 In response to first applying vertical linear interpolation in block 1501, the processing circuit 1101 may determine the reduced upper boundary bdry for vertical linear interpolation by the width nTbW and height nTbH of the current transform block in block 1503. redll top The size of the upper boundary bdry is derived from the original upper boundary sample in block 1505. redll top .
[0213] In response to first applying horizontal linear interpolation in block 1501, the processing circuit 1101 may determine, in block 1507, a reduced left boundary bdry for horizontal linear interpolation by the width nTbW and the height nTbH of the current transform block. redll left The size of the left border is obtained by deriving the reduced left border bdry from the original left border sample in block 1509. redll left .
[0214] Back to Fig.13In block 1331, the processing circuit 1101 may determine a reduced upper boundary bdry based on the applied interpolation. redll top The size and reduced left border of bdry redll left In block 1333, the processing circuit 1101 may determine a reduced upper boundary bdry based on the applied interpolation. redll top and the reduced left border bdry redll left one.
[0215] In block 1335 , the processing circuit 1101 may derive a MIP prediction block pred by generating sample values at the remaining positions using linear interpolation.
[0216] In block 1337 , the processing circuit 1101 may decode the current block by using each of the MIP prediction blocks.
[0217] Examples listed:
[0218] Embodiment 1: A method executed by a processor of a decoder, the method comprising:
[0219] Determining (1201) a width and a height of a current block of the bitstream based on syntax elements in the bitstream;
[0220] Determining (1203) whether the current block is an intra-prediction block;
[0221] In response to the current block being an intra-prediction block, determining (1205) whether the intra-prediction block is a block predicted by matrix-based intra-prediction, that is, a block predicted by MIP;
[0222] In response to the current block being a MIP predicted block, determining (1209) a MIP weight matrix to be used for decoding the current block based on a width and a height of the current block and a MIP prediction mode of the current block;
[0223] Determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks;
[0224] In response to determining that the MIP predicted block has a transform block:
[0225] deriving (1211) a MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and
[0226] In response to determining that the MIP predicted block has multiple transform blocks:
[0227] deriving (1213) a first MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and
[0228] deriving (1215) a remaining MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block; and
[0229] The MIP predicted block or the first MIP predicted block and the remaining predicted blocks are output (1217) for subsequent processing by a decoder.
[0230] Embodiment 2: The method according to embodiment 1, wherein determining whether the intra-frame prediction block is a block predicted by MIP comprises: determining whether the syntax element indicates that the intra-frame prediction block is a block predicted by MIP based on at least one criterion.
[0231] Embodiment 3: The method according to embodiment 2, wherein determining whether the syntax element indicates that the intra-frame prediction block is a block predicted by MIP comprises determining whether the syntax element indicates that the intra-frame prediction block is a block predicted by MIP based on whether the current block is an intra-frame prediction block.
[0232] Embodiment 4: The method according to embodiment 2, wherein determining whether the syntax element indicates that the intra-prediction block is a block predicted by MIP comprises: determining whether the syntax element indicates that the intra-prediction block is a block predicted by MIP based on the following items:
[0233] The width is less than the first parameter times the height; or
[0234] The height is less than the first parameter times the width.
[0235] Embodiment 5. The method according to embodiment 4, wherein determining that the syntax element indicates that the intra-prediction block is a MIP-predicted block is also based on the following items:
[0236] The width is less than a first threshold; or
[0237] The height is less than a first threshold.
[0238] Embodiment 6. The method according to any one of embodiments 1 to 4, wherein determining (1209) whether the MIP predicted block has one transform block or multiple transform blocks comprises:
[0239] deriving a maximum transform size by decoding an element in the bitstream; and
[0240] In response to the width being equal to or less than the maximum transform size and the height being equal to or less than the maximum transform size, it is determined that the MIP predicted block has one transform block.
[0241] Embodiment 7: A method executed by a processor of a decoder, the method comprising:
[0242] Based on decoding the syntax elements in the bitstream, deriving (1301) a size of a current coding block of the picture from the bitstream as a width value and a height value;
[0243] Determining (1303) whether a current coding block is an intra-frame prediction block by decoding an element in a bitstream;
[0244] In response to the current coding block being an intra-predicted block, determining (1305) whether the current block can be predicted as a block size predicted by MIP;
[0245] In response to determining that the current block can be predicted as a MIP block, determining (1307) whether the current coding block is a MIP predicted block by decoding an element in the bitstream;
[0246] determining (1313) a matrix vector for the current coding block from a matrix vector lookup table by using a prediction mode of the current coding block and a value based on a width value and a height value of the current coding block as a table index;
[0247] Determining (1311) whether the current coding block has one transform block or multiple transform blocks;
[0248] For a transform block or each transform block in multiple transform blocks:
[0249] determining (1315) original boundary sample values of the current transform block;
[0250] By determining (1317) a reduced boundary bdry based on the values of the width value and the height value of the current coding block red size;
[0251] By determining (1319) a reduced prediction signal pred based on the values of the width value and the height value of the current coding block red Size;
[0252] Derive (1321) the reduced boundary bdry from the original boundary sample value red ;
[0253] By matrix vector and reduced bounds bdry red , derives (1323) the reduced prediction signal pred red temp ;
[0254] By pred red temp Each sample of is clipped using the sample value, deriving (1325) a reduced prediction signal predred ;
[0255] It is determined (1327) whether to perform a calculation on the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation;
[0256] Based on whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red applying (1329) interpolation by applying a determination of horizontal linear interpolation; and
[0257] Based on the applied interpolation, a reduced upper boundary bdry is determined (1331). redll top The size and reduced left border of bdry redll left One of the size;
[0258] Based on the applied interpolation, a reduced upper boundary bdry is determined (1333). redll top and the reduced left border bdry redll left one of; and
[0259] deriving (1335) a MIP prediction block pred by generating sample values at the remaining positions using linear interpolation; and
[0260] The current coding block is decoded by using each of the MIP prediction blocks (1337).
[0261] Embodiment 8. The method according to embodiment 7, wherein determining (1313) whether the current block has one transform block or multiple transform blocks comprises:
[0262] deriving (1401) a maximum transform size by decoding elements in the bitstream;
[0263] determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size;
[0264] In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value;
[0265] In response to the width value being greater than the maximum transform size and the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
[0266] Embodiment 9, according to the method of embodiment 8, wherein determining (1315) the original boundary sample value includes: determining nTbW samples from the nearest neighboring samples above the current transform block, and determining nTbH samples from the nearest neighboring samples on the left side of the current transform block.
[0267] Embodiment 10. The method according to any one of embodiments 8 to 9, wherein determining (1327) whether to perform a reduction on the predicted signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Applying horizontal linear interpolation includes determining whether to apply the reduced prediction signal pred to the current transform block by using the width nTbW and the height nTbH of the current transform block. red Apply vertical linear interpolation, and determine whether to downsample the predicted signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
[0268] Embodiment 11: The method according to embodiment 10, further comprising:
[0269] In response to determining to apply both vertical linear interpolation and horizontal linear interpolation, determining (1501) which linear interpolation direction to apply first;
[0270] In response to determining that vertical linear interpolation is first applied (1501):
[0271] The reduced upper boundary bdry for vertical linear interpolation is determined (1503) by the width nTbW and height nTbH of the current transform block. redll top size; and
[0272] The reduced upper boundary bdry is derived from the original upper boundary sample (1505). redll top .
[0273] In response to determining to first apply (1501) horizontal linear interpolation:
[0274] The reduced left boundary bdry for horizontal linear interpolation is determined (1507) by the width nTbW and height nTbH of the current transform block. redll left size; and
[0275] The reduced left border bdry is derived from the original left border sample (1509) redll left .
[0276] Embodiment 12: The method according to any one of embodiments 7 to 11 further includes: determining (1309) a prediction mode of a current coding block and a value based on a width value and a height value as a table index.
[0277] Embodiment 13, a decoder for a communication network, the decoder (906) comprising:
[0278] A processor (1101); and
[0279] A memory (1103) is coupled to the processor, wherein the memory includes instructions, which, when executed by the processor, enable the processor to perform operations according to any one of embodiments 1 to 12.
[0280] Embodiment 14: A computer program comprising computer executable instructions, which are configured to, when executed on a processing unit (1101) included in a device, cause the device to perform a method according to any one of embodiments 1 to 12.
[0281] Embodiment 15. A computer program product comprising a non-temporary computer-readable storage medium (1103), the computer-readable storage medium having computer-executable instructions, the computer-executable instructions being configured to, when executed on a processing unit (1101) included in a device, cause the device to perform a method according to any one of embodiments 1 to 12.
[0282] Embodiment 16: A device comprising:
[0283] at least one processor (1101);
[0284] A memory (1103) is communicatively coupled to the processor, the memory including instructions executable by the processor to cause the processor to perform operations including operations according to any one of embodiments 1 to 12.
[0285] Embodiment 17: A decoder adapted to perform an operation comprising the following steps:
[0286] Determining (1201) a width and a height of a current block of the bitstream based on syntax elements in the bitstream;
[0287] Determining (1203) whether the current block is an intra-prediction block;
[0288] In response to the current block being an intra-prediction block, determining (1205) whether the intra-prediction block is a block predicted by matrix-based intra-prediction, that is, a block predicted by MIP;
[0289] In response to the current block being a MIP predicted block, determining (1209) a MIP weight matrix to be used for decoding the current block based on a width and a height of the current block and a MIP prediction mode of the current block;
[0290] Determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks;
[0291] In response to determining that the MIP predicted block has a transform block:
[0292] deriving (1211) a MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and
[0293] In response to determining that the MIP predicted block has multiple transform blocks:
[0294] deriving (1213) a first MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and
[0295] deriving (1215) a remaining MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block; and
[0296] The MIP predicted block or the first MIP predicted block and the remaining predicted blocks are output (1217) for subsequent processing by a decoder.
[0297] Embodiment 18, a decoder according to embodiment 17, wherein, when determining whether an intra-frame prediction block is a block predicted by MIP, the decoder is suitable for performing an operation including the following steps: determining whether a syntax element indicates that the intra-frame prediction block is a block predicted by MIP based on at least one criterion.
[0298] Embodiment 19, a decoder according to embodiment 18, wherein, when determining whether a syntax element indicates that an intra-frame prediction block is a block predicted by MIP, the decoder is suitable for performing an operation including the following steps: determining whether the syntax element indicates that the intra-frame prediction block is a block predicted by MIP based on whether the current block is an intra-frame prediction block.
[0299] Embodiment 20. The decoder of embodiment 18, wherein, when determining whether the syntax element indicates that the intra-predicted block is a MIP-predicted block, the decoder is adapted to perform operations including determining that the syntax element indicates that the intra-predicted block is a MIP-predicted block based on:
[0300] The width is less than the first parameter times the height; or
[0301] The height is less than the first parameter times the width.
[0302] Embodiment 21. The decoder according to embodiment 20, wherein determining that the syntax element indicates that the intra-predicted block is a MIP-predicted block is further based on the following items:
[0303] The width is less than a first threshold; or
[0304] The height is less than a first threshold.
[0305] Embodiment 22. A decoder according to any one of embodiments 1 to 20, wherein when determining (1209) whether the MIP predicted block has one transform block or multiple transform blocks, the decoder is adapted to perform an operation comprising the following steps:
[0306] deriving a maximum transform size by decoding an element in the bitstream; and
[0307] In response to the width being equal to or less than the maximum transform size and the height being equal to or less than the maximum transform size, it is determined that the MIP predicted block has one transform block.
[0308] Embodiment 23, a decoder, adapted to perform an operation comprising the following steps:
[0309] Based on decoding the syntax elements in the bitstream, deriving (1301) a size of a current coding block of the picture from the bitstream as a width value and a height value;
[0310] Determining (1303) whether a current coding block is an intra-frame prediction block by decoding an element in a bitstream;
[0311] In response to the current coding block being an intra-predicted block, determining (1305) whether the current coding block can be predicted as a block size predicted by MIP;
[0312] In response to determining that the current coding block can be predicted as a MIP block, determining (1307) whether the current coding block is a MIP predicted block by decoding an element in the bitstream;
[0313] determining (1313) a matrix vector for the current coding block from a matrix vector lookup table by using a prediction mode of the current coding block and a value based on a width value and a height value of the current coding block as a table index;
[0314] Determining (1311) whether the current coding block has one transform block or multiple transform blocks;
[0315] For a transform block or each transform block in multiple transform blocks:
[0316] determining (1315) original boundary sample values of the current transform block;
[0317] By determining (1317) a reduced boundary bdry based on the values of the width value and the height value of the current coding block red size;
[0318] By determining (1319) a reduced prediction signal pred based on the values of the width value and the height value of the current coding block red Size;
[0319] Derive (1321) the reduced boundary bdry from the original boundary sample value red ;
[0320] By matrix vector and reduced bounds bdry red , derives (1323) the reduced prediction signal pred red temp ;
[0321] By pred red temp Each sample of is clipped using the sample value, deriving (1325) a reduced prediction signal pred red ;
[0322] It is determined (1327) whether to perform a calculation on the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation;
[0323] Based on whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red applying (1329) interpolation by applying a determination of horizontal linear interpolation; and
[0324] Based on the applied interpolation, a reduced upper boundary bdry is determined (1331). redll top The size and reduced left border of bdry redll left One of the size;
[0325] Based on the applied interpolation, a reduced upper boundary bdry is determined (1333). redll top and the reduced left border bdry redll left one of; and
[0326] deriving (1335) a MIP prediction block pred by generating sample values at the remaining positions using linear interpolation; and
[0327] The current coding block is decoded by using each of the MIP prediction blocks (1337).
[0328] Embodiment 24. The decoder of embodiment 23, wherein determining (1313) whether the current coding block has one transform block or multiple transform blocks comprises:
[0329] deriving (1401) a maximum transform size by decoding elements in the bitstream;
[0330] determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size;
[0331] In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value;
[0332] In response to the width value being greater than the maximum transform size and the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
[0333] Embodiment 25. A decoder according to embodiment 24, wherein, when determining (1315) the original boundary sample value, the decoder is adapted to perform an operation comprising the steps of determining nTbW samples from the nearest neighboring samples above the current transform block, and determining nTbH samples from the nearest neighboring samples on the left side of the current transform block.
[0334] Embodiment 26. A decoder according to any one of embodiments 23 to 25, wherein, in determining (1327) whether to perform a downscaled prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red When horizontal linear interpolation is applied, the decoder is adapted to perform an operation comprising the following steps: determining whether to apply the reduced prediction signal pred to the current transform block by means of the width nTbW and the height nTbH red Apply vertical linear interpolation, and determine whether to downsample the predicted signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
[0335] Embodiment 27. The decoder according to embodiment 26, wherein the decoder is adapted to perform operations further comprising the following steps:
[0336] In response to determining to apply both vertical linear interpolation and horizontal linear interpolation, determining (1501) which linear interpolation direction to apply first;
[0337] In response to first applying vertical linear interpolation:
[0338] The reduced upper boundary bdry for vertical linear interpolation is determined (1503) by the width nTbW and height nTbH of the current transform block. redll top size; and
[0339] The reduced upper boundary bdry is derived from the original upper boundary sample (1505). redll top
[0340] In response to first applying (1501) horizontal linear interpolation:
[0341] The reduced left boundary bdry for horizontal linear interpolation is determined (1507) by the width nTbW and height nTbH of the current transform block. redll left size; and
[0342] The reduced left border bdry is derived from the original left border sample (1509) redll left .
[0343] Embodiment 28. A decoder according to any one of embodiments 23 to 27, wherein the decoder is adapted to perform an operation further comprising the steps of: determining (1309) a prediction mode of a current coding block and a value based on a width value and a height value as a table index.
[0344] Abbreviations
[0345] Abbreviations
[0346] HEVC High Efficiency Video Coding
[0347] JVET Joint Video Exploration Team
[0348] VVC Versatile Video Coding
[0349] ITU-T International Telecommunication Union – Telecommunication Standardization Sector
[0350] MPEG Moving Picture Experts Group
[0351] CU Coding Unit
[0352] MIP matrix-based intra prediction
[0353] References
[0354] 1.JVET-O2001-vE: Versatile Video Coding (Draft 6); B.Bross, J.Chen, S.Liu
[0355] Additional explanation is provided below.
[0356] Generally, unless clearly given and / or different meanings are implied from the context, all terms used in this article will be interpreted according to their common meaning in the relevant technical field. Unless otherwise clearly stated, all references to "one / an / element, equipment, component, device, step, etc." should be openly interpreted as referring to at least one example in element, equipment, component, device, step, etc. Unless a step must be clearly described as after or before another step and / or a step must be after or before another step implicitly, the steps of any method disclosed herein do not have to be performed in the exact order disclosed. Where appropriate, any feature of any embodiment disclosed herein may be applied to any other embodiment. Similarly, any advantage of any embodiment may be applicable to any other embodiment, and vice versa. By the following description, other purposes, features and advantages of the attached embodiments will be apparent.
[0357] Any suitable steps, methods, features, functions or benefits disclosed herein may be performed by one or more functional units or modules of one or more virtual devices. Each virtual device may include a plurality of these functional units. These functional units may be implemented by a processing circuit, which may include one or more microprocessors or microcontrollers and other digital hardware (may include a digital signal processor (DSP), dedicated digital logic, etc.). The processing circuit may be configured to execute program codes stored in a memory, which may include one or more types of memory, such as a read-only memory (ROM), a random access memory (RAM), a cache memory, a flash memory device, an optical storage device, etc. The program code stored in the memory includes program instructions for executing one or more telecommunications and / or data communication protocols and instructions for executing one or more techniques described herein. In some implementations, the processing circuit may be used to cause the corresponding functional unit to perform a corresponding function according to one or more embodiments of the present disclosure.
[0358] The term unit may have a conventional meaning in the field of electronics, electrical devices and / or electronic devices, and may include those described herein, such as electrical and / or electronic circuits, devices, modules, processors, memories, logical solid-state and / or discrete devices, computer programs or instructions for performing respective tasks, procedures, calculations, output and / or display functions, etc.
[0359] In the above description of various embodiments of the inventive concept, it is to be understood that the terms used herein are only used for the purpose of describing specific embodiments and are not intended to limit the inventive concept. Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meanings as commonly understood by ordinary technicians in the field to which the inventive concept belongs. It should also be understood that terms such as those defined in general dictionaries should be interpreted as having meanings consistent with their meanings in the context of this specification and the relevant technology, and not interpreted as ideal or overly superficial meanings, unless so clearly defined herein.
[0360] When an element is referred to as being "connected", "coupled", "responsive" or a variation thereof relative to another element, it may be directly connected, coupled to or responsive to the other element, or there may be an intermediate element. On the contrary, when an element is referred to as being "directly connected", "directly coupled", "directly responsive" or a variation thereof relative to another element, there is no intermediate element. Throughout the text, similar reference numerals represent similar elements. In addition, "coupling", "connection", "responsiveness" or variations thereof used herein may include wireless coupling, connection or response. As used herein, the singular forms "one", "an" and "said" are intended to also include plural forms, unless the context clearly indicates otherwise. For the sake of brevity and / or clarity, well-known functions or structures may not be described in detail. The term "and / or" includes any and all combinations of one or more items listed in association.
[0361] It will be understood that although the terms first, second, third, etc. can be used herein to describe each element / operation, these elements / operations should not be limited by these terms. These terms are only used to distinguish one element / operation from another element / operation. Therefore, the first element / operation in some embodiments can be referred to as the second element / operation in other embodiments without departing from the teaching of the inventive concept. Throughout the specification, the same reference numerals or the same reference signs represent the same or similar elements.
[0362] As used herein, the terms "comprise, comprising, comprises, include, including, includes," "have, has, having," or variations thereof, are open ended and include one or more stated features, integers, elements, steps, components, or functions, but do not preclude the presence or addition of one or more other features, integers, elements, steps, components, functions, or combinations thereof. In addition, as used herein, the commonly used abbreviation "eg," derived from the Latin phrase "exempli gratia," may be used to introduce or specify one or more general examples of a previously mentioned item without being intended as a limitation of that item. The commonly used abbreviation "ie," derived from the Latin phrase "idest," may be used to specify a specific item of a more general reference.
[0363] Example embodiments are described herein with reference to block diagrams and / or flowchart illustrations of computer-implemented methods, devices (systems and / or equipment), and / or computer program products. It should be understood that the blocks of the block diagrams and / or flowchart illustrations and the combination of blocks in the block diagrams and / or flowchart illustrations can be implemented by computer program instructions executed by one or more computer circuits. These computer program instructions can be provided to processor circuits of general-purpose computer circuits, special-purpose computer circuits, and / or other programmable data processing circuits to generate a machine, so that instructions executed by processors of computers and / or other programmable data processing devices convert and control transistors, values stored in memory locations, and other hardware components within such circuits to implement the functions / actions specified in the block diagrams and / or flowcharts, and thereby create a device (functional body) and / or structure for implementing the functions / actions specified in the block diagrams and / or flowcharts.
[0364] These computer program instructions may also be stored in a tangible computer-readable medium that can direct a computer or other programmable data processing device to act in a specific manner so that the instructions stored in the computer-readable medium produce an article of manufacture, the article of manufacture including instructions for implementing the functions / actions specified in the blocks of the block diagrams and / or flow charts. Thus, embodiments of the inventive concept may be implemented in hardware and / or in software (including firmware, stored software, microcode, etc.) running on a processor such as a digital signal processor, which may be collectively referred to as a "circuit," "module," or variations thereof.
[0365] It should also be noted that in some alternative implementations, the function / action marked in the frame may not occur in the order marked in the flow chart. For example, depending on the function / action involved, the two frames shown in succession can actually be performed substantially simultaneously, or the frame can sometimes be performed in the opposite order. In addition, the function of a given frame of a flow chart and / or block diagram can be divided into multiple frames and / or the function of two or more frames of a flow chart and / or block diagram can be integrated at least in part. Finally, without departing from the scope of the inventive concept, other frames can be added / inserted between the frames shown, and / or the frame / operation can be omitted. In addition, although some frames include arrows about the communication path for indicating the main direction of communication, it should be understood that communication can occur in the direction opposite to the arrow represented.
[0366] Under the premise of not departing from the principle of the inventive concept basically, many changes and modifications can be made to the embodiment. All these changes and modifications are intended to be included in the scope of the inventive concept herein. Therefore, the above-mentioned subject matter should be understood as exemplary and not restrictive, and the examples of the embodiments are intended to cover all these modifications, improvements and other embodiments that fall within the spirit and scope of the inventive concept. Therefore, to the maximum extent permitted by law, the scope of the inventive concept should be determined by the widest permissible interpretation of the present disclosure including the examples of the embodiments and their equivalents, and should not be limited to or restricted to the previous specific embodiments.
Claims
1. A method performed by a processor of a decoder, the method comprising: Determining (1201) a width value and a height value of a current block of the bitstream based on syntax elements in the bitstream; Determining (1203) whether the current block is an intra-prediction block; In response to the current block being an intra-predicted block, determining (1205) whether the intra-predicted block is a block predicted by matrix-based intra prediction, i.e., a block predicted by MIP, without comparing the maximum transform size with the width value and without comparing the maximum transform size with the height value; In response to the current block being a MIP predicted block, determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks based on the maximum transform size, the width value, and the height value; determining ( 1209 ) a MIP weight matrix to be used for decoding the current block based on the width value and the height value of the current block and a MIP prediction mode of the current block; In response to determining that the MIP predicted block has a transform block: deriving (1211) the MIP predicted block based on the MIP weight matrix and previously decoded elements in a bitstream; and In response to determining that the MIP predicted block has a plurality of transform blocks: deriving (1213) a first MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; as well as deriving (1215) a remaining MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block; as well as The MIP-predicted block or the first MIP-predicted block and the remaining MIP-predicted blocks are output (1217) for subsequent processing by a decoder.
2. The method according to claim 1, wherein: Determining whether the intra-predicted block is a MIP-predicted block includes determining whether a syntax element in the bitstream indicates that the intra-predicted block is a MIP-predicted block.
3. The method according to any one of claims 1 to 2, wherein: Determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks includes: deriving (1401) the maximum transform size by decoding an element in the bitstream; determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size; In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value; In response to the width value being greater than the maximum transform size or the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
4. A method performed by a processor of a decoder, the method comprising: Based on decoding a syntax element in a bitstream, deriving (1301) a size of a current coding block of a picture from the bitstream as a width value and a height value; Determining (1303) whether the current coding block is an intra-frame prediction block by decoding an element in the bitstream; In response to the current coding block being an intra-predicted block, determining (1307) whether the current coding block is a MIP predicted block by decoding elements in the bitstream without comparing a maximum transform size with the width value and without comparing the maximum transform size with the height value; In response to the current coding block being a MIP predicted block, determining (1311) whether the current coding block has one transform block or multiple transform blocks based on the maximum transform size, the width value, and the height value; determining (1313) a matrix vector for the current coding block from a matrix vector lookup table by using a prediction mode of the current coding block and a value based on the width value and the height value of the current coding block as a table index; For the one transform block or each transform block in the multiple transform blocks: determining (1315) original boundary sample values of the current transform block; By determining (1317) a reduced boundary bdry based on the value of the width and the value of the height of the current coding block red size; By determining (1319) a reduced prediction signal pred based on the value of the width value and the value of the height of the current coding block red Size; Derive (1321) the reduced boundary bdry from the original boundary sample values red ; By the matrix vector and the reduced boundary bdry red , derives (1323) the reduced prediction signal pred red temp ; By pred red temp Each sample of is clipped using the sample value, deriving (1325) a reduced prediction signal pred red ; It is determined (1327) whether to perform a reduction on the prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation; Based on whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red applying (1329) interpolation by applying a determination of horizontal linear interpolation; and Based on the applied interpolation, a reduced upper boundary bdry is determined (1331). redll top The size and reduced left border of bdry redll left One of the size; Based on the applied interpolation, a reduced upper boundary bdry is determined (1333). redll top and the reduced left border bdry redll left one of; and deriving (1335) a MIP prediction block pred by generating sample values at the remaining positions using linear interpolation; and The current coding block is decoded by using each of the MIP prediction blocks (1337).
5. The method according to claim 4, wherein: Determining (1311) whether the current coding block has one transform block or multiple transform blocks includes: deriving (1401) the maximum transform size by decoding an element in the bitstream; determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size; In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value; In response to the width value being greater than the maximum transform size or the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
6. The method according to claim 5, wherein: Determining (1315) the original boundary sample values includes determining nTbW samples from the nearest neighboring samples above the current transform block and determining nTbH samples from the nearest neighboring samples to the left of the current transform block.
7. The method according to claim 5, wherein: It is determined (1327) whether to perform a reduction on the prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Applying horizontal linear interpolation includes determining whether to apply the reduced prediction signal pred to the current transform block by using the width nTbW and the height nTbH of the current transform block. red Apply vertical linear interpolation, and determine whether to downsample the predicted signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
8. The method according to claim 7, further comprising: In response to determining to apply both vertical linear interpolation and horizontal linear interpolation, In response to first applying (1501) horizontal linear interpolation: The reduced left boundary bdry for horizontal linear interpolation is determined (1507) by the width nTbW and the height nTbH of the current transform block. redll left size; as well as The reduced left border bdry is derived (1509) from the original left border sample redll left .
9. The method according to claim 8, further comprising: In response to first applying (1501) vertical linear interpolation: The reduced upper boundary bdry for vertical linear interpolation is determined (1503) by the width nTbW and the height nTbH of the current transform block. redll top size; as well as The reduced upper boundary bdry is derived (1505) from the original upper boundary sample redll top .
10. The method according to any one of claims 4 to 9, further comprising: A prediction mode of the current coding block and a value of mipSizeld based on the width value and the height value specifying a width and a height of a transform block are determined (1309) as a table index.
11. A decoder for a communication network, the decoder (906) comprising: Processor(1101); as well as A memory (1103) is coupled to the processor, wherein the memory includes instructions, and when the instructions are executed by the processor, the processor performs operations including the following steps: Determining (1201) a width value and a height value of a current block of the bitstream based on syntax elements in the bitstream; Determining (1203) whether the current block is an intra-prediction block; In response to the current block being an intra-predicted block, determining (1205) whether the intra-predicted block is a block predicted by matrix-based intra prediction, i.e., a block predicted by MIP, without comparing the maximum transform size with the width value and without comparing the maximum transform size with the height value; In response to the current block being a MIP predicted block, determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks based on the maximum transform size, the width value, and the height value; In response to the current block being a MIP predicted block, determining (1209) a MIP weight matrix to be used for decoding the current block based on the width value and the height value of the current block and a MIP prediction mode of the current block; In response to determining that the MIP predicted block has a transform block: deriving (1211) the MIP predicted block based on the MIP weight matrix and previously decoded elements in a bitstream; and In response to determining that the MIP predicted block has a plurality of transform blocks: deriving (1213) a first MIP-predicted block based on the MIP weight matrix and previously decoded elements in the bitstream; and deriving (1215) a remaining MIP predicted block based on the MIP weight matrix and previously decoded elements in the bitstream and decoded elements in at least one decoded transform block of the current block; and The MIP-predicted block or the first MIP-predicted block and the remaining MIP-predicted blocks are output (1217) for subsequent processing by a decoder.
12. The decoder according to claim 11, wherein: In determining whether the intra-predicted block is a MIP-predicted block, the memory includes instructions that, when executed by the processor, cause the processor to perform operations including determining whether a syntax element in the bitstream indicates that the intra-predicted block is a MIP-predicted block.
13. The decoder according to any one of claims 11 to 12, wherein: When determining (1207) whether the MIP predicted block has one transform block or multiple transform blocks, the memory includes instructions that, when executed by the processor, cause the processor to perform operations including the following steps: deriving (1401) the maximum transform size by decoding an element in the bitstream; determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size; In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value; In response to the width value being greater than the maximum transform size or the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
14. A decoder for a communication network, the decoder (906) comprising: Processor(1101); as well as A memory (1103) is coupled to the processor, wherein the memory includes instructions, and when the instructions are executed by the processor, the processor performs operations including the following steps: Based on decoding a syntax element in a bitstream, deriving (1301) a size of a current coding block of a picture from the bitstream as a width value and a height value; Determining (1303) whether the current coding block is an intra-frame prediction block by decoding an element in the bitstream; In response to the current coding block being an intra-predicted block, determining (1305) whether the current coding block can be predicted as a block predicted by matrix-based intra prediction, i.e., a MIP block, without comparing a maximum transform size with the width value and without comparing the maximum transform size with the height value; In response to determining that the current coding block can be predicted as a MIP block, determining (1307) whether the current coding block is a MIP predicted block by decoding an element in the bitstream; In response to the current coding block being a MIP predicted block, determining (1311) whether the current coding block has one transform block or multiple transform blocks based on a maximum transform size, the width value, and the height value; determining (1313) a matrix vector for the current coding block from a matrix vector lookup table by using a prediction mode of the current coding block and a value based on the width value and the height value of the current coding block as a table index; For the one transform block or each transform block in the multiple transform blocks: determining (1315) original boundary sample values of the current transform block; By determining (1317) a reduced boundary bdry based on the value of the width and the value of the height of the current coding block red size; By determining (1319) a reduced prediction signal pred based on the value of the width value and the value of the height of the current coding block red Size; Derive (1321) the reduced boundary bdry from the original boundary sample values red ; By the matrix vector and the reduced boundary bdry red , derives (1323) the reduced prediction signal pred red temp ; By pred red temp Each sample of is clipped using the sample value, deriving (1325) a reduced prediction signal pred red ; It is determined (1327) whether to perform a reduction on the prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red Apply horizontal linear interpolation; Based on whether the reduced prediction signal pred red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red applying (1329) interpolation by applying a determination of horizontal linear interpolation; and Based on the applied interpolation, a reduced upper boundary bdry is determined (1331). redll top The size and reduced left border of bdry redll left One of the size; Based on the applied interpolation, a reduced upper boundary bdry is determined (1333). redll top and the reduced left border bdry redll left one of; and deriving (1335) a MIP prediction block pred by generating sample values at the remaining positions using linear interpolation; and The current coding block is decoded by using each of the MIP prediction blocks (1337).
15. The decoder according to claim 14, wherein: When determining (1311) whether the current coding block has one transform block or multiple transform blocks, the memory includes instructions that, when executed by the processor, cause the processor to perform operations including the following steps: deriving (1401) the maximum transform size by decoding an element in the bitstream; determining (1403) whether the width value is less than or equal to a maximum transform size derived by decoding elements in the bitstream and whether the height value is less than or equal to the maximum transform size; In response to the width value being less than or equal to the maximum transform size and the height value being less than or equal to the maximum transform size, determining (1405) that there is a transform block having a width nTbW equal to the width value and a height nTbH equal to the height value; In response to the width value being greater than the maximum transform size or the height value being greater than the maximum transform size, it is determined (1407) that there are multiple transform blocks, wherein the width nTbW of each transform block is equal to the minimum of the width value and the maximum transform size, and the height nTbH of each transform block is equal to the minimum of the height value and the maximum transform size.
16. The decoder according to claim 15, wherein: When determining (1315) the original boundary sample value, the memory includes instructions that, when executed by the processor, cause the processor to perform operations including determining nTbW samples from the nearest neighboring samples above the current transform block, and determining nTbH samples from the nearest neighboring samples to the left of the current transform block.
17. The decoder according to claim 15, wherein: In determining (1327) whether to red Apply vertical linear interpolation and whether to apply vertical linear interpolation to the downscaled prediction signal pred red When horizontal linear interpolation is applied, the memory includes instructions, which, when executed by the processor, cause the processor to perform operations including the following steps: determining whether to apply the reduced prediction signal pred to the current transform block by using the width nTbW and the height nTbH of the current transform block. red Apply vertical linear interpolation, and determine whether to downsample the predicted signal pred by the width nTbW and height nTbH of the current transform block. red Applies horizontal linear interpolation.
18. The decoder according to claim 17, wherein: The memory further comprises instructions which, when executed by the processor, cause the processor to perform operations further comprising the following steps: In response to determining to apply both vertical linear interpolation and horizontal linear interpolation, In response to first applying (1501) horizontal linear interpolation: The reduced left boundary bdry for horizontal linear interpolation is determined (1507) by the width nTbW and the height nTbH of the current transform block. redll left size; as well as The reduced left border bdry is derived (1509) from the original left border sample redll left .
19. The decoder according to claim 18, wherein: The memory further comprises instructions which, when executed by the processor, cause the processor to perform operations further comprising the following steps: In response to first applying vertical linear interpolation: The reduced upper boundary bdry for vertical linear interpolation is determined (1503) by the width nTbW and the height nTbH of the current transform block. redll top size; as well as The reduced upper boundary bdry is derived (1505) from the original upper boundary sample redll top .
20. A decoder according to any one of claims 14 to 19, wherein: The memory includes instructions which, when executed by the processor, cause the processor to perform operations further comprising determining (1309) a prediction mode for the current coding block and the value based on the width value and the height value as a table index.
21. A computer program product comprising a non-transitory computer-readable storage medium (1103), the computer-readable storage medium having computer-executable instructions, the computer-executable instructions being configured to, when executed on a processing unit (1101) comprised in a device, cause the device to perform the method according to any one of claims 1 to 10.
22. An electronic device comprising: at least one processor (1101); A memory (1103) is communicatively coupled to the processor, the memory comprising instructions executable by the processor to cause the processor to perform operations including the method according to any one of claims 1 to 10.