MPEG-4 Audio Lossless Coding (ALS): Difference between revisions
Jump to navigation
Jump to search
(Add to formats missing in FFmpeg category.) |
(NUe Group page moved again) |
||
(11 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
* FOURCCS: ??? | * FOURCCS: ??? | ||
* Company: [[ISO]] | * Company: [[Moving Picture Experts Group|MPEG]]/NUe Group | ||
* Homepage: http://www.nue.tu-berlin.de/menue/forschung/projekte/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/ | |||
* Reference Software: http://www.nue.tu-berlin.de/fileadmin/fg97/Forschung/Projekte/Beendete_Projekte/MPEG4_ALS/mp4alsRM22rev2.zip | |||
* Whitepaper: http://elvera.nue.tu-berlin.de/files/0737Liebchen2005.pdf | |||
* Specification: ISO/IEC 14496-3:2009 ([http://www.itscj.ipsj.or.jp/sc29/open/29view/29n6475t.doc Draft]) | |||
** Simple profile: ISO/IEC 14496-3:2009/PDAM 2 ([http://www.itscj.ipsj.or.jp/sc29/open/29view/29n10483t.doc Draft]) | |||
ALS is MPEG-4's pure lossless audio codec. It is based on the older LPAC ([[Lossless Predictive Audio Coding]]) codec from NUe. | |||
== Format == | |||
All integers are big-endian unless specified otherwise | |||
=== File Header === | |||
4 bytes - 'ALS\0' | |||
32 bits - sample rate | |||
32 bits - samples | |||
16 bits - channels-1 | |||
8 bits - flags: | |||
3 bits - file type (RAW, WAV, AIFF) | |||
3 bits - (bpp - 1)/8 | |||
1 bit - floating point | |||
1 bit - samples are big-endian | |||
16 bits - frame length-1 | |||
8 bits - seek info in each n-th frame | |||
32 bits - flags: | |||
2 bits - seek location | |||
1 bit - adaptive order | |||
2 bits - coding table | |||
1 bit - pitch | |||
10 bits - pred order | |||
2 bits - block switching depth - 2 | |||
1 bit - BGMC or Rice | |||
1 bit - subblock partition | |||
1 bit - joint stereo | |||
1 bit - multi-channel coding | |||
1 bit - channel config | |||
1 bit - channel sort | |||
1 bit - CRC | |||
1 bit - RLSLMS | |||
5 bits - reserved | |||
1 bit - AUX data present | |||
if(channel config bit is set) | |||
16 bits - configuration | |||
if(channel sort bit is set) | |||
log2(channels-1)*channels/8+1 bytes | |||
32 bits - header size | |||
32 bits - trailer size | |||
<HEADER> | |||
<TRAILER> | |||
<CRC> | |||
Random access table | |||
<AUX> | |||
=== AUX block === | |||
This block contains data not used by decoder (like cuesheet or image?) | |||
First 32 bits specify data size. | |||
=== Data block === | |||
if(some seek condition) | |||
32 bits - seek size | |||
if(multichannel && joint) | |||
8 bits - mcc flag | |||
if(subblocks flag is set) | |||
8-32 bits - flags | |||
1 bit - coupling off | |||
1 bit - block size is N | |||
2 bits - subblocks size is N/2 | |||
4 bits - subblocks size is N/4 | |||
if subblock depth > 3 | |||
8 bits - subblocks size is N/8 | |||
if subblock depth > 4 | |||
16 bits - subblocks size is N/16 | |||
Block data: | |||
2 bits - block type (0 - zero block, 1 - constant, else - normal block) | |||
if(constant block) | |||
6 bits - padding | |||
8-32 bits - sample to fill this block (for 16-bit sample is stored in little-endian) | |||
[[Category:Audio Codecs]] | [[Category:Audio Codecs]] | ||
[[Category:Lossless Audio Codecs]] | [[Category:Lossless Audio Codecs]] | ||
Latest revision as of 12:26, 21 November 2009
- FOURCCS: ???
- Company: MPEG/NUe Group
- Homepage: http://www.nue.tu-berlin.de/menue/forschung/projekte/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/
- Reference Software: http://www.nue.tu-berlin.de/fileadmin/fg97/Forschung/Projekte/Beendete_Projekte/MPEG4_ALS/mp4alsRM22rev2.zip
- Whitepaper: http://elvera.nue.tu-berlin.de/files/0737Liebchen2005.pdf
- Specification: ISO/IEC 14496-3:2009 (Draft)
- Simple profile: ISO/IEC 14496-3:2009/PDAM 2 (Draft)
ALS is MPEG-4's pure lossless audio codec. It is based on the older LPAC (Lossless Predictive Audio Coding) codec from NUe.
Format
All integers are big-endian unless specified otherwise
File Header
4 bytes - 'ALS\0' 32 bits - sample rate 32 bits - samples 16 bits - channels-1 8 bits - flags: 3 bits - file type (RAW, WAV, AIFF) 3 bits - (bpp - 1)/8 1 bit - floating point 1 bit - samples are big-endian 16 bits - frame length-1 8 bits - seek info in each n-th frame 32 bits - flags: 2 bits - seek location 1 bit - adaptive order 2 bits - coding table 1 bit - pitch 10 bits - pred order 2 bits - block switching depth - 2 1 bit - BGMC or Rice 1 bit - subblock partition 1 bit - joint stereo 1 bit - multi-channel coding 1 bit - channel config 1 bit - channel sort 1 bit - CRC 1 bit - RLSLMS 5 bits - reserved 1 bit - AUX data present if(channel config bit is set) 16 bits - configuration if(channel sort bit is set) log2(channels-1)*channels/8+1 bytes 32 bits - header size 32 bits - trailer size <HEADER> <TRAILER> <CRC> Random access table <AUX>
AUX block
This block contains data not used by decoder (like cuesheet or image?) First 32 bits specify data size.
Data block
if(some seek condition) 32 bits - seek size if(multichannel && joint) 8 bits - mcc flag if(subblocks flag is set) 8-32 bits - flags 1 bit - coupling off 1 bit - block size is N 2 bits - subblocks size is N/2 4 bits - subblocks size is N/4 if subblock depth > 3 8 bits - subblocks size is N/8 if subblock depth > 4 16 bits - subblocks size is N/16
Block data:
2 bits - block type (0 - zero block, 1 - constant, else - normal block) if(constant block) 6 bits - padding 8-32 bits - sample to fill this block (for 16-bit sample is stored in little-endian)