Image processing method, processing device and storage medium

By using a sub-block-level fine-grained partitioning method, the problem of inaccurate video frame block partitioning is solved, achieving higher prediction accuracy and lower coding overhead.

WO2026158707A1PCT designated stage Publication Date: 2026-07-30SHENZHEN TRANSSION HLDG CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
SHENZHEN TRANSSION HLDG CO LTD
Filing Date
2026-01-29
Publication Date
2026-07-30

AI Technical Summary

Technical Problem

In existing technologies, video frames are divided into blocks using a fixed method of a single global straight line. This makes it difficult to accurately match the real motion boundaries and texture boundaries during encoding and decoding, resulting in misclassification of the prediction region and affecting prediction accuracy.

Method used

By adopting a sub-block-level fine-grained partitioning method, the partitioning lines are recalculated after determining the partitioning pattern corresponding to the sub-blocks of the current block, thus achieving more accurate block partitioning and improving the accuracy of prediction processing.

Benefits of technology

It improves the accuracy of block partitioning, reduces prediction errors and residuals, lowers encoding overhead, and improves encoding and decoding efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2026075833_30072026_PF_FP_ABST
    Figure CN2026075833_30072026_PF_FP_ABST
Patent Text Reader

Abstract

Provided in the present application are an image processing method, a processing device and a storage medium. The image processing method comprises: partitioning a current block on the basis of a first partitioning mode corresponding to sub-blocks of the current block. The technical solution of the present application can improve the accuracy of block partitioning, thereby improving the prediction accuracy of prediction processing.
Need to check novelty before this filing date? Find Prior Art

Description

Image processing methods, processing devices and storage media Technical Field

[0001] This application relates to the field of image processing technology, specifically to an image processing method, processing device, and storage medium. Background Technology

[0002] The existing high-efficiency video coding standard protocol (H.266 / VVC) proposes a video frame coding technique to improve coding performance without significantly increasing computational complexity. Specifically, when encoding and decoding video frames, the protocol divides each frame into different blocks and performs prediction, transformation and quantization processing before encoding and decoding.

[0003] In the process of conceiving and implementing this application, the inventors discovered at least the following problems:

[0004] When encoding and decoding video frames, the protocol divides each frame into different blocks, performs prediction processing, and then performs encoding and decoding processing. When dividing each frame into different blocks, GPM (Geometric Partitioning mode) can be used for block partitioning. However, when using GPM for block partitioning, only a single global straight line is used for fixed partitioning. This can lead to problems when the real motion boundary / texture boundary presents a bent, locally offset, or fragmented structure within the CU (Coding Unit), making it difficult for the straight line segmentation to fit properly. This results in "mis-segmentation" of the prediction regions on both sides. Therefore, how to improve the accuracy of block partitioning has become an urgent technical problem to be solved.

[0005] The preceding description is intended to provide general background information and does not necessarily constitute prior art. Summary of the Invention

[0006] To address the aforementioned technical problems, this application provides an image processing method, processing device, and storage medium, aiming to solve how to improve the accuracy of block segmentation, thereby supporting improved prediction accuracy in prediction processing.

[0007] This application provides an image processing method, applicable to a processing device, comprising the following steps:

[0008] S10: Divide the current block according to the first partitioning pattern corresponding to the sub-blocks of the current block.

[0009] Optionally, performing step S10 requires at least one of the following conditions to be met:

[0010] The first cost of partitioning the current block according to the first partitioning pattern is less than the second cost of partitioning the current block according to the second partitioning pattern.

[0011] The current block's size is greater than the first size.

[0012] The motion information of the current block is matched with the first motion information;

[0013] The configuration information of the current block matches the first configuration information;

[0014] The first text information and / or the first signaling obtained in the bitstream are located in the first range.

[0015] Optionally, the image processing method further includes at least one of the following:

[0016] The first division pattern and / or the second division pattern include at least one of the following: division method, division line, division distance, and division angle;

[0017] Determine or obtain at least one second partitioning pattern based on the cost of at least one partitioning pattern;

[0018] Based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks, determine or obtain at least one second partitioning pattern;

[0019] Based on the image region traversed by the dividing line corresponding to at least one second dividing pattern in the current block, the sub-blocks of the current block are determined or obtained.

[0020] Optionally, the image processing method further includes at least one of the following:

[0021] At least one first partitioning pattern is determined or obtained based on a list of candidate partitioning patterns for at least one sub-block;

[0022] At least one first partitioning pattern is determined or obtained based on a neural network of at least one sub-block;

[0023] The third partitioning pattern of the current block is determined or obtained based on at least one first partitioning pattern, and the current block is partitioned according to the third partitioning pattern.

[0024] Optionally, the list of candidate partitioning patterns is determined or obtained based on at least one of the following:

[0025] The second partitioning pattern of the current block;

[0026] Offset parameters of the sub-block;

[0027] At least one candidate partitioning pattern is determined or obtained based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks.

[0028] At least one candidate partitioning pattern is determined or obtained based on the frequency of at least one partitioning pattern;

[0029] At least one candidate partitioning pattern is determined or obtained based on the cost of at least one partitioning pattern;

[0030] The second component partitioning pattern of the sub-block is determined or obtained based on the first component partitioning pattern of neighboring blocks and / or non-neighboring blocks.

[0031] Optionally, the method for determining or obtaining the dividing line of the third dividing pattern includes at least one of the following:

[0032] Use at least one dividing line of the first dividing pattern as the dividing line of the third dividing pattern;

[0033] Based on the dividing lines obtained by directly or indirectly connecting the dividing lines corresponding to at least two first dividing patterns, the dividing lines corresponding to the third dividing pattern are determined or obtained.

[0034] Determine the position of at least one first pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on at least two non-overlapping dividing lines extending from the position of at least one first pixel to the edge of the current block.

[0035] Determine the position of at least one second pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on the dividing line passing through the position of at least one second pixel in at least two sub-blocks.

[0036] Optionally, the dividing line corresponding to the first dividing pattern is determined or obtained based on at least one of the following:

[0037] The dividing line corresponding to the dividing pattern determined or obtained based on the candidate dividing pattern list and / or neural network;

[0038] Based on the offset parameter of at least one sub-block, the dividing line corresponding to the second dividing mode of the current block is offset to determine or obtain the dividing line;

[0039] Based on the offset parameter of at least one sub-block, the partition line corresponding to the partition pattern determined or obtained based on the candidate partition pattern list and / or neural network is offset to determine or obtain the partition line.

[0040] Starting from at least one third pixel position in the sub-block, extend at least two non-overlapping dividing lines towards the edge of the sub-block;

[0041] The dividing line is determined or obtained based on at least one fourth pixel position in the sub-block and at least one first fifth pixel position in the adjacent or non-adjacent sub-blocks.

[0042] Optionally, the image processing method further includes the following steps:

[0043] S20, predict at least one segmented region obtained based on step S10.

[0044] Optionally, step S20 includes at least one of the following:

[0045] Predict at least one segmented region, determine or generate at least one predicted region, and determine or generate a predicted block based on at least one predicted region and / or the fusion width and / or fusion region of at least one predicted region;

[0046] Based on the predicted region corresponding to at least one partitioned region, and the number of fusion processes determined or obtained based on the number of sub-blocks corresponding to at least one predicted region, a predicted block is determined or generated.

[0047] Optionally, the fusion width and / or fusion region of at least one predicted region are determined or obtained based on at least one of the following:

[0048] At least one first partitioning pattern;

[0049] At least one candidate fusion width list;

[0050] A list of at least one candidate fusion region;

[0051] At least one neural network;

[0052] The fusion width and / or fusion region corresponding to the second signaling and / or second text information obtained in the bitstream.

[0053] This application also provides an image processing apparatus, comprising:

[0054] The processing module is used to divide the current block according to the first partitioning mode corresponding to the sub-blocks of the current block.

[0055] This application also provides a processing device, including: a memory and a processor, wherein the memory stores an image processing program, and when the image processing program is executed by the processor, it implements the steps of any of the image processing methods described above.

[0056] This application also provides a storage medium storing a computer program that, when executed by a processor, implements the steps of any of the image processing methods described above.

[0057] As described above, the image processing method of this application can be applied to a processing device, including: dividing the current block according to a first partitioning mode corresponding to the sub-blocks of the current block. Through the technical solution of this application, during the block partitioning stage of video encoding and / or decoding, the sub-blocks of the current block can be comprehensively considered, and / or the current block can be partitioned according to the first partitioning mode corresponding to the sub-blocks, which can improve the accuracy of block partitioning, making subsequent predictions more accurate and supporting improved prediction accuracy in prediction processing. Attached Figure Description

[0058] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this application and, together with the description, serve to explain the principles of this application. To more clearly illustrate the technical solutions of the embodiments of this application, the drawings used in the description of the embodiments will be briefly introduced below. Obviously, those skilled in the art can obtain other drawings based on these drawings without any creative effort.

[0059] Figure 1 is a schematic diagram of the hardware structure of a smart terminal that implements various embodiments of this application;

[0060] Figure 2 is a communication network system architecture diagram provided in an embodiment of this application;

[0061] Figure 3 is a schematic diagram of the hardware structure of a controller 140 provided in this application;

[0062] Figure 4 is a schematic diagram of the hardware structure of a network node 150 provided in this application;

[0063] Figure 5 is a schematic diagram of the scene segmentation using GPM;

[0064] Figure 6 is a schematic diagram of a scenario using sub-block-level fine-grained partitioning in an embodiment of this application;

[0065] Figure 7 is a flowchart illustrating the image processing method according to the first embodiment;

[0066] Figure 8 is a schematic diagram of the encoding process of the encoder based on the image processing method of this application;

[0067] Figure 9 is a schematic diagram of the decoding process of the decoder based on the image processing method of this application;

[0068] Figure 10 is a scene diagram of a combination sub-block in the image processing method according to the second embodiment;

[0069] Figure 11 is a scene diagram of another combining sub-block in the image processing method according to the third embodiment;

[0070] Figure 12 is a scene diagram of another combining sub-block in the image processing method according to the third embodiment;

[0071] Figure 13 is a flowchart illustrating the image processing method according to the fourth embodiment;

[0072] Figure 14 is a schematic diagram of another scenario in the image processing method according to the fourth embodiment, which employs sub-block-level fine-grained partitioning.

[0073] Figure 15 is a flowchart illustrating the sub-block refinement strategy used in the image processing method according to the fourth embodiment;

[0074] Figure 16 is a flowchart illustrating the image processing method using another sub-block refinement strategy according to the fourth embodiment;

[0075] Figure 17 is a schematic diagram of the overall flow of the image processing method according to the fourth embodiment;

[0076] Figure 18 is a schematic diagram of the prediction module in the image processing device.

[0077] The realization of the objectives, functional features, and advantages of this application will be further explained in conjunction with the embodiments and with reference to the accompanying drawings. The accompanying drawings have illustrated specific embodiments of this application, which will be described in more detail below. These drawings and textual descriptions are not intended to limit the scope of the concept in any way, but rather to illustrate the concepts of this application to those skilled in the art through reference to specific embodiments. Detailed Implementation

[0078] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.

[0079] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element. Furthermore, components, features, and elements with the same names in different embodiments of this application may have the same meaning or different meanings, the specific meaning of which must be determined by its interpretation in that specific embodiment or further in conjunction with the context of that specific embodiment.

[0080] It should be understood that although the terms first, second, third, etc., may be used herein to describe various information, such information should not be limited to these terms. These terms are used only to distinguish information of the same type from one another. For example, without departing from the scope of this document, first information may also be referred to as second information, and similarly, second information may also be referred to as first information. Depending on the context, the word “if” as used herein may be interpreted as “when…” or “in response to determination”. Furthermore, as used herein, the singular forms “a,” “an,” and “the” are intended to also include the plural forms unless the context indicates otherwise. It should be further understood that the terms “comprising,” “including,” indicate the presence of the stated feature, step, operation, element, component, item, kind, and / or group, but do not exclude the presence, occurrence, or addition of one or more other features, steps, operations, elements, components, items, kinds, and / or groups. The terms “or,” “and / or,” “including at least one of the following,” etc., as used in this application may be interpreted as inclusive, or mean any one or any combination thereof. For example, "including at least one of the following: A, B, C" means "any one of the following: A; B; C; A and B; A and C; B and C; A and B and C." Similarly, "A, B, or C" or "A, B, and / or C" means "any one of the following: A; B; C; A and B; A and C; B and C; A and B and C." Exceptions to this definition only occur when the combination of elements, functions, steps, or operations is inherently mutually exclusive in some way.

[0081] It should be understood that although the steps in the flowcharts of this application's embodiments are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some of the steps in the figures may include multiple sub-steps or multiple stages. These sub-steps or stages are not necessarily completed at the same time, but can be executed at different times, and their execution order is not necessarily sequential, but can be performed alternately or in turn with other steps or at least a portion of the sub-steps or stages of other steps.

[0082] Depending on the context, the words “if” or “suppose” as used here can be interpreted as “when” or “in response to determination” or “in response to detection.” Similarly, depending on the context, the phrases “if determination” or “if detection (of the stated condition or event)” can be interpreted as “when determination” or “in response to determination” or “when detection (of the stated condition or event)” or “in response to detection (of the stated condition or event).”

[0083] It should be noted that step designations such as S10 and S20 are used in this document for the purpose of more clearly and concisely describing the corresponding content, and do not constitute a substantial limitation on the order. In specific implementation, those skilled in the art may execute S20 first and then S10, etc., but these should all be within the protection scope of this application.

[0084] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.

[0085] In the following description, the use of suffixes such as "module," "part," or "unit" to denote elements is solely for the purpose of illustrative purposes and has no specific meaning in itself. Therefore, "module," "part," or "unit" may be used interchangeably.

[0086] In this application, the processing device can be a local or cloud server, or a smart terminal, etc. Optionally, the smart terminal can be implemented in various forms. For example, the smart terminals described in this application can include smart terminals such as mobile phones, tablets, laptops, handheld computers, personal digital assistants (PDAs), portable media players (PMPs), navigation devices, wearable devices, smart bracelets, pedometers, etc., as well as fixed terminals such as digital TVs and desktop computers.

[0087] The following description will use a mobile terminal as an example. Those skilled in the art will understand that, apart from elements specifically designed for mobile purposes, the construction according to the embodiments of this application can also be applied to fixed-type terminals.

[0088] Please refer to Figure 1, which is a schematic diagram of the hardware structure of a mobile terminal implementing various embodiments of this application. The mobile terminal 100 may include: an RF (Radio Frequency) unit 101, a WiFi module 102, an audio output unit 103, an A / V (Audio / Video) input unit 104, a sensor 105, a display unit 106, a user input unit 107, an interface unit 108, a memory 109, a processor 110, and a power supply 111, etc. Those skilled in the art will understand that the mobile terminal structure shown in Figure 1 does not constitute a limitation on the mobile terminal. The mobile terminal may include more or fewer components than shown, or combine certain components, or have different component arrangements.

[0089] The following section, with reference to Figure 1, provides a detailed description of each component of the mobile terminal:

[0090] The radio frequency unit 101 can be used for receiving and transmitting signals during information transmission or calls. Specifically, it receives downlink information from the base station and processes it with the processor 110; additionally, it transmits uplink data to the base station. Typically, the radio frequency unit 101 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low-noise amplifier, and a duplexer. Furthermore, the radio frequency unit 101 can also communicate wirelessly with networks and other devices. The aforementioned wireless communications may use any communication standard or protocol, including but not limited to GSM (Global System of Mobile communication), GPRS (General Packet Radio Service), CDMA2000 (Code Division Multiple Access 2000), WCDMA (Wideband Code Division Multiple Access), TD-SCDMA (Time Division-Synchronous Code Division Multiple Access), FDD-LTE (Frequency Division Duplexing-Long Term Evolution), TDD-LTE (Time Division Duplexing-Long Term Evolution), 5G, and 6G.

[0091] WiFi is a short-range wireless transmission technology. Mobile terminals using WiFi module 102 can help users send and receive emails, browse web pages, and access streaming media, providing wireless broadband internet access. Although Figure 1 shows WiFi module 102, it is understood that it is not an essential component of the mobile terminal and can be omitted as needed without altering the essence of the invention.

[0092] The audio output unit 103 can convert audio data received by the radio frequency unit 101 or the WiFi module 102 or stored in the memory 109 into audio signals and output them as sound when the mobile terminal 100 is in call signal receiving mode, call mode, recording mode, voice recognition mode, broadcast receiving mode, etc. Furthermore, the audio output unit 103 can also provide audio output related to specific functions performed by the mobile terminal 100 (e.g., call signal receiving sound, message receiving sound, etc.). The audio output unit 103 may include a speaker, a buzzer, etc.

