Vector-based encoding for content rendering
AssigneeAmazon Technologies, Inc.
InventorsJustin Jon Derby, David Andrew Killian, Dmitry Sokolowski
Life of this patent
Estimating the term…
Abstract
Minimizing bandwidth consumption in rendering dynamic content, such as video streaming. Traditional streaming video applications utilize lossy protocols that often result in degraded user experiences. A dynamic content encoder/decoder allows a server based browser application to generate vector based rendering instructions for processing by a client based browser application. Additionally, as the dynamic content changes the content to be displayed, a server based browser application generates updated vector based instructions and encoded spatial and temporal differences to minimize the data transmitted to the client based browser.
Claims20
A computer-implemented method for digital content encoding comprising:
- identifying, based at least in part on digital content, a first plurality of objects from a graphics library;
- generating a first set of processing instructions for rendering the digital content at a first point in time, wherein the first set of processing instructions instruct a vector-based graphics engine to utilize the first plurality of objects to render the digital content at the first point in time, and wherein each processing instruction in the first set of processing instructions is associated with an object of the first plurality of objects;
- encoding the first set of processing instructions into first data;
- causing presentation of the digital content at the first point in time based, at least in part, on the first data;
- identifying, based at least in part on the digital content, a second plurality of objects from the graphics library;
- generating a second set of processing instructions for rendering the digital content at a second point in time, wherein the second set of processing instructions instruct the vector-based graphics engine to utilize the second plurality of objects to render the digital content at the second point in time, and wherein each processing instruction in the second set of processing instructions is associated with an object of the second plurality of objects;
- determining that the first plurality of objects includes a first object that is also included in the second plurality of objects, wherein the first set of processing instructions includes one or more first processing instructions associated with rendering the first object, and wherein the second set of processing instructions includes one or more second processing instructions associated with rendering the first object;
- determining that a vector-based difference exists between the one or more first processing instructions associated with rendering the first object and the one or more second processing instructions associated with rendering the first object;
- encoding the one or more second processing instructions into second data based, at least in part, on the vector-based difference;
- and
- causing presentation of the digital content at the second point in time based, at least in part, on the second data.
A system for digital content encoding comprising:
- a processor and a memory for executing computer executable instructions, the computer executable instructions implementing a network computing component that is operable to at least;
- identify, from a graphics library, a first plurality of objects;
- generate a first set of rendering instructions that instruct a vector-based rendering engine to utilize the first plurality of objects to render digital content at a first time;
- identify a portion of the digital content that varies between the first time and a subsequent time;
- determine variance characteristics corresponding to a variance of the portion between the first time and the subsequent time;
- encode the first set of rendering instructions and the variance into first data;
- cause presentation of the digital content based, at least in part, on the first data and the vector-based rendering engine;
- identify, from the graphics library, a second plurality of objects;
- generate a second set of rendering instructions that instruct the vector-based rendering engine to utilize the second plurality of objects to render the digital content at a second time;
- determine that the second plurality of objects includes at least a first object that is also included in the first plurality of objects;
- determine a difference between the first set of rendering instructions and the second set of rendering instructions;
- encode the second set of rendering instructions into second data based, at least in part, on the determined difference;
- and
- cause presentation of the digital content at the second time based, at least in part, on the second data.
A non-transitory computer readable storage medium storing computer executable instructions that when executed by one or more processors perform operations comprising:
- identifying a first plurality of objects within a library of objects;
- obtaining a first set of rendering instructions that instruct a rendering engine to utilize the first plurality of objects to present digital content in a first state;
- identifying one or more objects of the first plurality of objects that vary between the first state and a subsequent state;
- determining variance characteristics corresponding to a variance of the one or more objects between the first state and the subsequent state;
- encoding the first set of rendering instructions and the variance into first data;
- causing presentation of the digital content based, at least in part, on the first data;
- identifying a second plurality of objects within the library of objects;
- obtaining a second set of rendering instructions that instruct the rendering engine to utilize the second plurality of objects to present the digital content in a second state;
- determining that the second plurality of objects includes at least a first object that is also included in the first plurality of objects;
- determining a difference between the first set of rendering instructions and the second set of rendering instructions;
- encoding the second set of rendering instructions into second data based, at least in part, on the determined difference and;
- causing presentation of the digital content at the second state based, at least in art, on the second data.
Dependencies are inferred from the claim text.