An Automatic Multi-Scene and Multi-Resource Rendering Performance Evaluation and Image Quality Comparison Method and System

By splitting the rendering process into independent rendering instructions and binding resource dependencies, automatically evaluating and comparing the graphics rendering performance and picture quality, the analysis problems under multi-scene and multi-resource configuration in the existing technology are solved, and rendering efficiency and accuracy are improved.

CN119127649BActive Publication Date: 2025-07-18ZHEJIANG UNIV +1
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411349184.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-09-26
Publication Date
2025-07-18
Estimated Expiration
2044-09-26

AI Technical Summary

Technical Problem

Existing graphic rendering performance evaluation and image quality comparison methods cannot conduct comprehensive and systematic automated analysis in multi-scenario and multi-resource configurations, and traditional tools are difficult to accurately identify performance bottlenecks and optimization spaces in complex environments.

Method used

Provide an automatic multi-scene multi-resource rendering performance evaluation and picture quality comparison method. By splitting the rendering process into independent rendering instructions, binding the rendering resources to form resource dependencies, measuring performance overhead, calculating picture quality differences, and displaying the evaluation results.

Benefits of technology

It realizes efficient and accurate multi-scene and multi-resource rendering performance evaluation and image quality comparison, helping developers optimize resource configuration, improve rendering efficiency and image quality, and identify problems in the rendering process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119127649B_ABST
    Figure CN119127649B_ABST
Patent Text Reader

Abstract

The present invention discloses an automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method and system, including: inputting the rendering resources to be tested and test configurations, and selecting different target test processes or single-target test processes according to the number of rendering targets; splitting the rendering process into multiple independent rendering instructions, dividing the test scope according to the rendering instructions, where each rendering instruction represents a single rendering channel alone, binding rendering resources to each rendering instruction to form and maintain a resource dependency relationship, executing the rendering instructions according to the test scope and resource dependency relationship and measuring the performance overhead, saving the performance measurement results and the rendering frames corresponding to different rendering resources; calculating the image quality difference results between the rendering frames corresponding to different rendering resources; and displaying the performance difference results and image difference results determined based on the performance measurement results. In this way, a comprehensive performance evaluation and image quality comparison of different rendering scenarios and resource configurations can be achieved, helping to optimize the rendering effect more efficiently.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the technical field of computer graphics rendering performance analysis, and particularly relates to a method and system for automatically evaluating the rendering performance and comparing the image quality of multiple scenes and multiple resources. Background Art

[0002] In the field of modern graphics rendering technology, with the development of computer graphics, rendering technology has become increasingly complex and diverse. To optimize and improve the graphics rendering effect, many visualization tools have emerged to help developers with debugging and performance analysis. These tools can display the data at each stage of the rendering process in real time, helping developers identify and solve performance bottlenecks. However, with the continuous progress of graphics rendering technology and the diversification of application scenarios, existing visualization tools often seem inadequate when dealing with complex rendering scenarios and multiple resource configurations.

[0003] Currently, the GPU (Graphics Processing Unit) is becoming increasingly important in graphics rendering, especially on mobile devices, where the performance of the GPU directly affects the quality of graphics rendering and the user experience. The development of mobile GPUs has greatly promoted the progress of graphics rendering technology, but at the same time, it has also brought new challenges. Mobile devices have limited hardware resources, and how to optimize performance while ensuring high-quality rendering effects has become an important research topic.

[0004] Traditional methods for performance evaluation and image quality comparison usually rely on manual testing, which is not only time-consuming and laborious, but also easily affected by human factors, resulting in less objective and accurate results. In addition, the method of manual testing is difficult to conduct a comprehensive and systematic analysis in a complex environment with multiple scenes and multiple resource configurations. To solve these problems, there is an urgent need for a method for automatically evaluating the rendering performance and comparing the image quality of multiple scenes and multiple resources.

[0005] Existing tools such as RenderDoc and Nsight, although excellent in single-frame analysis, have deficiencies in visualizing the comparison of the overall rendering process. They usually can only perform detailed performance analysis on a single frame and cannot effectively display the rendering process and performance changes of multiple frames and multiple scenes. This limitation makes it difficult for developers to comprehensively understand the performance bottlenecks and optimization space in the entire rendering process.

[0006] In addition, the emergence of modern graphics APIs such as Vulkan and DirectX 12 has made the rendering scheduling architecture more low-level and complex. In these APIs, developers need to directly manage low-level resources such as video memory and command queues, which increases the difficulty of performance analysis and optimization. Especially in the deferred rendering pipeline or tiled-based rendering (TBR), the impact of parallelism is more significant, making it more difficult to test the performance of test materials or geometric resources during the rendering process. Summary of the Invention

