IRIX 5.3 » Books » Developer »
IRIS Digital Media Programming Guide
(document number: 007-1799-040 / published: 1994-11-14)
table of contents | additional info | download find in page
Appendix B. Aware Scalable Audio Compression Software
This appendix describes built-in licensable compression software from Aware, Inc. Developers are encouraged to integrate Aware's audio compression products to add value to their applications that incorporate audio processing. Doing so requires that you add Network License System™ (NetLS™) licensing support to your application, which is described in “Installing a NetLS Nodelocked License”.
Aware's compression software can be accessed through the following Silicon Graphics digital media development libraries:
Audio File Library (AF)
Compression Library (CL)
The AF and CL parameters to access Aware compression are provided in this appendix.
Introduction to Aware Audio Compression Software
Aware offers audio compression software engines that enable users of Silicon Graphics workstations to reduce the storage size and transmission bandwidth required for audio data. These products are compatible with third-party applications that incorporate audio in the Silicon Graphics digital media computing environment. Scalable operation provides the ability to control processor loading for audio playback concurrently with other computational tasks.
Aware's software compression engines include:
Aware AudioPublisher™ MPEG and MultiRate audio codec
Provides advanced psychoacoustic processing for compression of CD-quality sound in authoring, publishing, and large audio database applications. Compatible with MPEG-audio standard.
Aware AudioProducer™ MultiRate audio codec
Provides a compression solution for studio and audio production applications requiring lossless and near-lossless coding and using low processor loading. Includes AudioProducer and AudioPlayback engines.
Aware AudioPlayback™ audio decoder
Provides a decoding solution for applications requiring playback-only of compressed audio in multi-tasking processing environments.
Aware markets its audio compression software to end users. Once an end user licenses and activates Aware's audio compression engines in his or her workstation, the engines are available as a system resource and can work with any application that calls Aware's compression engines.
Portions of this software are
© Copyright 1993, Aware, Inc.—All Rights Reserved.
The Aware Software is proprietary and confidential. You may interface to the Aware Software by using the Audio File (AF) Library and the Compression Library (CL) supplied on this software release. You or any other user may gain authorization to execute the functions of the Aware Software (which includes a keylock mechanism) only by purchasing a usage license from Aware, Inc. Unauthorized use of the Aware Software is expressly forbidden. To obtain a usage license from Aware, contact:
Aware, Inc.
One Memorial Drive
Cambridge, MA 02142
phone: (617) 577-1700
fax: (617) 577-1710
email: sales@aware.com
Ask for audio products.
Aware Software Products Features and Applications
This section describes the applications and features of Silicon Graphics digital media-compatible products from Aware.
Aware Products Available in IRIS Digital Media Libraries
The IRIS digital media libraries contain three software products that end users can license by contacting Aware (see “Introduction to Aware Audio Compression Software”) to obtain a license password:
Aware AudioPublisher
The Aware AudioPublisher provides advanced psychoacoustic processing for compression of high-quality audio (up to 48 kHz sampling rate) in studio, authoring, and archiving applications.
AudioPublisher supports the MPEG (Moving Pictures Experts Group) audio standard format. The encoding process invokes advanced psychoacoustic modeling to achieve high compression ratios.
Encoding bit-rates range from 32 Kbits/second to 448 Kbits per second (corresponding to compression ratios as high as 48:1). AudioPublisher also includes Aware's AudioProducer and AudioPlayback software.
Aware AudioProducer
The Aware AudioProducer provides a compression solution for audio production applications requiring lossless (perfectly invertible) and near-lossless coding at low computational complexity.
Lossless mode reduces storage requirements by 2:1 to 3:1. Near-lossless operation achieves even greater storage savings, while retaining a 90 dB signal-to-noise ratio. Real-time encoding of audio at 8, 11.025, 16, 22.05, and 44.1 kHz sampling rates is supported. Scalable encoding and decoding operation provides control of processor loading during playback. AudioProducer includes Aware's AudioPlayback software.
Aware AudioPlayback
The Aware AudioPlayback engine provides a decoding solution for applications requiring decoding of compressed audio in multi-tasking processing environments. The decoder runs in real time, at sampling rates of up to 48 kHz. Installation of the decoder enables real-time playback of compressed audio that was encoded with the Aware AudioPublisher or with the Aware AudioProducer. Scalable decoding operation provides the ability to control processor loading used for playback, and it enables special functions such as fast playback to let you speed-search through compressed audio libraries.
Other Digital Media Compatible Aware Audio Products
These audio productivity software products are compatible with Aware's audio compression engines in the Silicon Graphics digital media environment. Contact Aware for more information on these products.
The Aware AudioSuite™ provides these graphical user interface (GUI) software applications for the end user that work with Aware's licensable software audio compression engines on Silicon Graphics platforms:
Aware Speed-of-Sound Library, Volume I, Sound Effects
The Aware Speed-of-Sound™ Library is a single CD-ROM that puts more than 1,000 digitally recorded sound effects at your fingertips. Cars, trains, planes, birds, bees, laughing, crying, water, and wind—all the effects you need to make your creative vision come alive. Each sound on this disk was professionally recorded at the 16-bit, 44.1 kHz CD-audio format. But unlike standard CDs that contain a maximum of 72 minutes of sound, the Aware Speed-of-Sound Library offers over seven hours of effects, along with the interactive BrowsFX™ librarian tool that makes finding and auditioning any sound a snap.
This comprehensive package includes the Speed-of-Sound Library,
Volume I: SFX, plus all audio compression engines and GUIs.
Accessing Aware Audio Compression from the Audio File Library
This section describes the data formats, defaults, and parameters for accessing the Aware audio compression software engines from the Audio File Library.
Audio input data can be accepted in any of these formats:
16-bit two's complement samples
single or dual channel
sampling rates for MPEG must be 32 kHz, 44.1 kHz, or 48 kHz.
sampling rates for MultiRate must be 8 kHz, 11.025 kHz, 16 kHz, 22.05 kHz, 32 kHz, 44.1 kHz, or 48 kHz.
The simplest method of invoking Aware compression is to use this command to pick from one of four default settings:
AFinitcompression ( AFfilesetup setup, long track,
long compression_scheme)
|
The defaults for the Aware compression parameters are:
| AF_COMPRESSION_AWARE_DEFAULT_MPEG_I | |
MPEG layer 1, joint-stereo, fixed rate at 192 Kbps/channel
| | AF_COMPRESSION_AWARE_DEFAULT_MPEG_II | |
MPEG layer 2, joint-stereo, fixed rate at 128 Kbps/channel
| | AF_COMPRESSION_AWARE_DEFAULT_MULTIRATE | |
MultiRate, near-lossless
| | AF_COMPRESSION_AWARE_DEFAULT_LOSSLESS | |
MultiRate, lossless
|
Compression Custom Configuration
To access individual compression parameters, use the AF library call:
AFinitcompressionparams ( AFfilesetup setup, long track,
long scheme,AUpvlist pvbuffer, long buffersize)
|
The compression
scheme should be passed as one of:
AF_COMPRESSION_AWARE_MPEG
AF_COMPRESSION_AWARE_MULTIRATE
AF_COMPRESSION_AWARE_DEFAULT_MPEG_I
AF_COMPRESSION_AWARE_DEFAULT_MPEG_II
AF_COMPRESSION_AWARE_DEFAULT_MULTIRATE
AF_COMPRESSION_AWARE_DEFAULT_LOSSLESS
The parameters and values passed in the
AUpvlist structure include:
| AF_AWARE_PARAM_LAYER | |
(valid only for algorithm AF_AWARE_MPEG) selects which MPEG layer:
 | Note: AF_AWARE_PARAM_CHANNEL_POLICY
