Image and video encoding and decoding.

BR112025021035A2Pending Publication Date: 2026-08-25
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
BR112025021035
Authority / Receiving Office
BR · BR
Patent Type
Applications
Publication Date
2026-08-25

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader
Need to check novelty before this filing date? Find Prior Art

Description

1 / 93 “IMAGE AND VIDEO ENCODING AND DECODING” FIELD OF THE INVENTION

[0001] The present invention relates to the encoding and decoding of image and video data and particularly, but not exclusively, image and video partitioning data. FUNDAMENTALS OF THE INVENTION

[0002] The Joint Video Expert Team (JVET), a collaborative team formed by MPEG and VCEG from ITU-T Study Group 16, has released a new video coding standard called Versatile Video Coding (VVC). The goal of VVC is to provide significant improvements in compression performance compared to the existing HEVC standard (i.e., typically twice the previous performance). Key target applications and services include, among others, 360-degree and high dynamic range (HDR) video. Particular effectiveness has been demonstrated in ultra-high-definition (UHD) video test material. Thus, compression efficiency gains well beyond the 50% target for the final standard can be expected.

[0003] Since the end of the VVC v1 standardization, JVET has begun an exploration phase, establishing an exploration software (ECM). It brings together additional tools and enhancements to existing tools based on the VVC standard to achieve better coding efficiency. SUMMARY OF THE INVENTION

[0004] According to one aspect of the invention, a method is provided for encoding or decoding image data into or from a bitstream, the bitstream including data indicating a partitioning of the image data into a plurality of blocks according to an encoding tree, wherein the blocks in the encoding tree can be partitioned according to one or more types of division, the method comprising: obtaining, for a current block to be decoded, a parameter used to partition a current block of image data based on at least one other parameter to partition the image data. Petition 870250088580, dated 09 / 30 / 2025, page 15 / 155 2 / 93

[0005] According to another aspect of the invention, a method is provided for encoding or decoding image data in or from a bitstream, the bitstream including data indicating a partitioning of the image data into a plurality of blocks according to an encoding tree, wherein the blocks in the encoding tree can be partitioned according to one or more division types, the method comprising: obtaining, for a current block to be decoded, a parameter indicating a maximum partitioning depth of at least one division type using at least one other parameter associated with the image data.

[0006] Advantages include increased coding efficiency and possibly a reduction in encoder execution time as a result of reduced encoder complexity.

[0007] The maximum partitioning depth can be a multitree maximum partitioning depth, indicating a maximum partitioning depth for a plurality of split types.

[0008] At least one other parameter is optionally obtained based on another parameter for the current block.

[0009] The maximum partitioning depth can indicate a multitree maximum partitioning depth, which indicates the maximum partitioning depth for a binary tree split and a ternary tree split.

[0010] At least one other parameter is based on the quadtree depth of the current block or the size of the current block.

[0011] The maximum multitree partitioning depth obtained is optionally based on a comparison of the parameter with a reference value. The reference value can be signaled in a bitstream header. The reference value can be based on a depth different from the quadtree depth of the current block.

[0012] The reference value may be related to a quadtree depth value associated with at least one area of ​​another frame. Petition 870250088580, dated 09 / 30 / 2025, page 16 / 155 3 / 93

[0013] The reference value may be based on an average quadtree depth determined from at least one area of ​​another frame.

[0014] The reference value can be based on a minimum quadtree depth determined from at least one area of ​​another frame.

[0015] The reference value can be based on a maximum multitree depth or on an average multitree depth determined from at least one area of ​​another frame.

[0016] The method may involve increasing a current maximum multitree depth to obtain the maximum multitree depth for the current block, according to one or more rules or conditions based on the quadtree depth value and the reference depth value.

[0017] For example, when the quadtree depth value matches the reference quadtree depth value, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block.

[0018] Alternatively, or additionally, when the quadtree depth value equals the reference value minus 1, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block.

[0019] Optionally, it is also necessary that the reference quadtree value correspond to a minimum quadtree value associated with an area of ​​one or more reference frames in order for the current maximum multitree depth to be increased.

[0020] Optionally, the reference quadtree value must match the maximum quadtree depth for the current frame in order for the current maximum multitree depth to be increased. The method may additionally or alternatively include reducing the current maximum multitree depth to obtain the maximum multitree depth for the current block, according to one or more rules or conditions based on the quadtree depth value and the reference depth value. Petition 870250088580, dated 09 / 30 / 2025, page 17 / 155 4 / 93

[0021] For example, when the quadtree depth value does not match the reference quadtree depth value, reduce the current maximum multitree depth to obtain the maximum multitree depth for the current block.

[0022] Alternatively or additionally, when the quadtree depth value does not match the reference quadtree depth value minus 1, the current maximum multitree depth is reduced to obtain the maximum multitree depth for the current block.

[0023] Optionally, when the quadtree depth value is greater than the reference depth value, the current maximum multitree depth is reduced for the current block.

[0024] Optionally, the reduction of the current maximum multitree depth for the current block, when the quadtree depth value is greater than the reference depth value, is applied only when the reference depth value is obtained from an area of ​​another frame code with higher quality than the current frame.

[0025] Optionally, when the quadtree depth value is less than the reference depth value minus an offset, reduce the current maximum multitree depth for the current block. The offset can be one.

[0026] Optionally, the reduction of the current maximum multitree depth for the current block, when the quadtree depth value is less than the reference depth value minus an offset, is applied only when the reference depth value is obtained from an area of ​​another frame code with lower quality than the current frame.

[0027] Optionally, when the reference depth value is less than the quadtree depth value, reduce the current maximum multitree depth for the current block.

[0028] The quadtree depth value can be a quadtree depth value for the current frame. Petition 870250088580, dated 09 / 30 / 2025, p. 18 / 155 5 / 93

[0029] Optionally, in the case where the maximum multitree depth is reduced, the maximum multitree depth is set to zero.

[0030] Obtaining the maximum multitree depth for the current block can involve using a function of the quadtree depth value and the reference quadtree depth value.

[0031] For example, the function can be any of the following: MaxMttDepth = 2 * QTDepthTempo - QTDepth +1, MaxMttDepth = min(2 * QTDepthTempo - QTDepth +1, MaxMttDepth), and MaxMttDepth = min(QTDepth- (QTDepthTempo-2) + 1, MaxMttDepth+1),

[0032] where MaxMttDepth is the maximum multitree depth, QTDepth is the quadtree depth of the current block, and QTDepthTempo is the reference quadtree depth value.

[0033] A maximum multitree depth value associated with one or more areas of another frame can be used to obtain the maximum multitree depth for the current block.

[0034] A condition for adjusting (modifying) the current maximum multitree depth to obtain the maximum multitree depth for the current block may be based on a comparison between a maximum multitree depth signaled in the bitstream and the maximum multitree depth value associated with one or more areas of another frame. The current maximum multitree depth of the current block may be incremented when the maximum multitree depth signaled in the bitstream is less than the maximum multitree depth value associated with one or more areas of another frame.

[0035] The increase in the current maximum multitree depth of the current block may depend on the average multitree depth value associated with one or more areas of another frame. The increase may be based on a comparison between the average multitree depth value associated with one or more areas of another frame and the maximum multitree depth signaled in the bitstream.

[0036] For example, the current maximum multitree depth of the current block is increased if the average multitree depth value associated with one or more Petition 870250088580, dated 09 / 30 / 2025, page 19 / 155 6 / 93 areas of another frame are greater than or equal to half the maximum multitree depth of the current frame.

[0037] Optionally, the current maximum multitree depth of the current block is increased if the average multitree depth value associated with one or more areas of another frame is greater than half the current maximum multitree depth.

[0038] The increase can be based on a comparison between the average multitree depth value associated with one or more areas of another frame and the maximum multitree depth of another frame.

[0039] For example, the current maximum multitree depth of the current block can be increased if the average multitree depth value associated with one or more areas of another frame is greater than or equal to half the maximum multitree depth of another frame.

[0040] Optionally, the current maximum multitree depth of the current block can be increased if the average multitree depth value associated with one or more areas of another frame is greater than half the maximum multitree depth of another frame.

[0041] The current maximum multitree depth of the current block cannot be increased if the average multitree depth value associated with one or more areas of another frame is equal to the maximum multitree depth signaled in the bitstream.

[0042] Optionally, the current maximum multitree depth of the current block cannot be increased if the average multitree depth value associated with one or more areas of another frame is equal to the maximum multitree depth of another frame.

[0043] Optionally, when the quadtree depth value matches the reference quadtree depth value, the current maximum multitree depth of the current block will be increased.

[0044] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the Petition 870250088580, dated 09 / 30 / 2025, page 20 / 155 7 / 93 current maximum multitree depth of the current block if the average multitree depth value associated with one or more areas of another frame is equal to half the maximum multitree depth for the current frame.

[0045] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth of the current block if the average multitree depth value associated with one or more areas of another frame is less than or equal to half the maximum multitree depth for the current frame.

[0046] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth of the current block if the average multitree depth value associated with one or more areas of another frame is less than half the maximum multitree depth for the current frame.

[0047] The maximum multitree depth for the current frame can be halved by dividing by 2 or shifting 1 bit to the right. An offset can be added to the maximum multitree depth for the current frame before the right bit shift.

[0048] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth of the current block if the average multitree depth value associated with one or more areas of another frame is equal to half the maximum multitree depth of another frame.

[0049] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth of the current block if the average multitree depth value associated with one or more areas of another frame is less than or equal to half the maximum multitree depth of another frame.

[0050] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth of the current block if the depth value of Petition 870250088580, dated 09 / 30 / 2025, p. 21 / 155 8 / 93 The average multitree associated with one or more areas of another frame is less than half the maximum multitree depth of another frame.

[0051] The maximum multitree depth of another frame can be halved by dividing by 2 or shifting 1 bit to the right. An offset can be added to the maximum multitree depth of another frame before the right bit shift.

[0052] The current maximum multitree depth of the current block may be reduced when (based on) the maximum multitree depth signaled in the bitstream is greater than the maximum multitree depth value associated with one or more areas of another frame.

[0053] The current maximum multitree depth of the current block may be reduced when the maximum multitree depth signaled in the bitstream is greater than the maximum multitree depth value associated with one or more areas of another frame and when the current quantization parameter associated with the current block is greater than or equal to (or, alternatively, greater than) the current quantization parameter associated with one or more areas of another frame.

[0054] The current maximum multitree depth of the current block can be reduced when the maximum multitree depth for the current frame matches the maximum multitree depth value associated with one or more areas of another frame.

[0055] An additional condition for decrementing the current maximum multitree depth of the current block may include that the maximum multitree depth for the current frame matches the maximum multitree depth of another frame.

[0056] An additional criterion for decrementing the current maximum multitree depth to be performed is one or more of: i) the sequence that includes the current frame has a resolution greater than a predetermined resolution, ii) the CTU size for the current block is greater than or equal to a predetermined value, iii) the maximum multitree depth for the current frame is less than the maximum quadtree depth of the current frame, and iv) the maximum quadtree depth for Petition 870250088580, dated 09 / 30 / 2025, page 22 / 155 9 / 93 the current situation is greater than a predetermined value.

[0057] The current maximum multitree depth of the current block may be further reduced if the current maximum multitree depth is greater than the maximum multitree depth value associated with one or more areas of another frame.

[0058] The current maximum multitree depth of the current block can be reduced when the current maximum multitree depth is set to the same as the maximum multitree depth value associated with one or more areas of another frame.

[0059] The current maximum multitree depth of the current block can be increased when the maximum multitree depth signaled in the bitstream is equal to the maximum multitree depth value associated with one or more areas of another frame.

[0060] The condition for adjusting the current maximum multitree depth to obtain the maximum multitree depth for the current block based on a comparison between the maximum multitree depth signaled in the bitstream and the maximum multitree depth value associated with one or more areas of another frame may be a first condition, and a condition based on comparing the quadtree depth value with a reference value may be a second condition, and optionally, the adjustment of the current maximum multitree depth is applied (e.g., and otherwise not applied) when at least both the first and second conditions are satisfied.

[0061] A third condition may be that the maximum multitree depth signaled at a higher level of another frame is less than the maximum multitree depth signaled at a higher level for the current block frame, and the adjustment of the maximum multitree depth is optionally not performed if the third condition is not met.

[0062] The third condition may be that the maximum multitree depth signaled at a higher level of another frame is less than or equal to the maximum multitree depth signaled at a higher level for the current block frame. Petition 870250088580, dated 09 / 30 / 2025, p. 23 / 155 10 / 93

[0063] Optionally, the third condition is considered only when the encoding tree unit size for the current block is 256.

[0064] The top level can be any of a slice, image, or sequence level and is optionally indicated in a header.

[0065] Modifying the maximum multitree depth can be disabled if the image data contains display content.

[0066] Image data is considered to contain display content if multiple blocks are encoded using a Palette mode in an area of ​​the current frame or if one or more areas of another frame exceed a threshold value (are larger or smaller than a predetermined value) and / or if a Palette mode is enabled in the bitstream.

[0067] The area or an area of ​​another frame may be an area that is colocated with the current block.

[0068] The area or an area of ​​another frame may comprise a plurality of blocks in different positions.

[0069] The area or an area of ​​another frame may be an area larger than the current block.

[0070] The area or an area of ​​another frame larger than the current block may be a coding tree unit, CTU.

[0071] The central position of the current block can be used to determine the area or an area in another frame.

[0072] The area or an area may encompass an entire area of ​​a reference frame.

[0073] The other frame may be a frame with the same temporal ID as the current frame that includes the current block.

[0074] The frame with the same temporal ID may be the closest frame with the same temporal ID.

[0075] The other frame may be a frame with the same quantization parameter as the current frame that includes the current block.

[0076] The other frame may be a frame used for vector prediction of Petition 870250088580, dated 09 / 30 / 2025, page 24 / 155 11 / 93 temporal movement.

[0077] The other frame may be a frame that is the closest reference frame to the current frame that includes the current block.

[0078] One or more areas may include a first area of ​​a first other frame and a second area of ​​a second other frame.

[0079] The other frame may be a frame corresponding to an intra frame.

[0080] The method may comprise modifying a current maximum multitree depth to obtain the maximum multitree depth for the current block, according to one or more rules or conditions based on the quadtree depth value and the reference (quadtree) depth value associated with the intra-frame.

[0081] For example, when the quadtree depth value matches the reference quadtree depth value associated with the intra-frame, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block.

[0082] Optionally, do not increase the current maximum multitree depth to obtain the maximum multitree depth for the current block when the quadtree depth value matches the reference quadtree depth value minus 1.

[0083] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, reduce the current maximum multitree depth to obtain the maximum multitree depth for the current block.

[0084] The method may comprise an additional condition to modify the current maximum multitree depth to obtain the maximum multitree depth for the current block, which may be based on a comparison between a maximum multitree depth signaled in the bitstream and a reference maximum multitree depth value associated with one or more intra-frame areas.

[0085] For example, reduce the current maximum multitree depth of the block. Petition 870250088580, dated 09 / 30 / 2025, page 25 / 155 12 / 93 current when (based on) the maximum signaled multitree depth in the bitstream is less than the reference maximum multitree depth value associated with one or more intra-frame areas.

[0086] The method may include an additional condition to modify the current maximum multitree depth to obtain the maximum multitree depth for the current block, based on a comparison between the maximum multitree depth signaled in the bitstream and the maximum multitree depth of the intra-frame.

[0087] For example, reduce the current maximum multitree depth of the current block when (based on) the maximum multitree depth signaled in the bitstream is less than the maximum multitree depth of the intra-frame.

[0088] The method may further comprise modifying the current maximum multitree depth to obtain the maximum multitree depth for the current block based on a comparison between a reference value of average multitree depth associated with one or more areas of the intra-frame and the maximum multitree depth of the intra-frame.

[0089] For example, the current maximum multitree depth of the current block can be reduced if the reference average multitree depth value associated with one or more areas of the intra-frame is greater than or equal to the maximum multitree depth of the intra-frame.

[0090] Optionally, the current maximum multitree depth of the current block can be reduced if the reference average multitree depth value associated with one or more areas of the intra-frame is equal to the maximum multitree depth of the intra-frame.

[0091] The method may also comprise modifying a current maximum multitree depth to obtain the maximum multitree depth for the current block based on a comparison between a reference average multitree depth value associated with one or more areas of the intra-frame and the maximum multitree depth value associated with one or more areas of the intra-frame.

[0092] For example, the current maximum multitree depth of the current block Petition 870250088580, dated 09 / 30 / 2025, p. 26 / 155 13 / 93 can be reduced if the average reference multitree depth value associated with one or more areas of the intra-frame is greater than or equal to the maximum multitree depth value associated with one or more areas of the intra-frame.

[0093] Optionally, the current maximum multitree depth of the current block can be reduced if the reference average multitree depth value associated with one or more areas of the intra frame is equal to the maximum multitree depth value associated with one or more areas of the intra frame.

[0094] Optionally, when the quadtree depth value matches the reference quadtree depth value minus 1, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block based on a comparison of the maximum multitree depth signaled in the bitstream with the maximum multitree depth of the intra-frame, and a reference maximum multitree depth value associated with one or more areas of the intra-frame.

[0095] For example, the current maximum multitree depth is increased when the maximum multitree depth signaled in the bitstream is equal to the maximum multitree depth of the intra-frame and the maximum multitree depth signaled in the bitstream is less than the reference maximum multitree depth value associated with one or more areas of the intra-frame.

[0096] Optionally, when the quadtree depth value corresponds to the reference quadtree depth value minus 1, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block based on comparing a reference average multitree depth value associated with one or more areas of the intra-frame with the maximum multitree depth of the intra-frame.

[0097] For example, the current maximum multitree depth is increased when the reference average multitree depth value associated with one or more areas of the intra-frame is equal to the maximum multitree depth of the intra-frame.

