WO2007016483A2 - Method, system and program storage device for 2d and 3d polyline reduction in o(n) time - Google Patents

Method, system and program storage device for 2d and 3d polyline reduction in o(n) time Download PDF

Info

Publication number
WO2007016483A2
WO2007016483A2 PCT/US2006/029727 US2006029727W WO2007016483A2 WO 2007016483 A2 WO2007016483 A2 WO 2007016483A2 US 2006029727 W US2006029727 W US 2006029727W WO 2007016483 A2 WO2007016483 A2 WO 2007016483A2
Authority
WO
WIPO (PCT)
Prior art keywords
point
polyline
points
threshold distance
cone
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.)
Ceased
Application number
PCT/US2006/029727
Other languages
French (fr)
Other versions
WO2007016483A3 (en
Inventor
Jo Gunnarshaug
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Schlumberger Canada Ltd
Services Petroliers Schlumberger SA
Prad Research and Development NV
Logined BV
Schlumberger Technology Corp
Original Assignee
Schlumberger Canada Ltd
Services Petroliers Schlumberger SA
Prad Research and Development NV
Logined BV
Schlumberger Technology Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Schlumberger Canada Ltd, Services Petroliers Schlumberger SA, Prad Research and Development NV, Logined BV, Schlumberger Technology Corp filed Critical Schlumberger Canada Ltd
Priority to MX2008001539A priority Critical patent/MX2008001539A/en
Priority to GB0803815A priority patent/GB2443994A/en
Publication of WO2007016483A2 publication Critical patent/WO2007016483A2/en
Publication of WO2007016483A3 publication Critical patent/WO2007016483A3/en
Anticipated expiration legal-status Critical
Priority to NO20081058A priority patent/NO20081058L/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three-dimensional [3D] modelling for computer graphics
    • G06T17/30Polynomial surface description
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/20Drawing from basic elements
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/00Two-dimensional [2D] image generation
    • G06T11/20Drawing from basic elements
    • G06T11/23Drawing from basic elements using straight lines or curves

Definitions

  • This subject matter relates to a method, including a corresponding system and program storage device and computer software, that is practiced by a computer software adapted to be stored in a memory of a computer system and executed by a processor of the computer system (hereinafter called the "Polyline Reduction software"), the Polyline Reduction software, when executed by the processor of the computer system, solving a problem relating to the act of reducing the number of points in a 2D or 3D polyline thereby producing a resultant polyline, where the resultant polyline can then be either: rendered more optimally on a display screen of the computer system, or (2) sent to a printer of the computer system when that printer has an amount of memory which is less than the amount of memory which would normally be required by the printer to print a job.
  • the Polyline Reduction software when executed by the processor of the computer system, solving a problem relating to the act of reducing the number of points in a 2D or 3D polyline thereby producing a resultant polyline, where the resultant polyline can then be
  • a Polyline Reduction software (also called a 'Polyline Reduction algorithm' or a 'Polyline Reducer algorithm') disclosed in this specification solves a well known problem associated with reducing the number of points in a 2D or 3D polyline thereby generating a 'resultant polyline'.
  • the 'resultant polyline' can, for example, be rendered more optimally on a display screen of a computer system, or the 'resultant polyline' can be sent to a printer that requires less memory (that is, the printer has an amount of memory which is less than the amount of memory which would normally be required by the printer to print a print job).
  • an increased speed (or, alternatively, a reduced execution time) is associated with the Polyline Reduction software when it is executed in a processor of a computer system, and that increased speed is exploited in order to achieve an unexpected or improved result; namely, to achieve a higher level of interactivity in 3D viewers and 2D plotting viewers when certain 'particular applications' are being executed in a processor of the computer system, especially those 'particular applications' which utilize 'well traces', 'well log data', 'surface data', and 'contours'.
  • One aspect of the present invention involves a method of generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the method comprising: (a) receiving an original polyline and a threshold distance; and (b) if 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points Ti+l..Pi+2..Pk-l' thereby generating the reduced polyline.
  • Another aspect of the present invention involves a program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform method steps for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the method comprising: (a) receiving an original polyline and a threshold distance; and (b) if Tk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points Ti+1..Pi+2..Pk-l ' thereby generating the reduced polyline.
  • Another aspect of the present invention involves a system adapted for generating a reduced polyline, where 'Cj ,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, comprising: first apparatus adapted for receiving an original polyline and a threshold distance; and if Tk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', second apparatus adapted for removing points Ti+1..Pi+2.. Pk-I ' thereby generating the reduced polyline.
  • Another aspect of the present invention involves a computer program adapted to be executed by a processor, the computer program, when executed by the processor, conducting a process for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the process comprising: (a) receiving an original polyline and a threshold distance; and
  • figure 1 illustrates a computer system storing the Polyline Reduction software disclosed in this specification
  • figure 2 illustrates a construction of the 'Polyline Reduction software' of figure 1;
  • figure 3 illustrates a more detailed construction of the 'Polyline Reduction software' of figure 1;
  • figure 4 illustrates the 'basic concept' associated with the 'Polyline Reduction software' with O(N) performance as disclosed in this specification;
  • figure 5 illustrates the geometry for an infinite cone and a formula for calculating the 'spanning angle'
  • figures 6 through 12 illustrate a simple example of the 'basic concept' of figure 4 associated with the function performed by the Polyline Reduction software disclosed in this specification;
  • figure 13 illustrates another outcome of the example illustrated in figures 6- 12 showing that there are 'jump backs';
  • figure 14 illustrates a performance example associated with a 2D polyline having 2512 points
  • figure 15 illustrates a performance example associated with a 3D polyline having 1524 points.
  • the Polyline Reduction software (also called the 'Polyline Reduction algorithm') disclosed in this specification solves a well known problem pertaining to the reduction of the number of points in a 2D or 3D polyline thereby generating a 'resultant polyline'.
  • the 'resultant polyline' can, for example, be rendered more optimally on a computer screen or it can be sent to a printer that requires less memory.
  • the Polyline Reduction algorithm is faster than another 'currently most used algorithm'.
  • the Polyline Reduction algorithm will execute (in the processor of the computer system) in 'linear time' [where the term 'linear time' is characterized or denoted by the notation O(N) time'], whereas the 'currently most used algorithm' will execute in 'other time' [where the term 'other time' is characterized or denoted by the notation O(N*log(M)) time'], the letter 'N' being the number of points in the original polyline, and the letter 'M' being the number of points in the reduced polyline.
  • the increased speed (or reduced execution time) associated with the Polyline Reduction software (when executed in the processor of the computer system) is exploited in order to achieve an unexpected or improved result; that is, to achieve a higher level of interactivity in 3D viewers and 2D plotting viewers associated with certain particular applications, especially those particular applications which utilize 'well traces', 'well log data', 'surface data', and 'contours'.
  • FIG 1 a computer system 10, which stores the 'Polyline Reduction software' 14 of this specification, is illustrated.
  • a workstation, personal computer, or other computer system 10 is illustrated adapted for storing the 'Polyline Reduction software' 14.
  • the computer system 10 of figure 1 includes a processor 10a operatively connected to a system bus 12, a memory or other program storage device 10b operatively connected to the system bus 12, and a recorder or display device 10c operatively connected to the system bus 12.
  • the memory or other program storage device 10b stores the Polyline Reduction software 14.
  • the Polyline Reduction software 14 which is stored in the memory 10b of figure 1, can be initially stored on a CD-ROM or a Hard Disk, where that CD-ROM and the Hard Disk are also 'program storage devices'.
  • the CD-ROM can be inserted into the computer system 10, and the Polyline Reduction software 14 can be loaded from the CD-ROM (or Hard Disk) and into the memory/program storage device 10b of the computer system 10 of figure 1.
  • the computer system 10 of figure 1 will receive 'input data' 15 and 17 which includes: an Original polyline' 15, and (2) a parameter known as the 'threshold distance' 17, the original polyline 15 and the threshold distance 17 being illustrated in figure 4.
  • the processor 10a will execute the Polyline Reduction software 14 stored in memory 10b while, simultaneously, using the 'input data' 15 and 17 including the Original polyline' 15 and the 'threshold distance' 17, and, in response thereto, the recorder or display device 1 Oc will generate, as output data, a 'reduced polyline' 19 that is adapted to be recorded by or displayed on the recorder or display device 10c.
  • the computer system 10 may be a personal computer (PC), a workstation, or a mainframe. Examples of possible workstations include a Silicon Graphics Indigo 2 workstation or a Sun SPARC workstation or a Sun ULTRA workstation or a Sun BLADE workstation.
  • the memory or program storage device 10b is a computer readable medium or a program storage device which is readable by a machine, such as the processor 10a.
  • the processor 10a may be, for example, a microprocessor, microcontroller, or a mainframe or workstation processor.
  • the memory or program storage device 10b, which stores the Polyline Reduction software 14, may be, for example, a hard disk, ROM, CD-ROM, DRAM, or other RAM, flash memory, magnetic storage, optical storage, registers, or other volatile and/or nonvolatile memory.
  • step 14a Let 'Cj,k' be the 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance (17), and (2) step 14b: If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k ⁇ then points 'Pi+1..Pi+2..Pk-l ' can be removed.
  • step 14b of figure 2 includes the following step: "If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+1..Pi+2..Pk-l ' can be removed".
  • step 14b of figure 2 includes the following sub-steps (1) through (5), which will be discussed in the 'example' below with reference to figures 6 through 12, as follows: (1) The iteration starts at endpoint 'Pl' (which is always added to the result); At 'P2 ⁇ the infinite cone 'C12' is calculated;
  • the Polyline Reduction software 14 of figure 1 also known as the 'Polyline Reduction algorithm' 14, begins by receiving the points (Pl, P2,...,PN) of an Original polyline' 15.
  • the Polyline Reduction software 14 will iterate through the points (Pl, P2,...,PN) of the Original polyline' 15, starting with the first point 'Pl ' and ending with the last point 'PN'; and, as a consequence, the Polyline Reduction software 14 thus achieves a 'linear execution time' in 'N'.
  • step 14a which reads: "Let 'Cj,k' be the 'infinite cone' with an origin at 'Pj' and a distance from 'Pk' equal to a provided threshold distance", where the 'threshold distance' 17 represents one of the 'input data' 17 illustrated in figure 1.
  • the 'basic concept' associated with the 'Polyline Reduction algorithm' 14 of figure 1 is as follows: If 'Pk' is inside all of the cones 'Ci,i+1..Ci,i+2...Ci,k', then points 'Pi+l..Pi+2..Pk-l ' can be removed (step 14b of figure 2). As noted above, the iteration starts at endpoint 'Pl ', which is always added to the result; and, at 'P2', the infinite cone 'C12' is calculated. If 'P3' is inside 'C12', then 'P2' can be removed.
  • the Polyline Reduction algorithm 14 shows '0(N)' performance for the practical cases considered.
  • the 'intersection-operation' is associated with the 'efficiency' of the 'Polyline Reduction algorithm' 14 because it accumulates the required geometric knowledge into a single simple object; that is, a 'cone with infinite range' .
  • the intersection operation in 2D is trivial since the cones have the same origin. In the 3D case, it is harder because the intersection of two cones is not a cone. However, the largest inscribed cone can be used instead. This only produces a minor limitation, which is that poly-lines with a lot of "twisting" are not always optimally reduced. In other words, the opposite case is a polyline that completely lies in a plane. In this case, the simplified 'intersection operation' does not (in theory) introduce any changes to the result of the reduction.
  • step 14a of figure 2 i.e., "Let 'Cj,k' be the 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance 17" and step 14b of figure 2 (i.e., "IfPk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+1..Pi+2..Pk-l ' can be removed”) can, together, be characterized or represented by the steps shown in figure 3.
  • the Polyline Reduction algorithm 14 is initialized.
  • an index variable T is initialized to zero, referring to the first point in the original polyline. Note that the first point will always be added to the reduced polyline.
  • the point 'Pi' is added to the reduced polyline. For example, only the index needs to be remembered.
  • the Polyline Reduction algorithm 14 (of figure 1) checks if the last point has been reached.
  • index variables 'j' and 'next_i' are introduced and initialized to the next point after 'i'.
  • region 'Ci...j' is calculated. This can be calculated as the intersection between the previous region 'Ci...j-1 ' and cone 'Cij '.
  • step 14.7 of figure 3 this step 14.7 checks if the region 'CLj' has collapsed.
  • step 14.8 of figure 3 this step 14.8 checks if 'Pj' can be used as the next point in the reduced polyline (thus removing points 'Pi+1...Pi+2...Pj-I ').
  • FIG 4 an illustration or example of the Polyline Reduction software 14 of figure 1, with 0(N) performance, will be discussed below with reference to figure 4.
  • the 'original polyline' 15 and the 'threshold distance' 17 which represent the 'input data' for the computer system 10 of figure 1
  • the 'reduced polyline' 19 which represents the Output data' 19 that is generated by the computer system 10 of figure 1.
  • point Pl (which is point 22) can be removed if point P2 (which is point 20b) is within the (unlimited) green region 16.
  • point (P2) 20b since point (P2) 20b is within the (unlimited) green region 16, point (Pl) 22 can be removed.
  • point (P2) 20b is a 'kept point' and point (Pl) 22 is a 'removed point'.
  • step 14a Let 'Cj,k' be an 'infinite cone' with origin in 'Pj' and a shortest distance from 'Pk' to the edges of the cone equal to a provided threshold distance (17), and (2) step 14b: If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+l..Pi+2..Pk-l' can be removed.
  • FIG. 12 an 'example' of the 'function' practiced by the Polyline Reduction software 14 of figures 1, 2, and 3 is illustrated.
  • the 'basic idea' or 'basic concept' associated with the 'function' practiced by the Polyline Reduction software 14 was stated above with reference to figure 4: "Point (Pl) 22 can be removed if point (P2) 20b is within the (unlimited) green region 16".
  • the 'example' of figures 6 through 12 will further exemplify this 'basic concept'
  • point Pl can be removed if a succeeding point is in the green region 16.
  • Point PO being a green point 20a
  • point Pl being a grey point 21
  • 'undecided point' i.e., it is 'undecided' whether, at this time, to remove grey point Pl (21) in figure 6 as one of the points of the 'reduced polyline' 19 of figure I].
  • FIG 13 another outcome of the example illustrated in figures 6-12 is shown in figure 13 wherein there can be 'jump backs'.
  • the second outcome of the example discussed above with reference to figures 6-12 shows that there are 'jump backs'.
  • the Polyline Reduction software 14 is an O(N) algorithm.
  • Figures 14 and 15 illustrate two performance examples.
  • Figure 14 illustrates a performance example for a 2D polyline with 2512 points, which reduced a 2D polyline with various threshold parameters, and plotted the relative size of the results (x-axis) against the execution time (y-axis) for a 'new' and a 'standard' algorithm.
  • Figure 15 illustrates a performance example for a 3D polyline with 1524 points, which reduced a 3D polyline with various threshold parameters, and plotted the relative size of the result (x-axis) against the execution time (y-axis) for a new and a 'standard' algorithm.
  • the 'new' algorithm represents the Polyline Reduction software 14 of figure 1 that looks like an '0(N) algorithm'.
  • the 'standard' algorithm represents a 'standard (recursive) implementation of the Douglas-Peauker algorithm ("O(M*log(N))" ⁇
  • FIG 4 note the 'original polyline' 15, the 'threshold distance' 17, and the 'reduced polyline' 19.
  • the processor 10a of the computer system 10 receives as 'input data' the original polyline 15 and the threshold distance 17 of figure 4; and, in response to that 'input data', the computer system 10 executes the Polyline Reduction software 14 of figure 1 thereby generating, as Output data', the 'reduced polyline' 19 of figure 4.
  • point Pl (22) can be 'removed'; and, when point Pl is 'removed', then, point Pl is not a member of the set of points belonging to the 'reduced polyline' 19 (recall that the 'reduced polyline' 19 is generated as an 'output' by the computer system 10 of figure 1).
  • step 14b associated with the 'basic concept' of figure 2 (namely, "IfPk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points c Pi+l ..Pi+2..Pk-l ' can be removed") can be further described in the following five substeps (1) through (5) [where the following five substeps (1) through (5) were illustrated in the example discussed above with reference to figures 6 through 12], as follows:
  • step 14b in figure 2 The above referenced substeps (1) through (5), which together characterize step 14b in figure 2, can be understood by referring to the steps of the flowchart illustrated in figure 3.
  • step 14 the Polyline Reduction algorithm 14 is initialized.
  • step 14.2 the point 'Pi' is added to the reduced polyline.
  • steps 14.3 and 14.5 the Polyline Reduction algorithm 14 (of figure 1) checks if the last point has been reached.
  • step 14.4 index variables 'j' and 'next_i' are introduced and initialized to the next point after T.
  • step 14.6 region 'Ci...j' is calculated. This can be calculated as the intersection between the previous region ' Ci ... j - 1 ' and cone ' Cij ' . If the polyline is in 2D, then ' Ci ...
  • Step 14.7 checks if the region 'Ci...j' has collapsed.
  • Step 14.8 checks if 'Pj ' can be used as the next point in the reduced polyline (thus removing points 'Pi+1...Pi+2... Pj-I ')•
  • Step 14.9 initiates 'i' to the next point in the reduced polyline ('next_i'), which is the result of steps 14.4 through 14.8.
  • the Polyline Reduction computer software 14 can be used in connection with any software product that benefits from being able to reduce large poly-lines in real-time.
  • a typical general scenario is that a polyline is to be represented in a canvas where a lot of interactive freedom is given to the scalability/zoom-level.
  • the Polyline Reduction software 14 can be used to optimize well traces, well-log data, surface data, and contour lines. This is displayed and/or printed in many different 3D and 2D canvases.
  • the Polyline Reduction software 14 can also be exploited to boost the performance of other mapping software products, for example: (1) GPS-mapping tools like those used in cars and boats, (2) maps available through the internet (e.g., for looking up addresses), and (3) applications adapted for presenting a weather forecast.
  • mapping software products for example: (1) GPS-mapping tools like those used in cars and boats, (2) maps available through the internet (e.g., for looking up addresses), and (3) applications adapted for presenting a weather forecast.

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)

