WO2020182157A1 - Encoding method and device, and decoding method and device - Google Patents

Encoding method and device, and decoding method and device Download PDF

Info

Publication number
WO2020182157A1
WO2020182157A1 PCT/CN2020/078812 CN2020078812W WO2020182157A1 WO 2020182157 A1 WO2020182157 A1 WO 2020182157A1 CN 2020078812 W CN2020078812 W CN 2020078812W WO 2020182157 A1 WO2020182157 A1 WO 2020182157A1
Authority
WO
WIPO (PCT)
Prior art keywords
sub
block
mode
current block
division
Prior art date
Application number
PCT/CN2020/078812
Other languages
French (fr)
Chinese (zh)
Inventor
徐丽英
Original Assignee
杭州海康威视数字技术股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 杭州海康威视数字技术股份有限公司 filed Critical 杭州海康威视数字技术股份有限公司
Publication of WO2020182157A1 publication Critical patent/WO2020182157A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • This application relates to the field of data processing technology, and in particular to an encoding method, decoding method and device.
  • ISP Intelligent sub-block sub-partitions
  • the principle of this ISP technology is to divide an image block into multiple sub-blocks to make predictions based on the multiple sub-blocks. , Transformation, quantization, and coding.
  • the sub-block division mode for the image block supporting the ISP technology generally includes a horizontal mode and a vertical mode.
  • a 16*8 image block it can be divided into four 16*2 sub-blocks in a horizontal manner, and four 4*8 sub-blocks in a vertical manner.
  • a 4*8 image block it can be divided into two 4*4 blocks in a horizontal manner, and can be divided into two 2*8 sub-blocks in a vertical manner.
  • the hardware can perform a series of processing based on the obtained sub-blocks.
  • the sub-block division modes of the image block supporting the ISP technology include a horizontal mode and a vertical mode, however, after dividing according to a certain sub-block division mode, it may cause the hardware to process some size sub-blocks more expensively.
  • the embodiments of the present application provide an encoding method, a decoding method, a device, a device, and a storage medium, which can solve the problem of relatively large processing of some size sub-blocks by hardware in related technologies.
  • the technical solution is as follows:
  • an encoding method includes:
  • the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode;
  • the current block is encoded to generate an encoded stream of the current block.
  • the sub-block division modes supported by the current block include:
  • the sub-block division mode supported by the current block is horizontal division
  • the sub-block division mode supported by the current block is horizontal division, or the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode if the width and height dimensions of the current block are 64*64.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
  • the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of prediction modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
  • the coded stream also carries second indication information, and the second indication information is used for Indicates the division method of the target sub-block.
  • the method when the encoded stream carries the third indication information, before generating the encoded stream, the method further includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the encoding the third indication information includes:
  • the coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
  • the encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
  • the coded stream carries fifth indication information
  • the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information, before generating the coded stream,
  • the method also includes:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • the method further includes:
  • filtering the reconstructed image includes:
  • determining the boundary filter strength value of the sub-block includes:
  • the filter strength value of the vertical boundary of each sub-block is set to 0; or,
  • the filter strength value of the horizontal boundary of each sub-block is set to 0; or,
  • a decoding method includes:
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the target sub-block division mode is determined from the prediction modes in the candidate prediction mode list of the current block. Determine the target prediction mode of the current block;
  • the sub-block division modes supported by the current block include:
  • the sub-block division mode supported by the current block is horizontal division
  • the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode if the width and height dimensions of the current block are 64*64.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra sub-block division mode is all A list of candidate prediction modes shared by neighboring coded blocks in the spatial domain of the current block.
  • the candidate prediction mode list supported by the intra sub-block division mode is A fixed list, where the fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode .
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode
  • the method also includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra-frame sub-block division mode; the method further includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
  • the encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether there is residual information in the current block or a sub-block of the current block; the method further includes:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • determining the boundary filter strength value of the sub-block includes:
  • the filter strength value of the vertical boundary of each sub-block is set to 0;
  • the filter strength value of the horizontal boundary of each sub-block is set to 0;
  • an encoding device in a third aspect, includes:
  • the first determining module is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the intra-frame sub-block division mode is activated by the current block, and divide the current block according to the target sub-block division mode Into multiple sub-blocks;
  • the second determining module is configured to determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block;
  • the first prediction module is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the current pixel information based on the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
  • the residual information of the block is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the current pixel information based on the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
  • a transformation module configured to transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information
  • the encoding module is configured to encode the current block according to the transformed information to generate an encoding stream of the current block.
  • the sub-block division modes supported by the current block include:
  • the sub-block division mode supported by the current block is horizontal division
  • the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode if the width and height dimensions of the current block are 64*64.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
  • the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of prediction modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode in any one of the foregoing items.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
  • the coded stream also carries second indication information, and the second indication information is used for Indicates the division method of the target sub-block.
  • the encoding module is further used to:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the first The fourth indication information is used to indicate whether the target prediction mode of the current block is an angle prediction mode.
  • the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or a sub-block of the current block.
  • the encoding module is also used to:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • the transformation module is further used to:
  • filtering the reconstructed image includes:
  • the transformation module is further used to:
  • the filter strength value of the vertical boundary of each sub-block is set to 0;
  • the filter strength value of the horizontal boundary of each sub-block is set to 0;
  • a decoding device in a fourth aspect, includes:
  • the acquisition module is used to acquire the encoding stream of the current block
  • the third determining module is used to determine the target sub-block division mode from the sub-block division modes supported by the current block when determining the current block to start the intra-frame sub-block division mode according to the information carried in the encoded stream, and predict from the candidate of the current block Determine the target prediction mode of the current block in the prediction mode of the mode list;
  • a sub-block division module configured to divide the current block into multiple sub-blocks according to the target sub-block division mode
  • An inverse quantization transformation module configured to perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
  • the second prediction module is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
  • the fourth determining module is configured to determine the reconstructed image of the current block according to the residual information corresponding to the multiple sub-blocks and the predicted pixel information.
  • the sub-block division modes supported by the current block include:
  • the sub-block division mode supported by the current block is horizontal division
  • the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode if the width and height dimensions of the current block are 64*64.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra sub-block division mode is all A list of candidate prediction modes shared by neighboring coded blocks in the spatial domain of the current block.
  • the candidate prediction mode list supported by the intra sub-block division mode is A fixed list, where the fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode .
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode
  • the method also includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra-frame sub-block division mode; the method further includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
  • the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or a sub-block of the current block;
  • the inverse quantization transform module is used to:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • the fourth determining module when the intra-frame sub-block division mode is activated by the current block, the fourth determining module is configured to;
  • the fourth determining module is configured to:
  • the filter strength value of the vertical boundary of each sub-block is set to 0;
  • the filter strength value of the horizontal boundary of each sub-block is set to 0;
  • an electronic device including:
  • a memory for storing processor executable instructions
  • the processor is configured to implement the method described in the first aspect.
  • an electronic device including:
  • a memory for storing processor executable instructions
  • the processor is configured to implement the method described in the second aspect above.
  • a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium, and when the instructions are executed by a processor, the method described in the first aspect is implemented.
  • a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium.
  • the instructions are executed by a processor, the method described in the second aspect is implemented.
  • a computer program product containing instructions which when running on a computer, causes the computer to execute the method described in the first aspect.
  • a computer program product containing instructions which when run on a computer, causes the computer to execute the method described in the second aspect.
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-blocks according to the target sub-block division mode.
  • Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block.
  • the residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block.
  • not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
  • Fig. 1 is a schematic diagram showing the architecture of a coding and decoding system according to an exemplary embodiment
  • Fig. 2 is a schematic diagram showing a flow of encoding and decoding according to an exemplary embodiment
  • Fig. 3 is an example of a direction corresponding to an intra prediction mode according to an exemplary embodiment
  • Fig. 4 is an example of a direction corresponding to an angle mode according to an exemplary embodiment
  • Fig. 5 is a schematic diagram showing the division of image blocks according to an exemplary embodiment
  • Fig. 6 is a schematic diagram showing the division of image blocks according to another exemplary embodiment
  • Fig. 7 is a flowchart showing an encoding method according to an exemplary embodiment
  • Fig. 8 is a schematic diagram showing the division of a current block according to an exemplary embodiment
  • Fig. 9 is a schematic diagram showing the division of a current block according to another exemplary embodiment.
  • Fig. 10 is a flowchart showing an encoding method according to another exemplary embodiment
  • Fig. 11 is a schematic diagram showing neighboring blocks according to an exemplary embodiment
  • Fig. 12 is a flowchart showing an encoding method according to another exemplary embodiment
  • Fig. 13 is a flowchart showing a decoding method according to an exemplary embodiment
  • Fig. 14 is a schematic diagram showing a current block according to an exemplary embodiment
  • Fig. 15 is a schematic structural diagram showing an encoding device according to an exemplary embodiment
  • Fig. 16 is a schematic structural diagram showing a decoding device according to an exemplary embodiment
  • Fig. 17 is a schematic diagram showing an image block according to an exemplary embodiment
  • Fig. 18 is a schematic structural diagram of a terminal according to another exemplary embodiment.
  • FIG. 1 is a schematic structural diagram of an encoding and decoding system provided by an embodiment of the present application.
  • the codec system includes an encoder 01, a decoder 02, a storage device 03 and a link 04.
  • the encoder 01 can communicate with the storage device 03, and the encoder 01 can also communicate with the decoder 02 through the link 04.
  • the decoder 02 can also communicate with the storage device 03.
  • Encoder 01 is used to obtain the data source, encode the data source, and transmit the encoded code stream to the storage device 03 for storage, or the encoder 01 can directly transmit the encoded code stream obtained through the link 04 to Decoder 02.
  • the decoder 02 can obtain the code stream from the storage device 03 and decode it to obtain the data source; or after receiving the code stream transmitted by the encoder 01 through the link 04, it can decode to obtain the data source.
  • the data source can be a captured image or a captured video.
  • Both the encoder 01 and the decoder 02 can be used as an electronic device alone.
  • the storage device 03 may include any of a variety of distributed or locally accessible data storage media.
  • hard drives Blu-ray discs, read-only discs, flash memory, or other suitable digital storage media for storing encoded data.
  • the link 04 may include at least one communication medium, and the at least one communication medium may include a wireless and/or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines.
  • RF radio frequency
  • FIG. 2 is a schematic diagram of a coding and decoding process according to an exemplary embodiment.
  • the coding includes prediction, transformation, quantization, and entropy coding.
  • Decoding includes decoding, inverse quantization, inverse transformation, and prediction.
  • Prediction in encoding and decoding generally includes intra-frame prediction and inter-frame prediction. Next, we will briefly introduce intra-frame prediction.
  • Intra-frame prediction refers to using the correlation of the image space domain to predict the pixels of the current image block by using the pixels of the neighboring blocks that have been coded and reconstructed around the current image block, so as to achieve the purpose of removing the image space redundancy.
  • a variety of intra prediction modes are specified in intra prediction, and each intra prediction mode corresponds to a texture direction (except for the DC mode). For example, if the texture of the image is arranged horizontally, then selecting the horizontal prediction mode can better predict the image information.
  • the luminance component in HEVC High Efficiency Video Coding
  • HEVC High Efficiency Video Coding
  • each size of prediction unit corresponds to 35 intra prediction modes. Contains Planar mode, DC mode and 33 angle modes, as shown in Table 1.
  • the prediction directions corresponding to the multiple intra prediction modes are shown in FIG. 3.
  • the Planar mode is suitable for areas where the pixel value changes slowly.
  • two linear filters in the horizontal and vertical directions can be used for filtering, and the average of the two is used as the predicted value of the current image block.
  • the DC mode is suitable for a large flat area.
  • the average pixel value of the neighboring blocks that have been coded and reconstructed around the current image block can be used as the predicted value of the current image block.
  • Planar mode and the DC mode may also be called non-angle modes.
  • the intra prediction modes corresponding to the mode number 26 and the mode number 10 respectively indicate the vertical direction and the horizontal direction.
  • the intra prediction mode corresponding to the mode number 26 may be The intra prediction modes corresponding to the adjacent mode numbers are collectively referred to as vertical prediction modes, and the intra prediction modes corresponding to the mode numbers adjacent to the mode number 10 are collectively referred to as horizontal prediction modes.
  • the vertical prediction modes can be Including intra prediction modes corresponding to mode number 2 to mode number 18, and horizontal prediction modes may include intra prediction modes corresponding to mode number 19 to mode number 34.
  • VVC Very Video Coding, Valser Video Coding
  • the intra prediction modes corresponding to mode number 26 and mode number 10 respectively represent the vertical direction and the horizontal direction.
  • the intra prediction modes corresponding to the vertical direction and the horizontal direction may also have other values, which is not limited in the embodiment of the present application.
  • encoding and decoding can be implemented based on ISP technology.
  • the method of intra prediction in ISP technology is to divide an image block into multiple sub-blocks for prediction.
  • the sub-block division methods that can be supported include horizontal division and vertical division.
  • N means that ISP mode is not supported
  • HOR means that horizontal division is supported
  • VER means that vertical division is supported
  • rows represent the width of image blocks
  • columns represent The height of the image block.
  • the image block may be divided into the forms shown in FIG. 5 and FIG. 6.
  • the pixel information of the sub-block is obtained by raster scanning, and after dividing according to the sub-block division method shown in Table 2 above, it is easy to cause sub-blocks of some sizes, such as 1 *N, 2*N sub-blocks, the cost of hardware access will be very high.
  • the embodiments of the present application provide a coding and decoding method based on ISP technology, which can solve this problem.
  • the ISP mode may also be referred to as an intra-frame sub-block division mode.
  • FIG. 7 is a flowchart showing an encoding method according to an exemplary embodiment.
  • the encoding method may be applied to an encoding terminal device.
  • the method may include the following steps:
  • Step 701 When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
  • the current block is any image block in the image to be processed.
  • the current block may also be referred to as the current image block.
  • the image to be processed can be any image or video image.
  • the size of the image block supported by the ISP mode is specified. For example, it can be determined by the following table 3. The "N" indicates that the ISP mode is not supported, and the "Y" indicates that the ISP mode is supported, and the row represents the image block. The width of the column represents the height of the image block. For example, the ISP mode does not support the processing of 4*4 image blocks.
  • the current block does not support or prohibit the activation of the intra-frame sub-block division mode. That is, because of the 64*64 size image block processing, the implementation effect of using the ISP mode and the conventional mode (ie non-ISP mode) is not obvious, and even the computational complexity of using the ISP mode is relatively large. Therefore, in this application
  • the ISP mode that does not enable 64*64 image blocks is proposed, that is, it is proposed that the ISP mode does not support the size of 64*64.
  • Table 3 is changed to Table 4, where the row represents the image The width of the block, the column represents the height of the image block.
  • the encoding end device can determine whether the current image block supports the ISP mode based on the width and height of the current image block, based on the above Table 3 or Table 4.
  • the frame can be started Internal sub-block division mode.
  • the sub-block division mode of some size blocks may be limited.
  • the following possible implementation modes may be included:
  • the first implementation manner if the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division.
  • the width and height size of 4*N can be limited to only support horizontal division, not vertical division.
  • the second implementation mode if the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division modes supported by the current block are simultaneously Including vertical division and horizontal division, the vertical division can only be divided into two sub-blocks.
  • an image block with a width and height size of 8*N it may also be restricted that it does not support vertical division and only supports horizontal division.
  • the third implementation manner if the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division.
  • the fourth implementation manner If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
  • the sub-block division mode supported by the ISP technology may be as shown in Table 5, where the row represents the width of the image block, and the column represents the height of the image block.
  • the current block may also be determined according to the ratio of the width to the height of the current block.
  • the sub-block division method supported by the block As an example, the following situations can be included:
  • the first implementation manner when the ratio between the width and the height of the current block is greater than or equal to the first threshold, the sub-block division manner supported by the current block is vertical division.
  • the width of the current block is very wide and the height is very short. If the current block is horizontally divided, the width of the sub-block obtained will be It is very wide and shorter in height, so horizontal division may not be enabled for this kind of current block, that is, the sub-block division mode supported by the current block is vertical division, and horizontal division is not supported.
  • the foregoing first threshold may be set according to actual requirements.
  • the first threshold is 1, that is, when the aspect ratio is greater than 1, it is suitable for vertical division.
  • the second implementation manner when the ratio between the width and the height of the current block is less than or equal to the second threshold, the sub-block division mode supported by the current block is horizontal division.
  • the foregoing second threshold may be set according to actual requirements.
  • the second threshold may be 1 or a number less than 1, which is suitable for horizontal division.
  • the width of the current block is relatively small and the height is particularly high. If the current block is divided vertically, the width of the sub-block obtained will be It is narrower and extremely high in height, so vertical division may not be enabled for this type of current block, that is, the sub-block division mode supported by the current block is horizontal division, and vertical division is not supported.
  • the target sub-block division method when the current block only supports horizontal division, horizontal division may be determined as the target sub-block division method, and when the current block only supports vertical division, vertical division may be determined as the target sub-block division method .
  • the target sub-block division method can be determined by trial.
  • the final sub-block division method can be selected according to the processing cost.
  • the processing The cost can be decided based on RDO (Rate Distortion Optimized).
  • the encoding end device may divide the current block into multiple sub-blocks according to the division rule shown in Table 6 according to the target sub-block division mode.
  • W represents the width of the current block
  • H represents the height of the current block
  • w represents the width of the divided sub-block
  • h represents the height of the divided sub-block
  • k represents the multiple first sub-blocks obtained by the division. The number of tiles.
  • the current block can be divided into 4 4x4 sub-blocks in a vertical manner.
  • the multiple sub-blocks are obtained according to non-uniform division, or the multiple sub-blocks are obtained according to uniform division. It can be divided according to uniform size, or it can be divided according to non-uniform size.
  • the current block can be divided into multiple sub-blocks with the same size, or the current block can be divided into multiple sub-blocks with different sizes, for example, as shown in Figure 8, the current block is divided into two sub-blocks with different sizes. Of sub-blocks.
  • the multiple sub-blocks may be obtained according to multi-level division. That is, the sub-block of larger size can be divided more finely. Exemplarily, as shown in FIG. 9, a sub-block of larger size can be further divided into 8 sub-blocks of smaller size. Then, follow-up processing is performed based on the obtained 8 sub-blocks of smaller size.
  • the reference size threshold may be set by the user according to actual needs, or may also be set by default by the encoding end device, which is not limited in the embodiment of the present application.
  • Step 702 Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
  • the candidate prediction mode list of the current block should be constructed before the target prediction mode is selected.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode can be the same as the current block does not start the intra sub-block division mode.
  • the candidate prediction mode list in the block division mode is the same or may be different.
  • the current block starts the intra sub-block division mode
  • the candidate prediction mode list supported by the intra sub-block division mode is a predefined fixed list, where the fixed list only includes the Planar prediction mode; or, if the target sub-block of the current block If the block division mode is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only includes the vertical mode.
  • the Planar mode can be directly used as the target prediction mode.
  • the target prediction mode may be determined according to the sub-block division mode, that is, when the sub-block division mode of the current block is horizontal division, the horizontal mode is determined as the target prediction mode. , The mode number of this horizontal mode is 10. Or, when the sub-block division mode of the current block is vertical division, the vertical mode is determined as the target prediction mode. Exemplarily, the mode number of the vertical mode is 26.
  • the target prediction mode defaults to horizontal mode, or vertical mode, or planar mode, or DC mode
  • there is no need to carry the target prediction mode for local use in the code stream The instruction information saves bit overhead.
  • the current block starts the intra sub-block division mode, and if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is the spatial domain of the current block A list of candidate prediction modes shared by adjacent coded blocks.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
  • Step 703 Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine residual information of the current block according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
  • prediction processing may be performed on each of the multiple sub-blocks according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
  • prediction processing may be performed on the current block according to the target prediction mode, and the obtained predicted pixel information may be used as the predicted pixel information of the multiple sub-blocks.
  • the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks may be subjected to residual processing to obtain residual information of the current block.
  • Step 704 Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
  • the residual information is transformed according to the transform cores corresponding to the multiple sub-blocks.
  • the transform check corresponding to the sub-block includes DCT2 and DCT7; if the width and height dimensions of the current block are both greater than or equal to 32, the transform check corresponding to the sub-block includes DCT2.
  • Step 705 According to the transformed information, encode the current block to generate an encoded stream of the current block.
  • the encoded stream carries second indication information, and the second indication information is used to indicate the target Sub-block division method.
  • the encoding end device may encode the second indication information to the encoding In the stream, the target sub-block division mode of the current block is indicated by the second indication information.
  • the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
  • the third indication information can be encoded into the encoded stream, and the third indication information can make the decoding end parse out that the current block is processed in the ISP mode, which is exemplary ,
  • the third indication information may be the flag of the ISP mode.
  • the third indication information does not need to be transmitted. At this time, the code bit for the third indication information may be 0.
  • the third indication information can be coded with 1 bit.
  • 2 bits can be used in the encoding process to represent the second indication information and the third indication information respectively.
  • the third indication information is coded according to the context model, where the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the context model for encoding the flag of the ISP mode can be determined according to the size of the current block.
  • the context model for encoding the flag of the ISP mode can also be determined according to the shape and aspect ratio of the current block.
  • the implementation of encoding the third indication information may include: the coding order of the third indication information is prior to the coding order of the multi-line prediction technology.
  • the encoding sequence of the ISP mode flag and the flags of other prediction modes can be adjusted by modifying the syntax, so that the encoding end device first encodes the ISP mode flag during encoding. , Encode the ISP mode flag in front of the multi-line prediction mode flag, so that the decoder can parse the ISP mode flag first.
  • the intra-frame multi-line prediction mode does not support 4*4 size image blocks. If it is a 4*4 image block, the encoding end device may not encode the syntax elements related to the multi-line prediction mode, and the decoding end The device does not need to decode syntax elements related to the multi-line prediction mode.
  • the encoded stream carries fifth indication information
  • the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
  • the fifth indication information can be used to indicate whether the current block or sub-blocks of the current block has residual information.
  • the fifth indication information is whether there is residual information CBF (Coded block flag, Encoding block ID) value flag.
  • the fifth indication information is used to indicate whether residual information exists in the current block or multiple sub-blocks of the current block.
  • the method It also includes: encoding the fifth indication information according to a context model; the context model is determined according to the division depth of the multiple sub-blocks, and when the division depth of the multiple sub-blocks is 0, the first context model is adopted, and the multiple sub-blocks When the division depth of is not 0, the second context model is used, and the first context model is different from the second context model.
  • the context model of the CBF value of the residual coding of the current block is selected according to the division depth of the transform block, rather than the CBF value of the previous sub-block. This avoids the need for context model selection to depend on before and after The question of the relevance of sub-blocks.
  • the method further includes: quantizing the transformed information, and dequantizing and inverse transforming the quantized data to obtain an inverse transform Result; determine the reconstructed image of the current block based on the result of the inverse transform; filter the reconstructed image; wherein, filtering the reconstructed image includes: when the current block starts the intra-frame sub-block division mode, according to the target sub-block
  • the block division method determines the boundary filter strength value of the sub-block; according to the boundary filter strength value, the reconstructed image is filtered.
  • the reconstructed image can be filtered through a filter.
  • the boundary filter intensity value of the filter is determined based on the size of multiple sub-blocks, and the boundary filter intensity value is used To filter the boundaries of multiple sub-blocks.
  • determining the boundary filter intensity value of the sub-block according to the target sub-block division mode of the current block includes: when the target sub-block division mode is vertical division, the filter intensity value of the vertical boundary of each sub-block is determined Set to 0; or, when the target sub-block is divided into horizontal division, set the filter intensity value of the horizontal boundary of each sub-block to 0; or, set the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block to both Set to 0.
  • the boundary filter strength values of the transform blocks of multiple sub-blocks can be set according to the width or height of the current block.
  • the multiple sub-blocks are transformed
  • the boundary filter strength value of the block is set to non-zero. Otherwise, the boundary filter strength value of the transform blocks of the multiple sub-blocks is set to 0.
  • the threshold can be set according to actual needs. As an example, the threshold can be 32.
  • the boundary filter strength values of the transform blocks of multiple sub-blocks can also be set according to the shape of the current block, which is not limited in the embodiment of the present application.
  • a traditional intra-frame prediction method can be used to perform prediction processing on the current block, and then the predicted pixel information obtained using the traditional intra-frame prediction method and the pixel information of the reconstructed image can be weighted.
  • the predicted pixel information obtained by using the traditional intra-frame prediction method and the predicted pixel information determined by the above-mentioned ISP mode may also be weighted, which is not limited in the embodiment of the present application.
  • the priority of the cross-component linear model prediction prediction mode included in the candidate prediction mode list corresponding to the chroma block is higher than
  • the brightness prediction mode is the prediction mode in the candidate prediction mode list supported by the brightness block when the current block is a brightness block.
  • the cross-component linear model can predict the chrominance block well. Therefore, the cross-component linear model is used In the process of predicting the chroma block, when constructing the candidate prediction mode list corresponding to the chroma block, the prediction mode predicted by the cross-component linear model is ranked before the luma prediction mode.
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode.
  • Sub-blocks Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra sub-block prediction according to the target prediction mode to obtain the predicted pixel information of the multiple sub-blocks, and obtain the predicted pixel information of the multiple sub-blocks according to the original pixel information of the current block and the multiple The predicted pixel information of each sub-block determines the residual information of the current block.
  • the residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block.
  • not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
  • Fig. 10 shows an encoding method according to an exemplary embodiment.
  • the method may be applied to an encoding terminal device.
  • the method may include the following implementation steps:
  • Step 1001 When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
  • the implementation process is the same as step 701 in the embodiment of FIG. 7.
  • Step 1002 Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
  • the encoding terminal device determines the candidate prediction mode list.
  • the candidate prediction mode list may be determined based on the intra prediction modes of adjacent image blocks that have been reconstructed around the current block, the candidate prediction mode list includes multiple candidate prediction modes, and the multiple candidate prediction modes The priority of the candidates decreases in order according to the sequence in the candidate prediction mode list.
  • the method of constructing the candidate prediction mode list of the ISP mode is the same as that of the candidate prediction mode list of the non-ISP mode, that is, the method of constructing the candidate prediction mode list of the ISP mode can be compared with that of the non-ISP mode candidate prediction mode list.
  • the construction method of the candidate prediction mode list of the ISP mode is unified.
  • planar mode and the DC mode are in fixed positions in the candidate prediction mode list.
  • the adjacent image blocks that have been reconstructed around the current block are the upper adjacent image block A and the left adjacent image block B, and the number of candidate prediction modes is 6.
  • the default intra prediction mode of A or B is the Planar mode.
  • the intra prediction mode of A can be set here. It is denoted as ModeA, and the intra prediction mode of B is denoted as ModeB.
  • the candidate prediction mode list can be initialized.
  • the first candidate prediction mode in the candidate prediction mode list can be initialized as ModeA.
  • the second candidate prediction mode can be determined by judging whether the first candidate prediction mode is the Planar mode.
  • the candidate prediction mode is Planar mode, the second candidate prediction mode is DC mode, otherwise it is Planar mode.
  • the third candidate prediction mode is the vertical intra prediction mode, the fourth candidate prediction mode is the horizontal intra prediction mode, and the fifth candidate prediction mode is the adjacent mode of the vertical intra prediction mode.
  • the mode number can be The mode number of the vertical intra prediction mode is minus 4, and the sixth candidate prediction mode is an adjacent mode of the vertical intra prediction mode.
  • the mode number may be the mode number of the vertical intra prediction mode plus 4.
  • the first candidate prediction mode is ModeA;
  • the second candidate prediction mode is PLANAR_IDX
  • the third candidate prediction mode is DC_IDX
  • the fourth candidate prediction mode is the adjacent mode of ModeA.
  • the calculation method of the mode number may be: ((ModeA+offset)%mod)+2;
  • the fifth candidate prediction mode is the adjacent mode of ModeA.
  • the mode number calculation method can be: ((ModeA-1)%mod)+2;
  • the sixth candidate prediction mode is the adjacent mode of ModeA.
  • the mode number calculation method can be: ((ModeA+offset-1)%mod)+2;
  • the above offset can be set to 61, and the mod can be set to 64.
  • the candidate prediction mode list of the current block is constructed as follows:
  • the first candidate prediction mode is ModeA;
  • the second candidate prediction mode is ModeB;
  • ModeA and ModeB are neither Planar nor DC mode
  • the third candidate prediction mode is PLANAR_IDX
  • the fourth candidate prediction mode is DC_IDX
  • the difference between the mode numbers of ModeA and ModeB can be compared.
  • the fifth candidate prediction mode is the adjacent one of the two modes with the larger mode number.
  • the calculation method of the mode number can be: ((CandModeList[maxCandModeIdx]+offset)%mod)+2;
  • the sixth candidate prediction mode is the adjacent mode of the mode with the larger mode number among the two modes.
  • the mode number calculation method can be: ((CandModeList[maxCandModeIdx]-1)%mod)+2 ;
  • mpm[maxCandModeIdx] is the larger mode number of ModeA and ModeB.
  • the fifth candidate prediction mode is the adjacent mode of the larger mode number of the two modes, for example, the mode number
  • the calculation method of can be: ((CandModeList[maxCandModeIdx]+offset-1)%mod)+2;
  • the sixth candidate prediction mode is the adjacent mode of the mode with the larger mode number among the two modes.
  • the mode number calculation method can be: ((CandModeList[maxCandModeIdx])%mod)+2;
  • CandModeList[maxCandModeIdx] is the larger of ModeA and ModeB. It can be simply understood as taking adjacent intra prediction modes.
  • the first two candidate prediction modes may have two combinations of DC mode and angle mode, planar mode And the combination of angle mode.
  • the second candidate prediction mode is planar mode or DC mode.
  • the fourth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes.
  • the mode number calculation method can be: ((CandModeList[maxCandModeIdx]+offset)%mod )+2;
  • the fifth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes.
  • the mode number calculation method can be: ((CandModeList[maxCandModeIdx]-1)%mod )+2;
  • the sixth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes.
  • the mode number calculation method can be: ((CandModeList[maxCandModeIdx]+offset-1) %Mod)+2.
  • the above-mentioned core idea is to select the intra prediction mode adjacent to ModeA or ModeB as the candidate prediction mode of the current block.
  • adjacent image blocks may be one or more image blocks in an adjacent area, for example, may include second adjacent image blocks.
  • the sequence of candidate prediction modes in the candidate prediction mode list may be determined according to the sub-block division manner. As an example, if the current block starts intra sub-block division, if the candidate prediction mode list corresponding to the intra sub-block division includes the vertical prediction mode and the horizontal prediction mode, then when the current block supports the sub-block division mode as horizontal When dividing, the vertical prediction mode is placed before the horizontal prediction mode; when the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list may be a fixed list.
  • the candidate prediction mode list supported by the intra sub-block division mode is The fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
  • a fixed candidate list can be used as the candidate prediction mode of the current block.
  • the fixed first prediction mode candidate list may be:
  • the first candidate prediction mode planar mode
  • the second candidate prediction mode DC mode
  • the third candidate prediction mode vertical mode
  • the fourth candidate prediction mode horizontal mode
  • the fifth candidate prediction mode the adjacent mode of the vertical mode, the mode number can be the vertical mode number minus 4;
  • the sixth candidate prediction mode the adjacent mode of the vertical mode, the mode number can be the vertical mode number plus 4.
  • the fixed second prediction mode candidate list may be:
  • the first candidate prediction mode vertical prediction mode, for example, the mode number can be 50;
  • the second candidate prediction mode horizontal prediction mode, exemplary, the mode number can be 18;
  • the third candidate prediction mode horizontal prediction mode, for example, the mode number can be 2;
  • the fourth candidate prediction mode diagonal prediction mode, for example, the mode number can be 34;
  • the fifth candidate prediction mode non-diagonal prediction mode, for example, the mode number can be 66;
  • the sixth candidate prediction mode the horizontal prediction mode.
  • the mode number may be 26.
  • the candidate prediction mode list supported by the intra sub-block division mode is the spatially adjacent coded block of the current block Common candidate prediction mode list.
  • multiple current blocks in the reference range may share a candidate prediction mode list, and the reference range may be set according to actual requirements.
  • the current block can use a candidate prediction mode list with multiple adjacent current blocks.
  • the current block is image block 1, it can be based on the intra-frame of adjacent image blocks.
  • the prediction mode determines the candidate prediction mode list of the current block, and when the current block is the image block 2, 3, or 4, the candidate prediction mode list of the image block 1 can be used. It should be noted that this implementation is not limited to the ISP mode, and can also be applied to other modes, such as multi-line prediction mode, which is not limited in the embodiment of the present application.
  • the candidate prediction mode list of the neighboring block may also be obtained, and the obtained candidate prediction mode list is used as the candidate prediction mode list of the current block.
  • the Planar mode may be used as the target prediction mode of the current block.
  • the current block when the size of the current block is smaller than the set size, the current block can share a candidate prediction mode list with all other current blocks in the image to be encoded, and the set size can be set according to actual needs.
  • the set size is 4*4. That is to say, if the size of the current block is small enough, it can share a candidate prediction mode list with all other current blocks in the image to be encoded. In this case, it is only necessary to determine the first prediction mode in the image to be encoded.
  • the candidate prediction mode list of a block can use the candidate prediction mode list of the first block in subsequent current blocks, which reduces the amount of calculation and improves coding efficiency.
  • the candidate prediction mode list corresponding to the current block is the same as the above-mentioned fixed list or the candidate prediction mode list shared by neighboring coded blocks in the spatial domain of the current block. That is to say, when the intra sub-block division mode is not activated, the candidate prediction mode list supported by any of the above-mentioned intra sub-block division modes can be used.
  • the target prediction mode is determined based on the candidate prediction mode list.
  • the implementation process may include: using each candidate prediction mode pair in the candidate prediction mode list Perform prediction processing on the multiple sub-blocks to obtain multiple predicted pixel values corresponding to each candidate prediction mode; determine the rate distortion cost corresponding to each candidate prediction mode based on the multiple predicted pixel values corresponding to each candidate prediction mode; Select the candidate prediction mode corresponding to the smallest rate-distortion cost from all the obtained rate-distortion costs; determine the selected candidate prediction mode as the target prediction mode.
  • the multiple sub-blocks can share one intra-frame prediction mode, and the encoding end device can traverse and use each candidate prediction mode in the candidate prediction mode list to perform prediction processing on the multiple sub-blocks.
  • the prediction mode can determine the predicted pixel value of each sub-block in the multiple sub-blocks. Then you can determine the rate-distortion cost of the multiple predicted pixel values corresponding to each candidate prediction mode. The smaller the rate-distortion cost, the more suitable the corresponding candidate prediction mode is to predict the multiple sub-blocks. Therefore, the smallest rate-distortion cost corresponding The candidate prediction mode is used as the target prediction mode.
  • candidate prediction mode list includes candidate prediction mode 0, candidate prediction mode 1, candidate prediction mode 2, and candidate prediction mode 3.
  • the encoding end device uses candidate prediction mode 0 to perform prediction processing on the multiple sub-blocks to obtain candidate prediction modes Multiple predicted pixel values corresponding to 0; use candidate prediction mode 1 to perform prediction processing on the multiple sub-blocks to obtain multiple predicted pixel values corresponding to candidate prediction mode 1; use candidate prediction mode 2 to perform prediction processing on the multiple sub-blocks, Obtain multiple predicted pixel values corresponding to candidate prediction mode 2; and perform prediction processing on the multiple sub-blocks using candidate prediction mode 3 to obtain multiple predicted pixel values corresponding to candidate prediction mode 3.
  • the encoding end device determines the rate distortion cost corresponding to candidate prediction mode 0 based on multiple predicted pixel values corresponding to candidate prediction mode 0, and determines the rate distortion cost corresponding to candidate prediction mode 1 based on multiple predicted pixel values corresponding to candidate prediction mode 1 Determine the rate distortion cost corresponding to the candidate prediction mode 2 based on the multiple predicted pixel values corresponding to the candidate prediction mode 2, and determine the rate distortion cost corresponding to the candidate prediction mode 3 based on the multiple predicted pixel values corresponding to the candidate prediction mode 3. Assuming that the rate-distortion cost corresponding to candidate prediction mode 1 is the smallest, the encoding end device determines candidate prediction mode 1 as the target prediction mode.
  • Step 1003 Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine residual information of the current block according to original pixel information of the current block and predicted pixel information of the multiple sub-blocks.
  • the implementation process is the same as step 703 in the embodiment of FIG. 7 described above.
  • Step 1004 Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
  • the implementation process is the same as step 704 in the embodiment of FIG. 7 described above.
  • Step 1005 According to the transformed information, encode the current block to generate an encoded stream of the current block.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the encoding end device can be based on the target prediction mode in the candidate prediction mode list.
  • the index information determines the first indication information, and encodes the first indication information into the coded stream.
  • the encoding terminal device may select a context model for encoding the first indication information according to the size or shape of the current block, and then encode the first indication information based on the selected context model.
  • step also includes other possible implementation manners of step 705 in the embodiment of FIG. 7, which will not be repeated here.
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and according to the target sub-block division mode, Divide the current block into multiple sub-blocks. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block.
  • the residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block.
  • not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
  • Fig. 12 shows an encoding method according to an exemplary embodiment.
  • the encoding method may be applied to an encoding terminal device.
  • the method may include the following implementation steps:
  • Step 1201 When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
  • the implementation process is the same as step 701 in the embodiment of FIG. 7.
  • Step 1202 Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
  • the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list; as an example, the non-angle candidate mode list includes only Planar mode or Including only DC mode, the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or, the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode. Angle prediction modes other than Planar mode and DC mode.
  • the angular prediction mode and the non-angle prediction mode can be divided into two lists.
  • the angular candidate prediction mode list can be constructed, or the non-angle prediction mode can also be constructed List of patterns.
  • the non-angle candidate prediction mode list may include only Planar mode, or only DC mode
  • the angle candidate prediction mode list may include at least one angular prediction mode, for example, may include at least one vertical prediction mode, or It may also include at least one horizontal prediction mode, or alternatively, it may also include at least one vertical prediction mode and at least one horizontal prediction mode.
  • the non-angle candidate prediction mode list may include Planar mode and DC mode
  • the angle candidate prediction mode list may include at least one angular prediction mode.
  • it may include at least one vertical prediction mode, or may include at least One horizontal prediction mode, or alternatively, may also include at least one vertical prediction mode and at least one horizontal prediction mode.
  • the specific realization of determining the target prediction mode of the current block from the angular prediction mode or the non-angle prediction mode is the same as the realization principle of determining the target prediction mode of the current block from the candidate prediction mode list in FIG. 10.
  • the candidate prediction mode list corresponding to the current block is the same as the angular prediction mode, or the candidate prediction mode list corresponding to the current block is the same as the non-angle prediction mode. That is, when the intra sub-block division mode is not activated, any one of the candidate prediction mode lists described above can be used.
  • Step 1203 Perform intra sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the residual information of the current block according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
  • the implementation process is the same as step 703 in the embodiment of FIG. 7.
  • Step 1204 Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
  • the implementation process is the same as step 704 in the embodiment of FIG. 7.
  • Step 1205 According to the transformed information, encode the current block to generate an encoded stream of the current block.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current Whether the target prediction mode of the block is the angle prediction mode.
  • the encoding end device encodes the first indication information into the encoding stream during encoding. At home and abroad, the fourth indication information can also be added to the encoded stream.
  • step also includes other possible implementation manners of step 705 in the embodiment of FIG. 7, which will not be repeated here.
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode.
  • Sub-blocks Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block.
  • the residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block.
  • not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
  • FIG. 13 is a flowchart of a decoding method according to an exemplary embodiment.
  • the decoding method is applied to a decoding end device as an example.
  • the decoding method may include the following steps :
  • Step 1301 Obtain the encoding stream of the current block.
  • the decoding end device may receive the encoded stream sent by the encoding end device, and as another example, it may also read the encoded stream from the storage device.
  • Step 1302 When it is determined that the current block starts the intra-frame sub-block division mode according to the information carried in the encoding stream, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the prediction from the candidate prediction mode list of the current block Determine the target prediction mode of the current block in the mode.
  • the decoding end device parses the width and height of the current block carried in the encoded stream, and determines whether the intra-frame sub-block division mode is supported according to the width and height.
  • the intra-frame sub-block division mode is not activated. At this time, other modes can be used for decoding, such as multi-line prediction mode. Otherwise, when it is determined that the intra-frame sub-block division mode is supported, it is further determined whether the encoding end turns on the intra-frame sub-block division mode.
  • the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
  • the context model Analyze the third indication information in the encoded stream; wherein the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the encoding end device if it starts the intra-frame sub-block division mode, it will add third indication information to the encoded stream.
  • the third indication information is the flag of the ISP mode, and the decoding end device determines that the current block supports intra-frame sub-blocks. After the division mode, the third indication information is parsed, and when the third indication information exists, it may be determined to start the intra-frame sub-block division mode.
  • the context model when parsing the third indication information, can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the context model can be analyzed according to the determined context model.
  • the third instruction information when parsing the third indication information, the context model can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the context model can be analyzed according to the determined context model.
  • the third instruction information when parsing the third indication information, can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the context model can be analyzed according to the determined context model.
  • the context model when parsing the third indication information, can also be determined according to the shape of the current block, that is, it is not limited to determining the context model according to the aspect ratio of the current block, and it can also be considered according to the shape. .
  • the parsing order of the third indication information precedes the coding order of the multi-line prediction technology.
  • the order of intra_luma_ref_idx syntax and intra_subpartitions_mode_flag syntax of the multi-line prediction technology can be modified so that the parsing order of the third indication information precedes the coding order of the multi-line prediction technology, for example, the original table 8
  • the code is changed as shown in Table 9:
  • the encoded stream may not carry the second indication information, and the decoding end device determines the target sub-block division mode from the sub-block division modes supported by the current block.
  • the supported seed block division method can be directly determined as the target sub-block division method.
  • the horizontal division can be directly determined as the target sub-block division mode.
  • the vertical division mode can be directly determined as the target sub-block division mode.
  • the encoded stream also carries second indication information, The second indication information is used to indicate the target sub-block division mode.
  • the method further includes: analyzing the second indication information in the encoded stream according to a context model; wherein, determining the context model according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the coded stream also includes second indication information, which is used for Indicates the sub-block division method adopted by the encoding device.
  • the decoding end device when the decoding end device determines that the current block supports both horizontal division and vertical division, it parses the second indication information in the encoded stream and determines the sub-block division mode indicated by the second indication information as The way the target sub-block is divided.
  • the context model can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the second indication can be parsed according to the determined context model information.
  • the context model when parsing the second indication information, can also be determined based on the shape of the current block, that is, it is not limited to determining the context model based on the aspect ratio of the current block, and it can also be considered based on the shape. .
  • the encoding terminal device determines the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
  • the candidate prediction mode list includes only one candidate prediction mode, it may not be indicated to use this candidate prediction mode as the target prediction mode.
  • the candidate prediction mode list only includes the Planar mode
  • the Planar mode can be used as the target prediction mode.
  • the target sub-block division method is horizontal division
  • the candidate prediction mode list only includes the horizontal mode, and in this case, the horizontal mode is determined as the target prediction mode.
  • the target sub-block division method is vertical division
  • the candidate prediction mode list includes only the vertical mode, and in this case, the vertical mode is determined as the target prediction mode.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the index information of the target prediction mode in the candidate prediction mode list can also be parsed from the information in the encoded stream, and according to the index information, from the multiple The target prediction mode is determined in the candidate prediction mode list.
  • a context model may be determined according to the shape or size of the current block, and the first indication information may be parsed based on the determined context model.
  • the sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-blocks supported by the current block The block division method is horizontal division; if the width and height of the current block is 8*N, and N is greater than or equal to 4, the sub-block division method supported by the current block is horizontal division; or, the sub-block division method supported by the current block Including vertical division and horizontal division at the same time, the vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode.
  • the candidate sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, then The current block does not support vertical division, but only supports horizontal division; if the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division and only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or, if the current block starts the intra-frame sub-block division mode, the Multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes: if the current block starts the intra sub-block division, the candidate prediction mode list corresponding to the intra sub-block division includes vertical Class prediction mode and horizontal class prediction mode, when the sub-block division mode supported by the current block is horizontal division, the vertical class prediction mode is located before the horizontal class prediction mode; when the sub-block division mode supported by the current block is During vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra sub-block division mode is a predefined fixed list; wherein, the fixed list only includes the Planar prediction mode; or, if the current block The target sub-block division mode of is horizontal division, then the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only includes the vertical mode.
  • the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list; wherein, the non-angle candidate mode list only includes Planar Mode or only DC mode, the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one Angle prediction modes other than Planar mode and DC mode.
  • the candidate prediction mode list supported by the intra sub-block division mode is the spatial neighboring coded of the current block A list of candidate prediction modes shared by the block.
  • the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of each prediction mode.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current Whether the target prediction mode of the block is the angle prediction mode.
  • the decoder device parses the fourth Instructions. For example, when the fourth indication information indicates an angle candidate prediction mode list, an angle candidate prediction mode list is constructed, so that the target prediction mode is determined based on the angle candidate prediction mode list and the first indication information. When the fourth indication information indicates a non-angle candidate mode list, a non-angle candidate prediction mode list is constructed, and the target prediction mode is determined based on the non-angle candidate prediction mode list and the first indication information.
  • the target prediction mode it is also possible to select the target prediction mode directly based on the first indication information from the angle candidate prediction mode list or the non-angle candidate prediction mode list that has been constructed. If the target prediction mode is not the default one, it is the angle candidate prediction mode list or the non-angle candidate prediction mode list.
  • One of the multiple prediction modes in the candidate prediction mode list may also determine the target prediction mode by analyzing the index information carried in the coded stream.
  • the encoded stream carries fifth indication information
  • the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
  • the method further includes: parsing the fifth indication information according to a context model, the context model being determined according to the division depth of the plurality of sub-blocks, when the division depth of the plurality of sub-blocks is 0, adopting the first context model, and the plurality of sub-blocks When the division depth of is not 0, the second context model is used, and the first context model is different from the second context model.
  • the fifth indication information may be used to indicate whether there is residual information in the current block or sub-blocks of the current block.
  • the fifth indication information is CBF (Coded block flag, coded block flag). Block ID) value flag, the decoder will parse the fifth indication information to determine whether there is residual information.
  • the decoder device will consider that it contains at least one non-zero CBF block. Based on this, if there are n sub-blocks, but the first n-1 sub-blocks are all zero CBF, then the last line The CBF of the sub-block is 1 by default. In this case, the encoding end may not transmit the CBF value of the last sub-block.
  • a context model is determined according to the division depth of the multiple sub-blocks, and the first context model is different from the second context model. It is worth mentioning that the context model of the CBF for the residual decoding of the current block is selected according to the division depth of the transform block, rather than based on the CBF value of the previous sub-block. This can avoid the need for context model selection to rely on before and after The question of the relevance of sub-blocks.
  • Step 1303 According to the target sub-block division mode, divide the current block into multiple sub-blocks.
  • Step 1304 Perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks.
  • This process is opposite to the transformation and quantization process at the encoding end. In this way, the residual information of the multiple sub-blocks can be determined, so that the image can be reconstructed according to the residual information.
  • Step 1305 Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
  • intra-frame prediction may be performed on the multiple sub-blocks respectively according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
  • Step 1306 Determine the reconstructed image of the current block according to the residual information and predicted pixel information corresponding to the multiple sub-blocks.
  • a filter can be used to filter the boundary of the sub-block.
  • the boundary filter intensity value of the sub-block is determined according to the target sub-block division mode, and the reconstructed image is filtered according to the boundary filter intensity value .
  • the realization of determining the boundary filter strength value of the sub-block may include: when the target sub-block division mode is vertical division, filtering the vertical boundary of each sub-block The intensity value is set to 0; or, when the target sub-block division method is horizontal division, the filter intensity value of the horizontal boundary of each sub-block is set to 0; or the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block Both are set to 0.
  • the boundary filter strength values of the transform blocks of multiple sub-blocks can be set according to the width or height of the current block (as shown in Figure 14).
  • the width or height of the current block is greater than a certain threshold, the boundary filter strength values of the transform blocks of the multiple sub-blocks are set to non-zero, for example, set to 32. Otherwise, the boundary filter strength value of the transform blocks of the multiple sub-blocks is set to 0.
  • the boundary filter strength values of the transform blocks of multiple sub-blocks can also be set according to the shape of the current block, which is not limited in the embodiment of the present application.
  • a traditional intra-frame prediction method can be used to perform prediction processing on the current block, and then the predicted pixel information obtained using the traditional intra-frame prediction method and the pixel information of the reconstructed image can be weighted.
  • the predicted pixel information obtained by using the traditional intra-frame prediction method and the predicted pixel information determined by the above-mentioned ISP mode may also be weighted, which is not limited in the embodiment of the present application.
  • the priority of the prediction mode included in the cross-component linear model prediction is higher than that added to the candidate prediction mode list Brightness prediction mode.
  • the cross-component linear model can predict the chrominance block well. Therefore, the cross-component linear model is used In the process of predicting the chrominance block, a list of candidate prediction modes corresponding to the chrominance block is constructed, and the prediction modes predicted by the cross-component linear model are ranked before the luminance prediction mode.
  • Fig. 15 is a schematic structural diagram showing an encoding device according to an exemplary embodiment.
  • the encoding device can be implemented by software, hardware or a combination of both.
  • the encoding device may include:
  • the first determining module 1510 is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the current block starts the intra-frame sub-block division mode, and divide the current block according to the target sub-block division mode. Divided into multiple sub-blocks;
  • the second determining module 1520 is configured to determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block;
  • the first prediction module 1530 is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the predicted pixel information according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks. State the residual information of the current block;
  • the transformation module 1540 is configured to transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information
  • the encoding module 1550 is configured to encode the current block according to the transformed information to generate an encoding stream of the current block.
  • the sub-block division modes supported by the current block include:
  • the sub-block division mode supported by the current block is horizontal division
  • the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode if the width and height dimensions of the current block are 64*64.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
  • the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 predictions The first prediction mode list or the second prediction mode list of modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode in any one of the foregoing items.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the encoded stream if the current block starts the intra sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra sub-block Partition mode.
  • the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode.
  • the encoding module is further used to:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the first The fourth indication information is used to indicate whether the target prediction mode of the current block is an angle prediction mode.
  • the encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
  • the encoded stream carries fifth indication information
  • the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information
  • the encoding module is also used for:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • the transformation module is further used to:
  • filtering the reconstructed image includes: when the intra-frame sub-block division mode is activated for the current block, determining the boundary filter strength value of the sub-block according to the target sub-block division mode;
  • the transformation module is further used to:
  • the filter strength value of the vertical boundary of each sub-block is set to 0;
  • the filter strength value of the horizontal boundary of each sub-block is set to 0;
  • the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode.
  • Sub-blocks Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra sub-block prediction according to the target prediction mode to obtain the predicted pixel information of the multiple sub-blocks, and obtain the predicted pixel information of the multiple sub-blocks according to the original pixel information of the current block and the multiple The predicted pixel information of each sub-block determines the residual information of the current block.
  • the residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block.
  • not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
  • Fig. 16 is a schematic structural diagram showing a decoding device according to an exemplary embodiment.
  • the decoding device may be implemented by software, hardware or a combination of both.
  • the decoding device may include:
  • the obtaining module 1610 is used to obtain the encoding stream of the current block
  • the third determining module 1620 is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the current block starts the intra-frame sub-block division mode according to the information carried in the coded stream, and determine the target sub-block division mode from the current block candidate Determine the target prediction mode of the current block in the prediction modes of the prediction mode list;
  • a sub-block division module 1630 configured to divide the current block into multiple sub-blocks according to the target sub-block division mode
  • An inverse quantization transformation module 1640 configured to perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
  • the second prediction module 1650 is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
  • the fourth determining module 1660 is configured to determine the reconstructed image of the current block according to the residual information and predicted pixel information corresponding to the multiple sub-blocks.
  • the sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*N and N is greater than 4, the current block supports The sub-block division mode of the current block is horizontal division; if the width and height of the current block is 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the current block supports
  • the sub-block division method includes both vertical division and horizontal division, and the vertical division can only be divided into two sub-blocks.
  • the current block does not support the intra sub-block division mode.
  • the candidate sub-block division modes supported by the current block include:
  • the current block does not support vertical division, but only supports horizontal division
  • the current block does not support horizontal division, but only supports vertical division.
  • the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
  • the multiple sub-blocks are obtained according to multi-level division.
  • the candidate prediction mode list of the current block includes:
  • the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode
  • the horizontal prediction mode is placed before the vertical prediction mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list
  • the fixed list only includes Planar prediction mode
  • the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
  • the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
  • the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
  • the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
  • the candidate prediction mode list supported by the intra sub-block division mode is the spatial phase of the current block.
  • the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed The list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
  • the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra subblock division mode.
  • the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
  • the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode
  • the method also includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra sub-block Division mode; the method further includes:
  • the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
  • the parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
  • the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
  • the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or multiple sub-blocks of the current block;
  • the inverse quantization transform module is used for:
  • the context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
  • the fourth determining module when the intra-frame sub-block division mode is activated by the current block, the fourth determining module is used to;
  • the fourth determining module is configured to:
  • the filter strength value of the vertical boundary of each sub-block is set to 0;
  • the filter strength value of the horizontal boundary of each sub-block is set to 0;
  • the above-mentioned multi-line prediction technology refers to the reconstruction of multiple rows of adjacent blocks of the current block as reference pixel values
  • the above-mentioned multi-line prediction technology refers to the reconstruction of multiple columns of adjacent blocks of the current block.
  • the above-mentioned multi-line prediction technique refers to using multiple rows and multiple columns reconstructed from adjacent blocks of the current block as reference pixel values. Or, use the reconstructed row of the neighboring block of the current block as the reference pixel value, or use the reconstructed column of the neighboring block of the current block as the reference pixel value, or combine the reconstructed row of the neighboring block of the current block and One column is used as the reference pixel value. For example, referring to FIG. 17, any one of reference rows 0, 1, 2 or 3 can be used as the reference pixel value of the current block.
  • the candidate prediction mode list of the neighboring block may also be obtained, and the obtained candidate prediction mode list is used as the candidate prediction mode list of the current block.
  • the Planar mode may be used as the target prediction mode of the current block.
  • Planar mode may be fixed as the first candidate prediction mode in the candidate prediction mode list.
  • FIG. 18 shows a structural block diagram of a terminal 1700 provided by an exemplary embodiment of the present application.
  • the terminal 1700 may be a laptop computer or a desktop computer.
  • the terminal 1700 may also be called user equipment, portable terminal, laptop terminal, desktop terminal and other names.
  • the terminal 1700 includes a processor 1701 and a memory 1702.
  • the processor 1701 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and so on.
  • the processor 1701 can adopt at least one hardware form among DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array, Programmable Logic Array). achieve.
  • the processor 1701 may also include a main processor and a coprocessor.
  • the main processor is a processor used to process data in the wake state, also called a CPU (Central Processing Unit, central processing unit); the coprocessor is A low-power processor used to process data in the standby state.
  • the processor 1701 may be integrated with a GPU (Graphics Processing Unit, image processor), and the GPU is used to render and draw content that needs to be displayed on the display screen.
  • the processor 1701 may further include an AI (Artificial Intelligence) processor, and the AI processor is used to process calculation operations related to machine learning.
  • AI Artificial Intelligence
  • the memory 1702 may include one or more computer-readable storage media, which may be non-transitory.
  • the memory 1702 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices.
  • the non-transitory computer-readable storage medium in the memory 1702 is used to store at least one instruction, and the at least one instruction is used to be executed by the processor 1701 to implement the method provided in the method embodiment of the present application.
  • the terminal 1700 may optionally further include: a peripheral device interface 1703 and at least one peripheral device.
  • the processor 1701, the memory 1702, and the peripheral device interface 1703 may be connected by a bus or a signal line.
  • Each peripheral device can be connected to the peripheral device interface 1703 through a bus, a signal line, or a circuit board.
  • the peripheral device includes: at least one of a radio frequency circuit 1704, a touch display screen 1705, a camera 1706, an audio circuit 1707, a positioning component 1708, and a power supply 1709.
  • the peripheral device interface 1703 may be used to connect at least one peripheral device related to I/O (Input/Output) to the processor 1701 and the memory 1702.
  • the processor 1701, the memory 1702, and the peripheral device interface 1703 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 1701, the memory 1702, and the peripheral device interface 1703 or The two can be implemented on separate chips or circuit boards, which are not limited in this embodiment.
  • the radio frequency circuit 1704 is used to receive and transmit RF (Radio Frequency, radio frequency) signals, also called electromagnetic signals.
  • the radio frequency circuit 1704 communicates with a communication network and other communication devices through electromagnetic signals.
  • the radio frequency circuit 1704 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals.
  • the radio frequency circuit 1704 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, and so on.
  • the radio frequency circuit 1704 can communicate with other terminals through at least one wireless communication protocol.
  • the wireless communication protocol includes but is not limited to: World Wide Web, Metropolitan Area Network, Intranet, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area network and/or WiFi (Wireless Fidelity, wireless fidelity) network.
  • the radio frequency circuit 1704 may also include NFC (Near Field Communication) related circuits, which is not limited in this application.
  • the display screen 1705 is used to display UI (User Interface).
  • the UI can include graphics, text, icons, videos, and any combination thereof.
  • the display screen 1705 also has the ability to collect touch signals on or above the surface of the display screen 1705.
  • the touch signal may be input to the processor 1701 as a control signal for processing.
  • the display screen 1705 may also be used to provide virtual buttons and/or virtual keyboards, also called soft buttons and/or soft keyboards.
  • the display screen 1705 there may be one display screen 1705, which is provided with the front panel of the terminal 1700; in other embodiments, there may be at least two display screens 1705, which are respectively arranged on different surfaces of the terminal 1700 or in a folded design; In still other embodiments, the display screen 1705 may be a flexible display screen, which is arranged on the curved surface or the folding surface of the terminal 1700. Furthermore, the display screen 1705 can also be set as a non-rectangular irregular pattern, that is, a special-shaped screen.
  • the display screen 1705 may be made of materials such as LCD (Liquid Crystal Display), OLED (Organic Light-Emitting Diode, organic light-emitting diode).
  • the camera assembly 1706 is used to capture images or videos.
  • the camera assembly 1706 includes a front camera and a rear camera.
  • the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal.
  • the camera assembly 1706 may also include a flash.
  • the flash can be a single-color flash or a dual-color flash. Dual color temperature flash refers to a combination of warm light flash and cold light flash, which can be used for light compensation under different color temperatures.
  • the audio circuit 1707 may include a microphone and a speaker.
  • the microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals and input them to the processor 1701 for processing, or input to the radio frequency circuit 1704 to implement voice communication. For the purpose of stereo collection or noise reduction, there may be multiple microphones, which are respectively set in different parts of the terminal 1700.
  • the microphone can also be an array microphone or an omnidirectional acquisition microphone.
  • the speaker is used to convert the electrical signal from the processor 1701 or the radio frequency circuit 1704 into sound waves.
  • the speaker can be a traditional membrane speaker or a piezoelectric ceramic speaker.
  • the speaker When the speaker is a piezoelectric ceramic speaker, it can not only convert the electrical signal into human audible sound waves, but also convert the electrical signal into human inaudible sound waves for purposes such as distance measurement.
  • the audio circuit 1707 may also include a headphone jack.
  • the positioning component 1708 is used to locate the current geographic location of the terminal 1700 to implement navigation or LBS (Location Based Service, location-based service).
  • the positioning component 1708 may be a positioning component based on the GPS (Global Positioning System, Global Positioning System) of the United States, the Beidou system of China, or the Galileo system of Russia.
  • the power supply 1709 is used to supply power to various components in the terminal 1700.
  • the power source 1709 may be alternating current, direct current, disposable batteries or rechargeable batteries.
  • the rechargeable battery may be a wired rechargeable battery or a wireless rechargeable battery.
  • a wired rechargeable battery is a battery charged through a wired line
  • a wireless rechargeable battery is a battery charged through a wireless coil.
  • the rechargeable battery can also be used to support fast charging technology.
  • the terminal 1700 further includes one or more sensors 1710.
  • the one or more sensors 1710 include, but are not limited to: an acceleration sensor 1711, a gyroscope sensor 1717, a pressure sensor 1713, a fingerprint sensor 1714, an optical sensor 1715, and a proximity sensor 1716.
  • the acceleration sensor 1711 can detect the magnitude of acceleration on the three coordinate axes of the coordinate system established by the terminal 1700.
  • the acceleration sensor 1711 can be used to detect the components of the gravitational acceleration on three coordinate axes.
  • the processor 1701 may control the touch screen 1705 to display the user interface in a horizontal view or a vertical view according to the gravity acceleration signal collected by the acceleration sensor 1711.
  • the acceleration sensor 1711 can also be used for game or user motion data collection.
  • the gyroscope sensor 1712 can detect the body direction and rotation angle of the terminal 1700, and the gyroscope sensor 1712 can cooperate with the acceleration sensor 1711 to collect the user's 3D actions on the terminal 1700. Based on the data collected by the gyroscope sensor 1712, the processor 1701 can implement the following functions: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.
  • the pressure sensor 1713 may be disposed on the side frame of the terminal 1700 and/or the lower layer of the touch screen 1705.
  • the processor 1701 performs left and right hand recognition or quick operation according to the holding signal collected by the pressure sensor 1713.
  • the processor 1701 controls the operability controls on the UI interface according to the pressure operation of the user on the touch display screen 1705.
  • the operability control includes at least one of a button control, a scroll bar control, an icon control, and a menu control.
  • the fingerprint sensor 1714 is used to collect the user's fingerprint.
  • the processor 1701 can identify the user's identity according to the fingerprint collected by the fingerprint sensor 1714, or the fingerprint sensor 1714 can identify the user's identity according to the collected fingerprint. When it is recognized that the user's identity is a trusted identity, the processor 1701 authorizes the user to perform related sensitive operations, including unlocking the screen, viewing encrypted information, downloading software, paying, and changing settings.
  • the fingerprint sensor 1714 may be provided on the front, back or side of the terminal 1700. When a physical button or a manufacturer logo is provided on the terminal 1700, the fingerprint sensor 1714 can be integrated with the physical button or the manufacturer logo.
  • the optical sensor 1715 is used to collect the ambient light intensity.
  • the processor 1701 may control the display brightness of the touch screen 1705 according to the intensity of the ambient light collected by the optical sensor 1715. Exemplarily, when the ambient light intensity is high, the display brightness of the touch screen 1705 is increased; when the ambient light intensity is low, the display brightness of the touch screen 1705 is decreased.
  • the processor 1701 may also dynamically adjust the shooting parameters of the camera assembly 1706 according to the ambient light intensity collected by the optical sensor 1715.
  • the proximity sensor 1716 also called a distance sensor, is usually arranged on the front panel of the terminal 1700.
  • the proximity sensor 1716 is used to collect the distance between the user and the front of the terminal 1700.
  • the processor 1701 controls the touch screen 1705 to switch from the on-screen state to the off-screen state; when the proximity sensor 1716 detects When the distance between the user and the front of the terminal 1700 gradually increases, the processor 1701 controls the touch display screen 1705 to switch from the rest screen state to the bright screen state.
  • FIG. 18 does not constitute a limitation on the terminal 1700, and may include more or fewer components than shown in the figure, or combine some components, or adopt different component arrangements.
  • the embodiments of the present application also provide a non-transitory computer-readable storage medium.
  • the instructions in the storage medium are executed by the processor of the mobile terminal, the mobile terminal can execute the methods provided in the foregoing embodiments.
  • the embodiments of the present application also provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the methods provided in the foregoing embodiments.

