An image rendering method, system and medium based on a unified rendering kernel

By using a unified rendering kernel and standardized description files, the problem of visual differences between front-end preview and back-end compositing was solved, achieving an efficient image rendering process and improving production efficiency and consistency.

CN122199731APending Publication Date: 2026-06-12GUANGZHOU KUAIZI INFORMATION TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
GUANGZHOU KUAIZI INFORMATION TECH CO LTD
Filing Date
2026-04-20
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

In existing image rendering technologies, there are visual differences between front-end preview and back-end compositing, which requires production staff to make repeated adjustments, reducing production efficiency and increasing costs.

Method used

It adopts a unified rendering kernel and establishes a standardized description file and a core rendering library with adjustable configuration precision to enable the front-end preview and back-end compositing to share the same rendering logic, with low-precision real-time rendering on the front end and high-precision compositing on the back end.

🎯Benefits of technology

It eliminates the visual difference between the preview and the final product, improves development and production efficiency, reduces system complexity and maintenance costs, and achieves the precise effect of "what you see on the front end is what you get on the back end".

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122199731A_ABST
    Figure CN122199731A_ABST
Patent Text Reader

Abstract

The application relates to the field of computer graphics, and particularly discloses an image rendering method and system based on a unified rendering kernel and a medium, which comprises a preview module deployed at a front end and a synthesis module deployed at a back end; a template of a standardized description file is established; a core rendering library with adjustable configuration precision is established, the core rendering library only accepts the standardized description file as input and outputs a rendering result; the preview module executes the standardized description file at low precision and outputs an instant rendering image; and the synthesis module executes the standardized description file at high precision and outputs an encoding file containing a full rendering result. The application builds a platform-independent core rendering engine and designs a standardized structured description language, so that the front-end preview and the back-end synthesis share the same set of rendering logic, and the output result difference between the front-end preview and the back-end synthesis is eliminated. The consistency problem is completely solved, and the development efficiency and the production efficiency are improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of computer graphics, and in particular to an image rendering method, system, and medium based on a unified rendering kernel. Background Technology

[0002] With the explosive development of information technology, the rendering technology of video content such as pictures and images has become more and more mature and diversified. The demand for related functions has increased dramatically with the development of video websites. As the number of users grows, users are also demanding higher and higher levels of ease of use, rendering efficiency, hardware requirements, and accuracy of image rendering functions.

[0003] In existing image processing workflows, there are typically two independent rendering systems: a front-end (editing and preview) and a back-end (final compositing). The front-end often uses common graphics technologies such as WebGL and Canvas to achieve real-time interactive preview, while the back-end often relies on FFmpeg, offline rendering libraries, etc., to generate high-definition video. Due to differences between the two rendering engines in terms of algorithm implementation, floating-point precision, color space conversion, font rendering, and animation interpolation, there are discrepancies between the preview and the final product in terms of visual effect. Common problems include inconsistent colors, incorrect transparency layering, motion trajectory deviation, and font display differences. This "what you see is not what you get" phenomenon forces producers to repeatedly output test clips for comparison and adjustment, significantly reducing video creation efficiency and increasing manpower and time costs.

[0004] If the front-end adopts the same existing rendering system as the back-end, it will cause the preview interface to consume a lot of computing resources. Each rendering operation requires a long waiting time for the preview screen to be rendered. The waiting time required for users to repeatedly check and debug during the rendering process will be greatly increased, which will greatly reduce production efficiency and increase computing costs. Summary of the Invention

[0005] To overcome the above problems, the present invention provides an image rendering method, system and medium based on a unified rendering kernel.

