Image processing method, processing device and storage medium
By optimizing the candidate table and tree structure of intra-frame prediction tools, the signaling consumption problem caused by the large number of intra-frame prediction tools was solved, thus improving the efficiency of video encoding and decoding.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- SHENZHEN TRANSSION HLDG CO LTD
- Filing Date
- 2026-04-17
- Publication Date
- 2026-07-30
AI Technical Summary
When there are many types of intra-frame prediction tools in the existing technology, multiple judgments and selections are required, which consumes a lot of signaling, resulting in increased cost and reduced efficiency of intra-frame prediction.
By adjusting the candidate table and tree structure according to priority and sorting order, intra-frame prediction processing is performed directly on the current block, avoiding repeated access to unnecessary tools and reducing signaling consumption.
It improves the efficiency of intra-frame prediction, supporting improved efficiency in video encoding and decoding.
Smart Images

Figure CN2026091427_30072026_PF_FP_ABST
Abstract
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, and the most likely list is widely used in encoding and / or decoding techniques.
[0003] In the process of conceiving and implementing this application, the inventors discovered at least the following problems: Intra-frame prediction can be processed using a multi-tool parallel framework, and the optimal intra-frame prediction tool can be selected from multiple candidate intra-frame prediction tools through rate-distortion optimization. However, this approach has drawbacks. For example, determining which type of intra-frame prediction tool to use for an image patch usually depends on multiple discrete flags or independent syntax elements. This leads to multiple judgments and / or excessive signaling consumption in scenarios with a large number of intra-frame prediction tools, resulting in increased cost and / or reduced efficiency of intra-frame prediction.
[0004] The preceding description is intended to provide general background information and does not necessarily constitute prior art. Summary of the Invention
[0005] To address the aforementioned technical problems, this application provides an image processing method, processing device, and storage medium, aiming to solve the technical problem of how to improve the efficiency of intra-frame prediction, thereby supporting the improvement of video encoding and / or decoding efficiency.
[0006] This application provides an image processing method, applicable to a processing device, comprising the following steps:
[0007] S1, perform the first processing on the current block according to the first parameter and / or the second parameter.
[0008] Optionally, the image processing method further includes at least one of the following:
[0009] The first parameter is the candidate table set and / or the candidate tree structure;
[0010] The second parameter is the index set;
[0011] The first step is prediction;
[0012] The first step is to refactor.
[0013] Optionally, the image processing method further includes: the candidate table set includes at least one first candidate table and / or a flattened candidate table;
[0014] Optionally, the image processing method further includes at least one of the following:
[0015] The elements of at least one first candidate table and / or flattened candidate table in the candidate table set include at least one of the following: the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters.
[0016] The first candidate table is at least one of the following: a second candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a third candidate table containing at least two intra prediction tools of the same type; a fourth candidate table containing at least two intra prediction modes of the same type; and at least one of the following preset candidate tables.
[0017] At least one first element in the first candidate table and / or the flattened candidate table is an element after priority and / or sorting order adjustment;
[0018] At least one second element in the first candidate list and / or the flattened candidate list is an element that has not been adjusted in priority and / or order.
[0019] At least one third element in at least one first candidate table and / or flattened candidate table in the candidate table set has a strong correlation with another first candidate table.
[0020] At least one fourth element in at least one first candidate table and / or flattened candidate table in the candidate table set has a non-strongly correlated correspondence with another first candidate table.
[0021] At least one fifth element in at least one first candidate table in the candidate table set has a strong correlation with the flattened candidate table;
[0022] At least one sixth element in at least one first candidate table in the candidate table set has a non-strong correlation with the flattened candidate table;
[0023] The index set includes at least one of the following: a first index representing at least one intermediate element, a second index representing at least one candidate table, a third index representing the tool type of the intra-prediction tool, a fourth index representing the intra-prediction tool, a fifth index representing the intra-prediction mode, and a sixth index representing the parameters of the intra-prediction mode.
[0024] Optionally, the image processing method further includes at least one of the following:
[0025] In the candidate tree structure, at least one first node and / or the seventh element of at least one layer of architecture has a branching structure;
[0026] In the candidate tree structure, at least one second node and / or the eighth element of at least one layer of architecture has a non-branching structure;
[0027] The nodes in the candidate tree structure with at least one layer of architecture and / or at least one branch structure include at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, intra prediction mode parameters, a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters, a sixth candidate table containing at least two intra prediction tools of the same type, a seventh candidate table containing at least two intra prediction modes of the same type, and at least one of the following preset candidate tables;
[0028] In the candidate tree structure, at least one element of at least one layer of architecture and / or at least one branch structure is an element after priority and / or sorting order adjustment;
[0029] The first parameter is the set of most likely candidate tables that includes at least one most likely candidate table;
[0030] The first parameter is a set of non-most likely candidate tables that includes at least one non-most likely candidate table;
[0031] The first parameter is a set of non-most likely candidate tables that includes at least one most likely candidate table and a non-most likely candidate table;
[0032] The first parameter is the most likely candidate tree structure and / or the non-most likely candidate tree structure;
[0033] Intra-frame prediction tools include at least one of the following: planar prediction mode, DC prediction mode, angle prediction mode, matrix-based intra-frame prediction, decoder-side intra-frame mode derivation, template-based mode derivation, extended intra-frame prediction, multi-reference line intra-frame prediction, intra-frame coding based on occurrence frequency / intra-frame coding based on statistical frequency, spatial geometric partitioning mode, and intra-block differential prediction coding.
[0034] At least one element in the most likely candidate list and / or the most likely candidate tree structure points to at least one of the following: primary most likely mode list, secondary most likely mode list, complete MPM list, non-MPM candidate list, matrix candidate prediction mode list, chroma intra-frame candidate list, geometric segmentation intra-frame MPM list, spatial geometric partition merged intra-frame list, cross-component prediction candidate list, chroma candidate list based on luminance gradient, EIP derived candidate list, EIP merged candidate list, general merged candidate list, affine merged candidate list, IBC merged candidate list, bidirectional merged candidate list, and geometric segmentation unidirectional prediction candidate list.
[0035] Optionally, the image processing method further includes at least one of the following:
[0036] The most likely candidate tables include: at least one first candidate table and / or a flattened candidate table that has been prioritized and / or sorted.
[0037] Non-most likely candidate tables include: at least one first candidate table and / or flattened candidate table that have not been adjusted in priority and / or sorting order;
[0038] At least one element in the most likely candidate tree structure has been prioritized and / or its order adjusted;
[0039] At least one element in the non-most likely candidate tree structure has not been adjusted in priority and / or order.
[0040] Optionally, the priority and / or order of the elements in the first parameter may be adjusted according to at least one of the following:
[0041] The intra-frame prediction tool and / or prediction mode used in at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0042] Size parameter of at least one of the following: current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block;
[0043] The prediction direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0044] Template features of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0045] Edge direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0046] Texture direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0047] Optionally, step S1 includes: determining or obtaining a third parameter based on the first parameter and / or the second parameter, and performing a first process on the current block based on the third parameter.
[0048] Optionally, the third parameter includes at least one of the following:
[0049] Intra-frame prediction tool types;
[0050] Intra-frame prediction tools;
[0051] Intra-frame prediction mode;
[0052] Intra-frame prediction mode parameters;
[0053] At least one of the first to seventh candidate lists;
[0054] Pre-defined candidate table;
[0055] First indication information characterizing at least one of the following: tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters;
[0056] Characterizes at least one of the first to seventh candidate tables, and / or a second indication information of a predefined candidate table;
[0057] At least one index in the index set.
[0058] Optionally, the image processing method further includes: processing the first parameter according to the construction factor of the current block.
[0059] Optionally, the image processing method further includes at least one of the following:
[0060] The build factor is determined or obtained based on at least one of the size parameters of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block, the cost of at least one intra-frame prediction tool, and at least one of the syntax elements obtained in the bitstream.
[0061] The number and / or position of at least one element in the candidate table set and / or candidate tree structure are determined or obtained based on at least one construction factor;
[0062] The candidate table set and / or candidate tree structure are truncated, and / or adjusted, and / or updated based on at least one construction factor.
[0063] This application also provides an image processing apparatus, comprising:
[0064] The processing module is used to perform a first processing on the current block based on the first parameter and / or the second parameter.
[0065] 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.
[0066] 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.
[0067] As described above, the image processing method of this application can be applied to a processing device, including: performing a first processing on the current block according to a first parameter and / or a second parameter. Through the technical solution of this application, the phenomenon of needing to perform multiple judgments and selections and consuming a lot of signaling in scenarios with many intra-prediction tools can be avoided. The first processing on the current block is performed directly by using the first parameter and / or the second parameter representing the intra-prediction tool to complete the intra-prediction of the current block. This avoids repeatedly accessing unnecessary intra-prediction tools, reducing the signaling consumed by intra-prediction, saving the cost of intra-prediction, and improving the efficiency of intra-prediction, thereby supporting improved efficiency in video encoding and / or decoding. Attached Figure Description
[0068] 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.
[0069] Figure 1 is a schematic diagram of the hardware structure of a smart terminal that implements various embodiments of this application;
[0070] Figure 2 is a communication network system architecture diagram provided in an embodiment of this application;
[0071] Figure 3 is a schematic diagram of the hardware structure of a controller 140 provided in this application;
[0072] Figure 4 is a schematic diagram of the hardware structure of a network node 150 provided in this application;
[0073] Figure 5 is a flowchart illustrating the image processing method according to the first embodiment;
[0074] Figure 6 is a schematic diagram of the structure of a multi-layer candidate table in the image processing method according to the second embodiment;
[0075] Figure 7 is a schematic diagram of the dual-layer indexing mechanism of outer MPT and inner MPM in the image processing method according to the second embodiment;
[0076] Figure 8 is a schematic diagram of the structure of a candidate set in an image processing method according to the second embodiment;
[0077] Figure 9 is a schematic diagram of a candidate tree structure in the image processing method according to the second embodiment;
[0078] Figure 10 illustrates the intent of constructing candidate representations based on neighbor blocks in the image processing method according to the third embodiment;
[0079] Figure 11 is a schematic diagram of constructing candidate representations by block size in the image processing method according to the third embodiment;
[0080] Figure 12 is a schematic diagram of the candidate table truncation process in the image processing method according to the fourth embodiment;
[0081] Figure 13 is a flowchart of the encoding end in the image processing method according to the fourth embodiment;
[0082] Figure 14 is a flowchart of the decoding end in the image processing method according to the fourth embodiment;
[0083] Figure 15 is a flowchart illustrating the use of a flattened candidate table in the image processing method according to the fourth embodiment;
[0084] Figure 16 is a schematic diagram of the prediction module in the image processing device.
[0085] 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
[0086] 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.
[0087] 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.
[0088] 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.
[0089] 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.
[0090] 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).”
[0091] It should be noted that in this document, codes such as S1, Method 1, and Method 2 are used to more clearly and concisely describe the corresponding content, and do not constitute a substantial restriction on the order. In specific implementation, those skilled in the art may execute Method 1 first and then Method 2, etc., but these should all be within the protection scope of this application.
[0092] It should be understood that the specific embodiments described herein are merely illustrative of this application and are not intended to limit this application.
[0093] 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.
[0094] 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.
[0095] 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.
[0096] 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.
[0097] The following section, with reference to Figure 1, provides a detailed description of each component of the mobile terminal:
[0098] 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.
[0099] 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.
[0100] 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.
[0101] 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.
[0102] 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.
[0103] 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.
[0104] 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.
[0105] 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.
[0106] 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.
[0107] 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.
[0108] 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.
[0109] 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.
[0110] 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.
[0111] 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.
[0112] 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.
[0113] Optionally, UE201 can be the aforementioned terminal 100, which will not be described in detail here.
[0114] 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.
[0115] 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).
[0116] IP services 204 may include the Internet, intranet, IMS (IP Multimedia Subsystem), or other IP services.
[0117] 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.
[0118] 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.
[0119] 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.
[0120] 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.
[0121] 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.
[0122] 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.
[0123] 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.
[0124] Based on the above-described mobile terminal hardware structure and communication network system, various embodiments of this application are proposed.
[0125] Optionally, for ease of understanding, some features that may be involved in the embodiments of this application will be explained below.
[0126] MPM: Most Probable Mode;
[0127] Intra MPM: Most likely intra-frame prediction mode;
[0128] Intra MPM candidate List (often referred to as Intra MPM List): The most likely candidate intra-prediction mode. Elements in this list typically include angle prediction, Planar and DC modes, etc.
[0129] MPT: Most Probable Tool;
[0130] Intra MPT: Most Probable Intra Prediction Tool;
[0131] Intra MPT candidate List (can be denoted as Intra MPT List): The most likely candidate list for intra-frame prediction tools;
[0132] CU: Coding Unit;
[0133] PU: Prediction Unit;
[0134] TU: Transform Unit;
[0135] Angular Prediction, also known as Angular Intra Prediction (hereinafter referred to as Angular), is a mode for predicting angles.
[0136] Planar: Planar Prediction;
[0137] DC: Direct Current Prediction;
[0138] DIMD: Decoder-side Intra Mode Derivation;
[0139] MIP: Matrix-based Intra Prediction;
[0140] TIMD: Template-based Intra Mode Deriving;
[0141] EIP: Extended Intra Prediction;
[0142] MRL: Multi-Reference Line, or Multi-Reference Line Intra-Prediction;
[0143] OBIC: Occurrence-Based Intra Coding;
[0144] SGPM: Spatial Geometric Partition Mode;
[0145] BDPCM: Block-based Differential Pulse Code Modulation; RD: Rate-Distortion.
[0146] RDO: Rate-Distortion Optimization;
[0147] CABAC: Context-Adaptive Binary Arithmetic Coding;
[0148] Slice, a horizontal stripe area of a video frame;
[0149] A tile is a rectangular area within a video frame.
[0150] Alternatively, prediction tools (such as intra-frame prediction tools) and prediction modes (such as intra-frame prediction modes) are two different but closely intertwined concepts. Prediction modes determine which direction to take and what mathematical methods to use to calculate the predicted values, while prediction tools determine what framework, additional data sources, or post-processing to use to enhance / modify the prediction process.
[0151] Optionally, for a prediction mode, its core terms may include direction, interpolation, and basic algorithm, which is the most basic pixel generation rule. Given a row / column of reference pixels, the mode determines how to calculate the predicted value of each pixel within the current block.
[0152] For example, for Planar, it assumes a smooth transition of the image surface and calculates the result through linear interpolation in the horizontal and vertical directions; for DC, it takes the average value of the reference pixels and fills the entire block; for Angular, it can project the reference pixels into the current block along a specific direction. Its characteristic is that it answers "how the pixels are calculated". In the syntax table, it usually corresponds to a specific index number (for example, Mode 0 is Planar, and Mode 10 is a specific angle).
[0153] Optionally, for prediction tools, the core terms may include mechanism, framework, enhancement means and switch. It is a more macro-level coding technique or algorithm module that usually does not directly provide a single pixel calculation formula, but changes the prediction structure, input source or provides additional processing.
[0154] For example, for ISP, splitting a large block (i.e., an image patch) into four smaller blocks and performing prediction and residual coding separately changes the prediction structure; for MRL, it doesn't need to be adjacent to the previous row / column pixels of the current block, allowing the use of pixels from the previous row as a reference, which changes the prediction input source; for CCLM, it uses already encoded luminance samples to predict chrominance samples using a linear method, introducing a new reference source; for PDPC, after calculating the basic Planar / DC / angle predictions, it adds a filter to fine-tune the results based on the pixel position, which is a post-processing enhancement; for MIP, it uses matrix multiplication instead of traditional direction interpolation, which is a completely new underlying algorithm framework and is usually treated as an independent tool at the encoding end. In the bitstream, it is usually represented by a flag bit, such as isp_flag=1.
[0155] Optionally, in actual encoding and decoding, prediction tools and prediction modes are used in combination and are mutually restrictive. Prediction tools and prediction modes can be nested and combined. A prediction tool can be the shell of a prediction mode. After enabling a prediction tool, a specific prediction mode still needs to be selected internally.
[0156] For example, if the encoder decides to enable the ISP tool for the current block, it also needs to find the optimal prediction mode for prediction processing in the sub-blocks divided by the ISP, such as using angle mode 34 for prediction processing.
[0157] Optionally, forecasting tools and forecasting modes can also be mutually exclusive and dependent. For example, mutual exclusion: if the MIP tool is enabled, Planar / DC / angle forecasting cannot be used, nor can the ISP tool be used at the same time; limitation: the PDPC tool can only be enabled in specific modes (for example, Planar, DC and a few angle modes that are usually only effective for smooth areas are enabled, and not for oblique angle modes).
[0158] Optionally, when parsing the bitstream, the decoder first checks the tool switch to determine the prediction tool, and then selects the mode to determine the prediction mode.
[0159] For example, when reading intra_mip_flag, if it is 1, the MIP tool branch is used to read the MIP-specific index; if it is 0, isp_flag is read; and / or, if it is 1, the ISP branch is used.
[0160] Next, read the regular pattern index (MPM or residual pattern): if both are 0 -> proceed with the most basic regular prediction and read the regular pattern index.
[0161] Finally, based on the read pattern and context information, it is decided whether to enable post-processing tools such as PDPC.
[0162] Optionally, intra-frame prediction can employ a multi-tool parallel framework that includes various intra-frame prediction tools. Intra-frame prediction tools may include Planar, DC, and angle prediction, and / or include MIP, DIMD, TIMD, EIP, MRL, OBIC, SGPM, BDPCM, etc. The encoder tests multiple candidate tools one by one for the current coding block CU, selects the optimal tool through rate-distortion optimization, and transmits the tool information to the decoder through syntax elements.
[0163] Optionally, for the Intra MPM mechanism, which is oriented towards the angle prediction mode space, a candidate list containing 22 most likely modes (6 primary MPMs + 16 secondary MPMs) is constructed based on the prediction direction of neighboring blocks. The encoder only needs to transmit the index (0-21) of the mode in the candidate list, rather than the complete angle index (0-66). The decoder reconstructs the list according to the same rules and retrieves the corresponding angle mode. The Intra MPM mechanism only processes the angle prediction direction index (mode layer), not the intra-frame prediction tool itself.
[0164] Optionally, for intra-prediction frameworks with multiple tools, the choice of which intra-prediction tool to use for a coding block typically depends on one or more discrete flags or independent syntax elements.
[0165] For example:
[0166] -`mip_flag`: Indicates whether the current block uses the MIP tool;
[0167] -`dimd_flag`: Indicates whether the DIMD tool is used for the current block;
[0168] -`timd_flag`: Indicates whether the TIMD tool is used for the current block;
[0169] -`eip_flag`: Indicates whether the current block uses the EIP tool;
[0170] -`sgpm_flag`: Indicates whether the current block uses the SGPM tool.
[0171] These flags are encoded and decoded independently. The encoding and decoding logic revolves around these independent syntax elements, forming multiple independent signaling processes in scenarios with a wide variety of tools.
[0172] Therefore, it can be seen that the above solution has at least one of the following drawbacks:
[0173] (1) Tool selection signaling fragmentation: Since each intra-frame prediction tool has a separate flag or syntax element, the intra-frame prediction tool judgment for the same image block is split into multiple independent signaling processes. The syntax structure is redundant and lacks a unified expression framework. The reason is that the large increase in the number of intra-frame prediction tools has not been considered. The introduction of each intra-frame prediction tool is accompanied by independent syntax elements, resulting in the signaling architecture exhibiting fragmented characteristics.
[0174] (2) The signaling overhead is too high. For a coding block, the essential information that needs to be expressed is "which intra-prediction tool was selected in the current block". However, the above scheme often expresses this result through a combination of multiple flags, which causes each CU to consume an extra 2-5 bits. When the number of intra-prediction tools reaches 8-10, the signaling overhead is large. The reason is that the multi-flag mechanism cannot jointly encode the selection of intra-prediction tools. Each flag requires an independent context model and an independent binarization process.
[0175] (3) Spatial correlation is not fully utilized. The intra-prediction tool used by neighboring blocks has a significant statistical correlation with the intra-prediction tool selection of the current block (if a neighboring block uses DIMD, the current block is also highly likely to use DIMD). However, the multi-flag mechanism of the above scheme cannot utilize this spatial correlation to compress tool selection information like Intra MPM. The reason is that the design goal of the existing flag mechanism is a binary determination of the presence or absence of intra-prediction tools, rather than a probabilistic ranking of intra-prediction tool types, resulting in the complete discarding of spatial correlation information.
[0176] (4) Poor scalability. If new intra-frame prediction tools are needed in the future, the above scheme needs to continue to add new flags or conditional branches, which leads to the continuous expansion of the syntax table and is not conducive to standard evolution and codec software maintenance. This is because the existing signaling architecture lacks a unified extension interface, and each new tool requires modification of the syntax table and the branch logic of the decoder.
[0177] (5) The tool layer and the pattern layer are separated. The Intra MPM mechanism only applies to the angle pattern layer and cannot cover the two-layer decision-making process of "selecting the tool first and then selecting the internal pattern of the tool". It lacks a unified multi-tool selection and pattern selection layering mechanism. The reason is that the original design of Intra MPM is only for the compression of angle pattern index and does not consider the index optimization needs of the tool layer in the scenario of multiple tools coexisting.
[0178] Optionally, to circumvent at least one of the aforementioned drawbacks in this application embodiment, an image processing method is proposed to achieve, in an encoding and / or decoding system with multiple intra-frame prediction tools coexisting, the selected intra-frame prediction tool for the current block can be expressed with lower signaling cost, stronger scalability, and higher statistical matching degree. Furthermore, the selection process of multiple intra-frame prediction tools can be unified into a single candidate list indexing mechanism to replace multiple independent tool flags, eliminating signaling fragmentation problems. Drawing inspiration from the Intra MPM mechanism, the "most likely candidate list" can be extended from the mode layer (MPM) to the tool layer (MPT), fully utilizing the tool usage correlation in the spatial neighborhood. This allows the encoder and decoder to utilize information such as the intra-frame prediction tool, block size, and prediction direction of other image blocks (e.g., neighboring blocks) to construct the MPT candidate list using the same rules, ensuring the recovery of the current intra-frame prediction tool without sending the complete tool identifier. This method is compatible with existing tool internal mode indexing mechanisms (such as Intra MPM). MPM enables the tool-level candidate list (MPT) and the tool internal mode selection (MPM) to form a two-layer structure of outer MPT + inner MPM, achieving backward compatibility. By setting a flat candidate table, tool index expression can be implemented with the lowest decoding latency and the simplest signaling structure in scenarios with appropriate tool types.
[0179] Optionally, this embodiment can elevate the "most likely candidate list" concept of the Intra MPM mechanism from the mode layer to the tool layer, construct a unified Intra MPT list (such as the first parameter), and unify the multi-tool selection process into a candidate list index expression. The tool selection result of the current block can be uniformly expressed by a single index. Compared with the method of indicating multiple intra-prediction tools separately through multiple flags, this reduces the signaling overhead of each CU. It allows the encoder and decoder to construct the same MPT candidate list with consistent rules based on the tool usage, block size, prediction direction features, and default statistical priority of intra-prediction tools in other image blocks such as neighboring blocks, ensuring that the current tool is recovered without sending the complete tool identifier.
[0180] Optionally, it can be combined with the Intra MPM mechanism to form a two-layer index structure of outer MPT (tool selection) + inner MPM (mode selection), thereby further reducing the total signaling cost and enhancing scalability in multi-tool scenarios, and / or a non-hierarchical scheme (such as a flattened candidate table) in which all intra-frame prediction tools are directly placed in the same flattened MPT candidate list, without the need to group tools by category, and can determine the tool with only one index lookup, with a simpler signaling structure and lower decoding latency. In scenarios with a moderate number of tools (such as 8-12 tools), the index bit length is only 3-4 bits, resulting in better overall performance.
[0181] First Embodiment
[0182] Referring to Figure 5, 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 S1:
[0183] Step S1: Perform first processing on the current block according to the first parameter and / or the second parameter.
[0184] 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.
[0185] 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.
[0186] Optionally, the current block can be an image block to be processed in the encoding and / or decoding end, and can be a CU, such as an image block to be predicted and / or reconstructed.
[0187] Optionally, the image processing method further includes at least one of the following methods 1 to 3:
[0188] Method 1, the first parameter is the candidate table set and / or candidate tree structure;
[0189] Optionally, the candidate table set may include at least one candidate table, which may be a lookup table and / or a linear table and / or a one-dimensional table and / or an index table, such as a candidate prediction mode table, an MPT table, and a Merge table, etc. It may include relevant parameters for performing a first process on the current block. For example, when the first process is reconstruction and / or prediction, the candidate table may include candidate intra-prediction tools, intra-prediction modes, and / or candidate prediction parameters.
[0190] Optionally, the candidate tree structure may include at least one candidate table, and the candidate tree structure may include a multi-level architecture, with each level of the architecture including at least one candidate table.
[0191] Optionally, the candidate tree structure can be a tree structure, which is a hierarchical nested structure. In a tree structure, a rooted tree TT can be regarded as a nonlinear directed acyclic graph composed of a set of nodes and a set of edges. The unique node at the top level is called the root node, denoted as N0. Any direct successor node (i.e., child node) of N0 can be denoted as N1. Based on the recursive definition of a tree, starting from N1, together with all its successor nodes and connecting edges, a subtree of the original tree T is formed, and N1 is the unique root node of this subtree. From a topological perspective, the connections in the tree have a clear unidirectional dependency: each parent node radiates outward through directed edges, pointing to one or more child nodes (i.e., out-degree ≥ 1), but any child node has one and only one in-degree (i.e., can only be pointed to by one unique parent node).
[0192] Alternatively, a tree structure can be represented recursively. Various tree diagrams in classic data structures are typical tree structures: for example, a binary tree can be simply represented as a root, left subtree, right subtree, and the left and right subtrees each have their own subtrees. Candidate tree structures can be binary trees, ternary trees, etc.
[0193] Optionally, the candidate tree structure is not a simple data structure, but a hierarchical candidate organization structure for intra-frame prediction of image patches, and / or, the nodes of each layer of the candidate tree structure are used to represent prediction objects at different levels, and / or, the prediction objects may include at least one of the following: the tool type of the intra-frame prediction tool, the intra-frame prediction tool, the intra-frame prediction mode, the intra-frame prediction mode parameters, and the candidate table related to intra-frame prediction.
[0194] Optionally, the parent-child relationship between upper-level nodes and lower-level nodes in the candidate tree structure is used to characterize the constraint relationship, subordinate relationship and / or derivation relationship between candidate objects, so that the output result of the current layer node can limit the candidate range of the next layer.
[0195] Optionally, the input to the candidate tree structure can be at least one of the following: an index obtained from the bitstream, context information determined based on neighboring blocks and / or temporal blocks, and a preset construction rule. The output to the candidate tree structure can be a target intra-prediction tool, a target intra-prediction mode, and / or target intra-prediction mode parameters for intra-prediction of the current block.
[0196] Optionally, the encoding and decoding ends establish or determine candidate tree structures for the same image block according to the same construction rules, sorting rules, and search rules, and perform tree traversal based on the same input to ensure that both sides obtain consistent output results.
[0197] Optionally, the encoder may construct a candidate tree structure based on at least one constructing factor of the current image block. The constructing factor may include at least one of the following: intra-prediction tools used by neighboring blocks, tool usage information of co-occurring blocks and / or temporal blocks, image block size parameters, motion vector distribution features, and bitstream syntax constraints.
[0198] For example, the first-level nodes of the candidate tree structure can be used to characterize the major categories of intra-prediction tools, the second-level nodes can be used to characterize the specific intra-prediction tools belonging to the corresponding major categories, and the third-level nodes can be used to characterize the mode and / or parameters corresponding to the specific intra-prediction tool.
[0199] Optionally, the encoder performs a search and / or rate-distortion optimization on the reachable path of the candidate tree structure to determine the intra-prediction tool, mode, and parameters corresponding to the target leaf node, and encodes at least one index that represents the tree traversal path.
[0200] Optionally, the decoder can recover the same candidate tree structure based on the same construction rules as the encoder, and traverse from the root node to the target leaf node layer by layer according to the at least one index obtained from the bitstream parsing, in order to determine the intra-frame prediction tool, mode and parameters consistent with the encoder, and then perform intra-frame prediction on the current image block;
[0201] Optionally, when the candidate tree structure is dynamically rearranged, truncated, and / or updated, the relevant building factors and / or indication information are explicitly transmitted by the bitstream or derived by rules that can be jointly determined by both the encoder and decoder to ensure encoding and decoding consistency.
[0202] Optionally, the candidate tree structure can be used in the intra-frame prediction stage. At least one candidate tree structure can be generated in the intra-frame prediction stage, and the current block can be processed based on the at least one candidate tree structure, such as intra-frame prediction.
[0203] Optionally, when the first parameter is a candidate table set, the current block can be processed according to the candidate table set. For example, at least one intra-prediction mode and / or candidate prediction parameters (i.e., intra-prediction mode parameters, such as weights) can be selected from at least one candidate table in the candidate table set to predict and / or reconstruct the current block.
[0204] Optionally, at least one index can be input into at least one candidate table in the candidate table set for searching to obtain a first search result. Then, another index can be determined or obtained based on the first search result, and the other index can be input into another candidate table in the candidate table set for searching. Multiple searches can be performed in the candidate table set until an element that can be directly used to perform the first processing on the current block (such as an intra-frame prediction tool and / or an intra-frame prediction mode) is found, and the current block is processed based on the found element.
[0205] Optionally, the relationship between candidate tables in the candidate table set can be represented in a form similar to a candidate tree structure. For example, at least one element in at least one candidate table in the candidate table set points to another candidate table, forming a candidate tree structure.
[0206] Optionally, when the first parameter is a candidate tree structure, the current block can be processed based on the candidate tree structure. For example, at least one index can be input into the tree structure and searched in the first layer of the tree structure to obtain at least one search result. Another index is determined based on the at least one search result and input into the second layer of the tree structure for searching until the bottom layer of the tree structure is reached. If the search is performed in the last layer of the branch structure corresponding to the search link, the final output result of the tree structure is obtained, such as intra-frame prediction mode. The current block is then processed based on the final output result, such as intra-frame prediction.
[0207] Optionally, at least one node and / or element in the candidate tree structure can be at least one candidate table in the candidate table set, and / or, each node and / or element in the candidate tree structure can find a corresponding element in the candidate table set (such as a candidate table or an element in the candidate table, such as an intra-prediction mode).
[0208] Optionally, when the first parameter is a candidate tree structure and a candidate table set, the current block can be processed based on the candidate tree structure and the candidate table set, such as intra-frame prediction.
[0209] Optionally, at least one index can be determined, and the at least one index can be input into the candidate table for searching. The input parameters of the candidate tree structure can be determined based on the search results output by the candidate table (e.g., the search results output by the candidate table can be directly used as input parameters, or the search results can be transformed, such as determining the index corresponding to the search result and using it as input parameters). The input parameters can be input into the candidate tree structure, and the current block can be processed based on the output results of the candidate tree structure, such as performing intra-frame prediction on the current block directly based on the output results of the candidate tree structure.
[0210] Optionally, a scan or retrieval is performed in the candidate tree structure to obtain a first scan or retrieval result. The index corresponding to the first scan or retrieval result is determined and input into at least one candidate table in the candidate table set for searching or retrieval to obtain the corresponding search result. Then, the current block is processed based on the search result, such as intra-frame prediction.
[0211] In this approach, by using the candidate table set and / or candidate tree structure to perform the first processing on the current block when the first parameter is a candidate table set and / or candidate tree structure, it is possible to use the advantages of the candidate table and / or candidate tree structure in the candidate table set to perform intra-frame prediction on the current block without encoding more intra-frame prediction tools in the bitstream, thus improving the efficiency of intra-frame prediction.
[0212] Method 2, the second parameter is the index set;
[0213] Optionally, the index set may include at least one index that can indicate an element in at least one candidate table in the candidate tree structure and / or candidate table set, such as an intra-prediction tool, a candidate table with at least one intra-prediction tool (which may be simply referred to as an intra-prediction tool candidate list), an intra-prediction mode, a candidate table with at least one intra-prediction mode (which may be simply referred to as an intra-prediction mode candidate list), an intra-prediction mode parameter, a candidate table with at least one intra-prediction mode parameter, etc.
[0214] Optionally, the current block can be processed based on the index set and / or the candidate table set. For example, the current block can be searched in at least one candidate table in the candidate table set based on at least one index in the index set to obtain the corresponding search result, and the current block can be processed based on the search result, such as intra-frame prediction.
[0215] Optionally, the current block can be processed based on the index set and / or the candidate tree structure. The search can be performed in the candidate tree structure based on at least one index in the index set, such as in at least one lookup table and / or at least one layer of the architecture in the candidate tree structure, to obtain the corresponding search result, and the current block can be processed based on the search result, such as intra-frame prediction.
[0216] In this approach, when the second parameter is an index set, the current block can be directly processed based on the index set, and intra-frame prediction of the current block can be directly performed using the indexes in the index set, ensuring the effective execution of the intra-frame prediction process.
[0217] Method 3, where the first processing is prediction and / or the first processing is reconstruction.
[0218] Optionally, the current block can be predicted and / or reconstructed according to method 1 or method 2, such as predicting and / or reconstructing the current block based on at least one of the candidate table set, candidate tree structure and index set.
[0219] In this approach, by predicting and / or reconstructing the current block based on the first parameter and / or the second parameter, the effective intra-frame prediction of the current block can be guaranteed.
[0220] Optionally, the processing device can be an encoding end, which can perform intra-frame prediction on the current block based on the first parameter and / or the second parameter.
[0221] Optionally, the processing device can be a decoding end, which can perform intra-frame prediction on the current block based on the first parameter and / or the second parameter.
[0222] In this embodiment, by performing the first processing on the current block using the first parameter and / or the second parameter, the phenomenon of needing to make multiple judgments and selections and consuming a lot of signaling can be avoided in scenarios with many intra-frame prediction tools. Furthermore, by performing prediction and / or reconstruction on the current block when the first parameter is a candidate table set and / or a candidate tree structure and the second parameter is an index set, unnecessary intra-frame prediction tools can be avoided by repeatedly accessing them, reducing the signaling consumed by intra-frame prediction, saving the cost of intra-frame prediction, and improving the efficiency of intra-frame prediction, thereby supporting the improvement of the efficiency of video encoding and / or decoding.
[0223] Second Embodiment
[0224] Based on the first embodiment, a second embodiment of this application is proposed.
[0225] In the second embodiment, the candidate table set includes at least one first candidate table and / or a flattened candidate table.
[0226] Optionally, the first candidate table can be a non-flat candidate table, such as a regular default table, which includes candidate tables for intra-prediction tools, intra-prediction modes, intra-prediction mode parameters, etc.
[0227] Optionally, a flattened candidate table can be a candidate table in which the elements within the table are arranged in a flattened manner in the same column or the same row. For example, at least one intra-frame prediction tool and / or intra-frame prediction mode can be arranged in a flattened manner in the same candidate table to obtain a flattened candidate table.
[0228] Optionally, the table structure of the flattened candidate table can be a flattened structure, which is a one-dimensional linear structure, in which all elements (such as intra-prediction tools and / or intra-prediction modes, etc.) are treated as equal elements and laid out in a single table.
[0229] Optionally, the elements in the flattened candidate table can be arranged in a row or a column. One representation of the flattened candidate table is shown in Table 1 below:
[0230] Table 1
[0231] Optionally, at least one element in the candidate set and / or candidate tree structure is an intra-frame prediction tool.
[0232] Optionally, the intra-frame prediction tool includes at least one of Planar Prediction Mode, DC Prediction Mode, Angular Prediction Mode, Matrix-based Intra-frame Prediction (MIP), Decoder-side Intra-frame Mode Derivation (DIMD), Template-based Mode Derivation (TIMD), Extended Intra-frame Prediction (EIP), Multi-reference Line Intra-frame Prediction (MRL), Intra-frame Coding Based on Occurrence Count / Intra-frame Coding Based on Statistical Frequency (OBIC), Spatial Geometric Partitioning Mode (SGPM), and Intra-block Differential Prediction Coding (BDPCM), and / or includes other tools for performing intra-frame prediction, without limitation herein.
[0233] Optionally, the candidate tables in the candidate table set and / or candidate tree structure can be represented in the form of multi-level candidate tables.
[0234] Optionally, the example will be given, which only includes the tool type of the intra-prediction tool and the candidate table of the intra-prediction tool.
[0235] For example, as shown in Figure 6, the candidate set can contain various intra-frame prediction tools of different tool types, such as:
[0236] For class A (traditional prediction class), the intra-frame prediction tools that can be included are: Planar, DC, and Angular Prediction (hereinafter referred to as Angular). The class index is 00 (2 bits), and the intra-class index is: 0 → Planar, 1 → DC, 2 → Angular.
[0237] For Class B (derivative tools), the intra-frame prediction tools that can be included are: DIMD and TIMD, with a class index of 01 (2 bits) and intra-class indexes of 0 → DIMD and 1 → TIMD.
[0238] For Class C (matrix / model tools), the intra-frame prediction tools that can be included are: MIP and EIP, with a class index of 10 (2 bits) and intra-class indices: 0 → MIP, 1 → EIP;
[0239] For Class D (geometric / extended class tools), the intra-prediction tools that can be included are: SGPM, OBIC, MRL, and BDPCM. The class index is 11 (2 bits), and the intra-class indexes are: 0 → SGPM, 1 → OBIC, 2 → MRL, and 3 → BDPCM.
[0240] Optionally, the encoder can construct a priority order for each tool type in the current block based on the tool usage of the intra-prediction tools in neighboring blocks. For example, if the left neighbor uses DIMD (belonging to class B) and the upper neighbor uses MIP (belonging to class C), then the priority of class B and class C is increased.
[0241] Optionally, the encoder first performs coarse-grained rate distortion evaluation on each major category (tool type) or selects the optimal major category based on heuristic rules, writes the major category index into the bitstream (e.g., 2 bits can represent 4 major categories), and after determining the major category, selects the specific intra-prediction tool from the tool sub-list within that major category, and writes the intra-prediction tool index within the category into the bitstream. For example, if class B is selected, the intra-candidates are [DIMD, TIMD], which only requires 1 bit to represent.
[0242] Alternatively, the decoding end can perform the same operations as the encoding end.
[0243] Optionally, as the number of intra-frame prediction tools continues to expand, the hierarchical structure of the candidate table set can avoid the increase in the number of index bits caused by an excessively long single-level candidate table, thereby reducing the average index length; at the same time, it enhances the expansion capability of subsequent tools, and newly added intra-frame prediction tools only need to be attached to the corresponding major category.
[0244] Optionally, the candidate table set and / or the individual candidate tables in the candidate tree structure can be represented in the form of multi-level candidate tables.
[0245] Optionally, the example will be given, which only includes the tool type of the intra-prediction tool and the candidate table of the intra-prediction tool.
[0246] For example, as shown in Figure 7, if the candidate tables in the candidate table set and / or candidate tree structure are MPT and MPM tables, then in this embodiment, a two-layer indexing mechanism of outer MPT + inner MPM can be implemented.
[0247] Optionally, multiple elements can be set in the outer MPT (most likely tool) candidate list, such as MPT[0] Angular Prediction; MPT[1] DIMD; MPT[2] MIP; MPT[3] TIMD; MPT[4] EIP; MPT[5] MRL; MPT[6] SGPM; MPT[7] OBIC, and more tools can be added.
[0248] Optionally, in the inner tool's internal mode selection candidate table, for MPT[0] Angular Prediction, an Intra MPT candidate table (22 angle modes) can be set; for MPT[1] DIMD, no additional mode index is required; for MPT[2] MIP, a MIP matrix index can be set; for MPT[3] TIMD, no additional mode index is required; for MPT[4] EIP, an EIP mode index can be set; for MPT[5] MRL, a reference line index can be set; for MPT[6] SGPM, a geometric partition sub-mode can be set; for MPT[7] OBIC, candidate fusion parameters can be set, and / or more modes can be extended.
[0249] Optionally, the inner intra-prediction mode selection mechanism can be determined based on the tool type of the selected intra-prediction tool. For example, if Angular Prediction is selected, the inner intra-prediction mode selection mechanism can be to use the existing Intra MPT candidate table and encode the corresponding index; if MIP is selected, it can be the inner-encoded MIP matrix index; if MRL is selected, it can be the inner-encoded reference line index (such as line 1, line 2, line 3); if SGPM is selected, it can be the inner-encoded geometric partition sub-mode index; if DIMD / TIMD is selected, it can be an inner-layer mode index that does not require additional mode indexes (the tool itself can derive the mode).
[0250] Optionally, this embodiment can be compatible with the internal parameter mechanisms of various existing intra-frame prediction tools. There is no need to overturn the internal design of existing tools. Only an MPT candidate list needs to be added to the outer layer to achieve unified signaling, maximize the reuse of existing encoding and decoding logic, and the outer MPT (select tool) and the inner MPM (select mode) each perform their own functions with clear and unambiguous naming.
[0251] Optionally, the image processing method further includes at least one of methods one through nine:
[0252] Method 1: The elements of at least one first candidate table and / or flattened candidate table in the candidate table set include at least one of the following: the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters.
[0253] Optionally, the intra-frame prediction tool can be a tool for performing intra-frame prediction, such as Planar, DC, and angle prediction modes.
[0254] Optionally, the tool type of the intra-prediction tool can be a classification type of the intra-prediction tool. For example, the tool types of Planar, DC and angle prediction modes can be classified as traditional prediction tools, the tool types of DIMD and TIMD can be classified as derivation tools, the tool types of MIP and EIP can be classified as matrix and / or model tools, and the tool types of SGPM, OBIC, MRL and BDPCM can be classified as geometric and / or extended tools.
[0255] Optionally, the intra-prediction mode can be a mode used for intra-prediction during the intra-prediction stage, such as the angle prediction mode (or angle mode).
[0256] Optionally, the intra-prediction tool itself can be an intra-prediction mode. For example, Planar can be an intra-prediction mode, DC can be an intra-prediction mode, and the intra-prediction tool can include multiple intra-prediction modes. For example, the angle prediction mode can include multiple prediction modes with different angles and use them as intra-prediction modes.
[0257] Optionally, the intra-prediction mode parameters can be parameters used during intra-prediction, such as weights, quantization parameters, etc.
[0258] Optionally, the first candidate table and / or the flattened candidate table can be a candidate table or lookup table containing parameters of the same type, such as a candidate table containing only the tool type of the intra-prediction tool, a candidate table containing only the intra-prediction tool, a candidate table containing only the intra-prediction mode, or a candidate table containing only the parameters of the intra-prediction mode.
[0259] Optionally, the first candidate table and / or the flattened candidate table can be a candidate table or lookup table containing multiple types of parameters, such as a candidate table containing the tool type of the intra-prediction tool and the intra-prediction tool, a candidate table containing the intra-prediction tool and the intra-prediction mode, a candidate table containing the intra-prediction mode and the intra-prediction mode parameters, etc.
[0260] Optionally, the current block can be predicted and / or reconstructed based on at least one first candidate table and / or at least one element of a flattened candidate table in the candidate table set.
[0261] In this approach, by performing the first processing on the current block based on the candidate table set when at least one first candidate table and / or flattened candidate table element is at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameter, the element used for intra prediction of the current block can be quickly selected from the candidate table set, thereby improving the efficiency of intra prediction.
[0262] Method 2, the first candidate table is at least one of the following: a second candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a third candidate table containing at least two intra prediction tools of the same type; a fourth candidate table containing at least two intra prediction modes of the same type; and at least one of the following preset candidate tables.
[0263] Optionally, the preset candidate table can be a pre-set candidate table or a directly generated candidate table. The elements in the preset candidate table can be pre-set fixed elements, such as Planar and DC.
[0264] Optionally, the priority and / or order of elements in the preset candidate table can be fixed or set in advance.
[0265] Optionally, at least two intra-prediction tools of the same type can be classified into at least two intra-prediction tools belonging to the same type after classification. For example, they can be classified according to function or according to other rules (such as cost size).
[0266] Optionally, at least two intra-prediction modes of the same type can be classified into at least two intra-prediction modes of the same type after classification. For example, they can be classified according to function or according to other rules (such as cost size).
[0267] Optionally, the candidate tables in the candidate table set can form a multi-level candidate table, and / or may include at least one first candidate table, such as a second candidate table, a third candidate table, a fourth candidate table, and at least one of the preset candidate tables.
[0268] Optionally, multiple second candidate tables can be set (e.g., a second candidate table containing only intra-prediction tools, or a second candidate table containing only intra-prediction modes), multiple third candidate tables can be set (e.g., a third candidate table containing at least two intra-prediction tools belonging to the derivation class (e.g., DIMD and TIMD), or a third candidate table containing at least two intra-prediction tools belonging to the matrix / model class (e.g., MIP and EIP), or multiple fourth candidate tables can be set (e.g., a fourth candidate table containing at least two different angle prediction modes, or a fourth candidate table containing at least two basic prediction modes (e.g., Planar and DC)).
[0269] In this method, when the first candidate table in the candidate table set is at least one of the second, third, fourth and preset candidate tables, the current block is then processed according to the candidate table set. This allows for the rapid selection of elements in the candidate table set for intra-frame prediction of the current block, thus improving the efficiency of intra-frame prediction.
[0270] Method 3: At least one first element in the first candidate table and / or the flattened candidate table is an element after priority and / or sorting order adjustment;
[0271] Optionally, the first element may be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters.
[0272] Optionally, at least one first element in at least one of the second candidate table, the third candidate table, the fourth candidate table, and the preset candidate table is an element after priority and / or sorting order adjustment. For example, the intra-prediction tools in the third candidate table can be prioritized and / or sorted order adjusted.
[0273] Optionally, the priority and / or order of at least one of the following parameters in the flattened candidate table—the tool type, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode—can be adjusted.
[0274] Optionally, when adjusting the priority and / or order of at least one element in the first candidate table and / or the flattened candidate table, the priority and / or order can be adjusted according to the cost, such as the lower the cost, the higher the priority and the earlier the order, and / or according to other rules, such as the intra-prediction tool used by neighboring blocks having the highest priority and being placed at the front of the order.
[0275] In this approach, by adjusting the priority and / or sorting order of elements in the first candidate table and / or the flattened candidate table, the elements used for intra-prediction of the current block can be quickly selected when using the first candidate table and / or the flattened candidate table to perform intra-prediction of the current block, thereby improving the efficiency of intra-prediction.
[0276] Method 4: At least one second element in the first candidate table and / or the flattened candidate table is an element that has not been adjusted in priority and / or sorting order;
[0277] Optionally, the second element may be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters.
[0278] Optionally, the second element may be different from the first element. For example, if both the first and second elements belong to an intra-frame prediction tool, the first element may be an angle prediction mode after priority and / or order adjustment, and the second element may be a DIMD without priority and / or order adjustment.
[0279] Optionally, at least one second element in at least one of the second candidate table, the third candidate table, the fourth candidate table, and the preset candidate table is an element that has not been adjusted in priority and / or sorting order.
[0280] In this approach, by directly using the first candidate table and / or flattened candidate table without prioritization and / or order adjustment to perform intra-frame prediction for the current block, the cost of generating the candidate table set can be reduced while ensuring the effective execution of intra-frame prediction.
[0281] Method 5: At least one third element in at least one first candidate table and / or flattened candidate table in the candidate table set has a strong correlation with another first candidate table;
[0282] Optionally, the third element can be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters. The third element can be either the first element or the second element.
[0283] Optionally, strong correlation can refer to the relationship between two parameters, and the degree of correlation between the two is very high. One parameter can be directly linked to the other parameter. For example, if one parameter is the table name and the other parameter is a candidate table with that table name, then the two parameters can be considered to be strongly correlated and have a strong correspondence. For example, there is a strong correlation between the tool type of an intra-frame prediction tool and the candidate table of an intra-frame prediction tool with that tool type.
[0284] Optionally, if an element in at least one candidate table in the candidate table set points to another candidate table, it can be considered that there is a strong correlation between the element and the other candidate table it points to.
[0285] For example, if intra-prediction tools are classified, and the tool types of DIMD and TIMD are set as derivation tools, and at least one candidate table in the candidate table set is a candidate table containing the tool type of intra-prediction tools (hereinafter referred to as candidate table 1), and another candidate table in the candidate table set (hereinafter referred to as candidate table 2) contains the intra-prediction tools DIMD and TIMD, then it can be determined that there is a strong correlation between the derivation tools in candidate table 1 and candidate table 2.
[0286] Optionally, candidate table 1 can be a first candidate table, a second candidate table containing tool types of intra-frame prediction tools, or a flattened candidate table.
[0287] Optionally, at least one fifth element in at least one of the second, third, and fourth candidate tables in the candidate table set and at least one of the preset candidate tables has a strong correlation with another first candidate table.
[0288] Optionally, when predicting and / or reconstructing the current block based on the candidate table set, the candidate table to be searched in the candidate table set can be determined based on at least one index obtained from the bitstream and / or at least one index determined in the index set. If the candidate table to be searched is determined to be a first candidate table and / or a flattened candidate table containing tool types of intra-prediction tools, the tool type corresponding to at least one index obtained from the bitstream can be searched in the first candidate table and / or the flattened candidate table containing tool types of intra-prediction tools. If the found tool type is a derivation tool, the corresponding intra-prediction tool, such as DIMD and / or TIMD, can be obtained in the first candidate table containing all intra-prediction tools belonging to the derivation tool set according to the strong correlation correspondence set in the candidate table set. The current block is then predicted and / or reconstructed based on the found intra-prediction tool.
[0289] For example, as shown in Figure 8, if the candidate table set includes two first candidate tables, and / or the elements in one first candidate table are D1, D2 and D3, for example, the first candidate table is a second candidate table containing tool types of intra-prediction tools, and D1 is a traditional prediction class, D2 is an inference class tool, and D3 is a matrix and / or model class tool, and the elements in another first candidate table are E1 and E2, for example, the other first candidate table is a second candidate table containing intra-prediction tools, and E1 is DIMD and E2 is TIMD.
[0290] Optionally, based on Figure 8, it can be determined that element D2 in the first second candidate table points to the second second candidate table. That is, if the search result D2 is obtained by searching in the first second candidate table, then the search can be performed directly in the second candidate table to predict and / or reconstruct the current block based on the search result. In this case, D2 can be considered as the third element, and / or there is a strong correlation between D2 in one first candidate table and another first candidate table (i.e., the candidate table containing elements E1 and E2).
[0291] Optionally, based on Figure 8, it can be known that elements D1 and D3 in the first candidate table do not point to any other candidate table. Therefore, it can be determined that D1 and D3 do not have a strong correlation with at least one candidate table in the candidate table set.
[0292] In this approach, by setting at least one first candidate table and / or at least one third element in a flattened candidate table that has a strong correlation with another first candidate table in the candidate table set, multiple candidate tables that need to be accessed can be accurately determined in a single search when performing intra-frame prediction on the current block. This reduces the judgment process of judging candidate tables and improves the efficiency of intra-frame prediction.
[0293] Method 6: At least one fourth element in at least one first candidate table and / or flattened candidate table in the candidate table set has a non-strongly correlated correspondence with another first candidate table;
[0294] Optionally, the fourth element can be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters. The fourth element can be the first element or the second element, and the fourth element is different from the third element.
[0295] Alternatively, non-strong correlation can mean that two parameters are not related and belong to two completely different parameters. For example, one parameter is the tool type of the intra-prediction tool, and the other parameter is a candidate table with intra-prediction mode parameters. In this case, the two parameters can be considered to be non-strongly correlated and do not have a strong correlation.
[0296] Optionally, a non-strongly correlated correspondence can be one where there is no strong correlation between the fourth element and another first candidate in the candidate set.
[0297] Optionally, in at least one first candidate table and / or flattened candidate table, there may be some elements that do not have a strong correlation with any other candidate table. These elements can be used as the fourth element, for example, the fourth element is Planar.
[0298] Optionally, when predicting and / or reconstructing the current block based on the candidate table set, at least one index obtained from the bitstream and / or at least one index determined in the index set can be used to determine the candidate table to be searched in the candidate table set, and the index can be input into the corresponding candidate table for search. If the search result is the fourth element, such as Planar, or the 90° angle prediction mode, the current block can be predicted and / or reconstructed directly based on the fourth element, such as predicting and / or reconstructing the current block based on the 90° angle prediction mode.
[0299] In this approach, by setting at least one first candidate table and / or at least one fourth element in a flattened candidate table in the candidate table set, which has a non-strong correlation with another first candidate table, the effective intra-frame prediction of the current block based on the candidate table set can be guaranteed.
[0300] Method 7: At least one fifth element in at least one first candidate table in the candidate table set has a strong correlation with the flattened candidate table;
[0301] Optionally, the fifth element can be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters. The fifth element can be either the first element or the second element.
[0302] Optionally, at least one fifth element in at least one second, third, and fourth candidate table in the candidate table set and at least one candidate table in the preset candidate table have a strong correlation with the flattened candidate table.
[0303] Optionally, when predicting and / or reconstructing the current block based on the candidate table set, the candidate table to be searched in the candidate table set can be determined based on at least one index obtained from the bitstream and / or at least one index determined in the index set. If the candidate table to be searched is determined to be the first candidate table containing the tool type of the intra-prediction tool, the tool type corresponding to the at least one index obtained from the bitstream can be searched in the first candidate table containing the tool type of the intra-prediction tool. If the found tool type is a derivation tool, the search can be performed in the flattened candidate table containing all intra-prediction tools belonging to the derivation tool, based on the strong correlation correspondence set in the candidate table set in advance, to obtain the corresponding intra-prediction tool, such as DIMD and / or TIMD, and the current block can be predicted and / or reconstructed based on the found intra-prediction tool.
[0304] In this approach, by setting at least one fifth element in at least one first candidate table in the candidate table set, which has a strong correlation with the flattened candidate table, it is possible to accurately determine multiple candidate tables that need to be accessed in a single search when performing intra-frame prediction on the current block. This reduces the judgment process of judging candidate tables and improves the efficiency of intra-frame prediction.
[0305] Method 8: At least one sixth element in at least one first candidate table in the candidate table set has a non-strong correlation with the flattened candidate table.
[0306] Optionally, the sixth element can be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters. The sixth element can be either the first element or the second element.
[0307] Optionally, the third, fourth, fifth, and sixth elements can be different elements.
[0308] Optionally, when predicting and / or reconstructing the current block based on the candidate table set, at least one index obtained from the bitstream and / or at least one index determined in the index set can be used to determine the candidate table to be searched in the candidate table set. If the candidate table to be searched is the first candidate table, the index is input into the first candidate table for search. The search result is the sixth element, such as Planar or 90° angle prediction mode. Then, the current block can be directly predicted and / or reconstructed based on the sixth element, such as predicting and / or reconstructing the current block based on the 90° angle prediction mode.
[0309] Optionally, the corresponding intra-prediction tool and / or intra-prediction mode can be directly found in the flattened candidate table, and the current block can be directly predicted and / or reconstructed based on the found intra-prediction tool and / or intra-prediction mode.
[0310] In this approach, by setting at least one first candidate table and / or at least one fourth element in a flattened candidate table in the candidate table set, which has a non-strong correlation with another first candidate table, the effective intra-frame prediction of the current block based on the candidate table set can be guaranteed.
[0311] Method 9, the index set includes at least one of the following: a first index representing at least one intermediate element, a second index representing at least one candidate table, a third index representing the tool type of the intra-prediction tool, a fourth index representing the intra-prediction tool, a fifth index representing the intra-prediction mode, and a sixth index representing the parameters of the intra-prediction mode.
[0312] Optionally, the intermediate element may be data generated during image processing of the current block based on the first parameter and / or the second parameter. For example, in the intra-frame prediction stage, the intermediate element may be data generated during prediction and / or reconstruction processing of the current block.
[0313] Optionally, the intermediate element can be at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode and intra prediction mode parameters; or at least one of the following: second candidate table, third candidate table, fourth candidate table, preset candidate table and flattened candidate table; and / or at least one index in the index set.
[0314] For example, if the first parameter is a set of candidate tables, and three candidate tables are needed to predict and / or reconstruct the current block, the three candidate tables can be candidate table a containing at least one intra-frame prediction tool, candidate table b containing at least one intra-frame prediction tool, and candidate table c containing at least one intra-frame prediction mode. If the corresponding tool type in candidate table a is a traditional prediction class based on at least one index in the index set, then a search can be performed in candidate table b. If an angle prediction mode is found, then a search can continue in candidate table c. If the final search result is a 90° angle prediction mode, then the current block can be predicted and / or reconstructed based on the 90° angle prediction mode. The outputs of candidate table a and candidate table b (such as traditional prediction class and angle prediction mode) can be used as intermediate elements, and the inputs of candidate table b and candidate table c (such as the index corresponding to the angle prediction mode and the index corresponding to the 90° angle prediction mode) can also be used as intermediate elements.
[0315] Optionally, the candidate table corresponding to the second index representing at least one candidate table can be the first candidate table and / or the flattened candidate table, or it can be at least one of the second candidate table, the third candidate table, the fourth candidate table, and a preset candidate table.
[0316] Optionally, an index set can be determined based on at least one index obtained from the bitstream, and at least one of the first to sixth indices can be determined or obtained based on at least one index obtained from the bitstream.
[0317] Optionally, the first index can be used to search in at least one candidate table and / or candidate tree structure in the candidate table set, and the current block can be predicted and / or reconstructed based on the corresponding search results.
[0318] Optionally, the second index can be used to search in at least one candidate table and / or candidate tree structure in the candidate table set, and the current block can be predicted and / or reconstructed based on the corresponding search results.
[0319] Optionally, the tool type of the intra-prediction tool can be obtained by searching in at least one candidate table and / or candidate tree structure in the candidate table set according to the third index, and the corresponding intra-prediction tool (such as intra-prediction tool 1) can be determined according to the found tool type, and the current block can be predicted and / or reconstructed according to intra-prediction tool 1.
[0320] Optionally, an intra-prediction tool (such as Planar) can be obtained by searching in at least one candidate table and / or candidate tree structure in the candidate table set based on the fourth index, and the current block can be predicted and / or reconstructed based on the found intra-prediction tool.
[0321] Optionally, the intra-prediction mode (e.g., DC) can be obtained by searching in at least one candidate table and / or candidate tree structure in the candidate table set according to the fifth index, and the current block can be predicted and / or reconstructed according to the found intra-prediction mode.
[0322] Optionally, the intra-frame prediction mode parameters (such as quantization parameters) can be obtained by searching in at least one candidate table and / or candidate tree structure in the candidate table set according to the sixth index, and the current block can be predicted and / or reconstructed according to the intra-frame prediction mode parameters.
[0323] Optionally, when predicting and / or reconstructing the current block, at least one index from the index set can be used multiple times to search in the candidate table set and / or candidate tree structure.
[0324] In this method, by setting at least one of the first to sixth indices of the index set, suitable elements can be found based on different indices, and intra-frame prediction can be effectively performed on the current block based on the found elements.
[0325] Optionally, the image processing method further includes at least one of the following methods ten to seventeen:
[0326] Method 10: At least one first node and / or the seventh element of at least one layer of the candidate tree structure has a branching structure;
[0327] Optionally, the candidate tree structure may include a multi-layer architecture, and at least one node in each layer may include at least one element, such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, the intra-prediction mode parameters, the candidate table in the candidate table set, or other candidate tables (such as a preset candidate table).
[0328] Optionally, the first node is a node with a branch structure within at least one layer of the candidate table architecture. At least one candidate table can be set at the first node, such as a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a sixth candidate table containing at least two intra prediction tools of the same type; a seventh candidate table containing at least two intra prediction modes of the same type; and at least one of the preset candidate tables; and / or directly setting elements, such as tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters.
[0329] Optionally, the seventh element is an element in at least one candidate table in the candidate tree structure. For example, it may be a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a sixth candidate table containing at least two intra prediction tools of the same type; a seventh candidate table containing at least two intra prediction modes of the same type; or an element in at least one of the preset candidate tables.
[0330] Optionally, the seventh element may be at least one of the following: tool type of the intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters.
[0331] Optionally, at least one subtree in the candidate tree structure can be used as a branch structure of the candidate structure.
[0332] Optionally, the branch structure of the candidate tree structure can be a structure consisting of the first node and / or the seventh element in at least two layers of the candidate tree structure. For example, if the first element in at least one candidate table in the first layer of the candidate tree structure points to a candidate table in the second layer, then the path from the first element in the first layer to the candidate table pointed to by that first element in the second layer can be considered as a branch structure.
[0333] For example, if the candidate tree structure includes multiple intra-prediction tools and multiple intra-prediction modes, such as at least one node and / or element of the first-layer architecture including intra-prediction tools such as planar prediction mode, DC prediction mode and angle prediction mode, and at least one node and / or element of the second-layer architecture can contain various intra-prediction modes, and there is a correspondence between at least one intra-prediction mode of the second-layer architecture and at least one intra-prediction tool in the first-layer architecture. Taking the angle prediction mode as an example, the second-layer architecture can include various specific angle prediction modes (such as the 90° angle prediction mode). Then the structure from the intra-prediction tools (angle prediction modes) of the first-layer architecture to the various specific angle prediction modes of the second-layer architecture in the candidate tree structure can be regarded as a branch structure.
[0334] For example, the candidate tree structure can be as shown in Figure 9, including a three-layer architecture and two branch structures. The nodes in the first-layer architecture can be A1, A2 and A3, the nodes in the second-layer architecture can be B1, B2 and B3, and the node in the third-layer architecture can be C1.
[0335] Optionally, the candidate tree structure shown in Figure 9 may include two branch structures. One branch structure may be a structure containing node A1 of the first-level architecture, node B2 of the second-level architecture, and node C1 of the third-level architecture. The other branch structure may be a structure containing node A3 of the first-level architecture and node B3 of the second-level architecture.
[0336] In this approach, by setting a branch structure for at least one first node and / or the seventh element in the candidate tree structure, the branch structure of the candidate tree structure can be used to perform intra-frame prediction for the current block, thereby improving the efficiency of intra-frame prediction.
[0337] Method 11: At least one second node and / or the eighth element of at least one layer of the candidate tree structure has a non-branching structure;
[0338] Optionally, the second node is a node in the candidate table that does not have a branch structure within at least one layer of the architecture. At least one candidate table can be set at the second node, such as a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a sixth candidate table containing at least two intra prediction tools of the same type; a seventh candidate table containing at least two intra prediction modes of the same type; and at least one of the preset candidate tables; and / or directly setting elements, such as tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters.
[0339] Optionally, the first node and the second node are different.
[0340] Optionally, the eighth element is an element in at least one candidate table in the candidate tree structure. For example, it may be a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a sixth candidate table containing at least two intra prediction tools of the same type; a seventh candidate table containing at least two intra prediction modes of the same type; or an element in at least one of the preset candidate tables.
[0341] Optionally, the eighth element may be at least one of the following: the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters.
[0342] Optionally, the seventh and eighth elements can be different elements.
[0343] Optionally, having a non-branching structure for at least one eighth element can be a characterization that at least one eighth element does not have a branching structure.
[0344] Optionally, having a non-branching structure at least one second node can be a representation that at least one second node does not have a branching structure. For example, as shown in Figure 9, nodes A2 and B1 do not have a branching structure, and nodes A2 and B1 can be considered as second nodes.
[0345] Optionally, at least one second node and / or the eighth element of at least one layer of the candidate tree structure does not have a branch structure. For example, if at least one candidate element in the candidate table of at least one layer of the candidate tree structure is a specific intra-prediction mode and the intra-prediction mode does not have a subsequent sub-mode, then the intra-prediction mode can be regarded as the eighth element, and it is considered that there is no branch structure in the candidate tree structure starting from the eighth element of the layer.
[0346] Optionally, since some intra-prediction modes can be directly used to predict and / or reconstruct the current block, there are no branches in the candidate tree structure that start from these intra-prediction modes.
[0347] In this approach, by setting a non-branch structure for at least one second node and / or the eighth element in the candidate tree structure, intra-frame prediction of the current block can be quickly performed using the candidate tree structure.
[0348] Method 12: The nodes in the candidate tree structure with at least one layer of architecture and / or at least one branch structure include at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, intra prediction mode parameters, a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters, a sixth candidate table containing at least two intra prediction tools of the same type, a seventh candidate table containing at least two intra prediction modes of the same type, and at least one of the following preset candidate tables;
[0349] Optionally, the nodes in the candidate tree structure with at least one layer of architecture and / or at least one branch structure are at least one candidate table in the candidate table set, such as the first candidate table and / or the flattened candidate table.
[0350] Optionally, at least one layer of the most likely candidate tree structure may include at least one node in at least one branch structure and / or an element in at least one candidate table, such as the start or end point of the branch structure.
[0351] Optionally, at least one index can be determined based on the second parameter, and the at least one index can be input into the first-level architecture of the candidate tree structure for querying to obtain query results. Based on the query results, it can be determined whether to perform a query on the next level architecture. For example, if the query result is an intra-prediction tool, and the intra-prediction tool is directly used to predict and / or reconstruct the current block, it can be determined that no query on the next level architecture is needed, and the current block can be predicted and / or reconstructed based on the intra-prediction tool corresponding to the query result. If the query result is an intra-prediction tool, and the intra-prediction tool includes multiple intra-prediction modes (such as multiple angle prediction modes), it can be determined that a query on the next level architecture is needed, and the query is performed on the next level architecture in a manner similar to the query in the first level architecture, until an intra-prediction tool and / or intra-prediction mode for predicting and / or reconstructing the current block is found, and the current block is predicted and / or reconstructed based on the intra-prediction tool and / or intra-prediction mode obtained from the final query.
[0352] Optionally, if at least one node and / or at least one element in a candidate table within at least one layer of the candidate tree structure is at least one intra-prediction tool, then at least one node and / or at least one element in a candidate table within the upper layer of the same layer can be the tool type of at least one intra-prediction tool, and at least one node and / or at least one element in a candidate table within the lower layer of the same layer can be at least one intra-prediction mode.
[0353] Optionally, if at least one node in at least one layer of the candidate tree structure is a fifth candidate table containing at least one intra-prediction tool, and / or a sixth candidate table containing at least two intra-prediction tools of the same type, then at least one node in the upper layer of the structure can be another fifth candidate table containing at least one intra-prediction tool of a tool type, and / or a preset candidate table containing at least one intra-prediction tool of a tool type, and / or a tool type of at least one intra-prediction tool. At least one node in the lower layer of the structure can be another fifth candidate table containing at least one intra-prediction mode, and / or a seventh candidate table, and / or a preset candidate table containing at least one intra-prediction mode, and / or at least one intra-prediction mode.
[0354] Optionally, the current block can be predicted and / or reconstructed based on at least one branch structure in the candidate tree structure.
[0355] For example, as shown in Figure 9, if node A1 has a tool type for intra-prediction tools and / or a fifth candidate table containing tool types for intra-prediction tools, node B2 has at least one intra-prediction tool and / or a candidate table containing at least one intra-prediction tool, such as a sixth candidate table, and node C1 has a fifth candidate table containing at least one intra-prediction mode and / or at least one intra-prediction mode, then at least one index (such as a third index) can be determined or obtained based on the second parameter and input into the candidate tree structure for searching. For example, inputting it into node A1 to search for the tool type corresponding to the index yields a search result, and the index corresponding to the search result (such as a fourth index) can be determined. This index is then input into node B2 of the second-layer architecture for querying, yielding another search result. The index corresponding to this other search result (such as a fifth index) can then be input into node C1 of the third-layer structure for searching, yielding the final search result, such as the intra-prediction mode. At this point, the current block can be predicted and / or reconstructed based on the final searched intra-prediction mode.
[0356] In this approach, by limiting the nodes of at least one layer of architecture and / or at least one branch structure in the candidate tree structure, the elements used for intra-frame prediction of the current block can be quickly determined using the candidate tree structure, thereby improving the efficiency of intra-frame prediction.
[0357] Method 13: At least one element in at least one layer of architecture and / or at least one branch structure in the candidate tree structure is an element after priority and / or sorting order adjustment;
[0358] Optionally, the elements in the candidate tree structure after priority and / or order adjustment in at least one layer of architecture and / or at least one branch structure can be elements in at least one candidate table (such as the fifth candidate table, the sixth candidate table, the seventh candidate table, and preset candidate tables, etc.) in at least one layer of architecture and / or at least one branch structure of the candidate tree structure (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters).
[0359] Optionally, the priority and / or order of elements in at least one candidate table in at least one level of the candidate tree structure and / or in at least one branch structure can be adjusted.
[0360] Optionally, priority and / or order of at least one element in at least one layer of architecture and / or at least one branch structure in the candidate tree structure can be adjusted based on the cost of at least one element. For example, the lower the cost, the higher the priority and the earlier the order. And / or priority and / or order can be adjusted based on other rules, such as the intra-frame prediction tool used by neighboring blocks having the highest priority and being placed at the front of the order.
[0361] Optionally, at least one other element in at least one layer of architecture and / or at least one branch structure in the candidate tree structure is an element that has not been adjusted in priority and / or order.
[0362] In this approach, by adjusting the priority and / or order of at least one candidate element in the candidate tree structure, the element used for intra-prediction of the current block can be quickly selected when using the candidate tree structure for intra-prediction of the current block, thus improving the efficiency of intra-prediction.
[0363] Method 14: The first parameter is the set of most likely candidate tables that includes at least one most likely candidate table.
[0364] Optionally, the most likely candidate set can be a candidate set with the best priority and / or sorting order.
[0365] Optionally, the most likely candidate table can be the most likely tool type candidate table, the most likely pattern candidate table, the most likely prediction tool candidate table, and / or the most likely pattern parameter candidate table.
[0366] Optionally, the most likely candidate tables include: at least one first candidate table and / or a flattened candidate table that has been prioritized and / or sorted.
[0367] Optionally, at least one first candidate table that has undergone priority and / or order adjustment includes at least one second candidate table, a third candidate table, a fourth candidate table, and at least one of a preset candidate table that has undergone priority and / or order adjustment.
[0368] Optionally, the current block can be predicted and / or reconstructed based on the set of most likely candidate tables, including at least one most likely candidate table, and / or a second parameter.
[0369] In this approach, the intra-frame prediction of the current block is completed by performing the first processing based on the most likely candidate set, which ensures the effective execution of intra-frame prediction.
[0370] Method 15: The first parameter is a set of non-most likely candidate tables that includes at least one non-most likely candidate table;
[0371] Optionally, a non-most likely candidate set can be a candidate set whose priority and / or permutation order is not optimal.
[0372] Optionally, the non-most likely candidate table includes: at least one first candidate table and / or a flattened candidate table that has not been adjusted in priority and / or sorting order.
[0373] Optionally, at least one first candidate table that has not undergone priority and / or order adjustment includes at least one second candidate table, a third candidate table, a fourth candidate table, and at least one of the preset candidate tables that have not undergone priority and / or order dynamic adjustment.
[0374] Optionally, the non-most likely candidate table in the non-most likely candidate table set can be a candidate table with a fixed priority and / or sorting order, such as the priority and / or sorting order of the elements in the candidate table being a fixed priority and / or sorting order, and / or the priority and / or sorting order of the elements in the candidate table being a preset priority and / or sorting order.
[0375] Optionally, the current block can be predicted and / or reconstructed based on a set of non-most likely candidate tables including at least one non-most likely candidate table and / or a second parameter.
[0376] In this approach, the intra-frame prediction of the current block is completed by performing the first processing based on the non-most likely candidate set, which ensures the effective execution of intra-frame prediction.
[0377] Method 16, the first parameter is a set of non-most likely candidate tables including at least one most likely candidate table and non-most likely candidate tables;
[0378] Optionally, the most likely candidate table can be the same as the most likely candidate table in method fourteen.
[0379] Optionally, the non-most likely candidate list can be the same as the non-most likely candidate list in Method Fifteen.
[0380] Optionally, the non-most likely candidate set may include at least one first candidate table that has not been adjusted in priority and / or order, including at least one second, third, and fourth candidate table and at least one of a preset candidate table that has not been adjusted in priority and / or order, and / or include at least one first candidate table that has been adjusted in priority and / or order, including at least one second, third, and fourth candidate table and at least one of a preset candidate table that has been adjusted in priority and / or order.
[0381] Optionally, the current block can be predicted and / or reconstructed based on a set of non-most likely candidate tables, including at least one most likely candidate table and a non-most likely candidate table, and / or a second parameter.
[0382] In this approach, the intra-frame prediction of the current block is completed by performing the first processing based on the non-most likely candidate set, which ensures the effective execution of intra-frame prediction.
[0383] Method 17: The first parameter is the most likely candidate tree structure and / or a non-most likely candidate tree structure;
[0384] Optionally, the most likely candidate tree structure can be a candidate tree structure and / or a tree structure, or the most likely prediction tool candidate tree structure.
[0385] Optionally, the tree structure can be a candidate tree, and the most likely candidate tree structure can be the most likely candidate tree.
[0386] Optionally, the most likely candidate tree structure can be the most likely pattern candidate tree, the most likely tool candidate tree, the most likely tool type candidate tree, and / or the most likely pattern parameter candidate tree, etc.
[0387] Optionally, the most likely candidate tree structure can be a candidate tree structure with the best priority and / or arrangement order.
[0388] Optionally, a non-most likely candidate tree structure can be a candidate tree structure whose priority and / or arrangement order is not optimal.
[0389] Optionally, at least one element in the most likely candidate tree structure has been adjusted in priority and / or order;
[0390] Optionally, at least one element in the non-most likely candidate tree structure is not subject to priority and / or sorting order adjustments.
[0391] Optionally, the current block can be predicted and / or reconstructed based on at least one most likely candidate tree structure and / or a second parameter, and / or based on at least one non-most likely candidate tree structure and / or a second parameter.
[0392] In this approach, the intra-frame prediction of the current block is completed by performing a first processing based on the most likely candidate tree structure and / or a non-most likely candidate tree structure, which ensures the effective execution of intra-frame prediction.
[0393] Optionally, at least one element of the candidate set, candidate tree structure, most likely candidate list, most likely candidate set, and / or most likely candidate tree structure points to at least one of the following: Primary MPM List, Secondary MPM List, Full MPM List, Non-MPM List, Matrix Intra Prediction Mode List, Chroma Intra Candidate List, Geo Intra MPM List, Spatial Geometry Partition Merged Intra MPM List, Cross-Component Prediction Candidate List, CCCM BVG Candidate List, EIP Derived Candidate List, EIP Merge Candidate List, Merge Candidate List, and Affine Merge Candidate List. List, IBC Merge Candidate List, BM Merge Candidate List, and Geo Unipred Candidate List.
[0394] Optionally, at least one element in the most likely candidate table and / or the most likely candidate tree structure and / or points to at least one item in the second to seventh candidate tables, and / or points to a preset candidate table and / or a flattened candidate table.
[0395] Optionally, a candidate table set can be determined or obtained according to at least one of methods one to eight, and / or an index set can be determined or obtained according to method nine, a candidate tree structure can be determined or obtained according to at least one of methods ten to thirteen, and the current block can be predicted and / or reconstructed according to at least one of the candidate table set, the candidate tree structure and the index set.
[0396] Optionally, the first parameter can be determined or obtained according to at least one of methods fourteen to seventeen, and the current block can be predicted and / or reconstructed according to the first parameter and / or the second parameter.
[0397] In this embodiment, the current block is first processed by including at least one intra-prediction tool type, intra-prediction tool, intra-prediction mode, and / or intra-prediction mode parameters, and / or candidate table set and / or candidate tree structure of various candidate tables to complete intra-prediction. This eliminates the need for multiple judgments and selections, avoiding the phenomenon of multiple judgments and selections and excessive signaling consumption in scenarios with many intra-prediction tools, thus improving the efficiency of intra-prediction.
[0398] Third Embodiment
[0399] Based on the first or second embodiment, a third embodiment of this application is proposed.
[0400] In the third embodiment, the image processing method further includes: adjusting the priority and / or arrangement order of the elements in the first parameter according to at least one of the following methods eighteen to twenty-three:
[0401] Method 18: At least one of the following intra-frame prediction tools and / or prediction modes is used: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0402] Optionally, the left neighbor block, the top neighbor block, the top-left neighbor block, and the top-right neighbor block can all be neighbor blocks of the current block.
[0403] Optionally, the left neighbor block, the top neighbor block, the top left neighbor block, the top right neighbor block, the non-neighbor block, the cross-component block, the co-location block, the temporal block, the default block, and / or the candidate block can be image blocks.
[0404] Optionally, the left neighbor block can be an image block that is spatially adjacent to the current block and located to the left of the current block, and / or it can be an image block that has been predicted or reconstructed.
[0405] Optionally, the upper neighbor block can be an image block that is spatially adjacent to and above the current block, and / or can be an image block that has been predicted or reconstructed.
[0406] Optionally, the top-left neighbor block can be an image block that is spatially adjacent to the current block and located to the top left of the current block, and / or it can be an image block that has been predicted or reconstructed.
[0407] Optionally, the upper right neighbor block can be an image block that is spatially adjacent to the current block and located to the upper right of the current block, and / or it can be an image block that has been predicted or reconstructed.
[0408] Optionally, a non-neighbor block can be an image block that is not spatially adjacent to the current block, and / or it can be an image block that has been predicted or reconstructed.
[0409] Optionally, the default block can be a pre-set image block, such as an image block with typical pixel characteristics pre-set by the encoder and / or decoder.
[0410] 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.
[0411] 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.
[0412] 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.
[0413] 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.
[0414] 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 to be the image block corresponding to it in the first frame.
[0415] Optionally, block vector calculation is performed on the current block, and candidate blocks corresponding to the current block are determined 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.
[0416] Optionally, motion vector calculation is performed on the current block, and candidate blocks corresponding to the current block are determined based on the motion vector calculation results. For example, the pixels corresponding to the motion vector calculation results are used as pixels in the candidate blocks.
[0417] Optionally, the priority and / or order of elements (such as the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the intra prediction tool and / or prediction mode used in at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0418] Optionally, it can be determined that the intra-prediction tool and / or intra-prediction mode used by at least one of the following in the candidate set and / or candidate tree structure has the highest priority and / or is arranged in the front position: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block.
[0419] Optionally, the example of an intra-prediction tool will be used for illustration. The tool type, intra-prediction mode, and intra-prediction mode parameters of the intra-prediction tool can be determined by referring to the intra-prediction tool to determine the corresponding priority and / or order, which will not be repeated here.
[0420] Optionally, the intra-prediction tools used by at least one of the following blocks can be read sequentially according to a preset priority: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-occurrence block, temporal block, default block, and candidate block. The priority and / or order of the intra-prediction tools in the candidate set and / or candidate tree structure are determined according to the reading order. For example, the priority and / or order of the intra-prediction tools in the candidate set and / or candidate tree structure can be as follows: intra-prediction tool used by left neighbor block, intra-prediction tool used by top neighbor block, intra-prediction tool used by top left neighbor block, intra-prediction tool used by top right neighbor block, intra-prediction tool used by non-neighbor block, intra-prediction tool used by cross-component block, intra-prediction tool used by co-occurrence block, intra-prediction tool used by temporal block, intra-prediction tool used by default block, intra-prediction tool used by candidate block, and / or other default intra-prediction tools.
[0421] Optionally, based on the intra-prediction tool used in at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block, determine the number of times the intra-prediction tool is used in the candidate set and / or candidate tree structure, and determine or obtain the priority and / or order of the intra-prediction tool in the candidate set and / or candidate tree structure based on the number of times it is used. For example, the higher the number of times it is used, the higher the priority and the earlier the sorting position.
[0422] Optionally, the first parameter can be constructed based on at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0423] Optionally, the example is provided by constructing a candidate table set and / or a candidate tree structure containing at least one candidate table with an intra-frame prediction tool, using neighboring blocks as an example.
[0424] For example, as shown in Figure 10, when starting intra-frame prediction for the current block, an empty candidate table can be initialized, and / or the table length can be set, such as a maximum length N = 8, and the availability of the left neighboring block can be detected.
[0425] If so, then read the left neighbor tool ID (such as DIMD) and insert it into the candidate table, and / or sort it as the first one;
[0426] And / or, if not, check if the neighboring block above is available:
[0427] If yes, then read the neighbor tool ID (e.g., MIP) from above, remove duplicates, and append it to the candidate table; and / or, if no, check if the top-left neighbor block is available:
[0428] If yes, then read the top-left neighbor tool ID, remove duplicates, and append it to the candidate table; and / or, if no, check if the top-right neighbor block is available:
[0429] If yes, read the neighbor tool ID from the top right, remove duplicates, and append it to the candidate table; and / or, if no, fill the remaining empty spaces in the candidate table using the default tool order, output the final candidate table, and obtain a candidate table containing at least one intra-frame prediction tool, until the end.
[0430] Optionally, an empty candidate table can be initialized, with a maximum length of N, such as 8, and a default tool filling order can be prepared, such as Planar, DC, Angular, DIMD, MIP, TIMD, EIP, MRL.
[0431] Optionally, check the tool type of the intra prediction tool in the left neighbor block. If the left neighbor block is available (encoded and decoded and located in the same Slice / Tile), read the identifier of the intra prediction tool it uses (e.g., DIMD) and add the intra prediction tool to the 0th position of the candidate list. Check the tool type of the intra prediction tool in the upper neighbor block. If the upper neighbor block is available, read its tool identifier (e.g., MIP). If the tool already exists in the candidate list, skip it; otherwise, append it to the end of the list. Repeat the checking and insertion logic corresponding to the left and upper neighbor blocks according to the priority order of the upper left and upper right neighbors. Insert the intra prediction tools used by the neighbor blocks (after deduplication) into the candidate in turn. Traverse the default tool filling order and append the intra prediction tools that have not yet appeared in the candidate to the end of the list in turn until the list length reaches N or all default tools have been traversed.
[0432] Optionally, the encoder evaluates the rate-distortion cost of each intra-prediction tool in the candidate table containing at least one intra-prediction tool, selects the intra-prediction tool with the best cost, and writes its index (0 to N-1, for example, 3 bits) in the candidate table into the bitstream.
[0433] Optionally, after the decoding end constructs the corresponding candidate table according to the same rules, it parses the index from the bitstream and directly determines the intra-prediction tool for the current block.
[0434] In this method, by using an intra-prediction tool and / or prediction mode based on at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block, the elements in the first parameter are prioritized and / or arranged in order. Then, the current block is processed according to the first parameter to complete the intra-prediction. This method can achieve close correlation between the intra-prediction of the current block and other blocks, thereby improving the accuracy of intra-prediction.
[0435] Method 19: Size parameter of at least one of the following: current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block;
[0436] Optionally, the size parameters of the image block can be the width, height, perimeter, area, aspect ratio, etc. of the image block (such as the current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and / or candidate block).
[0437] Optionally, the priority and / or order of at least one element (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the size parameters of at least one of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block.
[0438] Optionally, the size parameters of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-location block, temporal block, default block, and candidate block can be compared with preset size parameter conditions. Based on the comparison results, the priority and / or order of at least one element in the candidate set and / or candidate tree structure can be determined or obtained. For example, the priority of the intra-prediction tool used by the image block that meets the preset size parameter conditions is higher than that of the intra-prediction tool used by the image block that does not meet the preset size parameter conditions. The intra-prediction tool used by the image block that meets the preset size parameter conditions is ranked ahead of the intra-prediction tools used by the image block that does not meet the preset size parameter conditions in the candidate set and / or candidate tree structure.
[0439] Optionally, the preset size parameters can be pre-set conditions, such as width less than 8, height less than 8, or the size parameters of the image block being consistent with the size parameters of the current block, etc.
[0440] For example, taking the size parameter of the current block as an example, the size of the current block (such as large block, medium block, and small block) can be determined based on the size parameter of the current block. For example, image blocks with an aspect ratio less than or equal to 2:2 can be considered small blocks, image blocks with an aspect ratio greater than 8:8 can be considered large blocks, and image blocks with an aspect ratio greater than 2:2 and less than or equal to 8:8 can be considered medium blocks.
[0441] Optionally, if the current block is determined to be a large block based on its size parameters, the Planar, DC, and angle prediction modes can be prioritized in the candidate table set and / or candidate tree structure.
[0442] Optionally, if the current block is determined to be a medium block based on its size parameters, then DIMD, TIMD, and angle prediction modes can be prioritized in the candidate table set and / or candidate tree structure.
[0443] Optionally, if the current block is determined to be a small block based on its size parameters, then MIP, EIP, and angle prediction modes can be prioritized in the candidate table set and / or candidate tree structure.
[0444] Optionally, the first parameter can be constructed based on the size parameter of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0445] Optionally, the following example illustrates the construction of a candidate table set and / or a candidate tree structure containing at least one candidate table with intra-frame prediction tools, based on the size parameters of the current block.
[0446] For example, as shown in Figure 11, when starting intra-frame prediction for the current block, the block size W x height H can be obtained for the current block, and the area S can be calculated, S = W x H. The size category can be determined based on the area S of the current block.
[0447] If S≤64, then the current block can be determined to be a small block, and a candidate list with the default priority of: 1. MIP; 2. EIP; 3. Angular; 4. DIMD; 5. Planar; 6. DC; 7. TIMD; 8. SGPM can be obtained.
[0448] If 64 < S < 1024, then the current block can be determined as a medium block (i.e., a medium-sized block), and the candidate list with the default priority is obtained as follows: 1. DIMD; 2. TIMD; 3. Angular; 4. Planar; 5. DC; 6. EIP; 7. MRL; 8. OBIC.
[0449] If S≥1024, the current block can be determined as a large block, and a candidate list with the default priority of: 1. Planar; 2. DC; 3. Angular; 4. DIMD; 5. TIMD; 6. OBIC; 7. MRL; 8. MIP can be obtained. Neighboring blocks can be checked, a set of neighboring tools can be built, the neighboring tools can be promoted to the front end, the rest can be kept in the default order, and / or the first N (e.g. 5) items of the candidate list can be truncated, and the final candidate list can be output until the end.
[0450] Optionally, content statistics priors (different tools are preferred for blocks of different sizes) can be combined with spatial neighborhood priors to make the MPT candidate list sorting reflect both block size adaptability and neighborhood consistency, which can further improve the accuracy of list sorting and shorten the average index length.
[0451] In this method, by adjusting the priority and / or order of the elements in the first parameter based on the size parameter of at least one of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block, and then performing the first processing on the current block according to the first parameter to complete the intra-frame prediction, the intra-frame prediction of the current block can be closely related to other blocks, thereby improving the accuracy of intra-frame prediction.
[0452] Method 20: the prediction direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0453] Optionally, the prediction direction of an image patch can be at least one of the following: left neighbor patch, top neighbor patch, top left neighbor patch, top right neighbor patch, non-neighbor patch, cross component patch, co-location patch, temporal patch, default patch, and candidate patch, which is the final adopted or corresponding prediction main direction.
[0454] Optionally, taking a neighboring block (such as the left neighboring block) as an example, the prediction direction of the neighboring block may include the intra-frame angle pattern direction of the neighboring block, such as horizontal, vertical, diagonal and / or anti-angle direction; and / or include the planar prediction direction trend, such as no obvious direction feature corresponding to DC prediction, the direction number or angle number corresponding to a certain direction pattern. For example, if the neighboring block adopts the vertical direction prediction mode, then the prediction direction of the neighboring block is the vertical direction; if the neighboring block adopts the 45° oblique mode, then the prediction direction of the neighboring block is from the lower left to the upper right.
[0455] Optionally, the priority and / or order of at least one element (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the prediction direction of at least one of the left neighbor block, the top neighbor block, the top left neighbor block, the top right neighbor block, the non-neighbor block, the cross-component block, the co-position block, the temporal block, the default block, and the candidate block.
[0456] Optionally, the prediction direction of at least one of the following can be counted: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block. The number of prediction directions of each type can be determined. The priority and / or order of at least one element in the candidate table set and / or candidate tree structure can be determined or obtained based on the number of prediction directions of each type. For example, the more prediction directions of a certain type there are, the higher the priority of the intra-frame prediction tool corresponding to that prediction direction and the earlier it is arranged.
[0457] Optionally, the prediction direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block is compared with a preset prediction direction (such as a pre-set horizontal direction). The closer it is to the horizontal direction, the higher the priority of its corresponding element and the earlier it is sorted. For example, if the prediction direction of the left neighbor block is consistent with the preset prediction direction, it can be determined that the intra-frame prediction tool corresponding to the left neighbor block in the candidate set and / or candidate tree structure has the highest priority and is sorted first.
[0458] Optionally, the prediction direction of the current block is determined, for example, by approximating the prediction direction of at least one neighboring block as the prediction direction of the current block, and / or by approximating the prediction direction of an image block spatially adjacent to the current block as the prediction direction of the current block.
[0459] Optionally, the prediction direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block can be compared with the prediction direction of the current block to calculate their similarity, and the priority and / or order of at least one element in the candidate set and / or candidate tree structure can be determined based on the similarity.
[0460] Optionally, the higher the similarity, the higher the priority of the corresponding element in the candidate set and / or candidate tree structure, and the earlier it is sorted.
[0461] In this method, by adjusting the priority and / or order of the elements in the first parameter based on the prediction direction of at least one of the left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block, and then performing the first processing on the current block according to the first parameter to complete the intra-frame prediction, the intra-frame prediction of the current block can be closely related to other blocks, thereby improving the accuracy of intra-frame prediction.
[0462] Method 21: Template features of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0463] Optionally, the template features of an image patch can be structural features extracted from the template region composed of reference samples surrounding the current patch or the image patch (such as at least one of the following: left neighbor patch, top neighbor patch, top left neighbor patch, top right neighbor patch, non-neighbor patch, cross component patch, co-location patch, temporal patch, default patch, and candidate patch).
[0464] Optionally, the template features of the image patch may include the pixel distribution features of the upper and left templates of the image patch; the mean, variance, and gradient intensity of the template region; whether there are obvious edges in the template; the consistency of the main direction in the template; template matching error, similarity, and correlation; the rate of brightness change and smoothness within the template, etc.
[0465] Optionally, taking the left neighbor block as an example, if the upper template pixels of the left neighbor block gradually brighten from left to right, then the template feature of the left neighbor block is determined to have a clear horizontal change trend; if the left and upper templates of the left neighbor block are relatively smooth, then the area around the left neighbor block is more suitable for planar or smoothing tools.
[0466] Optionally, since the original pixels of the current block do not exist at the decoding end, in order to measure the cost of a certain decoding mode, such as prediction mode P, a neighboring region of the current block can be used as an approximation of the current block, that is, the first reference template of the current block. For example, the n (n is an integer greater than 1, such as 2) rows of L-shaped regions on the left and above the current block can be used as the first reference template of the current block.
[0467] Optionally, the decoding mode can be applied to the first reference template of the current block, and the prediction result can be subtracted from the reconstruction of the L-shaped region to obtain the prediction residual, the corresponding cost of which can be used as the cost of the prediction mode in the current block.
[0468] Optionally, the first reference template of the current block can be L-shaped, T-shaped, or a row of pixels; there are no restrictions here.
[0469] Optionally, media features can be extracted from the first reference template of the current block to obtain the template features of the current block.
[0470] Optionally, the template features of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block can be matched and compared with the template features of the current block. For example, the similarity between the template features of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block and the template features of the current block can be calculated. The higher the similarity, the higher the priority of the corresponding image block element (such as the intra-frame prediction tool) and the higher its sorting position in the candidate table set and / or candidate tree structure.
[0471] Optionally, the priority and / or order of at least one element (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the template features of at least one of the left neighbor block, the top neighbor block, the top left neighbor block, the top right neighbor block, the non-neighbor block, the cross-component block, the co-position block, the temporal block, the default block, and the candidate block.
[0472] In this approach, the elements in the first parameter are prioritized and / or their order adjusted using template features from at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block. Then, the current block is processed according to the first parameter to complete intra-frame prediction. This approach can ensure that the intra-frame prediction of the current block is closely related to other blocks, thereby improving the accuracy of intra-frame prediction.
[0473] Method 22: Edge direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0474] Optionally, the edge direction of the image patch may include the direction information of the local edges of the image, which may be determined or obtained by the gradient or difference relationship of adjacent samples.
[0475] Optionally, the edge direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block may include horizontal edge, vertical edge, diagonal edge, principal gradient direction obtained by Sobel, Prewitt, differential operator, etc., direction with maximum edge intensity, principal direction and secondary direction among multiple candidate edge directions, etc.
[0476] For example, taking the left neighbor block as an example, if the difference between the top and bottom pixels in the template of the left neighbor block is large and the difference between the left and right pixels is small, it can be determined that the edge direction of the left neighbor block is closer to the horizontal direction. If the change along the 135° direction is the most obvious in the template of the left neighbor block, it can be determined that the edge direction of the left neighbor block is the 135° direction.
[0477] Optionally, the priority and / or order of at least one element (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the edge direction of at least one of the left neighbor block, the top neighbor block, the top left neighbor block, the top right neighbor block, the non-neighbor block, the cross-component block, the co-position block, the temporal block, the default block, and the candidate block.
[0478] Optionally, the edge direction of the current block can be determined based on the edge direction of an image block that is spatially adjacent to the current block, for example, by approximating it as the edge direction of the current block.
[0479] Optionally, the edge direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block can be compared with the edge direction of the current block to calculate their similarity, and the priority and / or order of at least one element in the candidate set and / or candidate tree structure can be determined based on the similarity.
[0480] Optionally, the higher the similarity, the higher the priority of the corresponding element (such as an intra-frame prediction tool) in the candidate set and / or candidate tree structure, and the earlier it is ranked.
[0481] In this method, by adjusting the priority and / or arrangement order of the elements in the first parameter based on the edge direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block, and then performing the first processing on the current block according to the first parameter to complete the intra-frame prediction, the intra-frame prediction of the current block can be closely related to other blocks, thereby improving the accuracy of intra-frame prediction.
[0482] Method 23: Texture direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0483] Optionally, the texture direction of an image patch can be the main extension direction of the local texture rearrangement or energy distribution of the image patch, which is more biased towards the overall texture structure than the edge direction.
[0484] Optionally, the texture direction may include the extension direction of the striped texture, the arrangement direction of the repeating texture units, the main direction of the local texture energy concentration, or the main texture direction obtained based on the structure tensor, gradient histogram, or directional filter.
[0485] Optionally, the texture direction information corresponding to the texture direction includes, in addition to the texture direction, information related to the texture direction such as whether the texture has a single main direction or a multi-directional mixed feature.
[0486] For example, taking the left neighbor block as an example, if there are continuous vertical stripes around the left neighbor block, the texture direction can be vertical; if the texture is distributed diagonally around the left neighbor block, the texture direction can be diagonal.
[0487] Optionally, the priority and / or order of at least one element (such as the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters) in the candidate set and / or candidate tree structure can be determined or obtained based on the texture direction of at least one of the left neighbor block, the top neighbor block, the top left neighbor block, the top right neighbor block, the non-neighbor block, the cross-component block, the co-location block, the temporal block, the default block, and the candidate block.
[0488] Optionally, the texture direction of the current block can be determined based on the texture direction of an image block that is spatially adjacent to the current block, for example, by approximating it as the texture direction of the current block.
[0489] Optionally, the texture direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block can be compared with the texture direction of the current block to calculate their similarity, and the priority and / or order of at least one element in the candidate table set and / or candidate tree structure can be determined based on the similarity.
[0490] Optionally, the higher the similarity, the higher the priority of the corresponding element in the candidate set and / or candidate tree structure, such as the intra-frame prediction tool, and the earlier it is ranked.
[0491] In this method, the elements in the first parameter are prioritized and / or arranged according to the texture direction of at least one of the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block. Then, the current block is processed according to the first parameter to complete the intra-frame prediction. This can make the intra-frame prediction of the current block closely related to other blocks and improve the accuracy of intra-frame prediction.
[0492] Optionally, the priority and / or sorting order of at least one element in the first parameter can be determined or obtained through at least one of methods 18 to 23, and then the current block can be processed according to the first parameter and / or the second parameter. For example, after determining the priority and / or sorting order of intra-prediction tools in the candidate set and / or candidate tree structure, at least one intra-prediction tool can be selected in the candidate set and / or candidate tree structure (e.g., the intra-prediction tool with the highest priority and / or the first sorting order can be selected), and the current block can be predicted and / or reconstructed according to the selected intra-prediction tool.
[0493] In this embodiment, by adjusting the priority and / or sorting order of at least one element in the first parameter according to at least one of the methods 18 to 23, and then performing the first processing on the current block according to the first parameter to complete the intra-frame prediction, the intra-frame prediction of the current block can be closely related to other blocks, thereby improving the accuracy of intra-frame prediction.
[0494] Fourth embodiment
[0495] Based on any one of the first to third embodiments, a fourth embodiment of this application is proposed.
[0496] In the fourth embodiment, step S1 includes: determining or obtaining a third parameter based on the first parameter and / or the second parameter, and performing a first process on the current block based on the third parameter.
[0497] Optionally, the third parameter includes at least one of the following: the tool type of the intra-prediction tool; the intra-prediction tool; the intra-prediction mode; the intra-prediction mode parameters; at least one of the first to seventh candidate tables; a preset candidate table; first indication information indicating at least one of the tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters of the intra-prediction tool; second indication information indicating at least one of the first to seventh candidate tables and / or the preset candidate table; and at least one index in the index set.
[0498] Optionally, the explanation can be illustrated by taking the first parameter as the candidate table set and the second parameter as at least one index in the index set.
[0499] Optionally, at least one index in the index set can be determined and input into the candidate table set for searching. Based on the search result, at least one third parameter can be determined or obtained, and the current block can be processed based on the at least one third parameter.
[0500] Optionally, at least one index can be determined or obtained based on the data and / or the second parameter obtained from the bitstream, and this index can be used as the first index to search in at least one candidate table in the candidate table set (hereinafter referred to as the first candidate table) to obtain the element corresponding to the first index in the first candidate table (hereinafter referred to as the first element). If the first element points to the next candidate table in the candidate table set (hereinafter referred to as the second candidate table), a new index (hereinafter referred to as the second index) can be determined or obtained based on the data and / or the second parameter obtained from the bitstream, and the second index can be used to search in the second candidate table in the candidate table set. This search can be performed multiple times until an intra-prediction tool, and / or intra-prediction mode, and / or intra-prediction mode parameters that can directly perform intra-prediction on the current block are finally obtained. Based on the intra-prediction tool, and / or intra-prediction mode, and / or intra-prediction mode parameters that can directly perform intra-prediction on the current block, the current block is subjected to the first processing.
[0501] Optionally, a third index representing the tool type of an intra-prediction tool can be determined, and a second candidate table containing at least one intra-prediction tool in the candidate table set can be used directly as the third parameter, and / or the third index can be input into the second candidate table containing at least one intra-prediction tool for searching to obtain the search result of the tool type containing at least one intra-prediction tool. In this case, the tool type of at least one intra-prediction tool contained in the search result can be used as the third parameter.
[0502] Optionally, after obtaining the search results for a tool type that includes at least one intra-prediction tool, a candidate table corresponding to the tool type of the at least one intra-prediction tool can be determined in the candidate table set. That is, a candidate table that includes intra-prediction tools belonging to that tool type can be determined. For example, a second candidate table that includes at least one intra-prediction tool, or a third candidate table that includes at least two intra-prediction tools of the same type can be determined. The second candidate table and / or the third candidate table that includes at least one intra-prediction tool can be used as a third parameter.
[0503] Optionally, when determining a second candidate table and / or a third candidate table that includes at least one intra-frame prediction tool, the table can be determined or obtained based on a first index representing at least one intermediate element and / or a second index representing at least one candidate table in the index set, and the first index and / or the second index can be used as a third parameter.
[0504] Optionally, after determining a second candidate table and / or a third candidate table containing at least one intra-prediction tool, a fourth index representing the intra-prediction tool and / or a first index representing at least one intermediate element in the index set can be determined and used as a third parameter.
[0505] Optionally, taking the fourth index and the third candidate table as an example, the fourth index can be input into the third candidate table for searching to obtain a search result containing at least one intra-frame prediction tool, and the at least one intra-frame prediction tool contained in the search result can be used as the third parameter.
[0506] Optionally, if the intra-prediction tool contains multiple intra-prediction modes, the search for intra-prediction modes can continue in a second candidate table containing at least one intra-prediction mode and / or a fourth candidate table containing at least two intra-prediction modes of the same type. The second candidate table and / or the fourth candidate table containing at least one intra-prediction mode in the candidate table set can be determined or obtained through the first index and / or the second index. The second candidate table and / or the fourth candidate table containing at least one intra-prediction mode can be used as the third parameter.
[0507] Optionally, after determining a second candidate table and / or a fourth candidate table containing at least one intra-prediction mode, a fifth index representing the intra-prediction mode and / or a first index representing at least one intermediate element in the index set can be determined and used as a third parameter.
[0508] Optionally, the fifth index and / or the first index can be input into the second candidate table and / or the fourth candidate table containing at least one intra-frame prediction mode for searching to obtain a search result containing at least one intra-frame prediction mode, and the at least one intra-frame prediction mode contained in the search result can be used as the third parameter.
[0509] Optionally, after determining at least one intra-prediction mode, and / or determining intra-prediction mode parameters corresponding to the at least one intra-prediction mode, a first processing (e.g., prediction and / or reconstruction) is performed on the current block based on the at least one intra-prediction mode and / or the intra-prediction mode parameters.
[0510] Optionally, a sixth index representing an intra-prediction mode parameter and / or a first index representing at least one intermediate element in the index set can be determined and used as a third parameter.
[0511] Optionally, the sixth index and / or the first index can be input into the middle of the second candidate table and / or the preset candidate table containing at least one intra-frame prediction mode parameter to obtain the search result containing at least one intra-frame prediction mode parameter, and the at least one intra-frame prediction mode parameter contained in the search result can be used as the third parameter.
[0512] Optionally, the explanation can be illustrated by taking the first parameter as the candidate tree structure and the second parameter as at least one index in the index set.
[0513] Optionally, at least one index in the index set can be determined based on the data obtained from the bitstream, and input into the candidate tree structure for searching. At least one third parameter can be determined or obtained based on the search result, and the current block can be processed based on the at least one third parameter.
[0514] Optionally, at least one index in the index set can be determined, such as a second index representing at least one candidate table (e.g., a fifth candidate table containing the tool type of the intra-prediction tool), and a third index representing the tool type of the intra-prediction tool. The second index and / or the third index can be input into the candidate tree structure for searching, such as searching in the tool type of at least one intra-prediction tool in at least one layer of the architecture and / or at least one branch structure in the candidate tree structure and / or in the fifth candidate table containing the tool type of at least one intra-prediction tool, to obtain the search result containing the tool type of at least one intra-prediction tool. The intra-prediction tool in the candidate tree structure corresponding to the tool type contained in the search result can be determined, and / or, the fifth candidate table and / or the sixth candidate table containing the intra-prediction tool corresponding to the tool type.
[0515] Optionally, a fourth index representing an intra-prediction tool can be determined in the index set, and the fourth index can be input into a candidate tree structure for searching, such as searching in the fifth and / or sixth candidate tables in the candidate tree structure, to obtain a search result containing at least one intra-prediction tool. It can be determined whether the intra-prediction tool contains at least one intra-prediction mode. When it is determined that the intra-prediction tool contains at least one intra-prediction mode, at least one intra-prediction mode corresponding to the intra-prediction tool in the candidate tree structure can be determined, and / or the fifth and / or seventh candidate tables containing at least one intra-prediction mode, and / or the default follow-up table containing the intra-prediction mode.
[0516] Optionally, a fifth index representing an intra-prediction mode in the index set can be determined, and the fifth index can be input into a candidate tree structure for searching, such as searching in the fifth candidate table and / or the seventh candidate table and / or a preset candidate table in the candidate tree structure, to obtain a search result containing at least one intra-prediction mode.
[0517] Optionally, at least one intra-prediction mode parameter in the candidate tree structure is determined, and / or a fifth candidate table containing at least one intra-prediction mode parameter is determined. A sixth index representing the intra-prediction mode parameter in the index set can be determined. The sixth index can be input into the candidate tree structure for searching, such as searching in the fifth candidate table in the candidate tree structure, to obtain a search result containing at least one intra-prediction mode parameter.
[0518] Optionally, the current block may be processed based on at least one intra-prediction tool, intra-prediction mode, and / or intra-prediction mode parameters found.
[0519] Optionally, at least one indication information is determined or obtained based on the first parameter and / or the second parameter, such as first indication information for indicating non-table parameters and second indication information for indicating table parameters.
[0520] Optionally, the second indication information and / or is used to indicate at least one of the following: a primary most likely mode list, a secondary most likely mode list, a complete MPM list, a non-MPM candidate list, a matrix candidate prediction mode list, a chroma intra-frame candidate list, a geometrically segmented intra-frame MPM list, a spatially geometrically partitioned merged intra-frame list, a cross-component prediction candidate list, a chroma candidate list based on a luminance gradient, an EIP derived candidate list, an EIP merged candidate list, a general merged candidate list, an affine merged candidate list, an IBC merged candidate list, a bidirectional merged candidate list, and a geometrically segmented unidirectional prediction candidate list.
[0521] Optionally, the current block may be subjected to a first process, such as prediction and / or reconstruction, based on at least one of the tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters indicated by the first indication information.
[0522] Optionally, the current block may be subjected to a first process, such as prediction and / or reconstruction, based on at least one candidate table or other list indicated by the second indication information.
[0523] In this embodiment, by determining or obtaining the third parameter based on the first parameter and / or the second parameter, and then performing the first processing on the current block based on the third parameter to complete the intra-frame prediction process, the effective performance of intra-frame prediction can be guaranteed.
[0524] Optionally, the image processing method further includes: processing the first parameter according to the construction factor of the current block.
[0525] Optionally, the building factor can be a parameter used to adjust and / or update the candidate table set and / or candidate tree structure.
[0526] Optionally, the building factor may include the size of at least one candidate table in the candidate table set and / or candidate tree structure, the number and / or position of at least one element, etc.
[0527] Optionally, if at least one candidate table (such as the first candidate table and / or the flattened candidate table) in the candidate table set and / or candidate tree structure is too large, the at least one candidate table in the candidate table set and / or candidate tree structure that is too large can be adjusted and / or updated by building factors.
[0528] Optionally, the first parameter can be processed based on the construction factor of the current block, and the current block can be processed based on the processed first parameter and / or second parameter.
[0529] Optionally, the first parameter can be processed based on the construction parameters of the current block, and then the current block can be processed to complete the intra-frame prediction. This can avoid the phenomenon that the efficiency of intra-frame prediction is reduced due to the first parameter being too large.
[0530] Optionally, the image processing method further includes at least one of the following methods 24 to 26:
[0531] Method 24: Determine or obtain the construction factor based on at least one of the size parameters of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block, the cost of at least one intra-frame prediction tool, and at least one of the syntax elements obtained in the bitstream.
[0532] Optionally, the build factor can be determined or obtained based on at least one of the size parameters of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block. For example, the size of the block can be determined based on the size parameter, and different build factors can be determined based on different block sizes.
[0533] Alternatively, the block area can be calculated based on the size parameters, and the build factor can be determined based on the block area, for example:
[0534] If the block area is greater than or equal to 1024, for example, if the current block is a 64x64 block, then the current block can be determined as a large block, and a larger construction factor can be set. For example, the construction factor can include the candidate table set and / or the list length of at least one candidate table in the candidate tree structure is the first length (e.g., the number of elements in the table is 20).
[0535] If the block area is greater than 64 and less than 1024, for example, if the current block is a 16x16 block, then the current block can be determined as a medium block, and a medium construction factor can be set. For example, the construction factor can include the candidate table set and / or the list length of at least one candidate table in the candidate tree structure is the second length (e.g., the number of elements in the table is 10).
[0536] If the block area is less than or equal to 64, for example, if the current block is a 4x4 block, then the current block can be determined as a small block, and a smaller construction factor can be set. For example, the construction factor can include the candidate table set and / or the list length of at least one candidate table in the candidate tree structure is the third length (e.g., the number of elements in the table is 5).
[0537] Optionally, at least one constructive factor can be determined or obtained based on the cost of at least one intra-frame prediction tool.
[0538] Optionally, the number of at least one intra-frame prediction tools in the candidate table set and / or candidate tree structure can be determined or obtained based on the cost of at least one intra-frame prediction tool, and can be used as a construction factor.
[0539] Optionally, the cost of at least one intra-prediction tool in the candidate table set and / or candidate tree structure can be determined, and the minimum cost among the costs of at least two intra-prediction tools can be determined. It is then detected whether the minimum cost is less than a preset cost threshold (extracting the set cost, such as 8). If it is less than 8, the number of elements in at least one candidate table in the candidate table set and / or candidate tree structure can be set to 5 as the construction factor; and / or, if it is greater than or equal to 5, the number of elements in at least one candidate table in the candidate table set and / or candidate tree structure can be set to 10 as the construction factor.
[0540] Optionally, for at least one candidate table in the candidate table set and / or candidate tree structure, the cost of at least one element in the candidate table can be determined, and a certain number (e.g., 5) of elements can be selected and sorted in the candidate table in ascending order of cost. The number of selected elements and the sorting information of the elements can be used as construction factors.
[0541] Optionally, the syntax elements obtained from the bitstream can be syntax elements obtained by decoding the bitstream, and can be numbers, text, etc.
[0542] Optionally, syntax elements may include at least one of a slice header, a tile header, and a frame header for at least one frame of data.
[0543] Optionally, at least one build factor can be determined or obtained based on the syntax elements obtained from the code stream.
[0544] Optionally, the syntax elements obtained in the code stream may carry at least one construction factor (such as the length of at least one candidate table in the candidate table set and / or candidate tree structure).
[0545] Optionally, the decoder can obtain syntax elements from the bitstream, determine or obtain at least one construction factor based on the syntax elements, process the first parameter based on the at least one construction factor, and reconstruct the current block based on the processed first parameter and / or second parameter.
[0546] In this approach, the validity of the determined or obtained construction factors can be guaranteed by determining the construction factors according to method twenty-four.
[0547] Method 25: Determine or obtain the number and / or position of at least one element in the candidate table set and / or candidate tree structure based on at least one construction factor;
[0548] Optionally, the quantity and / or position of at least one of the following in the candidate table (such as the first candidate table and / or the flattened candidate table) of the candidate table set can be determined or obtained based on at least one construction factor: the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters.
[0549] Optionally, the quantity and / or position of at least one of the following in the candidate tree structure: tool type, intra prediction tool, intra prediction mode, and intra prediction mode parameters, can be determined or obtained based on at least one construction factor; and / or the quantity and / or position of at least one candidate table and / or elements within the candidate table can be determined or obtained based on at least one construction factor.
[0550] In this approach, by determining or obtaining the number and / or position of at least one element in the candidate table set and / or candidate tree structure based on at least one construction factor, the phenomenon of reduced intra-frame prediction efficiency caused by an excessively large candidate table set and / or candidate tree structure can be avoided.
[0551] Method 26 involves truncating, adjusting, and / or updating the candidate table set and / or candidate tree structure based on at least one construction factor.
[0552] Optionally, at least one of the following can be truncated, adjusted, and / or updated based on at least one construction factor: the tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters of the intra-prediction tool in at least one candidate table (such as the first candidate table and / or the flattened candidate table) in the candidate table set.
[0553] Optionally, if the number of intra-prediction tools in the second candidate table containing intra-prediction tools in the candidate table set is 20, and the number of elements in the second candidate table represented by the construction factor is 10, then the second candidate table can be truncated according to the construction factor, retaining the first 10 intra-prediction tools in the second candidate table to obtain a new second candidate table, which includes 10 intra-prediction tools.
[0554] Optionally, at least one of the following can be truncated, adjusted, and / or updated based on at least one construction factor: the tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters of at least one intra-prediction tool in the candidate tree structure; and / or at least one candidate table and / or elements within the candidate table in the candidate tree structure can be truncated, adjusted, and / or updated.
[0555] Optionally, the current block may be subjected to a first process, such as prediction and / or reconstruction, based on the truncated, and / or adjusted, and / or updated candidate table set and / or candidate tree structure.
[0556] Optionally, taking intra-frame prediction tools as an example, as shown in Figure 12, when the processing device starts intra-frame prediction, the encoder can obtain a complete set of intra-frame prediction tools (e.g., 10 tools), estimate the fast rate distortion (RD) cost for each tool, sort them by RD cost, select the top K tools, construct a truncated candidate table (e.g., the candidate table set and / or the candidate table in the candidate tree structure can be truncated according to the construction factor to obtain the truncated candidate table), and transmit construction parameters (e.g., construction factor) through syntax elements, transmit construction parameters in Slice / Tile / image header, and encode indexes in the truncated candidate table for bitstream transmission.
[0557] Alternatively, the decoder can read the construction parameters from the syntax elements, reconstruct the truncated candidate table, parse the index, determine the prediction tool, perform intra-frame prediction reconstruction, and so on until the end.
[0558] Optionally, the encoder can obtain all intra-prediction tools in the current block and construct a candidate table set and / or candidate tree structure containing at least one intra-prediction tool. It can calculate the fast rate-distortion cost for each intra-prediction tool in the candidate table set and / or candidate tree structure, sort the intra-prediction tools in the candidate table set and / or candidate tree structure according to the cost, and truncate the candidate table containing at least one intra-prediction tool in the candidate table set and / or candidate tree structure according to the construction factor to obtain a truncated candidate table. For example, after sorting according to the cost, the top K (K can be 4 or 6) intra-prediction tools are selected to construct the truncated candidate table.
[0559] Optionally, candidate list construction parameters (such as construction factors) may be transmitted in the Slice header, Tile header, or frame header. Construction factors may include: a K value, a list of identifiers for the selected tools, or an index number of the construction rule, and their transmission frequency depends on the sharing range (e.g., once per Slice, once per Tile, or once per frame).
[0560] Optionally, the encoding end selects the final tool from the truncated candidate list range and writes its corresponding index into the bitstream. Since the list length is reduced from N to K, the number of index bits is reduced from ceil(log2(N)) to ceil(log2(K)).
[0561] Optionally, the decoder can read construction parameters from the syntax elements, construct a truncation candidate table in the same way as the encoder, and / or parse the index from the bitstream, and input the parsed index into the truncation candidate table to obtain the corresponding intra-prediction tool, and use the intra-prediction tool to reconstruct the current block.
[0562] Optionally, when there are many types of intra-frame prediction tools, the number of index bits can be reduced from 4 bits (16 tools) to 2-3 bits (4-8 tools) by truncating the first parameter. This can achieve an overall bitrate gain in scenarios where multiple blocks share high-level parameters, and is especially suitable for scenarios where the complete set of tools is large but actual use is concentrated in a few tools.
[0563] In this approach, by truncating, adjusting, and / or updating the candidate table set and / or candidate tree structure based on at least one construction factor, the phenomenon of excessively large candidate table sets and / or candidate tree structures leading to reduced intra-frame prediction efficiency can be avoided.
[0564] Optionally, to aid in understanding the image processing process in this embodiment, examples are provided below.
[0565] Optionally, as shown in Figure 13, when the processing device is the encoding end and intra-frame prediction begins, the current block can be used as the current coding block (CU). The current block context information can be obtained. The context information may include the block size parameters (such as size WxH), such as the size parameters of at least one of the following: the current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-occurrence block, temporal block, default block, and candidate block; quantization parameters (QP); neighbor block tool information, such as the intra-frame prediction tool and / or prediction mode used by at least one of the following: the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-occurrence block, temporal block, default block, and candidate block; and the encoding / decoding status of at least one of the following: the left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-occurrence block, temporal block, default block, and candidate block.
[0566] Optionally, a candidate set and / or candidate tree structure are then constructed, where the candidate tables in the candidate set and / or candidate tree structure can be the Intra MPT candidate list.
[0567] Optionally, multiple strategies such as block (e.g., neighboring block) tool information, block size adaptation priority, and directional feature matching can be used to determine or generate an ordered list (i.e., candidate table) containing N (N is an integer greater than 1) candidate tools.
[0568] Optionally, the elements in the constructed candidate set and / or candidate tree structure can be traversed, such as traversing candidate tools and calculating the RD cost of each tool. That is, traversing the intra-prediction tools in the candidate set and / or candidate tree structure and calculating the rate-distortion cost for each intra-prediction tool. If each intra-prediction tool contains an internal mode space (such as 67 modes for angle prediction), then mode-level RDO selection is performed within the tool, that is, the selection of the intra-prediction mode is performed.
[0569] Optionally, the tool with the optimal RD cost is determined and written to the MPT index to the bitstream, and it is determined whether the selected tool has an internal mode tool:
[0570] If yes, then encode the internal mode index and perform intra-frame prediction to calculate residuals, transform, quantize, and entropy coding; and / or, if no, then directly perform intra-frame prediction, calculate residuals, and other operations, then update the CU state (record tool usage information), move to the next CU, and continue until the end.
[0571] Optionally, the cost-optimal intra-prediction tool can be determined based on the cost of each intra-prediction tool, and the index corresponding to the cost-optimal intra-prediction tool can be written into the bitstream. If the cost-optimal intra-prediction tool includes at least one intra-prediction mode, the cost-optimal intra-prediction mode can be determined, and its corresponding index can be written into the bitstream. This achieves the goal of writing at least one index from the index set into the bitstream, using the determined intra-prediction tool and / or intra-prediction mode to perform intra-prediction on the current block, calculating the prediction residual, transforming, quantizing, and entropy encoding the residual, writing it into the bitstream, updating the encoding / decoding state of the current block (including the usage record of the intra-prediction tool, etc.), and then processing the next image block.
[0572] Optionally, this embodiment can provide the main path for the engineering implementation of the encoding end, which can be directly mapped to the mode decision and entropy coding stages of the encoding end. It is highly compatible with the existing encoder architecture and does not require significant modification to the existing encoding process.
[0573] Optionally, as shown in Figure 14, when the processing device is the encoding end and intra-frame prediction begins, the current block can be used as the current coding block (CU). The context information of the current block can be obtained, which is symmetrical and consistent with the context information in the encoding end. A candidate table set and / or candidate tree structure is constructed. Then, the MPT index is parsed from the bitstream. Based on the MPT index, the intra-frame prediction tool is determined from the candidate table set and / or candidate tree structure. It is determined whether the selected tool contains internal mode parameters. If so, the internal mode parameters are parsed; and / or not, intra-frame prediction is performed to obtain the prediction block. The residual data is parsed, dequantized, and inversely transformed to obtain the residual block. Reconstruction: the prediction block + the residual block obtains the reconstructed block. The decoded state is updated, and the tool usage information is recorded for the construction of the MPT list for subsequent blocks.
[0574] Optionally, when the decoding end parses the MPT index (that is, at least one index in the index set) from the bitstream, it can perform decoding according to different rules. For example, if the encoding end uses fixed-length encoding, it can directly read the `ceil(log2(N))` bits; if variable-length encoding (such as CABAC) is used, it can decode according to the context model.
[0575] Optionally, based on at least one index parsed from the bitstream, the intra-prediction tool and / or intra-prediction mode used for the current block can be determined from the candidate table set and / or candidate tree structure to perform intra-prediction on the current block, obtaining a predicted block. Then, residual data is parsed from the bitstream, and inverse quantization and inverse transform are performed to obtain a residual block. The predicted block and the residual block are added together to complete the reconstruction, and the encoding / decoding state of the current block (including the usage record of the intra-prediction tool, etc.) is updated. Then, the next image block is processed until the end.
[0576] Optionally, in this embodiment, the encoding end and the decoding end use the same method to construct the candidate table set and / or candidate tree structure, and the decoding end does not need to rely on other additional transmission information when constructing the candidate table set and / or candidate tree structure, thus ensuring the synchronization of the encoding end and the decoding end.
[0577] Optionally, at least one candidate table in the candidate table set and / or candidate tree structure can be flattened to obtain a flattened candidate table.
[0578] Optionally, as shown in Figure 15, when starting intra-frame prediction, all available tools can be collected as AIITools[], an empty UnifiedMPTList[] can be initialized, and adjacent blocks can be checked, neighboring tools can be inserted according to priority, and deduplication can be performed. The sorting can be adjusted according to the block size, and the remaining slots can be filled with the default priority order to form a flattened candidate table. It can also be determined whether the processing device is an encoder or a decoder. If it is an encoder, all candidate tools can be evaluated through RDO, the optimal tool can be selected, a single index can be written, and it can be checked whether the tool has an internal mode. If it does, the internal mode index is encoded, and intra-frame prediction + residual coding is performed until the end; and / or, if not, intra-frame prediction + residual coding is performed directly until the end.
[0579] Optionally, if the processing device is a decoder, a single index is parsed from the bitstream, the tool is directly determined from the UnifiedMPTList[], and it is detected whether the tool has an internal mode. If so, the internal mode parameters are parsed, and intra-frame prediction + inverse quantization + inverse transform + reconstruction is performed until the end; and / or, if not, intra-frame prediction + inverse quantization + inverse transform + reconstruction is performed directly.
[0580] Optionally, all available intra-frame prediction tools, including Planar, DC, Angular Prediction, MIP, DIMD, TIMD, EIP, MRL, OBIC, SGPM, BDPCM, etc., can be collected to form a complete tool set AllTools[]. An empty unified candidate list UnifiedMPTList[] is initialized, with a maximum list length of N (e.g., N=8 or N=10).
[0581] Optionally, taking the neighbor blocks as an example, check the usage of intra prediction tools in the neighbor blocks. Read the identification of the intra prediction tools used in the neighbor blocks in the priority order of the left neighbor block, the upper neighbor block, the upper-left neighbor block, and the upper-right neighbor block. For each intra prediction tool of a neighbor block, if it has not appeared in UnifiedMPTList[], append it to the end of the candidate list. For example, if the left neighbor block uses DIMD, the upper neighbor block uses MIP, the upper-left neighbor block also uses DIMD, and the upper-right neighbor block uses Angular Prediction, the initial candidate list is [DIMD, MIP, Angular].
[0582] Optionally, sort and adjust the candidate list based on the current block size information. Classify the blocks into three categories: large blocks (S ≥ 1024), medium blocks (64 < S < 1024), and small blocks (S ≤ 64) according to the block area S = width W × height H. Each category has a corresponding default tool priority sorting, and fine-tune the candidate list: promote the intra prediction tools that are highly adaptable to the current block size in the default priority but have not entered the candidate list to a position near the front of the list.
[0583] Optionally, append the intra prediction tools that have not appeared in the candidate list in the tool set to the end of the list in the order of the default statistical priority until the length of the list reaches N. Finally, form a complete unified flattened candidate list UnifiedMPTList[]. Each element in the flattened candidate list represents an independent intra prediction tool, and there is no large-category grouping structure.
[0584] Optionally, the encoder performs rate-distortion cost evaluation (RDO) on all intra prediction tools in the candidate list, selects the intra prediction tool with the optimal cost, and writes its single index in the list (ceil(log2(N)) bits, for example, only 3 bits when N = 8) into the code stream. If the selected intra prediction tool contains an internal mode space (such as 67 angular modes of Angular Prediction, matrix indices of MIP, reference line numbers of MRL, etc.), then continue to encode the internal mode index (such as MPM index) after this index. This step forms a signaling structure of "one MPT index + optional internal mode index", but only one list lookup is required to determine the tool.
[0585] Optionally, the decoder constructs UnifiedMPTList[] according to exactly the same rules as the encoder, resolves the single index value from the code stream, directly determines the intra prediction tool of the current block, and then resolves the internal mode parameters according to the tool type, and completes prediction and reconstruction using the determined intra prediction tool and / or intra prediction mode.
[0586] Optionally, a flattened candidate table is used to predict and / or reconstruct the current block. This results in a simpler signaling structure, requiring only one MPT index parsing to determine the tool, leading to lower codec implementation complexity; lower decoding latency; and a single list lookup, reducing dependencies in the pipeline and facilitating high-throughput decoder design. Global sorting is more flexible; the flattened candidate table is not constrained by class grouping and can perform globally probabilistically optimal sorting of all tools based on neighbor block information and block size information. In scenarios with a moderate number of tools (e.g., 8-12 tools), sorting accuracy is higher. For signaling switching between wireless classes, tool switching within a frame only manifests as a change in index value. It offers good scalability; newly added intra-frame prediction tools only need to be appended to the end of the flattened candidate table or added to appropriate positions according to priority, without modifying the class structure or adding new hierarchical indexes, resulting in low maintenance costs. Indexing efficiency is better when the tool set is small; for example, when the total number of intra-frame tools is 8-12, a single MPT index in the flattened scheme only requires 3-4 bits.
[0587] In this embodiment, the current block is processed by a third parameter determined by the first parameter and / or the second parameter to complete intra-frame prediction, ensuring the effective execution of intra-frame prediction. Or, to avoid the first parameter being too large and causing a decrease in intra-frame prediction efficiency, the first parameter is processed by a construction factor before subsequent intra-frame prediction, which can improve the efficiency of intra-frame prediction.
[0588] Optionally, referring to FIG16, this application embodiment also provides an image processing apparatus, the image processing apparatus including:
[0589] Processing module A10 is used to perform first processing on the current block based on the first parameter and / or the second parameter.
[0590] Optionally, the processing module A10 is also configured to perform at least one of the following:
[0591] The first parameter is a candidate table set and / or a candidate tree structure; the second parameter is an index set; the first processing is prediction; the first processing is reconstruction; the candidate table set includes at least one first candidate table and / or a flattened candidate table; the elements of at least one first candidate table and / or a flattened candidate table in the candidate table set include at least one of the following: the tool type of the intra-prediction tool, the intra-prediction tool, the intra-prediction mode, and the intra-prediction mode parameters;
[0592] The first candidate table is at least one of the following: a second candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a third candidate table containing at least two intra prediction tools of the same type; a fourth candidate table containing at least two intra prediction modes of the same type; and at least one of the following preset candidate tables.
[0593] At least one first element in the first candidate table and / or the flattened candidate table is an element after priority and / or sorting order adjustment;
[0594] At least one second element in the first candidate list and / or the flattened candidate list is an element that has not been adjusted in priority and / or order.
[0595] At least one third element in at least one first candidate table and / or flattened candidate table in the candidate table set has a strong correlation with another first candidate table.
[0596] At least one fourth element in at least one first candidate table and / or flattened candidate table in the candidate table set has a non-strongly correlated correspondence with another first candidate table.
[0597] At least one fifth element in at least one first candidate table in the candidate table set has a strong correlation with the flattened candidate table;
[0598] At least one sixth element in at least one first candidate table in the candidate table set has a non-strong correlation with the flattened candidate table;
[0599] The index set includes at least one of the following: a first index representing at least one intermediate element, a second index representing at least one candidate table, a third index representing the tool type of the intra-prediction tool, a fourth index representing the intra-prediction tool, a fifth index representing the intra-prediction mode, and a sixth index representing the parameters of the intra-prediction mode.
[0600] In the candidate tree structure, at least one first node and / or the seventh element of at least one layer of architecture has a branching structure;
[0601] In the candidate tree structure, at least one second node and / or the eighth element of at least one layer of architecture has a non-branching structure;
[0602] The nodes in the candidate tree structure with at least one layer of architecture and / or at least one branch structure include at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, intra prediction mode parameters, a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters, a sixth candidate table containing at least two intra prediction tools of the same type, a seventh candidate table containing at least two intra prediction modes of the same type, and at least one of the following preset candidate tables;
[0603] In the candidate tree structure, at least one element of at least one layer of architecture and / or at least one branch structure is an element after priority and / or sorting order adjustment;
[0604] The first parameter is the set of most likely candidate tables that includes at least one most likely candidate table; the first parameter is the set of non-most likely candidate tables that includes at least one non-most likely candidate table; the first parameter is the set of non-most likely candidate tables that includes at least one most likely candidate table and non-most likely candidate tables; the first parameter is the most likely candidate tree structure and / or the non-most likely candidate tree structure.
[0605] Intra-frame prediction tools include at least one of the following: planar prediction mode, DC prediction mode, angle prediction mode, matrix-based intra-frame prediction, decoder-side intra-frame mode derivation, template-based mode derivation, extended intra-frame prediction, multi-reference line intra-frame prediction, intra-frame coding based on occurrence frequency / intra-frame coding based on statistical frequency, spatial geometric partitioning mode, and intra-block differential prediction coding.
[0606] At least one element in the most likely candidate list and / or the most likely candidate tree structure points to at least one of the following: primary most likely mode list, secondary most likely mode list, complete MPM list, non-MPM candidate list, matrix candidate prediction mode list, chroma intra-frame candidate list, geometric segmentation intra-frame MPM list, spatial geometric partition merged intra-frame list, cross-component prediction candidate list, chroma candidate list based on luma gradient, EIP derived candidate list, EIP merged candidate list, general merged candidate list, affine merged candidate list, IBC merged candidate list, bidirectional merged candidate list, geometric segmentation unidirectional prediction candidate list;
[0607] The most likely candidate tables include: at least one first candidate table and / or a flattened candidate table that has been prioritized and / or sorted.
[0608] Non-most likely candidate tables include: at least one first candidate table and / or flattened candidate table that have not been adjusted in priority and / or sorting order;
[0609] At least one element in the most likely candidate tree structure has been prioritized and / or its order adjusted;
[0610] At least one element in the non-most likely candidate tree structure has not been adjusted in priority and / or order;
[0611] The intra-frame prediction tool and / or prediction mode used in at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0612] Size parameter of at least one of the following: current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block;
[0613] The prediction direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0614] Template features of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0615] Edge direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block;
[0616] Texture direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
[0617] Optionally, processing module A10 is also used to perform:
[0618] Based on the first parameter and / or the second parameter, determine or obtain the third parameter, and perform the first processing on the current block based on the third parameter.
[0619] Optionally, the third parameter includes at least one of the following:
[0620] The tool type of the intra-prediction tool; the intra-prediction tool; the intra-prediction mode; the intra-prediction mode parameters; at least one of the first to seventh candidate tables; a preset candidate table; first indication information indicating at least one of the tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters of the intra-prediction tool; second indication information indicating at least one of the first to seventh candidate tables and / or the preset candidate table; at least one index in the index set.
[0621] Optionally, processing module A10 is also used to perform:
[0622] The first parameter is processed based on the current block's build factor.
[0623] Optionally, the processing module A10 is also configured to perform at least one of the following:
[0624] The build factor is determined or obtained based on at least one of the size parameters of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block, the cost of at least one intra-frame prediction tool, and at least one of the syntax elements obtained in the bitstream.
[0625] The number and / or position of at least one element in the candidate table set and / or candidate tree structure are determined or obtained based on at least one construction factor;
[0626] The candidate table set and / or candidate tree structure are truncated, and / or adjusted, and / or updated based on at least one construction factor.
[0627] 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.
[0628] 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.
[0629] 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.
[0630] 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.
[0631] 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.
[0632] 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.
[0633] 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.
[0634] 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.
[0635] 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.
[0636] 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.
[0637] 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.
[0638] 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)).
[0639] 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: S1, perform the first processing on the current block according to the first parameter and / or the second parameter.
2. The image processing method as described in claim 1, wherein, It also includes at least one of the following: The first parameter is the candidate table set and / or the candidate tree structure; The second parameter is the index set; The first step is prediction; The first step is to refactor.
3. The image processing method as described in claim 2, wherein, The candidate table set includes at least one first candidate table and / or a flattened candidate table; and / or, includes at least one of the following: The elements of at least one first candidate table and / or flattened candidate table in the candidate table set include at least one of the following: the tool type of the intra prediction tool, the intra prediction tool, the intra prediction mode, and the intra prediction mode parameters. The first candidate table is at least one of the following: a second candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters; a third candidate table containing at least two intra prediction tools of the same type; a fourth candidate table containing at least two intra prediction modes of the same type; and at least one of the following preset candidate tables. At least one first element in the first candidate table and / or the flattened candidate table is an element after priority and / or sorting order adjustment; At least one second element in the first candidate list and / or the flattened candidate list is an element that has not been adjusted in priority and / or order. At least one third element in at least one first candidate table and / or flattened candidate table in the candidate table set has a strong correlation with another first candidate table. At least one fourth element in at least one first candidate table and / or flattened candidate table in the candidate table set has a non-strongly correlated correspondence with another first candidate table. At least one fifth element in at least one first candidate table in the candidate table set has a strong correlation with the flattened candidate table; At least one sixth element in at least one first candidate table in the candidate table set has a non-strong correlation with the flattened candidate table; The index set includes at least one of the following: a first index representing at least one intermediate element, a second index representing at least one candidate table, a third index representing the tool type of the intra-prediction tool, a fourth index representing the intra-prediction tool, a fifth index representing the intra-prediction mode, and a sixth index representing the parameters of the intra-prediction mode.
4. The image processing method as described in claim 2, wherein, It also includes at least one of the following: In the candidate tree structure, at least one first node and / or the seventh element of at least one layer of architecture has a branching structure; In the candidate tree structure, at least one second node and / or the eighth element of at least one layer of architecture has a non-branching structure; The nodes in the candidate tree structure with at least one layer of architecture and / or at least one branch structure include at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, intra prediction mode parameters, a fifth candidate table containing at least one of the following: tool type of intra prediction tool, intra prediction tool, intra prediction mode, and intra prediction mode parameters, a sixth candidate table containing at least two intra prediction tools of the same type, a seventh candidate table containing at least two intra prediction modes of the same type, and at least one of the following preset candidate tables; In the candidate tree structure, at least one element of at least one layer of architecture and / or at least one branch structure is an element after priority and / or sorting order adjustment; The first parameter is the set of most likely candidate tables that includes at least one most likely candidate table; The first parameter is a set of non-most likely candidate tables that includes at least one non-most likely candidate table; The first parameter is a set of non-most likely candidate tables that includes at least one most likely candidate table and a non-most likely candidate table; The first parameter is the most likely candidate tree structure and / or the non-most likely candidate tree structure; Intra-frame prediction tools include at least one of the following: planar prediction mode, DC prediction mode, angle prediction mode, matrix-based intra-frame prediction, decoder-side intra-frame mode derivation, template-based mode derivation, extended intra-frame prediction, multi-reference line intra-frame prediction, intra-frame coding based on occurrence frequency / intra-frame coding based on statistical frequency, spatial geometric partitioning mode, and intra-block differential prediction coding. At least one element in the most likely candidate list and / or the most likely candidate tree structure points to at least one of the following: primary most likely mode list, secondary most likely mode list, complete MPM list, non-MPM candidate list, matrix candidate prediction mode list, chroma intra-frame candidate list, geometric segmentation intra-frame MPM list, spatial geometric partition merged intra-frame list, cross-component prediction candidate list, chroma candidate list based on luminance gradient, EIP derived candidate list, EIP merged candidate list, general merged candidate list, affine merged candidate list, IBC merged candidate list, bidirectional merged candidate list, and geometric segmentation unidirectional prediction candidate list.
5. The image processing method of claim 4, wherein, It also includes at least one of the following: The most likely candidate tables include: at least one first candidate table and / or a flattened candidate table that has been prioritized and / or sorted. Non-most likely candidate tables include: at least one first candidate table and / or flattened candidate table that have not been adjusted in priority and / or sorting order; At least one element in the most likely candidate tree structure has been prioritized and / or its order adjusted; At least one element in the non-most likely candidate tree structure has not been adjusted in priority and / or order.
6. The image processing method of claim 2, wherein, Adjust the priority and / or order of the elements in the first parameter according to at least one of the following: The intra-frame prediction tool and / or prediction mode used in at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block; Size parameter of at least one of the following: current block, left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross-component block, co-position block, temporal block, default block, and candidate block; The prediction direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block; Template features of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block; Edge direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block; Texture direction of at least one of the following: left neighbor block, top neighbor block, top left neighbor block, top right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block, and candidate block.
7. The image processing method of claim 2, wherein, Step S1 includes: Based on the first parameter and / or the second parameter, determine or obtain the third parameter, and perform the first processing on the current block based on the third parameter.
8. The image processing method as described in claim 7, wherein, The third parameter includes at least one of the following: Intra-frame prediction tool types; Intra-frame prediction tools; Intra-frame prediction mode; Intra-frame prediction mode parameters; At least one of the first to seventh candidate lists; Pre-defined candidate table; First indication information characterizing at least one of the following: tool type, intra-prediction tool, intra-prediction mode, and intra-prediction mode parameters; Characterizes at least one of the first to seventh candidate tables, and / or a second indication information of a predefined candidate table; At least one index in the index set.
9. The image processing method as described in claim 1, wherein, Also includes: The first parameter is processed based on the current block's build factor.
10. The image processing method of claim 9, wherein, It also includes at least one of the following: The build factor is determined or obtained based on at least one of the size parameters of the current block, left neighbor block, upper neighbor block, upper left neighbor block, upper right neighbor block, non-neighbor block, cross component block, co-position block, temporal block, default block and candidate block, the cost of at least one intra-frame prediction tool, and at least one of the syntax elements obtained in the bitstream. The number and / or position of at least one element in the candidate table set and / or candidate tree structure are determined or obtained based on at least one construction factor; The candidate table set and / or candidate tree structure are truncated, and / or adjusted, and / or updated based on at least one construction factor.
11. A processing device, wherein, include: The system includes 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 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.