Video coding method and apparatus therefor

By introducing control switch flags below the sequence level into the bitstream, temporal partitioning prediction tools can be enabled at the video object level, solving the problem of low encoding and decoding efficiency in existing technologies and achieving more efficient video encoding and decoding.

CN119299714BActive Publication Date: 2025-11-04BEIJING DAJIA INTERNET INFORMATION TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411426417.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-12
Publication Date
2025-11-04
Estimated Expiration
2044-10-12

AI Technical Summary

Technical Problem

Existing video codec standards lack flexibility in controlling the temporal partitioning prediction tools for video content, resulting in low codec efficiency and an inability to adapt to the characteristics of different video content.

Method used

Introducing control switch flags below the sequence level into the bitstream allows the temporal partitioning prediction tool to be enabled at the picture level, strip level, or coding tree unit (CTU) level. This controls the partitioning information of video objects through syntax elements, improving the adaptability of the temporal partitioning prediction tool.

Benefits of technology

It improves the efficiency of video encoding and decoding, adapts to the characteristics of different video content, and enhances the accuracy and efficiency of encoding and decoding.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119299714B_ABST
    Figure CN119299714B_ABST
Patent Text Reader

Abstract

Video coding methods and apparatuses are provided. A video decoding method can include obtaining, from a bitstream, a first syntax element at a target level lower than a sequence level, wherein the first syntax element indicates whether a temporal partitioning prediction tool is enabled for a target prediction object corresponding to the target level, the temporal partitioning prediction tool being used to determine partitioning information of the target prediction object based on partitioning information of a temporal reference object of the target prediction object; determining, based on the first syntax element, whether the temporal partitioning prediction tool is enabled for the target prediction object; and performing, based on a determination that the temporal partitioning prediction tool is enabled for the target prediction object, prediction for the target prediction object using the temporal partitioning prediction tool.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to video coding and compression. More specifically, the present disclosure relates to a video coding method and apparatus therefor, an electronic device, and a non-transitory computer readable storage medium. BACKGROUND

[0002] Various electronic devices (e.g., digital televisions, laptop or desktop computers, tablet computers, digital cameras, digital recording devices, digital media players, video gaming consoles, smartphones, video teleconferencing devices, video streaming devices, etc.) support digital video. Electronic devices transmit and receive, or otherwise communicate, digital video data over communication networks and / or store digital video data on storage devices. Because the bandwidth capacity of communication networks and the storage capacity of storage devices are limited resources, video data can be compressed according to one or more video coding standards prior to being communicated or stored. For example, video coding standards include Versatile Video Coding (VVC), Joint Exploration Test Model (JEM), High Efficiency Video Coding (HEVC / H.265), Advanced Video Coding (AVC / H.264), Moving Picture Experts Group (MPEG) codecs, etc. Video coding typically employs prediction methods (e.g., inter-prediction, intra-prediction, etc.) that take advantage of redundancy inherent in video data. Video coding aims to compress video data into a form that uses a lower bit rate, while avoiding or minimizing loss in video quality. SUMMARY

[0003] Examples of the present disclosure provide a video coding method and apparatus therefor, an electronic device, and a non-transitory computer readable storage medium for high-level syntax in video coding.

[0004] According to a first aspect of the present disclosure, a video decoding method is provided, including: obtaining a first syntax element from a bitstream at a target level lower than a sequence level, wherein the first syntax element indicates whether a temporal partitioning prediction tool is enabled for a target prediction object corresponding to the target level, the temporal partitioning prediction tool being used to determine partitioning information of the target prediction object based on partitioning information of a temporal reference object of the target prediction object; determining whether the temporal partitioning prediction tool is enabled for the target prediction object based on the first syntax element; and performing prediction on the target prediction object using the temporal partitioning prediction tool based on a determination that the temporal partitioning prediction tool is enabled for the target prediction object.

[0005] Optionally, the target level includes one or more of the following levels: a picture level, a slice level, a coding tree unit (CTU) level.

[0006] Optionally, the first syntax element is ph_partitioning_prediction_flag and is set in a picture header or a picture parameter set.

[0007] Optionally, the obtaining the first syntax element from the bitstream at the target level lower than the sequence level comprises: obtaining a second syntax element from the bitstream at the sequence level, wherein the second syntax element indicates whether the temporal partitioning prediction tool is enabled for the sequence level; and based on a determination that the temporal partitioning prediction tool is enabled for the sequence level, obtaining the first syntax element at the target level.

[0008] Optionally, the method further comprises: based on a determination that the temporal partitioning prediction tool is not enabled for the sequence level, determining that the first syntax element is not present and inferring the first syntax element as zero.

[0009] According to a second aspect of the present disclosure, a video encoding method is provided, comprising: determining whether a temporal partitioning prediction tool is used for a target prediction object corresponding to a target level lower than a sequence level, wherein the temporal partitioning prediction tool is used to determine partitioning information of the target prediction object based on partitioning information of a temporal reference object of the target prediction object; determining a first syntax element for the target prediction object, wherein the first syntax element indicates whether the temporal partitioning prediction tool is used for the target prediction object; and signaling the first syntax element in a bitstream at the target level.

[0010] Optionally, the target level comprises one or more of the following levels: a picture level, a slice level, a coding tree unit (CTU) level.

[0011] Optionally, the first syntax element is ph_partitioning_prediction_flag and is set in a picture header or a picture parameter set.

[0012] Optionally, the method further comprises: determining whether the temporal partitioning prediction tool is available for the sequence level; determining a second syntax element for the sequence level, wherein the second syntax element indicates whether the temporal partitioning prediction tool is available for the sequence level; and signaling the second syntax element in the bitstream at the sequence level.

[0013] Optionally, the method further comprises: based on a determination that the temporal partitioning prediction tool is not used for the sequence level, determining that the temporal partitioning prediction tool is not used for the target level and the first syntax element is not signaled at the target level.

[0014] Optionally, the determining whether to use the time-domain partitioning prediction tool for the target prediction object corresponding to a target level lower than a sequence level comprises determining whether to use the time-domain partitioning prediction tool for the target prediction object based on at least one of a multi-channel encoding analysis result of the target prediction object and a pre-analysis result before encoding.

[0015] According to a third aspect of the present disclosure, there is provided an apparatus for video decoding, comprising one or more processors; and a memory coupled to the one or more processors and configured to store instructions executable by the one or more processors, wherein the one or more processors, when executing the instructions, are configured to perform the video decoding method according to the present disclosure.

[0016] According to a fourth aspect of the present disclosure, there is provided an apparatus for video encoding, comprising one or more processors; and a memory coupled to the one or more processors and configured to store instructions executable by the one or more processors, wherein the one or more processors, when executing the instructions, are configured to perform the video encoding method according to the present disclosure.

[0017] According to a fifth aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium for storing computer-executable instructions that, when executed by one or more computer processors, cause the one or more computer processors to receive a bitstream and perform the video decoding method according to the present disclosure based on the bitstream.

