Image rendering methods, apparatus, storage media and electronic devices

By dividing image data into sub-images and rendering them across multiple rendering nodes, the problem of low rendering quality and efficiency of 3D rendering engines on terminal devices is solved, achieving more efficient rendering results.

CN115393490BActive Publication Date: 2026-03-10CHINA TELECOM CORP LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-08-18
Publication Date
2026-03-10

AI Technical Summary

Technical Problem

In existing technologies, when rendering on terminal devices, 3D rendering engines choose the platform with the lowest performance for adaptability considerations, resulting in poor rendering quality. Furthermore, when hardware resources are insufficient, the quality needs to be reduced, resulting in poor rendering effects.

Method used

The image data is divided into multiple sub-image data, which are rendered separately through multiple rendering nodes and then stitched together to form a complete image. This increases the number of concurrent processes, reduces runtime overhead, and avoids the problem of insufficient hardware resources.

Benefits of technology

By using sliced ​​rendering, rendering quality and efficiency can be improved, avoiding insufficient hardware resources during single-machine rendering and enhancing rendering effects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115393490B_ABST
    Figure CN115393490B_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of computer, in particular to an image rendering method, an image rendering device, a computer readable storage medium and an electronic device. The method comprises: obtaining a rendering request, determining first image data to be rendered according to the rendering request; dividing the first image data into a plurality of first sub-image data; rendering the plurality of first sub-image data through a plurality of rendering nodes to obtain a plurality of first sub-images; after the plurality of first sub-images are rendered, splicing the plurality of first sub-images into a first image to complete the rendering of the first image. Through the technical scheme of the embodiment of the present disclosure, the problem of poor efficiency of image rendering in related technologies can be solved.
Need to check novelty before this filing date? Find Prior Art

Description

TECHNICAL FIELD

[0001] The present disclosure relates to the field of computer technology, and in particular, to an image rendering method, an image rendering device, a computer readable storage medium and an electronic device. BACKGROUND

[0002] With the rapid development of virtual reality, metaverse, digital twin and other fields, three-dimensional rendering engines have also developed rapidly. In a three-dimensional rendering engine, virtual models and virtual environments can be created, and user operations can be displayed through the three-dimensional rendering engine to provide intelligent and interactive services for users.

[0003] In related technologies, three-dimensional rendering can be performed through a rendering engine carried by a terminal. However, the scheme in related technologies needs to consider the adaptability of three-dimensional rendering, so the lowest performance platform is selected to make the audience range wider, which will result in poor rendering quality. In addition, three-dimensional rendering on a terminal needs to occupy hardware resources, and when hardware resources are insufficient, the quality needs to be reduced, resulting in poor rendering effect.

[0004] It should be noted that the information disclosed in the above background section is only used to strengthen the understanding of the background of the present disclosure, and therefore can include information that does not constitute prior art known to those of ordinary skill in the art. SUMMARY

[0005] The purpose of the present disclosure is to provide an image rendering method, an image rendering device, a computer readable storage medium and an electronic device, which can solve the problem of poor image rendering efficiency in related technologies.

[0006] Other characteristics and advantages of the present disclosure will become apparent from the following detailed description, or will be learned by practice of the present disclosure.

[0007] According to a first aspect of the present disclosure, an image rendering method is provided, comprising: obtaining a rendering request, determining first image data to be rendered according to the rendering request; dividing the first image data into a plurality of first sub-image data; rendering the plurality of first sub-image data through a plurality of rendering nodes to obtain a plurality of first sub-images; after the plurality of first sub-images are rendered, splicing the plurality of first sub-images into a first image to complete the rendering of the first image.

[0008] In an exemplary embodiment of the present disclosure, based on the foregoing scheme, determining the first image data to be rendered according to the rendering request comprises: determining rendering related information according to the rendering request; wherein the rendering related information comprises one or more of a rendering position, a rendering direction and a rendering area; determining the first image data to be rendered according to the rendering related information.

[0009] In an example embodiment of the present disclosure, based on the foregoing scheme, the first image data is divided into a plurality of first sub-image data, comprising: obtaining a second image rendered by a previous frame; wherein the second image corresponds to a plurality of second sub-images; obtaining a rendering time of the second image, and obtaining a number of shaded pixels corresponding to each second sub-image; determining a rendering load of each second sub-image according to the rendering time of the second image and the number of shaded pixels corresponding to each second sub-image; and dividing the first image data into a plurality of first sub-image data according to the rendering load of each second sub-image.

[0010] In an example embodiment of the present disclosure, based on the foregoing scheme, the first image data is divided into a plurality of first sub-image data according to the rendering load of each second sub-image, comprising: determining a predicted rendering load of each pixel column in the first image data according to the rendering load of the second sub-image, and determining a predicted total rendering load of the first image data according to the predicted rendering load of each pixel column; sequentially accumulating the predicted rendering load of the pixel column to obtain a partition predicted rendering load, and dividing the first image data into two candidate first sub-image data at a column position corresponding to a last accumulated pixel column when the partition predicted rendering load meets a preset condition; wherein the preset condition is related to the predicted total rendering load of the first image data; determining a predicted rendering load of each pixel row in the candidate first sub-image data according to the rendering load of the second sub-image, and determining a predicted total rendering load of the candidate first sub-image data; dividing the candidate first sub-image data according to the predicted rendering load of each pixel row in the candidate first sub-image data and the predicted total rendering load of the candidate first sub-image data; and obtaining a plurality of first sub-image data when a division depth is reached; wherein the division depth is used to indicate the number of first sub-image data.

[0011] In an example embodiment of the present disclosure, based on the foregoing scheme, the preset condition is that the partition predicted rendering load of N pixel columns is less than or equal to one half of the predicted total rendering load, and the partition predicted rendering load of N+1 pixel columns is less than or equal to the predicted total rendering load.

[0012] In an example embodiment of the present disclosure, based on the foregoing scheme, the first sub-image is obtained by rendering the plurality of first sub-image data by a plurality of rendering nodes, comprising: rendering the plurality of first sub-image data by the plurality of rendering nodes respectively to obtain the first sub-image.

[0013] In an example embodiment of the present disclosure, based on the foregoing scheme, the first image of a plurality of continuous frames is obtained, the target video is obtained by synthesizing the first image of the plurality of continuous frames; and the target video is sent to a user terminal device to play the target video in the user terminal device.

[0014] According to a second aspect of the present disclosure, an image rendering apparatus is provided, comprising: a rendering request obtaining module configured to obtain a rendering request, and determine first image data to be rendered according to the rendering request; a sub-image dividing module configured to divide the first image data into a plurality of first sub-image data; a sub-image rendering module configured to render the plurality of first sub-image data by a plurality of rendering nodes to obtain a plurality of first sub-images; and an image rendering module configured to splice the plurality of first sub-images into a first image after the plurality of first sub-images are rendered, to complete rendering of the first image.