Abstract

A Polyline Reduction software adapted to be stored in a workstation or other computer system solves the problem of reducing the number of points in a 2D or 3D polyline, so that it can be rendered more optimally on a computer screen or sent to a printer requiring less memory, by performing the following basic function: let Cj,k be an infinite cone with origin in Pj and a distance from Pk equal to a provided threshold distance; If Pk is inside all of the cones Ci,i+1...Ci,i+2,,,Ci,k, then points Pi+1...Pi+2...Pk-1 can be removed.

Description

METHOD, SYSTEM AND PROGRAM STORAGE DEVICE FOR 2D AND 3D POLYLINE REDUCTION IN 0(N) TIME
CROSS REFERENCE TO RELATED APPLICATIONS
[001 ] This is a Utility Application of prior pending Provisional Application serial number 60/704,283 filed August 1, 2005 entitled "Method System and Program Storage Device for 2D and 3D Polyline Reduction in O(N) Time".
BACKGROUND
[002] This subject matter relates to a method, including a corresponding system and program storage device and computer software, that is practiced by a computer software adapted to be stored in a memory of a computer system and executed by a processor of the computer system (hereinafter called the "Polyline Reduction software"), the Polyline Reduction software, when executed by the processor of the computer system, solving a problem relating to the act of reducing the number of points in a 2D or 3D polyline thereby producing a resultant polyline, where the resultant polyline can then be either: rendered more optimally on a display screen of the computer system, or (2) sent to a printer of the computer system when that printer has an amount of memory which is less than the amount of memory which would normally be required by the printer to print a job.
[003] A Polyline Reduction software (also called a 'Polyline Reduction algorithm' or a 'Polyline Reducer algorithm') disclosed in this specification solves a well known problem associated with reducing the number of points in a 2D or 3D polyline thereby generating a 'resultant polyline'. As a result, the 'resultant polyline' can, for example, be rendered more optimally on a display screen of a computer system, or the 'resultant polyline' can be sent to a printer that requires less memory (that is, the printer has an amount of memory which is less than the amount of memory which would normally be required by the printer to print a print job). In addition, an increased speed (or, alternatively, a reduced execution time) is associated with the Polyline Reduction software when it is executed in a processor of a computer system, and that increased speed is exploited in order to achieve an unexpected or improved result; namely, to achieve a higher level of interactivity in 3D viewers and 2D plotting viewers when certain 'particular applications' are being executed in a processor of the computer system, especially those 'particular applications' which utilize 'well traces', 'well log data', 'surface data', and 'contours'.
SUMMARY
[004] One aspect of the present invention involves a method of generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the method comprising: (a) receiving an original polyline and a threshold distance; and (b) if 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points Ti+l..Pi+2..Pk-l' thereby generating the reduced polyline.
[005] Another aspect of the present invention involves a program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform method steps for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the method comprising: (a) receiving an original polyline and a threshold distance; and (b) if Tk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points Ti+1..Pi+2..Pk-l ' thereby generating the reduced polyline.
[006] Another aspect of the present invention involves a system adapted for generating a reduced polyline, where 'Cj ,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, comprising: first apparatus adapted for receiving an original polyline and a threshold distance; and if Tk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', second apparatus adapted for removing points Ti+1..Pi+2.. Pk-I ' thereby generating the reduced polyline.
[007] Another aspect of the present invention involves a computer program adapted to be executed by a processor, the computer program, when executed by the processor, conducting a process for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in Tj' and a distance from Tk' equal to a provided threshold distance, the process comprising: (a) receiving an original polyline and a threshold distance; and
(b) if Tk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points Ti+ L. Pi+2.. Pk-I' thereby generating the reduced polyline. [008] Further scope of applicability will become apparent from the detailed description presented hereinafter. It should be understood, however, that the detailed description and the specific examples set forth below are given by way of illustration only, since various changes and modifications within the spirit and scope of the 'Polyline Reduction software', as described and claimed in this specification, will become obvious to one skilled in the art from a reading of the following detailed description.
BRTRF DESCRIPTION OF THE DRAWINCTS
[009] A full understanding will be obtained from the detailed description presented hereiribelow, and the accompanying drawings which are given by way of illustration only and are not intended to be limitative to any extent, and wherein:
[0010] figure 1 illustrates a computer system storing the Polyline Reduction software disclosed in this specification;
[0011] figure 2 illustrates a construction of the 'Polyline Reduction software' of figure 1;
[0012] figure 3 illustrates a more detailed construction of the 'Polyline Reduction software' of figure 1;
[0013] figure 4 illustrates the 'basic concept' associated with the 'Polyline Reduction software' with O(N) performance as disclosed in this specification;
[0014] figure 5 illustrates the geometry for an infinite cone and a formula for calculating the 'spanning angle';
[0015] figures 6 through 12 illustrate a simple example of the 'basic concept' of figure 4 associated with the function performed by the Polyline Reduction software disclosed in this specification;
[0016] figure 13 illustrates another outcome of the example illustrated in figures 6- 12 showing that there are 'jump backs';
[0017] figure 14 illustrates a performance example associated with a 2D polyline having 2512 points; and [0018] figure 15 illustrates a performance example associated with a 3D polyline having 1524 points.
DETAILED DESCRIPTION
[0019] The Polyline Reduction software (also called the 'Polyline Reduction algorithm') disclosed in this specification solves a well known problem pertaining to the reduction of the number of points in a 2D or 3D polyline thereby generating a 'resultant polyline'. As a result, the 'resultant polyline' can, for example, be rendered more optimally on a computer screen or it can be sent to a printer that requires less memory. The Polyline Reduction algorithm is faster than another 'currently most used algorithm'. The Polyline Reduction algorithm will execute (in the processor of the computer system) in 'linear time' [where the term 'linear time' is characterized or denoted by the notation O(N) time'], whereas the 'currently most used algorithm' will execute in 'other time' [where the term 'other time' is characterized or denoted by the notation O(N*log(M)) time'], the letter 'N' being the number of points in the original polyline, and the letter 'M' being the number of points in the reduced polyline. The increased speed (or reduced execution time) associated with the Polyline Reduction software (when executed in the processor of the computer system) is exploited in order to achieve an unexpected or improved result; that is, to achieve a higher level of interactivity in 3D viewers and 2D plotting viewers associated with certain particular applications, especially those particular applications which utilize 'well traces', 'well log data', 'surface data', and 'contours'.
[0020] Referring to figure 1, a computer system 10, which stores the 'Polyline Reduction software' 14 of this specification, is illustrated. In figure 1, a workstation, personal computer, or other computer system 10 is illustrated adapted for storing the 'Polyline Reduction software' 14. The computer system 10 of figure 1 includes a processor 10a operatively connected to a system bus 12, a memory or other program storage device 10b operatively connected to the system bus 12, and a recorder or display device 10c operatively connected to the system bus 12. The memory or other program storage device 10b stores the Polyline Reduction software 14. The Polyline Reduction software 14, which is stored in the memory 10b of figure 1, can be initially stored on a CD-ROM or a Hard Disk, where that CD-ROM and the Hard Disk are also 'program storage devices'. The CD-ROM can be inserted into the computer system 10, and the Polyline Reduction software 14 can be loaded from the CD-ROM (or Hard Disk) and into the memory/program storage device 10b of the computer system 10 of figure 1. The computer system 10 of figure 1 will receive 'input data' 15 and 17 which includes: an Original polyline' 15, and (2) a parameter known as the 'threshold distance' 17, the original polyline 15 and the threshold distance 17 being illustrated in figure 4. In operation, in figure 1, the processor 10a will execute the Polyline Reduction software 14 stored in memory 10b while, simultaneously, using the 'input data' 15 and 17 including the Original polyline' 15 and the 'threshold distance' 17, and, in response thereto, the recorder or display device 1 Oc will generate, as output data, a 'reduced polyline' 19 that is adapted to be recorded by or displayed on the recorder or display device 10c. The computer system 10 may be a personal computer (PC), a workstation, or a mainframe. Examples of possible workstations include a Silicon Graphics Indigo 2 workstation or a Sun SPARC workstation or a Sun ULTRA workstation or a Sun BLADE workstation. The memory or program storage device 10b is a computer readable medium or a program storage device which is readable by a machine, such as the processor 10a. The processor 10a may be, for example, a microprocessor, microcontroller, or a mainframe or workstation processor. The memory or program storage device 10b, which stores the Polyline Reduction software 14, may be, for example, a hard disk, ROM, CD-ROM, DRAM, or other RAM, flash memory, magnetic storage, optical storage, registers, or other volatile and/or nonvolatile memory.
[0021] Referring to figure 2, a construction of the Polyline Reduction software 14 of figure 1 is illustrated. In figure 2, the Polyline Reduction software 14 of figure 2 includes two basic steps: (1) step 14a: Let 'Cj,k' be the 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance (17), and (2) step 14b: If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k\ then points 'Pi+1..Pi+2..Pk-l ' can be removed.
[0022] Recall that step 14b of figure 2 includes the following step: "If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+1..Pi+2..Pk-l ' can be removed". However, step 14b of figure 2 includes the following sub-steps (1) through (5), which will be discussed in the 'example' below with reference to figures 6 through 12, as follows: (1) The iteration starts at endpoint 'Pl' (which is always added to the result); At 'P2\ the infinite cone 'C12' is calculated;
(2) If 'P3 ' is inside 'C12\ then 'P2' can be removed;
(3) A new cone 'C13 ' is calculated, still with origin in 'Pl ', but now with the specified threshold distance to 'P3';
(4) If 'P4' is inside the intersection of cones 'C12' and 'C13', then points 'P2' and
'P3' can be removed; and
(5) The subsequent points are inspected until the union intersection has collapsed.
[0023] Each of the above sub-steps (1) through (5) referenced above, which together comprise step 14b of figure 2, will be discussed in more detail in the following paragraphs with reference to figure 3.
[0024] The Polyline Reduction software 14 of figure 1, also known as the 'Polyline Reduction algorithm' 14, begins by receiving the points (Pl, P2,...,PN) of an Original polyline' 15. The Polyline Reduction software 14 will iterate through the points (Pl, P2,...,PN) of the Original polyline' 15, starting with the first point 'Pl ' and ending with the last point 'PN'; and, as a consequence, the Polyline Reduction software 14 thus achieves a 'linear execution time' in 'N'. In figure 2, see step 14a which reads: "Let 'Cj,k' be the 'infinite cone' with an origin at 'Pj' and a distance from 'Pk' equal to a provided threshold distance", where the 'threshold distance' 17 represents one of the 'input data' 17 illustrated in figure 1.
[0025] The 'basic concept' associated with the 'Polyline Reduction algorithm' 14 of figure 1 is as follows: If 'Pk' is inside all of the cones 'Ci,i+1..Ci,i+2...Ci,k', then points 'Pi+l..Pi+2..Pk-l ' can be removed (step 14b of figure 2). As noted above, the iteration starts at endpoint 'Pl ', which is always added to the result; and, at 'P2', the infinite cone 'C12' is calculated. If 'P3' is inside 'C12', then 'P2' can be removed. Next, a new cone 'Cl 3' is calculated, still with origin in 'Pl', but now with the specified threshold distance (17) to 'P3 '. If CP4' is inside the intersection of cones 'C12' and 'C13', then points 'P2' and 'P3' can be removed. The subsequent points are inspected until the union intersection has collapsed.
[0026] The Polyline Reduction algorithm 14 shows '0(N)' performance for the practical cases considered. The 'intersection-operation' is associated with the 'efficiency' of the 'Polyline Reduction algorithm' 14 because it accumulates the required geometric knowledge into a single simple object; that is, a 'cone with infinite range' . The intersection operation in 2D is trivial since the cones have the same origin. In the 3D case, it is harder because the intersection of two cones is not a cone. However, the largest inscribed cone can be used instead. This only produces a minor limitation, which is that poly-lines with a lot of "twisting" are not always optimally reduced. In other words, the opposite case is a polyline that completely lies in a plane. In this case, the simplified 'intersection operation' does not (in theory) introduce any changes to the result of the reduction.
[0027] Referring to figure 3, a more detailed construction of the Polyline Reduction software 14 of figures 1 and 2 is illustrated.
[0028] In figure 3, step 14a of figure 2 (i.e., "Let 'Cj,k' be the 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance 17") and step 14b of figure 2 (i.e., "IfPk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+1..Pi+2..Pk-l ' can be removed") can, together, be characterized or represented by the steps shown in figure 3. In figure 3, in the first step 14.1 of figure 3, the Polyline Reduction algorithm 14 is initialized. For example, an index variable T is initialized to zero, referring to the first point in the original polyline. Note that the first point will always be added to the reduced polyline. In step 14.2 of figure 3, the point 'Pi' is added to the reduced polyline. For example, only the index needs to be remembered. In steps 14.3 and 14.5 of figure 3, the Polyline Reduction algorithm 14 (of figure 1) checks if the last point has been reached. In step 14.4 of figure 3, index variables 'j' and 'next_i' are introduced and initialized to the next point after 'i'. In step 14.6 of figure 3, region 'Ci...j' is calculated. This can be calculated as the intersection between the previous region 'Ci...j-1 ' and cone 'Cij '. If the polyline is in 2D, then 'Ci...j' is itself a cone and, in 3D, it can be approximated as a cone. Note that, initially, when 'j=i+l', then the intersection operation is not required ('Cii' can be deemed equal to the entire region and 'Cij ' can be used directly). In step 14.7 of figure 3, this step 14.7 checks if the region 'CLj' has collapsed. In step 14.8 of figure 3, this step 14.8 checks if 'Pj' can be used as the next point in the reduced polyline (thus removing points 'Pi+1...Pi+2...Pj-I '). This step also demands that the distance from 'Pi' to 'Pj' is larger than the distance from the current 'Pi' to 'Pnext_i'. In step 14.9 of figure 3, this step 14.9 initiates T to the next point in the reduced polyline ('next_i'), which is the result of steps 14.4 through 14.8. It represents a jump-back in the Polyline Reduction algorithm 14, but it does not make the algorithm O(N*log(N))' under the assumption that the number of jump-backs per point is restricted by a constant 'k' (typically k=2). The Polyline Reduction algorithm 14 is then: O(k*N)= 0(N).
[0029] Referring to figure 4, an illustration or example of the Polyline Reduction software 14 of figure 1, with 0(N) performance, will be discussed below with reference to figure 4. In figure 4, note the 'original polyline' 15 and the 'threshold distance' 17 which represent the 'input data' for the computer system 10 of figure 1, and note further the 'reduced polyline' 19 which represents the Output data' 19 that is generated by the computer system 10 of figure 1. In addition, in figure 4, note the location of green region 16, yellow region 18, the points 20a and 20b, and a point 22. In figure 4, the 'basic idea' or 'basic concept' inherent in the Polyline Reduction software 14 of figures 1-3 can be stated as follows: point Pl (which is point 22) can be removed if point P2 (which is point 20b) is within the (unlimited) green region 16. In figure 4, since point (P2) 20b is within the (unlimited) green region 16, point (Pl) 22 can be removed. Thus, as shown in figure 4, point (P2) 20b is a 'kept point' and point (Pl) 22 is a 'removed point'.
[0030] Referring to figure 5, the geometry for an infinite cone and a formula for calculating the 'spanning angle' is illustrated. In figure 5, the 'basic principle' associated with the method practiced by the Polyline Reduction software 14 of figure 1, as illustrated in figure 2, is shown again in figure 5, as follows: (1) step 14a: Let 'Cj,k' be an 'infinite cone' with origin in 'Pj' and a shortest distance from 'Pk' to the edges of the cone equal to a provided threshold distance (17), and (2) step 14b: If 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+l..Pi+2..Pk-l' can be removed. The 'basic principle' associated with steps 14a and 14b in figure 5 can best be illustrated by referring to the 'Infinite Cone Geometry' 40 also illustrated in figure 5. Note, with respect to the 'Infinite Cone Geometry' 40 of figure 5, the 'spanning angle' atJ . The 'spanning angle' atJ can be calculated in accordance with the following equation, as shown in figure 5, as follows:
Figure imgf000014_0001
[0031] Referring to figures 6 through 12, an 'example' of the 'function' practiced by the Polyline Reduction software 14 of figures 1, 2, and 3 is illustrated. The 'basic idea' or 'basic concept' associated with the 'function' practiced by the Polyline Reduction software 14 was stated above with reference to figure 4: "Point (Pl) 22 can be removed if point (P2) 20b is within the (unlimited) green region 16". The 'example' of figures 6 through 12 will further exemplify this 'basic concept'
[0032] In figure 6, noting the green region 16, the point Pl can be removed if a succeeding point is in the green region 16. Point PO (being a green point 20a) is a 'kept point' and point Pl (being a grey point 21) is an 'undecided point' [i.e., it is 'undecided' whether, at this time, to remove grey point Pl (21) in figure 6 as one of the points of the 'reduced polyline' 19 of figure I].
[0033] In figure 7, noting again the green region 16, the point P2 (which is a 'red' point 23) is not inside the green region 16, therefore, red point P2 (23) can 'not' be the next point after green point PO (20a). Note, from the legend in figure 7, that 'red' points cannot be the next point of the 'reduced polyline' 19
[0034] In figures 8 and 9, referring initially to figure 8, two infinite cones 26 and 28 intersect thereby producing an 'intersected cone' 24 which constitutes a 'new green region' 24. However, the 'intersected cone' 24 (that is, the new green region 24) is non-null. Therefore, in figure 9, if point P3 (30) is inside the new green region 24 [and note that, in figure 9, point P3 (30) is inside the new green region 24], then both points Pl (21) and P2 (23) can be removed as points of the 'reduced polyline' 19 of figure 1. In figure 9, both points Pl (21) and P2 (23) are now 'blue' points, and a 'blue' point in figure 9 represents a 'removed point', where the term 'removed point' means that points Pl (21) and P2 (23) are not considered to be points belonging to the 'reduced polyline' 19 of figure 1.
[0035] In figures 10 and 11, referring initially to figure 10, consider the same new green region 24 of figures 8 and 9. On the other hand, in figure 10, if the point P3 (32) is outside the green region 24 [and note that, in figure 10, point P3 (32) is outside the green region 24], and, in figure 11, if the next intersected cone (or green region) 33 is empty, or if point P3 (32) is the last point, point Pl (21) must be 'kept', where the term 'kept point' means that point Pl (21) is a member of the set of points belonging to the 'reduced polyline' 19 of figure 1. In figure 11 , if either: (1) the next intersected cone (green region) 33 is empty, or (2) point P3 (32) is the last point, then, in that case, the point Pl (21) must be a 'kept point'.
[0036] In figure 12, the Polyline Reduction software 14 must then start a new search originating from point Pl (21).
[0037] Referring to figure 13, another outcome of the example illustrated in figures 6-12 is shown in figure 13 wherein there can be 'jump backs'. Consider the example shown in figure 13. In figure 13, the second outcome of the example discussed above with reference to figures 6-12 shows that there are 'jump backs'. However, it is strongly suspected that the number of jump backs are bound; for example, that there can be no more than two (2) jump backs per point. If so, the Polyline Reduction software 14 is an O(N) algorithm.
[0038] Figures 14 and 15 illustrate two performance examples. Figure 14 illustrates a performance example for a 2D polyline with 2512 points, which reduced a 2D polyline with various threshold parameters, and plotted the relative size of the results (x-axis) against the execution time (y-axis) for a 'new' and a 'standard' algorithm. Figure 15 illustrates a performance example for a 3D polyline with 1524 points, which reduced a 3D polyline with various threshold parameters, and plotted the relative size of the result (x-axis) against the execution time (y-axis) for a new and a 'standard' algorithm. The 'new' algorithm (that is, the JOG algorithm referenced in figures 14 and 15) represents the Polyline Reduction software 14 of figure 1 that looks like an '0(N) algorithm'. The 'standard' algorithm (that is, the STD algorithm referenced in figures 14 and 15) represents a 'standard (recursive) implementation of the Douglas-Peauker algorithm ("O(M*log(N))")\
[0039] A functional description of the operation of the Polyline Reduction software 14 will be set forth in the following paragraphs with reference to figures 1 through 15 of the drawings.
[0040] In figure 4, note the 'original polyline' 15, the 'threshold distance' 17, and the 'reduced polyline' 19. In figure 1, the processor 10a of the computer system 10 receives as 'input data' the original polyline 15 and the threshold distance 17 of figure 4; and, in response to that 'input data', the computer system 10 executes the Polyline Reduction software 14 of figure 1 thereby generating, as Output data', the 'reduced polyline' 19 of figure 4.
[0041] In figure 4, when the computer system 10 executes the Polyline Reduction software 14 of figure 1 for the purpose of generating the 'reduced polyline' 19 of figures 1 and 4, the Polyline Reduction software 14 will be performing a function corresponding to the following 'basic concept': referring to figure 4, "point Pl (22) can be removed if point P2 (20b) lies within the (unlimited) green region 16". In figure 4, since point P2 (20b) lies within the green region 16, then, point Pl (22) can be 'removed'; and, when point Pl is 'removed', then, point Pl is not a member of the set of points belonging to the 'reduced polyline' 19 (recall that the 'reduced polyline' 19 is generated as an 'output' by the computer system 10 of figure 1).
[0042] The above stated 'basic concept' can be described mathematically as follows with reference to figure 2: (1) let 'Cj,k' be an 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance 17 (step 14a in figure 2); (2) IfPk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points 'Pi+1..Pi+2..Pk-l ' can be removed (step 14b of figure 2).
[0043] The above stated step 14b associated with the 'basic concept' of figure 2 (namely, "IfPk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', then points cPi+l ..Pi+2..Pk-l ' can be removed") can be further described in the following five substeps (1) through (5) [where the following five substeps (1) through (5) were illustrated in the example discussed above with reference to figures 6 through 12], as follows:
(1) The iteration starts at endpoint 'Pl' (which is always added to the result); At 'P2', the infinite cone 'C12' is calculated,
(2) If 'P3' is inside 'C12\ then 'P2' can be removed,
(3) A new cone 'C13 ' is calculated, still with origin in 'Pl', but now with the specified threshold distance to 'P3',
(4) If 'P4' is inside the intersection of cones 'C12' and 'C13', then points 'P2' and 'P3 ' can be removed, and
(5) The subsequent points are inspected until the union intersection has collapsed.
[0044] The above referenced substeps (1) through (5), which together characterize step 14b in figure 2, can be understood by referring to the steps of the flowchart illustrated in figure 3.
[0045] In figure 3, refer to the flowchart of the Polyline Reduction software 14 which includes steps 14.1 through 14.9. In the first step 14.1, the Polyline Reduction algorithm 14 is initialized. In step 14.2, the point 'Pi' is added to the reduced polyline. In steps 14.3 and 14.5, the Polyline Reduction algorithm 14 (of figure 1) checks if the last point has been reached. In step 14.4, index variables 'j' and 'next_i' are introduced and initialized to the next point after T. In step 14.6, region 'Ci...j' is calculated. This can be calculated as the intersection between the previous region ' Ci ... j - 1 ' and cone ' Cij ' . If the polyline is in 2D, then ' Ci ... j ' is itself a cone and, in 3D, it can be approximated as a cone. Step 14.7 checks if the region 'Ci...j' has collapsed. Step 14.8 checks if 'Pj ' can be used as the next point in the reduced polyline (thus removing points 'Pi+1...Pi+2... Pj-I ')• Step 14.9 initiates 'i' to the next point in the reduced polyline ('next_i'), which is the result of steps 14.4 through 14.8. The Polyline Reduction algorithm 14 is then: O(k*N)= 0(N).
[0046] The Polyline Reduction computer software 14 can be used in connection with any software product that benefits from being able to reduce large poly-lines in real-time. A typical general scenario is that a polyline is to be represented in a canvas where a lot of interactive freedom is given to the scalability/zoom-level. The Polyline Reduction software 14 can be used to optimize well traces, well-log data, surface data, and contour lines. This is displayed and/or printed in many different 3D and 2D canvases. The Polyline Reduction software 14 can also be exploited to boost the performance of other mapping software products, for example: (1) GPS-mapping tools like those used in cars and boats, (2) maps available through the internet (e.g., for looking up addresses), and (3) applications adapted for presenting a weather forecast.
[0047] The above description of the 'Polyline Reduction software' being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the claimed method or system or program storage device or computer program, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.

