Performance optimization for data visualization
AssigneeMicrosoft Technology Licensing, LLC
InventorsBarry Christopher Allyn, Michael Woolf
Life of this patent
Estimating the term…
Abstract
Performance optimization for reduced and bounded memory cost for data visualization is provided. Performance optimization comprises: data culling, geometry culling, and cloning of a visualization to a background thread for layout. The performance optimization leverages a data visualization architecture for building of a data visualization via a one-directional chain of separate stages, wherein data at each stage may be culled or privatized to reduce the amount of data, or simplify the nature of the data, to be processed in subsequent stages, thus improving overall system performance and user experience.
Claims20
A method for providing performance optimization for data visualization, comprising:
- receiving data including raw data, comprised of a plurality of data points to be displayed via graphical representations in a visualization, and a surface description for the visualization;
- processing the raw data to determine whether to cull a first data point from the plurality of data points, wherein the first data point is culled when the surface description indicates that a graphical representation of the first data point will be materially affected by a graphical representation of a second data point;
- generating abstract geometry comprised of primitives to graphically represent unculled data points in the data visualization;
- processing the abstract geometry to determine whether to cull abstract geometry, wherein culling the abstract geometry reduces the primitives comprising the abstract geometry without materially affecting the visualization to thereby improve rendering efficiency;
- and
- storing the abstract geometry as a series object within a contiguous block of memory, the series object configured for near-constant retrieval for the visualization.
A system for providing performance optimization for data visualization, comprising:
- a processor;
- and
- a memory storage including instructions, which when executed by the processor cause the system to provide:
- a series layout module, operable to create abstract geometry comprising primitives to graphically represent raw data organized according to series in a visualization;
- and
- a layout engine operable to receive a surface description and the raw data, further comprising:
- a data culler, operable to process the raw data to determine whether to cull the raw data based on the surface description, wherein a first data series of the raw data is culled when the surface description indicates that a graphical representation of the first data series will be materially affected by a graphical representation of a second data series of the raw data;
- and
- a geometry culler, operable to process the abstract geometry to determine whether the abstract geometry can be culled, wherein culling the abstract geometry reduces the primitives comprising the abstract geometry without materially affecting the visualization to thereby improve rendering efficiency.
A computing device for providing performance optimization for data visualization comprising:
- a processor;
- and
- a memory storage including instructions, which when executed by the processor cause the computing device to be operable to:
- receive data including raw data, comprised of a plurality of data points to be displayed via graphical representations in a visualization, and a surface description for the visualization;
- process the raw data based on a custom culling logic corresponding to a type of the visualization to determine whether to cull a first data point from the plurality of data points, wherein the first data point is culled when the surface description indicates that a graphical representation of the first data point will be materially affected by a graphical representation of a second data point;
- generate abstract geometry comprised of primitives to graphically represent unculled data points in the data visualization;
- process the abstract geometry culling logic to determine whether to cull abstract geometry based on a size threshold for the abstract geometry based on the surface description, wherein culling the abstract geometry reduces the primitives comprising the abstract geometry without materially affecting the visualization to thereby improve rendering efficiency;
- and
- store the abstract geometry as a series object within a continuous block of memory, the series object configured for near-constant retrieval for the visualization.
Dependencies are inferred from the claim text.