The majority of photos you already have most likely contain thumbnail and larger preview images embedded in the EXIF header.
Raw images typically contain an embedded, full-sized JPEG version of the image as well.
All of these are easily extracted with `exiftool -b -NameOfBinaryTag $file > thumb.jpg`.
I've found while making PhotoStructure that the quality of these embedded images are surprisingly inconsistent, though. Some makes and models do odd things, like handle rotation inconsistently, add black bars to the image (presumably to fit the camera display whose aspect ratio is different from the sensor), render the thumb with a color or gamma shift, or apply low quality reduction algorithms (apparent due to nearest-neighbor jaggies).
I ended up having to add a setting that lets users ignore these previews or thumbnails (to choose between "fast" and "high quality").
The point is to have originals available at a good compression rate.
Having a thumbnail in the original sucks, as I don’t want lossy compression on my originals.
Browse thumbnails, open original. Without any processes to generate / keep in sync these files.