Merge pull request #35 from ittiam-systems/document_changes
libxaac documentation edits
This commit is contained in:
commit
3dfbcff249
9 changed files with 106 additions and 97 deletions
27
README.md
27
README.md
|
|
@ -1,24 +1,27 @@
|
|||
# Introduction to Ex-HEAAC (libxaac)
|
||||
# Introduction to libxaac
|
||||
|
||||
Ex-HEAAC, the latest innovation member of the MPEG AAC codec family, is ideally suited for adaptive bit rate streaming and digital radio applications. Ex-HEAAC bridges the gap between speech and audio coding and ensures consistent high-quality audio for all signal types, including speech, music, and mixed material. It is the required audio codec for DRM (Digital Radio Mondiale). When it comes to coding, the codec is incredibly effective, generating high-quality audio for music and speech at bitrates as low as 6 kbit/s for mono and 12 kbit/s for stereo services. By switching to extremely low bitrate streams, Ex-HEAAC streaming apps and streaming radio players can provide uninterrupted playback even during very congested network conditions.
|
||||
Extended HE-AAC, the latest innovation member of the MPEG AAC codec family, is ideally suited for adaptive bit rate streaming and digital radio applications. Extended HE-AAC bridges the gap between speech and audio coding and ensures consistent high-quality audio for all signal types, including speech, music, and mixed material. It is the required audio codec for DRM (Digital Radio Mondiale). When it comes to coding, the codec is incredibly effective, generating high-quality audio for music and speech at bitrates as low as 6 kbit/s for mono and 12 kbit/s for stereo services. By switching to extremely low bitrate streams, Extended HE-AAC streaming apps and streaming radio players can provide uninterrupted playback even during very congested network conditions.
|
||||
|
||||
As the Extended High Efficiency AAC Profile is a logical evolution of the MPEG Audio's popular AAC Family profiles, the codec supports AAC-LC, HE-AACv1 (AAC+) and HE-AACv2 (eAAC+) audio object type encoding. The bitrate that was saved with AAC family tools can be used to enhance video quality. Ex-HEAAC is a well-liked option for a number of applications since it is a strong and effective audio codec that provides high-quality audio at low bitrates.
|
||||
As the Extended High Efficiency AAC Profile is a logical evolution of the MPEG Audio's popular AAC Family profiles, the codec supports AAC-LC, HE-AACv1 (AAC+) and HE-AACv2 (eAAC+) audio object type encoding. The bitrate that was saved with AAC family tools can be used to enhance video quality. Extended HE-AAC is a well-liked option for a number of applications since it is a strong and effective audio codec that provides high-quality audio at low bitrates.
|
||||
|
||||

|
||||

