codec: some random additional image and audio features
authorMischa POSLAWSKY <perl@shiar.org>
Sun, 15 May 2022 23:30:24 +0000 (01:30 +0200)
committerMischa POSLAWSKY <perl@shiar.org>
Thu, 13 Apr 2023 12:08:42 +0000 (14:08 +0200)
AFAICT.

codec-audio.inc.pl
codec-image.inc.pl

index 4239b2fca6c1d0f12429f26ccf60f28c73294df2..5844ea07ba9922f3b108a4ea169d023624db882e 100644 (file)
@@ -27,6 +27,13 @@ codec => {
                available => 1992,
                generation => 0,
        },
+       mpc => {
+               name => 'Musepack',
+               abbr => 'MPC',
+               mime => 'audio/musepack',
+               available => 1997,
+               generation => 1,
+       },
 },
 feature => {
        default => {
@@ -96,6 +103,20 @@ feature => {
                score => {
                        mp3 => [4, 8],
                        opus => [4, 6],
+                       mpc => [5, 0],
+               },
+       },
+       steaming => {
+               name => 'Streamable',
+               score => {
+                       mpc => 'y',
+               },
+       },
+       seeking => {
+               name => 'Fast seeking',
+               score => {
+                       mpc => [5, undef, 'indexed'],
+                       opus => [3, undef, 'bisection seeking (usually 1 physical seek required if implemented correctly)'],
                },
        },
        royalties => {
@@ -104,6 +125,7 @@ feature => {
                        vorbis => 5,
                        opus => [4, undef, 'open and free design'],
                        atrac => [2, undef, 'proprietary, but the original patents have expired'],
+                       mpc => [5, undef, 'open format, bsd licensed implementation'],
                },
        },
        support => {
index 21ce9a1fc4bb7ff4b2aa5c9e6ef55381993dae71..f689142f41f6313572ad48b58b3c4206d36ce5ff 100644 (file)
@@ -50,7 +50,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 +65,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 +138,7 @@ feature => {
                        jp2k => 4,
                        webp => 3,
                        heic => 3,
-                       avif => 3,
+                       avif => 2,
                        jxl  => 5,
                },
        },
@@ -344,7 +359,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 +391,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 +511,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 => {