Method, device, apparatus and readable storage medium for selecting anti-aliasing algorithm
By dynamically selecting the anti-aliasing algorithm, a suitable algorithm is chosen based on the model rendering information of the game scene, which solves the problem of poor anti-aliasing effect caused by fixed algorithms and improves image quality.
Patent Information
- Application Number
- CN202011273391.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-11-13
- Publication Date
- 2025-10-28
- Estimated Expiration
- 2040-11-13
AI Technical Summary
Current games use fixed anti-aliasing algorithms to process images, resulting in poor anti-aliasing effects for some images and failing to meet the needs of different scenarios.
By acquiring model rendering information from the image, an anti-aliasing algorithm suitable for the current scene, such as FXAA and MSAA, is dynamically selected. The target anti-aliasing algorithm is selected based on the model's rendering information, and an instruction is sent to the GPU for rendering.
It improves anti-aliasing performance, enhances image quality, adapts to changes in different game scenarios, and ensures the applicability and effectiveness of the anti-aliasing algorithm.
Smart Images

Figure CN114565708B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of computer technology, and in particular to a method, apparatus, device, and readable storage medium for selecting an anti-aliasing algorithm. Background Technology
[0002] In signal processing and related fields, aliasing refers to the phenomenon where different signals appear to be identical when sampled.
[0003] In the field of image processing, aliasing can include geometric aliasing, shading aliasing, and temporal aliasing. Taking geometric aliasing as an example, it typically manifests as jagged edges. Jagged edges refer to the appearance of jagged, uneven edges on the edges of an image displayed on a monitor. For example, a straight line... Figure 1 As shown, Figure 1 The line shown is magnified, and the magnified image of the line is as follows: Figure 2 As shown, it can be seen that jagged edges appear on both sides of this straight line.
[0004] Because jagged edges can negatively impact image display, anti-aliasing (AA) technology was developed. Also known as anti-aliasing edge smoothing, anti-aliasing, and anti-image folding loss, anti-aliasing is a technique that eliminates jagged edges appearing at the edges of an image. For example, using anti-aliasing to render a straight line will result in a line displayed as shown below. Figure 3 As shown. Comparison Figure 2 and Figure 3 As can be seen, anti-aliasing technology softens jagged edges, making straight lines appear smoother.
[0005] There are many anti-aliasing algorithms. However, in existing games, a fixed anti-aliasing algorithm is usually chosen to process all images in the game. Since each anti-aliasing algorithm has different applicable scenarios, using a fixed anti-aliasing algorithm will result in poor anti-aliasing effects for some images. Summary of the Invention
[0006] This application provides a method, apparatus, device, and readable storage medium for selecting an anti-aliasing algorithm. The method can dynamically select an anti-aliasing algorithm suitable for the current image scene, thereby improving the anti-aliasing effect and image quality.
[0007] The first aspect of this application provides a method for selecting an anti-aliasing algorithm, which can be applied to a central processing unit (CPU). The method includes: obtaining at least one instruction for calling an application programming interface (API), the at least one instruction carrying rendering information for M models, including but not limited to vertex data, model identifiers, the ID of the VBO corresponding to the model, and the ID of the EBO corresponding to the model, wherein the M models belong to the same frame image, and M is a positive integer; selecting an anti-aliasing algorithm as a target anti-aliasing algorithm from a variety of anti-aliasing algorithms based on the rendering information of the M models, the variety of anti-aliasing algorithms including at least two of SSAA, MSAA, CSAA, CFAA, FXAA, TXAA, and DLAA algorithms; and sending indication information to a graphics processing unit (GPU), the indication information instructing the GPU to render at least one frame image based on the target anti-aliasing algorithm.
[0008] It should be understood that the “at least one frame” for which the selected antialiasing algorithm is applied may include the frame to which the M models belong, or it may not be applied to this frame in time, but to one or more subsequent frames.
[0009] Since the M models belong to the same frame image, the rendering information of each of the M models can reflect the specific scene of the frame image. Therefore, determining the target anti-aliasing algorithm based on the rendering information of each of the M models can achieve dynamic selection of the target anti-aliasing algorithm and obtain a target anti-aliasing algorithm suitable for the current image scene, so as to improve the anti-aliasing effect and improve the image quality.
[0010] As one implementation method, various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm. Accordingly, selecting an anti-aliasing algorithm as the target anti-aliasing algorithm based on the rendering information of M models includes: determining N models from the M models whose rendering information contains texture information, where texture information indicates the use of texture data during model rendering, and N is a positive integer less than or equal to M; calculating the vertex repetition degree of each of the N models, where vertex repetition degree can be represented by the number of times a vertex is reused, or by the total number of vertices and the number of times each vertex is reused. Specifically, vertex repetition degree can be equal to the ratio of the number of times each vertex is reused in the model to the sum of the total number of vertices and the number of times each vertex is reused; and selecting the FXAA algorithm as the target anti-aliasing algorithm based on the condition that K models among the N models have a vertex repetition degree less than the target repetition degree. The condition can include various elements, such as a threshold for the number of models, where K is a positive integer less than or equal to N.
[0011] Since the FXAA algorithm is suitable for rendering models drawn with texture maps and with low vertex repetition, in this implementation, N models drawn with texture maps are first selected from M models, and then K models with vertex repetition less than the target repetition are selected from the N models. Finally, when the K models meet the target conditions, the FXAA algorithm is selected, thus ensuring that the FXAA algorithm is applicable to the scene of the image to which the M models belong.
[0012] As one implementation method, the conditions include that the ratio of the projected area of the K models in the screen space to the screen area is greater than the target ratio. The value of the target ratio can be set according to experience, the type of game application, and the specific game scenario. For example, the target ratio can be set to 1 / 3, 2 / 5, or 1 / 2.
[0013] This implementation provides another example of the conditions. Since the FXAA algorithm is suitable for rendering models drawn with texture maps and with low vertex redundancy, when the proportion of the screen area occupied by the K models drawn with texture maps and with low vertex redundancy is large, choosing the FXAA algorithm as the target anti-aliasing algorithm can ensure that the current frame image has a good anti-aliasing effect.
[0014] As one implementation method, after calculating the vertex repetition of each of the N models, and before selecting the FXAA algorithm as the target anti-aliasing algorithm based on the condition that the K models with vertex repetition less than the target repetition among the N models meet the condition, the method also includes: calculating the ratio of the projected area of the K models in the screen space to the screen area. There are various methods for calculating the ratio.
[0015] Calculate the ratio of the projected area of K models in screen space to the screen area. When this ratio is greater than the target ratio, select the FXAA algorithm as the target anti-aliasing algorithm to ensure that the current frame image has a good anti-aliasing effect.
[0016] As one implementation, calculating the ratio of the projected area of K models in screen space to the screen area includes: obtaining P bounding boxes that surround the K models, where each bounding box is a geometry that surrounds at least one of the K models. One bounding box can correspond to one model or multiple models. The shape of the bounding boxes can be various, such as cuboids, cubes, spheres, etc.; calculating the projected area of the P bounding boxes in screen space based on the transformation matrix, which is used to project the P bounding boxes from model space to screen space. Different bounding boxes can correspond to different transformation matrices; calculating the ratio of the projected area of the P bounding boxes in screen space to the screen area, and using this ratio as the ratio of the projected area of the K models in screen space to the screen area.
[0017] Since the models themselves are usually irregular geometries, directly calculating the ratio of the model's projected area in screen space to the screen area would be quite cumbersome. Therefore, in this implementation, we first obtain P bounding boxes that surround the K models, then calculate the ratio of the projected area of the P bounding boxes in screen space to the screen area, and use this ratio as an approximation of the ratio of the projected area of the K models in screen space to the screen area. This simplifies the ratio calculation process, improves the ratio calculation effect, and thus improves the efficiency of determining the target anti-aliasing algorithm.
[0018] As one implementation, the rendering information for each of the M models also includes the vertex buffer objects (VBOs) corresponding to each of the M models. Accordingly, obtaining the P bounding boxes that surround the K models includes: obtaining the vertex data corresponding to each of the K models from the vertex buffer objects (VBOs) corresponding to each of the K models, wherein the vertex data may include vertex coordinates and vertex normals; determining the P bounding boxes based on the vertex data corresponding to each of the K models. Specifically, based on the vertex coordinates of each of the K models, the maximum and minimum coordinate values of each model in each direction can be determined, and then the P bounding boxes can be determined.
[0019] In this implementation, P bounding boxes are determined based on the vertex data corresponding to each of the K models, so that the volume of the determined bounding boxes is not much different from the actual volume of the model. In this way, the ratio of the projected area of the P bounding boxes in the screen space to the screen area can be approximately equal to the ratio of the projected area of the K models in the screen space to the screen area, thereby ensuring the accuracy of the conditions and making the selected FXAA algorithm applicable to the scene of the image to which the M models belong.
[0020] As one implementation, N models contain a target model. The rendering information of the target model also includes the index buffer object (EBO) corresponding to the target model. Accordingly, calculating the vertex repetition of each of the N models includes: obtaining the number of vertex indices and the number of vertex index key values corresponding to the target model from the EBO corresponding to the target model. Here, the vertex index can be understood as the index of the storage location of the vertex, and the vertex index key value refers to the value of the index. Based on the number of vertex indices and the number of vertex index key values, the vertex repetition of the target model is calculated. The vertex repetition of the target model is the ratio of the target difference to the number of vertex indices. The target difference is equal to the difference between the number of vertex indices and the number of vertex index key values.
[0021] Calculating vertex redundancy using the number of vertex indices and the number of vertex index key values is computationally less and simpler than calculating vertex redundancy using vertex data, thus improving the efficiency of the target anti-aliasing algorithm.
[0022] As one implementation method, M models refer to all models in the image. Multiple anti-aliasing algorithms also include the multi-sampling anti-aliasing (MSAA) algorithm. Selecting an anti-aliasing algorithm as the target based on the rendering information of each of the M models also includes: selecting the MSAA algorithm as the target anti-aliasing algorithm based on the fact that K models among the N models whose vertex repetition is less than the target repetition does not meet the condition, where K is a positive integer less than or equal to N.
[0023] Since FXAA and MSAA are two highly applicable anti-aliasing algorithms, this implementation first determines whether the FXAA algorithm is suitable for the current image scene based on the rendering information of M models. If it is suitable, the FXAA algorithm is selected as the target anti-aliasing algorithm; if it is not suitable, the MSAA algorithm is selected as the target anti-aliasing algorithm. By continuously switching between the FXAA and MSAA algorithms according to different scenes, the anti-aliasing effect of the game application can be improved.
[0024] As one implementation method, before selecting the FXAA algorithm as the target anti-aliasing algorithm based on the condition that K models among N models have vertex repetition less than the target repetition, the method further includes: acquiring multiple frames of images under various specific scenarios, each specific scenario can be set according to the type of game application and corresponds to at least one frame of image, and the various specific scenarios can include all the main scenarios in the game application; calculating the vertex repetition of at least one specific model in the multiple frames of images, the at least one specific model can be a model suitable for the FXAA algorithm, for example, it can be a model drawn by texture mapping, or it can be a model with low vertex repetition; and determining the target repetition based on the vertex repetition of the at least one specific model.
[0025] Select multiple frames of images from a specific scene so that the determined target repetition is applicable to the selection of target anti-aliasing algorithms in all scenes of the game application; and determine the target repetition based on the vertex repetition of at least one specific model in the multiple frames of images, for example, when the at least one specific model is applicable to the FXAA algorithm model, so that the finally determined target repetition can be used for the selection of the FXAA algorithm.
[0026] A second aspect of this application provides an apparatus for selecting an anti-aliasing algorithm, comprising:
[0027] The acquisition unit is used to acquire at least one instruction for calling the application programming interface (API). The at least one instruction carries rendering information for each of the M models. The M models belong to the same frame image, and M is a positive integer.
[0028] The selection unit is used to select one anti-aliasing algorithm from multiple anti-aliasing algorithms as the target anti-aliasing algorithm based on the rendering information of each of the M models.
[0029] The sending unit is used to send instruction information to the graphics processing unit (GPU), which instructs the GPU to render at least one frame of image based on the target anti-aliasing algorithm.
[0030] As one implementation method, various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm; a selection unit is used to determine N models from M models whose rendering information includes texture information, where texture information indicates the use of texture data during the rendering process, and N is a positive integer less than or equal to M; the vertex repetition of each of the N models is calculated; based on the condition that K models among the N models have vertex repetition less than the target repetition, the FXAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
[0031] As one implementation method, the condition includes that the ratio of the projected area of the K models in the screen space to the screen area is greater than the target ratio.
[0032] As one implementation, the selection unit is also used to calculate the ratio of the projected area of the K models in screen space to the screen area.
[0033] As one implementation, the selection unit is used to obtain P bounding boxes that surround K models, each bounding box being a geometry that surrounds at least one of the K models; the projected area of the P bounding boxes in screen space is calculated based on the transformation matrix, which is used to project the P bounding boxes from model space to screen space; the ratio of the projected area of the P bounding boxes in screen space to the screen area is calculated, and the ratio of the projected area of the P bounding boxes in screen space to the screen area is used as the ratio of the projected area of the K models in screen space to the screen area.
[0034] As one implementation, the rendering information of each of the M models also includes the vertex buffer objects (VBOs) corresponding to each of the M models; a selection unit, used to obtain the vertex data corresponding to each of the K models from the vertex buffer objects (VBOs) corresponding to each of the K models; and to determine P bounding boxes based on the vertex data corresponding to each of the K models.
[0035] As one implementation, N models contain a target model, and the rendering information of the target model also includes the index buffer object (EBO) corresponding to the target model; a selection unit is used to obtain the number of vertex indices and the number of vertex index key values corresponding to the target model from the EBO corresponding to the target model; the vertex repetition of the target model is calculated based on the number of vertex indices and the number of vertex index key values, and the vertex repetition of the target model is the ratio of the target difference to the number of vertex indices, and the target difference is equal to the difference between the number of vertex indices and the number of vertex index key values.
[0036] As one implementation, M models are all the models in the image. Multiple anti-aliasing algorithms also include the multi-sampling anti-aliasing (MSAA) algorithm. The selection unit is also used to select the MSAA algorithm as the target anti-aliasing algorithm based on the fact that K models among the N models whose vertex repetition is less than the target repetition does not meet the condition. K is a positive integer less than or equal to N.
[0037] As one implementation, the device further includes: a determination unit, used to acquire multiple frames of images in multiple scenarios, each scenario corresponding to at least one frame of image; calculate the vertex repetition of at least one specific model in the multiple frames of images; and determine the target repetition based on the vertex repetition of the at least one specific model.
[0038] For details on the implementation, related explanations, and technical effects of each of the above units, please refer to the description of the first aspect of the embodiments of this application.
[0039] A third aspect of this application provides a terminal device, including: one or more processors and a memory; wherein the memory stores computer-readable instructions; the one or more processors read the computer-readable instructions to cause the computer device to implement the method as described in any implementation of the first aspect.
[0040] A fourth aspect of this application provides a computer-readable storage medium including computer-readable instructions that, when executed on a computer, cause the computer to perform the method as described in any implementation of the first aspect.
[0041] A fifth aspect of this application provides a chip including one or more processors. Part or all of the processors are configured to read and execute a computer program stored in a memory to perform the methods in any possible implementation of the first aspect described above.
[0042] Optionally, the chip includes a memory, which is connected to the processor via a circuit or wire. Further optionally, the chip also includes a communication interface, to which the processor is connected. The communication interface is used to receive data and / or information that needs to be processed. The processor obtains the data and / or information from the communication interface, processes the data and / or information, and outputs the processing result through the communication interface. The communication interface can be an input / output interface.
[0043] In some implementations, some of the processors may implement some steps of the above method through dedicated hardware. For example, the processing involving neural network models may be implemented by a dedicated neural network processor or graphics processor.
[0044] The method provided in this application embodiment can be implemented by a single chip or by multiple chips working together.
[0045] A sixth aspect of this application provides a computer program product, which includes computer software instructions that can be loaded by a processor to implement the method described in any of the implementations of the first aspect.
[0046] As can be seen from the above technical solutions, the embodiments of this application have the following advantages:
[0047] Obtain at least one instruction for calling the application programming interface (API), the at least one instruction carrying rendering information of M models, the M models belonging to the same frame image, M being a positive integer; select an anti-aliasing algorithm from multiple anti-aliasing algorithms based on the rendering information of the M models as the target anti-aliasing algorithm; send instruction information to the graphics processing unit (GPU), the instruction information instructing the GPU to render at least one frame image based on the target anti-aliasing algorithm;
[0048] Since the M models belong to the same frame image, the rendering information of each of the M models can reflect the specific scene of the frame image. Therefore, determining the target anti-aliasing algorithm based on the rendering information of each of the M models can achieve dynamic selection of the target anti-aliasing algorithm and obtain a target anti-aliasing algorithm suitable for the current image scene, so as to improve the anti-aliasing effect and improve the image quality. Attached Figure Description
[0049] Figure 1 This is a schematic diagram of an image showing straight lines without anti-aliasing.
[0050] Figure 2 To be Figure 1 A magnified diagram of the straight line in the image;
[0051] Figure 3This is a schematic diagram of a straight line after anti-aliasing processing.
[0052] Figure 4 This is a schematic diagram of the system architecture in an embodiment of this application;
[0053] Figure 5 A schematic diagram of the display settings interface that includes an anti-aliasing switch option;
[0054] Figure 6 A schematic diagram of an embodiment of the method for selecting an anti-aliasing algorithm provided in this application;
[0055] Figure 7 A schematic diagram of another embodiment of the method for selecting an anti-aliasing algorithm provided in this application;
[0056] Figure 8 This is a schematic diagram of a model in one embodiment of this application;
[0057] Figure 9 This is a schematic diagram of the draft model in the embodiments of this application;
[0058] Figure 10 This is a schematic diagram of a human model in an embodiment of this application;
[0059] Figure 11 This is a schematic diagram of a shoe model in an embodiment of this application;
[0060] Figure 12 This is a schematic diagram illustrating the ratio of the projected area to the screen area of K models in an embodiment of this application;
[0061] Figure 13 This is a schematic diagram of one embodiment of the bounding box in this application;
[0062] Figure 14 This is a schematic diagram of another embodiment of the bounding box in this application;
[0063] Figure 15 This is a schematic diagram illustrating an application example in the embodiments of this application;
[0064] Figure 16 This is a schematic diagram of the first type of anti-aliasing effect in the first scenario of the embodiments of this application;
[0065] Figure 17 This is a schematic diagram of the second type of anti-aliasing effect in the first scenario of the embodiments of this application;
[0066] Figure 18 This is a schematic diagram of the first type of anti-aliasing effect in the second scenario of the embodiments of this application;
[0067] Figure 19 This is a schematic diagram of the second type of anti-aliasing effect in the second scenario of the embodiments of this application;
[0068] Figure 20 This is a schematic diagram of the device for selecting an anti-aliasing algorithm in an embodiment of this application;
[0069] Figure 21 This is a schematic diagram of the structure of the terminal device in the embodiments of this application. Detailed Implementation
[0070] The embodiments of this application are described below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not all of them. As those skilled in the art will recognize, with the development of technology and the emergence of new scenarios, the technical solutions provided by the embodiments of this application are also applicable to similar technical problems.
[0071] The terms "first," "second," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that such data can be interchanged where appropriate so that the embodiments described herein can be implemented in a sequence other than that illustrated or described herein. Furthermore, the terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion; for example, a process, method, system, product, or apparatus that includes a series of steps or modules is not necessarily limited to those explicitly listed, but may include other steps or modules not explicitly listed or inherent to such processes, methods, products, or apparatus. The naming or numbering of steps appearing in this application does not imply that the steps in the method flow must be performed in the chronological or logical order indicated by the naming or numbering. The execution order of named or numbered process steps can be changed according to the desired technical purpose, as long as the same or similar technical effect is achieved.
[0072] The embodiments of this application can be applied to, for example... Figure 4 The system architecture shown includes an application layer, a graphical application programming interface (API) layer, a kernel layer, and a hardware layer. This system framework can be applied to any terminal device capable of rendering images; for example, it can be used on terminal devices including, but not limited to, mobile phones, tablets, laptops, and in-vehicle computers.
[0073] like Figure 4As shown, the application layer includes three game applications. It should be noted that in this embodiment, the applications in the application layer mainly refer to game applications, that is, the applications in this application embodiment are mainly applied to the image rendering scene in the game. However, in other embodiments of this application, the applications in the application layer can be other applicable applications, and this application does not specifically limit this; furthermore, the number of game applications is not limited to three, and fewer or more are also possible.
[0074] The graphics API layer includes, but is not limited to, three graphics APIs: Open Graphics Library (OpenGL), OpenGL ES (OpenGL for Embedded Systems), and Vulkan. The graphics API layer can be used to render 2D or 3D scenes to the screen of a terminal device; for example, OpenGL is used to render 2D scenes, while OpenGL ES and Vulkan are used to render 3D scenes.
[0075] The kernel layer includes the system kernel and drivers, etc.
[0076] The hardware layer includes, but is not limited to, the central processing unit (CPU), the graphics processing unit (GPU), and internal memory. The internal memory can be double data rate SDRAM (DDR SDRAM) or other types of internal memory.
[0077] based on Figure 4 The system framework shown, when the game application is running, taking a single frame of image as an example, the image rendering pipeline includes:
[0078] The first step is for the game engine in the game application to traverse the game scene, cropping and removing invisible objects from the game scene.
[0079] The second step involves the game engine preparing data resources for each visible object in the game scene and sending instructions to call the graphics API. These instructions will then pass through the graphics API layer to reach the kernel layer.
[0080] Third, after receiving the instruction to call the graphics API, the kernel-level driver will transfer the data resources to the GPU's internal memory and send rendering instructions to the GPU to instruct it to perform rendering.
[0081] In the fourth step, after receiving the rendering instructions, the GPU reads data resources from its internal memory and executes operations such as the vertex shader, fragment shader, or compute shader to obtain a rendered frame of image.
[0082] In the rendered image, each object is a mesh model, and each mesh model consists of a large number of triangles, each triangle having three vertices. The vertices of different triangles can overlap.
[0083] A vertex shader is a piece of code that processes vertex transformations on the GPU. A vertex shader is executed once for each vertex in a mesh model.
[0084] A fragment shader is a program segment that processes pixel shading on the GPU. After the mesh model undergoes vertex transformation, a pixel shader is executed once for each pixel on the screen covered by the mesh model.
[0085] A compute shader is a program segment that executes on the GPU and can be used for computations other than image rendering. Specifically, compute shaders can be transferred to the GPU for execution via OpenGL ES or the Vulkan API.
[0086] However, because the rendered image contains jagged edges, which affect the display quality, anti-aliasing techniques are used during the image rendering process to reduce the impact of jagged edges on the image display and improve image quality. For example, ... Figure 5 As shown, the game application will provide an anti-aliasing switch option in the display settings interface. Users can choose whether to enable anti-aliasing before or during the game. After the user selects to enable anti-aliasing, the terminal device will use anti-aliasing technology to process the images during subsequent rendering.
[0087] There are various anti-aliasing techniques, including Super-Sampling Anti-aliasing (SSAA), Multisampling Anti-Aliasing (MSAA), Coverage Sampling Anti-Aliasing (CSAA), Custom Filter Anti-Aliasing (CFAA), Fast Approximate Anti-Aliasing (FXAA), Temporal Anti-Aliasing (TXAA), and Deep Learning Anti-Aliasing (DLAA).
[0088] The following section introduces two anti-aliasing technologies that have good applicability among the aforementioned anti-aliasing technologies.
[0089] MSAA, derived from OpenGL, performs supersampling anti-aliasing only on the data in the Z-Buffer and Stencil Buffer. Simply put, MSAA only performs anti-aliasing on the edges of polygons. This significantly reduces resource consumption compared to SSAA, which processes all data in the image, while achieving better anti-aliasing results. Therefore, MSAA is widely used, and almost all games support it.
[0090] FXAA: FXAA is a post-processing anti-aliasing technique. Post-processing refers to processing the result after the normal scene rendering is complete, that is, processing one or more texture images to obtain a new texture image. Therefore, FXAA processes the initially rendered image and does not rely on any graphics processing unit (GPU) computing interface, so it has no special requirements for the graphics card. FXAA analyzes the pixels in the image, extracts and smooths the jagged edges of the image, and can achieve good anti-aliasing effects with very little computing resources. However, FXAA can also produce a certain degree of blurring effect on the image and may also exacerbate edge flickering.
[0091] Based on the above explanation, MSAA is suitable for anti-aliasing the edges of polygons in a Mesh model; since FXAA processes the initially rendered image, it is suitable for anti-aliasing the Mesh model with texture maps.
[0092] Other anti-aliasing techniques, like the two mentioned above, each have their own applicable scenarios. These scenarios can be understood as game environments. As game environments change, the types and numbers of objects, as well as their rendering methods, will also change. Therefore, if only one anti-aliasing technique is used during game execution, the anti-aliasing effect will deteriorate when the game environment changes to one where the technique is no longer applicable.
[0093] Therefore, the embodiments of this application are as follows: Figure 4 The system framework shown includes an algorithm selection layer. This layer obtains the instructions to call the graphics API from the graphics API layer in real time, extracts the rendering information of the mesh model from these instructions, and then dynamically selects an anti-aliasing algorithm from multiple options based on this information. This ensures the selected algorithm is suitable for the current scene, thereby improving anti-aliasing performance and image quality. Each anti-aliasing algorithm can correspond to a specific anti-aliasing technique.
[0094] It should be noted that the embodiments of this application can be applied to any terminal device that can apply anti-aliasing technology, such as mobile phones, tablets, desktop computers, laptops and in-vehicle computers.
[0095] However, since anti-aliasing algorithms are usually executed by GPUs, and different terminal devices have different GPU architectures, when the embodiments of this application are applied to different terminal devices, adaptive adjustments may be required, and the adapted solutions also fall within the protection scope of the embodiments of this application.
[0096] It should be understood that the GPU architecture of mobile terminals such as smartphones and tablets differs from that of fixed terminals such as desktop computers. Furthermore, because mobile terminals need to consider factors such as hardware resources and power consumption, they typically can only choose one anti-aliasing technology for anti-aliasing processing. Fixed terminals, on the other hand, do not need to consider hardware resources and power consumption factors, and therefore can choose multiple anti-aliasing technologies simultaneously. Therefore, the embodiments of this application are particularly applicable to mobile terminals such as smartphones and tablets, and can be specifically used in game applications on mobile terminals.
[0097] The method for selecting anti-aliasing algorithms provided in the embodiments of this application is described below. For ease of description, the term "model" will be used instead of "mesh model" in the following text.
[0098] Specifically, please refer to Figure 6 This application provides an embodiment of a method for selecting an anti-aliasing algorithm, which can be applied to a central processing unit (CPU); during game execution, this embodiment includes:
[0099] Step 101: Obtain at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information for each of the M models, the M models belong to the same frame image, and M is a positive integer.
[0100] based on Figure 1 As can be seen from the relevant descriptions, the application sends instructions to the graphics application programming interface (API) to invoke the graphics API; and in this embodiment, the instructions can be obtained from the graphics API.
[0101] In the embodiments of this application, at least one instruction to call the graphics API is obtained. The at least one instruction may include one instruction or multiple instructions.
[0102] The following explains the correspondence between at least one instruction and M models.
[0103] One instruction can correspond to multiple models. For example, one instruction can instruct multiple models of the same object to be rendered; specifically, if the current game scene contains multiple identical trees, then one instruction can be used to instruct the rendering of models of these multiple trees.
[0104] A model can correspond to multiple instructions. Typically, the rendering process of a model requires sending multiple instructions, which can be categorized into preparation instructions and drawcall instructions.
[0105] The preparation command can be used to store the resource data required for model rendering into the corresponding buffer. Specifically, the preparation command can be used to bind the model to texture data, store the vertex data of the model into a vertex buffer object (VBO), and store the vertex index into an element buffer object (EBO).
[0106] A Vertex Object (VBO) is a memory buffer allocated within the graphics card's memory (VRAM) to store various attribute data of vertices, including vertex coordinates, vertex normals, and vertex color data. During rendering, the GPU can directly read the vertex attribute data from the VBO. Because the VBO resides in VRAM rather than main memory, data does not need to be transferred from the CPU, resulting in higher processing efficiency. Multiple VBOs can be allocated in VRAM, each with a unique identifier (ID). This ID corresponds to a specific VRAM address, allowing access to the data within that particular VBO.
[0107] Similar to VBO, EBO is also a memory buffer in video memory. However, EBO stores vertex indices, which can be understood as the index of the vertex's storage location. EBO is equivalent to the concept of a vertex array in OpenGL, which can solve the problem of repeatedly calling the same vertex, thereby reducing memory waste and improving execution efficiency. When a repeated vertex needs to be used, the vertex can be called through the vertex index, instead of repeatedly recording and calling the same vertex data.
[0108] The Drawcall instruction can be used to instruct the GPU to render a model. The Drawcall instruction can contain the model's identifier, the ID of the VBO corresponding to the model, and the ID of the EBO corresponding to the model.
[0109] Therefore, this application does not specifically limit the number or type of at least one instruction, or the correspondence between at least one instruction and M models.
[0110] The rendering information of the model may include various types of information, and this application embodiment does not specifically limit this. As can be seen from the foregoing description, the rendering information includes, but is not limited to, vertex data, model identifier, the VBO ID corresponding to the model, and the EBO ID corresponding to the model.
[0111] M models belong to the same frame of image, which is the image to be rendered. Therefore, the rendering information of each of the M models can reflect the specific scene of this frame of image. Among them, the M models can be a single model or include multiple models; the M models can be some of the models in this frame of image or all of the models in this frame of image.
[0112] It should be noted that the process of rendering a frame of an image includes the rendering of all models in that frame. Therefore, during the rendering of a frame of an image, dozens or even hundreds of commands calling the graphics API are usually sent continuously. Thus, step 101 can be a single acquisition to obtain at least one command; when there are multiple commands, step 101 can also be a multiple acquisition to obtain multiple commands.
[0113] Step 102: Select one anti-aliasing algorithm from multiple anti-aliasing algorithms as the target anti-aliasing algorithm based on the rendering information of each of the M models.
[0114] As can be seen from the relevant explanation in step 101, the rendering information of each of the M models can reflect the specific scene of the image to be rendered to which the M models belong. Therefore, selecting the target anti-aliasing algorithm based on the rendering information of each of the M models can be understood as selecting the target anti-aliasing algorithm based on the specific scene of the image to be rendered.
[0115] This application does not specifically limit the types of anti-aliasing algorithms, including but not limited to at least two of the following algorithms: SSAA, MSAA, CSAA, CFAA, FXAA, TXAA, and DLAA.
[0116] Since the rendering information of each of the M models can include a variety of information, the method for selecting the target anti-aliasing algorithm will also be different depending on the different rendering information.
[0117] Therefore, there are various methods for selecting the target anti-aliasing algorithm in step 102, and this application embodiment does not specifically limit this method.
[0118] Step 103: Send an instruction to the graphics processing unit (GPU) instructing the GPU to render at least one frame of image based on the target anti-aliasing algorithm.
[0119] After determining the target anti-aliasing algorithm, the CPU sends an instruction to the GPU, causing the GPU to perform anti-aliasing processing based on the target anti-aliasing algorithm.
[0120] It should be noted that, assuming the image to which the M models belong is the current frame image, in this embodiment of the application, while determining the target anti-aliasing algorithm, the GPU is also rendering the models in the current frame image; therefore, after determining the target anti-aliasing algorithm, the rendering of some models in the current frame image has been completed, or the rendering of the current frame image has been completed.
[0121] During game rendering, multiple frames are needed per second, and the scenes in adjacent frames are not significantly different.
[0122] Therefore, once the target anti-aliasing algorithm has been determined and the rendering of part of the model in the current frame image has been completed, the target anti-aliasing algorithm can be used to process the current frame image, or it can be used to render one or more frames after the current frame image; once the target anti-aliasing algorithm has been determined and the rendering of the current frame image has been completed, the target anti-aliasing algorithm can also be used to render one or more frames after the current frame image.
[0123] In summary, the instruction information can instruct the GPU to render at least one frame of image based on the target anti-aliasing algorithm.
[0124] In this embodiment, since the rendering information of each of the M models can reflect the specific scene of the image to be rendered to which the M models belong, the target anti-aliasing algorithm is determined based on the rendering information of each of the M models carried in at least one instruction. This enables the dynamic selection of the target anti-aliasing algorithm and obtains a target anti-aliasing algorithm suitable for the current image scene, thereby improving the anti-aliasing effect and image quality.
[0125] As can be seen from the above embodiments, there are various methods for selecting a target anti-aliasing algorithm. The following is a specific embodiment to illustrate this.
[0126] See also Figure 7 This application provides another embodiment of a method for selecting an anti-aliasing algorithm, which can also be applied to a central processing unit (CPU). This embodiment includes:
[0127] Step 201: Obtain multiple frames of images in various scenarios, with at least one frame corresponding to each scenario.
[0128] It should be noted that the multiple scenarios can be pre-set, and the specific content of the multiple scenarios in this application embodiment is not specifically limited; the specific content of the multiple scenarios can be related to the game application, and different game applications correspond to different multiple scenarios.
[0129] Since multiple frames of images from various scenarios are used to determine target redundancy, in order to ensure that the determined target redundancy is applicable to the selection of target anti-aliasing algorithms in all scenarios of the game application, the various scenarios are representative scenarios in the game application, which can include all the main scenarios in the game application.
[0130] Typically, the number of main scenes for a specific game application is limited, so the main scenes of the game application can be set as multiple scenes in step 201.
[0131] The following examples illustrate various scenarios. For instance, for a shooting game application set in the wilderness, various scenarios could include mountain scenes, water scenes, bridge scenes, and indoor scenes; for a tower defense game application, various scenarios could include base scenes, scenes of laning minions, defensive tower scenes, and scenes of laning players.
[0132] Each scene corresponds to at least one frame image. For example, each scene corresponds to a keyframe image, where a keyframe image can be understood as the frame image in which the key action of a character or object in motion or change occurs.
[0133] Step 202: Calculate the vertex repetition of at least one specific model in the multi-frame images.
[0134] It should be noted that calculating the vertex repetition of at least one specific model is to determine the target repetition, which is used to select the target anti-aliasing algorithm. Therefore, at least one specific model can be pre-selected based on the target anti-aliasing algorithm to be selected, combined with human experience.
[0135] For example, to determine the criteria for selecting the FXAA algorithm, at least one specific model is selected based on the models to which the FXAA algorithm is applicable. Specifically, since the FXAA algorithm is applicable to models rendered with texture maps, models rendered using texture maps during the rendering process can be selected as at least one specific model. For example, one or more of the following can be selected: grass models, fence models, and leaf models.
[0136] The higher the vertex repetition of a model, the more triangles and edges it has. Therefore, since the MSAA algorithm is suitable for anti-aliasing polygon edges, and the FXAA algorithm produces a blurring effect, the MSAA algorithm is more suitable for rendering models with high vertex repetition, while the FXAA algorithm is more suitable for rendering models with low vertex repetition. For this reason, a model with low vertex repetition can typically be selected as at least one specific model; for example, grass, fence, and leaf models usually have low vertex repetition, so one or more of these models can be selected as at least one specific model.
[0137] Vertex repetition indicates the degree to which vertices are reused in a model. Assume a model like... Figure 8 As shown, the model consists of two triangles with one side overlapping, so the model contains 4 vertices, with two vertices being used repeatedly.
[0138] Vertex repetition can take many forms, and this application does not specifically limit this. As one implementation, vertex repetition can be the number of times a vertex is reused in the model; however, this would inevitably result in a high vertex repetition for models with a large number of vertices. Therefore, as another implementation, vertex repetition can be equal to the ratio of the number of times a vertex is reused in the model to the sum of the total number of vertices and the number of times each vertex is reused.
[0139] The following examples illustrate that the vertex repetition of models for grass, fences, and leaves is typically low.
[0140] like Figure 9 , Figure 10 and Figure 11 As shown, models of grass, a person, and shoes are displayed respectively. Comparing the three images, it is clear that the grass model has a lower degree of vertex repetition.
[0141] Step 203: Determine the target repeatability based on the vertex repeatability of at least one specific model.
[0142] It should be noted that there are various methods for determining the target repetition based on the vertex repetition of at least one specific model, and this application does not limit this method. As one implementation, the target repetition is set to be greater than the vertex repetition of any one of the at least one specific models. For example, if the at least one specific model includes two models with vertex repetitions of 30% and 31% respectively, then the target repetition can be set to 35%.
[0143] Steps 201 to 203 provide a specific scheme for determining the target repeatability, namely, determining the target repeatability based on the vertex repeatability of a selected specific model, which is used in step 207 to determine the target anti-aliasing algorithm.
[0144] Accordingly, steps 201 to 203 need to be executed before step 207; specifically, steps 201 to 203 can be executed when the game is offline, or steps 201 to 203 can be executed before the user selects anti-aliasing but during the game running. This application embodiment does not specifically limit this.
[0145] It should be noted that, in addition to the above-mentioned method for determining the target repeatability, other methods such as directly setting the target repeatability can also be used to determine the target repeatability. Therefore, in this embodiment, steps 201 to 203 are optional.
[0146] Steps 204 to 207 below are executed during game operation.
[0147] Step 204: Obtain at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information for each of the M models, the M models belong to the same frame image, and M is a positive integer.
[0148] As can be seen from the relevant description of step 101, the obtained instructions may include instructions for binding the model with texture data.
[0149] Understandably, during the rendering process of a model, it can usually be colored using two methods.
[0150] The first shading method uses texture data to shade the model, also known as drawing via texture mapping. Accordingly, before rendering, a command needs to be sent to bind the texture data to the model. When this command is received, the rendering information includes texture information, indicating the use of texture data during the model rendering process.
[0151] The second shading method involves coloring the model by setting the color of each pixel. Each pixel in the model is assigned a different color. Consequently, the resource data sent from the CPU to the GPU includes the color data of each vertex and pixel in the model. In this case, the CPU does not send instructions to bind texture data to the model, and therefore cannot obtain such instructions. Consequently, the rendering information of the model will not contain texture information.
[0152] The other contents of step 204 in this embodiment are similar to step 101 in the previous embodiment. For details, please refer to the relevant description of step 101 in the previous embodiment to understand step 204 in this embodiment.
[0153] The specific process of selecting the target anti-aliasing algorithm is described below through steps 204 to 207. In the embodiments of this application, various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm. Accordingly, step 102 in the aforementioned embodiments may include steps 204 to 207.
[0154] Step 205: Determine N models from the M models whose rendering information includes texture information. Texture information indicates the use of texture data during the rendering process of the model, where N is a positive integer less than or equal to M.
[0155] Based on the relevant explanation of step 204, if the model needs to be shaded using texture data, the rendering information of the model will include texture information; if the model does not need to be shaded using texture data, the rendering information of the model will not include texture information.
[0156] Therefore, N models containing texture information can be selected from M models; where N models can be all M models, in which case N equals M; or N models can be a subset of M models, in which case N is less than M.
[0157] Step 206: Calculate the vertex repetition of each of the N models.
[0158] Based on the relevant explanation in step 202, the vertex repetition of the model can be represented by the number of times a vertex is used repeatedly, or it can be calculated based on the total number of vertices and the number of times a vertex is used repeatedly, that is, vertex repetition = number of times a vertex is used repeatedly / (total number of vertices + number of times a vertex is used repeatedly).
[0159] Understandably, determining the reused vertices and the number of times each reused vertex is used based on the model's vertex data would involve a significant amount of computation. Therefore, this application provides an alternative method for calculating vertex repetition, which will be described below.
[0160] For example, the N models include the target model, meaning the target model is one of the N models. The rendering information of the target model also includes the index buffer object (EBO) corresponding to the target model. The EBO can be understood by referring to the relevant explanation in step 101.
[0161] Based on the above conditions, calculating the vertex repetition of each of the N models includes:
[0162] Obtain the number of vertex indices and the number of vertex key values corresponding to the target model from the EBO corresponding to the target model; calculate the vertex repetition of the target model based on the number of vertex indices and the number of vertex key values. The vertex repetition of the target model is the ratio of the target difference to the number of vertex indices. The target difference is equal to the difference between the number of vertex indices and the number of vertex key values.
[0163] The following is combined with Figures 9 to 11 The calculation process for vertex repetition in the model is explained.
[0164] for Figure 9 The model shown has vertex indices in the EBO as follows: [0,1,2,3,4,5,6,4,3,7,8,9,8,7,10,11,12,13,12,11,14,15,16,17,17,18,15,19,20,21,22,20,19,23,24,25,24,23,26,27,28,29,29,30,27,31,32,33,33,34,31]. Each index value can also be called a vertex index key value, which represents the storage location of the vertex. Vertex data can be obtained from the corresponding VBO based on the vertex index value.
[0165] for Figure 9 The model shown has 51 vertex indices, and the vertex index key value can be from 0 to 34, so the number of vertex index key values is 35. Accordingly, the number of times a vertex is reused is 51-35=16, and the vertex repetition rate of the model is 16 / 51=31.4%.
[0166] Use the same method to Figure 10 as well as Figure 11 The vertex repetition of the model shown is calculated.
[0167] for Figure 10 The model shown has 4669 vertex indices and 877 vertex index keys; correspondingly, the vertex repetition rate of this model is (4669-877) / 4669 = 81.2%.
[0168] for Figure 11The model shown has 1002 vertex indices and 254 vertex index keys; correspondingly, the vertex repetition rate of this model is (1002-254) / 4669 = 74.6%.
[0169] Based on the above data, it can be seen that Figure 9 The vertex repetition of the grass model shown is significantly lower than that of other models. Figure 10 and Figure 11 Vertex repetition of the model shown.
[0170] In this embodiment, the vertex repetition is calculated using the number of vertex indices and the number of vertex index key values. Compared with calculating vertex repetition using vertex data, the computation is smaller, the calculation process is simplified, and the efficiency of the target anti-aliasing algorithm can be improved.
[0171] Step 207: Based on the condition that K models out of N models have a vertex repetition degree less than the target repetition degree, the FXAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
[0172] Based on the relevant description of at least one specific model in step 203, it can be seen that the FXAA algorithm is suitable for the rendering process of models drawn by texture mapping and with low vertex repetition.
[0173] Therefore, in this embodiment, N models drawn using texture mapping are first selected from M models, and then K models with vertex repetition less than the target repetition are selected from the N models. Finally, the target anti-aliasing algorithm is selected based on the K models and preset conditions.
[0174] There can be multiple preset conditions, and this application embodiment does not specifically limit them.
[0175] As one implementation method, the preset condition can be a threshold for the number of models.
[0176] It is understandable that even if there are many K models, if the size of the K models in the screen space is very small, then no matter which anti-aliasing algorithm is chosen to process the K models, the anti-aliasing effect of the K models will not be significantly affected.
[0177] As another implementation method, the condition includes that the ratio of the projected area of the K models in the screen space to the screen area is greater than the target ratio.
[0178] It is understandable that the larger the size of the K models in screen space, the greater the impact on the display effect of the frame image to which the K models belong. Since the rendering process of the K models is suitable for the FXAA algorithm, when the ratio of the projected area of the K models in screen space to the screen area is greater than the target ratio, choosing the FXAA algorithm as the target anti-aliasing algorithm will greatly improve the anti-aliasing effect of the entire frame image.
[0179] The target ratio can be set based on experience, the type of game application, and the specific game scenario. For example, the target ratio can be set to 1 / 3, 2 / 5, or 1 / 2.
[0180] Accordingly, after step 206 and before step 207, the method further includes: calculating the ratio of the projected area of the K models in the screen space to the screen area.
[0181] There are various methods for calculating the ratio of the projected area of K models in screen space to the screen area. This application does not limit the specific methods in this embodiment. The following is a detailed description of the methods.
[0182] As one implementation method, such as Figure 12 As shown, calculating the ratio of the projected area of the K models in screen space to the screen area includes:
[0183] Step 301: Obtain P bounding boxes that enclose the K models, where each bounding box is the geometry that encloses at least one of the K models.
[0184] For a given model, a bounding box is the geometry that encloses the model in model space. There can be multiple types of bounding boxes for the same model, as long as they can enclose the model. Therefore, this application does not specifically limit the structure of the P bounding boxes.
[0185] For example, for a rabbit model, the bounding box can be like... Figure 13 As shown, the bounding box is a sphere; the bounding box can also be like... Figure 14 As shown, the bounding box is a cube.
[0186] The correspondence between the K models and the P bounding boxes is explained below.
[0187] A bounding box can correspond to a model; that is, a bounding box encloses a model. For example... Figure 12 and Figure 13 As shown, the bounding box only encloses a model of a rabbit.
[0188] A bounding box can also correspond to multiple models. For example, in model space, if two models are close to each other or even overlap, then a bounding box can be determined to enclose these two models.
[0189] It should be noted that a model can correspond to multiple bounding boxes, so there are multiple methods to obtain P bounding boxes. For example, the rendering information of each of the M models also includes the vertex buffer objects (VBOs) corresponding to each of the M models. For details, please refer to the relevant description of step 101 in the aforementioned embodiment to understand the VBOs.
[0190] Based on this, obtaining the P bounding boxes that enclose the K models includes:
[0191] Obtain the vertex data corresponding to each of the K models from their respective vertex buffer objects (VBOs), and determine P bounding boxes based on the vertex data corresponding to each of the K models.
[0192] Vertex data can include vertex coordinates and vertex normals.
[0193] Understandably, based on the vertex coordinates of each of the K models, the maximum and minimum coordinate values of each model in each direction can be determined, which is equivalent to determining the edge of the model. Based on the maximum and minimum coordinate values of each model in each direction, P bounding boxes can be obtained.
[0194] Step 302: Calculate the projected area of P bounding boxes in screen space based on the transformation matrix. The transformation matrix is used to project the P bounding boxes from model space to screen space.
[0195] Model space, also known as object space or local space, is where each model has its own independent coordinate space. When a model moves or rotates, the model space also moves and rotates with it.
[0196] Screen space is a two-dimensional space where the vertex coordinates of a model can be projected onto the screen space to obtain the corresponding two-dimensional coordinates.
[0197] The transformation matrix is used to project (or transform) the model in model space to screen space.
[0198] Any two bounding boxes in the P bounding boxes can correspond to the same transformation matrix or different transformation matrices. Therefore, the P bounding boxes can be projected from the model space to the screen space based on one or more transformation matrices.
[0199] It should be noted that calculating the projected area of P bounding boxes in the screen space is a relatively mature technology, and will not be described in detail in the embodiments of this application.
[0200] Step 303: Calculate the ratio of the projected area of the P bounding boxes in the screen space to the screen area, and use the ratio of the projected area of the P bounding boxes in the screen space to the screen area as the ratio of the projected area of the K models in the screen space to the screen area.
[0201] It is understandable that the model itself is usually an irregular geometry, so if the ratio of the model's projected area in screen space to the screen area is directly calculated, the calculation process will be quite complicated.
[0202] In this embodiment, P bounding boxes surrounding K models are first obtained. Then, the ratio of the projected area of the P bounding boxes in screen space to the screen area is calculated. The ratio of the projected area of the P bounding boxes in screen space to the screen area is used as an approximation of the ratio of the projected area of the K models in screen space to the screen area. This simplifies the ratio calculation process, improves the ratio calculation effect, and thus improves the efficiency of determining the target anti-aliasing algorithm.
[0203] As can be seen from the descriptions of the foregoing embodiments, for a frame of image, as long as there are K models among all the models contained in the frame of image that use texture data and whose vertex repetition is less than the target repetition, and these K models meet the pre-set conditions, then the FXAA algorithm can be selected as the target anti-aliasing algorithm.
[0204] The process of obtaining instructions to call the graphics API is continuous. Therefore, after obtaining a portion of the instructions, we can determine whether there are K models that meet the pre-defined conditions based on the model information contained in those instructions. If they exist, the FXAA algorithm can be selected as the target anti-aliasing algorithm. If they do not exist, we can continue to obtain instructions to call the graphics API and continue the judgment process.
[0205] Therefore, the M models can be all the models in the image, or a subset of all the models in the image.
[0206] For example, rendering one frame of an image requires rendering 100 models. After obtaining the rendering information of 20 models, we can use this information to determine if there are K models that meet the pre-set conditions, where M is 20. If not, we can continue to obtain the rendering information of the models. After obtaining the rendering information of 30 models, we can use this information to determine if there are K models that meet the pre-set conditions, where M is 30. We repeat this process until M is 100, at which point we make another judgment. If there are K models that meet the pre-set conditions, then we select the FXAA algorithm as the target anti-aliasing algorithm.
[0207] It is understandable that when M models are all the models in the image, if there are still no K models that meet the conditions, then the FXAA algorithm can not be selected as the target anti-aliasing algorithm, and other algorithms can be selected instead. This will be explained in detail below.
[0208] For example, M models are all the models in the image. Various anti-aliasing algorithms also include the multi-sampling anti-aliasing (MSAA) algorithm.
[0209] Based on the rendering information of M models, an anti-aliasing algorithm is selected from multiple anti-aliasing algorithms as the target anti-aliasing algorithm. Other anti-aliasing algorithms include:
[0210] Since K models out of N models whose vertex repetition is less than the target repetition does not meet the condition, the MSAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
[0211] It is understandable that if K models out of N models with vertex repetition less than the target repetition do not meet the condition, it means that K models using texture data and with low vertex repetition do not meet the condition, and the FXAA algorithm is not suitable for the current image scene; correspondingly, it indicates that there are many models with high repetition or models that are not suitable for texture data among the M models. Based on the relevant explanation of step 202 above, it can be known that the MSAA algorithm can be selected as the target anti-aliasing algorithm at this time.
[0212] Since FXAA and MSAA are two highly applicable anti-aliasing algorithms, in this embodiment, the rendering information of M models is used to determine whether the FXAA algorithm is suitable for the current image scene. If it is suitable, the FXAA algorithm is selected as the target anti-aliasing algorithm; if it is not suitable, the MSAA algorithm is selected as the target anti-aliasing algorithm. By continuously switching between the FXAA and MSAA algorithms according to different scenes, the anti-aliasing effect of the game application can be improved.
[0213] To facilitate understanding of the method for selecting anti-aliasing algorithms provided in the embodiments of this application, a specific application example is provided below.
[0214] like Figure 15 As shown, the game execution phase in this application example scenario specifically includes:
[0215] The first step is to obtain the rendering information of M models. For the specific acquisition process, please refer to the relevant instructions in steps 101 and 204.
[0216] The second step is to identify N models that use texture information from the M models based on the rendering information of the M models. For details of the identification process, please refer to the relevant instructions in step 205.
[0217] The third step is to identify K models from N models whose vertex repetition is less than the target repetition. For details of the identification process, please refer to the relevant instructions in step 206.
[0218] The fourth step is to obtain the P bounding boxes corresponding to the K models by traversing the VBOs of the K models. For details, please refer to the relevant explanation of step 301.
[0219] Fifth step: Calculate the projected area of K models in screen space based on P bounding boxes and transformation matrix. For details, please refer to the relevant instructions in step 302.
[0220] Step 6: Determine whether the ratio of the projected area of the K models in the screen space to the screen area is greater than 1 / 3. If it is greater than 1 / 3, select the FXAA algorithm as the target anti-aliasing algorithm; if it is less than 1 / 3, select the MSAA algorithm as the target anti-aliasing algorithm.
[0221] The following uses specific images from the game to illustrate the effect of the anti-aliasing algorithm selected in the embodiments of this application.
[0222] Specifically, the method for selecting an anti-aliasing algorithm in this application embodiment is applied to a game application. For the first scenario, since models such as grass, which are drawn using textures and have low vertex repetition, occupy a large proportion of the screen, the FXAA algorithm is selected as the target anti-aliasing algorithm. The image after anti-aliasing using the FXAA algorithm is shown below. Figure 16 As shown; for the second scenario, since models such as grass, which are drawn using textures and have low vertex repetition, occupy a small proportion of the screen, the MSAA algorithm was chosen as the target anti-aliasing algorithm. The image after anti-aliasing using the MSAA algorithm is shown below. Figure 17 As shown.
[0223] To demonstrate the anti-aliasing effect of the embodiments of this application, the applicant conducted a comparative experiment: the MSAA algorithm was used to perform anti-aliasing processing on the first scenario, resulting in the following... Figure 18 The image shown; the second scene was anti-aliased using the FXAA algorithm, resulting in the image shown. Figure 19 The image shown.
[0224] contrast Figure 16 and Figure 18 As can be seen, in the image obtained by using the FXAA algorithm for anti-aliasing in this embodiment, the jagged edges of the grass are smaller and the image quality is better; while in the image obtained by using the MSAA algorithm for anti-aliasing, the jagged edges of the grass are larger and the image quality is worse.
[0225] Similarly, in comparison Figure 17 and Figure 19As can be seen, in the image obtained by using the MSAA algorithm for anti-aliasing in this embodiment, the jagged edges of the wires are smaller and the image quality is better; while in the image obtained by using the FXAA algorithm for anti-aliasing, the jagged edges of the wires are larger and the image quality is worse.
[0226] Please see Figure 20 This application also provides an embodiment of a device for selecting an anti-aliasing algorithm, comprising:
[0227] The acquisition unit 401 is used to acquire at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information of M models, the M models belong to the same frame image, and M is a positive integer;
[0228] Selection unit 402 is used to select one anti-aliasing algorithm from multiple anti-aliasing algorithms as the target anti-aliasing algorithm based on the rendering information of each of the M models.
[0229] The sending unit 403 is used to send instruction information to the graphics processor (GPU), which instructs the GPU to render at least one frame of image based on the target anti-aliasing algorithm.
[0230] As one implementation method, various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm; selection unit 402 is used to determine N models from M models whose rendering information contains texture information, where the texture information indicates the use of texture data during the rendering process, and N is a positive integer less than or equal to M; calculate the vertex repetition of each of the N models; and select the FXAA algorithm as the target anti-aliasing algorithm based on the condition that K models among the N models have a vertex repetition less than the target repetition, where K is a positive integer less than or equal to N.
[0231] As one implementation method, the condition includes that the ratio of the projected area of the K models in the screen space to the screen area is greater than the target ratio.
[0232] As one implementation, the selection unit 402 is also used to calculate the ratio of the projected area of the K models in the screen space to the screen area.
[0233] As one implementation, selection unit 402 is used to obtain P bounding boxes that surround K models, each bounding box being a geometry that surrounds at least one of the K models; calculate the projected area of the P bounding boxes in screen space based on the transformation matrix, the transformation matrix being used to project the P bounding boxes from model space to screen space; calculate the ratio of the projected area of the P bounding boxes in screen space to the screen area, and use the ratio of the projected area of the P bounding boxes in screen space to the screen area as the ratio of the projected area of the K models in screen space to the screen area.
[0234] As one implementation, the rendering information of each of the M models also includes the vertex buffer objects (VBOs) corresponding to each of the M models; selection unit 402 is used to obtain the vertex data corresponding to each of the K models from the vertex buffer objects (VBOs) corresponding to each of the K models; and to determine P bounding boxes based on the vertex data corresponding to each of the K models.
[0235] As one implementation, N models contain a target model, and the rendering information of the target model also includes the index buffer object (EBO) corresponding to the target model; selection unit 402 is used to obtain the number of vertex indices and the number of vertex index key values corresponding to the target model from the EBO corresponding to the target model; the vertex repetition of the target model is calculated based on the number of vertex indices and the number of vertex index key values, and the vertex repetition of the target model is the ratio of the target difference to the number of vertex indices, and the target difference is equal to the difference between the number of vertex indices and the number of vertex index key values.
[0236] As one implementation method, M models are all models in the image. Multiple anti-aliasing algorithms also include the multi-sampling anti-aliasing (MSAA) algorithm. The selection unit 402 is also used to select the MSAA algorithm as the target anti-aliasing algorithm based on the fact that K models among the N models whose vertex repetition is less than the target repetition does not meet the condition. K is a positive integer less than or equal to N.
[0237] As one implementation, the device further includes: a determination unit 404, configured to acquire multiple frames of images in various scenarios, with each scenario corresponding to at least one frame of image; calculate the vertex repetition of at least one specific model in the multiple frames of images; and determine the target repetition based on the vertex repetition of the at least one specific model.
[0238] For details on the implementation, related explanations, and technical effects of each of the above units, please refer to the description in the method section of the embodiments of this application.
[0239] This application also provides another terminal device, such as... Figure 21 As shown, for ease of explanation, only the parts related to the embodiments of this application are shown. For specific technical details not disclosed, please refer to the method section of the embodiments of this application. The terminal can be any terminal device including mobile phones, tablets, personal digital assistants (PDAs), point-of-sale (POS) terminals, in-vehicle computers, etc. Taking a mobile phone as an example:
[0240] Figure 21 This is a block diagram illustrating a portion of the structure of a mobile phone related to the terminal provided in the embodiments of this application. (Reference) Figure 21The mobile phone includes: a radio frequency (RF) circuit 1010, a memory 1020, an input unit 1030, a display unit 1040, a sensor 1050, an audio circuit 1060, a wireless fidelity (WiFi) module 1070, a central processing unit (CPU) 1080, a graphics processing unit (GPU) 1090, and a power supply, among other components. Those skilled in the art will understand that... Figure 21 The mobile phone structure shown does not constitute a limitation on the mobile phone and may include more or fewer components than shown, or combine certain components, or have different component arrangements.
[0241] The following is combined with Figure 21 A detailed introduction to each component of a mobile phone:
[0242] The RF circuit 1010 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 for the CPU 1080; additionally, it transmits uplink data to the base station. Typically, the RF circuit 1010 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low-noise amplifier (LNA), a duplexer, etc. Furthermore, the RF circuit 1010 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 Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), Code Division Multiple Access (CDMA), Wideband Code Division Multiple Access (WCDMA), Long Term Evolution (LTE), email, and Short Messaging Service (SMS).
[0243] The memory 1020 can be used to store software programs and modules. The CPU 1080 executes various functions and data processing of the mobile phone by running the software programs and modules stored in the memory 1020. The memory 1020 may mainly include a program storage area and a data storage area. The program storage area may store the operating system, applications required for at least one function (such as sound playback function, image playback function, etc.), etc.; the data storage area may store data created according to the use of the mobile phone (such as audio data, phonebook, etc.). In addition, the memory 1020 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.
[0244] The input unit 1030 can be used to receive input numerical or character information, and to generate key signal inputs related to user settings and function control of the mobile phone. Specifically, the input unit 1030 may include a touch panel 1031 and other input devices 1032. The touch panel 1031, 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 the touch panel 1031), and drive the corresponding connection devices according to a pre-set program. Optionally, the touch panel 1031 may include two parts: a touch detection device and a touch controller. 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, and sends it to the CPU 1080, and can also receive and execute commands sent by the CPU 1080. In addition, the touch panel 1031 can be implemented using various types such as resistive, capacitive, infrared, and surface acoustic wave. In addition to the touch panel 1031, the input unit 1030 may also include other input devices 1032. Specifically, other input devices 1032 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.
[0245] The display unit 1040 can be used to display information input by the user or information provided to the user, as well as various menus of the mobile phone. The display unit 1040 may include a display panel 1041, which may optionally be configured as a Liquid Crystal Display (LCD), Organic Light-Emitting Diode (OLED), or similar display panel 1041. Further, a touch panel 1031 may cover the display panel 1041. When the touch panel 1031 detects a touch operation on or near it, it transmits the information to the CPU 1080 to determine the type of touch event. Subsequently, the CPU 1080 provides corresponding visual output on the display panel 1041 based on the type of touch event. Although in Figure 21 In this embodiment, the touch panel 1031 and the display panel 1041 are two separate components to realize the input and output functions of the mobile phone. However, in some embodiments, the touch panel 1031 and the display panel 1041 can be integrated to realize the input and output functions of the mobile phone.
[0246] The mobile phone may also include at least one sensor 1050, such as a light sensor, a motion sensor, and other sensors. Specifically, the light sensor may include an ambient light sensor and a proximity sensor. The ambient light sensor can adjust the brightness of the display panel 1041 according to the ambient light level, and the proximity sensor can turn off the display panel 1041 and / or the backlight when the phone 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). When stationary, it can detect the magnitude and direction of gravity and 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, taps), etc. Other sensors that may be configured in the mobile phone, such as gyroscopes, barometers, hygrometers, thermometers, and infrared sensors, will not be described in detail here.
[0247] The audio circuit 1060, speaker 1061, and microphone 1062 provide an audio interface between the user and the mobile phone. The audio circuit 1060 converts received audio data into electrical signals and transmits them to the speaker 1061, where the speaker 1061 converts them into sound signals for output. On the other hand, the microphone 1062 converts collected sound signals into electrical signals, which are then received by the audio circuit 1060, converted into audio data, and output to the CPU 1080 for processing. The audio data is then transmitted via the RF circuit 1010 to, for example, another mobile phone, or output to the memory 1020 for further processing.
[0248] WiFi is a short-range wireless transmission technology. Through the WiFi module 1070, mobile phones can help users send and receive emails, browse web pages, and access streaming media, providing users with wireless broadband internet access. Although Figure 21 The WiFi module 1070 is shown, but it is understood that it is not an essential component of a mobile phone and can be omitted as needed without changing the essence of the invention.
[0249] The CPU 1080 is the control center of the mobile phone, connecting various parts of the phone through various interfaces and lines. It executes software programs and / or modules stored in the memory 1020, and calls data stored in the memory 1020 to perform various functions and process data, thereby providing overall monitoring of the phone. Optionally, the CPU 1080 may include one or more processing units; preferably, the CPU 1080 may integrate an application processor and a modem processor, wherein 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 CPU 1080.
[0250] GPU1090 is mainly used to render data in memory 1020 into images and display them in display unit 1040.
[0251] The mobile phone also includes a power supply (such as a battery) to power various components. Preferably, the power supply can be logically connected to the CPU1080 through a power management system, thereby enabling functions such as charging, discharging, and power consumption management through the power management system.
[0252] Although not shown, mobile phones may also include a camera, Bluetooth module, etc., which will not be described in detail here.
[0253] In this embodiment of the application, the CPU1080 included in the terminal also has the following functions:
[0254] Obtain at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information for each of M models, wherein the M models belong to the same frame image, and M is a positive integer;
[0255] Based on the rendering information of each of the M models, one anti-aliasing algorithm is selected from a variety of anti-aliasing algorithms as the target anti-aliasing algorithm;
[0256] Send an instruction to the graphics processing unit (GPU) to instruct the GPU to render at least one frame of image based on the target anti-aliasing algorithm.
[0257] In this embodiment of the application, the GPU1090 included in the terminal also has the following functions:
[0258] It receives instruction information from CPU1080 and performs anti-aliasing processing during image rendering based on the instruction information using the target anti-aliasing algorithm.
[0259] This application also provides a chip including one or more processors. Some or all of the processors are used to read and execute computer programs stored in memory to perform... Figure 6 , Figure 7 and Figure 12 The methods of the corresponding embodiments.
[0260] Optionally, the chip includes a memory, which is connected to the processor via a circuit or wire. Further optionally, the chip also includes a communication interface, to which the processor is connected. The communication interface is used to receive data and / or information that needs to be processed. The processor obtains the data and / or information from the communication interface, processes the data and / or information, and outputs the processing result through the communication interface. The communication interface can be an input / output interface.
[0261] In some implementations, some of the processors may implement some steps of the above method through dedicated hardware. For example, the processing of neural network models may be implemented by a dedicated neural network processor or graphics processor.
[0262] The method provided in this application embodiment can be implemented by a single chip or by multiple chips working together.
[0263] This application also provides a computer storage medium for storing computer software instructions for use with the aforementioned computer device, including instructions for executing programs designed for the computer device.
[0264] The computer device can be as described above. Figure 15 The device described for running the application.
[0265] This application also provides a computer program product, which includes computer software instructions that can be loaded by a processor to implement the aforementioned features. Figure 6 , Figure 7 and Figure 12 The process shown is as follows.
[0266] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0267] In the several embodiments provided in this application, it should be understood that the disclosed systems, apparatuses, and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be an indirect coupling or communication connection between apparatuses or units through some interfaces, and may be electrical, mechanical, or other forms.
[0268] The units described as separate components may or may not be physically separate. The components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the units can be selected to achieve the purpose of this embodiment according to actual needs.
[0269] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit.
[0270] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or all or part of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
Claims
1. A method for selecting an anti-aliasing algorithm, characterized in that, include: Obtain at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information for each of the M models, the rendering information for each of the M models indicating the scene of the image to which the M models belong, the M models belonging to the same frame image, and M being a positive integer; Based on the rendering information of each of the M models, one anti-aliasing algorithm is selected from a variety of anti-aliasing algorithms as the target anti-aliasing algorithm; Send an instruction to the graphics processing unit (GPU) to instruct the GPU to render at least one frame of image based on the target anti-aliasing algorithm; The various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm. The step of selecting one anti-aliasing algorithm from multiple anti-aliasing algorithms based on the rendering information of the M models includes: From the M models, determine N models whose rendering information includes texture information, where the texture information indicates the use of texture data during the rendering process, and N is a positive integer less than or equal to M; Calculate the vertex redundancy of each of the N models; Based on the condition that K models out of the N models have a vertex repetition degree less than the target repetition degree, the FXAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
2. The method according to claim 1, characterized in that, The condition includes that the ratio of the projected area of the K models in the screen space to the screen area is greater than the target ratio.
3. The method according to claim 1 or 2, characterized in that, After calculating the vertex repetition of each of the N models, and before selecting the FXAA algorithm as the target anti-aliasing algorithm based on the condition that K models among the N models have vertex repetition less than the target repetition, the method further includes: Calculate the ratio of the projected area of the K models in the screen space to the screen area.
4. The method according to claim 3, characterized in that, The calculation of the ratio of the projected area of the K models in screen space to the screen area includes: Obtain P bounding boxes that enclose the K models, where each bounding box is a geometry that encloses at least one of the K models; The projection area of the P bounding boxes in the screen space is calculated based on the transformation matrix, which is used to project the P bounding boxes from the model space to the screen space. Calculate the ratio of the projected area of the P bounding boxes in the screen space to the screen area, and use the ratio of the projected area of the P bounding boxes in the screen space to the screen area as the ratio of the projected area of the K models in the screen space to the screen area.
5. The method according to claim 4, characterized in that, The rendering information for each of the M models also includes the vertex buffer object (VBO) corresponding to each of the M models; Obtaining the P bounding boxes that enclose the K models includes: Obtain the vertex data corresponding to each of the K models from the vertex buffer objects (VBOs) corresponding to each of the K models; P bounding boxes are determined based on the vertex data corresponding to each of the K models.
6. The method according to claim 1 or 2, characterized in that, The N models include a target model, and the rendering information of the target model also includes the index buffer object (EBO) corresponding to the target model; The calculation of the vertex repetition degree of each of the N models includes: Obtain the number of vertex indices and the number of vertex index key values corresponding to the target model from the EBO corresponding to the target model; The vertex repetition of the target model is calculated based on the number of vertex indices and the number of vertex index key values. The vertex repetition of the target model is the ratio of the target difference to the number of vertex indices, and the target difference is equal to the difference between the number of vertex indices and the number of vertex index key values.
7. The method according to claim 1 or 2, characterized in that, The M models refer to all models in the image, and the various anti-aliasing algorithms also include the multi-sampling anti-aliasing (MSAA) algorithm. The step of selecting one anti-aliasing algorithm as the target anti-aliasing algorithm from multiple anti-aliasing algorithms based on the rendering information of the M models also includes: Based on the fact that K models out of the N models whose vertex repetition is less than the target repetition does not meet the condition, the MSAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
8. The method according to claim 1 or 2, characterized in that, Before selecting the FXAA algorithm as the target anti-aliasing algorithm based on the condition that K models among the N models have a vertex repetition degree less than the target repetition degree meet the criteria, the method further includes: Acquire multiple frames of images from various scenarios, with at least one frame corresponding to each scenario; Calculate the vertex repetition of at least one model in the multi-frame images; The target repeatability is determined based on the vertex repeatability of the at least one model.
9. A device for selecting an anti-aliasing algorithm, characterized in that, include: The acquisition unit is used to acquire at least one instruction for calling the application programming interface (API), wherein the at least one instruction carries rendering information of each of the M models, the rendering information of each of the M models indicates the scene of the image to which the M models belong, the M models belong to the same frame image, and M is a positive integer; The selection unit is used to select one anti-aliasing algorithm from multiple anti-aliasing algorithms as the target anti-aliasing algorithm based on the rendering information of each of the M models. A sending unit is configured to send indication information to a graphics processing unit (GPU), the indication information instructing the GPU to render at least one frame of image based on the target anti-aliasing algorithm; The various anti-aliasing algorithms include the Fast Approximate Anti-aliasing (FXAA) algorithm; the selection unit is specifically used for: From the M models, determine N models whose rendering information includes texture information, where the texture information indicates the use of texture data during the rendering process, and N is a positive integer less than or equal to M; Calculate the vertex redundancy of each of the N models; Based on the condition that K models out of the N models have a vertex repetition degree less than the target repetition degree, the FXAA algorithm is selected as the target anti-aliasing algorithm, where K is a positive integer less than or equal to N.
10. A terminal device, characterized in that, include: One or more processors and a memory; wherein the memory stores computer-readable instructions; The one or more processors read the computer-readable instructions to cause the computer device to perform the method as described in any one of claims 1 to 8.
11. A computer-readable storage medium, characterized in that, It includes computer-readable instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 8.
12. A computer program product, characterized in that, It includes computer-readable instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1 to 8.
Citation Information
Patent Citations
Image anti-aliasing method and device and computer equipment
CN108846815A
Flexible antialiasing in embedded devices
EP1803096A2
Image Anti-Aliasing Method and Apparatus
US20160110847A1
Cited By
Method, apparatus and device for selecting Anti-aliasing algorithm and readable storage medium
WO2022100663A1