US9043238B2 - Data visualization system - Google Patents
Data visualization system Download PDFInfo
- Publication number
- US9043238B2 US9043238B2 US14/093,690 US201314093690A US9043238B2 US 9043238 B2 US9043238 B2 US 9043238B2 US 201314093690 A US201314093690 A US 201314093690A US 9043238 B2 US9043238 B2 US 9043238B2
- Authority
- US
- United States
- Prior art keywords
- pixel
- image
- display
- values
- transactions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G06T11/26—
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
Definitions
- the present application concerns a data visualization system.
- More specifically embodiments of the present application concern methods and apparatus for visualizing large dynamic graphs to enable patterns, deviations and anomalies to be identified.
- Big data is the term used to describe massive volumes of both structured and unstructured data that are so large that they are difficult to process using traditional database and data processing techniques.
- big data is becoming increasingly important, as the volume of data available grows rapidly due to the near ubiquitous availability of the Internet and data-generating devices, such as mobile phones and tablet computers.
- big data has come the recognition that the analysis of larger data sets can lead to more accurate analysis.
- Transaction data will therefore comprise a record of each transaction that defines the source and destination of the transaction, and further details of the transaction such as the date and/or time of the transaction, the content/subject of the transaction, the size/volume of the transaction etc.
- the processing and analysis of the transaction related data can therefore be extremely useful for identifying deviations or anomalies from normal or expected patterns of transactions that can be indicative of issues arising within the system that generated the transactions.
- transactions for which such analysis would be particularly useful may include financial, accounting, insurance, security trading, security access and phone or computer mediated transactions.
- a particular challenge when dealing with vast amounts of transaction-related data involves the visualization of this data, and the interrogation of such visualizations for analysis purposes.
- Generating visualizations of such vast amounts of data will typically require a significant amount of processing power, otherwise the time taken to generate a visualization will be too long to be of sufficient use. This is especially problematic when dynamic interrogation of a visualization is necessary in order for a worthwhile analysis to be performed.
- clutter quickly becomes a problem due to the physical limitations (e.g. size and resolution) of the screens on which visualizations can be displayed, such that a large proportion of the detail of the individual transactions is lost. It can then become extremely difficult to extract any useful information from a data visualization.
- the method comprises successively rendering lines representing each of the plurality of transactions into an image buffer.
- the rendering comprises, for each of the lines, using an anti-aliasing process to determine a coverage value for each pixel of the display, the coverage value representing the extent to which the line covers each pixel, and within the image buffer maintaining a record of a cumulative coverage value for each pixel of the display.
- the method comprises determining a maximum and a minimum of the cumulative coverage values stored in the image buffer, scaling the cumulative coverage value for each pixel based on the maximum and minimum cumulative coverage values, and rendering each pixel onto the display by using the scaled cumulative coverage value to determine a transparency for the pixel.
- the step of scaling the cumulative coverage value for each pixel based on the maximum and minimum cumulative coverage values can use any of a linear scaling function and a non-linear scaling function.
- the step of scaling the cumulative coverage value for each pixel based on the maximum and minimum cumulative coverage values may use any of a logarithmic scaling function and an exponential scaling function.
- the method may further comprise, when rendering the lines representing each of the plurality of transactions, for each of the plurality of lines, determining color values for each pixel of the display, the color values defining the color of the line at the location corresponding to each pixel, and within the image buffer maintaining a record of cumulative color values for each pixel of the display.
- the lines representing each of the plurality of transactions have been rendered into an image buffer, converting the cumulative color values for each pixel into color data values based on the cumulative coverage value for the pixel, and rendering each pixel onto the display using the color data values.
- the step of converting the cumulative color values for each pixel based on the cumulative coverage value for the pixel may comprise, for each pixel, dividing each cumulative color value associated with the pixel by the cumulative coverage value associated with the pixel.
- the step of maintaining a record of cumulative color values for each pixel of the display may comprise scaling the color values of the line at the location corresponding to each pixel by the coverage value of the line at the location corresponding to the pixel, and incrementing each cumulative color value by the scaled color value.
- the color values for each pixel may comprise a red channel value, a green channel value, and a blue channel value (RGB).
- the coverage value may be an alpha (A) channel value.
- the image buffer may store a RGBA tuple for each pixel of the display, the RGBA tuple including a red (R) channel value, a green (G) channel value, a blue (B) value, and an alpha (A) channel value.
- the image buffer may store the cumulative coverage value of each pixel of the display as a floating point number.
- the image buffer may store the cumulative color values of each pixel of the display as a floating point number.
- the method may comprise, when lines representing transactions are rendered into one of a plurality of image buffers and the step of rendering each pixel onto the display may comprise, for each pixel, combining the values from each of the plurality of image buffers and rendering each pixel onto the display using the combined value.
- the values from each of the plurality of image buffers may be combined into a blended image using an alpha blending process.
- the method may further comprise, for each of the lines, determining a type for the transaction represented by the line and, depending upon the determined type, rendering the line representing the transaction into one or more of the plurality of image buffers that are associated with the determined type.
- the method may further comprise updating the image on the display utilizing a user input identifying a subset of the plurality of transactions by rendering lines representing each of the transactions in the subset into one of the plurality of image buffers, combining values from each of the plurality of image buffers, and re-rendering pixels onto the display using the combined values to generated an updated image.
- the step of combining values from each of the plurality of image buffers may comprise cumulatively combining the color data values for each of the pixels from each of the plurality of image buffers.
- the step of combining values from each of the plurality of image buffers may comprise, for each of the pixels, determining a complementary color to that of a color of the pixel of the image, and including the complementary color when combining the color data values for the pixel from each of the plurality of image buffers.
- the user input identifying a subset of the plurality of transactions may specify a type for the transactions in the subset, and the lines representing each of the transactions in the subset are rendered into one of the plurality of image buffers that is associated with the specified type.
- a data analysis computer system for generating an image on a display that comprises a plurality of pixels, the image representing a plurality of transactions as lines connecting points in the display indicative of a source and an origin for the respective transactions.
- the computer system comprises a graphics buffer operable to provide an image buffer for storing image data, a display screen operable to display the image data provided by the graphics buffer, and a processing module operable to successively render lines representing each of the plurality of transactions into an image buffer.
- the rendering comprises for each of the lines, using an anti-aliasing process to determine a coverage value for each pixel of the display, the coverage value representing the extent to which the line covers each pixel; and within the image buffer maintaining a record of a cumulative coverage value for each pixel of the display.
- the processing module is operable to determine a maximum and a minimum of the cumulative coverage values stored in an image buffer, scale the cumulative coverage value for each pixel based on the maximum and minimum cumulative coverage values, and cause each pixel to be rendered onto the display by using the scaled cumulative coverage value to determine a transparency for the pixel.
- a non-transitory computer readable medium storing computer implementable instructions which when implemented by a programmable computer cause the computer to generate an image on a display that comprises a plurality of pixels, the image representing a plurality of transactions as lines connecting points in the display indicative of a source and an origin for the respective transactions by successively rendering lines representing each of the plurality of transactions into an image buffer.
- the rendering comprises for each of the lines, using an anti-aliasing process to determine a coverage value for each pixel of the display, the coverage value representing the extent to which the line covers each pixel; and within the image buffer maintaining a record of a cumulative coverage value for each pixel of the display.
- the rendering further comprises, when the lines representing each of the plurality of transactions have been rendered into the image buffer, determining a maximum and a minimum of the cumulative coverage values stored in an image buffer, scaling the cumulative coverage value for each pixel based on the maximum and minimum cumulative coverage values, and rendering each pixel onto the display by using the scaled cumulative coverage value to determine a transparency for the pixel.
- FIG. 1 is a schematic block diagram of a data visualization system accordance with an embodiment of the present invention
- FIG. 2 is a flow diagram of the processing undertaken to determine a set of shapes to represent a curve
- FIG. 3 is an illustrative section of a curve to be rendered
- FIGS. 4A & 4B are schematic illustrations of the rendering of a polygon using anti-aliasing
- FIG. 5 is a schematic block diagram of image data stored in a graphics buffer
- FIG. 6 is a flow diagram of the processing to generate an image display
- FIG. 7 is a graph illustrating a rescaling function for highlighting infrequent transactions.
- FIG. 1 is a schematic block diagram of a data visualization system 1 in accordance with an example embodiment of the present invention.
- the data visualization system 1 comprises a data store 5 arranged to store transaction records 7 each identifying a first and a second interacting element for a transaction and a processing unit 3 arranged to retrieve data from data store 5 and generate a graphic representation representing the transactions as lines/curves on a user interface where the end points of the lines indicate the interacting elements identified by the transactions.
- This generated display data is then passed by the processing unit 3 to a graphics buffer 9 connected to the processing unit 3 and a display 11 and is then used by the graphics buffer 9 to represent the data in the transaction records being analyzed.
- the processing module 3 is also responsive to user input via a keyboard 13 and a mouse 15 to enable a user to interact with the display and select groups of transactions for processing.
- the user interface shown schematically on the display 11 shows the curved lines as connecting points at the perimeter of a circle.
- a hierarchy such as for example a hierarchy of locations e.g. country, region, sub-region, which can correspond to locations associated with the transactions.
- These are illustrated by the curved/arced sections at the perimeter of the user interface with the elements at the top of the hierarchy shown at the outside of the circle, and the lowest level of the hierarchy shown adjacent to the ends of the lines on the inside of the circle.
- the curved lines therefore connect points at the perimeter of the circle.
- Transactions sharing common portions of a hierarchy are bundled together to indicate a volume of flow between two locations. In this way, a user can select data either by selecting groups of locations or a subset of transactions etc. in order to home in on a group of suspect transactions for more investigation.
- the user interface When identifying and investigating particular transactions the user interface is updated to highlight certain information. Thus for example in certain circumstances it may be desirable to distinguish between the source/origin and the destination of transactions (i.e. the first and second interacting elements of a transaction). This could enable a subset of transactions to be displayed. The screen display could then be modified to color code the representations of the transactions to highlight some other aspect of the transactions such as the timing of the transactions or the frequency or size of the transactions to make potentially suspect patterns more apparent.
- FIG. 2 is a flow diagram of the processing implemented by the processing unit 3
- FIG. 3 is an illustrative section of a line/curve to be rendered.
- the lines/curve connecting the first and second interacting elements of a transaction can comprise a set of appended b-splines.
- a b-spline is fully defined based solely on the co-ordinates associated with a set of control points.
- a set of points on the line to be rendered is determined.
- the co-ordinates for the points can be determined directly by processing the control co-ordinates for the b-spline for the curve to be rendered. These will comprise a set of points all of which should lie at the middle of the curve which is to be rendered.
- FIG. 3 is an illustrative section of a curve to be rendered.
- the points 50 , 51 , 52 , 53 lying on the thick black line comprise points mathematically determined to correspond to the portion of the line to be rendered.
- the processing module determines co-ordinates for the edge of the line at that point. This is achieved by determining normal (N) to a vector connecting the first 50 and second 51 points on the line a length of ⁇ w/2 from the first point 50 and assigning these co-ordinates to the corners 54 , 55 of the beginning of the line to be rendered. In this way two co-ordinates 54 , 55 separated by a distance w corresponding to the selected width of the line to be rendered are identified where the first selected point 50 lies in the middle of the two points 54 , 55 .
- the processing unit 3 then proceeds to calculate (s 2 - 3 ) a unit vector (V 1 ) which bisects the angle formed by lines connecting the first 50 and second points 51 and the second 51 and third points 52 which lie on the mathematical line being rendered.
- Co-ordinates for the polygon (in this example, a quadrilateral) representing an initial section of the curve are then (s 2 - 4 ) determined by identifying points 56 , 57 a distance ⁇ w/(2 sin ⁇ 1 ) V 1 from the second point 51 lying on the mathematical line being rendered where ⁇ 1 is the angle between the line connecting the first and 50 second points 51 on the line being rendered and the vector V 1 .
- the processing unit 3 Having calculated co-ordinates for the polygon for rendering the first section, the processing unit 3 then checks (s 2 - 5 ) to see if the complete line has now been rendered.
- processing unit 3 then proceeds to calculate (s 2 - 3 ) a vector bisecting lines connecting the next two pairs of point on the mathematical line being rendered.
- processing unit 3 will then determine a vector V 2 bisecting the lines connecting the second 51 and third 52 and the third 52 and fourth 53 points on the line being rendered.
- the end points for the next polygon for representing the next section of the line is then (s 2 - 4 ) determined utilizing the vector V 2 and the angle between the lines connecting the second 51 and third 52 and the third 52 and fourth 53 points on the line being rendered V 2 bisected by the vector V 2 .
- the processing unit 3 once again checks (s 2 - 5 ) whether the end of the line being rendered has been reached.
- each of the polygons is then rendered to the graphics buffer 9 .
- the processing unit 3 can then cause the image stored in the graphics buffer 9 to be displayed on the display 11 .
- each of the plurality of lines is successively (i.e. in turn) rendered into an image buffer.
- this rendering comprises using an anti-aliasing process to determine a coverage value for each pixel of the display, wherein the coverage value represents the extent to which the line covers each pixel.
- aliasing refers to the appearance of distortions in a generated image that occur due to the limited resolution of the display. Typically, aliasing causes the curves and diagonal lines of a generated image to appear inappropriately jagged, as the resolution is not sufficiently high enough to represent a smooth line. Anti-aliasing therefore refers to image processing techniques that minimize these distortions
- FIGS. 4A and 4B are schematic illustrations of the rendering of a polygon that is part of a line using an anti-aliasing process.
- FIG. 4A illustrates the polygon to be rendered overlaid onto an array of pixels.
- the representation of the polygon would have aliasing effects that cause the edges of the polygon to appear significantly jagged.
- These aliasing effects are reduced by applying an anti-aliasing process that effectively blends the pixels at the edges/boundaries of the polygon with the background so as to give the edges a much smoother appearance.
- the anti-aliasing process determines a coverage value for each pixel of the display covered by the polygon and uses this coverage value to define the opacity of the pixel.
- FIG. 4B therefore illustrates the array of pixels of FIG. 4A in which an anti-aliasing process has been used to determine a fractional coverage value for each of the pixels that correspond with portions of the polygon, and this fractional coverage value will define the opacity of the pixel.
- the graphics buffer 9 comprises a number of separate image buffers, as illustrated in FIG. 5 .
- the three image buffers 60 , 62 , 64 in this embodiment are arranged to create image data for representing a background image, a selected image corresponding to a set of selected transactions, and a highlighted image corresponding to a set of highlighted transactions respectively.
- the presence of three separate image buffers simplifies the update of the display as if a user modifies the set of selected or highlighted transactions, just the content of the corresponding buffers can be updated.
- the selected image would include only representations of lines corresponding to transactions that have been actively selected by user (e.g.
- the highlighted image would include only representations of the lines corresponding to transactions that the user has indicated are of interest in (e.g. by hovering over corresponding portions of the display with the cursor/pointer), whilst the background image would include representations of the other transactions represented on the display. Since normally only a sub-set of the lines being rendered is ever highlighted or selected this increases the speed with which the processing unit 3 can update the display.
- a conventional image buffer is arranged to store an array of RGBA (red green blue alpha) tuples for each pixel of the display, with each RGBA tuple providing red (R), green (G), and blue (B) color channel values, and an alpha (A) channel value that defines the opacity/transparency of the pixel.
- each of the R, G, B, and A channel values ranges from 0 to 255 (i.e. the 256 possible values provided by 8 bits available for each channel).
- RGB values of 0,0,0 then typically define/represent a completely black pixel and RGB values of 255,255,255 define/represent a completely white pixel.
- An A value of 0 then typically defines/represents a completely transparent pixel whilst an A value of 255 defines/represents a completely opaque pixel.
- each of the image buffers 60 , 62 , 64 provided by the graphics buffer 9 comprises a data array where each point in the array corresponds to a pixel of the display.
- each of the image buffers 60 , 62 , 64 provided by the graphics buffer 9 is arranged to store each value of an RGBA tuple as a floating point number which can represent values for the full dynamic range of numbers which can be processed by the processing unit 1 .
- the graphics buffer 9 could be arranged to store each value of an RGBA tuple as a floating point number in the range 0.0 to 1.0, wherein each value between these extremes can be specified to a multiplicity of decimal places.
- an anti-aliasing process is used to determine a coverage value for the pixel that represents the extent of coverage of the pixel by the line being rendered, and uses this coverage value to cumulatively update the values stored in the image buffer for that pixel.
- R, G, B and A are the current red, green, blue and alpha channel values associated with the pixel being updated
- L R , L G , L B are the red, green, blue and alpha channel values of the portion of the line being rendered at the location corresponding to the pixel
- Cov is the fractional coverage value defining the extent to which the line covers the pixel (i.e. determined using an anti-aliasing process).
- the image buffer therefore stores cumulative R, G, and B color values for each pixel, in which each color value is successively incremented by a color value of the line at that pixel that has been scaled by the determined coverage value of the line at that pixel, and a cumulative coverage value for each pixel.
- FIG. 6 is a flow diagram of the processing implemented to generate an image on a display that comprises a plurality of pixels, the image representing a plurality of transactions as lines on the display, in accordance with the methods described herein.
- the processing unit 3 determines a type for the transaction (s 6 - 1 ).
- lines representing each of the plurality of transactions can be a part of the background image (i.e. a background transaction), a part of the selected image (i.e. a selected transaction), and/or a part of the highlighted image (i.e. a highlighted transaction).
- the processing unit 3 renders a line representing the transaction into the image buffer(s) associated with that type (s 6 - 2 ).
- this rendering of a line representing a transaction into an image buffer involves using an anti-aliasing process to determine a coverage value for each pixel of the display, the coverage value representing the extent to which the line covers each pixel, and using this coverage value to cumulatively update the values stored in the image buffer for that pixel.
- the processing unit 3 determines (s 6 - 3 ) that lines corresponding to all of the transactions have been rendered within the appropriate image buffers, the processing unit then (s 6 - 4 ) proceeds to determine the maximum and minimum cumulative coverage values stored in each of the image buffers 60 , 62 , 64 . More specifically, the processing unit 3 scans the background image buffer 60 , the selected image buffer 62 and the highlighted image buffer 64 . At each point in the scan the greatest and least cumulative coverage values in excess of zero (which corresponds to a complete absence of coverage) are determined.
- these maximum and minimum cumulative coverage values will define the extent to which the stored alpha values in each of the image buffers 60 , 62 , 64 vary (i.e. the range covered by these values).
- the processing unit 3 then (s 6 - 5 ) proceeds to convert the cumulative R, G, B values stored in the image buffers into color values.
- the R, G, B values for the pixels covered by the line are incremented by an amount corresponding to the R, G, B values for the correlating parts of the line scaled by the coverage value defining the extent to which the line covers the pixel.
- These cumulative color values can therefore be converted into a representative color by dividing each of the R, G, B values stored for each pixel by the A value for that pixel, as the A value is representative of the sum of the accumulated coverage values.
- the resulting floating point values are then converted to 8-bit color data values.
- the graphics buffer 9 is arranged to store each value of an RGBA tuple as a floating point number in the range 0.0 to 1.0, then the values resulting from the division of the cumulative color values of a pixel by the accumulated coverage values of that pixel will also be in the range 0.0 to 1.0, such that these resulting values must then be multiplied by 255 to convert them into 8-bit color data values.
- Processing each of the R, G and B values in each of the image buffers 60 , 62 , 64 in this way causes the buffers to store conventional R,G.B color data values which range from 0 to 255 and hence can be used to represent a color on the screen.
- the processing unit 3 Having converted the cumulative color values into 8-bit color data values for rendering an image on the display, the processing unit 3 then rescales the cumulative coverage values stored in each of the image buffers 60 , 62 , 64 using the determined maximum and minimum cumulative coverage values for the buffer 60 , 62 , 64 . To do so, the processing unit 3 maps the range of cumulative coverage values that lie between the maximum and minimum across the 256 available conventional coverage (i.e. alpha) values, and then converts the cumulative coverage values of each pixel into the corresponding conventional alpha values (converts/calibrates across the range). This mapping of the cumulative coverage values across the 256 conventional 8-bit alpha values could be linear. However, in some embodiments, some kind of non-linear mapping may be preferable.
- this non-linear mapping could include logarithmic or exponential mapping.
- Non-linear mapping may be preferable as means for making the lines that are used to represent outlier data more apparent and/or to de-emphasize lines that are used to represent data that could be consider normal/typical.
- FIG. 7 is a graph illustrating a rescaling function that could used in order to highlight lines that are used represent outlier data (e.g. lines that relate to infrequent transactions).
- each of the three image buffers 60 , 62 , 64 will store images where each pixel is associated with a R,G,B,A quadruple where the R,G,B, and A values each range from 0 to 255, the R,G,B color data values representing a color to be associated with a pixel and the A value representing an alpha channel value that is indicative of the transparency of the pixel which will be dependent upon the numbers and the extent of coverage of the lines at a particular portion of the display corresponding to the pixel in question.
- the processing unit 3 then (s 6 - 6 ) proceeds to combine the images stored in the three image buffers 60 , 62 , 64 using an alpha blending process, and passes the resulting blended image 66 to the graphics buffer 9 .
- the processing unit 3 then causes the blended image 66 stored in the graphics buffer 9 to be displayed on the display 11 .
- Alpha blending is a process in which multiple colored images can be combined based on the extent to which they are translucent/transparent, by using the alpha channel values associated with the corresponding pixels of each image, to thereby produce a new blended color.
- the transparency of each pixel of each image may range from completely transparent to completely opaque. Therefore, if a pixel of the foreground image is completely transparent, the corresponding pixel of the blended image will be the color of the corresponding pixel of the background image. Conversely, if a pixel of the foreground image is completely opaque, then the corresponding pixel of the blended image will be the color of the corresponding pixel of the foreground image.
- the translucency/transparency of each pixel can range between these extremes, in which case the color of the pixel of the blended image is computed as a weighted average of the colors of the foreground and background images determined based on the respective alpha channel values.
- the presence of a number of separate image buffers simplifies the update of the display by providing that when a user modifies a set of selected or highlighted transactions only the content of the corresponding buffer need be updated in order to update the displayed image.
- the processing unit 3 identifies the selected/highlighted transactions and proceeds to render lines representing each of the selected/highlighted transactions into the appropriate image buffer (i.e. either the selected image buffer 62 or the highlighted image buffer 64 ). This rendering of lines representing each of the selected/highlighted transactions to the appropriate image buffer proceeds according to the method described above.
- the processing unit 3 converts the cumulative color values determined for the rendered lines into conventional 8-bit RGB color values and/or rescales the cumulative coverage values determined for the rendered lines into conventional 8-bit alpha channel values as described above, before combining the updated image stored within the selected/highlighted image buffer with the unmodified images stored in the other image buffers to generate an updated blended image for display on the display 11 .
- the color values used for the lines should be chosen so as to ensure that the selected/highlighted transactions will stand out from/be apparent within the blended image.
- the blending of the images stored in the image buffers by the processing unit 3 could then involve effectively overlaying the selected/highlighted image on the background image by causing a cumulative color change for those pixels where the selected/highlighted image overlaps the background image.
- the blending of the images stored in the image buffers by the processing unit 3 could involve having the processing unit 3 determine, for each pixel of the background image overlapped by the selected/highlighted image, a complementary color to the color of the pixel, and including the complementary colors for each overlapping pixel when blending the images.
- complementary colors are pairs of colors that when combined produce a neutral color; either white, grey, or black. The inclusion of the complementary color for each overlapping pixel would act to effectively cancel out the background image from the blended image at locations where the background image and the selected/highlighted image overlap, thereby improving the prominence of the lines that represent the selected/highlighted transactions.
- the lines are described as being rendered in different colors (e.g. as each of the lines can be in different colors and/or each of the lines can vary in color along their length), it will be appreciated that in some embodiments all of the lines may be rendered using the same color. In such embodiments it will be appreciated that the processing of image data may be simplified as, rather than maintaining cumulative R, G, B color values for each pixel, it would only be necessary to maintain a record of the cumulative coverage of a pixel.
- the cumulative coverage values could then be scaled as has previously been described and then the image rendered based on the scaled coverage values together with R,G,B color data values corresponding to the uniform color being rendered.
- the graphics buffer 9 has been described as providing three separate image buffers 60 , 62 , 64 that are arranged to create image data for representing a background image, a selected image, and a highlighted image respectively, the graphics buffer 9 could equally comprise more than three graphics buffers if it is desired to generate a blended image comprised of more than three different types of image. Alternatively, if there is no need to generate a blended image, then the graphics buffer 9 could equally comprise a single image buffer.
- the embodiments of the invention described with reference to the drawings comprise computer apparatus and processes performed in computer apparatus, the invention also extends to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice.
- the program may be in the form of source or object code or in any other form suitable for use in the implementation of the processes according to the invention.
- the carrier may be any entity or device capable of carrying the program.
- the carrier may comprise a storage medium, such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disk.
- a storage medium such as a ROM, for example a CD ROM or a semiconductor ROM, or a magnetic recording medium, for example a floppy disc or hard disk.
- the carrier may be a transmissible carrier such as an electrical or optical signal which may be conveyed via electrical or optical cable or by radio or other means.
- the carrier When a program is embodied in a signal which may be conveyed directly by a cable or other device or means, the carrier may be constituted by such cable or other device or means.
- the carrier may be an integrated circuit in which the program is embedded, the integrated circuit being adapted for performing, or for use in the performance of, the relevant processes.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Accounting & Taxation (AREA)
- Image Generation (AREA)
Abstract
Description
R=R+L R ·Cov
G=G+L G ·Cov
B=B+L B ·Cov
A=A+Cov
Claims (20)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/093,690 US9043238B2 (en) | 2011-05-06 | 2013-12-02 | Data visualization system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/102,648 US8768804B2 (en) | 2011-05-06 | 2011-05-06 | Data analysis system |
| US14/093,690 US9043238B2 (en) | 2011-05-06 | 2013-12-02 | Data visualization system |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US13/102,648 Continuation-In-Part US8768804B2 (en) | 2011-05-06 | 2011-05-06 | Data analysis system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20140139546A1 US20140139546A1 (en) | 2014-05-22 |
| US9043238B2 true US9043238B2 (en) | 2015-05-26 |
Family
ID=50727510
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US14/093,690 Active US9043238B2 (en) | 2011-05-06 | 2013-12-02 | Data visualization system |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US9043238B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10762328B2 (en) * | 2018-10-22 | 2020-09-01 | Dell Products, Lp | Method and apparatus for identifying a device within the internet of things using interrogation |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9865230B2 (en) * | 2012-07-02 | 2018-01-09 | Microsoft Technology Licensing, Llc | Animated visualization of alpha channel transparency |
| TW201629839A (en) * | 2015-02-07 | 2016-08-16 | 阿里巴巴集團服務有限公司 | Method and apparatus for providing security information of user device |
| USD783656S1 (en) * | 2015-10-28 | 2017-04-11 | SynerScope B.V. | Display screen with graphical user interface |
| US12373669B2 (en) * | 2020-10-30 | 2025-07-29 | Jpmorgan Chase Bank, N.A. | Method and system for using deep video prediction for economic forecasting |
Citations (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20040234117A1 (en) * | 1998-06-19 | 2004-11-25 | Joan Tibor | Electronic transaction verification system |
| US20050080655A1 (en) | 2003-10-09 | 2005-04-14 | Sengir Gulcin H. | System and model for performance value based collaborative relationships |
| US6934858B2 (en) | 1999-12-15 | 2005-08-23 | Authentify, Inc. | System and method of using the public switched telephone network in providing authentication or authorization for online transactions |
| US20050192926A1 (en) | 2004-02-18 | 2005-09-01 | International Business Machines Corporation | Hierarchical visualization of a semantic network |
| US7024419B1 (en) | 1999-09-13 | 2006-04-04 | International Business Machines Corp. | Network visualization tool utilizing iterative rearrangement of nodes on a grid lattice using gradient method |
| US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US20070005967A1 (en) | 2003-12-30 | 2007-01-04 | Entrust Limited | Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data |
| US20070171716A1 (en) | 2005-11-30 | 2007-07-26 | William Wright | System and method for visualizing configurable analytical spaces in time for diagrammatic context representations |
| US7360686B2 (en) * | 2005-05-11 | 2008-04-22 | Jp Morgan Chase Bank | Method and system for discovering significant subsets in collection of documents |
| US7401057B2 (en) | 2002-12-10 | 2008-07-15 | Asset Trust, Inc. | Entity centric computer system |
| US20080203170A1 (en) | 2007-02-28 | 2008-08-28 | Visa U.S.A. Inc. | Fraud prevention for transit fare collection |
| US20090125543A1 (en) | 2007-11-09 | 2009-05-14 | Ebay Inc. | Transaction data representations using an adjacency matrix |
| US7606168B2 (en) | 2005-01-28 | 2009-10-20 | Attenex Corporation | Apparatus and method for message-centric analysis and multi-aspect viewing using social networks |
| US7617185B2 (en) | 2003-08-29 | 2009-11-10 | Sap Ag | Methods and systems for providing a visualization graph |
| US20090313041A1 (en) | 2002-12-10 | 2009-12-17 | Jeffrey Scott Eder | Personalized modeling system |
| US20100077352A1 (en) | 2005-05-20 | 2010-03-25 | Palo Alto Research Center Incorporated | System And Method For Redistributing Interest In A Hierarchical Data Structure Representation |
| US7777743B2 (en) | 2002-04-19 | 2010-08-17 | Computer Associates Think, Inc. | Viewing multi-dimensional data through hierarchical visualization |
| US7809659B1 (en) | 2000-02-24 | 2010-10-05 | Paiz Richard S | Method for presenting optimal internet keyword based search result sets using an environmental bitmap and environmental bitmap pyramid structure |
| US7849408B1 (en) | 1999-04-14 | 2010-12-07 | Cisco Technology, Inc. | Network traffic visualization |
| US20110055074A1 (en) | 2009-09-02 | 2011-03-03 | Yonghui Chen | Visualization for payment card transaction fraud analysis |
| US8001055B2 (en) * | 2006-02-21 | 2011-08-16 | Weiss Kenneth P | Method, system and apparatus for secure access, payment and identification |
| US20120041790A1 (en) | 2007-10-24 | 2012-02-16 | Koziol Joseph D | Insurance Transaction System and Method |
| US20130097043A1 (en) * | 2000-11-06 | 2013-04-18 | Nant Holdings Ip, Llc | Image Capture and Identification System and Process |
| US20130246256A1 (en) * | 2000-11-06 | 2013-09-19 | Nant Holdings Ip, Llc | Object Information Derived From Object Images |
-
2013
- 2013-12-02 US US14/093,690 patent/US9043238B2/en active Active
Patent Citations (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7124302B2 (en) | 1995-02-13 | 2006-10-17 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
| US20040234117A1 (en) * | 1998-06-19 | 2004-11-25 | Joan Tibor | Electronic transaction verification system |
| US7849408B1 (en) | 1999-04-14 | 2010-12-07 | Cisco Technology, Inc. | Network traffic visualization |
| US7024419B1 (en) | 1999-09-13 | 2006-04-04 | International Business Machines Corp. | Network visualization tool utilizing iterative rearrangement of nodes on a grid lattice using gradient method |
| US6934858B2 (en) | 1999-12-15 | 2005-08-23 | Authentify, Inc. | System and method of using the public switched telephone network in providing authentication or authorization for online transactions |
| US7809659B1 (en) | 2000-02-24 | 2010-10-05 | Paiz Richard S | Method for presenting optimal internet keyword based search result sets using an environmental bitmap and environmental bitmap pyramid structure |
| US20130246256A1 (en) * | 2000-11-06 | 2013-09-19 | Nant Holdings Ip, Llc | Object Information Derived From Object Images |
| US20130097043A1 (en) * | 2000-11-06 | 2013-04-18 | Nant Holdings Ip, Llc | Image Capture and Identification System and Process |
| US7777743B2 (en) | 2002-04-19 | 2010-08-17 | Computer Associates Think, Inc. | Viewing multi-dimensional data through hierarchical visualization |
| US7401057B2 (en) | 2002-12-10 | 2008-07-15 | Asset Trust, Inc. | Entity centric computer system |
| US20090313041A1 (en) | 2002-12-10 | 2009-12-17 | Jeffrey Scott Eder | Personalized modeling system |
| US7617185B2 (en) | 2003-08-29 | 2009-11-10 | Sap Ag | Methods and systems for providing a visualization graph |
| US20050080655A1 (en) | 2003-10-09 | 2005-04-14 | Sengir Gulcin H. | System and model for performance value based collaborative relationships |
| US20070005967A1 (en) | 2003-12-30 | 2007-01-04 | Entrust Limited | Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data |
| US20050192926A1 (en) | 2004-02-18 | 2005-09-01 | International Business Machines Corporation | Hierarchical visualization of a semantic network |
| US7606168B2 (en) | 2005-01-28 | 2009-10-20 | Attenex Corporation | Apparatus and method for message-centric analysis and multi-aspect viewing using social networks |
| US7360686B2 (en) * | 2005-05-11 | 2008-04-22 | Jp Morgan Chase Bank | Method and system for discovering significant subsets in collection of documents |
| US20100077352A1 (en) | 2005-05-20 | 2010-03-25 | Palo Alto Research Center Incorporated | System And Method For Redistributing Interest In A Hierarchical Data Structure Representation |
| US20070171716A1 (en) | 2005-11-30 | 2007-07-26 | William Wright | System and method for visualizing configurable analytical spaces in time for diagrammatic context representations |
| US8001055B2 (en) * | 2006-02-21 | 2011-08-16 | Weiss Kenneth P | Method, system and apparatus for secure access, payment and identification |
| US20080203170A1 (en) | 2007-02-28 | 2008-08-28 | Visa U.S.A. Inc. | Fraud prevention for transit fare collection |
| US20120041790A1 (en) | 2007-10-24 | 2012-02-16 | Koziol Joseph D | Insurance Transaction System and Method |
| US20090125543A1 (en) | 2007-11-09 | 2009-05-14 | Ebay Inc. | Transaction data representations using an adjacency matrix |
| US20110055074A1 (en) | 2009-09-02 | 2011-03-03 | Yonghui Chen | Visualization for payment card transaction fraud analysis |
Non-Patent Citations (7)
| Title |
|---|
| Bas Cornelissen et al., "Execution Trace Analysis through Massive Sequence and Circular Bundle Views", (http://www.west.nl/), pp. 1-40. |
| Danny Holten, "A User Study on Visualizing Directed Edges in Graphs", CHI 2009, Apr. 4-9, 2009, Boston, MA pp. 1-10. |
| Danny Holten, "Hierarchical Edge Bundles: Visualization of Adjaceny Relations in Hierarchical Data", IEEE Transactions on Visualization and Computer Graphics, vol. 12, No. 5, Sep./Oct. 2006. |
| Danny Holten, "Visualization of Graphs and Trees for Software Anaylsis", May 20, 2009, 163 pages. |
| Draper, et al., "A survey of radial methods for information visualization", IEEE Transactions on Visualization and Computer Graphics, IEEE Service Center, Sep. 1, 2009. |
| Holten, et al., "Trace visualization using hierarchical edge bundles and massive sequence views", Visualizing Software for Understanding and Analysis, 4th IEEE International Workshop, pp. 47-54, Jun. 2007. |
| Wikipedia: "Framebuffer", Internet article, Jan. 31, 2011. |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10762328B2 (en) * | 2018-10-22 | 2020-09-01 | Dell Products, Lp | Method and apparatus for identifying a device within the internet of things using interrogation |
Also Published As
| Publication number | Publication date |
|---|---|
| US20140139546A1 (en) | 2014-05-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111508052B (en) | Rendering method and device of three-dimensional grid body | |
| JP4005904B2 (en) | Display device and display method | |
| US8611655B2 (en) | Hue-based color matching | |
| US8823726B2 (en) | Color balance | |
| US7613363B2 (en) | Image superresolution through edge extraction and contrast enhancement | |
| US9043238B2 (en) | Data visualization system | |
| US9384572B2 (en) | Data analysis system | |
| US9374504B2 (en) | Luma-based color matching | |
| US8594426B2 (en) | Color matching using color segmentation | |
| US11054969B2 (en) | Method and device for displaying page of electronic book, and terminal device | |
| EP1306810A1 (en) | Triangle identification buffer | |
| US7532222B2 (en) | Anti-aliasing content using opacity blending | |
| US20080074439A1 (en) | Selectively transforming overlapping illustration artwork | |
| US20130129206A1 (en) | Methods and Apparatus for Improved Display of Foreground Elements | |
| JP5858188B1 (en) | Image processing apparatus, image processing method, image processing system, and program | |
| JP2002298154A (en) | Image processing program, computer readable recording medium with image processing program recorded thereon, program execution device, image processor and image processing method | |
| US11532106B2 (en) | Color gradient capture from source image content | |
| US20070024638A1 (en) | Image processing using saltating samples | |
| EP0855682B1 (en) | Scan line rendering of convolutions | |
| JP2001101451A (en) | High-speed three-dimensional image display device and method for interactively designating coordinates within three-dimensional space on three-dimensional image while using the same | |
| US20030063096A1 (en) | System and method for efficiently creating a surface map | |
| GB2514410A (en) | Image scaling for images including low resolution text | |
| US10049437B2 (en) | Cleartype resolution recovery resampling | |
| JP4977448B2 (en) | Method and system for generating polygon boundary definitions for image objects | |
| CN119338669B (en) | Target graphic effect conversion method, device and equipment in document conversion |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: SYNERSCOPE B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HOLTEN, DANNY HUBERTUS ROSALIA;BUENEN, JOHANNES CORNELIUS ADRIANUS;SIGNING DATES FROM 20131128 TO 20131129;REEL/FRAME:031697/0185 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 4 |
|
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2552); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY Year of fee payment: 8 |
|
| AS | Assignment |
Owner name: SOLMEX B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SYNERSCOPE B.V.;REEL/FRAME:068940/0512 Effective date: 20240926 Owner name: SOLMEX B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNOR'S INTEREST;ASSIGNOR:SYNERSCOPE B.V.;REEL/FRAME:068940/0512 Effective date: 20240926 |