[0093] The A / V input unit 104 is used to receive audio or video signals. The A / V input unit 104 may include a graphics processing unit (GPU) 1041 and a microphone 1042. The GPU 1041 processes image data of still images or videos acquired by an image capture device (such as a camera) in video capture mode or image capture mode. The processed image frames can be displayed on the display unit 106. The image frames processed by the GPU 1041 can be stored in the memory 109 (or other storage medium) or transmitted via the radio frequency unit 101 or the WiFi module 102. The microphone 1042 can receive sound (audio data) in operating modes such as telephone call mode, recording mode, and voice recognition mode, and can process such sound into audio data. The processed audio (voice) data can be converted into a format that can be transmitted to a mobile communication base station via the radio frequency unit 101 in telephone call mode. The microphone 1042 can implement various types of noise cancellation (or suppression) algorithms to eliminate (or suppress) noise or interference generated during the reception and transmission of audio signals.

[0094] The mobile terminal 100 also includes at least one sensor 105, such as a light sensor, a motion sensor, and other sensors. Optionally, the light sensor includes an ambient light sensor and a proximity sensor. Optionally, the ambient light sensor can adjust the brightness of the display panel 1061 according to the ambient light level, and the proximity sensor can turn off the display panel 1061 and / or backlight when the mobile terminal 100 is moved to the ear. As a type of motion sensor, an accelerometer sensor can detect the magnitude of acceleration in various directions (generally three axes), and can detect the magnitude and direction of gravity when stationary. It can be used for applications that recognize the phone's posture (such as landscape / portrait switching, related games, magnetometer posture calibration), vibration recognition related functions (such as pedometer, tapping), etc. Other sensors that may be configured in the phone, such as fingerprint sensors, pressure sensors, iris sensors, molecular sensors, gyroscopes, barometers, hygrometers, thermometers, and infrared sensors, will not be described in detail here.

[0095] The display unit 106 is used to display information input by the user or information provided to the user. The display unit 106 may include a display panel 1061, which may be configured in the form of a liquid crystal display (LCD), an organic light-emitting diode (OLED), or the like.

[0096] User input unit 107 can be used to receive input numerical or character information, and generate key signal inputs related to user settings and function control of the mobile terminal. Optionally, user input unit 107 may include touch panel 1071 and other input devices 1072. Touch panel 1071, also known as a touch screen, can collect touch operations performed by the user on or near it (such as operations performed by the user using a finger, stylus, or any suitable object or accessory on or near touch panel 1071), and drive corresponding connection devices according to a pre-set program. Touch panel 1071 may include a touch detection device and a touch controller. Optionally, the touch detection device detects the user's touch position and the signal generated by the touch operation, and transmits the signal to the touch controller; the touch controller receives touch information from the touch detection device, converts it into touch point coordinates, sends it to processor 110, and can receive and execute commands sent by processor 110. In addition, touch panel 1071 can be implemented using various types such as resistive, capacitive, infrared, and surface acoustic wave. In addition to the touch panel 1071, the user input unit 107 may also include other input devices 1072. Optionally, other input devices 1072 may include, but are not limited to, one or more of the following: physical keyboard, function keys (such as volume control buttons, power buttons, etc.), trackball, mouse, joystick, etc., without being specifically limited here.

[0097] Optionally, the touch panel 1071 may cover the display panel 1061. When the touch panel 1071 detects a touch operation on or near it, it transmits the information to the processor 110 to determine the type of touch event. Subsequently, the processor 110 provides corresponding visual output on the display panel 1061 according to the type of touch event. Although in FIG. 1, the touch panel 1071 and the display panel 1061 are implemented as two independent components to realize the input and output functions of the mobile terminal, in some embodiments, the touch panel 1071 and the display panel 1061 can be integrated to realize the input and output functions of the mobile terminal. The specific implementation is not limited here.

[0098] Interface unit 108 serves as an interface through which at least one external device can connect to mobile terminal 100. For example, the external device may include a wired or wireless headset port, an external power supply (or battery charger) port, a wired or wireless data port, a memory card port, a port for connecting a device with an identification module, an audio input / output (I / O) port, a video I / O port, a headphone port, and so on. Interface unit 108 may be used to receive input (e.g., data, power, etc.) from the external device and transmit the received input to one or more elements within mobile terminal 100, or it may be used to transmit data between mobile terminal 100 and the external device.

[0099] The memory 109 can be used to store software programs and various data. The memory 109 may primarily include a program storage area and a data storage area. Optionally, the program storage area may store the operating system, applications required for at least one function (such as sound playback, image playback, etc.), etc.; the data storage area may store data created based on the use of the mobile phone (such as audio data, phonebook, etc.). Furthermore, the memory 109 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other volatile solid-state storage device.

[0100] The processor 110 is the control center of the mobile terminal. It connects various parts of the mobile terminal via various interfaces and lines. By running or executing software programs and / or modules stored in the memory 109, and by calling data stored in the memory 109, it performs various functions and processes data of the mobile terminal, thereby providing overall monitoring of the mobile terminal. The processor 110 may include one or more processing units; preferably, the processor 110 may integrate an application processor and a modem processor. Optionally, the application processor mainly handles the operating system, user interface, and applications, while the modem processor mainly handles wireless communication. It is understood that the modem processor may not be integrated into the processor 110.

[0101] The mobile terminal 100 may also include a power supply 111 (such as a battery) that supplies power to various components. Preferably, the power supply 111 can be logically connected to the processor 110 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system.

[0102] Although not shown in Figure 1, the mobile terminal 100 may also include a Bluetooth module, etc., which will not be described in detail here.

[0103] To facilitate understanding of the embodiments of this application, the communication network system on which the mobile terminal of this application is based is described below.

[0104] Please refer to Figure 2, which is a communication network system architecture diagram provided in an embodiment of this application. The communication network system is an LTE system based on the universal mobile communication technology. The LTE system includes a UE (User Equipment) 201, an E-UTRAN (Evolved UMTS Terrestrial Radio Access Network) 202, an EPC (Evolved Packet Core) 203, and the operator's IP services 204, which are connected in sequence.

[0105] Optionally, UE201 can be the aforementioned terminal 100, which will not be described in detail here.

[0106] E-UTRAN202 includes eNodeB2021 and other eNodeB2022, etc. Optionally, eNodeB2021 can connect to other eNodeB2022 via backhaul (e.g., X2 interface), and eNodeB2021 connects to EPC203, providing access from UE201 to EPC203.

[0107] EPC203 may include MME (Mobility Management Entity) 2031, HSS (Home Subscriber Server) 2032, other MMEs 2033, SGW (Serving Gateway) 2034, PGW (Packet Data Network Gateway) 2035, and PCRF (Policy and Charging Rules Function) 2036, etc. Optionally, MME2031 is the control node that handles signaling between UE201 and EPC203, providing bearer and connection management. HSS2032 is used to provide registers to manage functions such as the Home Location Register (not shown in the figure) and stores user-specific information such as service characteristics and data rates. All user data can be sent through SGW2034. PGW2035 can provide UE 201 IP address allocation and other functions. PCRF2036 is the policy and charging control decision point for service data flow and IP bearer resources. It selects and provides available policy and charging control decisions for the policy and charging enforcement function unit (not shown in the figure).

[0108] IP services 204 may include the Internet, intranet, IMS (IP Multimedia Subsystem), or other IP services.

[0109] Although the above description uses the LTE system as an example, those skilled in the art should know that this application is not only applicable to the LTE system, but also to other wireless communication systems, such as GSM, CDMA2000, WCDMA, TD-SCDMA, 5G and future new network systems (such as 6G), etc., without limitation.

[0110] Figure 3 is a schematic diagram of the hardware structure of a controller 140 provided in this application. The controller 140 includes a memory 1401 and a processor 1402. The memory 1401 is used to store program instructions, and the processor 1402 is used to call the program instructions in the memory 1401 to execute the steps performed by the controller in the first embodiment of the above method. The implementation principle and beneficial effects are similar, and will not be described again here.

[0111] Optionally, the controller further includes a communication interface 1403, which can be connected to the processor 1402 via a bus 1404. The processor 1402 can control the communication interface 1403 to implement the receiving and sending functions of the controller 140.

[0112] Figure 4 is a schematic diagram of the hardware structure of a network node 150 provided in this application. The network node 150 includes a memory 1501 and a processor 1502. The memory 1501 is used to store program instructions, and the processor 1502 is used to call the program instructions in the memory 1501 to execute the steps performed by the first node in the above method embodiment. The implementation principle and beneficial effects are similar, and will not be described again here.

[0113] Optionally, the controller further includes a communication interface 1503, which can be connected to the processor 1502 via a bus 1504. The processor 1502 can control the communication interface 1503 to implement the receiving and sending functions of the network node 150.

[0114] The integrated modules described above, implemented as software functional modules, can be stored in a computer-readable storage medium. These software functional modules, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods of the various embodiments of this application.

[0115] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product. A computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a storage medium or transmitted from one storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid-state disk, SSD), etc.

[0116] Based on the above-described mobile terminal hardware structure and communication network system, various embodiments of this application are proposed.

[0117] To facilitate understanding, the basic principles of GPM that may be involved in the embodiments of this application will be explained below:

[0118] For any image and / or image patch, when using GPM mode, the CU (Coding Unit) can be divided into at least two parts by geometrically positioned straight lines or line segments. Each partition after CU division contains separate motion information. Each partition only allows unidirectional prediction, that is, each partition has only one motion vector and one reference index. This constraint ensures that each CU is the same as traditional bidirectional prediction, that is, each CU only needs two motion vectors and a reference frame index.

[0119] When using GPM to divide an image and / or image blocks, the fusion width needs to be encoded and / or decoded first, and then fused based on the fusion width in subsequent encoding and / or decoding processes.

[0120] The processing device can acquire video image data from a video source and divide the image blocks of each frame in the video image data (e.g., using GPM segmentation) before performing subsequent encoding and / or decoding processes such as prediction. However, GPM selects a partitioning mode within a single CU, essentially using global geometric segmentation lines to partition image blocks and selecting prediction parameters for the two sides of the partitioned region, then using a fusion width for boundary transition processing. However, this method has some drawbacks. For example, because the geometric shape of the segmentation boundary is limited by a single global straight line, when the real motion boundary / texture boundary presents bends, local offsets, or fragmented structures within the CU, the straight-line segmentation is difficult to match, resulting in misclassification of the prediction region and increased residuals. In other words, GPM's use of global geometric segmentation lines for segmentation leads to insufficient matching of complex motion boundaries.

[0121] To address discontinuities at boundaries, a balanced transition can be achieved by setting / selecting the blending width (adaptive blending, adaptive width, and a blending switch, etc.). However, when the straight-line segmentation using GPM is insufficient for fitting local boundaries, a wider blending area is needed to smooth out the inconsistencies caused by missegmentation. But this still has the following drawbacks: after the blending area is expanded, more mixed pixels are introduced, which weakens edge sharpness and detail; the blending width selection is coupled with signaling / pattern search, making coding decisions more complex and potentially increasing bit overhead (even with "whether to blend" signaling, it only reduces the blending overhead in certain scenarios and does not fundamentally solve the missegmentation problem).

[0122] Optionally, RDcost (Rate-Distortion Cost) can be used to select the partitioning mode, prediction mode, and fusion width. Encoding and transmission optimization can be achieved through sgpmInter (Spatially varying Geometric Partition Mode for Inter prediction) or TM (Template Matching) reordering. In audio and video protocols, TM reordering can reduce the explicit transmission of "partition + two-sided MV (Motion Vector)". However, these methods mainly improve search efficiency, candidate ranking, and signaling compression. There is still a lack of targeted modeling for the "local region crossed by the partition line", making it difficult to achieve a more refined boundary representation within the CU.

[0123] SbTMVP (Subblock-based Temporal Motion Vector Prediction) divides the CU and co-located blocks into 8×8 subblocks and obtains subblock motion information. sbSMVP also supports inheriting subblock-level motion vector prediction (MV) from spatial neighbors to better represent local motion. However, currently, this subblock information (such as subblock motion information) is mostly used for MVP (Motion Vector Predictor) / merge (pattern) candidate enhancement, and not for reshaping the segmentation boundary shape of GPM. Therefore, even with subblock-level motion cues, the boundaries of GPM still largely rely on the expressive power of "full-block straight line + fusion," failing to fully utilize the differences in subblock motion to refine the boundaries. Consequently, a wider fusion may still be needed to mitigate the effects of misclassification.

[0124] For example, as shown in Figure 5, using GPM's straight-line division, such as using the dashed line in the figure as the dividing line, will lead to an inaccurate division. For example, there may be pixel areas with large changes (such as texture changes, color changes, etc.) above the dividing line (such as a gray pixel area gradually changing to a white pixel area). The predicted blocks obtained by predicting in this way will also be inaccurate.

[0125] Therefore, to address the shortcomings of GPM's full-block straight-line segmentation (segmentation using global geometric segmentation lines), which leads to insufficient fitting of complex boundaries and reliance on a wider fusion band, this application proposes an image processing method to improve GPM's ability to fit complex / bent / fragmented motion boundaries within the CU without significantly increasing signaling burden. This reduces the prediction error and residual increase caused by straight-line missegmentation. Furthermore, it enables the use of sub-block-level motion information capabilities of image blocks (e.g., temporal / spatial motion derivation of 8x8 sub-blocks) to guide the local refinement of GPM boundaries, giving the segmentation boundaries the ability to express segmentation and / or curvature, thereby more accurately dividing the regions to be predicted on both sides. Moreover, after the boundaries are better fitted, the fusion bandwidth can be shortened (e.g., reducing the number of selectable fusion width levels), ensuring visual continuity of the boundaries while reducing the loss of detail and coding overhead introduced by fusion.

[0126] Optionally, sub-block partitioning (i.e., sub-block-level fine-grained partitioning) can be introduced into GPM to recalculate the sub-block partitioning line for the sub-blocks through which the partitioning line (i.e., the dividing line) passes, thereby refining the GPM boundary and enabling the partitioning boundary to have the ability to express segmentation and / or curvature, thus more accurately partitioning the prediction regions on both sides, reducing the probability of misclassification of complex motion boundaries by traditional straight-line GPM, and reducing the overall residual.

[0127] For example, as shown in Figure 6, the dividing line of the corresponding partitioning mode (such as the first partitioning mode) can be determined in each sub-block of the current block, and the dividing lines between the sub-blocks can be connected to obtain the dividing line of the third partitioning mode of the current block, such as the broken line in the figure. The current block is then divided according to the dividing line of the third partitioning mode, and then prediction and other encoding and / or decoding processes are performed.

[0128] Alternatively, finer sub-block division can be used to reduce the blending width. After the boundaries are more closely aligned, the blending width can be shortened, which can reduce the loss of detail and encoding / decoding overhead introduced by blending while ensuring the visual continuity of the boundaries.

[0129] Optionally, the current block can be divided according to the first partitioning mode corresponding to the sub-blocks of the current block to determine or obtain at least one partitioned region, which can improve the accuracy of partitioning and thus improve the prediction accuracy of prediction processing.

[0130] First Embodiment

[0131] Referring to Figure 7, which is a schematic flowchart of the image processing method based on the first embodiment, the image processing method of this application embodiment can be applied to a processing device, including step S10:

[0132] Step S10: Divide the current block according to the first partitioning pattern corresponding to the sub-blocks of the current block.

[0133] In this embodiment, the processing device can be a smart terminal, such as a mobile phone or computer, or a server, such as a local server or a cloud server. This embodiment and this application primarily use a smart terminal as an example for illustration.

[0134] Optionally, the technical solution of this embodiment can be applied to fields such as image encoding and decoding, video encoding and decoding, hardware video encoding and decoding, dedicated circuit video encoding and decoding, and real-time video encoding and decoding.

[0135] Optionally, the current block can be the image block to be divided (i.e. segmented), and can be a CU.

[0136] Optionally, the sub-block can be a sub-block within the current block, or a sub-block with pre-defined dimensions, such as an 8x8 sub-block, and the size parameters of the sub-block (such as length, width, height, perimeter, and area) are smaller than the size parameters of the current block.

[0137] Optionally, the sub-blocks of the current block are not separate image blocks, but rather pre-determined image block regions within the current block. The current block may include one or more sub-blocks. That is, it can be inferred in advance that the current block can be divided into at least one sub-block, but no segmentation processing is performed at this time, and it is used as a sub-block of the current block. For example, a 16x16 image block may include four 8x8 sub-blocks.

