Windows Media Audio can refer to both a file format and a family of codecs. This chapter is mainly about the codecs. The .wma file format is just good old ASF, as described in Chapter 17; a WMA is just a WMV without video.
One feature of the Windows Media Audio family rarely seen in other codecs is support for 2-pass encoding; most other audio codecs are 1-pass CBR or VBR. While 2-pass CBR rarely makes for a practical improvement over 1-pass CBR, 2-pass VBR can be a big improvement, particularly for soundtracks where audio complexity varies a lot. Progressive download content should use the VBR modes. However, VBR modes aren’t always available at every bitrate CBR is. Even then, VBR can outperform a CBR at a higher bitrate—a VBR file with an average of 64 Kbps and a peak of 96 Kbps can sound better than a CBR at a fixed 80 Kbps data rate.
Similarly to MP3 and AAC, 1-pass quality-limited VBR is a good choice for personal music libraries where the size of any given file isn’t as important as the average size and guaranteed quality.
Windows Media Audio is a venerable codec format, compatible back to WMP from the mid-1990s (predating .wma files!), and can be played back on a very wide variety of hardware and software players. In this book, I refer to it as WMA Standard to distinguish it from the Voice, Pro, and Lossless versions of WMA. WMA is from the post-MP3 generation of audio codecs, and is generally capable of producing better quality than MP3 at 128 Kbps and below, although it’s not competitive with the low bitrate performance of frequency synthesis codecs like High Efficiency AAC and WMA 10 Pro.
While the bitstream of WMA was locked down years ago, the encoder has seen many generations of tweaking to improve quality and performance. The current version is WMA 9.2 and includes minor but welcome performance and quality enhancements compared to previous versions. It also added some new bitrate modes, like 48 Kbps 44.1 kHz mono.
WMA is the safe codec choice for any Windows Media file. It’s flexible, offers high quality with sufficient bitrate, and is playable by anything that can play a .wma file. However, it’s dramatically outperformed by WMA 10 Pro at 96 Kbps and below (see Table 18.1).
Table 18.1 Windows Media Audio 9.2 Bitrate-Constrained Modes.
Argument | Bitrate | Sampling rate | Channel | Modes |
320_44_2 | 320 | 44 | 2 | CBR |
256_44_2 | 256 | 44 | 2 | CBR |
192_48_2 | 192 | 48 | 2 | CBR, VBR |
192_44_2 | 192 | 44 | 2 | CBR, VBR |
191_48_2 | 192 | 48 | 2 | Low Delay |
160_48_2 | 160 | 48 | 2 | CBR |
160_44_2 | 160 | 44 | 2 | CBR, VBR |
128_48_2 | 128 | 48 | 2 | CBR, VBR |
128_44_2 | 128 | 44 | 2 | CBR, VBR |
127_48_2 | 128 | 48 | 2 | Low Delay |
96_48_2 | 96 | 48 | 2 | CBR, VBR |
96_44_2 | 96 | 44 | 2 | CBR, VBR |
95_48_2 | 96 | 48 | 2 | Low Delay |
80_44_2 | 80 | 44 | 2 | CBR |
64_48_2 | 64 | 48 | 2 | CBR, VBR |
64_44_2 | 64 | 44 | 2 | CBR, VBR |
63_48_2 | 64 | 48 | 2 | Low Delay |
48_44_2 | 48 | 44 | 2 | CBR |
48_32_2 | 48 | 32 | 2 | CBR |
48_44_1 | 48 | 44 | 1 | CBR, VBR |
40_32_2 | 40 | 32 | 2 | CBR |
32_44_2 | 32 | 44 | 2 | CBR |
32_32_2 | 32 | 32 | 2 | CBR |
32_22_2 | 32 | 22 | 2 | CBR |
32_44_1 | 32 | 44 | 1 | CBR |
24_32_2 | 24 | 32 | 2 | CBR |
22_22_2 | 22 | 22 | 2 | CBR |
20_22_2 | 20 | 22 | 2 | CBR |
20_16_2 | 20 | 16 | 2 | CBR |
20_44_1 | 20 | 44 | 1 | CBR |
20_32_1 | 20 | 32 | 1 | CBR |
20_22_1 | 20 | 22 | 1 | CBR |
16_16_2 | 16 | 16 | 2 | CBR |
16_22_1 | 16 | 22 | 1 | CBR |
16_16_1 | 16 | 16 | 1 | CBR |
12_8_2 | 12 | 8 | 2 | CBR |
12_16_1 | 12 | 16 | 1 | CBR |
10_16_1 | 10 | 16 | 1 | CBR |
10_11_1 | 10 | 11 | 1 | CBR |
8_11_1 | 8 | 11 | 1 | CBR |
8_8_1 | 8 | 8 | 1 | CBR |
6_8_1 | 6 | 8 | 1 | CBR |
5_8_1 | 5 | 8 | 1 | CBR |
0_8_1 | 0 | 8 | 1 | CBR |
WMA 9 Voice is designed for low-bitrate applications below 32 Kbps, in which WMA and WMA Pro don’t perform as well. Despite its name, it does a credible job with music and other nonvoice content. You’re not going to dance to WMA Voice at low bitrates, but it can intelligibly compress music interludes and sound effects in otherwise voice-centric content (see Table 18.2).
Table 18.2 Windows Media Audio 9.2 Quality VBR modes.
Argument | Typical bitrate | Sampling rate | Channel |
Q98_44_2 | 300–480 | 44 | 2 |
Q98_48_2 | 300–480 | 48 | 2 |
Q90_44_2 | 200–310 | 44 | 2 |
Q90_48_2 | 200–310 | 48 | 2 |
Q75_44_2 | 110–180 | 44 | 2 |
Q50_44_2 | 70–115 | 44 | 2 |
Q25_44_2 | 85–145 | 44 | 2 |
Q10_44_2 | 60–95 | 44 | 2 |
45–75 |
WMA Voice 9 is supported in WMP 9 and higher. Note that Voice is not currently supported in all non-Windows players. Most notably, it isn’t supported in Silverlight through at least Silverlight 3. WMA 10 Pro 32 Kbps is a good alternative for Silverlight + WMP11 + compatibility. For Silverlight + WM9 + compatibility, the not-that-great low bitrate WMA 9.2 modes are the only option; 48 Kbps mono VBR is about the lowest that voice content sounds great in to my ears.
Voice is a 1-pass CBR only codec, unlike WMA Standard and Pro. WMA Voice replaced the now-deprecated ACELP.net audio codec.
While the new video codec features introduced with Format SDK 11 were exciting, the biggest technical leap was Windows Media Audio 10 Professional (WMA Pro 10), which offers up to twice the compression efficiency of WMA 9. The original WMA Pro 9 was launched in 2003 as part of Windows Media 9 Series, and offers great audio quality and efficiency at 128 Kbps and up. WMA Pro 9 supports up to 7.1 channels, up to 24-bit sampling, and frequencies up to 96 kHz. But the high minimum bitrate (128 Kbps) took 9 Pro out of the running for lower-bitrate web video. Thus, most streaming video projects kept using good old WMA 9.
WMP 11 added a new frequency interpolation mode to WMA Pro, and incremented the name to WMA 10 Pro. With the new mode, a “baseband” version of the audio is encoded as normal WMA Pro 9 at half the selected frequency, with additional data that tells how the higher frequencies are synthesized. This gives a stream that’s backward-compatible with older decoders, but provides enhanced quality with a newer decoder.
WMA Pro 10 provides up to two times the efficiency of WMA 9.2, so at 64 Kbps it can provide similar quality to WMA 9.2 at up to 128 Kbps (see Table 18.3). However, if only the old decoder is used, you only get the lower-quality baseband audio, which suffers from the lower maximum sampling rate. It’ll be intelligible, but not an entertainment-grade experience.
Table 18.3 Windows Media Audio Voice 9 Modes.
Argument | Bitrate | Sampling rate | Channel |
20_22_1 | 20 | 22 | 1 |
16_16_1 | 16 | 16 | 1 |
12_16_1 | 12 | 16 | 1 |
10_11_1 | 10 | 11 | 1 |
8_8_1 | 8 | 8 | 1 |
5_8_1 | 5 | 8 | 1 |
4_8_1 | 4 | 8 | 1 |
WMA 10 Pro is appropriate to use once the majority of your customers are using WMP 11+, Silverlight 2+, Windows Mobile, Flip4Mac or another player with full support. Because it’s an enhancement of the older codec, WMA 10 Pro won’t trigger a codec download—users get the new codec only if they install a player that supports it. And if you’re using WMA 10 Pro at 128 Kbps or above, including all the multichannel modes, you’re really still making a WMA 9 Pro bitstream, and will retain full compatibility and fidelity with WMP 9 and other decoders without LBR.
So even if targeting WMP 9, use WMA 10 Pro if you can dedicate at least 128 Kbps to audio, as it will outperform WMA 9.2 at 128 Kbps and up.
The superior efficiency of WMA 10 Pro has made it the default codec for WMV used with Silverlight, and for VC-1 Smooth Streaming files.
There’s an oft-cited listening test comparing advanced audio codecs at 64 Kbps run by audio compression enthusiast and expert Sebastian Mares a few years back. It found that WMA 10 Pro was good, but was outperformed by HE AAC. However, the test compared 1-pass CBR encoded WMA 10 Pro to fixed quantization encodes of the other codecs, allowing up to a 10-percent bitrate variance! Needless to say, bitfor-bit VBR beats CBR significantly, and WMA 10 Pro would have been much more competitive had it been tested in Quality VBR like the others. What’s more frustrating for me is that WMA 10 Pro is unusual in that it has a real 2-pass VBR mode—it was the only codec at the time that could give a bitrate-accurate VBR encode.
I only mention it as the test is referenced so often; I mean no disrespect to Mr. Mares, who has done a great service in his well-designed double-blind tests over the years. But not using the same rate control modes keeps the WMA 10 Pro results from being valid.
• The Hydrogen Audio test: http://www.listening-tests.info/mf-64-1/results.htm
• An apples-to-apples 1-pass CBR comparison between WMA 10 Pro and HE AAC: http://www.microsoft.com/windows/windowsmedia/forpros/codecs/comparison.aspx
Table 18.4 Windows Media Audio 10 Pro Modes.
Argument | Bitrate | Sample rate | Channels | BitsPerSample | Modes | LBR? |
768_96_8_24 | 768 | 96 | 8 | 24 | CBR | No |
768_48_8_24 | 768 | 48 | 8 | 24 | CBR | No |
768_96_6_24 | 768 | 96 | 6 | 24 | CBR, VBR | No |
768_48_6_24 | 768 | 48 | 6 | 24 | CBR, VBR | No |
768_44_6_24 | 768 | 44 | 6 | 24 | CBR, VBR | No |
640_96_6_24 | 640 | 96 | 6 | 24 | CBR, VBR | No |
640_48_6_24 | 640 | 48 | 6 | 24 | CBR, VBR | No |
640_44_6_24 | 640 | 44 | 6 | 24 | CBR, VBR | No |
440_96_6_24 | 440 | 96 | 6 | 24 | CBR, VBR | No |
440_48_6_24 | 440 | 48 | 6 | 24 | CBR, VBR | No |
440_44_6_24 | 440 | 44 | 6 | 24 | CBR | No |
440_96_2_24 | 440 | 96 | 2 | 24 | CBR, VBR | No |
440_88_2_24 | 440 | 88 | 2 | 24 | CBR, VBR | No |
440_48_2_24 | 440 | 48 | 2 | 24 | CBR, VBR | No |
440_44_2_24 | 440 | 44 | 2 | 24 | CBR, VBR | No |
440_48_6_16 | 440 | 48 | 6 | 16 | CBR, VBR | No |
440_44_6_16 | 440 | 44 | 6 | 16 | CBR, VBR | No |
384_48_8_24 | 384 | 48 | 8 | 24 | CBR | No |
384_96_6_24 | 384 | 96 | 6 | 24 | CBR, VBR | No |
384_48_6_24 | 384 | 48 | 6 | 24 | CBR, VBR | No |
384_44_6_24 | 384 | 44 | 6 | 24 | CBR | No |
384_96_2_24 | 384 | 96 | 2 | 24 | CBR, VBR | No |
384_88_2_24 | 384 | 88 | 2 | 24 | CBR, VBR | No |
384_48_2_24 | 384 | 48 | 2 | 24 | CBR, VBR | No |
384_44_2_24 | 384 | 44 | 2 | 24 | CBR, VBR | No |
384_48_6_16 | 384 | 48 | 6 | 16 | CBR | No |
384_44_6_16 | 384 | 44 | 6 | 16 | CBR | No |
383_48_6_24 | 383 | 48 | 6 | 24 | CBR, VBR | No |
256_96_6_24 | 256 | 96 | 6 | 24 | CBR, VBR | No |
256_48_6_24 | 256 | 48 | 6 | 24 | CBR, VBR | No |
256_44_6_24 | 256 | 44 | 6 | 24 | CBR | No |
256_96_2_24 | 256 | 96 | 2 | 24 | CBR, VBR | No |
256_88_2_24 | 256 | 88 | 2 | 24 | CBR, VBR | No |
256_48_2_24 | 256 | 48 | 2 | 24 | CBR, VBR | No |
256_44_2_24 | 256 | 44 | 2 | 24 | CBR, VBR | No |
256_48_6_16 | 256 | 48 | 6 | 16 | CBR | No |
256_44_6_16 | 256 | 44 | 6 | 16 | CBR, VBR | No |
256_48_2_16 | 256 | 48 | 2 | 16 | CBR, VBR | No |
256_44_2_16 | 256 | 44 | 2 | 16 | CBR, VBR | No |
255_48_6_24 | 255 | 48 | 6 | 24 | CBR | No |
192_96_6_24 | 192 | 96 | 6 | 24 | CBR, VBR | No |
192_48_6_24 | 192 | 48 | 6 | 24 | CBR, VBR | No |
192_44_6_24 | 192 | 44 | 6 | 24 | CBR | No |
192_96_2_24 | 192 | 96 | 2 | 24 | CBR, VBR | No |
192_88_2_24 | 192 | 88 | 2 | 24 | CBR, VBR | No |
192_48_2_24 | 192 | 48 | 2 | 24 | CBR, VBR | No |
192_44_2_24 | 192 | 44 | 2 | 24 | CBR, VBR | No |
192_48_6_16 | 192 | 48 | 6 | 16 | CBR | No |
192_44_6_16 | 192 | 44 | 6 | 16 | CBR, VBR | No |
192_48_2_16 | 192 | 48 | 2 | 16 | CBR | No |
192_44_2_16 | 192 | 44 | 2 | 16 | CBR | No |
191_48_6_24 | 191 | 48 | 6 | 24 | Low Delay | No |
191_48_2_24 | 191 | 48 | 2 | 24 | Low Delay | No |
160_48_8_16 | 160 | 48 | 8 | 16 | CBR | No |
160_48_6_16 | 160 | 48 | 6 | 16 | CBR | No |
160_48_2_16 | 160 | 48 | 2 | 16 | CBR | No |
160_44_2_16 | 160 | 44 | 2 | 16 | CBR | No |
128_96_6_24 | 128 | 96 | 6 | 24 | CBR, VBR | No |
128_48_6_24 | 128 | 48 | 6 | 24 | CBR, VBR | No |
128_44_6_24 | 128 | 44 | 6 | 24 | CBR | No |
128_96_2_24 | 128 | 96 | 2 | 24 | CBR, VBR | No |
128_88_2_24 | 128 | 88 | 2 | 24 | CBR, VBR | No |
128_48_2_24 | 128 | 48 | 2 | 24 | CBR, VBR | No |
128_44_2_24 | 128 | 44 | 2 | 24 | CBR, VBR | No |
128_48_8_16 | 128 | 48 | 8 | 16 | CBR | No |
128_48_6_16 | 128 | 48 | 6 | 16 | CBR | No |
128_44_6_16 | 128 | 44 | 6 | 16 | CBR, VBR | No |
128_48_2_16 | 128 | 48 | 2 | 16 | CBR | No |
128_44_2_16 | 128 | 44 | 2 | 16 | CBR | No |
127_48_2_24 | 127 | 48 | 2 | 24 | Low Delay | No |
96_48_2_16 | 96 | 48 | 2 | 16 | CBR | Yes |
96_44_2_16 | 96 | 44 | 2 | 16 | CBR | Yes |
80_48_2_16 | 80 | 48 | 2 | 16 | CBR | Yes |
80_44_2_16 | 80 | 44 | 2 | 16 | CBR | Yes |
64_48_2_16 | 64 | 48 | 2 | 16 | CBR | Yes |
64_44_2_16 | 64 | 44 | 2 | 16 | CBR, VBR | Yes |
48_48_2_16 | 48 | 48 | 2 | 16 | CBR | Yes |
48_44_2_16 | 48 | 44 | 2 | 16 | CBR, VBR | Yes |
32_32_2_16 | 32 | 32 | 2 | 16 | CBR | Yes |
The WMA 9.2 Lossless codec is, as the name implies, a lossless audio codec. A lossless audio codec’s output is bit-for-bit identical to its input. Essentially, it’s a more efficient alternative to PCM (uncompressed) encoding, and functionally equivalent to zipping up a .wav file. The flip side of lossless encoding is that there’s no bitrate control possible—each second of audio takes as many or as few bits as it needs. Hence the codec is only available in Quality VBR mode. Perfect silence takes up very little bandwidth, while white noise takes up as much as uncompressed. Typical savings are around 2:1 for music and 4:1 for multichannel TV/movie soundtracks.
In general, WMA Lossless shouldn’t be used for WMV files for distribution, given the high and unpredictable data rate. WMA 9 and 10 Pro can provide incredible-sounding audio at much lower bitrates, and transparent compression at still lower bitrates than WMA Lossless. Honestly, the only difference a user would get between Lossless and a high bitrate WMA Pro is the placebo effect of knowing it is lossless.
The WMA codecs have been standard since the 9 series launch, but there are some older codecs you many find in legacy content.
ACELP.net (Algebraic Code-Excited Linear Prediction), like the other low-bitrate voice codecs, provides intelligible speech at low bitrates. Microsoft licensed it from the now-defunct Spiro Labs. There’s a lot of old content inside corporate media libraries that use ACELP.net, but the encoder components haven’t been available for the last few version of the Format SDK, nor does Windows ship with a decoder anymore.
These were the pre-WMA/ACELP audio codecs for Windows Media in the mid-1990s. As the name implies, they were general-purpose, low-bitrate speech codecs, respectively. While decent for their era, they were not competitive with WMA and ACELP in quality, and took substantially more CPU power to decode. It has been many years since either shipped with Windows.
3.140.195.28