Claims

WE CLAIM:
1. A method of generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance, said method comprising:
(a) receiving an original polyline and a threshold distance; and
(b) if 'Pk' is inside all of the cones 'Ci,i+l-Ci,i+2...Ci,k', removing points 'Pi+1..Pi+2..Pk-l ' thereby generating said reduced polyline.
2. The method of claim 1, wherein the removing step (b) comprises:
(bl) when an iteration starts at point Pl, at point P2, calculating an infinite cone C12.
3. The method of claim 2, wherein the removing step (b) further comprises:
(b2) if a point P3 is inside the infinite cone C12, removing point P2.
4. The method of claim 3, wherein the removing step (b) further comprises:
(b3) calculating a new infinite cone Cl 3 with origin in Pl and with a specified threshold distance to point P3.
5. The method of claim 4, wherein the removing step (b) further comprises:
(b4) if a point P4 is inside an intersection of cones C12 and C13, removing points P2 and P3.
6. The method of claim 5, wherein the removing step (b) further comprises:
(b5) repeating an inspection of subsequent points until a union intersection collapses.
7. A program storage device readable by a machine tangibly embodying a program of instructions executable by the machine to perform method steps for generating a reduced polyline, where 'Cj ,k' is an 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance, said method comprising:
(a) receiving an original polyline and a threshold distance; and
(b) if 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points 'Pi+1..Pi+2..Pk-l ' thereby generating said reduced polyline.
8. The program storage device of claim 7, wherein the removing step (b) comprises:
(bl) when an iteration starts at point Pl, at point P2, calculating an infinite cone C12.
9. The program storage device of claim 8, wherein the removing step (b) further comprises:
(b2) if a point P3 is inside the infinite cone C12, removing point P2.
10. The program storage device of claim 9, wherein the removing step (b) further comprises:
(b3) calculating a new infinite cone Cl 3 with origin in Pl and with a specified threshold distance to point P3.
11. The program storage device of claim 10, wherein the removing step (b) further comprises:
(b4) if a point P4 is inside an intersection of cones C 12 and C 13 , removing points P2 and P3.
12. The program storage device of claim 11, wherein the removing step (b) further comprises: (b5) repeating an inspection of subsequent points until a union intersection collapses.
13. A system adapted for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance, comprising:
first apparatus adapted for receiving an original polyline and a threshold distance; and
if 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', second apparatus adapted for removing points 'Pi+1..Pi+2..Pk-l ' thereby generating said reduced polyline.
14. The system of claim 13, wherein the second apparatus comprises:
when an iteration starts at point Pl, at point P2, apparatus adapted for calculating an infinite cone Cl 2.
15. The system of claim 14, wherein the second apparatus further comprises:
if a point P3 is inside the infinite cone C12, apparatus adapted for removing point P2.
16. The system of claim 15, wherein the second apparatus further comprises:
apparatus adapted for calculating a new infinite cone Cl 3 with origin in Pl and with a specified threshold distance to point P3.
17. The system of claim 16, wherein the second apparatus further comprises:
if a point P4 is inside an intersection of cones C 12 and C 13 , apparatus adapted for removing points P2 and P3.
18. The system of claim 17, wherein the second apparatus further comprises: apparatus adapted for repeating an inspection of subsequent points until a union intersection collapses.
19. A computer program adapted to be executed by a processor, said computer program, when executed by the processor, conducting a process for generating a reduced polyline, where 'Cj,k' is an 'infinite cone' with an origin in 'Pj' and a distance from 'Pk' equal to a provided threshold distance, said process comprising:
(a) receiving an original polyline and a threshold distance; and
(b) if 'Pk' is inside all of the cones 'Ci,i+l..Ci,i+2...Ci,k', removing points 'Pi+ 1..Pi+2..Pk-l ' thereby generating said reduced polyline.
20. The computer program of claim 19, wherein the removing step (b) comprises:
(bl) when an iteration starts at point Pl, at point P2, calculating an infinite cone C12.
21. The computer program of claim 20, wherein the removing step (b) further comprises:
(b2) if a point P3 is inside the infinite cone C 12, removing point P2.
22. The computer program of claim 21, wherein the removing step (b) further comprises:
(b3) calculating a new infinite cone C13 with origin in Pl and with a specified threshold distance to point P3.
23. The computer program of claim 22, wherein the removing step (b) further comprises:
(b4) if a point P4 is inside an intersection of cones Cl 2 and C 13, removing points P2 and P3.
24. The computer program of claim 23, wherein the removing step (b) further comprises:
(b5) repeating an inspection of subsequent points until a union intersection collapses.
PCT/US2006/029727 2005-08-01 2006-07-31 Method, system and program storage device for 2d and 3d polyline reduction in o(n) time Ceased WO2007016483A2 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
MX2008001539A MX2008001539A (en) 2005-08-01 2006-07-31 Method, system and program storage device for 2d and 3d polyline reduction in o(n) time.
GB0803815A GB2443994A (en) 2005-08-01 2006-07-31 Method, system and program storage device for 2d and 3d polyline reduction in o(n) time
NO20081058A NO20081058L (en) 2005-08-01 2008-02-28 Method, system and program storage equipment for 2D and 3D polygon reduction in 0 (N) time

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US70428305P 2005-08-01 2005-08-01
US60/704,283 2005-08-01