[0138] Optionally, the first partitioning mode can be a partitioning mode used to divide sub-blocks, and the first partitioning mode can include partitioning lines with different directions and angles.

[0139] Optionally, the first partitioning patterns corresponding to at least two sub-blocks within the current block can be different.

[0140] Optionally, the dividing line of the first dividing pattern corresponding to at least one sub-block of the current block can be determined, and the dividing line of the current block as a whole can be determined based on at least one dividing line, and then the current block as a whole can be divided to obtain at least one divided region.

[0141] Optionally, the segmented region can be an image region after the current block has been segmented.

[0142] Optionally, the dividing line of the first dividing pattern corresponding to the sub-block can be a straight line segment or an arc segment, without any restriction.

[0143] Optionally, the current block can be partitioned at least once. The partitioning mode of at least once can be determined or obtained based on the first partitioning mode corresponding to the sub-blocks of the current block, or it can be combined with the GPM partitioning mode and the first partitioning mode corresponding to the sub-blocks of the current block to partition the current block. For example, the sub-block level fine-grained partitioning can be performed first, that is, the current block can be partitioned based on the first partitioning mode corresponding to the sub-blocks of the current block, and then the GPM partitioning can be performed.

[0144] Optionally, the processing device can be an encoder or a decoder. When the processing device is an encoder and / or a decoder, it can perform the partitioning of the current block according to the first partitioning mode corresponding to the sub-blocks of the current block.

[0145] Optionally, referring to Figure 8, when the processing device is an encoder, the encoder receives input video data, such as video images from a video source. This input image is divided into at least one image block (the image block includes a luma block and a chroma block). Then, utilizing the temporal and / or spatial correlations between video images, prediction processing is performed on at least one image block, such as intra-frame prediction and / or inter-frame prediction. Furthermore, during intra-frame prediction and / or inter-frame prediction, a final prediction mode can be selected from at least one prediction mode (e.g., a rate-distortion optimization method is used, such as selecting the prediction mode with the lowest rate-distortion cost) for intra-frame prediction and / or inter-frame prediction.

[0146] For example, calculate the rate-distortion cost corresponding to each prediction mode or the rate-distortion cost of a prediction mode combining several prediction modes, determine the minimum rate-distortion cost from at least one rate-distortion cost, and use the prediction mode or combination of prediction modes corresponding to the minimum rate-distortion cost as the final prediction mode adopted by the image block. These prediction modes can be intra-frame prediction modes or inter-frame prediction modes.

[0147] Optionally, the inter-frame prediction mode can be determined or obtained based on the image processing method in the embodiments of this application. By improving GPM, image blocks are then divided (for example, the current block is divided according to the first division mode corresponding to the sub-blocks of the current block to determine or obtain at least one division region), and the corresponding inter-frame prediction mode is determined based on the divided image region.

[0148] Optionally, the optimal dividing line can be found for the sub-blocks of the current block to form the final dividing line. The current block is then divided according to the final dividing line to achieve a more refined division. By fusing the best prediction results of the two divided regions, the pixel values ​​of all pixels to be predicted in the image block to be predicted are obtained. The pixel values ​​sampled from the original image block (such as the current block) corresponding to the image block to be predicted are subtracted from the predicted values ​​of the corresponding pixels in the prediction block to obtain the residual values ​​of the pixel samples and the residual block. The residual block is transformed and quantized, and then entropy encoded by an entropy encoder to form an encoded bitstream. The encoded bitstream may also include prediction parameters corresponding to the determined prediction mode and related auxiliary information (side information). The prediction parameters are entropy encoded and then packaged into the encoded bitstream.

[0149] Optionally, the transformed and quantized residuals are summed with the corresponding prediction blocks obtained from the prediction mode to obtain a reconstructed block. Then, the reconstructed block is subjected to loop filtering processing in conjunction with the filtering control data to reduce distortion. Optionally, during the loop filtering process, the reconstructed block can also be fused with the residuals that have undergone inverse quantization and inverse transform processing, as well as the prediction data, and stored in the encoded image buffer.

[0150] Optionally, referring to Figure 9, when the processing device is a decoder, the decoder receives the encoded bit stream and uses the decoding unit to perform entropy decoding on the bit rate to obtain transform coefficients. The decoder's inverse transform unit and inverse quantization unit perform inverse transform and inverse quantization on the transform coefficients (i.e., inverse quantization and inverse transform in the figure) to obtain residual blocks.

[0151] Optionally, the decoder's decoding unit parses the decoded bitstream to obtain prediction data, such as prediction parameters and related auxiliary information. The prediction data is then used for prediction processing (intra-frame prediction and / or inter-frame prediction) to determine the prediction block corresponding to the residual block.

[0152] Optionally, intra-frame prediction and / or inter-frame prediction processing includes a prediction processing method that combines one or more prediction modes from a plurality of prediction modes. Furthermore, when the auxiliary information indicates that GPM sub-block partitioning prediction is used, that is, it indicates that the image block partitioning is performed using the image processing method in the embodiments of this application, and the corresponding prediction mode is determined accordingly for prediction processing, the GPM can be improved before image block partitioning (for example, the current block is partitioned according to the first partitioning mode corresponding to the sub-blocks of the current block to determine or obtain at least one partitioned region), and the corresponding inter-frame prediction mode is determined based on the partitioned image region, and then inter-frame prediction processing is performed to obtain the prediction result of the block to be predicted (i.e., the prediction block).

[0153] Optionally, the residual block and the predicted block can be added together to obtain the reconstructed block.

[0154] Optionally, the decoder's loop filtering unit uses filter control data to perform loop filtering on the reconstructed blocks to reduce distortion and improve video quality. The reconstructed blocks after loop filtering are further combined into a decoded image and stored in the decoded image buffer or output as decoded video data.

[0155] In this embodiment, by dividing the current block according to the first partitioning mode corresponding to the sub-blocks of the current block, it is possible to comprehensively consider the sub-blocks of the current block and / or divide the current block according to the first partitioning mode corresponding to the sub-blocks during the block partitioning stage of video encoding and / or decoding. This can improve the accuracy of block partitioning, so as to make subsequent predictions more accurate and support the improvement of prediction accuracy in prediction processing.

[0156] Second Embodiment

[0157] Based on the first embodiment, a second embodiment of this application is proposed. In the second embodiment, performing step S10 requires at least one of the following conditions 1 to 5 to be satisfied:

[0158] Condition 1: The first cost of partitioning the current block according to the first partitioning pattern is less than the second cost of partitioning the current block according to the second partitioning pattern.

[0159] Optionally, the first cost may be the rate-distortion cost of partitioning the current block using the first partitioning mode.

[0160] Optionally, the second cost may be the rate-distortion cost of partitioning the current block using the second partitioning mode.

[0161] Optionally, when calculating the first cost and / or the second cost, different cost functions can be used, such as SAD (Sum of Absolute Differences), SATD (Sum of Transformed Absolute Differences), MRSAD (Mean Removal SAD), MRSATD (Mean-Removed Sum of Absolute Transformed Differences), etc.

[0162] Optionally, the second partitioning mode of the current block can be the GPM partitioning mode, such as the global linear partitioning mode.

[0163] Optionally, a cost calculation can be performed to obtain a first cost when the current block is partitioned using a first partitioning mode, and a cost calculation can be performed to obtain a second cost when the current block is partitioned using a second partitioning mode.

[0164] Optionally, when the first cost is less than or equal to the second cost, the current block can be finely divided into sub-blocks, that is, the current block can be divided according to the first partitioning pattern corresponding to the sub-blocks of the current block. When the first cost is greater than the second cost, the current block can be divided according to the second partitioning pattern of the current block.

[0165] Optionally, the image processing method further includes at least one of methods 1 to 4:

[0166] Method 1, the first division mode and / or the second division mode include at least one of the following: division method, division line, division distance and division angle;

[0167] Optionally, the division method can be determined based on the division angle and the division distance. Different division angles correspond to different division methods, and different division distances correspond to different division methods. For example, there can be 64 geometric division methods in GPM.

[0168] Optionally, the dividing line can be a dividing line used to segment image patches, and each dividing pattern can correspond to at least one dividing line. A dividing line can be represented using two parameters: dividing distance and dividing angle.

[0169] Alternatively, the partitioning distance can be the offset of the partitioning boundary from the center of the image block (such as the current block or sub-block), such as 1 / 4 pixel distance.

[0170] Optionally, the dividing angle can be different angles for dividing the current block, such as 0° (vertical direction), 45° (diagonal direction), 90° (horizontal direction), 135° (another diagonal direction), 180° (vertical direction, opposite to 0° direction), 225° (diagonal direction), 270° (horizontal direction, opposite to 90° direction), and 315° (diagonal direction), etc.

[0171] Optionally, by including at least one of the partitioning mode, partitioning line, partitioning distance and partitioning angle, and when the first cost is less than the second cost, the current block can be partitioned according to the first partitioning mode, thereby achieving the partitioning of the current block using the partitioning mode with the lowest cost.

[0172] Method 2: Determine or obtain at least one second partitioning pattern based on the cost of at least one partitioning pattern;

[0173] Optionally, at least one partitioning pattern can be determined in advance, and the cost can be calculated. The partitioning patterns can be sorted according to the calculated cost (such as rate distortion cost), for example, sorted in order of increasing cost, and at least one partitioning pattern with the smallest cost can be selected as the second partitioning pattern.

[0174] Optionally, by determining or obtaining at least one second partitioning pattern based on the cost of at least one partitioning pattern, and selecting the first partitioning pattern with the lowest cost to partition the current block when the first cost is less than the second cost, the partitioning cost of the partitioning stage can be saved.

[0175] Method 3: Based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks, determine or obtain at least one second partitioning pattern.

[0176] Optionally, the neighboring block can be a block adjacent to the current block, and / or a block that has already been predicted or reconstructed.

[0177] Optionally, a non-neighbor block can be a block that is not adjacent to the current block, and / or a block that has already been predicted or reconstructed.

[0178] Optionally, the co-position block can be an image block in the co-position image that has the same position and size as the current block. Optionally, the co-position image can be the image in the reference image that is closest to the current image in time.

[0179] Optionally, the temporal block can be a block that is distinguished in the time domain, such as an image block in the previous frame. For example, if there is video data containing three frames of images, the first frame is played in the first second, the second frame is played in the second second, and the third frame is played in the third second, if the image block predicted at the current moment (such as the current block) is an image block after the second frame is divided, then the temporal block can be determined or obtained as the image block corresponding to it in the first frame.

[0180] Optionally, the cross-component block can be an image block that is in a different component from at least one current block. For example, if the image block to be predicted is an image block of the Y component, then the cross-component block can be an image block of the U component and / or the V component.

[0181] Optionally, if at least one current block is an image block of the U component, then the cross-component block can be an image block of the Y component and / or the V component.

[0182] Optionally, if at least one current block is an image block of the V component, then the cross-component block can be an image block of the U component and / or the Y component.

[0183] Optionally, block vector calculation is performed on the current block, and candidate blocks corresponding to the current block are determined or obtained based on the block vector calculation results. For example, the pixels corresponding to the block vector calculation results are used as pixels in the candidate blocks.

[0184] Optionally, motion vector calculation is performed on the current block, and candidate blocks corresponding to the current block are determined or obtained based on the motion vector calculation results, such as using the pixels corresponding to the motion vector calculation results as pixels in the candidate blocks.

[0185] Optionally, the partitioning mode can be a partitioning mode in the GPM mode, such as a partitioning mode with different angles (e.g., a diagonal partitioning mode).

[0186] Optionally, at least one partitioning mode can be selected as the second partitioning mode from at least one of the partitioning modes of neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks. For example, at least one second partitioning mode can be determined or obtained based on the cost of the partitioning mode.

[0187] Optionally, by determining or obtaining at least one second partitioning mode based on at least one of the partitioning modes of neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks, the validity of the obtained second partitioning mode can be ensured. When the first cost is less than the second cost, the first partitioning mode with the lowest cost is still selected to partition the current block, which can save partitioning costs in the partitioning stage.

[0188] Method 4: Determine or obtain the sub-blocks of the current block based on the image area traversed by the dividing line corresponding to at least one second dividing pattern in the current block.

[0189] Optionally, at least one second partitioning pattern can be determined or obtained based on at least one of method 2 and method 3, or at least one second partitioning pattern of the current block can be determined based on GPM.

[0190] Optionally, a preset sub-block in the current block can be determined in advance, and the image area through which the dividing line corresponding to at least one second dividing mode passes in the current block can be determined. The preset sub-block where the image area is located is taken as a sub-block of the current block. Then, the first dividing mode corresponding to the sub-block of the current block is determined, and the current block is divided according to the first dividing mode.

[0191] For example, as shown in Figure 10, there are four pre-determined sub-blocks in the current block, namely sub-block a1, sub-block a2, sub-block a3 and sub-block a4. If the dividing line corresponding to the second dividing mode is the diagonal of the current block, then the dividing line corresponding to the second dividing mode can be determined. The image area that the dividing line passes through in the current block is the image area where sub-block a2 and sub-block a3 are located. At this time, sub-block a2 and sub-block a3 can be used as sub-blocks of the current block, and the current block can be divided according to the first dividing mode corresponding to the sub-blocks of the current block.

[0192] Optionally, the trajectory of the dividing line corresponding to at least one second dividing pattern in the current block can be determined, and at least one sub-block (hereinafter referred to as the first sub-block) corresponding to the image region through which the trajectory passes in the image block can be determined. The at least one sub-block can be filtered again, for example, determining the sub-blocks in each first sub-block that have texture edge features (such as pixel feature regions where the texture complexity changes abruptly (such as texture complexity changing from high to low)) and using them as sub-blocks of the current block. That is, the current block can be divided according to the first dividing pattern corresponding to at least one sub-block with texture edge features.

[0193] Optionally, the image region through which the dividing line corresponding to at least one second dividing pattern passes in the current block can be determined, the fusion width corresponding to at least one second dividing pattern (hereinafter referred to as the first fusion width) can be determined, and then the image region corresponding to the first fusion width can be divided according to a certain size to obtain at least one sub-block, that is, the image region corresponding to each sub-block of the image block is the image region corresponding to the first fusion width.

[0194] Optionally, by determining or obtaining the sub-blocks of the current block based on the image area traversed by the dividing line corresponding to at least one second dividing mode in the current block, it can be ensured that the sub-blocks are closely related to the second dividing mode of the current block, thus guaranteeing the accuracy of the determined or obtained sub-blocks. Furthermore, when the first cost is less than the second cost, the first dividing mode with the lowest cost is still selected to divide the current block, thereby saving the division cost in the division stage.

[0195] Optionally, at least one second partitioning pattern can be determined or obtained according to at least one of methods 2 and 3, and the sub-blocks of the current block can be determined or obtained according to method 4. In conjunction with method 1, it is determined whether condition 1 is satisfied, that is, the first cost of partitioning the current block according to the first partitioning pattern is less than the second cost of partitioning the current block according to the second partitioning pattern of the current block. When condition 1 is satisfied, step S10 can be executed to achieve fine-grained partitioning of the current block at the sub-block level.

[0196] Optionally, by selecting the first partitioning mode with the lowest cost to partition the current block even when the first cost is less than the second cost, the partitioning cost in the partitioning stage can be saved.

[0197] Condition 2: The current block's size is greater than the first size.

[0198] Optionally, the size information of the current block can be the length, width, height, perimeter, area, aspect ratio, etc., for example, the aspect ratio is 8x8.

[0199] Optionally, the first size information can be pre-set size information for performing sub-block level fine-grained division settings. The first size information can be a size threshold range (such as a width-to-height ratio range, such as a ratio range of 0 to 8x8), or a size threshold, such as 8.

[0200] Optionally, when the first size information is a size threshold, if the size information of the current block is greater than the size threshold, then condition 2 can be determined to be satisfied, and step S10 can be executed.

[0201] Optionally, when the first size information is within the size threshold range, if the size information of the current block is not within the size threshold range and is greater than the maximum value of the size threshold range, then condition 2 can be satisfied and step S10 can be executed.

[0202] Optionally, by dividing the current block according to the first division mode when the current block size information is greater than the first size information, the current block can be effectively divided according to the first division mode, thereby improving the accuracy of the division.

[0203] Condition 3: The motion information of the current block matches the first motion information;

[0204] Optionally, the motion information of the current block can be the displacement and correspondence between the current block and at least one region in the decoded reference frame. This may include the motion vector of the current block, the reference frame index, the prediction direction, and the prediction weights, etc.