[0006] This invention provides an image rendering method based on a unified rendering kernel, including a preview module deployed on the front end and a compositing module deployed on the back end; its implementation steps include: For material elements, a standardized description file template is established according to a unified format; wherein, the material elements include the attributes, positions, keyframes, special effects parameters, blending modes, animation curves and logical control relationships of each material in the image rendering process; Establish a core rendering library with adjustable configuration precision. The core rendering library only accepts standardized description files as input and outputs rendering results. The lower the configuration precision, the lower the rendering quality of the core rendering library, but the faster the output speed. Embed the core rendering library into the preview module and the compositing module respectively; When the user operates the preview module to render the target interactive image, the user's operation on the material elements will generate or update a standardized description file based on the template; When a standardized description file is added or updated, the preview module executes the standardized description file with low precision and outputs an instant-rendered image. When the user completes the rendering operation, the compositing module executes the standardized description file with high precision and outputs an encoded file containing the full rendering results.

[0007] Preferably, the core rendering library is developed based on the standard OpenGL rendering interface, and its kernel integrates a consistent color management and transparency blending algorithm, a unified font rasterization and vector rendering engine, and the same set of animation interpolation and particle simulation logic.

[0008] Preferably, the core rendering library includes a front-end calling interface; the front-end calling interface is used to parse the standardized description file in the front-end environment using the high-performance computing capabilities of WASM, and draw it directly through the canvas, so as to achieve cross-platform, plugin-free rendering in the browser environment.

[0009] Preferably, the core rendering library includes a backend calling interface; the backend calling interface is used to directly parse the standardized description file in a server-side or embedded environment and call the core rendering library for rendering, so as to achieve independent operation without the frontend.

[0010] Preferably, the level of configuration precision includes one or any combination of the video's frame rate, duration, and resolution.

[0011] The present invention also provides an image rendering system based on a unified rendering kernel, comprising: Calling layer: includes a preview module and a compositing module. The preview module is used to provide real-time image rendering interactive functions, and the compositing module is used to load and parse standardized description files to perform batch image rendering and file encoding output. Interface layer: The interface layer includes a front-end call interface connected to the preview module and a back-end call interface connected to the synthesis module. Both are used to input a unified standardized description file and call the same audio and video engine. Audio and video engine: Includes a core rendering library with adjustable configuration precision. The core rendering library only accepts standardized description files as input and outputs rendering results. It also integrates other audio and video processing related functions besides rendering. The lower the configuration precision, the lower the rendering quality of the core rendering library, but the faster the output speed. Rendering engine and functional modules: Includes several rendering functional modules, all of which are executed according to a unified rendering pipeline; Backend and Platform Layer: Used for backend rendering and provides multi-platform support.

[0012] Preferably, the front-end calling interface is a canvas library JavaScript Binding interface developed for a standardized description file and implemented based on WASM technology; The backend call interface is a Linux C API interface developed for standardized description files, used for backend and cross-platform services.

[0013] The present invention provides a terminal device, including a processor and a storage device, wherein the storage device is used to store one or more programs; when the one or more programs are executed by the processor, the processor implements the above-described image rendering method based on a unified rendering kernel.

[0014] The present invention provides a computer-readable storage medium comprising a stored computer program, wherein, when the computer program is executed, it controls the device where the computer-readable storage medium is located to execute the above-described image rendering method based on a unified rendering kernel.

[0015] The beneficial effects of this invention are: By building a platform-independent core rendering engine and designing a standardized structured description language, the front-end preview and back-end compositing share the same rendering logic, eliminating the differences between the output results of the front-end preview and the back-end compositing, and completely solving the consistency problem; it achieves the precise effect of front-end "what you see" is back-end "what you get", eliminates the difference between preview and final product, and improves development efficiency, increases production efficiency, and is easy to expand and promote. Attached Figure Description

[0016] The present invention will be further described below with reference to the accompanying drawings, wherein: Figure 1 This is a flowchart of the method according to Embodiment 1 of the present invention; Figure 2 This is a system architecture diagram of Embodiment 1 of the present invention. Detailed Implementation

[0017] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0018] See Figure 1 and Figure 2 As an embodiment of the present invention, an image rendering method based on a unified rendering kernel is disclosed, including a preview module deployed on the front end and a compositing module deployed on the back end; its implementation steps include: S1. Establish a unified description language for image rendering: For material elements, establish standardized description file templates according to a unified format (such as JSON or a similar format); among which, material elements include the attributes, positions, keyframes, special effects parameters, blending modes, animation curves and logical control relationships of each material in the image rendering process; S2. Build a universal rendering kernel for both front-end and back-end: Establish a lightweight, high-fidelity core rendering library with adjustable configuration precision, implement an independent self-developed rendering algorithm and function, the core rendering library does not depend on the front-end or back-end framework of a specific platform, only accepts standardized description files as input and outputs rendering results. S3, Embedded Kernel: The core rendering library is embedded into the preview module and the compositing module respectively; S4. Operation to Description File: When the user operation preview module renders the target interactive image, the user's operation on the material elements is used to generate or update a standardized description file based on the template. This standardized description file is decoupled from the core rendering library and can be transmitted and parsed across the front end and back end. S5. Front-end preview: When the standardized description file is added or updated, the preview module executes the standardized description file with low precision and outputs real-time rendered images frame by frame or segment by segment as real-time interactive feedback. S6. Backend Compositing: When the user completes the rendering operation, the compositing module executes the standardized description file with high precision and outputs an encoded file containing the full timeline and high-precision rendering results.

[0019] The level of configuration precision includes one or any combination of the video's frame rate, duration, and resolution. In other words, the lower the configuration precision, the lower the frame rate, duration, and resolution of the output rendering result. Consequently, the core rendering library consumes fewer computing resources, and the output rendering result is faster.

[0020] In this embodiment, the configuration precision mainly adjusts the resolution of the rendered image. When the front-end previews the rendering effect and prioritizes rendering speed, the relevant low-precision rendering parameters are described in the standardized description file, and the image is rendered at a low resolution (e.g., 480P). When the compositing end outputs the high-precision effect required by the client, the relevant high-precision rendering parameters are described in the standardized description file, and the image is rendered at a high resolution (e.g., 1080P). The only difference between the rendering effects of various precisions is the image sharpness; other rendering effects are consistent.

[0021] Preferably, the core rendering library is developed based on the standard OpenGL rendering interface. Its kernel integrates a consistent color management and transparency blending algorithm, a unified font rasterization and vector rendering engine, and the same set of animation interpolation and particle simulation logic. The standard OpenGL rendering interface facilitates system promotion and expansion, and the kernel adopts a unified rendering algorithm, logic, and engine to ensure the consistency of the rendering results, such as color, font, animation, and particle effects, between the preview effect and the final generated result.

[0022] Preferably, the core rendering library includes a front-end call interface and a back-end call interface; The front-end call interface is used to parse the standardized description file in the front-end environment using the high-performance computing capabilities of WASM (i.e., WebAssembly), and draw it directly through canvas (i.e., the JavaScriptBinding interface of the canvas library), so as to achieve cross-platform, plugin-free rendering in the browser environment.

[0023] The backend call interface is used to directly parse the standardized description file in the server-side or embedded environment and call the core rendering library or the underlying graphics library for rendering, so as to achieve independent operation without the front-end browser engine; it is a Linux C API interface developed for standardized description files and used for backend and cross-platform services.

[0024] Different interfaces are used to adapt to different system platforms in order to achieve the optimal and most stable interface calls and improve data flow efficiency.

[0025] This embodiment also discloses an image rendering system based on a unified rendering kernel, including: Call layer: Includes preview module and compositing module. The preview module is used to provide real-time image rendering interactive functions such as multitrack editing, subtitle / text / sticker editing, video cropping / splitting, transitions, etc. The compositing module is used to load and parse standardized description files for batch image rendering and file encoding output. Interface layer: The interface layer includes a front-end call interface connected to the preview module and a back-end call interface connected to the compositing module. Both are used to input a unified standardized description file and call the same audio and video engine. Audio / video engine: Includes structured data such as timelines, multiple video / audio tracks, clips, gaps, etc., and integrates audio / video processing functions beyond rendering, such as audio / video encoding / decoding, audio-visual synchronization, keyframe animation, frame-by-frame rendering, resource management, template configuration export, etc.; includes a core rendering library with adjustable configuration precision. The core rendering library only accepts standardized description files as input and outputs rendering results; the lower the configuration precision, the lower the rendering quality of the core rendering library, but the faster the output speed. Rendering engine and functional modules: including several rendering functional modules such as filter chain, text system, Lua script system, special effects management, particle system, etc. All rendering functional modules are executed according to a unified rendering pipeline; Backend and Platform Layer: Used for backend rendering based on OpenGL, and provides support for running on multiple platforms such as Web, Linux, Android, iOS, and Windows.

[0026] This solution does not resolve the conflict between the effects and efficiency of front-end display and back-end rendering. First, a platform-independent, standardized image material description file (such as based on JSON or a specific DSL) is designed. This description file precisely defines the attributes, parameters, and behavioral logic of all material elements (such as titles, effects, transitions, etc.).

[0027] Subsequently, by building a platform-independent, lightweight, high-fidelity core rendering engine, the front end is responsible for interaction and real-time calls to the kernel for preview rendering, while the back end directly calls the kernel for high-speed batch synthesis, so that the image rendering process achieves the goal of "one core logic, two calling methods" while taking into account preview efficiency.

[0028] By designing a standardized and structured description language (description file) for image materials, the front-end preview and back-end compositing share the same rendering logic and execute the same standardized description file, fundamentally eliminating the difference between the output results of the front-end preview and the back-end compositing. This achieves the precise effect of "what you see" on the front end is "what you get" on the back end, ensuring the accuracy of the preview image.

[0029] Furthermore, this solution only requires maintaining one core rendering logic, reducing system code complexity and maintenance costs compared to the development and iteration of dual rendering logic. Users no longer need to perform repeated debugging and output testing, significantly shortening the video production cycle. This solution also has excellent scalability and cross-platform capabilities, providing services through a unified kernel and standard interfaces, making it easy to integrate with front-end editing tools and cloud compositing clusters on different platforms, supporting full-chain coverage from web to mobile and desktop.