[0015] According to a third aspect of the present disclosure, a computer readable storage medium is provided, having a computer program stored thereon, the program being executed by a processor to implement the image rendering method of the first aspect in the above embodiment.

[0016] According to a fourth aspect of the present disclosure, an electronic device is provided, comprising:

[0017] one or more processors; and

[0018] a storage device configured to store one or more programs, which when executed by the one or more processors, cause the one or more processors to implement the image rendering method of the first aspect in the above embodiment.

[0019] The technical solutions provided by the embodiments of the present disclosure can include the following beneficial effects:

[0020] In the related art, three-dimensional rendering can be performed by a rendering engine carried by a terminal. However, the scheme in the related art needs to consider the adaptability of three-dimensional rendering, so the lowest performance platform is selected to make the audience range wider, which will result in poor rendering quality. In addition, three-dimensional rendering in the terminal needs to occupy hardware resources, and when the hardware resources are insufficient, the quality needs to be reduced, resulting in poor rendering effect.

[0021] In the image rendering method provided by an embodiment of the present disclosure, a rendering request can be obtained, first image data to be rendered can be determined according to the rendering request, the first image data can be divided into a plurality of first sub-image data, the plurality of first sub-image data can be rendered by a plurality of rendering nodes to obtain a plurality of first sub-images, and after the plurality of first sub-images are rendered, the plurality of first sub-images can be spliced into a first image to complete rendering of the first image. Through the embodiments of the present disclosure, on the one hand, the image can be divided into a plurality of sub-images, and the plurality of sub-images can be rendered in a plurality of rendering nodes, which can improve the concurrency number and reduce the running overhead. On the other hand, the problem of insufficient hardware resources caused by single machine rendering can be avoided, and the rendering quality and rendering efficiency can be improved.

[0022] It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the disclosure. BRIEF DESCRIPTION OF DRAWINGS

[0023] The accompanying drawings, which are incorporated in and form a part of the specification, illustrate embodiments consistent with the present disclosure and, together with the description, serve to explain the principles of the disclosure. It is appreciated that the accompanying drawings are only some embodiments of the present disclosure, and other drawings can be obtained by those of ordinary skill in the art without creative effort based on the drawings. In the drawings:

[0024] Figure 1 A schematic diagram illustrating an exemplary system architecture of an image rendering method in an exemplary embodiment of the present disclosure is shown schematically;

[0025] Figure 2 A flowchart illustrating an image rendering method in an exemplary embodiment of the present disclosure is shown schematically;

[0026] Figure 3 A flowchart illustrating determining first image data to be rendered according to rendering-related information in an exemplary embodiment of the present disclosure is shown schematically;

[0027] Figure 4 A flowchart illustrating dividing first image data into a plurality of first sub-image data according to rendering load of each second sub-image in an exemplary embodiment of the present disclosure is shown schematically;

[0028] Figure 5 A schematic diagram illustrating rendering load of a second sub-image in an exemplary embodiment of the present disclosure is shown schematically;

[0029] Figure 6 A flowchart illustrating obtaining a plurality of first sub-image data when a division depth is reached in an exemplary embodiment of the present disclosure is shown schematically;

[0030] Figure 7 A schematic diagram illustrating dividing first image data into a plurality of first sub-image data in an exemplary embodiment of the present disclosure is shown schematically;

[0031] Figure 8 A flowchart illustrating sending a target video to a user terminal device to play the target video in the user terminal device in an exemplary embodiment of the present disclosure is shown schematically;

[0032] Figure 9 A schematic diagram illustrating a distributed image rendering system in an exemplary embodiment of the present disclosure is shown schematically;

[0033] Figure 10 A schematic diagram illustrating another distributed image rendering system in an exemplary embodiment of the present disclosure is shown schematically;

[0034] Figure 11 The illustration schematically depicts a distributed image rendering architecture according to an exemplary embodiment of the present disclosure;

[0035] Figure 12 This schematically illustrates another distributed image rendering architecture in an exemplary embodiment of the present disclosure;

[0036] Figure 13 This schematically illustrates a flowchart of an image rendering method according to an exemplary embodiment of the present disclosure;

[0037] Figure 14 This schematic diagram illustrates the composition of an image rendering apparatus in an exemplary embodiment of the present disclosure.

[0038] Figure 15 The schematic diagram illustrates a structural schematic of a computer system suitable for implementing an electronic device according to exemplary embodiments of the present disclosure. Detailed Implementation

[0039] Exemplary embodiments will now be described more fully with reference to the accompanying drawings. However, these exemplary embodiments can be implemented in many forms and should not be construed as limited to the examples set forth herein; rather, they are provided so that this disclosure will be more comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided to give a thorough understanding of embodiments of this disclosure. However, those skilled in the art will recognize that the technical solutions of this disclosure can be practiced without one or more of the specific details, or other methods, components, apparatuses, steps, etc., may be employed. In other instances, well-known structures, methods, apparatuses, implementations, materials, or operations are not shown or described in detail to avoid obscuring various aspects of this disclosure.

[0040] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software, or in one or more software-hardened modules, or in different network and / or processor devices and / or microcontroller devices.

[0041] Figure 1 A schematic diagram of an exemplary system architecture to which the image rendering method of embodiments of the present disclosure can be applied is shown.

[0042] like Figure 1As shown, system architecture 1000 may include one or more of terminal devices 1001, 1002, and 1003, network 1004, and server 1005. Network 1004 is used as a medium to provide a communication link between terminal devices 1001, 1002, and 1003 and server 1005. Network 1004 may include various connection types, such as wired or wireless communication links or fiber optic cables, etc.

[0043] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included. For example, server 1005 could be a server cluster composed of multiple servers.

[0044] Users can use terminal devices 1001, 1002, and 1003 to interact with server 1005 via network 1004 to receive or send messages, etc. Terminal devices 1001, 1002, and 1003 can be various electronic devices with displays, including but not limited to smartphones, tablets, laptops, and desktop computers. Additionally, server 1005 can be a server providing various services.

[0045] In one embodiment, the execution entity of the image rendering method disclosed herein may be a server 1005. The server 1005 may obtain rendering requests sent by terminal devices 1001, 1002, and 1003, determine the first image data to be rendered according to the rendering requests, divide the first image data into multiple first sub-image data, render the multiple first sub-image data through multiple rendering nodes to obtain a first sub-image, and after the multiple first sub-images are rendered, stitch the multiple first sub-images together to complete the rendering of the first image.

