- Extensions: mzp, dat, tlp
- Company: Alaris (XVD Corporation)
- Samples: http://www.ila-ila.com/xvd-hist/sites/lab1454/eng/products/NCitySng12.mzp and various VGM/VG2 files with Muzip audio stream inside.
Muzip is a family of FFT-based audio codecs with confusing versioning. Internally codec versions can be distinguished by the text ID that starts at byte 18 of audio header. Known versions:
CTP03- probably Muzip1 and codec ID 3
CTP04- probably Muzip1 and codec ID 3
CTP05- probably Muzip1 and codec ID 5
CTP06- Muzip1 (codec ID 5)
CTP07- Muzip1 (codec ID 5), probably the same as
CTPJAVA(codec ID 8)
MZIP13R- Muzip 4 (codec ID 9), the ID probably stands for 1.3
Decoder for version CTP06 is here: http://www.ila-ila.com/xvd-hist/sites/lab1454/eng/products/muzip1.jar Decoder for version CTP07 can be found on the same site as part of Java VGM player.
Header for Muzip sample in WAV
0..3 "RIFF" 4..7 unknown (file size? seems not) 8..11 "WAVE" 12..15 "fmt\0" (note: not space, it's null) 16..19 unknown (fmt\0 size? seems not) 20..21 unknown (format id? "0301". seems not) 22 number of channels 23 unknown (rest of number of channels?) 24..27 sampling rate 28..31 (byte per sec?) 32..33 (block size?) 34..35 (bit per sample?) 36..(\0) codec name ("CTP03", "CTP04", "CTP05", "CTP06") 42..43 unknown (rest of codec name or not?) 44 coefficients(compression ratio) (8-13 -> [8,12,15,16,24,10]) 45 key frame 46 variable bitrate 47 reserved 48..51 unknown 52..55 "data" 56..59 total size
This is a codec that employs enumerative coding for coding various values, FFT and also wavelet transform for high-frequency part manipulation. Frequencies are grouped into sub-bands depending on sampling rate.
After the main part is decoded and FFT is applied, the audio is passed through wavelet-based filter to split it into high- and low-frequency band, an additional trellis-based high-frequency data is added to the high band and the bands are recombined again.
This format improves on
CTP06 by adding two different kinds of correction data that is added after main data reconstruction.
This is the version of codec used in VGM2 container. Unlike previous versions, it does not perform wavelet-based high band correction and uses arithmetic coding for coefficients. Additionally now it has several frame sizes depending on bitrate: 64, 128, 256 and 320 samples.
Sample coding is done by coding bit allocation parameters in parametric way, symbol categories, arithmetic coded scalefactor indices (coded using static model selected depending on bit allocation), and arithmetic coded quantised samples coded using static model selected depending on bit allocation and category.