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: 20240276018Abstract: 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: ApplicationFiled: April 23, 2024Publication date: August 15, 2024Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
-
Patent number: 11755287Abstract: 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: GrantFiled: August 24, 2022Date of Patent: September 12, 2023Assignee: Google LLCInventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
-
Publication number: 20230016253Abstract: 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: ApplicationFiled: September 29, 2022Publication date: January 19, 2023Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
-
Publication number: 20220405058Abstract: 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: ApplicationFiled: August 24, 2022Publication date: December 22, 2022Applicant: Google LLCInventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
-
Patent number: 11463733Abstract: 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: GrantFiled: February 15, 2019Date of Patent: October 4, 2022Assignee: GOOGLE LLCInventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
-
Patent number: 11449311Abstract: 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: GrantFiled: November 7, 2017Date of Patent: September 20, 2022Assignee: Google LLCInventors: Jan Wassenberg, Robert Obryk, Jyrki Alakuijala, Emmanuel Mogenet
-
Patent number: 11412260Abstract: 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: GrantFiled: October 24, 2019Date of Patent: August 9, 2022Assignee: Google LLCInventors: Jyrki Antero Alakuijala, Jan Wassenberg
-
Patent number: 11234022Abstract: 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: GrantFiled: June 22, 2020Date of Patent: January 25, 2022Assignee: GOOGLE LLCInventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
-
Patent number: 11196544Abstract: 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: GrantFiled: November 11, 2019Date of Patent: December 7, 2021Assignee: GOOGLE LLCInventors: Jyrki Antero Alakuijala, Jan Wassenberg
-
Patent number: 11070808Abstract: 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: GrantFiled: November 19, 2019Date of Patent: July 20, 2021Assignee: GOOGLE LLCInventors: Jyrki Alakuijala, Jan Wassenberg
-
Publication number: 20210084339Abstract: 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: ApplicationFiled: February 15, 2019Publication date: March 18, 2021Inventors: Jyrki Alakuijala, Robert Obryk, Evgenii Kliuchnikov, Zoltan Szabadka, Jan Wassenberg, Minttu Alakuijala, Lode Vandevenne
-
Publication number: 20200401375Abstract: 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: ApplicationFiled: November 7, 2017Publication date: December 24, 2020Applicant: Google LLCInventors: Jan Wassenberg, Obryk Robert, Jyrki Alakuijala, Emmanuel Mogenet
-
Patent number: 10833847Abstract: 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: GrantFiled: February 22, 2018Date of Patent: November 10, 2020Assignee: GOOGLE LLCInventors: Jan Wassenberg, Jyrki Antero Alakuijala
-
Publication number: 20200322642Abstract: 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: ApplicationFiled: June 22, 2020Publication date: October 8, 2020Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
-
Patent number: 10791343Abstract: 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: GrantFiled: March 13, 2018Date of Patent: September 29, 2020Assignee: Google LLCInventors: Jyrki Antero Alakuijala, Jan Wassenberg
-
Patent number: 10708626Abstract: 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: GrantFiled: March 12, 2019Date of Patent: July 7, 2020Assignee: GOOGLE LLCInventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
-
Publication number: 20200162760Abstract: 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: ApplicationFiled: March 12, 2019Publication date: May 21, 2020Inventors: Jan Wassenberg, Jyrki Alakuijala, Sami Boukortt
-
Publication number: 20200137421Abstract: 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: ApplicationFiled: October 24, 2019Publication date: April 30, 2020Inventors: Jyrki Antero Alakuijala, Jan Wassenberg
-
Publication number: 20200092558Abstract: 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: ApplicationFiled: November 19, 2019Publication date: March 19, 2020Inventors: Jyrki Alakuijala, Jan Wassenberg
-
Publication number: 20200076579Abstract: 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: ApplicationFiled: November 11, 2019Publication date: March 5, 2020Inventors: Jyrki Antero Alakuijala, Jan Wassenberg