[0046] In addition, the image rendering method disclosed herein can also be executed through terminal devices 1001, 1002, 1003, etc., to obtain a rendering request, determine the first image data to be rendered according to the rendering request, divide the first image data into multiple first sub-image data, render the multiple first sub-image data through multiple rendering nodes to obtain a first sub-image, and after the multiple first sub-images are rendered, stitch the multiple first sub-images together to complete the rendering of the first image.

[0047] Furthermore, the image rendering method of this disclosure can also be implemented jointly by terminal devices 1001, 1002, 1003 and server 1005. For example, terminal devices 1001, 1002, and 1003 can obtain a rendering request, determine the first image data to be rendered based on the rendering request, divide the first image data into multiple first sub-image data, and send the obtained multiple first sub-image data to server 1005, so that server 1005 can render the multiple first sub-image data through multiple rendering nodes to obtain the first sub-image. After the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form the first image to complete the rendering of the first image.

[0048] With the rapid development of fields such as virtual reality, metaverse, and digital twins, 3D rendering engines have also developed rapidly. 3D rendering engines can create virtual models and virtual environments, and can display user interactions, providing users with intelligent and interactive services.

[0049] In related technologies, 3D rendering can be performed using the rendering engine on the terminal. However, the solutions in these technologies need to consider the adaptability of 3D rendering, so they often choose the platform with the lowest performance to broaden the audience, resulting in poor rendering quality. In addition, 3D rendering on the terminal requires hardware resources, and when hardware resources are insufficient, the quality needs to be reduced, leading to poor rendering effects.

[0050] In the image rendering method provided in this exemplary embodiment, a rendering request can be obtained, first image data to be rendered can be determined according to the rendering request, the first image data can be divided into multiple first sub-image data, the multiple first sub-image data can be rendered through multiple rendering nodes to obtain a first sub-image, and after the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image to complete the rendering of the first image. Figure 2 As shown, the image rendering method may include the following steps:

[0051] Step S210: Obtain the rendering request and determine the first image data to be rendered based on the rendering request;

[0052] Step S220: Divide the first image data into multiple first sub-image data;

[0053] Step S230: Render multiple first sub-image data through multiple rendering nodes to obtain the first sub-image;

[0054] Step S240: After the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image, so as to complete the rendering of the first image.

[0055] In one embodiment of the image rendering method disclosed herein, a rendering request can be obtained, first image data to be rendered can be determined according to the rendering request, the first image data can be divided into multiple first sub-image data, and multiple first sub-image data can be rendered through multiple rendering nodes to obtain a first sub-image. After the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image to complete the rendering of the first image. Through the embodiments of this disclosure, on the one hand, an image can be divided into multiple sub-images and rendered in multiple rendering nodes, which can increase the number of concurrent operations and reduce the operating overhead; on the other hand, it can avoid the problem of insufficient hardware resources caused by single-machine rendering, and can improve rendering quality and rendering efficiency.

[0056] The steps S210 to S240 of the image rendering method in this exemplary embodiment will now be described in more detail with reference to the accompanying drawings and embodiments.

[0057] Step S210: Obtain the rendering request and determine the first image data to be rendered based on the rendering request;

[0058] In one example embodiment of this disclosure, a rendering request can be obtained. Specifically, a rendering request can be issued when there is a rendering need. For example, when a user is playing a game, they can send a rendering request to a cloud server to render the current game scene.

[0059] It should be noted that this disclosure does not impose any special restrictions on the method of sending or obtaining rendering requests.

[0060] In one example embodiment of this disclosure, after obtaining a rendering request, the first image data to be rendered can be determined based on the rendering request. Specifically, the first image data to be rendered refers to the data used for rendering to obtain a first image.

[0061] Specifically, the rendering request can be analyzed to determine the first image corresponding to the rendering request, and the first image data corresponding to the first image can be obtained. For example, the first image data corresponding to the rendering request can be obtained from the cloud storage server in the cloud server.

[0062] It should be noted that this disclosure does not impose any special limitations on the specific method by which the first image data to be rendered is determined based on the rendering request.

[0063] In one example embodiment of this disclosure, rendering-related information can be determined based on a rendering request, and the first image data to be rendered can be determined based on the rendering-related information. (Refer to...) Figure 3 As shown, determining the first image data to be rendered based on rendering-related information may include the following steps S310 to S320:

[0064] Step S310: Determine rendering-related information based on the rendering request;

[0065] In one exemplary embodiment of this disclosure, after obtaining a rendering request through the above steps, rendering-related information can be determined based on the rendering request. This rendering-related information includes one or more of the following: rendering position, rendering direction, and rendering area. Specifically, the rendering-related information can be used to indicate the information of the virtual camera in the virtual environment when rendering is required. For example, the rendering-related information may include the rendering position of the virtual camera in the virtual environment, the orientation of the virtual camera, and the size of the image captured by the virtual camera.

[0066] It should be noted that this disclosure does not impose any special limitations on the specific method of determining rendering-related information based on the rendering request.

[0067] Step S320: Determine the first image data to be rendered based on rendering-related information.

[0068] In one exemplary embodiment of this disclosure, after obtaining the rendering-related information through the above steps, the first image data to be rendered can be determined based on the rendering-related information. Specifically, the rendering-related information can be used to indicate the relevant information of the virtual camera in the virtual environment when rendering is required. Therefore, the content of the first image can be determined based on the rendering-related information, and the first image data can be determined based on the content of the first image.

[0069] It should be noted that this disclosure does not impose any special limitations on the specific method of determining the first image data to be rendered based on rendering-related information.

[0070] Through the above steps S310 to S320, rendering-related information can be determined according to the rendering request, and the first image data to be rendered can be determined according to the rendering-related information.

[0071] Step S220: Divide the first image data into multiple first sub-image data;

[0072] In one exemplary embodiment of this disclosure, after obtaining the first image data to be rendered according to the rendering request through the above steps, the first image data can be divided into multiple first sub-image data. Specifically, the first image data can be divided into multiple first sub-image data on an average basis, or the first image data can be divided into multiple first sub-image data according to the colored pixels in the first image data.

[0073] It should be noted that this disclosure does not impose any special limitations on the specific method of dividing the first image data into multiple first sub-image data.

[0074] In one example embodiment of this disclosure, the second image rendered in the previous frame can be obtained, the rendering time of the second image can be obtained, the number of shading pixels corresponding to each second sub-image can be obtained, the rendering load of each second sub-image can be determined based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image, and the first image data can be divided into multiple first sub-image data based on the rendering load of each second sub-image. (Refer to...) Figure 4 As shown, dividing the first image data into multiple first sub-image data according to the rendering load of each second sub-image may include the following steps S410 to S440:

[0075] Step S410: Obtain the second image rendered in the previous frame;

[0076] Step S420: Obtain the rendering time of the second image and the number of shading pixels corresponding to each second sub-image;

[0077] In one example embodiment of this disclosure, after obtaining the first image data to be rendered through the above steps, the second image rendered in the previous frame can be obtained. The second image corresponds to multiple second sub-images. Specifically, before rendering the first image, the second image rendered in the previous frame can be obtained, which is divided into multiple second sub-images, and the rendering time of the second image and the number of colored pixels corresponding to each second sub-image can be obtained. Here, colored pixels refer to pixels with color.

[0078] It should be noted that this disclosure does not impose any special limitations on the specific methods for obtaining the rendering time of the second image or the number of shading pixels corresponding to each second sub-image.

[0079] Step S430: Determine the rendering load of each second sub-image based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image;

[0080] In one exemplary embodiment of this disclosure, after determining the rendering time of the second image and the number of shading pixels corresponding to each second sub-image through the above steps, the rendering load of each second sub-image can be determined based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image. Specifically, the rendering load of a second sub-image refers to the processing pressure of the rendering node when rendering the second sub-image. A higher rendering load of a second sub-image indicates greater processing pressure on the rendering node when rendering the second sub-image, and a lower rendering load indicates less processing pressure on the rendering node when rendering the second sub-image.

[0081] Specifically, the rendering time of the second image can be used to indicate the time taken to render the second image, and the number of shading pixels corresponding to the second sub-image can be used to indicate the content size of the second sub-image. Therefore, the rendering load of each second sub-image can be determined by the rendering time of the second image and the number of shading pixels corresponding to each second sub-image.

[0082] It should be noted that this disclosure does not impose any special limitations on the specific method of determining the rendering load of each second sub-image based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image.

[0083] In one example embodiment of this disclosure, the rendering load LDM[M][N] of the second sub-image (frame j) can be calculated, wherein the rendering load of the second sub-image (frame j) can be used to indicate the rendering load of each shading pixel in the second sub-image (frame j), [M][N] ij _(i=1,2...N,j=1,2...) represents the resolution of the second sub-image (the j-th frame), CN ij _(i=1,2...N,j=1,2...) represents the number of colored pixels in the second sub-image (the j-th frame), RT ij _(i=1,2...N,j=1,2...) represents the rendering time for the second image (frame j), and its expression is as follows:

[0084]

[0085] For example, such as Figure 5 As shown, the second image includes four second sub-images. The rendering time of the second image is 20ms. For the second sub-image in the upper left corner, there are 8 colored pixels. Therefore, the rendering load of this second sub-image can be calculated to be 2.5. Similarly, the rendering load of the other second sub-images can be obtained.

[0086] Step S440: Divide the first image data into multiple first sub-image data according to the rendering load of each second sub-image.

[0087] In one example embodiment of this disclosure, after obtaining the rendering load of each second sub-image through the above steps, the first image data can be divided into multiple first sub-image data based on the rendering load of each second sub-image. Specifically, the processing pressure of the rendering node when rendering the second sub-image can be determined based on the rendering load of each second sub-image, and the processing pressure when rendering the first image can be estimated based on the rendering load of the second sub-image. The first image data can then be divided into first sub-image data based on this, so as to balance the processing pressure when rendering each first sub-image data.

[0088] It should be noted that this disclosure does not impose any special limitations on the specific method by which the first image data is divided into multiple first sub-image data according to the rendering load of each second sub-image.

[0089] Through the above steps S410-S440, the second image rendered in the previous frame can be obtained, the rendering time of the second image can be obtained, the number of shading pixels corresponding to each second sub-image can be obtained, the rendering load of each second sub-image can be determined based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image, and the first image data can be divided into multiple first sub-image data based on the rendering load of each second sub-image. Through the embodiments of this disclosure, the processing pressure when rendering each first sub-image data can be balanced.

[0090] In one example embodiment of this disclosure, the predicted rendering load of each pixel column in the first image data can be determined based on the rendering load of the second sub-image, and the total predicted rendering load of the first image data can be determined based on the predicted rendering load of each pixel column. The predicted rendering loads of the pixel columns are sequentially accumulated to obtain the partitioned predicted rendering load. When the partitioned predicted rendering load meets a preset condition, the first image data is divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column. The predicted rendering load of each pixel row in the candidate first sub-image data and the total predicted rendering load of the candidate first sub-image data are determined based on the rendering load of the second sub-image. The candidate first sub-image data is then divided based on the predicted rendering load of each pixel row in the candidate first sub-image data and the total predicted rendering load of the candidate first sub-image data. When the division depth is reached, multiple first sub-image data are obtained. (Refer to...) Figure 6 As shown, when the segmentation depth is reached, multiple first sub-image data are obtained, which may include the following steps S610 to S650:

[0091] Step S610: Determine the predicted rendering load of each pixel column in the first image data based on the rendering load of the second sub-image, and determine the total predicted rendering load of the first image data based on the predicted rendering load of each pixel column.

[0092] In one exemplary embodiment of this disclosure, after obtaining the rendering load of each second sub-image through the above steps, the predicted rendering load of each pixel column in the first image data can be determined based on the rendering load of the second sub-image, and the total predicted rendering load of the first image data can be determined based on the predicted rendering load of each pixel column. Specifically, the rendering load of the second sub-image includes the rendering load of each shading pixel in the second sub-image. The rendering loads of the shading pixels in each column of the second sub-image can be summed to obtain the predicted rendering load of each pixel column in the first image data, and the predicted rendering loads of each pixel column can be summed to obtain the total predicted rendering load of the first image data.

[0093] It should be noted that this disclosure does not specifically limit the method of determining the predicted rendering load of each pixel column in the first image data based on the rendering load of the second sub-image, and determining the total predicted rendering load of the first image data based on the predicted rendering load of each pixel column.

[0094] Step S620: The predicted rendering load of the pixel column is accumulated sequentially to obtain the partitioned predicted rendering load. When the partitioned predicted rendering load meets the preset conditions, the first image data is divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column.

[0095] In one exemplary embodiment of this disclosure, after obtaining the predicted rendering load of each pixel column in the first image data and the total predicted rendering load of the first image data through the above steps, the predicted rendering loads of the pixel columns can be sequentially accumulated to obtain the partitioned predicted rendering load. When the partitioned predicted rendering load meets a preset condition, the first image data is divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column. Specifically, the predicted rendering load of each pixel column in the first image data can be sequentially accumulated from left to right to obtain the partitioned predicted rendering load. When the partitioned predicted rendering load meets a preset condition, the first image data is divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column.

[0096] The preset conditions are related to the total predictive rendering load of the first image data. For example, when accumulating the partition predictive rendering load, if the partition predictive rendering load is greater than half of the total predictive rendering load, the first image data can be divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column.

[0097] Furthermore, the preset condition can be that the partition prediction rendering load of the accumulated N pixel columns is less than or equal to half of the total prediction rendering load, and the partition prediction rendering load of the accumulated N+1 pixel columns is less than or equal to the total prediction rendering load.

[0098] It should be noted that this disclosure does not impose any special limitations on the specific content of the preset conditions.

[0099] In one example embodiment of this disclosure, for first image data D with a resolution of W*H, it is necessary to divide the first image data into N first image sub-data, with the starting position of the lower left corner of the first image data being (x0, y0). The steps are as follows:

[0100] (1) Determine the predicted rendering load T of each pixel column in the first image data based on the rendering load of the second sub-image. j The total predictive rendering load T of the first image data is determined based on the predictive rendering load of each pixel column. total Its expression is as follows:

[0101]

[0102] (2) The predicted rendering load of each pixel column is accumulated sequentially to obtain the partitioned predicted rendering load T. k Its expression is as follows:

[0103]

[0104] (3) When the partition prediction rendering load meets the preset conditions, the first image data D is divided into two candidate first sub-image data D1 and D2 at column position k corresponding to the last accumulated pixel column, where the preset condition is T. k ≤T total / 2≤T k+1 .

[0105] Step S630: Determine the predicted rendering load of each pixel row in the candidate first sub-image data and the total predicted rendering load of the candidate first sub-image data based on the rendering load of the second sub-image.

[0106] In one exemplary embodiment of this disclosure, after dividing the first image data into two candidate first sub-image data through the above steps, the predicted rendering load of each pixel row in the candidate first sub-image data and the total predicted rendering load of the candidate first sub-image data can be determined based on the rendering load of the second sub-image. Specifically, the rendering load of the second sub-image includes the rendering load of each shading pixel in the second sub-image. The rendering load of each shading pixel in the second sub-image can be used as the rendering load of each shading pixel in the candidate first sub-image. The rendering loads of the shading pixels in each pixel row of the candidate first sub-image can be summed to obtain the predicted rendering load of each pixel row in the candidate first sub-image. Finally, the predicted rendering loads of each pixel row are summed to obtain the total predicted rendering load of the candidate first sub-image data.

[0107] It should be noted that this disclosure does not impose any special limitations on the specific methods for determining the predicted rendering load of each pixel row in the candidate first sub-image data based on the rendering load of the second sub-image, or the total predicted rendering load of the candidate first sub-image data.

[0108] Step S640: Divide the candidate first sub-image data according to the prediction rendering load of each pixel row in the candidate first sub-image data and the total prediction rendering load of the candidate first sub-image data.

[0109] In one exemplary embodiment of this disclosure, after obtaining the prediction rendering load of each pixel row in the candidate first sub-image data and the total prediction rendering load of the candidate first sub-image data through the above steps, the candidate first sub-image data can be divided according to the prediction rendering load of each pixel row in the candidate first sub-image data and the total prediction rendering load of the candidate first sub-image data. Specifically, the prediction rendering load of each pixel row in the candidate first sub-image data can be accumulated sequentially from top to bottom to obtain the partition prediction rendering load. When the partition prediction rendering load meets a preset condition, the candidate first sub-image data is divided into two sub-image data at the row position corresponding to the last accumulated pixel row.

[0110] The preset conditions are related to the total predictive rendering load of the candidate first sub-image data. For example, when accumulating the partition predictive rendering load, if the partition predictive rendering load is greater than half of the total predictive rendering load of the candidate first sub-image data, the first image data can be divided into two sub-image data at the row position corresponding to the last accumulated pixel row.

[0111] Furthermore, the preset condition can be that the partition prediction rendering load of the accumulated N pixel rows is less than or equal to the total prediction rendering load of half of the candidate first sub-image data, which is less than or equal to the partition prediction rendering load of the accumulated N+1 pixel rows.

[0112] It should be noted that this disclosure does not impose any special limitations on the specific content of the preset conditions.

[0113] In step S650, when the segmentation depth is reached, multiple first sub-image data are obtained; wherein, the segmentation depth is used to indicate the number of first sub-image data.

[0114] In one exemplary embodiment of this disclosure, the data can be continuously divided in the manner described above until a division depth is reached, at which point the current sub-image data is determined as multiple first sub-image data. Specifically, the division depth can be used to indicate the number of first sub-image data. For example, a division depth of 3 can be used to indicate that the data has been divided 3 times. That is, the first image data is first divided into two candidate first sub-image data, then the first candidate first sub-image data is further divided into two sub-image data, and the other first candidate first sub-image data is further divided into two sub-image data. At this point, there are a total of 4 sub-image data, and therefore, these 4 sub-image data can be determined as multiple first sub-image data.

[0115] It should be noted that this disclosure does not impose any special restrictions on the specific form of the depth division.

[0116] For example, the segmentation depth can be log2N, where N is the number of the first sub-image data to be segmented.

[0117] Furthermore, the first image data can be segmented using model boxes.

[0118] In one exemplary embodiment of this disclosure, such as Figure 7 As shown, the first image data D can be divided into two candidate first sub-image data D1 and D2, and the candidate first sub-image data D1 can be divided into two first sub-image data D3 and D4, and the candidate first sub-image data D2 can be divided into two first sub-image data D5 and D6.

[0119] Through the above steps S610 to S650, the predicted rendering load of each pixel column in the first image data can be determined based on the rendering load of the second sub-image, and the total predicted rendering load of the first image data can be determined based on the predicted rendering load of each pixel column. The predicted rendering loads of the pixel columns are accumulated sequentially to obtain the partitioned predicted rendering load. When the partitioned predicted rendering load meets a preset condition, the first image data is divided into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column. The predicted rendering load of each pixel row in the candidate first sub-image data and the total predicted rendering load of the candidate first sub-image data are determined based on the rendering load of the second sub-image. The candidate first sub-image data is then divided based on the predicted rendering load of each pixel row and the total predicted rendering load of the candidate first sub-image data. When the division depth is reached, multiple first sub-image data are obtained. Through the embodiments of this disclosure, the first image data can be divided into multiple first sub-image data based on the rendering load of the second sub-image, which can balance the processing pressure of rendering multiple first sub-image data, improve rendering quality and rendering efficiency.

[0120] Step S230: Render multiple first sub-image data through multiple rendering nodes to obtain the first sub-image;

[0121] In one example embodiment of this disclosure, after obtaining multiple first sub-image data through the above steps, the multiple first sub-image data can be rendered using multiple rendering nodes to obtain a first sub-image. Specifically, a rendering node refers to multiple rendering nodes corresponding to a cloud server, where the first sub-image can be rendered.

[0122] Specifically, at least one first sub-image data can be rendered in each rendering node to obtain the first sub-image.

[0123] In one example embodiment of this disclosure, a first sub-image can be obtained by rendering multiple first sub-image data through multiple rendering nodes, that is, in each rendering node, only one first sub-image data is rendered.

[0124] It should be noted that this disclosure does not impose any special limitations on the specific method of rendering multiple first sub-image data through multiple rendering nodes to obtain the first sub-image.

[0125] Step S240: After the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image, so as to complete the rendering of the first image.

[0126] In one example embodiment of this disclosure, after rendering multiple first sub-images through the above steps, the multiple first sub-images can be stitched together to form a first image to complete the rendering of the first image. Specifically, the first sub-images are multiple parts of the first image, and after rendering the multiple first sub-images, they can be stitched together to form a complete image (the first image).

[0127] It should be noted that this disclosure does not impose any special limitations on the specific method of stitching multiple first sub-images into a first image.

[0128] In one example embodiment of this disclosure, multiple consecutive frames of first images can be acquired, these frames can be synthesized to obtain a target video, and the target video can be sent to a user terminal device for playback on the user terminal device. (Refer to...) Figure 8 As shown, sending the target video to the user terminal device for playback on the user terminal device may include the following steps S810 to S820:

[0129] Step S810: Acquire a series of consecutive first images and synthesize the series of consecutive first images to obtain the target video;

[0130] Step S820: Send the target video to the user terminal device so that the target video can be played on the user terminal device.

[0131] In one example embodiment of this disclosure, after obtaining multiple consecutive frames of the first image through the above steps, the multiple consecutive frames of the first image can be synthesized to obtain the target video. Specifically, the multiple consecutive frames of the first image are maliciously encoded, synthesized into the target video, and sent to the user terminal device for decoding, so as to play the decoded target video on the user terminal device.

[0132] It should be noted that this disclosure does not impose any special restrictions on the specific method of playing the target video on the user's terminal device.

[0133] Through the above steps S810 to S820, multiple consecutive frames of first images can be acquired, the multiple consecutive frames of first images can be synthesized to obtain the target video, and the target video can be sent to the user terminal device for playback on the user terminal device.

[0134] In one exemplary embodiment of this disclosure, such as Figure 9 The diagram shown is a schematic of a distributed image rendering system provided in this disclosure. The image rendering system includes a data source, multiple rendering nodes, compositing nodes, a service management node, and a display device.

[0135] The data source can be used to provide image data; the rendering node can be used to render multiple first sub-image data to obtain a first sub-image; the compositing node can be used to stitch multiple first sub-images into a first image after the multiple first sub-images have been rendered, so as to complete the rendering of the first image; the display device can be used to display the composited image; the service management node can be used to collect information of the rendering node, such as the rendering time, and can also send the rendering task corresponding to the first sub-image data to the rendering node.

[0136] In one exemplary embodiment of this disclosure, such as Figure 10 The diagram shown illustrates another distributed image rendering system provided in this disclosure. The distributed image rendering system includes an application server, a middleware cluster, a rendering cluster, and cloud storage.

[0137] The application server includes a rendering task parsing unit and an encoding and streaming unit. The rendering task parsing unit can determine rendering-related information based on the rendering request. This rendering-related information includes one or more of the following: rendering location, rendering direction, and rendering area. Based on this information, it determines the first image data to be rendered. The encoding and streaming unit can encode and synthesize the first image into a target video and send the target video to the user terminal device for communication. The middleware cluster includes a rendering proxy unit, a task scheduling unit, and a compositing unit. The rendering proxy unit can receive messages from the application server and communicate with the rendering nodes, sending the rendering tasks corresponding to the first image sub-data to the rendering nodes. The task scheduling unit can divide the first image data into multiple first sub-image data to balance the load of each rendering task. The compositing unit can stitch multiple first sub-images into a first image. The rendering cluster includes multiple rendering nodes, each including engine adaptation functions, rendering engine functions, caching functions, and rendering acceleration functions. The cloud storage includes data resources.

[0138] Furthermore, the rendering cluster can use K8S (Kubernetes, a portable platform) for node management and containerized deployment.

[0139] In one exemplary embodiment of this disclosure, such as Figure 11As shown, the GPU can be virtualized into multiple virtual vGPUs (virtual graphics processing units). Each virtual vGPU corresponds to a virtual machine in the cloud, which contains a simulated Docker (application container engine) environment. Finally, the scheduler Kubernetes manages all the Docker containers so that the multiple GPUs can work in a distributed manner in the cloud for rendering the first sub-image data.

[0140] In one exemplary embodiment of this disclosure, such as Figure 12 As shown, the native Linux (operating system) version of the UE engine and the Unreal Engine Docker can be used. Rendering can use the Linux-based low-level graphics API Vulkan (graphics application programming interface). Vulkan performs multi-threaded parallel creation and submission of instructions, which can reduce the overhead of the driver.

[0141] In one exemplary embodiment of this disclosure, such as Figure 13 As shown, the application server can receive rendering requests sent by the client, parse the rendering requests, and send the parsing results to the middleware cluster. The middleware cluster can divide the first image data into multiple first sub-image data, obtain the rendering tasks corresponding to the multiple first sub-image data, and distribute the rendering tasks corresponding to the multiple first sub-image data to the rendering cluster. Each rendering node requests the first sub-image data corresponding to the rendering task from the cloud storage cluster. The cloud storage cluster returns the first sub-image data corresponding to the rendering task to the rendering node. The rendering node renders the first sub-image according to the first sub-image data corresponding to the rendering task. The rendering node sends a single rendering node rendering completion message to the middleware cluster. The middleware cluster waits for all rendering nodes to finish rendering. The middleware cluster sends a message that all rendering nodes have finished rendering to the rendering cluster. The rendering cluster sends multiple first sub-images to the middleware cluster. The multiple first sub-images are stitched together in the middleware cluster to obtain the first image, which is then sent to the application server. The application server encodes and synthesizes the multiple first images to obtain the target video, which is then sent to the client.

[0142] In one embodiment of the image rendering method disclosed herein, a rendering request can be obtained, first image data to be rendered can be determined according to the rendering request, the first image data can be divided into multiple first sub-image data, and multiple first sub-image data can be rendered through multiple rendering nodes to obtain a first sub-image. After the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image to complete the rendering of the first image. Through the embodiments of this disclosure, on the one hand, an image can be divided into multiple sub-images and rendered in multiple rendering nodes, which can increase the number of concurrent operations and reduce the operating overhead; on the other hand, it can avoid the problem of insufficient hardware resources caused by single-machine rendering, and can improve rendering quality and rendering efficiency.

[0143] It should be noted that the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of this disclosure, and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Furthermore, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.

[0144] Furthermore, in an exemplary embodiment of this disclosure, an image rendering apparatus is also provided. (Refer to...) Figure 14 As shown, an image rendering apparatus 1400 includes: a rendering request acquisition module 1410, a sub-image segmentation module 1420, a sub-image rendering module 1430, and an image rendering module 1440.

[0145] The system includes a rendering request acquisition module for acquiring rendering requests and determining the first image data to be rendered based on the rendering requests; a sub-image division module for dividing the first image data into multiple first sub-image data; a sub-image rendering module for rendering multiple first sub-image data through multiple rendering nodes to obtain a first sub-image; and an image rendering module for stitching multiple first sub-images together into a first image after the multiple first sub-images have been rendered to complete the rendering of the first image.

[0146] In an exemplary embodiment of this disclosure, based on the foregoing scheme, the apparatus further includes: an information acquisition unit, configured to determine rendering-related information according to the rendering request; wherein the rendering-related information includes one or more of rendering position, rendering direction, and rendering area; and a first image determination unit, configured to determine the first image data to be rendered according to the rendering-related information.

[0147] In an exemplary embodiment of this disclosure, based on the aforementioned scheme, the first image data is divided into multiple first sub-image data. The apparatus further includes: a second image acquisition unit, configured to acquire a second image rendered in the previous frame; wherein the second image corresponds to multiple second sub-images; a rendering time acquisition unit, configured to acquire the rendering time of the second image and acquire the number of shading pixels corresponding to each second sub-image; a rendering load acquisition unit, configured to determine the rendering load of each second sub-image based on the rendering time of the second image and the number of shading pixels corresponding to each second sub-image; and a rendering load partitioning unit, configured to partition the first image data into multiple first sub-image data based on the rendering load of each second sub-image.

[0148] In an exemplary embodiment of this disclosure, based on the aforementioned scheme, the first image data is divided into multiple first sub-image data according to the rendering load of each second sub-image. The apparatus further includes: a first predictive rendering load acquisition unit, configured to determine the predictive rendering load of each pixel column in the first image data according to the rendering load of the second sub-images, and to determine the total predictive rendering load of the first image data according to the predictive rendering load of each pixel column; and a first partition predictive rendering load acquisition unit, configured to sequentially accumulate the predictive rendering load of the pixel columns to obtain the partition predictive rendering load, and when the partition predictive rendering load meets a preset condition, to divide the first image data into two candidate first sub-image data at the column position corresponding to the last accumulated pixel column. Image data; wherein the preset conditions are related to the total predictive rendering load of the first image data; a second predictive rendering load acquisition unit is used to determine the predictive rendering load of each pixel row in the candidate first sub-image data and the total predictive rendering load of the candidate first sub-image data based on the rendering load of the second sub-image; a second partition predictive rendering load acquisition unit is used to partition the candidate first sub-image data based on the predictive rendering load of each pixel row in the candidate first sub-image data and the total predictive rendering load of the candidate first sub-image data; a first sub-image data partitioning unit is used to obtain multiple first sub-image data when the partitioning depth is reached; wherein the partitioning depth is used to indicate the number of first sub-image data.

[0149] In one exemplary embodiment of this disclosure, based on the aforementioned scheme, the preset condition is that the partition prediction rendering load of the accumulated N pixel columns is less than or equal to half of the total prediction rendering load, which is less than or equal to the partition prediction rendering load of the accumulated N+1 pixel columns.

[0150] In an exemplary embodiment of this disclosure, based on the foregoing scheme, the apparatus further includes: rendering a plurality of first sub-image data through a plurality of rendering nodes to obtain a first sub-image; the apparatus further includes: a separate rendering unit, used to render a plurality of first sub-image data through a plurality of rendering nodes to obtain a first sub-image.

[0151] In an exemplary embodiment of this disclosure, based on the aforementioned scheme, the apparatus further includes: a first image acquisition unit, configured to acquire multiple consecutive frames of first images and synthesize the multiple consecutive frames of first images to obtain a target video; and a target video transmission unit, configured to transmit the target video to a user terminal device for playback on the user terminal device.

[0152] Since the functional modules of the image rendering apparatus in the example embodiments of this disclosure correspond to the steps of the example embodiments of the image rendering method described above, for details not disclosed in the apparatus embodiments of this disclosure, please refer to the embodiments of the image rendering method described above.

[0153] It should be noted that although several modules or units for the device used to perform actions have been mentioned in the detailed description above, this division is not mandatory. In fact, according to embodiments of this disclosure, the features and functions of two or more modules or units described above can be embodied in one module or unit. Conversely, the features and functions of one module or unit described above can be further divided and embodied by multiple modules or units.

[0154] Furthermore, in an exemplary embodiment of this disclosure, an electronic device capable of implementing the above-described image rendering method is also provided.

[0155] Those skilled in the art will understand that various aspects of this disclosure can be implemented as a system, method, or program product. Therefore, various aspects of this disclosure can be embodied in the following forms: a completely hardware embodiment, a completely software embodiment (including firmware, microcode, etc.), or an embodiment combining hardware and software aspects, collectively referred to herein as a "circuit," "module," or "system."

[0156] The following reference Figure 14 To describe an electronic device 1400 according to such an embodiment of the present disclosure. Figure 14 The electronic device 1400 shown is merely an example and should not be construed as limiting the functionality and scope of use of the embodiments disclosed herein.

[0157] like Figure 14 As shown, the electronic device 1400 is manifested in the form of a general-purpose computing device. The components of the electronic device 1400 may include, but are not limited to: at least one processing unit 1410, at least one storage unit 1420, a bus 1430 connecting different system components (including storage unit 1420 and processing unit 1410), and a display unit 1440.

[0158] The storage unit stores program code, which can be executed by the processing unit 1410 to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of this disclosure. For example, the processing unit 1410 can perform actions such as... Figure 2 In step S210, a rendering request is obtained, and the first image data to be rendered is determined according to the rendering request; in step S220, the first image data is divided into multiple first sub-image data; in step S230, the multiple first sub-image data are rendered through multiple rendering nodes to obtain a first sub-image; in step S240, after the multiple first sub-images are rendered, the multiple first sub-images are stitched together to form a first image to complete the rendering of the first image.

[0159] Storage unit 1420 may include readable media in the form of volatile storage units, such as random access memory (RAM) 1421 and / or cache memory 1422, and may further include read-only memory (ROM) 1423.

[0160] Storage unit 1420 may also include a program / utility 1424 having a set (at least one) of program modules 1425, such program modules 1425 including but not limited to: an operating system, one or more application programs, other program modules and program data, each or some combination of these examples may include an implementation of a network environment.

[0161] Bus 1430 can represent one or more of several types of bus structures, including a memory cell bus or memory cell controller, a peripheral bus, a graphics acceleration open port, a processing unit, or a local bus using any of the various bus structures.