[0007] In view of the above, the object of the present invention is to provide an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method, which can comprehensively evaluate the performance and compare the image quality of different rendering scenarios and resource configurations, so as to help developers optimize the rendering effect more efficiently and improve the overall performance of the system.

[0008] To achieve the above object of the invention, an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison method provided by an embodiment includes the following steps:

[0009] Data input and preprocessing: Input the rendering resources to be tested and the test configuration, and select the multi-target test process or the single-target test process according to the number of rendering targets. When the multi-target test process is selected, inject the rendering resources of each rendering target into the created rendering process in advance. When the single-target test process is selected, configure the same rendering resources for the same rendering target, and determine to detect and load the rendering resources to be tested in the rendering process and replace the original target rendering resources;

[0010] Performance analysis: Split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, each rendering instruction represents a rendering pass alone, bind the rendering resources to each rendering instruction to form a resource dependency relationship and maintain it, execute the rendering instructions according to the test scope and the resource dependency relationship and measure the performance overhead, and save the performance measurement results and the rendering frames corresponding to different rendering resources;

[0011] Image quality analysis: Calculate the image quality difference between the rendering frames corresponding to different rendering resources and save the image difference results;

[0012] Result display: Display the performance difference results and the image difference results determined according to the performance measurement results.

[0013] Preferably, for the single-resource test process, directly replay the recorded rendering instruction stream file, and identify and replace the target resources during the running process;

[0014] For the multi-resource test process, inject the rendering resources of each rendering target into the created rendering process in advance, including: injecting the rendering resources to be tested of each rendering target into the created rendering process in a way that replaces the original target rendering resources;

[0015] For both the single-resource test process and the multi-resource test process, record the usage and performance of each rendering resource, so as to ensure that each rendering resource can perform subsequent performance analysis and image quality analysis in the same rendering environment.

[0016] Preferably, configure the same rendering resources for the same rendering target, including:

[0017] The same data used during data loading is considered the same rendering resource, and rendering targets that use the same rendering resource multiple times are the same rendering target. Based on this, configure the same rendering resources for the same rendering target.

[0018] Preferably, divide the test scope according to rendering instructions, including:

[0019] After inputting the rendering process, dispose of the command buffers with parent-child relationships, and implement the management of multiple secondary command buffers by a single primary command buffer by setting up secondary command buffers in the command buffer. Specifically, save the commands in the secondary command buffer and reasonably expand the secondary command calls in the primary command buffer in order. When it is necessary to modify the command buffer bound by the current command, execute the order according to the rendering channels.

[0020] Preferably, each rendering instruction represents a single rendering channel separately, forcing a certain serial relationship in the entire rendering process and ensuring the independence of each rendering instruction. For each rendering channel, use timestamps to mark a timestamp at the start and end respectively. The rendering time of the entire rendering process is the difference between the timestamps.

[0021] Preferably, bind rendering resources to each rendering instruction to form and maintain a resource dependency relationship, including:

[0022] Record the status of each rendering channel when splitting the rendering process into multiple rendering channels. Among them, the rendering channel status includes the rendering resource configuration and parameter changes of the rendering channel, and allocate a rendering process attachment for each rendering channel according to the rendering channel status. This rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process;

[0023] When multiple rendering instructions are in the same rendering channel, the following should be clarified during the process of splitting the rendering process into multiple rendering channels:

[0024] Whether to load the previous color attachment: When adding a new rendering channel, it must be clarified whether it is necessary to load the color attachment used in the previous rendering channel;

[0025] Save the results of the current rendering pass: It is necessary to determine whether the rendering results of the current rendering pass need to be saved to the attachment so that subsequent rendering passes can load and use these intermediate results.

[0026] Preferably, calculate the image differences between the rendering frames corresponding to different rendering resources, including:

[0027] Frame by frame, calculate the image difference values between the rendering frames corresponding to different rendering resources through SSIM, and save the image difference results and the corresponding rendering frames.

[0028] Preferably, display the performance measurement results and the image difference results, including:

[0029] Regarding the display of the performance measurement results, for the single-target test process, display the performance difference results of a single rendering resource compared to the target rendering resource in the rendering process; for the multi-target test process, display the comprehensive performance difference results of multiple rendering resources compared to the target rendering resource in the rendering process of the overall scene, and display the individual performance difference results of each rendering resource compared to the target rendering resource in the rendering process of the overall scene.

[0030] Preferably, display the performance measurement results and the image difference results, including:

[0031] Regarding the display of the image difference results, for the single-target test process, display at least 2 rendering frame images with the largest image difference results of a single rendering resource compared to the target rendering resource; for the multi-target test process, display the list of image difference results for each rendering frame of multiple rendering resources compared to the target rendering resource in the entire rendering scene.