[0098] Optionally, the current maximum multitree depth is increased. Petition 870250088580, dated 09 / 30 / 2025, p. 27 / 155 14 / 93 when the average reference multitree depth value associated with one or more areas of the intra-frame is less than or equal to the maximum multitree depth of the intra-frame.

[0099] Optionally, when the quadtree depth value equals the reference quadtree depth value minus 1, increase the current maximum multitree depth to obtain the maximum multitree depth for the current block based on comparing a reference average multitree depth value associated with one or more intra-frame areas with a reference maximum multitree depth value associated with one or more intra-frame areas.

[0100] For example, the current maximum multitree depth is increased when the reference average multitree depth value associated with one or more areas of the intra frame is equal to the reference maximum multitree depth value associated with one or more areas of the intra frame.

[0101] Optionally, the current maximum multitree depth is increased when the reference average multitree depth value associated with one or more areas of the intra frame is less than or equal to the reference maximum multitree depth value associated with one or more areas of the intra frame.

[0102] The current maximum multitree depth can be increased when all inter frames in the sequence, including the current frame, have the same maximum multitree depth.

[0103] A current maximum multitree depth cannot be increased when another frame matches an intra frame according to one or more rules or conditions.

[0104] For example, the current maximum multitree depth is not increased when the intra frame has a different temporal ID to the current frame that includes the current block.

[0105] Alternatively, or additionally, the current maximum multitree depth is not increased when the difference in picture order count (POC) between the current frame and the intra-frame is less than a threshold. The threshold may Petition 870250088580, dated 09 / 30 / 2025, page 28 / 155 15 / 93 corresponds to a POC difference between the current framework and the intra-frame equal to 2 or 3.

[0106] Optionally, when another frame is a frame used for temporal motion vector prediction, the current maximum multitree depth is modified according to one or more rules or conditions.

[0107] For example, the current maximum multitree depth is increased when the difference in picture order count (POC) between the current frame and the frame used for temporal motion vector prediction is less than or equal to 2.

[0108] Optionally, the current maximum multitree depth is increased when the frame used for temporal motion vector prediction is a frame with a different temporal ID to the current frame that includes the current block.

[0109] Optionally, the current maximum multitree depth is not increased when a quantization parameter for the sequence that includes the current frame is greater than or equal to 22.

[0110] A plurality of maximum multitree depth values ​​may be signaled in the bitstream, and obtaining the maximum multitree depth for the current block involves determining one of the signaled values ​​as the maximum multitree depth for the current block.

[0111] The plurality of maximum multitree depth values ​​can be signaled in one or more of a sequence parameter set, an image parameter set, an image header, and a slice header.

[0112] A plurality of maximum multitree depth values ​​can be associated with a quadtree depth or block size.

[0113] At least one of the plurality of maximum multitree depth values ​​can be obtained by predicting its value from another of the plurality of maximum multitree depth values.

[0114] The maximum multitree depth values ​​are determined using a value signaled in a header or parameter set.

[0115] At least one of the plurality of depth values ​​of Petition 870250088580, dated 09 / 30 / 2025, page 29 / 155 The maximum 16 / 93 multitree can be achieved by applying predetermined offsets to a default value. The default (predetermined) value can be signaled in the bitstream.

[0116] In aspects and modalities, reference is made to a binary division. Such binary division may include horizontal binary division and / or vertical binary division. In aspects and modalities, reference is made to a ternary division. Such ternary division may include horizontal ternary division and / or vertical ternary division.

[0117] Furthermore, although the above embodiments refer to binary tree (horizontal and vertical), ternary tree (horizontal and vertical), quadtree and non-division being possible divisions of a coding unit or CTU, it is understood that the invention is not thus limited and other modes may be considered. For example, other geometric divisions may be considered in different numbers of blocks and restricted according to one or more criteria mentioned in the aspects and embodiments above.

[0118] In other embodiments, the methods described above may be disabled for display content-encoded image data or video data, for a low-latency configuration, using at least one flag (e.g., transmitted in a header). Whether the image or video data to be encoded or decoded is display content-encoded image data can be determined based on whether a number of blocks in an area of ​​the frame, including the current block or an area (e.g., colocated or temporal) of another frame, encoded in intra-block or Palette mode, exceed a threshold (is above a predetermined value or, alternatively, below a predetermined value). Alternatively, whether the image or video data is display content-encoded can be indicated by whether Palette mode has been enabled for the image or video data (e.g., by setting a flag in a header).

[0119] Other aspects of the invention relate to an encoding device, a decoding device and a corresponding computer program, operable to perform the decoding and / or encoding methods of the invention. Petition 870250088580, dated 09 / 30 / 2025, page 30 / 155 17 / 93

[0120] In a further aspect, according to the present invention, a device is provided for encoding image data into a bitstream, the device being configured to perform the method in accordance with any of the aspects and embodiments mentioned above.

[0121] In another aspect of the present invention, a device is provided for decoding image data from a bitstream, the device being configured to perform the method in any of the modalities and aspects mentioned above.

[0122] In a further aspect, a computer program is provided which is arranged, upon execution, to make the method of any of the aspects and modalities be executed.

[0123] The computer program may be provided in isolation or may be executed on, by, or in a carrier medium. The carrier medium may be non-transient, for example, a storage medium, in particular a computer-readable storage medium. The carrier medium may also be transient, for example, a signal or other transmission medium. The signal may be transmitted via any suitable network, including the Internet. Other features of the invention are characterized by the independent and dependent claims.

[0124] Any feature in one aspect of the invention can be applied to other aspects of the invention in any appropriate combination. In particular, aspects of the method can be applied to aspects of the apparatus, and vice versa.

[0125] Furthermore, features implemented in hardware can be implemented in software and vice versa. Any reference to software and hardware features herein should be interpreted accordingly.

[0126] Any device feature, as described herein, may also be provided as a method feature, and vice versa. As used herein, means features plus function may alternatively be expressed in terms of their corresponding structure, such as a suitably programmed processor and associated memory. Petition 870250088580, dated 09 / 30 / 2025, page 31 / 155 18 / 93

[0127] It should also be understood that specific combinations of the various features described and defined in any aspects of the invention may be implemented and / or provided and / or used independently. BRIEF DESCRIPTION OF THE DRAWINGS

[0128] By way of example, reference will be made to the attached drawings, in which:

[0129] Figure 1 is a diagram for use in explaining a coding structure used in HEVC.

[0130] Figure 2 is a block diagram that schematically illustrates a data communication system in which one or more embodiments of the invention can be implemented.

[0131] Figure 3 is a block diagram illustrating the components of a processing device in which one or more embodiments of the invention may be implemented.

[0132] Figure 4 is a diagram illustrating the functional elements of an encoder according to the embodiments of the invention.

[0133] Figure 5 is a diagram illustrating the functional elements of a decoder according to the embodiments of the invention.

[0134] Figure 6 shows blocks positioned relative to an actual block, including a colocalized block.

[0135] Figure 7 illustrates a temporal random access GOP structure for 33 frames with related Temporal ID and POC.

[0136] Figure 8 illustrates the 6 possible ways of dividing VVC.

[0137] Figure 9 illustrates maxBtSize and maxMttDepht.

[0138] Figure 10 illustrates an example of the minQTSize variable.

[0139] Figure 11 illustrates some partitioning constraints.

[0140] Figure 12 illustrates incomplete CTUs at the edges of a frame.

[0141] Figure 13 illustrates encoding by maxMttDepth settings based on the temporal ID.

[0142] Figure 14 illustrates one embodiment of the invention. Petition 870250088580, dated 09 / 30 / 2025, page 32 / 155 19 / 93

[0143] Figure 15 illustrates various temporal positions.

[0144] Figure 16 is a diagram showing a system comprising an encoder or a decoder and a communication network according to the embodiments of the present invention.

[0145] Figure 17 is a schematic block diagram of a computing device for implementing one or more modes.

[0146] Figure 18 is a diagram illustrating a network camera system.

[0147] Figure 19 is a diagram illustrating a smartphone. DETAILED DESCRIPTION

[0148] Figure 1 refers to a coding structure used in the High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC) video standards. A video sequence 1 is composed of a succession of digital images i. Each of these digital images is represented by one or more matrices. The matrix coefficients represent pixels.

[0149] An image 2 of the sequence can be divided into slices 3. A slice can, in some cases, constitute an entire image. These slices are divided into non-overlapping Coding Tree Units (CTUs). A Coding Tree Unit (CTU) is the basic processing unit of the High Efficiency Video Coding (HEVC) and Versatile Video Coding (VVC) video standards and conceptually corresponds, in structure, to the macroblock units used in several previous video standards. A CTU is also sometimes called a Largest Coding Unit (LCU). A CTU has luma and chroma component parts, each of which is called a Coding Tree Block (CTB). These different color components are not shown in Figure 1.

[0150] A CTU typically has a size of 64 pixels χ 64 pixels for HEVC, but for VVC this size can be 128 pixels χ 128 pixels. Each CTU can, in turn, be iteratively divided into smaller Coding Units (CUs) of variable size 5 using a quadtree (QT) decomposition.

[0151] Coding units are the elementary coding elements Petition 870250088580, dated 09 / 30 / 2025, page 33 / 155 20 / 93 and are composed of two types of subunits called Prediction Unit (PU) and Transform Unit (TU). The maximum size of a PU or TU is equal to the size of the CU. A Prediction Unit corresponds to the partition of the CU for predicting pixel values. Several different partitions of a CU into PUs are possible, as shown in Figure 6, including a partition into 4 square PUs and two different partitions into 2 rectangular PUs. A Transform Unit is an elementary unit subjected to spatial transformation using DCT. A CU can be partitioned into TUs based on a quadtree representation 7.

[0152] Each slice is embedded in a Network Abstraction Layer (NAL) unit. In addition, the video sequence encoding parameters are stored in dedicated NAL units called parameter sets. In HEVC and H.264 / AVC, two types of parameter sets (NAL units) are employed: first, a Sequence Parameter Set (SPS) NAL unit, which gathers all parameters that remain unchanged throughout the entire video sequence. Typically, it handles the encoding profile, video frame size, and other parameters. Second, a Picture Parameter Set (PPS) NAL unit includes parameters that can change from one image (or frame) to another in a sequence. HEVC also includes a Video Parameter Set (VPS) NAL unit that contains parameters describing the overall structure of the bitstream.VPS is a type of parameter set defined in HEVC and applies to all layers of a bitstream. A layer can contain multiple temporal sublayers, and all version 1 bitstreams are restricted to a single layer. HEVC has certain layer extensions for scalability and multiview, which will allow multiple layers, with a base version 1 layer that is backward compatible.

[0153] Other ways of splitting an image have been introduced in VVC, including subimages, which are independently encoded groups of one or more slices. Petition 870250088580, dated 09 / 30 / 2025, page 34 / 155 21 / 93

[0154] Figure 2 illustrates a data communication system in which one or more embodiments of the invention may be implemented. The data communication system comprises a transmitting device, in this case a server 201, which is operable to transmit data packets from a data stream to a receiving device, in this case a client terminal 202, via a data communication network 200. The data communication network 200 may be a Wide Area Network (WAN) or a Local Area Network (LAN). Such a network may be, for example, a wireless network (Wi-Fi / 802.11a or b or g), an Ethernet network, an Internet network, or a mixed network composed of several different networks. In a specific embodiment of the invention, the data communication system may be a digital television transmission system in which the server 201 sends the same data content to multiple clients.

[0155] The data stream 204 provided by the server 201 may consist of multimedia data representing video and audio data. The audio and video data streams, in some embodiments of the invention, may be captured by the server 201 using a microphone and a camera, respectively. In some embodiments, the data streams may be stored on the server 201 or received by the server 201 from another data provider or generated on the server 201. The server 201 is equipped with an encoder for encoding video and audio streams, in particular, to provide a compressed bitstream for transmission that is a more compact representation of the data presented as input to the encoder.

[0156] To obtain a better ratio between the quality of transmitted data and the quantity of transmitted data, video data compression can be, for example, in accordance with the HEVC, H.264 / AVC, VVC format or the data format generated by the ECM.

[0157] Client 202 receives the transmitted bitstream and decodes the reconstructed bitstream to reproduce video images on a display device and audio data on a loudspeaker.

[0158] Although a streaming scenario is considered in the example in Figure Petition 870250088580, dated 09 / 30 / 2025, page 35 / 155 22 / 93 2. It should be noted that, in some embodiments of the invention, data communication between an encoder and a decoder can be carried out using, for example, a media storage device, such as an optical disc.

[0159] In one or more embodiments of the invention, a video image is transmitted with representative offset offset data for application to the reconstructed pixels of the image, in order to provide filtered pixels in a final image.

[0160] Figure 3 schematically illustrates a processing device 300 configured to implement at least one embodiment of the present invention. The processing device 300 may be a device such as a microcomputer, a workstation, or a lightweight portable device. The device 300 comprises a communication bus 313 connected to: - a central processing unit 311, such as a microprocessor, called a CPU; - a read-only memory 306, called ROM, for storing computer programs to implement the invention; - a random access memory 312, referred to as RAM, for storing the executable code of the method of the embodiments of the invention, as well as registers adapted to record variables and parameters necessary to implement the method of encoding a sequence of digital images and / or the method of decoding a bitstream according to the embodiments of the invention; and - a communication interface 302 connected to a communication network 303 through which the digital data to be processed is transmitted or received.

[0161] Optionally, the 300 unit may also include the following components: - a data storage medium 304, such as a hard disk, for storing computer programs to implement methods of one or more embodiments of the invention and data used or Petition 870250088580, dated 09 / 30 / 2025, page 36 / 155 23 / 93 produced during the implementation of one or more embodiments of the invention; - a 305 disk drive to a 306 disk, the disk drive being adapted to read data from the 306 disk or to write data to said disk; - a screen 309 for displaying data and / or serving as a graphical user interface, via a keyboard 310 or any other pointing means.

[0162] The device 300 can be connected to various peripherals, such as, for example, a digital camera 320 or a microphone 308, each connected to an input / output board (not shown) to provide multimedia data to the device 300.

[0163] The communication bus provides communication and interoperability between the various elements included in or connected to the 300 device. The bus representation is not limiting and, in particular, the central processing unit is operable to communicate instructions to any element of the 300 device directly or through another element of the 300 device.

[0164] The 306 disc can be replaced by any information medium, such as, for example, a rewritable or non-rewritable compact disc (CD-ROM), a ZIP disc or a memory card and, in general terms, by a means of information storage readable by a microcomputer or microprocessor, integrated or not into the device, possibly removable and adapted to store one or more programs whose execution allows the implementation of the method of encoding a sequence of digital images and / or the method of decoding a bit stream according to the invention.

[0165] The executable code can be stored in read-only memory 306, on hard disk 304, or on a removable digital medium, such as, for example, a disk 306, as described previously. According to one variant, the executable code of the programs can be received via the communication network 303, through the interface 302, to be stored on one of the media of Petition 870250088580, dated 09 / 30 / 2025, page 37 / 155 24 / 93 storage of the device 300 before it is run, such as the hard disk 304.

[0166] The central processing unit 311 is adapted to control and direct the execution of instructions or parts of the software code of the program or programs according to the invention, instructions which are stored in one of the storage media mentioned above. At initialization, the program or programs stored in non-volatile memory, for example, on the hard disk 304 or in read-only memory 306, are transferred to the random access memory 312, which then contains the executable code of the program or programs, as well as registers to store the variables and parameters necessary for the implementation of the invention.

[0167] In this embodiment, the device is a programmable device that uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (for example, in the form of an Application-Specific Integrated Circuit or ASIC).

[0168] Figure 4 illustrates a block diagram of an encoder according to at least one embodiment of the invention. The encoder is represented by connected modules, each module being adapted to implement, for example, in the form of programming instructions to be executed by the CPU 311 of the device 300, at least one corresponding step of a method that implements at least one embodiment of encoding an image from a sequence of images according to one or more embodiments of the invention.

[0169] An original sequence of digital images i0a in401 is received as input by encoder 400. Each digital image is represented by a set of samples, sometimes also called pixels (hereinafter referred to as pixels).

[0170] A 410 bit stream is generated by the 400 encoder after the encoding process is implemented. The 410 bit stream comprises a plurality of encoding units or slices, each slice comprising a slice header to transmit encoding values ​​of the encoding parameters used for Petition 870250088580, dated 09 / 30 / 2025, page 38 / 155 25 / 93 encode the slice and a slice body, comprising encoded video data.

[0171] The input digital images i0a in401 are divided into pixel blocks by module 402. The blocks correspond to image parts and can have variable sizes (e.g., 4 χ 4, 8 χ 8, 16 χ 16, 32 χ 32, 64 χ 64, 128 χ 128 pixels, and various sizes of rectangular blocks can also be considered). An encoding mode is selected for each input block. Two families of encoding modes are provided: encoding modes based on spatial prediction encoding (intra prediction) and encoding modes based on temporal prediction (inter encoding, Merge, SKIP). The possible encoding modes are tested.

[0172] Module 403 implements an intra-prediction process, in which the block to be encoded is predicted by a predictor computed from pixels in the neighborhood of said block to be encoded. An indication of the selected intra-predictor and the difference between the given block and its predictor is encoded to provide a residual if intra-encoding is selected.

[0173] Temporal prediction is implemented by motion estimation module 404 and motion compensation module 405. First, a reference image from a set of reference images 416 is selected, and a portion of the reference image, also called the reference area or image portion, which is the area closest (closest in terms of pixel value similarity) to the given block to be encoded, is selected by motion estimation module 404. Motion compensation module 405 then predicts the block to be encoded using the selected area. The difference between the selected reference area and the given block, also called the residual block, is computed by motion compensation module 405. The selected reference area is indicated using a motion vector.

[0174] Thus, in both cases (spatial and temporal prediction), a residual is computed by subtracting the predictor from the original block.

[0175] In the Intra prediction implemented by module 403, a prediction direction is encoded. In the Inter prediction implemented by modules 404, 405, 416, Petition 870250088580, dated 09 / 30 / 2025, page 39 / 155 26 / 93 418, 417, at least one motion vector or data to identify such a motion vector is encoded for temporal prediction.

