Patents by Inventor Olof L.E. Mases

Olof L.E. Mases 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: 11197010
    Abstract: Innovations in video playback using a browser-based video decoder are described. In a computer system that includes multiple central processing units (“CPUs”), a browser-based video decoder performs operations with multiple threads that may execute simultaneously on different CPUs. The video decoder can perform decoding operations in parallel for different sections of a picture. For example, with a main CPU thread associated with a browser, the video decoder performs a first decoding workload (e.g., bitstream parsing) for a picture. With auxiliary CPU threads associated with Web workers and simultaneously executing on different CPUs, the video decoder performs a second decoding workload (e.g., entropy decoding, decoding of side information) for different sections of the picture, one section per auxiliary CPU thread. If the computer system also includes a graphics processing unit (“GPU”), the video decoder can perform additional decoding workloads with shader routines executable on the GPU.
    Type: Grant
    Filed: October 7, 2016
    Date of Patent: December 7, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Jingyaw Sun, Winston M. P. Johnston, Jayashree Sadagopan, Lihua Zhu, Michael E. Seydl, Olof L. E. Mases, B. Anil Kumar
  • Patent number: 11095877
    Abstract: Innovations in motion estimation adapted for screen remoting scenarios are described. For example, a video encoder calculates a hash value for a current block in a current picture. The video encoder searches, subject to a spatial constraint, for a matching block in a reference picture (e.g., the previous picture in display order) based at least in part on the hash value for the current block. The spatial constraint defines a search area in the reference picture within which hash values for candidate blocks in the reference picture may be compared to the hash value for the current block. By using a spatial constraint to limit the range of the local hash-based motion estimation, the video encoder can speed up the motion estimation process while still considering the candidate blocks in the reference picture that are most likely to match the current block.
    Type: Grant
    Filed: November 30, 2016
    Date of Patent: August 17, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: B. Anil Kumar, Winston M. Johnston, Olof L. E. Mases, Shir Aharon, Lihua Zhu
  • Patent number: 10575007
    Abstract: Innovations in video decoding and rendering operations in a graphics pipeline, in which at least some of the operations are performed using a graphics processing unit (“GPU”), are described. For example, a video playback tool aggregates texture values for intra-coded blocks of a picture in central processing unit (“CPU”) memory, then transfers the texture values for the intra-coded blocks from the CPU memory to GPU memory. The video playback tool performs operations to decode the encoded data and reconstruct the picture. For a given block (e.g., of a macroblock, coding unit) of the picture, a graphics primitive represents texture values for the given block as a point for processing by the GPU. The video playback tool uses one or more shader routines, executable by the GPU, to transfer texture values to a display buffer. In some cases, the video playback tool also performs decoding operations with the shader routines.
    Type: Grant
    Filed: April 12, 2016
    Date of Patent: February 25, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Guosheng Sun, Olof L. E. Mases, Lihua Zhu, B. Anil Kumar
  • Patent number: 10390039
    Abstract: Innovations in motion estimation adapted for screen remoting scenarios are described herein. For example, as part of motion estimation for a current picture, a video encoder finds a pivot point in the current picture, calculates a hash value for the pivot point, and searches for a matching area in a previous picture. In doing so, the video encoder can calculate a hash index from the hash value and look up the hash index in a data structure to find candidate pivot points in the previous picture. The video encoder can compare the hash value for the pivot point in the current picture to a hash value for a candidate pivot point in the previous picture and, when the hash values match, compare sample values around the respective pivot points. In this way, the video encoder can quickly detect large areas of exact-match blocks having uniform motion.
    Type: Grant
    Filed: August 31, 2016
    Date of Patent: August 20, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Lihua Zhu, B. Anil Kumar, Olof L. E. Mases
  • Patent number: 10157480
    Abstract: Innovations in video decoding and rendering operations for inter-coded blocks in a graphics pipeline, in which at least some of the operations are performed using a graphics processing unit (“GPU”), are described. For example, a video playback tool receives encoded data for a current picture and performs operations to decode the encoded data and reconstruct the current picture. For a given inter-coded block of the current picture, a graphics primitive represents texture values as a point for processing by the GPU. The graphics primitive can have one or more attributes, including a motion vector, a block size, a display index value (indicating a location in a display buffer), and/or a residual index value (indicating a location of residual values). The operations performed by the video playback tool can include interpolation of sample values at fractional-sample offsets and motion compensation performed for inter-coded blocks in multiple passes for different block sizes.
    Type: Grant
    Filed: June 24, 2016
    Date of Patent: December 18, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Lihua Zhu, B. Anil Kumar, Guosheng Sun, Olof L. E. Mases
  • Publication number: 20180152699
    Abstract: Innovations in motion estimation adapted for screen remoting scenarios are described. For example, a video encoder calculates a hash value for a current block in a current picture. The video encoder searches, subject to a spatial constraint, for a matching block in a reference picture (e.g., the previous picture in display order) based at least in part on the hash value for the current block. The spatial constraint defines a search area in the reference picture within which hash values for candidate blocks in the reference picture may be compared to the hash value for the current block. By using a spatial constraint to limit the range of the local hash-based motion estimation, the video encoder can speed up the motion estimation process while still considering the candidate blocks in the reference picture that are most likely to match the current block.
    Type: Application
    Filed: November 30, 2016
    Publication date: May 31, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: B. Anil Kumar, Winston M. Johnston, Olof L.E. Mases, Shir Aharon, Lihua Zhu
  • Publication number: 20180103261
    Abstract: Innovations in video playback using a browser-based video decoder are described. In a computer system that includes multiple central processing units (“CPUs”), a browser-based video decoder performs operations with multiple threads that may execute simultaneously on different CPUs. The video decoder can perform decoding operations in parallel for different sections of a picture. For example, with a main CPU thread associated with a browser, the video decoder performs a first decoding workload (e.g., bitstream parsing) for a picture. With auxiliary CPU threads associated with Web workers and simultaneously executing on different CPUs, the video decoder performs a second decoding workload (e.g., entropy decoding, decoding of side information) for different sections of the picture, one section per auxiliary CPU thread. If the computer system also includes a graphics processing unit (“GPU”), the video decoder can perform additional decoding workloads with shader routines executable on the GPU.
    Type: Application
    Filed: October 7, 2016
    Publication date: April 12, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Jingyaw Sun, Winston M.P. Johnston, Jayashree Sadagopan, Lihua Zhu, Michael E. Seydl, Olof L.E. Mases, B. Anil Kumar
  • Publication number: 20180063540
    Abstract: Innovations in motion estimation adapted for screen remoting scenarios are described herein. For example, as part of motion estimation for a current picture, a video encoder finds a pivot point in the current picture, calculates a hash value for the pivot point, and searches for a matching area in a previous picture. In doing so, the video encoder can calculate a hash index from the hash value and look up the hash index in a data structure to find candidate pivot points in the previous picture. The video encoder can compare the hash value for the pivot point in the current picture to a hash value for a candidate pivot point in the previous picture and, when the hash values match, compare sample values around the respective pivot points. In this way, the video encoder can quickly detect large areas of exact-match blocks having uniform motion.
    Type: Application
    Filed: August 31, 2016
    Publication date: March 1, 2018
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Lihua Zhu, B. Anil Kumar, Olof L.E. Mases
  • Publication number: 20170372494
    Abstract: Innovations in video decoding and rendering operations for inter-coded blocks in a graphics pipeline, in which at least some of the operations are performed using a graphics processing unit (“GPU”), are described. For example, a video playback tool receives encoded data for a current picture and performs operations to decode the encoded data and reconstruct the current picture. For a given inter-coded block of the current picture, a graphics primitive represents texture values as a point for processing by the GPU. The graphics primitive can have one or more attributes, including a motion vector, a block size, a display index value (indicating a location in a display buffer), and/or a residual index value (indicating a location of residual values). The operations performed by the video playback tool can include interpolation of sample values at fractional-sample offsets and motion compensation performed for inter-coded blocks in multiple passes for different block sizes.
    Type: Application
    Filed: June 24, 2016
    Publication date: December 28, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Lihua Zhu, B. Anil Kumar, Guosheng Sun, Olof L.E. Mases
  • Publication number: 20170295379
    Abstract: Innovations in video decoding and rendering operations in a graphics pipeline, in which at least some of the operations are performed using a graphics processing unit (“GPU”), are described. For example, a video playback tool aggregates texture values for intra-coded blocks of a picture in central processing unit (“CPU”) memory, then transfers the texture values for the intra-coded blocks from the CPU memory to GPU memory. The video playback tool performs operations to decode the encoded data and reconstruct the picture. For a given block (e.g., of a macroblock, coding unit) of the picture, a graphics primitive represents texture values for the given block as a point for processing by the GPU. The video playback tool uses one or more shader routines, executable by the GPU, to transfer texture values to a display buffer. In some cases, the video playback tool also performs decoding operations with the shader routines.
    Type: Application
    Filed: April 12, 2016
    Publication date: October 12, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Guosheng Sun, Olof L.E. Mases, Lihua Zhu, B. Anil Kumar
  • Patent number: 8713152
    Abstract: Embodiments are directed to providing a structural diagram to collect user input data in a non-linear manner and to managing multiple distributed application models using a structural diagram. In one scenario, a computer system receives a user input specifying a distributed software application that is to be managed across various different computer systems. The computer system determines, based the specified distributed application, which nodes are to be displayed in a structural diagram, where the nodes of the structural diagram represent application properties for managing the specified distributed software application. The computer system then provides a structural diagram that displays the determined nodes. The nodes allow non-linear configuration of the specified application across the various computer systems.
    Type: Grant
    Filed: March 2, 2012
    Date of Patent: April 29, 2014
    Assignee: Microsoft Corporation
    Inventors: David J. Armour, John David Welch, Richard O. Rundle, Andrei Zenkovitch, Ravi Kiran Chintalapudi, Olof L. E. Mases
  • Publication number: 20130232185
    Abstract: Embodiments are directed to providing a structural diagram to collect user input data in a non-linear manner and to managing multiple distributed application models using a structural diagram. In one scenario, a computer system receives a user input specifying a distributed software application that is to be managed across various different computer systems. The computer system determines, based the specified distributed application, which nodes are to be displayed in a structural diagram, where the nodes of the structural diagram represent application properties for managing the specified distributed software application. The computer system then provides a structural diagram that displays the determined nodes. The nodes allow non-linear configuration of the specified application across the various computer systems.
    Type: Application
    Filed: March 2, 2012
    Publication date: September 5, 2013
    Applicant: MICROSOFT CORPORATION
    Inventors: David J. Armour, John David Welch, Richard O. Rundle, Andrei Zenkovitch, Ravi Kiran Chintalapudi, Olof L.E. Mases