|
||||
|
||||
One of the key features of Ittiam's Ex-HEAAC (refer to above image) is that it has support for AAC-LD (Low Delay), AAC-ELD (Enhanced Low Delay), and AAC-ELDv2 (Enhanced Low Delay version 2) modes. AAC-LD mode provides low latency encoding, making it suitable for applications such as interactive communication and live audio streaming. It helps to reduce the delay in the encoding process to improve the real-time performance of the system. AAC-ELD mode improves the low-delay performance of HE-AAC by reducing the coding delay while maintaining high audio quality. It was observed that minimum delay it can achieve is 15ms. In order to achieve low delay coding scheme and low bitrate, it uses the Low Delay SBR tool. AAC-ELDv2 is the most advanced version of AAC-based low delay coding. It provides an enhanced version of AAC-ELD, which provides even lower coding delay and higher audio quality.
|
||||
One of the key features of libxaac (refer to above image) is that it has support for AAC-LD (Low Delay), AAC-ELD (Enhanced Low Delay), and AAC-ELDv2 (Enhanced Low Delay version 2) modes. AAC-LD mode provides low latency encoding, making it suitable for applications such as interactive communication and live audio streaming. It helps to reduce the delay in the encoding process to improve the real-time performance of the system. AAC-ELD mode improves the low-delay performance of HE-AAC by reducing the coding delay while maintaining high audio quality. It was observed that minimum delay it can achieve is 15ms. In order to achieve low delay coding scheme and low bitrate, it uses the Low Delay SBR tool. AAC-ELDv2 is the most advanced version of AAC-based low delay coding. It provides an enhanced version of AAC-ELD, which provides even lower coding delay and higher audio quality.
|
||||
|
||||
Overall, libxaac, with support for AAC-LD, AAC-ELD, and AAC-ELDv2 modes, is a versatile audio coding technology that can be used for a wide range of applications, such as broadcasting, streaming, and teleconferencing which requires high-quality audio compression with minimal delay.
|
||||
|
||||
Also, the libxaac decoder supports MPEG-D DRC (Dynamic Range Control) for the Extended HE-AAC profile. MPEG-D DRC offers a bitrate efficient representation of dynamically compressed versions of an audio signal. This is achieved by adding a low-bitrate DRC metadata stream to the audio signal. DRC includes dedicated sections for metadata-based loudness leveling, clipping prevention, ducking, and for generating a fade-in and fade-out to supplement the main dynamic range compression functionality. The DRC effects available at the DRC decoder are generated at the DRC encoder side. At the DRC decoder side, the audio signal may be played back without applying DRC, or an appropriate DRC effect is selected and applied based on the given playback scenario. It offers flexible solutions to efficiently support the widespread demand for technologies such as loudness normalization and dynamic range compression for various playback scenarios.
|
||||
|
||||
Overall, Ittiam's Ex-HEAAC, with support for AAC-LD, AAC-ELD, and AAC-ELDv2 modes, is a versatile audio coding technology that can be used for a wide range of applications, such as broadcasting, streaming, and teleconferencing which requires high-quality audio compression with minimal delay.
|
||||
|
||||
#### Note
|
||||
* MPEG-D USAC (Unified Speech and Audio Coding) support for Ittiam's Ex-HEAAC Encoder will be coming soon, which will help in improved audio quality at reduced bitrates. USAC technology will provide efficient and high quality compression of speech and audio signals, making it a valuable addition to our Ex-HEAAC capabilities and features.
|
||||
* MPEG-D USAC (along with MPEG-D DRC) support for libxaac encoder will be coming soon, which will help in improved audio quality at reduced bitrates. USAC technology will provide efficient and high quality compression of speech and audio signals, making it a valuable addition to our libxaac capabilities and features.
|
||||
* Further Quality enhancements for AAC-ELD and AAC-ELDv2 modes may be pushed as quality assessment is in progress.
|
||||
|
||||
# Building the Ex-HEAAC Decoder and Encoder
|
||||
# Building the libxaac decoder and encoder
|
||||
|
||||
## Building for AOSP
|
||||
* Makefile for building the Ex-HEAAC decoder and encoder library is provided in root(`libxaac/`) folder.
|
||||
* Makefile for building the Ex-HEAAC decoder and encoder testbench is provided in `test` folder.
|
||||
* Makefile for building the libxaac decoder and encoder library is provided in root(`libxaac/`) folder.
|
||||
* Makefile for building the libxaac decoder and encoder testbench is provided in `test` folder.
|
||||
* Build the library followed by the application using the below commands:
|
||||
Go to root directory
|
||||
```
|
||||
|
|
@ -29,7 +32,7 @@ $ mm
|
|||
Users can also use cmake to build for `x86`, `x86_64`, `armv7`, `armv8` and Windows (MSVS project) platforms.
|
||||
|
||||
### Creating MSVS project files
|
||||
To create MSVS project files for the Ex-HEAAC decoder and encoder from cmake, run the following commands:
|
||||
To create MSVS project files for the libxaac decoder and encoder from cmake, run the following commands:
|
||||
```
|
||||
Go to the root directory(libxaac/).
|
||||
Create a new folder in the project root directory and move to the newly created folder.
|
||||
|
|
@ -50,7 +53,7 @@ $ cmake -G "Visual Studio 15 2017 Win64" ..
|
|||
The above command creates MSVS 2017 project files. If the version is different, modify the generator name accordingly.
|
||||
|
||||
### Building for native platforms
|
||||
Run the following commands to build the Ex-HEAAC decoder and encoder for native platform:
|
||||
Run the following commands to build the libxaac decoder and encoder for native platform:
|
||||
```
|
||||
Go to the root directory(libxaac/).
|
||||
Create a new folder in the project root directory and move to the newly created folder.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
|
||||
|
||||
# Introduction to Ex-HEAAC Decoder APIs
|
||||
# Introduction to libxaac decoder APIs
|
||||
|
||||
## Decoder APIs
|
||||
|
||||
|
|
@ -12,7 +12,7 @@ A single API is used to get and set configurations and execute the decode thread
|
|||
|IA_API_CMD_GET_LIB_ID_STRINGS | IA_CMD_TYPE_LIB_NAME | Gets the decoder library name |
|
||||
|IA_API_CMD_GET_LIB_ID_STRINGS | IA_CMD_TYPE_LIB_VERSION | Gets the decoder version |
|
||||
|IA_API_CMD_GET_API_SIZE | 0 | Gets the memory requirements size of the API |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS | Sets the configuration parameters of the Ex-HEAAC v2 Decoder to default values |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS | Sets the configuration parameters of the libxaac decoder to default values |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS | Sets the attributes(size, priority, alignment) of all memory types required by the application onto the memory structure |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_PROCESS | Search for the valid header, does header decode to get the parameters and initializes state and configuration structure |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_DONE_QUERY | Checks if the initialization process has completed |
|
||||
|
|
@ -22,13 +22,13 @@ A single API is used to get and set configurations and execute the decode thread
|
|||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_TARGET_LOUDNESS | Sets the value of DRC target loudness |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DOWNMIX | Sets the parameter whether the output needs to be down-mix to mono(1) or not(0) |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_TOSTEREO | Sets the flag to disable interleave mono to stereo |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DSAMPLE | Sets the parameter whether the output needs to be downsampled(1) or not(0. This is valid only for Ex-HEAAC v2 build |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DSAMPLE | Sets the parameter whether the output needs to be downsampled(1) or not(0) |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_ISMP4 | Sets the flag to 0 or 1 to indicate whether given test vector is an mp4 file or not |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_MAX_CHANNEL | Sets the maximum number of channels present. Its maximum value is 2 for stereo library and 8 for multichannel library |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_COUP_CHANNEL | Sets the number of coupling channels to be used for coupling. It can take values from 0 to 16. This command is supported only if the library has multichannel support |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DOWNMIX_STEREO | Sets the flag of downmixing n number of channels to stereo. Can be 0 or 1. This command is supported only if the library has multichannel support |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_DISABLE_SYNC | Sets the flag of ADTS syncing or not ADTS syncing as 0 or 1 |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_AUTO_SBR_UPSAMPLE | Sets the parameter auto SBR upsample to 0 or 1. Used in case of stream changing from SBR present to SBR not present. This is valid only for Ex-HEAAC v2 build |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_AUTO_SBR_UPSAMPLE | Sets the parameter auto SBR upsample to 0 or 1. Used in case of stream changing from SBR present to SBR not present |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_CUT | Sets the value of DRC cut factor |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_BOOST | Sets the value of DRC boost factor |
|
||||
|IA_API_CMD_SET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_HEAVY_COMP | Sets the parameter to either enable/disable DRC heavy compression |
|
||||
|
|
@ -61,7 +61,7 @@ A single API is used to get and set configurations and execute the decode thread
|
|||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_NUM_CHANNELS | Gets the output number of channels |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_CHANNEL_MASK | Gets the channel mask |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_CHANNEL_MODE | Gets the channel mode. (Mono or PS/Stereo/Dual-mono) |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_SBR_MODE | Gets the SBR mode (Present/ Not Present). This is valid only for Ex-HEAAC v2 build |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_SBR_MODE | Gets the SBR mode (Present/ Not Present) |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_EFFECT_TYPE | Gets the value of DRC effect type |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_TARGET_LOUDNESS | Gets the value of DRC target loudness |
|
||||
|IA_API_CMD_GET_CONFIG_PARAM | IA_ENHAACPLUS_DEC_CONFIG_PARAM_DRC_LOUD_NORM | Gets the value of DRC loudness normalization level |
|
||||
|
|
@ -120,7 +120,7 @@ A single API is used to get and set configurations and execute the decode thread
|
|||
| **API Command** | **API Sub Command** | **Description** |
|
||||
|------|------|------|
|
||||
|IA_API_CMD_GET_API_SIZE | 0 | Gets the memory requirements size of the API |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS | Sets the configuration parameters of the Ex-HEAAC v2 Decoder to default values |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_PRE_CONFIG_PARAMS | Sets the configuration parameters of the libxaac decoder to default values |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_API_POST_CONFIG_PARAMS | Sets the attributes(size, priority, alignment) of all memory types required by the application onto the memory structure |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_PROCESS | Search for the valid header, does header decode to get the parameters and initializes state and configuration structure |
|
||||
|IA_API_CMD_INIT | IA_CMD_TYPE_INIT_CPY_BSF_BUFF | Sets the bitstream split format buffer |
|
||||
|
|
@ -157,9 +157,9 @@ A single API is used to get and set configurations and execute the decode thread
|
|||
|
||||

|
||||
|
||||
# Running the Ex-HEAAC Decoder
|
||||
# Running the libxaac decoder
|
||||
|
||||
The Ex-HEAAC Decoder can be run by providing command-line parameters(CLI options) directly or by providing a parameter file as a command line argument.
|
||||
The libxaac decoder can be run by providing command-line parameters(CLI options) directly or by providing a parameter file as a command line argument.
|
||||
|
||||
Command line usage :
|
||||
```
|
||||
|
|
@ -193,7 +193,7 @@ Command line usage :
|
|||
[-esbr:<esbr_flag>]
|
||||
|
||||
where,
|
||||
<input_file> is the input AAC/HEAACv1/HEAACv2/USAC file name.
|
||||
<input_file> is the input AAC-LC/HE-AACv1/HE-AACv2/AAC-LD/AAC-ELD/AAC-ELDv2/USAC file name.
|
||||
<meta_data_file> is a text file which contains metadata. To be given when -mp4:1 is enabled.
|
||||
<output_file> is the output file name.
|
||||
<mp4_flag> is a flag that should be set to 1 when passing raw stream along with meta data text file.
|
||||
|
|
@ -229,13 +229,13 @@ Sample CLI:
|
|||
<xaac_dec_exe> -ifile:in_file.aac -ofile:out_file.wav -pcmsz:16
|
||||
```
|
||||
|
||||
# Validating the Ex-HEAAC Decoder
|
||||
# Validating the libxaac decoder
|
||||
|
||||
Conformance testing for AAC/HEAAC v1/HEAAC v2 mainly involves comparing
|
||||
Conformance testing for AAC/HE-AACv1/HE-AACv2 mainly involves comparing
|
||||
decoder under test output with the ISO and 3GPP reference decoded output.
|
||||
|
||||
Testing for USAC is done using encoded streams generated using ISO USAC
|
||||
reference encoder. The output generated by ITTIAM USAC decoder is
|
||||
reference encoder. The output generated by libxaac USAC decoder is
|
||||
compared against the output generated by ISO USAC decoder for 16-bit
|
||||
conformance on the respective(ARMv7, ARMv8, X86_32, X86_64) platforms.
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Introduction Extended HE-AAC Encoder APIs
|
||||
# Introduction libxaac encoder APIs
|
||||
|
||||
# Encoder APIs
|
||||
|
||||
|
|
@ -15,61 +15,63 @@
|
|||
# Audio Object Types(AOT)
|
||||
| **AOT** | **Description** |
|
||||
|------|------|
|
||||
|2|AAC LC|
|
||||
|5|HEAACv1|
|
||||
|23|AAC LD|
|
||||
|29|HEAACv2|
|
||||
|39|AAC ELD|
|
||||
|2|AAC-LC|
|
||||
|5|HE-AACv1|
|
||||
|23|AAC-LD|
|
||||
|29|HE-AACv2|
|
||||
|39|AAC-ELD|
|
||||
|42|USAC (support will be added soon)|
|
||||
|
||||
# Running the Ex-HEAAC Encoder
|
||||
The Ex-HEAAC Encoder can be run by providing command-line parameters(CLI options) directly or by providing a parameter file as a command line argument.
|
||||
The reference paramfile is placed in smoke_test_suite(paramfilesimple.txt)
|
||||
# Running the libxaac encoder
|
||||
The libxaac encoder can be run by providing command-line parameters(CLI options) directly or by providing a parameter file as a command line argument.
|
||||
The reference paramfile is placed in `encoder\test` directory(paramfilesimple.txt)
|
||||
|
||||
# Command line usage :
|
||||
```
|
||||
<exceutable> -ifile:<input_file> -ofile:<out_file> [options]
|
||||
|
||||
(or)
|
||||
<executable> -paramfile:<paramfile>
|
||||
|
||||
[options] can be,
|
||||
[-br:<bitrate>]
|
||||
[-mps:<use_mps>]
|
||||
[-adts:<use_adts_flag (0/1)>]
|
||||
[-adts:<use_adts_flag>]
|
||||
[-tns:<use_tns_flag>]
|
||||
[-framesize:<framesize_to_be_used>]
|
||||
[-aot:<audio_object_type>]
|
||||
[-esbr:<esbr_flag (0/1)>]
|
||||
[-esbr:<esbr_flag>]
|
||||
[-full_bandwidth:<Enable use of full bandwidth of input>]
|
||||
[-max_out_buffer_per_ch:<bitreservoir_size>]
|
||||
[-tree_cfg:<tree_config>]
|
||||
|
||||
|
||||
where,
|
||||
<paramfile> is the parameter file with multiple commands
|
||||
<inputfile> is the input 16-bit WAV or PCM file name
|
||||
<outputfile> is the output ADTS/ES file name
|
||||
<bitrate> is the bit-rate in bits per second. Valid values are Plain AAC: 8000-576000 bps per channel
|
||||
<use_mps> When set to 1 MPS is enable. Default 0.
|
||||
<use_adts_flag> when set to 1 ADTS header generated. Default is 0
|
||||
<use_tns_flag> controls usage of TNS in encoding. Default is 1.
|
||||
<framesize_to_be_used> is the framesize to be used For AOT 23, 39 (LD core coder profiles) valid values are 480 and 512 .Default is 512
|
||||
For AOT 2, 5, 29 (LC core coder profiles) valid values are 960 and 1024 .Default is 1024
|
||||
<audio_object_type> is the Audio object type
|
||||
2 for AAC LC
|
||||
5 for HEAACv1(Legacy SBR)
|
||||
23 for AAC LD
|
||||
29 for HEAACv2
|
||||
39 for AAC ELD
|
||||
Default is 2 for AAC LC
|
||||
<esbr_flag> when set to 1 enables eSBR in HEAACv1 encoding Default is 0
|
||||
<full_bandwidth> Enable use of full bandwidth of input. Valid values are 0(disable) and 1(enable). Default is 0.
|
||||
<bitreservoir_size> is the maximum size of bit reservoir to be used. Valid values are from -1 to 6144. -1 to omit use of bit reservoir. Default is 384.
|
||||
<tree_config> MPS tree config
|
||||
0 for '212'
|
||||
1 for '5151'
|
||||
2 for '5152'
|
||||
3 for '525'
|
||||
Default '212' for stereo input '515' for 6 ch input
|
||||
where,
|
||||
<paramfile> is the parameter file with multiple commands
|
||||
<inputfile> is the input 16-bit WAV or PCM file name
|
||||
<outputfile> is the output ADTS/ES file name
|
||||
<bitrate> is the bit-rate in bits per second. Default value is 48000.
|
||||
<use_mps> Valid values are 0 (disable MPS) and 1 (enable MPS). Default is 0.
|
||||
<use_adts_flag> Valid values are 0 ( No ADTS header) and 1 ( generate ADTS header). Default is 0.
|
||||
<use_tns_flag> Valid values are 0 (disable TNS) and 1 (enable TNS). Default is 1.
|
||||
<framesize_to_be_used> is the framesize to be used.
|
||||
For AOT 23, 39 (LD core coder profiles) valid values are 480 and 512. Default is 512.
|
||||
For AOT 2, 5, 29 (LC core coder profiles) valid values are 960 and 1024. Default is 1024.
|
||||
<audio_object_type> is the Audio object type
|
||||
2 for AAC-LC
|
||||
5 for HE-AACv1(Legacy SBR)
|
||||
23 for AAC-LD
|
||||
29 for HE-AACv2
|
||||
39 for AAC-ELD
|
||||
Default is 2 for AAC-LC.
|
||||
<esbr_flag> Valid values are 0 (disable eSBR) and 1 (enable eSBR in HE-AACv1 encoding). Default is 0.
|
||||
<full_bandwidth> Enable use of full bandwidth of input. Valid values are 0(disable full bandwidth) and 1(enable full bandwidth). Default is 0.
|
||||
<bitreservoir_size> is the maximum size of bit reservoir to be used.
|
||||
Valid values are from -1 to 6144. -1 will omit use of bit reservoir. Default is 384.
|
||||
<tree_config> MPS tree config
|
||||
0 for '212'
|
||||
1 for '5151'
|
||||
2 for '5152'
|
||||
3 for '525'
|
||||
Default '212' for stereo input and '5151' for 6ch input.
|
||||
```
|
||||
Sample CLI:
|
||||
```
|
||||
|
|
@ -79,8 +81,8 @@ Sample CLI:
|
|||
|
||||
# Additional Documents
|
||||
Brief description about documents present in `docs` folder
|
||||
* [`IA-XHEAAC-Enc-API.pdf`](docs/IA-XHEAAC-Enc-API.pdf) - Describes Application Program Interface for Ex-HEAAC Encoder.
|
||||
* [`IA-XHEAAC-Enc-GSG.pdf`](docs/IA-XHEAAC-Enc-GSG.pdf) - Getting Started Guide for the Ex-HEAAC Encoder.
|
||||
* [`LIBXAAC-Enc-API.pdf`](docs/LIBXAAC-Enc-API.pdf) - Describes Application Program Interface for libxaac encoder.
|
||||
* [`LIBXAAC-Enc-GSG.pdf`](docs/LIBXAAC-Enc-GSG.pdf) - Getting Started Guide for the libxaac encoder.
|
||||
|
||||
# Validating the Ex-HEAAC Encoder
|
||||
Testing for Ex-HEAAC Encoder done using listening test for different AOT(Audio object types)
|
||||
# Validating the libxaac encoder
|
||||
Testing for libxaac encoder is done using listening test for different AOT(Audio object types)
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 76 KiB |
Binary file not shown.
Binary file not shown.
BIN
docs/libxaac_block_diagram.jpg
Normal file
BIN
docs/libxaac_block_diagram.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 373 KiB |
|
|
@ -2238,7 +2238,7 @@ void print_usage() {
|
|||
printf("\n[-peak_limiter_off:<peak_limiter_off_flag>]");
|
||||
printf("\n[-err_conceal:<error_concealment_flag>]");
|
||||
printf("\n[-esbr:<esbr_flag>]");
|
||||
printf("\n\nwhere, \n <input_file> is the input AAC/HEAACv1/HEAACv2/USAC file name");
|
||||
printf("\n\nwhere, \n <input_file> is the input AAC-LC/HE-AACv1/HE-AACv2//AAC-LD/AAC-ELD/AAC-ELDv2/USAC file name");
|
||||
printf("\n <meta_data_file> is a text file which contains metadata.");
|
||||
printf("\n To be given when -mp4:1 is enabled");
|
||||
printf("\n <output_file> is the output file name");
|
||||
|
|
|
|||
|
|
@ -192,52 +192,56 @@ void ia_enhaacplus_enc_print_usage() {
|
|||
printf("\n[options] can be,");
|
||||
printf("\n[-br:<bitrate>]");
|
||||
printf("\n[-mps:<use_mps>]");
|
||||
printf("\n[-adts:<use_adts_flag (0/1)>]");
|
||||
printf("\n[-adts:<use_adts_flag>]");
|
||||
printf("\n[-tns:<use_tns_flag>]");
|
||||
printf("\n[-framesize:<framesize_to_be_used>]");
|
||||
printf("\n[-aot:<audio_object_type>]");
|
||||
printf("\n[-esbr:<esbr_flag (0/1)>]");
|
||||
printf("\n[-esbr:<esbr_flag>]");
|
||||
printf("\n[-full_bandwidth:<Enable use of full bandwidth of input>]");
|
||||
printf("\n[-max_out_buffer_per_ch:<bitreservoir_size>]");
|
||||
printf("\n[-tree_cfg:<tree_config>]");
|
||||
printf("\n\nwhere, \n <paramfile> is the parameter file with multiple commands");
|
||||
printf("\n <inputfile> is the input 16-bit WAV or PCM file name");
|
||||
printf("\n <outputfile> is the output ADTS/ES file name");
|
||||
printf("\n <bitrate> is the bit-rate in bits per second. Valid values are ");
|
||||
printf("\n Plain AAC: 8000-576000 bps per channel");
|
||||
printf("\n <use_mps> When set to 1 MPS is enable. Default 0.");
|
||||
printf("\n <use_adts_flag> when set to 1 ADTS header generated.");
|
||||
printf("\n Default is 0");
|
||||
printf("\n <use_tns_flag> controls usage of TNS in encoding. Default is 1");
|
||||
printf("\n <bitrate> is the bit-rate in bits per second. Default value is 48000. ");
|
||||
printf("\n <use_mps> Valid values are 0 (disable MPS) and 1 (enable MPS). Default is 0.");
|
||||
printf(
|
||||
"\n <use_adts_flag> Valid values are 0 ( No ADTS header) and 1 ( generate ADTS header). "
|
||||
"Default is 0.");
|
||||
printf("\n <use_tns_flag> Valid values are 0 (disable TNS) and 1 (enable TNS). Default is 1.");
|
||||
printf("\n <framesize_to_be_used> is the framesize to be used.");
|
||||
printf(
|
||||
"\n For AOT 23, 39 (LD core coder profiles) valid values are 480 and 512 .Default is "
|
||||
"512");
|
||||
"\n For AOT 23, 39 (LD core coder profiles) valid values are 480 and 512. Default "
|
||||
"is "
|
||||
"512.");
|
||||
printf(
|
||||
"\n For AOT 2, 5, 29 (LC core coder profiles) valid values are 960 and 1024 .Default "
|
||||
"is 1024");
|
||||
"\n For AOT 2, 5, 29 (LC core coder profiles) valid values are 960 and 1024. "
|
||||
"Default "
|
||||
"is 1024.");
|
||||
printf("\n <audio_object_type> is the Audio object type");
|
||||
printf("\n 2 for AAC LC");
|
||||
printf("\n 5 for HEAACv1(Legacy SBR)");
|
||||
printf("\n 23 for AAC LD");
|
||||
printf("\n 29 for HEAACv2");
|
||||
printf("\n 39 for AAC ELD");
|
||||
printf("\n Default is 2 for AAC LC");
|
||||
printf("\n <esbr_flag> when set to 1 enables eSBR in HEAACv1 encoding");
|
||||
printf("\n Default is 0");
|
||||
printf("\n 2 for AAC-LC");
|
||||
printf("\n 5 for HE-AACv1(Legacy SBR)");
|
||||
printf("\n 23 for AAC-LD");
|
||||
printf("\n 29 for HE-AACv2");
|
||||
printf("\n 39 for AAC-ELD");
|
||||
printf("\n Default is 2 for AAC-LC.");
|
||||
printf(
|
||||
"\n <full_bandwidth> Enable use of full bandwidth of input. Valid values are 0(disable) "
|
||||
"and 1(enable). Default is 0.");
|
||||
"\n <esbr_flag> Valid values are 0 (disable eSBR) and 1 (enable eSBR in HE-AACv1 "
|
||||
"encoding). Default is 0.");
|
||||
printf(
|
||||
"\n <full_bandwidth> Enable use of full bandwidth of input. Valid values are 0(disable "
|
||||
"full bandwidth) and 1(enable full bandwidth). Default is 0.");
|
||||
printf("\n <bitreservoir_size> is the maximum size of bit reservoir to be used.");
|
||||
printf("\n Valid values are from -1 to 6144. -1 to omit use of bit reservoir.");
|
||||
printf("\n Default is 384.");
|
||||
printf(
|
||||
"\n Valid values are from -1 to 6144. -1 will omit use of bit reservoir. Default is "
|
||||
"384.");
|
||||
printf(
|
||||
"\n <tree_config> MPS tree config"
|
||||
"0 for '212'"
|
||||
"1 for '5151'"
|
||||
"2 for '5152'"
|
||||
"3 for '525'"
|
||||
"Default '212' for stereo input '515' for 6ch input");
|
||||
"\n 0 for '212'"
|
||||
"\n 1 for '5151'"
|
||||
"\n 2 for '5152'"
|
||||
"\n 3 for '525'"
|
||||
"\n Default '212' for stereo input and '5151' for 6ch input.");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue