Difference between revisions of "MPEG-4 Audio Lossless Coding (ALS)"

From MultimediaWiki
Jump to navigation Jump to search
(update link to whitepaper)
(NUe Group page moved again)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
* FOURCCS: ???
* FOURCCS: ???
* Company: [[Moving Picture Experts Group|MPEG]]/NUe Group
* Company: [[Moving Picture Experts Group|MPEG]]/NUe Group
* Homepage: http://www.nue.tu-berlin.de/menue/forschung/beendete_projekte/mpeg-4_audio_lossless_coding_als/parameter/en/
* 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
* 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
* Whitepaper: http://elvera.nue.tu-berlin.de/files/0737Liebchen2005.pdf
Line 82: Line 82:
[[Category:Audio Codecs]]
[[Category:Audio Codecs]]
[[Category:Lossless Audio Codecs]]
[[Category:Lossless Audio Codecs]]
[[Category:Formats missing in FFmpeg]]

Latest revision as of 11:26, 21 November 2009

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)