Patents by Inventor Ashraf Michail

Ashraf Michail 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: 10049437
    Abstract: ClearType resolution recovery resampling of source content is performed as the source content is transformed from a source presentation format to a destination presentation format by at least distinguishing between pixels of a bitmap corresponding to the source content that are ClearType pixels and pixels of the same bitmap that are non-ClearType pixels. Identification of ClearType pixels is performed by identifying Alpha values of pixels that are less than 1, by identifying high frequency color fringing of pixels and/or by explicit declarations in the bitmap. The bitmap is resampled by applying transforms, such as convolution filters, in selective and discriminating ways, such that, for example, the ClearType pixels of the bitmap are resampled/transformed on a subpixel granularity and the non-ClearType pixels of the same bitmap are transformed on a pixel granularity.
    Type: Grant
    Filed: November 21, 2016
    Date of Patent: August 14, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventor: Ashraf Michail
  • Publication number: 20180144451
    Abstract: ClearType resolution recovery resampling of source content is performed as the source content is transformed from a source presentation format to a destination presentation format by at least distinguishing between pixels of a bitmap corresponding to the source content that are ClearType pixels and pixels of the same bitmap that are non-ClearType pixels. Identification of ClearType pixels is performed by identifying Alpha values of pixels that are less than 1, by identifying high frequency color fringing of pixels and/or by explicit declarations in the bitmap. The bitmap is resampled by applying transforms, such as convolution filters, in selective and discriminating ways, such that, for example, the ClearType pixels of the bitmap are resampled/transformed on a subpixel granularity and the non-ClearType pixels of the same bitmap are transformed on a pixel granularity.
    Type: Application
    Filed: November 21, 2016
    Publication date: May 24, 2018
    Inventor: Ashraf Michail
  • Patent number: 9153193
    Abstract: Rendering different types of graphical content using a single primitive type. Embodiments enable graphical elements of different content types representing a scene to be rendered as a batch based on the single primitive type, thereby reducing data transfer and improving processing performance. For example, each graphical element in a batch of graphical elements can rendered based modifications to instances of a template shape, which represents a single primitive type usable for rendering different types of graphical content. The modifications to each instance can include modifying the instance according transformation data, clip data, and/or width and height data to position the instance in a scene, and filling the modified instance according to one or more of shape or brush data corresponding to the graphical element.
    Type: Grant
    Filed: September 9, 2011
    Date of Patent: October 6, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Gerhard Schneider, Bede Jordan, Ashraf Michail, Brendan J. Clark, Pawel Wiktor Olszta
  • Patent number: 8872839
    Abstract: Performing real-time atlasing of graphics data and creation and maintenance of texture atlases for applications having dynamic graphics content. Embodiments include allocating a texture atlas configured to store textural elements for use in rendering graphical elements, and providing a graphics processing unit (GPU) access to the texture atlas. During subsequent execution of an application, when a graphical element of the application is to be rendered by the GPU, a block of space can be allocated within the texture atlas and a textural element corresponding to the graphical element can be stored within the allocated block. The GPU therefore has access to the textural element when rendering the graphical element.
    Type: Grant
    Filed: September 9, 2011
    Date of Patent: October 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Brendan J. Clark, Ashraf Michail, Bede Jordan, George Xin Gao
  • Patent number: 8872838
    Abstract: Performing primitive composition within a user interface thread, enhancing the ability to scale a user interface framework to computing devices having limited resources. In one or more embodiments, a user interface thread walks a user interface hierarchy that describes elements of a program's user interface and directly generates static Graphics Processing Unit (GPU) data structures representing at least a portion of the user interface hierarchy. The user interface thread passes the static GPU data structures to a composition thread, which uses these static GPU data structures during generation of a plurality of video frames. This includes the composition thread, based on the static GPU data structures, sending GPU data and GPU commands for the plurality of video frames to a GPU for rendering.
    Type: Grant
    Filed: September 9, 2011
    Date of Patent: October 28, 2014
    Assignee: Microsoft Corporation
    Inventors: Gerhard Schneider, Bede Jordan, Ashraf Michail, Brendan J. Clark, Pawel Wiktor Olszta
  • Patent number: 8629886
    Abstract: A system and method for processing and rendering multiple layers of a two-dimensional scene. A system provides a mechanism to determine a number of scene surfaces and a mapping between scene layers and scene surfaces. The mechanisms may include combining and aggregating areas of layers to create one opaque surface, aggregating non-overlapping semi-transparent opaque areas of layers, or creating surfaces from overlapping semi-transparent surfaces. Moving objects are accommodated, so that layers below a moving object may be rendered properly in frames where the moving object is above the layer and frames where the moving object is not above the layer, for each pixel.
    Type: Grant
    Filed: December 7, 2010
    Date of Patent: January 14, 2014
    Assignee: Microsoft Corporation
    Inventors: Ashraf Michail, Alan Liu
  • Publication number: 20130063463
    Abstract: Performing real-time atlasing of graphics data and creation and maintenance of texture atlases for applications having dynamic graphics content. Embodiments include allocating a texture atlas configured to store textural elements for use in rendering graphical elements, and providing a graphics processing unit (GPU) access to the texture atlas. During subsequent execution of an application, when a graphical element of the application is to be rendered by the GPU, a block of space can be allocated within the texture atlas and a textural element corresponding to the graphical element can be stored within the allocated block. The GPU therefore has access to the textural element when rendering the graphical element.
    Type: Application
    Filed: September 9, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Brendan J. Clark, Ashraf Michail, Bede Jordan, George Xin Gao
  • Publication number: 20130063459
    Abstract: Performing primitive composition within a user interface thread, enhancing the ability to scale a user interface framework to computing devices having limited resources. In one or more embodiments, a user interface thread walks a user interface hierarchy that describes elements of a program's user interface and directly generates static Graphics Processing Unit (GPU) data structures representing at least a portion of the user interface hierarchy. The user interface thread passes the static GPU data structures to a composition thread, which uses these static GPU data structures during generation of a plurality of video frames. This includes the composition thread, based on the static GPU data structures, sending GPU data and GPU commands for the plurality of video frames to a GPU for rendering.
    Type: Application
    Filed: September 9, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Gerhard Schneider, Bede Jordan, Ashraf Michail, Brendan J. Clark, Pawel Wiktor Olszta
  • Publication number: 20130063464
    Abstract: Rendering different types of graphical content using a single primitive type. Embodiments enable graphical elements of different content types representing a scene to be rendered as a batch based on the single primitive type, thereby reducing data transfer and improving processing performance. For example, each graphical element in a batch of graphical elements can rendered based modifications to instances of a template shape, which represents a single primitive type usable for rendering different types of graphical content. The modifications to each instance can include modifying the instance according transformation data, clip data, and/or width and height data to position the instance in a scene, and filling the modified instance according to one or more of shape or brush data corresponding to the graphical element.
    Type: Application
    Filed: September 9, 2011
    Publication date: March 14, 2013
    Applicant: Microsoft Corporation
    Inventors: Gerhard Schneider, Bede Jordan, Ashraf Michail, Brendan J. Clark, Pawel Wiktor Olszta
  • Patent number: 8274516
    Abstract: Architecture that expresses scene composition and animation in a form that can run entirely on the graphics processing unit (GPU). The architecture stores retained graph information (e.g., scene graph and animation information) as texture information, and uses shaders (e.g., vertex and pixel) to evaluate time information, evaluate animation, evaluate transforms, and rasterize paths. Additionally, the architecture provides the ability to compute animation positions and redraw entirely on the GPU without per primitive CPU intervention.
    Type: Grant
    Filed: August 4, 2008
    Date of Patent: September 25, 2012
    Assignee: Microsoft Corporation
    Inventors: Ashraf Michail, Gerhard Schneider
  • Publication number: 20120139918
    Abstract: A system and method for processing and rendering multiple layers of a two-dimensional scene. A system provides a mechanism to determine a number of scene surfaces and a mapping between scene layers and scene surfaces. The mechanisms may include combining and aggregating areas of layers to create one opaque surface, aggregating non-overlapping semi-transparent opaque areas of layers, or creating surfaces from overlapping semi-transparent surfaces. Moving objects are accommodated, so that layers below a moving object may be rendered properly in frames where the moving object is above the layer and frames where the moving object is not above the layer, for each pixel.
    Type: Application
    Filed: December 7, 2010
    Publication date: June 7, 2012
    Applicant: Microsoft Corporation
    Inventors: Ashraf Michail, Alan Liu
  • Publication number: 20100026700
    Abstract: Architecture that expresses scene composition and animation in a form that can run entirely on the graphics processing unit (GPU). The architecture stores retained graph information (e.g., scene graph and animation information) as texture information, and uses shaders (e.g., vertex and pixel) to evaluate time information, evaluate animation, evaluate transforms, and rasterize paths. Additionally, the architecture provides the ability to compute animation positions and redraw entirely on the GPU without per primitive CPU intervention.
    Type: Application
    Filed: August 4, 2008
    Publication date: February 4, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Ashraf Michail, Gerhard Schneider
  • Publication number: 20100013854
    Abstract: Hybrid architecture of supersampling and computing distance from a feature edge or Bezier evaluation to address thin feature support in graphics systems. To avoid missing some features the technique creates a supersampling of a small number of supersamples to pick up the thin features. By supersampling, samples can be produced on both sides of a thin feature, which causes thin features to be detectable by some pixel. Now that the thin features hit some pixel, the quality is achieved by a distance-from-edge approach. For example, the technique can supersample four times in combination with the distance-from-edge approach, produce another four samples there resulting in a 16-sample result.
    Type: Application
    Filed: July 18, 2008
    Publication date: January 21, 2010
    Applicant: MICROSOFT CORPORATION
    Inventor: Ashraf Michail
  • Patent number: 7548237
    Abstract: A visual tree structure as specified by a program is constructed and maintained by a visual system's user interface thread. As needed, the tree structure is traversed on the UI thread, with changes compiled into change queues. A secondary rendering thread that handles animation and graphical composition takes the content from the change queues, to construct and maintain a condensed visual tree. Static visual subtrees are collapsed, leaving a condensed tree with only animated attributes such as transforms as parent nodes, such that animation data is managed on the secondary thread, with references into the visual tree. When run, the rendering thread processes the change queues, applies changes to the condensed trees, and updates the structure of the animation list as necessary by resampling animated values at their new times. Content in the condensed visual tree is then rendered and composed. Animation and a composition communication protocol are also provided.
    Type: Grant
    Filed: August 4, 2006
    Date of Patent: June 16, 2009
    Assignee: Microsoft Corporation
    Inventors: Paul C. David, Gerhard A. Schneider, Matthew W. Calkins, Oreste Dorin Ungureanu, Ashraf Michail, Andrey E. Arsov, Leonardo E. Blanco
  • Publication number: 20070216685
    Abstract: Described is a rasterizer that processes the graphics primitives of a frame's image to build an array of entries representing which scanlines are affected by which graphics primitives. When built, the array is then referenced to draw the data of more or more combined primitives, e.g., on a scanline-by-scanline basis. Each scanline may be divided into segments defined by the edges of the primitives that affect the scanline, with the segments drawn based on each primitive's drawing data, e.g., including brush information and drawing order. Aliased and anti-aliased rasterizing are described, as is three-dimensional triangle data, and applying effects to groups of primitives.
    Type: Application
    Filed: March 15, 2006
    Publication date: September 20, 2007
    Applicant: Microsoft Corporation
    Inventors: Ashraf Michail, Christopher Raubacher, Donald Karlov
  • Publication number: 20070035543
    Abstract: A visual tree structure as specified by a program is constructed and maintained by a visual system's user interface thread. As needed, the tree structure is traversed on the UI thread, with changes compiled into change queues. A secondary rendering thread that handles animation and graphical composition takes the content from the change queues, to construct and maintain a condensed visual tree. Static visual subtrees are collapsed, leaving a condensed tree with only animated attributes such as transforms as parent nodes, such that animation data is managed on the secondary thread, with references into the visual tree. When run, the rendering thread processes the change queues, applies changes to the condensed trees, and updates the structure of the animation list as necessary by resampling animated values at their new times. Content in the condensed visual tree is then rendered and composed. Animation and a composition communication protocol are also provided.
    Type: Application
    Filed: August 4, 2006
    Publication date: February 15, 2007
    Applicant: Microsoft Corporation
    Inventors: Paul David, Gerhard Schneider, Matthew Calkins, Oreste Ungureanu, Ashraf Michail, Andrey Arsov, Leonardo Blanco
  • Publication number: 20060262125
    Abstract: An intelligent caching data structure and mechanisms for storing visual information via objects and data representing graphics information. The data structure is generally associated with mechanisms that intelligently control how the visual information therein is populated and used. The cache data structure can be traversed for direct rendering, or traversed for pre-processing the visual information into an instruction stream for another entity. Much of the data typically has no external reference to it, thereby enabling more of the information stored in the data structure to be processed to conserve resources. A transaction/batching-like model for updating the data structure enables external modifications to the data structure without interrupting reading from the data structure, and such that changes received are atomically implemented. A method and mechanism are provided to call back to an application program in order to create or re-create portions of the data structure as needed, to conserve resources.
    Type: Application
    Filed: June 16, 2006
    Publication date: November 23, 2006
    Applicant: Microsoft Corporation
    Inventors: Joseph Beda, Adam Smith, Gerhard Schneider, Kevin Gallo, Ashraf Michail
  • Publication number: 20060244754
    Abstract: An intelligent caching data structure and mechanisms for storing visual information via objects and data representing graphics information. The data structure is generally associated with mechanisms that intelligently control how the visual information therein is populated and used. The cache data structure can be traversed for direct rendering, or traversed for pre-processing the visual information into an instruction stream for another entity. Much of the data typically has no external reference to it, thereby enabling more of the information stored in the data structure to be processed to conserve resources. A transaction/batching-like model for updating the data structure enables external modifications to the data structure without interrupting reading from the data structure, and such that changes received are atomically implemented. A method and mechanism are provided to call back to an application program in order to create or re-create portions of the data structure as needed, to conserve resources.
    Type: Application
    Filed: June 16, 2006
    Publication date: November 2, 2006
    Applicant: MICROSOFT CORPORATION
    Inventors: Joseph Beda, Adam Smith, Gerhard Schneider, Kevin Gallo, Ashraf Michail
  • Publication number: 20060214946
    Abstract: Systems and methods are provided for providing anti-aliasing by introducing a falloff area around a graphics object to be rendered. The falloff area is shaded, using Gouraud shading or texture mapping to reduce the aliasing effects of the graphics object. The outside edge of the falloff area is set to be fully transparent, and the inside edge to an opacity matching the outer edge of the graphics object being rendered. To counteract bloating effects, the graphics object is shrunk by half the width of the falloff area. While the width of the falloff area may vary, generally, the width of the falloff area stays constant. In one embodiment, this width corresponds to the edge or diagonal of the square area mapped to each pixel.
    Type: Application
    Filed: March 16, 2006
    Publication date: September 28, 2006
    Applicant: Microsoft Corporation
    Inventors: Christopher Raubacher, Gregory Swedberg, Ashraf Michail, Michael Kallay
  • Patent number: 7088374
    Abstract: A visual tree structure as specified by a program is constructed and maintained by a visual system's user interface thread. As needed, the tree structure is traversed on the UI thread, with changes compiled into change queues. A secondary rendering thread that handles animation and graphical composition takes the content from the change queues, to construct and maintain a condensed visual tree. Static visual subtrees are collapsed, leaving a condensed tree with only animated attributes such as transforms as parent nodes, such that animation data is managed on the secondary thread, with references into the visual tree. When run, the rendering thread processes the change queues, applies changes to the condensed trees, and updates the structure of the animation list as necessary by resampling animated values at their new times. Content in the condensed visual tree is then rendered and composed. Animation and a composition communication protocol are also provided.
    Type: Grant
    Filed: March 27, 2003
    Date of Patent: August 8, 2006
    Assignee: Microsoft Corporation
    Inventors: Paul C. David, Gerhard A. Schneider, Matthew W. Calkins, Oreste Dorin Ungureanu, Ashraf Michail, Andrey E. Arsov, Leonardo E. Blanco