-p100 keeps the same pixel size, but re-compresses the image using different options. There are 2 options that influence quality and file size. There is some loss, but I would say, it is worth the saved file size.
- -qX swicth, where X is a number from 1 to 100. The higher the number, the less is lost and the larger the file. You can experiment with the value to find one that suits you. The default is 60, if you want very high quality, use -q90. I would not recommend higher numbers. If you do a blind test you will not be able to tell the difference.
- one of -x11, -x12, -x21, -x22 switches (-x22 is the default and hence the YCbCr4:2:0). JPG encodes brightness and color information separately and because the human eye is more sensitive to brightness change than to color change, the color information may be donwnsampled. -x22 means there is one color information for a block of 2x2 pixels. Sure, this means some information is lost, but it actually is not. What are the camera guys not telling you is the camera sensors do not have full color resolution anyway - they only sense 1 of the colors (RGB) per pixel and the other information is saved in the .jpg is actually interpolated. With current insane megapixel values, the lens are usually the limiting factor anyway. In short, you lose very little or nothing at all with -x22.
-a+ does not produce corrupted files. It produces valid files that only very few other programs understand at this time, because the algorithm required to support them was covered by a patent that only recently expired. In time, other applications will be updated and will be able to work with these files.