Remix.run Logo
esperent 3 days ago

You can rotate (in 90 degree increments) and mirror jpgs losslessly. I assume it doesn't require much ram or compute since you're just reordering the blocks.

https://www.betterjpeg.com/lossless-rotation.htm

perching_aix 3 days ago | parent | next [-]

Having read that article, I'd say this is not really an honest takeaway. I mean, I guess it is lossless, it just really flies in the face of what I'd consider reasonable baseline expectations.

They offer three "solutions" to the issue of partial blocks:

- cut them off and stop worrying about it

- show whatever the original JPEG encoder put there and stop worrying about it

- replace whatever the original JPEG encoder put there and stop worrying about it

I cannot imagine anyone honestly considering these and then shipping them. It's fine if the user manually consents, but automated, this is pretty objectionable. Extending the image in arbitrary ways or cutting off of it is really not what I'd expect from a codec to do when I ask it to perform a lossless transformation, particularly specific ones, like flip and rotate, which I'd expect to be outright periodic. And periodicity is violated immediately with the dimensions changing.

esperent 3 days ago | parent [-]

Does the issue of partial blocks come up for any real world sensor sizes?

perching_aix 3 days ago | parent [-]

Considering I'd need to enumerate every single sensor in former or current production to answer that, that's a very good question indeed. I have no idea dude.

Are all JPEGs photos, following sensor pixel dimensions?

3 days ago | parent | prev | next [-]
[deleted]
3 days ago | parent | prev [-]
[deleted]