Compression of user-drawn "whiteboard" image
Don't store the rasterized image instead store the drawn strokes as vector graphics. Those should compress pretty well.

Adding timestamps to each stroke should then be very simple.

You can caching the rasterized image during execution to avoid needing to rerender every stroke every frame.