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: 11317101
    Abstract: 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: Grant
    Filed: October 23, 2015
    Date of Patent: April 26, 2022
    Inventor: Juha Pekka Maaninen
  • Patent number: 10764590
    Abstract: 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: Grant
    Filed: November 15, 2017
    Date of Patent: September 1, 2020
    Assignee: GOOGLE LLC
    Inventor: Juha Pekka Maaninen
  • Patent number: 10356426
    Abstract: 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: Grant
    Filed: August 21, 2017
    Date of Patent: July 16, 2019
    Assignee: GOOGLE LLC
    Inventor: Juha Pekka Maaninen
  • 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: 20190149829
    Abstract: 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: Application
    Filed: November 15, 2017
    Publication date: May 16, 2019
    Inventor: Juha Pekka Maaninen
  • Patent number: 10194153
    Abstract: 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: Grant
    Filed: May 18, 2018
    Date of Patent: January 29, 2019
    Assignee: GOOGLE LLC
    Inventor: Juha Pekka Maaninen
  • Patent number: 9992496
    Abstract: 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: Grant
    Filed: November 15, 2017
    Date of Patent: June 5, 2018
    Assignee: GOOGLE LLC
    Inventor: Juha Pekka Maaninen
  • Publication number: 20170347108
    Abstract: 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: Application
    Filed: August 21, 2017
    Publication date: November 30, 2017
    Inventor: Juha Pekka Maaninen
  • Publication number: 20170332094
    Abstract: 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: Application
    Filed: December 15, 2016
    Publication date: November 16, 2017
    Inventor: Juha Pekka Maaninen
  • Patent number: 9781418
    Abstract: 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: Grant
    Filed: June 12, 2012
    Date of Patent: October 3, 2017
    Assignee: GOOGLE INC.
    Inventors: Juha Pekka Maaninen, Janne Salonen
  • Patent number: 9743103
    Abstract: 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: Grant
    Filed: April 11, 2016
    Date of Patent: August 22, 2017
    Assignee: GOOGLE INC.
    Inventor: Juha Pekka Maaninen
  • Patent number: 9313493
    Abstract: 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: Grant
    Filed: June 27, 2013
    Date of Patent: April 12, 2016
    Assignee: GOOGLE INC.
    Inventor: Juha Pekka Maaninen
  • Publication number: 20160044332
    Abstract: 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: Application
    Filed: October 23, 2015
    Publication date: February 11, 2016
    Inventor: Juha Pekka Maaninen
  • Patent number: 9172970
    Abstract: 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: Grant
    Filed: June 12, 2012
    Date of Patent: October 27, 2015
    Assignee: GOOGLE INC.
    Inventor: Juha Pekka Maaninen
  • Patent number: 9153230
    Abstract: 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: Grant
    Filed: October 23, 2012
    Date of Patent: October 6, 2015
    Assignee: Google Inc.
    Inventor: Juha-Pekka Maaninen
  • Publication number: 20150199963
    Abstract: 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: Application
    Filed: October 23, 2012
    Publication date: July 16, 2015
    Applicant: GOOGLE INC.
    Inventor: Juha-Pekka Maaninen
  • Patent number: 8948529
    Abstract: 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: Grant
    Filed: October 30, 2012
    Date of Patent: February 3, 2015
    Assignee: Google Inc.
    Inventor: Juha-Pekka Maaninen