IP Library Granted Patent US 12,373,989
Granted Patent B2
US 12,373,989 · App. 17/588,114 · Granted Jul 29, 2025

Lossless compression techniques

Inventors: Sorin Constantin Cismas (Saratoga, CA); Ali Sazegari (Los Altos, CA); Christian Thomas Martelock (Bonn, DE); Guy Cote (Aptos, CA)
Assignee: Apple Inc.
G06T9/00G06T7/11G06T2207/20021
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,373,989
App. No.
17/588,114
Granted
Jul 29, 2025
Kind
B2
Abstract

Compression techniques are described. In an embodiment, a first plane of sensor data is accessed, the first plane of sensor data is divided into a plurality of slices, each sample is encoded in each slice from the plurality of slices, where encoding a sample include computing a median based prediction for the sample, computing an error for the sample comprising a difference between the sample and the computed median based prediction, determining a context for the sample, selecting a model for the sample by using the determined context, and encoding the computed error by using the selected model.

Claims (53)

1. A method for compression of data, the method comprising:

accessing a first plane of sensor data;

dividing the first plane of sensor data into a plurality of slices;

encoding each sample in each slice from the plurality of slices, wherein encoding a sample comprises:

computing a median based prediction for the sample;

computing an error for the sample comprising a difference between the sample and the computed median based prediction;

determining a context for the sample;

selecting a model for the sample by using the determined context; and

encoding the computed error by using the selected model.

2. The method of claim 1 , wherein the context is a three-dimensional context.

3. The method of claim 1 , wherein for at least one sample, determining the context comprises determining the context by using at least one previously processed sample.

4. The method of claim 1 , wherein the first plane of sensor data is data for a single component of a frame of sensor data,

wherein the frame of sensor data includes data for a plurality of components, the method further comprising:

accessing the frame of sensor data;

separating the accessed frame of sensor data into a plurality of planes including the first plane; and

assigning each slice of the first plane to a processing core of a plurality of processing cores, wherein for each slice, the processing core assigned to the slice encodes samples of the plane.

5. The method of claim 1 , wherein the sensor data is at least one of lidar data, thermal data, image data, and infrared data.

6. The method of claim 1 , wherein dividing the first plane of sensor data into a plurality of slices comprises slicing the sensor data at least one of horizontally or vertically.

7. The method of claim 1 , further comprising: applying run length encoding.

8. The method of claim 1 , further comprising: gathering statistics for each accessed plane of sensor data to precompute a plurality of models; and storing parameters for the plurality of models.

9. The method of claim 8 , further comprising: decoding the encoded sensor data using the plurality of models.

10. The method of claim 1 , wherein the first plane is processed from left to right, and wherein for at least one sample, determining the context comprises determining the context by using previously processed sample data that is positioned relative to the sample in at least one of in a row processed prior to the sample or to the left of the sample.

11. A system comprising:

one or more processors;

memory storing instructions that when executed by the one or more processors, causes the one or more processors to perform operations comprising:

accessing a first plane of sensor data;

dividing the first plane of sensor data into a plurality of slices;

encoding each sample in each slice from the plurality of slices, wherein encoding a sample comprises:

computing a median based prediction for the sample;

computing an error for the sample comprising a difference between the sample and the computed median based prediction;

determining a context for the sample;

selecting a model for the sample by using the determined context; and

encoding the computed error by using the selected model.

12. The system of claim 11 , wherein the context is a three-dimensional context.

13. The system of claim 11 , wherein for at least one sample, determining the context comprises determining the context by using at least one previously processed sample.

14. The system of claim 11 , wherein the first plane of sensor data is data for a single component of a frame of sensor data, wherein the frame of sensor data includes data for a plurality of components, the operations further comprising:

accessing the frame of sensor data;

separating the accessed frame of sensor data into a plurality of planes including the first plane; and

assigning each slice of the first plane to a processing core of a plurality of processing cores, wherein for each slice, the processing core assigned to the slice encodes samples of the plane.

15. The system of claim 11 , wherein the sensor data is at least one of lidar data, thermal data, image data, and infrared data.

16. The system of claim 11 , wherein dividing the first plane of sensor data into a plurality of slices comprises slicing the sensor data at least one of horizontally or vertically.

17. The system of claim 11 , the operations further comprising: applying run length encoding.

18. The system of claim 11 , the operations further comprising: gathering statistics for each accessed plane of sensor data to precompute a plurality of models; and storing parameters for the plurality of models.

19. The system of claim 11 , the operations further comprising: decoding the encoded sensor data using the plurality of models.

20. A non-transitory machine-readable medium having instructions stored thereon, wherein the instructions cause one or more processors of an electronic device to perform operations comprising:

accessing a first plane of sensor data;

dividing the first plane of sensor data into a plurality of slices;

encoding each sample in each slice from the plurality of slices, wherein encoding a sample comprises:

computing a median based prediction for the sample;

computing an error for the sample comprising a difference between the sample and the computed median based prediction;

determining a context for the sample;

selecting a model for the sample by using the determined context; and

encoding the computed error by using the selected model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2022
From: CISMAS, SORIN CONSTANTIN; SAZEGARI, ALI; MARTELOCK, CHRISTIAN THOMAS; COTE, GUY
To: APPLE INC.
Reel/Frame 058817/0152 →
Continuity (2)
Provisional Application 63243529 · Sep 13, 2021
Related Publication 20230078235A1 · Mar 16, 2023
References Cited (8)
US 8867614B2 · Shiodera et al. · 2014 [cited by applicant]
US 10049427B1 · Lachowsky · 2018 [cited by examiner]
US 10069511B2 · Dubey · 2018 [cited by examiner]
US 10284852B2 · Possos et al. · 2019 [cited by applicant]
US 20200380732A1 · Lindberg · 2020 [cited by examiner]
US 20220215595A1 · Schroers · 2022 [cited by examiner]
US 20230078235A1 · Cismas · 2023 [cited by examiner]
US 20230091602A1 · Li · 2023 [cited by examiner]