[0176] The relevant information for the motion vector and residual block is encoded if Inter prediction is selected. To further reduce the bit rate, assuming the motion is homogeneous, the motion vector is encoded by difference with respect to a motion vector predictor. The motion vector predictors from a set of motion information predictor candidates are obtained from the motion vector field 418 by a motion vector prediction and encoding module 417.

[0177] The encoder 400 further comprises a selection module 406 for selecting the encoding mode by applying an encoding cost criterion, such as a rate-distortion criterion. To further reduce redundancies, a transform (such as DCT) is applied by the transform module 407 to the residual block. The resulting transformed data is then quantized by the quantization module 408 and entropy-encoded by the entropic encoding module 409. Finally, the encoded residual block of the current block being encoded is inserted into the bitstream 410.

[0178] Encoder 400 also performs decoding of the encoded image in order to produce a reference image (e.g., those in Reference Images / Figures 416) for motion estimation of subsequent images. This allows the encoder and decoder receiving the bitstream to have the same reference frames (reconstructed images or image parts are used). Inverse quantization (“dequantization”) module 411 performs inverse quantization (“dequantization”) of the quantized data, followed by an inverse transform by the inverse transform module 412. The intra prediction module 413 uses the prediction information to determine which predictor to use for a given block, and the motion compensation module 414 adds the residual obtained by module 412 to the reference area obtained from the set of reference images 416.

[0179] Post-filtering is then applied by module 415 to filter the frame. Petition 870250088580, dated 09 / 30 / 2025, page 40 / 155 27 / 93 reconstructed (image or parts of image) from pixels. In embodiments of the invention, a SAO mesh filter is used, in which compensation offsets are added to the pixel values ​​of the reconstructed pixels of the reconstructed image. It is understood that post-filtering does not always need to be performed. Furthermore, any other type of post-filtering can also be performed in addition to, or instead of, SAO mesh filtering.

[0180] Figure 5 illustrates a block diagram of a decoder 60 that can be used to receive data from an encoder according to an embodiment of the invention. The decoder is represented by connected modules, each module being adapted to implement, for example, in the form of programming instructions to be executed by the CPU 311 of the device 300, a corresponding step of a method implemented by the decoder 60.

[0181] Decoder 60 receives a bit stream 61 composed of encoded units (e.g., data corresponding to a block or a coding unit), each consisting of a header containing information about the encoding parameters and a body containing the encoded video data. As explained in relation to Figure 4, the encoded video data is entropy-encoded, and the indices of the motion vector predictors are encoded, for a given block, in a predetermined number of bits. The received encoded video data is entropy-decoded by module 62. The residual data is then dequantized by module 63, and then an inverse transform is applied by module 64 to obtain pixel values.

[0182] The mode data that indicate the encoding mode are also decoded by entropy and, based on the mode, an INTRA or INTER type decoding is performed on the encoded blocks (units / sets / groups) of image data.

[0183] In the case of INTRA mode, an INTRA predictor is determined by the intra prediction module 65 based on the intra prediction mode specified in the bitstream. Petition 870250088580, dated 09 / 30 / 2025, page 41 / 155 28 / 93

[0184] If the mode is INTER, motion prediction information is extracted from the bitstream to find (identify) the reference area used by the encoder. The motion prediction information comprises the reference frame index and the motion vector residual. The motion vector predictor is added to the motion vector residual by the motion vector decoding module 70 to obtain the motion vector. The various motion predictor tools used in VVC are discussed in more detail below, with reference to Figures 6 to 10.

[0185] The motion vector decoding module 70 applies motion vector decoding to each current block encoded by motion prediction. Once a motion vector predictor index is obtained for the current block, the actual motion vector value associated with the current block can be decoded and used to apply motion compensation by module 66. The reference image portion indicated by the decoded motion vector is extracted from a reference image 68 to apply motion compensation 66. The motion vector field data 71 is updated with the decoded motion vector to be used in the prediction of subsequent decoded motion vectors.

[0186] Finally, a decoded block is obtained. When appropriate, post-filtering is applied by the post-filtering module 67. A decoded video signal 69 is finally obtained and provided by the decoder 60. RANDOM ACCESS CONFIGURATION

[0187] Figure 7 shows a temporal random access GOP structure for 33 consecutive frames from 0 to 32. The length of the vertical line representing each frame corresponds to its temporal ID (e.g., the longest length corresponds to temporal ID 0 and the shortest length to temporal ID 5). Frames with temporal ID 0 are highest in the temporal hierarchy because they can be decoded independently of all other frames with a higher temporal ID value. Similarly, frames with temporal ID 1 are second in the temporal hierarchy and can be decoded Petition 870250088580, dated 09 / 30 / 2025, page 42 / 155 29 / 93 independently of all other frames with higher temporal IDs, and so on for other temporal IDs. In other words, a frame with a specific temporal ID can be decoded independently of frames with higher temporal IDs, but may be dependent on frames with lower temporal IDs. This is known as temporal scalability.

[0188] This parameter is similar to hierarchy depth, but hierarchy depth does not imply decoding independence for all other frames with greater depth. VVC Partitioning

[0189] VVC Partitioning has a specific block partitioning. For a tree node, there are 6 possible divisions, as illustrated in Figure 8: - The QT,801 quad division, which divides a block into 4 square blocks of equal size. - The binary division BT with its two possible subdivisions 802 and 803: - vertical binary division, 802, SPLIT_BT_VER - Horizontal binary division, 803, SPLIT_BT_HOR - the ternary division TT with its 2 possible subdivisions 804 and 805, where the block is divided into 3 blocks with a larger band in the middle: - vertical ternary division, 804, SPLIT_TT_VER - horizontal ternary split, 805, SPLIT_TT_HOR - The No Division, 806, which terminates a tree node so that there is no division. VVC Division Control Variables

[0190] For a given block, not all possible splits are allowed. The available splits depend on several conditions. These conditions depend on several defined split control variables. A first set of variables defines the maximum and minimum size of the block / node: • CTU Size: Corresponds to the size of the root node of a quadtree (e.g., 256 χ 256, 128 χ 128, 64 χ 64, 32 χ 32, 16 χ 16 luma samples); Petition 870250088580, dated 09 / 30 / 2025, page 43 / 155 30 / 93 • maxBtSize: This is the maximum allowed size of the root node of the binary tree, that is, the maximum size of a leaf node of the quadtree that can be partitioned by binary division. A current block can be divided using a BT division if the height and width of the current block are less than or equal to maxBtSize. Figure 9 illustrates the concept of maxBtSize, where maxBtSize is the size of the leaf nodes of quadtree 902 of a CTU 901. • minBtSize: This is the minimum allowed size for a leaf node in a binary tree; that is, the minimum width or height of a binary leaf node. Thus, a current block can be split using a horizontal BT split if its height is greater than minBtSize. And a current block can be split using a vertical BT split if its width is greater than minBtSize. • maxTTSize: This is the maximum allowed size for the root node of the ternary tree, that is, the maximum size of a quadtree leaf node that can be partitioned by ternary splitting. An existing block can be split using a TT split if the height and width of the existing block are less than or equal to maxTTSize. • minTTSize: Represents the minimum allowed size for a leaf node in a ternary tree (TT); that is, the minimum width or height of a binary leaf node. However, unlike BT Splitting, a minimum TT partition size is considered to be allowed. Thus, a current block can be split using a horizontal TT split if its height is greater than twice minTTSize. And a current block can be split using a vertical TT split if its width is strictly greater than twice minTTSize. • minQTSize: This is the minimum allowed size of a quadtree leaf node (QT); therefore, for the current block, if the width of the current block is not greater than the minQTSize, the QT split mode is not allowed. Figure 10 illustrates an example of minQTSize. Considering a CTU Petition 870250088580, dated 09 / 30 / 2025, page 44 / 155 31 / 93 In the example shown, the minQtsize is equal to 16.

[0191] There is no definition of maxQTSize, therefore it corresponds to the size of the CTU.

[0192] The minimum allowed block size for width and height is 4.

[0193] A set of depths is also defined. • Depth: This is the depth in the tree. In the VVC specification, a leaf is a terminal node of a tree that is a root node of a tree with depth 0. This means that for each split, this value is incremented (by 1). • mttDepth: This is the depth of the multitree. The multitree includes BT and TT divisions. • maxMttDepth is defined in the VVC specification as the maximum allowed depth for multitree. Therefore, mttDepth is greater than or equal to maxMttDepth. Figure 14 illustrates the concept of maxMttDepth.

[0194] In VVC, these variables are defined independently for Luma and Chroma.

[0195] In VTM software and ECM software, there are several other variables corresponding to depths.

[0196] The variable currBtDepth is the current number of BT splits used to reach the current tree node (or the current block). The variable currMttDepth is the current number of BT and TT splits used to reach the current tree node (or the current block). The variable maxBtDepth corresponds to the maxMttDepth variable of the VVC specification. currQtDepth is the current number of QT splits used to reach the current tree node (or the current block). MaxBtDepth: is the maximum allowed depth of the binary tree, i.e., the lowest level at which binary splitting can occur, where the leaf node of the quadtree is the root (e.g., 3). VVC Split Control Syntax Elements

[0197] To define the values ​​of these different variables, some high-level syntax elements are passed in the SPS, as illustrated in the following table. Petition 870250088580, dated 09 / 30 / 2025, page 45 / 155 32 / 93 of SPS syntax elements. TABLE 1 seq_parameter_set_rbsp() { Descrito r sps_log2_min_luma_coding_block_size_minus2 ue(v) sps_partition_constraints_override_enabled_flag u(1) sps_log2_diff_min_qt_min_cb_intra_slice_luma ue(v) sps_max_mtt_hierarchy_depth_intra_slice_luma ue(v) if( sps_max_mtt_hierarchy_depth_intra_slice_luma != 0 ) { sps_log2_diff_max_bt_min_qt_intra_slice_luma ue(v) sps_log2_diff_max_tt_mi n_qt_i ntra_sl ice_l u ma ue(v)} if( sps_chroma_format_idc != 0 ) sps_qtbtt_dual_tree_intra_flag u(1) if( sps_qtbtt_dual_tree_intra_flag ) { sps_log2_diff_min_qt_min_cb_intra_slice_chroma ue(v) sps_max_mtt_hierarchy_depth_intra_slice_chroma ue(v) if( sps_max_mtt_hierarchy_depth_intra_slice_chroma != 0 ) { sps_log2_diff_max_bt_min_qt_intra_slice_chroma ue(v) sps_log2_diff_max_tt_min_qt_intra_slice_chroma ue(v)}} sps_log2_diff_min_qt_min_cb_inter_slice ue(v) sps_max_mtt_hierarchy_depth_inter_slice ue(v) if( sps_max_mtt_hierarchy_depth_inter_slice != 0 ) { sps_log2_diff_max_bt_min_qt_inter_slice ue(v)sps_log2_diff_max_tt_min_qt_inter_slice ue(v)} Petition 870250088580, dated 09 / 30 / 2025, page 46 / 155 33 / 93

[0198] When the sps_partition_constraints_override_enabled_flag is enabled in SPS, some image header syntax elements are passed to update the partitioning variables, as illustrated in the following table of PH syntax elements. TABLE 2 picture_header_structure() { Descrito r if( sps_partition_constraints_override_enabled_flag ) ph_partition_constraints_override_flag u(1) if( ph_intra_slice_allowed_flag ) { if( ph_partition_constraints_override_flag ) { ph_log2_diff_min_qt_min_cb_intra_slice_luma ue(v) ph_max_mtt_hierarchy_depth_intra_slice_luma ue(v) if( ph_max_mtt_hierarchy_depth_intra_slice_luma != 0 ) { ph_log2_diff_max_bt_min_qt_intra_slice_luma ue(v) ph _log2_diff_max_tt_mi n_qt_i ntra_sl ice_l u ma ue(v)} if( sps_qtbtt_dual_tree_intra_flag ) { ph_log2_diff_min_qt_min_cb_intra_slice_chroma ue(v) ph_max_mtt_hierarchy_depth_intra_slice_chroma ue(v) if( ph_max_mtt_hierarchy_depth_intra_slice_chroma != 0 ) { ph_log2_diff_max_bt_min_qt_intra_slice_chroma ue(v) ph_log2_diff_max_tt_min_qt_intra_slice_chroma ue(v)}}} Petição 870250088580, de 30 / 09 / 2025, pág. 47 / 155 34 / 93 } 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)}} VVC CODING DIVISION MODE

[0199] In VVC, the coding split mode is passed in the 'coding_tree' coding tree, as illustrated in the following syntax table, where the conditionally parsed flags, split_cu_flag, split_qt_flag, mtt_split_cu_vertical_flag and mtt_split_cu_binary flag, define the split of a CU. TABLE 3 coding_tree( xO, yO, cbWidth, cbHeight, qgOnY, qgOnC, cbSubdiv, cqtDepth, mttDepth, depthOffset, partldx, treeTypeCurr, modeTypeCurr) { Descritor if( (allowSplitBtVer | | allowSplitBtHor | | allowSplitTtVer | | allowSplitTtHor | | allowSplitQt) && (xO + cbWidth <= pps_pic_width_in_luma_samples ) && (yO + cbHeight <= pps_pic_height_in_luma_samples)) split_cu_flag ae(v) if( pps_cu_qp_delta_enabled_flag && qgOnY && cbSubdiv <= CuQpDeltaSubdiv) { IsCuQpDeltaCoded = 0 CuQpDeltaVal = 0 CuQgTopLeftX = xO CuQgTopLeftY = yO} if( sh_cu_chroma_qp_offset_enabled_flag && qgOnC && cbSubdiv <= CuChromaQpOffsetSubdiv ) { Petição 870250088580, de 30 / 09 / 2025, pág. 48 / 155 35 / 93 IsCuChromaQpOffsetCoded = 0 CuQpOffsetcb = 0 CuQpOffsetcr = 0 CuQpOffsetcbcr = 0} if( split_cu_flag) { if( (allowSplitBtVer || allowSplitBtHor || allowSplitTtVer || allowSplitTtHor) && allowSplitQt) split_qt_flag ae(v) if( !split_qt_flag) { if( ( allowSplitBtHor | | allowSplitTtHor ) && (allowSplitBtVer || allowSplitTtVer)) mtt_split_cu_vertical_flag ae(v) if( ( allowSplitBtVer && allowSplitTtVer && mtt_split_cu_vertical_flag ) | | ( allowSplitBtHor && allowSplitTtHor && !mtt_split_cu_vertical_flag)) mtt_split_cu_binary_flag ae(v)} if( ModeTypeCondition = = 1) modeType = MODE_TYPE_INTRA else if( ModeTypeCondition = = 2 ) { non_inter_flag ae(v) modeType = non_inter_flag ? MODE_TYPE_INTRA : MODE_TYPE_INTER} else modeType = modeTypeCurr RESTRIÇÕES DE DIVISÃO VVC

[0200] VVC partitioning has several restrictions. These restrictions are mainly aimed at preventing the same partitioning after several consecutive splits. Figure 11 illustrates some of these restrictions. The idea is to avoid the same partitioning with BT and TT. As illustrated in Figure 11(a), two consecutive vertical BT splits are allowed, but a vertical TT split followed by a vertical BT split in the central block is not allowed, as illustrated in Figure 11(b).

[0201] Similarly, as illustrated in Figure 11(c), two BT divisions Petition 870250088580, dated 09 / 30 / 2025, page 49 / 155 Consecutive horizontal 36 / 93s are allowed, but a horizontal TT followed by a horizontal BT split in the center block is not allowed, as illustrated in Figure 11(d).

[0202] In VVC, there are additional restrictions for the minimum chroma block size and for the maximum TT and BT block size for the interblock size. These restrictions have been removed by the ECM software. CHROMA PARTITIONING

[0203] In VVC, Chroma partitioning can be inferred based on Luma partitioning, but this can be disabled. For example, according to the dual-tree mode, the Chroma partitioning tree is independent of the Luma tree. However, there are some restrictions.

[0204] The tree may also be partially dependent on Luma partitioning for CCLM mode; otherwise, it is independent. IMAGE BORDER

[0205] The frame resolution is not always equal to an integer multiple of the CTU size. Consequently, there may be incomplete CTUs at the edges of the frame, as illustrated in Figure 12, where CTUs 1201-1206 are incomplete due to the lower and right frame boundaries 1207, 1208. In VVC, in contrast to previous standards, split signaling is allowed at the image boundary. The splitting process at the boundary is applied until the coding tree node represents a CU located entirely within an image. However, some splits are inferred (not transmitted). Consequently, different variables, such as maxMttDepth, minQtDepth, and minQTSize, are increased or decreased according to possible splits outside the boundary. QT BT TT CODING SELECTION

[0206] In VTM and ECM software, several encoder-side optimizations are used for QT BT TT encoding selection.

[0207] One of these optimizations includes determining whether QT splitting is tested before BT splitting.

[0208] The condition is that at least one CU to the left of or above the node of Petition 870250088580, dated 09 / 30 / 2025, p. 50 / 155 37 / 93 The current encoding tree has a QT depth greater than the QT depth of the node in the current encoding tree; and if the width of the CU represented by the node in the current encoding tree is greater than minQTSize * 2.

[0209] If this condition is true, the QT will come before the BT and the divisions will be handled in the following order: -No Division -QT - BT Horizontal - BT Vertical - Horizontal TT - TT Vertical

[0210] Otherwise, the order will be: - No Division - BT Horizontal - BT Vertical - Horizontal TT - TT Vertical - QT

[0211] This order is important because, according to some optimizations, several divisions will not be tested depending on the results of the first modes tested. Therefore, when QT is tested last, there are many occasions when it will not be evaluated. MAXMTTDEPTH

[0212] The maximum MTT depth has a significant impact on encoder complexity. Common test conditions for ECM have been updated to reduce encoding through different maxMttDepth settings, as illustrated in Figure 13. In this configuration, maxMttDepth is smaller for some temporal IDs for high resolutions or low QP settings. MAXBTSIZE ADAPTIVE Petition 870250088580, dated 09 / 30 / 2025, page 51 / 155 38 / 93

[0213] In VTM and ECM, there is a frame-level encoding option that defines the maximum bit size according to the average block sizes of previously encoded frames with the same depth (=> same temporal ID in the case of CTC RA). The average block size is compared to the limits according to the following pseudocode: if( dBlkSize < AMAXBT_TH32 ) { newMaxBtSize = 32; } else if( dBlkSize < AMAXBT_TH64 ) { newMaxBtSize = 64; } else if( dBlkSize < AMAXBT_TH128 ) { newMaxBtSize = 128; } else { newMaxBtSize = 256; }

[0214] Where AMAXBT_TH32 equals 15, AMAXBT_TH64 equals 30, and AMAXBT_TH128 equals 60. This method decreases the maximum BT block size when the average block size is small and increases it when it is large. MODALITIES A partitioning parameter is defined based on at least one other parameter.

[0215] In some embodiments, there is an image or video data partitioning process in which a first partitioning parameter (to control or determine the partitioning of the image data) is defined or Petition 870250088580, dated 09 / 30 / 2025, page 52 / 155 39 / 93 determined according to at least one other second parameter. Image or video data can be partitioned similarly to that described above for VVC or ECM, where each frame or image is divided into coding tree units (CTUs), which can be further divided by applying one or more of a plurality of allowed splits. For example, splits can include no split (no further splitting is performed), a binary tree split (in which a coding tree block or unit is subdivided into two additional blocks or units), a ternary tree split (in which a coding tree block or unit is subdivided into three blocks or units), and a quadtree split (subdivision into 4 units or blocks of equal size). Binary and ternary splits can be performed horizontally or vertically, and the resulting blocks after splitting can have different sizes.In this context, a partitioning parameter can refer to a variable or syntax element that determines under what circumstances the mentioned divisions can be used, for example, maximum or minimum depths for a specific type of division. In this mode, the value of the first parameter will depend in some way on the value of the second parameter. In this mode, the second parameter can be any variable or syntax element and is not limited to other partitioning parameters.

[0216] The main advantage of this mode is an improvement in encoding efficiency thanks to an adapted configuration of the first parameters according to the value of the second parameter. A second advantage may be a reduction in encoding time thanks to the reduction of possible partitioning (e.g., split modes). A partitioning parameter that represents a maximum partitioning depth is defined according to at least one other parameter.

[0217] In one embodiment, a first partitioning parameter represents a maximum partitioning depth (i.e., for one or more of the available divisions). This first parameter is defined or determined according to at least one other (second) parameter. In this embodiment, the value Petition 870250088580, dated 09 / 30 / 2025, page 53 / 155 40 / 93 of the first parameter will depend on the value of the second parameter. In this mode, the second parameter can be a variable or a syntax element. A partitioning parameter for the current block is defined according to at least one other parameter for the current block.

[0218] In one embodiment, a first partitioning parameter for a current block is defined or determined according to at least one other second parameter of this current block.

[0219] The advantage is an increase in encoding efficiency compared with earlier modes, thanks to the adapted configuration of the value of the first parameters block by block (i.e., instead of at CTU or at a higher level, such as Slice, Image or Sequence level, the image data encoded in the bitstream).

[0220] In one embodiment, a first partitioning parameter represents a maximum partitioning depth for a current block and is defined or determined according to at least one other second parameter of this current block. For example, the second parameter represents another partitioning depth. In another example, the second parameter is a block size. The maximum multitree depth of the current block is determined based on at least the QT depth of the current block or the block size.

[0221] In one embodiment, the maximum multitree depth of the current block is determined based on the QT depth of the current block or the size of the current block.

[0222] The advantage is an increase in encoding efficiency and possibly a reduction in encoder execution time and encoder complexity. In fact, as described in the section on the previous technique, MaxMttDepth is defined as a fixed value transmitted in a high-level header. However, the present inventors have found that the efficiency of MaxMttDepth is closely related to the QT depth value of the current block, as well as the impact on encoding execution time. Thanks to Petition 870250088580, dated 09 / 30 / 2025, page 54 / 155 41 / 93 By configuring MaxMttDepth according to the QT depth value, encoding efficiency is maintained compared to using a larger MaxMttDepth. In fact, the bitrate overhead for BT and TT signaling is reduced when unnecessary. SOLUTION 1 The value of MaxMttDepth depends on QTDepth and a reference value.

[0223] In one embodiment, the maximum multitree depth value MaxMttDepth depends on the QT Depth (QTDepth) of the current block and a reference value. For example, the reference value may correspond to another QTDepth. For example, the other QTDepth may be associated with another block or it may be a predetermined QT depth reference value. The MaxMttDepth value for the current block is set based on the QT depth value of the current block, according to the reference value. QTDEPTH and QTDEPTHTEMPO The value of MaxMttDepth depends on the QTDepth and a QtdepthTime of a temporal area.

[0224] In one embodiment, the maximum multitree depth value MaxMttDepth depends on the QTDepth of the current block and a QT depth of a temporal area QTDepthTempo. Compared to the previous embodiment, the reference value is a QT depth of a temporal area. For example, the MaxMttDepth value for the current block is set based on the QT depth value of the current block, which is based on the QT depth obtained from a temporal block.

[0225] The advantage is an ideal improvement in coding efficiency, since the QT depth of a temporal area is a reference value that ideally reflects the behavior of the current block and its area, as selected. Increase MaxMttDepth according to one or more rules or conditions.

[0226] In one embodiment, the current maximum multitree depth, MaxMttDepth (from the header), is increased according to at least one rule. Petition 870250088580, dated 09 / 30 / 2025, p. 55 / 155 42 / 93 or condition, based on the QT depth of the current block and the QT depth of the time area.

[0227] The advantage is an improvement in coding efficiency with minimal impact on increasing coding time. Increase the value of MaxMttDepth QTDepth == QTDepthTempo

[0228] In one embodiment, the current maximum multitree depth MaxMttDepth (of the header) is increased (e.g., incremented by one) when the condition that the QT depth of the current block and the QT depth of the temporal area are equal is satisfied. The following pseudocode illustrates a possible implementation of this embodiment: If (QTDepth == QTDepthTime) { MaxMttDepth++}

[0229] The advantage of this example is that it saves about 80% of the gain from increasing MaxMttDepth (from the header) by 1 for all QT depths with only a 10% increase in encoder runtime. So this is particularly efficient. Increase the value of MaxMttDepth (QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1)

[0230] In an alternative embodiment, the current maximum multitree depth MaxMttDepth (from the header) is increased when the QT depth of the current block equals the QT depth of the temporal area or when the QT depth of the current block equals the QT depth of the temporal area minus 1. The following pseudocode illustrates an example of this embodiment: If ((QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1)) { MaxMttDetph++}

[0231] Alternatively, the current maximum multitree depth MaxMttDepth Petition 870250088580, dated 09 / 30 / 2025, p. 56 / 155 43 / 93 (from the header) is only increased when the QT depth of the current block equals the QT depth of the temporal area minus 1, as follows: If (QTDepth == QTDepthTime - 1) { MaxMttDetph++}

[0232] Compared to the previous method, this one is more complex, but offers greater encoding efficiency. More precisely, when QTDepth equals QTDeptTime minus 1, the encoding efficiency is greater as the encoder's execution time increases. But this also depends on the frame from which the temporal area originates. Reduce the value of MaxMttDepth according to certain rules.

[0233] In one embodiment, the current maximum multitree depth MaxMttDepth is reduced according to at least one rule based on the QT depth of the current block and the QT depth of the temporal area.

[0234] The advantage is a reduction in encoding time, with a sometimes positive impact on encoding efficiency, since a portion of the rate dedicated to BT and TT partitioning signaling can be saved. Reduce when NOT((QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1))

[0235] In one embodiment, the current maximum multitree depth MaxMttDepth (from the header) is reduced when the QT depth of the current block is not equal to the QT depth of the temporal area, or when the QT depth of the current block is not equal to the QT depth of the temporal area minus 1. The following pseudocode illustrates an example of this embodiment: If (NOT(QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime 1)) { MaxMttDepth-} Petition 870250088580, dated 09 / 30 / 2025, p. 57 / 155 44 / 93

[0236] The advantage is a reduction in encoding time with a small increase in encoding efficiency. Reduce when NOT(QTDepth == QTDepthTime))

[0237] In an additional embodiment, the current maximum multitree depth MaxMttDepth is reduced when the QT depth of the current block is not equal to the QT depth of the temporal area. The following pseudocode illustrates an example of this embodiment: If (NOT(QTDepth == QTDepthTime)) { MaxMttDepth-}

[0238] The advantage is an increase in the reduction of encoding time compared to the previous method, but with an impact on encoding efficiency. Reduce when QTDepth > QTDepthTime

[0239] In one embodiment, the current maximum multitree depth MaxMttDepth is reduced when the QT depth of the current block is greater than the QT depth of the temporal area. The following pseudocode illustrates an example of this embodiment: If (QTDepth > QTDepthTime) { MaxMttDepth--; }

[0240] This mode offers less complexity than the previous mode, but provides better coding efficiency.

[0241] Furthermore, this reduction can only be applied when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo). Only when the timeframe is better than the current situation. Petition 870250088580, dated 09 / 30 / 2025, page 58 / 155 45 / 93

[0242] In an additional mode, the previous mode is only applied or enabled when the time area comes from a time frame with better encoding quality than the current frame. Better encoding quality, for example, may result in a lower QP for the time frame than the current one.

[0243] The advantage is an ideal encoding efficiency; in fact, if the time frame has better encoding, its average block size should be smaller than that of the current frame; therefore, it is better to reduce the maximum multitree depth for cases where the current QT depth is greater than the QT depth of the time area. Reduce when QTDepth < QTDepthTime - 1

[0244] In one mode, the current maximum multitree depth, MaxMttDepth, is reduced when the QT depth of the current block is less than the QT depth of the temporal area minus 1. The following pseudocode illustrates an example of implementing this mode: If (QTDepth < QTDepthTime - 1) { MaxMttDepth--; }

[0245] This method also offers reduced complexity and increased coding efficiency, just like the previous one.

[0246] Furthermore, this reduction of MaxMttDepth can only be applied when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo). Only when the current situation is better than the time frame.

[0247] In an additional mode, the previous mode is only enabled when the current frame has a better encoding quality than the temporal frame of the temporal area. A better encoding quality, for example, may result in a lower QP for the temporal frame than for the current frame.

[0248] The advantage is ideal coding efficiency; in fact, if the frame Petition 870250088580, dated 09 / 30 / 2025, page 59 / 155 If the current 46 / 93 has better quality encoding, its average block size should be smaller than that of the time frame. Therefore, it is better to reduce the maximum multitree depth for cases where the current QT depth is less than the QT depth of the time area minus 1, and alternatively, less than or equal to the QT depth of the time area only. This may depend on the difference between the QPs, for example. Reduce only when QTDepthTempo < PH_QTDepth

[0249] In one mode, the current maximum multitree depth, MaxMttDepth, is reduced when the current block's maximum temporal QT depth is less than the current frame's QT depth. The following pseudocode illustrates an example of implementing this mode: If (QTDepthTime < PH_QTDepth) { MaxMttDepth--; }

[0250] This mode can be combined with other modes that implement a conditional reduction of MaxMttDepth. Note that the QT depth of the current frame (as mentioned in the described modes) can be computed based on the minimum QT size, as this value is not available, for example, in the VVC specifications. This value is defined as log2(CTUSize() / (minQtSize << 1)).

[0251] The advantage is an improvement in encoding efficiency. In fact, when the temporal QT depth reaches the current QT depth, there is little chance that the maximum multitree depth will be reduced and, if it is lower, it is better to reduce the maximum multitree depth to reduce encoding time, as this can be compensated for by a greater QT depth for the current block. Combination of modes to conditionally increase and decrease MaxMttDepth

[0252] In one modality, the different modalities for increasing and decreasing Petition 870250088580, dated 09 / 30 / 2025, p. 60 / 155 47 / 93 MaxMttDepth are combined. For example, Figure 14 illustrates one such combination. In this figure, PH_MaxMttDepth is the MaxMttDepth for the current image. In this example, the current maximum multitree depth, MaxMttDepth (from the header), is increased when the QT depth of the current block and the QT depth of the temporal area are equal, and is reduced when the QT depth of the current block is not equal to the QT depth of the temporal area or when the QT depth of the current block is not equal to the QT depth of the temporal area minus 1. The following pseudocode illustrates an example of this mode: If (QTDepth == QTDepthTime) { MaxMttDepth++} If (NOT(QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime 1 )) { MaxMttDepth-}

[0253] The advantage is improved coding efficiency and an increase in coding time reduction. Based on a formula

[0254] In one embodiment, the maximum multitree depth value, MaxMttDepth, is determined block by block by means of a formula. For example, this formula contains QTdepth and, additionally, QTDepthTime. For example, the formula might be: MaxMttDepth = 2 * QTDepthTime - QTDepth + 1

[0255] Or, alternatively, MaxMttDepth = min(2 * QTDepthTime - QTDepth +1, MaxMttDepth)

[0256] Or alternatively, MaxMttDepth = min(QTDepth- (QTDepthTime-2) + 1, MaxMttDepth+1) Petition 870250088580, dated 09 / 30 / 2025, p. 61 / 155 48 / 93 The reference value is encoded in HLS (High-Level Syntax). The reference value is transmitted in a header.

[0257] In one embodiment, the maximum multitree depth value MaxMttDepth depends on the QTDepth of the current block and a reference value. And the reference value is transmitted in a header. For example, this value can be transmitted additionally or alternatively in the SPS, PPS, image header and slice header.

[0258] Compared to temporal QT depth-based modalities, this modality does not need to access the frame containing the temporal QT depth. This simplifies the process. All of the above methods can be applied.

[0259] All previous methods that used QT depth determined based on the time area can be applied. For example, similarly to Figure 14, the QT depth of the current block is compared to the QT depth of the image header “PH_QTDeph” to derive the current MaxMttDepth. In this example, the current maximum multitree depth, MaxMttDepth, is increased when the QT depth of the current block and PH_QTDeph are equal, and is reduced when the QT depth of the current block is not equal to PH_QTDeph or when the QT depth of the current block is not equal to PH_QTDeph minus 1. The following pseudocode illustrates an example of this method: If (QTDepth == PH_QTDeph) { MaxMttDepth++} If (NOT(QTDepth == PH_QTDeph) OR (QTDepth == PH_QTDeph - 1 )) { MaxMttDepth-} CONSIDERING MAXMTTDEPTHTEMPO Petition 870250088580, dated 09 / 30 / 2025, p. 62 / 155 49 / 93 The MaxMTTDepthTempo value is considered when determining the current MaxMTTDepthTempo value.

[0260] In one embodiment, the maximum multitree depth from a temporal area “MaxMTTDepthTempo” is considered to determine the value of MaxMttDepth for the current block. Increase MaxMttDepth when PH_MaxMttDepth < MaxMttDepthTempo

[0261] In one embodiment, the value of MaxMttDepth is increased when the maximum high-level multitree depth “PH_MaxMttDepth” is less than MaxMttDepthTempo. The following pseudocode illustrates an example of this embodiment: If (PH_MaxMttDepth < MaxMttDepthTime) { MaxMttDepth++}

[0262] The advantage is an improvement in encoding efficiency, because if the maximum multitree depth of the temporal area is greater than MaxMttDepth or PH_MaxMttDepth, there is a high chance that the value of MaxMttDepth should be increased to achieve the maximum usefulness of this parameter in terms of encoding efficiency. PH_MaxMttDepth < MaxMttDepthTime

[0263] In one embodiment, the value of MaxMttDepth is increased by combining a criterion based on the high-level maximum multitree depth “PH_MaxMttDepth” and the temporal maximum multitree depth “MaxMttDepthTempo” and a criterion based on the current QT depth and the QT depth of a temporal area.

[0264] For example, the value of MaxMttDepth is increased when the maximum high-level multitree depth “PH_MaxMttDepth” is less than MaxMttDepthTempo and when the QT depth of the current block and the QT depth of the temporal area are equal. The following pseudocode illustrates an example of this mode: Petition 870250088580, dated 09 / 30 / 2025, page 63 / 155 50 / 93 If (PH_MaxMttDepth < MaxMttDepthTime) { If (QTDepth == QTDepthTime) { MaxMttDepth++}}

[0265] The advantage is an improvement in coding efficiency with a minimal impact on coding execution time compared to the mode without the combination. Limit the increase based on the MTT time average (mttDepthTempo)

[0266] In one embodiment, the increase in MaxMttDepth is limited based on the time average of MTT (mttDepthTempo).

[0267] The advantage is an improvement in coding efficiency and a reduction in complexity. In fact, if the maximum MTT depth, MaxMttDepth, is increased when it is not needed, this increases the rate dedicated to partitioning. The reduction in coding time, compared to the previous mode, is given by the lower possibility of MTT divisions being evaluated. Limitation compared to PH_MaxMttDepth

[0268] In one embodiment, the average of the MTT time values, mttDepthTempo, is compared to the maximum MTT depth value, PH_MaxMttDepth, to determine if the current maximum MTT depth, MaxMttDepth, needs to be increased. In an additional embodiment, MaxMttDepth is increased if the average of the MTT time values ​​is greater than or equal to half the maximum MTT depth of the image header, PH_MaxMttDepth. The maximum MTT depth of the image header, PH_MaxMttDepth, is halved by dividing by 2 or by shifting bits right by 1. The following pseudocode illustrates an example implementation of this embodiment: Petition 870250088580, dated 09 / 30 / 2025, p. 64 / 155 51 / 93 If (PH_MaxMttDepth < MaxMttDepthTime) { If (QTDepth == QTDepthTime) { If (mttDepthTime >= (PH_MaxMTTDepth >> 1)) { MaxMttDepth++}}}

[0269] Alternative modalities can be considered for pseudocode. For example, the pseudocode can use a greater inequality than the following:

[0270] If (mttDepthTempo > (PH_MaxMTTDepth >> 1))

[0271] An offset can also be added for the right offset, as follows:

[0272] If (mttDepthTempo >= ((PH_MaxMTTDepth + 1) >> 1))

[0273] The advantage is the same as in the previous mode (i.e., an improvement in coding efficiency and a reduction in complexity). Limitation compared to PH_MaxMttDepthTempo

[0274] In one implementation, the average of the temporal MTT values, mttDepttTempo, is compared to the maximum MTT depth value of the reference frame, PH_MaxMttDepthTempo, to determine if the current maximum MTT depth, MaxMttDepth, needs to be increased. In an additional embodiment, MaxMttDepth is increased if the average of the temporal MTT values ​​is greater than or equal to half the maximum MTT depth of the image header of the reference frame, PH_MaxMttDepthTempo. The maximum MTT depth of the image header, PH_MaxMttDepth, is halved by dividing by 2 or by shifting bits right by 1. The following pseudocode illustrates an example of implementing this embodiment:

[0275] If (PH_MaxMttDepth < MaxMttDepthTempo) Petition 870250088580, dated 09 / 30 / 2025, p. 65 / 155 52 / 93 { If (QTDepth == QTDepthTime) { If (mttDepthTime >= (PH_ MaxMTTDepthTempo >> 1)) { MaxMttDepth++} }}

[0276] Alternative approaches can be considered for pseudocode. For example, the pseudocode can use a larger inequality as follows:

[0277] If (mttDepthTempo > (PH_ MaxMTTDepthTempo >> 1))

[0278] An offset can also be added for the right offset, as follows:

[0279] If (mttDepthTempo >= ((PH_ MaxMTTDepthTempo + 1) >> 1))

[0280] The advantage is the same as the previous method, namely, an improvement in coding efficiency and a reduction in complexity. Not increased when mttDepthTempo == PH_MaxMttDepth or PH_MaxMttDepthTempo

[0281] In one embodiment, the maximum MTT depth value, MaxMttDepth, is not increased when the average of the temporal MTT value, mttDepthTempo, is equal to the maximum MTT depth of the reference frame image header, PH_MaxMttDepthTempo, or alternatively, when it is equal to the maximum temporal MTT depth, MaxMttDepthTempo. In fact, when mttDepthTempo reaches this value, it is certainly useful to increase the maximum MTT depth for the current block, but this also increases the encoder execution time.

[0282] Similarly, the maximum MTT depth value, MaxMttDepth, is not increased when the average of the temporal MTT value, mttDepthTempo, is equal to the maximum MTT depth of the image header, PH_MaxMttDepth. Petition 870250088580, dated 09 / 30 / 2025, p. 66 / 155 53 / 93

[0283] The advantage is a further reduction in encoding execution time, with a slight decrease in encoding efficiency compared to previous methods. This offers a good balance between gain and complexity. Limitation only for (QTDepth == QTDepthTempo)

[0284] In one modality, the previous modalities are applied only when the current QT depth, QTDepth, is equal to the temporal QT depth.

[0285] The advantage is an improvement in coding efficiency compared to previous methods. Specific limitation for (QTDepth == QTDepthTempo -1)

[0286] In one embodiment, the previous embodiments are applied when the current QT depth, QTDepth, is equal to the temporal QT depth minus 1. However, the maximum MTT depth does not increase in the same way as in the case where QTDepth is equal to QTDepthTempo. Instead, when the current QT depth, QTDepth, is equal to the temporal QT depth minus 1, the maximum MTT depth, MaxMttDepth, increases only when the average of the temporal MTT depth values, mttDepthTempo, is equal to PH_MaxMTTDepthTempo or, alternatively, equal to the PH_MaxMTTDepthTempo of the current frame or to MaxMttDepthTempo.

[0287] The following pseudocode illustrates an example implementation of this: If (PH_MaxMttDepthTempo < MaxMttDepthTempo) { If (QTDepth == QTDepthTime-1) { If (mttDepthTime == (PH_ MaxMTTDepthTempo >> 1)) { MaxMttDepth++} } Petition 870250088580, dated 09 / 30 / 2025, p. 67 / 155 54 / 93

[0288] Alternatively, the average temporal MTT depth, mttDepthTempo, can be less than or equal to PH_MaxMTTDepthTempo. In another example, the average temporal MTT depth, mttDepthTempo, can be less than or equal to the PH_MaxMTTDepthTempo of the current frame or to MaxMttDepthTempo. The following pseudocode illustrates an exemplary implementation of this: If (PH_MaxMttDepthTempo < MaxMttDepthTempo) { If (QTDepth == QTDepthTime-1) { If (mttDepthTime <= (PH_ MaxMTTDepthTime >> 1)) { MaxMttDepth++}}}

[0289] Alternative modalities can be considered for pseudocode. For example, the pseudocode can use a minor inequality as follows:

[0290] If (mttDepthTempo < (PH_ MaxMTTDepthTempo >> 1))

[0291] An offset can also be added for the right offset, as follows:

[0292] If (mttDepthTime <= ((PH_ MaxMTTDepthTempo + 1) >> 1))

[0293] The advantage is an improvement in coding efficiency compared to previous methods. In fact, when the current QT depth is equal to the temporal QT depth minus 1, it is more efficient to increase the maximum MTT, MaxMttDepth, for the current block only to the lower value of the average of the temporal MTT value, mttDepthTempo. Reduce MaxMttDepth when PH_MaxMttDepth > MaxMttDepthTempo

[0294] In one embodiment, the value of MaxMttDepth is reduced when the maximum high-level multitree depth “PH_MaxMttDepth” is greater than Petition 870250088580, dated 09 / 30 / 2025, p. 68 / 155 55 / 93 MaxMttDepthTempo. The following pseudocode illustrates an example of this modality: If (PH_MaxMttDepth > MaxMttDepthTempo) { MaxMttDepth-}

[0295] The advantage is the reduction of encoder execution time with an improvement in encoding efficiency. Since MaxMttDepthTempo is less than MaxMttDepth or PH_MaxMttDepth, there is a high chance that the value of MaxMttDepth should be reduced to achieve maximum utility of this parameter in terms of encoding efficiency. Reduce MaxMttDepth when PH_MaxMttDepth > MaxMttDepthTempo and when the current slice / frame's QP is greater than or equal to the QP of the time area frame.

[0296] In one mode, the value of MaxMttDepth is reduced when the maximum high-level multitree depth “PH_MaxMttDepth” is greater than MaxMttDepthTempo and when the QP of the current slice / frame “currentQP” is greater than or equal to the QP of the temporal area slice / frame “tempoQP”. The following pseudocode illustrates an example of this mode: If (PH_MaxMttDepth > MaxMttDepthTempo) { If(currentQP >= tempoQP) { MaxMttDepth—} }

[0297] Compared to the previous one, the advantage of this mode is an improvement in encoding efficiency. In fact, when the current QP is greater than or equal to the QP of the time area slice / frame, the maximum multitree depth of the current block is generally greater. Petition 870250088580, dated 09 / 30 / 2025, page 69 / 155 56 / 93 Reduce according to the previous rules only when PH_MaxMttDepth == MaxMttDepthTempo

[0298] In one embodiment, the maximum multitree depth, a requirement for the maximum multitree depth to be reduced, is that the maximum multitree depth of the current frame equals the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo).

[0299] For example, the reduction can be applied to all QT depths other than the temporal QT depth and the temporal QT depth minus 1, as described in some previous embodiments. The following pseudocode illustrates this embodiment:

[0300] if (PH_MaxMttDepth == MaxMttDepthTime) { if (NOT((QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1 ))) { MaxMttDepth-}}

[0301] This provides an improvement in coding efficiency. In fact, when the maximum multitree depth is equal to the maximum temporal multitree depth of the temporal area, there is a high probability that the QT depth selected for the current block will be equal to the temporal QT depth or the temporal QT depth minus 1; therefore, for other QT depth values, the maximum multitree depth can be reduced.

[0302] Furthermore, this criterion can only be applied when the time frame has a better encoding quality than the current one (for example, a lower QP). Reduce only when PH_MaxMttDepth equals PH_MaxMttDepthTempo.

[0303] In one embodiment, for the maximum multitree depth to be Petition 870250088580, dated 09 / 30 / 2025, p. 70 / 155 57 / 93 reduced, it is an additional requirement that the maximum multitree depth of the current frame be equal to the maximum multitree depth of a time frame. (PH_MaxMttDepth == PH_MaxMttDepthTime).

[0304] For example, when applied to the previous example, the following formula illustrates that modality: if ((PH_MaxMttDepth == PH_MaxMttDepthTime) && (PH_MaxMttDepth == MaxMttDepthTime)) { if (NOT((QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1 ))) { MaxMttDepth-}}

[0305] This provides an improvement in coding efficiency, especially when combined with the previous method. Further reduction of MaxMttDepth

[0306] In one mode, in addition to the previous modes, two reductions of MaxMttDepth are applied if MaxMttDepth does not reach MaxMttDepthTime. The following pseudocode illustrates an example implementation of this mode: If (PH_MaxMttDepth > MaxMttDepthTempo) { MaxMttDepth = MaxMttDepthTime If (MaxMttDepth > MaxMttDepthTime) { MaxMttDepth—}}

[0307] This pseudocode can be adapted according to different Petition 870250088580, dated 09 / 30 / 2025, page 71 / 155 58 / 93 modalities described above.

[0308] The advantage of this method is an increase in coding efficiency and a further reduction in coding time complexity. MaxMttDepth is equal to MaxMttDepthTime

[0309] In an additional embodiment to the previous embodiments, MaxMttDepth is defined as equal to MaxMttDepthTempo when PH_MaxMttDepth > MaxMttDepthTempo. The following pseudocode illustrates an example implementation of this: If (PH_MaxMttDepth > MaxMttDepthTempo) { MaxMttDepth = MaxMttDepthTempo}

[0310] The advantage of this method is a further reduction in coding time complexity compared to the previous method. REDUCTION LIMITED TO A FEW RULES

[0311] In certain modes, the reduction of the maximum multitree depth may be restricted based on one or more parameters. For example, these may be parameters indicative of image quality or Class A video-related content. Modes related to specific parameters are presented below.

[0312] If (Resolution >1920*1080)

[0313] In one mode, the maximum multitree depth reduction is applied only to the sequence with a resolution higher than a predetermined resolution. In one mode, the predetermined resolution is HD (1920*1080). This is especially efficient when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo). If(CTUSize >=256)

[0314] In one mode, the maximum multitree depth reduction is applied only when the CTU size for the current frame is greater than or equal to Petition 870250088580, dated 09 / 30 / 2025, page 72 / 155 59 / 93 is a predetermined value. In one mode, the predetermined value is 256. This is especially efficient when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo). If (PH_MaxMttDepth < PH_MaxQTDepth)

[0315] In one embodiment, the maximum multitree depth reduction is applied only when the maximum multitree depth at the frame level (PH_MaxMttDepth) of the current frame is less than the maximum possible QT depth for the current frame. This is especially efficient when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area (PH_MaxMttDepth == MaxMttDepthTempo). If (PH_MaxQTDepth> 3)

[0316] In one mode, the maximum multitree depth reduction is applied only when the maximum QT depth of the current frame is greater than a predetermined value. In one mode, the predetermined value is 3. This is especially efficient when the maximum multitree depth of the current frame is equal to the maximum multitree depth of the temporal area. (PH_MaxMttDepth == MaxMttDepthTempo). MaxMttDepth reduced based on a combined criterion.

[0317] In one embodiment, the value of MaxMttDepth is reduced by combining a criterion based on the high-level maximum multitree depth “PH_MaxMttDepth” and the temporal maximum multitree depth “MaxMttDepthTempo” and a criterion based on the current QT depth and the QT depth of a temporal area.

[0318] For example, the value of MaxMttDepth is reduced when the maximum high-level multitree depth “PH_MaxMttDepth” is greater than MaxMttDepthTempo and when the QT depth of the current block is not equal to the QT depth of the temporal area or to the QT depth of the temporal area minus 1. The following pseudocode illustrates an example of this mode: If (PH_MaxMttDepth > MaxMttDepthTempo) Petition 870250088580, dated 09 / 30 / 2025, p. 73 / 155 60 / 93 { If (NOT(QTDepth == QTDepthTime) OR (QTDepth == QTDepthTime - 1)) { MaxMttDepth-}}

[0319] The advantage is the reduction in encoder execution time with an improvement in encoding efficiency, compared to the implementation without the combination. Increase MaxMttDepth when PH_MaxMttDepth == MaxMttDepthTempo

[0320] In one embodiment, the value of MaxMttDepth is increased when the maximum high-level multitree depth “PH_MaxMttDepth” is equal to MaxMttDepthTempo.

[0321] This mode offers a significant improvement in coding efficiency. For QTDepth only == QTDepthCol

[0322] In one embodiment, the value of MaxMttDepth is increased when the maximum high-level multitree depth “PH_MaxMttDepth” is equal to MaxMttDepthTempo and when the current QT depth is equal to the temporal QT depth.

[0323] This mode also provides a significant coding gain with less impact on coding execution time compared to the previous mode. For (QTDepth == QTDepthCol) OR (QTDepth == QTDepthTempo - 1)

[0324] In an alternative embodiment, the value of MaxMttDepth is increased when the maximum high-level multitree depth “PH_MaxMttDepth” is equal to MaxMttDepthTempo and when the current QT depth is equal to the temporal QT depth or when it is equal to the temporal QT depth minus 1. For QTDepth == QTDepthCol and QTDepthCol == minQTDepthCol Petition 870250088580, dated 09 / 30 / 2025, p. 74 / 155 61 / 93

[0325] In one embodiment, for the value of MaxMttDepth to be increased, the current QT depth must be equal to the temporal QT depth (QTDepth == QTDepthCol) and the temporal QT depth must be equal to the minimum temporal QT depth (QTDepthCol == minQTDepthCol).

[0326] This increases encoding efficiency, since the temporal QT depth split appears to be the same for all blocks in the temporal area, therefore the only way to obtain additional splits for the current block is to increase the maximum multitree depth.

[0327] Additionally, this can only be applied in cases where the maximum multitree depth for the current frame is equal to the maximum temporal multitree depth (PH_MaxMttDepth == MaxMttDepthTempo), to ensure that the maximum possible division is achieved in the temporal area. For QTDepth == QTDepthtime and QTDepthTime == PH_MaxQTDepth

[0328] In one embodiment, the value of MaxMttDepth is increased when the current QT depth is equal to the temporal QT depth (QTDepth == QTDepthTempo) and when that temporal QT depth is equal to the QT depth of the current frame (QTDepthTempo == PH_MaxQTDepth).

[0329] This increases encoding efficiency because the QT depth will normally reach its maximum value for the current block; therefore, one way to obtain additional splits for the current block is to increase the maximum multitree depth.

[0330] Additionally, this can only be applied when the maximum multitree depth for the current frame is equal to the maximum temporal multitree depth (PH_MaxMttDepth == MaxMttDepthTempo) to ensure that the maximum possible division is achieved in the temporal area. Based on a formula

[0331] In one embodiment, the value of MaxMttDepth is determined based on a formula that depends on “PH_MaxMttDepth” and MaxMttDepthTempo. With QTDepth

[0332] In one embodiment, the value of MaxMttDepth is determined based Petition 870250088580, dated 09 / 30 / 2025, page 75 / 155 62 / 93 in a formula that depends on PH_MaxMttDepth and / or MaxMttDepthTempo and the QT depth of the current block and / or the QT depth of the temporal area.

[0333] For example, the formula could be: MaxMttDepth = MaxMttDepth - 2 *( QTDepth - MaxMttDepthTempo );

[0334] Or, alternatively: If(MaxMttDepth >= MaxMttDepth - 2 *( QTDepth - MaxMttDepthTempo )) MaxMttDepth = MaxMttDepth - 2 *( QTDepth - MaxMttDepthTempo );

[0335] Else MaxMttDepth = 0 PH_MAXMTTDEPTH OF TIME FRAME FRAME Same Modes as MaxMttDTempo

[0336] In one mode, the value of MaxMttDepth is determined based on the maximum high-level multitree depth of a temporal frame “PH_MaxMttDepthTempo”. For example, the frame can be a reference frame or a frame with the same temporal ID. All modes defined above for the maximum multitree depth from a temporal area “MaxMttDTempo” can be applied with PH_MaxMttDepthTempo.

[0337] The advantage compared to using MaxMttDepthTempo instead of MaxMttDTempo is that it is not necessary to derive MaxMttDTempo from the temporal area.

[0338] This mode can also be combined with all other modes described above for a better balance between coding efficiency and execution time. Apply the criterion only when PH_MaxMttDeptTempo is greater than PH_MaxMttDept

[0339] In a specific embodiment, the maximum high-level multitree depth of a temporal frame “PH_MaxMttDepthTempo” is compared with the maximum high-level multitree depth of the current frame “PH_MaxMttDept” to determine whether at least one of the criteria described above is applied or not. Petition 870250088580, dated 09 / 30 / 2025, p. 76 / 155 63 / 93 For example, if PH_MaxMttDeptTempo is greater than PH_MaxMttDept, increasing MaxMttDepth is allowed, thanks, for example, to one of the criteria listed above.

[0340] For example, when PH_MaxMttDepth is less than PH_MaxMttDeptTempo and when PH_MaxMttDepth is also less than MaxMttDepthTempo and when QTDepth is equal to QTDepthTempo, MaxMttDepth is increased. The following pseudocode illustrates this example of this mode: If (PH_MaxMttDepth < PH_MaxMttDeptTempo) { If (PH_MaxMttDepth < MaxMttDepthTime) { If (QTDepth == QTDepthTime) { MaxMttDepth++} }}