Publications (2)

Publication Number Publication Date
WO2007016483A2 true WO2007016483A2 (en) 2007-02-08
WO2007016483A3 WO2007016483A3 (en) 2007-04-26

Family

ID=37667556

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2006/029727 Ceased WO2007016483A2 (en) 2005-08-01 2006-07-31 Method, system and program storage device for 2d and 3d polyline reduction in o(n) time

Country Status (6)

Country Link
US (1) US20070024625A1 (en)
CN (1) CN101278319A (en)
GB (1) GB2443994A (en)
MX (1) MX2008001539A (en)
NO (1) NO20081058L (en)
WO (1) WO2007016483A2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6291738B2 (en) * 2013-07-25 2018-03-14 富士通株式会社 CIRCUIT BOARD, CIRCUIT BOARD MANUFACTURING METHOD, AND ELECTRONIC DEVICE

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FOWELL R A ET AL: "FASTER PLOTS BY FAN DATA-COMPRESSION" IEEE COMPUTER GRAPHICS AND APPLICATIONS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 9, no. 2, 1 March 1989 (1989-03-01), pages 58-66, XP000115876 ISSN: 0272-1716 *
SAFONOVA A ET AL: "Compressed piecewise-circular approximations of 3D curves" COMPUTER AIDED DESIGN, ELSEVIER PUBLISHERS BV., BARKING, GB, vol. 35, no. 6, May 2003 (2003-05), pages 533-547, XP004412446 ISSN: 0010-4485 *
SKLANSKY J ET AL: "Fast polygonal approximation of digitized curves" PATTERN RECOGNITION UK, vol. 12, no. 5, 1980, pages 327-331, XP002416941 ISSN: 0031-3203 *
VARADARAJAN K R ED - ASSOCIATION FOR COMPUTING MACHINERY: "APPROXIMATING MONOTONE POLYGONAL CURVES USING THE UNIFORM METRIC" PROCEEDINGS OF THE 12TH. ANNUAL SYMPOSIUM ON COMPUTATIONAL GEOMETRY. FCRC '96. PHILADELPHIA, MAY 24 - 26, 1996, PROCEEDINGS OF THE ANNUAL SYMPOSIUM ON COMPUTATIONAL GEOMETRY (FCRC), NEW YORK, ACM, US, vol. SYMP. 12, 24 May 1996 (1996-05-24), pages 311-318, XP000687965 ISBN: 0-89791-832-0 *
ZHU Y ET AL: "Optimal polygonal approximation of digitised curves" IEE PROCEEDINGS: VISION, IMAGE AND SIGNAL PROCESSING, INSTITUTION OF ELECTRICAL ENGINEERS, GB, vol. 144, no. 1, 28 February 1997 (1997-02-28), pages 8-14, XP006009028 ISSN: 1350-245X *