[0032] To achieve the above-mentioned invention purpose, an embodiment of the present invention provides an automatic multi-scene multi-resource rendering performance evaluation and image quality comparison device, including:

[0033] A data input and preprocessing module, which is used to input the rendering resources to be tested and the test configuration, select a multi-target test process or a single-target test process according to the number of rendering targets. When selecting the multi-target test process, inject the rendering resources of each rendering target into the created rendering process in advance. When selecting the single-target test process, configure the same rendering resources for the same rendering target, and determine to detect and load the rendering resources to be tested in the rendering process and replace the original target rendering resources;

[0034] A performance analysis module, which is used to split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, open a separate rendering channel for each rendering instruction, bind rendering resources to each rendering instruction to form and maintain a resource dependency relationship, execute the rendering instructions according to the test scope and the resource dependency relationship, measure the performance overhead, and save the performance measurement results;

[0035] An image quality analysis module, which is used to calculate the image quality differences between the rendering frames corresponding to different rendering resources and save the image quality difference results;

[0036] A result display module, which is used to display the performance measurement results and the image quality difference results.

[0037] Compared with the prior art, the beneficial effects of the present invention at least include:

[0038] The present invention provides an efficient and automated method and device for rendering performance evaluation and image quality comparison of multiple scenarios and multiple resources, which significantly improves the efficiency and accuracy of rendering debugging and optimization. The present invention can comprehensively and accurately evaluate the rendering performance and image quality differences of multiple scenarios and multiple resources, help users optimize resource allocation, and improve rendering efficiency and image quality. The present invention can not only provide detailed performance evaluation in different rendering scenarios, but also identify potential problems in the rendering process through image quality comparison, so as to provide comprehensive optimization suggestions and guidance for developers. Description of the Drawings

[0039] In order to more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the following will briefly introduce the drawings required for the description of the embodiments or the prior art. Obviously, the following drawings are only some embodiments of the present invention. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0040] Figure 1 is a flowchart of the automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method provided by the embodiment;

[0041] Figure 2 is a schematic structural diagram of the automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison system provided by the embodiment. Detailed Embodiments

[0042] In order to make the purpose, technical solutions and advantages of the present invention clearer, the following will further describe the present invention in detail with reference to the drawings and embodiments. It should be understood that the specific embodiments described here are only used to explain the present invention, and do not limit the protection scope of the present invention.

[0043] The inventive concept of the present invention is: to provide an automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method, which can achieve automatic multi-scenario continuous multi-frame long-process testing under the condition of testing the performance of different resources, thereby reducing the manual testing cost. At the same time, the present invention provides a more intelligent automation method and a more efficient visualization comparison scheme, and improves the performance analysis method of modern graphics interfaces. In order to ensure the mutual independence between renderings, a new performance analysis scheme is proposed, which improves the accuracy of performance analysis.

[0044] Based on the above inventive concept, an automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method provided by an embodiment is as Figure 1 shown, and includes the following steps:

[0045] S1, data input and preprocessing: Input the rendering resources to be tested and the test configuration, select a multi-target test process or a single-target test process according to the number of rendering targets, and perform the preprocessing process of different test processes.

[0046] The user inputs a configuration file containing the rendering resources to be tested and the test configuration. Among them, the rendering resources refer to any resources used in the rendering process, including but not limited to geometric models, material parameters, light positions, shaders, etc. The test configuration refers to some configuration information in the test rendering process, specifically including but not limited to device information, start and end frame numbers, target resource information, test step size, rendering resolution, specific execution process branch and other information.

[0047] According to these rendering resources and test configurations input by the user, the corresponding task parameters are automatically configured and sent down, which include the data and information required for the rendering process. It should be noted that in order to better provide the user with a test process based on the rendering resources, a result screenshot of the specific content rendered by the current target rendering resource in the actual process is provided at the front end. When the user sends a specific test requirement, they can clearly understand the specific rendering range and rendering target of their current test target.

[0048] After inputting the rendering resources to be tested and the test configuration, determine whether the current test process is a single-target test process or a multi-target test process according to the number of rendering targets, and enter the corresponding test process after selection. Each test process supports the performance analysis and image quality analysis of any rendering resources.

[0049] In the embodiment, when the single-target test process is selected, the same rendering resources are configured for the same rendering target through preprocessing, and it is determined to detect and load the rendering resources to be tested and replace the original target rendering resources during the rendering process. For the single-target test, multiple groups of contrasting single rendering resources are provided. The test scheme for the single rendering resources is as follows: separately extract the part of the rendering process that actually uses the target rendering resources. When initiating the corresponding rendering process, all test configurations need to be accurately provided. At the same time, the dependency relationship of the rendering resources needs to be sorted out in the single-target test process to ensure that the comparison relationship between the rendering resources to be tested is reasonably maintained, so as to compare the processing results of the current rendering resources in performance analysis and image analysis in the subsequent process.