[0205] Optionally, motion information can be represented by the intensity of motion, which can be reflected by at least one of the motion amplitude, motion direction and texture detail features: for example, it can be reflected by the motion vector MV. The larger the motion vector MV is, the larger the corresponding motion amplitude is, and thus the higher the intensity of motion can be considered. The texture detail features of the current block can be determined. If the texture detail features are more complex, the corresponding intensity of motion is higher.

[0206] Optionally, the first motion information can be pre-set motion information or can be represented by the intensity of the motion.

[0207] Optionally, if the texture detail features of the current block are consistent with the preset texture detail features (e.g., high texture complexity), then the motion information of the current block can be determined to match the first motion information; Optionally, if the absolute value of the motion vector of the current block is greater than the absolute value of the preset motion vector (e.g., 8), then the motion information of the current block can be determined to match the first motion information; Optionally, if the motion direction corresponding to the current block is consistent with the preset motion direction (e.g., horizontal line direction), then the motion information of the current block can be determined to match the first motion information.

[0208] Optionally, step S10 is performed when at least one of conditions 1 to 3 is met.

[0209] Optionally, by dividing the current block according to the first division mode when the motion information of the current block is matched with the first motion information, the current block can be effectively divided according to the first division mode, thereby improving the accuracy of the division.

[0210] Condition 4: The configuration information of the current block matches the first configuration information;

[0211] Optionally, the configuration information for the current block can be pre-set parameter information for the current block, such as the size information of the current block, encoding and decoding parameters (such as bitrate), and pre-set configuration switches (such as using sub-block level fine-grained partitioning when the configuration switch is on, and using GPM for partitioning when the configuration switch is off).

[0212] Optionally, the first configuration information can be pre-set configuration information, which may also include size information, encoding / decoding parameters, configuration switches, etc.

[0213] Optionally, if the configuration information of the current block includes a configuration switch and the configuration switch is turned on, it can be determined that the current block needs to be finely divided at the sub-block level. In other words, it can be determined that the configuration information of the current block matches the first configuration information, satisfying condition 4, and step S10 can be executed.

[0214] Optionally, if the configuration information of the current block includes size information and the size information is greater than the first size information, it can be determined that the configuration information of the current block matches the first configuration information, satisfying condition 4, and step S10 can be executed.

[0215] Optionally, if the configuration information of the current block includes encoding and decoding parameters, and the encoding and decoding parameters are consistent with the encoding and decoding parameters of the first configuration information, such as both having a bitrate of 8, then it can be determined that the configuration information of the current block matches the first configuration information, satisfying condition 4, and step S10 can be executed.

[0216] Optionally, by dividing the current block according to the first partitioning mode when the configuration information of the current block matches the first configuration information, the current block can be effectively divided according to the first partitioning mode, thereby improving the accuracy of the partitioning.

[0217] Condition 5: The first text information and / or the first signaling obtained in the code stream are located in the first range.

[0218] Optionally, the first text information can be text information obtained by decoding and parsing the data obtained from the bitstream, such as indexes, flags, and signaling. Different first text information can represent different partitioning patterns.

[0219] Optionally, the first signaling can be the signaling obtained by decoding and parsing the data acquired in the bitstream. Different first signaling can represent different partitioning modes. After the encoder partitions the current block according to the partitioning mode, in the entropy coding stage, the partitioning mode corresponding to the current block partitioning can be determined, and the corresponding signaling, i.e. the first signaling, can be determined and encoded into the bitstream. The decoder decodes and parses the bitstream to obtain the first signaling, and partitions the reconstructed block according to the partitioning mode represented by the first signaling, so that the encoder and decoder adopt the same partitioning mode.

[0220] Optionally, the first range can be a text information range and / or a signaling range. The text information range can be an index range (e.g., a range with an index of 1), a flag range (e.g., a range with a flag of 1), or a signaling range (e.g., a range in signaling where a single bit representing the partitioning pattern is 1).

[0221] Optionally, if the index, flag bit, or signaling obtained by the processing device from the code stream is 1, it indicates that the first text information and / or the first signaling obtained in the code stream is within the first range, satisfying condition 5, and sub-block-level fine division can be performed, and step S10 is executed.

[0222] Optionally, if the index, flag, or signaling obtained by the processing device from the bitstream is 0 after decoding and parsing, it indicates that condition 5 is not met, and the partitioning mode corresponding to 0 can be used for partitioning.

[0223] Optionally, when the first text information and / or the first signaling obtained in the bitstream are within the first range, the current block is divided according to the first division mode, thereby ensuring that the current block is effectively divided according to the first division mode and improving the accuracy of the division.

[0224] Optionally, when the current block satisfies at least one of conditions 1 to 5, step S10 can be executed to divide the current block and perform subsequent encoding and / or decoding operations such as prediction.

[0225] In this embodiment, by dividing the current block according to the first partitioning mode when at least one of conditions 1 to 5 is met, the sub-blocks of the current block can be comprehensively considered during the block partitioning stage of video encoding and / or decoding, and / or the current block can be divided according to the first partitioning mode corresponding to the sub-blocks under certain conditions, thereby improving the accuracy of block partitioning.

[0226] Third Embodiment

[0227] Based on the first or second embodiment, a third embodiment of this application is proposed. In the third embodiment, the image processing method further includes at least one of the following methods 5 to 7:

[0228] Method 5: At least one first partitioning pattern is determined or obtained based on a list of candidate partitioning patterns for at least one sub-block;

[0229] Optionally, the candidate partitioning pattern list may include at least one candidate partitioning pattern. The candidate partitioning pattern may be a partitioning pattern that is predetermined for the selection of sub-blocks of the current block, a geometric partitioning pattern, or a partitioning pattern of neighboring blocks, etc.

[0230] Optionally, each sub-block of the current block can correspond to a list of candidate partitioning patterns, and the list of candidate partitioning patterns corresponding to each sub-block can be different.

[0231] Optionally, the cost of at least one candidate partitioning pattern in the candidate partitioning pattern list can be calculated, and at least one candidate partitioning pattern can be selected as the first partitioning pattern in the candidate partitioning pattern list with the strategy of minimizing cost.

[0232] Optionally, the first partitioning pattern can be a selected candidate partitioning pattern, or it can be obtained by combining multiple selected candidate partitioning patterns, or it can be obtained by offsetting the selected candidate partitioning patterns.

[0233] Optionally, for at least one sub-block of the current block, at least one first partitioning mode can be determined or obtained based on the candidate partitioning mode list of at least one sub-block, and the current block can be partitioned based on the first partitioning mode corresponding to the sub-block of the current block.

[0234] Optionally, in method 5, the candidate partitioning pattern list is determined or obtained according to at least one of methods 8 to 13:

[0235] Method 8, the second partitioning mode for the current block;

[0236] Optionally, the second partitioning pattern of the current block can be stored as a candidate partitioning pattern in a lookup table to obtain a list of candidate partitioning patterns.

[0237] Optionally, the candidate partitioning modes in the candidate partitioning mode list include the second partitioning mode of the current block. When the candidate partitioning mode selected in the candidate partitioning mode list is the second partitioning mode for a sub-block of the current block, the selected second partitioning mode can be used as the first partitioning mode. That is, the partitioning line of the sub-block can remain unchanged, and the partitioning line (such as the horizontal partitioning line) of the second partitioning mode of the current block can continue to be used for partitioning.

[0238] In this method, by determining or obtaining a list of candidate partitioning modes based on the second partitioning mode of the current block, and determining or obtaining at least one first partitioning mode based on the list of candidate partitioning modes, the current block can be partitioned according to the first partitioning mode. This ensures that the first partitioning mode and the second partitioning mode are closely related, thereby improving the effectiveness of partitioning the current block.

[0239] Method 9, sub-block offset parameters;

[0240] Optionally, the offset parameter can be an offset parameter specific to the partitioning mode, such as the partitioning angle offset, partitioning direction offset, and partitioning distance offset of the partitioning mode.

[0241] Optionally, when determining the candidate partitioning modes in the candidate partitioning mode list, the candidate partitioning modes can be determined first, and at least one candidate partitioning mode can be offset according to the offset parameter of the sub-block to obtain the candidate partitioning mode.

[0242] Optionally, at least one candidate partitioning mode determined or obtained according to at least one of methods 8, 10 to 13 can be used as a candidate partitioning mode, and offset processing can be performed according to the offset parameter of the sub-block to obtain at least one candidate partitioning mode in the list of selected partitioning modes.

[0243] Optionally, the dividing angle corresponding to the dividing angle of the candidate dividing pattern can be offset according to the dividing angle offset to obtain the candidate dividing pattern. For example, if the dividing angle of the dividing line of the candidate dividing pattern is 60° and the dividing angle offset is 30°, then the dividing angle corresponding to the dividing line of the candidate dividing pattern obtained by the dividing angle offset processing is 90°.

[0244] Optionally, the dividing direction corresponding to the candidate dividing pattern can be offset according to the dividing direction offset to obtain the candidate dividing pattern. For example, if the dividing direction of the dividing line of the candidate dividing pattern is horizontal and the dividing direction offset is a 90° rotation direction, then the dividing direction corresponding to the dividing line of the candidate dividing pattern obtained by the dividing direction offset processing is vertical.

[0245] Optionally, the candidate partitioning mode can be obtained by performing partitioning distance offset processing based on the partitioning distance offset corresponding to the partitioning distance of the candidate partitioning mode. For example, if the partitioning distance of the partitioning line of the candidate partitioning mode is 4 pixels and the partitioning distance offset is 1 pixel, then the partitioning distance of the partitioning line of the candidate partitioning mode obtained by performing partitioning distance offset processing is 5 pixels or 3 pixels.

[0246] Optionally, the candidate partitioning modes in the candidate partitioning mode list include candidate partitioning modes determined or obtained based on the offset parameters of the sub-blocks. If the candidate partitioning mode selected in the candidate partitioning mode list for the sub-blocks of the current block is the candidate partitioning mode determined based on the offset parameters, then step S10 can be performed using the candidate partitioning mode determined based on the offset parameters.

[0247] In this method, a candidate partitioning pattern list is determined or obtained based on the offset parameters of the sub-blocks, and at least one first partitioning pattern is determined or obtained based on the candidate partitioning pattern list. The current block is then partitioned according to the first partitioning pattern. This allows for the comprehensive consideration of more refined features, such as the offset parameters of the sub-blocks, when partitioning the current block, thereby improving the accuracy of the current block partitioning.

[0248] Method 10: Determine or obtain at least one candidate partitioning mode based on at least one of the following partitioning modes: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks.

[0249] Optionally, a neighboring block can be a neighboring block of the current block or a sub-block of the current block; a non-neighboring block can be a non-neighboring block of the current block or a sub-block of the current block; a co-occurring block can be a co-occurring block of the current block or a sub-block of the current block; a temporal block can be a temporal block of the current block or a sub-block of the current block; a cross-component block can be a cross-component block of the current block or a sub-block of the current block; and a candidate block can be a candidate block of the current block or a sub-block of the current block.

[0250] Optionally, a partitioning pattern of at least one of the following can be used as a candidate partitioning pattern: neighboring block, non-neighboring block, co-located block, temporal block, cross-component block, and candidate block. Alternatively, a partitioning pattern can be selected from at least one of the following partitioning patterns: neighboring block, non-neighboring block, co-located block, temporal block, cross-component block, and candidate block, to obtain at least one candidate partitioning pattern. The partitioning pattern selection rules can be performed in ascending order of rate-distortion cost.

[0251] In this method, at least one candidate partitioning mode is determined or obtained based on at least one of the partitioning modes of neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks. A list of candidate partitioning modes is determined or obtained based on the at least one candidate partitioning mode, and at least one first partitioning mode is determined or obtained based on the list of candidate partitioning modes. The current block is then partitioned according to the first partitioning mode. This ensures that the first partitioning mode is closely related to the image blocks associated with the current block, thereby improving the effectiveness of partitioning the current block.

[0252] Method 11: Determine or obtain at least one candidate partitioning pattern based on the frequency of at least one partitioning pattern;

[0253] Optionally, frequency can be the frequency of use of the partitioning pattern, such as the frequency of use of the partitioning pattern in the current encoding and / or decoding process, such as 5 times.

[0254] Optionally, at least one partitioning mode can be determined in advance, such as at least one of the following partitioning modes: neighboring block, non-neighboring block, co-occurring block, temporal block, cross-component block, and candidate block; or various geometric partitioning modes set in advance. The frequency of use of at least one partitioning mode is determined, and the multiple partitioning modes determined in advance are sorted in descending order of frequency of use. At least one candidate partitioning mode is selected based on the sorting result, and the partitioning mode with the highest frequency of use is given priority as the candidate partitioning mode.

[0255] In this method, at least one candidate partitioning pattern is determined or obtained based on the frequency of the least one partitioning pattern, and then a list of candidate partitioning patterns is determined or obtained. At least one first partitioning pattern is determined or obtained based on the list of candidate partitioning patterns, so as to partition the current block according to the first partitioning pattern. The effectiveness of the selected first partitioning pattern can be ensured by the frequency of the partitioning pattern. For example, the higher the frequency, the more accurate and effective the selected first partitioning pattern is, and the effectiveness of partitioning the current block can also be improved.

[0256] Method 12: Determine or obtain at least one candidate partitioning pattern based on the cost of at least one partitioning pattern;

[0257] Optionally, the cost can be the rate-distortion cost of partitioning the current block using the partitioning mode. The cost can be calculated according to different cost functions, such as SAD, SATD, etc., listed in condition 1 in the second embodiment.

[0258] Optionally, at least one partitioning mode can be determined in advance, such as at least one of the following partitioning modes: neighboring block, non-neighboring block, co-occurring block, temporal block, cross-component block, and candidate block; or various geometric partitioning modes set in advance. The cost of at least one partitioning mode is determined, and the multiple partitioning modes determined in advance are sorted in order of cost from low to high. At least one candidate partitioning mode is selected based on the sorting result, and the partitioning mode with the lowest cost is given priority as the candidate partitioning mode.

[0259] In this method, at least one candidate partitioning mode is determined or obtained based on the cost of at least one partitioning mode, and then a list of candidate partitioning modes is determined or obtained. At least one first partitioning mode is determined or obtained based on the list of candidate partitioning modes, and the current block is partitioned according to the first partitioning mode. This ensures that a low-cost and effective first partitioning mode is obtained, which reduces the cost of partitioning the current block while ensuring the effectiveness of the partitioning.

[0260] Method 13: Determine or obtain the second component partitioning pattern of the sub-block based on the first component partitioning pattern of neighboring blocks and / or non-neighboring blocks.

[0261] Optionally, the first component may be the same as or different from the second component.

[0262] Optionally, the first component and the second component can be two different components or two identical components in the YUV components, such as the first component being the Y component and the second component being the U component.

[0263] Optionally, the first component and the second component can be two different components or two identical components in the RGB components, such as the first component being the R component and the second component being the G component.

[0264] Optionally, the first component partitioning mode can be a partitioning mode that divides neighboring blocks and / or non-neighboring blocks under the first component, such as a geometric partitioning mode.

[0265] Optionally, the second component partitioning mode can be a partitioning mode that may be used for the sub-blocks of the current block under the second component, or it can be a candidate partitioning mode in the candidate partitioning mode list.

[0266] Optionally, when the first component and the second component are the same, the partitioning pattern adopted by neighboring blocks and / or non-neighboring blocks under the same component (i.e., the first component partitioning pattern) can be used as the second component partitioning pattern of the sub-block.

[0267] Optionally, when the first component and the second component are different, the partitioning pattern adopted by the neighboring blocks and / or non-neighboring blocks under the first component (i.e., the partitioning pattern of the first component) can be used as the partitioning pattern of the sub-blocks under the second component (i.e., the partitioning pattern of the second component).

[0268] Optionally, the second component partitioning pattern of the determined or obtained sub-block can be added as a candidate partitioning pattern to the lookup table to obtain a list of candidate partitioning patterns.

[0269] In this method, by determining or obtaining the second component partitioning pattern of the sub-block based on the first component partitioning pattern of neighboring blocks and / or non-neighboring blocks, a candidate partitioning pattern list is determined or obtained, and at least one first partitioning pattern is determined or obtained based on the candidate partitioning pattern list, so as to partition the current block according to the first partitioning pattern. This can ensure the effectiveness of the first partitioning pattern and improve the effectiveness of partitioning the current block.

