Patents by Inventor Timo Oskari Aila

Timo Oskari Aila has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Publication number: 20170116760
    Abstract: A system, method, and computer program product for implementing a tree traversal operation for a tree data structure is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes and processing, via a tree traversal operation algorithm executed by a processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure. A first node of the tree data structure is associated with a first local coordinate system and a second node of the tree data structure is associated with a second local coordinate system, the first node being an ancestor of the second node, and the first local coordinate system and the second local coordinate system are both specified relative to a global coordinate system.
    Type: Application
    Filed: December 13, 2016
    Publication date: April 27, 2017
    Inventors: Samuli Matias Laine, Timo Oskari Aila, Tero Tapani Karras
  • Patent number: 9633469
    Abstract: A system, method, and computer program product are provided for conservative rasterization of primitives using an error term. In use, an edge equation is determined for each edge of a primitive, the edge equation having coefficients defining the edge of the primitive. Each edge of the primitive is shifted to enlarge the primitive by modifying coefficients of the edge equation defining the edge by an error term that is a predetermined amount. Pixels that intersect the primitive are then determined using the enlarged primitive.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: April 25, 2017
    Assignee: NVIDIA Corporation
    Inventors: Eric Brian Lum, Walter Robert Steiner, Henry Packard Moreton, Justin L. Cobb, Barry Nolan Rodgers, Yury Uralsky, Timo Oskari Aila, Tero Tapani Karras
  • Patent number: 9582607
    Abstract: A system, method, and computer program product for implementing a tree traversal operation for a tree data structure divided into compression blocks is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, pushing a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm, and, for each iteration of an outer loop of a tree traversal operation algorithm, popping a top element from the traversal stack data structure and processing, via an inner loop of the tree traversal operation algorithm, the compression block data structure that corresponds with the top element. The tree data structure may be encoded as a plurality of compression block data structures that each include data associated with a subset of nodes of the tree.
    Type: Grant
    Filed: January 5, 2015
    Date of Patent: February 28, 2017
    Assignee: NIVIDIA Corporation
    Inventors: Samuli Matias Laine, Timo Oskari Aila, Tero Tapani Karras
  • Patent number: 9569559
    Abstract: An apparatus, computer readable medium, and method are disclosed for performing an intersection query between a query beam and a target bounding volume. The target bounding volume may comprise an axis-aligned bounding box (AABB) associated with a bounding volume hierarchy (BVH) tree. An intersection query comprising beam information associated with the query beam and slab boundary information for a first dimension of a target bounding volume is received. Intersection parameter values are calculated for the first dimension based on the beam information and the slab boundary information and a slab intersection case is determined for the first dimension based on the beam information. A parametric variable range for the first dimension is assigned based on the slab intersection case and the intersection parameter values and it is determined whether the query beam intersects the target bounding volume based on at least the parametric variable range for the first dimension.
    Type: Grant
    Filed: March 18, 2015
    Date of Patent: February 14, 2017
    Assignee: NVIDIA Corporation
    Inventors: Tero Tapani Karras, Timo Oskari Aila, Samuli Matias Laine, John Erik Lindholm
  • Patent number: 9552664
    Abstract: A system, method, and computer program product for implementing a tree traversal operation for a tree data structure is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes and processing, via a tree traversal operation algorithm executed by a processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure. A first node of the tree data structure is associated with a first local coordinate system and a second node of the tree data structure is associated with a second local coordinate system, the first node being an ancestor of the second node, and the first local coordinate system and the second local coordinate system are both specified relative to a global coordinate system.
    Type: Grant
    Filed: January 5, 2015
    Date of Patent: January 24, 2017
    Assignee: NVIDIA Corporation
    Inventors: Samuli Matias Laine, Timo Oskari Aila, Tero Tapani Karras
  • Patent number: 9547932
    Abstract: A system, method, and computer program product are provided for splitting primitives. A plurality of primitives is received for a scene and a pre-determined plane that intersects the scene is identified. Bounding volumes of the plurality of primitives that are intersected by the pre-determined plane are split, where a bounding volume that encloses each intersected primitive of the plurality of primitives is split into a first bounding volume and a second bounding volume at an intersection of the bounding volume and the pre-determined plane.
    Type: Grant
    Filed: September 24, 2013
    Date of Patent: January 17, 2017
    Assignee: NVIDIA Corporation
    Inventors: Tero Tapani Karras, Timo Oskari Aila
  • Patent number: 9448803
    Abstract: A method and a system are provided for hardware scheduling of barrier instructions. Execution of a plurality of threads to process instructions of a program that includes a barrier instruction is initiated, and when each thread reaches the barrier instruction during execution of program, it is determined whether the thread participates in the barrier instruction. The threads that participate in the barrier instruction are then serially executed to process one or more instructions of the program that follow the barrier instruction. A method and system are also provided for impatient scheduling of barrier instructions. When a portion of the threads that is greater than a minimum number of threads and less than all of the threads in the plurality of threads reaches the barrier instruction each of the threads in the portion is serially executed to process one or more instructions of the program that follow the barrier instruction.
    Type: Grant
    Filed: March 11, 2013
    Date of Patent: September 20, 2016
    Assignee: NVIDIA Corporation
    Inventors: John Erik Lindholm, Tero Tapani Karras, Timo Oskari Aila, Samuli Matias Laine
  • Patent number: 9355492
    Abstract: A system, method, and computer program product are provided for utilizing a wavefront path tracer. In use, a set of light transport paths associated with a scene is identified. Additionally, parallel path tracing is performed, utilizing a wavefront path tracer.
    Type: Grant
    Filed: December 5, 2013
    Date of Patent: May 31, 2016
    Assignee: NVIDIA Corporation
    Inventors: Marc Droske, Daniel Johannes Seibert, Stefan Radig, Alexander Keller, Julia Floetotto, Samuli Matias Laine, Tero Tapani Karras, Timo Oskari Aila, Leonhard Gruenschloss
  • Publication number: 20160071313
    Abstract: A system, method, and computer program product for implementing a tree traversal operation for a tree data structure is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes and processing, via a tree traversal operation algorithm executed by a processor, one or more nodes of the tree data structure by intersecting the one or more nodes of the tree data structure with a query data structure. A first node of the tree data structure is associated with a first local coordinate system and a second node of the tree data structure is associated with a second local coordinate system, the first node being an ancestor of the second node, and the first local coordinate system and the second local coordinate system are both specified relative to a global coordinate system.
    Type: Application
    Filed: January 5, 2015
    Publication date: March 10, 2016
    Inventors: Samuli Matias Laine, Timo Oskari Aila, Tero Tapani Karras
  • Publication number: 20160071310
    Abstract: An apparatus, computer readable medium, and method are disclosed for performing an intersection query between a query beam and a target bounding volume. The target bounding volume may comprise an axis-aligned bounding box (AABB) associated with a bounding volume hierarchy (BVH) tree. An intersection query comprising beam information associated with the query beam and slab boundary information for a first dimension of a target bounding volume is received. Intersection parameter values are calculated for the first dimension based on the beam information and the slab boundary information and a slab intersection case is determined for the first dimension based on the beam information. A parametric variable range for the first dimension is assigned based on the slab intersection case and the intersection parameter values and it is determined whether the query beam intersects the target bounding volume based on at least the parametric variable range for the first dimension.
    Type: Application
    Filed: March 18, 2015
    Publication date: March 10, 2016
    Inventors: Tero Tapani Karras, Timo Oskari Aila, Samuli Matias Laine, John Erik Lindholm
  • Publication number: 20160070820
    Abstract: A system, computer readable medium, and method are disclosed for performing a tree traversal operation utilizing a short stack data structure. The method includes the steps of executing, via a processor, a tree traversal operation for a tree data structure utilizing a short stack data structure, determining that the short stack data structure is empty after testing a current node in the tree traversal operation, and executing, via the processor, a back-tracking operation for the current node to identify a new node in the tree data structure to continue the tree traversal operation. The processor may be a parallel processing unit that includes one or more tree traversal units, which implement the tree traversal operation in hardware, software, or a combination of hardware and software.
    Type: Application
    Filed: December 8, 2014
    Publication date: March 10, 2016
    Inventors: Samuli Matias Laine, Timo Oskari Aila
  • Publication number: 20160071312
    Abstract: A system, method, and computer program product for implementing a tree traversal operation for a tree data structure divided into compression blocks is disclosed. The method includes the steps of receiving at least a portion of a tree data structure that represents a tree having a plurality of nodes, pushing a root node of the tree data structure onto a traversal stack data structure associated with an outer loop of a tree traversal operation algorithm, and, for each iteration of an outer loop of a tree traversal operation algorithm, popping a top element from the traversal stack data structure and processing, via an inner loop of the tree traversal operation algorithm, the compression block data structure that corresponds with the top element. The tree data structure may be encoded as a plurality of compression block data structures that each include data associated with a subset of nodes of the tree.
    Type: Application
    Filed: January 5, 2015
    Publication date: March 10, 2016
    Inventors: Samuli Matias Laine, Timo Oskari Aila, Tero Tapani Karras
  • Publication number: 20160070767
    Abstract: A system, computer readable medium, and method are disclosed for performing a tree traversal operation. The method includes the steps of executing, via a processor, a tree traversal operation for a tree data structure, receiving a transformation node that includes transformation data during the tree traversal operation, and transforming spatial data included in a query data structure based on the transformation data. Each node in the tree data structure is classified according to one of a plurality of nodesets, the plurality of nodesets corresponding to a plurality of local coordinate systems. The processor may be a parallel processing unit that includes one or more tree traversal units, which implement the tree traversal operation in hardware, software, or a combination of hardware and software.
    Type: Application
    Filed: April 27, 2015
    Publication date: March 10, 2016
    Inventors: Tero Tapani Karras, Samuli Matias Laine, Timo Oskari Aila
  • Publication number: 20160071234
    Abstract: An apparatus, computer readable medium, and method are disclosed for decompressing compressed geometric data stored in a lossless compression format. The compressed geometric data resides within a compression block sized according to a system cache line. An indirection technique maps a global identifier value in a linear identifier space to corresponding variable rate compressed data. The apparatus may include decompression circuitry within a graphics processing unit configured to perform ray-tracing.
    Type: Application
    Filed: June 11, 2015
    Publication date: March 10, 2016
    Inventors: Jaakko T. Lehtinen, Timo Oskari Aila, Tero Tapani Karras, Alexander Keller, Nikolaus Binder, Carsten Alexander Waechter, Samuli Matias Laine
  • Patent number: 9176736
    Abstract: A system includes a processor having an instruction register for storing an instruction having a predefined opcode, a predicate register for storing a predicate condition to select an output register for a result of the instruction, a first output register, and a second output register. The processor further includes processor circuitry operable to execute the instruction to produce a result, and processor circuitry operable to store the result of the instruction in the first output register if the predicate condition to select the output is true, and to store the second output register if the predicate condition to select the output is false. A single instruction is used to produce the result, and to store the result of the instruction.
    Type: Grant
    Filed: September 5, 2013
    Date of Patent: November 3, 2015
    Assignee: NVIDIA Corporation
    Inventors: Timo Oskari Aila, Samuli Matias Laine
  • Patent number: 9171394
    Abstract: Method including casting a first plurality of rays towards an original 3-D scene comprising objects with object surfaces. Method also includes constructing a simplified representation of the original 3-D scene and adjusting the simplified representation to be consistent with the original 3-D scene. Simplified representation is adjusted by using known rays and object surface intersections obtained from the casting, to produce an adjusted simplified representation.
    Type: Grant
    Filed: July 19, 2012
    Date of Patent: October 27, 2015
    Assignee: NVIDIA CORPORATION
    Inventors: Timo Oskari Aila, Jaakko Tapani Lehtinen, Samuli Matias Laine
  • Patent number: 9159158
    Abstract: A method including casting a ray from a point toward a point-based three dimensional scene. The scene includes memory resident objects with object surfaces and a first splat and a second splat associated with the object surfaces. The first splat and the second splat have a position and a normal vector. The method also includes forming an event line through the first splat and the second splat. The event line intersects the first splat and the second splat. The method further includes determining whether a visibility conflict exists between the first splat and the second splat. The method also includes separating the first splat and the second splat to different object surfaces if the visibility conflict exists, otherwise merging the first splat and the second splat to a single object surface.
    Type: Grant
    Filed: July 19, 2012
    Date of Patent: October 13, 2015
    Assignee: NVIDIA CORPORATION
    Inventors: Timo Oskari Aila, Jaakko Tapani Lehtinen, Samuli Matias Laine
  • Publication number: 20140365529
    Abstract: A system, method, and computer program product are provided for modifying a hierarchical tree data structure. An initial hierarchical tree data structure is received, and treelets of node neighborhoods are formed. A processor restructures the treelets using agglomerative clustering to produce an optimized hierarchical tree data structure that includes at least one restructured treelet, where each restructured treelet includes at least one internal node.
    Type: Application
    Filed: October 28, 2013
    Publication date: December 11, 2014
    Applicant: NVIDIA Corporation
    Inventors: Timo Oskari Aila, Tero Tapani Karras
  • Publication number: 20140365532
    Abstract: A system, method, and computer program product are provided for modifying a hierarchical tree data structure. An initial hierarchical tree data structure is received and treelets of node neighborhoods in the initial hierarchical tree data structure are formed. Each treelet includes n leaf nodes and n?1 internal nodes. The treelets are restructured, by a processor, to produce an optimized hierarchical tree data structure.
    Type: Application
    Filed: August 19, 2013
    Publication date: December 11, 2014
    Applicant: NVIDIA Corporation
    Inventors: Tero Tapani Karras, Timo Oskari Aila
  • Publication number: 20140362074
    Abstract: A system, method, and computer program product are provided for splitting primitives. A plurality of primitives is received for a scene and a pre-determined plane that intersects the scene is identified. Bounding volumes of the plurality of primitives that are intersected by the pre-determined plane are split, where a bounding volume that encloses each intersected primitive of the plurality of primitives is split into a first bounding volume and a second bounding volume at an intersection of the bounding volume and the pre-determined plane.
    Type: Application
    Filed: September 24, 2013
    Publication date: December 11, 2014
    Applicant: NVIDIA Corporation
    Inventors: Tero Tapani Karras, Timo Oskari Aila