[0030] The following is Embodiment Two of this solution. This embodiment is used in a video rendering platform and uses a JSON template to uniformly define the standardized description file. One specific encoding example of the standardized description file in this embodiment is as follows: { "buildSDKVersion": "1.0-[2025-09-10]", / * Build SDK version number, format: major version-[build date]* / "skyversion": "1.0", / * Project file format version, used for version compatibility checks * / "timeUnit": "seconds", / * Time unit, usually "seconds" * / "resourceList": [ / * An array of resource lists containing all media resources* / { "id": "80AA1192A62437893F12F64FA908EF74", / * Unique resource identifier * / "path": "res / 540_1.mp4" / * Resource file path (relative to the .sky file path), absolute path can be used * / }, { "id": "BB889C63C3441F45463D535BF7855D2E", / * Second video resource ID * / "path": "res / 540_2.mp4" / * Path to the second video file * / }, { "id": "FF3C98E0DF1E782C1DE634ED30F16675", / * Audio resource * / "path": "res / audio.wav }, { "id": "49DB9C108D15E892E81E29A5CF5DFD22", / * Built-in blank placeholder resource ID. The clip of resource gap is an empty input, specifically for text, stickers, or global effects. * / "path": "skymedia: / / type=gap" / * Built-in special resource path: blank fragment * / } ], "timeline": { / * Timeline object, the core container of the project * / "audioDuration": 10.433984, / * Total audio duration (seconds) * / "videoDuration": 10.433984, / * Total video duration (seconds) * / "duration": 10.433984, / * Total duration of the entire timeline (seconds) * / "audioEffects": [], / * An array of audio effects applied across the entire timeline * / "audioParams": { / * Audio parameter configuration* / "channelCount": 2, / * Number of audio channels (2 = stereo) * / "format": "s16", / * Audio format (16-bit signed integer) * / "sampleRate": 44100 / * Sampling rate (Hz) * / }, "videoParams": { / * Video parameter configuration* / "frameRate": 30.0, / * Frame rate (fps) * / "height": 1920, / * Composite video height (pixels) * / "width": 1080, / * Width of the composite video (pixels) * / "scaleMode": "aspectFit" / * Scaling mode (preserves aspect ratio) * / }, "effects": [], / * An array of video effects applied across the entire timeline * / "mipmapFlags": [], / * Ignore this; it defaults to empty * / "trackList": [ / / Array of track lists] { "name": "VideoTrack_1758099947350", / / Track name (type_timestamp) "type": "video", / / Track type (video / audio) "isHidden": false, / / Whether to hide the track (fixed value) "isLocked": false, / / Whether to lock the track (unable to edit after locking) (fixed value) "isMute": false, / / Whether to mute the track (fixed value) "volume": 1.0, / / track volume (0.0-1.0) "audioEffects": [], / / An array of audio effects applied to the track "effects": [], / / An array of video effects applied to the track "clipList": [ / / Array of clip lists] { "name": "VideoClip_1758099950838", / / Clip name (type_timestamp) "type": "video", / / Segment type (video / audio / gap) "resourceID": "80AA1192A62437893F12F64FA908EF74", / / The referenced resource ID, used to locate the resource file from resourceList. "speed": 1.0, / / Playback speed (1.0 = normal speed) "volume": 1.0, / / Clip volume (0.0-1.0) "trimRange": { / / The time clipping range of the input source, relative to the resource's own timeline.} "beginTime": 0.0, / / Start time (seconds) "endTime": 5.466992 / / End time (seconds) }, "audioEffects": [], / / An array of audio effects applied to the clip "effects": [ / / An array of video effects applied to the clip] { "effectClassName": "SkyOrangeEffect", / / Effect class name (fixed value) "name": "VideoEffect_1758099950883", / / Instance name "inputList": [ / / List of input sources, internal resources, external sources don't need to be considered] { "path": "skymedia: / / background" / / Built-in background input source (fixed value) }, { "path": "skymedia: / / user" / / Built-in user input source (fixed value) } ], "params": { / / Effects parameter object "effectPath": "@path@: / / effects / video / video.ofeffect", / / Path to the effect file, supports relative and absolute paths. The @path@: / prefix indicates a relative path. The SDK will replace @path@: / with the absolute path of the .sky project file. "ofParam": { / / Specific parameters for the effect; the following parameters will override the default values ​​in the ofeffect file. "0:CropSourceHeight": 1920, / / Standard height of the video source, must be set. "0:CropSourceWidth": 1080, / / Standard width of the video source, must be set. "0:ScaleX": 1, / / X-axis scaling "0:ScaleY": 1, / / Y-axis scaling "0:TransX": 0, / / X-axis displacement "0:TransY": 0, / / Y-axis displacement "0:Rotate": 0, / / Z-axis rotation angle [0, 360] "0:RotateX": 0, / / X-axis rotation angle [0, 360] "0:RotateY": 0 / / Y-axis rotation angle [0, 360] } }, "range": { / / Time range for using special effects, relative to the timeline of the segment} "beginTime": 0.0, / / Start time (seconds) "endTime": -1.0 / / End time (-1.0 = continues until the end of the segment) } }, { "effectClassName": "SkyOrangeEffect", / / Filter effect class name (fixed value) "name": "Filter_1758099962025_0", / / Filter effect name "inputList": [ { "path": "skymedia: / / background" / / Built-in background input source (fixed value) } ], "params": { "effectPath": "@path@: / / effects / filters / Art / Cappuccino / effect0.ofeffect" / / Filter file path }, "range": { / / The time range for which the filter is applied, relative to the timeline of the clip.} "beginTime": 0.0, / / Filter start time "endTime": 2.733496 / / Filter end time } } ], "transitionAfter": { / / After transition, the transition effect added between the end of this clip and the beginning of the next clip.} "duration": 1.0, / / Transition duration (seconds) "effectClassName": "SkyOrangeTransition", / / Transition effect class name (fixed value) "name": "TransitionAfter_0_1758099991661", / / Transition name "params": { / / Transition parameters "effectPath": "@path@: / / effects / transitions / Hot / DragDown / DragDown.ofeffect" / / Path to the transition file }, "range": { / / Transition time range} "beginTime": 4.466992, / / Transition start time "endTime": 5.466992 / / Transition end time }, "afterDurationScale": 1.0, / / Scaling ratio of the duration after the transition (fixed value) "beforeDurationScale": 1.0, / / Scale ratio of the duration before the transition (fixed value) "afterTimingFunction": "linear", / / Timing function after transition (fixed value) "beforeTimingFunction": "linear" / / Timing function before transition (fixed value) } }, { "duration": 0.5, / / Duration of the blank segment (seconds) "type": "gap" / / Blank segment type }, { "name": "VideoClip_1758099951936", / / Second video clip "type": "video", "resourceID": "BB889C63C3441F45463D535BF7855D2E", / / Second video resource ID "speed": 1.0, "trimRange": { "beginTime": 0.0, "endTime": 5.466992 }, "audioEffects": [], "effects": [ / / Similar special effects configuration... ], "volume": 1.0 } ] }, { "name": "AudioTrack_1758099947352", / / Audio track "type": "audio", "isHidden": false, "isLocked": false, "isMute": false, "volume": 1.0, "audioEffects": [], "clipList": [ / / List of audio clips] { "audioEffects": [], / / List of audio effects "effects": [], "resourceID": "FF3C98E0DF1E782C1DE634ED30F16675", / / Audio resource ID "speed": 1.0, "trimRange": { / / Temperature trimming range of the audio source "beginTime": 1.0, "endTime": 4.0 }, "type": "audio", "volume": 0.1 } ] }, { "name": "VideoTrack_1758099947353", / / Track for global effects "type": "video", "isHidden": false, "isLocked": false, "isMute": false, "volume": 1.0, "audioEffects": [], "effects": [ / / Track-level effects] { "effectClassName": "SkyOrangeEffect", "name": "Effect_RGB Stroke_1758099977090", "inputList": [ { "path": "skymedia: / / background" } ], "params": { "effectPath": "@path@: / / effects / effects / Dynamic / RGB Stroke / RGBOutline.ofeffect", "ofParam": { / / Specific parameters for the effect; the parameters for each effect depend on the specific effect's ofeffect file. "0:EdgeThreshold": 0.5899999737739563, "0:FlashSpeed": 1, "0:Opacity": 1, "0:Rotate": 0, "0:ScaleX": 1, "0:ScaleY": 1, "0:TransX": 0, "0:TransY": 0 } }, "range": { "beginTime": 0.0, "endTime": 2000.0 / / Long time range } } ], "clipList": [] }, { "name": "VideoTrack_1758099947354", / / text track "type": "video", "isHidden": false, "isLocked": false, "isMute": false, "volume": 1.0, "audioEffects": [], "effects": [], "clipList": [ { "name": "GapClip_1758099952688", / / text snippet "type": "video", "resourceID": "49DB9C108D15E892E81E29A5CF5DFD22", / / Blank fragment resource "speed": 1.0, "trimRange": { "beginTime": 0.0, "endTime": 1.0 }, "audioEffects": [], "effects": [ { "effectClassName": "SkyOrangeEffect", "extWrappers": [ / / Extended wrappers] { "key": "SkyOFWrapper", "params": { "needsUpdateDuration": true / / Update duration required } } ], "inputList": [ { "path": "skymedia: / / background" } ], "name": "TextEffect_1758099952891", "params": { "effectPath": "@path@: / / effects / text / text.ofeffect", "ofParam": { "0:Alignment": 2, / / Text alignment "0:Bold": true, / / Whether to use bold text "0:Color1": [1,1,1,1], / / Text color (RGBA) "0:CustomFontPath": "@path@: / / fonts / standard.otf", / / font path "0:EmojiFontPath": "fonts / Twemoji.ttf", / / Emoji font path "0:EnterAnimDir": "", / / Enter animation direction "0:EnterAnimDuration": 1, / / Enter animation duration "0:ExitAnimDir": "", / / Exit animation direction "0:ExitAnimDuration": 1, / / Exit animation duration "0:Leading": 60, / / line spacing "0:LoopAnimDir": "@path@: / / effects / animations / text / loop_animation / word_print", / / path to the loop animation asset package "0:LoopAnimDuration": 1, / / Loop animation duration "0:Outline1Color1": [1,1,1,1], / / Outline color "0:Outline1Enabled": true, / / Whether to enable outlines "0:Outline1Thickness": 60, / / Outline thickness "0:Shadow": false, / / Whether to enable shadow "0:ShadowAngle": -45, / / Shadow angle "0:ShadowBlur": 100, / / Shadow blur "0:ShadowColor": [1,1,1,1], / / Shadow color "0:ShadowDistance": 10, / / Shadow distance "0:Spacing": 5, / / character spacing "0:Text": "SECOND ONE YOU\\nBARELY\\nBEAT ME", / / Text content "0:ScaleX": 1, / / X-axis scaling "0:ScaleY": 1, / / Y-axis scaling "0:TransX": 0, / / X-axis displacement "0:TransY": 300, / / Y-axis displacement "0:Rotate": 0 / / Z-axis rotation angle [0, 360] } }, "range": { "beginTime": 0.0, "endTime": -1.0 / / Continues until the end of the segment } } ], "volume": 1.0 } ] } ] } } In the actual system, all operations performed by the user in the front-end editing interface (such as adding subtitles, setting transitions, and adjusting filters) generate or update the standardized description file mentioned above in real time. This standardized description file is passed to the same rendering kernel via JSBinding for real-time rendering, and the preview result is displayed instantly in the interface. When the user initiates compositing and export, this description file is sent to the cloud compositing service. The cloud uses the same rendering kernel via C API to perform frame-by-frame high-precision rendering and encodes the final output. Because the front-end and back-end rendering kernels are consistent, it ensures that the output video and the preview image are visually identical.

[0031] This invention also discloses a terminal device, including a processor and a storage device. The storage device is used to store one or more programs. When the processor executes one or more programs, it implements the aforementioned image rendering method based on a unified rendering kernel. The processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor can be a microprocessor or any conventional processor. The processor is the control center of the test equipment, connecting various parts of the test equipment using various interfaces and lines.

[0032] Storage devices can be used to store computer programs and / or modules. Processors implement various functions of terminal devices by running or executing computer programs and / or modules stored in the storage device and by accessing data stored in the storage device. A storage device may primarily include a program storage area and a data storage area. The program storage area may store the operating system, applications required for at least one function, etc.; the data storage area may store data created based on the use of the terminal device, etc. Furthermore, storage devices may include high-speed random access memory, and may also include non-volatile memory, such as hard disks, RAM, plug-in hard disks, smart media cards (SMC), secure digital cards (SD cards), flash cards, at least one disk storage device, flash memory device, or other volatile solid-state storage devices.

[0033] In this invention, modules / units integrated into an image rendering device based on a unified rendering kernel, if implemented as software functional units and sold or used as independent products, can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments can also be implemented by a computer program instructing related hardware. The computer program can be stored in at least one computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. Computer-readable media can include: any entity or device capable of carrying computer program code, recording media, USB flash drives, portable hard drives, magnetic disks, optical disks, computer memory, read-only memory (ROM), random access memory (RAM), electrical carrier signals, telecommunication signals, and software distribution media, etc.

[0034] It should be noted that the device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units; that is, they may be located in one place or distributed across multiple network units. Some or all of the modules can be selected to achieve the purpose of this embodiment according to actual needs.

Claims

1. An image rendering method based on a unified rendering kernel, characterized in that, This includes a preview module deployed on the front end and a composition module deployed on the back end; Its implementation steps include: For material elements, a standardized description file template is established according to a unified format; wherein, the material elements include the attributes, positions, keyframes, special effects parameters, blending modes, animation curves and logical control relationships of each material in the image rendering process; Establish a core rendering library with adjustable configuration precision. The core rendering library only accepts standardized description files as input and outputs rendering results. The lower the configuration precision, the lower the rendering quality of the core rendering library, but the faster the output speed. Embed the core rendering library into the preview module and the compositing module respectively; When the user operates the preview module to render the target interactive image, the user's operation on the material elements will generate or update a standardized description file based on the template; When a standardized description file is added or updated, the preview module executes the standardized description file with low precision and outputs an instant-rendered image. When the user completes the rendering operation, the compositing module executes the standardized description file with high precision and outputs an encoded file containing the full rendering results.

2. The image rendering method based on a unified rendering kernel according to claim 1, characterized in that, The core rendering library is developed based on the standard OpenGL rendering interface. Its kernel integrates a consistent color management and transparency blending algorithm, a unified font rasterization and vector rendering engine, and the same set of animation interpolation and particle simulation logic.

3. The image rendering method based on a unified rendering kernel according to claim 1, characterized in that, The core rendering library includes front-end call interfaces; The front-end call interface is used to parse the standardized description file in the front-end environment using the high-performance computing capabilities of WASM, and draw it directly through the canvas, so as to achieve cross-platform, plugin-free rendering in the browser environment.

4. The image rendering method based on a unified rendering kernel according to claim 1, characterized in that, The core rendering library includes backend calling interfaces; The backend call interface is used to directly parse the standardized description file on the server or in an embedded environment and call the core rendering library for rendering, so as to achieve independent operation without the frontend.

5. The image rendering method based on a unified rendering kernel according to claim 1, characterized in that, The level of configuration precision includes one or any combination of the video's frame rate, duration, and resolution.

6. An image rendering system based on a unified rendering kernel, characterized in that, include: Calling layer: includes a preview module and a compositing module. The preview module is used to provide real-time image rendering interactive functions, and the compositing module is used to load and parse standardized description files to perform batch image rendering and file encoding output. Interface layer: The interface layer includes a front-end call interface connected to the preview module and a back-end call interface connected to the synthesis module. Both are used to input a unified standardized description file and call the same audio and video engine. Audio and video engine: Includes a core rendering library with adjustable configuration precision. The core rendering library only accepts standardized description files as input and outputs rendering results. It also integrates other audio and video processing related functions besides rendering. The lower the configuration precision, the lower the rendering quality of the core rendering library, but the faster the output speed. Rendering engine and functional modules: Includes several rendering functional modules, all of which are executed according to a unified rendering pipeline; Backend and Platform Layer: Used for backend rendering and provides multi-platform support.

7. An image rendering system based on a unified rendering kernel according to claim 6, characterized in that, The aforementioned front-end call interface is a JavaScriptBinding interface of the canvas library, developed for standardized description files and based on WASM technology. The backend call interface is a Linux C API interface developed for standardized description files, used for backend and cross-platform services.

8. A computer-readable storage medium, characterized in that, The computer-readable storage medium includes a stored computer program, wherein, when the computer program is executed, it controls the device on which the computer-readable storage medium is located to perform the image rendering method based on a unified rendering kernel as described in any one of claims 1 to 5.