[0018] According to a sixth aspect of the present disclosure, there is provided a non-transitory computer-readable storage medium for storing computer-executable instructions that, when executed by one or more computer processors, cause the one or more computer processors to perform the video encoding method according to the present disclosure to encode a target prediction object into a bitstream and transmit the bitstream.

[0019] According to a seventh aspect of the present disclosure, there is provided a computer program product having instructions for storing a bitstream, wherein the bitstream comprises: video data to be decoded by the video decoding method according to the present disclosure; and / or video data generated by the video encoding method according to the present disclosure.

[0020] According to an eighth aspect of the present disclosure, there is provided a method for storing a bitstream, comprising: storing a bitstream on a computer-readable storage medium, wherein the bitstream comprises video data to be decoded by the video decoding method according to the present disclosure, and / or video data generated by the video encoding method according to the present disclosure.

[0021] It will be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0022] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate examples consistent with the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0023] Figure 1 is a block diagram illustrating an exemplary system for encoding and decoding video blocks according to some embodiments of the present disclosure.

[0024] Figure 2 is a block diagram illustrating an exemplary video encoder according to some embodiments of the present disclosure.

[0025] Figure 3 is a block diagram illustrating an exemplary video decoder according to some embodiments of the present disclosure.

[0026] Figures 4A to 4E is a block diagram illustrating how frames are recursively divided into multiple video blocks of different sizes and shapes according to some embodiments of the present disclosure.

[0027] Figure 5 is a flowchart of a video decoding method according to some embodiments of the present disclosure.

[0028] Figure 6 is a flowchart of a video encoding method according to some embodiments of the present disclosure.

[0029] Figure 7 is a diagram illustrating a computing environment coupled with a user interface according to some embodiments of the present disclosure. DETAILED DESCRIPTION

[0030] Reference will now be made in detail to specific implementations, examples of which are illustrated in the accompanying drawings. In the following detailed description, numerous non-limiting specific details are set forth in order to assist in understanding the subject matter presented herein. But various alternatives can be used without departing from the scope of the claims and the subject matter can be practiced without these specific details. For example, the subject matter presented herein can be implemented on many types of electronic devices having digital video capabilities.

[0031] It should be noted that the terms "first", "second", and the like, used in the description and in the claims of the present disclosure as well as the appended drawings, are used to distinguish between similar objects and are not necessarily used to describe a particular sequential or chronological order. It is to be understood that the use of such terms as "first", "second", and the like, are used in the context of the specification and claims to distinguish between objects that are similar but not necessarily in a sequential or chronological order.

[0032] Figure 1 is a block diagram illustrating an exemplary system 10 for encoding and decoding video blocks in parallel, in accordance with some embodiments of the present disclosure. As shown in Figure 1 System 10 includes a source device 12 that generates and encodes video data to be decoded at a later time by a destination device 14, as shown in

[0033] In some embodiments, destination device 14 can receive the encoded video data to be decoded via a link 16. The link 16 can comprise any type of communication medium or device capable of moving the encoded video data from source device 12 to destination device 14. In other embodiments, the encoded video data can be transmitted from output interface 22 to storage device 32. Subsequently, the encoded video data in storage device 32 can be accessed by destination device 14 via input interface 28.

[0034] As shown in Figure 1 Source device 12 includes a video source 18, video encoder 20, and an output interface 22. Video source 18 can include a source such as a video capture device, e.g., a video camera, a video archive containing previously captured video, a video feed interface to receive video from a video content provider, and / or a computer graphics system for generating computer graphics video as the source video.

[0035] The captured, pre-captured, or computer-generated video can be encoded by video encoder 20. The encoded video data can be transmitted directly to destination device 14 via output interface 22 of source device 12. The encoded video data can also (or alternatively) be stored onto storage device 32 for later access by destination device 14 or other devices, e.g., for decoding and / or playback.

[0036] Destination device 14 includes an input interface 28, a video decoder 30, and a display device 34. Input interface 28 can include a receiver and / or a modem, and receives encoded video data over link 16. The encoded video data communicated over link 16, or provided on storage device 32, can include a variety of syntax elements generated by video encoder 20 for use by video decoder 30 in decoding the video data. Such syntax elements can be included within the encoded video data transmitted on a communication medium, stored on a storage medium, or stored on a file server.

[0037] Video encoder 20 and video decoder 30 can operate according to a proprietary standard or industry standard, such as VVC, HEVC, MPEG-4, Part 10, AVC, or extensions of such standards. It should be understood that the application is not limited to a specific video coding / decoding standard and can be applicable to other video coding / decoding standards. It is generally contemplated that video encoder 20 of source device 12 can be configured to encode video data according to any of these current or future standards. Similarly, it is also generally contemplated that video decoder 30 of destination device 14 can be configured to decode video data according to any of these current or future standards.

[0038] Video encoder 20 and video decoder 30 can be implemented as any of a variety of suitable encoder and / or decoder circuitry, such as one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic circuitry, software, hardware, firmware or any combinations thereof. When implemented partially in software, an electronic device can store instructions for the software in a suitable, non- transitory computer-readable medium and execute the instructions in hardware using one or more processors to perform the video coding / decoding operations disclosed in the present disclosure. Each of video encoder 20 and video decoder 30 can be included in one or more encoders or decoders, either of which can be integrated as part of a combined encoder / decoder (CODEC) in a respective device.

[0039] Figure 2 is a block diagram illustrating an example video encoder 20, in accordance with some embodiments described in the present application. Video encoder 20 can perform intra-prediction encoding and inter-prediction encoding on video blocks within a video frame. Intra-prediction encoding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given video frame or picture. Inter-prediction encoding relies on temporal prediction to reduce or remove temporal redundancy in video data within neighboring video frames or pictures of a video sequence. It should be noted that in the field of video coding, the term “frame” can be used as a synonym for the term “image” or “picture.”

[0040] As Figure 2As shown, the video encoder 20 includes a video data memory 40, a prediction processing unit 41, a decoded picture buffer (DPB) 64, an adder 50, a transform processing unit 52, a quantization unit 54, and an entropy coding unit 56. The prediction processing unit 41 further includes a motion estimation unit 42, a motion compensation unit 44, a partitioning unit 45, an intra-frame prediction processing unit 46, and an intra-frame block copying (BC) unit 48. In some embodiments, the video encoder 20 also includes an inverse quantization unit 58, an inverse transform processing unit 60, and an adder 62 for video block reconstruction. A loop filter 63, such as a deblocking filter, can be located between the adder 62 and the DPB 64 to filter block boundaries to remove block artifacts from the reconstructed video. In addition to the deblocking filter, another loop filter (e.g., a sample adaptive offset (SAO) filter, a cross-component sample adaptive offset (CCSAO) filter, and / or an adaptive loop filter (ALF)) can be used to filter the output of the adder 62. In some examples, the loop filter can be omitted, and the decoded video block can be directly provided to the DPB 64 by the adder 62. The video encoder 20 can take the form of a fixed or programmable hardware unit, or it can be distributed among one or more of the fixed or programmable hardware units described.

