MPEG-4 Audio Scalable Lossless Coding (SLS)

File structure

|- doc
|  |- readme.txt                This file
|  |- usage.txt                 Command line option usage of MPEG SLS encoder and decoder
|  `- update.txt                update log file for this module
| 			
|- msvc
|  |- SLS_RM.dsw/sln		Microsoft Visuall C++ workspace/solution file for the SLS encoder, decoder and truncator
|  |- enc			folder containing the Microsoft Visuall C++ project for the encoder
|  |- dec			folder containing the Microsoft Visuall C++ project for the decoder
|  `- BstTruncation		folder containing the Microsoft Visuall C++ project for the bitstream truncator
|  
|- src_bst_truncation		Source codes for SLS bitstream truncator
|- src_dec			Source codes for SLS decoder
|- src_dec_bsac			Source codes for SLS bsac decoder
|- src_dec_mp4			Source codes for MPEG-4 ff reader
|- src_enc			Source codes for SLS encoder
|- src_enc_bsac 		Source codes for SLS bsac encoder
|- src_enc_mp4			Source codes for MPEG-4 ff writer
|
|- tables_enc			folder containing huffman codebook files
|  `- rm5hufbook		Huffman code table for MPEG AAC encoder. Necessary for running the SLS encoder	
| 
|- libisomedia_2008jan.patch	patch for the libisomedia
|
`- makefile			Linux makefile for SLS encoder, decoder and truncator


The following additional software packages are required for compiling this RM:

- AFsp package, e.g. available at:
  http://www-mmsp.ece.mcgill.ca/Documents/Software/Packages/AFsp/AFsp.html

- The most recent version of the MP4 file format reference software. Unfortunately the version available
  at http://standards.iso.org/ittf/PubliclyAvailableStandards/c045527_ISO_IEC_14496-5_2001_Amd_12_2007_Reference_Software.zip
  does not run cleanly with the SLS encoder. Furthermore it does not have the ability to read/write the
  SLS enhancement streams with the atom type 'm4ae' (it still uses 'mp4a').
  In order to compile the SLS RM you need to:
  * retrieve the latest official version of the MP4FF reference software (Jan 2008 or later) from 'mp4reg@group.apple.com'.
    Use the word 'mp4reg' in the subject, you will reach Dave Singer, the maintainer of the MP4FF reference software.
  * apply the m4ae patch to this MP4FF software, e.g. in a bash shell:
    cd libisomedia/libisomediafile; patch -p2 < libisomedia_2008jan.patch


For the Windows build you have to set the paths to the AFsp and libisomedia package in the Visual Studio projects or 
Visual Studio global paths. For the Unix build you have to set the following environment variables before running make:

AFSP_INCLUDE_PATH       # path to AFsp include files
AFSP_LIBRARY_PATH       # path to AFsp libraries
REFSOFT_INCLUDE_PATH    # path to libisomedia include files (note: the MP4 file format reference software has its include files in several directories)
REFSOFT_LIBRARY_PATH    # path to libisomedia library

e.g. in a bash shell:

export AFSP_INCLUDE_PATH=/usr/include; export AFSP_LIBRARY_PATH=/usr/lib; export REFSOFT_INCLUDE_PATH=/usr/include; export REFSOFT_LIBRARY_PATH=/usr/lib
