5 ms·
I've been looking for an algorithm for a while to examine photos to get their "real" resolution, both to compress my personal collection better, and to provide
by jerf 7y ago
I've been looking for an algorithm for a while to examine photos to get their "real" resolution, both to compress my personal collection better, and to provide a relatively rigorous demonstration of when a "12 megapixel photo" is "really" a 2MP photo due to the camera as a whole not being able to support it. I wonder if this could be the basis for what I'm looking for.
- raymondh 7y agoSee also: https://arxiv.org/pdf/1810.06631.pdf https://arxiv.org/pdf/1810.06631.pdf
- jobigoud 7y agoNaive idea: do a downscale-upscale roundtrip using bilinear interpolation and then compare that with the original. Any difference should be the added value over the lower res. This diff image would contain noise and signal though, the final score should increase with the signal noise ratio.
- ska 7y agoFor compressing your personal collection, you are probably best off doing a parameter search with a desired max/average error. Too many variables in image quality to do anything based on signal chain alone, probably. As fare as a rigorous demonstration goes, that's what resolution targets are for :)
- the8472 7y agothis is intended to find the native resolution of upscaled anime, but maybe the getnative tool or the fourier approach can help pointing at the original resolution of a blown up photograph. https://github.com/Infiziert90/getnative https://github.com/Infiziert90/getnative https://ddl.kageru.moe/kbz12.pdf https://ddl.kageru.moe/kbz12.pdf
- mehrdadn 7y agoBe glad you're not taking RAW photos, or this isn't even an option. :( Anyone have any suggestions for doing the same thing for video?
- ChrisLomont 7y agoRAW usually compresses, just not as well as lossy. For example, the lossless FLIF image format usually compresses images quite well (and it's lossless - you can binary compare the before and roundtrip images to check). For video, I suspect there's things like FLIF, but with interframe knowledge, allowing even more compression. None of these should beat good lossy codecs, but they vastly outperform completely uncompressed data for the stuff people normally capture. If you somehow capture true random noise, then these wont' work. But most recordings of interest are much more structured, hence compressible. https://flif.info/ https://flif.info/
- mehrdadn 7y agoNot really. Some RAWs from some cameras do compress, but not others. (Not sure why; maybe it's already pre-compressed.) As an example, I tried just compressing a random 30MB RAW from my camera (just a photo of jeans, nothing particularly unusual) with 7z on Ultra compression, and it saved—guess what—a whopping 2.2% of its size.
- pletnes 7y agoThe RAW format is probably using e.g zlib for compression internally. You can check by calculating how many bytes in total a truly raw image is: 12-16 bits (1.5-2 byte) per pixel.
- remcob 7y ago7z is a generic lossless compressor. These algorithms tend to specialize in exact repeating patterns in sequences. Good for english prose, but images tend to have non-exact patterns in two dimension. A dedicated algorithm like FLIF will be much better at picking those up. I would expect an order of magnitude difference in performance between 7z and FLIF. For the curious: the way these non-exact pattern compressors work is by subtracting out the predicted pattern and then storing the remaining signal, which will be smaller numbers and therefore take less bits to store.
- ChrisLomont 7y ago
- ipunchghosts 7y agoI doubt it. The method they are using makes a bunch of implicit assumptions about the content of the image. Microscope images generally are very sparse and have lots of black areas which makes this method work very well on them. At the very least, you may have to adapt some of the parameters (like dt in max finder) to work for photographs.