[0162] Electronic device 1400 can also communicate with one or more external devices 1470 (e.g., keyboard, pointing device, Bluetooth device, etc.), and with one or more devices that enable a user to interact with electronic device 1400, and / or with any device that enables electronic device 1400 to communicate with one or more other computing devices (e.g., router, modem, etc.). This communication can be performed via input / output (I / O) interface 1450. Furthermore, electronic device 1400 can also communicate with one or more networks (e.g., local area network (LAN), wide area network (WAN), and / or public networks, such as the Internet) via network adapter 1460. As shown, network adapter 1460 communicates with other modules of electronic device 1400 via bus 1430. It should be understood that, although not shown in the figures, other hardware and / or software modules can be used in conjunction with electronic device 1400, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.

[0163] From the above description of the embodiments, those skilled in the art will readily understand that the exemplary embodiments described herein can be implemented by software or by combining software with necessary hardware. Therefore, the technical solutions according to the embodiments of this disclosure can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (such as a CD-ROM, USB flash drive, external hard drive, etc.) or on a network, including several instructions to cause a computing device (such as a personal computer, server, terminal device, or network device, etc.) to execute the methods according to the embodiments of this disclosure.

[0164] In exemplary embodiments of this disclosure, a computer-readable storage medium is also provided, on which a program product capable of implementing the methods described above is stored. In some possible embodiments, various aspects of this disclosure may also be implemented as a program product including program code that, when the program product is run on a terminal device, causes the terminal device to perform the steps described in the "Exemplary Methods" section of this specification according to various exemplary embodiments of this disclosure.

[0165] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A readable signal medium may also be any readable medium other than a readable storage medium, capable of sending, propagating, or transmitting programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0166] The program code contained on the readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber, RF, etc., or any suitable combination thereof.

[0167] Program code for performing the operations of this disclosure can be written in any combination of one or more programming languages, including object-oriented programming languages ​​such as Java and C++, and conventional procedural programming languages ​​such as C or similar languages. The program code can execute entirely on the user's computing device, partially on the user's computing device, as a standalone software package, partially on the user's computing device and partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing devices can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0168] Furthermore, the above figures are merely illustrative of the processes included in the method according to exemplary embodiments of this disclosure and are not intended to be limiting. It is readily understood that the processes shown in the above figures do not indicate or limit the temporal order of these processes. Additionally, it is readily understood that these processes may be executed synchronously or asynchronously, for example, in multiple modules.

[0169] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and embodiments are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the claims.

Claims

1. An image rendering method, characterized by, The method applied to a cloud server comprises: acquiring a rendering request, and determining first image data to be rendered according to the rendering request; determining rendering loads of second sub-images corresponding to a second image rendered by a previous frame; determining predicted rendering loads of pixel columns in the first image data according to the rendering loads of the second sub-images, and determining a predicted total rendering load of the first image data according to the predicted rendering loads of the pixel columns; obtaining a partition predicted rendering load by sequentially accumulating the predicted rendering loads of the pixel columns, and dividing the first image data into two candidate first sub-image data at a column position corresponding to the last accumulated pixel column when the partition predicted rendering load meets a preset condition, wherein the preset condition is related to the predicted total rendering load of the first image data; determining predicted rendering loads of pixel rows in the candidate first sub-image data according to the rendering loads of the second sub-images, and determining a predicted total rendering load of the candidate first sub-image data; dividing the candidate first sub-image data according to the predicted rendering loads of the pixel rows in the candidate first sub-image data and the predicted total rendering load of the candidate first sub-image data; obtaining a plurality of first sub-image data when a division depth is reached, wherein the division depth is used to indicate the number of first sub-image data; rendering the plurality of first sub-image data by a plurality of rendering nodes to obtain first sub-images; after the rendering of the plurality of first sub-images is completed, splicing the plurality of first sub-images into a first image to complete the rendering of the first image.

2. The method of claim 1, wherein, The method further comprises: determining rendering related information according to the rendering request, wherein the rendering related information comprises one or more of a rendering position, a rendering direction and a rendering region; determining the first image data to be rendered according to the rendering related information.

3. The method of claim 1, wherein, The method further comprises: acquiring the second image rendered by the previous frame, wherein the second image corresponds to a plurality of second sub-images; acquiring a rendering time of the second image, and acquiring the number of shaded pixels corresponding to each of the second sub-images; determining the rendering loads of the second sub-images according to the rendering time of the second image and the number of shaded pixels corresponding to each of the second sub-images.

4. The method of claim 1, wherein, The preset condition is that the partition predicted rendering load of N pixel columns is less than or equal to one half of the predicted total rendering load, which is less than or equal to the partition predicted rendering load of N+1 pixel columns.

5. The method of claim 1, wherein, The method further comprises: rendering the plurality of first sub-image data by a plurality of rendering nodes to obtain first sub-images.

6. The method of claim 1, wherein, The method further comprises: acquiring a plurality of continuous frames of the first image, and synthesizing the plurality of continuous frames of the first image to obtain a target video; sending the target video to a user terminal device to play the target video in the user terminal device.

7. An image rendering apparatus, characterized by comprising: The apparatus comprises: The rendering request obtaining module is configured to obtain a rendering request, and determine first image data to be rendered according to the rendering request; The sub-image dividing module is configured to determine rendering loads of each second sub-image corresponding to a second image rendered by a previous frame, determine predicted rendering loads of each pixel column in the first image data according to the rendering loads of the second sub-images, and determine a predicted total rendering load of the first image data according to the predicted rendering loads of the pixel columns; sequentially accumulate the predicted rendering loads of the pixel columns to obtain a partition predicted rendering load, divide the first image data into two candidate first sub-image data at a column position corresponding to the pixel column that is lastly accumulated when the partition predicted rendering load meets a preset condition, wherein the preset condition is related to the predicted total rendering load of the first image data; determine predicted rendering loads of each pixel row in the candidate first sub-image data and a predicted total rendering load of the candidate first sub-image data according to the rendering loads of the second sub-images; divide the candidate first sub-image data according to the predicted rendering loads of each pixel row in the candidate first sub-image data and the predicted total rendering load of the candidate first sub-image data; and obtain a plurality of first sub-image data when a division depth is reached, wherein the division depth is used to indicate a number of first sub-image data. The sub-image rendering module is configured to render the plurality of first sub-image data by a plurality of rendering nodes to obtain first sub-images. The image rendering module is configured to splice the plurality of first sub-images into a first image after the plurality of first sub-images are rendered to complete rendering of the first image.

8. A computer-readable storage medium having stored thereon a computer program, characterized in that, The program is executed by the processor to implement the method of any one of claims 1-6.

9. An electronic device, comprising: The program is executed by the processor to implement the method of any one of claims 1-6. one or more processors; and a memory for storing one or more programs, which, when executed by the one or more processors, cause the one or more processors to implement the method of any one of claims 1-6.

Citation Information

Patent Citations

  • Image rendering method, device and system and storage medium

    CN111179399A