[0041] The video data storage device 40 can store video data encoded by the components of the video encoder 20. For example, it can store data from... Figure 1 The video source 18 shown obtains video data from the video data storage 40. The DPB 64 is a buffer that stores reference video data (e.g., reference frames or pictures) used by the video encoder 20 (e.g., in intra-frame or inter-frame predictive coding mode) when encoding the video data.

[0042] like Figure 2 As shown, after receiving video data, the partitioning unit 45 within the prediction processing unit 41 partitions the video data into video blocks. This partitioning may also include dividing the video frame into strips, tiles (e.g., sets of video blocks) or other larger coding units (CUs) according to a predefined splitting structure (e.g., a quadtree (QT) structure) associated with the video data. It should be noted that the term "block" or "video block" as used herein can be a portion of a frame or image, particularly a rectangular (square or non-square) portion. Referring to, for example, HEVC and VVC, a block or video block can be or corresponds to a coding tree unit (CTU), CU, prediction unit (PU), or transform unit (TU) and / or can be or corresponds to a corresponding block (e.g., coding tree block (CTB), coding block (CB), prediction block (PB), or transform block (TB)) and / or sub-block.

[0043] Prediction processing unit 41 can select one of a plurality of possible predictive encoding modes, e.g., one of a plurality of intra-predictive encoding modes or one of a plurality of inter-predictive encoding modes, for the current video block based on the error results (e.g., coding rate and level of distortion). Prediction processing unit 41 can provide the resulting intra- or inter-predicted block to summer 50 to generate a residual block, and to summer 62 to reconstruct the encoded block for use as part of a reference frame at a later time. Prediction processing unit 41 also provides syntax elements, e.g., motion vectors, intra-mode indicators, partitioning information, and other such syntax information, to entropy encoding unit 56.

[0044] To select an appropriate intra-predictive encoding mode for the current video block, intra-prediction processing unit 46 within prediction processing unit 41 can perform intra-predictive encoding of the current video block in relation to one or more neighboring blocks in the same frame as the current block being encoded to provide spatial prediction. Motion estimation unit 42 and motion compensation unit 44 within prediction processing unit 41 perform inter-predictive encoding of the current video block in relation to one or more predictive blocks in one or more reference frames to provide temporal prediction. Video encoder 20 can perform multiple encoding passes, e.g., to select a suitable encoding mode for each block of video data.

[0045] In some implementations, motion estimation unit 42 determines an inter-prediction mode for a current video frame by generating motion vectors according to a predetermined pattern within a sequence of video frames, the motion vectors indicating displacement of video blocks within the current video frame relative to predictive blocks within a reference video frame. Motion estimation performed by motion estimation unit 42 is a process of generating motion vectors that estimate motion for video blocks. For example, a motion vector can indicate displacement of a video block within a current video frame or picture relative to a predictive block within a reference frame that is related to a current block being encoded within the current frame. The predetermined pattern can designate video frames in the sequence as P-frames or B-frames. Intra-BC unit 48 can determine vectors for intra-BC encoding (e.g., block vectors) in a similar manner as motion vectors determined by motion estimation unit 42 for inter-prediction, or can utilize block vectors determined by motion estimation unit 42.

[0046] Whether the predictive block is from the same frame according to intra-prediction or a different frame according to inter-prediction, video encoder 20 can form pixel difference values by subtracting pixel values of the predictive block from pixel values of the current video block being encoded, thereby forming a residual video block. The pixel difference values forming the residual video block can include both luma component differences and chroma component differences.

[0047] Intra prediction processing unit 46 can encode the current block using various intra prediction modes, e.g., during a separate encoding pass, and can select a suitable intra prediction mode to use from the tested intra prediction modes (or, in some examples, the mode selection unit). Intra prediction processing unit 46 can provide information indicating the selected intra prediction mode for the block to entropy encoding unit 56. Entropy encoding unit 56 can encode information indicating the selected intra prediction mode in the bitstream.

[0048] After prediction processing unit 41 determines a prediction block for the current video block via either inter prediction or intra prediction, summer 50 forms a residual video block by subtracting the prediction block from the current video block. The residual video data in the residual block can be included in one or more TUs and is provided to transform processing unit 52. Transform processing unit 52 transforms the residual video data into residual transform coefficients using a transform, e.g., a discrete cosine transform (DCT) or a conceptually similar transform.

[0049] Transform processing unit 52 can send the resulting transform coefficients to quantization unit 54. Quantization unit 54 quantizes the transform coefficients to further reduce bit rate. The quantization process can also reduce the bit depth associated with some or all of the coefficients. The degree of quantization can be modified by adjusting a quantization parameter. In some examples, quantization unit 54 can then perform a scan of the matrix including the quantized transform coefficients. Alternatively, entropy encoding unit 56 can perform the scan.

[0050] After quantization, entropy encoding unit 56 entropy encodes the quantized transform coefficients using, e.g., context adaptive variable length coding (CAVLC), context adaptive binary arithmetic coding (CABAC), syntax-based context-adaptive binary arithmetic coding (SBAC), probability interval partitioning entropy (PIPE) coding, or another entropy encoding methodology or technique, into a video bitstream. The encoded bitstream can then be transmitted to video decoder 30, as shown in FIG. 3, or archived, as shown in FIG. 4, for later transmission to or retrieval by video decoder 30. Entropy encoding unit 56 can also entropy encode motion vectors and other syntax elements for the current video frame being encoded. Figure 1 Figure 1

[0051] ​​The inverse quantization unit 58 and the inverse transform processing unit 60 apply inverse quantization and inverse transform, respectively, to reconstruct the residual video block in the pixel domain for generating a reference block used to predict other video blocks. As noted above, the motion compensation unit 44 can generate a motion compensated prediction block from one or more reference blocks of a frame stored in the DPB 64. The motion compensation unit 44 can also apply one or more interpolation filters to the prediction block to calculate sub-integer pixel values for use in motion estimation.

[0052] The summer 62 adds the reconstructed residual block to the motion compensated prediction block produced by the motion compensation unit 44 to produce a reference block for storage in the DPB 64. The reference block can then be used by the intra BC unit 48, the motion estimation unit 42, and the motion compensation unit 44 as a prediction block to inter predict another video block in a subsequent video frame.

[0053] Figure 3 FIG. 1 is a block diagram illustrating an example video decoder 30 according to some embodiments of the present application. The video decoder 30 includes a video data memory 79, an entropy decoding unit 80, a prediction processing unit 81, an inverse quantization unit 86, an inverse transform processing unit 88, a summer 90, and a DPB 92. The prediction processing unit 81 further includes a motion compensation unit 82, an intra prediction unit 84, and an intra BC unit 85. The video decoder 30 can perform a decoding process substantially reciprocal to the encoding process described above in connection with the video encoder 20. Figure 2 The decoding process described in connection with the video encoder 20 is substantially reciprocal. For example, the motion compensation unit 82 can generate prediction data based on motion vectors received from the entropy decoding unit 80, while the intra prediction unit 84 can generate prediction data based on intra prediction mode indicators received from the entropy decoding unit 80.