Landscapes

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

Abstract

The present application relates to the technical field of data processing. Disclosed are an encoding method and device, and a decoding method and device. The method comprises: when a current block starts an intra sub-block sub-partition mode, determining a target sub-block sub-partition mode from sub-block sub-partition modes supported by the current block, and partitioning the current block into a plurality of sub-blocks according to the target sub-block sub-partition mode; determining a target prediction mode of the current block from prediction modes of a candidate prediction mode list of the current block, performing intra sub-block prediction according to the target prediction mode to obtain prediction pixel information of the plurality of sub-blocks, and determining residual information of the current block according to original pixel information of the current block and the prediction pixel information of the plurality of sub-blocks; transforming the residual information according to a transformation mode supported by the plurality of sub-blocks, and encoding the current block according to the transformed information to generate an encoding stream of the current block. According to the present application, the problem of relatively high processing costs of hardware on the sub-blocks partitioned by means of a certain sub-partition mode can be avoided.

Description

编码方法、解码方法及装置Coding method, decoding method and device
本申请要求于2019年03月11日提交的申请号为201910181501.7、发明名称为“编码方法、解码方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application with the application number 201910181501.7 and the invention title "Encoding Method, Decoding Method and Device" filed on March 11, 2019, the entire content of which is incorporated into this application by reference.
技术领域Technical field
本申请涉及数据处理技术领域,特别涉及一种编码方法、解码方法及装置。This application relates to the field of data processing technology, and in particular to an encoding method, decoding method and device.
背景技术Background technique
目前,ISP(Intra sub-block sub-partitions,帧内子块划分)技术在图像编码中得到广泛应用,该ISP技术的原理是将一个图像块划分成多个子块,以基于该多个子块进行预测、变换、量化、编码一系列处理。At present, ISP (Intra sub-block sub-partitions) technology is widely used in image coding. The principle of this ISP technology is to divide an image block into multiple sub-blocks to make predictions based on the multiple sub-blocks. , Transformation, quantization, and coding.
在一些实施例中,对于支持ISP技术的图像块的子块划分方式一般包括水平方式和垂直方式。譬如,对于一个16*8的图像块来说,按照水平方式可以被划分成4个16*2的子块,按照垂直方式可以被划分成4个4*8子块。另外,对于一个4*8的图像块来说,按照水平方式可以被划分成2个4*4块,按照垂直方式可以被划分成2个2*8的子块。之后,可以由硬件基于得到的子块进行一系列处理。In some embodiments, the sub-block division mode for the image block supporting the ISP technology generally includes a horizontal mode and a vertical mode. For example, for a 16*8 image block, it can be divided into four 16*2 sub-blocks in a horizontal manner, and four 4*8 sub-blocks in a vertical manner. In addition, for a 4*8 image block, it can be divided into two 4*4 blocks in a horizontal manner, and can be divided into two 2*8 sub-blocks in a vertical manner. After that, the hardware can perform a series of processing based on the obtained sub-blocks.
在上述实现方式中,由于支持ISP技术的图像块的子块划分方式包括水平方式和垂直方式,然而,按照某种子块划分方式划分后,可能导致硬件对一些尺寸子块的处理代价较大。In the foregoing implementation manner, since the sub-block division modes of the image block supporting the ISP technology include a horizontal mode and a vertical mode, however, after dividing according to a certain sub-block division mode, it may cause the hardware to process some size sub-blocks more expensively.
发明内容Summary of the invention
本申请实施例提供了一种编码方法、解码方法、装置、设备及存储介质,可以解决相关技术中硬件对一些尺寸子块的处理代交较大的问题。所述技术方案如下:The embodiments of the present application provide an encoding method, a decoding method, a device, a device, and a storage medium, which can solve the problem of relatively large processing of some size sub-blocks by hardware in related technologies. The technical solution is as follows:
第一方面,提供了一种编码方法,所述方法包括:In the first aspect, an encoding method is provided, and the method includes:
当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照所述目标子块划分方式,将所述当前块划分成多个子块;When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode;
从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;Determining the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block;
根据所述目标预测模式进行帧内子块预测得到所述多个子块的预测像素信息,根据当前块的原始像素信息和所述多个子块的预测像素信息确定所述当前块的残差信息;Performing intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determining residual information of the current block according to original pixel information of the current block and predicted pixel information of the multiple sub-blocks;
根据所述多个子块支持的变换方式对所述残差信息进行变换,得到变换后的信息;Transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information;
根据所述变换后的信息,对所述当前块进行编码生成当前块的编码流。According to the transformed information, the current block is encoded to generate an encoded stream of the current block.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:If the current block starts the intra-frame sub-block division mode, the sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;If the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division;
若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分,或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。If the width and height dimensions of the current block are 8*N and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division, or the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
在本申请一种可能的实现方式中,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。In a possible implementation of the present application, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:If the current block starts the intra-frame sub-block division mode, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂 直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,In a possible implementation of the present application, if the intra-frame sub-block division mode is activated for the current block, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:When the intra sub-block division mode is activated by the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。When the intra-frame sub-block division mode is activated by the current block, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则所述帧内子块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。When the intra sub-block division mode is activated by the current block, if the current block size is less than the set size, the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of prediction modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块未启动帧内子块划分模式时,当前块对应的所述候选预测模式列表与所述帧内子块划分模式支持的候选预测模式列表相同。When the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。The encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式。If the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式。If the current block starts the intra-frame sub-block division mode, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries second indication information, and the second indication information is used for Indicates the division method of the target sub-block.
在本申请一种可能的实现方式中,所述编码流中携带所述第三指示信息时,在生成所述编码流之前还包括:In a possible implementation manner of the present application, when the encoded stream carries the third indication information, before generating the encoded stream, the method further includes:
按照上下文模型对所述第三指示信息进行编码;Encode the third indication information according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述对所述第三指示信息进行编码,包括:The encoding the third indication information includes:
所述第三指示信息的编码顺序先于多行预测技术的编码顺序。The coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。If the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个子块是否存在残差信息。The encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个个子块是否存在残差信息,在生成所述编码流之前,所述方法还包括:If the coded stream carries fifth indication information, the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information, before generating the coded stream, The method also includes:
按照上下文模型对所述第五指示信息进编码;Encode the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述根据所述多个子块支持的变换方式对所述残差信息进行变换之后,所述方法还包括:After the residual information is transformed according to the transformation modes supported by the multiple sub-blocks, the method further includes:
对变换后的信息进行量化处理,对量化处理后的数据进行反量化、反变换处理,得到反变换结果;Perform quantization processing on the transformed information, and perform inverse quantization and inverse transformation processing on the quantized data to obtain the inverse transformation result;
基于反变换结果确定当前块的重构图像;Determine the reconstructed image of the current block based on the inverse transform result;
对所述重构图像进行滤波;Filtering the reconstructed image;
其中,对所述重构图像进行滤波,包括:Wherein, filtering the reconstructed image includes:
当所述当前块启动帧内子块划分模式时,根据所述目标子块划分方式,确定子块的边界滤波强度值;When the intra-frame sub-block division mode is activated by the current block, determine the boundary filter strength value of the sub-block according to the target sub-block division mode;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,In a possible implementation of this application,
根据所述当前块的目标子块划分方式,确定子块的边界滤波强度值,包括:According to the target sub-block division mode of the current block, determining the boundary filter strength value of the sub-block includes:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者,When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or,
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者,When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or,
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
第二方面,提供了一种解码方法,所述方法包括:In a second aspect, a decoding method is provided, and the method includes:
获取当前块的编码流;Get the encoding stream of the current block;
当根据所述编码流中携带的信息确定当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;When it is determined that the current block starts the intra-frame sub-block division mode according to the information carried in the encoding stream, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the target sub-block division mode is determined from the prediction modes in the candidate prediction mode list of the current block. Determine the target prediction mode of the current block;
按照所述目标子块划分方式,将所述当前块划分成多个子块;Dividing the current block into multiple sub-blocks according to the target sub-block dividing manner;
根据所述多个子块对所述编码流进行反量化和反变换,得到所述多个子块对应的残差信 息;Performing inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
根据所述目标预测模式进行帧内子块预测,得到所述多个子块的预测像素信息;Performing intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
根据所述多个子块对应的残差信息和所述预测像素信息,确定所述当前块的重构图像。Determine the reconstructed image of the current block according to the residual information corresponding to the multiple sub-blocks and the predicted pixel information.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;If the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division;
若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分;或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。If the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
在本申请一种可能的实现方式中,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。In a possible implementation of the present application, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,In a possible implementation of the present application, if the intra-frame sub-block division mode is activated for the current block, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:In a possible implementation manner of this application, when the intra sub-block division mode is activated by the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;In a possible implementation manner of this application, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;In a possible implementation manner of the present application, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。In a possible implementation of this application, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is all A list of candidate prediction modes shared by neighboring coded blocks in the spatial domain of the current block.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则所述帧内子块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。In a possible implementation of this application, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is A fixed list, where the fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
在本申请一种可能的实现方式中,当所述当前块未启动帧内子块划分模式时,当前块对 应的所述候选预测模式列表与所述帧内子块划分模式支持的候选预测模式列表相同。In a possible implementation of the present application, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode .
在本申请一种可能的实现方式中,所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。In a possible implementation manner of the present application, the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式;In a possible implementation manner of this application, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode;
所述方法还包括:The method also includes:
按照上下文模型解析所述编码流中的所述第二指示信息;Parse the second indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式;所述方法还包括:If the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra-frame sub-block division mode; the method further includes:
按照上下文模型解析所述编码流中的所述第三指示信息;Parse the third indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述第三指示信息的解析顺序先于多行预测技术的编码顺序。The parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。If the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的子块是否存在残差信息;所述方法还包括:The encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether there is residual information in the current block or a sub-block of the current block; the method further includes:
按照上下文模型解析所述第五指示信息;Parse the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,根据所述目标子块划分方式,确定子块的边界滤波强度值;When the intra-frame sub-block division mode is activated by the current block, determine the boundary filter strength value of the sub-block according to the target sub-block division mode;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,In a possible implementation of this application,
根据所述当前块的目标子块划分方式,确定子块的边界滤波强度值,包括:According to the target sub-block division mode of the current block, determining the boundary filter strength value of the sub-block includes:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
第三方面,提供了一种编码装置,所述装置包括:In a third aspect, an encoding device is provided, and the device includes:
第一确定模块,用于当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照所述目标子块划分方式,将所述当前块划分成多个子块;The first determining module is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the intra-frame sub-block division mode is activated by the current block, and divide the current block according to the target sub-block division mode Into multiple sub-blocks;
第二确定模块,用于从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;The second determining module is configured to determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block;
第一预测模块,用于根据所述目标预测模式进行帧内子块预测得到所述多个子块的预测 像素信息,根据当前块的原始像素信息和所述多个子块的预测像素信息确定所述当前块的残差信息;The first prediction module is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the current pixel information based on the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks. The residual information of the block;
变换模块,用于根据所述多个子块支持的变换方式对所述残差信息进行变换,得到变换后的信息;A transformation module, configured to transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information;
编码模块,用于根据所述变换后的信息,对所述当前块进行编码生成当前块的编码流。The encoding module is configured to encode the current block according to the transformed information to generate an encoding stream of the current block.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;If the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division;
若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分;或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。If the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
在本申请一种可能的实现方式中,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。In a possible implementation of the present application, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:If the current block starts the intra-frame sub-block division mode, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:When the intra sub-block division mode is activated by the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块 划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。When the intra-frame sub-block division mode is activated by the current block, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则所述帧内子块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。When the intra sub-block division mode is activated by the current block, if the current block size is less than the set size, the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of prediction modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块未启动帧内子块划分模式时,当前块对应的所述候选预测模式列表与上述任一项所述帧内子块划分模式支持的候选预测模式列表相同。When the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode in any one of the foregoing items.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。The encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式。If the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式。If the current block starts the intra-frame sub-block division mode, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries second indication information, and the second indication information is used for Indicates the division method of the target sub-block.
在本申请一种可能的实现方式中,所述编码模块还用于:In a possible implementation manner of this application, the encoding module is further used to:
按照上下文模型对所述第三指示信息进行编码;Encode the third indication information according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,所述第三指示信息的编码顺序先于多行预测技术的编码顺序。In a possible implementation manner of the present application, the coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。In a possible implementation of the present application, if the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the first The fourth indication information is used to indicate whether the target prediction mode of the current block is an angle prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的子块是否存在残差信息。The encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or a sub-block of the current block.
在本申请一种可能的实现方式中,若所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个个子块是否存在残差信息,所述编码模块还用于:In a possible implementation manner of this application, if the encoded stream carries fifth indication information, the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residuals Information, the encoding module is also used to:
按照上下文模型对所述第五指示信息进编码;Encode the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,所述变换模块还用于:In a possible implementation manner of this application, the transformation module is further used to:
对变换后的信息进行量化处理,对量化处理后的数据进行反量化、反变换处理,得到反变换结果;Perform quantization processing on the transformed information, and perform inverse quantization and inverse transformation processing on the quantized data to obtain the inverse transformation result;
基于反变换结果确定当前块的重构图像;Determine the reconstructed image of the current block based on the inverse transform result;
对所述重构图像进行滤波;Filtering the reconstructed image;
其中,对所述重构图像进行滤波,包括:Wherein, filtering the reconstructed image includes:
当所述当前块启动帧内子块划分模式时,根据所述目标子块划分方式,确定子块的边界滤波强度值;When the intra-frame sub-block division mode is activated by the current block, determine the boundary filter strength value of the sub-block according to the target sub-block division mode;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,所述变换模块还用于:In a possible implementation manner of this application, the transformation module is further used to:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
第四方面,提供了一种解码装置,所述装置包括:In a fourth aspect, a decoding device is provided, and the device includes:
获取模块,用于获取当前块的编码流;The acquisition module is used to acquire the encoding stream of the current block;
第三确定模块,用于根据所述编码流中携带的信息确定当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;The third determining module is used to determine the target sub-block division mode from the sub-block division modes supported by the current block when determining the current block to start the intra-frame sub-block division mode according to the information carried in the encoded stream, and predict from the candidate of the current block Determine the target prediction mode of the current block in the prediction mode of the mode list;
子块划分模块,用于按照所述目标子块划分方式,将所述当前块划分成多个子块;A sub-block division module, configured to divide the current block into multiple sub-blocks according to the target sub-block division mode;
反量化变换模块,用于根据所述多个子块对所述编码流进行反量化和反变换,得到所述多个子块对应的残差信息;An inverse quantization transformation module, configured to perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
第二预测模块,用于根据所述目标预测模式进行帧内子块预测得到所述多个子块的预测像素信息;The second prediction module is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
第四确定模块,用于根据所述多个子块对应的残差信息和所述预测像素信息,确定所述当前块的重构图像。The fourth determining module is configured to determine the reconstructed image of the current block according to the residual information corresponding to the multiple sub-blocks and the predicted pixel information.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;If the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division;
若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分;或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。If the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
在本申请一种可能的实现方式中,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。In a possible implementation of the present application, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,In a possible implementation of the present application, if the intra-frame sub-block division mode is activated for the current block, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:In a possible implementation manner of this application, when the intra sub-block division mode is activated by the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;In a possible implementation manner of this application, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;In a possible implementation of the present application, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。In a possible implementation of this application, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is all A list of candidate prediction modes shared by neighboring coded blocks in the spatial domain of the current block.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则所述帧内子块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。In a possible implementation of this application, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is A fixed list, where the fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
在本申请一种可能的实现方式中,当所述当前块未启动帧内子块划分模式时,当前块对应的所述候选预测模式列表与所述帧内子块划分模式支持的候选预测模式列表相同。In a possible implementation of the present application, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode .
在本申请一种可能的实现方式中,所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。In a possible implementation manner of the present application, the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式;In a possible implementation manner of this application, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode;
所述方法还包括:The method also includes:
按照上下文模型解析所述编码流中的所述第二指示信息;Parse the second indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式;所述方法还包括:If the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra-frame sub-block division mode; the method further includes:
按照上下文模型解析所述编码流中的所述第三指示信息;Parse the third indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,所述第三指示信息的解析顺序先于多行预测技术的编码顺序。In a possible implementation manner of the present application, the parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。If the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
在本申请一种可能的实现方式中,所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的子块是否存在残差信息;所述反量化变换模块用于:In a possible implementation manner of the present application, the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or a sub-block of the current block; The inverse quantization transform module is used to:
按照上下文模型解析所述第五指示信息;Parse the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,所述第四确定模块用于;In a possible implementation manner of the present application, when the intra-frame sub-block division mode is activated by the current block, the fourth determining module is configured to;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,所述第四确定模块用于:In a possible implementation manner of this application, the fourth determining module is configured to:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
第五方面,提供了一种电子设备,包括:In a fifth aspect, an electronic device is provided, including:
处理器;processor;
用于存储处理器可执行指令的存储器;A memory for storing processor executable instructions;
其中,所述处理器被配置为实现上述第一方面所述的方法。Wherein, the processor is configured to implement the method described in the first aspect.
第六方面,提供了一种电子设备,包括:In a sixth aspect, an electronic device is provided, including:
处理器;processor;
用于存储处理器可执行指令的存储器;A memory for storing processor executable instructions;
其中,所述处理器被配置为实现上述第二方面所述的方法。Wherein, the processor is configured to implement the method described in the second aspect above.
第七方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第一方面所述的方法。In a seventh aspect, a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium, and when the instructions are executed by a processor, the method described in the first aspect is implemented.
第八方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,所述指令被处理器执行时实现上述第二方面所述的方法。In an eighth aspect, a computer-readable storage medium is provided, and instructions are stored on the computer-readable storage medium. When the instructions are executed by a processor, the method described in the second aspect is implemented.
第九方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的方法。In a ninth aspect, a computer program product containing instructions is provided, which when running on a computer, causes the computer to execute the method described in the first aspect.
第十方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的方法。In a tenth aspect, a computer program product containing instructions is provided, which when run on a computer, causes the computer to execute the method described in the second aspect.
本申请实施例提供的技术方案带来的有益效果是:The beneficial effects brought about by the technical solutions provided by the embodiments of this application are:
当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式,根据该目标预测模式进行帧内子块预测,得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。根据该多个子块支持的变换方式对该残差信息进行变换,根据该变换后的信息,对该当前块进行编码生成当前块的编码流。在本申请实施例中,当前块支持的子块划分方式不都是水平划分和垂直划分,如此可以避免硬件对某种子块划分方式划分后的子块的处理代价较大的问题。When the current block starts the intra-frame sub-block division mode, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-blocks according to the target sub-block division mode. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block. The residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block. In the embodiment of the present application, not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
附图说明Description of the drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly describe the technical solutions in the embodiments of the present application, the following will briefly introduce the drawings needed in the description of the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained from these drawings without creative work.
图1是根据一示例性实施例示出的一种编解码系统的架构示意图;Fig. 1 is a schematic diagram showing the architecture of a coding and decoding system according to an exemplary embodiment;
图2是根据一示例性实施例示出的一种编解码的流程示意图;Fig. 2 is a schematic diagram showing a flow of encoding and decoding according to an exemplary embodiment;
图3是根据一示例性实施例示出的帧内预测模式对应的方向示例性;Fig. 3 is an example of a direction corresponding to an intra prediction mode according to an exemplary embodiment;
图4是根据一示例性实施例示出的角度模式对应的方向示例性;Fig. 4 is an example of a direction corresponding to an angle mode according to an exemplary embodiment;
图5是根据一示例性实施例示出的一种图像块的划分示意图;Fig. 5 is a schematic diagram showing the division of image blocks according to an exemplary embodiment;
图6是根据另一示例性实施例示出的一种图像块的划分示意图;Fig. 6 is a schematic diagram showing the division of image blocks according to another exemplary embodiment;
图7是根据一示例性实施例示出的一种编码方法的流程图;Fig. 7 is a flowchart showing an encoding method according to an exemplary embodiment;
图8是根据一示例性实施例示出的一种当前块的划分示意图;Fig. 8 is a schematic diagram showing the division of a current block according to an exemplary embodiment;
图9是根据另一示例性实施例示出的一种当前块的划分示意图;Fig. 9 is a schematic diagram showing the division of a current block according to another exemplary embodiment;
图10是根据另一示例性实施例示出的一种编码方法的流程图;Fig. 10 is a flowchart showing an encoding method according to another exemplary embodiment;
图11是根据一示例性实施例示出的相邻块的示意图;Fig. 11 is a schematic diagram showing neighboring blocks according to an exemplary embodiment;
图12是根据另一示例性实施例示出的一种编码方法的流程图;Fig. 12 is a flowchart showing an encoding method according to another exemplary embodiment;
图13是根据一示例性实施例示出的一种解码方法的流程图;Fig. 13 is a flowchart showing a decoding method according to an exemplary embodiment;
图14是根据一示例性实施例示出的一种当前块的示意图;Fig. 14 is a schematic diagram showing a current block according to an exemplary embodiment;
图15是根据一示例性实施例示出的一种编码装置的结构示意图;Fig. 15 is a schematic structural diagram showing an encoding device according to an exemplary embodiment;
图16是根据一示例性实施例示出的一种解码装置的结构示意图;Fig. 16 is a schematic structural diagram showing a decoding device according to an exemplary embodiment;
图17是根据一示例性实施例示出的一种图像块的示意图;Fig. 17 is a schematic diagram showing an image block according to an exemplary embodiment;
图18是根据另一示例性实施例示出的一种终端的结构示意图。Fig. 18 is a schematic structural diagram of a terminal according to another exemplary embodiment.
具体实施方式detailed description
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。In order to make the objectives, technical solutions, and advantages of the present application clearer, the following will further describe the embodiments of the present application in detail with reference to the accompanying drawings.
图1是本申请实施例提供的一种编解码系统的结构示意图。如图1所示,编解码系统包括编码器01、解码器02、存储装置03和链路04。编码器01与存储装置03可以进行通信,编码器01还可以通过链路04与解码器02进行通信。解码器02还可以与存储装置03进行通信。FIG. 1 is a schematic structural diagram of an encoding and decoding system provided by an embodiment of the present application. As shown in Figure 1, the codec system includes an encoder 01, a decoder 02, a storage device 03 and a link 04. The encoder 01 can communicate with the storage device 03, and the encoder 01 can also communicate with the decoder 02 through the link 04. The decoder 02 can also communicate with the storage device 03.
编码器01用于获取数据源,对数据源进行编码,并将编码后的码流传输至存储装置03进行存储,或者,编码器01可以直接通过链路04将编码后得到的编码流传输至解码器02。Encoder 01 is used to obtain the data source, encode the data source, and transmit the encoded code stream to the storage device 03 for storage, or the encoder 01 can directly transmit the encoded code stream obtained through the link 04 to Decoder 02.
解码器02可以从存储装置03中获取码流,并进行解码得到数据源;或者在接收到编码器01通过链路04传输的码流后进行解码,得到数据源。The decoder 02 can obtain the code stream from the storage device 03 and decode it to obtain the data source; or after receiving the code stream transmitted by the encoder 01 through the link 04, it can decode to obtain the data source.
其中,数据源可以为拍摄到的图像,也可以为拍摄到的视频。Among them, the data source can be a captured image or a captured video.
编码器01和解码器02均可以单独作为一个电子设备。Both the encoder 01 and the decoder 02 can be used as an electronic device alone.
存储装置03可包括多种分布式或本地存取式的数据存储媒体中的任一者。例如,硬盘驱动器、蓝光光盘、只读光盘、快闪存储器,或用于存储经编码的数据的其它合适数字存储媒体。The storage device 03 may include any of a variety of distributed or locally accessible data storage media. For example, hard drives, Blu-ray discs, read-only discs, flash memory, or other suitable digital storage media for storing encoded data.
链路04可包括至少一个通信媒体,该至少一个通信媒体可以包括无线和/或有线通信媒体,例如射频(radio frequency,RF)频谱或一根或多根物理传输线。The link 04 may include at least one communication medium, and the at least one communication medium may include a wireless and/or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines.
请参考图2,该图2是根据一示例性实施例示出的一种编解码的流程示意图,编码包括预测、变换、量化、熵编码几个过程,解码包括解码、反量化、反变换、预测几个过程。编码和解码中的预测一般包括帧内预测和帧间预测,接下来对帧内预测做简单介绍。Please refer to FIG. 2, which is a schematic diagram of a coding and decoding process according to an exemplary embodiment. The coding includes prediction, transformation, quantization, and entropy coding. Decoding includes decoding, inverse quantization, inverse transformation, and prediction. Several processes. Prediction in encoding and decoding generally includes intra-frame prediction and inter-frame prediction. Next, we will briefly introduce intra-frame prediction.
帧内预测是指利用图像空间域的相关性,使用当前图像块周围已编码重建的相邻块的像素,预测该当前图像块的像素,从而达到去除图像空域冗余的目的。帧内预测中规定了多种帧内预测模式,每一种帧内预测模式都对应一种纹理方向(DC模式除外)。譬如,如果图像的纹理是呈现水平状排布的,那么选择水平类预测模式可以更好的预测图像信息。示例性的,HEVC(High Efficiency Video Coding,高效视频编码)中亮度分量可以支持5种尺寸的预测单元(图像块或子块),每一种尺寸的预测单元都对应35种帧内预测模式,包含Planar模式、DC模式和33种角度模式,如表1所示。Intra-frame prediction refers to using the correlation of the image space domain to predict the pixels of the current image block by using the pixels of the neighboring blocks that have been coded and reconstructed around the current image block, so as to achieve the purpose of removing the image space redundancy. A variety of intra prediction modes are specified in intra prediction, and each intra prediction mode corresponds to a texture direction (except for the DC mode). For example, if the texture of the image is arranged horizontally, then selecting the horizontal prediction mode can better predict the image information. Exemplarily, the luminance component in HEVC (High Efficiency Video Coding) can support 5 sizes of prediction units (image blocks or sub-blocks), and each size of prediction unit corresponds to 35 intra prediction modes. Contains Planar mode, DC mode and 33 angle modes, as shown in Table 1.
表1Table 1
模式号Mode number 帧内预测模式 Intra prediction mode
00 Intra_Planar Intra_Planar
11 Intra_DC Intra_DC
2...342...34 Intra_angular2…Intra_angular34Intra_angular2…Intra_angular34
该多种帧内预测模式对应的预测方向如图3所示。该Planar模式适用于像素值缓慢变化 的区域,在实施中,可以使用水平方向和垂直方向的两个线性滤波器进行滤波处理,将这两者的平均值作为当前图像块的预测值。The prediction directions corresponding to the multiple intra prediction modes are shown in FIG. 3. The Planar mode is suitable for areas where the pixel value changes slowly. In implementation, two linear filters in the horizontal and vertical directions can be used for filtering, and the average of the two is used as the predicted value of the current image block.
DC模式适用于大面积平坦区域,可以将当前图像块周围已编码重建的相邻块的平均像素值作为当前图像块的预测值。The DC mode is suitable for a large flat area. The average pixel value of the neighboring blocks that have been coded and reconstructed around the current image block can be used as the predicted value of the current image block.
作为一种示例,该Planar模式和DC模式又可以称为非角度模式。As an example, the Planar mode and the DC mode may also be called non-angle modes.
请继续参考图3,在角度模式中,模式号26和模式号10对应的帧内预测模式分别表示垂直方向和水平方向,在本申请一种可能的实现方式中,可以将与模式号26相邻的模式号对应的帧内预测模式统称为垂直类预测模式,以及将与模式号10相邻的模式号对应的帧内预测模式统称为水平类预测模式,示例性的,垂直类预测模式可以包括模式号2至模式号18对应的帧内预测模式,水平类预测模式可以包括模式号19至模式号34对应的帧内预测模式。另外,在新一代编解码标准VVC(Versatile Video Coding,瓦尔塞视频编码)中针对角度模式做了更细致的划分,如图4所示。Please continue to refer to FIG. 3, in the angle mode, the intra prediction modes corresponding to the mode number 26 and the mode number 10 respectively indicate the vertical direction and the horizontal direction. In a possible implementation manner of the present application, the intra prediction mode corresponding to the mode number 26 may be The intra prediction modes corresponding to the adjacent mode numbers are collectively referred to as vertical prediction modes, and the intra prediction modes corresponding to the mode numbers adjacent to the mode number 10 are collectively referred to as horizontal prediction modes. Illustratively, the vertical prediction modes can be Including intra prediction modes corresponding to mode number 2 to mode number 18, and horizontal prediction modes may include intra prediction modes corresponding to mode number 19 to mode number 34. In addition, in the new generation of coding and decoding standard VVC (Versatile Video Coding, Valser Video Coding), a more detailed division is made for the angle mode, as shown in Figure 4.
需要说明的是,上述仅是以模式号26和模式号10对应的帧内预测模式分别表示垂直方向和水平方向为例进行说明,在另一实施例中,垂直方向和水平方向对应的帧内预测模式的模式号还可能为其它值,本申请实施例对此不做限定。It should be noted that the above description is only an example in which the intra prediction modes corresponding to mode number 26 and mode number 10 respectively represent the vertical direction and the horizontal direction. In another embodiment, the intra prediction modes corresponding to the vertical direction and the horizontal direction The mode number of the prediction mode may also have other values, which is not limited in the embodiment of the present application.
在本申请一种可能的实现方式中,可以基于ISP技术实现编码和解码。ISP技术中帧内预测采用的方法是将图像块划分成多个子块进行预测,对于支持ISP技术的图像块来说能够支持的子块划分方式包括水平划分和垂直划分,作为一种示例,可以按照表2所示的规则表示图像块能够支持的子块划分方式,其中,“N”表示不支持ISP模式,HOR表示支持水平划分,VER表示支持垂直划分,行代表图像块的宽度,列代表图像块的高度。示例性的,可以将图像块划分成图5和图6所示的形式。In a possible implementation of this application, encoding and decoding can be implemented based on ISP technology. The method of intra prediction in ISP technology is to divide an image block into multiple sub-blocks for prediction. For image blocks that support ISP technology, the sub-block division methods that can be supported include horizontal division and vertical division. As an example, According to the rules shown in Table 2, the sub-block division methods that the image block can support are indicated, where "N" means that ISP mode is not supported, HOR means that horizontal division is supported, VER means that vertical division is supported, rows represent the width of image blocks, and columns represent The height of the image block. Exemplarily, the image block may be divided into the forms shown in FIG. 5 and FIG. 6.
表2Table 2
 To 44 88 1616 3232 6464 128128
