1. A method comprising: receiving a histogram, the histogram having a plurality of ranges, the histogram having a value for each range, the histogram having a time value; generating a pattern of the histogram that compresses the histogram in a lossy manner, the pattern having a zero value for each range having a zero value, the pattern having a one value for each range having a non-zero value; determining whether the pattern of the histogram and the time value of the histogram match any given entry of a pattern table without comparing the histogram itself to the pattern table, the pattern table having a plurality of entries, each entry having an index value, a time range, and a pattern; where the pattern of the histogram and the time value of the histogram match a given entry of the pattern table, the given entry now corresponding to at least two histograms, including the histogram and one or more other histograms; where the pattern of the histogram and the time value of the histogram do not match any given entry of the pattern table, adding a new entry to the pattern table, the time range of the new entry having a start time equal to the time value of the histogram, the pattern of the new entry equal to the pattern of the histogram, the new entry being the given entry that the pattern of the histogram and the time value of the histogram now match; compressing any non-zero values of the ranges of the histogram into a compressed value; and, adding an entry for the histogram to a histogram table different than the pattern table, the entry having the time value of the histogram, the index value of the given entry of the pattern table, and the compressed value of any non-zero values of the ranges of the histogram, the entry added for the histogram to the histogram table corresponding to just the histogram and to no other histogram, such that the histogram is compressed in a lossless manner via the given entry of the pattern table and the entry of the histogram table.