[0050] Specifically, after receiving the configuration file input by the user, the rendering resources to be tested are imported into the single-target test process. The imported resource should be a single rendering resource of the same target. As long as the same content of geometric patches, material parameters, texture parameters, shader source code and other data are used when loading the corresponding data, they are considered the same rendering resources. In the same rendering process, there may be multiple cases where the same rendering resource is used for the rendering target. These rendering targets are all regarded as the same rendering target. Based on this, the same rendering resources are configured for the same rendering target. The different rendering resources selected will affect the specific difference map shown to the user, but will not affect the presentation of the overall process result.

[0051] Specifically, for the input of a single rendering resource, all the resources to be replaced need to be prepared when starting to create and import the target resources in the rendering process, including the loading of the original target rendering resources and the import and loading of the rendering resources to be tested. Then, detect and load the rendering resources to be tested and replace the original target rendering resources during the rendering process, including: actively detecting instructions such as creating shader source code. When the creation instruction is about to be executed, only modify the original target rendering resource to the rendering resource to be tested without changing any other rendering parameters to ensure the effective implementation of the test control variables.

[0052] Taking the shader source code as an example, when creating resources, in order to complete the binding with the rendering resources of subsequent rendering instructions, there are many nested and parent-child relationships in the entire rendering process. For actual rendering, rendering instructions, specific rendering targets, shader source code, and pipeline layouts need to be specified when creating the pipeline. However, during the process of creating the shader, the participation of the rendering pipeline is not required. Instead, a shader object for subsequent rendering is created separately for the shader according to the module information, stage information, entry point name, etc. specified in the rendering process. At the same time, the actual rendering instruction calls are bound in the command buffer, and the command buffer often needs to specify the rendering pass, bind all rendering resources, bind various state information, etc. The rendering instruction will call the information related to the rendering pipeline bound on the current command buffer, and at the same time, information such as the rendering pass is also bound on the command buffer. Therefore, in order to find the shader information specifically called by the actual rendering instruction, it is necessary to start counting the information of the shaders bound to the current rendering pipeline when creating the rendering pipeline. After having the bound shader information, then maintain the information of the rendering pipeline bound on the current command buffer. If the current command buffer has bound the target rendering resources and called the actual rendering instruction, then it is considered that the current rendering instruction is necessary to be tested for performance.

[0053] Complete the maintenance and preservation of the binding information of the rendering resources according to the above process, ensuring that there is a traceable influence relationship among the command buffer, the graphics pipeline, and the shaders. During the subsequent actual testing process, this information plays an important role in the performance analysis, the preservation of the image quality analysis results, and the visualization processing.

[0054] In the embodiment, when selecting the multi-target test process, the rendering resources of each rendering target are injected into the created rendering process in advance through preprocessing. For the comparison of multi-target rendering resources, the original target rendering resources are replaced with the tested rendering resources in the original rendering process to form a new rendering process, and at the same time, multiple new rendering processes are compared. Specifically, when comparing multi-target rendering resources, the target rendering resources in the original rendering process will be analyzed and extracted to generate a new rendering process. In this new rendering process, the original target rendering resources are replaced with the preset rendering resources to ensure that each rendering resource can perform performance analysis and image quality comparison in the same rendering environment. The input and output of multiple rendering processes will also be synchronized to ensure the accuracy and comparability of the test results.

[0055] In the actual implementation process, the preprocessing in the multi-target test process is to ensure the smooth progress of the shading process bound to the rendering resources. For the case involving multiple rendering resources, users usually hope to test the weight of each rendering resource in the overall process. For the optimization of rendering resources, attention is often paid to whether the overall performance has been improved after optimizing certain content. In the entire rendering process, the optimized rendering resources will be replaced so that the current rendering process can use the optimized resource version for testing. Therefore, a file needs to be generated to inject the rendering resources to be tested into the rendering process.

[0056] It is also possible to analyze the performance of each rendering resource simultaneously and finally generate a performance analysis result of the overall rendering process. For different rendering processes, only the actually used rendering resources are preprocessed, which is convenient for users to find better resources through performance comparison later.

[0057] Specifically, the preprocessing involves a detailed analysis of each rendering resource, giving the specific instruction stream file to be replayed and the task instructions that need to replace the resources and form. Next, the optimized rendering resources are used to replace the original target rendering resources, and a new rendering process file is generated. This file will contain all the optimized rendering resources and ensure that these resources can run smoothly in the rendering process. Through this replacement process, it can be ensured that after optimizing the rendering resources, the performance improvement of the entire rendering process is significant and quantifiable. This not only helps to verify the effect of the optimization work but also provides important data support and reference for subsequent resource optimization.