44 NN HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER NN NN
88 HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER NN NN
1616 HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER NN NN
3232 HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER NN NN
6464 NN NN NN NN HOR/VERHOR/VER NN
128128 NN NN NN NN NN NN
在一些实施例中,对于硬件来说,子块的像素信息是通过光栅扫描得到的,而按照上述表2所示的子块划分方式进行划分后,容易导致对一些尺寸的子块,比如1*N、2*N的子块,硬件访问的代价就会很大。为此,本申请实施例提供了一种基于ISP技术的编解码方法,该方法可以解决该问题。其具体实现请参见如下各个实施例。在一些实施例中,ISP模式又可以称为帧内子块划分模式。In some embodiments, for the hardware, the pixel information of the sub-block is obtained by raster scanning, and after dividing according to the sub-block division method shown in Table 2 above, it is easy to cause sub-blocks of some sizes, such as 1 *N, 2*N sub-blocks, the cost of hardware access will be very high. To this end, the embodiments of the present application provide a coding and decoding method based on ISP technology, which can solve this problem. For specific implementation, please refer to the following embodiments. In some embodiments, the ISP mode may also be referred to as an intra-frame sub-block division mode.
接下来将结合附图对本申请实施例提供的方法进行详细介绍。请参考图7,图7是根据一示例性实施例示出的一种编码方法的流程图,该编码方法可以应用于编码端设备中,该方法可以包括如下几个步骤:Next, the method provided by the embodiment of the present application will be described in detail with reference to the accompanying drawings. Please refer to FIG. 7. FIG. 7 is a flowchart showing an encoding method according to an exemplary embodiment. The encoding method may be applied to an encoding terminal device. The method may include the following steps:
步骤701:当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。Step 701: When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
其中,该当前块为待处理图像中的任一图像块,在一些实施例中,当前块又可以称为当前图像块。该待处理图像可以为任意图像或视频图像。Wherein, the current block is any image block in the image to be processed. In some embodiments, the current block may also be referred to as the current image block. The image to be processed can be any image or video image.
在一些标准中规定了ISP模式支持的图像块的尺寸,示例性的可以通过如下表3来确定,该“N”表示不支持ISP模式,该“Y”表示支持ISP模式,其中行代表图像块的宽度,列代表图像块的高度,比如,ISP模式不支持对4*4图像块的处理。In some standards, the size of the image block supported by the ISP mode is specified. For example, it can be determined by the following table 3. The "N" indicates that the ISP mode is not supported, and the "Y" indicates that the ISP mode is supported, and the row represents the image block. The width of the column represents the height of the image block. For example, the ISP mode does not support the processing of 4*4 image blocks.
表3table 3
 To 44 88 1616 3232 6464 128128
44 NN YY YY YY NN NN
88 YY YY YY YY NN NN
1616 YY YY YY YY NN NN
3232 YY YY YY YY NN NN
6464 NN NN NN NN YY NN
128128 NN NN NN NN NN NN
作为一个例子,若当前块的宽高尺寸为64*64,则当前块不支持或者禁止启动帧内子块划分模式。也即是,由于针对64*64尺寸的图像块处理,使用ISP模式和常规模式(即非ISP模式)的实现效果相差不明显,甚至使用ISP模式的运算量相比较大,因此,在本申请一种可能的实现方式中,提出不使能64*64图像块的ISP模式,也就是说,提出ISP模式不支持64*64尺寸,此时表3变更为表4所示,其中行代表图像块的宽度,列代表图像块的高度。As an example, if the width and height dimensions of the current block are 64*64, the current block does not support or prohibit the activation of the intra-frame sub-block division mode. That is, because of the 64*64 size image block processing, the implementation effect of using the ISP mode and the conventional mode (ie non-ISP mode) is not obvious, and even the computational complexity of using the ISP mode is relatively large. Therefore, in this application In a possible implementation, it is proposed that the ISP mode that does not enable 64*64 image blocks is proposed, that is, it is proposed that the ISP mode does not support the size of 64*64. In this case, Table 3 is changed to Table 4, where the row represents the image The width of the block, the column represents the height of the image block.
表4Table 4
 To 44 88 1616 3232 6464 128128
44 NN YY YY YY NN NN
88 YY YY YY YY NN NN
1616 YY YY YY YY NN NN
3232 YY YY YY YY NN NN
6464 NN NN NN NN NN NN
128128 NN NN NN NN NN NN
在一种可能的实现方式中,编码端设备可以根据当前图像块的宽度和高度,基于上述表3或表4,判断该当前图像块是否支持ISP模式,当确定支持ISP模式时,可以启动帧内子块划分模式。In a possible implementation manner, the encoding end device can determine whether the current image block supports the ISP mode based on the width and height of the current image block, based on the above Table 3 or Table 4. When it is determined to support the ISP mode, the frame can be started Internal sub-block division mode.
由于硬件对于一些尺寸的子块的扫描代价较大,因此,作为一种示例,可以限定一些尺寸块的子块划分方式,示例性的,可以包括如下几种可能的实现方式:Since the hardware scan cost for sub-blocks of some sizes is relatively high, as an example, the sub-block division mode of some size blocks may be limited. Illustratively, the following possible implementation modes may be included:
第一种实现方式:若当前块的宽高尺寸为4*N,N大于4,则该当前块支持的子块划分方式为水平划分。The first implementation manner: if the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division.
如前文所述,由于对于1*N、2*N的子块,硬件访问的代价会比较大,因此,对于宽高尺寸为4*N可以限定只支持水平划分,不支持垂直划分。As mentioned above, since the hardware access cost for 1*N and 2*N sub-blocks will be relatively large, the width and height size of 4*N can be limited to only support horizontal division, not vertical division.
第二种实现方式:若当前块的宽高尺寸为8*N,N大于或等于4,则该当前块支持的子块划分方式为水平划分;或者,该当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。The second implementation mode: if the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division modes supported by the current block are simultaneously Including vertical division and horizontal division, the vertical division can only be divided into two sub-blocks.
作为一种示例,对于宽高尺寸为8*N的图像块,也可以限定其不支持垂直划分,只支持水平划分。作为一种示例,对于宽高尺寸为8*N的图像块,也可以只允许垂直划分成4*N的子块,即只允许垂直切一道。As an example, for an image block with a width and height size of 8*N, it may also be restricted that it does not support vertical division and only supports horizontal division. As an example, for an image block with a width and height size of 8*N, it is also allowed to only be vertically divided into 4*N sub-blocks, that is, only one vertical slice is allowed.
第三种实现方式:若当前块的宽高尺寸为4*16或4*32或8*32,则该当前块不支持垂直划分,仅支持水平划分。The third implementation manner: if the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division.
第四种实现方式:若当前块的宽高尺寸为16*4或32*4或32*8,则该当前块不支持水平划分,仅支持垂直划分。The fourth implementation manner: If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
示例性的,ISP技术支持的子块划分方式可以如表5所示,其中,行代表图像块的宽度,列代表图像块的高度。Exemplarily, the sub-block division mode supported by the ISP technology may be as shown in Table 5, where the row represents the width of the image block, and the column represents the height of the image block.
表5table 5
 To 44 88 1616 3232 6464 128128
