# US 2023/0056599 A1 · System and method for rendering a design including a dynamic design element

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2023/0056599 A1
- Document ID: US20230056599A1
- Status: Published application
- Kind: A1
- Application number: 17/797,645
- Filed: 2020-02-06
- Published: 2023-02-23
- Earliest claimed: 2020-02-06
- Assignees: Canva Pty Ltd
- Applicants: Canva Pty Ltd
- Inventors: Karolina Pawlikowska; Andrew Charles Bennett; Max Scheffler
- Web page: https://patentgrep.com/patent/US20230056599A1

## CPC

- G09G 5/377: for mixing or overlaying two or more graphic patterns (G09G5/02, G09G5/397 take precedence)
- G06F 3/147: using display panels
- G06T 11/10: Texturing; Colouring; Generation of textures or colours (retouching, inpainting or scratch removal G06T5/77)
- G06T 11/40: Filling planar surfaces by adding surface attributes, e.g. adding colours or textures
- G06T 11/60: Creating or editing images; Combining images with text
- G06T 13/00: Animation
- G09G 5/14: Display of multiple viewports
- G09G 5/397: Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay (G09G5/02 takes precedence)
- G06T 2210/62: Semi-transparency
- G09G 5/38: with means for controlling the display position
- G09G 2320/0613: The adjustment depending on the type of the information to be displayed
- G09G 2340/02: Handling of images in compressed format, e.g. JPEG, MPEG
- G09G 2340/0435: Change or adaptation of the frame rate of the video stream
- G09G 2340/0464: Positioning
- G09G 2340/12: Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
- G09G 2340/125: wherein one of the images is motion video
- G09G 2370/20: Details of the management of multiple sources of image data
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A computer implemented method for rendering a page that includes one or more dynamic design elements into an output video is described. The method comprises processing the page to generate one or more layers, each layer being either a static layer associated with one or more static design elements of the page or a dynamic layer associated with a single dynamic design element of the page. Output frames are then generated using the layers and then encoded into the output video.

## Claims

### Claim 1

A computer implemented method for rendering a page into an output video, the page comprising a plurality of design elements, each design element being a static design element or a dynamic design element, the method comprising:
processing the page to generate a plurality of layers, the plurality of layers including:
one or more static layers, each static layer being associated with one or more static design elements of the page; and
one or more dynamic layers, each dynamic layer being associated with a single dynamic design element of the page;
for each static layer, generating a corresponding static layer bitmap:
generating a set of textures, the set of textures comprising:
one or more a static layer textures, each static layer texture corresponding to a static layer and loaded with that static layer's corresponding static layer bitmap; and
one or more input frame textures, each input frame texture corresponding to a dynamic layer;
generating a stream of output frames, each output frame in the stream of output frames generated by:
for each dynamic layer:
determining an eligible input frame from the dynamic element associated with the dynamic layer; and
loading the eligible input frame into the input frame texture corresponding to the dynamic layer;
rendering the set of textures to generate the output frame; and
encoding the stream of output frames into the output video.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, wherein processing the page to generate the plurality of layers comprises:
analysing each design element of the page and, for a given design element:
determining whether the given design element is a static design element or a dynamic design element; and
in response to determining that the given design element is a dynamic design element:
creating a new dynamic layer for the given design element; and
associating the given design element with the dynamic layer created.

### Claim 3 (depends on 1)

The computer implemented method of claim 1, wherein processing the page to generate one or more layers comprises:
analysing each design element of the page and, for a given design element:
determining whether the given design element is a static design element or a dynamic design element; and
in response to determining that the given design element is a static design element:
determining if a previously analysed design element was a static design element; and
in response to determining a previously analysed design element was a static design element, adding the given design element to a same layer the previously analysed static design element was added to.

### Claim 4 (depends on 3)

The computer implemented method of claim 3, wherein
in response to determining that no previously analysed design element exists or that the previously analysed design element was a dynamic design element, creating a new static layer for the particular design element and associating the particular design element with the static layer created.

### Claim 5 (depends on 2)

The computer implemented method of claim 2, wherein analysing each design element of the page comprises analysing each design element of the page in a depth order from a rearmost design element to a foremost design element.

### Claim 6

(canceled)

### Claim 7

(canceled)

### Claim 8 (depends on 1)

The computer implemented method of claim 1, wherein:
the set of textures further comprises one or more alpha mask textures, each alpha mask texture corresponding to a dynamic layer with transparency.

### Claim 9

(canceled)

### Claim 10 (depends on 1)

The computer implemented method of claim 1, wherein for a particular output frame and a particular dynamic layer, determining the eligible input frame from the dynamic element associated with the particular dynamic layer comprises:
decoding the dynamic element associated with the particular dynamic layer into a stream of input frames; and
determining the eligible input frame from the stream of input frames.

### Claim 11 (depends on 10)

The computer implemented method of claim 10, wherein determining the eligible input frame from the stream of input frames comprises:
determining a target timestamp of the particular output frame;
determining an input stream frame timestamp associated with the given input stream frame; and
determining the eligible input frame based on the target timestamp and input stream frame timestamp.

