WO2019219066A1 - Procédés et dispositifs de codage et de décodage - Google Patents
Procédés et dispositifs de codage et de décodage Download PDFInfo
- Publication number
- WO2019219066A1 WO2019219066A1 PCT/CN2019/087316 CN2019087316W WO2019219066A1 WO 2019219066 A1 WO2019219066 A1 WO 2019219066A1 CN 2019087316 W CN2019087316 W CN 2019087316W WO 2019219066 A1 WO2019219066 A1 WO 2019219066A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- image block
- sub
- mode
- derivative
- derived
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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 picture, frame or field
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
Definitions
- the embodiments of the present invention relate to the field of video encoding and decoding and compression, and in particular, to a codec method and apparatus.
- the basic processing unit of video codec is an image block, which is obtained by dividing a frame/image by the encoding end.
- the fineness and diversity of image block division affect the texture and contour features of the image to some extent.
- the image block division method includes a QuadTree plus Binary Tree (QTBT) division method, a Triple Tree (TT) division method, and an Asymmetric Binary Tree (ABT) division manner.
- the QTBT division method is: dividing a coding tree unit (CTU) into four sub-image blocks according to a Quad-Tree (QT) division manner, and for a sub-image block that needs further division, The sub-image block is divided according to a QT/Binary Tree (BT) division manner.
- BT Binary Tree
- the TT division method is: dividing a certain image block horizontally into three sub-image blocks of central symmetry or non-central symmetry, or vertically dividing an image block into three sub-image blocks of central symmetry or non-central symmetry.
- the ABT is divided into two sub-image blocks that are horizontally divided into central symmetric or non-central symmetric, or vertically divided into two sub-image blocks that are centrally symmetric or non-centralally symmetric.
- Both the TT partitioning method and the ABT partitioning method can be combined with the QTBT partitioning method, but the image blocks obtained by the combined partitioning method cannot satisfy the more complicated texture requirements.
- the embodiment of the present invention provides a codec method and apparatus, which can solve the problem that the existing division mode cannot meet more complicated texture requirements.
- a decoding method After obtaining a code stream, the decoding device parses the code stream to determine a basic division mode of the current image block to be decoded and a target derivative mode of the sub image block in the current image block to be decoded; And the decoding device divides the current image block to be decoded into N (N is an integer greater than or equal to 2) sub-image blocks according to the basic division manner, and at least according to the derivative manner indicated by the target derivative mode, at least N of the N sub-image blocks Two adjacent sub-image blocks are derived as a first derived image block; finally, the decoding device decodes the first derived image block.
- N is an integer greater than or equal to 2
- the target derivation mode is one of the candidate derivation mode sets
- the candidate derivation mode set includes M preset derivation modes
- the preset derivation mode is used to indicate a derivation mode
- the derivation mode is used to determine any of the current image blocks to be decoded.
- Two adjacent sub-image blocks are derived as one derived image block, and M is an integer greater than or equal to zero.
- the decoding apparatus determines the specific division manner of the image block to be decoded according to the basic division manner and the target derivative mode.
- the combination of the division mode and the derivative mode identifies a plurality of different division results, and the image block division manner is more enriched than the prior art, and can be adapted to various texture characteristics.
- the video image improves the image quality of the compressed video image, more effectively reduces the code stream load bit overhead of the image block division, and further improves the compression efficiency; can regularly divide the division manner of different image blocks, and reduce the code of the division manner of different image blocks.
- Stream grammar complexity is the decoding method provided by the present application.
- a decoding method After obtaining a code stream, a decoding device parses the code stream to determine a basic division manner of an image block to be decoded and a feature parameter (at least a height and a width of a current image block to be decoded).
- the decoding device in a case that the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold, the decoding device re-analyzes the code stream to determine a target derivative mode of the sub-image block in the current image block to be decoded;
- the device divides the current image block to be decoded into N (N is an integer greater than or equal to 2) sub-image blocks according to the basic division manner, and at least two of the N sub-image blocks according to the derivative manner indicated by the target derivative mode.
- the adjacent sub-image block is derived as a first derived image block; finally, the decoding device decodes the first derived image block.
- the target derivation mode is one of the candidate derivation mode sets
- the candidate derivation mode set includes M preset derivation modes
- the preset derivation mode is used to indicate a derivation mode
- the derivation mode is used to determine any of the current image blocks to be decoded.
- Two adjacent sub-image blocks are derived as one derived image block, and M is an integer greater than or equal to zero.
- the decoding device determines the target derivative mode of the sub-image block in the current image block to be decoded only if the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold. Compared to the first aspect described above, the decoding apparatus of the second aspect has higher decoding efficiency.
- the method that “the decoding device parses the code stream and determines the basic division manner of the current image block to be decoded” is: the decoding device from the code stream Obtaining a division identifier of the current image block to be decoded, and determining a basic division manner according to the division identifier of the current image block to be decoded.
- the method for determining, by the decoding device, the target derivative mode of the current image block to be decoded is: the decoding device acquires the derived identifier of the current image block to be decoded from the code stream, and determines according to the derivative identifier of the current image block to be decoded. Target derivative model.
- a decoding apparatus comprising a parsing unit, a dividing unit, a deriving unit, and a decoding unit.
- the parsing unit is configured to parse the code stream, determine a basic division manner of the current image block to be decoded, and a target derivation mode of the sub image block in the current image block to be decoded, and the target derivation mode is one of the candidate derivation mode sets.
- the candidate derivative mode set includes M preset derivative modes, and the preset derivative mode is used to indicate a derivative mode, and the derivative mode is used to derivate any two adjacent sub-image blocks in the current image block to be decoded into a derivative image block, M Is an integer greater than or equal to 0.
- the dividing unit is configured to divide the current image block to be decoded into N sub-image blocks according to the basic division manner determined by the parsing unit, where N is an integer greater than or equal to 2.
- the above-mentioned deriving unit is configured to derivate at least two adjacent sub-image blocks of the N sub-image blocks obtained by the dividing unit into the first derivative image block according to the derivative manner of the target derivative mode indication determined by the parsing unit.
- the decoding unit is configured to decode the first derived image block obtained by the derivative unit.
- a decoding apparatus comprising a parsing unit, a judging unit, a dividing unit, a deriving unit, and a decoding unit.
- the parsing unit is configured to parse the code stream to determine a basic division manner of the current image block to be decoded and a feature parameter (at least one of width and height) of the current image block to be decoded.
- the determining unit is configured to determine whether a feature parameter of the current graphics block to be decoded is less than or equal to a first preset threshold.
- the parsing unit is further configured to parse the code stream to determine a target derivation mode of the sub-image block in the current image block to be decoded, the target derivation mode is one of the candidate derivation mode sets, and the candidate derivation mode set includes M preset derivatives.
- the mode, the preset derivative mode is used to indicate a derivative mode, and the derivative mode is used to derivate any two adjacent sub-image blocks in the current image block to be decoded into one derivative image block, where M is an integer greater than or equal to 0.
- the dividing unit is configured to divide the current image block to be decoded into N sub-image blocks according to the basic division manner determined by the parsing unit, where N is an integer greater than or equal to 2.
- the above-mentioned deriving unit is configured to derivate at least two adjacent sub-image blocks of the N sub-image blocks obtained by the dividing unit into the first derivative image block according to the derivative manner of the target derivative mode indication determined by the parsing unit.
- the decoding unit is configured to decode the first derived image block obtained by the derivative unit.
- the parsing unit is configured to: obtain, from the code stream, a partition identifier of the current image block to be decoded; and according to the current image block to be decoded.
- the division identifier determines the basic division manner; the derived identifier of the current image block to be decoded is obtained from the code stream; and the target derivative mode is determined according to the derived identifier of the current image block to be decoded.
- a decoding device comprising: one or more processors, a memory, and a communication interface.
- the memory, communication interface is coupled to one or more processors; the memory is for storing computer program code, the computer program code comprising instructions, when the one or more processors execute the instructions, the decoding device performs the first aspect, the second
- a video decoder including a non-volatile storage medium storing a executable program, and a non-volatile storage medium, the non-volatile storage The medium is coupled and the executable program is executed to implement the decoding method as described in the first aspect, the second aspect, or any one of the possible implementations described above.
- a decoder comprising the decoding apparatus and the reconstruction module in the third aspect or the fourth aspect, wherein the reconstruction module is configured to determine a current according to the predicted pixel obtained by the decoding apparatus The reconstructed pixel value of the image block.
- a computer readable storage medium stores instructions, when the instructions are executed on the decoding device of the third aspect or the fourth aspect, The decoding device performs the decoding method as described in the first aspect, the second aspect, or any of the possible implementations thereof.
- a ninth aspect a computer program product comprising instructions, when the computer program product is run on the decoding device of the above third aspect or the fourth aspect, causing the decoding device to perform the first aspect, A decoding method as described in two aspects or any of its possible implementations.
- the name of the above decoding device is not limited to the device or the function module itself. In actual implementation, these devices or functional modules may appear under other names. As long as the functions of the respective devices or functional modules are similar to the present application, they are within the scope of the claims and their equivalents.
- a tenth aspect provides an encoding method.
- an encoding apparatus determines a basic division manner of a current image block to be encoded and a target derivative mode of a sub image block in an image block to be currently encoded, and the target derivative mode is one of the candidate derivative mode sets.
- the candidate derivative mode set includes M preset derivative modes, and the preset derivative mode is used to indicate a derivative mode, and the derivative mode is used to derive any two adjacent sub-image blocks in the current image block to be coded into a derivative image block.
- the encoding apparatus divides the current image block to be encoded into N (N is an integer greater than or equal to 2) sub-image blocks according to the basic division manner, and derives according to the target derivative mode indication. In a manner, at least two adjacent sub-image blocks of the N sub-image blocks are derived as a first derived image block; in a case where the first derivation image block is not divided, the encoding device encodes the derived image block to obtain a code stream.
- the code stream includes a division identifier of the current image block to be encoded and a derivative identifier of the current image block to be encoded, and the current image block to be encoded
- the division identifier is used to indicate a basic division manner
- the derived identifier of the current image block to be encoded is used to indicate the target derivative mode.
- the coding device combines the division mode and the derivative mode to identify a plurality of different division results, enriches the division manner of the image block, can adapt to the video images of various texture characteristics, and can improve the image quality of the compressed video image;
- the code stream load bit overhead of the image block division is effectively reduced, and the compression efficiency is further improved;
- the division manner of different image blocks can be regularized, and the code stream syntax complexity of the division manner of different image blocks is reduced.
- an encoding method determines a basic division manner of an image block to be currently encoded and a feature parameter (at least one of width and height) of an image block to be currently encoded, and is currently in an image to be encoded.
- the target derivative mode is one of the candidate derivative mode sets, and the candidate derivative mode set includes M preset derivation mode, the preset derivation mode is used to indicate a derivative mode, and the derivation mode is used to derivate any two adjacent sub-image blocks in the current image block to be derived into a derivative image block, where M is greater than or equal to 0.
- the encoding apparatus divides the current image block to be encoded into N (N is an integer greater than or equal to 2) sub-image blocks according to a basic division manner, and sets N sub-image blocks according to a derivative manner indicated by the target derivative mode.
- At least two adjacent sub-image blocks in the derivation are derived as a first derivation image block; in the case of not dividing the first derivation image block, The device encodes the derived image block to obtain a code stream, where the code stream includes a division identifier of the current image block to be encoded and a derivative identifier of the current image block to be coded, and the division identifier of the current image block to be coded is used to indicate the basic division mode, and the current The derived identifier of the image block to be encoded is used to indicate the target derived mode.
- the encoding device determines the target derivative mode of the sub-image block in the current image block to be encoded only if the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold.
- the coding apparatus of the eleventh aspect has higher coding efficiency.
- the method for determining, by the encoding device, the basic division manner of the current image block to be encoded is: the encoding device determines the current image to be encoded Corresponding at least two candidate division manners, and calculating a rate distortion cost of each of the at least two candidate division manners, so that the coding apparatus determines the candidate division manner corresponding to the minimum rate distortion cost as the basic division manner .
- the method for determining, by the encoding device, the target derivative mode of the current image block to be encoded is: the encoding device calculates a rate distortion cost of each of the preset derivative modes in the candidate derivative mode set, and presets a minimum rate distortion cost corresponding to the preset
- the derivative mode is determined as the target derivative mode, and the candidate derivative mode set includes M preset derivative modes.
- the basic division mode is horizontal N or vertical N, 0 ⁇ M ⁇ 2 N-1 ; when the basic division mode is horizontal N
- M is an integer, Is an integer.
- an encoding apparatus comprising a determining unit, a dividing unit, a deriving unit, a judging unit, and an encoding unit.
- the determining unit is configured to determine a basic division manner of the current image block to be encoded and a target derivative mode of the sub image block in the current image block to be encoded, and the target derivative mode is one of the candidate derivative mode sets, and the candidate derivative mode
- the set includes M preset derivation modes, and the preset derivation mode is used to indicate a derivation mode, and the derivation mode is used to derivate any two adjacent sub-image blocks in the current image block to be derived into one derivation image block, where M is greater than or equal to An integer of 0.
- the dividing unit is configured to divide the current image block to be encoded into N sub-image blocks according to the basic division manner determined by the determining unit, and N is an integer greater than or equal to 2.
- the above-mentioned deriving unit is configured to derivate at least two adjacent sub-image blocks of the N sub-image blocks obtained by the dividing unit into the first derivative image block according to the derivative manner of the target derivative mode indication determined by the determining unit.
- the determining unit is configured to determine whether to divide the first derivative image block obtained by the derivative unit.
- the coding unit is configured to: when the determining unit determines that the first derived image block obtained by the deriving unit is not divided, encode the first derived image block to obtain a code stream, where the code stream includes the current image block to be encoded.
- the partition identifier of the current image block to be encoded is used to indicate the basic partition mode
- the derived identifier of the current image block to be encoded is used to indicate the target derivative mode
- an encoding apparatus comprising a determining unit, a dividing unit, a deriving unit, a judging unit, and an encoding unit.
- the determining unit is configured to determine a basic division manner of the current image block to be encoded and a feature parameter (at least one of a width and a height) of the current image block to be encoded.
- the dividing unit is configured to divide the current image block to be encoded into N sub-image blocks according to the basic dividing manner determined by the determining unit, and N is an integer greater than or equal to 2.
- the determining unit is configured to determine whether a feature parameter of the current image block to be encoded is less than or equal to a first preset threshold.
- the determining unit is further configured to: when the determining unit determines that the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold, determine a target derivative mode of the sub image block in the current image block to be encoded; target derivative mode As one of the candidate derivative mode sets, the candidate derivative mode set includes M preset derivative modes, and the preset derivative mode is used to indicate a derivative mode, and the derivative mode is used to use any two adjacent sub-images in the current image block to be encoded.
- the block is derived as a derived image block, and M is an integer greater than or equal to zero.
- the above-mentioned deriving unit is configured to derivate at least two adjacent sub-image blocks of the N sub-image blocks into the first derivative image block according to the derivative manner of the target derivative mode indication determined by the determining unit.
- the determining unit is further configured to determine whether to divide the first derivative image block obtained by the derivative unit.
- the coding unit is configured to: when the determining unit determines that the first derivative image block is not divided, encode the derived image block to obtain a code stream, where the code stream includes the division identifier of the current image block to be encoded and the current image to be encoded.
- the derived identifier of the block, the partition identifier of the current image block to be encoded is used to indicate the basic partition mode, and the derived identifier of the current image block to be encoded is used to indicate the target derivative mode.
- the determining unit is specifically configured to: determine at least two candidate division manners corresponding to the current image to be encoded; calculate at least two The rate-distortion cost of each of the candidate partitioning modes; the candidate partitioning mode corresponding to the smallest rate-distortion cost is determined as the basic partitioning mode.
- the determining unit is specifically configured to: calculate a rate distortion cost of each preset derivative mode in the candidate derived mode set.
- the basic division mode is horizontal N or vertical N, 0 ⁇ M ⁇ 2 N-1 ; when the basic division is horizontal and vertical N, It is an integer; the preset derivative mode corresponding to the minimum rate distortion cost is determined as the target derivative mode.
- an encoding device comprising: one or more processors, a memory, and a communication interface.
- the memory, communication interface is coupled to one or more processors; the memory is for storing computer program code, the computer program code comprising instructions, when the one or more processors execute the instructions, the encoding device performs the tenth aspect, tenth An encoding method as described on the one hand or any of its possible implementations.
- a video encoder including a nonvolatile storage medium and a central processing unit, the nonvolatile storage medium storing an executable program, the central processing unit and the nonvolatile The storage medium is coupled and the executable program is executed to implement the encoding method as described in the tenth aspect, the eleventh aspect, or any one of the possible implementations.
- an encoder comprising the encoding apparatus of the twelfth aspect or the thirteenth aspect.
- a seventeenth aspect a computer readable storage medium having instructions stored in an operation on the encoding device of the twelfth aspect or the thirteenth aspect, The encoding device is caused to perform the encoding method as described in the tenth aspect, the eleventh aspect, or any one of the possible implementations.
- An eighteenth aspect a computer program product comprising instructions for causing said encoding device to perform a tenth operation as described above when said computer program product is run on said encoding device of said twelfth or thirteenth aspect
- the names of the above-mentioned encoding devices are not limited to the devices or the functional modules themselves. In actual implementation, these devices or functional modules may appear under other names. As long as the functions of the respective devices or functional modules are similar to the present application, they are within the scope of the claims and their equivalents.
- the basic division manner is horizontal N, vertical N, or horizontal N.
- the horizontal N points, the vertical N points, and the horizontal vertical N points may all be used to represent the average division of the current image block to be decoded/the current image block to be encoded, and may also represent the non-average division of the current image block to be decoded/the current image block to be encoded. .
- the width of each of the plurality of sub image blocks is the current The widths of the image blocks to be decoded are equal, and the height of each sub-image block is equal to 1/N of the height of the current image block to be decoded.
- the height of each of the plurality of sub-image blocks is equal to the height of the current image block to be decoded, and the width of each sub-image block is equal to the width of the current image block to be decoded. 1/N.
- the width of each of the plurality of sub image blocks is equal to The width of the current image block to be decoded
- the height of each sub-image block is equal to the height of the current image block to be decoded. Is an integer.
- the target derivative mode is one of a candidate derivative mode set
- the candidate derivative mode set includes M preset derivative modes, where when the base is divided into a horizontal mode or vertical N-N division, 0 ⁇ M ⁇ 2 N-1; when the base is divided into a horizontal mode or vertical N-N division, M is an integer.
- the maximum value of M is related to the number of dividing lines used to divide the image block.
- the number of division lines dividing the image block is N-1, and correspondingly, the maximum value of M is 2 N-1 .
- the maximum value of M is Of course, the set of candidate derivative patterns may also refer to including some of the preset derivative patterns.
- the candidate derivative mode set includes the first a preset derivative mode, a second preset derivative mode, a third preset derivative mode, and a fourth preset derivative mode; wherein the first preset derivative mode is a first sub-image block, a second sub-image block, and a third The sub-image block is derived as a derivative image block; the second preset derivation mode is that the third sub-image block and the fourth sub-image block are derived as one derived image block; and the third preset derivation mode is the second sub-image block and the third The sub-image block is derived as a derivative image block; the fourth preset derivation mode is that the first sub-image block and the second sub-image block are derived as one derived image block, and the third sub-image block and the fourth sub-image block are derived as another The derived image block; the first sub-image block, the second sub-
- the first preset derivative mode reference may be made to D in FIG. 12
- the second preset derivative mode may refer to C in FIG. 12
- the third preset derivative mode may refer to B in FIG. 12
- the fourth preset derivative mode Reference may be made to F in FIG.
- the candidate derivative mode set includes a fifth preset derivative mode, a sixth preset derivative mode, a seventh preset derivative mode, and an eighth preset. a derivative mode; wherein the fifth preset derivative mode is a fifth sub-image block, a sixth sub-image block, and a seventh sub-image block are derived as one derivative image block; the sixth preset derivation mode is a sixth sub-image block, The seventh sub-image block and the eighth image block are derived as one derived image block; the seventh preset derivation mode is that the sixth sub-image block and the seventh sub-image block are derived as one derivative image block; the eighth preset derivation mode is fifth The sub image block, the sixth sub image block, the seventh sub image block, and the eighth sub image block are all kept independent; the fifth sub image block, the sixth sub image block, the seventh sub image block, and the eighth sub image block are currently The image blocks to be decoded are sequentially arranged in order from left to right
- the fifth preset derivative mode reference may be made to D' in FIG. 13, and the sixth preset derivative mode may refer to E' in FIG. 13, and the seventh preset derivative mode may refer to B' in FIG. 13, the eighth pre- For the derivative mode, refer to G' in FIG.
- the candidate derivative mode set includes a ninth preset derivative mode, a tenth preset derivative mode, an eleventh preset derivative mode, and a tenth a second preset derivative mode; wherein the ninth preset derivative mode is a ninth sub-image block and a tenth sub-image block are derived as one derived image block; and the tenth preset derivation mode is a ninth sub-image block and a tenth sub-image The block is derived as a derivative image block, and the eleventh sub-image block and the twelfth image block are derived as another derivation image block; the eleventh preset derivation mode is derived from the tenth sub-image block and the eleventh sub-image block.
- the ninth sub-image block and the twelfth image block are derived as another derived image block;
- the twelfth preset derivation mode is that the ninth sub-image block and the twelfth sub-image block are derived as one derivative image block
- the ninth sub-image block, the tenth sub-image block, the eleventh sub-image block, and the twelfth sub-image block are sequentially arranged in a clockwise direction in the currently to-be-decoded image block.
- the ninth preset derivative mode reference may be made to A′′ in FIG. 14
- the tenth preset derivative mode may refer to E′′ in FIG. 14
- the eleventh preset derivative mode may refer to F′′ in FIG. 14
- the two preset derivation modes reference may be made to B" in FIG.
- the candidate derivative mode set includes a preset number of preset derivative modes (such as four types) in the candidate derivative mode set.
- Each of the preset derivation modes is represented by a fixed length code.
- the division identifier of the current image block to be decoded or the division identifier of the current image block to be encoded is represented by a variable length code
- the current image to be decoded The derived identifier of the block or the derived identifier of the current image block to be encoded is represented by a fixed length code.
- FIG. 1 is a schematic structural diagram of different division manners provided by an embodiment of the present application.
- FIG. 2 is a schematic structural diagram of dividing a prediction unit by using different division manners according to an embodiment of the present application
- FIG. 3 is a schematic diagram of a division and identification of a QT division manner according to an embodiment of the present disclosure
- FIG. 4 is a schematic diagram of dividing an image block by a QTBT division mode according to an embodiment of the present application
- FIG. 5 is a first schematic diagram of a method for marking a mark in a QT-ABT/TT division manner according to an embodiment of the present application
- FIG. 6 is a second schematic diagram of a method for marking a mark in a QT-ABT/TT division mode according to an embodiment of the present application
- FIG. 7 is a schematic structural diagram of a video codec system according to an embodiment of the present application.
- FIG. 8 is a schematic structural diagram of a video encoder according to an embodiment of the present application.
- FIG. 9 is a schematic structural diagram of a video decoder according to an embodiment of the present application.
- FIG. 10 is a schematic structural diagram of a codec device according to an embodiment of the present application.
- FIG. 11 is a schematic flowchart 1 of a decoding method according to an embodiment of the present application.
- FIG. 11B is a second schematic flowchart of a decoding method according to an embodiment of the present disclosure.
- FIG. 12 is a schematic structural diagram 1 of a derivative mode according to an embodiment of the present disclosure.
- FIG. 13 is a schematic structural diagram 2 of a derivative mode according to an embodiment of the present disclosure.
- FIG. 14 is a schematic structural diagram 3 of a derivative mode according to an embodiment of the present disclosure.
- 15A is a schematic flowchart 1 of an encoding method according to an embodiment of the present application.
- FIG. 15B is a second schematic flowchart of an encoding method according to an embodiment of the present disclosure.
- 16 is a schematic flowchart of a method for determining a basic division manner and a target derivative mode according to an embodiment of the present application
- 17A is a schematic diagram 1 of a division structure of an image block in the embodiment of the present application.
- 17B is a second schematic structural diagram of an image block according to an embodiment of the present application.
- FIG. 18 is a third schematic structural diagram of an image block according to an embodiment of the present application.
- 19 is a schematic diagram 4 of a division structure of an image block in an embodiment of the present application.
- 20 is a schematic diagram 5 of a division structure of an image block in the embodiment of the present application.
- 21 is a schematic diagram 6 of a division structure of an image block in the embodiment of the present application.
- FIG. 22 is a schematic structural diagram 1 of a decoding apparatus according to an embodiment of the present application.
- FIG. 23 is a second schematic structural diagram of a decoding apparatus according to an embodiment of the present application.
- 24 is a schematic structural diagram 1 of an encoding apparatus according to an embodiment of the present application.
- FIG. 25 is a second schematic structural diagram of an encoding apparatus according to an embodiment of the present application.
- the words “exemplary” or “such as” are used to mean an example, illustration, or illustration. Any embodiment or design described as “exemplary” or “for example” in the embodiments of the present application should not be construed as preferred or advantageous over other embodiments or designs. Rather, the use of the words “exemplary” or “such as” is intended to present the concepts in a particular manner.
- a complete image in a video is often referred to as a "frame,” and a video composed of many frames in chronological order is also referred to as a video sequence.
- the video sequence has a series of redundant information such as spatial redundancy, temporal redundancy, visual redundancy, information entropy redundancy, structural redundancy, knowledge redundancy, and importance redundancy.
- a video coding (Video Coding) technique is proposed to reduce the storage space and save the transmission bandwidth.
- Video coding technology is also known as video compression technology.
- video coding technologies mainly include intra prediction, inter prediction, transform quantization, entropy coding, and deblocking filtering.
- video compression coding standards such as: MPEG-2 and MPEG-4 Part 10 Advanced Video Coding (AVC), developed by Motion Picture Experts Group (MPEG), H.263, H.264, and H.265 High Efficiency Video Coding Standard (HEVC) developed by the International Telecommunication Uion-Telecommunication Standardization Sector (ITU-T)
- AVC Advanced Video Coding
- MPEG Motion Picture Experts Group
- HEVC High Efficiency Video Coding Standard
- ITU-T International Telecommunication Uion-Telecommunication Standardization Sector
- Chromatic Sampling Make full use of the visual and psychological characteristics of the human eye, and in the underlying data representation, try to minimize the amount of data described by a single element.
- Predictive coding The data information of the previously encoded frame is used to predict the frame currently to be encoded.
- the encoding end obtains a predicted value by prediction, and there is a certain residual value between the predicted value and the actual value. If the prediction is more suitable, the closer the predicted value is to the actual value, the smaller the residual value, so that the encoding end encodes the residual value to greatly reduce the amount of data.
- the decoder reconstructs the original image by using the residual value plus the predicted value.
- predictive coding is divided into two basic types: intra prediction and inter prediction.
- Transform coding instead of directly encoding the original spatial domain information, the information sample value is converted from the current domain to another artificial domain (usually called the transform domain) according to some form of transformation function, and then The information is compressed and encoded in the distribution characteristics of the transform domain.
- the transform domain another artificial domain (usually called the transform domain) according to some form of transformation function
- Quantization coding Forcibly adjust the input value with a large dynamic range to a smaller output value.
- the above compression coding methods are used in combination, and the basic processing unit of these compression coding is an image block, which is obtained by dividing the frame/image by the encoding end.
- HEVC For image partitioning, in order to more flexibly represent video content, HEVC defines a CTU, a Coding Unit (CU), a Prediction Unit (PU), and a Transform Unit (TU).
- the CTU, CU, PU, and TU are all image blocks.
- CTU An image consists of multiple CTUs. One CTU usually corresponds to a square image area. As shown in (a) of Figure 1, the image 10 consists of multiple CTUs (including CTU A, CTU B, CTU C, etc. ).
- the coding information corresponding to a certain CTU includes luminance values and/or chrominance values of pixels in a square image region corresponding to the CTU. Furthermore, the coding information corresponding to a certain CTU may further include syntax elements indicating how to divide the CTU into at least one CU, and a method of decoding each CU to obtain a reconstructed image.
- An image area corresponding to one CTU may include 64 ⁇ 64, 128 ⁇ 128, or 256 ⁇ 256 pixels.
- a CTU of 64x64 pixels contains a rectangular pixel lattice of 64 columns of 64 pixels per column, each pixel containing a luminance component and/or a chrominance component.
- the CTU can also correspond to a rectangular image area or an image area of other shapes.
- the image area corresponding to one CTU may also be an image area in which the number of pixels in the horizontal direction is different from the number of pixels in the vertical direction, for example, including 64 ⁇ 128 pixels.
- CU generally corresponds to a rectangular area of A ⁇ B, A is the width of the rectangle, and B is the height of the rectangle.
- the width referred to in the embodiment of the present application refers to the two-dimensional Cartesian coordinate system XoY shown in FIG. 1 .
- the length in the X-axis direction (horizontal direction), the height refers to the length in the Y-axis direction (vertical direction) in the two-dimensional Cartesian coordinate system XoY shown in FIG.
- the values of A and B may be the same or different.
- the values of A and B are usually an integer power of 2, for example: 256, 128, 64, 32, 16, 8, or 4.
- PU is the basic unit of intra prediction and inter prediction.
- the division of the intra prediction unit includes a 2N ⁇ 2N division scheme (shown as A in FIG. 2) and an N ⁇ N division scheme (shown as B in FIG. 2).
- the division of the inter prediction unit includes a 2N ⁇ 2N division manner (as shown by C in FIG. 2), an N ⁇ N division manner (shown as D in FIG. 2), and an N ⁇ 2N division manner (as shown in FIG. 2). E)), 2N ⁇ N division mode (shown as F in Fig. 2), 2N ⁇ nD division mode (shown as G in Fig. 2), 2N ⁇ nU division mode (such as H in Fig. 2) Show), nL ⁇ 2N division mode (shown as I in Figure 2), nR ⁇ 2N division mode (shown as J in Figure 2).
- N is any positive integer
- n x ⁇ N, and 0 ⁇ x ⁇ 1.
- the 2N ⁇ 2N division method is not to divide the image block; the N ⁇ N division method is to divide the image block into four large sub-image blocks; the N ⁇ 2N division method is to divide the image block into two equal parts.
- the vertical bisector moves down n, where D indicates that the image dividing line is shifted downward relative to the vertical bisector of the image block; 2N ⁇ nU is divided into two sub-image blocks, and the image dividing line is opposite to the image.
- the vertical bisector of the block is shifted by n, where U represents the image dividing line moving relative to the vertical bisector of the image block; nL ⁇ 2N is divided into two sub-image blocks, and the image dividing line is opposite to the image dividing line.
- the vertical bisector of the image block is shifted to the left by n, where L indicates that the image dividing line is shifted to the left by the vertical bisector of the image block; nR ⁇ 2N is divided into two sub-image blocks, and the image dividing line is relatively
- TU Processes the residuals of the original image block and the predicted image block.
- the division manners for dividing an image block include: Quad-Tree (QT) division, Binary Tree (BT) division, and TT division.
- QT Quad-Tree
- BT Binary Tree
- TT division TT division
- QT division method divide one image block into four sub-image blocks.
- the sub-image block may be further divided, or the sub-image block may not be divided.
- the encoding end divides the CTU into four sub-image blocks by using a QT division manner; for each sub-image block, the encoding end may not be divided (in this case, each sub-image block is a CU), and the sub-image may also be The block is divided into four sub-image blocks of the next level. As shown in (b) of FIG. 1, the encoding end divides CTU A into four sub-image blocks a, b, c, and d.
- the BT division method divide one image block into two sub-image blocks.
- the sub-image block may be further divided, or the sub-image block may not be divided.
- the BT division method can include:
- the image block is divided into upper and lower sub-image blocks of the same size. As shown in (c) of FIG. 1, the image block b is divided using a horizontal binary division method, and sub-image blocks e and sub-image blocks f of equal size are generated.
- the image block is divided into two sub-image blocks of the same size, left and right. As shown in (d) of FIG. 1, the image block d is divided by the vertical binary division method, and sub-image blocks g and sub-image blocks h of equal size are generated.
- the TT division method divide one image block into three sub-image blocks.
- the sub-image block may be further divided, or the sub-image block may not be divided.
- the TT division method can include:
- the image block is divided into upper, middle and lower sub-image blocks.
- the heights of the upper, middle, and lower sub-image blocks are respectively 1/4, 1/2, and 1/4 of the height of the image block.
- the image block c is divided by a horizontal three-division division method, and the sub-image block j, the sub-image block k, and the sub-image block m are generated, and the height of the sub-image block j is high for the image block c.
- the height of the sub-image block k is 1/2 of the height of the image block c
- the height of the sub-image block m is 1/4 of the height of the image block c.
- the heights of the upper, middle, and lower sub-image blocks are respectively 1/3, 1/3, and 1/3 of the height of the image block, that is, the image block is in accordance with the two-dimensional Cartesian coordinate system shown in FIG.
- the direction of the X-axis in XoY is equally divided into three sub-image blocks.
- the image block c is divided by a horizontal three-division division method, and the sub-image block j, the sub-image block k, and the sub-image block m are generated, and the height of the sub-image block j and the height of the sub-image block k are high.
- the height of the sub-image block m is 1/3 of the height of the image block c.
- the image block is divided into three sub-image blocks: left, center, and right.
- the widths of the left, middle, and right sub-image blocks are respectively 1/4, 1/2, and 1/4 of the width of the image block.
- the image block c is divided by a vertical three-division division method, and the sub-image block p, the sub-image block q, and the sub-image block x are generated, and the width of the sub-image block p is the width of the image block c.
- the width of the sub-image block q is 1/2 of the width of the image block c
- the width of the sub-image block x is 1/4 of the width of the image block c.
- the heights of the left, middle, and right sub-image blocks are respectively 1/3, 1/3, and 1/3 of the image block, that is, the image block is in accordance with the two-dimensional Cartesian coordinate system shown in FIG.
- the direction of the X-axis in XoY is equally divided into three sub-image blocks.
- the image block c is divided by a vertical three-division division method, and the sub-image block p, the sub-image block q, and the sub-image block x are generated, and the width of the sub-image block p and the width of the sub-image block q are wide.
- the width of the sub-image block x is 1/3 of the width of the image block c.
- the encoding end after dividing an image block, the encoding end also needs to determine whether to continue dividing the sub-image block. Whether to divide a certain image block is indicated in the code stream by a division flag bit (such as split_cu_flag) corresponding to the image block.
- a division flag bit such as split_cu_flag
- the level of the image block in the QT partition structure indirectly represents the number of QT partitions.
- split_cu_flag the value of the split_cu_flag of the image block indicated by the 64 ⁇ 64 CTU is 1
- the CTU is divided into four 32 ⁇ 32 sub-image blocks, and the four 32 ⁇ 32 sub-images are divided.
- the blocks are a sub-picture block A1, a sub-picture block A2, a sub-picture block A3, and a sub-picture block A4, respectively.
- Each of the four 32 ⁇ 32 sub-image blocks may be further divided or not divided according to its corresponding split_cu_flag. If the value of the split_cu_flag of the sub-picture block A1 is 1, the sub-picture block A1 is further divided, and the sub-picture block A1 is divided into four 16 ⁇ 16 nodes, and the four 16 ⁇ 16 sub-image blocks are respectively sub-image blocks. B1, sub-picture block B2, sub-picture block B3, and sub-picture block B4. And so on, until all sub-image blocks are no longer divided. In FIG.
- the QT level of the CTU is 0, and the QT levels of the sub-image block A1, the sub-image block A2, the sub-image block A3, and the sub-image block A4 are all 1, the sub-image block B1, the sub-image block B2, and the sub-image block.
- Both B3 and sub-picture block B4 have a QT level of 2.
- the Joint Video Exploration Team proposes a QTBT division method in which the QT division method and the BT division method are cascaded. Specifically, the CTU is divided into four sub-image blocks according to the QT division manner, and for the sub-image blocks that need to be further divided, the sub-image block is further divided according to the QT/BT division manner.
- each node represents an image block
- a node is a child node of the previous node
- the image block represented by the node is an image represented by the previous node.
- the solid line indicates division using the QT division method
- the broken line indicates division using the BT division method
- each of the nodes A to M corresponds to one CU.
- 10 represents a vertical dichotomy
- 11 represents a horizontal dichotomy.
- FIG. 4 shows a CTU divided according to the division manner shown in (a) of FIG.
- a QT-ABT/TT partitioning method is formed on the basis of the above QTBT, that is, the CTU is divided into four sub-image blocks according to the QT partitioning manner, for the sub-image block that needs further division. Then, the sub-image block is divided according to the QT/ABT/TT division method.
- the coding end can use the identifier bit indication method shown in FIG. 5 or FIG. 6 to write a specific division manner into the code stream.
- Each branch in Figure 5 represents the manner in which the corresponding levels are divided.
- 1 indicates the QT division mode
- 0 indicates the BT division method/TT division method/non-division.
- 1 indicates the BT division method/TT division method
- 0 indicates no division.
- 1 indicates the horizontal division mode
- 0 indicates the vertical division mode.
- the 1 indicates the BT division mode (ie, the horizontal dichotomy)
- 0 indicates the TT division mode (ie, the horizontal three-point).
- 0 indicates the TT division mode (ie, vertical three points)
- 1 indicates the BT division mode (ie, vertical dichotomy).
- the BT division mode indicates whether the symmetrical division manner is adopted by the three identifiers of 0, 10, and 11.
- the qt in Fig. 6 indicates that the QT division mode is adopted, and the no qt indicates that the QT division mode is not employed.
- no qt means that the BT division mode may not be divided or further adopted.
- the BT division mode is further adopted, it is necessary to identify in the code stream whether a parallel division method or a vertical division manner is adopted. If the horizontal division method is adopted, the further identification is 1/4 division, or 1/8 division, or 1/3 division, or 1/2 division, and so on.
- the decoding end can correctly decode the specific shape of the image block.
- the above division method still uses QTBT as the basic framework. On the basis of which the horizontal or vertical division of TT or ABT is still limited, it cannot meet the more complicated texture requirements.
- the present application provides a decoding method.
- the decoding method provided by the present application can be implemented in two ways.
- the decoding apparatus determines the basic division manner of the current image block to be decoded and the target derivative mode of the sub image block in the current image block to be decoded by parsing the code stream, and according to the basic division manner, the current Decoding the image block to be divided into N (N is an integer greater than or equal to 2) sub-image blocks, and deriving at least two adjacent sub-image blocks of the N sub-image blocks as the first according to the derivative manner indicated by the target derivative mode
- the image block is derived such that the decoding device can decode the first derived image block.
- the target derivative mode is one of a set of candidate derivative modes
- the candidate derivative mode set includes M (M is an integer greater than or equal to 0) preset derivation mode, and each of the preset derivation modes is used for the unique indication one.
- the derivative method is used to derive at least two adjacent sub-image blocks of the above N sub-image blocks into one derived image block. It is easy to understand that the combination of the division mode and the derivative mode can identify a plurality of different division results. Compared with the prior art, the image block is enriched and can be adapted to video images of various texture characteristics.
- the decoding device determines, by parsing the code stream, a basic division manner of the current image block to be decoded and a feature parameter (at least one of height and width) of the current image block to be decoded; If the feature parameter of the to-be-decoded image block is less than or equal to the first preset threshold, the decoding device parses the code stream to determine a target derivative mode of the sub-image block in the current image block to be decoded, so that the decoding device may be configured according to the basic division manner.
- the decoding device determines the target derivative mode of the sub-image block in the current image block to be decoded only if the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold.
- the decoding efficiency of the decoding device in this mode is higher than that of the first implementation.
- the decoding device may be a video decoder (as shown in FIG. 9 below), or may be a device having the functions of implementing the first implementable manner or the second implementable manner.
- the present application also provides an encoding method.
- This encoding method can be implemented in two ways.
- the encoding device divides the current image block to be encoded into N according to the basic division manner. And sub-image blocks, and deriving at least two adjacent sub-image blocks of the N sub-image blocks as the first derivative image block according to the derivative manner indicated by the target derived mode. Further, in a case where the first derivative image block is not divided, the encoding device encodes the first derivative image block to obtain a code stream including a division identifier of the current image block to be encoded and a derivative identifier of the current image block to be encoded, And transmitting the code stream to the decoding device.
- the target derivative mode is one of a set of candidate derivative modes
- the candidate derivative mode set includes M (M is an integer greater than or equal to 0) preset derivation mode, and each of the preset derivation modes is used for the unique indication one.
- the derivative method is used to derive at least two adjacent sub-image blocks of the above N sub-image blocks into one derived image block.
- the division identifier of the current image block to be encoded is used to indicate a basic division manner, and the derived identifier of the current image block to be encoded is used to indicate the target derivative mode.
- the coding end device in the present application derives at least two adjacent sub-image blocks of the N sub-image blocks into the first derivative image block by using the target derivation mode on the basis of the basic division mode, thereby realizing the current image block to be encoded. Division. That is to say, the coding end device in the present application identifies a plurality of different division results by combining the division mode and the derivative mode, enriches the division manner of the image block, and can adapt to video images of various texture characteristics.
- the encoding device divides the current image block to be encoded into N sub-image blocks according to the basic division manner, and If the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold, parsing the code stream, determining a target derivative mode of the sub image block in the current image block to be encoded, such that the encoding device indicates according to the target derivative mode
- the derivative method is to derive at least two adjacent sub-image blocks of the N sub-image blocks into the first derivative image block.
- the encoding device encodes the first derivative image block to obtain a code stream including a division identifier of the current image block to be encoded and a derivative identifier of the current image block to be encoded, And transmitting the code stream to the decoding device.
- the encoding device determines the target derivative mode only when the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold.
- the implementation B effectively improves the coding efficiency, and the code The transmission resources occupied by the stream are small. In practical applications, implementation B is easier to implement than implementation A.
- the above encoding device may be a video encoder (as shown in FIG. 8 below), or may be a device having the functions of implementing the above-described implementation A or the above-described implementation B.
- Fig. 7 shows the structure of a video codec system.
- the video codec system includes a source device 70 and a destination device 71.
- the source device 70 generates encoded video data, and the source device 70 may also be referred to as a video encoding device or a video encoding device.
- the destination device 71 may decode the encoded video data generated by the source device 70, and the destination device 71 also It may be referred to as a video decoding device or a video decoding device.
- Source device 70 and/or destination device 71 can include at least one processor and a memory coupled to the at least one processor.
- the memory may include, but is not limited to, a read-only memory (ROM), a random access memory (RAM), and an electrically erasable programmable read-only memory (EEPROM).
- the flash memory or any other medium that can be used to store the desired program code in the form of an instruction or data structure accessible by the computer is not specifically limited herein.
- Source device 70 and destination device 71 may comprise various devices, including desktop computers, mobile computing devices, notebook (eg, laptop) computers, tablet computers, set top boxes, telephone handsets such as so-called “smart" phones, A television, a camera, a display device, a digital media player, a video game console, an on-board computer or the like.
- Link 72 can include one or more media and/or devices capable of moving encoded video data from source device 70 to destination device 71.
- link 72 can include one or more communication media that enable source device 70 to transmit encoded video data directly to destination device 71 in real time.
- source device 70 may modulate the encoded video data in accordance with a communication standard (eg, a wireless communication protocol) and may transmit the modulated video data to destination device 71.
- the one or more communication media may include wireless and/or wired communication media, such as a radio frequency (RF) spectrum, one or more physical transmission lines.
- RF radio frequency
- the one or more communication media described above may form part of a packet-based network, a portion of a packet-based network (eg, a local area network, a wide area network, or a global network (eg, the Internet)).
- the one or more communication media described above may include routers, switches, base stations, or other devices that enable communication from source device 70 to destination device 71.
- the encoded video data can be output from the output interface 703 to the storage device 73.
- the encoded video data can be accessed from storage device 73 via input interface 713.
- the storage device 73 can include a variety of local access data storage media, such as Blu-ray Disc, High Density Digital Video Disc (DVD), Compact Disc Read-Only Memory (CD-ROM), flash. Memory, or other suitable digital storage medium for storing encoded video data.
- storage device 73 may correspond to a file server or another intermediate storage device that stores encoded video data generated by source device 70.
- destination device 71 may retrieve its stored video data from storage device 73 via streaming or download.
- the file server can be any type of server capable of storing encoded video data and transmitting the encoded video data to the destination device 71.
- the file server may include a World Wide Web (Web) server (for example, for a website), a File Transfer Protocol (FTP) server, a Network Attached Storage (NAS) device, and a local disk. driver.
- Web World Wide Web
- FTP File Transfer Protocol
- NAS Network Attached Storage
- the destination device 71 can access the encoded video data over any standard data connection (e.g., an internet connection).
- the instance type of the data connection includes a wireless channel, a wired connection (e.g., a cable modem, etc.), or a combination of both, suitable for accessing the encoded video data stored on the file server.
- the transmission of the encoded video data from the file server may be streaming, downloading, or a combination of both.
- the codec method of the present application is not limited to a wireless application scenario.
- the codec method of the present application can be applied to video codec supporting multiple multimedia applications such as the following applications: aerial television broadcasting, cable television transmission, satellite television transmission, Streaming video transmission (e.g., via the Internet), encoding of video data stored on a data storage medium, decoding of video data stored on a data storage medium, or other application.
- video codec system 1 may be configured to support one-way or two-way video transmission to support applications such as video streaming, video playback, video broadcasting, and/or video telephony.
- the video codec system shown in FIG. 7 is only an example of a video codec system, and is not a limitation of the video codec system in this application.
- the codec method provided by the present application is also applicable to a scenario where there is no data communication between the encoding device and the decoding device.
- the video data to be encoded or the encoded video data may be retrieved from a local memory, streamed over a network, or the like.
- the video encoding device may encode the encoded video data and store the encoded video data to a memory, and the video decoding device may also acquire the encoded video data from the memory and decode the encoded video data.
- source device 70 includes a video source 701, a video encoder 702, and an output interface 703.
- output interface 703 can include a regulator/demodulator (modem) and/or a transmitter.
- Video source 701 can include a video capture device (eg, a video camera), a video archive containing previously captured video data, a video input interface to receive video data from a video content provider, and/or a computer graphic for generating video data. A combination of systems, or such sources of video data.
- Video encoder 702 can encode video data from video source 701.
- source device 70 transmits the encoded video data directly to destination device 71 via output interface 703.
- the encoded video data may also be stored on storage device 73 for later access by destination device 71 for decoding and/or playback.
- destination device 71 includes display device 711, video decoder 712, and input interface 713.
- input interface 713 includes a receiver and/or a modem.
- Input interface 713 can receive encoded video data via link 72 and/or from storage device 73.
- the display device 711 can be integrated with the destination device 71 or can be external to the destination device 71. Generally, the display device 711 displays the decoded video data.
- Display device 711 can include a variety of display devices, such as liquid crystal displays, plasma displays, organic light emitting diode displays, or other types of display devices.
- video encoder 702 and video decoder 712 may each be integrated with an audio encoder and decoder, and may include appropriate multiplexer-demultiplexer units or other hardware and software to handle common Encoding of both audio and video in a data stream or in a separate data stream.
- the video encoder 702 and the video decoder 712 may include at least one microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), and a field programmable gate array (Field Programmable). Gate Array, FPGA), discrete logic, hardware, or any combination thereof. If the codec method provided by the present application is implemented in software, the instructions for the software may be stored in a suitable non-transitory computer readable storage medium, and the instructions may be executed in hardware using at least one processor Implement this application. Any of the foregoing (including hardware, software, a combination of hardware and software, etc.) can be considered at least one processor. Video encoder 702 may be included in an encoder, and video decoder 712 may be included in a decoder, which may be part of a combined encoder/decoder (codec) in a respective device.
- codec combined encoder/decoder
- the video encoder 702 and the video decoder 712 in this application may be operated according to a video compression standard (for example, HEVC), and may also be operated according to other industry standards, which is not specifically limited herein.
- a video compression standard for example, HEVC
- the video encoder 702 is configured to determine a basic division manner of the current image block to be encoded and a target derivative mode of the sub image block in the current image block to be encoded, or determine a basic division manner of the current image block to be encoded and a feature of the current image block to be encoded.
- a parameter in a case where the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold, determining a target derivative mode of the sub image block in the current image block to be encoded; and dividing the current image block to be encoded according to the basic division mode At least N (N is an integer greater than or equal to 2) sub-image blocks, and at least two adjacent sub-image blocks of the N sub-image blocks are derived as the first derivative image block according to a derivative manner indicated by the target derived mode.
- video encoder 702 does not need to partition the first derived image block, video encoder 702 encodes the first derived image block, resulting in a code stream and transmitting the code stream to video decoder 712.
- the video encoder 702 determines the first derived image block as the current image block to be encoded, and repeatedly performs the above process until the first obtained. Derived image blocks are no longer partitioned.
- the method that the video encoder 702 determines the basic division manner of the current image block to be encoded may be: the video encoder 702 determines at least two candidate division manners corresponding to the current image to be encoded, and calculates at least two types.
- the rate-distortion cost of each of the candidate partitioning modes is such that the video encoder 702 determines the candidate partitioning mode corresponding to the smallest rate-distortion cost as the basic partitioning mode.
- the method of “the video encoder 702 determining the target derived mode of the sub-image block in the current image block to be encoded” may be: the video encoder 702 calculates a rate distortion cost of each of the preset derivative modes in the candidate derived mode set, and The preset derivative mode corresponding to the minimum rate distortion cost is determined as the target derivative mode.
- the video decoder 712 is configured to: parse the code stream, determine a basic division manner of the current image block to be decoded, and a target derivative mode of the sub image block in the current image block to be decoded (S111); or Parsing the code stream, determining a basic division manner of the current image block to be decoded, and a feature parameter of the current image block to be decoded (S111a), and determining whether the feature parameter of the current image block to be decoded is less than or equal to a first preset threshold (S111b), In a case that the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold, the code stream is parsed to determine a target derivative mode of the sub-image block in the current image block to be decoded (S111c).
- the video decoder 712 divides the current image block to be decoded into N sub-image blocks according to the basic division manner (S112), and at least two adjacent sub-N of the N sub-image blocks according to the derivative manner indicated by the target derivative mode.
- the image block is derived as a first derived image block (S113). Further, the video decoder 712 decodes the first derived image block (S114).
- FIG. 8 is a schematic block diagram of a video encoder 702 in the embodiment of the present application.
- Video encoder 702 may perform intra coding and inter coding of video blocks within a video strip.
- Intra coding relies on spatial prediction to reduce or remove spatial redundancy of video within a given video frame or image.
- Inter-coding relies on temporal prediction to reduce or remove temporal redundancy of adjacent frames of a video sequence or video within an image.
- the intra coding mode may refer to any of a number of space based compression modes. For example, one-way prediction (P mode) or bidirectional prediction (B mode).
- the inter coding mode may refer to any of a number of time based compression modes.
- video encoder 702 includes a partitioning unit 81, a transform unit 82, a quantization unit 83, a prediction unit 84, an entropy encoding unit 85, a reference image memory 88, and a summer 802.
- the prediction unit 84 includes a motion estimation unit 841, a motion compensation unit 842, and an intra prediction unit 843.
- video encoder 702 also includes inverse quantization unit 86, inverse transform unit 87, and summer 801.
- video encoder 702 can also include a deblocking filter (not shown in FIG. 8) for filtering block boundaries to remove blockiness artifacts from the reconstructed video. The deblocking filter will typically filter the output of summer 801 as needed.
- video encoder 702 may also include additional loop filters (in-loop or post-loop).
- video encoder 702 receives video data, and segmentation unit 81 segments the data into video blocks.
- This partitioning may also include partitioning into slices, image blocks, or other larger units, and, for example, video block partitioning based on the quadtree structure of the LCU and CU.
- video encoder 702 encodes components of a video block within a video strip to be encoded.
- a stripe may be partitioned into multiple video blocks (and possibly into a collection of video blocks called image blocks).
- Prediction unit 84 may select one of a plurality of possible coding modes of the current video block based on the coding quality and the cost calculation result (eg, Rate Distortion cost (RD cost)), such as one of a plurality of intra coding modes.
- the cost calculation result eg, Rate Distortion cost (RD cost)
- Prediction unit 84 may provide the resulting intra-coded or inter-coded block to summer 802 to generate residual block data, and provide the resulting intra-coded or inter-coded decoding to summer 801 to reconstruct the The coded block is thus used as a reference image.
- Motion estimation unit 841 and motion compensation unit 842 within prediction unit 84 perform inter-predictive decoding of the current video block relative to one or more of the one or more reference pictures to provide temporal compression.
- Motion estimation unit 841 can be configured to determine an inter prediction mode for the video stripe based on a predetermined pattern of the video sequence. The predetermined mode specifies the video strips in the sequence as P strips, B strips, or GPB strips.
- Motion estimation unit 841 and motion compensation unit 842 are highly integrated, but are illustrated separately for conceptual purposes.
- the motion performed by the motion estimation unit 841 is estimated as a process of generating a motion vector of the estimated video block.
- the motion vector may indicate the displacement of the PU of the video block within the current video frame or image relative to the predicted block within the reference image.
- the prediction block is a block of PUs that are found to closely match the video block to be decoded according to the pixel difference, and the pixel difference may be Sum of Absolute Differences (SAD), Sum of Squared Differences (SSD) or Other difference metrics are determined.
- video encoder 702 can calculate a value of a sub-integer pixel location of a reference image stored in reference image memory 88. For example, video encoder 702 can interpolate values of a quarter pixel position, an eighth pixel position, or other fractional pixel position of a reference image. Accordingly, the motion estimation unit 841 can perform motion search with respect to the full pixel position and the fractional pixel position and output a motion vector having fractional pixel precision.
- the motion estimation unit 841 calculates a motion vector of the PU of the video block in the inter-decoded slice by comparing the position of the PU with the position of the prediction block of the reference image.
- the reference images may be selected from a first reference image list (List 0) or a second reference image list (List 1), each of the lists identifying one or more reference images stored in the reference image memory 88.
- the motion estimation unit 841 transmits the calculated motion vector to the entropy encoding unit 85 and the motion compensation unit 842.
- Motion compensation performed by motion compensation unit 842 may involve extracting or generating a prediction block based on motion vectors determined by motion estimation, possibly performing interpolation to sub-pixel precision. After receiving the motion vector of the PU of the current video block, motion compensation unit 842 may locate the prediction block pointed to by the motion vector in one of the reference image lists. Video encoder 702 forms a residual video block by subtracting the pixel values of the prediction block from the pixel values of the current video block being decoded, thereby forming pixel difference values. The pixel difference values form residual data for the block and may include both luminance and chrominance difference components. Summer 801 represents one or more components that perform this subtraction. Motion compensation unit 842 may also generate syntax elements associated with video blocks and video slices for use by video decoder 712 to decode video blocks of the video strip.
- the PU-containing image may be associated with two reference image lists called "List 0" and "List 1".
- an image containing B strips may be associated with a list combination that is a combination of List 0 and List 1.
- motion estimation unit 841 can perform uni-directional prediction or bi-directional prediction for the PU, wherein, in some possible implementations, bi-directional prediction is based on list of reference pictures of list 0 and list 1, respectively.
- the prediction performed by the image in other possible embodiments, the bidirectional prediction is prediction based on the reconstructed future frame and the reconstructed past frame in the display order of the current frame, respectively.
- the motion estimation unit 841 may search for a reference block for the PU in the reference image of list 0 or list 1.
- Motion estimation unit 841 may then generate a reference index indicating a reference picture containing the reference block in list 0 or list 1 and a motion vector indicating a spatial displacement between the PU and the reference block.
- the motion estimation unit 841 may output a reference index, a prediction direction identifier, and a motion vector as motion information of the PU.
- the predicted direction indicator may indicate that the reference index indicates a reference picture in list 0 or list 1.
- Motion compensation unit 842 may generate a predicted image block of the PU based on the reference block indicated by the motion information of the PU.
- the motion estimation unit 841 may search for a reference block for the PU in the reference image in the list 0 and may also search for another one for the PU in the reference image in the list 1 Reference block. Motion estimation unit 841 may then generate a reference index indicating the reference picture containing the reference block in list 0 and list 1 and a motion vector indicating the spatial displacement between the reference block and the PU. The motion estimation unit 841 may output a reference index of the PU and a motion vector as motion information of the PU. Motion compensation unit 842 may generate a predicted image block of the PU based on the reference block indicated by the motion information of the PU.
- motion estimation unit 841 does not output a complete set of motion information for the PU to entropy encoding unit 85. Rather, the motion estimation unit 841 can signal the motion information of the PU with reference to motion information of another PU. For example, motion estimation unit 841 can determine that the motion information of the PU is sufficiently similar to the motion information of the neighboring PU. In this embodiment, motion estimation unit 841 can indicate an indication value in a syntax structure associated with the PU that indicates to video decoder 712 that the PU has the same motion information as the neighboring PU or has a slave phase The motion information derived by the neighboring PU.
- motion estimation unit 841 can identify candidate predicted motion vectors and Motion Vector Differences (MVDs) associated with neighboring PUs in a syntax structure associated with the PU.
- the MVD indicates the difference between the motion vector of the PU and the indicated candidate predicted motion vector associated with the neighboring PU.
- Video decoder 712 may determine the motion vector of the PU using the indicated candidate predicted motion vector and MVD.
- prediction unit 84 may generate a list of candidate predicted motion vectors for each PU of the CU.
- One or more of the candidate predicted motion vector lists may include one or more original candidate predicted motion vectors and one or more additional candidate predicted motion vectors derived from the original candidate predicted motion vectors.
- Intra prediction unit 843 within prediction unit 84 may perform intra-predictive decoding of the current video block relative to one or more neighboring blocks in the same image or slice as the current block to be decoded to provide spatial compression. Accordingly, instead of inter prediction (as described above) performed by motion estimation unit 841 and motion compensation unit 842, intra prediction unit 843 may intra-predict the current block. In particular, intra prediction unit 843 can determine an intra prediction mode to encode the current block. In some possible implementations, intra-prediction unit 843 can encode the current block using various intra-prediction modes, for example, during a separate encoding traversal, and intra-prediction unit 843 can select the appropriate frame to use from the tested mode. Internal prediction mode.
- video encoder 702 forms a residual video block by subtracting the prediction block from the current video block.
- the residual video data in the residual block may be included in one or more TUs and applied to transform unit 82.
- the transform unit 82 transforms the residual video data into residual transform coefficients using, for example, a Discrete Cosine Transform (DCT) or a transform of a conceptually similar transform (for example, DST for Discrete Sine Transform (DST)).
- Transform unit 82 may convert the residual video data from the pixel domain to a transform domain (eg, a frequency domain).
- Transform unit 82 may send the resulting transform coefficients to quantization unit 83.
- the quantization unit 83 quantizes the transform coefficients to further reduce the code rate.
- the quantization process can reduce the bit depth associated with some or all of the coefficients.
- the degree of quantization can be modified by adjusting the quantization parameters.
- quantization unit 83 may then perform a scan of the matrix containing the quantized transform coefficients.
- the entropy encoding unit 85 may perform scanning.
- entropy encoding unit 85 may entropy encode the quantized transform coefficients.
- the entropy encoding unit 85 may perform Context-Adaptive Varial-Length Coding (CAVLC), Context-based Adaptive Binary Arithmetic Coding (CABAC), and grammar-based Context Adaptive Binary Arithmetic Decoding (SBAC), Probability Interval Partition Entropy (PIPE) decoding or another entropy encoding method or technique.
- Entropy encoding unit 85 may also entropy encode the motion vectors and other syntax elements of the current video strip being decoded.
- the encoded code stream may be transmitted to video decoder 712 or archive for later transmission or retrieved by video decoder 712.
- the inverse quantization unit 86 and the inverse transform unit 87 apply inverse quantization and inverse transform, respectively, to reconstruct the residual block in the pixel domain for later use as a reference block of the reference image.
- Motion compensation unit 842 may calculate the reference block by adding the residual block to a prediction block of one of the reference pictures within one of the reference picture lists. Motion compensation unit 842 may also apply one or more interpolation filters to the reconstructed residual block to calculate sub-integer pixel values for motion estimation.
- Summer 801 adds the reconstructed residual block to the motion compensated prediction block generated by motion compensation unit 842 to produce a reference block for storage in reference image memory 88.
- the reference block may be used by the motion estimation unit 841 and the motion compensation unit 842 as reference blocks to inter-predict blocks in subsequent video frames or images.
- video encoder 702 may directly quantize the residual signal without the need for processing by transform unit 82, and accordingly need not be processed by inverse transform unit 87; or, for some image blocks Or the image frame, video encoder 702 does not generate residual data, and accordingly does not need to be processed by transform unit 82, quantization unit 83, inverse quantization unit 86, and inverse transform unit 87; alternatively, video encoder 702 can reconstruct the reconstructed The video block is stored directly as a reference block without filtering processing; alternatively, the quantization unit 83 and the inverse quantization unit 86 in the video encoder 702 can be combined.
- FIG. 9 is a schematic structural diagram of a video decoder 712 in the embodiment of the present application.
- video decoder 712 includes an entropy decoding unit 90, a prediction unit 91, an inverse quantization unit 94, an inverse transform unit 93, a summer 95, and a reference image memory 92.
- the prediction unit 91 includes a motion compensation unit 911 and an intra prediction unit 912.
- video decoder 712 can perform an exemplary reciprocal decoding process with respect to the encoding flow described by video encoder 702 from FIG.
- video decoder 712 receives from video encoder 702 an encoded video code stream representing the video blocks of the encoded video slice and associated syntax elements.
- Entropy decoding unit 90 of video decoder 712 entropy decodes the code stream to produce quantized coefficients, motion vectors, and other syntax elements.
- the entropy decoding unit 90 forwards the motion vector and other syntax elements to the prediction unit 91.
- Video decoder 712 can receive syntax elements at the video stripe level and/or video block level.
- the intra-prediction unit 912 of the prediction unit 91 may be based on the signaled intra-prediction mode and data from the previously decoded block of the current frame or image. The predicted data of the video block of the current video stripe is generated.
- the motion compensation unit 911 of the prediction unit 91 When the video image is decoded into an inter-frame decoded (eg, B, P, or GPB) stripe, the motion compensation unit 911 of the prediction unit 91 generates the current video based on the motion vector and other syntax elements received from the entropy decoding unit 90.
- Video decoder 712 may construct a reference image list (List 0 and List 1) using default construction techniques based on reference images stored in reference image memory 92.
- Motion compensation unit 911 determines the prediction information for the video block of the current video slice by parsing the motion vector and other syntax elements, and uses the prediction information to generate a predictive block of the current video block being decoded. For example, motion compensation unit 911 uses some of the received syntax elements to determine a prediction mode (eg, intra prediction or inter prediction) of a video block used to decode a video slice, an inter prediction slice type (eg, B strip, P strip, or GPB strip), construction information for one or more of the reference picture lists of the strip, motion vectors for each inter-coded video block of the strip, and each frame of the strip The inter prediction state of the decoded video block and other information used to decode the video block in the current video slice.
- a prediction mode eg, intra prediction or inter prediction
- an inter prediction slice type eg, B strip, P strip, or GPB strip
- Motion compensation unit 911 can also perform interpolation based on the interpolation filter. Motion compensation unit 911 may use the interpolation filters as used by video encoder 702 during encoding of the video block to calculate interpolated values for sub-integer pixels of the reference block. In this application, motion compensation unit 911 can determine the interpolation filters used by video encoder 702 from the received syntax elements and use an interpolation filter to generate the predictive blocks.
- motion compensation unit 911 may generate a candidate predicted motion vector list for the PU. Data identifying the location of the selected candidate predicted motion vector in the candidate motion vector list of the PU may be included in the code stream. After generating the candidate prediction motion vector list for the PU, motion compensation unit 911 may generate a predictive image block for the PU based on one or more reference blocks indicated by the motion information of the PU. The reference block of the PU may be in a different time image than the PU. Motion compensation unit 911 may determine motion information for the PU based on the selected motion information from the candidate motion vector list of the PU.
- Inverse quantization unit 94 inverse quantizes (eg, dequantizes) the quantized transform coefficients provided in the code stream and decoded by entropy decoding unit 90.
- the inverse quantization process can include determining the degree of quantization using the quantization parameters calculated by video encoder 702 for each of the video slices, and likewise determining the degree of inverse quantization of the application.
- Inverse transform unit 93 applies an inverse transform (eg, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process) to the transform coefficients to produce a residual block in the pixel domain.
- an inverse transform eg, an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process
- the video decoder 712 sums the residual block from the inverse transform unit 93 with the corresponding predictive block generated by the motion compensation unit 911. To form a decoded video block.
- Summer 95 represents one or more components that perform this summation operation.
- a deblocking filter can also be applied to filter the decoded blocks to remove blockiness artifacts as needed.
- Other loop filters can also be used to smooth pixel transitions or otherwise improve video quality.
- the decoded video block in a given frame or image is then stored in a reference image memory 92, which stores a reference image for subsequent motion compensation.
- video decoder 712 may be used for the decoding of the code stream. For example, for certain image blocks or image frames, entropy decoding unit 90 of video decoder 712 does not decode the quantized coefficients, and accordingly does not need to be processed by inverse quantization unit 94 and inverse transform unit 93. For example, inverse quantization unit 94 and inverse transform unit 93 in video decoder 712 can be combined.
- the video encoder 702 and the video decoder 712 may also be implemented by another implementation, for example, by using a general-purpose digital processor system, such as the codec device 10 shown in FIG. Some of the devices in the video encoder 702 may also be part of the video decoder 712.
- the codec device 10 may be applied to the encoding side or may be applied to the decoding side.
- the codec device 10 includes a processor 1001 and a memory 1002.
- the processor 1001 is coupled to the memory 1002 (e.g., interconnected by a bus 1004).
- the codec device 10 may further include a transceiver 1003, and the transceiver 1003 is connected to the processor 1001 and the memory 1002 for receiving/transmitting data.
- the memory 1002 can be a random access memory (RAM), a read-only memory (ROM), an Erasable Programmable Read Only Memory (EPROM), or a portable read only memory. (Compact Disc Read-Only Memory, CD-ROM).
- RAM random access memory
- ROM read-only memory
- EPROM Erasable Programmable Read Only Memory
- CD-ROM Compact Disc Read-Only Memory
- the processor 1001 may be one or more central processing units (CPUs). In the case that the processor 1001 is a CPU, the CPU may be a single core CPU or a multi-core CPU.
- CPUs central processing units
- the processor 1001 is configured to read program code stored in the memory 1002, and perform operations of any one of the embodiments corresponding to FIG. 11A, FIG. 11B, FIG. 15A, or FIG. 15B and various possible embodiments thereof.
- FIG. 11A is a schematic flowchart of a decoding method according to an embodiment of the present application, and the decoding method can be applied to the video codec system shown in FIG. 7.
- the flow shown in FIG. 11A is explained by taking the video decoder 712 shown in FIG. 9 as an execution subject as an example.
- the decoding method provided by the embodiment of the present application includes:
- the video decoder obtains a code stream that includes image data.
- the code stream obtained by the video decoder including the image data includes a Sequence Parameter Set (SPS), a Picture Parameter Set (PPS), and a slice header or a slice header ( Slice segment header) and other syntax elements.
- SPS Sequence Parameter Set
- PPS Picture Parameter Set
- Slice segment header Slice segment header
- the video decoder decodes the obtained code stream, determines a basic division manner of the current image block to be decoded, and a target derivative mode of the sub-image block in the current image block to be decoded.
- the syntax element of the code stream includes a division identifier of the current image block to be decoded and a derivative identifier of the current graphics block to be decoded, and the division identifier of the current image block to be decoded is used to indicate a basic division manner, and the derivative identifier of the current image block to be decoded is used. Indicates the target derivative mode.
- the division identifier of the current image block to be decoded is represented by a variable length code, for example, a binary truncation code or an exponential Golomb code.
- the derived identifier of the current image block to be decoded is represented by a fixed length code.
- the division identifier of the current image block to be decoded and the derivative identifier of the current image block to be decoded may be an independent flag.
- the division identifier of the current image block to be decoded is represented by SplitFlag
- the derivative identifier of the current image block to be decoded adopts DeriveFlag. Said.
- the division identifier of the current image block to be decoded and the derivative identifier of the current image block to be decoded may also be a part of the same identifier, for example, if the derivative identifier of the current image block to be decoded is represented by a fixed length code of length x.
- the code stream includes flag1 corresponding to the current image block to be decoded, and the last x bit of the flag1 is a derivative identifier of the current image block to be decoded, and the remaining bits of the flag1 except the last x bit are the division identifier of the current image block to be decoded. .
- the video decoder parses the code stream
- the method for determining the basic division mode and the target derivation mode may be: the video decoder parses the code stream, and the syntax element included in the code stream is included to indicate how to a division identifier (such as SplitFlag) of the currently to-be-decoded image block into which the decoded image block is divided into N sub-image blocks and a current indication for how to derivate at least two adjacent sub-image blocks of the N sub-image blocks into one derived image block Derived identification of the image block to be decoded (such as DeriveFlag), and determining a basic division manner according to the division identifier of the current image block to be decoded, and determining a target derivative mode according to the derived identifier of the current image block to be decoded.
- a division identifier such as SplitFlag
- a SplitFlag indicates that the image block corresponding to the SplitFlag is divided into horizontal quarters. If the value of a certain DeriveFlag is 01, it indicates that at least two adjacent sub-image blocks in the image block corresponding to the DeriveFlag are derived into a derivative image block by using the first preset derivation mode in the candidate derivation mode.
- the video decoder parses the code stream
- the method for determining the basic division mode and the target derivation mode may further be: the decoding end device parses the code stream, and obtains, by the decoding end, the syntax element included in the code stream, Decoding a first identifier of the image block (such as NSFlag); if the value of the first identifier is a first value (for example, 1), acquiring a second identifier (such as QTSplitFlag) included in the syntax element corresponding to the current image block to be decoded; If the value of the second identifier is a second value (for example, 01), it indicates that the current image block to be decoded is divided into vertical quarters; if the value of the second identifier is a third value (for example, 00), the current to be decoded is The image block is divided into horizontal quarters.
- a first identifier of the image block such as NSFlag
- a second identifier such as QTSplitFlag
- the decoding end device further acquires, from the code stream, a derivative identifier of the current to-be-decoded image block included in the syntax element for indicating how to derivate at least two adjacent sub-image blocks of the N sub-image blocks into one derived image block.
- a derivative identifier of the current to-be-decoded image block included in the syntax element for indicating how to derivate at least two adjacent sub-image blocks of the N sub-image blocks into one derived image block.
- DeriveFlag For example, DeriveFlag
- the basic division manner in the embodiment of the present application is a horizontal N score, a vertical N score, or a horizontal vertical N score.
- the horizontal N point refers to horizontally dividing the current image block to be decoded into N sub-image blocks.
- the height of each of the N sub-image blocks may be 1/N of the height of the current image block to be decoded, that is, the current image block to be decoded is horizontally divided, and is equally divided into N sub-image blocks. As shown in (c) of FIG. 1, the height of each sub-image block is 1/2 of the height of the image block b.
- the heights of any two sub-image blocks of the N sub-image blocks may also be unequal, that is, the current image block to be decoded is horizontally divided, and is unevenly divided into N sub-image blocks. As shown in (e) of FIG.
- the height of the sub-image block j is 1/4 of the height of the image block c
- the height of the sub-image block k is 1/2 of the height of the image block c
- the sub-image block m The height is 1/4 of the height of the image block c.
- the vertical N point refers to vertically dividing the current image block to be decoded into N sub-image blocks.
- the width of each of the N sub-image blocks may be 1/N of the width of the current image block to be decoded, that is, the current image block to be decoded is vertically divided, and is equally divided into N sub-image blocks. As shown in (d) of FIG. 1, the width of each sub-image block is 1/2 of the width of the image block d.
- the widths of any two sub-image blocks of the N sub-image blocks may not be equal, that is, the current image block to be decoded is vertically divided, and is unevenly divided into N sub-image blocks. As shown in (g) of FIG.
- the width of the sub-image block p is 1/4 of the width of the image block c
- the width of the sub-image block q is 1/2 of the width of the image block c
- the sub-image block x is The width is 1/4 of the width of the image block c.
- horizontal and vertical N points mean that the current image block to be decoded is horizontally and vertically divided into N sub-image blocks.
- the width of each of the N sub-image blocks may be the width of the current image block to be decoded.
- the height of each sub-image block can be the height of the current image block to be decoded. That is, the current image block to be decoded is horizontally and vertically divided, and is equally divided into N sub-image blocks.
- the width of each sub-image block is the width of CTU A. (ie 1/2)
- the height of each sub-image block is the height of CTU A (ie 1/2).
- the widths of any two sub-image blocks in the N sub-image blocks may not be equal, or the heights of any two sub-image blocks are not equal, that is, the current image block to be decoded is vertically divided, and is unevenly divided into N sub-image blocks.
- a typical representation of the horizontal and vertical N points in the embodiment of the present application is a quadtree partition.
- the embodiment of the present application refers to the above-mentioned “leveling the currently to-be-decoded image block horizontally and dividing into N sub-image blocks”, and the vertical N-score refers to “discriminating the current image block to be decoded vertically, and The average is divided into N sub-image blocks, and the horizontal and vertical N points are described as an example of “dividing the current image block to be decoded horizontally and dividing into N sub-image blocks equally”.
- the image block may be divided by a horizontal N-segment or a vertical N-segmentation when a certain image block satisfies a preset condition.
- the width of an image block is M1 and the height is H1.
- M1 ⁇ H1 is greater than X1 ⁇ Y1
- the video encoder divides the image block by horizontal N or vertical N division; or, if M1 ⁇ H1 is smaller than X2 ⁇ Y2, the video encoder divides the image block by horizontal N or vertical N division; or, if M1 ⁇ H1 is greater than X1 ⁇ Y1 and smaller than X2 ⁇ Y2, the video encoder adopts horizontal N or vertical
- the image block is divided by the N division method.
- X1, Y1, X2 and Y2 are all positive integers.
- the basic division method is horizontal N or vertical N.
- the target derivative mode in the embodiment of the present application is one of the candidate derivative mode sets, where the candidate derivative mode set includes M (M is an integer) preset derivative mode, and the basic division mode is horizontal N or vertical N when, 0 ⁇ M ⁇ 2 N-1; when the base is divided into horizontal and vertical N time division manner,
- M is an integer
- the basic division mode is horizontal N or vertical N when, 0 ⁇ M ⁇ 2 N-1; when the base is divided into horizontal and vertical N time division manner
- M is an integer preset derivative mode
- the basic division mode is horizontal N or vertical N when, 0 ⁇ M ⁇ 2 N-1; when the base is divided into horizontal and vertical N time division manner
- Each of the preset derivative modes uniquely indicates a derivative mode
- the derivative method refers to deriving at least two adjacent sub-image blocks of the N sub-image blocks into one derivative image block. It should be noted that there is a preset derivative mode for indicating that no derivation is performed in the preset derivation mode in M.
- Derivation in the embodiments of the present application can be understood as fusion/merge. Specifically, after the image block to be decoded is divided into N sub-image blocks, at least two adjacent sub-image blocks are combined into one derived image block.
- A, B, C, D, E, F, G, and H in Fig. 12 show these eight preset derivation modes. Taking the preset derivation mode shown by A in FIG. 12 as an example, the first dividing line is removed, and the sub-image block 1 and the sub-image block 2 are derived (or referred to as fusion/merging) into one derived image block.
- A', B', C', D', E', F', G', H' in Fig. 13 show these eight preset derivation patterns.
- the first dividing line is removed, and the sub-image block 1 and the sub-image block 2 are derived as one derived image block, and the third dividing line is removed, and the sub-image block 3 is removed.
- sub-image block 4 is derived as another derived image block.
- the image block to be decoded is divided into a sub-image block 1 (which may correspond to the ninth sub-image block described herein) and a sub-image block 2 (corresponding to each other).
- the tenth sub-image block described herein), sub-image block 3 (which may correspond to the eleventh sub-image block described herein), and sub-image block 4 (which may correspond to the twelfth sub-image block described herein), N 4, Dividing the dividing line of the image block to be decoded into four a first dividing line, a second dividing line, a third dividing line, and a fourth dividing line.
- A", B", C", D", E", F", G", H" in Fig. 14 show 8 of the preset derivation patterns. Taking the preset derivation mode shown by G" in FIG. 14 as an example, the third dividing line and the fourth dividing line are removed, and the sub-image block 1, the sub-image block 3, and the sub-image block 4 are derived as one derived image block.
- the candidate derivative mode set corresponding to different partitioning modes includes a preset diffraction mode having the same derivative result.
- the derived image block shown by F in FIG. 12 is the same as the derivative image block shown by E′′ in FIG. 14 above, and F′ in FIG. 13 is shown.
- the derived image block is the same as the derived image block shown by F" in Fig. 14 described above, and the derived image block shown by H in Fig. 12 is the same as the derivative image block shown by H" in Fig. 14 described above. Therefore,
- the preset derivative mode with the same derivative result may be deleted by one, and only reserved in the candidate derivative mode set corresponding to a certain dividing mode.
- the candidate derivative mode set may include only B in FIG. 12 (corresponding to the third preset derivative described herein). Mode), C (corresponding to the second preset derivative mode described herein), D (corresponding to the first preset derivative mode described herein), and F (corresponding to the fourth preset derivative mode described herein) Preset derivative mode.
- the candidate derivative mode set may include only B′ in FIG. 13 (corresponding to the seventh pre-described herein) Derivative mode), D' (corresponding to the fifth preset derivative mode described herein), E' (corresponding to the sixth preset derivative mode described herein), and G' (corresponding to the eighth preset derivative described herein) Mode) shows the preset derivative mode.
- the candidate derivative pattern set may include only A′′ in FIG. 14 (corresponding to the ninth described herein) Preset derivative mode), B" (corresponding to the twelfth preset derivative mode described herein), E" (corresponding to the tenth preset derivative mode described herein), and F" (corresponding to the eleventh described herein) The preset derivative mode shown by the preset derivative mode).
- Each of the preset derivative modes in the candidate derivative mode set uses a fixed length code identifier, for example, 2 bits, so that the decoding method provided by the present application can identify the image block by using a simple identifier compared to the prior art.
- the division effectively improves the decoding efficiency.
- the feature parameter of the derived image block is greater than the feature parameter of each of the N sub-image blocks, the feature parameter being at least one of height and width.
- the video decoder divides the current image block to be decoded into N sub-image blocks according to a basic division manner.
- the video decoder divides the current image block to be decoded into four sub-image blocks by using the division method shown in FIG. 12 described above. If the basic division mode is a vertical quarter, the video decoder divides the current image block to be decoded into 4 sub-image blocks by using the division method as shown in FIG. 13 described above. If the basic division mode is horizontal and vertical quarters, the video decoder divides the current image block to be decoded into four sub-image blocks by using the division method as shown in FIG. 14 described above.
- the video decoder derives at least two adjacent sub-image blocks of the N sub-image blocks into the first derivative image block according to a derivative manner of the target derived mode indication.
- the video decoder decodes the first derivative image block.
- the video decoder performs decoding and reconstruction on the first derivative image block to obtain a reconstructed image block.
- the video decoder regards the first derivative image block as the current image block to be decoded, and re-executes the above S111-S114 until the re-obtained first derivative image block is no longer used. Until the division.
- the video decoder in the present application determines a specific division manner of the current image block to be decoded according to the basic division manner and the target derivative mode.
- the combination of the division mode and the derivative mode identifies a plurality of different division results.
- the image block is enriched and can be adapted to video images of various texture characteristics.
- the video decoder in the present application may also determine the target derivative mode only if the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold.
- the above S111 may be replaced with S111a to S111c.
- the video decoder decodes the obtained code stream, determines a basic division manner of the current image block to be decoded, and a feature parameter of the current image block to be decoded.
- the feature parameter of the current image block to be decoded refers to the height of the current image block to be decoded and the width of the current image block to be decoded.
- the video decoder parses the code stream, and directly determines the feature parameters of the current image block to be decoded.
- the video decoder determines whether a feature parameter of the current image block to be decoded is less than or equal to a first preset threshold.
- the video decoder performs S111c.
- the video decoder regards the sub-image block of the current image block to be decoded as the current image block to be decoded, and re-executes S111a.
- the video decoder parses the code stream, and determines a target derivative mode.
- the video decoder may perform S112 first, then S111b, or S111b may be performed first, then S112 may be performed, and S112 and S111b may be simultaneously performed. Specifically limited.
- the video decoder determines the target derivative mode only if the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold, and therefore, the feature parameter is greater than the first preset.
- the code stream may only include the division identifier of the image block, but does not include the derivative identifier of the image block, which effectively reduces the transmission resource occupied by the code stream.
- the code stream may also include a derivative identifier of the image block, and the derived identifier of the image block is used to indicate that the sub-image block in the image block is not derivatized.
- the video decoder determines the target derivative mode only when the feature parameter of the current image block to be decoded is less than or equal to the first preset threshold, and effectively improves the decoding rate.
- the embodiment of the present application further provides an encoding method, which can be applied to the video codec system shown in FIG. 7.
- FIG. 15A is a schematic flowchart of a coding method in an embodiment of the present application. The flow shown in FIG. 15A is exemplified by the video encoder 702 shown in FIG. 8 as an execution subject.
- the coding method provided by the embodiment of the present application includes:
- the video encoder determines an image block to be currently encoded.
- the image block to be encoded may be a CTU or a CU, which is not specifically limited in this embodiment of the present application.
- the current image block to be encoded may be an image block 170, a sub-image block in the image block 173, an image block 174, or a sub-block in the image block 171.
- the image block is not specifically limited in this embodiment of the present application.
- the video encoder determines a basic division manner of the current image block to be encoded and a target derivative mode of the sub image block in the current image block to be encoded.
- the video encoder determines at least two candidate partitioning modes (horizontal N, vertical N, horizontal and vertical N, and no partition) corresponding to the current image to be encoded, and calculates at least two types.
- the rate-distortion cost of each of the candidate partitioning modes so that the video encoder determines the candidate partitioning mode corresponding to the smallest rate-distortion cost as the basic partitioning mode.
- the video encoder calculates a rate distortion cost of each of the preset derivative modes in the candidate derivative mode set corresponding to the basic partition mode, and determines a preset derivative mode corresponding to the minimum rate distortion cost as the target derivative mode.
- the basic division mode of the current image block to be encoded and the target derivative mode of the sub image block in the current image block to be encoded may be referred to the description in the embodiment described above with reference to FIG. 11A. The difference is that the above-mentioned FIG. 11A is described for the current image block to be decoded, and the embodiment is described for the current image block to be encoded.
- the video encoder determines at least two candidate partitioning modes (horizontal N, vertical N, horizontal, and non-divided) corresponding to the current image block to be encoded, and subsequently, for each A candidate division mode, where the video encoder derivates at least two adjacent sub-image blocks by using each of the preset derivation modes, so that the video encoder can be calculated in each candidate division mode.
- the rate distortion cost of each of the preset derivation modes is determined, and the division mode corresponding to the minimum rate distortion cost is determined as the basic division mode, and the derivative mode corresponding to the minimum rate distortion cost is determined as the target derivation mode.
- the video encoder divides the current image block to be encoded into N sub-image blocks according to a basic division manner.
- the video encoder derives at least two adjacent sub-image blocks of the N sub-image blocks into the first derivative image block according to a derivative manner of the target derived mode indication.
- the video encoder If the video encoder does not divide the first derived image block, the video encoder encodes the first derived image block to obtain a code stream.
- the syntax element of the code stream includes a division identifier of the current image block to be encoded and a derivative identifier of the current image block to be encoded, and the division identifier of the current image block to be encoded is used to indicate a basic division manner of the image block to be currently encoded.
- the derived identifier of the current image block to be encoded is used to indicate a target derivative mode of the sub-image block in the current image block to be encoded.
- the division identifier of the current image block to be encoded is represented by a variable length code, for example, a binary truncation code or an exponential Golomb code.
- the derived identifier of the current image block to be encoded is represented by a fixed length code.
- the split identifier of the current image block to be encoded and the derived identifier of the current image block to be encoded may be independent flags.
- the split identifier of the current image block to be encoded is represented by SplitFlag
- the derivative identifier of the current image block to be coded is DeriveFlag. Said.
- the division identifier of the current image block to be encoded and the derivative identifier of the current image block to be encoded may also be a part of the same identifier, for example, if the derivative identifier of the current image block to be encoded is represented by a fixed length code of length x
- the code stream includes flag1 corresponding to the current image block to be encoded, and the last x bit of the flag1 is a derivative identifier of the current image block to be encoded, and the remaining bits of the flag1 except the last x bit are the division identifier of the current image block to be encoded.
- the video encoder determines the derived image block as the current image block to be encoded, and re-executes S151-S154 until it is re-determined.
- the first derivative image block is divided.
- the method for determining the basic division mode and the target derivative mode by the video encoder in the embodiment of the present application can be implemented by S161 to S166, that is, the above S151 can be replaced with S161 to S166.
- S161 ⁇ S166 are specifically:
- the video encoder divides the current image block to be encoded by using at least two candidate division manners.
- Candidate division methods include horizontal N points, vertical N points, horizontal vertical N points, and no division.
- the video encoder may adopt level four.
- the image block 170 is divided into four, and four rectangular sub-image blocks having a width equal to the width of the image block 170 and a height of 1/4 of the height of the image block 170 are generated, and FIG. 17A uses 171 to represent the image block of the structure.
- the video encoder may also divide the image block 170 by vertical quadrants to generate four rectangular sub-image blocks having a height equal to the height of the image block 170 and a width of 1/4 of the width of the image block 170, and FIG. 17A indicates the structure by 172.
- the video encoder may also divide the image block 170 by horizontal and vertical divisions to generate four square sub-image blocks having a height of 1/2 of the height of the image block 170 and a width of 1/2 of the width of the image block 170, which is adopted in FIG. 17A.
- 173 denotes an image block of the structure.
- the video encoder may also not divide the current coded image block 170, and the undivided image block is represented by 174 in FIG. 17A.
- the horizontal four-point is identified by 100
- the vertical four-point is identified by 101
- the horizontal and vertical four-points are identified by 110, and the zero mark is not divided.
- the horizontal four-points may be identified by using 110, the vertical four-points are identified by 101, and the horizontal and vertical four-points are identified by using 101, and the zero-marking is not used.
- the embodiment of the present application does not specifically limit this. .
- the video encoder may adopt horizontal dichotomy.
- the sub-image block in the image block 171 generates two rectangular sub-image blocks having a width equal to the width of the sub-image block in the image block 171 and a height equal to 1/2 of the height of the sub-graphic block in the image block 171, and FIG. 19 is adopted.
- 175 denotes an image block of the structure.
- the video encoder may also divide the sub-image blocks in the image block 171 by vertical bipartite division, and generate two heights equal to the height of the sub-image block in the image block 171, and the width is 1/2 of the width of the sub-image block in the image block 171.
- a rectangular sub-image block, Figure 19 uses 176 to represent an image block of the structure.
- the video encoder may also not divide the sub-image blocks in image block 171, and the un-divided image blocks are represented by 177 in FIG.
- the video encoder may adopt a horizontal level. Dividing the sub-image blocks in the image block 171 to generate four rectangular sub-image blocks having a width equal to the width of the sub-image block in the image block 171 and a height equal to 1/4 of the height of the sub-graphic block in the image block 171, Figure 20 shows an image block of the structure using 175'.
- the video encoder may also divide the sub-image blocks in the image block 171 by vertical quadrants to generate four heights equal to the height of the sub-image blocks in the image block 171, and the width is 1/4 of the width of the sub-image block in the image block 171.
- the rectangular sub-image block, Figure 20 uses 176' to represent the image block of the structure.
- the video encoder may also not divide the sub-image blocks in the image block 171, and the undivided image block 20 is represented by 177'.
- the candidate division mode indirectly reflects the division level, so that the video encoder may divide the current image block to be coded by using a corresponding division manner on the preset division level according to the candidate division manner.
- the video encoder divides the image block 170 in a horizontal and vertical division manner at the first level, generates an image block 173, or does not divide the image block 170.
- the video encoder may or may not divide the image block 170 at the second level.
- the video encoder may divide the image block 170 by horizontal quadrant division to generate the image block 171, or divide the image block 170 by vertical quadrant division.
- a graphics block 172 is generated.
- Fig. 17B the division manner shown by the 011 identification image block 171 is adopted, and the division manner shown by the 010 identification image block 172 is adopted, and the division manner shown by the 1 identification image block 173 is employed.
- the numerical value of the division mark in Fig. 17B is just an example.
- the division manner shown by the 1 identification image block 171 may be employed, and the division manner shown by the 010 identification image block 172 is employed, and the division manner shown by the image block 173 is indicated by the 011 flag.
- the video encoder may divide the current image block to be encoded by using a bifurcation/four-fork division method when the current image block to be encoded satisfies a preset condition.
- the image block 171 has a width of M1 and a height of H1.
- the video encoder divides the image block 171 by a bifurcation/quadruple division; or, if M1 ⁇ H1 is smaller than X2 ⁇ Y2, the video encoder divides the image block 171 by a bifurcation/quadruple division method; or, if M1 ⁇ H1 is larger than X1 ⁇ Y1 and smaller than X2 ⁇ Y2, the video encoder adopts bifurcation/quad
- the image block 171 is divided by the cross division method.
- X1, Y1, X2 and Y2 are all positive integers.
- the video encoder calculates a rate-distortion cost for each candidate partitioning manner, and determines a candidate partitioning manner corresponding to the minimum rate-distortion cost as the basic partitioning manner.
- the video encoder derivates the sub-image block obtained by dividing the basic division manner according to each preset derivation mode in the candidate derivative mode set.
- the video encoder can adopt the eight preset derivative modes (A, B, C, D, shown in FIG. 12 above). E, F, G, and H) respectively deriving at least two adjacent sub-image blocks in 171, and correspondingly, the image blocks processed by using the above eight preset derivation patterns are respectively represented as 401, 402, 403, and 404. , 405, 406, 407, 408.
- the video encoder can adopt the eight preset derivative modes (A', B', C' shown in FIG. 13 above. , D′, E′, F′, G′, H′) respectively deriving at least two adjacent sub-image blocks in 172, and correspondingly, the image blocks processed by using the above eight preset derivation modes respectively represent It is 501, 502, 503, 504, 505, 506, 507, 508.
- the video encoder can adopt the eight preset derivative modes (A′′, B′′, C shown in FIG. 14 above. ", D”, E”, F", G”, H") respectively deriving at least two adjacent sub-image blocks in 173, and correspondingly, the image blocks processed by using the above eight preset derivation patterns respectively Expressed as 601, 602, 603, 604, 605, 606, 607, 608.
- the method of identifying the image block processed by the preset derivative mode may be determined according to the state of the dividing line.
- the dividing line is represented by “0”; if a dividing line is reserved, the dividing line is represented by “1”; according to the removal and retention of the dividing line in the image block, Identifies the image block.
- the image block 171 includes a first dividing line, a second dividing line, and a third dividing line (the representation of the dividing line may refer to FIG. 12 above), if the first dividing line is removed, the second dividing line and the third dividing line Reserved, that is, the first sub-image block and the second sub-image block are combined to generate an image block 401, and the image block 401 can be represented by 011.
- the image block 172 includes a first dividing line, a second dividing line, and a third dividing line (the representation of the dividing line can refer to FIG. 13 above), and if the second dividing line is removed, the first dividing line and the third dividing line are retained.
- the image block 173 includes a first dividing line, a second dividing line, a third dividing line, and a fourth dividing line (the representation of the dividing line can be referred to FIG. 14 above), if the first dividing line is removed, the second dividing line, and the third dividing line
- the line and the fourth dividing line are reserved, that is, the first sub-image block and the second sub-image block are combined to generate an image block 601, and the image block 601 may be represented by 0111.
- the identification methods of other image blocks are similar, and will not be repeated here.
- identification of the image block may also adopt a different method from that of FIG. 18, which is not specifically limited in this embodiment of the present application.
- the video encoder may select a part of the eight preset derivative modes corresponding to the division mode shown in FIG. 18 as the focus mode (the image block generated by the derivative mode) Further division is required) or the deletion mode (regardless of the derivative mode), and the remainder is used as the normal mode (the mode in which the video encoder performs derivation processing).
- the set of candidate derived patterns may include only normal patterns.
- the normal mode may include the preset derivative modes shown by B, C, D, and F in FIG. 12 above, that is, the video encoder generates image blocks 402, 403, and 404. 406.
- the normal mode may include the preset derivative modes shown by B', D', E', and G' in FIG. 13 above, that is, the video encoder generates image blocks 502, 504, and 505. 507.
- the normal mode may include the preset derivative modes shown by A′′, B′′, E′′, and F′′ in FIG. 14 above, that is, the video encoder generates image blocks 601 and 602, 605, 606.
- the embodiment of the present application may adopt a bit identifier of a preset length, such as a 2-bit identifier.
- the image block 608 and the image block 173 have the same shape. Therefore, if the preset derivative mode corresponding to the image block 608 is the focus mode, the mode can be identified by the flag bit "1" of the image block 173. Compared to the identification bit "1111" of the image block 608, the number of bits of the identification bit "1" is less. If the video encoder determines that the derived mode shown by image block 608 is a target derived mode, the video encoder may directly use 1 to indicate the derived mode of the target derived mode for image block 608 after the last bit of the divided identification.
- the derived image blocks in the embodiments of the present application may employ a smaller number of bit identifiers.
- the coding method provided by the present application can identify the division of image blocks by using simple identification, and effectively improve coding efficiency.
- the video encoder calculates a rate distortion cost of each of the preset derivative modes in the candidate derivative mode set corresponding to the basic partition mode.
- the video encoder determines the preset derivative mode corresponding to the minimum rate distortion cost as the target derivative mode.
- the video encoder regards the first derivative image block as the current image block to be encoded, and re-executes S161-S165 to determine the basic division manner and Target derivative model.
- the video codec in the present application may also determine the target derivative mode only if the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold.
- the above S151 may be replaced with S151a to S151c.
- the video encoder determines a basic division manner of the current image block to be encoded and a feature parameter of the current image block to be encoded.
- the feature parameter of the current image block to be encoded refers to the height of the current image block to be encoded and the width of the current image block to be encoded.
- the video encoder determines whether a feature parameter of the current image block to be encoded is less than or equal to a first preset threshold.
- the video encoder performs S151c.
- the video encoder regards the sub-image block of the current image block to be encoded as the current image block to be encoded, that is, re-executes S150. For example, in FIG. 21, if the current image block to be encoded is the image block 210, the size of the image block 210 is 64 ⁇ 64, and the first preset threshold is 32 ⁇ 32, the video encoder determines that the basic division mode of the image block 210 is After horizontally dividing the image block 210, the image block 212 is generated.
- the video encoder uses the sub-image block in the image block 212 as the current image block to be encoded. And re-determining the basic division manner of the sub-image block of the image block 212.
- the video encoder determines the target derivative mode.
- the video encoder may perform S152 first, then S151b, or S151b may be performed first, then S152 may be performed, and S152 and S151b may be simultaneously performed. Specifically limited.
- the video encoder only determines the target derivative mode if the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold, and therefore, for the image whose feature parameter is greater than the first preset threshold.
- the code stream may include only the partition identifier of the image block, and the derivative identifier of the image block is not included, which effectively reduces the transmission resource occupied by the code stream.
- the code stream may also include a derivative identifier of the image block, and the derived identifier of the image block is used to indicate that the sub-image block in the image block is not derivatized.
- the video encoder determines the target derivative mode only when the feature parameter of the current image block to be encoded is less than or equal to the first preset threshold, and effectively increases the encoding rate. In practical applications, the flow shown in Figure 15B is easier to implement.
- FIG. Figure 21 illustrates the partitioning of square image blocks and the derivation of sub-image blocks in a square image block using the methods provided herein, as well as the partitioning of non-square image blocks and the derivation of sub-image blocks in non-square image blocks.
- the video encoder divides the image block 210, and the image block 210 may be divided by the horizontal vertical quadrant division method at the first level, and the image block 211 may be generated or may not be divided. Under the branch without division, the video encoder may divide the image block 210 by a bifurcation division method at the second level; or may divide the four-fork/non-division division manner. In the branch of the second layer that divides the image block 210 by the bifurcation division mode, the video encoder may specifically divide the image block 210 by the horizontal binary division method to generate the image block 212; or divide the image block by the vertical binary division method. 210. Generate an image block 213.
- the video encoder may divide the sub-image block of the image block 212 by using a bifurcation division manner, and may also divide the sub-image block of the image block 212 by a four-fork division method.
- the video encoder may divide the sub-image block of the image block 212 into a horizontal quadrant division manner to generate an image block 219, or a video encoder may divide the sub-image block of the image block 212 by a four-division division method.
- the sub-image blocks of the image block 212 are divided by a vertical division method to generate an image block 220.
- the video encoder may divide the image block 210 by horizontal quadrant division to generate the image block 214, or may adopt the vertical quadrant division mode.
- the image block 210 is divided to generate an image block 215.
- the image block 219 and the image block 220 are non-square image blocks, and the image blocks obtained by deriving the at least two adjacent sub-image blocks in the image block 219 are respectively represented as 221 by using four preset derivation modes. 222, 223, 233; image blocks obtained by deriving at least two adjacent sub-image blocks in the image block 220 by using four preset derivation modes are respectively represented as 224, 225, 226, 234.
- the image block 214 and the image block 215 are square image blocks, and the image blocks obtained by deriving the at least two adjacent sub-image blocks in the image block 214 by using four preset derivation modes are respectively represented as 227, 228, 228, 235. Image blocks obtained by deriving at least two adjacent sub-image blocks in the image block 215 by using four preset derivation modes are respectively represented as 230, 231, 232, and 236.
- the image block 212 is identified by "011". If the basic division mode of the sub-image block of the image block 212 is horizontal four-division and the image block 219 is generated, the basic division mode may be identified by "011111", if the sub-image of the image block 212 The feature parameter of the block is less than or equal to the first preset threshold, and the video encoder may determine one of the four preset derivative modes corresponding to the image block 219 shown in FIG. 21 as the target derivative mode. Since the shape of the image block 233 is the same as that of the image block 219, the derivative mode represented by the image block 233 can be directly identified by 1 , and the remaining 3 preset derivative modes can be identified by a value different from 1 (such as 0), the image block.
- the logos of 221, 222, and 223 start with 0.
- the video encoder can directly add 1 after the identifier "011111" of the basic division mode, that is, form the identifier "0111111”.
- the video decoder parses the code stream, and after obtaining the identifier "0111111", it can be determined that the derivation is not performed after the image block 219.
- the video encoder adopts the derivative mode shown by the image block 223 as the target derivative mode
- the video encoder adds 011 after the identifier "011111” of the basic division mode, that is, the identifier "011111011” is formed.
- the video decoder parses the code stream, and after obtaining the identifier “011111011”, it may determine that the target derivative mode is the derivative mode shown by the image block 223.
- the video encoder also processes the image blocks 214, 215, 220 in a similar manner.
- the division mode shown in FIG. 21 is implemented on the basis of the existing QTBT division mode. Therefore, in practical applications, the division mode is relatively easy to implement.
- the video encoder in the present application identifies a plurality of different division results by combining the division mode and the derivative mode, enriches the division manner of the image block, and can adapt to video images of various texture characteristics.
- the embodiment of the present application provides a decoding apparatus, which may be a video decoder.
- the decoding device is configured to perform the steps performed by the video decoder in the above decoding method.
- the decoding apparatus provided in this embodiment of the present application may include a module corresponding to the corresponding step.
- the embodiment of the present application may divide the function module into the decoding device according to the foregoing method example.
- each function module may be divided according to each function, or two or more functions may be integrated into one processing module.
- the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
- the division of modules in the embodiments of the present application is schematic, and is only a logical function division, and may be further divided in actual implementation.
- FIG. 22 shows a possible structural diagram of the decoding device involved in the above embodiment.
- the decoding device 22 includes a parsing unit 220, a dividing unit 221, a deriving unit 222, a decoding unit 223, and a judging unit 224.
- the parsing unit 220 is configured to support the decoding apparatus to perform S111 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the dividing unit 221 is for supporting the decoding apparatus to execute S112 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the derivation unit 222 is for supporting the decoding apparatus to perform S113 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the decoding unit 223 is for supporting the decoding apparatus to perform S114 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the judging unit 224 is configured to instruct the decoding apparatus to execute S111b and the like in the above embodiment, and/or other processes for the techniques described herein.
- the decoding device provided by the embodiment of the present application includes, but is not limited to, the foregoing module.
- the decoding device may further include a storage unit 225.
- the storage unit 225 can be used to store program codes and data of the decoding device.
- the decoding device 23 includes a processing module 230 and a communication module 231.
- the processing module 230 is configured to perform control management on the actions of the decoding device, for example, perform the steps performed by the parsing unit 220, the dividing unit 221, the deriving unit 222, the decoding unit 223, and the determining unit 224, and/or for performing the description herein. Other processes of technology.
- the communication module 231 is used to support interaction between the decoding device and other devices.
- the decoding apparatus may further include a storage module 232 for storing program codes and data of the decoding apparatus, for example, storing the content held by the storage unit 225.
- the processing module 230 can be a processor or a controller, such as a central processing unit (CPU), a general purpose processor, a digital signal processor (DSP), an ASIC, an FPGA, or other programmable Logic device, transistor logic device, hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
- the communication module 231 can be a transceiver, an RF circuit or a communication interface, or the like.
- the storage module 232 can be a memory.
- Both the decoding device 22 and the decoding device 23 can perform the above-described decoding method shown in FIG. 11A or FIG. 11B.
- the decoding device 22 and the decoding device 23 can be specifically a video decoding device or other device having a video encoding and decoding function.
- the application also provides a decoding device, the decoding device comprising: one or more processors, a memory, a communication interface.
- the memory, communication interface is coupled to one or more processors; the memory is for storing computer program code, and the computer program code includes instructions that, when executed by one or more processors, perform a decoding method of an embodiment of the present application.
- the decoding devices herein may be video display devices, smart phones, portable computers, and other devices that can process video or play video.
- the present application also provides a video decoder including a nonvolatile storage medium, and a central processing unit, the nonvolatile storage medium storing an executable program, the central processing unit and the nonvolatile storage The medium is connected, and the executable program is executed to implement the decoding method of the embodiment of the present application.
- the present application also provides a decoder, which includes the decoding device (the decoding device 22 and the decoding device 23) and the reconstruction module in the embodiment of the present application, wherein the reconstruction module is used according to the decoding device.
- the prediction map pixel determines the reconstructed pixel value of the current image block.
- Another embodiment of the present application also provides a computer readable storage medium comprising one or more program codes, the one or more programs comprising instructions when a processor in a decoding device is executing the program At the time of the code, the decoding device performs the decoding method as shown in FIG. 11A or FIG. 11B.
- a computer program product comprising computer executed instructions stored in a computer readable storage medium; at least one processor of the decoding device is readable from a computer
- the readable storage medium reads the computer execution instructions, and the at least one processor executes the computer to execute the instructions such that the terminal implements the step of executing the video decoder in the decoding method illustrated in FIG. 11A or FIG. 11B.
- An embodiment of the present application provides an encoding apparatus, which may be a video encoder.
- the encoding device is configured to perform the steps performed by the video encoder in the above encoding method.
- the encoding device provided by the embodiment of the present application may include a module corresponding to the corresponding step.
- the embodiment of the present application may divide the functional modules of the encoding device according to the foregoing method example.
- each functional module may be divided according to each function, or two or more functions may be integrated into one processing module.
- the above integrated modules can be implemented in the form of hardware or in the form of software functional modules.
- the division of modules in the embodiments of the present application is schematic, and is only a logical function division, and may be further divided in actual implementation.
- FIG. 24 shows a possible structural diagram of the encoding apparatus involved in the above embodiment.
- the encoding device 24 includes a determining unit 240, a dividing unit 241, a deriving unit 242, an encoding unit 243, and a judging unit 244.
- the determining unit 240 is configured to support the encoding apparatus to perform S150, S151, S161, S162, S163, S164, S165, etc. in the above embodiments, and/or other processes for the techniques described herein.
- the dividing unit 241 is for supporting the encoding apparatus to execute S152 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the derivation unit 242 is for supporting the encoding apparatus to perform S153 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the encoding unit 243 is for supporting the encoding apparatus to execute S154 and the like in the above embodiments, and/or other processes for the techniques described herein.
- the judging unit 244 is for supporting the encoding apparatus to execute S151b and the like in the above embodiment, and/or other processes for the techniques described herein.
- the encoding device provided by the embodiment of the present application includes, but is not limited to, the foregoing module.
- the encoding device may further include a storage unit 245.
- the storage unit 245 can be used to store program codes and data of the encoding device.
- FIG. 25 A schematic structural diagram of an encoding apparatus provided by an embodiment of the present application is shown in FIG. 25 in the case of an integrated unit.
- the encoding device 25 includes a processing module 250 and a communication module 251.
- the processing module 250 is configured to perform control management on the actions of the encoding device, for example, perform the steps performed by the determining unit 240, the dividing unit 241, the deriving unit 242, the encoding unit 243, and the determining unit 244, and/or for performing the description herein. Other processes of technology.
- the communication module 251 is used to support interaction between the encoding device and other devices.
- the encoding device may further include a storage module 252 for storing program code and data of the encoding device, for example, storing the content held by the storage unit 245.
- the processing module 250 can be a processor or a controller, such as a CPU, a general purpose processor, a DSP, an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component, or any combination thereof. It is possible to implement or carry out the various illustrative logical blocks, modules and circuits described in connection with the present disclosure.
- the processor may also be a combination of computing functions, for example, including one or more microprocessor combinations, a combination of a DSP and a microprocessor, and the like.
- the communication module 251 can be a transceiver, an RF circuit, a communication interface, or the like.
- the storage module 252 can be a memory.
- Both the encoding device 24 and the encoding device 25 described above can perform the above-described encoding method shown in FIG. 15A or FIG. 15B.
- the encoding device 24 and the encoding device 25 can be specifically a video encoding device or other device having a video encoding function.
- the application also provides an encoding device comprising: one or more processors, a memory, a communication interface.
- the memory, communication interface is coupled to one or more processors; the memory is for storing computer program code, and the computer program code includes instructions that, when executed by one or more processors, perform an encoding method of an embodiment of the present application.
- the encoding device here can be a video display device, a smart phone, a portable computer, and other devices that can process video or play video.
- the present application also provides a video encoder, including a non-volatile storage medium, and a central processing unit, the non-volatile storage medium storing an executable program, the central processing unit and the non-volatile storage The medium is connected, and the executable program is executed to implement the encoding method of the embodiment of the present application.
- the present application also provides an encoder including the encoding device (encoding device 24 and encoding device 25) in the embodiment of the present application.
- Another embodiment of the present application also provides a computer readable storage medium including one or more program codes, the one or more programs including instructions, when a processor in an encoding device is executing the program At the time of the code, the encoding device executes the encoding method as shown in Fig. 15A or Fig. 15B.
- a computer program product comprising computer executed instructions stored in a computer readable storage medium; at least one processor of the encoding device can be from a computer
- the readable storage medium reads the computer execution instructions, and the at least one processor executes the computer to execute the instructions such that the terminal implements the step of executing the video encoder in the encoding method illustrated in FIG. 15A or FIG. 15B.
- the above embodiments it may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
- a software program it may occur in whole or in part in the form of a computer program product.
- the computer program product includes one or more computer instructions.
- the computer can be a general purpose computer, a special purpose computer, a computer network, or other programmable device.
- the computer instructions can be stored in a computer readable storage medium or transferred from one computer readable storage medium to another computer readable storage medium, for example, the computer instructions can be from a website site, computer, server or data center Transfer to another website site, computer, server, or data center by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL), or wireless (eg, infrared, wireless, microwave, etc.).
- the computer readable storage medium can be any available media that can be accessed by a computer or a data storage device such as a server, data center, or the like that includes one or more available media.
- the usable medium may be a magnetic medium (eg, a floppy disk, a hard disk, a magnetic tape), an optical medium (eg, a DVD), or a semiconductor medium (such as a solid state disk (SSD)).
- the disclosed apparatus and method may be implemented in other manners.
- the device embodiments described above are merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be another division manner for example, multiple units or components may be used.
- the combination may be integrated into another device, or some features may be ignored or not performed.
- the mutual coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection through some interface, device or unit, and may be in an electrical, mechanical or other form.
- the units described as separate components may or may not be physically separated, and the components displayed as units may be one physical unit or multiple physical units, that is, may be located in one place, or may be distributed to multiple different places. . Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of the embodiment.
- each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
- the above integrated unit can be implemented in the form of hardware or in the form of a software functional unit.
- the integrated unit if implemented in the form of a software functional unit and sold or used as a standalone product, may be stored in a readable storage medium.
- the technical solution of the embodiments of the present application may be embodied in the form of a software product in the form of a software product in essence or in the form of a contribution to the prior art, and the software product is stored in a storage medium.
- a number of instructions are included to cause a device (which may be a microcontroller, chip, etc.) or a processor to perform all or part of the steps of the methods described in various embodiments of the present application.
- the foregoing storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, and the like, which can store program codes. .
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
La présente invention se rapporte au domaine du codage, du décodage et de la compression vidéo. Les modes de réalisation de la présente invention concernent des procédés et des dispositifs de codage et de décodage, destinés à être utilisés pour résoudre le problème dans un mode de division existant d'une incapacité à satisfaire des exigences de texture relativement complexes. Plus précisément, le procédé de décodage comprend : l'analyse d'un flux de code et la détermination d'un mode de division de base d'un bloc d'image en cours à décoder et d'un mode dérivé cible d'un sous-bloc d'image dans le bloc d'image en cours à décoder ; la division du bloc d'image en cours à décoder en N sous-blocs d'image en fonction du mode dérivé cible, N étant un nombre entier supérieur ou égal à 2 ; la dérivation d'au moins deux sous-blocs d'image adjacents dans les N sous-blocs d'image en un bloc d'image dérivé en fonction du mode dérivé cible ; et le décodage du bloc d'image dérivé.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP19804393.7A EP3780612A4 (fr) | 2018-05-16 | 2019-05-16 | Procédés et dispositifs de codage et de décodage |
| US17/099,470 US11936861B2 (en) | 2018-05-16 | 2020-11-16 | Encoding method and apparatus, and decoding method and apparatus |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810470411.5 | 2018-05-16 | ||
| CN201810470411 | 2018-05-16 | ||
| CN201810581662.0A CN110505482B (zh) | 2018-05-16 | 2018-06-07 | 一种编解码方法及装置 |
| CN201810581662.0 | 2018-06-07 |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/099,470 Continuation US11936861B2 (en) | 2018-05-16 | 2020-11-16 | Encoding method and apparatus, and decoding method and apparatus |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2019219066A1 true WO2019219066A1 (fr) | 2019-11-21 |
Family
ID=68539506
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2019/087316 Ceased WO2019219066A1 (fr) | 2018-05-16 | 2019-05-16 | Procédés et dispositifs de codage et de décodage |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2019219066A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210258576A1 (en) * | 2018-06-18 | 2021-08-19 | Interdigital Vc Holdings, Inc. | Method and apparatus for video encoding and decoding based on asymmetric binary partitioning of image blocks |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN102595116A (zh) * | 2011-01-14 | 2012-07-18 | 华为技术有限公司 | 多图像块划分的编解码方法和装置 |
| TW201528209A (zh) * | 2014-01-03 | 2015-07-16 | Mediatek Singapore Pte Ltd | 編解碼方法 |
| CN104811736A (zh) * | 2010-05-04 | 2015-07-29 | Lg电子株式会社 | 处理视频信号的方法和设备 |
| CN107566848A (zh) * | 2016-06-30 | 2018-01-09 | 华为技术有限公司 | 编解码的方法及装置 |
| WO2018056703A1 (fr) * | 2016-09-20 | 2018-03-29 | 주식회사 케이티 | Procédé et appareil de traitement de signal vidéo |
-
2019
- 2019-05-16 WO PCT/CN2019/087316 patent/WO2019219066A1/fr not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104811736A (zh) * | 2010-05-04 | 2015-07-29 | Lg电子株式会社 | 处理视频信号的方法和设备 |
| CN102595116A (zh) * | 2011-01-14 | 2012-07-18 | 华为技术有限公司 | 多图像块划分的编解码方法和装置 |
| TW201528209A (zh) * | 2014-01-03 | 2015-07-16 | Mediatek Singapore Pte Ltd | 編解碼方法 |
| CN107566848A (zh) * | 2016-06-30 | 2018-01-09 | 华为技术有限公司 | 编解码的方法及装置 |
| WO2018056703A1 (fr) * | 2016-09-20 | 2018-03-29 | 주식회사 케이티 | Procédé et appareil de traitement de signal vidéo |
Non-Patent Citations (1)
| Title |
|---|
| See also references of EP3780612A4 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20210258576A1 (en) * | 2018-06-18 | 2021-08-19 | Interdigital Vc Holdings, Inc. | Method and apparatus for video encoding and decoding based on asymmetric binary partitioning of image blocks |
| US11956430B2 (en) * | 2018-06-18 | 2024-04-09 | Interdigital Vc Holdings, Inc. | Method and apparatus for video encoding and decoding based on asymmetric binary partitioning of image blocks |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI853918B (zh) | 用於視訊寫碼之區塊內複製合併資料語法 | |
| US11611757B2 (en) | Position dependent intra prediction combination extended with angular modes | |
| CN116193131B (zh) | 一种用于视频编码的方法、电子装置及存储介质 | |
| TW202415068A (zh) | 視訊寫碼中之三角合併模式索引之發信 | |
| WO2018231488A1 (fr) | Intra-filtrage appliqué en même temps qu'un traitement de transformée dans un codage vidéo | |
| JP2019505143A (ja) | ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること | |
| JP7410236B2 (ja) | ビデオ符号化のための位置依存の空間変化変換 | |
| TW202135530A (zh) | 用於編碼和解碼視訊樣本區塊的方法、設備及系統 | |
| TW202029754A (zh) | 用於置零轉換之掃描及最後係數位置寫碼 | |
| BR112021003869A2 (pt) | predição temporal de parâmetros de filtro de loop adaptativo com consumo reduzido de memória para codificação de vídeo | |
| US11936861B2 (en) | Encoding method and apparatus, and decoding method and apparatus | |
| CN117957838A (zh) | 帧内预测模式信令 | |
| WO2019219066A1 (fr) | Procédés et dispositifs de codage et de décodage | |
| TW202431835A (zh) | 自適應迴路濾波器分類器 | |
| CN121220032A (zh) | 用于自适应环路滤波器和跨分量自适应环路滤波器的方法和装置 | |
| WO2024145851A1 (fr) | Procédé et appareil de prédiction de mise en correspondance de modèle intra, procédé et appareil de codage vidéo, procédé et appareil de décodage vidéo, et système | |
| CN120814225A (zh) | 用于自适应环路滤波器和跨分量自适应环路滤波器的方法和装置 | |
| CN120530624A (zh) | 用于自适应环路滤波器和跨分量自适应环路滤波器的方法和装置 | |
| CN121193951A (zh) | 视频编解码方法、设备和介质 |
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: 19804393 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2019804393 Country of ref document: EP Effective date: 20201104 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |