4 ms·
Please see AVIF (https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF) https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVI...) for an open, ro
by arghwhat 7y ago
Please see AVIF (https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVIF) https://en.wikipedia.org/wiki/AV1#AV1_Image_File_Format_(AVI...) for an open, royalty-free alternative with similar or better performance.
And if you must use HEVC-based imaging, consider HEIF which has considerable support.
- cyborgx7 7y agoI actually just discovered AVIF from the related links in this submission. Firefox planning to support it sounds promising.
- theandrewbailey 7y agoLast week, I encoded a bunch of images into AVIF. For the same dimensions and roughly same file size, AVIF images are dramatically clearer than JPEG. I wish I could start using them right now, but: 1. The AVIF encoder I was using[0] is based off libaom, which means a 1080p image takes almost 30 seconds to encode. rav1e is supposedly much faster, so I wonder how well it would do for AVIF. 2. Almost no viewer or browser support, and what does is usually some kind of beta or preview. (VLC nightly, Windows 10 AV1 plugin[1]) [0] https://github.com/Kagami/go-avif https://github.com/Kagami/go-avif [1] https://www.microsoft.com/en-us/p/av1-video-extension-beta/9mvzqvxjbq9v https://www.microsoft.com/en-us/p/av1-video-extension-beta/9...
- dspillett 7y ago> Almost no viewer or browser support For browser support it should be possible to implement a poly-fill similar to https://github.com/UprootLabs/poly-flif https://github.com/UprootLabs/poly-flif which renders images in the FLIF format (https://flif.info/ https://flif.info/) into canvas elements. FLIF as a format might be worth looking at while you are reviewing the area.
- theandrewbailey 7y agoThere is an AVIF polyfill, but it has lots of important edge cases. https://github.com/Kagami/avif.js https://github.com/Kagami/avif.js I'd rather keep it simple and not deal with more JS, and I'm OK with using JPEG for now. (I've been using mozJPEG for years)
- arghwhat 7y ago> which means a 1080p image takes almost 30 seconds to encode. As you mention, rav1e would help, but HEVC/HEIF is only acceptable in speed due to hardware support. AV1 is slowly making its way into silicon, though. I'm personally interested in seeing this make its way into cameras - even when I shoot in RAW, I often just use the off-camera JPG. I'd love for that to be AVIF instead.
- pornel 7y agoHEIC/AVIF container is a complicated kitchen sink. It's closer to being a PowerPoint file than an image format. It's an unnecessarily large attack surface and a ton of features that nobody will (correctly) use anyway. The reference implementation is a ton of C++ code I would not dare to use in a security-sensitive application. OTOH libpng is a single C file, and it just wraps a single HEVC payload. For that reason I'd say that if you can license HEVC, use BPG, not HEIF. And I'd love to have an AV1-based BPG version.
- littlestymaar 7y agosmall typo: libbpg, not libpng
- anoncareer0212 7y agoThanks, very small but led me to jump to complete misunderstandings about bpg, png, and libpng
- arghwhat 7y ago> HEIC/AVIF container is a complicated kitchen sink. It's closer to being a PowerPoint file than an image format. This is untrue. While anything written by a working group that isn't trying to get to the moon with a below-average calculator will be more complicated than necessary, it is not a kitchen sink. Both AVIF and HEIF store just a sequence of images with metadata (EXIF, depth maps, animation frame timings, profiles, ...). It's comprehensive, sure, but not a kitchen sink. The AVIF spec is quite readable: https://aomediacodec.github.io/av1-avif/ https://aomediacodec.github.io/av1-avif/ > The reference implementation is a ton of C++ code I would not dare to use in a security-sensitive application. You shouldn't be concerned because the implementation is big—you should be concerned because it is of non-zero length and parsing wild data. You need a safe port regardless if you're going to play the security sensitive card. BGP being C is an equal liability. I don't want neither BGP nor HEIF to become popular at the cost of AVIF due to being based on HEVC, but I see no significant differentiation between them—HEIF is already established and does the trick.
- TD-Linux 7y ago
- Tinfoilhat666 7y agoI wish they won't use .avif file extension. It becomes .avi on old systems with 3 letter extensions! AV1 already looks like AVI. avif will be even more confusing.
- Freak_NL 7y agoWhich currently supported OS limits extensions to three letters this day? Only EOL'ed Windows versions come to mind, but these are not relevant for a new file format.