A usage monitor, comprising: at least one processor; and a memory including computer program code executable by the processor to cause the usage monitor to: receive a raster image comprising an array of pixels; identify thresholds (T1, T2, T3) that distinguish different intensity levels reproduced by different drop sizes of a recording material; for each block of one or more blocks of the pixels: identify a set of pixel values for the block of the pixels; characterized in that the processor causes the usage monitor to: perform a vectorized comparison of the set of pixel values to each of the thresholds (T1, T2, T3) to generate sets (1001, 1002, 1003) of comparison bits, wherein each of the sets (1001, 1002, 1003) of comparison bits corresponds with one of the thresholds (T1, T2, T3) and indicates the pixel values that exceed the one of the thresholds (T1, T2, T3); determine a number of set bits in each of the sets (1001, 1002, 1003) of comparison bits; and update a threshold counter (2601, 2602, 2603) for each of the thresholds (T1, T2, T3) based on the number of set bits determined for a corresponding one of the sets (1001, 1002, 1003) of comparison bits; and compute drop counts for the drop sizes based on the threshold counter (2601, 2602, 2603) for each of the thresholds (T1, T2, T3). at least one processor; and a memory including computer program code executable by the processor to cause the usage monitor to: receive a raster image comprising an array of pixels; identify thresholds (T1, T2, T3) that distinguish different intensity levels reproduced by different drop sizes of a recording material; for each block of one or more blocks of the pixels: identify a set of pixel values for the block of the pixels; receive a raster image comprising an array of pixels; identify thresholds (T1, T2, T3) that distinguish different intensity levels reproduced by different drop sizes of a recording material; for each block of one or more blocks of the pixels: identify a set of pixel values for the block of the pixels; characterized in that the processor causes the usage monitor to: perform a vectorized comparison of the set of pixel values to each of the thresholds (T1, T2, T3) to generate sets (1001, 1002, 1003) of comparison bits, wherein each of the sets (1001, 1002, 1003) of comparison bits corresponds with one of the thresholds (T1, T2, T3) and indicates the pixel values that exceed the one of the thresholds (T1, T2, T3); determine a number of set bits in each of the sets (1001, 1002, 1003) of comparison bits; and update a threshold counter (2601, 2602, 2603) for each of the thresholds (T1, T2, T3) based on the number of set bits determined for a corresponding one of the sets (1001, 1002, 1003) of comparison bits; and perform a vectorized comparison of the set of pixel values to each of the thresholds (T1, T2, T3) to generate sets (1001, 1002, 1003) of comparison bits, wherein each of the sets (1001, 1002, 1003) of comparison bits corresponds with one of the thresholds (T1, T2, T3) and indicates the pixel values that exceed the one of the thresholds (T1, T2, T3); determine a number of set bits in each of the sets (1001, 1002, 1003) of comparison bits; and update a threshold counter (2601, 2602, 2603) for each of the thresholds (T1, T2, T3) based on the number of set bits determined for a corresponding one of the sets (1001, 1002, 1003) of comparison bits; and