Also, you mentioned JPEG, which, err, will not work *at all* as a storage format for dithered images, as the JPEG encoding process will essentially wreck the dithering.
You can thankfully safely switch to PNG, though, and if they're grayscaled and dithered and actually stored like that, you shouldn't see a massive difference in storage space (in fact, might even be more efficient than JPG).

.
Sidebar: IIRC, Calibre already does an optimizing pass on any image it outputs, so using jpg/png crunching tools manually *should* be a fairly redundant process

.