[0270] Optionally, at least one candidate partitioning pattern can be determined or obtained according to at least one of methods 8 to 13, and a candidate partitioning pattern list can be constructed based on the at least one candidate partitioning pattern, such as storing the at least one candidate partitioning pattern in the form of a lookup table to obtain the candidate partitioning pattern list.

[0271] Optionally, the candidate partitioning pattern list may include at least one candidate partitioning pattern, or it may include an index corresponding to at least one candidate partitioning pattern (hereinafter referred to as the candidate partitioning pattern index).

[0272] Optionally, at least one candidate partitioning mode can be selected as the first partitioning mode from the list of at least one candidate partitioning modes, and the current block can be partitioned according to the at least one first partitioning mode.

[0273] In this method, by determining or obtaining at least one first partitioning pattern based on a candidate partitioning pattern list of at least one sub-block, and partitioning the current block according to at least one first partitioning pattern, the effectiveness of the first partitioning pattern can be ensured, and the effectiveness of partitioning the current block can be improved.

[0274] Method 6: At least one first partitioning pattern is determined or obtained based on a neural network of at least one sub-block;

[0275] Alternatively, the neural network can be a convolutional neural network, a deep neural network, or a neural network containing only some convolutional layers, such as a neural network containing only 3x3 convolutional layers.

[0276] Optionally, the encoding and decoding parameters of at least one sub-block can be input into the neural network of at least one sub-block for prediction, and at least one first partitioning mode can be determined or obtained based on the output of the neural network. For example, if the output is a candidate partitioning mode index, then the candidate partitioning mode corresponding to the output can be searched in the candidate partitioning mode list, and the candidate partitioning mode can be selected as the first partitioning mode. For example, if the output represents a certain partitioning mode (such as the partitioning mode of a neighboring block), then it can be used as the first partitioning mode.

[0277] Optionally, the encoding and decoding parameters of a sub-block may include bitrate, sub-block size information, sub-block position information, sub-block texture parameter information, etc.

[0278] In this method, by determining or obtaining the first partitioning pattern based on the neural network of at least one sub-block, the characteristics of the neural network can be used to accurately obtain the first partitioning pattern, and / or, by partitioning the current block based on at least one first partitioning pattern, the effectiveness of partitioning the current block can be improved.

[0279] Method 7: Determine or obtain the third partitioning pattern of the current block based on at least one first partitioning pattern, and partition the current block according to the third partitioning pattern.

[0280] Optionally, the third partitioning mode can be a global partitioning mode that partitions the current block as a whole, and is determined or obtained by at least one first partitioning mode of the sub-block.

[0281] Optionally, in method 7, the determination or acquisition of the dividing line of the third dividing pattern includes at least one of the following methods 14 to 17:

[0282] Method 14: Use at least one dividing line of the first dividing pattern as the dividing line of the third dividing pattern;

[0283] Optionally, for at least one sub-block of the current block, after determining at least one first partitioning pattern of at least one sub-block, at least one first partitioning pattern of at least one sub-block can be used as a third partitioning pattern, and the partitioning line of the first partitioning pattern can be used as the partitioning line of the third partitioning pattern.

[0284] For example, as shown in Figure 11, there are four pre-determined sub-blocks in the current block: sub-block a1, sub-block a2, sub-block a3, and sub-block a4. If the dividing line corresponding to the second dividing mode is the diagonal of the current block, then the dividing line corresponding to the second dividing mode can be determined. The image area that the second dividing mode passes through in the current block is the image area where sub-block a2 and sub-block a3 are located. At this time, sub-block a2 and sub-block a3 can be used as sub-blocks of the current block. After determining the first dividing mode corresponding to sub-block a2 and sub-block a3, the dividing line of the first dividing mode corresponding to sub-block a2 and the dividing line of the first dividing mode corresponding to sub-block a3 can be used as the dividing line of the third dividing mode of the current block, thereby dividing the current block once.

[0285] Optionally, the dividing line corresponding to the first dividing pattern is determined or obtained according to at least one of the following methods 18 to 22:

[0286] Method 18: The dividing line corresponding to the dividing pattern is determined or obtained based on the candidate dividing pattern list and / or neural network;

[0287] Optionally, when determining the dividing line corresponding to the first dividing pattern of the sub-block, a lookup table and / or neural network can be used.

[0288] Optionally, at least one dividing line corresponding to a dividing pattern can be determined or obtained based on a candidate dividing pattern list determined or obtained according to at least one of methods 8 to 13, and used as the dividing line corresponding to the first dividing pattern.

[0289] For example, the dividing line corresponding to the dividing pattern with the lowest cost is selected from the candidate dividing pattern list as the dividing line corresponding to the first dividing pattern.

[0290] Optionally, the dividing line of the partitioning pattern determined or obtained based on the neural network of at least one sub-block can be used as the dividing line of the first partitioning pattern. For example, referring to method 6, the encoding and decoding parameters of at least one sub-block can be input into the neural network of at least one sub-block for prediction to determine or obtain the corresponding partitioning pattern, and the dividing line of the partitioning pattern can be used as the dividing line of the first partitioning pattern.

[0291] Optionally, the dividing line of the first dividing pattern can be determined by combining the candidate dividing pattern list and the neural network. For example, at least one candidate dividing pattern can be selected from the candidate dividing pattern list, and the selected candidate dividing pattern can be input into the neural network. At least one dividing pattern can be determined based on the output of the neural network, and the dividing line of the dividing pattern can be used as the dividing line of the first dividing pattern.

[0292] In this method, the dividing line corresponding to the first dividing pattern is determined or obtained based on the candidate dividing pattern list and / or the neural network, and this dividing line is used as the dividing line of the third dividing pattern to divide the current block. This can achieve fine-grained sub-block-level division of the current block and ensure the accuracy of the division.

[0293] Method 19: Based on the offset parameter of at least one sub-block, offset the dividing line corresponding to the second dividing mode of the current block to determine or obtain the dividing line.

[0294] Optionally, the offset parameters of at least one sub-block can refer to method 9, such as the division angle offset, division direction offset, and division distance offset of the division mode.

[0295] Optionally, for any sub-block in the current block, the dividing line segment (hereinafter referred to as the first dividing line segment) corresponding to the second dividing mode of the current block can be determined within the sub-block. The first dividing line segment can be offset according to the offset parameter of at least one sub-block to obtain the dividing line of the first dividing mode of the sub-block.

[0296] Optionally, the first dividing line segment can be offset based on the dividing angle offset, dividing direction offset, and / or dividing distance offset of at least one sub-block to obtain the dividing line of the first dividing pattern of at least one sub-block.

[0297] Optionally, the dividing lines corresponding to the second dividing pattern can be offset as a whole based on the dividing angle offset, dividing direction offset and / or dividing distance offset of at least one sub-block to obtain the dividing lines of the first dividing pattern of each sub-block.

[0298] In this method, the dividing line corresponding to the second dividing mode of the current block is offset according to the offset parameter of at least one sub-block to determine or obtain the dividing line, thereby determining or obtaining the dividing line corresponding to the first dividing mode, and using it as the dividing line of the third dividing mode to divide the current block. This can achieve fine-grained sub-block-level division of the current block and ensure the accuracy of the division.

[0299] Method 20: Based on the offset parameter of at least one sub-block, offset the dividing line corresponding to the dividing pattern determined or obtained based on the candidate dividing pattern list and / or neural network to determine or obtain the dividing line.

[0300] Optionally, for any sub-block of the current block, the dividing line corresponding to at least one dividing mode can be determined or obtained according to the candidate dividing mode list determined or obtained according to at least one of the methods 8 to 13, and the dividing line of the dividing mode determined or obtained according to the offset parameter of at least one sub-block can be offset, and the offset dividing line can be used as the dividing line of the first dividing mode.

[0301] Optionally, referring to method 6, the dividing line corresponding to at least one dividing pattern can be determined or obtained based on the neural network of at least one sub-block, and the dividing line of the dividing pattern determined or obtained based on the offset parameter of at least one sub-block can be offset, and the offset dividing line can be used as the dividing line of the first dividing pattern.

[0302] Optionally, the dividing line determined or obtained according to method 18 can be offset based on the offset parameter of at least one sub-block to determine or obtain the dividing line corresponding to the first dividing mode.

[0303] Optionally, the dividing line corresponding to the dividing pattern determined or obtained based on the dividing angle offset, dividing direction offset and / or dividing distance offset of at least one sub-block can be offset to determine or obtain the dividing line corresponding to the first dividing pattern.

[0304] In this method, the partition line corresponding to the partition pattern determined or obtained based on the candidate partition pattern list and / or neural network is offset according to the offset parameter of at least one sub-block. The partition line is determined or obtained in this way, and the partition line corresponding to the first partition pattern is determined or obtained. This is then used as the partition line of the third partition pattern to partition the current block. This method can achieve fine-grained partitioning of the current block at the sub-block level, ensuring the accuracy of the partitioning.

[0305] Method 21: Starting from at least one third pixel position in the sub-block, extend at least two non-overlapping dividing lines towards the edge of the sub-block;

[0306] Optionally, the third pixel position can be the position of any pixel in a sub-block of the current block, such as the pixel position of the pixel at the center of the sub-block, the pixel position of the pixel at the boundary of the sub-block, etc.

[0307] Optionally, one or more third pixel positions can be selected within the same sub-block, and at least two non-overlapping dividing lines can be extended from at least one third pixel position to the edge of the sub-block.

[0308] Optionally, at least one dividing line can be extended from at least one third pixel position in the sub-block to the edge of the sub-block, and then multiple dividing lines extending from the third pixel position to the edge of the sub-block can be generated with the third pixel position as the center and divided at equal angles (e.g., 60°), and these lines can be used as the dividing lines of the first dividing mode of the sub-block.

[0309] In this method, by taking at least one third pixel position in the sub-block as the starting point, at least two non-overlapping dividing lines are extended to the edge of the sub-block to determine or obtain the dividing line corresponding to the first dividing mode, and use it as the dividing line of the third dividing mode to divide the current block. This can achieve fine-grained sub-block-level division of the current block and ensure the accuracy of the division.

[0310] Method 22, a dividing line is determined or obtained based on at least one fourth pixel position in a sub-block and at least one first fifth pixel position in an adjacent or non-adjacent sub-block.

[0311] Optionally, an adjacent sub-block can be a sub-block within the current block that is adjacent to the current sub-block's position.

[0312] Optionally, a non-adjacent sub-block can be a sub-block within the current block that is not adjacent to the current sub-block's position.

[0313] Optionally, the fourth pixel position can be the position of any pixel in a sub-block of the current block, and the third pixel position and the fourth pixel position can be the same or different.

[0314] Optionally, the fifth pixel position can be the position of any pixel in a non-adjacent sub-block within the current block.

[0315] Optionally, when determining the dividing line of the first division pattern of the sub-block, it can be determined by using adjacent sub-blocks or non-adjacent sub-blocks. For example, a line segment (hereinafter referred to as the second line segment) can be formed by connecting at least one fourth pixel position in the sub-block with at least one fifth pixel position in at least one adjacent sub-block and / or non-adjacent sub-block, and the part of the second line segment in the current sub-block can be used as the dividing line of the first division pattern of the sub-block. Alternatively, the dividing line in which each dividing line generated in the sub-block overlaps with the second line segment can be used as the dividing line of the first division pattern of the current sub-block.

[0316] Optionally, the fourth pixel position in the current sub-block, the fifth pixel position in the adjacent sub-block, and the fifth pixel position in the non-adjacent sub-block can be determined. When the adjacent sub-block and the non-adjacent sub-block are located in different directions from the current sub-block, for example, the adjacent sub-block is located directly above the current sub-block and the non-adjacent sub-block is located to the left of the current sub-block, an arc segment passing through the fourth pixel position, the fifth pixel position of the adjacent sub-block, and the fifth pixel position of the non-adjacent sub-block can be constructed. The portion of this arc segment in the current sub-block is used as the dividing line of the first dividing mode of the sub-block. Alternatively, the dividing line in the current sub-block that is tangent to the arc segment is used as the dividing line of the first dividing mode of the sub-block, and the tangent position is the fourth pixel position.

[0317] In this method, the dividing line corresponding to the first dividing mode is determined or obtained by determining or obtaining the dividing line based on the position of at least one fourth pixel in the sub-block and the position of at least one first and fifth pixel in the adjacent or non-adjacent sub-blocks, and then used as the dividing line of the third dividing mode to divide the current block. This can achieve fine-grained sub-block-level division of the current block and ensure the accuracy of the division.

[0318] Optionally, the dividing line of the first partitioning mode can be determined or obtained according to at least one of the methods 18 to 22, and the dividing line of the third partitioning mode of the current block can be determined or obtained according to at least one dividing line of the first partitioning mode, for example, the dividing line of the first partitioning mode of the sub-block can be used as the dividing line of the third partitioning mode of the current block.

[0319] In this method, by determining or obtaining a third partitioning pattern based on at least one first partitioning pattern, and then partitioning the current block according to the third partitioning pattern, the validity of the determined or obtained third partitioning pattern is guaranteed, thereby ensuring the validity of the partitioning.

[0320] Method 15: Based on the dividing lines obtained by directly or indirectly connecting the dividing lines corresponding to at least two first dividing patterns, determine or obtain the dividing lines corresponding to the third dividing pattern.

[0321] Optionally, for any sub-block of the current block, the dividing line of the corresponding first dividing pattern can be determined or obtained according to at least one of methods 18 to 22.

[0322] Optionally, the dividing line corresponding to the third dividing pattern of the current block can be obtained by directly or indirectly connecting the dividing lines of the first dividing pattern corresponding to at least two sub-blocks.

[0323] Optionally, the dividing lines of the first partitioning pattern corresponding to at least two sub-blocks in the current block can be determined and connected to form a new dividing line, which is used as the dividing line corresponding to the third partitioning pattern of the current block. For example, in Figure 10, the dividing lines of sub-block a2 and sub-block a3 are connected to obtain the dividing line corresponding to the third partitioning pattern of the current block.

[0324] Optionally, the dividing lines of the first dividing pattern corresponding to at least two sub-blocks in the current block can be determined and approximately connected (i.e., at least one dividing line port of the two is not in the same position, but the positions are relatively close) to form a new dividing line, which is used as the dividing line corresponding to the third dividing pattern of the current block. For example, in Figure 11, the dividing line of sub-block a2 and the dividing line of sub-block a3 are not in the same position. The dividing line port of sub-block a2 at the boundary connecting with sub-block a4 can be used as the first dividing line port, and the dividing line port of sub-block a3 at the boundary connecting with sub-block a1 can be used as the second dividing line port. The first dividing line port and the second dividing line port can be connected to achieve an approximate connection between the dividing line of sub-block a2 and the dividing line of sub-block a3, and the dividing line corresponding to the third dividing pattern of the current block (including the dividing line of sub-block a2, the line segment connecting the first dividing line port and the second dividing line port, and the dividing line of sub-block a3) can be obtained.

[0325] Optionally, the dividing lines of the first partitioning pattern corresponding to at least two sub-blocks in the current block can be determined and indirectly connected to form a new dividing line, which is then used as the dividing line corresponding to the third partitioning pattern of the current block.

[0326] Optionally, a virtual line can be determined between the dividing lines corresponding to at least two sub-blocks in the current block. This virtual line connects the dividing lines corresponding to the at least two sub-blocks to obtain the dividing line corresponding to the third dividing pattern of the current block. When dividing the current block according to the dividing line corresponding to the third dividing pattern, the dividing lines corresponding to at least two sub-blocks can be used, while the virtual lines are not divided. For example, as shown in Figure 12, the current block includes 16 sub-blocks. If the dividing lines of the first dividing pattern corresponding to sub-block b1 and sub-block b4 are determined... The dividing line corresponding to sub-block b1 can be connected to the dividing line corresponding to sub-block b4. A virtual line can be determined between the dividing line corresponding to sub-block b1 and the dividing line corresponding to sub-block b4, such as a virtual line in sub-block b2 and sub-block b3. The dividing line corresponding to sub-block b1 and the dividing line corresponding to sub-block b4 can be connected through this virtual line to obtain the dividing line of the third dividing mode of the current block. When dividing the current block and using the dividing line of the third dividing mode, sub-block b1 and sub-block b4 can be divided, while sub-block b2 and sub-block b3 can not be divided.

[0327] In this method, by determining or obtaining the dividing line corresponding to the third dividing pattern based on the dividing line obtained by directly or indirectly connecting the dividing lines corresponding to at least two first dividing patterns, the effectiveness of the determined or obtained dividing line corresponding to the third dividing pattern can be improved, and / or, by dividing the current block based on the dividing line corresponding to the third dividing pattern, the effectiveness of dividing the current block can be improved.