Also Published As

Publication number Publication date
GB0803815D0 (en) 2008-04-09
CN101278319A (en) 2008-10-01
WO2007016483A3 (en) 2007-04-26
GB2443994A (en) 2008-05-21
US20070024625A1 (en) 2007-02-01
MX2008001539A (en) 2008-04-07
NO20081058L (en) 2008-05-02

Similar Documents

Publication Publication Date Title
US6587592B2 (en) Generating replacement data values for an image region
US10186068B2 (en) Method, apparatus and system for rendering an image
US9741092B2 (en) Method and system for image resizing based on interpolation enhanced seam operations
US20240037693A1 (en) Tiling a primitive in a graphics processing system by testing subsets of tiles in a rendering space
US6198486B1 (en) Method of using a hybrid error metric for multi-resolution mesh generation
US8379058B2 (en) Methods and apparatuses to arbitrarily transform windows
US20030164838A1 (en) System and method for real-time texture synthesis using patch-based sampling
JP4776705B2 (en) Image processing apparatus and method
US10242482B2 (en) Tiling a primitive in a graphics processing system
CN115147579A (en) A block rendering mode graphics processing method and system for extending tile boundaries
US7558433B1 (en) Healing by texture synthesis in differential space
WO2007016483A2 (en) Method, system and program storage device for 2d and 3d polyline reduction in o(n) time
CN101739703A (en) Method and system for rasterizing triangle
CN112862729B (en) Remote sensing image denoising method based on characteristic curve guidance
CN1295657C (en) Method for determination of weighting factors for the colour calculation of a colour value for texels in a footprint
KR20220062879A (en) Method and apparatus for noise filtering of 3D point clouds using voxel connection
AU2007226809A1 (en) Efficient rendering of page descriptions containing grouped layers
JP4144290B2 (en) Image processing apparatus and image processing program
CN115063509A (en) Rasterization method and device based on DAA straight line representation and storage medium
Schretter A brush tool for interactive texture synthesis

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200680036270.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: MX/a/2008/001539

Country of ref document: MX

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 0803815

Country of ref document: GB

Kind code of ref document: A

Free format text: PCT FILING DATE = 20060731

WWE Wipo information: entry into national phase

Ref document number: 0803815.0

Country of ref document: GB

122 Ep: pct application non-entry in european phase

Ref document number: 06788979

Country of ref document: EP

Kind code of ref document: A2