[0058] S2. Performance analysis: Split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, each rendering instruction represents a separate rendering channel, bind rendering resources to each rendering instruction to form and maintain a resource dependency relationship, execute the rendering instructions according to the test scope and resource dependency relationship and measure the performance overhead, and save the performance measurement results and the rendering frames corresponding to different rendering resources.

[0059] In the embodiment, the entire rendering process is split into multiple independent rendering instructions, and each rendering instruction represents an independent rendering channel. The purpose of splitting the rendering process is to ensure that each measurement of time, the current rendering is executed independently, so as to better reflect the performance overhead of the current rendering instruction and its bound rendering resources.

[0060] After a series of drawing instructions are split out, new rendering passes need to be divided in a certain order. This is because there is strong parallelism in the execution of graphics rendering instructions. Especially on mobile devices, there is a tile-based deferred rendering architecture that will adjust the execution order of the rendering instructions submitted simultaneously. For example, the geometry part is processed first, and then shading is performed. At this time, if you want to analyze the performance pressure of the entire drawing process, due to this architecture, the final result will not be accurate. If the rendering passes are split reasonably, a certain serial relationship can be forced in the entire rendering and drawing process to ensure that each drawing instruction is independent of each other. Since on some GPU drivers, only this method can enable the interface to perform performance analysis and testing on individual rendering resources reasonably.

[0061] In the embodiment, a similar method is also used for multiple resources. For example, if you want to know the weights of multiple resources, you need to split out each individual drawing process through a similar splitting method. Currently, it is up to the drawing instruction level. After splitting the rendering passes, for each rendering pass, a timestamp is marked at the start and end respectively using a timestamp. The rendering time of the entire rendering process is the difference between the timestamps.

[0062] In the embodiment, the test scope is divided according to the rendering instructions. After inputting a single-target or multi-target test process, the command buffers with parent-child relationships are processed according to preset rules. According to the design pattern of modern graphics interfaces, a command buffer can be implemented by setting a secondary command buffer to manage multiple secondary command buffers with a primary command buffer, thereby increasing the overall logic and parallelism of the command buffer. Specifically, by saving the commands in all secondary command buffers and reasonably expanding the secondary command calls in the primary command buffer in a certain order, if it is necessary to modify the command buffer to which the current command is bound, the execution order is divided according to the originally defined rendering passes.

[0063] In the embodiment, according to the input rendering resources, each rendering instruction and the corresponding rendering resource are bound in advance to form a resource dependency relationship. In this way, in actual testing, the resource usage of each rendering instruction can be accurately tracked. This resource dependency relationship is very important for subsequent visual comparison processing to ensure that the test results can be intuitively displayed.

[0064] In the embodiment, when splitting the rendering process, attention needs to be paid to the resource binding relationship before and after. For example, if the current rendering process originally loaded the previous rendering resources, then the new rendering process also needs to reload these rendering resources. If the current rendering process originally saved the current result, then the subsequent process also needs to save the result and read the previously saved result at the start. This way of maintaining the resource dependency relationship can ensure the coherence and accuracy of the test.

[0065] In the embodiment, in the split independent rendering process, the performance overhead of each rendering instruction will be measured in detail, including time consumption, resource occupancy, etc. This fine-grained measurement can help users identify performance bottlenecks and provide data support for optimization. At the same time, various data will be saved during the performance measurement for subsequent visual comparison processing. These data include the execution time of each rendering instruction, resource usage, etc.

[0066] Specifically, when splitting the rendering process to form multiple rendering channels, the status of each rendering channel is recorded. Among them, the rendering channel status includes the rendering resource configuration and parameter changes of the rendering channel. In modern graphics interfaces, the rendering channel is responsible for maintaining multiple important buffers, such as color buffers, depth buffers, or stencil buffers. Therefore, a rendering process attachment is assigned to each rendering channel according to the rendering channel status, and this rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process.

[0067] When multiple rendering instructions are in the same rendering channel, the following contents should be clarified during the process of splitting the rendering process into multiple rendering channels:

[0068] Whether to load the previous color attachment: When adding a new rendering channel, it is necessary to clarify whether it is necessary to load the color attachment used in the previous rendering channel, which is crucial for maintaining rendering consistency and correctness.

[0069] Save the result of the current rendering channel: It must be determined whether the rendering result of the current rendering channel needs to be saved to the attachment so that subsequent rendering channels can load and use these intermediate results, which is very important for ensuring the coherence of the rendering process and the correct transfer of the results.