[0328] Method 16: Determine at least one first pixel position in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on at least two non-overlapping dividing lines extending from the at least one first pixel position to the edge of the current block.

[0329] Optionally, the first pixel position can be the position of a pixel located on the dividing line in a sub-block within the current block. For example, the first pixel position is the pixel located in the middle of the dividing line corresponding to the sub-block.

[0330] Optionally, the partition line corresponding to the first partitioning pattern within at least one sub-block of the current block can be determined according to at least one of methods 18 to 22.

[0331] Optionally, at least one pixel position, i.e., the first pixel position, can be selected from the dividing line corresponding to at least one sub-block, and at least two non-overlapping dividing lines can be extended from the first pixel position to the edge of the current block to obtain the dividing line corresponding to the third dividing mode.

[0332] Optionally, the dividing line corresponding to the first dividing pattern of the sub-block can be determined by referring to method 21.

[0333] In this method, by determining at least one first pixel position in the dividing line corresponding to the first dividing pattern within at least one sub-block, and based on at least two non-overlapping dividing lines extending from the at least one first pixel position to the edge of the current block, the dividing line corresponding to the third dividing pattern is determined or obtained, and the current block is divided accordingly. This improves the effectiveness of the determined or obtained dividing line corresponding to the third dividing pattern and ensures the effectiveness of the division.

[0334] Method 17: Determine at least one second pixel position in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on the dividing line passing through at least one second pixel position in at least two sub-blocks.

[0335] Optionally, the second pixel position can be the position of a pixel on the dividing line of at least one sub-block in the current block, and can be the same as or different from the first pixel position.

[0336] Optionally, the dividing lines corresponding to the first dividing pattern in at least two sub-blocks of the current block can be determined according to at least one of methods 18 to 22.

[0337] Optionally, after determining the second pixel position on the dividing line corresponding to at least two sub-blocks, the dividing line obtained by connecting at least one second pixel position in at least two sub-blocks can be used as the dividing line corresponding to the third dividing mode. A curved curve passing through at least one second pixel position in at least two sub-blocks can be constructed and used as the dividing line corresponding to the third dividing mode.

[0338] Optionally, the dividing line corresponding to the third dividing mode can be obtained by offsetting the dividing line based on the offset parameter of at least one sub-block and the dividing line passing through at least one second pixel position in at least two sub-blocks.

[0339] In this method, by determining at least one second pixel position in the dividing line corresponding to the first dividing pattern within at least one sub-block, and based on the dividing line passing through at least one second pixel position in at least two sub-blocks, the dividing line corresponding to the third dividing pattern is determined or obtained, and the current block is divided accordingly. This improves the effectiveness of the determined or obtained dividing line corresponding to the third dividing pattern and ensures the effectiveness of the division.

[0340] Optionally, the dividing line determined or obtained according to at least one of methods 14 to 17 can be offset based on the offset parameter of at least one sub-block, and the offset dividing line can be used as the dividing line of the third dividing mode.

[0341] In this embodiment, by determining or obtaining the dividing line of the third partitioning mode according to at least one of the methods 14 to 17, and then dividing the current block accordingly, the effectiveness of the dividing line corresponding to the determined or obtained third partitioning mode can be improved, thus ensuring the effectiveness of the partitioning.

[0342] Fourth embodiment

[0343] Based on any of the above embodiments, a fourth embodiment of this application is proposed. In the fourth embodiment, referring to FIG13, the image processing method further includes step S20:

[0344] Step S20: Predict at least one segmented region obtained in step S10.

[0345] Optionally, the segmented region can be an image region obtained by segmenting the current block. For example, it can be a sub-block-level fine segmentation, which divides the current block according to the first segmentation mode corresponding to the sub-blocks of the current block. Alternatively, it can be a combination of sub-block-level fine segmentation and GPM segmentation to perform at least one segmentation to obtain at least one image region, which is then used as the segmented region.

[0346] Optionally, the area can be a rectangular area or a non-rectangular area.

[0347] Optionally, the non-rectangular region may include a triangular region, a non-rectangular quadrilateral region, a pentagonal region, or a non-rectangular polygonal region composed of at least two rectangular regions. Optionally, the non-rectangular region may also be an irregularly shaped region, without limitation.

[0348] Optionally, after dividing the current block to obtain at least one partitioned region, prediction can be made for at least one partitioned region.

[0349] Optionally, a prediction model corresponding to at least one partitioned region can be determined, and prediction can be made for at least one partitioned region based on the at least one prediction model.

[0350] Optionally, the prediction mode may include intra-frame prediction mode and / or inter-frame prediction mode; the intra-frame prediction mode may be angle prediction mode, DC prediction mode, plane prediction mode, intra-block copy (IBC), matrix weighted prediction technology, etc.

[0351] Optionally, inter-frame prediction modes may include spatial MV prediction mode, temporal MV prediction mode, and joint inter-frame and intra-frame prediction mode.

[0352] Optionally, the prediction mode corresponding to at least one partitioned region can be determined or obtained based on the first partitioning mode corresponding to the sub-blocks of the current block. For example, the mapping relationship between each first partitioning mode and the prediction mode can be set in advance, and based on the mapping relationship and the first partitioning mode corresponding to the sub-blocks of the current block, the prediction mode corresponding to at least one partitioned region can be found and determined, and then the prediction processing of at least one partitioned region can be performed based on the prediction mode corresponding to at least one partitioned region.

[0353] In this embodiment, by dividing the current block according to the first partitioning mode corresponding to the sub-blocks of the current block to obtain at least one partitioned region, and predicting the at least one partitioned region, it is possible to achieve fine-grained sub-block partitioning of the current block by the first partitioning mode corresponding to the sub-blocks, ensuring the accuracy of the obtained partitioned regions. Using this to make predictions can ensure more accurate prediction results and improve the prediction accuracy of prediction processing.

[0354] Optionally, step S20 includes step S21 and / or step S22:

[0355] Step S21: Predict at least one segmented region, determine or generate at least one predicted region, and determine or generate a predicted block based on the at least one predicted region and / or the fusion width and / or fusion region of the at least one predicted region.

[0356] Optionally, the prediction region can be an image region obtained after performing prediction processing on the divided region, and each pixel in the prediction region has a corresponding predicted pixel value.

[0357] Optionally, the prediction region can be a prediction block that has undergone prediction processing.

[0358] Optionally, the fusion width can be the pixel width of the transition region formed by extending a certain distance to both sides along the boundary (i.e., the dividing line) of the two adjacent regions after completing the prediction processing of the two adjacent regions and obtaining the two prediction regions. For example, the fusion width is 4 pixels.

[0359] Optionally, the width of the fusion region can be the fusion width. The fusion region can be determined or obtained based on the fusion width and the dividing line. For example, the transition region can be obtained by extending a certain distance from the dividing boundary region where the dividing line is located to the two prediction regions. The width of this region is the fusion width.

[0360] Optionally, at least one prediction region can be fused to determine or generate a prediction block.

[0361] Optionally, when performing fusion processing on at least one prediction region, the fusion width and / or fusion area of ​​at least one prediction region can be determined, and the fusion processing on at least one prediction region can be performed based on the at least one fusion width and / or fusion area. Within the fusion area, the predicted values ​​of pixels can be weighted to obtain the predicted pixel values ​​of the prediction block.

[0362] Optionally, the fusion width and / or fusion region of at least one predicted region are determined or obtained according to at least one of methods 23 to 27:

[0363] Method 23, at least one first partitioning pattern;

[0364] Optionally, at least one predicted region's fusion width and / or fusion region can be determined or obtained based on the first partitioning pattern of the sub-blocks of the current block.

[0365] Alternatively, different first partitioning modes may employ different blending widths and / or blending regions.

[0366] Optionally, a lookup table can be set to represent the mapping relationship between different first partitioning modes and different fusion widths and / or fusion regions. The fusion width and / or fusion region corresponding to the first partitioning mode of the sub-block of the current block can be found in the lookup table. At least one prediction region can be fused according to the found fusion width and / or fusion region. Within the fusion region, the predicted values ​​of pixels can be weighted to obtain the predicted pixel values ​​of the prediction block.

[0367] In this method, by determining or obtaining the fusion width and / or fusion region of at least one prediction region based on at least one first partitioning mode, and then performing fusion processing on the at least one prediction region to obtain a prediction block, it can ensure that the fusion width and / or fusion region are closely related to the first partitioning mode corresponding to the sub-block, thereby improving the accuracy of the determined or obtained prediction block.

[0368] Method 24: At least one candidate fusion width list;

[0369] Optionally, a candidate fusion width list including at least one candidate fusion width can be constructed in advance. When fusion processing is performed on two prediction regions, a candidate fusion width can be selected from the corresponding candidate fusion width list for fusion processing to obtain a prediction block. For example, the candidate fusion width with the lowest rate distortion cost can be selected.

[0370] Optionally, the candidate fusion width is determined or obtained based on at least one of at least a first partitioning mode, at least one second partitioning mode, and at least one third partitioning mode.

[0371] Optionally, the fusion widths corresponding to different partitioning modes can be used as candidate fusion widths. Therefore, the fusion width corresponding to the first partitioning mode can be used as a candidate fusion width, the fusion width corresponding to the second partitioning mode can be used as a candidate fusion width, and the fusion width corresponding to the third partitioning mode can be used as a candidate fusion width.

[0372] Optionally, the candidate fusion width can be determined or obtained based on the fusion width of at least one of the neighboring block, non-neighboring block, co-located block, temporal block, cross-component block, and candidate block. For example, the fusion width of at least one of the neighboring block, non-neighboring block, co-located block, temporal block, cross-component block, and candidate block can be used as the candidate fusion width. Alternatively, the fusion width of at least one of the neighboring block, non-neighboring block, co-located block, temporal block, cross-component block, and candidate block can be offset based on the offset parameter to obtain the candidate fusion width. For example, if the fusion width of the neighboring block is 2 pixels, the candidate fusion width obtained after offset processing can be 3 pixels.

[0373] Optionally, the candidate fusion width can be determined or obtained based on the size information and offset parameters of the current block and / or its sub-blocks. Different mapping relationships between different size information and different fusion widths can be set in advance. The fusion width corresponding to the size information of the current block and / or its sub-blocks can be determined based on the mapping relationship and used as the candidate fusion width. For example, if the width and height of the current block are 8x8, the corresponding fusion width can be 2 pixels.

[0374] Optionally, the candidate fusion width can be determined or obtained based on the third text information and / or third signaling obtained from the bitstream;

[0375] Optionally, the third text information can be text information obtained by decoding and parsing the data obtained from the bitstream, such as indexes, flags, and signaling. Different third text information corresponds to different candidate fusion widths. For example, if the index obtained by decoding and parsing the data obtained from the bitstream is 1, then the fusion width corresponding to index 1 can be found in the corresponding lookup table and used as a candidate fusion width, such as a candidate fusion width of 4.

[0376] Optionally, the third signaling can be the signaling obtained by decoding and parsing the data acquired in the bitstream. Different third signaling can represent different candidate fusion widths. For example, if the signaling obtained by decoding and parsing the data acquired in the bitstream is the first signaling (e.g., a two-bit signaling), then the fusion width corresponding to the first signaling can be found in the corresponding lookup table and used as the candidate fusion width, for example, the candidate fusion width is 4.

[0377] Optionally, after determining the candidate fusion widths, they can be stored in the form of a lookup table. For example, they can be sorted and stored according to the rate-distortion cost corresponding to each candidate fusion width to obtain a list of candidate fusion widths.

[0378] Optionally, at least one fusion width can be selected from the list of candidate fusion widths, such as selecting the candidate fusion width with the lowest rate distortion cost as the selected fusion width, and performing fusion processing on at least one prediction region based on the selected fusion width to determine or generate a prediction block.

[0379] In this method, by determining or obtaining the fusion width and / or fusion region of at least one predicted region based on at least one candidate fusion width list, and then performing fusion processing on the at least one predicted region to obtain a predicted block, the effectiveness of the obtained fusion width and / or fusion region can be improved, and the accuracy of the determined or obtained predicted block can be guaranteed.

[0380] Method 25: At least one candidate fusion region list;

[0381] Optionally, a candidate fusion region list including at least one candidate fusion region can be constructed in advance. When fusion processing of two prediction regions is performed, a candidate fusion region can be selected from the corresponding candidate fusion region list for fusion processing to obtain a prediction block. For example, the candidate fusion region with the lowest rate-distortion cost can be selected.

[0382] Optionally, candidate fusion regions are determined or obtained based on at least one of at least a first partitioning pattern, at least one second partitioning pattern, and at least one third partitioning pattern.

[0383] Optionally, candidate fusion regions can be determined or obtained based on the fusion width of at least one of neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks.

[0384] Optionally, candidate fusion regions can be determined or obtained based on the size information, offset parameters, etc. of the current block and / or its sub-blocks.

[0385] Optionally, candidate fusion regions can be determined or obtained based on text information and / or signaling obtained from the bitstream.

[0386] Optionally, the process of determining or obtaining the candidate fusion region can refer to the process of determining or obtaining the candidate fusion width, which will not be repeated here.

[0387] Optionally, after determining the candidate fusion regions, they can be stored in the form of a lookup table. For example, they can be sorted and stored according to the rate-distortion cost corresponding to each candidate fusion region to obtain a list of candidate fusion regions.

[0388] Optionally, at least one fusion region can be selected from the list of candidate fusion regions, such as selecting the candidate fusion region with the lowest rate distortion cost as the selected fusion region, and performing fusion processing on at least one prediction region based on the selected fusion region to determine or generate a prediction block.

[0389] In this method, by determining or obtaining the fusion width and / or fusion region of at least one predicted region based on at least one candidate fusion region list, and then performing fusion processing on at least one predicted region to obtain a predicted block, the effectiveness of the obtained fusion width and / or fusion region can be improved, and the accuracy of the determined or obtained predicted block can be guaranteed.

[0390] Method 26, at least one neural network;

[0391] Optionally, the encoding and decoding parameters of at least one sub-block (which can be determined or obtained by referring to method 6 in the third embodiment) can be input into at least one neural network for prediction, and at least one fusion width and / or fusion region can be determined or obtained based on the output of the at least one neural network (hereinafter referred to as the second output result).

[0392] Optionally, when the second output result is a candidate fusion width index, a candidate fusion width corresponding to the candidate fusion width index can be found in the candidate fusion width list and used as the selected fusion width. The selected fusion width is used to perform fusion processing on at least one prediction region to determine or generate a prediction block.

[0393] Optionally, when the second output result is a candidate fusion region index, a candidate fusion region corresponding to the candidate fusion region index can be found in the list of at least candidate fusion regions, and it can be selected as the fusion region. The at least one prediction region can be fused based on the selected fusion region to determine or generate a prediction block.

[0394] Optionally, when the second output result represents a certain fusion region and / or fusion width, at least one prediction region is fused according to the fusion region and / or fusion width represented by the second output result to determine or generate a prediction block.

[0395] In this method, by determining or obtaining the fusion width and / or fusion region of at least one prediction region based on at least one neural network, and then performing fusion processing on the at least one prediction region to obtain a prediction block, the effectiveness of the obtained fusion width and / or fusion region can be improved, and the accuracy of the determined or obtained prediction block can be guaranteed.

[0396] Method 27: The fusion width and / or fusion region corresponding to the second signaling and / or second text information obtained in the bitstream.

[0397] Optionally, the second text information can be text information obtained by decoding and parsing the data obtained from the bitstream, such as indexes, flags, and signaling. Different second text information corresponds to different fusion widths and / or fusion regions. For example, if the index obtained by decoding and parsing the data obtained from the bitstream is 1, then the candidate fusion width corresponding to index 1 can be found in the candidate fusion width list and used as the selected fusion width. Alternatively, the candidate fusion region corresponding to index 1 can be found in the candidate fusion region list and used as the selected fusion region. Based on the selected fusion width and / or fusion region, at least one prediction region is fused to determine or generate a prediction block.

[0398] Optionally, the second signaling can be signaling obtained by decoding and parsing the data acquired in the bitstream. Different second signaling can represent different fusion widths and / or fusion regions. For example, if the signaling obtained by decoding and parsing the data acquired in the bitstream is the second signaling (e.g., a two-bit signaling), then the candidate fusion width corresponding to the second signaling can be found in the candidate fusion width list and used as the selected fusion width. Alternatively, the candidate fusion region corresponding to the second signaling can be found in the candidate fusion region list and used as the selected fusion region. Based on the selected fusion width and / or fusion region, at least one prediction region is fused to determine or generate a prediction block.