[0054] In some examples, embodiments of the present disclosure can be dispersed among one or more of the units of the video decoder 30. For example, the intra BC unit 85 can perform embodiments of the present application alone or in combination with other units of the video decoder 30, such as the motion compensation unit 82, the intra prediction unit 84, and the entropy decoding unit 80. In some examples, the video decoder 30 can not include the intra BC unit 85, and the functionality of the intra BC unit 85 can be performed by other components of the prediction processing unit 81, such as the motion compensation unit 82.

[0055] The video data memory 79 can store video data, such as an encoded video bitstream, to be decoded by the other components of the video decoder 30. The video data stored in the video data memory 79 can be obtained, for example, from the storage device 32, from a local video source, such as a camera, via wired or wireless network communication of video data, or by accessing a physical data storage medium, such as a flash drive or hard disk.

[0056] During the decoding process, video decoder 30 receives an encoded video bitstream that represents encoded video frames and associated syntax elements of video blocks. Entropy decoding unit 80 of video decoder 30 entropy decodes the bitstream to generate quantized coefficients, motion vectors or intra prediction mode indicators, and other syntax elements. Entropy decoding unit 80 then forwards the motion vectors or intra prediction mode indicators, and other syntax elements to prediction processing unit 81.

[0057] When a video frame is coded as an intra-predicted coded (I) frame or an intra coded prediction block in other types of frames, intra prediction unit 84 of prediction processing unit 81 can generate prediction data for a video block of the current video frame based on the intra-prediction mode signaled and reference data from previously decoded blocks of the current frame.

[0058] When a video frame is coded as an inter-predicted coded (i.e., B or P) frame, motion compensation unit 82 of prediction processing unit 81 produces one or more prediction blocks for a video block of the current video frame based on the motion vectors and other syntax elements received from entropy decoding unit 80. Each of the prediction blocks can be produced from a reference frame within one of the reference frame lists. Video decoder 30 can construct the reference frame lists, i.e., List 0 and List 1, using default construction techniques based on reference frames stored in DPB 92.

[0059] In some examples, when a video block is encoded according to the intra BC mode described herein, intra BC unit 85 of prediction processing unit 81 produces a prediction block for the current video block based on the block vector and other syntax elements received from entropy decoding unit 80. The prediction block can be within a reconstructed region of the same picture as the current video block, as defined by video encoder 20.

[0060] Motion compensation unit 82 and / or intra BC unit 85 determine the prediction information for a video block of the current video frame by parsing the motion vectors and other syntax elements, and then use the prediction information to produce a prediction block for the current video block being decoded.

[0061] Motion compensation unit 82 can also perform interpolation to calculate interpolated values for sub-integer pixels of reference blocks using interpolation filters as used by video encoder 20 during encoding of the video blocks. In this case, motion compensation unit 82 can determine the interpolation filters used by video encoder 20 from the syntax elements received, and use these interpolation filters to produce the prediction blocks.

[0062] Inverse quantization unit 86 inverse quantizes quantized transform coefficients provided in the bitstream and entropy decoded by entropy decoding unit 80 using the same quantization parameter calculated by video encoder 20 for each video block in the video frame to determine a degree of quantization. Inverse transform processing unit 88 applies an inverse transform, e.g., an inverse DCT, an inverse integer transform, or a conceptually similar inverse transform process, to the transform coefficients in order to reconstruct the residual blocks in the pixel domain.

[0063] After motion compensation unit 82 or intra BC unit 85 generates the prediction block for the current video block based on the vectors and other syntax elements, adder 90 reconstructs the decoded video block for the current video block by adding the residual block from inverse transform processing unit 88 to the corresponding prediction block generated by motion compensation unit 82 and intra BC unit 85. In-loop filter 91, e.g., a de-blocking filter, a SAO filter, a CCSAO filter, and / or an ALF, can be located between adder 90 and DPB 92 to further process the decoded video block. In some examples, in-loop filter 91 can be omitted, and the decoded video block can be directly provided by adder 90 to DPB 92. The decoded video blocks in a given frame are then stored in DPB 92, which stores reference frames for subsequent motion compensation of video blocks that follow. DPB 92 or a memory device separate from DPB 92 can also store decoded video for later presentation on a display device (e.g., display device 34 of FIG. 1). Figure 1

[0064] As shown in FIG. 1, video encoder 20 and video decoder 30 are coupled over video data bus 32. Video data bus 32 can comprise a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30. Video data bus 32 can be implemented as a wired or wireless communication medium, and can comprise a single communication link that is shared by video encoder 20 and video decoder 30, or multiple communication links, e.g., a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30 and a unidirectional channel for transmitting control data from video decoder 30 to video encoder 20. Figure 4A As shown in FIG. 1, video encoder 20 and video decoder 30 are coupled over video data bus 32. Video data bus 32 can comprise a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30. Video data bus 32 can be implemented as a wired or wireless communication medium, and can comprise a single communication link that is shared by video encoder 20 and video decoder 30, or multiple communication links, e.g., a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30 and a unidirectional channel for transmitting control data from video decoder 30 to video encoder 20. Figure 4B As shown in FIG. 1, video encoder 20 and video decoder 30 are coupled over video data bus 32. Video data bus 32 can comprise a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30. Video data bus 32 can be implemented as a wired or wireless communication medium, and can comprise a single communication link that is shared by video encoder 20 and video decoder 30, or multiple communication links, e.g., a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30 and a unidirectional channel for transmitting control data from video decoder 30 to video encoder 20. As shown in FIG. 1, video encoder 20 and video decoder 30 are coupled over video data bus 32. Video data bus 32 can comprise a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30. Video data bus 32 can be implemented as a wired or wireless communication medium, and can comprise a single communication link that is shared by video encoder 20 and video decoder 30, or multiple communication links, e.g., a unidirectional channel for transmitting encoded video data from video encoder 20 to video decoder 30 and a unidirectional channel for transmitting control data from video decoder 30 to video encoder 20.