44 NN HOR/VERHOR/VER VERVER VER VER NN NN
88 HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER VER VER NN NN
1616 HORHOR HOR/VERHOR/VER HOR/VERHOR/VER HOR/VERHOR/VER NN NN
3232 HORHOR HORHOR HOR/VERHOR/VER HOR/VERHOR/VER NN NN
6464 NN NN NN NN NN NN
128128 NN NN NN NN NN NN
需要说明的是,上述提供的几种实现方式和表5所示的子块划分方式均是示例性的,在另一实施例中,还可以根据该当前块的宽度和高度的比值确定该当前块支持的子块划分方式。作为一种示例,可以包括如下几种情况:It should be noted that the several implementation manners provided above and the sub-block division manner shown in Table 5 are all exemplary. In another embodiment, the current block may also be determined according to the ratio of the width to the height of the current block. The sub-block division method supported by the block. As an example, the following situations can be included:
第一种实现方式:当该当前块的宽度与高度之间的比值大于或等于第一阈值时,该当前块支持的子块划分方式为垂直划分。The first implementation manner: when the ratio between the width and the height of the current block is greater than or equal to the first threshold, the sub-block division manner supported by the current block is vertical division.
当该当前块的宽度与高度之间的比值大于或等于第一阈值时,说明该当前块的宽度很宽而高度很矮,如果再对该当前块进行水平划分,得到的子块的宽度会很宽而高度会更矮,所以对于该种当前块可以不使能水平划分,即该当前块支持的子块划分方式为垂直划分,不支持水平划分。When the ratio between the width and height of the current block is greater than or equal to the first threshold, it means that the width of the current block is very wide and the height is very short. If the current block is horizontally divided, the width of the sub-block obtained will be It is very wide and shorter in height, so horizontal division may not be enabled for this kind of current block, that is, the sub-block division mode supported by the current block is vertical division, and horizontal division is not supported.
上述第一阈值可以根据实际需求进行设置,比如,该第一阈值为1,即宽高比大于1时,适合垂直划分。The foregoing first threshold may be set according to actual requirements. For example, the first threshold is 1, that is, when the aspect ratio is greater than 1, it is suitable for vertical division.
第二种实现方式:当该当前块的宽度与高度之间的比值小于或等于第二阈值时,该当前块支持的子块划分方式为水平划分。The second implementation manner: when the ratio between the width and the height of the current block is less than or equal to the second threshold, the sub-block division mode supported by the current block is horizontal division.
上述第二阈值可以根据实际需求进行设置,比如,该第二阈值可以为1或者小于1的数,此时适合水平划分。The foregoing second threshold may be set according to actual requirements. For example, the second threshold may be 1 or a number less than 1, which is suitable for horizontal division.
当该当前块的宽度与高度之间的比值小于或等于第二阈值时,说明该当前块的宽度比较小而高度特别高,如果再对该当前块进行垂直划分,得到的子块的宽度会更窄且高度特别高,所以对于该种当前块可以不使能垂直划分,即该当前块支持的子块划分方式为水平划分,不支持垂直划分。When the ratio between the width and height of the current block is less than or equal to the second threshold, it means that the width of the current block is relatively small and the height is particularly high. If the current block is divided vertically, the width of the sub-block obtained will be It is narrower and extremely high in height, so vertical division may not be enabled for this type of current block, that is, the sub-block division mode supported by the current block is horizontal division, and vertical division is not supported.
作为一种示例,当该当前块仅支持水平划分时,可以将水平划分确定为该目标子块划分方式,当该当前块仅支持垂直划分时,可以将垂直划分确定为该目标子块划分方式。当该前块既支持水平划分又支持垂直划分时,可以通过尝试的方式确定该目标子块划分方式,比如可以根据处理代价来选择最终采用哪种子块划分方式,作为一种例子,该处理代价可以基于RDO(Rate Distortion Optimized,率失真原则)来决策。As an example, when the current block only supports horizontal division, horizontal division may be determined as the target sub-block division method, and when the current block only supports vertical division, vertical division may be determined as the target sub-block division method . When the front block supports both horizontal division and vertical division, the target sub-block division method can be determined by trial. For example, the final sub-block division method can be selected according to the processing cost. As an example, the processing The cost can be decided based on RDO (Rate Distortion Optimized).
作为一种示例,编码端设备可以根据该目标子块划分方式,按照表6所示的划分规则将该当前块划分成多个子块。As an example, the encoding end device may divide the current block into multiple sub-blocks according to the division rule shown in Table 6 according to the target sub-block division mode.
表6Table 6
Figure PCTCN2020078812-appb-000001
Figure PCTCN2020078812-appb-000001
在上述表6中,W表示当前块的宽度,H表示当前块的高度,w表示划分得到的子块的宽度,h表示划分得到的子块的高度,k表示划分得到的多个第一子图块的数量。In the above table 6, W represents the width of the current block, H represents the height of the current block, w represents the width of the divided sub-block, h represents the height of the divided sub-block, and k represents the multiple first sub-blocks obtained by the division. The number of tiles.
譬如,当该当前块的宽度为16,高度为4时,可以按照垂直方式,将该当前块划分成4个4x4的子块。For example, when the width of the current block is 16 and the height is 4, the current block can be divided into 4 4x4 sub-blocks in a vertical manner.
作为一种示例,该多个子块是按照非均匀划分得到,或者,该多个子块是按照均匀划分得到。可以按照均匀尺寸进行划分,或者,也可以按照非均匀尺寸进行划分。可以将当前块划分成多个尺寸相同的子块,或者,还可以将该当前块划分成多个尺寸不相同的子块,比如 如图8所示,将该当前块划分成两个尺寸不同的子块。As an example, the multiple sub-blocks are obtained according to non-uniform division, or the multiple sub-blocks are obtained according to uniform division. It can be divided according to uniform size, or it can be divided according to non-uniform size. The current block can be divided into multiple sub-blocks with the same size, or the current block can be divided into multiple sub-blocks with different sizes, for example, as shown in Figure 8, the current block is divided into two sub-blocks with different sizes. Of sub-blocks.
作为一种例子,该多个子块可以是按照多级划分得到。也即是,可以对较大尺寸的子块进行更细的划分,示例性的,如图9所示,可以将某个尺寸较大的子块继续划分成8个尺寸较小的子块,之后基于得到的该8个较小尺寸的子块进行后续处理。As an example, the multiple sub-blocks may be obtained according to multi-level division. That is, the sub-block of larger size can be divided more finely. Exemplarily, as shown in FIG. 9, a sub-block of larger size can be further divided into 8 sub-blocks of smaller size. Then, follow-up processing is performed based on the obtained 8 sub-blocks of smaller size.
该参考尺寸阈值可以由用户根据实际需求进行设置,或者,也可以由该编码端设备默认设置,本申请实施例对此不做限定。The reference size threshold may be set by the user according to actual needs, or may also be set by default by the encoding end device, which is not limited in the embodiment of the present application.
步骤702:从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式。Step 702: Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
作为一种示例,在选择目标预测模式之前要构建当前块的候选预测模式列表,当前块启动帧内子块划分模式时,帧内子块划分模式支持的候选预测模式列表可以和当前块不启动帧内子块划分模式时的候选预测模式列表相同,也可以不同。As an example, the candidate prediction mode list of the current block should be constructed before the target prediction mode is selected. When the intra sub-block division mode is activated for the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode can be the same as the current block does not start the intra sub-block division mode. The candidate prediction mode list in the block division mode is the same or may be different.
作为一种示例,当前块启动帧内子块划分模式,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表,其中,固定列表仅包括Planar预测模式;或者,若当前块的目标子块划分方式为水平划分,则固定列表仅包括水平模式;或者,若当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。As an example, the current block starts the intra sub-block division mode, and the candidate prediction mode list supported by the intra sub-block division mode is a predefined fixed list, where the fixed list only includes the Planar prediction mode; or, if the target sub-block of the current block If the block division mode is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only includes the vertical mode.
也就是说,可以直接使用固定的模式作为目标预测模式。在一种可能的实现方式中,无论对于什么样的块,均可以直接使用Planar模式作为目标预测模式。在另一种可能的实现方式中,可以根据子块划分方式确定该目标预测模式,即当该当前块的子块划分方式为水平划分时,将水平模式确定为该目标预测模式,示例性的,该水平模式的模式号为10。或者,当该当前块的子块划分方式为垂直划分时,将垂直模式确定为该目标预测模式,示例性的,该垂直模式的模式号为26。In other words, a fixed mode can be directly used as the target prediction mode. In a possible implementation, no matter what kind of block, the Planar mode can be directly used as the target prediction mode. In another possible implementation manner, the target prediction mode may be determined according to the sub-block division mode, that is, when the sub-block division mode of the current block is horizontal division, the horizontal mode is determined as the target prediction mode. , The mode number of this horizontal mode is 10. Or, when the sub-block division mode of the current block is vertical division, the vertical mode is determined as the target prediction mode. Exemplarily, the mode number of the vertical mode is 26.
在一种示例中,目标预测模式默认为水平模式,或垂直模式或者是Planar模式或者是DC模式时,在该种实现方式中,不需要在码流中携带用于本端使用的目标预测模式的指示信息,节省了比特开销。In an example, when the target prediction mode defaults to horizontal mode, or vertical mode, or planar mode, or DC mode, in this implementation, there is no need to carry the target prediction mode for local use in the code stream The instruction information saves bit overhead.
在本申请一种可能的实现方式中,该当前块启动帧内子块划分模式,若该当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是该当前块的空域相邻已编码块共用的候选预测模式列表。In a possible implementation of the present application, the current block starts the intra sub-block division mode, and if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is the spatial domain of the current block A list of candidate prediction modes shared by adjacent coded blocks.
在本申请一种可能的实现方式中,当该当前块未启动帧内子块划分模式时,当前块对应的该候选预测模式列表与帧内子块划分模式支持的候选预测模式列表相同。In a possible implementation manner of the present application, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
步骤703:根据该目标预测模式进行帧内子块预测,得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。Step 703: Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine residual information of the current block according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
作为一种示例,可以根据目标预测模式,对该多个子块中的每个子块进行预测处理,得到该多个子块的预测像素信息。As an example, prediction processing may be performed on each of the multiple sub-blocks according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
作为另一种示例,可以根据该目标预测模式,对该当前块进行预测处理,将得到的预测像素信息作为该多个子块的预测像素信息。As another example, prediction processing may be performed on the current block according to the target prediction mode, and the obtained predicted pixel information may be used as the predicted pixel information of the multiple sub-blocks.
作为一种例子,可以将当前块的原始像素信息和该多个子块的预测像素信息做残差处理,得到该当前块的残差信息。As an example, the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks may be subjected to residual processing to obtain residual information of the current block.
步骤704:根据该多个子块支持的变换方式对该残差信息进行变换,得到变换后的信息。Step 704: Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
作为一种示例,若该当前块支持多变换核变换模式,则根据该多个子块对应的变换核对该残差信息进行变换,作为一种示例,当该当前块启动帧内子块划分模式时,该子块对应的变换核对包括DCT2和DCT7;若该当前块的宽高尺寸均大于或等于32,则该子块对应的变换核对包括DCT2。As an example, if the current block supports a multi-transform core transform mode, the residual information is transformed according to the transform cores corresponding to the multiple sub-blocks. As an example, when the current block starts the intra-frame sub-block division mode, The transform check corresponding to the sub-block includes DCT2 and DCT7; if the width and height dimensions of the current block are both greater than or equal to 32, the transform check corresponding to the sub-block includes DCT2.
步骤705:根据变换后的信息,对当前块进行编码生成当前块的编码流。Step 705: According to the transformed information, encode the current block to generate an encoded stream of the current block.
作为一种示例,若当前块启动帧内子块划分模式,且当前块支持的子块划分方式同时包括垂直划分和水平划分,该编码流中携带第二指示信息,第二指示信息用于指示目标子块划分方式。As an example, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the encoded stream carries second indication information, and the second indication information is used to indicate the target Sub-block division method.
也就是说,当该当前块既支持水平划分又支持垂直划分时,为了便于解码端可以解析编 码流获知采用的是哪种子块划分方式,该编码端设备可以将第二指示信息编码至编码流中,以通过该第二指示信息指示当前块的目标子块划分方式。That is to say, when the current block supports both horizontal division and vertical division, in order to facilitate the decoding end to parse the encoded stream to know which sub-block division method is used, the encoding end device may encode the second indication information to the encoding In the stream, the target sub-block division mode of the current block is indicated by the second indication information.
作为一种示例,若当前块启动帧内子块划分模式,则该编码流中携带第三指示信息,该第三指示信息用于指示该当前块启动帧内子块划分模式。As an example, if the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode.
也就是说,当编码端启动帧内子块划分模式时,可以将第三指示信息编码至编码流中,该第三指示信息可以使得解码端解析出当前块是采用ISP模式处理的,示例性的,该第三指示信息可以为ISP模式的flag。In other words, when the encoding end starts the intra-frame sub-block division mode, the third indication information can be encoded into the encoded stream, and the third indication information can make the decoding end parse out that the current block is processed in the ISP mode, which is exemplary , The third indication information may be the flag of the ISP mode.
表7Table 7
Figure PCTCN2020078812-appb-000002
Figure PCTCN2020078812-appb-000002
作为一种示例,请参考表7,若不支持或者不启动ISP模式时,不需要传递该第三指示信息,此时针对该第三指示信息的编码比特可以为0。As an example, please refer to Table 7. If the ISP mode is not supported or is not activated, the third indication information does not need to be transmitted. At this time, the code bit for the third indication information may be 0.
当当前块启动ISP模式且当前块仅支持水平划分或垂直划分时,此时针对第三指示信息可以采用1个比特进行编码。当当前块启动ISP模式,当前块支持水平划分又支持垂直划分时,编码过程中可以采用2个比特分别表示第二指示信息和第三指示信息。When the current block starts the ISP mode and the current block only supports horizontal division or vertical division, at this time, the third indication information can be coded with 1 bit. When the current block starts the ISP mode and the current block supports horizontal division and vertical division, 2 bits can be used in the encoding process to represent the second indication information and the third indication information respectively.
作为一种示例,按照上下文模型对该第三指示信息进行编码,其中,根据该当前块的宽高比确定该上下文模型,不同的宽高比对应不同的上下文模型。As an example, the third indication information is coded according to the context model, where the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
也就是说,可以根据该当前块的尺寸来确定用于对ISP模式的flag编码的上下文模型。In other words, the context model for encoding the flag of the ISP mode can be determined according to the size of the current block.
作为一种示例,还可以根据该当前块的形状、宽高比来确定用于对ISP模式的flag编码的上下文模型。As an example, the context model for encoding the flag of the ISP mode can also be determined according to the shape and aspect ratio of the current block.
作为一种示例,对该第三指示信息进行编码的实现可以包括:该第三指示信息的编码顺序先于多行预测技术的编码顺序。As an example, the implementation of encoding the third indication information may include: the coding order of the third indication information is prior to the coding order of the multi-line prediction technology.
也即是,可以通过修改语法来调整ISP模式的flag与其他预测模式(比如多行预测模式)的标志的编码顺序,使得编码端设备在编码时先对ISP模式的flag进行编码,示例性的,将该ISP模式的flag编码至多行预测模式的标志的前面,使得解码端可以先解析到ISP模式的flag。That is, the encoding sequence of the ISP mode flag and the flags of other prediction modes (such as multi-line prediction mode) can be adjusted by modifying the syntax, so that the encoding end device first encodes the ISP mode flag during encoding. , Encode the ISP mode flag in front of the multi-line prediction mode flag, so that the decoder can parse the ISP mode flag first.
作为一种例子,对于帧内的多行预测模式不支持4*4尺寸的图像块,如果是4*4的图像块,编码端设备可以不对与多行预测模式相关的语法元素编码,解码端设备也不需要对与多行预测模式相关的语法元素进行解码。As an example, the intra-frame multi-line prediction mode does not support 4*4 size image blocks. If it is a 4*4 image block, the encoding end device may not encode the syntax elements related to the multi-line prediction mode, and the decoding end The device does not need to decode syntax elements related to the multi-line prediction mode.
作为一种示例,该编码流中携带第五指示信息,该第五指示信息用于指示该当前块或者该当前块的多个子块是否存在残差信息。As an example, the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
在编码时,可以采用第五指示信息来指示该当前块或者该当前块的子块是否存在残差信息,示例性的,该第五指示信息为是否存在残差信息的CBF(Coded block flag,编码块标识)值的标志。During encoding, the fifth indication information can be used to indicate whether the current block or sub-blocks of the current block has residual information. Illustratively, the fifth indication information is whether there is residual information CBF (Coded block flag, Encoding block ID) value flag.
作为一种示例,若该编码流中携带第五指示信息,该第五指示信息用于指示该当前块或者该当前块的多个子块是否存在残差信息,在生成该编码流之前,该方法还包括:按照上下文模型对该第五指示信息进行编码;该上下文模型根据该多个子块的划分深度来确定,该多个子块的划分深度为0时,采用第一上下文模型,该多个子块的划分深度不为0时,采用第二上下文模型,第一上下文模型与第二上下文模型不同。As an example, if the encoded stream carries fifth indication information, the fifth indication information is used to indicate whether residual information exists in the current block or multiple sub-blocks of the current block. Before generating the encoded stream, the method It also includes: encoding the fifth indication information according to a context model; the context model is determined according to the division depth of the multiple sub-blocks, and when the division depth of the multiple sub-blocks is 0, the first context model is adopted, and the multiple sub-blocks When the division depth of is not 0, the second context model is used, and the first context model is different from the second context model.
作为一种示例,对于当前块的残差编码的CBF值的上下文模型是根据变换块的划分深度 来选择,而不是根据前一个子块的CBF值进行选择,如此可以避免上下文模型选择需要依赖前后子块的相关性这一问题。As an example, the context model of the CBF value of the residual coding of the current block is selected according to the division depth of the transform block, rather than the CBF value of the previous sub-block. This avoids the need for context model selection to depend on before and after The question of the relevance of sub-blocks.
作为一种示例,根据该多个子块对该残差信息进行变换之后,该方法还包括:对变换后的信息进行量化处理,对量化处理后的数据进行反量化、反变换处理,得到反变换结果;基于反变换结果确定当前块的重构图像;对该重构图像进行滤波;其中,对该重构图像进行滤波,包括:当该当前块启动帧内子块划分模式时,根据该目标子块划分方式,确定子块的边界滤波强度值;根据边界滤波强度值,对该重构图像进行滤波。As an example, after transforming the residual information according to the multiple sub-blocks, the method further includes: quantizing the transformed information, and dequantizing and inverse transforming the quantized data to obtain an inverse transform Result; determine the reconstructed image of the current block based on the result of the inverse transform; filter the reconstructed image; wherein, filtering the reconstructed image includes: when the current block starts the intra-frame sub-block division mode, according to the target sub-block The block division method determines the boundary filter strength value of the sub-block; according to the boundary filter strength value, the reconstructed image is filtered.
在编码端,还可以基于变换后的信息确定重构图像之后,可以通过滤波器对重构图像进行滤波处理,滤波器的边界滤波强度值是基于多个子块的尺寸确定,边界滤波强度值用于对多个子块的边界进行滤波。At the encoding end, after determining the reconstructed image based on the transformed information, the reconstructed image can be filtered through a filter. The boundary filter intensity value of the filter is determined based on the size of multiple sub-blocks, and the boundary filter intensity value is used To filter the boundaries of multiple sub-blocks.
作为一种示例,根据该当前块的目标子块划分方式,确定子块的边界滤波强度值,包括:当该目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者,当该目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者,将各个子块的水平边界和垂直边界的滤波强度值都设置为0。As an example, determining the boundary filter intensity value of the sub-block according to the target sub-block division mode of the current block includes: when the target sub-block division mode is vertical division, the filter intensity value of the vertical boundary of each sub-block is determined Set to 0; or, when the target sub-block is divided into horizontal division, set the filter intensity value of the horizontal boundary of each sub-block to 0; or, set the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block to both Set to 0.
也就是说,可以根据目标子块划分方式,设置各个子块的边界滤波强度值,或者,直接将各个子块的水平边界和垂直边界的滤波强度值都设置为0,其中,“0”表示不滤波,非“0”表示滤波。That is to say, you can set the boundary filter intensity value of each sub-block according to the target sub-block division method, or directly set the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block to 0, where "0" means No filtering, non-"0" means filtering.
作为一种示例,可以根据当前块的宽度或高度设置多个子块的变换块的边界滤波强度值,示例性的,当该当前块的宽度或高度大于一定阈值时,将该多个子块的变换块的边界滤波强度值设置为非0。否则,将该多个子块的变换块的边界滤波强度值设置为0。该阈值可以根据实际需求进行设置,作为一种示例,该阈值可以为32。As an example, the boundary filter strength values of the transform blocks of multiple sub-blocks can be set according to the width or height of the current block. Exemplarily, when the width or height of the current block is greater than a certain threshold, the multiple sub-blocks are transformed The boundary filter strength value of the block is set to non-zero. Otherwise, the boundary filter strength value of the transform blocks of the multiple sub-blocks is set to 0. The threshold can be set according to actual needs. As an example, the threshold can be 32.
作为一种示例,还可以根据当前块的形状来设置多个子块的变换块的边界滤波强度值,本申请实施例对此不作限定。As an example, the boundary filter strength values of the transform blocks of multiple sub-blocks can also be set according to the shape of the current block, which is not limited in the embodiment of the present application.
作为一种示例,可以使用传统的帧内预测方式对当前块进行预测处理,然后可以将使用传统的帧内预测方式得到的预测像素信息与重构图像的像素信息进行加权处理。或者,还可以将使用传统的帧内预测方式得到的预测像素信息与上述ISP模式确定的预测像素信息进行加权,本申请实施例对此不作限定。As an example, a traditional intra-frame prediction method can be used to perform prediction processing on the current block, and then the predicted pixel information obtained using the traditional intra-frame prediction method and the pixel information of the reconstructed image can be weighted. Alternatively, the predicted pixel information obtained by using the traditional intra-frame prediction method and the predicted pixel information determined by the above-mentioned ISP mode may also be weighted, which is not limited in the embodiment of the present application.
作为一种示例,当该当前块启动帧内子块划分,当前块为色度块时,色度块对应的候选预测模式列表中包括的跨分量线性模型预测的预测模式的优先级高于加入到该候选预测模式列表中的亮度预测模式,亮度预测模式是当前块是亮度块时,亮度块支持的候选预测模式列表中的预测模式。As an example, when the current block initiates intra-frame sub-block division and the current block is a chroma block, the priority of the cross-component linear model prediction prediction mode included in the candidate prediction mode list corresponding to the chroma block is higher than For the brightness prediction mode in the candidate prediction mode list, the brightness prediction mode is the prediction mode in the candidate prediction mode list supported by the brightness block when the current block is a brightness block.
对于多通道图像来说,包括亮度块和色度块,当亮度块使用ISP模式来实现时,可以认为跨分量线性模型能够很好的对色度块进行预测,因此,在使用跨分量线性模型对色度块进行预测的过程中,构建色度块对应的候选预测模式列表时,将跨分量线性模型预测的预测模式排至亮度预测模式之前。For multi-channel images, including luminance block and chrominance block, when the luminance block is implemented in ISP mode, it can be considered that the cross-component linear model can predict the chrominance block well. Therefore, the cross-component linear model is used In the process of predicting the chroma block, when constructing the candidate prediction mode list corresponding to the chroma block, the prediction mode predicted by the cross-component linear model is ranked before the luma prediction mode.
在本申请实施例中,当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式,根据该目标预测模式进行帧内子块预测得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。根据该多个子块支持的变换方式对该残差信息进行变换,根据该变换后的信息,对该当前块进行编码生成当前块的编码流。在本申请实施例中,当前块支持的子块划分方式不都是水平划分和垂直划分,如此可以避免硬件对某种子块划分方式划分后的子块的处理代价较大的问题。In the embodiment of the present application, when the current block starts the intra-frame sub-block division mode, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode. Sub-blocks. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra sub-block prediction according to the target prediction mode to obtain the predicted pixel information of the multiple sub-blocks, and obtain the predicted pixel information of the multiple sub-blocks according to the original pixel information of the current block and the multiple The predicted pixel information of each sub-block determines the residual information of the current block. The residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block. In the embodiment of the present application, not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
图10是根据一示例性实施例示出的一种编码方法,该方法可以应用于编码端设备中,该方法可以包括如下几个实现步骤:Fig. 10 shows an encoding method according to an exemplary embodiment. The method may be applied to an encoding terminal device. The method may include the following implementation steps:
步骤1001:当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。Step 1001: When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
其实现过程与图7实施例中的步骤701相同。The implementation process is the same as step 701 in the embodiment of FIG. 7.
步骤1002:从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式。Step 1002: Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
示例性地,对于ISP模式来说,仅会利用候选预测模式列表中的候选预测模式进行预测,因此,编码端设备确定候选预测模式列表。作为一种示例,该候选预测模式列表可以是基于该当前块周围已重建的相邻图像块的帧内预测模式确定,该候选预测模式列表包括多种候选预测模式,且该多种候选预测模式的候选优先权按照在该候选预测模式列表中的先后排列顺序依次降低。Exemplarily, for the ISP mode, only the candidate prediction modes in the candidate prediction mode list are used for prediction. Therefore, the encoding terminal device determines the candidate prediction mode list. As an example, the candidate prediction mode list may be determined based on the intra prediction modes of adjacent image blocks that have been reconstructed around the current block, the candidate prediction mode list includes multiple candidate prediction modes, and the multiple candidate prediction modes The priority of the candidates decreases in order according to the sequence in the candidate prediction mode list.
在本申请的一种可能实现方式中,ISP模式的候选预测模式列表的构建方式与非ISP模式的候选预测模式列表的构建方式相同,即可以将ISP模式的候选预测模式列表的构建方式与非ISP模式的候选预测模式列表的构建方式统一。In a possible implementation of the present application, the method of constructing the candidate prediction mode list of the ISP mode is the same as that of the candidate prediction mode list of the non-ISP mode, that is, the method of constructing the candidate prediction mode list of the ISP mode can be compared with that of the non-ISP mode candidate prediction mode list. The construction method of the candidate prediction mode list of the ISP mode is unified.
作为一种例子,在候选预测模式列表中planar模式和DC模式处于固定位置。As an example, the planar mode and the DC mode are in fixed positions in the candidate prediction mode list.
示例性的,假设该当前块周围已重建的相邻图像块为上边相邻图像块A和左边相邻图像块B,候选预测模式的数量为6。在一种可能的实现方式中,当A或者B的帧内预测模式不可获取时,默认A或者B的帧内预测模式为Planar模式,为了便于后文描述,这里可以将A的帧内预测模式记为ModeA,B的帧内预测模式记为ModeB。Exemplarily, it is assumed that the adjacent image blocks that have been reconstructed around the current block are the upper adjacent image block A and the left adjacent image block B, and the number of candidate prediction modes is 6. In a possible implementation, when the intra prediction mode of A or B is not available, the default intra prediction mode of A or B is the Planar mode. For the convenience of the following description, the intra prediction mode of A can be set here. It is denoted as ModeA, and the intra prediction mode of B is denoted as ModeB.
首先可以初始化候选预测模式列表,初始化候选预测模式列表中的第一个候选预测模式为ModeA,第二个候选预测模式可以通过判断第一个候选预测模式是否为Planar模式来确定,如果第一个候选预测模式为Planar模式,第二个候选预测模式为DC模式,否则为Planar模式。第三个候选预测模式为垂直帧内预测模式,第四个候选预测模式为水平帧内预测模式,第五个候选预测模式为垂直帧内预测模式的相邻模式,示例性的,模式号可以为垂直帧内预测模式的模式号减4,第六个候选预测模式为垂直帧内预测模式的相邻模式,示例性的,模式号可以为垂直帧内预测模式的模式号加4。First, the candidate prediction mode list can be initialized. The first candidate prediction mode in the candidate prediction mode list can be initialized as ModeA. The second candidate prediction mode can be determined by judging whether the first candidate prediction mode is the Planar mode. The candidate prediction mode is Planar mode, the second candidate prediction mode is DC mode, otherwise it is Planar mode. The third candidate prediction mode is the vertical intra prediction mode, the fourth candidate prediction mode is the horizontal intra prediction mode, and the fifth candidate prediction mode is the adjacent mode of the vertical intra prediction mode. For example, the mode number can be The mode number of the vertical intra prediction mode is minus 4, and the sixth candidate prediction mode is an adjacent mode of the vertical intra prediction mode. Exemplarily, the mode number may be the mode number of the vertical intra prediction mode plus 4.
作为一种示例,当ModeA=ModeB,即A的帧内预测模式与B的帧内预测模式相同时:如果ModeA为DC模式或Planar模式,则可以将初始化的候选预测模式列表作为该当前块的候选预测模式列表。否则,如果ModeA和ModeB均不是DC模式和Planar模式,则当前块的候选预测模式列表的构建如下:As an example, when ModeA=ModeB, that is, when the intra prediction mode of A is the same as the intra prediction mode of B: if ModeA is the DC mode or the Planar mode, the initialized candidate prediction mode list can be used as the current block List of candidate prediction modes. Otherwise, if ModeA and ModeB are neither DC mode nor Planar mode, the candidate prediction mode list of the current block is constructed as follows:
第一个候选预测模式为ModeA;The first candidate prediction mode is ModeA;
第二个候选预测模式为PLANAR_IDX;The second candidate prediction mode is PLANAR_IDX;
第三个候选预测模式为DC_IDX;The third candidate prediction mode is DC_IDX;
第四个候选预测模式为ModeA的相邻模式,示例性的,模式号的计算方式可以为:((ModeA+offset)%mod)+2;The fourth candidate prediction mode is the adjacent mode of ModeA. Exemplarily, the calculation method of the mode number may be: ((ModeA+offset)%mod)+2;
第五个候选预测模式为ModeA的相邻模式,示例性的,模式号的计算方式可以为:((ModeA-1)%mod)+2;The fifth candidate prediction mode is the adjacent mode of ModeA. For example, the mode number calculation method can be: ((ModeA-1)%mod)+2;
第六个候选预测模式为ModeA的相邻模式,示例性的,模式号的计算方式可以为:((ModeA+offset-1)%mod)+2;The sixth candidate prediction mode is the adjacent mode of ModeA. For example, the mode number calculation method can be: ((ModeA+offset-1)%mod)+2;
作为一种示例,上述offset可以设为61,mod可以设为64。As an example, the above offset can be set to 61, and the mod can be set to 64.
作为一种示例,当ModeA!=ModeB,即A的帧内预测模式与B的帧内预测模式不相同时,当前块的候选预测模式列表的构建如下:As an example, when ModeA! =ModeB, that is, when the intra prediction mode of A is different from the intra prediction mode of B, the candidate prediction mode list of the current block is constructed as follows:
第一个候选预测模式为ModeA;The first candidate prediction mode is ModeA;
第二个候选预测模式为ModeB;The second candidate prediction mode is ModeB;
如果ModeA和ModeB均不是Planar和DC模式,那么If ModeA and ModeB are neither Planar nor DC mode, then
第三个候选预测模式为PLANAR_IDX;The third candidate prediction mode is PLANAR_IDX;
第四个候选预测模式为DC_IDX;The fourth candidate prediction mode is DC_IDX;
作为一种示例,可以比较ModeA和ModeB的模式号的差值,当差值在某一个区间范围 内时,第五个候选预测模式为两个模式中模式号较大的那一个模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]+offset)%mod)+2;As an example, the difference between the mode numbers of ModeA and ModeB can be compared. When the difference is within a certain interval, the fifth candidate prediction mode is the adjacent one of the two modes with the larger mode number. Mode, for example, the calculation method of the mode number can be: ((CandModeList[maxCandModeIdx]+offset)%mod)+2;
第六个候选预测模式为两个模式中模式号较大的那一个模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]-1)%mod)+2;The sixth candidate prediction mode is the adjacent mode of the mode with the larger mode number among the two modes. Exemplarily, the mode number calculation method can be: ((CandModeList[maxCandModeIdx]-1)%mod)+2 ;
其中,mpm[maxCandModeIdx]为ModeA和ModeB中模式号较大的那一个。Among them, mpm[maxCandModeIdx] is the larger mode number of ModeA and ModeB.
否则,当ModeA和ModeB的模式号的差值不在某一个区间范围内时,第五个候选预测模式为两个模式中模式号较大的那一个模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]+offset-1)%mod)+2;Otherwise, when the difference between the mode numbers of ModeA and ModeB is not within a certain interval, the fifth candidate prediction mode is the adjacent mode of the larger mode number of the two modes, for example, the mode number The calculation method of can be: ((CandModeList[maxCandModeIdx]+offset-1)%mod)+2;
第六个候选预测模式为两个模式中模式号较大的那一个模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx])%mod)+2;The sixth candidate prediction mode is the adjacent mode of the mode with the larger mode number among the two modes. Exemplarily, the mode number calculation method can be: ((CandModeList[maxCandModeIdx])%mod)+2;
其中,CandModeList[maxCandModeIdx]为ModeA和ModeB中模式号较大的那一个。可以简单理解为取的是相邻的帧内预测模式。Among them, CandModeList[maxCandModeIdx] is the larger of ModeA and ModeB. It can be simply understood as taking adjacent intra prediction modes.
否则,当ModeA与ModeB的模式号有且仅有一个大于等于2的情况下,必然出现DC模式或者planar模式,前两个候选预测模式可能存在两种情况DC模式和角度模式的组合,planar模式和角度模式的组合。Otherwise, when ModeA and ModeB have and only one of the mode numbers is greater than or equal to 2, DC mode or planar mode will inevitably appear. The first two candidate prediction modes may have two combinations of DC mode and angle mode, planar mode And the combination of angle mode.
第二个候选预测模式为planar模式或DC模式。The second candidate prediction mode is planar mode or DC mode.
示例性的,第三个候选预测模式的模式号的计算方式可以为:(CandModeList[!maxCandModeIdx]==PLANAR_IDX)?DC_IDX:PLANAR_IDX;其中,CandModeList[!maxCandModeIdx]为前两个候选预测模式中模式号较小的那一个。Exemplarily, the calculation method of the mode number of the third candidate prediction mode may be: (CandModeList[!maxCandModeIdx]==PLANAR_IDX)? DC_IDX: PLANAR_IDX; Among them, CandModeList[! maxCandModeIdx] is the smaller one of the first two candidate prediction modes.
第四个候选预测模式为前两个候选预测模式中模式号较大的候选预测模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]+offset)%mod)+2;The fourth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes. Exemplarily, the mode number calculation method can be: ((CandModeList[maxCandModeIdx]+offset)%mod )+2;
第五个候选预测模式为前两个候选预测模式中模式号较大的候选预测模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]-1)%mod)+2;The fifth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes. Exemplarily, the mode number calculation method can be: ((CandModeList[maxCandModeIdx]-1)%mod )+2;
第六个候选预测模式为前两个候选预测模式中模式号较大的候选预测模式的相邻模式,示例性的,模式号的计算方式可以为:((CandModeList[maxCandModeIdx]+offset-1)%mod)+2。The sixth candidate prediction mode is the adjacent mode of the candidate prediction mode with the larger mode number among the first two candidate prediction modes. Exemplarily, the mode number calculation method can be: ((CandModeList[maxCandModeIdx]+offset-1) %Mod)+2.
总而言之,上述核心思想是选取与ModeA或者ModeB相邻的帧内预测模式作为该当前块的候选预测模式。All in all, the above-mentioned core idea is to select the intra prediction mode adjacent to ModeA or ModeB as the candidate prediction mode of the current block.
需要说明的是,上述相邻图像块可以是相邻区域内的一个或多个图像块,比如可以包括次相邻图像块。It should be noted that the foregoing adjacent image blocks may be one or more image blocks in an adjacent area, for example, may include second adjacent image blocks.
在候选预测模式列表中,排序越靠前,候选优先权越大,对应的编码代价越小。在本申请一种可能的实现方式中,可以按照子块划分方式来确定候选预测模式列表中的候选预测模式的先后排列顺序。作为一种示例,若该当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么当该当前块支持的子块划分方式为水平划分时,将该垂直类预测模式位于该水平类预测模式之前;当该当前块支持的子块划分方式为垂直划分时,将该水平类预测模式位于该垂直类预测模式之前。In the candidate prediction mode list, the higher the ranking, the higher the candidate priority and the smaller the corresponding coding cost. In a possible implementation manner of this application, the sequence of candidate prediction modes in the candidate prediction mode list may be determined according to the sub-block division manner. As an example, if the current block starts intra sub-block division, if the candidate prediction mode list corresponding to the intra sub-block division includes the vertical prediction mode and the horizontal prediction mode, then when the current block supports the sub-block division mode as horizontal When dividing, the vertical prediction mode is placed before the horizontal prediction mode; when the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请的一种可能实现方式中,该候选预测模式列表可以是固定的列表,示例性的,若该当前块尺寸小于设定尺寸,则该帧内子块划分模式支持的候选预测模式列表为固定列表,该固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。也就是说,可以采用固定的候选列表作为该当前块的候选预测模式。In a possible implementation manner of the present application, the candidate prediction mode list may be a fixed list. For example, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is The fixed list is a first prediction mode list or a second prediction mode list containing 6 prediction modes. In other words, a fixed candidate list can be used as the candidate prediction mode of the current block.
作为一种示例,该固定的第一预测模式候选列表可以为:As an example, the fixed first prediction mode candidate list may be:
第一个候选预测模式:planar模式;The first candidate prediction mode: planar mode;
第二个候选预测模式:DC模式;The second candidate prediction mode: DC mode;
第三个候选预测模式:垂直模式;The third candidate prediction mode: vertical mode;
第四个候选预测模式:水平模式;The fourth candidate prediction mode: horizontal mode;
第五个候选预测模式:垂直模式的相邻模式,模式号可以为垂直模式号减4;The fifth candidate prediction mode: the adjacent mode of the vertical mode, the mode number can be the vertical mode number minus 4;
第六个候选预测模式:垂直模式的相邻模式,模式号可以为垂直模式号加4。The sixth candidate prediction mode: the adjacent mode of the vertical mode, the mode number can be the vertical mode number plus 4.
作为另一种示例,该固定的第二预测模式候选列表可以为:As another example, the fixed second prediction mode candidate list may be:
第一个候选预测模式:垂直类预测模式,示例性的,模式号可以为50;The first candidate prediction mode: vertical prediction mode, for example, the mode number can be 50;
第二个候选预测模式:水平类预测模式,示例性的,模式号可以为18;The second candidate prediction mode: horizontal prediction mode, exemplary, the mode number can be 18;
第三个候选预测模式:水平类预测模式,示例性的,模式号可以为2;The third candidate prediction mode: horizontal prediction mode, for example, the mode number can be 2;
第四个候选预测模式:对角类预测模式,示例性的,模式号可以为34;The fourth candidate prediction mode: diagonal prediction mode, for example, the mode number can be 34;
第五个候选预测模式:非对角类预测模式,示例性的,模式号可以为66;The fifth candidate prediction mode: non-diagonal prediction mode, for example, the mode number can be 66;
第六个候选预测模式:水平类预测模式,示例性的,模式号可以为26。The sixth candidate prediction mode: the horizontal prediction mode. For example, the mode number may be 26.
作为一种示例,当该当前块启动帧内子块划分模式,若该当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是该当前块的空域相邻已编码块共用的候选预测模式列表。As an example, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is the spatially adjacent coded block of the current block Common candidate prediction mode list.
作为一种示例,参考范围内的多个当前块可以共享一种候选预测模式列表,该参考范围可以根据实际需求进行设置。也就是说,该当前块可以与相邻的多个当前块共同使用一种候选预测模式列表,譬如请参考图11,若该当前块为图像块1,则可以基于相邻图像块的帧内预测模式确定该当前块的候选预测模式列表,而当该当前块为图像块2、3或4时,可以使用该图像块1的候选预测模式列表。需要说明的是,该种实现方式不限于ISP模式中,也可以应用于其他模式,比如可以应用于多行预测模式中,本申请实施例对此不作限定。As an example, multiple current blocks in the reference range may share a candidate prediction mode list, and the reference range may be set according to actual requirements. In other words, the current block can use a candidate prediction mode list with multiple adjacent current blocks. For example, please refer to Figure 11. If the current block is image block 1, it can be based on the intra-frame of adjacent image blocks. The prediction mode determines the candidate prediction mode list of the current block, and when the current block is the image block 2, 3, or 4, the candidate prediction mode list of the image block 1 can be used. It should be noted that this implementation is not limited to the ISP mode, and can also be applied to other modes, such as multi-line prediction mode, which is not limited in the embodiment of the present application.
作为一种示例,还可以获取相邻块的候选预测模式列表,将获取的候选预测模式列表作为该当前块的候选预测模式列表。As an example, the candidate prediction mode list of the neighboring block may also be obtained, and the obtained candidate prediction mode list is used as the candidate prediction mode list of the current block.
作为一种示例,当获取不到相邻块的候选预测模式列表时,可以将Planar模式作为该当前块的目标预测模式。As an example, when the candidate prediction mode list of the neighboring block cannot be obtained, the Planar mode may be used as the target prediction mode of the current block.
作为一种示例,当该当前块的尺寸小于设定尺寸时,该当前块可以与该待编码图像中其他所有当前块共享一种候选预测模式列表,该设定尺寸可以根据实际需求进行设置,示例性的,该设定尺寸为4*4。也就是说,如果该当前块的尺寸足够小,则可以与该待编码图像中的其他所有当前块共用一种候选预测模式列表,在该种情况下,只需要确定该待编码图像中的第一个块的候选预测模式列表,后续其他当前块均可以使用该第一个块的候选预测模式列表,如此减小了运算量,提高了编码效率。As an example, when the size of the current block is smaller than the set size, the current block can share a candidate prediction mode list with all other current blocks in the image to be encoded, and the set size can be set according to actual needs. Exemplarily, the set size is 4*4. That is to say, if the size of the current block is small enough, it can share a candidate prediction mode list with all other current blocks in the image to be encoded. In this case, it is only necessary to determine the first prediction mode in the image to be encoded. The candidate prediction mode list of a block can use the candidate prediction mode list of the first block in subsequent current blocks, which reduces the amount of calculation and improves coding efficiency.
作为一种示例,当当前块未启动帧内子块划分模式时,当前块对应的候选预测模式列表与上述固定列表或者当前块的空域相邻已编码块共用的候选预测模式列表相同。也就是说,在未启动帧内子块划分模式的情况下,可以使用上述任一示例的帧内子块划分模式支持的候选预测模式列表。As an example, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the above-mentioned fixed list or the candidate prediction mode list shared by neighboring coded blocks in the spatial domain of the current block. That is to say, when the intra sub-block division mode is not activated, the candidate prediction mode list supported by any of the above-mentioned intra sub-block division modes can be used.
构建候选预测模式列表后,基于该候选预测模式列表,确定目标预测模式,在本申请一种可能的实现方式中,该实现过程可以包括:使用该候选预测模式列表中的每种候选预测模式对该多个子块进行预测处理,得到每种候选预测模式对应的多个预测像素值;基于该每种候选预测模式对应的多个预测像素值,确定该每种候选预测模式对应的率失真代价;从得到的所有率失真代价中选择最小率失真代价对应的候选预测模式;将选择的候选预测模式确定为目标预测模式。After the candidate prediction mode list is constructed, the target prediction mode is determined based on the candidate prediction mode list. In a possible implementation of this application, the implementation process may include: using each candidate prediction mode pair in the candidate prediction mode list Perform prediction processing on the multiple sub-blocks to obtain multiple predicted pixel values corresponding to each candidate prediction mode; determine the rate distortion cost corresponding to each candidate prediction mode based on the multiple predicted pixel values corresponding to each candidate prediction mode; Select the candidate prediction mode corresponding to the smallest rate-distortion cost from all the obtained rate-distortion costs; determine the selected candidate prediction mode as the target prediction mode.
也就是说,该多个子块可以共享一种帧内预测模式,编码端设备可以遍历使用该候选预测模式列表中的每种候选预测模式对该多个子块进行预测处理,如此,基于每种候选预测模式,可以确定该多个子块中每个子块的预测像素值。然后可以确定每种候选预测模式对应的多个预测像素值的率失真代价,率失真代价越小说明对应的候选预测模式越适合对该多个子块的预测,因此,选择最小率失真代价对应的候选预测模式作为目标预测模式。That is to say, the multiple sub-blocks can share one intra-frame prediction mode, and the encoding end device can traverse and use each candidate prediction mode in the candidate prediction mode list to perform prediction processing on the multiple sub-blocks. In this way, based on each candidate prediction mode The prediction mode can determine the predicted pixel value of each sub-block in the multiple sub-blocks. Then you can determine the rate-distortion cost of the multiple predicted pixel values corresponding to each candidate prediction mode. The smaller the rate-distortion cost, the more suitable the corresponding candidate prediction mode is to predict the multiple sub-blocks. Therefore, the smallest rate-distortion cost corresponding The candidate prediction mode is used as the target prediction mode.
譬如,假设该候选预测模式列表包括候选预测模式0,候选预测模式1,候选预测模式2和候选预测模式3,编码端设备使用候选预测模式0对该多个子块进行预测处理,得到候选预测模式0对应的多个预测像素值;使用候选预测模式1对该多个子块进行预测处理,得到候选预测模式1对应的多个预测像素值;使用候选预测模式2对该多个子块进行预测处理, 得到候选预测模式2对应的多个预测像素值;以及使用候选预测模式3对该多个子块进行预测处理,得到候选预测模式3对应的多个预测像素值。编码端设备基于候选预测模式0对应的多个预测像素值确定该候选预测模式0对应的率失真代价,基于候选预测模式1对应的多个预测像素值确定该候选预测模式1对应的率失真代价,基于候选预测模式2对应的多个预测像素值确定该候选预测模式2对应的率失真代价,基于候选预测模式3对应的多个预测像素值确定该候选预测模式3对应的率失真代价。假设候选预测模式1对应的率失真代价最小,则该编码端设备将候选预测模式1确定为目标预测模式。For example, suppose the candidate prediction mode list includes candidate prediction mode 0, candidate prediction mode 1, candidate prediction mode 2, and candidate prediction mode 3. The encoding end device uses candidate prediction mode 0 to perform prediction processing on the multiple sub-blocks to obtain candidate prediction modes Multiple predicted pixel values corresponding to 0; use candidate prediction mode 1 to perform prediction processing on the multiple sub-blocks to obtain multiple predicted pixel values corresponding to candidate prediction mode 1; use candidate prediction mode 2 to perform prediction processing on the multiple sub-blocks, Obtain multiple predicted pixel values corresponding to candidate prediction mode 2; and perform prediction processing on the multiple sub-blocks using candidate prediction mode 3 to obtain multiple predicted pixel values corresponding to candidate prediction mode 3. The encoding end device determines the rate distortion cost corresponding to candidate prediction mode 0 based on multiple predicted pixel values corresponding to candidate prediction mode 0, and determines the rate distortion cost corresponding to candidate prediction mode 1 based on multiple predicted pixel values corresponding to candidate prediction mode 1 Determine the rate distortion cost corresponding to the candidate prediction mode 2 based on the multiple predicted pixel values corresponding to the candidate prediction mode 2, and determine the rate distortion cost corresponding to the candidate prediction mode 3 based on the multiple predicted pixel values corresponding to the candidate prediction mode 3. Assuming that the rate-distortion cost corresponding to candidate prediction mode 1 is the smallest, the encoding end device determines candidate prediction mode 1 as the target prediction mode.
步骤1003:根据该目标预测模式进行帧内子块预测得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。Step 1003: Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine residual information of the current block according to original pixel information of the current block and predicted pixel information of the multiple sub-blocks.
其实现过程与上述图7实施例中的步骤703相同。The implementation process is the same as step 703 in the embodiment of FIG. 7 described above.
步骤1004:根据该多个子块支持的变换方式对该残差信息进行变换,得到变换后的信息。Step 1004: Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
其实现过程与上述图7实施例中的步骤704相同。The implementation process is the same as step 704 in the embodiment of FIG. 7 described above.
步骤1005:根据变换后的信息,对当前块进行编码生成当前块的编码流。Step 1005: According to the transformed information, encode the current block to generate an encoded stream of the current block.
作为一种示例,该编码流中携带第一指示信息,该第一指示信息用于指示该目标预测模式在该候选预测模式列表中的索引信息。As an example, the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
当候选预测模式列表中包括多个候选预测模式时,为了便于解码端设备获知编码时采用的是哪种帧内预测模式,该编码端设备可以根据该目标预测模式在该候选预测模式列表中的索引信息,确定第一指示信息,将该第一指示信息编码至编码流中。When the candidate prediction mode list includes multiple candidate prediction modes, in order to facilitate the decoding end device to know which intra prediction mode is used for encoding, the encoding end device can be based on the target prediction mode in the candidate prediction mode list. The index information determines the first indication information, and encodes the first indication information into the coded stream.
作为一种示例,该编码端设备可以根据该当前块的尺寸或形状,选取用于编码第一指示信息的上下文模型,然后基于选择的上下文模型来对该第一指示信息进行编码。As an example, the encoding terminal device may select a context model for encoding the first indication information according to the size or shape of the current block, and then encode the first indication information based on the selected context model.
需要说明的是,该步骤还包括图7实施例中步骤705的其它可能的实现方式,这里不再重复赘述。It should be noted that this step also includes other possible implementation manners of step 705 in the embodiment of FIG. 7, which will not be repeated here.
在本申请实施例中,在本申请实施例中,当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式,根据该目标预测模式进行帧内子块预测,得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。根据该多个子块支持的变换方式对该残差信息进行变换,根据该变换后的信息,对该当前块进行编码生成当前块的编码流。在本申请实施例中,当前块支持的子块划分方式不都是水平划分和垂直划分,如此可以避免硬件对某种子块划分方式划分后的子块的处理代价较大的问题。In the embodiment of the present application, in the embodiment of the present application, when the current block starts the intra-frame sub-block division mode, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and according to the target sub-block division mode, Divide the current block into multiple sub-blocks. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block. The residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block. In the embodiment of the present application, not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
图12是根据一示例性实施例示出的一种编码方法,该编码方法可以应用于编码端设备中,该方法可以包括如下几个实现步骤:Fig. 12 shows an encoding method according to an exemplary embodiment. The encoding method may be applied to an encoding terminal device. The method may include the following implementation steps:
步骤1201:当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。Step 1201: When the current block starts the intra-frame sub-block division mode, determine the target sub-block division mode from the sub-block division modes supported by the current block, and divide the current block into multiple sub-blocks according to the target sub-block division mode.
其实现过程与图7实施例中的步骤701相同。The implementation process is the same as step 701 in the embodiment of FIG. 7.
步骤1202:从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式。Step 1202: Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
当该当前块启动帧内子块划分,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;作为一种示例,该非角度候选模式列表仅包括Planar模式或仅包括DC模式,该角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者,该非角度候选模式列表包括Planar模式和DC模式,该角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。When the current block starts intra sub-block division, the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list; as an example, the non-angle candidate mode list includes only Planar mode or Including only DC mode, the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or, the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode. Angle prediction modes other than Planar mode and DC mode.
也就是说,可以将角度预测模式和非角度预测模式分别划分为属于两个列表,在构建当前块的候选预测模式列表时,可以构建角度候选预测模式列表,或者,还可以构建非角度候选预测模式列表。In other words, the angular prediction mode and the non-angle prediction mode can be divided into two lists. When constructing the candidate prediction mode list of the current block, the angular candidate prediction mode list can be constructed, or the non-angle prediction mode can also be constructed List of patterns.
作为一种示例,该非角度候选预测模式列表可以仅包括Planar模式,或者,仅包括DC 模式,而角度候选预测模式列表包括至少一个角度预测模式,比如,可以包括至少一个垂直类预测模式,或者也可以包括至少一个水平类预测模式,再或者,还可以包括至少一个垂直类预测模式和至少一个水平类预测模式。As an example, the non-angle candidate prediction mode list may include only Planar mode, or only DC mode, and the angle candidate prediction mode list may include at least one angular prediction mode, for example, may include at least one vertical prediction mode, or It may also include at least one horizontal prediction mode, or alternatively, it may also include at least one vertical prediction mode and at least one horizontal prediction mode.
作为另一种示例,该非角度候选预测模式列表可以包括Planar模式和DC模式,而角度候选预测模式列表包括至少一个角度预测模式,比如,可以包括至少一个垂直类预测模式,或者也可以包括至少一个水平类预测模式,再或者,还可以包括至少一个垂直类预测模式和至少一个水平类预测模式。As another example, the non-angle candidate prediction mode list may include Planar mode and DC mode, and the angle candidate prediction mode list may include at least one angular prediction mode. For example, it may include at least one vertical prediction mode, or may include at least One horizontal prediction mode, or alternatively, may also include at least one vertical prediction mode and at least one horizontal prediction mode.
从角度预测模式或非角度预测模式中确定当前块的目标预测模式的具体实现与上述图10中从候选预测模式列表中确定当前块的目标预测模式的实现原理相同。The specific realization of determining the target prediction mode of the current block from the angular prediction mode or the non-angle prediction mode is the same as the realization principle of determining the target prediction mode of the current block from the candidate prediction mode list in FIG. 10.
作为一种示例,当当前块未启动帧内子块划分模式时,当前块对应的候选预测模式列表与角度预测模式相同,或者,当前块对应的候选预测模式列表与非角度预测模式相同。也就是说,在未启动帧内子块划分模式时,可以使用上述任一候选预测模式列表。As an example, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the angular prediction mode, or the candidate prediction mode list corresponding to the current block is the same as the non-angle prediction mode. That is, when the intra sub-block division mode is not activated, any one of the candidate prediction mode lists described above can be used.
步骤1203:根据该目标预测模式进行帧内子块预测,得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。Step 1203: Perform intra sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the residual information of the current block according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks.
其实现过程与图7实施例中的步骤703相同。The implementation process is the same as step 703 in the embodiment of FIG. 7.
步骤1204:根据该多个子块支持的变换方式对该残差信息进行变换,得到变换后的信息。Step 1204: Transform the residual information according to the transformation mode supported by the multiple sub-blocks to obtain transformed information.
其实现过程与图7实施例中的步骤704相同。The implementation process is the same as step 704 in the embodiment of FIG. 7.
步骤1205:根据变换后的信息,对当前块进行编码生成当前块的编码流。Step 1205: According to the transformed information, encode the current block to generate an encoded stream of the current block.
作为一种示例,若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,该编码流中携带第四指示信息,该第四指示信息用于指示该当前块的目标预测模式是否为角度预测模式。As an example, if the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current Whether the target prediction mode of the block is the angle prediction mode.
也就是说,当该帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表时,最终选用的目标子块划分方式可能是来自于角度候选预测模式列表,也可能是来自于非角度候选模式列表,为了便于解码端设备获知需要建立角度候选预测模式列表,还是需要建立非角度候选模式列表,编码端设备在编码时,除了将第一指示信息编码至编码流中外,还可以在编码流中增加该第四指示信息。That is to say, when the candidate prediction mode list supported by the intra-frame sub-block division mode includes the angle candidate prediction mode list and the non-angle candidate mode list, the final selected target sub-block division method may come from the angle candidate prediction mode list. It may come from the non-angle candidate mode list. In order to facilitate the decoding end device to know whether the angle candidate prediction mode list needs to be established, or the non-angle candidate mode list needs to be established, the encoding end device encodes the first indication information into the encoding stream during encoding. At home and abroad, the fourth indication information can also be added to the encoded stream.
需要说明的是,该步骤还包括图7实施例中步骤705的其它可能的实现方式,这里不再重复赘述。It should be noted that this step also includes other possible implementation manners of step 705 in the embodiment of FIG. 7, which will not be repeated here.
在本申请实施例中,当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式,根据该目标预测模式进行帧内子块预测,得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。根据该多个子块支持的变换方式对该残差信息进行变换,根据该变换后的信息,对该当前块进行编码生成当前块的编码流。在本申请实施例中,当前块支持的子块划分方式不都是水平划分和垂直划分,如此可以避免硬件对某种子块划分方式划分后的子块的处理代价较大的问题。In the embodiment of the present application, when the current block starts the intra-frame sub-block division mode, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode. Sub-blocks. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra-frame sub-block prediction according to the target prediction mode, and obtain the predicted pixel information of the multiple sub-blocks, according to the original pixel information of the current block and the The predicted pixel information of multiple sub-blocks determines the residual information of the current block. The residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block. In the embodiment of the present application, not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
请参考图13,图13是根据一示例性实施例示出的一种解码方法的流程图,本实施例以该解码方法应用于解码端设备中进行举例说明,该解码方法可以包括如下几个步骤:Please refer to FIG. 13, which is a flowchart of a decoding method according to an exemplary embodiment. In this embodiment, the decoding method is applied to a decoding end device as an example. The decoding method may include the following steps :
步骤1301:获取当前块的编码流。Step 1301: Obtain the encoding stream of the current block.
作为一种示例,该解码端设备可以接收编码端设备发送的编码流,作为另一种示例,也可以从存储装置中读取编码流。As an example, the decoding end device may receive the encoded stream sent by the encoding end device, and as another example, it may also read the encoded stream from the storage device.
步骤1302:当根据该编码流中携带的信息确定当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式。Step 1302: When it is determined that the current block starts the intra-frame sub-block division mode according to the information carried in the encoding stream, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the prediction from the candidate prediction mode list of the current block Determine the target prediction mode of the current block in the mode.
作为一种示例,该解码端设备解析该编码流中携带的当前块的宽度和高度,根据该宽度 和高度,判断是否支持帧内子块划分模式,当确定不支持帧内子块划分模式时,确定未启动帧内子块划分模式,此时可以采用其它模式解码,比如多行预测模式等。否则,当确定支持帧内子块划分模式时,再进一步确定编码端是否开启帧内子块划分模式。As an example, the decoding end device parses the width and height of the current block carried in the encoded stream, and determines whether the intra-frame sub-block division mode is supported according to the width and height. The intra-frame sub-block division mode is not activated. At this time, other modes can be used for decoding, such as multi-line prediction mode. Otherwise, when it is determined that the intra-frame sub-block division mode is supported, it is further determined whether the encoding end turns on the intra-frame sub-block division mode.
作为一种示例,若当前块启动帧内子块划分模式,则该编码流中携带第三指示信息,该第三指示信息用于指示该当前块启动帧内子块划分模式,此时,按照上下文模型解析该编码流中的该第三指示信息;其中,根据该当前块的宽高比确定该上下文模型,不同的宽高比对应不同的上下文模型。As an example, if the current block starts the intra-frame sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to indicate that the current block starts the intra-frame sub-block division mode. At this time, according to the context model Analyze the third indication information in the encoded stream; wherein the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
也就是说,如果编码端设备启动帧内子块划分模式,会在编码流中添加第三指示信息,比如,该第三指示信息为ISP模式的flag,该解码端设备确定当前块支持帧内子块划分模式后,解析该第三指示信息,当存在该第三指示信息时,可以确定启动帧内子块划分模式。In other words, if the encoding end device starts the intra-frame sub-block division mode, it will add third indication information to the encoded stream. For example, the third indication information is the flag of the ISP mode, and the decoding end device determines that the current block supports intra-frame sub-blocks. After the division mode, the third indication information is parsed, and when the third indication information exists, it may be determined to start the intra-frame sub-block division mode.
作为一种示例,在解析第三指示信息时,可以根据当前块的宽高比确定该上下文模型,也就是说,可以根据当前块的尺寸,确定上下文模型,并根据确定的上下文模型来解析该第三指示信息。As an example, when parsing the third indication information, the context model can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the context model can be analyzed according to the determined context model. The third instruction information.
作为一种示例,在解析第三指示信息时,还可以根据当前块的形状确定该上下文模型,也就是说,不仅限于根据当前块的宽高比确定该上下文模型,还可以考虑根据形状来确定。As an example, when parsing the third indication information, the context model can also be determined according to the shape of the current block, that is, it is not limited to determining the context model according to the aspect ratio of the current block, and it can also be considered according to the shape. .
作为一种示例,该第三指示信息的解析顺序先于多行预测技术的编码顺序。As an example, the parsing order of the third indication information precedes the coding order of the multi-line prediction technology.
在一种可能的实施方式中,可以修改多行预测技术的intra_luma_ref_idx语法与intra_subpartitions_mode_flag语法的先后顺序,使得第三指示信息的解析顺序先于多行预测技术的编码顺序,比如将原表8中的代码改为表9所示:In a possible implementation manner, the order of intra_luma_ref_idx syntax and intra_subpartitions_mode_flag syntax of the multi-line prediction technology can be modified so that the parsing order of the third indication information precedes the coding order of the multi-line prediction technology, for example, the original table 8 The code is changed as shown in Table 9:
表8Table 8
Figure PCTCN2020078812-appb-000003
Figure PCTCN2020078812-appb-000003
表9Table 9
Figure PCTCN2020078812-appb-000004
Figure PCTCN2020078812-appb-000004
当确定当前块启动帧内子块划分模式时,编码流中可以没有携带第二指示信息,该解码端设备从当前块支持的子块划分方式中确定目标子块划分方式。作为一种示例,当确定该当前块仅支持一种子块划分方式时,可以直接将所支持的该种子块划分方式确定为该目标子块划分方式,比如当该当前块仅支持水平划分时,可以直接将水平划分确定为该目标子块划分方式,比如当该当前块仅支持垂直划分方式时,可以直接将该垂直划分方式确定为该目标子块划分方式。When it is determined that the current block starts the intra-frame sub-block division mode, the encoded stream may not carry the second indication information, and the decoding end device determines the target sub-block division mode from the sub-block division modes supported by the current block. As an example, when it is determined that the current block supports only one sub-block division method, the supported seed block division method can be directly determined as the target sub-block division method. For example, when the current block only supports horizontal division, The horizontal division can be directly determined as the target sub-block division mode. For example, when the current block only supports the vertical division mode, the vertical division mode can be directly determined as the target sub-block division mode.
在另一种可能的实现方式中,若当前块启动帧内子块划分模式,且该当前块支持的子块划分方式同时包括垂直划分和水平划分,则该编码流中还携带第二指示信息,该第二指示信息用于指示该目标子块划分方式。In another possible implementation manner, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, then the encoded stream also carries second indication information, The second indication information is used to indicate the target sub-block division mode.
该方法还包括:按照上下文模型解析该编码流中的该第二指示信息;其中,根据该当前块的宽高比确定该上下文模型,不同的宽高比对应不同的上下文模型。The method further includes: analyzing the second indication information in the encoded stream according to a context model; wherein, determining the context model according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
也就是说,当当前块启动帧内子块划分模式,该当前块既支持水平划分又支持垂直划分,该编码流中除了第三指示信息,还包括第二指示信息,该第二指示信息用于指示编码端设备 采用的子块划分方式。对于解码端设备来说,当解码端设备确定该当前块既支持水平划分又支持垂直划分时,解析该编码流中的第二指示信息,将该第二指示信息指示的子块划分方式确定为该目标子块划分方式。That is to say, when the current block starts the intra-frame sub-block division mode, the current block supports both horizontal division and vertical division. In addition to the third indication information, the coded stream also includes second indication information, which is used for Indicates the sub-block division method adopted by the encoding device. For the decoding end device, when the decoding end device determines that the current block supports both horizontal division and vertical division, it parses the second indication information in the encoded stream and determines the sub-block division mode indicated by the second indication information as The way the target sub-block is divided.
在解析该第二指示信息时,可以根据该当前块的宽高比确定该上下文模型,也就是说,可以根据当前块的尺寸,确定上下文模型,并根据确定的上下文模型来解析该第二指示信息。When parsing the second indication information, the context model can be determined according to the aspect ratio of the current block, that is, the context model can be determined according to the size of the current block, and the second indication can be parsed according to the determined context model information.
作为一种示例,在解析第二指示信息时,还可以根据当前块的形状确定该上下文模型,也就是说,不仅限于根据当前块的宽高比确定该上下文模型,还可以考虑根据形状来确定。As an example, when parsing the second indication information, the context model can also be determined based on the shape of the current block, that is, it is not limited to determining the context model based on the aspect ratio of the current block, and it can also be considered based on the shape. .
另外,该编码端设备从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式。In addition, the encoding terminal device determines the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block.
作为一种示例,当该候选预测模式列表中仅包括一种候选预测模式时,可以不指示使用该种候选预测模式作为该目标预测模式。比如,当该候选预测模式列表仅包括Planar模式时,可以将该Planar模式作为该目标预测模式。作为另一种示例,当该目标子块划分方式为水平划分时,该候选预测模式列表仅包括水平模式,此时,将该水平模式确定为该目标预测模式。作为另一种示例,当该目标子块划分方式为垂直划分时,该候选预测模式列表仅包括垂直模式,此时,将该垂直模式确定为该目标预测模式。As an example, when the candidate prediction mode list includes only one candidate prediction mode, it may not be indicated to use this candidate prediction mode as the target prediction mode. For example, when the candidate prediction mode list only includes the Planar mode, the Planar mode can be used as the target prediction mode. As another example, when the target sub-block division method is horizontal division, the candidate prediction mode list only includes the horizontal mode, and in this case, the horizontal mode is determined as the target prediction mode. As another example, when the target sub-block division method is vertical division, the candidate prediction mode list includes only the vertical mode, and in this case, the vertical mode is determined as the target prediction mode.
作为另一种示例,该编码流中携带第一指示信息,该第一指示信息用于指示该目标预测模式在该候选预测模式列表中的索引信息。As another example, the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
也就是说,当该候选预测模式列表中包括多个候选预测模式时,还可以从编码流的信息中解析目标预测模式在候选预测模式列表中的索引信息,根据该索引信息,从该多个候选预测模式列表中确定该目标预测模式。That is to say, when the candidate prediction mode list includes multiple candidate prediction modes, the index information of the target prediction mode in the candidate prediction mode list can also be parsed from the information in the encoded stream, and according to the index information, from the multiple The target prediction mode is determined in the candidate prediction mode list.
作为一种示例,在解码第一指示信息之前,还可以根据该当前块的形状或尺寸,确定上下文模型,并基于确定的上下文模型,解析该第一指示信息。As an example, before decoding the first indication information, a context model may be determined according to the shape or size of the current block, and the first indication information may be parsed based on the determined context model.
作为一种示例,若当前块启动帧内子块划分模式,该当前块支持的子块划分方式,包括:若当前块的宽高尺寸为4*N,N大于4,则该当前块支持的子块划分方式为水平划分;若当前块的宽高尺寸为8*N,N大于或等于4,则该当前块支持的子块划分方式为水平划分;或者,该当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。As an example, if the intra-frame sub-block division mode is activated for the current block, the sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-blocks supported by the current block The block division method is horizontal division; if the width and height of the current block is 8*N, and N is greater than or equal to 4, the sub-block division method supported by the current block is horizontal division; or, the sub-block division method supported by the current block Including vertical division and horizontal division at the same time, the vertical division can only be divided into two sub-blocks.
作为一种示例,若当前块的宽高尺寸为64*64,则该当前块不支持帧内子块划分模式。As an example, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
作为一种示例,若当前块启动帧内子块划分模式,该当前块支持的候选子块划分方式,包括:若当前块的宽高尺寸为4*16或4*32或8*32,则该当前块不支持垂直划分,仅支持水平划分;若当前块的宽高尺寸为16*4或32*4或32*8,则该当前块不支持水平划分,仅支持垂直划分。As an example, if the current block starts the intra-frame sub-block division mode, the candidate sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, then The current block does not support vertical division, but only supports horizontal division; if the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division and only supports vertical division.
作为一种示例,若当前块启动帧内子块划分模式,该多个子块是按照非均匀划分得到;或者该多个子块是按照均匀划分得到;或者,若当前块启动帧内子块划分模式,该多个子块是按照多级划分得到。As an example, if the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or, if the current block starts the intra-frame sub-block division mode, the Multiple sub-blocks are obtained according to multi-level division.
作为一种示例,当该当前块启动帧内子块划分模式时,该当前块的候选预测模式列表包括:若该当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么当该当前块支持的子块划分方式为水平划分时,将该垂直类预测模式位于该水平类预测模式之前;当该当前块支持的子块划分方式为垂直划分时,将该水平类预测模式位于该垂直类预测模式之前。As an example, when the current block starts the intra sub-block division mode, the candidate prediction mode list of the current block includes: if the current block starts the intra sub-block division, the candidate prediction mode list corresponding to the intra sub-block division includes vertical Class prediction mode and horizontal class prediction mode, when the sub-block division mode supported by the current block is horizontal division, the vertical class prediction mode is located before the horizontal class prediction mode; when the sub-block division mode supported by the current block is During vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
作为一种示例,当该当前块启动帧内子块划分,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;其中,该固定列表仅包括Planar预测模式;或者,若该当前块的目标子块划分方式为水平划分,则该固定列表仅包括水平模式;或者,若该当前块的目标子块划分方式为垂直划分,则该固定列表仅包括垂直模式。As an example, when the current block starts intra sub-block division, the candidate prediction mode list supported by the intra sub-block division mode is a predefined fixed list; wherein, the fixed list only includes the Planar prediction mode; or, if the current block The target sub-block division mode of is horizontal division, then the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only includes the vertical mode.
作为一种示例,当该当前块启动帧内子块划分,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;其中,该非角度候选模式列表仅包 括Planar模式或仅包括DC模式,该角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者该非角度候选模式列表包括Planar模式和DC模式,该角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。As an example, when the current block starts intra sub-block division, the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list; wherein, the non-angle candidate mode list only includes Planar Mode or only DC mode, the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or the non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one Angle prediction modes other than Planar mode and DC mode.
作为一种示例,当该当前块启动帧内子块划分模式时,若该当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是该当前块的空域相邻已编码块共用的候选预测模式列表。As an example, when the current block starts the intra sub-block division mode, if the current block size is less than the set size, the candidate prediction mode list supported by the intra sub-block division mode is the spatial neighboring coded of the current block A list of candidate prediction modes shared by the block.
作为一种示例,当该当前块启动帧内子块划分模式时,若该当前块尺寸小于设定尺寸,则该帧内子块划分模式支持的候选预测模式列表为固定列表,该固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。As an example, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 The first prediction mode list or the second prediction mode list of each prediction mode.
作为一种示例,当该当前块未启动帧内子块划分模式时,当前块对应的该候选预测模式列表与该帧内子块划分模式支持的候选预测模式列表相同。As an example, when the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode.
需要说明的是,该候选预测模式列表的构建与编码端的构建方式相同,这里不再重复赘述。It should be noted that the construction of the candidate prediction mode list is the same as the construction of the encoding end, and will not be repeated here.
作为一种示例,若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,该编码流中携带第四指示信息,该第四指示信息用于指示该当前块的目标预测模式是否为角度预测模式。As an example, if the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current Whether the target prediction mode of the block is the angle prediction mode.
若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,对于解码端设备来说需要确定该目标预测模式是来自哪个列表中,解码端设备解析该第四指示信息。比如,当该第四指示信息指示的是角度候选预测模式列表,则构建角度候选预测模式列表,从而基于该角度候选预测模式列表和该第一指示信息,确定该目标预测模式。当该第四指示信息指示的是非角度候选模式列表,则构建非角度候选预测模式列表,从而基于该非角度候选预测模式列表和该第一指示信息,确定该目标预测模式。If the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, it is necessary for the decoder device to determine which list the target prediction mode comes from, and the decoder device parses the fourth Instructions. For example, when the fourth indication information indicates an angle candidate prediction mode list, an angle candidate prediction mode list is constructed, so that the target prediction mode is determined based on the angle candidate prediction mode list and the first indication information. When the fourth indication information indicates a non-angle candidate mode list, a non-angle candidate prediction mode list is constructed, and the target prediction mode is determined based on the non-angle candidate prediction mode list and the first indication information.
也可以直接基于第一指示信息,从已经构建的角度候选预测模式列表或非角度候选预测模式列表中选择目标预测模式,如果目标预测模式不是默认的一个,而是角度候选预测模式列表或非角度候选预测模式列表多个预测模式中的一个,也可以通过解析编码流中携带的索引信息来确定目标预测模式。It is also possible to select the target prediction mode directly based on the first indication information from the angle candidate prediction mode list or the non-angle candidate prediction mode list that has been constructed. If the target prediction mode is not the default one, it is the angle candidate prediction mode list or the non-angle candidate prediction mode list. One of the multiple prediction modes in the candidate prediction mode list may also determine the target prediction mode by analyzing the index information carried in the coded stream.
作为一种示例,该编码流中携带第五指示信息,该第五指示信息用于指示该当前块或者该当前块的多个子块是否存在残差信息。As an example, the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
该方法还包括:按照上下文模型解析该第五指示信息,该上下文模型根据该多个子块的划分深度来确定,该多个子块的划分深度为0时,采用第一上下文模型,该多个子块的划分深度不为0时,采用第二上下文模型,该第一上下文模型与该第二上下文模型不同。The method further includes: parsing the fifth indication information according to a context model, the context model being determined according to the division depth of the plurality of sub-blocks, when the division depth of the plurality of sub-blocks is 0, adopting the first context model, and the plurality of sub-blocks When the division depth of is not 0, the second context model is used, and the first context model is different from the second context model.
作为一种示例,在编码时,可以采用第五指示信息来指示该当前块或者该当前块的子块是否存在残差信息,示例性的,该第五指示信息为CBF(Coded block flag,编码块标识)值的标志,解码端会解析第五指示信息,以确定是否存在残差信息。As an example, during encoding, the fifth indication information may be used to indicate whether there is residual information in the current block or sub-blocks of the current block. Exemplarily, the fifth indication information is CBF (Coded block flag, coded block flag). Block ID) value flag, the decoder will parse the fifth indication information to determine whether there is residual information.
譬如,假设给定了一个块为ISP块,解码端设备会认为至少包含一个非零的CBF块,基于此,如果有n个子块,但是前n-1个子块都为零CBF,那么最后一行的子块的CBF默认为1,该种情况下,编码端可以不传输最后一个子块的CBF值。For example, if a given block is an ISP block, the decoder device will consider that it contains at least one non-zero CBF block. Based on this, if there are n sub-blocks, but the first n-1 sub-blocks are all zero CBF, then the last line The CBF of the sub-block is 1 by default. In this case, the encoding end may not transmit the CBF value of the last sub-block.
在解析该第五指示信息时,根据该多个子块的划分深度来确定上下文模型,该第一上下文模型与该第二上下文模型不同。值得一提的是,对于当前块的残差解码的CBF的上下文模型是根据变换块的划分深度来选择,而不是根据前一个子块的CBF值进行选择,如此可以避免上下文模型选择需要依赖前后子块的相关性这一问题。When parsing the fifth indication information, a context model is determined according to the division depth of the multiple sub-blocks, and the first context model is different from the second context model. It is worth mentioning that the context model of the CBF for the residual decoding of the current block is selected according to the division depth of the transform block, rather than based on the CBF value of the previous sub-block. This can avoid the need for context model selection to rely on before and after The question of the relevance of sub-blocks.
步骤1303:按照该目标子块划分方式,将该当前块划分成多个子块。Step 1303: According to the target sub-block division mode, divide the current block into multiple sub-blocks.
具体实现方式与编码端实现方式相同,这里不再重复赘述。The specific implementation is the same as the implementation on the encoding end, and will not be repeated here.
步骤1304:根据该多个子块对该编码流进行反量化和反变换,得到该多个子块对应的残差信息。Step 1304: Perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks.
该过程与编码端的变换、量化过程相反,如此可以确定该多个子块的残差信息,以便于 根据该残差信息重构图像。This process is opposite to the transformation and quantization process at the encoding end. In this way, the residual information of the multiple sub-blocks can be determined, so that the image can be reconstructed according to the residual information.
步骤1305:根据该目标预测模式进行帧内子块预测得到该多个子块的预测像素信息。Step 1305: Perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
在一种实施例中,可以根据该目标预测模式对该多个子块分别进行帧内预测,得到该多个子块的预测像素信息。在另一种实现方式中,也可以根据该目标预测模式对当前块进行帧内预测,得到该多个子块的预测像素信息。In an embodiment, intra-frame prediction may be performed on the multiple sub-blocks respectively according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks. In another implementation manner, it is also possible to perform intra-frame prediction on the current block according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks.
步骤1306:根据该多个子块对应的残差信息和预测像素信息,确定该当前块的重构图像。Step 1306: Determine the reconstructed image of the current block according to the residual information and predicted pixel information corresponding to the multiple sub-blocks.
作为一种示例,得到重构图像后,可以使用滤波器对子块的边界进行滤波。作为一种示例,当所述当前块启动帧内子块划分模式时,根据所述目标子块划分方式,确定子块的边界滤波强度值,根据边界滤波强度值,对所述重构图像进行滤波。As an example, after the reconstructed image is obtained, a filter can be used to filter the boundary of the sub-block. As an example, when the intra-frame sub-block division mode is activated for the current block, the boundary filter intensity value of the sub-block is determined according to the target sub-block division mode, and the reconstructed image is filtered according to the boundary filter intensity value .
作为一种示例,根据所述当前块的目标子块划分方式,确定子块的边界滤波强度值的实现可以包括:当目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者,当目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者,将各个子块的水平边界和垂直边界的滤波强度值都设置为0。As an example, according to the target sub-block division mode of the current block, the realization of determining the boundary filter strength value of the sub-block may include: when the target sub-block division mode is vertical division, filtering the vertical boundary of each sub-block The intensity value is set to 0; or, when the target sub-block division method is horizontal division, the filter intensity value of the horizontal boundary of each sub-block is set to 0; or the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block Both are set to 0.
也就是说,可以根据目标子块划分方式,设置各个子块的边界滤波强度值,或者,直接将各个子块的水平边界和垂直边界的滤波强度值都设置为0,其中,“0”表示不滤波,非“0”表示滤波。That is to say, you can set the boundary filter intensity value of each sub-block according to the target sub-block division method, or directly set the filter intensity value of the horizontal boundary and the vertical boundary of each sub-block to 0, where "0" means No filtering, non-"0" means filtering.
作为一种示例,可以根据当前块的宽度或高度设置多个子块的变换块的边界滤波强度值(如图14),示例性的,当该当前块的宽度或高度大于一定阈值时,将该多个子块的变换块的边界滤波强度值设置为非0,比如设置为32。否则,将该多个子块的变换块的边界滤波强度值设置为0。As an example, the boundary filter strength values of the transform blocks of multiple sub-blocks can be set according to the width or height of the current block (as shown in Figure 14). Illustratively, when the width or height of the current block is greater than a certain threshold, the The boundary filter strength values of the transform blocks of the multiple sub-blocks are set to non-zero, for example, set to 32. Otherwise, the boundary filter strength value of the transform blocks of the multiple sub-blocks is set to 0.
作为一种示例,还可以根据当前块的形状来设置多个子块的变换块的边界滤波强度值,本申请实施例对此不作限定。As an example, the boundary filter strength values of the transform blocks of multiple sub-blocks can also be set according to the shape of the current block, which is not limited in the embodiment of the present application.
作为一种示例,可以使用传统的帧内预测方式对当前块进行预测处理,然后可以将使用传统的帧内预测方式得到的预测像素信息与重构图像的像素信息进行加权处理。或者,还可以将使用传统的帧内预测方式得到的预测像素信息与上述ISP模式确定的预测像素信息进行加权,本申请实施例对此不作限定。As an example, a traditional intra-frame prediction method can be used to perform prediction processing on the current block, and then the predicted pixel information obtained using the traditional intra-frame prediction method and the pixel information of the reconstructed image can be weighted. Alternatively, the predicted pixel information obtained by using the traditional intra-frame prediction method and the predicted pixel information determined by the above-mentioned ISP mode may also be weighted, which is not limited in the embodiment of the present application.
作为一种示例,当该当前块启动帧内子块划分,色度块对应的候选预测模式列表中,包括的跨分量线性模型预测的预测模式的优先级高于加入到该候选预测模式列表中的亮度预测模式。As an example, when the current block initiates intra-sub-block division, in the candidate prediction mode list corresponding to the chrominance block, the priority of the prediction mode included in the cross-component linear model prediction is higher than that added to the candidate prediction mode list Brightness prediction mode.
对于多通道图像来说,包括亮度块和色度块,当亮度块使用ISP模式来实现时,可以认为跨分量线性模型能够很好的对色度块进行预测,因此,在使用跨分量线性模型对色度块进行预测的过程中,构建色度块对应的候选预测模式列表,将跨分量线性模型预测的预测模式排至亮度预测模式之前。For multi-channel images, including luminance block and chrominance block, when the luminance block is implemented in ISP mode, it can be considered that the cross-component linear model can predict the chrominance block well. Therefore, the cross-component linear model is used In the process of predicting the chrominance block, a list of candidate prediction modes corresponding to the chrominance block is constructed, and the prediction modes predicted by the cross-component linear model are ranked before the luminance prediction mode.
图15是根据一示例性实施例示出的一种编码装置的结构示意图,该编码装置可以由软件、硬件或者两者的结合实现。该编码装置可以包括:Fig. 15 is a schematic structural diagram showing an encoding device according to an exemplary embodiment. The encoding device can be implemented by software, hardware or a combination of both. The encoding device may include:
第一确定模块1510,用于当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,按照所述目标子块划分方式,将所述当前块划分成多个子块;The first determining module 1510 is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the current block starts the intra-frame sub-block division mode, and divide the current block according to the target sub-block division mode. Divided into multiple sub-blocks;
第二确定模块1520,用于从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;The second determining module 1520 is configured to determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block;
第一预测模块1530,用于根据所述目标预测模式进行帧内子块预测,得到所述多个子块的预测像素信息,根据当前块的原始像素信息和所述多个子块的预测像素信息确定所述当前块的残差信息;The first prediction module 1530 is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks, and determine the predicted pixel information according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks. State the residual information of the current block;
变换模块1540,用于根据所述多个子块支持的变换方式对所述残差信息进行变换,得到变换后的信息;The transformation module 1540 is configured to transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information;
编码模块1550,用于根据所述变换后的信息,对所述当前块进行编码生成当前块的编码 流。The encoding module 1550 is configured to encode the current block according to the transformed information to generate an encoding stream of the current block.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:In a possible implementation manner of the present application, if the intra-frame sub-block division mode is activated for the current block, the sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;If the width and height dimensions of the current block are 4*N, and N is greater than 4, the sub-block division mode supported by the current block is horizontal division;
若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分;或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。If the width and height dimensions of the current block are 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the sub-block division mode supported by the current block includes both vertical division and Horizontal division, vertical division can only be divided into two sub-blocks.
在本申请一种可能的实现方式中,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。In a possible implementation of the present application, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:If the current block starts the intra-frame sub-block division mode, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:When the intra sub-block division mode is activated by the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;When the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。When the intra-frame sub-block division mode is activated by the current block, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra-frame sub-block division mode is shared by the spatially adjacent coded blocks of the current block The list of candidate prediction modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块启动帧内子块划分模式,若所述当前块尺寸小于设定尺寸,则所述帧内子 块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。When the current block starts the intra sub-block division mode, if the current block size is less than the set size, the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed list contains 6 predictions The first prediction mode list or the second prediction mode list of modes.
在本申请一种可能的实现方式中,In a possible implementation of this application,
当所述当前块未启动帧内子块划分模式时,当前块对应的所述候选预测模式列表与上述任一项所述帧内子块划分模式支持的候选预测模式列表相同。When the intra sub-block division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra sub-block division mode in any one of the foregoing items.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。The encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式。In a possible implementation of the present application, if the current block starts the intra sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra sub-block Partition mode.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式。In a possible implementation manner of this application, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode.
在本申请一种可能的实现方式中,所述编码模块还用于:In a possible implementation manner of this application, the encoding module is further used to:
按照上下文模型对所述第三指示信息进行编码;Encode the third indication information according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,所述第三指示信息的编码顺序先于多行预测技术的编码顺序。In a possible implementation manner of the present application, the coding sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。In a possible implementation of the present application, if the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the first The fourth indication information is used to indicate whether the target prediction mode of the current block is an angle prediction mode.
在本申请一种可能的实现方式中,In a possible implementation of this application,
所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个子块是否存在残差信息。The encoded stream carries fifth indication information, where the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information.
在本申请一种可能的实现方式中,若所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个子块是否存在残差信息,所述编码模块还用于:In a possible implementation manner of the present application, if the encoded stream carries fifth indication information, the fifth indication information is used to indicate whether the current block or multiple sub-blocks of the current block have residual information , The encoding module is also used for:
按照上下文模型对所述第五指示信息进编码;Encode the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,所述变换模块还用于:In a possible implementation manner of this application, the transformation module is further used to:
对变换后的信息进行量化处理,对量化处理后的数据进行反量化、反变换处理,得到反变换结果;Perform quantization processing on the transformed information, and perform inverse quantization and inverse transformation processing on the quantized data to obtain the inverse transformation result;
基于反变换结果确定当前块的重构图像;Determine the reconstructed image of the current block based on the inverse transform result;
对所述重构图像进行滤波;Filtering the reconstructed image;
其中,对所述重构图像进行滤波,包括:当所述当前块启动帧内子块划分模式时,根据所述目标子块划分方式,确定子块的边界滤波强度值;Wherein, filtering the reconstructed image includes: when the intra-frame sub-block division mode is activated for the current block, determining the boundary filter strength value of the sub-block according to the target sub-block division mode;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,所述变换模块还用于:In a possible implementation manner of this application, the transformation module is further used to:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
在本申请实施例中,当当前块启动帧内子块划分模式时,从当前块支持的子块划分方式 中确定目标子块划分方式,按照该目标子块划分方式,将该当前块划分成多个子块。从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式,根据该目标预测模式进行帧内子块预测得到该多个子块的预测像素信息,根据当前块的原始像素信息和该多个子块的预测像素信息确定该当前块的残差信息。根据该多个子块支持的变换方式对该残差信息进行变换,根据该变换后的信息,对该当前块进行编码生成当前块的编码流。在本申请实施例中,当前块支持的子块划分方式不都是水平划分和垂直划分,如此可以避免硬件对某种子块划分方式划分后的子块的处理代价较大的问题。In the embodiment of this application, when the current block starts the intra-frame sub-block division mode, the target sub-block division mode is determined from the sub-block division modes supported by the current block, and the current block is divided into multiple sub-block division modes according to the target sub-block division mode. Sub-blocks. Determine the target prediction mode of the current block from the prediction modes of the candidate prediction mode list of the current block, perform intra sub-block prediction according to the target prediction mode to obtain the predicted pixel information of the multiple sub-blocks, and obtain the predicted pixel information of the multiple sub-blocks according to the original pixel information of the current block and the multiple The predicted pixel information of each sub-block determines the residual information of the current block. The residual information is transformed according to the transformation mode supported by the multiple sub-blocks, and the current block is encoded according to the transformed information to generate an encoded stream of the current block. In the embodiment of the present application, not all the sub-block division methods supported by the current block are horizontal division and vertical division. In this way, the problem of high processing cost of sub-blocks divided by a certain sub-block division method by hardware can be avoided.
图16是根据一示例性实施例示出的一种解码装置的结构示意图,该解码装置可以由软件、硬件或者两者的结合实现。该解码装置可以包括:Fig. 16 is a schematic structural diagram showing a decoding device according to an exemplary embodiment. The decoding device may be implemented by software, hardware or a combination of both. The decoding device may include:
获取模块1610,用于获取当前块的编码流;The obtaining module 1610 is used to obtain the encoding stream of the current block;
第三确定模块1620,用于根据所述编码流中携带的信息确定当前块启动帧内子块划分模式时,从当前块支持的子块划分方式中确定目标子块划分方式,从当前块的候选预测模式列表的预测模式中确定当前块的目标预测模式;The third determining module 1620 is configured to determine the target sub-block division mode from the sub-block division modes supported by the current block when the current block starts the intra-frame sub-block division mode according to the information carried in the coded stream, and determine the target sub-block division mode from the current block candidate Determine the target prediction mode of the current block in the prediction modes of the prediction mode list;
子块划分模块1630,用于按照所述目标子块划分方式,将所述当前块划分成多个子块;A sub-block division module 1630, configured to divide the current block into multiple sub-blocks according to the target sub-block division mode;
反量化变换模块1640,用于根据所述多个子块对所述编码流进行反量化和反变换,得到所述多个子块对应的残差信息;An inverse quantization transformation module 1640, configured to perform inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
第二预测模块1650,用于根据所述目标预测模式进行帧内子块预测得到所述多个子块的预测像素信息;The second prediction module 1650 is configured to perform intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
第四确定模块1660,用于根据所述多个子块对应的残差信息和预测像素信息,确定所述当前块的重构图像。The fourth determining module 1660 is configured to determine the reconstructed image of the current block according to the residual information and predicted pixel information corresponding to the multiple sub-blocks.
作为一种示例,若当前块启动帧内子块划分模式,所述当前块支持的子块划分方式,包括:若当前块的宽高尺寸为4*N,N大于4,则所述当前块支持的子块划分方式为水平划分;若当前块的宽高尺寸为8*N,N大于或等于4,则所述当前块支持的子块划分方式为水平划分;或者,所述当前块支持的子块划分方式同时包括垂直划分和水平划分,垂直划分时仅能划分为两个子块。As an example, if the intra-frame sub-block division mode is enabled for the current block, the sub-block division modes supported by the current block include: if the width and height dimensions of the current block are 4*N and N is greater than 4, the current block supports The sub-block division mode of the current block is horizontal division; if the width and height of the current block is 8*N, and N is greater than or equal to 4, the sub-block division mode supported by the current block is horizontal division; or, the current block supports The sub-block division method includes both vertical division and horizontal division, and the vertical division can only be divided into two sub-blocks.
作为一种示例,若当前块的宽高尺寸为64*64,则所述当前块不支持帧内子块划分模式。As an example, if the width and height dimensions of the current block are 64*64, the current block does not support the intra sub-block division mode.
作为一种示例,若当前块启动帧内子块划分模式,所述当前块支持的候选子块划分方式,包括:As an example, if the intra-frame sub-block division mode is activated for the current block, the candidate sub-block division modes supported by the current block include:
若当前块的宽高尺寸为4*16或4*32或8*32,则所述当前块不支持垂直划分,仅支持水平划分;If the width and height dimensions of the current block are 4*16 or 4*32 or 8*32, the current block does not support vertical division, but only supports horizontal division;
若当前块的宽高尺寸为16*4或32*4或32*8,则所述当前块不支持水平划分,仅支持垂直划分。If the width and height dimensions of the current block are 16*4 or 32*4 or 32*8, the current block does not support horizontal division, but only supports vertical division.
作为一种示例,若当前块启动帧内子块划分模式,所述多个子块是按照非均匀划分得到;或者所述多个子块是按照均匀划分得到;或者,As an example, if the intra-frame sub-block division mode is activated for the current block, the multiple sub-blocks are obtained according to non-uniform division; or the multiple sub-blocks are obtained according to uniform division; or,
若当前块启动帧内子块划分模式,所述多个子块是按照多级划分得到。If the current block starts the intra-frame sub-block division mode, the multiple sub-blocks are obtained according to multi-level division.
作为一种示例,当所述当前块启动帧内子块划分模式时,所述当前块的候选预测模式列表包括:As an example, when the intra sub-block division mode is activated for the current block, the candidate prediction mode list of the current block includes:
若所述当前块启动帧内子块划分,帧内子块划分对应的候选预测模式列表如果包括垂直类预测模式和水平类预测模式,那么If the current block starts intra-frame sub-block division, if the candidate prediction mode list corresponding to the intra-frame sub-block division includes the vertical prediction mode and the horizontal prediction mode, then
当所述当前块支持的子块划分方式为水平划分时,将所述垂直类预测模式位于所述水平类预测模式之前;When the sub-block division mode supported by the current block is horizontal division, place the vertical prediction mode before the horizontal prediction mode;
当所述当前块支持的子块划分方式为垂直划分时,将所述水平类预测模式位于所述垂直类预测模式之前。When the sub-block division mode supported by the current block is vertical division, the horizontal prediction mode is placed before the vertical prediction mode.
作为一种示例,当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表为预先定义的固定列表;As an example, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode is a predefined fixed list;
其中,所述固定列表仅包括Planar预测模式;Wherein, the fixed list only includes Planar prediction mode;
或者,若所述当前块的目标子块划分方式为水平划分,则所述固定列表仅包括水平模式;或者,若所述当前块的目标子块划分方式为垂直划分,则所述固定列表仅包括垂直模式。Or, if the target sub-block division mode of the current block is horizontal division, the fixed list only includes the horizontal mode; or, if the target sub-block division mode of the current block is vertical division, the fixed list only Including vertical mode.
作为一种示例,当所述当前块启动帧内子块划分时,帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表;As an example, when the intra-frame sub-block division is initiated by the current block, the candidate prediction mode list supported by the intra-frame sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list;
其中,所述非角度候选模式列表仅包括Planar模式或仅包括DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式;或者Wherein, the non-angle candidate mode list includes only Planar mode or only DC mode, and the angle candidate mode list includes at least one angle prediction mode other than Planar mode and DC mode; or
所述非角度候选模式列表包括Planar模式和DC模式,所述角度候选模式列表包括至少一个除Planar模式和DC模式之外的角度预测模式。The non-angle candidate mode list includes Planar mode and DC mode, and the angle candidate mode list includes at least one angle prediction mode other than the Planar mode and the DC mode.
作为一种示例,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则帧内子块划分模式支持的候选预测模式列表,是所述当前块的空域相邻已编码块共用的候选预测模式列表。As an example, when the current block starts the intra sub-block division mode, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is the spatial phase of the current block. A list of candidate prediction modes shared by adjacent coded blocks.
作为一种示例,当所述当前块启动帧内子块划分模式时,若所述当前块尺寸小于设定尺寸,则所述帧内子块划分模式支持的候选预测模式列表为固定列表,所述固定列表为包含6个预测模式的第一预测模式列表或第二预测模式列表。As an example, when the intra sub-block division mode is activated by the current block, if the current block size is smaller than the set size, the candidate prediction mode list supported by the intra sub-block division mode is a fixed list, and the fixed The list is a first prediction mode list or a second prediction mode list containing 6 prediction modes.
作为一种示例,当所述当前块未启动帧内子块划分模式时,当前块对应的所述候选预测模式列表与所述帧内子块划分模式支持的候选预测模式列表相同。As an example, when the intra subblock division mode is not activated for the current block, the candidate prediction mode list corresponding to the current block is the same as the candidate prediction mode list supported by the intra subblock division mode.
在本申请一种可能的实现方式中,所述编码流中携带第一指示信息,所述第一指示信息用于指示所述目标预测模式在所述候选预测模式列表中的索引信息。In a possible implementation manner of the present application, the encoded stream carries first indication information, and the first indication information is used to indicate index information of the target prediction mode in the candidate prediction mode list.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,且所述当前块支持的子块划分方式同时包括垂直划分和水平划分,则所述编码流中还携带第二指示信息,所述第二指示信息用于指示所述目标子块划分方式;In a possible implementation manner of this application, if the intra-frame sub-block division mode is enabled for the current block, and the sub-block division mode supported by the current block includes both vertical division and horizontal division, the coded stream also carries a second Indication information, where the second indication information is used to indicate the target sub-block division mode;
所述方法还包括:The method also includes:
按照上下文模型解析所述编码流中的所述第二指示信息;Parse the second indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,若当前块启动帧内子块划分模式,则所述编码流中携带第三指示信息,所述第三指示信息用于指示所述当前块启动帧内子块划分模式;所述方法还包括:In a possible implementation of the present application, if the current block starts the intra sub-block division mode, the encoded stream carries third indication information, and the third indication information is used to instruct the current block to start the intra sub-block Division mode; the method further includes:
按照上下文模型解析所述编码流中的所述第三指示信息;Parse the third indication information in the encoded stream according to the context model;
其中,根据所述当前块的宽高比确定所述上下文模型,不同的宽高比对应不同的上下文模型。Wherein, the context model is determined according to the aspect ratio of the current block, and different aspect ratios correspond to different context models.
在本申请一种可能的实现方式中,所述第三指示信息的解析顺序先于多行预测技术的编码顺序。In a possible implementation manner of the present application, the parsing sequence of the third indication information precedes the coding sequence of the multi-line prediction technology.
在本申请一种可能的实现方式中,In a possible implementation of this application,
若帧内子块划分模式支持的候选预测模式列表包括角度候选预测模式列表和非角度候选模式列表,所述编码流中携带第四指示信息,所述第四指示信息用于指示所述当前块的目标预测模式是否为角度预测模式。If the candidate prediction mode list supported by the intra sub-block division mode includes an angle candidate prediction mode list and a non-angle candidate mode list, the encoded stream carries fourth indication information, and the fourth indication information is used to indicate the current block Whether the target prediction mode is an angle prediction mode.
在本申请一种可能的实现方式中,所述编码流中携带第五指示信息,所述第五指示信息用于指示所述当前块或者所述当前块的多个子块是否存在残差信息;所述反量化变换模块用于:In a possible implementation manner of this application, the encoded stream carries fifth indication information, and the fifth indication information is used to indicate whether residual information exists in the current block or multiple sub-blocks of the current block; The inverse quantization transform module is used for:
按照上下文模型解析所述第五指示信息;Parse the fifth indication information according to the context model;
所述上下文模型根据所述多个子块的划分深度来确定,所述多个子块的划分深度为0时,采用第一上下文模型,所述多个子块的划分深度不为0时,采用第二上下文模型,所述第一上下文模型与所述第二上下文模型不同。The context model is determined according to the division depth of the multiple sub-blocks. When the division depth of the multiple sub-blocks is 0, the first context model is adopted. When the division depth of the multiple sub-blocks is not 0, the second context model is adopted. A context model, where the first context model is different from the second context model.
在本申请一种可能的实现方式中,当所述当前块启动帧内子块划分模式时,所述第四确 定模块用于;In a possible implementation manner of the present application, when the intra-frame sub-block division mode is activated by the current block, the fourth determining module is used to;
根据边界滤波强度值,对所述重构图像进行滤波。Filter the reconstructed image according to the boundary filter strength value.
在本申请一种可能的实现方式中,所述第四确定模块用于:In a possible implementation manner of this application, the fourth determining module is configured to:
当所述目标子块划分方式为垂直划分时,将各个子块的垂直边界的滤波强度值设置为0;或者When the target sub-block division method is vertical division, the filter strength value of the vertical boundary of each sub-block is set to 0; or
当所述目标子块划分方式为水平划分时,将各个子块的水平边界的滤波强度值设置为0;或者When the target sub-block division method is horizontal division, the filter strength value of the horizontal boundary of each sub-block is set to 0; or
将各个子块的水平边界和垂直边界的滤波强度值都设置为0。Set the filter strength values of the horizontal boundary and the vertical boundary of each sub-block to 0.
需要说明的是,上述多行预测技术是指将当前块的相邻块已重建的多行作为参考像素值,或者,上述多行预测技术是指将当前块的相邻块已重建的多列作为参考像素值,或者,上述上述多行预测技术是指将当前块的相邻块已重建的的多行和多列作为参考像素值。或者,将当前块的相邻块已重建的一行作为参考像素值,或者,将当前块的相邻块已重建的一列作为参考像素值,或者,将当前块的相邻块已重建的一行和一列作为参考像素值,比如,请参考图17,可以采用参考行0、1、2或3中的任意一行作为该当前块的参考像素值。It should be noted that the above-mentioned multi-line prediction technology refers to the reconstruction of multiple rows of adjacent blocks of the current block as reference pixel values, or the above-mentioned multi-line prediction technology refers to the reconstruction of multiple columns of adjacent blocks of the current block. As a reference pixel value, or, the above-mentioned multi-line prediction technique refers to using multiple rows and multiple columns reconstructed from adjacent blocks of the current block as reference pixel values. Or, use the reconstructed row of the neighboring block of the current block as the reference pixel value, or use the reconstructed column of the neighboring block of the current block as the reference pixel value, or combine the reconstructed row of the neighboring block of the current block and One column is used as the reference pixel value. For example, referring to FIG. 17, any one of reference rows 0, 1, 2 or 3 can be used as the reference pixel value of the current block.
作为一种示例,对于非ISP模式的帧内预测,当当前块的尺寸为4*4时,可以仅使用候选预测模式列表中的候选预测模式,而不会使用除候选预测模式列表之外的其它预测模式。作为一种示例,当当前块的尺寸为4*4时,还可以获取相邻块的候选预测模式列表,将获取的候选预测模式列表作为该当前块的候选预测模式列表。作为一种示例,当获取不到相邻块的候选预测模式列表时,可以将Planar模式作为该当前块的目标预测模式。As an example, for intra-frame prediction in non-ISP mode, when the size of the current block is 4*4, only the candidate prediction modes in the candidate prediction mode list can be used instead of other prediction modes other than the candidate prediction mode list. Other prediction modes. As an example, when the size of the current block is 4*4, the candidate prediction mode list of the neighboring block may also be obtained, and the obtained candidate prediction mode list is used as the candidate prediction mode list of the current block. As an example, when the candidate prediction mode list of the neighboring block cannot be obtained, the Planar mode may be used as the target prediction mode of the current block.
作为一种示例,对于ISP模式或非ISP模式的帧内预测,可以固定将Planar模式作为候选预测模式列表的第一个候选预测模式。As an example, for intra prediction in ISP mode or non-ISP mode, Planar mode may be fixed as the first candidate prediction mode in the candidate prediction mode list.
需要说明的是:上述实施例提供的装置在实现方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that: when the device provided in the above embodiment implements the method, only the division of the above-mentioned functional modules is used as an example. In actual applications, the above-mentioned function allocation can be completed by different functional modules as required, that is, the equipment The internal structure is divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided by the above-mentioned embodiments belong to the same concept, and the specific implementation process is detailed in the method embodiments, which will not be repeated here.
图18示出了本申请一个示例性实施例提供的终端1700的结构框图。该终端1700可以是:笔记本电脑或台式电脑。终端1700还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。FIG. 18 shows a structural block diagram of a terminal 1700 provided by an exemplary embodiment of the present application. The terminal 1700 may be a laptop computer or a desktop computer. The terminal 1700 may also be called user equipment, portable terminal, laptop terminal, desktop terminal and other names.
通常,终端1700包括有:处理器1701和存储器1702。Generally, the terminal 1700 includes a processor 1701 and a memory 1702.
处理器1701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。The processor 1701 may include one or more processing cores, such as a 4-core processor, an 8-core processor, and so on. The processor 1701 can adopt at least one hardware form among DSP (Digital Signal Processing), FPGA (Field-Programmable Gate Array), and PLA (Programmable Logic Array, Programmable Logic Array). achieve. The processor 1701 may also include a main processor and a coprocessor. The main processor is a processor used to process data in the wake state, also called a CPU (Central Processing Unit, central processing unit); the coprocessor is A low-power processor used to process data in the standby state. In some embodiments, the processor 1701 may be integrated with a GPU (Graphics Processing Unit, image processor), and the GPU is used to render and draw content that needs to be displayed on the display screen. In some embodiments, the processor 1701 may further include an AI (Artificial Intelligence) processor, and the AI processor is used to process calculation operations related to machine learning.
存储器1702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1702中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1701所执行以实现本申请中方法实施例提供的方法。The memory 1702 may include one or more computer-readable storage media, which may be non-transitory. The memory 1702 may also include high-speed random access memory and non-volatile memory, such as one or more magnetic disk storage devices and flash memory storage devices. In some embodiments, the non-transitory computer-readable storage medium in the memory 1702 is used to store at least one instruction, and the at least one instruction is used to be executed by the processor 1701 to implement the method provided in the method embodiment of the present application.
在一些实施例中,终端1700还可选包括有:外围设备接口1703和至少一个外围设备。处理器1701、存储器1702和外围设备接口1703之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1703相连。示例性的,外围设备包括:射频电路1704、触摸显示屏1705、摄像头1706、音频电路1707、定位组件1708和电源1709中的至少一种。In some embodiments, the terminal 1700 may optionally further include: a peripheral device interface 1703 and at least one peripheral device. The processor 1701, the memory 1702, and the peripheral device interface 1703 may be connected by a bus or a signal line. Each peripheral device can be connected to the peripheral device interface 1703 through a bus, a signal line, or a circuit board. Exemplarily, the peripheral device includes: at least one of a radio frequency circuit 1704, a touch display screen 1705, a camera 1706, an audio circuit 1707, a positioning component 1708, and a power supply 1709.
外围设备接口1703可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1701和存储器1702。在一些实施例中,处理器1701、存储器1702和外围设备接口1703被集成在同一芯片或电路板上;在一些其他实施例中,处理器1701、存储器1702和外围设备接口1703中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。The peripheral device interface 1703 may be used to connect at least one peripheral device related to I/O (Input/Output) to the processor 1701 and the memory 1702. In some embodiments, the processor 1701, the memory 1702, and the peripheral device interface 1703 are integrated on the same chip or circuit board; in some other embodiments, any one of the processor 1701, the memory 1702, and the peripheral device interface 1703 or The two can be implemented on separate chips or circuit boards, which are not limited in this embodiment.
射频电路1704用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路1704通过电磁信号与通信网络以及其他通信设备进行通信。射频电路1704将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。在一些实施例中,射频电路1704包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路1704可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路1704还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。The radio frequency circuit 1704 is used to receive and transmit RF (Radio Frequency, radio frequency) signals, also called electromagnetic signals. The radio frequency circuit 1704 communicates with a communication network and other communication devices through electromagnetic signals. The radio frequency circuit 1704 converts electrical signals into electromagnetic signals for transmission, or converts received electromagnetic signals into electrical signals. In some embodiments, the radio frequency circuit 1704 includes: an antenna system, an RF transceiver, one or more amplifiers, a tuner, an oscillator, a digital signal processor, a codec chipset, a subscriber identity module card, and so on. The radio frequency circuit 1704 can communicate with other terminals through at least one wireless communication protocol. The wireless communication protocol includes but is not limited to: World Wide Web, Metropolitan Area Network, Intranet, various generations of mobile communication networks (2G, 3G, 4G, and 5G), wireless local area network and/or WiFi (Wireless Fidelity, wireless fidelity) network. In some embodiments, the radio frequency circuit 1704 may also include NFC (Near Field Communication) related circuits, which is not limited in this application.
显示屏1705用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1705是触摸显示屏时,显示屏1705还具有采集在显示屏1705的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1701进行处理。此时,显示屏1705还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏1705可以为一个,设置终端1700的前面板;在另一些实施例中,显示屏1705可以为至少两个,分别设置在终端1700的不同表面或呈折叠设计;在再一些实施例中,显示屏1705可以是柔性显示屏,设置在终端1700的弯曲表面上或折叠面上。甚至,显示屏1705还可以设置成非矩形的不规则图形,也即异形屏。显示屏1705可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。The display screen 1705 is used to display UI (User Interface). The UI can include graphics, text, icons, videos, and any combination thereof. When the display screen 1705 is a touch display screen, the display screen 1705 also has the ability to collect touch signals on or above the surface of the display screen 1705. The touch signal may be input to the processor 1701 as a control signal for processing. At this time, the display screen 1705 may also be used to provide virtual buttons and/or virtual keyboards, also called soft buttons and/or soft keyboards. In some embodiments, there may be one display screen 1705, which is provided with the front panel of the terminal 1700; in other embodiments, there may be at least two display screens 1705, which are respectively arranged on different surfaces of the terminal 1700 or in a folded design; In still other embodiments, the display screen 1705 may be a flexible display screen, which is arranged on the curved surface or the folding surface of the terminal 1700. Furthermore, the display screen 1705 can also be set as a non-rectangular irregular pattern, that is, a special-shaped screen. The display screen 1705 may be made of materials such as LCD (Liquid Crystal Display), OLED (Organic Light-Emitting Diode, organic light-emitting diode).
摄像头组件1706用于采集图像或视频。作为一种例子,摄像头组件1706包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件1706还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。The camera assembly 1706 is used to capture images or videos. As an example, the camera assembly 1706 includes a front camera and a rear camera. Generally, the front camera is set on the front panel of the terminal, and the rear camera is set on the back of the terminal. In some embodiments, there are at least two rear cameras, each of which is a main camera, a depth-of-field camera, a wide-angle camera, and a telephoto camera, so as to realize the fusion of the main camera and the depth-of-field camera to realize the background blur function, the main camera Integrate with the wide-angle camera to realize panoramic shooting and VR (Virtual Reality) shooting function or other fusion shooting functions. In some embodiments, the camera assembly 1706 may also include a flash. The flash can be a single-color flash or a dual-color flash. Dual color temperature flash refers to a combination of warm light flash and cold light flash, which can be used for light compensation under different color temperatures.
音频电路1707可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1701进行处理,或者输入至射频电路1704以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端1700的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器1701或射频电路1704的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路1707还可以包括耳机插孔。The audio circuit 1707 may include a microphone and a speaker. The microphone is used to collect sound waves from the user and the environment, and convert the sound waves into electrical signals and input them to the processor 1701 for processing, or input to the radio frequency circuit 1704 to implement voice communication. For the purpose of stereo collection or noise reduction, there may be multiple microphones, which are respectively set in different parts of the terminal 1700. The microphone can also be an array microphone or an omnidirectional acquisition microphone. The speaker is used to convert the electrical signal from the processor 1701 or the radio frequency circuit 1704 into sound waves. The speaker can be a traditional membrane speaker or a piezoelectric ceramic speaker. When the speaker is a piezoelectric ceramic speaker, it can not only convert the electrical signal into human audible sound waves, but also convert the electrical signal into human inaudible sound waves for purposes such as distance measurement. In some embodiments, the audio circuit 1707 may also include a headphone jack.
定位组件1708用于定位终端1700的当前地理位置,以实现导航或LBS(Location Based  Service,基于位置的服务)。定位组件1708可以是基于美国的GPS(Global Positioning System,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。The positioning component 1708 is used to locate the current geographic location of the terminal 1700 to implement navigation or LBS (Location Based Service, location-based service). The positioning component 1708 may be a positioning component based on the GPS (Global Positioning System, Global Positioning System) of the United States, the Beidou system of China, or the Galileo system of Russia.
电源1709用于为终端1700中的各个组件进行供电。电源1709可以是交流电、直流电、一次性电池或可充电电池。当电源1709包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。The power supply 1709 is used to supply power to various components in the terminal 1700. The power source 1709 may be alternating current, direct current, disposable batteries or rechargeable batteries. When the power source 1709 includes a rechargeable battery, the rechargeable battery may be a wired rechargeable battery or a wireless rechargeable battery. A wired rechargeable battery is a battery charged through a wired line, and a wireless rechargeable battery is a battery charged through a wireless coil. The rechargeable battery can also be used to support fast charging technology.
在一些实施例中,终端1700还包括有一个或多个传感器1710。该一个或多个传感器1710包括但不限于:加速度传感器1711、陀螺仪传感器1717、压力传感器1713、指纹传感器1714、光学传感器1715以及接近传感器1716。In some embodiments, the terminal 1700 further includes one or more sensors 1710. The one or more sensors 1710 include, but are not limited to: an acceleration sensor 1711, a gyroscope sensor 1717, a pressure sensor 1713, a fingerprint sensor 1714, an optical sensor 1715, and a proximity sensor 1716.
加速度传感器1711可以检测以终端1700建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器1711可以用于检测重力加速度在三个坐标轴上的分量。处理器1701可以根据加速度传感器1711采集的重力加速度信号,控制触摸显示屏1705以横向视图或纵向视图进行用户界面的显示。加速度传感器1711还可以用于游戏或者用户的运动数据的采集。The acceleration sensor 1711 can detect the magnitude of acceleration on the three coordinate axes of the coordinate system established by the terminal 1700. For example, the acceleration sensor 1711 can be used to detect the components of the gravitational acceleration on three coordinate axes. The processor 1701 may control the touch screen 1705 to display the user interface in a horizontal view or a vertical view according to the gravity acceleration signal collected by the acceleration sensor 1711. The acceleration sensor 1711 can also be used for game or user motion data collection.
陀螺仪传感器1712可以检测终端1700的机体方向及转动角度,陀螺仪传感器1712可以与加速度传感器1711协同采集用户对终端1700的3D动作。处理器1701根据陀螺仪传感器1712采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。The gyroscope sensor 1712 can detect the body direction and rotation angle of the terminal 1700, and the gyroscope sensor 1712 can cooperate with the acceleration sensor 1711 to collect the user's 3D actions on the terminal 1700. Based on the data collected by the gyroscope sensor 1712, the processor 1701 can implement the following functions: motion sensing (such as changing the UI according to the user's tilt operation), image stabilization during shooting, game control, and inertial navigation.
压力传感器1713可以设置在终端1700的侧边框和/或触摸显示屏1705的下层。当压力传感器1713设置在终端1700的侧边框时,可以检测用户对终端1700的握持信号,由处理器1701根据压力传感器1713采集的握持信号进行左右手识别或快捷操作。当压力传感器1713设置在触摸显示屏1705的下层时,由处理器1701根据用户对触摸显示屏1705的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。The pressure sensor 1713 may be disposed on the side frame of the terminal 1700 and/or the lower layer of the touch screen 1705. When the pressure sensor 1713 is arranged on the side frame of the terminal 1700, the user's holding signal of the terminal 1700 can be detected, and the processor 1701 performs left and right hand recognition or quick operation according to the holding signal collected by the pressure sensor 1713. When the pressure sensor 1713 is arranged on the lower layer of the touch display screen 1705, the processor 1701 controls the operability controls on the UI interface according to the pressure operation of the user on the touch display screen 1705. The operability control includes at least one of a button control, a scroll bar control, an icon control, and a menu control.
指纹传感器1714用于采集用户的指纹,由处理器1701根据指纹传感器1714采集到的指纹识别用户的身份,或者,由指纹传感器1714根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器1701授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器1714可以被设置终端1700的正面、背面或侧面。当终端1700上设置有物理按键或厂商Logo时,指纹传感器1714可以与物理按键或厂商Logo集成在一起。The fingerprint sensor 1714 is used to collect the user's fingerprint. The processor 1701 can identify the user's identity according to the fingerprint collected by the fingerprint sensor 1714, or the fingerprint sensor 1714 can identify the user's identity according to the collected fingerprint. When it is recognized that the user's identity is a trusted identity, the processor 1701 authorizes the user to perform related sensitive operations, including unlocking the screen, viewing encrypted information, downloading software, paying, and changing settings. The fingerprint sensor 1714 may be provided on the front, back or side of the terminal 1700. When a physical button or a manufacturer logo is provided on the terminal 1700, the fingerprint sensor 1714 can be integrated with the physical button or the manufacturer logo.
光学传感器1715用于采集环境光强度。在一个实施例中,处理器1701可以根据光学传感器1715采集的环境光强度,控制触摸显示屏1705的显示亮度。示例性的,当环境光强度较高时,调高触摸显示屏1705的显示亮度;当环境光强度较低时,调低触摸显示屏1705的显示亮度。在另一个实施例中,处理器1701还可以根据光学传感器1715采集的环境光强度,动态调整摄像头组件1706的拍摄参数。The optical sensor 1715 is used to collect the ambient light intensity. In an embodiment, the processor 1701 may control the display brightness of the touch screen 1705 according to the intensity of the ambient light collected by the optical sensor 1715. Exemplarily, when the ambient light intensity is high, the display brightness of the touch screen 1705 is increased; when the ambient light intensity is low, the display brightness of the touch screen 1705 is decreased. In another embodiment, the processor 1701 may also dynamically adjust the shooting parameters of the camera assembly 1706 according to the ambient light intensity collected by the optical sensor 1715.
接近传感器1716,也称距离传感器,通常设置在终端1700的前面板。接近传感器1716用于采集用户与终端1700的正面之间的距离。在一个实施例中,当接近传感器1716检测到用户与终端1700的正面之间的距离逐渐变小时,由处理器1701控制触摸显示屏1705从亮屏状态切换为息屏状态;当接近传感器1716检测到用户与终端1700的正面之间的距离逐渐变大时,由处理器1701控制触摸显示屏1705从息屏状态切换为亮屏状态。The proximity sensor 1716, also called a distance sensor, is usually arranged on the front panel of the terminal 1700. The proximity sensor 1716 is used to collect the distance between the user and the front of the terminal 1700. In one embodiment, when the proximity sensor 1716 detects that the distance between the user and the front of the terminal 1700 gradually decreases, the processor 1701 controls the touch screen 1705 to switch from the on-screen state to the off-screen state; when the proximity sensor 1716 detects When the distance between the user and the front of the terminal 1700 gradually increases, the processor 1701 controls the touch display screen 1705 to switch from the rest screen state to the bright screen state.
本领域技术人员可以理解,图18中示出的结构并不构成对终端1700的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。Those skilled in the art can understand that the structure shown in FIG. 18 does not constitute a limitation on the terminal 1700, and may include more or fewer components than shown in the figure, or combine some components, or adopt different component arrangements.
本申请实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行上述各个实施例提供的方法。The embodiments of the present application also provide a non-transitory computer-readable storage medium. When the instructions in the storage medium are executed by the processor of the mobile terminal, the mobile terminal can execute the methods provided in the foregoing embodiments.
本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例提供的方法。The embodiments of the present application also provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the methods provided in the foregoing embodiments.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps in the foregoing embodiments can be implemented by hardware, or by a program instructing relevant hardware to be completed. The program can be stored in a computer-readable storage medium. The storage medium mentioned can be a read-only memory, a magnetic disk or an optical disk, etc.
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above descriptions are only preferred embodiments of this application and are not intended to limit this application. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this application shall be included in the protection of this application. Within range.

