WO2020135409A1 - Procédé et appareil de décodage de vidéos et dispositif de décodage - Google Patents

Procédé et appareil de décodage de vidéos et dispositif de décodage Download PDF

Info

Publication number
WO2020135409A1
WO2020135409A1 PCT/CN2019/127872 CN2019127872W WO2020135409A1 WO 2020135409 A1 WO2020135409 A1 WO 2020135409A1 CN 2019127872 W CN2019127872 W CN 2019127872W WO 2020135409 A1 WO2020135409 A1 WO 2020135409A1
Authority
WO
WIPO (PCT)
Prior art keywords
current image
image block
division
equal
block
Prior art date
Application number
PCT/CN2019/127872
Other languages
English (en)
Chinese (zh)
Inventor
赵寅
杨海涛
张恋
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from CN201910222973.2A external-priority patent/CN111355951B/zh
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020135409A1 publication Critical patent/WO2020135409A1/fr
Priority to US17/357,473 priority Critical patent/US11736706B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction

Definitions

  • This application relates to the field of video encoding, and in particular to a video decoding method, device, and decoding device.
  • Video encoding (video encoding and decoding) is widely used in digital video applications, such as broadcast digital TV, video dissemination on the Internet and mobile networks, real-time conversation applications such as video chat and video conferencing, DVD and Blu-ray discs, video content acquisition and editing systems And security applications for camcorders.
  • Video coding standards include MPEG-1 video, MPEG-2 video, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4 Part 10 Advanced Video Coding ( Advanced Video Coding (AVC), ITU-T H.265/High Efficiency Video Coding (HEVC)... and extensions of such standards, such as scalability and/or 3D (three-dimensional) extensions.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • extensions of such standards such as scalability and/or 3D (three-dimensional) extensions.
  • LCU Large Coding Unit
  • CU Coding Unit
  • BT binary tree
  • EQT Extended Quad Tree
  • Embodiments of the present application provide a video decoding method, device, and decoding device.
  • the judgment of whether the division method is available is used to avoid transmitting the information of the division method in the code stream as much as possible, thereby improving coding efficiency. And reduce the computational complexity of video decoding.
  • an embodiment of the present application provides a video decoding method, including: obtaining block information of a current image block; determining whether a division mode in an optional division mode set is available according to the block information, and the optional division mode set includes no division mode ; Determine the division of the current image block from the determined available divisions; obtain a CU or multiple CUs from the current image block according to the division of the current image block, where one CU is obtained by the current image block without applying division Parse the code stream containing the current image block to obtain decoding information of one CU or multiple CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • the present application When obtaining the division mode of the current image block, the present application tries to avoid the transmission of division mode information in the code stream by judging whether the division mode is available, which improves the coding efficiency and reduces the computational complexity of video decoding.
  • the set of optional division methods further includes a horizontal binary tree HBT division method, a vertical binary tree VBT division method, a horizontally expanded quadtree HEQT division method, a vertically extended quadtree VEQT division method, and a quadtree QT division method Division method.
  • determining whether the non-divided mode is available according to the block information includes: determining whether the current image block meets the conditions in the first determination condition set according to the block information; if the current image block meets the first determination condition set At least one condition of, the non-division method is unavailable; if the current image block does not satisfy all the conditions in the first determination condition set, the non-division method is available;
  • the first set of judgment conditions includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of the largest coding unit LCU;
  • the width of the current image block is greater than pipelineSize, and the height is less than pipelineSize, pipelineSize is an integer greater than or equal to 16;
  • the height of the current image block is larger than the pipelineSize, and the width is smaller than the pipelineSize.
  • determining whether the HBT division method is available according to the block information includes: determining whether the current image block satisfies the conditions in the second determination condition set according to the block information; if the current image block meets the second determination condition set At least one condition, the HBT division method is not available; if the current image block does not satisfy all the conditions in the second determination condition set, the HBT division method is available;
  • the second set of judgment conditions includes one or more of the following conditions:
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU;
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width of the current image block is greater than K, and the height is equal to K, where K includes 128, 64, 32, 16, 8, or 4;
  • the width of the current image block is greater than pipelineSize, and the height is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1;
  • the current image block exceeds the right or lower right border of the image where the current image block is located;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 8;
  • the height of the current image block is equal to the minimum CU side length
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • determining whether the VBT division method is available according to the block information includes: determining whether the current image block meets the conditions in the third determination condition set according to the block information; if the current image block meets the third determination condition set At least one of the conditions, the VBT division method is not available; if the current image block does not meet all the conditions in the third determination condition set, the VBT division method is available;
  • the third set of judgment conditions includes one or more of the following conditions:
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width of the current image block is equal to K, and the height is greater than K, where K includes 128, 64, 32, 16, 8, or 4;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 16;
  • the width of the current image block is equal to the minimum CU side length
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the height and width of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the height of the current image block is greater than pipelineSize, and the width is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • determining whether the HEQT division method is available according to the block information includes: determining whether the current image block meets the conditions in the fourth determination condition set according to the block information; if the current image block meets the fourth determination condition set At least one condition, the HEQT division method is not available; if the current image block does not satisfy all the conditions in the fourth determination condition set, the HEQT division method is available;
  • the fourth set of judgment conditions includes one or more of the following conditions:
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, M and N are natural numbers less than 128, respectively;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16;
  • the height of the current image block is less than or equal to minCUSize ⁇ 2, or the width is equal to minCUSize, minCUSize is the minimum CU side length;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatioEQT, and maxRatioEQT is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • determining whether the VEQT division method is available according to the block information includes: determining whether the current image block meets the conditions in the fifth determination condition set according to the block information; if the current image block meets the fifth determination condition set At least one condition, the VEQT division method is not available; if the current image block does not meet all the conditions in the fifth determination condition set, the VEQT division method is available;
  • the fifth set of judgment conditions includes one or more of the following conditions:
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU;
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, M and N are natural numbers less than 128, respectively;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1;
  • the width of the current image block is less than or equal to minCUSize ⁇ 2, or the height is equal to minCUSize, minCUSize is the minimum CU side length;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • determining whether the QT division method is available according to the block information includes: determining whether the current image block meets the conditions in the sixth determination condition set according to the block information; if the current image block meets the sixth determination condition set At least one condition of the QT division method is not available; if the current image block does not meet all the conditions in the sixth determination condition set, the QT division method is available;
  • the sixth set of judgment conditions includes one or more of the following conditions:
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • At least one side length of the current image block is less than minQtSize, and minQtSize is an integer greater than or equal to 4;
  • the current image block exceeds the lower or right boundary of the image where the current image block is located.
  • the division method of the current image block is determined according to the determination result of whether the division method in the optional division method set is available, including: if the QT division method is available, and the QT division is excluded from the optional division method set If all the division modes except the division mode are not available, the division mode of the current image block is the QT division mode; if the QT division mode is available and at least one division mode other than the QT division mode is available in the selectable division mode set, the code is parsed Stream to determine how the current image block is divided.
  • the division method of the current image block is determined according to the judgment result of whether the division method in the set of optional division methods is available, and also includes: if no division method is available, and All division modes except the non-division mode and the QT division mode are not available in the optional division mode set, the current image block division mode is non-division mode; if no division mode is available, and the optional division mode set is not At least one division mode other than the division mode and the QT division mode is available, the code stream is parsed to determine the division mode of the current image block.
  • obtaining one CU or multiple CUs from the current image block according to the division method of the current image block includes: when the division mode of the current image block is not division mode, the current image block is one CU; When the division mode of the current image block is any division mode other than the non-division mode in the set of selectable division modes, the current image block is divided according to the division mode of the current image block, if at least one edge of the obtained sub-block is divided If the length is T, and T is 4 or 8, the sub-block is a CU, otherwise, the sub-block is further divided.
  • an embodiment of the present application provides a video decoding method, including: acquiring block information of a current image block; determining a default division method of the current image block according to the block information; dividing the current image block by the default division method to obtain multiple Coding unit CU; parsing the code stream containing the current image block to obtain decoding information of multiple CUs, and decoding the CU according to the decoding information to obtain a reconstructed block.
  • the present application divides the current image block by default, thereby avoiding transmitting the information of the division mode in the code stream, improving coding efficiency, and reducing the computational complexity of video decoding.
  • determining the default division method of the current image block according to the block information includes: determining whether the current image block meets the conditions in the seventh determination condition set according to the block information; if the current image block meets the seventh determination condition If there is at least one condition in the set, the default division mode is the quadtree QT division mode;
  • the current image block is an I-slice or I frame, and the width and height of the current image block are equal to maxLCU, which includes 64, 128, or 256, respectively.
  • the eighth judgment condition set includes one or more of the following conditions:
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is less than L, and K and L are integers greater than or equal to 32, respectively ,
  • the current image block is forced to use VBT division;
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block satisfy: width equal to K, height equal to L, K greater than L, K and L are integers greater than or equal to 32, The current image block is forced to use the VBT division method.
  • determining the default division method of the current image block according to the block information includes: determining whether the current image block meets the conditions in the ninth determination condition set according to the block information; if the current image block meets the ninth determination condition If there is at least one condition in the set, the default division method is the horizontal binary tree HBT division method;
  • the ninth determination condition set includes one or more of the following conditions:
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is greater than L, and K and L are integers greater than or equal to 32, respectively ,
  • the current image block is forced to use HBT division;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block satisfy: width equal to K, height equal to L, K less than L, K and L are integers greater than or equal to 32, The current image block is forced to use HBT division.
  • the set of optional division methods further includes a horizontal binary tree HBT division method, a vertical binary tree VBT division method, a horizontally expanded quadtree HEQT division method, a vertically extended quadtree VEQT division method, and a quadtree QT division method Division method.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the first judgment condition set according to the block information; if the current image block meets at least one condition in the first judgment condition set, then The non-division mode is not available; if the current image block does not satisfy all the conditions in the first determination condition set, the non-division mode is available;
  • the first set of judgment conditions includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of the largest coding unit LCU;
  • the width of the current image block is greater than pipelineSize, and the height is less than pipelineSize, pipelineSize is an integer greater than or equal to 16;
  • the height of the current image block is larger than the pipelineSize, and the width is smaller than the pipelineSize.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the second judgment condition set according to the block information; if the current image block meets at least one condition in the second judgment condition set, then The HBT division method is not available; if the current image block does not meet all the conditions in the second judgment condition set, the HBT division method is available;
  • the second set of judgment conditions includes one or more of the following conditions:
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU;
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width of the current image block is greater than K, and the height is equal to K, where K includes 128, 64, 32, 16, 8, or 4;
  • the width of the current image block is greater than pipelineSize, and the height is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1;
  • the current image block exceeds the right or lower right border of the image where the current image block is located;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 8;
  • the height of the current image block is equal to the minimum CU side length
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the third judgment condition set according to the block information; if the current image block meets at least one condition in the third judgment condition set, then The VBT division method is not available; if the current image block does not meet all the conditions in the third judgment condition set, the VBT division method is available;
  • the third set of judgment conditions includes one or more of the following conditions:
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width of the current image block is equal to K, and the height is greater than K, where K includes 128, 64, 32, 16, 8, or 4;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 16;
  • the width of the current image block is equal to the minimum CU side length
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the height and width of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the height of the current image block is greater than pipelineSize, and the width is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the fourth judgment condition set according to the block information; if the current image block meets at least one condition in the fourth judgment condition set, then The HEQT division method is not available; if the current image block does not satisfy all the conditions in the fourth determination condition set, the HEQT division method is available;
  • the fourth set of judgment conditions includes one or more of the following conditions:
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16;
  • the height of the current image block is less than or equal to minCUSize ⁇ 2, or the width is equal to minCUSize, minCUSize is the minimum CU side length;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatioEQT, and maxRatioEQT is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the fifth judgment condition set according to the block information; if the current image block meets at least one condition in the fifth judgment condition set, then The VEQT division method is not available; if the current image block does not meet all the conditions in the fifth judgment condition set, the VEQT division method is available;
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU;
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, M and N are natural numbers less than 128, respectively;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16;
  • the width of the current image block is less than or equal to minCUSize ⁇ 2, or the height is equal to minCUSize, minCUSize is the minimum CU side length;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module is specifically configured to judge whether the current image block meets the conditions in the sixth judgment condition set according to the block information; if the current image block meets at least one condition in the sixth judgment condition set, then The QT division method is not available; if the current image block does not meet all the conditions in the sixth judgment condition set, the QT division method is available;
  • the sixth set of judgment conditions includes one or more of the following conditions:
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, M is a natural number less than 128;
  • At least one side length of the current image block is less than minQtSize, and minQtSize is an integer greater than or equal to 4;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than 0;
  • the determination module is specifically configured to determine the division mode of the current image block according to the judgment result of whether the division mode in the set of optional division modes is available; or, parse the code stream to determine the division of the current image block the way.
  • the determination module is specifically used if the QT division mode is available, and all division modes except the QT division mode in the set of optional division modes are unavailable, the division mode of the current image block is QT Division mode; if QT division mode is available, and at least one division mode other than QT division mode is available in the selectable division mode set, the code stream is parsed to determine the division mode of the current image block.
  • the dividing module is specifically used when the current image block is divided into non-divided modes, the current image block is a CU; when the current image block is divided into a set of optional division modes When there is no division method other than the division method, the current image block is divided according to the division method of the current image block. If at least one side length of the divided sub-block is T, T is 4 or 8, then the sub-block is one CU, otherwise continue to divide the sub-block.
  • an embodiment of the present application provides a video decoding device, including:
  • the acquisition module is used to acquire the block information of the current image block; the default module is used to determine the default division mode of the current image block according to the block information; the division module is used to divide the current image block by the default division mode to obtain multiple coding units CU; decoding module, used to parse the code stream containing the current image block to obtain decoding information of multiple CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • the default module is specifically used to determine whether the current image block meets the conditions in the seventh determination condition set according to the block information; if the current image block meets at least one condition in the seventh determination condition set, then The default division mode is the quadtree QT division mode;
  • the seventh set of judgment conditions includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the width and height of the current image block are equal to maxLCU, which includes 64, 128, or 256, respectively.
  • the default module is specifically used to determine whether the current image block meets the conditions in the eighth determination condition set based on the block information; if the current image block meets at least one condition in the eighth determination condition set, then The default division method is the vertical binary tree VBT division method;
  • the eighth judgment condition set includes one or more of the following conditions:
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is less than L, and K and L are integers greater than or equal to 32, respectively ,
  • the current image block is forced to use VBT division;
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block satisfy: width equal to K, height equal to L, K greater than L, K and L are integers greater than or equal to 32, The current image block is forced to use the VBT division method.
  • the ninth determination condition set includes one or more of the following conditions:
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is greater than L, and K and L are integers greater than or equal to 32, respectively ,
  • the current image block is forced to use HBT division;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block satisfy: width equal to K, height equal to L, K less than L, K and L are integers greater than or equal to 32, The current image block is forced to use HBT division.
  • the method further includes: a judgment module, configured to determine whether the division methods in the optional division method set are available according to the block information.
  • the optional division method set includes a VBT division method, an HBT division method, and a horizontal expansion method. Fork tree HEQT division, vertical expansion quadtree VEQT division and QT division; determination module, used to determine the division of the current image block from the available divisions determined; division module, also used for the current image The block is divided by the current image block division method to obtain multiple CUs; the decoding module is also used to parse the code stream to obtain decoding information of multiple CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • an embodiment of the present application provides an apparatus for decoding video data.
  • the apparatus includes:
  • Memory used to store video data in the form of code stream
  • the video decoder is used to obtain the block information of the current image block; according to the block information, determine whether the division modes in the optional division mode set are available, and the optional division mode set includes no division mode; determine from the determined available division modes
  • the current image block's division method according to the current image block's division method, one CU or multiple CUs are obtained from the current image block, one of the CUs is obtained from the current image block without division; the code stream containing the current image block is obtained by parsing Decode information of one or more CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • an embodiment of the present application provides a video decoding device, including: a non-volatile memory and a processor coupled to each other, and the processor calls program codes stored in the memory to perform the first or second aspect Part or all of the steps of any method.
  • an embodiment of the present application provides a computer program product, which, when the computer program product runs on a computer, causes the computer to perform part or all of the steps of any one of the methods of the first or second aspect.
  • FIG. 1A is a block diagram of an example of a video encoding and decoding system 10 for implementing embodiments of the present application;
  • FIG. 1B is a block diagram of an example of a video decoding system 40 for implementing embodiments of the present application
  • FIG. 2 is a block diagram of an example structure of an encoder 20 for implementing an embodiment of the present application
  • FIG. 3 is a block diagram of an example structure of a decoder 30 for implementing an embodiment of the present application
  • FIG. 5 is a block diagram of another example of an encoding device or a decoding device used to implement an embodiment of the present application
  • FIG. 6 is a schematic diagram of a division manner for implementing a binary tree, a quad tree, and an extended quad tree according to an embodiment of the present application;
  • FIG. 7 is a schematic diagram of QT-MTT division used to implement the embodiment of the present application.
  • FIG. 8 is a schematic flowchart of a video decoding method for implementing an embodiment of the present application.
  • FIG. 9 is another schematic flowchart of a video decoding method for implementing an embodiment of the present application.
  • FIG. 10 is a structural block diagram of a video decoding device for implementing an embodiment of the present application.
  • FIG. 11 is another structural block diagram of a video decoding device for implementing an embodiment of the present application.
  • FIG. 12 is another structural block diagram of a video decoding device for implementing an embodiment of the present application.
  • the technical solutions involved in the embodiments of the present application may not only be applied to existing video coding standards (such as H.264, High Efficiency Video Coding (HEVC), and other standards), but may also be applied to future video coding In the standard (such as H.266 standard), or may be used in the digital audio and video codec (Audio Video Coding Standard Workgroup of China, AVS) technical standards, such as AVS3.
  • HEVC High Efficiency Video Coding
  • AVS Analog Video Coding Standard Workgroup of China
  • Video coding generally refers to processing a sequence of pictures that form a video or video sequence.
  • picture In the field of video coding, the terms “picture”, “frame” or “image” may be used as synonyms.
  • Video coding as used herein means video coding or video decoding.
  • Video encoding is performed on the source side, and usually includes processing (eg, by compressing) the original video picture to reduce the amount of data required to represent the video picture, thereby storing and/or transmitting more efficiently.
  • Video decoding is performed on the destination side and usually involves inverse processing relative to the encoder to reconstruct the video picture.
  • the “encoding” of video pictures involved in the embodiments should be understood as referring to the “encoding” or “decoding” of video sequences.
  • the combination of the encoding part and the decoding part is also called codec (encoding and decoding).
  • the video sequence includes a series of pictures, which are further divided into slices, and the slices are further divided into blocks.
  • Video coding is performed in units of blocks.
  • the concept of blocks is further expanded.
  • macroblock macroblock, MB
  • HEVC high-efficiency video coding
  • basic concepts such as coding unit (CU), prediction unit (PU) and transform unit (TU) are adopted.
  • CU coding unit
  • PU prediction unit
  • TU transform unit
  • the video coding standard divides a frame of image into non-overlapping coding tree units (Coding Tree Unit, CTU), and then divides a CTU into several sub-nodes. These sub-nodes can be processed according to a quad tree (QT) It is divided into smaller child nodes, and the smaller child nodes can continue to be divided to form a quadtree structure. If the node is no longer divided, it is called CU.
  • the CU is the basic unit for dividing and coding the coded image.
  • PU can correspond to the prediction block and is the basic unit of predictive coding.
  • the CU is further divided into multiple PUs according to the division mode.
  • the TU can correspond to the transform block and is the basic unit for transforming the prediction residual. However, regardless of CU, PU or TU, they all belong to the concept of block (or image block) in essence.
  • the CTU is split into multiple CUs by using a quadtree structure represented as a coding tree.
  • a decision is made at the CU level whether to use inter-picture (temporal) or intra-picture (spatial) prediction to encode picture regions.
  • Each CU can be further split into one, two, or four PUs according to the PU split type.
  • the same prediction process is applied within a PU, and related information is transmitted to the decoder on the basis of the PU.
  • the CU may be divided into TUs according to other quadtree structures similar to the coding tree used for the CU.
  • quad-tree and binary-tree (Quad-tree and binary tree, QTBT) split frames are used to split the coding blocks.
  • the CU may have a square or rectangular shape.
  • the image block to be encoded in the current encoded image may be referred to as the current block.
  • the reference block is a block that provides a reference signal for the current block, where the reference signal represents a pixel value within the image block.
  • the block in the reference image that provides the prediction signal for the current block may be a prediction block, where the prediction signal represents a pixel value or a sample value or a sample signal within the prediction block. For example, after traversing multiple reference blocks, the best reference block is found. This best reference block will provide a prediction for the current block. This block is called a prediction block.
  • the original video picture can be reconstructed, that is, the reconstructed video picture has the same quality as the original video picture (assuming no transmission loss or other data loss during storage or transmission).
  • further compression is performed by, for example, quantization to reduce the amount of data required to represent the video picture, but the decoder side cannot fully reconstruct the video picture, that is, the quality of the reconstructed video picture is better than the original video picture. The quality is lower or worse.
  • Several video coding standards of H.261 belong to "lossy hybrid video codec” (ie, combining spatial and temporal prediction in the sample domain with 2D transform coding for applying quantization in the transform domain).
  • Each picture of a video sequence is usually divided into non-overlapping block sets, which are usually encoded at the block level.
  • the encoder side usually processes the encoded video at the block (video block) level.
  • the prediction block is generated by spatial (intra-picture) prediction and temporal (inter-picture) prediction.
  • FIG. 1A exemplarily shows a schematic block diagram of a video encoding and decoding system 10 applied in an embodiment of the present application.
  • the video encoding and decoding system 10 may include a source device 12 and a destination device 14, the source device 12 generates encoded video data, and therefore, the source device 12 may be referred to as a video encoding device.
  • the destination device 14 may decode the encoded video data generated by the source device 12, and therefore, the destination device 14 may be referred to as a video decoding device.
  • Various implementations of source device 12, destination device 14, or both may include one or more processors and memory coupled to the one or more processors.
  • Source device 12 and destination device 14 may include 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, etc. Devices, televisions, cameras, display devices, digital media players, video game consoles, in-vehicle computers, wireless communication devices, or the like.
  • FIG. 1A illustrates the source device 12 and the destination device 14 as separate devices
  • device embodiments may also include the functionality of the source device 12 and the destination device 14 or both, ie the source device 12 or the corresponding Functionality of the destination device 14 or the corresponding functionality.
  • the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality may be implemented using the same hardware and/or software, or separate hardware and/or software, or any combination thereof .
  • the communication connection between the source device 12 and the destination device 14 may be via a link 13, and the destination device 14 may receive the encoded video data from the source device 12 via the link 13.
  • Link 13 may include one or more media or devices capable of moving encoded video data from source device 12 to destination device 14.
  • link 13 may include one or more communication media that enable source device 12 to transmit encoded video data directly to destination device 14 in real time.
  • the source device 12 may modulate the encoded video data according to a communication standard (eg, a wireless communication protocol), and may transmit the modulated video data to the destination device 14.
  • the one or more communication media may include wireless and/or wired communication media, such as a radio frequency (RF) spectrum or one or more physical transmission lines.
  • RF radio frequency
  • the one or more communication media may form part of a packet-based network, such as a local area network, a wide area network, or a global network (eg, the Internet).
  • the one or more communication media may include routers, switches, base stations, or other devices that facilitate communication from source device 12 to destination device 14.
  • the source device 12 includes an encoder 20.
  • the source device 12 may further include a picture source 16, a picture pre-processor 18, and a communication interface 22.
  • the encoder 20, the picture source 16, the picture pre-processor 18, and the communication interface 22 may be hardware components in the source device 12, or may be software programs in the source device 12. They are described as follows:
  • Picture source 16 which can include or can be any type of picture capture device, for example to capture real-world pictures, and/or any type of picture or comment (for screen content encoding, some text on the screen is also considered to be encoded Part of the picture or image) generation device, for example, a computer graphics processor for generating computer animation pictures, or for acquiring and/or providing real-world pictures, computer animation pictures (for example, screen content, virtual reality, VR) pictures) in any category of equipment, and/or any combination thereof (eg, augmented reality (AR) pictures).
  • the picture source 16 may be a camera for capturing pictures or a memory for storing pictures.
  • the picture source 16 may also include any type of (internal or external) interface that stores previously captured or generated pictures and/or acquires or receives pictures.
  • the picture source 16 When the picture source 16 is a camera, the picture source 16 may be, for example, a local or integrated camera integrated in the source device; when the picture source 16 is a memory, the picture source 16 may be a local or integrated, for example, integrated in the source device Memory.
  • the interface When the picture source 16 includes an interface, the interface may be, for example, an external interface that receives pictures from an external video source.
  • the external video source is, for example, an external picture capture device, such as a camera, an external memory, or an external picture generation device.
  • the external picture generation device for example It is an external computer graphics processor, computer or server.
  • the interface may be any type of interface according to any proprietary or standardized interface protocol, such as a wired or wireless interface, an optical interface.
  • the picture can be regarded as a two-dimensional array or matrix of picture elements.
  • the pixels in the array can also be called sampling points.
  • the number of sampling points in the horizontal and vertical directions (or axes) of the array or picture defines the size and/or resolution of the picture.
  • three color components are usually used, that is, a picture can be represented or contain three sampling arrays.
  • the picture includes corresponding red, green, and blue sampling arrays.
  • each pixel is usually expressed in a luminance/chrominance format or color space. For example, for a picture in YUV format, it includes the luminance component indicated by Y (sometimes also indicated by L) and the two indicated by U and V. Chroma components.
  • the luma component Y represents luminance or gray-scale horizontal intensity (for example, both are the same in gray-scale pictures), and the two chroma components U and V represent chroma or color information components.
  • the picture in the YUV format includes a luminance sampling array of luminance sampling values (Y), and two chrominance sampling arrays of chrominance values (U and V). RGB format pictures can be converted or transformed into YUV format and vice versa, this process is also called color transformation or conversion. If the picture is black and white, the picture may include only the brightness sampling array.
  • the picture transmitted from the picture source 16 to the picture processor may also be referred to as original picture data 17.
  • the encoder 20 (or video encoder 20) is used to receive the pre-processed picture data 19, and process the pre-processed picture data 19 in a related prediction mode (such as the prediction mode in various embodiments herein), thereby
  • the encoded picture data 21 is provided (the structural details of the encoder 20 will be further described below based on FIG. 2 or FIG. 4 or FIG. 5).
  • the communication interface 22 can be used to receive the encoded picture data 21, and can transmit the encoded picture data 21 to the destination device 14 or any other device (such as a memory) via the link 13 for storage or direct reconstruction.
  • the other device may be any device used for decoding or storage.
  • the communication interface 22 may be used, for example, to encapsulate the encoded picture data 21 into a suitable format, such as a data packet, for transmission on the link 13.
  • the destination device 14 includes a decoder 30, and optionally, the destination device 14 may further include a communication interface 28, a post-picture processor 32, and a display device 34. They are described as follows:
  • the communication interface 28 may be used to receive the encoded picture data 21 from the source device 12 or any other source, such as a storage device, such as an encoded picture data storage device.
  • the communication interface 28 can be used to transmit or receive the encoded picture data 21 through the link 13 between the source device 12 and the destination device 14 or through any type of network.
  • the link 13 is, for example, a direct wired or wireless connection.
  • a network of a category is, for example, a wired or wireless network or any combination thereof, or a private network and a public network of any category, or any combination thereof.
  • the communication interface 28 may be used, for example, to decapsulate the data packet transmitted by the communication interface 22 to obtain the encoded picture data 21.
  • Both the communication interface 28 and the communication interface 22 may be configured as a one-way communication interface or a two-way communication interface, and may be used, for example, to send and receive messages to establish a connection, confirm and exchange any other communication link and/or for example encoded picture data Information about data transmission.
  • the decoder 30 (or referred to as the decoder 30) is used to receive the encoded picture data 21 and provide the decoded picture data 31 or the decoded picture 31 (hereinafter, the decoder 30 will be further described based on FIG. 3 or FIG. 4 or FIG. 5 Structural details). In some embodiments, the decoder 30 may be used to execute various embodiments described below to implement the application of the video decoding method described in this application on the decoding side.
  • the post-picture processor 32 is configured to perform post-processing on the decoded picture data 31 (also referred to as reconstructed picture data) to obtain post-processed picture data 33.
  • the post-processing performed by the image post-processor 32 may include: color format conversion (for example, conversion from YUV format to RGB format), color adjustment, retouching or resampling, or any other processing, and may also be used to convert the post-processed image data 33transmitted to the display device 34.
  • the display device 34 is used to receive post-processed picture data 33 to display pictures to, for example, a user or a viewer.
  • the display device 34 may be or may include any type of display for presenting reconstructed pictures, for example, an integrated or external display or monitor.
  • the display may include a liquid crystal display (LCD), an organic light emitting diode (OLED) display, a plasma display, a projector, a micro LED display, a liquid crystal on silicon (LCoS), Digital light processor (digital light processor, DLP) or any other type of display.
  • FIG. 1A illustrates the source device 12 and the destination device 14 as separate devices
  • device embodiments may also include the functionality of the source device 12 and the destination device 14 or both, ie, the source device 12 or The corresponding functionality and the destination device 14 or corresponding functionality.
  • the same hardware and/or software may be used, or separate hardware and/or software, or any combination thereof may be used to implement the source device 12 or corresponding functionality and the destination device 14 or corresponding functionality .
  • Source device 12 and destination device 14 may include any of a variety of devices, including any type of handheld or stationary devices, such as notebook or laptop computers, mobile phones, smartphones, tablets or tablet computers, cameras, desktops Computers, set-top boxes, televisions, cameras, in-vehicle devices, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content distribution servers), broadcast receiver devices, broadcast transmitter devices And so on, and can not use or use any kind of operating system.
  • handheld or stationary devices such as notebook or laptop computers, mobile phones, smartphones, tablets or tablet computers, cameras, desktops Computers, set-top boxes, televisions, cameras, in-vehicle devices, display devices, digital media players, video game consoles, video streaming devices (such as content service servers or content distribution servers), broadcast receiver devices, broadcast transmitter devices And so on, and can not use or use any kind of operating system.
  • Both the encoder 20 and the decoder 30 can be implemented as any of various suitable circuits, for example, one or more microprocessors, digital signal processors (DSPs), application-specific integrated circuits (application-specific integrated circuits) circuit, ASIC), field-programmable gate array (FPGA), discrete logic, hardware, or any combination thereof.
  • DSPs digital signal processors
  • ASIC application-specific integrated circuits
  • FPGA field-programmable gate array
  • the device may store the instructions of the software in a suitable non-transitory computer-readable storage medium, and may use one or more processors to execute the instructions in hardware to perform the techniques of the present disclosure . Any one of the foregoing (including hardware, software, a combination of hardware and software, etc.) may be regarded as one or more processors.
  • FIG. 1B is an explanatory diagram of an example of a video coding system 40 including the encoder 20 of FIG. 2 and/or the decoder 30 of FIG. 3, according to an exemplary embodiment.
  • the video decoding system 40 can implement a combination of various technologies in the embodiments of the present application.
  • the video decoding system 40 may include an imaging device 41, an encoder 20, a decoder 30 (and/or a video encoder/decoder implemented by a logic circuit 47), an antenna 42, one or more Processors 43, one or more memories 44 and/or display devices 45.
  • the imaging device 41, the antenna 42, the logic circuit 47, the encoder 20, the decoder 30, the processor 43, the memory 44, and/or the display device 45 can communicate with each other.
  • the video coding system 40 is shown with the encoder 20 and the decoder 30, in different examples, the video coding system 40 may include only the encoder 20 or only the decoder 30.
  • antenna 42 may be used to transmit or receive an encoded bitstream of video data.
  • the display device 45 may be used to present video data.
  • the logic circuit 47 may include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, or the like.
  • the video decoding system 40 may also include an optional processor 43, which may similarly include application-specific integrated circuit (ASIC) logic, a graphics processor, a general-purpose processor, and the like.
  • the logic circuit 47 may be implemented by hardware, such as dedicated hardware for video encoding, and the processor 43 may be implemented by general-purpose software, an operating system, and so on.
  • the memory 44 may be any type of memory, such as volatile memory (for example, static random access memory (Static Random Access Memory, SRAM), dynamic random access memory (Dynamic Random Access Memory, DRAM), etc.) or non-volatile Memory (for example, flash memory, etc.), etc.
  • volatile memory for example, static random access memory (Static Random Access Memory, SRAM), dynamic random access memory (Dynamic Random Access Memory, DRAM), etc.
  • non-volatile Memory for example, flash memory, etc.
  • the memory 44 may be implemented by cache memory.
  • the logic circuit 47 can access the memory 44 (eg, to implement an image buffer).
  • the logic circuit 47 may include memory (eg, cache, etc.) for implementing image buffers and the like.
  • the encoder 20 implemented by logic circuits may include an image buffer (eg, implemented by the memory 44) and a graphics processing unit.
  • the graphics processing unit may be communicatively coupled to the image buffer.
  • the graphics processing unit may include the encoder 20 implemented by a logic circuit 47 to implement the various modules discussed with reference to FIG. 2 and/or any other encoder system or subsystem described herein.
  • Logic circuits can be used to perform the various operations discussed herein.
  • antenna 42 may be used to receive an encoded bitstream of video data.
  • the encoded bitstream may include data related to encoded video frames, indicators, index values, mode selection data, etc. discussed herein, such as data related to encoded partitions (eg, transform coefficients or quantized transform coefficients , (As discussed) optional indicators, and/or data defining the code segmentation).
  • the video coding system 40 may also include a decoder 30 coupled to the antenna 42 and used to decode the encoded bitstream.
  • the display device 45 is used to present video frames.
  • the decoder 30 may be used to perform the reverse process.
  • the decoder 30 may be used to receive and parse such syntax elements and decode the relevant video data accordingly.
  • encoder 20 may entropy encode syntax elements into an encoded video bitstream. In such instances, decoder 30 may parse such syntax elements and decode the relevant video data accordingly.
  • the method described in the embodiment of the present application is mainly used in the inter prediction process. This process exists in both the encoder 20 and the decoder 30.
  • the encoder 20 and the decoder 30 in the embodiment of the present application may be, for example, H .263, H.264, HEVV, MPEG-2, MPEG-4, VP8, VP9 and other video standard protocols or next-generation video standard protocols (such as H.266, etc.) corresponding codec/decoder.
  • FIG. 2 shows a schematic/conceptual block diagram of an example of an encoder 20 for implementing an embodiment of the present application.
  • the encoder 20 includes a residual calculation unit 204, a transform processing unit 206, a quantization unit 208, an inverse quantization unit 210, an inverse transform processing unit 212, a reconstruction unit 214, a buffer 216, a loop filter Unit 220, decoded picture buffer (DPB) 230, prediction processing unit 260, and entropy encoding unit 270.
  • the prediction processing unit 260 may include an inter prediction unit 244, an intra prediction unit 254, and a mode selection unit 262.
  • the inter prediction unit 244 may include a motion estimation unit and a motion compensation unit (not shown).
  • the encoder 20 shown in FIG. 2 may also be referred to as a hybrid video encoder or a video encoder based on a hybrid video codec.
  • the residual calculation unit 204, the transform processing unit 206, the quantization unit 208, the prediction processing unit 260, and the entropy encoding unit 270 form the forward signal path of the encoder 20, while, for example, the inverse quantization unit 210, the inverse transform processing unit 212, the heavy
  • the structural unit 214, the buffer 216, the loop filter 220, the decoded picture buffer (DPB) 230, and the prediction processing unit 260 form a backward signal path of the encoder, where the backward signal path of the encoder corresponds The signal path for the decoder (see decoder 30 in FIG. 3).
  • the encoder 20 receives a picture 201 or an image block 203 of the picture 201 through, for example, an input 202, for example, a picture in a picture sequence forming a video or a video sequence.
  • the image block 203 may also be called a current picture block or a picture block to be encoded
  • the picture 201 may be called a current picture or a picture to be encoded (especially when the current picture is distinguished from other pictures in video encoding, the other pictures are the same video sequence, for example That is, the previously encoded and/or decoded pictures in the video sequence of the current picture are also included).
  • An embodiment of the encoder 20 may include a division unit (not shown in FIG. 2) for dividing the picture 201 into a plurality of blocks such as image blocks 203, usually into a plurality of non-overlapping blocks.
  • the segmentation unit can be used to use the same block size and corresponding grids that define the block size for all pictures in the video sequence, or to change the block size between pictures or subsets or picture groups, and divide each picture into The corresponding block.
  • the prediction processing unit 260 of the encoder 20 may be used to perform any combination of the above-mentioned segmentation techniques.
  • image block 203 is also or can be regarded as a two-dimensional array or matrix of sampling points with sample values, although its size is smaller than picture 201.
  • the image block 203 may include, for example, one sampling array (for example, the brightness array in the case of black and white picture 201) or three sampling arrays (for example, one brightness array and two chroma arrays in the case of color picture) or An array of any other number and/or category depending on the color format applied.
  • the number of sampling points in the horizontal and vertical directions (or axes) of the image block 203 defines the size of the image block 203.
  • the encoder 20 shown in FIG. 2 is used to encode the picture 201 block by block, for example, to perform encoding and prediction on each image block 203.
  • the residual calculation unit 204 is used to calculate the residual block 205 based on the picture image block 203 and the prediction block 265 (other details of the prediction block 265 are provided below), for example, by subtracting the sample value of the picture image block 203 sample by sample (pixel by pixel) The sample values of the block 265 are depredicted to obtain the residual block 205 in the sample domain.
  • the transform processing unit 206 is used to apply a transform such as discrete cosine transform (DCT) or discrete sine transform (DST) on the sample values of the residual block 205 to obtain transform coefficients 207 in the transform domain .
  • the transform coefficient 207 may also be called a transform residual coefficient, and represents a residual block 205 in the transform domain.
  • the transform processing unit 206 may be used to apply integer approximations of DCT/DST, such as the transform specified by HEVC/H.265. Compared with the orthogonal DCT transform, this integer approximation is usually scaled by a factor. In order to maintain the norm of the residual block processed by the forward and inverse transform, an additional scaling factor is applied as part of the transform process.
  • the scaling factor is usually selected based on certain constraints. For example, the scaling factor is a power of two used for the shift operation, the bit depth of the transform coefficient, the accuracy, and the trade-off between implementation cost, and so on.
  • the quantization unit 208 is used to quantize the transform coefficient 207 by, for example, applying scalar quantization or vector quantization to obtain the quantized transform coefficient 209.
  • the quantized transform coefficient 209 may also be referred to as a quantized residual coefficient 209.
  • the quantization process can reduce the bit depth associated with some or all of the transform coefficients 207. For example, n-bit transform coefficients can be rounded down to m-bit transform coefficients during quantization, where n is greater than m.
  • the degree of quantization can be modified by adjusting quantization parameters (QP). For example, for scalar quantization, different scales can be applied to achieve thinner or coarser quantization.
  • QP quantization parameters
  • the inverse quantization unit 210 is used to apply the inverse quantization of the quantization unit 208 on the quantized coefficients to obtain the inverse quantization coefficients 211, for example, based on or using the same quantization step size as the quantization unit 208, apply the quantization scheme applied by the quantization unit 208 Inverse quantization scheme.
  • the inverse quantized coefficient 211 may also be referred to as an inverse quantized residual coefficient 211, which corresponds to the transform coefficient 207, although the loss due to quantization is usually not the same as the transform coefficient.
  • the reconstruction unit 214 (eg, summer 214) is used to add the inverse transform block 213 (ie, the reconstructed residual block 213) to the prediction block 265 to obtain the reconstructed block 215 in the sample domain, for example, The sample values of the reconstructed residual block 213 and the sample values of the prediction block 265 are added.
  • a buffer unit 216 (or simply "buffer" 216), such as a line buffer 216, is used to buffer or store the reconstructed block 215 and corresponding sample values for, for example, intra prediction.
  • the encoder may be used to use the unfiltered reconstructed blocks and/or corresponding sample values stored in the buffer unit 216 for any type of estimation and/or prediction, such as intra prediction.
  • an embodiment of the encoder 20 may be configured such that the buffer unit 216 is used not only to store the reconstructed block 215 for intra prediction 254, but also for the loop filter unit 220 (not shown in FIG. 2) Out), and/or, for example, causing the buffer unit 216 and the decoded picture buffer unit 230 to form a buffer.
  • Other embodiments may be used to use the filtered block 221 and/or blocks or samples from the decoded picture buffer 230 (neither shown in FIG. 2) as an input or basis for intra prediction 254.
  • the loop filter unit 220 (or simply "loop filter” 220) is used to filter the reconstructed block 215 to obtain the filtered block 221, so as to smoothly perform pixel conversion or improve video quality.
  • the loop filter unit 220 is intended to represent one or more loop filters, such as deblocking filters, sample-adaptive offset (SAO) filters, or other filters, such as bilateral filters, Adaptive loop filter (adaptive loop filter, ALF), or sharpening or smoothing filter, or collaborative filter.
  • the loop filter unit 220 is shown as an in-loop filter in FIG. 2, in other configurations, the loop filter unit 220 may be implemented as a post-loop filter.
  • the filtered block 221 may also be referred to as the filtered reconstructed block 221.
  • the decoded picture buffer 230 may store the reconstructed encoding block after the loop filter unit 220 performs a filtering operation on the reconstructed encoding block.
  • the decoded picture buffer (decoded picture buffer, DPB) 230 may be a reference picture memory for storing reference picture data for the encoder 20 to encode video data.
  • DPB 230 can be formed by any of a variety of memory devices, such as dynamic random access memory (dynamic random access memory, DRAM) (including synchronous DRAM (synchronous DRAM, SDRAM), magnetoresistive RAM (magnetoresistive RAM, MRAM), resistive RAM (resistive RAM, RRAM)) or other types of memory devices.
  • DRAM dynamic random access memory
  • DRAM dynamic random access memory
  • MRAM magnetoresistive RAM
  • RRAM resistive RAM
  • the DPB 230 and the buffer 216 may be provided by the same memory device or separate memory devices.
  • a decoded picture buffer (DPB) 230 is used to store the filtered block 221.
  • the prediction processing unit 260 also known as the block prediction processing unit 260, is used to receive or acquire the image block 203 (current image block 203 of the current picture 201) and reconstructed picture data, such as the same (current) picture from the buffer 216 Reference samples and/or reference picture data 231 of one or more previously decoded pictures from the decoded picture buffer 230, and used to process such data for prediction, that is, to provide an inter prediction block 245 or The prediction block 265 of the intra prediction block 255.
  • An embodiment of the mode selection unit 262 may be used to select a prediction mode (for example, from those prediction modes supported by the prediction processing unit 260), which provides the best match or the minimum residual (the minimum residual means Better compression in transmission or storage), or provide minimum signaling overhead (minimum signaling overhead means better compression in transmission or storage), or consider or balance both at the same time.
  • the mode selection unit 262 may be used to determine a prediction mode based on rate distortion optimization (RDO), that is, to select a prediction mode that provides minimum bit rate distortion optimization, or to select a prediction mode in which the related bit rate distortion at least meets the prediction mode selection criteria .
  • RDO rate distortion optimization
  • the encoder 20 is used to determine or select the best or optimal prediction mode from the (predetermined) prediction mode set.
  • the set of prediction modes may include, for example, intra prediction modes and/or inter prediction modes.
  • the set of inter-prediction modes depends on the available reference pictures (ie, for example, the aforementioned at least partially decoded pictures stored in DBP 230) and other inter-prediction parameters, such as whether the entire reference picture is used or only used A part of the reference picture, for example a search window area surrounding the area of the current block, to search for the best matching reference block, and/or for example depending on whether pixel interpolation such as half-pixel and/or quarter-pixel interpolation is applied.
  • the set of inter prediction modes may include, for example, advanced motion vector (Advanced Motion Vector Prediction, AMVP) mode and merge mode.
  • AMVP Advanced Motion Vector Prediction
  • the set of inter prediction modes may include an improved control point-based AMVP mode according to an embodiment of the present application, and an improved control point-based merge mode.
  • the intra prediction unit 254 may be used to perform any combination of inter prediction techniques described below.
  • the embodiments of the present application may also apply skip mode and/or direct mode.
  • the prediction processing unit 260 may be further used to split the image block 203 into smaller block partitions or sub-blocks, for example, iteratively using quad-tree (QT) segmentation, binary-tree (BT) segmentation Or triple-tree (TT) partitioning, or any combination thereof, and for performing prediction for each of block partitions or sub-blocks, for example, where mode selection includes selecting the tree structure of the divided image block 203 and selecting the application The prediction mode for each of the block partitions or sub-blocks.
  • QT quad-tree
  • BT binary-tree
  • TT triple-tree
  • the inter prediction unit 244 may include a motion estimation (ME) unit (not shown in FIG. 2) and a motion compensation (MC) unit (not shown in FIG. 2).
  • the motion estimation unit is used to receive or acquire a picture image block 203 (current picture image block 203 of the current picture 201) and a decoded picture 231, or at least one or more previously reconstructed blocks, for example, one or more other/different
  • the reconstructed block of the previously decoded picture 231 is used for motion estimation.
  • the video sequence may include the current picture and the previously decoded picture 31, or in other words, the current picture and the previously decoded picture 31 may be part of the picture sequence forming the video sequence, or form the picture sequence.
  • the encoder 20 may be used to select a reference block from multiple reference blocks of the same or different pictures in multiple other pictures, and provide a reference picture and/or provide a reference to a motion estimation unit (not shown in FIG. 2)
  • the offset (spatial offset) between the position of the block (X, Y coordinates) and the position of the current block is used as an inter prediction parameter.
  • This offset is also called a motion vector (MV).
  • the motion compensation unit is used to acquire inter prediction parameters, and perform inter prediction based on or using inter prediction parameters to obtain inter prediction blocks 245.
  • the motion compensation performed by the motion compensation unit may include extracting or generating a prediction block based on a motion/block vector determined by motion estimation (possibly performing interpolation of sub-pixel accuracy). Interpolation filtering can generate additional pixel samples from known pixel samples, potentially increasing the number of candidate prediction blocks that can be used to encode picture blocks.
  • the motion compensation unit 246 may locate the prediction block pointed to by the motion vector in a reference picture list. Motion compensation unit 246 may also generate syntax elements associated with blocks and video slices for use by decoder 30 when decoding picture blocks of video slices.
  • the intra prediction unit 254 is used to acquire, for example, a picture block 203 (current picture block) that receives the same picture and one or more previously reconstructed blocks, such as reconstructed neighboring blocks, for intra estimation.
  • the encoder 20 may be used to select an intra prediction mode from a plurality of (predetermined) intra prediction modes.
  • Embodiments of the encoder 20 may be used to select an intra prediction mode based on optimization criteria, for example, based on a minimum residual (eg, an intra prediction mode that provides the prediction block 255 most similar to the current picture block 203) or minimum rate distortion.
  • a minimum residual eg, an intra prediction mode that provides the prediction block 255 most similar to the current picture block 203
  • minimum rate distortion e.g., a minimum rate distortion
  • the intra prediction unit 254 is further used to determine the intra prediction block 255 based on the intra prediction parameters of the intra prediction mode as selected. In any case, after selecting the intra-prediction mode for the block, the intra-prediction unit 254 is also used to provide the intra-prediction parameters to the entropy encoding unit 270, that is, to provide an indication of the selected intra-prediction mode for the block Information. In one example, the intra prediction unit 254 may be used to perform any combination of intra prediction techniques.
  • the above-mentioned intra-prediction unit 254 may transmit a syntax element to the entropy encoding unit 270, where the syntax element includes intra-prediction parameters (such as an intra-prediction mode selected for the current block prediction after traversing multiple intra-prediction modes) Instructions).
  • the intra prediction parameters may not be carried in the syntax element.
  • the decoding terminal 30 may directly use the default prediction mode for decoding.
  • the entropy coding unit 270 is used to convert the entropy coding algorithm or scheme (for example, variable length coding (VLC) scheme, context adaptive VLC (context adaptive VLC, CAVLC) scheme, arithmetic coding scheme, context adaptive binary arithmetic) Coding (context adaptive) binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partition entropy (probability interval interpartitioning entropy, PIPE) coding or other entropy Coding method or technique) applied to a single or all of the quantized residual coefficients 209, inter prediction parameters, intra prediction parameters, and/or loop filter parameters (or not applied) to obtain the output 272 to For example, the encoded picture data 21 output in the form of an encoded bit stream 21.
  • VLC variable length coding
  • CABAC context adaptive binary arithmetic) Coding
  • SBAC syntax-based context-adaptive binary arithmetic
  • the encoded bitstream may be transmitted to the video decoder 30 or archived for later transmission or retrieval by the video decoder 30.
  • the entropy encoding unit 270 may also be used to entropy encode other syntax elements of the current video slice being encoded.
  • video encoder 20 may be used to encode video streams.
  • the non-transform based encoder 20 may directly quantize the residual signal without the transform processing unit 206 for certain blocks or frames.
  • the encoder 20 may have a quantization unit 208 and an inverse quantization unit 210 combined into a single unit.
  • the video encoder 20 can directly quantize the residual signal without processing by the transform processing unit 206, and accordingly, without processing by the inverse transform processing unit 212; or, for some For image blocks or image frames, the video encoder 20 does not generate residual data, and accordingly does not need to be processed by the transform processing unit 206, quantization unit 208, inverse quantization unit 210, and inverse transform processing unit 212; or, the video encoder 20 may convert The reconstructed image block is directly stored as a reference block without being processed by the filter 220; alternatively, the quantization unit 208 and the inverse quantization unit 210 in the video encoder 20 may be merged together.
  • the loop filter 220 is optional, and in the case of lossless compression coding, the transform processing unit 206, quantization unit 208, inverse quantization unit 210, and inverse transform processing unit 212 are optional. It should be understood that the inter prediction unit 244 and the intra prediction unit 254 may be selectively enabled according to different application scenarios.
  • the decoder 30 includes an entropy decoding unit 304, an inverse quantization unit 310, an inverse transform processing unit 312, a reconstruction unit 314 (such as a summer 314), a buffer 316, a loop filter 320, a The decoded picture buffer 330 and the prediction processing unit 360.
  • the prediction processing unit 360 may include an inter prediction unit 344, an intra prediction unit 354, and a mode selection unit 362.
  • video decoder 30 may perform a decoding pass that is generally inverse to the encoding pass described with reference to video encoder 20 of FIG. 2.
  • the entropy decoding unit 304 is used to perform entropy decoding on the encoded picture data 21 to obtain, for example, quantized coefficients 309 and/or decoded encoding parameters (not shown in FIG. 3), for example, inter prediction, intra prediction parameters , Any or all of the loop filter parameters and/or other syntax elements (decoded).
  • the entropy decoding unit 304 is further used to forward inter prediction parameters, intra prediction parameters, and/or other syntax elements to the prediction processing unit 360.
  • Video decoder 30 may receive syntax elements at the video slice level and/or the video block level.
  • the prediction processing unit 360 may include an inter prediction unit 344 and an intra prediction unit 354, wherein the inter prediction unit 344 may be similar in function to the inter prediction unit 244, and the intra prediction unit 354 may be similar in function to the intra prediction unit 254 .
  • the prediction processing unit 360 is generally used to perform block prediction and/or obtain the prediction block 365 from the encoded data 21, and receive or obtain prediction-related parameters and/or information about the entropy decoding unit 304 (explicitly or implicitly). Information about the selected prediction mode.
  • the intra prediction unit 354 of the prediction processing unit 360 is used to signal-based the intra prediction mode and the previous decoded block from the current frame or picture. Data to generate a prediction block 365 for the picture block of the current video slice.
  • the inter prediction unit 344 eg, motion compensation unit
  • Other syntax elements generate a prediction block 365 for the video block of the current video slice.
  • a prediction block may be generated from a reference picture in a reference picture list.
  • the video decoder 30 may construct the reference frame lists: list 0 and list 1 based on the reference pictures stored in the DPB 330 using default construction techniques.
  • the prediction processing unit 360 is used to determine the prediction information for the video block of the current video slice by parsing the motion vector and other syntax elements, and use the prediction information to generate the prediction block for the current video block being decoded.
  • the prediction processing unit 360 uses some received syntax elements to determine the prediction mode (eg, intra or inter prediction) of the video block used to encode the video slice, and the inter prediction slice type ( For example, B slice, P slice, or GPB slice), construction information of one or more of the reference picture lists for slices, motion vectors for each inter-coded video block for slices, The inter prediction status and other information of each inter-coded video block of the slice to decode the video block of the current video slice.
  • the prediction mode eg, intra or inter prediction
  • the inter prediction slice type For example, B slice, P slice, or GPB slice
  • the syntax elements received by the video decoder 30 from the bitstream include an adaptive parameter set (adaptive parameter set, APS), sequence parameter set (SPS), and picture parameter set (picture parameter (set, PPS) or the syntax element in one or more of the stripe headers.
  • adaptive parameter set adaptive parameter set
  • SPS sequence parameter set
  • PPS picture parameter set
  • the inverse quantization unit 310 may be used to inverse quantize (ie, inverse quantize) the quantized transform coefficients provided in the bitstream and decoded by the entropy decoding unit 304.
  • the inverse quantization process may include using the quantization parameters calculated by the video encoder 20 for each video block in the video slice to determine the degree of quantization that should be applied and also determine the degree of inverse quantization that should be applied.
  • the reconstruction unit 314 (eg, summer 314) is used to add the inverse transform block 313 (ie, the reconstructed residual block 313) to the prediction block 365 to obtain the reconstructed block 315 in the sample domain, for example by The sample values of the reconstructed residual block 313 are added to the sample values of the prediction block 365.
  • the decoded video block 321 in a given frame or picture is then stored in a decoded picture buffer 330 that stores reference pictures for subsequent motion compensation.
  • the decoder 30 is used, for example, to output the decoded picture 31 through the output 332 for presentation to the user or for the user to view.
  • video decoder 30 may be used to decode the compressed bitstream.
  • the decoder 30 may generate the output video stream without the loop filter unit 320.
  • the non-transform based decoder 30 may directly inversely quantize the residual signal without the inverse transform processing unit 312 for certain blocks or frames.
  • the video decoder 30 may have an inverse quantization unit 310 and an inverse transform processing unit 312 combined into a single unit.
  • the decoder 30 is used to implement the video decoding method described in the embodiments below.
  • video decoder 30 may be used to decode the encoded video bitstream.
  • the video decoder 30 may generate an output video stream without processing by the filter 320; or, for certain image blocks or image frames, the entropy decoding unit 304 of the video decoder 30 does not decode the quantized coefficients, and accordingly does not It needs to be processed by the inverse quantization unit 310 and the inverse transform processing unit 312.
  • the loop filter 320 is optional; and in the case of lossless compression, the inverse quantization unit 310 and the inverse transform processing unit 312 are optional.
  • the inter prediction unit and the intra prediction unit may be selectively enabled.
  • the processing results for a certain link can be further processed and output to the next link, for example, in interpolation filtering, motion vector derivation or loop filtering, etc. After the link, the results of the corresponding link are further clipped or shift shifted.
  • the motion vector of the control point of the current image block derived from the motion vector of the adjacent affine coding block, or the motion vector of the sub-block derived from the current image block can be further processed, and this application does not do this limited.
  • the value range of the motion vector is constrained to be within a certain bit width. Assuming that the bit width of the allowed motion vector is bitDepth, the range of the motion vector is -2 bitDepth-1 ⁇ 2 bitDepth-1 -1. If bitDepth is 16, the value ranges from -32768 to 32767. If bitDepth is 18, the value ranges from -131072 to 131071.
  • the value of the motion vector (such as the motion vector MV of four 4 ⁇ 4 sub-blocks in an 8 ⁇ 8 image block) is constrained so that the integer parts of the four 4 ⁇ 4 sub-blocks MV
  • the maximum difference of is no more than N pixels, for example no more than one pixel.
  • FIG. 4 is a schematic structural diagram of a video decoding device 400 (for example, a video encoding device 400 or a video decoding device 400) provided by an embodiment of the present application.
  • the video coding apparatus 400 is suitable for implementing the embodiments described herein.
  • the video coding device 400 may be a video decoder (eg, decoder 30 of FIG. 1A) or a video encoder (eg, encoder 20 of FIG. 1A).
  • the video decoding device 400 may be one or more components in the decoder 30 of FIG. 1A or the encoder 20 of FIG. 1A described above.
  • the video decoding device 400 includes: an inlet port 410 for receiving data and a receiving unit (Rx) 420, a processor for processing data, a logic unit or a central processing unit (CPU) 430, and a transmitter unit for transmitting data (Tx) 440 and exit port 450, and a memory 460 for storing data.
  • the video decoding device 400 may further include a photoelectric conversion component and an electro-optical (EO) component coupled to the inlet port 410, the receiver unit 420, the transmitter unit 440, and the outlet port 450 for the outlet or inlet of the optical signal or the electrical signal.
  • EO electro-optical
  • the processor 430 is implemented by hardware and software.
  • the processor 430 may be implemented as one or more CPU chips, cores (eg, multi-core processors), FPGA, ASIC, and DSP.
  • the processor 430 communicates with the inlet port 410, the receiver unit 420, the transmitter unit 440, the outlet port 450, and the memory 460.
  • the processor 430 includes a decoding module 470 (for example, an encoding module 470 or a decoding module 470).
  • the encoding/decoding module 470 implements the embodiments disclosed herein to implement the video decoding method provided by the embodiments of the present application. For example, the encoding/decoding module 470 implements, processes, or provides various encoding operations.
  • the encoding/decoding module 470 provides a substantial improvement to the function of the video decoding device 400 and affects the conversion of the video decoding device 400 to different states.
  • the encoding/decoding module 470 is implemented with instructions stored in the memory 460 and executed by the processor 430.
  • the memory 460 includes one or more magnetic disks, tape drives, and solid-state hard disks, and can be used as an overflow data storage device for storing programs when these programs are selectively executed, as well as instructions and data read during program execution.
  • the memory 460 may be volatile and/or non-volatile, and may be read only memory (ROM), random access memory (RAM), random access memory (ternary content-addressable memory (TCAM), and/or static Random Access Memory (SRAM).
  • FIG. 5 is a simplified block diagram of an apparatus 500 that can be used as either or both of the source device 12 and the destination device 14 in FIG. 1A according to an exemplary embodiment.
  • the device 500 can implement the technology of the present application.
  • FIG. 5 is a schematic block diagram of an implementation manner of an encoding device or a decoding device (referred to simply as a decoding device 500) according to an embodiment of the present application.
  • the decoding device 500 may include a processor 510, a memory 530, and a bus system 550.
  • the processor and the memory are connected through a bus system, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory.
  • the memory of the decoding device stores program codes, and the processor can call the program codes stored in the memory to perform various video encoding or decoding methods described in this application. In order to avoid repetition, they are not described in detail here.
  • the processor 510 may be a central processing unit (Central Processing Unit, referred to as "CPU"), and the processor 510 may also be other general-purpose processors, digital signal processors (DSPs), and dedicated integrated Circuit (ASIC), ready-made programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
  • the general-purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
  • the bus system 550 may also include a power bus, a control bus, and a status signal bus. However, for clarity, various buses are marked as the bus system 550 in the figure.
  • the decoding device 500 may also include one or more output devices, such as a display 570.
  • the display 570 may be a tactile display that merges the display with a tactile unit that operably senses touch input.
  • the display 570 may be connected to the processor 510 via the bus 550.
  • Figure 6 describes the division of quadtree, binary tree and extended quadtree, among which:
  • QT is a tree structure, which means that a node can be divided into four child nodes.
  • Existing video coding standards use a quadtree-based CTU division method: CTU as the root node, each node corresponds to a square area; a node can no longer be divided (in this case, the corresponding area is a CU), or This node is divided into four next-level nodes, that is, the square area is divided into four square areas of the same size (the length and width of which are half of the length and width of the area before division), each area corresponds to a node . As shown in 6(a).
  • a binary tree is a tree structure, which means that a node can be divided into two child nodes.
  • a node on a binary tree structure may not be divided, or the node may be divided into two nodes at the next level.
  • the H.265 video coding standard divides a frame of images into non-overlapping coding tree units (CTU).
  • the size of the CTU can be set to 64 ⁇ 64 (the size of the CTU can also be set to other values, such as CTU in the JVET reference software JEM The size increases to 128 ⁇ 128 or 256 ⁇ 256).
  • a 64 ⁇ 64 CTU contains a rectangular pixel lattice of 64 pixels in each column and each pixel contains a luminance component or/and a chrominance component.
  • the CTU is used as the root node of the quad-tree, and the CTU is recursively divided into several leaf nodes (leaf) according to the quad-tree division method node).
  • a node corresponds to an image area. If the node is not divided, the node is called a leaf node, and its corresponding image area forms a CU; if the node continues to be divided, the image area corresponding to the node is divided into four areas of the same size (which The length and width are each half of the divided area), each area corresponds to a node, you need to determine whether these nodes will be divided.
  • the quad-tree level (qtDepth) of the root node is 0, and the quad-tree level of the node is the quad-tree level of the parent node of the node plus 1.
  • the size and shape of the node in the following refers to the size and shape of the image area corresponding to the node.
  • the leaf node When a node is parsed as a leaf node, the leaf node is a CU, and further parses the coding information corresponding to the CU (including the CU prediction mode, transform coefficients and other information, such as the coding_unit() syntax structure in H.265), Then, according to these coding information, the CU is subjected to decoding processing such as prediction, inverse quantization, inverse transform, and loop filtering to generate a reconstructed image corresponding to this CU.
  • the quadtree structure allows the CTU to be divided into a group of CUs of appropriate size according to the local characteristics of the image, for example, smooth regions are divided into larger CUs, and texture-rich regions are divided into smaller CUs.
  • a CTU divided into a group of CUs corresponds to a coding tree (coding tree).
  • the coding tree that the CTU should use is usually determined by the rate-distortion optimization (RDO) technology of the encoder.
  • RDO rate-distortion optimization
  • the encoder tries a variety of CTU division methods, each of which corresponds to a rate-distortion cost (RD cost); the encoder compares the RD costs of various tried division methods and finds the division method with the smallest RD cost as the CTU
  • the optimal division method is used for the actual coding of the CTU.
  • the various CTU division methods tried by the encoder need to meet the division rules specified by the decoder, so that these can be correctly recognized by the decoder.
  • VTM Very Video Coding Test Model
  • BT binary tree
  • TT ternary tree
  • each CU has a QT level (Quad-tree depth, QT depth, also called QT depth) and an MTT level (Multi-Type Tree depth, MTT depth, also called MTT depth).
  • QT level represents the QT level of the QT leaf node to which the CU belongs
  • MTT level represents the MTT level of the MTT leaf node to which the CU belongs.
  • the QT level of the root node of the coding tree is 0, and the MTT level is 0.
  • AVS3 added a binary tree (BT) division method and an extended quad-tree (EQT) division method on the basis of the quadtree division.
  • BT binary tree
  • EQT extended quad-tree
  • Binary tree division divides a node into two child nodes. There are two specific ways to divide a binary tree:
  • HBT Horizontal binary
  • Extended quadtree division divides a node into 4 sub-nodes. There are two specific ways to expand a quadtree:
  • VEQT Vertical Extended Quad-Tree
  • AVS3 uses the QT cascade BT/EQT division method, that is, the nodes on the first-level coding tree can only be divided into child nodes using QT.
  • the leaf nodes of the first-level coding tree are the root nodes of the second-level coding tree;
  • the nodes on the second-level coding tree can be divided into child nodes using one of the BT or EQT division methods;
  • the leaf nodes of the second-level coding tree are coding units. It should be noted that when a leaf node is divided into BT or EQT, its leaf nodes can only use BT or EQT, but not QT.
  • Intra prediction refers to using the pixel values of pixels in the reconstructed area in the current image to predict the pixel values of pixels in the current coding block.
  • Decoding is equivalent to the reverse process of encoding. For example, first, entropy decoding, inverse quantization and inverse transformation are used to obtain residual information, and the code stream is decoded to determine whether the current coding block uses intra prediction or inter prediction.
  • intra prediction prediction information is constructed according to the intra prediction method used by using pixel values of pixels in the surrounding reconstructed area. If it is inter prediction, you need to parse out the motion information, and use the parsed motion information to determine the reference block in the reconstructed image, and use the pixel values of the pixels in the block as prediction information. This process is called motion compensation. (Motion compensation, MC).
  • the reconstruction information can be obtained by using the prediction information plus the residual information through a filtering operation.
  • the current image block is an image block divided by the current image, corresponding to a node on the coding tree of the current image.
  • the current image block may be a CTU of the current image, or a sub-block obtained by dividing the CTU as the root node.
  • a sub-block of the next level obtained by dividing a sub-block of a certain level as a root node may also be used.
  • the block information of the current image block may include the size information of the current image block, such as the width, height, or area obtained based on the width and height of the current image block, and may also include the coordinates of the pixel points in the current image block.
  • the block information can also be other image-related information corresponding to the current image block. These block information can be parsed from the current image code stream .
  • Step 802 Determine whether the division modes in the set of optional division modes are available according to the block information.
  • the set of optional division methods includes at least one division method, for example, VBT division method, HBT division method, VEQT division method, HEQT division method, and QT division method.
  • Including no division method, that is, the current image block is a leaf node, which is used as a CU to perform encoding and decoding processing. It should be noted that the set of optional division methods may also include other division methods, which is not limited in this application.
  • the decoding device can decode normally by using this division method when decoding the current image block.
  • the first judgment condition set includes one or more of the following conditions.
  • the first judgment condition set may be a combination of conditions (1) and (3), or a combination of (1), (2), and (3):
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of the largest coding unit LCU, where MaxLCU is 128;
  • the current image block in this application exceeds the boundary of the image where the current image block is located does not mean that there are still pixel values in the range of the current image block beyond the image boundary, but it refers to a certain direction or The maximum coordinate value in both directions exceeds the coordinate value of the image boundary along the same direction.
  • pipelineSize is an integer greater than or equal to 16, such as 64;
  • the height of the current image block is larger than the pipelineSize, and the width is smaller than the pipelineSize.
  • the above second judgment condition set includes one or more of the following conditions.
  • the second judgment condition set may be a combination of conditions (1) and (5), or a combination of (1), (2), and (3):
  • the current image block is I slice or I frame, and the side length of the current image block is equal to MaxLCU, MaxLCU is the side length of LCU, where MaxLCU is 128;
  • N is a natural number less than 128, for example, N includes 64, 32, 16, 8, or 4, the default value is 64;
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width of the current image block is greater than K, and the height is equal to K, where K includes 128, 64, 32, 16, 8, or 4;
  • the width of the current image block is greater than pipelineSize, and the height is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1, such as 64;
  • the current image block exceeds the right or lower right border of the image where the current image block is located;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 8, such as 128;
  • the height of the current image block is equal to the minimum CU side length minCUSize, for example, minCUSize is 4 or 8;
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1, such as 8 or 4;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1;
  • the level of binary tree division and/or extended quadtree division of the current image block is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1, such as 10.
  • the third determination condition set includes one or more of the following conditions.
  • the third determination condition set may be a combination of conditions (1) and (3), or a combination of (1), (2), and (3):
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of LCU, where MaxLCU is 128;
  • M is a natural number less than 128, for example, M includes 64, 32, 16, 8, or 4, the default value is 64;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width of the current image block is equal to K, and the height is greater than K, where K includes 128, 64, 32, 16, 8, or 4;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1, such as 1/8 or 1/4;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 16, such as 128;
  • the width of the current image block is equal to the minimum CU side length minCUSize, for example, minCUSize is 4 or 8;
  • the current image block does not exceed the boundary of the image where the current image block is located, and the ratio of the height and width of the current image block is greater than or equal to maxRatio, and maxRatio is an integer greater than or equal to 1, such as 4;
  • the height of the current image block is greater than pipelineSize, and the width is less than or equal to pipelineSize, pipelineSize is an integer greater than or equal to 1, such as 64;
  • the level of binary tree division and/or extended quadtree division of the current image block is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1, such as 10.
  • the initial value of the hierarchy of the current image block for binary tree division and/or extended quadtree division is 0, and each time the current image block uses the BT division mode, the value of the hierarchy is increased by 1.
  • the fourth judgment condition set includes one or more of the following conditions.
  • the fourth judgment condition set may be a combination of conditions (1) and (4), or a combination of (1), (4), and (5):
  • the current image block is I slice or I frame, and the side length of the current image block is equal to MaxLCU, MaxLCU is the side length of LCU, where MaxLCU is 128;
  • N is a natural number less than 128, for example, N includes 64, 32, 16, 8, or 4, the default value is 64;
  • M is a natural number less than 128, for example, M includes 64, 32, 16, 8, or 4, the default value is 64;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, M and N are natural numbers less than 128, for example, M and N include 64 and 32, respectively , 16, 8, or 4, the default value is 64;
  • the ratio of the width and height of the current image block is equal to maxRatio, and maxRatio is an integer greater than or equal to 1, such as 8 or 4;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16, such as 64;
  • the height of the current image block is less than or equal to minCUSize ⁇ 2, or the width is equal to minCUSize, minCUSize is the minimum CU side length, such as 4 or 8;
  • the ratio of the width and height of the current image block is greater than or equal to maxRatioEQT, and maxRatioEQT is an integer greater than or equal to 1, such as 2;
  • the level of binary tree division and/or extended quadtree division of the current image block is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1, such as 10.
  • the initial value of the hierarchy of the current image block for binary tree division and/or extended quadtree division is 0, and each time the current image block uses the HEQT division mode, the value of the hierarchy is increased by 1.
  • the fifth judgment condition set includes one or more of the following conditions.
  • the fifth judgment condition set may be a combination of conditions (1) and (4), or a combination of (1), (4), and (5):
  • the current image block is I band or I frame, and the side length of the current image block is equal to MaxLCU, MaxLCU is the side length of LCU, where maxLCU is 128;
  • N is a natural number less than 128, for example, N includes 64, 32, 16, 8, or 4, the default value is 64;
  • M is a natural number less than 128, for example, M includes 64, 32, 16, 8, or 4, the default value is 64;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, M and N are natural numbers less than 128, for example, M and N include 64 and 32, respectively , 16, 8, or 4, the default value is 64;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1, such as 1/8 or 1/4;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16, such as 64;
  • the width of the current image block is less than or equal to minCUSize ⁇ 2, or the height is equal to minCUSize, minCUSize is the minimum CU side length, such as 4 or 8;
  • the level of binary tree division and/or extended quadtree division of the current image block is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1, such as 10.
  • the initial value of the level of the current image block for binary tree division and/or extended quadtree division is 0. Each time the current image block uses the VEQT division method, the value of this level is increased by 1.
  • the sixth judgment condition set includes one or more of the following conditions.
  • the sixth judgment condition set may be a combination of conditions (5) and (7), or a combination of (1), (2), and (6):
  • the size of the current image block is 128 ⁇ N, N is a natural number less than 128, for example, N includes 64, 32, 16, 8, or 4, the default value is 64;
  • M is a natural number less than 128, for example, M includes 64, 32, 16, 8, or 4, the default value is 64;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to, such as 1/8 or 1/4;
  • At least one side length of the current image block is less than minQtSize, minQtSize is an integer greater than or equal to 4, optional 64, 32, 16, 8, or 4, etc. The default value is 4;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than 0;
  • the current image block exceeds the lower or right boundary of the image where the current image block is located.
  • Step 803 Determine the division mode of the current image block from the determined available division modes.
  • the decoding device may determine the division mode of the current image block according to the judgment result of whether division modes in the selectable division mode set are available. That is, if the QT division method is available, and all division methods except the QT division method in the selectable division method set are unavailable, the current image block division method is the QT division method; if the QT division method is available, and the optional division method is available At least one division mode other than QT division mode in the set is available, then the code stream is parsed to determine the division mode of the current image block.
  • the current image block division method is the non-division method; if Non-division modes are available, and at least one division mode other than non-division modes and QT division modes is available in the set of available division modes, the code stream is parsed to determine the division mode of the current image block.
  • allowSplitBtHor determines whether the current image block is divided into a vertical division or a horizontal division in BT or EQT.
  • allowSplitBtVer determines whether the current image block is divided into a vertical division or a horizontal division in BT or EQT.
  • allowSplitBtVer determines whether the current image block is divided into a vertical division or a horizontal division in BT or EQT.
  • the decoding device can also parse the code stream to determine how to divide the current image block. For example, first analyze whether the division type is BT or EQT, and then analyze whether the division direction is vertical division or horizontal division; it is also possible to first analyze the division direction and then analyze the division type. The following is an example of analyzing the division type first and then the division direction.
  • the decoding device first parses from the code stream to obtain bqtSplitTypeFlag, and then parses to obtain bqtSplitDirFlag.
  • the current image block uses the VBT division method.
  • the current image block uses the HBT division method.
  • the current image block uses the VEQT division method.
  • the current image block uses the HEQT division method.
  • Step 804 Obtain a CU or multiple CUs from the current image block according to the division method of the current image block.
  • the current image block When the division mode of the current image block is non-division mode, the current image block is a CU; when the division mode of the current image block is any division mode in the set of optional division modes except non-division mode, according to the current image
  • the block division method divides the current image block. If at least one side length of the divided sub-block is T, T is 4 or 8, the sub-block is a CU, otherwise, the steps 802-803 are continued for the sub-block Determine the division method.
  • Step 805 Parse the code stream containing the current image block to obtain decoding information of one CU or multiple CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • the decoding device parses the syntax elements of each CU from the code stream of the image where the current image block is located, obtains prediction information and residual information of each CU, and performs inter prediction processing or intra prediction processing on the CU according to its prediction mode, Obtain the inter prediction image or intra prediction image of the CU.
  • the transform coefficients are subjected to inverse quantization and inverse transform processing to obtain a residual image, which is superimposed on the predicted image of the CU to obtain a reconstructed block of the CU.
  • the present application When obtaining the division mode of the current image block, the present application tries to avoid the transmission of division mode information in the code stream by judging whether the division mode is available, which improves the coding efficiency and reduces the computational complexity of video decoding.
  • the largest coding unit LCU When encoding a frame of image, first divide the image into equal-sized image blocks, called the largest coding unit LCU, and recursively divide an LCU to obtain one or more CUs.
  • the size of the LCU 128 ⁇ 128 or 64 ⁇ 64. Exemplarily, in the following description, it is assumed that the size of the LCU is 128 ⁇ 128, and the principle of the size of the LCU is 64 ⁇ 64 is similar to the principle of the size of the LCU is 128 ⁇ 128, and will not be repeated.
  • FIG. 9 is a flowchart illustrating a video decoding method according to an embodiment of the present application.
  • This process 900 may be performed by the video decoder 30.
  • the process 900 is described as a series of steps or operations. It should be understood that the process 900 may be performed in various orders and/or simultaneously, and is not limited to the order of execution shown in FIG. 9.
  • the method includes:
  • Step 901 Obtain block information of the current image block.
  • the block information can also be other image-related information corresponding to the current image block. These block information can be parsed from the current image code stream .
  • Step 902 Determine the default division mode of the current image block according to the block information.
  • the decoding device can determine the default division mode of the current image block according to the following method.
  • the default division mode means that the division mode of the current image block does not need to be obtained by parsing the code stream, and the default division mode is used to divide the current image block directly.
  • the above seventh judgment condition set includes one or more of the following conditions:
  • the current image block is I slice or I frame, and the width and height of the current image block are equal to maxLCU, maxLCU includes 64, 128 or 256, and the default value is 128.
  • the above eighth set of judgment conditions includes one or more of the following conditions:
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is less than L, and K and L are integers greater than or equal to 32, respectively , Optional 32, 64, 128 or 256, the default K is 64, L is 128, the current image block is forced to use VBT division;
  • the above ninth set of judgment conditions includes one or more of the following conditions:
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block do not meet: width equals K, height equals L, K is greater than L, and K and L are integers greater than or equal to 32, respectively , Optional 32, 64, 128 or 256, the default K is 128, L is 64, the current image block is forced to use HBT division;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block satisfy: width equal to K, height equal to L, K less than L, K and L are integers greater than or equal to 32, For example, K is 64 and L is 128, and the current image block is forced to use the HBT division method.
  • Step 903 Divide the current image block by a default division method to obtain multiple CUs.
  • Step 904 Parse the code stream containing the current image block to obtain decoding information of multiple CUs, and decode the CU according to the decoding information to obtain a reconstructed block.
  • the present application divides the current image block by default, thereby avoiding transmitting the information of the division mode in the code stream, improving coding efficiency, and reducing the computational complexity of video decoding.
  • the decoding device can determine whether the division method in the set of optional division methods is available according to the block information.
  • the set of optional division methods includes the VBT division method, the HBT division method, and the horizontal expansion quad.
  • Tree HEQT division method, vertical expansion quadtree VEQT division method and QT division method determine the division method of the current image block from the determined available division methods; the current image block is divided by the current image block division method.
  • CU parsing the code stream to obtain decoding information of multiple CUs, and decoding the CU according to the decoding information to obtain a reconstruction block.
  • MaxBtSize is transmitted in SPS, and can be 128, 64, 32 or 16, etc. The default value is 128.
  • MaxPartSizeRatio is transmitted in SPS, and can be 8, 4, or 2, etc. The default value is 8.
  • the width of the current image block is greater than pipelineSize, and the height is less than pipelineSize, and pipelineSize is an integer greater than or equal to 16;
  • the judgment module 1002 is specifically configured to judge whether the current image block meets the conditions in the second judgment condition set according to the block information; if the current image block meets the first At least one condition in the second judgment condition set, the HBT division mode is unavailable; if the current image block does not satisfy all the conditions in the second judgment condition set, the HBT division mode is available;
  • the second judgment condition set includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, and MaxLCU is the side length of the LCU;
  • the current image block exceeds the right or lower right border of the image where the current image block is located;
  • the height of the current image block is equal to the minimum CU side length
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module 1002 is specifically configured to judge whether the current image block meets the conditions in the third judgment condition set according to the block information; if the current image block meets the first At least one condition in the three determination condition set, the VBT division method is unavailable; if the current image block does not satisfy all the conditions in the third determination condition set, the VBT division method is available;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width of the current image block is equal to K, and the height is greater than K, where K includes 128, 64, 32, 16, 8, or 4;
  • At least one side length of the current image block is greater than maxBTSize, and maxBTSize is an integer greater than or equal to 16;
  • the height of the current image block is greater than pipelineSize, and the width is less than or equal to pipelineSize, and pipelineSize is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module 1002 is specifically configured to judge whether the current image block meets the conditions in the fourth judgment condition set according to the block information; if the current image block meets the first At least one condition in the four decision condition sets, the HEQT division method is unavailable; if the current image block does not satisfy all the conditions in the fourth decision condition set, the HEQT division method is available;
  • the fourth set of judgment conditions includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of the LCU;
  • the size of the current image block is M ⁇ 128, and M is a natural number less than 128;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, and M and N are natural numbers less than 128, respectively;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16;
  • the height of the current image block is less than or equal to minCUSize ⁇ 2, or the width is equal to minCUSize, and minCUSize is the minimum CU side length;
  • the ratio of the width to the height of the current image block is greater than or equal to maxRatioEQT, and maxRatioEQT is an integer greater than or equal to 1;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module 1002 is specifically configured to judge whether the current image block meets the conditions in the fifth judgment condition set according to the block information; if the current image block meets the first Five at least one condition in the judgment condition set, the VEQT division method is unavailable; if the current image block does not satisfy all the conditions in the fifth judgment condition set, the VEQT division method is available;
  • the fifth set of judgment conditions includes one or more of the following conditions:
  • the current image block is an I-slice or I frame, and the side length of the current image block is equal to MaxLCU, which is the side length of the LCU;
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, and M is a natural number less than 128;
  • the current image block exceeds the boundary of the image where the current image block is located, and the size of the current image block is 128 ⁇ N or M ⁇ 128, and M and N are natural numbers less than 128, respectively;
  • the ratio of the width and height of the current image block is equal to minRatio, minRatio is greater than 0 and less than or equal to 1;
  • At least one side length of the current image block is greater than maxEQTSize, and maxEQTSize is an integer greater than or equal to 16;
  • the width of the current image block is less than or equal to minCUSize ⁇ 2, or the height is equal to minCUSize, and minCUSize is the minimum CU side length;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than or equal to maxBTTDepth, and maxBTTDepth is an integer greater than or equal to 1.
  • the judgment module 1002 is specifically configured to judge whether the current image block meets the conditions in the sixth judgment condition set according to the block information; if the current image block meets the first At least one condition in the six determination condition sets, the QT division method is unavailable; if the current image block does not satisfy all the conditions in the sixth determination condition set, the QT division method is available;
  • the sixth set of judgment conditions includes one or more of the following conditions:
  • the size of the current image block is 128 ⁇ N, and N is a natural number less than 128;
  • the size of the current image block is M ⁇ 128, and M is a natural number less than 128;
  • the level of the current image block for binary tree division and/or extended quadtree division is greater than 0;
  • the current image block exceeds the lower or right boundary of the image where the current image block is located.
  • the determination module 1003 is specifically configured to determine the division method of the current image block according to a determination result of whether division methods in the set of optional division methods are available; or, parse the The code stream determines the division of the current image block.
  • FIG. 11 is a schematic block diagram of a video decoding apparatus 1100 in an embodiment of this application.
  • the video decoding device 1100 may include: an obtaining module 1101, used to obtain the block information of the current image block; a default module 1102, used to determine the default division mode of the current image block according to the block information; a division module 1103, used to Divide the current image block by the default division method to obtain multiple coding units CU; a decoding module 1104 is used to parse the code stream containing the current image block to obtain decoding information of the multiple CUs, and according to the The decoding information decodes the CU to obtain a reconstructed block.
  • the eighth determination condition set includes one or more of the following conditions:
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block satisfy: the width is equal to K, the height is equal to L, K is greater than L, K and L is an integer greater than or equal to 32, and the current image block is forced to use the VBT division method.
  • the default module 1102 is specifically configured to determine whether the current image block meets the conditions in the ninth determination condition set based on the block information; if the current image block meets the first 9. At least one condition in the set of judgment conditions, the default division mode is a horizontal binary tree HBT division mode;
  • the ninth determination condition set includes one or more of the following conditions:
  • the current image block exceeds the lower boundary of the image where the current image block is located, and the width and height of the current image block do not satisfy: the width is equal to K, the height is equal to L, and K is greater than L, K And L are integers greater than or equal to 32, respectively, and the current image block is forced to use the HBT division method;
  • the current image block exceeds the right boundary of the image where the current image block is located, and the width and height of the current image block satisfy: the width is equal to K, the height is equal to L, K is less than L, K and L is an integer greater than or equal to 32, and the current image block is forced to use the HBT division method.
  • FIG. 12 is a schematic block diagram of a video decoding apparatus 1100 in an embodiment of the present application.
  • the video decoding apparatus 1100 may further include: a judgment module 1105, configured to determine whether a division mode in an optional division mode set is available according to the block information, and the optional division mode set includes a VBT division mode and an HBT division mode Mode, horizontally expanding quadtree HEQT division mode, vertically expanding quadtree VEQT division mode and QT division mode; the determination module 1106 is used to determine the division mode of the current image block from the determined available division modes;
  • the dividing module 1103 is further used to divide the current image block by using the current image block division method to obtain multiple CUs; the decoding module 1104 is also used to parse the code stream to obtain the multiple CUs Decoding information, and decode the CU according to the decoding information to obtain a reconstructed block.
  • each module in the inter prediction apparatus of the embodiment of the present application is a functional body that implements various execution steps included in the inter prediction method of the present application, that is, it has The various steps of the steps and the functional body of the expansion and deformation of these steps, please refer to the introduction of the inter prediction method in this article for details. For the sake of brevity, this article will not repeat them.
  • Computer-readable media may include computer-readable storage media, which corresponds to tangible media, such as data storage media, or communication media including any medium that facilitates transfer of a computer program from one place to another (eg, according to a communication protocol).
  • computer-readable media may generally correspond to (1) non-transitory tangible computer-readable storage media, or (2) communication media, such as signals or carrier waves.
  • Data storage media may be any available media that can be accessed by one or more computers or one or more processors to retrieve instructions, code and/or data structures for implementation of the techniques described in this application.
  • the computer program product may include a computer-readable medium.
  • Such computer-readable storage media may include RAM, ROM, EEPROM, CD-ROM, or other optical disk storage devices, magnetic disk storage devices, or other magnetic storage devices, flash memory, or may be used to store instructions or data structures
  • the desired program code in the form of and any other medium that can be accessed by the computer. And, any connection is properly called a computer-readable medium.
  • coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technology such as infrared, radio, and microwave is used to transmit instructions from a website, server, or other remote source
  • coaxial cable Wire, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of media.
  • the computer-readable storage media and data storage media do not include connections, carrier waves, signals, or other temporary media, but are actually directed to non-transitory tangible storage media.
  • magnetic disks and optical discs include compact discs (CDs), laser discs, optical discs, digital versatile discs (DVDs), and Blu-ray discs, where magnetic discs typically reproduce data magnetically, while optical discs reproduce optically using lasers data. Combinations of the above should also be included in the scope of computer-readable media.
  • DSPs digital signal processors
  • ASICs application specific integrated circuits
  • FPGAs field programmable logic arrays
  • processors may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein.
  • the functions described in the various illustrative logical blocks, modules, and steps described herein may be provided within dedicated hardware and/or software modules configured for encoding and decoding, or in combination Into the combined codec.
  • the techniques can be fully implemented in one or more circuits or logic elements.

Landscapes

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

Abstract

L'invention concerne un procédé et un appareil de décodage de vidéos, ainsi qu'un dispositif de décodage. Le procédé consiste : à acquérir des informations de bloc du bloc actuel d'image ; à déterminer, selon les informations de bloc, si des moyens de division d'un ensemble de moyens facultatifs de division sont disponibles, l'ensemble de moyens facultatifs de division comprenant un moyen de non-division ; à déterminer, à partir des moyens disponibles déterminés de division, un moyen de division pour le bloc actuel d'image ; à obtenir, selon le moyen de division pour le bloc actuel d'image, une CU ou une pluralité de CU à partir du bloc actuel d'image, une CU s'obtenant à partir du bloc actuel d'image par application du moyen de non-division ; et à analyser un flux de codes comprenant le bloc actuel d'image, pour acquérir des informations de décodage de la CU ou de la pluralité de CU et à décoder la CU selon les informations de décodage, pour obtenir un bloc reconstruit. Par la mise en œuvre de la présente invention, lorsqu'un moyen de division est acquis pour le bloc actuel d'image, en déterminant si le moyen de division est disponible, on évite tant que possible la transmission des informations du moyen de division dans un flux de code, ce qui permet d'améliorer l'efficacité de codage et de réduire la complexité de calcul de décodage de vidéos.
PCT/CN2019/127872 2018-12-24 2019-12-24 Procédé et appareil de décodage de vidéos et dispositif de décodage WO2020135409A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/357,473 US11736706B2 (en) 2018-12-24 2021-06-24 Video decoding method and apparatus, and decoding device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201811584655 2018-12-24
CN201811584655.2 2018-12-24
CN201910222973.2A CN111355951B (zh) 2018-12-24 2019-03-22 视频解码方法、装置及解码设备
CN201910222973.2 2019-03-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/357,473 Continuation US11736706B2 (en) 2018-12-24 2021-06-24 Video decoding method and apparatus, and decoding device

Publications (1)

Publication Number Publication Date
WO2020135409A1 true WO2020135409A1 (fr) 2020-07-02

Family

ID=71128401

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/127872 WO2020135409A1 (fr) 2018-12-24 2019-12-24 Procédé et appareil de décodage de vidéos et dispositif de décodage

Country Status (1)

Country Link
WO (1) WO2020135409A1 (fr)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970526A (zh) * 2011-08-31 2013-03-13 华为技术有限公司 一种获得变换块尺寸的方法和模块
US20130114692A1 (en) * 2011-11-04 2013-05-09 Texas Instruments Incorporated Simplified Coefficient Scans for Non-Square Transforms (NSQT) in Video Coding
CN104170383A (zh) * 2012-03-15 2014-11-26 索尼公司 图像处理装置和方法
CN104754362A (zh) * 2014-01-01 2015-07-01 上海天荷电子信息有限公司 使用精细划分块匹配的图像压缩方法
CN104811731A (zh) * 2014-01-03 2015-07-29 上海天荷电子信息有限公司 多层次子块匹配图像压缩方法
CN107566848A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 编解码的方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102970526A (zh) * 2011-08-31 2013-03-13 华为技术有限公司 一种获得变换块尺寸的方法和模块
US20130114692A1 (en) * 2011-11-04 2013-05-09 Texas Instruments Incorporated Simplified Coefficient Scans for Non-Square Transforms (NSQT) in Video Coding
CN104170383A (zh) * 2012-03-15 2014-11-26 索尼公司 图像处理装置和方法
CN104754362A (zh) * 2014-01-01 2015-07-01 上海天荷电子信息有限公司 使用精细划分块匹配的图像压缩方法
CN104811731A (zh) * 2014-01-03 2015-07-29 上海天荷电子信息有限公司 多层次子块匹配图像压缩方法
CN107566848A (zh) * 2016-06-30 2018-01-09 华为技术有限公司 编解码的方法及装置

Similar Documents

Publication Publication Date Title
US11736706B2 (en) Video decoding method and apparatus, and decoding device
WO2020114510A1 (fr) Procédé et dispositif de prédiction pondérée utilisés pour un codage à hypothèses multiples
US11849109B2 (en) Image prediction method, apparatus, and system, device, and storage medium
WO2020125595A1 (fr) Codeur-décodeur vidéo, et procédé correspondant
CN112040229B (zh) 视频解码方法、视频解码器及计算机可读存储介质
US11924438B2 (en) Picture reconstruction method and apparatus
US11895297B2 (en) Prediction mode determining method and apparatus, encoding device, and decoding device
WO2020114394A1 (fr) Procédé de codage/décodage vidéo, codeur vidéo et décodeur vidéo
WO2020143589A1 (fr) Procédé et appareil de décodage vidéo, procédé et appareil de codage vidéo
WO2020135467A1 (fr) Procédé de prédiction inter-trames, dispositif et codeur et décodeur correspondants
CA3110477C (fr) Methode et appareil de partition d'image
CN116193146A (zh) 图像划分方法及装置
WO2020224476A1 (fr) Procédé, appareil et dispositif de division d'image
WO2020134817A1 (fr) Procédé et dispositif de détermination d'un mode de prédiction, dispositif de codage et dispositif de décodage
WO2021027799A1 (fr) Codeur vidéo et procédé de réglage qp
WO2020259353A1 (fr) Procédé de codage/décodage entropique d'élément syntaxique, dispositif et codec
WO2020114508A1 (fr) Procédé et appareil de codage/décodage de vidéo
WO2020147514A1 (fr) Codeur vidéo, décodeur vidéo et procédé correspondant
WO2020135615A1 (fr) Procédé et appareil de décodage d'images vidéo
WO2020135371A1 (fr) Procédé et dispositif de modélisation de contextes de bits indicateurs
WO2020114509A1 (fr) Procédé et appareil d'encodage et de décodage d'image de vidéo
WO2020135409A1 (fr) Procédé et appareil de décodage de vidéos et dispositif de décodage
WO2020143684A1 (fr) Procédé, dispositif, appareil et système de prédiction d'image et support d'enregistrement
WO2020259330A1 (fr) Procédé et dispositif de transformation non-séparable
WO2020125761A1 (fr) Procédé et dispositif de division de bloc-image

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: 19903423

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19903423

Country of ref document: EP

Kind code of ref document: A1