[0065] To achieve better performance, the video encoder 20 can recursively perform tree partitioning on the coding tree blocks of the CTU, such as binary tree partitioning, ternary tree partitioning, quadtree partitioning, or combinations thereof, and divide the CTU into smaller CUs. Figure 4C As described, the 64×64 CTU 400 is first divided into four smaller CUs, each with a block size of 32×32. Of these four smaller CUs, CU 410 and CU 420 are each divided into four CUs with a block size of 16×16. The two 16×16 CUs, 430 and CU 440, are further divided into four CUs with a block size of 8×8. Figure 4D Depicting as shown Figure 4C The final result of the partitioning process of the CTU 400 described in the figure is a quadtree data structure, where each leaf node of the quadtree corresponds to a CU of a corresponding size ranging from 32×32 to 8×8. Similar to... Figure 4B The CTU depicted in the image can include, for example, two corresponding coded blocks (CBs) of luminance and chrominance samples of the same size frame, as well as syntax elements for encoding the samples of the coded blocks. In monochrome images or images with three separate color planes, a CU can include a single coded block and a syntax structure for encoding the samples of the coded block. It should be noted that... Figure 4C and Figure 4D The quadtree partitioning depicted is for illustrative purposes only, and a CTU can be split into multiple CUs based on quadtree / ternary / binary partitioning to adapt to varying local characteristics. In multi-type tree structures, a CTU is partitioned according to a quadtree structure, and each quadtree leaf CU can be further partitioned according to binary and ternary tree structures. Figure 4E As shown, a coding block with width W and height H has five possible partitioning types: quad partitioning, horizontal binary partitioning, vertical binary partitioning, horizontal triple partitioning, and vertical triple partitioning.

[0066] In the H.266 / VVC standard, the CTU (Computer Unit) is used as the basic unit of encoding, dividing a frame of image into multiple CTUs for encoding. Unlike the H.265 / HEVC standard, in the H.266 / VVC standard, a CU can be square or rectangular. A CTU may contain only one CU (without partitioning) or may be divided into multiple CUs. CTUs can be partitioned according to multi-type tree (MTT) structures such as BT, TT, and QT, and the leaf nodes after partitioning can be further partitioned using the MTT structure.

[0067] The split state of each node is identified by split_cu_flag, split_qt_flag, mtt_split_cu_vertical_flag, mtt_split_cu_binary_flag, etc. For example, split_cu_flag identifies whether the node is further split; when split_cu_flag = 1, split_qt_flag identifies whether the node is split by QT; when split_qt_flag = 0, it is further identified whether the node is split by BT or TT, mtt_split_cu_vertical_flag indicates the split direction (1 indicates vertical split; 0 indicates horizontal split), and mtt_split_cu_binary_flag indicates the split type (1 indicates BT split; 0 indicates TT split). It should be noted that the setting order of these syntax elements is related to the priority of the CU or CTU in the selection of the split. For example, for each QT node, if it is further split, QT split or horizontal BT (HBT), vertical BT (VBT), horizontal TT (HTT), and vertical TT (VTT) split can be used. Once BT or TT split is performed, if the node is further split, only HBT, VBT, HTT, and VTT split can be used, and QT split cannot be performed. Therefore, the priority of split_qt_flag is before mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag.

[0068] In addition, in order to further remove the redundancy of the above-mentioned MTT split scheme, a time domain split prediction scheme (also referred to as a time domain split prediction tool) is proposed, which mainly involves the following operations:

[0069] Parameter collection and use: after the encoding of the reference frame is completed, time domain split prediction parameters for subsequent use can be collected, such as the minimum QT depth (also referred to as the minimum QT split depth) in the time domain reference region, the average QT depth (also referred to as the average QT split depth), the maximum MTT depth (also referred to as the maximum MTT split depth), and the average maximum MTT depth (also referred to as the average maximum MTT split depth). The time domain split prediction parameters can be obtained and stored after each frame of image is encoded. For example, for a reference frame, the QT depth and the MTT depth can be counted in 16x16 granularity. When the current CU or CTU is used, the corresponding time domain split prediction parameters can be collected based on the same block (the size of the same block is the size of the CTU) of the reference frame, i.e., according to the collected 16x16 granularity information of the reference frame, four parameters for the same block are calculated, which are the minimum QT depth, the average QT depth, the maximum MTT depth, and the average maximum MTT depth. The four parameters can be used for the split prediction of the current CU or CTU.

[0070] Prediction of partition mode: Prioritize QT split according to the minimum and average QT depth of reference pictures. Restrict the current partition mode based on the calculated minimum QT depth and average QT depth. For example, if the current QT depth is less than the minimum QT depth of temporal reference -1, only allow no split and QT split, or if the current QT depth is less than the average QT depth -1, allow QT split, TT split and no split, and allow BT split in case the parent node is TT split.

[0071] Adaptive adjustment of MTT depth: Based on several coding information features such as frame type of reference pictures, picture order count difference (POC difference), quantization parameter (QP), temporal layer, temporal ID, collected temporal partition parameters such as maximum and average of QT depth, average and maximum of maximum MTT depth, adaptively adjust the maximum MTT depth, allowing deeper or shallower local region partition, i.e. adaptively increase or decrease the maximum MTT depth according to temporal information.

[0072] Order adjustment of syntax elements of QT split: If the current QT depth is less than the average QT depth of temporal reference, it indicates that the priority of QT is higher at this time, and split_qt_flag should be placed before split_cu_flag.

[0073] Determine the partition mode of CU or CTU using the temporal partition prediction tool and the syntax elements related to the partition state.

[0074] In the current partition prediction scheme, only a flag about the temporal partition prediction tool is added at the sequence level. For example, there is only a control switch at the sequence level for enabling the temporal partition prediction tool, such as defining a control switch flag in the sequence parameter set (SPS).

[0075] However, this temporal partition prediction tool is closely related to video content and also closely related to coding control parameters such as QP, inherently has temporal dependency (i.e. the relevance of the current frame to the reference frame), and is more sensitive to QP and video content. That is, the effectiveness of the temporal partition prediction tool varies greatly on different sequence content, and this temporal partition prediction tool cannot be well applied to all video frames. If only a control switch flag at the sequence level is used, it will result in lower coding efficiency. Therefore, it is necessary to further improve the adaptive ability of the temporal partition prediction tool.

[0076] In view of the above problems, according to the present disclosure, a switch flag below the sequence level is provided, so that the enabling of the temporal partitioning prediction tool can be more accurately controlled, thereby improving the coding efficiency. The embodiments of the present disclosure will be described in detail below.

[0077] Figure 5 is a flowchart of a video decoding method according to some embodiments of the present disclosure. Figure 5 The prevention shown can be performed by a decoder as shown in Figure 3 The decoder shown can be executed.

[0078] Referring to Figure 5 In step 501, a first syntax element is obtained from a bitstream at a target level below the sequence level, wherein the first syntax element indicates whether the temporal partitioning prediction tool is enabled for a target prediction object corresponding to the target level, and the temporal partitioning prediction tool is used to determine the partitioning information of the target prediction object based on the partitioning information of a temporal reference object of the target prediction object.

[0079] According to an embodiment of the present disclosure, the target level can include one or more of a picture level, a slice level, and a coding tree unit (CTU) level.

[0080] In the case where the target level is the picture level, the target prediction object can be a current picture. In the case where the target level is the slice level, the target prediction object can be a current slice. In the case where the target level is the CTU level, the target prediction object can be a current CTU.