Claims (10)

  1. 一种滤波方法,其特征在于,所述方法包括:A filtering method, characterized in that the method includes:
    当当前块启动帧内子块划分模式时,从所述当前块支持的子块划分方式中确定目标子块划分方式,以及从所述当前块的候选预测模式列表的预测模式中确定目标预测模式;When the intra-frame sub-block division mode is activated by the current block, determine the target sub-block division mode from the sub-block division modes supported by the current block, and determine the target prediction mode from the prediction modes in the candidate prediction mode list of the current block;
    根据所述目标子块划分方式和所述目标预测模式,确定所述当前块的重构图像;Determine the reconstructed image of the current block according to the target sub-block division mode and the target prediction mode;
    根据所述目标子块划分方式,确定子块的边界滤波强度值;根据所述边界滤波强度值,对所述重构图像进行滤波。Determine the boundary filter intensity value of the sub-block according to the target sub-block division mode; filter the reconstructed image according to the boundary filter intensity value.
  2. 如权利要求1所述的方法,其特征在于,所述根据所述目标子块划分方式,确定子块的边界滤波强度值,包括:The method according to claim 1, wherein the determining the boundary filter strength value of the sub-block according to the target sub-block division mode comprises:
    根据所述目标子块划分方式将所述当前块的重构图像划分为多个子块,基于得到的多个子块的尺寸确定子块的边界滤波强度值,所述边界滤波强度值用于对子块的边界进行滤波。Divide the reconstructed image of the current block into multiple sub-blocks according to the target sub-block division method, determine the boundary filter strength value of the sub-block based on the obtained multiple sub-block sizes, and the boundary filter strength value is used for sub-block The boundary of the block is filtered.
  3. 如权利要求1所述的方法,其特征在于,The method of claim 1, wherein:
    当所述当前块的宽度或高度大于设定阈值时,将所述多个子块的变换块的边界滤波强度值设置为非0。When the width or height of the current block is greater than the set threshold, the boundary filter strength values of the transform blocks of the multiple sub-blocks are set to be non-zero.
  4. 如权利要求3所述的方法,其特征在于,所述设定阈值为32。The method according to claim 3, wherein the set threshold value is 32.
  5. 如权利要求4所述的方法,其特征在于,The method of claim 4, wherein:
    当所述当前块的宽高尺寸满足64*64时,所述当前块既支持水平划分又支持垂直划分。When the width and height dimensions of the current block satisfy 64*64, the current block supports both horizontal division and vertical division.
  6. 如权利要求4或5所述的方法,其特征在于,所述当前块的子块划分方式满足所述当前块划分的子块的宽为8的整数倍,或者,高为8的整数倍。The method according to claim 4 or 5, wherein the sub-block division mode of the current block satisfies that the width of the sub-block divided by the current block is an integer multiple of 8, or the height is an integer multiple of 8.
  7. 如权利要求1所述的方法,其特征在于,所述根据所述目标子块划分方式和所述目标预测模式,确定所述当前块的重构图像,包括:The method of claim 1, wherein the determining the reconstructed image of the current block according to the target sub-block division mode and the target prediction mode comprises:
    当解码时,按照所述目标子块划分方式,将所述当前块划分成多个子块;When decoding, divide the current block into multiple sub-blocks according to the target sub-block division mode;
    根据所述多个子块对编码流进行反量化和反变换,得到所述多个子块对应的残差信息;Performing inverse quantization and inverse transformation on the encoded stream according to the multiple sub-blocks to obtain residual information corresponding to the multiple sub-blocks;
    根据所述目标预测模式进行帧内子块预测得到,所述多个子块的预测像素信息;Performing intra-frame sub-block prediction according to the target prediction mode to obtain predicted pixel information of the multiple sub-blocks;
    根据所述多个子块对应的残差信息和所述预测像素信息,确定所述当前块的重构图像。Determine the reconstructed image of the current block according to the residual information corresponding to the multiple sub-blocks and the predicted pixel information.
  8. 如权利要求1所述的方法,其特征在于,所述方法包括:The method of claim 1, wherein the method comprises:
    当编码时,按照所述目标子块划分方式,将所述当前块划分成多个子块;When encoding, divide the current block into multiple sub-blocks according to the target sub-block division mode;
    根据所述目标预测模式进行帧内子块预测得到,所述多个子块的预测像素信息,根据所述当前块的原始像素信息和所述多个子块的预测像素信息确定所述当前块的残差信息;Intra-frame sub-block prediction is obtained according to the target prediction mode, the predicted pixel information of the multiple sub-blocks, and the residual of the current block is determined according to the original pixel information of the current block and the predicted pixel information of the multiple sub-blocks information;
    根据所述多个子块支持的变换方式对所述残差信息进行变换,得到变换后的信息;Transform the residual information according to the transformation modes supported by the multiple sub-blocks to obtain transformed information;
    对变换后的信息进行量化处理,对量化处理后的数据进行反量化、反变换处理,得到反变换结果;Perform quantization processing on the transformed information, and perform inverse quantization and inverse transformation processing on the quantized data to obtain the inverse transformation result;
    基于反变换结果确定所述当前块的重构图像。The reconstructed image of the current block is determined based on the result of the inverse transformation.
  9. 一种编码端设备,其特征在于,包括:An encoding terminal device is characterized by comprising:
    处理器,所述处理器用于执行可执行指令;A processor, the processor is used to execute executable instructions;
    用于存储处理器可执行指令的存储器;A memory for storing processor executable instructions;
    其中,所述处理器被配置为:Wherein, the processor is configured to:
    当当前块启动帧内子块划分模式时,从所述当前块支持的子块划分方式中确定目标子块划分方式,以及从所述当前块的候选预测模式列表的预测模式中确定目标预测模式;When the intra-frame sub-block division mode is activated by the current block, determine the target sub-block division mode from the sub-block division modes supported by the current block, and determine the target prediction mode from the prediction modes in the candidate prediction mode list of the current block;
    根据所述目标子块划分方式和所述目标预测模式,确定所述当前块的重构图像;Determine the reconstructed image of the current block according to the target sub-block division mode and the target prediction mode;
    根据所述目标子块划分方式,确定子块的边界滤波强度值;根据所述边界滤波强度值,对所述重构图像进行滤波。Determine the boundary filter intensity value of the sub-block according to the target sub-block division mode; filter the reconstructed image according to the boundary filter intensity value.
  10. 一种解码端设备,其特征在于,包括:A decoding terminal device, characterized in that it comprises:
    处理器,所述处理器用于执行可执行指令;A processor, the processor is used to execute executable instructions;
    用于存储处理器可执行指令的存储器;A memory for storing processor executable instructions;
    其中,所述处理器被配置为:Wherein, the processor is configured to:
    当当前块启动帧内子块划分模式时,从所述当前块支持的子块划分方式中确定目标子块划分方式,以及从所述当前块的候选预测模式列表的预测模式中确定目标预测模式;When the intra-frame sub-block division mode is activated by the current block, determine the target sub-block division mode from the sub-block division modes supported by the current block, and determine the target prediction mode from the prediction modes in the candidate prediction mode list of the current block;
    根据所述目标子块划分方式和所述目标预测模式,确定所述当前块的重构图像;Determine the reconstructed image of the current block according to the target sub-block division mode and the target prediction mode;
    根据所述目标子块划分方式,确定子块的边界滤波强度值;根据所述边界滤波强度值,对所述重构图像进行滤波。Determine the boundary filter intensity value of the sub-block according to the target sub-block division mode; filter the reconstructed image according to the boundary filter intensity value.
PCT/CN2020/078812 2019-03-11 2020-03-11 Encoding method and device, and decoding method and device WO2020182157A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910181501.7 2019-03-11
CN201910181501.7A CN111698504B (en) 2019-03-11 2019-03-11 Encoding method, decoding method and device

Publications (1)

Publication Number Publication Date
WO2020182157A1 true WO2020182157A1 (en) 2020-09-17

Family

ID=67856132

Family Applications (3)

Application Number Title Priority Date Filing Date
PCT/CN2020/078812 WO2020182157A1 (en) 2019-03-11 2020-03-11 Encoding method and device, and decoding method and device
PCT/CN2020/078808 WO2020182154A1 (en) 2019-03-11 2020-03-11 Encoding method and apparatus, and decoding method and apparatus
PCT/CN2020/078823 WO2020182158A1 (en) 2019-03-11 2020-03-11 Encoding method, decoding method, and apparatuses thereof

Family Applications After (2)

Application Number Title Priority Date Filing Date
PCT/CN2020/078808 WO2020182154A1 (en) 2019-03-11 2020-03-11 Encoding method and apparatus, and decoding method and apparatus
PCT/CN2020/078823 WO2020182158A1 (en) 2019-03-11 2020-03-11 Encoding method, decoding method, and apparatuses thereof

Country Status (2)

Country Link
CN (3) CN110267036B (en)
WO (3) WO2020182157A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612992A (en) * 2021-07-01 2021-11-05 杭州未名信科科技有限公司 Coding method of fast intra-frame coding unit for AVS3 hardware encoder

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110267036B (en) * 2019-03-11 2020-07-10 杭州海康威视数字技术股份有限公司 Filtering method and device
CN114710662A (en) * 2019-09-20 2022-07-05 杭州海康威视数字技术股份有限公司 Decoding and encoding method, device and equipment
CN110572679B (en) * 2019-09-27 2022-04-26 腾讯科技(深圳)有限公司 Method, device and equipment for coding intra-frame prediction and readable storage medium
EP4059220A4 (en) * 2019-12-19 2023-04-19 Huawei Technologies Co., Ltd. Method and apparatus of position dependent prediction combination
WO2021045655A2 (en) * 2019-12-31 2021-03-11 Huawei Technologies Co., Ltd. Method and apparatus for intra prediction
CN114520916B (en) * 2020-11-19 2024-02-23 腾讯科技(深圳)有限公司 Video encoding method, video encoding device, terminal equipment and storage medium
CN114979655A (en) * 2021-02-21 2022-08-30 腾讯科技(深圳)有限公司 Video encoding and decoding method and device, computer readable medium and electronic equipment
CN113115042B (en) * 2021-03-26 2022-06-24 中山大学 Intra-frame decision-making method, device, equipment and medium based on ISP optimization
WO2022227082A1 (en) * 2021-04-30 2022-11-03 Oppo广东移动通信有限公司 Block division methods, encoders, decoders, and computer storage medium
WO2022266971A1 (en) * 2021-06-24 2022-12-29 Oppo广东移动通信有限公司 Encoding method, decoding method, encoder, decoder and computer storage medium
CN116546193A (en) * 2021-11-11 2023-08-04 杭州海康威视数字技术股份有限公司 Image decoding method, encoding method and device
CN116800956A (en) * 2022-01-07 2023-09-22 杭州海康威视数字技术股份有限公司 Image encoding and decoding method, device and storage medium
CN115379217A (en) * 2022-07-14 2022-11-22 百果园技术(新加坡)有限公司 Video coding processing method, device, equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304526A (en) * 2007-05-09 2008-11-12 安凯(广州)软件技术有限公司 Parallel processing method for de-locking filtering in video encoding/decoding system
US20130044814A1 (en) * 2010-05-10 2013-02-21 Thomson Licensing Methods and apparatus for adaptive interpolative intra block encoding and decoding
US20150365666A1 (en) * 2013-01-07 2015-12-17 Vid Scale, Inc. Enhanced deblocking filters for video coding
CN105227958A (en) * 2010-07-20 2016-01-06 Sk电信有限公司 For the decoding device of decoded video signal
CN110234008A (en) * 2019-03-11 2019-09-13 杭州海康威视数字技术股份有限公司 Coding method, coding/decoding method and device

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7266247B2 (en) * 2002-09-30 2007-09-04 Samsung Electronics Co., Ltd. Image coding method and apparatus using spatial predictive coding of chrominance and image decoding method and apparatus
CN101330617B (en) * 2008-07-31 2010-11-17 上海交通大学 Hardware implementing method and apparatus for anticipater within multi-standard frame based on mode mapping
KR101356448B1 (en) * 2008-10-01 2014-02-06 한국전자통신연구원 Image decoder using unidirectional prediction
CN101404774B (en) * 2008-11-13 2010-06-23 四川虹微技术有限公司 Macro-block partition mode selection method in movement search
JP5233897B2 (en) * 2009-07-31 2013-07-10 ソニー株式会社 Image processing apparatus and method
KR101302660B1 (en) * 2009-09-14 2013-09-03 에스케이텔레콤 주식회사 High Definition Video Encoding/Decoding Method and Apparatus
KR101457396B1 (en) * 2010-01-14 2014-11-03 삼성전자주식회사 Method and apparatus for video encoding using deblocking filtering, and method and apparatus for video decoding using the same
CN102215390B (en) * 2010-04-09 2014-07-09 华为技术有限公司 Processing method and device for image coding and decoding
WO2011129619A2 (en) * 2010-04-13 2011-10-20 삼성전자 주식회사 Video encoding method and video encoding apparatus and video decoding method and video decoding apparatus, which perform deblocking filtering based on tree-structure encoding units
AU2015202844B2 (en) * 2011-01-12 2016-03-17 Ntt Docomo, Inc. Image predict coding method, image predict coding device, image predict coding program, image predict decoding method, image predict decoding device, and image predict decoding program
JP5781313B2 (en) * 2011-01-12 2015-09-16 株式会社Nttドコモ Image prediction coding method, image prediction coding device, image prediction coding program, image prediction decoding method, image prediction decoding device, and image prediction decoding program
CN102595116B (en) * 2011-01-14 2014-03-12 华为技术有限公司 Encoding and decoding methods and devices for multiple image block division ways
CN102611885B (en) * 2011-01-20 2014-04-30 华为技术有限公司 Encoding and decoding method and device
CN102857763B (en) * 2011-06-30 2016-02-17 华为技术有限公司 A kind of coding/decoding method based on infra-frame prediction and decoding device
CN108174206A (en) * 2011-12-05 2018-06-15 Lg 电子株式会社 The method and apparatus of intra prediction
CN102595140B (en) * 2012-03-09 2014-05-28 北京邮电大学 Intra-frame prediction video coding method based on image inpainting and vector prediction operators
CN103220529B (en) * 2013-04-15 2016-02-24 北京大学 A kind of implementation method of coding and decoding video loop filtering
US10057590B2 (en) * 2014-01-13 2018-08-21 Mediatek Inc. Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding
CN104284188B (en) * 2014-10-11 2018-03-13 华为技术有限公司 Division methods, encoding device and the decoding device of prediction block
WO2017088810A1 (en) * 2015-11-27 2017-06-01 Mediatek Inc. Method and apparatus of entropy coding and context modelling for video and image coding
CN107027040B9 (en) * 2016-01-29 2020-08-28 华为技术有限公司 Filtering method and device for removing blocking effect
US20180139444A1 (en) * 2016-11-16 2018-05-17 Mediatek Inc. Method and Apparatus of Video Coding Using Flexible Quadtree and Binary Tree Block Partitions
CN107613300B (en) * 2017-10-12 2020-04-07 杭州当虹科技股份有限公司 Rapid HEVC intra-frame prediction coding method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101304526A (en) * 2007-05-09 2008-11-12 安凯(广州)软件技术有限公司 Parallel processing method for de-locking filtering in video encoding/decoding system
US20130044814A1 (en) * 2010-05-10 2013-02-21 Thomson Licensing Methods and apparatus for adaptive interpolative intra block encoding and decoding
CN105227958A (en) * 2010-07-20 2016-01-06 Sk电信有限公司 For the decoding device of decoded video signal
US20150365666A1 (en) * 2013-01-07 2015-12-17 Vid Scale, Inc. Enhanced deblocking filters for video coding
CN110234008A (en) * 2019-03-11 2019-09-13 杭州海康威视数字技术股份有限公司 Coding method, coding/decoding method and device
CN110267036A (en) * 2019-03-11 2019-09-20 杭州海康威视数字技术股份有限公司 A kind of filtering method and equipment

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BENJAMIN BROSS , JIANLE CHEN , SHAN LIU: "Versatile Video Coding (Draft 3)", JOINT VIDEO EXPERTS TEAM (JVET) OF ITU-T SG 16 WP 3 AND ISO/IEC JTC 1/SC 29/WG 11, no. L1001_v9, 12 October 2018 (2018-10-12), Macao CN, pages 1 - 233, XP030200889 *
SANTIAGO DE-LUXÁN-HERNÁNDEZ , VALERI GEORGE , JACKY MA , TUNG NGUYEN ,HEIKO SCHWARZ ,DETLEV MARPE , THOMAS WIEGAND : "CE3: Intra Sub-Partitions Coding Mode (Tests 1.1.1 and 1.1.2)", THE JOINT VIDEO EXPLORATION TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 , no. M0102-V5, 18 January 2019 (2019-01-18), pages 1 - 9, XP030202391 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113612992A (en) * 2021-07-01 2021-11-05 杭州未名信科科技有限公司 Coding method of fast intra-frame coding unit for AVS3 hardware encoder
CN113612992B (en) * 2021-07-01 2023-11-03 杭州未名信科科技有限公司 Encoding method of fast intra-frame encoding unit for AVS3 hardware encoder

Also Published As

Publication number Publication date
CN110234008B (en) 2020-06-16
CN110267036A (en) 2019-09-20
CN111698504A (en) 2020-09-22
CN111698504B (en) 2022-05-20
WO2020182154A1 (en) 2020-09-17
WO2020182158A1 (en) 2020-09-17
CN110234008A (en) 2019-09-13
CN110267036B (en) 2020-07-10

Similar Documents

Publication Publication Date Title
WO2020182157A1 (en) Encoding method and device, and decoding method and device
EP3962086A1 (en) Prediction mode decoding method and apparatus and prediction mode encoding method and apparatus
US11388403B2 (en) Video encoding method and apparatus, storage medium, and device
CN112532975B (en) Video encoding method, video encoding device, computer equipment and storage medium
WO2023087637A1 (en) Video coding method and apparatus, and electronic device and computer-readable storage medium
AU2022235806B2 (en) Decoding and encoding based on adaptive intra-frame refreshing mechanism
CN114302137B (en) Time domain filtering method and device for video, storage medium and electronic equipment
CN116074512A (en) Video encoding method, video encoding device, electronic equipment and storage medium
CN114630113B (en) Decoding and encoding method based on self-adaptive intra-frame refreshing mechanism and related equipment
CN111770339B (en) Video encoding method, device, equipment and storage medium
CN114268797B (en) Method, device, storage medium and electronic equipment for time domain filtering of video
RU2815483C1 (en) Decoding and encoding based on adaptive internal update mechanism
CN114422782B (en) Video encoding method, video encoding device, storage medium and electronic equipment
CN116980627A (en) Video filtering method and device for decoding, electronic equipment and storage medium
CN117768650A (en) Image block chroma prediction method and device, electronic equipment and storage medium
CN117676170A (en) Method, apparatus, device and storage medium for detecting blocking effect
CN115118979A (en) Image encoding method, image decoding method, device, equipment and storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20770448

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20770448

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20770448

Country of ref document: EP

Kind code of ref document: A1