[0341] The advantage is a good compromise between encoding execution time and encoding efficiency. In fact, the proposed criterion provides greater gain when the current high-level maximum multitree depth is less than the timeframe's high-level maximum multitree depth (especially with a reference frame). Current maximum high-level multitree depth <= maximum high-level multitree depth

[0342] Alternatively, the formula may consider that the current high-level maximum multitree depth is less than or equal to, rather than just less than, the high-level maximum multitree depth for greater gain. For CTU 256 only

[0343] In an additional embodiment, the restriction based on when PH_MaxMttDeptTempo is greater than PH_MaxMttDept is applied only when the CTU size is large. For example, when the CTU size is 256. Petition 870250088580, dated 09 / 30 / 2025, p. 77 / 155 64 / 93 No reduction if PH_MaxMTTDeptTempo is less than PH_MaxMTTDept

[0344] In one mode, if PH_MaxMTTDeptTempo is less than PH_MaxMTTDept, the reduction of MaxMttDepth is not allowed.

[0345] The following pseudocode illustrates an example of this modality: If (PH_MaxMttDepth <= PH_MaxMttDeptTempo) { If (PH_MaxMttDepth > MaxMttDepthTempo) { MaxMttDepth-}} SPECIFIC REDUCTION FOR MAXMTTDEPTH When MaxMttDetph is reduced, it can be set equal to 0.

[0346] In one embodiment, when MaxMttDetph is reduced, its value is set to 0, rather than being decremented or simply reduced.

[0347] The main advantage is the reduction in the rate associated with BT or TT signaling. The second is a further reduction in complexity.

[0348] In particular, this mode is applied when there is a high chance that BT and TT splits will not be necessary. For example, this can be applied when the maximum multitree depth of the temporal area, MaxMttDepthTempo, is particularly low. It can also be applied when the current QTDepth is set to the minimum QTDepth value (the CTU size). It can also be applied when QTDepth is equal to its maximum possible value (the minimum QT size).

[0349] In another example, this mode is applied when the current QT depth is greater than the temporal QT depth (QTDepth > QTDepthTempo).

[0350] In another example, this mode is applied when the current QT depth is less than the temporal QT depth minus 1 (QTDepth < QTDepthTempo-1). Specific case of intra-reference frameworks Petition 870250088580, dated 09 / 30 / 2025, p. 78 / 155 65 / 93

[0351] Intra- and inter-frames have different partitionings. Intra-frame partitioning follows spatial correlations compared to inter-frame partitioning, which follows temporal correlations. However, some correlation exists that can be used to predict some parameters, especially the maximum MTT depth for the current block, MaxMttDepth, as described here. No increase in MaxMttDepth for QTDepthTempo -1

[0352] In one modality, when the reference frame is an intra frame, the increase in MaxMttDepth is applied only when the current QT depth, QTDepth, is equal to QTDepthTime and not when QTDepth is equal to QTDepthTime -1.

[0353] The advantage is a reduction in complexity with little impact on coding efficiency. When there is another Inter frame with a different PH_MaxMttDepth

[0354] In one mode, when the reference frame is an intra frame, the increase in MaxMttDepth is applied only when the current QT depth, QTDepth, is equal to QTDepthTempo and if all Inter frames in the sequence or the GOP have the same maximum MTT depth (PH_MaxMttDepth). The maximum MTT depth for the current block can also be increased when QTDepth is equal to QTDepthTempo -1.

[0355] The advantage is an improvement in encoding efficiency with a small increase in encoding time. In fact, the gain is greater when QTDepth is equal to QTDepthTempo-1 for frames with intra-frame as a reference, when all Inter-frames have the same PH_MaxMttDepth.

[0356] Obviously, in these modalities, the increase in the maximum MTT depth for the current block is conditional on the other conditions defined previously. Not Applicable When Intra-Ref

[0357] In one embodiment, when the reference frame is an intra frame, the maximum MTT depth for a current block is not increased accordingly. Petition 870250088580, dated 09 / 30 / 2025, page 79 / 155 66 / 93 some conditions.

[0358] The advantage is an improvement in coding efficiency and a reduction in coding execution time or a better compromise of coding efficiency complexity. Not applicable to the same temporal ID.

[0359] In one embodiment, when the reference frame is an intra frame and when this reference frame does not have the same temporal ID (or, alternatively, the same hierarchical depth), the maximum MTT depth for a current block is not increased. In one example, the maximum MTT depth for a current block is increased when the reference frame is an intra frame with the same temporal ID.

[0360] The advantage is a better compromise of complexity for coding efficiency. Not when the Intra Ref is too close.

[0361] In one embodiment, when the reference frame is an intra frame and when the absolute POC difference between the current frame and the reference frame is less than a threshold, the maximum MTT depth for a current block, MaxMttDepth, is not increased. In one example, this threshold is equal to 2 or 3.

[0362] The advantage is a better compromise of complexity for coding efficiency. Reduction to QTDepthTime -1

[0363] In one embodiment, when the reference frame is an intra frame and when the current QT depth, QTDepth, is equal to the temporal QT depth minus 1, QTDepthTempo -1, the maximum MTT depth for a current block, MaxMttDepth, is reduced.

[0364] The advantage is improved coding efficiency as well as reduced coding time. Reduce when PH_MaxMttDepth < MaxMttDepthTempo

[0365] In one modality, when the reference frame is an intra frame and when the current QT depth, QTDepth, is equal to the QT depth Petition 870250088580, dated 09 / 30 / 2025, p. 80 / 155 67 / 93 temporal minus 1, QTDepthTempo -1, and when the maximum MTT depth for the current image, PH_MaxMttDepth, is less than the maximum temporal MTT depth, MaxMttDepthTempo, the maximum MTT depth for a current block, MaxMttDepth, is reduced.

[0366] Alternatively, MaxMttDepthTempo can be replaced by the maximum MTT depth for the reference image, PH_MaxMttDepthTempo.

[0367] The advantage is improved coding efficiency as well as reduced coding time. Reduce when mttDepthCol is greater than or equal to PH_MaxMttDeptTempo

[0368] In one embodiment, when the reference frame is an intra frame and when the current QT depth, QTDepth, is equal to the temporal QT depth minus 1, QTDepthTempo -1, and when the average of the temporal MTT depth values, mttDepthCol, is greater than or equal to the maximum MTT depth of the reference frame, PH_MaxMttDeptTempo, the maximum MTT depth for a current block, MaxMttDepth, is reduced. Alternatively, equality may be considered instead of inequality greater than or equal to, i.e., the average of the temporal MTT depth values, mttDepthCol, is equal to the maximum MTT depth of the reference frame, PH_MaxMttDeptTempo.

[0369] Alternatively, PH_MaxMttDeptTempo can be replaced by the maximum time of the MTT depth values, MaxMttDepthTempo.

[0370] The advantage is improved coding efficiency, as well as reduced coding time. Reduce MaxMttDepth when PH_MaxMttDepth < MaxMttDepthTempo and when mttDepthCol is greater than or equal to PH_MaxMttDepthTempo

[0371] In one modality, both of the above modalities are combined. In this modality, when the reference frame is an intra frame and when the current QT depth, QTDepth, is equal to the temporal QT depth minus 1, QTDepthTempo -1, and when the maximum MTT depth for the current image, PH_MaxMttDepth, is less than the maximum temporal MTT depth, Petition 870250088580, dated 09 / 30 / 2025, p. 81 / 155 68 / 93 MaxMttDepthTempo, and when the average of the temporal MTT depth values, mttDepthCol, is greater than or equal to the maximum MTT depth of the reference frame, PH_MaxMttDeptTempo, the maximum MTT depth for a current block, MaxMttDepth, is reduced. The alternatives described above also apply to this mode. The following pseudocode provides an exemplary implementation of this mode. If(ReferenceFrame_is_Intra?) { If (QtDepth == QTDepthTime -1) { If (PH_MaxMttDepth < MaxMttDepthTime) { If (mttDepthTime >= PH_MaxMttDeptTime) { MaxMttDepth—} }} }

[0372] The advantage is an improvement in encoding efficiency with a reduction in encoding time. In fact, as the maximum MTT depth detected in the intra-frame reaches its maximum, there is a high probability that the current block will not be selected with a QT depth equal to the temporal QT depth minus 1. SPECIFIC CASE: FOLLOWING SCHEMES Increase MaxMttDepth to QTDepthTempo -1 only when PH_MaxMttDepth == PH_MaxMttDepthTempo and PH_MaxMttDepth < MaxMttDepthTempo

[0373] In a mode, when the maximum MTT depth for the current frame and the reference frame are equal (PH_MaxMttDepth == Petition 870250088580, dated 09 / 30 / 2025, p. 82 / 155 69 / 93 PH_MaxMttDepthTEmpo) and when the maximum temporal MTT depth is greater than this value (PH_MaxMttDepth < MaxMttDepthTempo), the maximum MTT depth for the current block, MaxMttDepth, is increased only when the current QT depth is equal to the average temporal QT depth minus 1 (QTDepthTempo -1).

[0374] In fact, when the maximum MTT depth for the current frame and the reference frame are equal, but the temporal maximum MTT depth is greater than that value, it means that the maximum MTT depth has been increased by at least one block in the temporal area, which was useful. But instead of propagating this increase in MTT depth to all subsequent frames, the increase is applied to the QT depth minus 1.

[0375] The advantage is a reduction in complexity. In fact, increasing the maximum MTT depth leads to an increase in encoding execution time. And if, for the sequence, the maximum MTT depth setting at the frame level is too low, the method will increase encoding time. Therefore, if the goal is to maintain encoding, it is preferable to propagate this increase at the lowest QT depth level to reduce encoding time. Specific limitation for (QTDepth == QTDepthTempo -1)

[0376] As described earlier, the same limitation for QTDepth equal to QTDepthTime-1 can be combined with the previous modality. Thus, in a modality additional to the previous one, the maximum MTT depth, MaxMttDepth, is increased only when the average of the temporal MTT depth values, mttDepthTime, is equal to PH_MaxMTTDepthTime or, alternatively, equal to PH_MaxMTTDepthTime of the current frame or to MaxMttDepthTime. Alternatively, the average temporal MTT depth, mttDepthTime, may be less than or equal to PH_MaxMTTDepthTime or, alternatively, equal to PH_MaxMTTDepthTime of the current frame or to MaxMttDepthTime of the temporal area.

[0377] Although the modalities described above have been described in relation to a reference frame that corresponds to an intra-frame, the present Petition 870250088580, dated 09 / 30 / 2025, p. 83 / 155 70 / 93 invention is not limited to this. The embodiments can be adapted so that the frame of reference corresponds to an inter-frame. TIME AREA VALUES From a temporal area

[0378] In one embodiment, for one or more of the conditions or rules described above, the QT depth of the current block is compared with a value determined from a time area. Temporal QT depth is the average QT depth value of a temporal area.

[0379] In one modality, the QT depth of the current block is compared with an average of the QT depth values ​​determined from a temporal area.

[0380] For example, the QT depth values ​​of the temporal positions in Figure 15 are considered to compute the average QTDepthTempo value, which can be used for the criteria.

[0381] Alternatively, a larger time area could be considered. The other value is the minimum QT depth value of a temporal area

[0382] In an alternative embodiment, the QT depth of the current block is compared with a minimum value of the QT depth values ​​determined from a temporal area. The MaxMttDepthTempo value is the value computed based on the maximum MTT depth or the average MTT depth of a given time area.

[0383] In one modality, the value compared with the QT depth of the current block for the defined criteria is computed according to the maximum MTT depth of a temporal area “MaxMttDepthTempo”.

[0384] Alternatively, the average MTT depth can be considered. QT depth is the average QT depth of a given time area, and MaxMttDepthTempo is the maximum MttDepth of a given time area.

[0385] In a particularly advantageous embodiment, the QT depth of a temporal area is the average QT depth and MaxMttDepthTempo is the Petition 870250088580, dated 09 / 30 / 2025, p. 84 / 155 71 / 93 maximum of MttDepth of the temporal area. For example, considering that the temporal area contains 10 positions and thanks to the following pseudocode described above: If (PH_MaxMttDepth < MaxMttDepthTime) { If (QTDepth == QTDepthTime) { MaxMttDepth++}}

[0386] MaxMttDepthTempo is the maximum value of the 10 MttDepth_i in the time range with i from 0 to 9. And QTDepthTempo is the average of the 10 QTDepth_i in the time range with i from 0 to 9. In addition, a weighted average is used to account for the size of each block in the time range.

[0387] This is particularly efficient. In fact, the average of the QT depths of the temporal area provides an accurate representation of the QT depth that should be selected for the current block. And thanks to this, increasing the maximum multitree depth for this case favors its selection. In order not to significantly increase the encoding time and not produce an increase in the rate due to increased signaling, the MaxMttDepth for the current block is increased only when the MaxMttDepthTempo is greater than the MaxMttDepth of the current frame. This is due to the recognition that if the MaxMttDepthTempo is greater, there is a high chance that the MaxMttDepth for the current block will be greater. This provides the best compromise in terms of encoding efficiency and execution time.

[0388] The temporal areas used to obtain the average QT depth and the maximum MttDepth may be the same or different. For example, they may be from different reference frames but with the same sizes (and / or positions) or different sizes (and / or positions) or different sizes (and / or positions) and from different reference frames. The different temporal areas may be as set out in the 'Temporal Area' modalities described below. Petition 870250088580, dated 09 / 30 / 2025, p. 85 / 155 72 / 93

[0389] This mode can be combined with any of the modes related to reducing (or decrementing) MaxMttDepth when PH_MaxMttDepth > MaxMttDepthTempo. For example, an advantageous implementation can be as set out in the following pseudocode. If (PH_MaxMttDepth < PH_MttDepthTime) { If (PH_MaxMttDepth < MaxMttDepthTime) { If (QTDepth == QTDepthTime) { MaxMttDepth++} }} If (PH_MaxMttDepth > MaxMttDepthTempo) { If(currentQP >= tempoQP) { MaxMttDepth—} }

[0390] Thus, MaxMttDepth can be optimally adjusted both upwards and downwards to match MaxMttDepthTempo, i.e., the maximum ternary tree multitree depth from a temporal area (an area of ​​another frame, such as a reference frame). TEMPORAL AREA Colocalized

[0391] In one embodiment, the block considered for determining the temporal value of the QT depth or block size is a QT depth value or block size of the temporally colocalized block or Petition 870250088580, dated 09 / 30 / 2025, p. 86 / 155 73 / 93 of a temporal block displaced by a motion vector value obtained from a neighboring block, for example. Similarly, MaxMttDepth can be the MttDepth of the temporally colocated block or of a temporal block displaced by a motion vector value obtained from a neighboring block, for example. A frame of reference that is an intra-framework

[0392] In one modality, the temporal area corresponds to a frame of reference that is an intra frame. A plurality of positions

[0393] In one embodiment, several block positions are considered to determine a temporal value of QT depth or block size or MttDepth. For example, the C, TL, TR, BL, and BR positions in Figure 15 can be considered. In this figure, the C position is the center of the colocalized temporal block. The TL, TR, BL, and BR positions are, respectively, the Upper Left, Upper Right, Lower Left, and Lower Right positions around the colocalized temporal block.

[0394] Compared to the previous method, the current one provides a greater reduction in encoding time and increases encoding efficiency, as the determined temporal QT depth or block size is often more reliable. A larger area

[0395] In one embodiment, a temporal value of QT depth or block size or MttDepth is determined based on a temporal area. For example, the temporal area is a colocalized CTU.

[0396] Compared to the two previous methods, more blocks can be considered, therefore the trade-off between reducing encoding time and encoding efficiency is better. The center of the current block is used to determine the temporal positions.

[0397] In one embodiment, to determine the colocalized block, multiple temporal blocks or a temporal area, the center of the current block is considered.

[0398] The advantage is a better understanding, since the center is the best Petition 870250088580, dated 09 / 30 / 2025, page 87 / 155 74 / 93 position to represent the current block. Alternatively, when the center of the block is outside the current frame, the upper left position is considered. Full Picture

[0399] In one modality, a temporal value of QT depth or block size is determined based on all blocks in a temporal frame.

[0400] The advantage of this method is the simplification of the process for determining the temporal QT depth value or block size, but it is less efficient because it is less content-adapted compared to previous methods. A painting with the same temporal ID

[0401] In one modality, the colocalized block, multiple temporal blocks, or a temporal area originate from a frame with the same temporal ID.

[0402] For the Random Access configuration example, as shown in Figure 11, if the current frame has a temporal ID equal to 4, another encoded / decoded frame with the same temporal ID is used to determine the values ​​of the proposed method.

[0403] Frames with the same temporal ID often have the same encoding parameters, especially if they have the same or similar QP and the same spatial distances relative to their reference frames. Therefore, they are very interesting for predicting QT depth or MttDepth, as this data is correlated to QP and the spatial distance between frames. The closest frame with the same temporal ID

[0404] In a modality, the colocalized temporal block or blocks or a temporal area originate from the nearest frame with the same temporal ID.

[0405] For the Random Access configuration example, as shown in Figure 11, the closest frame with the same temporal ID is (generally) more correlated than the others. Therefore, the result is better. A frame or a reference frame with the same QP

[0406] In one modality, the colocalized temporal block or blocks Petition 870250088580, dated 09 / 30 / 2025, page 88 / 155 75 / 93 a temporal area comes from a frame or a reference frame with the same QP. Ideally, a reference frame with the same QP.

[0407] As mentioned above, QP has an important influence on block partitioning. Therefore, with a frame with the same QP, temporal QT depth or block size is a better predictor. A frame of reference that is the same one used for predicting the temporal motion vector.

[0408] In one embodiment, the colocalized temporal block or blocks, or a temporal area, come from the reference frame that is used for the prediction of the temporal motion vector. This may be the first reference of Reference List 0 or the first reference frame of List 1, according to a flag transmitted in the image header or in the slice header.