[0081] According to the temporal partitioning prediction tool of the present disclosure, the temporal partitioning prediction tool can be configured to use a reference picture of a current picture for prediction of the current picture, use a co-located slice or a block larger than the slice size in the reference picture of the current picture for prediction of the current slice, and use a co-located CTU or a block larger than the CTU size in the reference picture of the current picture for prediction of the current CTU.

[0082] In the case where the first syntax element is for the picture level, adaptive switch control of the temporal partitioning prediction tool at the picture level can be implemented. At this time, the first syntax element can be used to control the partitioning decision and / or the encoding and decoding mode related to the partitioning of all coding blocks in the current picture. For example, the first syntax element at the picture level can be used to control whether to turn on a switch for enabling the temporal partitioning prediction tool in the current frame, and in the case where the switch is turned on, all coding blocks (such as CUs) in the current picture can be predicted using the temporal partitioning prediction tool. The temporal partitioning prediction tool at the picture level can be used to determine the partitioning information of the current picture based on the partitioning information of the reference picture of the current picture. Here, the partitioning information can include, but is not limited to, the minimum QT depth, the average QT depth, the maximum MTT depth, and the average maximum MTT depth, and the like.

[0083] In the case that the first syntax element is for slice level, adaptive on-off control of the temporal partitioning prediction tool at slice level can be implemented. In this case, the first syntax element can be used to control the partitioning decision and / or the encoding and decoding manner regarding the partitioning for all coding blocks in the current slice. The temporal partitioning prediction tool at slice level can be used to determine the partitioning information of the current slice based on the partitioning information of the reference slice in the reference picture of the current slice.

[0084] For example, the first syntax element can be ph_partitioning_prediction_flag, and can be set in the picture header or the picture parameter set.

[0085] The improvements of the picture header syntax elements in the VVC standard of the present disclosure are shown below, as described in Tables 1 and 2 below. The first syntax elements newly added in Tables 1 and 2 are shown in bold italic font.

[0086] Table 1

