Patents by Inventor Ryan R. Salsbury

Ryan R. Salsbury 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).

  • Patent number: 8854369
    Abstract: For ray tracing scenes composed of primitives, systems and methods can traverse rays through an acceleration structure. The traversal can be implemented by concurrently testing a plurality of nodes of the acceleration structure for intersection with a sequence of one or more rays. Such testing can occur in a plurality of test cells. Leaf nodes of the acceleration structure can bound primitives, and a sequence primitives can be tested concurrently for intersection in the test cells against a plurality of rays that have intersected a given leaf node. Intersection testing of a particular leaf node can be deferred until a sufficient quantity of rays have been collected for that node.
    Type: Grant
    Filed: June 18, 2012
    Date of Patent: October 7, 2014
    Assignee: Imagination Technologies, Limited
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury
  • Publication number: 20140232720
    Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiporcessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.
    Type: Application
    Filed: December 28, 2013
    Publication date: August 21, 2014
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke T. Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven J. Clohset
  • Patent number: 8736610
    Abstract: For ray tracing scenes composed of primitives, systems and methods-accelerate ray/primitive intersection identification by testing rays against elements of geometry acceleration data (GAD) in a parallelized intersection testing resource. Groups of rays can be described as shared attribute information and individual ray data for ray data transfer. A host hosts shading and/or management processes can control the testing resource and adapting the ray tracing. The GAD elements can be arranged in a graph, and rays collected into collections based on whether a ray intersects a given element. When a collection is deemed ready for further testing, it is tested for intersection with GAD elements connected, in the graph, to the given element. The graph can be hierarchical such that rays of a given collection are tested against children of the GAD element associated with the given collection.
    Type: Grant
    Filed: August 5, 2012
    Date of Patent: May 27, 2014
    Assignee: Imagination Technologies, Limited
    Inventors: James Alexander McCombe, Luke Tilman Peterson, Ryan R. Salsbury
  • Publication number: 20140078145
    Abstract: Aspects include API interfaces for interfacing shaders with other components and/or code modules that provide ray tracing functionality. For example, API calls may allow direct contribution of light energy to a buffer for an identified pixel, and allow emission of new rays for intersection testing alone or in bundles. The API also can provide a mechanism for associating arbitrary data with ray definition data defining a ray to be tested through a shader using the emit ray call. The arbitrary data is provided to a shader associated with an object that is identified subsequently as having been intersected by the ray. The data can include code, or a pointer to code, that can be used by or run after the shader. The data also can be propagated through a series of shaders, and associated with rays instantiated in each shader. Recursive shaders can be recompiled as non-recursive shaders interfacing with API semantics according to the description.
    Type: Application
    Filed: November 22, 2013
    Publication date: March 20, 2014
    Applicant: CAUSTIC GRAPHICS, INC.
    Inventors: James Alexander McCombe, Luke T. Peterson, Ryan R. Salsbury, Sean Matthew Gies
  • Patent number: 8674987
    Abstract: Aspects can be for ray tracing of 3-D scenes, and include dynamically controlling a population of rays being stored in a memory, to keep the population within a target, a memory footprint or other resource usage specification. An example includes controlling the population by examining indicia associated with rays returning from intersection testing, to be shaded, the indicia correlated with behavior of shaders to be run for those rays, such that population control selects, or reorders rays for shading, to prioritize shading of rays whose shaders are expected to produce fewer rays. The indicia can include a respective weight for each ray. In an example, analyzer modules examine hints associated with shaders bound to intersected primitives. Population control aspects can influence ray diversity in memory, including encouraging a varying diversity pattern as rendering of a given scene or frame progresses, based on system resource indicia, rendering metrics and so on.
    Type: Grant
    Filed: April 30, 2010
    Date of Patent: March 18, 2014
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies, Steven John Clohset
  • Publication number: 20140071123
    Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Responsibility for executing these operations can be distributed among different sets of computation units. The sets of computation units each can execute a set of instructions on a parallelized set of input data elements and produce results. These results can be that the data elements can be categorized into different subsets, where each subset requires different processing as a next step. The data elements of these different subsets can be coalesced so that they are contiguous in a results set. The results set can be used to schedule additional computation, and if there are empty locations of a scheduling vector (after accounting for the members of a given subset), then those empty locations can be filled with other data elements that require the same further processing as that subset.
    Type: Application
    Filed: August 5, 2013
    Publication date: March 13, 2014
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell
  • Patent number: 8619079
    Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiprocessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.
    Type: Grant
    Filed: September 11, 2012
    Date of Patent: December 31, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen John Clohset
  • Patent number: 8615042
    Abstract: Methods for pre-processing video sequences prior to compression to provide data reduction of the video sequence. Also, after compression of the pre-processed video sequence, the bit rate of the pre-processed and compressed video sequence will be lower than the bit rate of the video sequence after compression but without pre-processing. Pre-processing may include spatial anisotropic diffusion filtering such as Perona-Malik filtering, Fallah-Ford filtering, or omni-directional filtering that extends Perona-Malik filtering to perform filtering in at least one diagonal direction. Pre-processing may also include performing filtering differently on a foreground region than on a background region of a video frame. This method includes identifying pixel locations having pixel values matching characteristics of human skin and determining a bounding shape for each contiguous grouping of matching pixel locations.
    Type: Grant
    Filed: April 21, 2008
    Date of Patent: December 24, 2013
    Assignee: Apple Inc.
    Inventors: Adriana Dumitras, James Oliver Normile, Ryan R. Salsbury
  • Patent number: 8593458
    Abstract: Aspects include API interfaces for interfacing shaders with other components and/or code modules that provide ray tracing functionality. For example, API calls may allow direct contribution of light energy to a buffer for an identified pixel, and allow emission of new rays for intersection testing alone or in bundles. The API also can provide a mechanism for associating arbitrary data with ray definition data defining a ray to be tested through a shader using the emit ray call. The arbitrary data is provided to a shader associated with an object that is identified subsequently as having been intersected by the ray. The data can include code, or a pointer to code, that can be used by or run after the shader. The data also can be propagated through a series of shaders, and associated with rays instantiated in each shader. Recursive shaders can be recompiled as non-recursive shaders interfacing with API semantics according to the description.
    Type: Grant
    Filed: September 21, 2009
    Date of Patent: November 26, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies
  • Patent number: 8502820
    Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Scheduling of graphics operations for concurrent execution on a computer may increase throughput. In aspects herein, constituent graphics operations are scheduled in groups, having members selected according to disclosed aspects. Processing for specific graphics operations in a group can be deferred if all the operations in the group cannot be further tested concurrently. Graphics operations that have been deferred are recombined into two or more different groups and ultimately complete processing, through a required number of iterations of such process. In one application, the performance of the graphics operations perform a search in which respective 1:1 matches between different types of geometric shapes involved in the 3-D scene are identified.
    Type: Grant
    Filed: June 16, 2012
    Date of Patent: August 6, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell
  • Patent number: 8482561
    Abstract: Aspects include API interfaces for interfacing shaders with other components and/or code modules that provide ray tracing functionality. For example, API calls may allow direct contribution of light energy to a buffer for an identified pixel, and allow emission of new rays for intersection testing alone or in bundles. The API also can provide a mechanism for associating arbitrary data with ray definition data defining a ray to be tested through a shader using the emit ray call. The arbitrary data is provided to a shader associated with an object that is identified subsequently as having been intersected by the ray. The data can include code, or a pointer to code, that can be used by or run after the shader. The data also can be propagated through a series of shaders, and associated with rays instantiated in each shader.
    Type: Grant
    Filed: September 21, 2009
    Date of Patent: July 9, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Luke Tilman Peterson, Ryan R. Salsbury, Sean Matthew Gies
  • Publication number: 20130147803
    Abstract: For ray tracing scenes composed of primitives, systems and methods can traverse rays through an acceleration structure. The traversal can be implemented by concurrently testing a plurality of nodes of the acceleration structure for intersection with a sequence of one or more rays. Such testing can occur in a plurality of test cells. Leaf nodes of the acceleration structure can bound primitives, and a sequence primitives can be tested concurrently for intersection in the test cells against a plurality of rays that have intersected a given leaf node. Intersection testing of a particular leaf node can be deferred until a sufficient quantity of rays have been collected for that node.
    Type: Application
    Filed: June 18, 2012
    Publication date: June 13, 2013
    Applicant: Caustic Graphics Inc.
    Inventors: Luke Tilman PETERSON, James Alexander McCOMBE, Ryan R. SALSBURY
  • Patent number: 8421801
    Abstract: Systems, methods, and computer readable media embodying such methods provide for allowing specification of per-ray clipping information that defines a sub-portion of a 3-D scene in which the ray should be traced. The clipping information can be specified as a clip distance from a ray origin, as an end value of a parametric ray definition, or alternatively the clipping information can be built into a definition of the ray to be traced. The clipping information can be used to check whether portions of an acceleration structure need to be traversed, as well as whether primitives should be tested for intersection. Other aspects include specifying a default object that can be returned as intersected when no primitive was intersected within the sub-portion defined for testing. Further aspects include allowing provision of flags interpretable by an intersection testing resource that control what the intersection testing resource does, and/or what information it reports after conclusion of testing of a ray.
    Type: Grant
    Filed: September 8, 2009
    Date of Patent: April 16, 2013
    Assignee: Caustic Graphics, Inc.
    Inventors: Ryan R. Salsbury, James Alexander McCombe, Stephen Purcell, Luke Tilman Peterson
  • Publication number: 20130050213
    Abstract: For ray tracing scenes composed of primitives, systems and methods—accelerate ray/primitive intersection identification by testing rays against elements of geometry acceleration data (GAD) in a parallelized intersection testing resource. Groups of rays can be described as shared attribute information and individual ray data for ray data transfer. A host hosts shading and/or management processes can control the testing resource and adapting the ray tracing. The GAD elements can be arranged in a graph, and rays collected into collections based on whether a ray intersects a given element. When a collection is deemed ready for further testing, it is tested for intersection with GAD elements connected, in the graph, to the given element. The graph can be hierarchical such that rays of a given collection are tested against children of the GAD element associated with the given collection.
    Type: Application
    Filed: August 5, 2012
    Publication date: February 28, 2013
    Applicant: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Ryan R. Salsbury, Luke Tilman Peterson
  • Publication number: 20130002672
    Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiprocessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.
    Type: Application
    Filed: September 11, 2012
    Publication date: January 3, 2013
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven John Clohset
  • Patent number: 8300049
    Abstract: Aspects comprise systems implementing 3-D graphics processing functionality in a multiprocessing system. Control flow structures are used in scheduling instances of computation in the multiprocessing system, where different points in the control flow structure serve as points where deferral of some instances of computation can be performed in favor of scheduling other instances of computation. In some examples, the control flow structure identifies particular tasks, such as intersection testing of a particular portion of an acceleration structure, and a particular element of shading code. In some examples, the aspects are used in 3-D graphics processing systems that can perform ray tracing based rendering.
    Type: Grant
    Filed: September 9, 2011
    Date of Patent: October 30, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Steven John Clohset
  • Publication number: 20120249553
    Abstract: Ray tracing, and more generally, graphics operations taking place in a 3-D scene, involve a plurality of constituent graphics operations. Scheduling of graphics operations for concurrent execution on a computer may increase throughput. In aspects herein, constituent graphics operations are scheduled in groups, having members selected according to disclosed aspects. Processing for specific graphics operations in a group can be deferred if all the operations in the group cannot be further tested concurrently. Graphics operations that have been deferred are recombined into two or more different groups and ultimately complete processing, through a required number of iterations of such process. In one application, the performance of the graphics operations perform a search in which respective 1:1 matches between different types of geometric shapes involved in the 3-D scene are identified.
    Type: Application
    Filed: June 16, 2012
    Publication date: October 4, 2012
    Applicant: Caustic Graphics, Inc.
    Inventors: Luke Tilman Peterson, James Alexander McCombe, Ryan R. Salsbury, Stephen Purcell
  • Patent number: 8237711
    Abstract: For ray tracing scenes composed of primitives, systems and methods accelerate ray/primitive intersection identification by testing rays against elements of geometry acceleration data (GAD) in a parallelized intersection testing resource. Groups of rays can be described as shared attribute information and individual ray data for efficient ray data transfer between a host processor and the testing resource. The host processor also hosts shading and/or management processes controlling the testing resource and adapting the ray tracing, as necessary or desirable, to meet criteria, while reducing degradation of rendering quality. The GAD elements can be arranged in a graph, and rays can be collected into collections based on whether a ray intersects a given element. When a collection is deemed ready for further testing, it is tested for intersection with GAD elements connected, in the graph, to the given element.
    Type: Grant
    Filed: November 19, 2007
    Date of Patent: August 7, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: James Alexander McCombe, Ryan R. Salsbury, Luke Tilman Peterson
  • Patent number: 8217935
    Abstract: Systems and methods include high throughput and/or parallelized ray/geometric shape intersection testing using intersection testing resources accepting and operating with block floating point data. Block floating point data sacrifices precision of scene location in ways that maintain precision where more beneficial, and allow reduced precision where beneficial. In particular, rays, acceleration structures, and primitives can be represented in a variety of block floating point formats, such that storage requirements for storing such data can be reduced. Hardware accelerated intersection testing can be provided with reduced sized math units, with reduced routing requirements. A driver for hardware accelerators can maintain full-precision versions of rays and primitives to allow reduced communication requirements for high throughput intersection testing in loosely coupled systems. Embodiments also can include using BFP formatted data in programmable test cells or more general purpose processing elements.
    Type: Grant
    Filed: March 31, 2008
    Date of Patent: July 10, 2012
    Assignee: Caustic Graphics, Inc.
    Inventors: Stephen Purcell, Ryan R. Salsbury, James Alexander McCombe, Sean Matthew Gies
  • Patent number: 8208565
    Abstract: Methods for pre-processing video sequences prior to compression to provide data reduction of the video sequence. In addition, after compression of the pre-processed video sequence, the bit rate of the pre-processed and compressed video sequence will be lower than the bit rate of the video sequence after compression but without pre-processing. A temporal filtering method is provided for pre-processing of video frames of a video sequence. In the method, pixel values of successive frames are filtered when the difference in the pixel values between the successive frames are within high and low threshold values. The high and low threshold values are determined adaptively depending on the illumination level of a video frame to provide variability of filtering strength depending on the illumination levels of a video frame.
    Type: Grant
    Filed: June 16, 2008
    Date of Patent: June 26, 2012
    Assignee: Apple Inc.
    Inventors: Adriana Dumitras, James Oliver Normile, Ryan R. Salsbury