Patents by Inventor Jan WASSENBERG

Jan WASSENBERG 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: 20240276018
    Abstract: The loss of image quality during compression is controlled using a sequence of quality control metrics. The sequence of quality control metrics is selected for quantizing transform coefficients within an area of the image based on an error level definition. Candidate bit costs are then determined by quantizing the transform coefficients according to the error level definition or a modified error level and the sequence of quality control metrics. Where the candidate bit cost resulting from using the modified error level is lower than the candidate bit cost resulting from using the error level definition, the transform coefficients are quantized according to the modified error level and the sequence of quality control metrics. Otherwise, the transform coefficients are quantized based on the error level definition and according to the sequence of quality control metrics.
    Type: Application
    Filed: April 23, 2024
    Publication date: August 15, 2024
    Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
  • Patent number: 11755287
    Abstract: A method for generating random numbers includes initializing a pseudo-random number generator (PRNG) having a state of 2048 bits comprising inner bits and outer bits, the inner bits comprising the first 128 bits of the 2048 bits and the outer bits comprising the remaining bits of the 2048 bits. The method also includes retrieving AES round keys from a key source, and for a threshold number of times, executing a round function using the AES round keys by XOR'ing odd-numbered branches of a Feistel network having 16 branches of 128 bits with a function of corresponding even-numbered neighbor branches of the Feistel network, and shuffling each branch of 128 bits into a prescribed order. The method also includes executing an XOR of the inner bits of the permuted state with the inner bits of a previous state.
    Type: Grant
    Filed: August 24, 2022
    Date of Patent: September 12, 2023
    Assignee: Google LLC
    Inventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
  • Publication number: 20230016253
    Abstract: The loss of image quality during compression is controlled using a sequence of quality control metrics. The sequence of quality control metrics is selected for quantizing transform coefficients within an area of the image based on an error level definition. Candidate bit costs are then determined by quantizing the transform coefficients according to the error level definition or a modified error level and the sequence of quality control metrics. Where the candidate bit cost resulting from using the modified error level is lower than the candidate bit cost resulting from using the error level definition, the transform coefficients are quantized according to the modified error level and the sequence of quality control metrics. Otherwise, the transform coefficients are quantized based on the error level definition and according to the sequence of quality control metrics.
    Type: Application
    Filed: September 29, 2022
    Publication date: January 19, 2023
    Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
  • Publication number: 20220405058
    Abstract: A method for generating random numbers includes initializing a pseudo-random number generator (PRNG) having a state of 2048 bits comprising inner bits and outer bits, the inner bits comprising the first 128 bits of the 2048 bits and the outer bits comprising the remaining bits of the 2048 bits. The method also includes retrieving AES round keys from a key source, and for a threshold number of times, executing a round function using the AES round keys by XOR'ing odd-numbered branches of a Feistel network having 16 branches of 128 bits with a function of corresponding even-numbered neighbor branches of the Feistel network, and shuffling each branch of 128 bits into a prescribed order. The method also includes executing an XOR of the inner bits of the permuted state with the inner bits of a previous state.
    Type: Application
    Filed: August 24, 2022
    Publication date: December 22, 2022
    Applicant: Google LLC
    Inventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
  • Patent number: 11463733
    Abstract: The loss of image quality during compression is controlled using a sequence of quality control metrics. The sequence of quality control metrics is selected for quantizing transform coefficients within an area of the image based on an error level definition. Candidate bit costs are then determined by quantizing the transform coefficients according to the error level definition or a modified error level and the sequence of quality control metrics. Where the candidate bit cost resulting from using the modified error level is lower than the candidate bit cost resulting from using the error level definition, the transform coefficients are quantized according to the modified error level and the sequence of quality control metrics. Otherwise, the transform coefficients are quantized based on the error level definition and according to the sequence of quality control metrics.
    Type: Grant
    Filed: February 15, 2019
    Date of Patent: October 4, 2022
    Assignee: GOOGLE LLC
    Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
  • Patent number: 11449311
    Abstract: A method for generating random numbers includes initializing a pseudo-random number generator (PRNG) having a state of 2048 bits comprising inner bits and outer bits, the inner bits comprising the first 128 bits of the 2048 bits and the outer bits comprising the remaining bits of the 2048 bits. The method also includes retrieving AES round keys from a key source, and for a threshold number of times, executing a round function using the AES round keys by XOR'ing odd-numbered branches of a Feistel network having 16 branches of 128 bits with a function of corresponding even-numbered neighbor branches of the Feistel network, and shuffling each branch of 128 bits into a prescribed order. The method also includes executing an XOR of the inner bits of the permuted state with the inner bits of a previous state.
    Type: Grant
    Filed: November 7, 2017
    Date of Patent: September 20, 2022
    Assignee: Google LLC
    Inventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
  • Patent number: 11412260
    Abstract: A decoder may perform a method of decompressing images that include texture features that are not aligned with an axis of the image being compressed. In some example implementation, the method may include receiving a block of geometrically transformed pixel values and performing an inverse geometric transformation on the block of geometrically transformed pixel values to generate a first block of pixel values. The geometrically transformed pixel values represent texture features of an image that are non-parallel with a vertical axis or a horizontal axis of the image and the first block of pixel values being one of a plurality of blocks of the image. The example method may further include generating at least a portion of the image based on the first block of pixel values.
    Type: Grant
    Filed: October 24, 2019
    Date of Patent: August 9, 2022
    Assignee: Google LLC
    Inventors: Jyrki Antero Alakuijala, Jan Wassenberg
  • Patent number: 11234022
    Abstract: A method includes obtaining respective filtered pixels for pixels of a reconstructed image; and obtaining an edge-preserved image using the respective filtered pixels. Obtaining the respective filtered pixels includes, for each pixel of the reconstructed image, obtaining a respective filtered pixel by selecting a pixel patch including the pixel and first neighboring pixels of the pixel that are at relative neighboring locations with respect to the pixel; calculating respective weights for the first neighboring pixels; and filtering the pixel using the respective weights of the first neighboring pixels and the neighboring pixels to obtain the respective filtered pixel.
    Type: Grant
    Filed: June 22, 2020
    Date of Patent: January 25, 2022
    Assignee: GOOGLE LLC
    Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
  • Patent number: 11196544
    Abstract: Systems and methods generate reasonably secure hash values at relatively few CPU cycles per byte. An example method includes, for each of a plurality of packets, injecting the packet into an internal state that represents an internal hash sum, mixing the internal state using multiplication, and shuffling the result of the multiplication so that bytes with highest quality are moved to locations that will propagate most widely in a next multiplication operation. Each of the plurality of packets include data from an input to be hashed. In some implementation, a last packet for the input is padded. The method may also include further mixing the internal state using multiplication after processing the plurality of packets and providing, to a requesting process, a portion of the final internal state as a hash of the input.
    Type: Grant
    Filed: November 11, 2019
    Date of Patent: December 7, 2021
    Assignee: GOOGLE LLC
    Inventors: Jyrki Antero Alakuijala, Jan Wassenberg
  • Patent number: 11070808
    Abstract: A spatially adaptive quantization-aware deblocking filter is used for encoding or decoding video or image frames. The deblocking filter receives a reconstructed frame produced based on dequantized and inverse transformed coefficients of a video frame or an image frame. The reconstructed frame is filtered according to adaptive quantization field data for the video or image frame. The adaptive quantization field data represents weights applied to quantization values used at different areas of the video or image frame. A number of blocking artifacts remaining within the resulting filtered frame is determined. The adaptive quantization field data is then adjusted based on that number of blocking artifacts. The filtered frame is then filtered according to the adjusted adaptive quantization field data. The resulting re-filtered frame is then output to an output source, such as for transmission, display, storage, or further processing.
    Type: Grant
    Filed: November 19, 2019
    Date of Patent: July 20, 2021
    Assignee: GOOGLE LLC
    Inventors: Jyrki Alakuijala, Jan Wassenberg
  • Publication number: 20210084339
    Abstract: The loss of image quality during compression is controlled using a sequence of quality control metrics. The sequence of quality control metrics is selected for quantizing transform coefficients within an area of the image based on an error level definition. Candidate bit costs are then determined by quantizing the transform coefficients according to the error level definition or a modified error level and the sequence of quality control metrics. Where the candidate bit cost resulting from using the modified error level is lower than the candidate bit cost resulting from using the error level definition, the transform coefficients are quantized according to the modified error level and the sequence of quality control metrics. Otherwise, the transform coefficients are quantized based on the error level definition and according to the sequence of quality control metrics.
    Type: Application
    Filed: February 15, 2019
    Publication date: March 18, 2021
    Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
  • Publication number: 20200401375
    Abstract: A method for generating random numbers includes initializing a pseudo-random number generator (PRNG) having a state of 2048 bits comprising inner bits and outer bits, the inner bits comprising the first 128 bits of the 2048 bits and the outer bits comprising the remaining bits of the 2048 bits. The method also includes retrieving AES round keys from a key source, and for a threshold number of times, executing a round function using the AES round keys by XOR'ing odd-numbered branches of a Feistel network having 16 branches of 128 bits with a function of corresponding even-numbered neighbor branches of the Feistel network, and shuffling each branch of 128 bits into a prescribed order. The method also includes executing an XOR of the inner bits of the permuted state with the inner bits of a previous state.
    Type: Application
    Filed: November 7, 2017
    Publication date: December 24, 2020
    Applicant: Google LLC
    Inventors: Jan Wassenberg, Obryk Robert, Jyrki Alakuijala, Emmanuel Mogenet
  • Patent number: 10833847
    Abstract: A fast cryptographic hash of an input file using multiplication and permutation operations in a parallel processing environment. An example method includes updating an internal state for each of a plurality of packets, the packets being read from an input file. Updating the state for a packet can include injecting the packet into an internal state, mixing the bits of the internal state using multiplication, and shuffling the result of the multiplication so that bits with highest quality are permuted to locations that will propagate most widely in a next multiplication operation. The method also includes performing a reduction on the internal state and repeating the update of the internal state, the reduction, and the injecting a second time. The method may further include finalizing the internal state and storing a portion of the final internal state as a cryptographic hash of the input file.
    Type: Grant
    Filed: February 22, 2018
    Date of Patent: November 10, 2020
    Assignee: GOOGLE LLC
    Inventors: Jan Wassenberg, Jyrki Antero Alakuijala
  • Publication number: 20200322642
    Abstract: A method includes obtaining respective filtered pixels for pixels of a reconstructed image; and obtaining an edge-preserved image using the respective filtered pixels. Obtaining the respective filtered pixels includes, for each pixel of the reconstructed image, obtaining a respective filtered pixel by selecting a pixel patch including the pixel and first neighboring pixels of the pixel that are at relative neighboring locations with respect to the pixel; calculating respective weights for the first neighboring pixels; and filtering the pixel using the respective weights of the first neighboring pixels and the neighboring pixels to obtain the respective filtered pixel.
    Type: Application
    Filed: June 22, 2020
    Publication date: October 8, 2020
    Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
  • Patent number: 10791343
    Abstract: An encoder and/or a computer implemented encoding method includes a texture module configured to determine texture data associated with texture of an image, a noise module configured to determine noise data based on the texture data, a synthesis module configured to generate spatial spectral characteristics of the noise, and combine at least one of the noise data, the texture data, and the spatial spectral characteristics of the noise based on at least one border between adjacent textures, and an encoding module configured to compress the image using an image compression codec.
    Type: Grant
    Filed: March 13, 2018
    Date of Patent: September 29, 2020
    Assignee: Google LLC
    Inventors: Jyrki Antero Alakuijala, Jan Wassenberg
  • Patent number: 10708626
    Abstract: A method for decoding an image block includes receiving a quantized transform block; generating a decoded block from the quantized transform block; applying an edge-preserving filter to the decoded block, to obtain an edge-filtered decoded block; obtaining a transformed edge-preserved block using a transform type and quantization data to the edge-filtered decoded block; clamping a value of the transformed edge-preserved block to a corresponding value of the quantized transform block to obtain a smoothed transform block; and inverse transforming the smoothed transform block to obtain an edge-preserved smoothed block. The applying an edge-preserving filter to the decoded block includes determining respective patch-based distances between a pixel of the decoded block and neighboring pixels; determining respective weights corresponding to the respective patch-based distances; and filtering the pixel using the respective weights and the neighboring pixels.
    Type: Grant
    Filed: March 12, 2019
    Date of Patent: July 7, 2020
    Assignee: GOOGLE LLC
    Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
  • Publication number: 20200162760
    Abstract: A method for decoding an image block includes receiving a quantized transform block; generating a decoded block from the quantized transform block; applying an edge-preserving filter to the decoded block, to obtain an edge-filtered decoded block; obtaining a transformed edge-preserved block using a transform type and quantization data to the edge-filtered decoded block; clamping a value of the transformed edge-preserved block to a corresponding value of the quantized transform block to obtain a smoothed transform block; and inverse transforming the smoothed transform block to obtain an edge-preserved smoothed block. The applying an edge-preserving filter to the decoded block includes determining respective patch-based distances between a pixel of the decoded block and neighboring pixels; determining respective weights corresponding to the respective patch-based distances; and filtering the pixel using the respective weights and the neighboring pixels.
    Type: Application
    Filed: March 12, 2019
    Publication date: May 21, 2020
    Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
  • Publication number: 20200137421
    Abstract: A decoder may perform a method of decompressing images that include texture features that are not aligned with an axis of the image being compressed. In some example implementation, the method may include receiving a block of geometrically transformed pixel values and performing an inverse geometric transformation on the block of geometrically transformed pixel values to generate a first block of pixel values. The geometrically transformed pixel values represent texture features of an image that are non-parallel with a vertical axis or a horizontal axis of the image and the first block of pixel values being one of a plurality of blocks of the image. The example method may further include generating at least a portion of the image based on the first block of pixel values.
    Type: Application
    Filed: October 24, 2019
    Publication date: April 30, 2020
    Inventors: Jyrki Antero Alakuijala, Jan Wassenberg
  • Publication number: 20200092558
    Abstract: A spatially adaptive quantization-aware deblocking filter is used for encoding or decoding video or image frames. The deblocking filter receives a reconstructed frame produced based on dequantized and inverse transformed coefficients of a video frame or an image frame. The reconstructed frame is filtered according to adaptive quantization field data for the video or image frame. The adaptive quantization field data represents weights applied to quantization values used at different areas of the video or image frame. A number of blocking artifacts remaining within the resulting filtered frame is determined. The adaptive quantization field data is then adjusted based on that number of blocking artifacts. The filtered frame is then filtered according to the adjusted adaptive quantization field data. The resulting re-filtered frame is then output to an output source, such as for transmission, display, storage, or further processing.
    Type: Application
    Filed: November 19, 2019
    Publication date: March 19, 2020
    Inventors: Jyrki Alakuijala, Jan Wassenberg
  • Publication number: 20200076579
    Abstract: Systems and methods generate reasonably secure hash values at relatively few CPU cycles per byte. An example method includes, for each of a plurality of packets, injecting the packet into an internal state that represents an internal hash sum, mixing the internal state using multiplication, and shuffling the result of the multiplication so that bytes with highest quality are moved to locations that will propagate most widely in a next multiplication operation. Each of the plurality of packets include data from an input to be hashed. In some implementation, a last packet for the input is padded. The method may also include further mixing the internal state using multiplication after processing the plurality of packets and providing, to a requesting process, a portion of the final internal state as a hash of the input.
    Type: Application
    Filed: November 11, 2019
    Publication date: March 5, 2020
    Inventors: Jyrki Antero Alakuijala, Jan Wassenberg