Patents by Inventor Aki Kuusela

Aki Kuusela 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).

  • Publication number: 20200238175
    Abstract: This application is directed to a method of managing processing capability of a server system having one or more processing cores that further include multiple processing slices. Upon receiving requests to initiate online gaming sessions, the server system allocates each processing slice of the processing cores to a subset of the online gaming sessions to be executed thereon. A first processing slice is allocated to a first subset of the online gaming sessions including a first gaming session and a second gaming session. At the first processing slice, a time-sharing processing schedule is determined for the first subset of the online gaming sessions. In accordance with the time-sharing processing schedule, the first and second gaming sessions share a duty cycle of the first processing slice, and are executed dynamically and in parallel according to real-time data processing need of the first and second gaming sessions.
    Type: Application
    Filed: April 15, 2020
    Publication date: July 30, 2020
    Inventors: Clinton Smullen, Dov Zimring, Jani Huoponen, Aki Kuusela, Jean-Francois Roy, Paul Lalonde, Paul Leventis
  • Patent number: 10674152
    Abstract: A method for encoding an image block includes presenting, to a machine-learning model, the image block and a first value corresponding to a first quantization parameter; obtaining first mode decision parameters from the machine-learning model; and encoding the image block using the first mode decision parameters. The first value results from a non-linear function using the first quantization parameter as input. The machine-learning model is trained to output mode decision parameters by using training data. Each training datum includes a training block that is encoded by a second encoder, second mode decision parameters used by the second encoder for encoding the training block, and a second value corresponding to a second quantization parameter. The second encoder used the second quantization parameter for encoding the training block and the second value results from the non-linear function using the second quantization parameter as input.
    Type: Grant
    Filed: September 18, 2018
    Date of Patent: June 2, 2020
    Assignee: GOOGLE LLC
    Inventors: Claudionor Coelho, Dake He, Aki Kuusela, Shan Li
  • Patent number: 10609421
    Abstract: Coding a transform block having transform coefficients is described. A plurality of register arrays is defined to each hold one or more stored values regarding the coding context based on at least one spatial template for a coding context. The register arrays are initialized by setting the stored values to default values, and values for the transform coefficients from the transform block are coded in a reverse scan order. The values for the transform coefficients are indicative of magnitudes of the transform coefficients. For each of one or more transform coefficients, the coding includes determining the coding context using at least some of the stored values from the register arrays, entropy coding a value for the transform coefficient using the coding context, and updating the register arrays subsequent to entropy coding the value for the transform coefficient.
    Type: Grant
    Filed: July 12, 2018
    Date of Patent: March 31, 2020
    Assignee: GOOGLE LLC
    Inventors: Aki Kuusela, Dake He
  • Publication number: 20200092556
    Abstract: A method for encoding an image block includes presenting, to a machine-learning model, the image block and a first value corresponding to a first quantization parameter; obtaining first mode decision parameters from the machine-learning model; and encoding the image block using the first mode decision parameters. The first value results from a non-linear function using the first quantization parameter as input. The machine-learning model is trained to output mode decision parameters by using training data. Each training datum includes a training block that is encoded by a second encoder, second mode decision parameters used by the second encoder for encoding the training block, and a second value corresponding to a second quantization parameter. The second encoder used the second quantization parameter for encoding the training block and the second value results from the non-linear function using the second quantization parameter as input.
    Type: Application
    Filed: September 18, 2018
    Publication date: March 19, 2020
    Inventors: Claudionor Coelho, Dake He, Aki Kuusela, Shan Li
  • Publication number: 20200092552
    Abstract: A convolutional neural network (CNN) for determining a partitioning of a block is disclosed. The block is of size N×N and a smallest partition is of size S×S. The CNN includes feature extraction layers; a concatenation layer that receives, from the feature extraction layers, first feature maps of the block, where each first feature map is of size S×S; and classifiers. Each classifier includes classification layers, each classification layer receives second feature maps having a respective feature dimension. Each classifier is configured to infer partition decisions for sub-blocks of size (?S)×(?S) of the block, wherein ? is a power of 2 and ?=2, . . . , N/S, by: applying, at some of successive classification layers of the classification layers, a kernel of size 1×1 to reduce the respective feature dimension in half; and outputting by a last layer of the classification layers an output corresponding to a N/(?S)×N/(?S)×1 output map.
    Type: Application
    Filed: September 18, 2018
    Publication date: March 19, 2020
    Inventors: Claudionor Coelho, Aki Kuusela, Shan Li, Dake He
  • Patent number: 10547869
    Abstract: A method of coding a transform block having transform coefficients includes selecting, based on a transform type used for the transform block, a spatial template for a coding context; defining shift registers to each hold one or more stored values regarding the coding context; initializing the shift registers by setting the stored values to default values; and coding values indicative of magnitudes of the transform coefficients from the transform block in a reverse scan order. Coding includes, for each of one or more values, obtaining a value to be coded at a scan position, determining the coding context using the stored values from the shift registers, entropy coding the value to be coded using the coding context, and subsequent to entropy coding the value to be coded, updating at least some of the stored values in the shift registers.
    Type: Grant
    Filed: December 8, 2017
    Date of Patent: January 28, 2020
    Assignee: GOOGLE LLC
    Inventors: Aki Kuusela, Dake He
  • Publication number: 20200029098
    Abstract: Asymmetric probability model updating and entropy coding includes using different numbers of bits for storing probabilities of a probability model and for entropy coding symbols using that probability model. The probabilities of a probability model are updated according to values of syntax elements decoded from a bitstream. The probabilities are associated with possible values of the syntax elements and are stored using a first bit precision. Based on the updated probabilities, a second bit precision to use to entropy decode the syntax elements is determined. The second bit precision is less than the first bit precision. The syntax elements are then entropy decoded using the second bit precision, such as to produce quantized transform coefficients, which may be further processed and output to an output video stream. Using the first bit precision to entropy decode the syntax elements results in a lower compression throughput than using the second bit precision.
    Type: Application
    Filed: July 23, 2018
    Publication date: January 23, 2020
    Inventors: Jingning Han, Aki Kuusela, Stanislav Vitvitskyy, Yaowu Xu, Ching-Han Chiang, Dake He
  • Publication number: 20200021855
    Abstract: Coding a transform block having transform coefficients is described. A plurality of register arrays is defined to each hold one or more stored values regarding the coding context based on at least one spatial template for a coding context. The register arrays are initialized by setting the stored values to default values, and values for the transform coefficients from the transform block are coded in a reverse scan order. The values for the transform coefficients are indicative of magnitudes of the transform coefficients. For each of one or more transform coefficients, the coding includes determining the coding context using at least some of the stored values from the register arrays, entropy coding a value for the transform coefficient using the coding context, and updating the register arrays subsequent to entropy coding the value for the transform coefficient.
    Type: Application
    Filed: July 12, 2018
    Publication date: January 16, 2020
    Inventors: Aki Kuusela, Dake He
  • Patent number: 10499078
    Abstract: A method and apparatus for motion prediction of a block of pixels are provided. The method includes determining respective sub-pixel interpolation filters for pixel positions of a reference block for the block of pixels and generating a prediction block of prediction pixels using the reference block and the respective sub-pixel interpolation filters. The apparatus includes a memory and a processor configured to execute instructions stored in the memory to determine respective sub-pixel interpolation filters for pixel positions of a reference block for the block of pixels and generate a prediction block of prediction pixels using the reference block and the respective sub-pixel interpolation filters. Each sub-pixel interpolation filter for a pixel position is determined using at least one characteristic of a set of pixels of the reference block about the pixel position.
    Type: Grant
    Filed: February 7, 2017
    Date of Patent: December 3, 2019
    Assignee: GOOGLE LLC
    Inventor: Aki Kuusela
  • Patent number: 10356406
    Abstract: Dynamic resolution switching achieves a target bitrate for single-pass and two-pass encoding of a video stream. A single-pass encoder determines whether an encoding bitrate for a frame meets a target bitrate. If not, a quantization parameter used to encode the frame is compared against minimum and maximum threshold values to determine whether the video resolution needs to be adjusted. A two-pass encoder encodes an input frame using a quantization parameter and determines whether video resolution for encoding the frame during a second pass may be adjusted based on the bitrate at which the input frame is encoded. The resolution may be adjusted based on encoder limitations with respect to a motion search area used to code a frame.
    Type: Grant
    Filed: January 19, 2016
    Date of Patent: July 16, 2019
    Assignee: GOOGLE LLC
    Inventor: Aki Kuusela
  • Publication number: 20190191168
    Abstract: Systems and methods are disclosed for encoding video. For example, methods may include: receiving a throughput setting; adjusting, based on the throughput setting, an effort level selection for an encoder to utilize multiple effort levels from a set of effort levels, wherein each effort level of the set of effort levels specifies parameters of the encoder that control processing time for a coding unit of video data; and encoding video data, using the encoder configured using effort levels identified by the effort level selection, to generate data of an encoded bitstream.
    Type: Application
    Filed: December 19, 2017
    Publication date: June 20, 2019
    Inventors: Aki Kuusela, Daniel Stodolsky, Juha Pekka Maaninen
  • Publication number: 20190182507
    Abstract: A method of coding a transform block having transform coefficients includes selecting, based on a transform type used for the transform block, a spatial template for a coding context; defining shift registers to each hold one or more stored values regarding the coding context; initializing the shift registers by setting the stored values to default values; and coding values indicative of magnitudes of the transform coefficients from the transform block in a reverse scan order. Coding includes, for each of one or more values, obtaining a value to be coded at a scan position, determining the coding context using the stored values from the shift registers, entropy coding the value to be coded using the coding context, and subsequent to entropy coding the value to be coded, updating at least some of the stored values in the shift registers.
    Type: Application
    Filed: December 8, 2017
    Publication date: June 13, 2019
    Inventors: Aki Kuusela, Dake He
  • Publication number: 20190124349
    Abstract: Motion estimation or compensation functionality of a hardware component is used to encode or decode key frames and other video frames. The hardware component includes a memory, which may, for example, be a local static random access memory or an external dynamic random access memory. Upon a block of a frame being encoded or decoded, data associated with that block is stored in the memory. That data can then be processed by motion estimation or motion compensation for use in encoding or decoding one or more later blocks within the same frame. The data may, for example, be stored in the memory after operations for reconstruction and loop filtering have been performed. The data stored in the memory may effectively be processed using traditional inter-prediction operations, such as to identify similar video objects within blocks of the same frame.
    Type: Application
    Filed: December 18, 2017
    Publication date: April 25, 2019
    Inventors: Aki Kuusela, Dake He
  • Patent number: 10009625
    Abstract: An apparatus for use in low-latency two-pass video coding may include a memory and a processor configured to execute instructions stored in the memory to identify an input frame from an input video stream, determine a reduced frame from the input frame, the reduced frame having a size smaller than a size of the input frame, generate an encoded reduced frame by encoding the reduced frame, wherein encoding the reduced frame includes generating encoding metrics, generate encoding parameters based on the encoding metrics, generate an encoded frame by encoding the input frame using an encoding parameter from the encoding parameters include the encoded frame in an output bitstream, and store or transmit the output bitstream.
    Type: Grant
    Filed: October 10, 2017
    Date of Patent: June 26, 2018
    Assignee: GOOGLE LLC
    Inventor: Aki Kuusela
  • Publication number: 20180035129
    Abstract: An apparatus for use in low-latency two-pass video coding may include a memory and a processor configured to execute instructions stored in the memory to identify an input frame from an input video stream, determine a reduced frame from the input frame, the reduced frame having a size smaller than a size of the input frame, generate an encoded reduced frame by encoding the reduced frame, wherein encoding the reduced frame includes generating encoding metrics, generate encoding parameters based on the encoding metrics, generate an encoded frame by encoding the input frame using an encoding parameter from the encoding parameters include the encoded frame in an output bitstream, and store or transmit the output bitstream.
    Type: Application
    Filed: October 10, 2017
    Publication date: February 1, 2018
    Inventor: Aki Kuusela
  • Patent number: 9807416
    Abstract: Low-latency two-pass video coding may include identifying an input frame from an input video stream, determining a reduced frame from the input frame, the reduced frame having a size smaller than a size of the input frame, encoding the reduced frame using a first encoder, generating a plurality of encoding parameters based on encoding the reduced frame, generating an encoded frame by encoding the input frame using the first encoder and the plurality of encoding parameters, including the first encoded frame in an output bitstream, and storing or transmitting the output bitstream.
    Type: Grant
    Filed: September 21, 2015
    Date of Patent: October 31, 2017
    Assignee: GOOGLE INC.
    Inventor: Aki Kuusela
  • Publication number: 20170208328
    Abstract: Dynamic resolution switching achieves a target bitrate for single-pass and two-pass encoding of a video stream. A single-pass encoder determines whether an encoding bitrate for a frame meets a target bitrate. If not, a quantization parameter used to encode the frame is compared against minimum and maximum threshold values to determine whether the video resolution needs to be adjusted. A two-pass encoder encodes an input frame using a quantization parameter and determines whether video resolution for encoding the frame during a second pass may be adjusted based on the bitrate at which the input frame is encoded. The resolution may be adjusted based on encoder limitations with respect to a motion search area used to code a frame.
    Type: Application
    Filed: January 19, 2016
    Publication date: July 20, 2017
    Inventor: Aki Kuusela
  • Patent number: 9609275
    Abstract: A method includes transmitting, from an encoding client to a first remote computing system, an encoded video stream that includes a plurality of first-resolution frames and a plurality of second-resolution frames. The method also includes transmitting, from the encoding client to the first remote computing system in the encoded video stream, a first-resolution non-displayed anchor frame. The method also includes receiving, at the encoding client from the first remote computing system, a request to change resolution. In response to receiving the request to change resolution, the method includes transmitting, from the encoding client to the first remote computing system in the encoded video stream, a set of frames that are encoded relative to the first-resolution non-displayed anchor frame.
    Type: Grant
    Filed: July 8, 2015
    Date of Patent: March 28, 2017
    Assignee: GOOGLE INC.
    Inventors: Aki Kuusela, Aki Tikkala, Ville-Mikko Rautio
  • Publication number: 20170085915
    Abstract: Low-latency two-pass video coding may include identifying an input frame from an input video stream, determining a reduced frame from the input frame, the reduced frame having a size smaller than a size of the input frame, encoding the reduced frame using a first encoder, generating a plurality of encoding parameters based on encoding the reduced frame, generating an encoded frame by encoding the input frame using the first encoder and the plurality of encoding parameters, including the first encoded frame in an output bitstream, and storing or transmitting the output bitstream.
    Type: Application
    Filed: September 21, 2015
    Publication date: March 23, 2017
    Inventor: Aki Kuusela
  • Publication number: 20170013233
    Abstract: A method includes transmitting, from an encoding client to a first remote computing system, an encoded video stream that includes a plurality of first-resolution frames and a plurality of second-resolution frames. The method also includes transmitting, from the encoding client to the first remote computing system in the encoded video stream, a first-resolution non-displayed anchor frame. The method also includes receiving, at the encoding client from the first remote computing system, a request to change resolution. In response to receiving the request to change resolution, the method includes transmitting, from the encoding client to the first remote computing system in the encoded video stream, a set of frames that are encoded relative to the first-resolution non-displayed anchor frame.
    Type: Application
    Filed: July 8, 2015
    Publication date: January 12, 2017
    Inventors: Aki Kuusela, Aki Tikkala, Ville-Mikko Rautio