codec: some random additional image and audio features
[sheet.git] / codec-audio.inc.pl
1 use utf8;
2 +{
3 intro => 'Comparison of audio compression formats.',
4 codec => {
5         mp3 => {
6                 name => '<abbr title="MPEG-1 Audio Layer III">MP3</abbr>',
7                 available => 1991,
8                 generation => 0,
9         },
10         vorbis => {
11                 name => 'Vorbis',
12                 available => 2000,
13                 generation => 1,
14         },
15         opus => {
16                 name => 'Opus',
17                 available => 2012,
18                 generation => 1,
19         },
20         aac => {
21                 name => '<abbr title="Advanced Audio Coding">AAC</abbr>',
22                 available => 1997,
23                 generation => 1,
24         },
25         atrac => {
26                 name => '<abbr title="Adaptive Transform Acoustic Coding">ATRAC</abbr>',
27                 available => 1992,
28                 generation => 0,
29         },
30         mpc => {
31                 name => 'Musepack',
32                 abbr => 'MPC',
33                 mime => 'audio/musepack',
34                 available => 1997,
35                 generation => 1,
36         },
37 },
38 feature => {
39         default => {
40                 children => [qw( quality limits royalties support )],
41         },
42         quality => {
43                 name => 'compression quality',
44                 children => [qw( quality_music quality_speech quality_ll )],
45                 score => {
46                 },
47         },
48         quality_music => {
49                 name => 'music',
50                 score => {
51                         mp3  => 3,
52                         atrac => 2,
53                         vorbis => 4,
54                         aac  => 5,
55                         opus => 5,
56                 },
57         },
58         quality_speech => {
59                 name => 'speech',
60                 score => {
61                         mp3  => 3,
62                 },
63         },
64         quality_ll => {
65                 name => 'lossless',
66                 score => {
67                         mp3  => 'n',
68                         vorbis => 'n',
69                         opus => 'n',
70                         flac => 4,
71                 },
72         },
73         limits => {
74                 children => [qw( channels bitrate latency peeling )],
75                 score => {
76                 },
77         },
78         channels => {
79                 score => {
80                         mp3  => [3, 6, 'stereo, extended to upto 5.1'],
81                         vorbis => [4, 255],
82                         opus => [4, 255],
83                 },
84         },
85         peeling => {
86                 name => 'bitrate peeling',
87                 score => {
88                         vorbis => [3, undef, 'yes but "unusable" quality'],
89                         mp3  => 'n',
90                         opus => 'n',
91                         aac  => 'n',
92                 },
93         },
94         latency => {
95                 name => 'frame size (ms)',
96                 score => {
97                         mp3 => [3, 26, 'typical version and layer has 1152 samples at 44kHz'],
98                         opus => [5, 2.5],
99                 },
100         },
101         bitrate => {
102                 name => 'minimal bitrate',
103                 score => {
104                         mp3 => [4, 8],
105                         opus => [4, 6],
106                         mpc => [5, 0],
107                 },
108         },
109         steaming => {
110                 name => 'Streamable',
111                 score => {
112                         mpc => 'y',
113                 },
114         },
115         seeking => {
116                 name => 'Fast seeking',
117                 score => {
118                         mpc => [5, undef, 'indexed'],
119                         opus => [3, undef, 'bisection seeking (usually 1 physical seek required if implemented correctly)'],
120                 },
121         },
122         royalties => {
123                 score => {
124                         mp3  => [5, undef, 'expired'],
125                         vorbis => 5,
126                         opus => [4, undef, 'open and free design'],
127                         atrac => [2, undef, 'proprietary, but the original patents have expired'],
128                         mpc => [5, undef, 'open format, bsd licensed implementation'],
129                 },
130         },
131         support => {
132                 score => {
133                         mp3  => 5,
134                         vorbis => 4,
135                         aac  => 4,
136                         opus => 4,
137                         atrac => 1,
138                 },
139         },
140 },
141 }