Patents by Inventor George H. J. Shaw

George H. J. Shaw 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: 8117329
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Grant
    Filed: August 2, 2005
    Date of Patent: February 14, 2012
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 7869440
    Abstract: Streaming data is processed through one or more pipes of connected modules including mixers and/or splitters. The data is carried in composite physically allocated frames having virtual subframes associated with different ones of the splitters, mixers, and other transform modules. Nesting trees and pipe control tables represent the structure of the pipes. A frame allocator is assigned to a particular module in a pipe. Rather than issuing a control transaction to all modules when any one of them completes an operation upon its source data, a control manager requests a module to begin its operation only when all of its input subframes have become available. Frame control tables record when any module has completed an operation, and a pipe control table lists which modules provide data to which other modules.
    Type: Grant
    Filed: August 16, 2005
    Date of Patent: January 11, 2011
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 7496677
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Grant
    Filed: June 7, 2004
    Date of Patent: February 24, 2009
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 7222182
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Grant
    Filed: June 7, 2004
    Date of Patent: May 22, 2007
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 7007096
    Abstract: Streaming data is processed through one or more pipes of connected modules including mixers and/or splitters. The data is carried in composite physically allocated frames having virtual subframes associated with different ones of the splitters, mixers, and other transform modules. Nesting trees and pipe control tables represent the structure of the pipes. A frame allocator is assigned to a particular module in a pipe. Rather than issuing a control transaction to all modules when any one of them completes an operation upon its source data, a control manager requests a module to begin its operation only when all of its input subframes have become available. Frame control tables record when any module has completed an operation, and a pipe control table lists which modules provide data to which other modules.
    Type: Grant
    Filed: May 12, 1999
    Date of Patent: February 28, 2006
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 7000022
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Grant
    Filed: June 7, 2004
    Date of Patent: February 14, 2006
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Publication number: 20040221288
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Application
    Filed: June 7, 2004
    Publication date: November 4, 2004
    Applicant: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H.J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Publication number: 20040221040
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Application
    Filed: June 7, 2004
    Publication date: November 4, 2004
    Applicant: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 6757904
    Abstract: A method and system for communicating between operating systems using an interface that provides an abstraction layer of one of the operating systems. At least one channel is created that allows messages and data packets to be transferred between the operating systems without converting the data into an operating system's format before sending the data to another operating system. The interface provides commands for each of the operating systems to use to communicate with each other and provides the flexibility to create platform specific extensions to the provided commands. The interface also allows a first operating system to demand load devices on a second operating system by extending demand load functionality of the second operating system to the first operating system. A second channel is created that is used to only send data and data related control messages on the channel, eliminating the need to distinguish between general control messages and data specific control message.
    Type: Grant
    Filed: March 10, 2000
    Date of Patent: June 29, 2004
    Assignee: Microsoft Corporation
    Inventors: Bryan A. Woodruff, George H. J. Shaw
  • Patent number: 6748440
    Abstract: Frame-based streaming data flows through a graph of multiple interconnected processing modules. The modules have a set of performance parameters whose values specify the sensitivity of each module to the selection of certain resources of a system. A user specifies overall goals for an actual graph for processing a given type of data for a particular purpose. A flow manager constructs the graph as a sequence of module interconnections required for processing the data, in response to the parameter values of the individual modules in the graph in view of the goals for the overall graph as a whole, and divides it into pipes each having one or more modules and each assigned to a memory manager for handling data frames in the pipe.
    Type: Grant
    Filed: May 12, 1999
    Date of Patent: June 8, 2004
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff
  • Patent number: 6658477
    Abstract: Frame-based streaming data is controlled through a reconfigurable graph of processing modules. A control mechanism employs a set of components that are used and combined among themselves to implement control functions at the control pins of processing modules. The components include a source pin and a sink pin for connecting modules together, a queue for making data frames available to module functions, a data-frame requester, and a splitter for handling graph branches. When modules are assembled into a graph, a control manager implements their control operations as combinations of the above components, then examines all of the components in a graph control structure to determine whether any can be removed as unnecessary to the overall operation of the structure. If so, the remaining components are connected directly to each other. When the graph is played, control packets traverse the simplified structure, carrying with them associated frames of data for processing by the modules.
    Type: Grant
    Filed: May 12, 1999
    Date of Patent: December 2, 2003
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, Dale A. Sather, George H. J. Shaw, Bryan A. Woodruff
  • Patent number: 6643712
    Abstract: A method is provided to overcome excess code development associated with developing device drivers that are hierarchically related and provides standardization to driver developers by listing in the private area of a device object types of file objects, including specific IRP handlers associated therewith, that may be created under that device object to thereby provide a device object context. In like manner, each file object has listed in the private area types of other file objects, again including specific IRP handlers associated therewith, that may be created under that particular file object to thereby provide a file object context. The default handler for a driver object points to a multiplexing function that processes an incoming IRP based on the available context information to “route” the IRP to the appropriate handler. Each file object has reference to a plurality of dispatch function references that are used by the IRP handlers to fulfill a particular request.
    Type: Grant
    Filed: January 20, 2000
    Date of Patent: November 4, 2003
    Assignee: Microsoft Corporation
    Inventors: George H. J. Shaw, Bryan A. Woodruff
  • Patent number: 6601112
    Abstract: A method and computer program product for overcoming the inefficiencies associated with inter-buffer data transfers between separate processing components such as kernel mode drivers that are chained together. Provided is a standard mechanism for allocating and managing data buffers needed for processing data in a system, wherein multiple drivers are chained together using a standardized connection method in the connection pin instances. Drivers having different buffer requirements and capabilities may be queried and matched for easy data transition between the chained drivers requiring the least number of buffers and, hence the least expensive yet most efficient inter-buffer data transfer. Examples of buffer requirements include previous frame storage for adaptive processing, byte alignment, frame size, outstanding frames allowed, etc. The buffer requirements of an input connection pin instance may be queried by an application initializing the chained drivers.
    Type: Grant
    Filed: April 28, 1999
    Date of Patent: July 29, 2003
    Assignee: Microsoft Corporation
    Inventors: Thomas J. O'Rourke, George H. J. Shaw, Bryan A. Woodruff
  • Patent number: 6594773
    Abstract: Frame based streaming data is controlled through a reconfigurable graph of processing modules. A client specifies overall goals for the graph. A graph manager constructs the graph as a sequence of interconnected modules for processing the data, in response to the capabilities of modules within the graph and the overall goals, and divides the graph into time domains each having one or more modules, pipes each having one or more modules, and a control mechanism is used that eliminates components unnecessary to the overall operation of the graph and that provides synchronization between time domains using time translation tables or timing correlation tables. The graph manager adaptively controls graphs that have a low latency requirement.
    Type: Grant
    Filed: February 23, 2000
    Date of Patent: July 15, 2003
    Assignee: Microsoft Corporation
    Inventors: Rafael S. Lisitsa, George H. J. Shaw, Dale A. Sather, Bryan A. Woodruff, Costin Hagiu
  • Patent number: 6212574
    Abstract: This invention involves user mode proxy of kernel mode operations in a computer operating system. The broad contours of the invention allow drivers operating in the kernel mode of an operating system to be proxied by a corresponding user mode object. A user mode process wishing to communicate with or manipulate the kernel mode driver may perform such communication or manipulation by communicating with or manipulating the corresponding user mode proxy. The present invention has particular applicability to emerging operating systems which allow kernel mode drivers to be interconnected in order to create a processing stream in the kernel where data is passed from kernel mode driver to kernel mode driver without transitioning to user mode. User mode proxy of such kernel mode drivers allows user mode processes to manipulate such kernel mode drivers using familiar user mode protocols without the necessity of learning new kernel mode protocols.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: April 3, 2001
    Assignee: Microsoft Corporation
    Inventors: Thomas J. O'Rourke, George H. J. Shaw, Bryan A. Woodruff
  • Patent number: 6209041
    Abstract: A method and computer program product for overcoming the inefficiencies associated with inter-buffer data transfers between separate processing components such as kernel mode drivers that are chained together. Provided is a standard mechanism for allocating and managing data buffers needed for processing data in a system, wherein multiple drivers are chained together using a standardized connection method in the connection pin instances. Drivers having different buffer requirements and capabilities may be queried and matched for easy data transition between the chained drivers requiring the least number of buffers and, hence the least expensive yet most efficient inter-buffer data transfer. Examples of buffer requirements include previous frame storage for adaptive processing, byte alignment, frame size, outstanding frames allowed, etc. The buffer requirements of an input connection pin instance may be queried by an application initializing the chained drivers.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: March 27, 2001
    Assignee: Microsoft Corporation
    Inventors: George H. J. Shaw, Bryan A. Woodruff, Thomas J. O'Rourke
  • Patent number: 6205492
    Abstract: A method and computer program product are presented that overcome the inefficiencies in user mode processing of multimedia data by allowing an application running as a user mode process simply to start and connect multiple blocks of kernel mode functionality in the form of drivers or filters (separate logical blocks of driver executable code). Once the kernel mode filters are set up and connected, the user mode application need not be active until notified by the filters. Such notification may occur at the end of processing or at any relevant event chosen by the application as part of the filter initiation and set up. Furthermore, a user mode application may query a kernel mode filter or driver of its capabilities and requirements so that it may properly make the connections between the different filters chained together to process a stream of data and request appropriate notifications. These connection may represent actual driver to driver data exchange, or remote connections.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: March 20, 2001
    Assignee: Microsoft Corporation
    Inventors: George H. J. Shaw, Bryan A. Woodruff, Thomas J. O'Rourke
  • Patent number: 6016515
    Abstract: A method, computer program product, and data structure is provided overcome excess code development associated with developing device drivers that are hierarchically related and provides standardization to driver developers by listing in the private area of a device object types of file objects, including specific IRP handlers associated therewith, that may be created under that device object to thereby provide a device object context. In like manner, each file object has listed in the private area types of other file objects, again including specific IRP handlers associated therewith, that may be created under that particular file object to thereby provide a file object context. The default handler for a driver object points to a multiplexing function that will process an incoming IRP based on the available context information to "route" the IRP to the appropriate handler.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: January 18, 2000
    Assignee: Microsoft Corporation
    Inventors: George H. J. Shaw, Bryan A. Woodruff
  • Patent number: 5815689
    Abstract: A method and computer program product for synchronizing processing between two or more data streams (e.g., video and sound input) and for rate matching between two different hardware clocks that may drift with respect to one another (e.g., an originating clock represented in a timestamped data stream versus a clock actually rendering the data) in a system of interconnected software drivers running in kernel mode. The present invention overcomes the coordination complexity and inaccuracies in the prior art by providing a clocking mechanism in a system wherein multiple drivers having input and output connection pin instances are chained together. The clocking mechanism synchronizes between data streams by providing a master clock on an input pin instance of a driver that is used to synchronize with other input pin instances on other drivers and "slave" clocks.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: September 29, 1998
    Assignee: Microsoft Corporation
    Inventors: George H. J. Shaw, Bryan A. Woodruff, Thomas J. O'Rourke