chooses how multiple channels should be treated (these settings are equivalent for single channel input).
|
AF_AWARE_STEREO
indicates that the channels are part of a single multichannel signal, such as quadraphonic, and so on.
AF_AWARE_JOINT_STEREO (default for MPEG)
indicates that the algorithm may attempt to exploit redundancy between channels for greater coding gain. Not valid for AF_AWARE_MULTIRATE.
AF_AWARE_INDEPENDENT (default for MultiRate)
indicates that the separate channels are unrelated and should be processed separately, such as multilingual sound tracks.
| | AF_AWARE_PARAM_BITRATE_TARGET | |
specifies the desired bitrate for all channels of compressed data, in bits per second. Note that for some schemes such as MPEG's
maxrate (not yet implemented) this is treated as an upper limit, whereas for MPEG's
fixrate, this is strictly achieved as a constant rate. This parameter is not used for Aware's MultiRate algorithm.
The following is a list of valid bitrates for MPEG:
Layer 1: 32000, 64000, 96000, 128000, 160000, 192000, 224000, 256000, 288000, 320000, 352000, 384000, 416000, and 448000.
Layer 2: 32000, 48000, 56000, 64000, 80000, 96000, 112000, 128000, 160000, 192000, 224000, 256000, 320000, and 384000.
Default value is 192 Kbps/channel for layer 1 and 128 Kbps/channel for layer 2.
| | AF_AWARE_PARAM_BITRATE_POLICY | |
selects variants for interpreting AF_AWARE_PARAM_BITRATE_TARGET. The valid values depend on the compression type:
Aware MPEG (AF_COMPRESSION_AWARE_MPEG) uses either:
AF_AWARE_FIXED_RATE (default)
fixed bitrate per second, where the compression ratio is set by AF_AWARE_PARAM_BITRATE_TARGET or
AF_AWARE_CONST_QUAL
lets the bitrate be driven by the psychoacoustic model. Enough bits are assigned so that a constant noise-to-mask ratio is attained. See AF_AWARE_CONST_QUAL_NMR.
Aware MultiRate (AF_COMPRESSION_AWARE_MULTIRATE) uses either:
AF_AWARE_LOSSLESS
supplies enough bits to provide for perfect reconstruction. Compression ratios are typically between 2:1 and 3:1.
or
AF_AWARE_CONST_QUAL
enough bits are assigned so that the signal is 90+ dB above the quantization noise. Compression ratios are typically between 2.5:1 and 4:1.
| | AF_AWARE_CONST_QUAL_NMR | |
not used in the Aware MultiRate algorithm. For AF_COMPRESSION_AWARE_MPEG with AF_AWARE_CONST_QUAL, it sets the constant quality mode noise-to-mask ratio in dB. Zero yields a theoretical psychoacoustically imperceptible compression. Positive values provide more compression and noise becomes audible. Negative values cause less compression and less perceptible noise. The type is AU_PVTYPE_DOUBLE.
|
Accessing Aware Audio Compression from the Compression Library
The Aware audio compression engines are already installed in the Silicon Graphics Compression Library uniform interface to video and audio compression routines. You can incorporate these routines into your applications and set up license querying to enable end users who choose to do so to license the routines. This section describes how to use the Compression Library interface to the Aware engines.
Aware currently provides two distinct compression schemes under the CL:
| CL_AWARE_MPEG_AUDIO | |
ISO/MPEG-audio standard algorithm with layers I and II.
| | CL_AWARE_MULTIRATE | |
Aware MultiRate I proprietary lossless or low-distortion algorithm.
|
Both scheme identifiers are defined in
cl.h, as are all the identifiers in this section with the prefix CL_. Identifiers prefixed AWCMP_ are defined in awareAudio.h.
Using Compression Library Parameters
The CL is controlled by a wide range of parameters. Some parameters have multiple uses—others are appropriate only in certain circumstances. This list explains the use of all the parameters of relevance to the Aware schemes:
| CL_ORIGINAL_FORMAT | |
indicates the format of the components of the original uncompressed audio. Default is CL_STEREO_INTERLEAVED, legal alternative is CL_MONO.
| | CL_COMPONENTS | |
indicates the number of channels in the original uncompressed audio. Only single and dual channel signals are currently supported.
| | CL_BITS_PER_COMPONENT | |
informs the scheme of the format of the audio samples. They are assumed to be two's complement linear ints with the specified number of bits. The default is 16, which is also currently the only legal value.
| | CL_FRAME_RATE | |
tells the scheme the sampling rate of the uncompressed audio. Default is 44100.0 Hz. Legal values for scheme CL_AWARE_MPEG are 32000.0, 44100.0, and 48000.0. Legal values for scheme CL_AWARE_MULTIRATE are 8000.0, 11025.0, 16000.0, 22050.0, 32000.0, 44100.0, and 48000.0 Hz.
| | CL_SPEED | | during decompression, this parameter controls the computational complexity by controlling several factors: sample rate decimation, combining of stereo channels, filter shape (CL_AWARE_MPEG only), and lossy decode (CL_AWARE_MULTIRATE only). Acceptable values range from 1.0 to 100.0. CL_SPEED has no effect during compression.
 | Note: Changing this parameter may change the sampling rate, the total number of sample frames available, and the sample frames per compressed block. After changing this parameter, you must call clGetParams() to find out the new CL_FRAME_RATE and CL_BLOCK_SIZE.
