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: 20200238175Abstract: 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: ApplicationFiled: April 15, 2020Publication date: July 30, 2020Inventors: Clinton Smullen, Dov Zimring, Jani Huoponen, Aki Kuusela, Jean-Francois Roy, Paul Lalonde, Paul Leventis
-
Patent number: 10674152Abstract: 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: GrantFiled: September 18, 2018Date of Patent: June 2, 2020Assignee: GOOGLE LLCInventors: Claudionor Coelho, Dake He, Aki Kuusela, Shan Li
-
Patent number: 10609421Abstract: 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: GrantFiled: July 12, 2018Date of Patent: March 31, 2020Assignee: GOOGLE LLCInventors: Aki Kuusela, Dake He
-
Publication number: 20200092556Abstract: 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: ApplicationFiled: September 18, 2018Publication date: March 19, 2020Inventors: Claudionor Coelho, Dake He, Aki Kuusela, Shan Li
-
Publication number: 20200092552Abstract: 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: ApplicationFiled: September 18, 2018Publication date: March 19, 2020Inventors: Claudionor Coelho, Aki Kuusela, Shan Li, Dake He
-
Patent number: 10547869Abstract: 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: GrantFiled: December 8, 2017Date of Patent: January 28, 2020Assignee: GOOGLE LLCInventors: Aki Kuusela, Dake He
-
Publication number: 20200029098Abstract: 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: ApplicationFiled: July 23, 2018Publication date: January 23, 2020Inventors: Jingning Han, Aki Kuusela, Stanislav Vitvitskyy, Yaowu Xu, Ching-Han Chiang, Dake He
-
Publication number: 20200021855Abstract: 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: ApplicationFiled: July 12, 2018Publication date: January 16, 2020Inventors: Aki Kuusela, Dake He
-
Patent number: 10499078Abstract: 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: GrantFiled: February 7, 2017Date of Patent: December 3, 2019Assignee: GOOGLE LLCInventor: Aki Kuusela
-
Patent number: 10356406Abstract: 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: GrantFiled: January 19, 2016Date of Patent: July 16, 2019Assignee: GOOGLE LLCInventor: Aki Kuusela
-
Publication number: 20190191168Abstract: 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: ApplicationFiled: December 19, 2017Publication date: June 20, 2019Inventors: Aki Kuusela, Daniel Stodolsky, Juha Pekka Maaninen
-
Publication number: 20190182507Abstract: 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: ApplicationFiled: December 8, 2017Publication date: June 13, 2019Inventors: Aki Kuusela, Dake He
-
Publication number: 20190124349Abstract: 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: ApplicationFiled: December 18, 2017Publication date: April 25, 2019Inventors: Aki Kuusela, Dake He
-
Patent number: 10009625Abstract: 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: GrantFiled: October 10, 2017Date of Patent: June 26, 2018Assignee: GOOGLE LLCInventor: Aki Kuusela
-
Publication number: 20180035129Abstract: 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: ApplicationFiled: October 10, 2017Publication date: February 1, 2018Inventor: Aki Kuusela
-
Patent number: 9807416Abstract: 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: GrantFiled: September 21, 2015Date of Patent: October 31, 2017Assignee: GOOGLE INC.Inventor: Aki Kuusela
-
Publication number: 20170208328Abstract: 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: ApplicationFiled: January 19, 2016Publication date: July 20, 2017Inventor: Aki Kuusela
-
Patent number: 9609275Abstract: 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: GrantFiled: July 8, 2015Date of Patent: March 28, 2017Assignee: GOOGLE INC.Inventors: Aki Kuusela, Aki Tikkala, Ville-Mikko Rautio
-
Publication number: 20170085915Abstract: 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: ApplicationFiled: September 21, 2015Publication date: March 23, 2017Inventor: Aki Kuusela
-
Publication number: 20170013233Abstract: 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: ApplicationFiled: July 8, 2015Publication date: January 12, 2017Inventors: Aki Kuusela, Aki Tikkala, Ville-Mikko Rautio