Patents by Inventor Juha-Pekka Maaninen
Juha-Pekka Maaninen 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: 11317101Abstract: Inter frame candidate selection may include identifying a current block from a current input frame from an input video stream, and generating an encoded block by encoding the current block, wherein encoding the current block includes determining an inter-coding candidate motion vector. Determining the inter-coding candidate motion vector may include identifying a plurality of motion vectors, wherein the plurality of motion vectors includes a context motion vector identified from a block neighboring the current block in the current input frame, a zero valued motion vector, and an estimated motion vector based on the current block and a reference frame, determining a plurality of cost values by determining a cost value for each respective motion vector from the plurality of motion vectors, and identifying a motion vector from the plurality of motion vectors having a minimal cost value as the inter-coding candidate motion vector.Type: GrantFiled: October 23, 2015Date of Patent: April 26, 2022Inventor: Juha Pekka Maaninen
-
Patent number: 10764590Abstract: Primary and secondary coefficients are identified and used for entropy coding to improve performance. When coding quantized transform coefficients of a transform block, one of those quantized transform coefficients is identified as a primary coefficient. A coefficient map indicating locations of ones of the quantized transform coefficients within the transform block is produced. Valid secondary coefficient associated with the primary coefficient are identified using the coefficient map and data indicating a location of a last non-zero coefficient within the transform block. A token class used to encode one or more neighbor coefficients of the primary coefficient and the valid secondary coefficients is then identified, and a number of bits to use to code the primary coefficient and the valid secondary coefficients is determined based on the token class. The number of bits is determined based on data retrieved from a hardware register and thus determined in a single clock cycle.Type: GrantFiled: November 15, 2017Date of Patent: September 1, 2020Assignee: GOOGLE LLCInventor: Juha Pekka Maaninen
-
Patent number: 10356426Abstract: Encoding and decoding using advanced motion estimation includes generating a first encoded frame by encoding a first frame from the input video stream, generating a reconstructed frame based on the first encoded frame, generating an encoded reference frame by encoding the reconstructed frame, wherein encoding the reconstructed frame includes storing the encoded reference frame in an external memory such that respective blocks from the encoded reference frame are directly accessible, generating a second encoded frame by encoding a second frame from the input video stream, and transmitting or storing the second encoded frame. Encoding the second frame includes generating reconstructed reference frame data, wherein generating the reconstructed reference frame data includes directly retrieving a block from the encoded reference frame from the external memory, and encoding the second frame using the reconstructed reference frame data.Type: GrantFiled: August 21, 2017Date of Patent: July 16, 2019Assignee: GOOGLE LLCInventor: Juha Pekka Maaninen
-
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: 20190149829Abstract: Primary and secondary coefficients are identified and used for entropy coding to improve performance. When coding quantized transform coefficients of a transform block, one of those quantized transform coefficients is identified as a primary coefficient. A coefficient map indicating locations of ones of the quantized transform coefficients within the transform block is produced. Valid secondary coefficient associated with the primary coefficient are identified using the coefficient map and data indicating a location of a last non-zero coefficient within the transform block. A token class used to encode one or more neighbor coefficients of the primary coefficient and the valid secondary coefficients is then identified, and a number of bits to use to code the primary coefficient and the valid secondary coefficients is determined based on the token class. The number of bits is determined based on data retrieved from a hardware register and thus determined in a single clock cycle.Type: ApplicationFiled: November 15, 2017Publication date: May 16, 2019Inventor: Juha Pekka Maaninen
-
Patent number: 10194153Abstract: Bins of a bin string representative of binarized video data are processed to determine whether each bin stores a most probable symbol of a probability model available for coding the binarized video data. If the symbol stored in each bin of the bin string is the most probable symbol, the probability model is updated based on a size of the bin string to determine a first number of bits to use to code the binarized video data. However, if the symbol stored in each bin of the bin string is not the most probable symbol, the probability model is updated based on a number of bins of the bin string storing a symbol that is not the most probable symbol to determine a second number of bits to use to code the binarized video data.Type: GrantFiled: May 18, 2018Date of Patent: January 29, 2019Assignee: GOOGLE LLCInventor: Juha Pekka Maaninen
-
Patent number: 9992496Abstract: Bins of a bin string representative of binarized video data are processed to determine whether each bin stores a most probable symbol of a probability model available for coding the binarized video data. If the symbol stored in each bin of the bin string is the most probable symbol, the probability model is updated based on a size of the bin string to determine a first number of bits to use to code the binarized video data. However, if the symbol stored in each bin of the bin string is not the most probable symbol, the probability model is updated based on a number of bins of the bin string storing a symbol that is not the most probable symbol to determine a second number of bits to use to code the binarized video data.Type: GrantFiled: November 15, 2017Date of Patent: June 5, 2018Assignee: GOOGLE LLCInventor: Juha Pekka Maaninen
-
Publication number: 20170347108Abstract: Encoding and decoding using advanced motion estimation includes generating a first encoded frame by encoding a first frame from the input video stream, generating a reconstructed frame based on the first encoded frame, generating an encoded reference frame by encoding the reconstructed frame, wherein encoding the reconstructed frame includes storing the encoded reference frame in an external memory such that respective blocks from the encoded reference frame are directly accessible, generating a second encoded frame by encoding a second frame from the input video stream, and transmitting or storing the second encoded frame. Encoding the second frame includes generating reconstructed reference frame data, wherein generating the reconstructed reference frame data includes directly retrieving a block from the encoded reference frame from the external memory, and encoding the second frame using the reconstructed reference frame data.Type: ApplicationFiled: August 21, 2017Publication date: November 30, 2017Inventor: Juha Pekka Maaninen
-
Publication number: 20170332094Abstract: Super-wide area motion estimation can include multiple stages of motion search as part of a process for encoding or decoding frames of a video sequence. A first stage motion search includes using a first motion search window centered at a position corresponding to a position of a super index element, which can indicate an area of a frame having motion. An area of possible motion can be determined in response to the first stage motion search to indicate a list of superblocks that are likely to include motion within the frame. A second stage motion search is then performed on superblocks of the list using another motion search window centered at a position corresponding to the area of possible motion. The list of superblocks to be searched in the second stage can be maintained in a cache to reduce memory requirements.Type: ApplicationFiled: December 15, 2016Publication date: November 16, 2017Inventor: Juha Pekka Maaninen
-
Patent number: 9781418Abstract: This disclosure relates to implementing an adaptive deadzone for one or more quantized coefficients in a quantized block. In particular, one or more candidate blocks with one or more coefficients and an end of block (EOB) indicator are generated. The one or more coefficients are a subset of the one or more quantized coefficients in the quantized block. A cost value for each of the one or more candidate blocks is calculated based at least in part on a rate value and a distortion value of the one or more coefficients in each of the one or more candidate blocks. Accordingly, a candidate block from the one or more candidate blocks with a lowest calculated cost value is selected as an output block.Type: GrantFiled: June 12, 2012Date of Patent: October 3, 2017Assignee: GOOGLE INC.Inventors: Juha Pekka Maaninen, Janne Salonen
-
Patent number: 9743103Abstract: Encoding and decoding using advanced motion estimation may include encoding a video stream including a plurality of frames by generating a first encoded frame based on a first frame from the plurality of frames, generating a first reconstructed frame based on the first encoded frame, generating reference frame index information based on the first reconstructed frame, generating an encoded reference frame based on the first reconstructed frame, generating a second reconstructed reference frame based on the encoded reference frame, and generating a second encoded frame based on a second frame from the plurality of frames, the reference frame index information, and the second reconstructed reference frame.Type: GrantFiled: April 11, 2016Date of Patent: August 22, 2017Assignee: GOOGLE INC.Inventor: Juha Pekka Maaninen
-
Patent number: 9313493Abstract: Encoding and decoding using advanced motion estimation may include encoding a video stream including a plurality of frames by generating a first encoded frame based on a first frame from the plurality of frames, generating a first reconstructed frame based on the first encoded frame, generating reference frame index information based on the first reconstructed frame, generating an encoded reference frame based on the first reconstructed frame, generating a second reconstructed reference frame based on the encoded reference frame, and generating a second encoded frame based on a second frame from the plurality of frames, the reference frame index information, and the second reconstructed reference frame.Type: GrantFiled: June 27, 2013Date of Patent: April 12, 2016Assignee: GOOGLE INC.Inventor: Juha Pekka Maaninen
-
Publication number: 20160044332Abstract: Inter frame candidate selection may include identifying a current block from a current input frame from an input video stream, and generating an encoded block by encoding the current block, wherein encoding the current block includes determining an inter-coding candidate motion vector. Determining the inter-coding candidate motion vector may include identifying a plurality of motion vectors, wherein the plurality of motion vectors includes a context motion vector identified from a block neighboring the current block in the current input frame, a zero valued motion vector, and an estimated motion vector based on the current block and a reference frame, determining a plurality of cost values by determining a cost value for each respective motion vector from the plurality of motion vectors, and identifying a motion vector from the plurality of motion vectors having a minimal cost value as the inter-coding candidate motion vector.Type: ApplicationFiled: October 23, 2015Publication date: February 11, 2016Inventor: Juha Pekka Maaninen
-
Patent number: 9172970Abstract: This disclosure relates to selecting an inter frame candidate for encoding. In particular, one or more previous motion vectors for a current block and a zero valued motion vector are selected. At least one of the one or more previously determined motion vectors is generated for a neighboring block in a current frame. Additionally, an estimated motion vector is determined based at least in part on a sum of absolute difference (SAD) calculation and a penalty value. A cost value for each of the one or more previous motion vectors, the zero valued motion vector and the estimated motion vector are calculated based at least in part on a sum of squared differences (SSD) calculation. Accordingly, a motion vector with a lowest cost value is selected from the one or more previous motion vectors, the zero motion vector and the estimated motion vector as an inter frame candidate for encoding.Type: GrantFiled: June 12, 2012Date of Patent: October 27, 2015Assignee: GOOGLE INC.Inventor: Juha Pekka Maaninen
-
Patent number: 9153230Abstract: A method for executing a mobile speech recognition software application based on a multi-layer neural network model includes providing to a hardware accelerator in the mobile device to classify one or more frames of an audio signal. The hardware accelerator includes a multiplier-accumulator (MAC) unit to perform matrix multiplication operations involved in computing the neural network output.Type: GrantFiled: October 23, 2012Date of Patent: October 6, 2015Assignee: Google Inc.Inventor: Juha-Pekka Maaninen
-
Publication number: 20150199963Abstract: A method for executing a mobile speech recognition software application based on a multi-layer neural network model includes providing to a hardware accelerator in the mobile device to classify one or more frames of an audio signal. The hardware accelerator includes a multiplier-accumulator (MAC) unit to perform matrix multiplication operations involved in computing the neural network output.Type: ApplicationFiled: October 23, 2012Publication date: July 16, 2015Applicant: GOOGLE INC.Inventor: Juha-Pekka Maaninen
-
Patent number: 8948529Abstract: In accordance with aspects of the disclosure, devices and methods are provided for receiving uncompressed image data and performing multi-pass encoding of the uncompressed image data including encoding a frame of the uncompressed image data in a first pass, storing predictor pixels from the encoded frame in a memory, and re-encoding the frame of the uncompressed image data in a second pass using the stored predictor pixels from the first pass.Type: GrantFiled: October 30, 2012Date of Patent: February 3, 2015Assignee: Google Inc.Inventor: Juha-Pekka Maaninen