|
| | CL_CHANNEL_POLICY | |
selects the treatment of stereo signals:
AWCMP_STEREO
stereo channels are coded separately.
AWCMP_JOINT_STEREO
stereo redundancy is exploited by coding high frequency sub-bands together.
AWCMP_INDEPENDENT
channels are unrelated and are coded separately, such as multilingual sound tracks.
 | Note: Scheme CL_AWARE_MPEG_AUDIO supports all three modes; CL_AWARE_MULTIRATE supports only AWCMP_STEREO and AWCMP_INDEPENDENT.
|
| | CL_BITRATE_POLICY | |
Provides for different modes of bit assignment:
AWCMP_FIXED_RATE
fixed bitrate for CL_AWARE_MPEG_AUDIO only. See CL_BITRATE_TARGET. This is the default for CL_AWARE_MPEG_AUDIO.
AWCMP_CONST_QUAL
bitrate is allowed to vary to satisfy MPEG psychoacoustic model or MultiRate data requirements (90+ dB). This is the default for CL_AWARE_MULTIRATE. See CL_NOISE_MARGIN.
AWCMP_LOSSLESS
valid for CL_AWARE_MULTIRATE only. Data is coded losslessly.
| | CL_NOISE_MARGIN | |
used in conjunction with CL_BITRATE_POLICY's AWCMP_CONST_QUAL. Provides for specification of the noise-to-mask ratio in MPEG psychoacoustics. Zero yields a theoretical psychoacoustically imperceptible compression. Positive values provide more compression and noise becomes audible. Negative values cause less compression and less perceptible noise. For the MultiRate algorithm, this parameter sets the noise-floor at -90 dB below the signal level. This is the only valid MultiRate setting at this time.
| | CL_LAYER | | (MPEG only) selects the MPEG layer. Default is AWCMP_MPEG_LAYER_II for layer II, other legal value is AWCMP_MPEG_LAYER_I for layer I.
| | CL_BITRATE_MODE | |
provides for different modes of operation such as fixed rate or constant quality; however, the only legal values at present are AWCMP_FIXED_RATE for MPEG and AWCMP_CONST_QUAL or AWCMP_LOSSLESS for MultiRate.
| | CL_BITRATE_TARGET | |
used in conjunction with CL_BITRATE_POLICY's AWCMP_FIXED_RATE (MPEG). Determines the output data rate in bits per second. The allowed values are:
MPEG layer I: 32000, 64000, 96000, 128000, 160000, 192000, 224000256000, 288000, 320000, 352000, 384000, 416000, 448000.
MPEG layer II: 32000, 48000, 56000, 64000, 80000, 96000, 112000,128000, 160000, 192000, 224000, 256000, 320000, 384000.
| | CL_COMPRESSED_BUFFER_SIZE | |
When a scheme is configured, this field can be queried to find the maximum compressed size of a block of CL_BLOCK_SIZE samples. This is useful for allocating buffers to hold this compressed data. If the application sets this parameter (to inform the CL of the size of an externally allocated buffer), the compression code does not change that value, even if its configuration is modified.
|
The following parameters are read-only:
| CL_BLOCK_SIZE | |
The scheme writes the number of uncompressed sample frames to compress at a time by the scheme. It is strongly advised that data be passed to clCompress() in blocks that are exact multiples of this size; otherwise, the algorithm will defer to compression of partial frames, which may cause unexpected problems.
| | CL_COMPRESSION_RATIO | |
The scheme writes a compression ratio into this parameter. Parameter CL_EXACT_COMPRESSION_RATIO will be true if this is an exact compression ratio and false if it is a worst-case estimate.
| | CL_EXACT_COMPRESSION_RATIO | |
Indicates whether the compression ration in CL_EXACT_COMPRESSION_RATIO is exact (TRUE), or a worst-case estimate (FALSE). This parameter is always true for pure MPEG, because it is a fixed-bitrate scheme, and false otherwise; therefore, this parameter is currently of interest only for the MPEG scheme.
| | CL_FRAME_TYPE | |
indicates the status of the next frame to be processed:
CL_KEYFRAME, meaning that the frame is the first frame in a compressed block, which is what it should be if all calls are in BLOCK_SIZE blocks.
CL_PREDICTED is the frame type for all other alignments.
|
You'll get the best compression results if you keep these hints in mind:
Always compress blocks of CL_BLOCKSIZE sample frames.
The first block that comes out of an instance of a compression scheme has extra configuration information attached in front of it. On decompression, this should be fetched first (you will have to query its maximum size), then fed to clReadHeader(). Thereafter, the CL_COMPRESSED_BUFFER_SIZE can be read and used to allocate a proper data buffer, if so desired.
No provision has been made for alignment of delay as a result of filter latency through the Compression Library (which can be a few hundred samples depending on scheme), or for zero-padding the final frame to ensure that the filter is flushed. These must be handled by the application, if required.
Aware Audio Compression Software Specifications
This section lists the specifications for the Aware audio compression software.
Table B-1 lists the compression algorithms that are built in to each Aware software compression engine product.
Table B-1. Built-in Algorithms for Aware Audio Software Compression Engines
Product
| Compression Algorithms Installed
|
|---|
AudioPublisher
| ISO/MPEG Layer I and II Encoder
|
| Aware MultiRate I Encoder
|
| ISO/MPEG Layer I and II Decoder
|
| Aware MultiRate Decoder
| AudioProducer
| Aware MultiRate I Encoder
|
| ISO/MPEG Layer I and II Decoder
|
| Aware MultiRate Decoder
| AudioPlayback
| ISO/MPEG Layer I and II Decoder
|
| Aware MultiRate Decoder
|
Installing a NetLS Nodelocked License
A product that is licensed with NetLS can use either a nodelocked license or a concurrent access license. On the Silicon Graphics Vendor and License Information sheet, in the
licensetype field, it lists either “Concurrent Access” or “NodeLocked” specifying the type of license you have been issued.
This section documents nodelocked licenses. With a nodelocked license, the product can be run only on the machine that has the nodelocked license installed. To enable a nodelocked license, the “vendor ID” and “product password” from the Silicon Graphics Vendor and License Information sheet are entered into the file
/usr/netls/nodelock. After that, a product should have permission to run on the machine with the nodelock file.
To install a nodelocked license:
Verify that the product you want to license is already installed, by entering:
For IRIX release 5.0 or earlier, netls_eoe and nck subsystems do not need to be installed. For IRIX release 5.0.1 or later, it is recommended that netls_eoe be installed, in order to create the link from /usr/netls/nodelock to /var/netls/nodelock. This link is needed by some NetLS licensed products that are not Silicon Graphics products.
The llb, glb, and netls flags, which you can set with the /etc/chkconfig command, do not affect whether a nodelocked license will work, but it is a good idea to set these flags correctly anyway. If this machine is not being used as a NetLS or glb database server, chkconfig these flags off. To change the flags, enter this sequence of commands:
# su
# /etc/chkconfig glb off
# /etc/chkconfig llb off
# /etc/chkconfig netls off
|
Edit the nodelock file. For IRIX release 5.0 or earlier, the nodelock file is /usr/netls/nodelock. For IRIX release 5.0.1 or later, the nodelock file is /var/netls/nodelock. A license in the nodelock file takes up one line and looks something like this:
549db468491e.02.c0.1a.3d.52.00.00.00 4cb3cwxxy29awcv9998xa
|
where the first string is a vendor ID and the second string is the product password. Comment lines are ignored. A comment line is a line whose first character is a “#”.
If a temporary nodelocked license is already installed for the product for which you are adding a longer term license, comment out that temporary license line by putting a “#” in front of the line. If no other products are nodelocked and other licenses exist in this file, comment all of the licenses out by putting a “#”character in front of them.
Continue editing the nodelock file to add the vendor ID and the product password for the product. Put them on the same line in the nodelock file with the vendor ID first, followed by a space, then the product password.
It is strongly recommended to add a comment line before the license that describes what product the license is for and when it expires.
See the online NetLS Administration Guide for more information and troubleshooting guidelines.
IRIS Digital Media Programming Guide
(document number: 007-1799-040 / published: 1994-11-14)
table of contents | additional info | download
Front Matter
About This Guide
Part I. Digital Media Programming
Part II. Digital Audio and MIDI Programming
Part III. Video Programming
Part IV. IndigoVideo Programming
Part V. Compression Programming
Part VI. Movie Programming
Appendix A. Audio Specifications
Appendix B. Aware Scalable Audio Compression Software
Glossary
Chapter 33.
Glossary
Chapter 34.
Glossary
Index
home/search |
what's new |
help
|