[0070] By maintaining the above resource dependency relationship, it can be ensured that during the process of splitting and reconfiguring the rendering channel, its resource configuration remains consistent and the rendering result is correct, thus ensuring the effectiveness and stability of the entire rendering process. To better implement this process, when the system splits the rendering channel, a set of resource management mechanisms can be used to automatically record and track the resource configuration and parameter changes of each rendering channel. This not only improves the automation level of the system but also reduces the possibility of manual intervention, thereby enhancing the efficiency and reliability of the entire rendering process.

[0071] S3, Image quality analysis: Calculate the image quality difference between the rendering frames corresponding to different rendering resources and save the image difference results.

[0072] The final rendering result of the current frame will be saved in the frame buffer. By comparing the results in the frame buffer among different rendering resources, saving the rendering frame results during execution, then calculating the image difference values between the rendering frames corresponding to different rendering resources frame by frame through SSIM, and saving the image difference results and the corresponding rendering frames, which will be passed to the front end for display later. The calculation method is as follows:

[0073] Where: $x$ and $y$ are two images to be compared, $\mu_x$ and $\mu_y$ are the average values of images $x$ and $y$ respectively, $\sigma_x^2$ and $\sigma_y^2$ are the variances of images $x$ and $y$ respectively, $C_{xy}$ is the covariance of images $x$ and $y$, $K_1$ and $K_2$ are constants for stability, generally taking values of $K_1 = 0.01$ and $K_2 = 0.03$, where $L$ is the dynamic range of pixel values, usually 255; $c_1$ and $c_2$ are smaller constants, usually taking 1 and 0.03.

[0074] The explanations of each part in the formula are as follows: $l(x,y)$ is used to measure the similarity of brightness, $c(x,y)$ and $s(x,y)$ are used to measure the similarity of contrast and structure. The above formula combines the similarities in brightness, contrast, and structure to evaluate the overall similarity of the image quality of two images. The value range of SSIM is from -1 to 1, and the closer the value is to 1, the more similar the two images are.

[0075] S4, result display: Display the performance difference result and the image difference result determined based on the performance measurement result.

[0076] In the embodiment, the result is displayed on the front end, specifically displaying the performance difference result and the image difference result. For each type of result, different display methods are adopted for both the single - target test process and the multi - target test process.

[0077] Regarding the display of the performance measurement result, for the single - target test process, display the performance difference result of a single rendering resource compared to the target rendering resource during the rendering process. Specifically, assume that the total time consumed by the current rendering resource in the final test is 100 seconds, and the comprehensive time consumed by the target rendering resource is 110 seconds. The final display result is (110 - 100) / 110 * 100% = 9.09%. This is the optimization ratio of the current rendering resource compared to the target rendering resource in the current drawing process. And this optimization is mainly reflected in the GPU. If the rendering resource provided by the user reduces the bandwidth pressure or the reading frequency, it can also be shown by the performance analysis of the present invention.

[0078] For the multi - target test process, it shows the comprehensive performance difference results of multiple rendering resources compared with the target rendering resource in the rendering process of the overall scene, and shows the individual performance difference results of each rendering resource compared with the target rendering resource in the rendering process of the overall scene. Specifically, what will actually be analyzed is the total rendering time. That is, when the user selects a series of rendering resources, it helps to analyze the comprehensive benefits of selecting the current rendering resources. It will also count the current performance of each rendering resource. A feasible solution is to generate a heat map at the front - end to show all bottleneck resource calculations and performance differences in the user's current rendering process, helping the user quickly locate performance bottlenecks or abnormal situations. Specifically, the user can choose a simpler and less complex solution to replace these rendering resources. After replacement, the test process of the present invention can quickly calculate the current overall benefit based on the replaced rendering resources by the user, helping the user quickly locate and solve problems.

[0079] In addition to the time analysis specifically pointed out in the embodiments, performance information in dimensions such as memory, video memory, battery power, battery power consumption, CPU core temperature, GPU core temperature, etc. can also be accessed and jointly used to analyze the changes in the current overall performance.

[0080] For the display of image difference results in the single - target test process, it shows at least 2 rendered frame images with the largest image difference between a single rendering resource and the target rendering resource. Optionally, three frames of rendered images with the largest image difference in the entire rendering process are selected for comparison with the target rendering resource to help the user identify the most significant picture quality differences.