[0409] Surprisingly, this mode offers the best compromise between reducing encoder time and encoding efficiency, even though this reference frame has a lower QP. However, it is closer to the current frame compared to all frames with the same temporal ID. The nearest frame of reference

[0410] In one modality, the colocalized temporal block or blocks, or a temporal area, are derived from the nearest reference frame.

[0411] As explained in the previous embodiment, the distance to the current reference frame seems more interesting for the trade-off between reducing encoder time and coding efficiency, even though frames with the same QP have statistically more correlations between their QP depths and MttDeph. More than one frame of reference

[0412] In one embodiment, two reference frames are considered and two temporal areas, or 2 sets of multiple blocks, or 2 colocalized blocks, are used to determine 2 temporal QT depths or 2 block sizes. They are then used to determine a QT depth or a block size or a MttDepth. For example, the minimum QT depth of the 2 areas Petition 870250088580, dated 09 / 30 / 2025, page 89 / 155 76 / 93 temporary conditions can be considered.

[0413] More than two frames of reference may also be considered.

[0414] The advantage is a better compromise between reducing encoder time and encoding efficiency, since the QT depth value or MttDepth is computed from more data. This is particularly efficient when both reference frames have the same time distance, but increases the number of memory accesses. SECOND SOLUTION

[0415] In this set of modes, the maximum multitree depth value MaxMttDepth is dependent on the QTDepth of the current block and a reference value that is transmitted in a header rather than being determined. All previous modes related to QTDepthTempo can be applied with the transmitted values. Multiple MaxMttDepth values ​​are transmitted at a high level.

[0416] In one embodiment, several MaxMttDepth values ​​are transmitted at a high level and applied according to the QT depth or block size. For example, the high-level header can be one or more of the SPS, PPS, image header, or slice header.

[0417] The advantage, compared to the time-area based solution, is that the analysis does not depend on the time frame. Consequently, the process is simple and the encoder implementations are more flexible. However, some data needs to be transmitted. Associated with the possible depth of QT

[0418] In one modality, the various values ​​correspond to some QT depths. For example, a table representing these values ​​is transmitted in the image header.

[0419] The table size depends on the CTU size and MinQtSize. For example, the CTU size is equal to 128 and MinQtSize is equal to 8. Therefore, 4 values ​​are possible: one for QT depth equal to 1, corresponding to block size 64 χ 64, one for QT depth equal to 2, corresponding Petition 870250088580, dated 09 / 30 / 2025, p. 90 / 155 77 / 93 corresponds to block size 32 χ 32, and one corresponds to QT depth equal to 3, corresponding to block size 16 χ 16.

[0420] For example, the table is PH_MaxMTTDepth[] and the corresponding values ​​are given below: PH_MaxMTTDepth[0] = 1 PH_MaxMTTDepth[1] = 2 PH_MaxMTTDepth[2] = 3 PH_MaxMTTDepth[3] = 1

[0421] Therefore, with this mode, the maxMttDepth for a current block is equal to PH_MaxMTTDepth[QTDepth].

[0422] This table replaces PH_MaxMTTDepth, therefore these syntax elements can be encoded in the same way as ue(v). The syntax elements encoded as ue(v) or se(v) are Exp-Golomb encoded with order k equal to 0 in VVC. Associated with the block size (log2)

[0423] In one mode, the block size for defining maxMttDepth is considered instead of the QT depth. For example, in this case, PH_MaxMTTDepth is replaced by a PH_MaxMTTDepth_Log2size_minus2 table. And for the same configuration, with the CTU size equal to 128 and the MinQtSize equal to 8, PH_MaxMTTDepth_Log2size_minus2 is defined as follows: PH_MaxMTTDepth_Log2size_minus2[5] = 1 / / for block 128 χ 128 PH_MaxMTTDepth_Log2size_minus2[4] = 2 / / for block 16 χ 16 PH_MaxMTTDepth_Log2size_minus2[3] = 3 / / for block 32 χ 32 PH_MaxMTTDepth_Log2size_minus2[2] = 1 / / for block 16 χ 16 The values ​​in this list are predicted from each other.

[0424] In one mode, the values ​​are predicted against each other to reduce the rate dedicated to signaling. For example, PH_MaxMTTDepth[N] = PH_MaxMTTDepthResidual + PH_MaxMTTDepth[N-1];

[0425] For example: Petition 870250088580, dated 09 / 30 / 2025, page 91 / 155 78 / 93 PH_MaxMTTDepth[0] = 1 PH_MaxMTTDepth[1] = 1+ PH_MaxMTTDepth[0] = 2 PH_MaxMTTDepth[2] = 1+ PH_MaxMTTDepth[1] = 3 PH_MaxMTTDepth[3] = -2+ PH_MaxMTTDepth[2] = 1

[0426] In this example, the values ​​passed to MaxMTTDepthResidual are 1, 1, 1, -2. Predicted from another header

[0427] In one mode, the values ​​are predicted thanks to a similar value transmitted in another header. Therefore, only one update value needs to be transmitted. For example, PH_MaxMTTDepth[N] = PH_MaxMTTDepthResidual[N] + SPS_MaxMTTDepth[N]

[0428] In addition, an overload flag can indicate whether the values ​​are up to date or not. Predicted from a default value, only the offset is transmitted.

[0429] In one mode, values ​​are predicted based on a default value that is transmitted or not. For example, the regular maxMttDepth is transmitted and the PH_MaxMTTDepth[] table is defined as: PH_MaxMTTDepth = 2 PH_MaxMTTDepth[0] = -1 + PH_MaxMTTDepth = 1 PH_MaxMTTDepth[1] = 0+ PH_MaxMTTDepth = 2 PH_MaxMTTDepth[2] = 1+ PH_MaxMTTDepth = 3 PH_MaxMTTDepth[3] = -1+ PH_MaxMTTDepth = 1 Disabled for display content encoding

[0430] In one embodiment, the proposed method is adapted for display content encoding. In particular, the method is disabled for display content. It was found that when the sequence content contains display content, it appears more difficult to predict the partitioning parameters.

[0431] Alternatively, the number of IBC blocks (intrablock coding block - blocks decoded or encoded by reference to a sample area in the same frame as the block being decoded or encoded) Petition 870250088580, dated 09 / 30 / 2025, page 92 / 155 79 / 93 is computed in the time area and, depending on whether the number of IBC blocks is above or below a threshold, the method is disabled for the current block.

[0432] Alternatively, the number of blocks encoded using Palette mode in the temporal area is determined, and depending on whether the number of blocks encoded with Palette mode is above or below a threshold, the method is disabled for the current block. For example, if the number of blocks encoded in Palette mode is greater than a threshold, this may be indicative of display content, and therefore the method is disabled. The method may be disabled if Palette mode is enabled for the video sequence. Or, alternatively, some predetermined criteria may be specifically disabled if Palette mode is enabled for the video sequence. For example, in one modality, the criteria that determine whether there should be a decrease in the maximum multitree depth, MaxMttDepth, may be disabled. Disabled for low latency configuration.

[0433] In one embodiment, the proposed method is adapted for low latency configuration. In particular, the method is disabled for such configuration. When the POC distance is too large (inter-frame reference)

[0434] In one embodiment, when the reference frame is an inter frame and when the absolute POC difference between the current frame and the reference frame is less than or equal to 2, the maximum MTT depth is increased. Otherwise, when the absolute POC difference between the current frame and the reference frame is greater than 2, the maximum MTT depth is not increased. Other restrictions, as described in other embodiments, may also be considered.

[0435] The advantage is a significant reduction in encoding time with a small impact on encoding efficiency. In fact, when the time distance between frames is very large, the temporal correlation decreases. Therefore, increasing the maximum MTT depth creates additional complexity in encoding time for blocks that do not need this increase. When the frame of reference is an (inter-frame of reference)

[0436] In a modality, when the frame of reference is an inter and Petition 870250088580, dated 09 / 30 / 2025, page 93 / 155 80 / 93 when this reference frame has a different temporal ID from the current frame, the maximum MTT depth is increased; otherwise, when the reference frame has the same temporal ID, the maximum MTT depth is not increased. Other restrictions, as described in other embodiments, may also be considered.

[0437] The advantage is a significant reduction in coding time with a small impact on coding efficiency. For high bit rates

[0438] In one mode, when the target bit rate is high or for low QP, the maximum MTT depth is not increased. In a preferred mode, when the QP for the sequence or the GOP is greater than or equal to 22, the maximum MTT depth is not increased.

[0439] The advantage is a significant reduction in encoding time with a small impact on encoding efficiency. Disabled using a flag

[0440] In one embodiment, the proposed method is enabled or disabled thanks to at least one flag transmitted in at least one header. Increase MaxMttDepth disabled / enabled

[0441] In one embodiment, all possible increases of the maximum MTT value for the current block, MaxMttDepth, can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be the SPS, PPS, image header, or slice header.

[0442] The advantage of this mode is the flexibility for encoder implementations. Increase MaxMttDepth to QTDepthTempo disabled / enabled

[0443] In one embodiment, all possible increases in the maximum MTT value for the current block, MaxMttDepth, when the current QT depth (QTDepth) equals the time-averaged QT depth (QTDepthTempo), can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be the SPS, PPS, or PPS header. Petition 870250088580, dated 09 / 30 / 2025, p. 94 / 155 81 / 93 of the image or the slice header.

[0444] The advantage of this mode is the flexibility for encoder implementations. Increase MaxMttDepth to QTDepthTempo -1 disabled / enabled

[0445] In one embodiment, all possible increases in the maximum MTT value for the current block, MaxMttDepth, when the current QT depth (QTDepth) is equal to the time average of the QT depth minus 1 (QTDepthTime-1), can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be SPS, PPS, image header, or slice header.

[0446] The advantage of this mode is the flexibility for encoder implementations. Combination of the 3 previous modalities

[0447] In one mode, the 3 previous modes are combined. In this mode, a first flag enables or disables the increase in MaxMttDepth. In one example, the first flag enables the increase in MaxMttDepth, a second flag enables or disables the increase when the current QT depth (QTDepth) is equal to the time average of the QT depth (QTDepthTime), and a third flag enables or disables the increase when the current QT depth (QTDepth) is equal to the time average of the QT depth minus 1 (QTDepthTime-1).

[0448] The advantage of this mode is additional flexibility for encoder implementations. Reducing MaxMttDepth to disable / enable

[0449] In one embodiment, all possible reductions of the maximum MTT value for the current block, MaxMttDepth, can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be SPS, PPS, image header, or slice header.

[0450] The advantage of this mode is flexibility for encoder implementations. Petition 870250088580, dated 09 / 30 / 2025, p. 95 / 155 82 / 93 Disable / enable reduction of MaxMttDepth to QTDepthTempo

[0451] In one embodiment, all possible reductions of the maximum MTT value for the current block, MaxMttDepth, when the current QT depth (QTDepth) is equal to the time average of the QT depth (QTDepthTempo), can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be SPS, PPS, image header, or slice header.

[0452] The advantage of this mode is the flexibility for encoder implementations. Disable / enable reduction of MaxMttDepth to QTDepthTime -1

[0453] In one embodiment, all possible reductions of the maximum MTT value for the current block, MaxMttDepth, when the current QT depth (QTDepth) is equal to the time average of the QT depth minus 1 (QTDepthTime-1), can be enabled or disabled using a flag transmitted in at least one header. One or more headers can be SPS, PPS, image header, or slice header.

[0454] The advantage of this mode is the flexibility for encoder implementations. Combination of the 3 previous modalities

[0455] In one mode, the 3 previous modes are combined. In this mode, a first flag enables or disables the reduction of MaxMttDepth. In one example, the first flag enables the reduction, a second flag enables or disables the reduction when the current QT depth (QTDepth) is equal to the time average of the QT depth (QTDepthTime), and a third flag enables or disables the reduction when the current QT depth (QTDepth) is equal to the time average of the QT depth minus 1 (QTDepthTime-1).

[0456] The advantage of this mode is additional flexibility for encoder implementations.

[0457] The method can be applied to other division modes. Petition 870250088580, dated 09 / 30 / 2025, p. 96 / 155 83 / 93

[0458] In one embodiment, other partitioning division modes may be applied and the method may be adapted.

[0459] All modes can be combined.

[0460] All the modalities described can be combined, unless explicitly indicated otherwise. In fact, many combinations are synergistic and can produce efficiency gains greater than the sum of their parts.

[0461] In one embodiment, all previous embodiments relating to QT depth can alternatively be expressed in terms of a block size. Specifically, QT depth can be expressed as a block size. For example, for CTU equal to 128, QT depth 0 corresponds to block 128 χ 128, QT depth 1 to block 64 χ 64 etc. Additional Modality(ies)

[0462] The maximum multitree depth (MTT) is predicted temporally for each block. Its value may be increased, decreased, or left unchanged according to the following rules:

[0463] The maximum MTT depth can be increased, for blocks of the current frame, when the reference frame is an Inter frame and has a different time ID and when the POC distance to that reference frame is less than or equal to 2. The maximum MTT depth can also be increased when the reference frame is an Intra frame with the same time ID. For related “current” frames, the maximum MTT depth of each node may or may not be increased according to the following conditions: • The current QT depth is equal to the temporal average QT depth minus 1, and the maximum temporal MTT depth is greater than the maximum MTT depth of the current frame, and the temporal average of the maximum MTT depth is equal to half the maximum MTT depth of the reference frame image header, and if the reference frame is not an Intra reference frame. • or the current QT depth is equal to the temporal QT depth Petition 870250088580, dated 09 / 30 / 2025, p. 97 / 155 84 / 93 average, and the maximum temporal MTT depth is greater than the maximum MTT depth of the current frame, and the temporal average of the MTT depths is greater than or equal to half the maximum MTT depth of the reference frame image header.

[0464] The maximum MTT depth can be decremented for blocks in the current frame if Palette mode is disabled, or if the current QP is strictly less than the QP of the reference frame. For related frames, the maximum MTT depth of each block may or may not be decremented, according to the following conditions: • when the maximum QT depth of the current frame is greater than the maximum MTT depth, and when the maximum temporal MTT depth is equal to the maximum MTT depth of the current frame, and when the average temporal QT depth is less than the QT depth of the current frame. • if the maximum temporal MTT depth is strictly less than the maximum multitree depth of the current node.

[0465] In addition, when the reference frame is Intra and when the current QT depth is equal to the temporal average QT depth minus 1 and the maximum temporal MTT depth is greater than the maximum MTT depth, and if the temporal average MTT depth is greater than or equal to the maximum MTT depth of the reference frame image header, the maximum MTT depth will be decremented. Implementation of the Invention

[0466] Figure 16 shows a system 191, 195 comprising at least one of an encoder 150 or a decoder 100 and a communication network 199, according to embodiments of the present invention. According to one embodiment, the system 195 serves to process and provide content (for example, video and audio content for display / output or streaming of video / audio content) to a user who has access to the decoder 100, for example, through a user interface of a user terminal that Petition 870250088580, dated 09 / 30 / 2025, page 98 / 155 85 / 93 comprises the decoder 100 or a user terminal communicable with the decoder 100. Such a user terminal may be a computer, a mobile phone, a tablet, or any other type of device capable of providing / displaying the content (provided / transmitted) to the user. The system 195 obtains / receives a bit stream 101 (in the form of a continuous stream or a signal – for example, while previous video / audio is being displayed / transmitted) through the communication network 199. According to one embodiment, the system 191, 195 is for processing content and storing the processed content, for example, processed video and audio content for display / transmission / streaming at a later time.The system 191, 195 obtains / receives content comprising an original sequence of images 151, which is received and processed (including filtering with a deblocking filter according to the present invention) by the encoder 150, and the encoder 150 generates a bitstream 101 that must be communicated to the decoder 100 via a communication network 191. The bitstream 101 is then communicated to the decoder 100 in various ways, for example, it may be previously generated by the encoder 150 and stored as data in a storage device on the communication network 199 (e.g., on a server or cloud storage) until a user requests the content (i.e., the bitstream data) from the storage device, at which point the data is communicated / transmitted to the decoder 100 from the storage device.System 191 may also comprise a content provider device for providing / transmitting to the user (e.g., communicating data to a user interface to be displayed on a user terminal) content information for the content stored in the storage device (e.g., the title of the content and other metadata / storage location data to identify, select, and request the content) and for receiving and processing a user request for content, so that the requested content can be delivered / transmitted from the storage device to the user terminal. Alternatively, encoder 150 generates bitstream 101 and communicates / transmits it directly to decoder 100. Petition 870250088580, dated 09 / 30 / 2025, page 99 / 155 86 / 93 as and when the user requests the content. The decoder 100 then receives the bitstream 101 (or a signal) and performs filtering with a deblocking filter according to the invention to obtain / generate a video signal 109 and / or audio signal, which is then used by a user terminal to provide the requested content to the user.

[0467] Any step of the method / process according to the invention or functions described herein may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the steps / functions may be stored or transmitted by means of one or more instructions, code or program, or by a computer-readable medium, and executed by one or more hardware-based processing units, such as a programmable computing machine, which may be a PC (“Personal Computer”), a DSP (“Digital Signal Processor”), a circuit, a set of circuits, a processor and memory, a general-purpose microprocessor or central processing unit, a microcontroller, an ASIC (“Application-Specific Integrated Circuit”), a field-programmable logic array (FPGAs), or other equivalent set of integrated or discrete logic circuits.Consequently, the term "processor," as used here, can refer to any of the structures above or to any other structure suitable for implementing the techniques described herein.

[0468] The embodiments of the present invention can also be implemented by a wide variety of devices or apparatus, including a wireless device, an integrated circuit (IC), or a set of ICs (e.g., a chip set). Various components, modules, or units are described herein to illustrate functional aspects of devices / apparatuses configured to perform these embodiments, but do not necessarily require implementation by different hardware units. Instead, various modules / units can be combined into a codec hardware unit or provided by a set of interoperable hardware units, including one or more processors in conjunction with suitable software / firmware. Petition 870250088580, dated 09 / 30 / 2025, pp. 100 / 155 87 / 93