[0399] In this method, by determining or obtaining the fusion width and / or fusion region of at least one prediction region based on the fusion width and / or fusion region corresponding to the second signaling and / or second text information obtained in the code stream, and then performing fusion processing on the at least one prediction region to obtain a prediction block, the effectiveness of the obtained fusion width and / or fusion region can be improved, and the accuracy of the determined or obtained prediction block can be guaranteed.

[0400] Optionally, at least one prediction region's fusion width and / or fusion region can be determined or obtained according to at least one of methods 23 to 27, and the at least one prediction region can be fused according to the at least one fusion width and / or fusion region to obtain a prediction block.

[0401] Optionally, the fusion width and / or fusion region can also be determined based on the dividing line corresponding to the third partitioning mode of the current block. For example, when the dividing line corresponding to the third partitioning mode of the current block is a straight line, the fusion width and / or fusion region of at least one prediction region can be determined or obtained based on at least one of methods 23 to 27. When the dividing line corresponding to the third partitioning mode of the current block is not a straight line (such as a curved arc), the fusion width and / or fusion region determined or obtained based on at least one of methods 23 to 27 can be offset based on the offset parameter of the sub-block to obtain the fusion width and / or fusion region of at least one prediction region. The at least one prediction region can then be fused based on the at least one fusion width and / or fusion region to obtain the prediction block.

[0402] Optionally, based on the fusion width and / or fusion region determined or obtained from at least one sub-block, at least one fusion process is performed on at least one prediction region to determine or generate a prediction block.

[0403] Optionally, when an image region in the current block corresponding to at least one predicted region intersects with at least one sub-block, the fusion width and / or fusion region corresponding to the at least one sub-block can be determined, and at least one fusion process can be performed on the at least one predicted region based on the fusion width and / or fusion region corresponding to the at least one sub-block to obtain a predicted block.

[0404] Optionally, when the current block is finely divided at the sub-block level, and when fusing at least one predicted region, at least one fusion process can be performed, and the fusion width and / or fusion region of each fusion process can be determined or obtained based on the sub-block.

[0405] Optionally, as shown in Figure 10, if the dividing line between sub-blocks a2 and a3 is the dividing line corresponding to the third dividing mode of the current block, then when the current block is divided once to obtain two dividing regions (i.e., the upper dividing region and the lower dividing region) and prediction is performed to obtain two different prediction regions, such as the first prediction region corresponding to the upper dividing region and the second prediction region corresponding to the lower dividing region, then when the first prediction region and the second prediction region are fused to generate the prediction block, at least one fusion process can be performed. For example, the first prediction region and the second prediction region of sub-block a2 can be fused first, and then the first prediction region and the second prediction region of sub-block a3 can be fused.

[0406] Optionally, the fusion width and / or fusion region corresponding to sub-block a2 can be determined, and the first prediction region and the second prediction region of sub-block a2 can be fused based on the fusion width and / or fusion region corresponding to sub-block a2. Similarly, the fusion width and / or fusion region corresponding to sub-block a3 can be determined, and the first prediction region and the second prediction region of sub-block a3 can be fused based on the fusion width and / or fusion region corresponding to sub-block a3.

[0407] Optionally, after completing the two fusion processes, the corresponding prediction block is obtained.

[0408] In this embodiment, by determining or obtaining at least one predicted region's fusion width and / or fusion region according to at least one of methods 23 to 27, and predicting at least one predicted region based on the at least one segmented region obtained in step S10, and then determining or generating a predicted block based on the at least one predicted region and / or the fusion width and / or fusion region of the at least one predicted region, it is possible to achieve fine-grained sub-block division of the current block through the first segmentation mode corresponding to the sub-block, ensuring the accuracy of the obtained segmented region, and predicting the segmented region to determine or generate at least one predicted region, and then combining the fusion width and / or fusion region of the at least one predicted region, the predicted block obtained is more accurate, thus improving the prediction accuracy of the prediction processing.

[0409] Step S22: Based on the predicted region corresponding to at least one partitioned region and the number of fusion processing steps determined or obtained based on the number of sub-blocks corresponding to at least one predicted region, determine or generate a predicted block.

[0410] Optionally, the number of sub-blocks can be the number of sub-blocks in the current block that intersect with the partitioned region corresponding to the prediction region, such as 2 sub-blocks.

[0411] Optionally, the number of fusion processes can be the number of times the predicted region is fused.

[0412] Optionally, at least one predicted region corresponding to a segmented region can be determined or obtained by referring to step S21.

[0413] Optionally, the number of sub-blocks corresponding to at least one predicted region can be used as the number of fusion processes, or the number of sub-blocks can be increased or decreased to obtain the number of fusion processes.

[0414] Optionally, for any prediction region, when performing fusion processing between the prediction region and adjacent prediction regions, the division region corresponding to the prediction region (hereinafter referred to as division region 1) and the division region corresponding to the adjacent prediction region (hereinafter referred to as division region 2) can be determined first, and the dividing line between division region 1 and division region 2 (hereinafter referred to as dividing line 1) can be determined, the sub-blocks (hereinafter referred to as sub-blocks 1) that division line 1 passes through in the current block can be determined, the number of sub-blocks 1 can be determined, and it can be used as the number of sub-blocks corresponding to the prediction region. Then, the number of sub-blocks can also be used as the number of fusion processing times for the prediction region and adjacent prediction regions.

[0415] Optionally, when performing the fusion process between the predicted region and adjacent predicted regions, the fusion process between the predicted region and adjacent predicted regions can be performed each time the fusion process is performed, based on the corresponding fusion width and / or fusion area.

[0416] Optionally, each time a prediction region is fused with an adjacent prediction region, the fusion width / or fusion region can be determined or obtained based on the sub-block corresponding to the fusion process, and the fusion process can be performed accordingly.

[0417] Optionally, a prediction block is determined or generated by performing fusion processing based on the number of fusion processing steps corresponding to at least one prediction region, and the fusion width and / or fusion region corresponding to each fusion processing step.

[0418] Optionally, the fusion width and / or fusion region selected in each fusion process can be determined based on the fusion width and / or fusion region selected by at least one sub-block. For example, when performing the fusion process of two prediction regions, a fusion width can be selected from the candidate fusion width list based on any of the sub-blocks corresponding to the two prediction regions, and / or a fusion region can be selected from the candidate fusion region list. The fusion process of the two prediction regions can then be performed based on the selected fusion width and / or fusion region to determine or generate a prediction block.

[0419] In this embodiment, by determining or generating a prediction block based on the prediction region corresponding to at least one partitioned region and the number of fusion processes determined or obtained based on the number of sub-blocks corresponding to at least one prediction region, the phenomenon of inaccurate prediction blocks caused by performing a fusion process when the partition line corresponding to the third partitioning mode is not a straight line can be avoided. By combining at least one fusion process determined or obtained based on the number of sub-blocks corresponding to at least one prediction region, and the fusion width and / or fusion region used in each fusion process can be different or the same, the accuracy of fusion of at least one prediction region can be improved, the accuracy of the determined or generated prediction block can be improved, and the prediction accuracy of the prediction process can be improved.

[0420] Optionally, to aid in understanding the principles of the image processing methods in the embodiments of this application, examples are provided below.

[0421] Optionally, if a sub-block-level fine-grained partitioning is applied to the current block, a pattern list method can be used to partition the current block to improve boundary fit with limited computational complexity. For example, for each sub-block (e.g., an 8x8 sub-block) traversed by the partition line corresponding to the second partitioning pattern, the encoder and / or decoder can record a candidate partitioning pattern list. This candidate partitioning pattern list contains at least one candidate partitioning pattern, and the partition line corresponding to each candidate partitioning pattern can be a straight line segment at different angles to divide the current block into different shapes. Each candidate partitioning pattern can also correspond to at least one index. When determining the first partitioning pattern corresponding to a sub-block of the current block, the candidate partitioning pattern corresponding to the determined sub-block index can be selected from the candidate partitioning pattern list as the first partitioning pattern to partition the current block according to the first partitioning pattern.

[0422] Optionally, taking the encoder as an example, when the encoder enters the sub-block traversal loop stage, for the currently processed 8x8 sub-block (i.e. the current sub-block), each candidate partitioning mode in the candidate partitioning mode list is applied in turn, and the local prediction distortion within the sub-block is calculated for each candidate partitioning mode adopted, and the corresponding cost is obtained. With minimizing distortion as the objective (i.e. the objective is to minimize the rate distortion cost), the candidate partitioning mode with the lowest cost or the index corresponding to the candidate partitioning mode is selected based on the cost of each candidate partitioning mode, and the candidate partitioning mode with the lowest cost is taken as the first partitioning mode.

[0423] Optionally, after all sub-blocks of the current block have been traversed, the dividing lines of the first dividing pattern corresponding to all sub-blocks can be connected to form a polyline overall dividing boundary, which can be used as the dividing line for dividing the current block, and can be used for dividing.

[0424] For example, as shown in Figure 14, if the dividing line corresponding to the second partitioning mode of the current block is the diagonal of the current block, then the sub-blocks in the current block can be determined, and the dividing lines corresponding to the first partitioning mode of each sub-block (such as the diagonal of each sub-block) can be connected to obtain a polyline dividing line, which can be used as the dividing line of the third partitioning mode of the current block, and the current block can be divided according to the dividing line of the third partitioning mode.

[0425] Optionally, if the candidate partitioning mode corresponding to index 1 in the candidate partitioning mode list is finally determined to be the first partitioning mode in the encoder, then index 1 can be written into the bitstream, and the same operation can be written to each sub-block. Moreover, the index can be efficiently transmitted by using fixed-length encoding or truncating a source code.

[0426] For example, as shown in Figure 15, when performing fine-grained sub-block partitioning on the current block, the input is the set of 8x8 sub-blocks that are traversed, i.e., each sub-block of the current block, such as the sub-blocks traversed by the partition line of the second partitioning mode of the current block. Each 8x8 sub-block is processed iteratively, with the same steps: a sub-block is selected from the 8x8 sub-block set; for this sub-block, a candidate partitioning mode list (e.g., Mod List: 0, 1, etc.) is loaded; all modes (i.e., candidate partitioning modes) and the predefined fusion width are traversed; and the local distortion under each mode is calculated, i.e., the cost corresponding to each candidate partitioning mode is determined; the mode with the smallest distortion is selected, i.e., the candidate partitioning mode with the smallest cost is selected; and the candidate partitioning mode with the smallest cost is temporarily stored as the best mode (i.e., the best partitioning mode, such as the first partitioning mode) corresponding to the current sub-block. Then, it is determined whether all sub-blocks have been traversed. If not, the same processing operation is performed on the next sub-block, and / or, if yes, after all sub-blocks have been traversed, the overall segmentation boundary can be reconstructed to determine the partition line of the third partitioning mode of the current block, and the current block is partitioned. Data is then output during the entropy coding stage, such as encoding the corresponding signaling into a bitstream and outputting it to the decoder. The signaling content can be: 1 bit: gpm_refine_flag = 1, N bits: mode_idx of each sub-block, which includes the index of the first partitioning mode corresponding to the sub-block used in the encoder.

[0427] Optionally, if the current block is to be finely divided at the sub-block level, the relative offset method can be used to divide the current block.

[0428] For example, as shown in Figure 16, the input is the original GPM angle, which is the global angle index and distance index determined by the regular GPM as the base parameters. For each sub-block, a sub-block fine-tuning loop can be performed, and a sub-block can be selected from the current block's sub-block set. An offset range (e.g., angle index offset, which represents a small rotation or displacement relative to the base angle) can be defined for the sub-block, such as -2, -1, 0, +1, +2, etc. Then, a new dividing line can be generated, and the cost, such as the RDO cost, can be calculated. Based on the calculated cost, the optimal refinement parameters (i.e., the optimal offset parameters, such as the offset amount) can be locked.

[0429] Optionally, taking the encoder's RD0 cost calculation for a sub-block as an example, the encoder processes each sub-block independently. Within the current sub-block, it can combine the offset to offset the dividing line corresponding to the candidate partitioning mode, obtaining a new local partitioning line, and calculate the rate-distortion cost brought by this offset (including the estimated number of bits required to transmit the offset; the closer the offset is to 0, the fewer bits are required). Then, it iterates through the rate-distortion costs corresponding to all offsets, selects the offset with the smallest cost as the optimal refinement parameter for the sub-block, and offsets the partitioning line of the sub-block to obtain the partitioning line of the first partitioning mode of the sub-block.

[0430] Optionally, it checks whether there are still sub-blocks that have not undergone angle fine-tuning (i.e., are there still sub-blocks in the figure?). If so, it performs the corresponding fine-tuning, and / or, if not, it determines the dividing line corresponding to each sub-block based on the angle fine-tuning and connects them to form a new nonlinear geometric boundary, i.e., splicing the new boundary in the figure. Then, it outputs signaling, and when generating the bitstream, in addition to writing gpm_refine_flag=1, it also needs to perform entropy coding (such as CABAC) on the offset_val of each sub-block. Since most sub-blocks may only require very small adjustments (offset of 0 or ±1), entropy coding can significantly reduce signaling overhead, thus gaining an advantage in full RDO decision-making.

[0431] Optionally, when dividing the current block, sub-block-level fine-grained partitioning can be used. For example, sub-block-level fine-grained partitioning can be performed in the inter-frame prediction unit of the encoder. Referring to Figure 17, at the beginning of the process, an initial GPM optimization step can be performed. The encoder first performs the regular GPM prediction process, traversing all standard angle and distance combinations, and through Full Rate Distortion Optimization (Full RDO) calculation, determines the optimal regular GPM mode of the current coding unit (CU) and its corresponding raw rate distortion cost (denoted as J). old This means performing regular GPM cost calculations to obtain the optimal GPM pattern and the original cost. For example, the GPM pattern with the lowest cost is selected as the optimal GPM pattern (such as the second partitioning pattern). The original cost is the second cost of partitioning the current block based on the second partitioning pattern of the current block.

[0432] Optionally, refine the decision-making steps: after obtaining J old Then, the encoder determines whether to enable the sub-block refinement process. For example, it can determine whether to enable the sub-block refinement process (i.e., whether to use sub-block-level fine-grained division for the current block) based on the size of the current CU (i.e., the current block), the intensity of motion, or preset configuration.

[0433] If it is determined that the function is not enabled, the gpm_refine_flag flag is set to 0, and the process ends; and / or,

[0434] If it is determined to be enabled, then perform the corresponding core optimization calculations:

[0435] For example, the sub-block localization step is to determine the set of sub-blocks that are crossed by the segmentation line, that is, to determine the sub-blocks in which the image region passed by the segmentation line of the second segmentation mode (such as the best GPM mode) of the current block (such as an 8x8 image block) is located. The sub-blocks passed by the segmentation line of the second segmentation mode in the current block can be further filtered, such as determining the sub-blocks with texture edge features, and taking the sub-blocks with texture edge features as the objects to be optimized, such as dividing the current block according to the first segmentation mode corresponding to the sub-blocks with texture edge features.

[0436] For example, the strategy execution and fusion optimization steps are as follows: For the objects to be optimized in the current block (such as the sub-blocks traversed by the trajectory of the partition line of the second partitioning mode), a sub-block-level fine partitioning strategy can be executed to determine the first partitioning mode corresponding to at least one sub-block, and the current block can be partitioned according to the first partitioning mode to obtain at least one partitioned region. The at least one partitioned region can be predicted to obtain at least one predicted region. When fusing the at least one predicted region, a shorter fusion width candidate list can be applied. For example, multiple fusion processes can be performed on the at least one predicted region, and the candidate fusion width list corresponding to each fusion process has fewer candidate fusion widths, such as 2-3. Then, the fusion is performed according to the fusion width and the at least one predicted region to obtain a predicted block. Cost calculation can be performed on the predicted block to calculate a new cost (i.e., the cost of the current block using sub-block-level fine partitioning).

[0437] Alternatively, since the edges of the sub-blocks have been locally fitted to the texture, reducing the fusion width can reduce the blurring of high-frequency information and improve subjective quality.

[0438] Optionally, the cost comparison and decision-making steps involve calculating the refined prediction residual and the required number of encoded bits (including bits of gpm_refine_flag=1 and the refined data).

[0439] Optionally, cost calculation can be performed using a sub-block-level fine-grained partitioning for the current block. For example, if step S10 is executed, the corresponding cost can be calculated (i.e., the new cost is calculated in the figure), and the cost can be calculated according to the following formula 1. J new =D refine +λ·(R base +R refine +R fiag ) Formula 1;

[0440] Among them, J new The cost of performing sub-block-level fine-grained partitioning on the current block is λ, where λ is the weight and R is the weight.base R refine R fiag For the code rate in the regular GPM mode, the code rate after fine-grained sub-block partitioning, and the code rate of newly added signaling, D refine The cost of distortion after fine-grained sub-block partitioning.

[0441] Optionally, the cost of using GPM can be compared. old And the cost of using sub-block level fine-grained partitioning J new .

[0442] Optionally, check if the new cost < the old cost holds true; if so, J new <J old If the benefits of using sub-block level fine-grained partitioning are significant, optimization can be confirmed. Sub-block level fine-grained partitioning is used to partition the current block and write it into the signaling, for example, setting gpm_refine_flag to 1 and writing the refined data into the bitstream, which means that step S10 can be executed on the current block.

[0443] Optionally, if not, J new >J old If the current state is not specified, the system will revert to the normal GPM mode (i.e., maintain the original state) and write it into the signaling, for example, by setting gpm_refine_flag to 0 and using the normal GPM mode to divide the current block.

[0444] Optionally, in the embodiments of this application, the CU to be divided can be determined first, such as whether the current block adopts sub-block level fine division. For example, when at least one of the conditions 1 to 5 in the second embodiment is met, the current block can be divided according to the first division mode corresponding to the sub-block of the current block. The sub-block of the current block is closely related to the global division mode (such as GPM) of the current block. That is, the sub-block of the current block can be determined or obtained according to the image area passed by the division line of at least one second division mode of the current block. The sub-block is an undivided sub-block and is a sub-block set in advance in the current block. The sub-block has an intersection with the image area passed by the division line in the current block. The sub-block of the current block can be one or more.

[0445] Optionally, when determining the first partitioning pattern of at least one sub-block of the current block, it can be determined or obtained by combining the candidate partitioning pattern list of the sub-block and / or a neural network. Alternatively, it can be determined or obtained by combining at least one of methods 18 to 22 in the third embodiment. When determining the candidate partitioning pattern list of the sub-blocks of the current block, it can also be determined or obtained by combining at least one of methods 8 to 13 in the third embodiment.

[0446] Optionally, the dividing line of the first partitioning mode corresponding to the sub-blocks of the current block can be a straight line or a non-straight line (such as a polyline, a curved curve, an arc, etc.). Therefore, the dividing line of the global partitioning mode (such as the third partitioning mode) of the current block, which is determined or obtained based on at least one partitioning mode of the sub-blocks of the current block, can also be a straight line or a non-straight line, such as a polyline formed by connecting the dividing lines of each sub-block. Then, the current block is partitioned based on the dividing line of the third partitioning mode to determine or obtain at least one partitioned region.

[0447] Optionally, at least one segmented region can be predicted, at least one predicted region can be determined or generated, and a predicted block can be determined or generated based on at least one predicted region and / or the fusion width and / or fusion region of at least one predicted region.

[0448] Optionally, when fusing based on at least one predicted region and the fusion width and / or fusion region of at least one predicted region to determine or generate a predicted block, at least one fusion process can be performed. For example, for two predicted regions to be fused, the adjacent division regions between the two predicted regions can be determined first (that is, the current block can be divided into the image regions where the dividing lines of the two division regions are located), and the intersection between the division region and each sub-block in the image block can be determined. Based on the intersection, at least one fusion width and / or fusion region can be determined, thereby performing at least one fusion process on the two predicted regions.

[0449] In this embodiment, by dividing the current block according to the first partitioning mode corresponding to the sub-blocks of the current block, it is possible to comprehensively consider the sub-blocks of the current block during the block partitioning stage of video encoding and / or decoding, and / or divide the current block according to the first partitioning mode corresponding to the sub-blocks. This can improve the accuracy of block partitioning. After at least one partitioned region is obtained, prediction is performed on the at least one partitioned region to determine or generate at least one prediction region. Based on the at least one prediction region, the corresponding number of fusion processing steps, and the corresponding fusion width and / or at least one of the fusion regions, a prediction block is determined or generated. This allows the sub-blocks of the current block to be comprehensively considered during prediction processing, thereby improving the accuracy of the generated prediction block and thus improving the prediction accuracy of the prediction processing.

[0450] Optionally, referring to FIG18, this application embodiment also provides an image processing apparatus, the image processing apparatus including:

[0451] Processing module A10 is used to divide the current block according to the first partitioning mode corresponding to the sub-blocks of the current block.

[0452] Optionally, the processing module A10 is also used to perform at least one of the following:

[0453] The first cost of partitioning the current block according to the first partitioning pattern is less than the second cost of partitioning the current block according to the second partitioning pattern.

[0454] The current block's size is greater than the first size.

[0455] The motion information of the current block is matched with the first motion information;

[0456] The configuration information of the current block matches the first configuration information;

[0457] The first text information and / or the first signaling obtained in the bitstream are located in the first range.

[0458] Optionally, the processing module A10 is also used to perform at least one of the following:

[0459] The first division pattern and / or the second division pattern include at least one of the following: division method, division line, division distance, and division angle;

[0460] Determine or obtain at least one second partitioning pattern based on the cost of at least one partitioning pattern;

[0461] Based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks, determine or obtain at least one second partitioning pattern;

[0462] Based on the image region traversed by the dividing line corresponding to at least one second dividing pattern in the current block, the sub-blocks of the current block are determined or obtained.

[0463] Optionally, the processing module A10 is also used to perform at least one of the following:

[0464] At least one first partitioning pattern is determined or obtained based on a list of candidate partitioning patterns for at least one sub-block;

[0465] At least one first partitioning pattern is determined or obtained based on a neural network of at least one sub-block;

[0466] The third partitioning pattern of the current block is determined or obtained based on at least one first partitioning pattern, and the current block is partitioned according to the third partitioning pattern.

[0467] Optionally, the list of candidate partitioning patterns is determined or obtained based on at least one of the following:

[0468] The second partitioning pattern of the current block;

[0469] Offset parameters of the sub-block;

[0470] At least one candidate partitioning pattern is determined or obtained based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks.

[0471] At least one candidate partitioning pattern is determined or obtained based on the frequency of at least one partitioning pattern;

[0472] At least one candidate partitioning pattern is determined or obtained based on the cost of at least one partitioning pattern;

[0473] The second component partitioning pattern of the sub-block is determined or obtained based on the first component partitioning pattern of neighboring blocks and / or non-neighboring blocks.

[0474] Optionally, the method for determining or obtaining the dividing line of the third dividing pattern includes at least one of the following:

[0475] Use at least one dividing line of the first dividing pattern as the dividing line of the third dividing pattern;

[0476] Based on the dividing lines obtained by directly or indirectly connecting the dividing lines corresponding to at least two first dividing patterns, the dividing lines corresponding to the third dividing pattern are determined or obtained.

[0477] Determine the position of at least one first pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on at least two non-overlapping dividing lines extending from the position of at least one first pixel to the edge of the current block.

[0478] Determine the position of at least one second pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on the dividing line passing through the position of at least one second pixel in at least two sub-blocks.

[0479] Optionally, the dividing line corresponding to the first dividing pattern is determined or obtained based on at least one of the following:

[0480] The dividing line corresponding to the dividing pattern determined or obtained based on the candidate dividing pattern list and / or neural network;

[0481] Based on the offset parameter of at least one sub-block, the dividing line corresponding to the second dividing mode of the current block is offset to determine or obtain the dividing line;

[0482] Based on the offset parameter of at least one sub-block, the partition line corresponding to the partition pattern determined or obtained based on the candidate partition pattern list and / or neural network is offset to determine or obtain the partition line.

[0483] Starting from at least one third pixel position in the sub-block, extend at least two non-overlapping dividing lines towards the edge of the sub-block;

[0484] The dividing line is determined or obtained based on at least one fourth pixel position in the sub-block and at least one first fifth pixel position in the adjacent or non-adjacent sub-blocks.

[0485] Optionally, the processing module A10 is also used for:

[0486] Predict at least one partitioned region obtained by partitioning the current block based on the first partitioning pattern corresponding to the sub-blocks of the current block.

[0487] Optionally, the processing module A10 is also used to perform at least one of the following:

[0488] Predict at least one segmented region, determine or generate at least one predicted region, and determine or generate a predicted block based on at least one predicted region and / or the fusion width and / or fusion region of at least one predicted region;

[0489] Based on the predicted region corresponding to at least one partitioned region, and the number of fusion processes determined or obtained based on the number of sub-blocks corresponding to at least one predicted region, a predicted block is determined or generated.

[0490] Optionally, the fusion width and / or fusion region of at least one predicted region are determined or obtained based on at least one of the following:

[0491] At least one first partitioning pattern;

[0492] At least one candidate fusion width list;

[0493] A list of at least one candidate fusion region;

[0494] At least one neural network;

[0495] The fusion width and / or fusion region corresponding to the second signaling and / or second text information obtained in the bitstream.

[0496] The image processing apparatus provided in this application embodiment is similar in implementation principle and beneficial effect to the corresponding method embodiment described above, and will not be repeated here.

[0497] This application also provides a processing device, including a memory and a processor. The memory stores an image processing program, and when the image processing program is executed by the processor, it implements the steps of the image processing method in any of the above embodiments.

[0498] This application also provides a storage medium storing a computer program, which, when executed by a processor, implements the steps of the image processing method in any of the above embodiments.

[0499] In the embodiments of the processing device and storage medium provided in this application, all the technical features of any of the above-described image processing method embodiments may be included. The extended and explanatory content of the specification is basically the same as that of the embodiments of the above methods, and will not be repeated here.

[0500] This application also provides a computer program product, which includes computer program code. When the computer program code is run on a computer, it causes the computer to perform the image processing methods described in the various possible implementations above.

[0501] This application also provides a chip, including a memory and a processor. The memory is used to store a computer program, and the processor is used to call and run the computer program from the memory, so that a device with the chip installed performs the image processing methods as described in the various possible implementations above.

[0502] It is understood that the above scenarios are merely examples and do not constitute a limitation on the application scenarios of the technical solutions provided in the embodiments of this application. The technical solutions of this application can also be applied to other scenarios. For example, those skilled in the art will know that with the evolution of system architecture and the emergence of new business scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems. The sequence numbers of the embodiments of this application above are merely for description and do not represent the superiority or inferiority of the embodiments. The steps in the method of the embodiments of this application can be adjusted, merged, and deleted according to actual needs. The units in the device of the embodiments of this application can be merged, divided, and deleted according to actual needs.

[0503] In this application, the same or similar terms, concepts, technical solutions and / or application scenario descriptions are generally described in detail only when they appear for the first time. When they appear again, they are generally not repeated for the sake of brevity. When understanding the technical solutions and other contents of this application, the same or similar terms, concepts, technical solutions and / or application scenario descriptions that are not described in detail later can be referred to their previous relevant detailed descriptions.

[0504] In this application, the descriptions of the various embodiments have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0505] The technical features of the present application can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of the present application.

[0506] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) as described above, and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, controlled terminal, or network device, etc.) to execute the methods of each embodiment of this application.

[0507] In the above embodiments, implementation can be achieved entirely or partially through software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented entirely or partially in the form of a computer program product. A computer program product includes one or at least one computer instruction. When the computer program instruction is loaded and executed on a computer, all or part of the flow or function according to the embodiments of this application is generated. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instruction can be stored in a storage medium or transmitted from one storage medium to another. For example, computer instructions can be transmitted from one website, computer, server, or data center to another website, computer, server, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means. The storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that integrates one or more available media. The available medium can be a magnetic medium (e.g., floppy disk, storage disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk (SSD)).

[0508] The above are merely preferred embodiments of this application and do not limit the patent scope of this application. Any equivalent structural or procedural transformations made using the content of this application's specification and drawings, or direct or indirect applications in other related technical fields, are similarly included within the patent protection scope of this application.

Claims

1. An image processing method, wherein, Including the following steps: S10: Divide the current block according to the first partitioning pattern corresponding to the sub-blocks of the current block.

2. The method as described in claim 1, wherein, To execute step S10, at least one of the following conditions must be met: The first cost of partitioning the current block according to the first partitioning pattern is less than the second cost of partitioning the current block according to the second partitioning pattern. The current block's size is greater than the first size. The motion information of the current block is matched with the first motion information; The configuration information of the current block matches the first configuration information; The first text information and / or the first signaling obtained in the bitstream are located in the first range.

3. The method as described in claim 2, wherein, The method further includes at least one of the following: The first division pattern and / or the second division pattern include at least one of the following: division method, division line, division distance, and division angle; Determine or obtain at least one second partitioning pattern based on the cost of at least one partitioning pattern; Based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks, determine or obtain at least one second partitioning pattern. Based on the image region traversed by the dividing line corresponding to at least one second dividing pattern in the current block, the sub-blocks of the current block are determined or obtained.

4. The method of claim 1, wherein, It also includes at least one of the following: At least one first partitioning pattern is determined or obtained based on a list of candidate partitioning patterns for at least one sub-block; At least one first partitioning pattern is determined or obtained based on a neural network of at least one sub-block; The third partitioning pattern of the current block is determined or obtained based on at least one first partitioning pattern, and the current block is partitioned according to the third partitioning pattern.

5. The method of claim 4, wherein, The list of candidate partitioning patterns is determined or obtained based on at least one of the following: The second partitioning pattern of the current block; Offset parameters of the sub-block; At least one candidate partitioning pattern is determined or obtained based on at least one of the following partitioning patterns: neighboring blocks, non-neighboring blocks, co-located blocks, temporal blocks, cross-component blocks, and candidate blocks. At least one candidate partitioning pattern is determined or obtained based on the frequency of at least one partitioning pattern; At least one candidate partitioning pattern is determined or obtained based on the cost of at least one partitioning pattern; The second component partitioning pattern of the sub-block is determined or obtained based on the first component partitioning pattern of neighboring blocks and / or non-neighboring blocks.

6. The method of claim 4, wherein, The method for determining or obtaining the dividing line in the third division pattern includes at least one of the following: Use at least one dividing line of the first dividing pattern as the dividing line of the third dividing pattern; Based on the dividing lines obtained by directly or indirectly connecting the dividing lines corresponding to at least two first dividing patterns, the dividing lines corresponding to the third dividing pattern are determined or obtained. Determine the position of at least one first pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on at least two non-overlapping dividing lines extending from the position of at least one first pixel to the edge of the current block. Determine the position of at least one second pixel in the dividing line corresponding to the first dividing pattern within at least one sub-block, and determine or obtain the dividing line corresponding to the third dividing pattern based on the dividing line passing through the position of at least one second pixel in at least two sub-blocks.

7. The method of claim 6, wherein, The dividing line corresponding to the first division pattern is determined or obtained based on at least one of the following: The dividing line corresponding to the dividing pattern determined or obtained based on the candidate dividing pattern list and / or neural network; Based on the offset parameter of at least one sub-block, the dividing line corresponding to the second dividing mode of the current block is offset to determine or obtain the dividing line; Based on the offset parameter of at least one sub-block, the partition line corresponding to the partition pattern determined or obtained based on the candidate partition pattern list and / or neural network is offset to determine or obtain the partition line. Starting from at least one third pixel position in the sub-block, extend at least two non-overlapping dividing lines towards the edge of the sub-block; The dividing line is determined or obtained based on at least one fourth pixel position in the sub-block and at least one first fifth pixel position in the adjacent or non-adjacent sub-blocks.

8. The method of claim 1, wherein, The method further includes the following steps: S20, predict at least one segmented region obtained based on step S10.

9. The method of claim 8, wherein, Step S20 includes at least one of the following: Predict at least one segmented region, determine or generate at least one predicted region, and determine or generate a predicted block based on at least one predicted region and / or the fusion width and / or fusion region of at least one predicted region. Based on the predicted region corresponding to at least one partitioned region, and the number of fusion processes determined or obtained based on the number of sub-blocks corresponding to at least one predicted region, a predicted block is determined or generated.

10. The method of claim 9, wherein, The fusion width and / or fusion region of at least one predicted region are determined or obtained based on at least one of the following: At least one first partitioning pattern; At least one candidate fusion width list; A list of at least one candidate fusion region; At least one neural network; The fusion width and / or fusion region corresponding to the second signaling and / or second text information obtained in the bitstream.

11. A processing apparatus, wherein, include: The memory and the processor, wherein the memory stores an image processing program, and when the image processing program is executed by the processor, it implements the steps of the image processing method as described in claim 1.

12. A storage medium, wherein, The storage medium stores a computer program, which, when executed by a processor, implements the steps of the image processing method as described in claim 1.