Patents by Inventor Stefan Holmer

Stefan Holmer 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: 9674726
    Abstract: Provided are methods and systems for estimating bandwidth in a communications network in which time slotting is occurring. A pre-filter is used to alter the distribution of transit deltas between data packets transmitted over the network to a receiver. By calculating the differences between arrival times of consecutive data packets received at a receiving end, and comparing the differences between the arrival times of the packets to the differences between corresponding send times for the packets, a determination is made as to whether such packets should be logically grouped together so as to constitute a single arrival event. The sum of the payload sizes of data packets within a group, together with timestamps for the arrival time and send time of the last packet included in the group is used as input to a bandwidth estimator.
    Type: Grant
    Filed: November 21, 2014
    Date of Patent: June 6, 2017
    Assignee: GOOGLE INC.
    Inventor: Stefan Holmer
  • Patent number: 9621902
    Abstract: Methods and systems are provided for transmitting multiple video streams to clients based on individual preferences of the clients and network conditions. A cost-function minimization problem is formulated based on various network parameters. The network parameters (e.g., round-trip time (RTT), available bandwidth, packet loss rate, etc.) may be inputs to this optimization problem, which attempts to find optimal resolutions, bitrates, etc., given the network parameters and the video content. Additionally, by incorporating quality prediction, the cost-function may be based on actual content of video sequences.
    Type: Grant
    Filed: February 28, 2013
    Date of Patent: April 11, 2017
    Assignee: GOOGLE INC.
    Inventor: Stefan Holmer
  • Patent number: 9210302
    Abstract: Disclosed herein is a method of transmitting a video bitstream to a first and at least a second endpoint with varying bandwidth capacities including identifying bandwidth capacities of the first and second endpoints, the second endpoint having less bandwidth capacity than the first endpoint, encoding at least a portion of the video bitstream to generate at least one version of a first data partition and a plurality of versions of at least a second data partition, the plurality of versions of the second data partition including at least one high quality version and at least one low quality version of the second data partition, transmitting the at least one version of the first partition and the at least one high quality version of the second partition to the first endpoint and transmitting the at least one low quality version of the second partition to the second endpoint.
    Type: Grant
    Filed: August 10, 2011
    Date of Patent: December 8, 2015
    Assignee: GOOGLE INC.
    Inventors: Stefan Holmer, Henrik Fahlberg Lundin, Patrik Westin
  • Patent number: 9131073
    Abstract: A method and apparatus for performing motion estimation aided noise reduction encoding and decoding are provided. Motion estimation aided noise reduction encoding can include identifying a motion vector for encoding a current block in a video frame based on a reference block in a reference frame, identifying a noise reduction block for denoising the current block, aligning the noise reduction block with the current block, denoising the current block, identifying a motion vector for encoding the denoised block, generating a residual block for encoding the denoised block, and encoding the denoised block. Denoising the current block can include identifying a filter coefficient for a pixel in the current block based on a corresponding pixel in the noise reduction block, producing a denoised pixel based on the coefficient and the corresponding pixel, and determining whether to use the denoised pixel or the current pixel for encoding the block.
    Type: Grant
    Filed: March 2, 2012
    Date of Patent: September 8, 2015
    Assignee: GOOGLE INC.
    Inventors: James Bankoski, Stefan Holmer
  • Patent number: 9106787
    Abstract: A system, apparatus, and method for estimating available bandwidth for transmitting a media stream over a network, the media stream having a plurality of frames. One method includes receiving some of the plurality of frames, each frame of the plurality of frames having a inter-frame size differential and an inter-arrival time differential, detecting whether at least some of the inter-arrival time differentials are outside of a steady-state range using at least some of the inter-frame size differentials, and estimating an available bandwidth based on the detected change and using a processor.
    Type: Grant
    Filed: May 9, 2011
    Date of Patent: August 11, 2015
    Assignee: GOOGLE INC.
    Inventors: Stefan Holmer, Henrik Fahlberg Lundin
  • Patent number: 9042261
    Abstract: A buffer level for jitter data buffer is determined. A frame payload size difference is determined for a plurality of video frames encoded into data packets sequentially received from a network. The difference is a difference in a payload size of a current frame and a previous frame. A frame network transit delay is determined as a difference in a transport time between the current frame and the previous frame and an expected transport time between the current frame and the previous frame. A slope and a variance of a linear relationship between the frame payload size difference and the frame network transit delay are determined for the plurality of video frames. Finally, a buffer level of a jitter data buffer is determined using a maximum frame payload size, an average frame payload size, the slope and the variance.
    Type: Grant
    Filed: February 7, 2014
    Date of Patent: May 26, 2015
    Assignee: Google Inc.
    Inventors: Henrik Fahlberg Lundin, Stefan Holmer
  • Patent number: 8908767
    Abstract: Taught herein are techniques to incorporate temporal motion vector prediction in encoding and decoding a video stream. Motion vectors are temporally predicted for blocks of a frame. An extrapolated position for at least one block of a first frame is predicted in a second frame using a respective motion vector of the at least one block. A temporal motion vector for a block of the second frame is calculated as a combination of respective motion vectors of blocks overlapping the block of the second frame if at least one of the overlapping blocks is an extrapolated block at the extrapolated position. The temporal motion vector is used in a motion estimation algorithm to select a motion vector for the block, and the block is encoded using the selected motion vector.
    Type: Grant
    Filed: February 9, 2012
    Date of Patent: December 9, 2014
    Assignee: Google Inc.
    Inventor: Stefan Holmer
  • Publication number: 20140241419
    Abstract: Methods and systems are provided for transmitting multiple video streams to clients based on individual preferences of the clients and network conditions. A cost-function minimization problem is formulated based on various network parameters. The network parameters (e.g., round-trip time (RTT), available bandwidth, packet loss rate, etc.) may be inputs to this optimization problem, which attempts to find optimal resolutions, bitrates, etc., given the network parameters and the video content. Additionally, by incorporating quality prediction, the cost-function may be based on actual content of video sequences.
    Type: Application
    Filed: February 28, 2013
    Publication date: August 28, 2014
    Inventor: Stefan HOLMER
  • Patent number: 8819525
    Abstract: Error concealment guided robustness may include identifying a current portion of a current video stream. Identifying the current portion may include identifying a feature, or a vector of features, for the current portion. An estimated vulnerability metric may be identified based on the feature and an associated learned feature weight. An error correction code for the current portion may be generated based on the estimated vulnerability metric. Error concealment guided robustness may include generating learned feature weights based on one or more training videos by generating vulnerability metrics for the training videos and identifying relationships between features of the training videos and the vulnerability metrics generated for the training videos.
    Type: Grant
    Filed: June 14, 2012
    Date of Patent: August 26, 2014
    Assignee: Google Inc.
    Inventor: Stefan Holmer
  • Patent number: 8797378
    Abstract: In one method for communicating, a server can receive a first encoded media stream from a first sending device and a second encoded media stream from a second sending device from a plurality of co-located sending devices. The server can determine spatial relationships between the plurality of co-located sending devices and a plurality of co-located receiving devices. The server can select a first receiving device as a destination for the first encoded media stream and a second receiving device as a destination for the second encoded media stream based on the sending and receiving spatial relationships. The server can send the first encoded media stream to the first receiving device and the second encoded media stream to the second receiving device to be decoded and rendered. The spatial relationships can be based on physical locations for the plurality of co-located sending and receiving devices.
    Type: Grant
    Filed: January 17, 2012
    Date of Patent: August 5, 2014
    Assignee: Google Inc.
    Inventor: Stefan Holmer
  • Patent number: 8750293
    Abstract: A system, apparatus, and method for rendering a video stream, the video stream having a plurality of frames. One method includes receiving the plurality of frames via a network, each frame having an estimated arrival time, determining a retransmission rendering delay, based on a round-trip delay and a round-trip delay constant, for a current frame of the plurality of frames using a processor, determining a render time for the current frame using a sum of the current frame's estimated arrival time and the retransmission rendering delay, and rendering the current frame at the render time.
    Type: Grant
    Filed: May 6, 2011
    Date of Patent: June 10, 2014
    Assignee: Google Inc.
    Inventor: Stefan Holmer
  • Publication number: 20140153431
    Abstract: A buffer level for jitter data buffer is determined. A frame payload size difference is determined for a plurality of video frames encoded into data packets sequentially received from a network. The difference is a difference in a payload size of a current frame and a previous frame. A frame network transit delay is determined as a difference in a transport time between the current frame and the previous frame and an expected transport time between the current frame and the previous frame. A slope and a variance of a linear relationship between the frame payload size difference and the frame network transit delay are determined for the plurality of video frames. Finally, a buffer level of a jitter data buffer is determined using a maximum frame payload size, an average frame payload size, the slope and the variance.
    Type: Application
    Filed: February 7, 2014
    Publication date: June 5, 2014
    Applicant: Google Inc.
    Inventors: Henrik Fahlberg Lundin, Stefan Holmer
  • Patent number: 8665745
    Abstract: It is disclosed a method for determining a buffer level of a jitter data buffer (203) comprised in a receiver (200) adapted to sequentially receive data packets from a communications network (202), wherein frames are encoded into the data packets. Each frame may comprise timestamp information and payload size information. The buffer level is determined on the basis of a first part of frame arrival delay related to payload size variation between frames and a second part related to the amount of crosstraffic in the communications network (202). It is further disclosed a receiver (200) adapted to sequentially receive data packets from a communications network (202), wherein frames are encoded into the data packets, the receiver (200) comprising a data jitter buffer (203) and being adapted to perform the method.
    Type: Grant
    Filed: September 20, 2010
    Date of Patent: March 4, 2014
    Assignee: Google Inc.
    Inventors: Henrik Fahlberg Lundin, Stefan Holmer
  • Publication number: 20120281562
    Abstract: A system, apparatus, and method for rendering a video stream, the video stream having a plurality of frames. One method includes receiving the plurality of frames via a network, each frame having an estimated arrival time, determining a retransmission rendering delay, based on a round-trip delay and a round-trip delay constant, for a current frame of the plurality of frames using a processor, determining a render time for the current frame using a sum of the current frame's estimated arrival time and the retransmission rendering delay, and rendering the current frame at the render time.
    Type: Application
    Filed: May 6, 2011
    Publication date: November 8, 2012
    Applicant: GOOGLE INC.
    Inventor: Stefan Holmer
  • Publication number: 20120281572
    Abstract: It is disclosed a method for determining a buffer level of a jitter data buffer (203) comprised in a receiver (200) adapted to sequentially receive data packets from a communications network (202), wherein frames are encoded into the data packets. Each frame may comprise timestamp information and payload size information. The buffer level is determined on the basis of a first part of frame arrival delay related to payload size variation between frames and a second part related to the amount of crosstraffic in the communications network (202). It is further disclosed a receiver (200) adapted to sequentially receive data packets from a communications network (202), wherein frames are encoded into the data packets, the receiver (200) comprising a data jitter buffer (203) and being adapted to perform the method.
    Type: Application
    Filed: September 20, 2010
    Publication date: November 8, 2012
    Applicant: GOOGLE INC.
    Inventors: Henrik Fahlberg Lundin, Stefan Holmer