[0087] … Descriptor ph partitioning prediction flag ue(v) … if(ph_inter_slice_allowed_flag){ if(ph_partition_constraints_override_flag){ ph_log2_diff_min_qt_min_cb_inter_slice ue(v) ph_max_mtt_hierarchy_depth_inter_slice ue(v) if(ph_max_mtt_hierarchy_depth_inter_slice!= 0){ ph_log2_diff_max_bt_min_qt_inter_slice ue(v) ph_log2_diff_max_tt_min_qt_inter_slice ue(v) } } …

[0088] Table 2

[0089]

[0090]

[0091] The position of the above-mentioned first syntax element is only exemplary, and the present disclosure is not limited thereto.

[0092] At step 502, it is determined based on the first syntax element whether the temporal partitioning prediction tool is enabled for the target prediction object.

[0093] After obtaining the first syntax element, it can be determined based on the value of the first syntax element whether the temporal partitioning prediction tool is enabled. For example, when the value of the first syntax element is 1, it can be determined that the temporal partitioning prediction tool is enabled. When the value of the first syntax element is 0, it can be determined that the temporal partitioning prediction tool is not enabled.

[0094] At step 503, based on the determination that the temporal partitioning prediction tool is enabled for the target prediction object, prediction is performed on the target prediction object using the temporal partitioning prediction tool.

[0095] In the case that the temporal partitioning prediction tool is enabled, the partitioning manner of the target prediction object can be determined in combination with the temporal partitioning prediction tool and the syntax elements related to the partitioning state described above.

[0096] According to an embodiment of the disclosure, before obtaining the first syntax element from the bitstream, a second syntax element can be obtained from the bitstream at a sequence level, wherein the second syntax element indicates whether the temporal partitioning prediction tool is enabled for the sequence level, and then the first syntax element is obtained at a target level based on a determination that the temporal partitioning prediction tool is enabled for the sequence level. The second syntax element can be a control switch of the temporal partitioning prediction tool at the sequence level.

[0097] For example, in a case where the target level is an image level, the second syntax element for the sequence level can be obtained from the bitstream first. The second syntax element can indicate whether the temporal partitioning prediction tool is enabled for the image sequence. In a case where it is determined that the temporal partitioning prediction tool is enabled for the image sequence, it is indicated that the temporal partitioning prediction tool can be used for each image in the image sequence, and then whether the temporal partitioning prediction tool is used for each image in the image sequence can be further determined by the first syntax element. In a case where it is determined that the temporal partitioning prediction tool is not enabled for the sequence level, it is indicated that the temporal partitioning prediction tool is not used for each image in the image sequence, and then it can be determined that the first syntax element does not exist and the first syntax element is inferred to be zero.

[0098] For example, in a case where the target level is an image level, the second syntax element for the sequence level can be obtained from the bitstream first. The second syntax element can indicate whether the temporal partitioning prediction tool is enabled for the image sequence. In a case where it is determined that the temporal partitioning prediction tool is enabled for the image sequence, it is indicated that the temporal partitioning prediction tool can be used for each image in the image sequence, and then whether the temporal partitioning prediction tool is used for the current slice can be further determined by the first syntax element. In a case where it is determined that the temporal partitioning prediction tool is not enabled for the image sequence, it is indicated that the temporal partitioning prediction tool is not used for each image in the image sequence, and then it can be determined that the first syntax element does not exist and the first syntax element is inferred to be zero.

[0099] According to an embodiment of the disclosure, in a case where the temporal partitioning prediction tool is enabled for the image sequence, the first syntax element can be obtained at a target level lower than the sequence level to further determine whether the temporal partitioning prediction tool is enabled for a target prediction object corresponding to the target level. In a case where the temporal partitioning prediction tool is not enabled for the image sequence, the first syntax element can not be obtained and the first syntax element is directly inferred to be zero.

[0100] According to another embodiment of the disclosure, a corresponding syntax element for controlling the enabling of the temporal split prediction tool can be set at each level in the sequence level and each level below the sequence level, such as the picture level, the slice level and the CTU level. For example, in the case that the temporal split prediction tool can be enabled for a picture sequence, it can be determined whether the temporal split prediction tool can be enabled for each picture in the picture sequence; in the case that it is determined that the temporal split prediction tool can be enabled for the current picture, it can be further determined whether the temporal split prediction tool can be enabled for each slice in the current picture, and so on.

[0101] According to the disclosure, by adding the control switch of the temporal split prediction tool at the target level below the sequence level, the temporal dependency of the video can be better controlled (such as the control dependency of the video frame can be controlled since the temporal split prediction can introduce additional frame-level reference dependency), so as to better meet the requirements of the video coding function and improve the compression performance.

[0102] Figure 6 is a flowchart of a video encoding method according to some embodiments of the disclosure. Figure 6 The video encoding method shown can be performed by Figure 2 The encoder shown.

[0103] Referring to Figure 6 In step 601, it is determined whether the temporal split prediction tool is used for a target prediction object corresponding to a target level below the sequence level, wherein the temporal split prediction tool is used to determine the partitioning information of the target prediction object based on the partitioning information of the temporal reference object of the target prediction object.

[0104] According to an embodiment, the target level can include one or more of the following levels: picture level, slice level, coding tree unit (CTU) level.

[0105] It can be determined whether the temporal split prediction tool is used for the target prediction object based on at least one of the multi-pass encoding analysis result and the pre-analysis result before encoding the target prediction object.

[0106] For example, in the case that the target prediction object is a current picture, it can be determined whether the temporal split prediction tool is used based on the content or image features of the current picture. For another example, the texture distribution of the entire picture can be pre-analyzed to determine whether the temporal split prediction tool is used. For another example, it can be determined whether the temporal split prediction tool is used based on the actual MTT depth selection result. The above examples are only exemplary, and the disclosure is not limited thereto.

[0107] In step 602, a first syntax element for the target prediction object is determined, wherein the first syntax element indicates whether the temporal split prediction tool is used for the target prediction object.

[0108] For example, in a case where it is determined to use the temporal partitioning prediction tool for the target prediction object, a value of the first syntax element can be determined as 1. In a case where it is determined not to use the temporal partitioning prediction tool for the target prediction object, the value of the first syntax element can be determined as 0 or not exist.

[0109] The first syntax element can be ph partitioning prediction flag and be set in a picture header or a picture parameter set, like the first syntax element added in the picture header shown in Table 1 or Table 2 above.

[0110] In step 603, the first syntax element is signaled in the bitstream at the target level.

[0111] For example, in a case where it is determined that the value of the first syntax element is 1, the first syntax element can be signaled.

[0112] According to an embodiment of the present disclosure, it can be determined whether the temporal partitioning prediction tool can be used for a sequence level; a second syntax element for the sequence level is determined, where the second syntax element indicates whether the temporal partitioning prediction tool can be used for the sequence level; the second syntax element is signaled in the bitstream at the sequence level.

[0113] In a case where it is determined not to use the temporal partitioning prediction tool for the sequence level, it can be determined not to use the temporal partitioning prediction tool for the target level and not to signal the first syntax element at the target level.

[0114] In a case where it is determined to use the temporal partitioning prediction tool for the sequence level, it can be further determined whether the temporal partitioning prediction tool is used for a target prediction object corresponding to a target level lower than the sequence level to determine the first syntax element for the target level.

[0115] The above method can be implemented using an apparatus comprising one or more circuits, including an application-specific integrated circuit (ASIC), a digital signal processor (DSP), a digital signal processing device (DSPD), a programmable logic device (PLD), a field programmable gate array (FPGA), a controller, a microcontroller, a microprocessor, or other electronic components. The apparatus can use the circuit in combination with other hardware or software components to perform the above method. Each module, submodule, unit or subunit disclosed above can be implemented at least partially using one or more circuits.

[0116] Figure 7 A computing environment 1610 coupled with a user interface 1650 is shown. The computing environment 1610 can be part of a data processing server. The computing environment 1610 includes a processor 1620, a memory 1630, and an input / output (I / O) interface 1640.

[0117] The processor 1620 generally controls the overall operation of the computing environment 1610, e.g., operations associated with display, data acquisition, data communication, and image processing. The processor 1620 can include one or more processors for executing instructions to perform all or some of the steps in the above-described methods. In addition, the processor 1620 can include one or more modules that facilitate interaction between the processor 1620 and other components. The processor can be a central processing unit (CPU), a microprocessor, a microcontroller, a graphics processing unit (GPU), etc.

[0118] The memory 1630 is configured to store various types of data to support the operation of the computing environment 1610. The memory 1630 can include predetermined software 1632. Examples of such data include instructions for any application or method operating on the computing environment 1610, video data sets, image data, etc. The memory 1630 can be implemented by using any type of volatile or non-volatile memory devices, or a combination thereof, such as static random access memory (SRAM), electrically erasable programmable read-only memory (EEPROM), erasable programmable read-only memory (EPROM), programmable read-only memory (PROM), read-only memory (ROM), magnetic memory, flash memory, a magnetic disk, or an optical disk.

[0119] The I / O interface 1640 provides an interface between the processor 1620 and peripheral interface modules (e.g., a keyboard, a click wheel, a button, etc.). The button can include, but is not limited to, a home button, a start scanning button, and a stop scanning button. The I / O interface 1640 can be coupled with an encoder and a decoder.

[0120] In an embodiment, there is also provided a non-transitory computer readable storage medium including, for example, a plurality of programs in the memory 1630 and / or storing a bitstream generated by the encoding method described above or a bitstream to be decoded by the decoding method described above, which can be executed by the processor 1620 in the computing environment 1610 for performing the above-described methods. In one example, the plurality of programs can be executed by the processor 1620 in the computing environment 1610 to (e.g., from Figure 2The bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or associated one or more syntax elements, etc.) can be received by a video decoder 30 in a video decoding device 60, and can also be executed by a processor 62 in the video decoding device 60 for performing the above-mentioned decoding method according to the received bitstream or data stream. In another example, the plurality of programs can be executed by the processor 62 in the video decoding device 60 for performing the above-mentioned encoding method to encode video information (e.g., video blocks representing video frames, and / or associated one or more syntax elements, etc.) into a bitstream or data stream, and can also be executed by the processor 62 in the video decoding device 60 for (e.g., transmitting to Figure 3 The bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or associated one or more syntax elements, etc.) can be received by a video decoder 30 in a video decoding device 60, and can also be executed by a processor 62 in the video decoding device 60 for performing the above-mentioned decoding method according to the received bitstream or data stream. In another example, the plurality of programs can be executed by the processor 62 in the video decoding device 60 for performing the above-mentioned encoding method to encode video information (e.g., video blocks representing video frames, and / or associated one or more syntax elements, etc.) into a bitstream or data stream, and can also be executed by the processor 62 in the video decoding device 60 for (e.g., transmitting to Figure 2 The bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or associated one or more syntax elements, etc.) can be received by a video decoder 30 in a video decoding device 60, and can also be executed by a processor 62 in the video decoding device 60 for performing the above-mentioned decoding method according to the received bitstream or data stream. In another example, the plurality of programs can be executed by the processor 62 in the video decoding device 60 for performing the above-mentioned encoding method to encode video information (e.g., video blocks representing video frames, and / or associated one or more syntax elements, etc.) into a bitstream or data stream, and can also be executed by the processor 62 in the video decoding device 60 for (e.g., transmitting to Figure 3 The bitstream or data stream including encoded video information (e.g., video blocks representing encoded video frames, and / or associated one or more syntax elements, etc.) can be received by a video decoder 30 in a video decoding device 60, and can also be executed by a processor 62 in the video decoding device 60 for performing the above-mentioned decoding method according to the received bitstream or data stream. In another example, the plurality of programs can be executed by the processor 62 in the video decoding device 60 for performing the above-mentioned encoding method to encode video information (e.g., video blocks representing video frames, and / or associated one or more syntax elements, etc.) into a bitstream or data stream, and can also be executed by the processor 62 in the video decoding device 60 for (e.g., transmitting to

[0121] In an embodiment, a bitstream generated by the above-mentioned encoding method or to be decoded by the above-mentioned decoding method is provided. In an embodiment, a bitstream including encoded video information generated by the above-mentioned encoding method or to be decoded by the above-mentioned decoding method is provided.

[0122] In an embodiment, a computing device is also provided, including one or more processors (e.g., the processor 1620), and a non-transitory computer-readable storage medium or memory 1630 in which a plurality of programs that can be executed by the one or more processors are stored, wherein the one or more processors, when executing the plurality of programs, are configured to perform the above-mentioned method.

[0123] In an embodiment, a computer program product having instructions for storing or transmitting a bitstream including encoded video information generated by the above-mentioned encoding method or to be decoded by the above-mentioned decoding method is also provided. In an embodiment, a computer program product including a plurality of programs in, for example, the memory 1630, which can be executed by the processor 1620 in the computing environment 1610 for performing the above-mentioned method is also provided. For example, the computer program product can include a non-transitory computer-readable storage medium.

[0124] In an embodiment, the computing environment 1610 can be implemented by one or more ASICs, DSPs, Digital Signal Processing Devices (DSPDs), programmable logic devices (PLDs), FPGAs, GPUs, controllers, micro-controllers, microprocessors, or other electronic components, for performing the above-described methods.

[0125] In an embodiment, a method of storing a bitstream is also provided, including: storing the bitstream on a digital storage medium, wherein the bitstream includes encoded video information generated by the above-described encoding method or encoded video information to be decoded by the above-described decoding method.

[0126] In an embodiment, a method for transmitting a bitstream generated by the above-described encoder is also provided. In an embodiment, a method for receiving a bitstream to be decoded by the above-described decoder is also provided.

[0127] The description of the present disclosure has been presented for purposes of illustration and is not intended to be exhaustive or limited to the disclosure as set forth in the above description and the associated drawings. Many modifications, variations, and alternative embodiments will be apparent to those skilled in the art based on the teachings from the above description and associated drawings.

[0128] Unless otherwise specified, the order of steps of the method according to the present disclosure is only intended to be illustrative, and the steps of the method according to the present disclosure are not limited to the order specifically described above, but can be changed according to the actual situation. In addition, at least one of the steps of the method according to the present disclosure can be adjusted, combined or deleted according to actual needs.

[0129] Examples are chosen and described in order to explain the principles of the present disclosure and to enable others skilled in the art to best utilize the various embodiments of the present disclosure, and to best utilize the various embodiments for the intended purposes and with various modifications as are suited to the particular use or implementation. Accordingly, it is to be understood that the scope of the present disclosure is not to be limited to the specific examples disclosed and that modifications and other embodiments are intended to be included within the scope of the present disclosure.

Claims

1. A method of video decoding, comprising: obtaining, from a bitstream, a first syntax element at a target level lower than a sequence level, wherein the first syntax element indicates whether a temporal partitioning prediction tool is enabled for a target prediction object corresponding to the target level, the temporal partitioning prediction tool being used to determine partitioning information of the target prediction object based on partitioning information of a temporal reference object of the target prediction object; determining, based on the first syntax element, whether the temporal partitioning prediction tool is enabled for the target prediction object; and based on determining that the temporal partitioning prediction tool is enabled for the target prediction object, performing prediction for the target prediction object using the temporal partitioning prediction tool, wherein the obtaining, from the bitstream, the first syntax element at the target level lower than the sequence level, comprises: obtaining, from the bitstream, a second syntax element at the sequence level, wherein the second syntax element indicates whether the temporal partitioning prediction tool can be enabled for the sequence level, based on determining that the temporal partitioning prediction tool can be enabled for the sequence level, obtaining the first syntax element at the target level.

2. The method of claim 1, wherein, the target level comprises one or more of the following levels: a picture level, a slice level, a coding tree unit (CTU) level.

3. The method of claim 1, wherein, the first syntax element is ph_partitioning_prediction_flag and is set in a picture header or a picture parameter set.

4. The method of claim 1, further comprising: based on determining that the temporal partitioning prediction tool is not enabled for the sequence level, determining that the first syntax element is not present and inferring the first syntax element to be zero.

5. A method of video encoding, comprising: determining whether a temporal partitioning prediction tool is used for a target prediction object corresponding to a target level lower than a sequence level, wherein the temporal partitioning prediction tool is used to determine partitioning information of the target prediction object based on partitioning information of a temporal reference object of the target prediction object; determining a first syntax element for the target prediction object, wherein the first syntax element indicates whether the temporal partitioning prediction tool is used for the target prediction object; signaling the first syntax element in a bitstream at the target level, wherein the method further comprises: determining whether the temporal partitioning prediction tool can be used for the sequence level; determining a second syntax element for the sequence level, wherein the second syntax element indicates whether the temporal partitioning prediction tool can be used for the sequence level; signaling the second syntax element in the bitstream at the sequence level.

6. The method of claim 5, wherein, the target level comprises one or more of the following levels: a picture level, a slice level, a coding tree unit (CTU) level.

7. The method of claim 5, wherein, the first syntax element is ph_partitioning_prediction_flag and is set in a picture header or a picture parameter set.

8. The method of claim 5, further comprising: based on the determination that the temporal partitioning prediction tool is not used for the sequence level, determining that the temporal partitioning prediction tool is not used for the target level and not signaling the first syntax element at the target level.

9. The method of claim 5, wherein, The determining whether to use the temporal partitioning prediction tool for a target prediction object corresponding to a target level lower than a sequence level comprises: based on at least one of a multi-channel encoding analysis result of the target prediction object and a pre-analysis result before encoding, determining whether to use the temporal partitioning prediction tool for the target prediction object.

10. An apparatus for video coding, comprising: one or more processors; and a memory coupled to the one or more processors and configured to store instructions executable by the one or more processors, wherein the one or more processors, when executing the instructions, are configured to perform the method according to any one of claims 1-9.

11. A non-transitory computer-readable storage medium storing computer-executable instructions that, when executed by one or more computer processors, cause the one or more computer processors to perform the method according to any one of claims 1-9.

12. A computer program product having computer-executable instructions that, when executed by one or more computer processors, cause the one or more computer processors to perform the method according to any one of claims 1-9.

13. A method of storing a bitstream, comprising: storing a bitstream on a computer-readable storage medium, wherein the bitstream comprises video data decoded according to the method of any one of claims 1-4, and / or video data generated by the method of any one of claims 5-9.

Citation Information

Patent Citations

  • Tile based addressing in video coding

    CN112690004A

  • Reference picture list and co-located picture signaling in video coding

    CN115191117A