X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/97f850c55daaf35929b87fdc7f335556d17e0edc..a6bf5822695c1e3608f1692398d47e28a9623a79:/codec-image.inc.pl
diff --git a/codec-image.inc.pl b/codec-image.inc.pl
index 21ce9a1..6c138ab 100644
--- a/codec-image.inc.pl
+++ b/codec-image.inc.pl
@@ -1,6 +1,7 @@
use utf8;
+{
intro => 'Comparison of image encoding formats, based on Cloudinary research.',
+keywords => [qw( image picture codec encoder encoding decode compression file format type mime )],
codec => {
jpeg => {
name => 'JPEG',
@@ -50,7 +51,7 @@ codec => {
},
feature => {
default => {
- children => [qw( quality_photo quality_art speed limits features royalties overhead support )],
+ children => [qw( quality_photo quality_art speed limits features royalties overhead support web )],
},
quality_photo => {
name => 'compression (photo)',
@@ -65,11 +66,26 @@ feature => {
avif => 5,
jxl => 5,
},
- children => [qw( quality_photo_1 quality_photo_2 quality_photo_3 quality_photo_ll )],
+ children => [qw( quality_photo_ll quality_photo_3 quality_photo_2 quality_photo_1 quality_thumbs )],
},
- quality_photo_1 => {
+ quality_thumbs => {
parent => 'quality_photo',
name => 'thumbnails',
+ score => {
+ jpeg => 1,
+ pnm => 1,
+ gif => 2,
+ png => 3,
+ jp2k => 1,
+ webp => 2,
+ heic => 4,
+ avif => 4,
+ jxl => 3,
+ },
+ },
+ quality_photo_1 => {
+ parent => 'quality_photo',
+ name => 'low fidelity',
score => {
jpeg => 2,
pnm => 1,
@@ -123,7 +139,7 @@ feature => {
jp2k => 4,
webp => 3,
heic => 3,
- avif => 3,
+ avif => 2,
jxl => 5,
},
},
@@ -344,7 +360,7 @@ feature => {
avif => 4,
jxl => 5,
},
- children => [qw( animation progressive alpha depthmap overlays authoring reencode compat_jpeg )],
+ children => [qw( animation progressive alpha depthmap overlays vector authoring reencode compat_jpeg )],
},
animation => {
parent => 'features',
@@ -376,6 +392,21 @@ feature => {
jxl => 5,
},
},
+ vector => {
+ parent => 'features',
+ name => 'vector drawing',
+ score => {
+ jpeg => 'n',
+ pnm => 'n',
+ gif => 'n',
+ png => 'n',
+ jp2k => 'n',
+ webp => 'n',
+ heic => 'n',
+ avif => 'n',
+ jxl => [2, undef, 'splines'],
+ },
+ },
alpha => {
parent => 'features',
name => 'alpha transparency',
@@ -481,17 +512,33 @@ feature => {
},
children => [],
},
+ web => {
+ name => 'browser support',
+ score => {
+ jpeg => [5, undef, 'ubiquitous since first inline images (1993)'],
+ pnm => [1, undef, 'rarely by (unix) systems'],
+ xbm => [2, undef, 'common before 200X'],
+ gif => [5, undef, 'predates the web, but unrestricted since 2004'],
+ png => [5, undef, 'problematic prior to IE7, currently ubiquitous'],
+ jp2k => [2, undef, 'just Safari'],
+ webp => [4, undef, 'widespread since 2020'],
+ heic => [1, undef, 'no browser support'],
+ avif => [3, undef, 'significant since 2021 (Safari 2023, no Edge yet)'],
+ jxl => [2, undef, 'experimental, blocked by chrome'],
+ },
+ },
support => {
+ name => 'adoption',
score => {
- jpeg => 5,
- pnm => [2, undef],
- gif => 5,
- png => 5,
- jp2k => [2, undef, 'Apple only'],
- webp => [4, undef, 'modern browsers'],
- heic => [1, undef, 'stored by latest cameras, no browser support'],
- avif => [3, undef, 'all modern browsers except Safari and Edge'],
- jxl => [2, undef, 'upcoming in most browsers'],
+ jpeg => [5, undef, 'standard photography'],
+ pnm => [2, undef, 'uncomplicated bitmap interchange'],
+ gif => [4, undef, 'declining due to limitations'],
+ png => [5, undef, 'standard illustrations'],
+ jp2k => [3, undef, 'limited beyond Apple'],
+ webp => [4, undef, 'mostly online'],
+ heic => [2, undef, 'stored by latest cameras, interchange unlikely'],
+ avif => [3, undef, 'upcoming'],
+ jxl => [2, undef, 'ongoing'],
},
},
overhead => {