+ prev = previous_image;
+ for (row = 0; row < HEIGHT; row++) {
+ for (col = 0; col < STRIDE; col++) {
+ bits = *line++;
+ if (bits != *prev) {
+ *prev = bits;
+ if (row < min_row)
+ min_row = row;
+ if (row > max_row)
+ max_row = row;
+ if (col < min_col)
+ min_col = col;
+ if (col > max_col)
+ max_col = col;
+ }
+ prev++;
+ }
+ }
+
+ if (min_col > max_col || min_row > max_row)
+ return;
+
+ min_page = min_row >> 3;
+ max_page = max_row >> 3;
+ line = bitmap->base + min_page * 8 * STRIDE + min_col;
+
+ uint8_t first_col = (uint8_t) (min_col * 32);
+ uint8_t num_col = (uint8_t) (max_col + 1 - min_col) * 32;
+
+ for (page = min_page; page <= max_page; page++) {