[0081] For the multi - target test process, it shows a list of image difference results for each rendered frame of multiple rendering resources compared with the target rendering resource in the entire rendering scene. Specifically, the picture quality analysis results of multiple resources will return a complete list, including the comparison results of each rendered frame and the target rendered frame in the entire test process for the user to view. At the same time, it will also list the specific rendering resources used in the current rendered frame. When visualizing, the calculated image differences are converted into bar charts and listed at the front - end. The higher the bar, the greater the current difference value. The user can intuitively see the frames with larger differences in the entire process, facilitating screening and in - depth analysis. Specifically, the user can quickly iterate and analyze the positions with problems, the positions still requiring optimization and adjustment, or solve specific picture problems in the current rendering process. Or, by comparison and heat map, it can be judged whether the replaced rendering resources meet the expectations in the current picture situation, or whether the impact of optimizing the rendering resources is acceptable.

[0082] Such as Figure 2As shown in the figure, the embodiment also provides an automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison device, including: a data input module, a pre-processing module, a performance analysis module, a picture quality analysis module, and a result display module. Among them, the data input module is used to input the rendering resources to be tested and the test configuration; the pre-processing module is used to select a multi-target test process or a single-target test process according to the number of rendering targets. When the multi-target test process is selected, the rendering resources of each rendering target are injected into the created rendering process in advance. When the single-target test process is selected, the same rendering resources are configured for the same rendering target, and it is determined to detect and load the rendering resources to be tested in the rendering process and replace the original target rendering resources; the performance analysis module is used to split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, open a separate rendering channel for each rendering instruction, bind the rendering resources for each rendering instruction to form a resource dependency relationship and maintain it, and execute the rendering instructions according to the test scope and the resource dependency relationship and measure the performance overhead and save the performance measurement results. The picture quality analysis module is used to calculate the picture quality difference between the rendering frames corresponding to different rendering resources and save the picture quality difference results; the result display module is used to display the performance measurement results and the picture quality difference results.

[0083] It should be noted that when the automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison system provided in the above embodiment performs rendering performance evaluation and picture quality comparison, the above-mentioned division of each functional module should be used for illustration. The above functions can be allocated to different functional modules according to needs, that is, the internal structure of the terminal or server is divided into different functional modules to complete all or part of the functions described above. In addition, the automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison system provided in the above embodiment and the embodiment of the automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison construction method belong to the same concept. For the specific implementation process, please refer to the embodiment of the automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison method, which will not be elaborated here.

[0084] An automatic multi-scenario multi-resource rendering performance evaluation and picture quality comparison method and system provided by the embodiment generate a series of performance analysis and picture quality comparison results for each rendering resource according to the single or multiple rendering resources input by the user according to the test configuration specified by the user according to the pre-prepared rendering process; perform different demand process tests according to the number of targets of the input rendering resources, and compare the test results obtained by different resources or multiple different resources in different ways in a single-resource comparison or multi-resource comparison manner, and provide reasonable performance analysis help for the user in a manner that conforms to the user's subjective intuition. The final visual presentation helps the user reasonably analyze performance problems and possible picture quality problems.

[0085] The specific embodiments described above have elaborated in detail the technical solutions and beneficial effects of the present invention. It should be understood that the above is only the most preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, supplements, equivalent replacements, etc. made within the principle scope of the present invention shall be included within the protection scope of the present invention.

Claims

1. An automatic multi-scenario and multi-resource rendering performance evaluation and picture quality comparison method, characterized in that The steps include: Data input and preprocessing: Input the rendering resources to be tested and the test configuration. Select a multi-target test process or a single-target test process according to the number of rendering targets. When the multi-target test process is selected, inject the rendering resources of each rendering target into the created rendering process in advance. When the single-target test process is selected, configure the same rendering resources for the same rendering target, and determine to detect and load the rendering resources to be tested in the rendering process and replace the original target rendering resources. Performance analysis: Split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions. After inputting the rendering process, process the command buffers with parent-child relationships, and implement the management of multiple secondary command buffers by a single primary command buffer by setting the secondary command buffer in the command buffer, so as to increase the overall logic and parallelism of the command buffer. Each rendering instruction represents a single rendering pass independently, force the entire rendering process to have a certain serial relationship, and ensure that each rendering instruction is independent of each other. Bind the rendering resources to each rendering instruction to form and maintain a resource dependency relationship. Execute the rendering instructions according to the test scope and resource dependency relationship and measure the performance overhead, and save the performance measurement results and the rendering frames corresponding to different rendering resources. Image quality analysis: Calculate the image quality differences between the rendering frames corresponding to different rendering resources and save the image difference results. Result display: Display the performance difference results and image difference results determined according to the performance measurement results.

2. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, wherein For the single-resource test process, directly replay the recorded rendering instruction stream file and identify and replace the target resources during the running process. For the multi-resource test process, inject the rendering resources of each rendering target into the created rendering process in advance, including: injecting the rendering resources to be tested of each rendering target into the created rendering process in the way of replacing the original target rendering resources in advance. For both the single-resource test process and the multi-resource test process, record the usage and performance of each rendering resource, so as to ensure that each rendering resource can perform subsequent performance analysis and image quality analysis in the same rendering environment.

3. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that, Configure the same rendering resources for the same rendering target, including: The same data used during data loading is considered the same rendering resource, and the rendering targets that use the same rendering resource multiple times are considered the same rendering target. Based on this, configure the same rendering resources for the same rendering target.

4. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that Dividing the test scope according to the rendering instructions also includes: Specifically save the commands in the secondary command buffer and reasonably expand the secondary command calls in the primary command buffer in order. When it is necessary to modify the command buffer bound by the current command, execute the order according to the rendering pass division.

5. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, characterized in that Each rendering instruction represents a single rendering pass independently, force the entire rendering process to have a certain serial relationship, and ensure that each rendering instruction is independent of each other. For each rendering pass, mark a timestamp at the start and end respectively using a timestamp, and the rendering time of the entire rendering process is the difference between the timestamps.

6. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, wherein Binding the rendering resources to each rendering instruction to form and maintain a resource dependency relationship, including: Record the status of each rendering pass when splitting the rendering process into multiple rendering passes. The status of the rendering pass includes the rendering resource configuration and parameter changes of the rendering pass, and allocate a rendering process attachment for each rendering pass according to the status of the rendering pass. The rendering process attachment maintains the resource dependency relationship of the rendering instructions in the rendering process; When multiple rendering instructions are in the same rendering pass, the following contents should be clarified during the process of splitting the rendering process into multiple rendering passes: Whether to load the previous color attachment: When adding a new rendering pass, it must be clarified whether it is necessary to load the color attachment used in the previous rendering pass; Save the result of the current rendering pass: It must be determined whether the rendering result of the current rendering pass needs to be saved to the attachment so that subsequent rendering passes can load and use these intermediate results.

7. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, wherein Calculate the image difference between the rendering frames corresponding to different rendering resources, including: Calculate the image difference value between the rendering frames corresponding to different rendering resources frame by frame through SSIM, and save the image difference result and the corresponding rendering frame.

8. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, wherein, Display the performance measurement results and the image difference results, including: Regarding the display of the performance measurement results, for the single-target test process, display the performance difference result of a single rendering resource compared with the target rendering resource in the rendering process; for the multi-target test process, display the comprehensive performance difference result of multiple rendering resources compared with the target rendering resource in the rendering process of the overall scene, and display the individual performance difference result of each rendering resource compared with the target rendering resource in the rendering process of the overall scene.

9. The automatic multi-scenario and multi-resource rendering performance evaluation and image quality comparison method according to claim 1, wherein Display the performance measurement results and the image difference results, including: Regarding the display of the image difference results, for the single-target test process, display at least 2 rendering frame images with the largest image difference result of a single rendering resource compared with the target rendering resource; for the multi-target test process, display the list of image difference results of each rendering frame of multiple rendering resources compared with the target rendering resource in the entire rendering scene.

10. An automatic multi-scenario and multi-resource rendering performance evaluation and picture quality comparison device, characterized in that, Include: A data input and preprocessing module, which is used to input the rendering resources to be tested and the test configuration, select a multi-target test process or a single-target test process according to the number of rendering targets. When selecting a multi-target test process, inject the rendering resources of each rendering target into the created rendering process in advance. When selecting a single-target test process, configure the same rendering resources for the same rendering target, and determine to detect and load the rendering resources to be tested in the rendering process and replace the original target rendering resources; A performance analysis module, which is used to split the rendering process into multiple independent rendering instructions, divide the test scope according to the rendering instructions, after inputting the rendering process, process the command buffers with parent-child relationships, and implement the management of multiple secondary command buffers by a single primary command buffer by setting a secondary command buffer in the command buffer, thereby increasing the overall logic and parallelism of the command buffer, opening a separate rendering channel for each rendering instruction, forcing a certain serial relationship in the entire rendering process, and ensuring the independence of each rendering instruction, binding rendering resources to each rendering instruction to form and maintain a resource dependency relationship, executing the rendering instructions according to the test scope and resource dependency relationship, measuring the performance overhead, and saving the performance measurement results; An image quality analysis module, which is used to calculate the image quality differences between the rendering frames corresponding to different rendering resources and save the image quality difference results; A result display module, which is used to display the performance measurement results and the image quality difference results.

Citation Information

Patent Citations

  • Virtual scene rendering method and device, equipment, storage medium and program product

    CN118615703A

  • Tools for performance testing autonomous vehicle planners

    US20240256415A1