### Claim 12

(canceled)

### Claim 13

(canceled)

### Claim 14

(canceled)

### Claim 15

A computer processing system comprising:
a processing unit;
a communication interface; and
non-transient computer-readable storage medium storing sequences of instructions which, when executed by the processing unit, cause computer processing system to perform a method comprising:
processing a page to generate a plurality of layers, the page comprising a plurality of design elements, each design element being a static design element or a dynamic design element, the plurality of layers including:
one or more static layers each static layer being associated with one or more static design elements of the page; and
one or more dynamic layers, each dynamic layer being associated with a single dynamic design element of the page;
for each static layer, generating a corresponding static layer bitmap;
generating a set of textures, the set of textures comprising:
one or more a static layer textures, each static layer texture corresponding to a static layer and loaded with that static layer's corresponding static layer bitmap; and
one or more input frame textures, each input frame texture corresponding to a dynamic layer;
generating a stream of output frames, each output frame in the stream of output frames generated by:
for each dynamic layer:
determining an eligible input frame from the dynamic element associated with the dynamic layer; and
loading the eligible input frame into the input frame texture corresponding to the dynamic layer;
rendering the set of textures to generate the output frame; and encoding the stream of output frames into the output video.

### Claim 16

(canceled)

### Claim 17

(canceled)

### Claim 18

(canceled)

### Claim 19

Non-transient storage medium readable by one or more processors, the storage medium storing instructions executable by one or more processors to cause the one or more processors to perform a method comprising:
processing a page to generate a plurality of layers, the page comprising a plurality of design elements, each design element being a static design element or a dynamic design element, the plurality of layers including:
one or more static layers, each static layer being associated with one or more static design elements of the page; and
one or more dynamic layers, each dynamic layer being associated with a single dynamic design element of the page;
for each static layer, generating a corresponding static layer bitmap; generating a set of textures, the set of textures comprising:
one or more a static layer textures, each static layer texture corresponding to a static layer and loaded with that static layer's corresponding static layer bitmap; and
one or more input frame textures, each input frame texture corresponding to a dynamic layer;
generating a stream of output frames, each output frame in the stream of output frames generated by:
for each dynamic layer:
determining an eligible input frame from the dynamic element associated with the dynamic layer; and
loading the eligible input frame into the input frame texture corresponding to the dynamic layer;
rendering the set of textures to generate the output frame; and encoding the stream of output frames into the output video.

### Claim 20 (depends on 1)

The computer implemented method of claim 1, wherein multiple static design elements in consecutive depth order are associated with a same static layer.

### Claim 21 (depends on 1)

The computer implemented method claim 1, wherein generating a particular corresponding static layer bitmap that corresponds to a particular static layer comprises rasterising the one or more static design elements associated with the particular static layer.

### Claim 22 (depends on 15)

The computer processing system of claim 15, wherein processing the page to generate the plurality of layers comprises:
analysing each design element of the page and, for a given design element:
determining whether the given design element is a static design element or a dynamic design element; and
in response to determining that the given design element is a dynamic design element:
creating a new dynamic layer for the given design element; and
associating the given design element with the dynamic layer created.

### Claim 23 (depends on 15)

The computer processing system of claim 15, wherein processing the page to generate the plurality of layers comprises:
analysing each design element of the page and, for a given design element:
determining whether the given design element is a static design element or a dynamic design element; and
in response to determining that the given design element is a static design element:
determining if a previously analysed design element was a static design element; and
in response to determining a previously analysed design element was a static design element, adding the given design element to a same layer the previously analysed static design element was added to.

### Claim 24 (depends on 23)

The computer processing system of claim 23, wherein in response to determining that no previously analysed design element exists or that the previously analysed design element was a dynamic design element, the method further comprises creating a new static layer for the particular design element and associating the particular design element with the static layer created.

### Claim 25 (depends on 22)

The computer processing system of claim 22, wherein analysing each design element of the page comprises analysing each design element of the page in a depth order from a rearmost design element to a foremost design element.

### Claim 26 (depends on 15)

The computer processing system of claim 15, wherein:
the set of textures further comprises one or more alpha mask textures, each alpha mask texture corresponding to a dynamic layer with transparency.

### Claim 27 (depends on 15)

The computer processing system of claim 15, wherein for a particular output frame and a particular dynamic layer, determining the eligible input frame from the dynamic element associated with the particular dynamic layer comprises:
decoding the dynamic element associated with the particular dynamic layer into a stream of input frames; and
determining the eligible input frame from the stream of input frames.

### Claim 28 (depends on 27)

The computer processing system of claim 27, wherein determining the eligible input frame from the stream of input frames comprises:
determining a target timestamp of the particular output frame;
determining an input stream frame timestamp associated with the given input stream frame; and
determining the eligible input frame from the stream of input frames based on the target timestamp and input stream frame timestamp.

### Claim 29 (depends on 15)

The computer processing system of claim 15, wherein multiple static design elements in consecutive depth order are associated with a same static layer.