[0469] The embodiments of the present invention can be carried out by a computer of a system or apparatus that reads and executes computer executable instructions (e.g., one or more programs) stored in a storage medium to execute the modules / units / functions of one or more of the embodiments described above and / or that includes one or more processing units or circuits to execute the functions of one or more of the embodiments described above, and by a method performed by the computer of the system or apparatus, for example, by reading and executing the computer executable instructions from the storage medium to execute the functions of one or more of the embodiments described above and / or by controlling one or more processing units or circuits to execute the functions of one or more of the embodiments described above.The computer may include a network of separate computers or separate processing units for reading and executing computer-executable instructions. Computer-executable instructions may be supplied to the computer, for example, from a computer-readable medium, such as a network communication medium or a tangible storage medium. The communication medium may be a signal / bit stream / carrier wave. The tangible storage medium is a “non-transient computer-readable storage medium” which may include, for example, one or more of a hard disk, random access memory (RAM), read-only memory (ROM), distributed computing system storage, an optical disc (such as a compact disc (CD), a digital versatile disc (DVD) or a Blu-ray disc (BD)™), a flash memory device, a memory card and the like.At least some of the steps / functions can also be implemented in hardware by a dedicated machine or component, such as an FPGA (“Field Programmable Gate Array”) or an ASIC (“Application-Specific Integrated Circuit”).

[0470] Figure 17 is a schematic block diagram of a 360° computing device for implementing one or more embodiments of the invention. The 360° computing device may be a device such as a Petition 870250088580, dated 09 / 30 / 2025, pp. 101 / 155 88 / 93 microcomputer, a workstation or a lightweight portable device. The computing device 3600 comprises a communication bus connected to: - a central processing unit (CPU) 3601, such as a microprocessor; - a random access memory (RAM) 3602 for storing the executable code of the method of the embodiments of the invention, as well as registers adapted to record variables and parameters necessary to implement the method of encoding or decoding at least part of an image according to the embodiments of the invention, whose memory capacity can be expanded by an optional RAM connected to an expansion port, for example; - a read-only memory (ROM) 3603 for storing computer programs to implement the embodiments of the invention; - a network interface (NET) 3604 is typically connected to a communication network through which the digital data to be processed is transmitted or received.The network interface (NET) 3604 can be a single network interface or composed of a set of different network interfaces (e.g., wired and wireless interfaces, or different types of wired or wireless interfaces). Data packets are written to the network interface for transmission or read from the network interface for reception under the control of the software application running on the CPU 3601; - a user interface (UI) 3605 can be used to receive input from a user or display information to a user; - a hard disk (HD) 3606 can be provided as a mass storage device; - an input / output (IO) module 3607 can be used to receive / send data to / from external devices, such as a video source or monitor. The executable code can be stored in ROM 3603, on HD 3606, or on a removable digital medium, such as a disk.According to one variant, the executable code of the programs can be received via a communication network, via NET 3604, to be stored in one of the storage media of the communication device 3600, such as the HD 3606, before being executed. The CPU 3601 is adapted to control and direct the execution of the instructions or parts of the software code of the program or programs according to the embodiments of the invention, instructions. Petition 870250088580, dated 09 / 30 / 2025, pp. 102 / 155 89 / 93 these are stored in one of the storage media mentioned above. After initialization, the CPU 3601 is capable of executing instructions from the main RAM memory 3602 relating to a software application, after these instructions have been loaded from the program ROM 3603 or the HD 3606, for example. Such a software application, when executed by the CPU 3601, performs the steps of the method according to the invention.

[0471] It is also understood that, according to another embodiment of the present invention, a decoder, according to the embodiment mentioned above, is provided in a user terminal, such as a computer, a mobile phone, a tablet or any other type of device (for example, a display device) capable of providing / displaying content to a user. According to another embodiment, an encoder according to an embodiment mentioned above is provided in an image capture device that also comprises a camera, a video camera or a network camera (for example, a closed-circuit television or a video surveillance camera) that captures and provides the content for the encoder to encode. Two examples are provided below with reference to Figures 18 and 19.

[0472] Figure 18 is a diagram illustrating a 3700 network camera system, including a 3702 network camera and a 202 client handset.

[0473] The 3702 network camera includes an image generation unit 3706, an encoding unit 3708, a communication unit 3710 and a control unit 3712.

[0474] Network camera 3702 and client device 202 are mutually connected so that they can communicate over network 200.

[0475] The 3706 image generation unit includes a lens and an image sensor (e.g., a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS)) and captures an image of an object and generates image data based on the image. This image can be a still image or a video image.

[0476] The 3708 encoding unit encodes image data using the Petition 870250088580, dated 09 / 30 / 2025, pp. 103 / 155 90 / 93 encoding methods explained above or a combination of the encoding methods described above.

[0477] The communication unit 3710 of the network camera 3702 transmits the image data encoded by the encoding unit 3708 to the client device 202.

[0478] In addition, communication unit 3710 receives commands from client device 202. The commands include commands to set parameters for encoding unit 3708.

[0479] Control unit 3712 controls other units in network camera 3702 according to commands received by communication unit 3712.

[0480] The client device 202 includes a communication unit 3714, a decoding unit 3716 and a control unit 3718.

[0481] The communication unit 3714 of client device 202 transmits commands to network camera 3702.

[0482] In addition, communication unit 3714 of client device 202 receives the encoded image data from network camera 3712.

[0483] The 3716 decoding unit decodes the encoded image data using the decoding methods explained above, or a combination of the decoding methods explained above.

[0484] The control unit 3718 of client device 202 controls other units in client device 202 according to user operation or commands received by communication unit 3714.

[0485] The control unit 3718 of the client device 202 controls a display device 2120 to display an image decoded by the decoding unit 3716.

[0486] The control unit 3718 of the client device 202 also controls a display device 2120 to display the GUI (Graphical User Interface) to assign the parameter values ​​for the network camera 3702, including the parameters for the encoding of the encoding unit 3708.

[0487] The control unit 3718 of client device 202 also controls Petition 870250088580, dated 09 / 30 / 2025, pp. 104 / 155 91 / 93 other units in the client device 202 according to the user operation entered in the GUI displayed by the display device 2120.

[0488] The control unit 3718 of client device 202 controls the communication unit 3714 of client device 202 to transmit commands to network camera 3702 that assign parameter values ​​to network camera 3702, according to the user operation entered in the GUI displayed by display device 2120.

[0489] Figure 19 is a diagram illustrating a 3800 smartphone.

[0490] The 3800 smartphone includes a communication unit 3802, a decoding unit 3804, a control unit 3806 and a display unit 3808.

[0491] Communication unit 3802 receives the encoded image data via network 200.

[0492] Decoding unit 3804 decodes the encoded image data received by communication unit 3802.

[0493] The 3804 decoding / encoding unit decodes / encodes the encoded image data using the decoding methods explained above.

[0494] The 3806 control unit controls other units in the 3800 smartphone according to a user operation or commands received by the 3806 communication unit.

[0495] For example, control unit 3806 controls a display unit 3808 to display an image decoded by decoding unit 3804. Smartphone 3800 can also comprise sensors 3812 and an image recording device 3810. In this way, smartphone 3800 can record images and encode them (using a method described above).

[0496] The smartphone 3800 can subsequently decode the encoded images (using a method described above) and display them via the display unit 3808 - or transmit the encoded images to another device via the communication unit 3802 and the network 200. ALTERNATIVES AND MODIFICATIONS Petition 870250088580, dated 09 / 30 / 2025, pages 105 / 155 92 / 93

[0497] Although the present invention has been described with reference to embodiments, it should be understood that the invention is not limited to the embodiments described. Those skilled in the art will understand that various alterations and modifications may be made without departing from the scope of the invention as defined in the appended claims. All features described in this descriptive report (including any claims, abstract and accompanying drawings) and / or all steps of any method or process so described may be combined in any combination, except combinations in which at least some of these features and / or steps are mutually exclusive. Each feature described in this descriptive report (including any claims, abstract and accompanying drawings) may be substituted for alternative features serving the same, equivalent or similar purpose, unless expressly stated otherwise.Thus, unless expressly stated otherwise, each feature described is only an example from a generic series of equivalent or similar features.

[0498] It is also understood that any result of comparison, determination, evaluation, selection, execution, realization or consideration described above, for example, a selection made during an encoding or filtering process, may be indicated or determinable / inferred from data in a bitstream, for example, a flag or data indicating the result, so that the indicated or determined / inferred result may be used in processing instead of actually performing the comparison, determination, evaluation, selection, execution, realization or consideration, for example, during a decoding process.

[0499] In claims, the word “includes” does not exclude other elements or steps, and the indefinite article “a” does not exclude a plurality. The mere fact that different features are cited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.

[0500] The reference numbers that appear in the claims are Petition 870250088580, dated 09 / 30 / 2025, pp. 106 / 155 93 / 93 are merely illustrative and will not have a limiting effect on the scope of the claims. Petition 870250088580, dated 09 / 30 / 2025, pp. 107 / 155

Claims

1 / 8 CLAIMS 1. A method for encoding image data into a bitstream or decoding image data from a bitstream, the bitstream including data indicating a partitioning of the image data into a plurality of blocks according to an encoding tree, wherein blocks in the encoding tree can be partitioned according to one or more split types, the method characterized in that it comprises: obtaining, for a current block of a frame, a parameter indicating a maximum multitree depth value indicating a maximum partitioning depth of split types.

2. A method according to claim 1, characterized in that the maximum multitree depth value indicates the maximum partitioning depth for a binary tree split and a ternary tree split.

3. A method according to claim 2, characterized in that the parameter is based on the quadtree depth of the current block or the block size of the current block.

4. Method, according to claim 1, characterized in that a quadtree depth reference value is signaled in a bitstream header.

5. Method according to claim 4, characterized in that the reference value of quadtree depth is based on an average quadtree depth value determined from at least one area of ​​another frame.

6. Method according to claim 4, characterized in that the reference value of quadtree depth is based on a minimum quadtree depth value determined from at least one area of ​​another frame.

7. Method, according to claim 4, characterized in that the reference value of quadtree depth is based on a maximum multitree depth value or on an average multitree depth value determined from at least one area of ​​another frame.

8. A method according to claim 4, characterized in that it comprises increasing a current maximum multitree depth value to obtain the maximum multitree depth value for the current block, according to one or more rules or conditions based on the quadtree depth value and the reference depth value.

9. A method according to claim 8, characterized in that it comprises, when the quadtree depth value matches the reference quadtree depth value, increasing the current maximum multitree depth value to obtain the maximum multitree depth value for the current block.

10. Method according to claim 8, characterized in that it comprises, when the quadtree depth value corresponds to the reference value minus 1, increasing the current maximum multitree depth value to obtain the maximum multitree depth value for the current block.

11. Method according to claim 9, characterized in that it is additionally required that the reference quadtree depth value correspond to a minimum quadtree depth value associated with an area of ​​one or more reference frames in order for the current maximum multitree depth value to be increased.

12. Method, according to claim 9, characterized in that it is additionally necessary that the reference depth quadtree value correspond to the maximum depth quadtree value for the current frame in order for the current maximum depth multitree value to be increased.

13. Method, according to claim 4, characterized in that it comprises reducing a current maximum multitree depth value to obtain the maximum multitree depth value for the current block, according to one or more rules or conditions based on the quadtree depth value and the reference depth value. Petition 870250088580, dated 09 / 30 / 2025, pp. 148 / 155 3 / 8 14. Method according to claim 11, characterized in that it comprises, when the reference depth value is less than the quadtree depth value, reducing the current maximum multitree depth value for the current block.

15. Method, according to claim 4, characterized in that it comprises obtaining the maximum multitree depth value for the current block using a function of the quadtree depth value and the reference quadtree depth value.

16. A method according to claim 1, characterized in that a maximum multitree depth value associated with one or more areas of another frame is used to obtain the maximum multitree depth for the current block, and in that a condition for modifying the current maximum multitree depth value to obtain the maximum multitree depth value for the current block is based on a comparison between a maximum multitree depth value signaled in the bitstream and the maximum multitree depth value associated with one or more areas of another frame.

17. A method according to claim 16, characterized in that it comprises increasing the current maximum multitree depth value of the current block based on the fact that the maximum multitree depth value signaled in the bitstream is less than the maximum multitree depth value associated with one or more areas of another frame.

18. Method according to claim 17, characterized in that increasing the current maximum multitree depth value of the current block depends on the average multitree depth value associated with one or more areas of another frame.

19. Method, according to claim 18, characterized in that the increase is based on a comparison between the average multitree depth value associated with one or more areas of another frame and the maximum multitree depth value signaled in the bitstream.

20. Method, according to claim 19, characterized in that Petition 870250088580, dated 09 / 30 / 2025, pp. 149 / 155 4 / 8, the current maximum multitree depth value of the current block is increased if the average multitree depth value associated with one or more areas of another frame is greater than or equal to half the maximum multitree depth value for the current frame.

21. A method according to claim 19, characterized in that the current maximum multitree depth value of the current block is increased if the average multitree depth value associated with one or more areas of another frame is greater than half the maximum multitree depth value for the current frame.

22. Method according to claim 20, characterized in that the maximum multitree depth for the current frame is reduced by half by one operation.

23. Method, according to claim 18, characterized in that the increase is based on a comparison between the average multitree depth value associated with one or more areas of another frame and the maximum multitree depth value of another frame.

24. Method according to claim 23, characterized in that the current maximum multitree depth value of the current block is increased if the average multitree depth value associated with one or more areas of another frame is greater than or equal to half the maximum multitree depth value of another frame.

25. Method according to claim 23, characterized in that the current maximum multitree depth value of the current block is increased if the average multitree depth value associated with one or more areas of another frame is greater than half the maximum multitree depth value of another frame.

26. A method according to claim 25, characterized in that the maximum multitree depth value of another frame is halved by one operation.

27. Method, according to claim 18, characterized by the fact that, as per Petition 870250088580, dated 09 / 30 / 2025, pp. 150 / 155 5 / 8, if the average multitree depth value associated with one or more areas of another frame is equal to the maximum multitree depth value signaled in the bitstream, the current maximum multitree depth value of the current block is not increased.

28. A method according to claim 18, characterized in that if the average multitree depth value associated with one or more areas of another frame is equal to the maximum multitree depth value of another frame, the current maximum multitree depth value of the current block is not increased.

29. Method according to claim 18, characterized in that when the quadtree depth value matches the reference quadtree depth value, the current maximum multitree depth value of the current block is increased.

30. A method according to claim 19, characterized in that, when the quadtree depth value corresponds to the reference quadtree depth value minus 1, increases the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is equal to half the maximum multitree depth value for the current frame.

31. A method according to claim 19, characterized in that, when the quadtree depth value corresponds to the reference quadtree depth value minus 1, increases the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is less than or equal to half the maximum multitree depth value for the current frame.

32. Method according to claim 19, characterized in that, when the quadtree depth value corresponds to the reference quadtree depth value less 1, increasing the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is less than half of the maximum multitree depth value for the current frame.

33. Method, according to claim 30, characterized in that the maximum multitree depth value for the current frame is halved by one operation.

34. A method according to claim 23, characterized in that it comprises, when the quadtree depth value corresponds to the reference quadtree depth value minus 1, increasing the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is equal to half the maximum multitree depth value of another frame.

35. A method according to claim 23, characterized in that it comprises, when the quadtree depth value corresponds to the reference quadtree depth value less 1, increasing the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is less than or equal to half the maximum multitree depth value of another frame.

36. A method according to claim 23, characterized in that it comprises, when the quadtree depth value corresponds to the reference quadtree depth value less 1, increasing the current maximum multitree depth value of the current block if the average multitree depth value associated with one or more areas of another frame is less than half the maximum multitree depth value of another frame.

37. A method according to claim 34, characterized in that the maximum multitree depth value of another frame is halved by one operation.

38. Method according to claim 16, characterized in that it comprises reducing a current maximum multitree depth value of the current block based on the fact that the maximum multitree depth value signaled in the bitstream is greater than the maximum multitree depth value associated with one or more areas of another frame. Petition 870250088580, dated 09 / 30 / 2025, pp. 152 / 155 7 / 8 39. A method according to claim 16, characterized in that it comprises reducing the current maximum multitree depth value of the current block when the maximum multitree depth value signaled in the bitstream is greater than the maximum multitree depth value associated with one or more areas of another frame and when the current quantization parameter associated with the current block is greater than or equal to the current quantization parameter associated with one or more areas of another frame.

40. A method according to claim 16, characterized in that it comprises reducing the current maximum multitree depth value of the current block when the maximum multitree depth value for the current frame corresponds to the maximum multitree depth value associated with one or more areas of another frame.

41. A method according to claim 40, characterized in that an additional condition for decrementing the current maximum multitree depth value of the current block includes that the maximum multitree depth value for the current frame corresponds to the maximum multitree depth value of another frame.

42. A method according to claim 38, characterized in that an additional condition for the decrement of the current maximum multitree depth value to be realized includes one or more of: i) the sequence that includes the current frame has a resolution greater than a predetermined resolution, ii) the CTU size for the current block is greater than or equal to a predetermined value, iii) the maximum multitree depth value for the current frame is less than the maximum quadtree depth value of the current frame, and iv) the maximum quadtree depth value for the current frame is greater than a predetermined value.

43. Method according to claim 38, characterized in that the current maximum multitree depth value of the current block is further reduced if the current maximum multitree depth value is greater than the maximum multitree depth value associated with one or more areas of another frame.

44. A method according to claim 38, characterized in that it comprises reducing the current maximum multitree depth value of the current block when the current maximum multitree depth value is set equal to the maximum multitree depth value associated with one or more areas of another frame.

45. Method according to claim 16, characterized in that it comprises increasing the current maximum multitree depth value of the current block when the maximum multitree depth value signaled in the bitstream is equal to the maximum multitree depth value associated with one or more areas of another frame. Petition 870250088580, dated 09 / 30 / 2025, pp. 154 / 155