Commit c2e56cbf authored by sbsarac's avatar sbsarac
Browse files

Merge branch 'main' into 1053-reverb-reconfiguration-runtime-test

parents 8949f74a e5acb70e
Loading
Loading
Loading
Loading
Loading
+29 −7
Original line number Diff line number Diff line
@@ -513,7 +513,6 @@ build-codec-windows-msbuild:
  script:
    - *print-common-info-windows
    - *activate-WX-windows
    - python .\scripts\strip_split_rendering.py
    - MSBuild.exe -maxcpucount .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug

# ---------------------------------------------------------------
@@ -1380,7 +1379,6 @@ ivas-conformance:
      - 123
  script:
    - *print-common-info-windows    
    - python .\scripts\strip_split_rendering.py
    - MSBuild.exe -maxcpucount .\Workspace_msvc\Workspace_msvc.sln /property:Configuration=Debug    
    - cp -force IVAS_cod.exe IVAS_cod_ref.exe
    - cp -force IVAS_dec.exe IVAS_dec_ref.exe
@@ -1389,11 +1387,12 @@ ivas-conformance:
    # Reference creation
    - python tests/create_short_testvectors.py
    - python scripts/prepare_combined_format_inputs.py
    - python -m pytest tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py -v -n auto --update_ref 1 -m create_ref --create_ref --keep_files
    - python -m pytest tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py -v -n auto --update_ref 1 -m create_ref_part2 --keep_files
    - $TEST_SET = "tests/codec_be_on_mr_nonselection", "tests/renderer/test_renderer.py", "tests/split_rendering/test_split_rendering.py"
    - python -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref --create_ref --keep_files
    - python -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref_part2 --keep_files

    # Output creation
    - python -m pytest tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py -v -n auto --keep_files --create_cut --html=report_cmd.html --self-contained-html
    - python -m pytest $TEST_SET -v -n auto --keep_files --create_cut --html=report_cmd.html --self-contained-html
    - python scripts/parse_commands.py report_cmd.html Readme_IVAS.txt
    
    # Copy input data and output ref data
@@ -1402,10 +1401,13 @@ ivas-conformance:
    - if (Test-Path TMP_ENC) {rm -r -force TMP_ENC}    
    - if (Test-Path TMP_JBM) {rm -r -force TMP_JBM}
    - if (Test-Path TMP_REND) {rm -r -force TMP_REND}
    - if (Test-Path TMP_ISAR_POST_REND) {rm -r -force TMP_ISAR_POST_REND}    
    - if (Test-Path TMP_DEC_ISAR) {rm -r -force TMP_DEC_ISAR}    
    - mkdir testvec
    - mkdir testvec/binauralRenderer_interface
    - mkdir testvec/testv
    - mkdir testvec/testv/renderer
    - mkdir testvec/testv/split_rendering        
    - mkdir testvec/bin    
    - cp    -force -ErrorAction Ignore scripts/testv/* testvec/testv
    - cp -r -force -ErrorAction Ignore scripts/ls_layouts testvec
@@ -1415,6 +1417,9 @@ ivas-conformance:
    - cp -r -force -ErrorAction Ignore tests/ref testvec/testv/ref
    - cp -r -force -ErrorAction Ignore tests/dut/* testvec/testv/ref
    - cp -r -force -ErrorAction Ignore tests/renderer/cut testvec/testv/renderer/ref
    - cp -r -force -ErrorAction Ignore tests/split_rendering/cut testvec/testv/split_rendering/ref 
    - cp -r -force -ErrorAction Ignore tests/split_rendering/renderer_configs testvec/testv/split_rendering/renderer_configs 
    - cp -r -force -ErrorAction Ignore tests/split_rendering/error_patterns testvec/testv/split_rendering/error_patterns 
    
    # Remove redundant files 
    - python scripts/cleanup_26252.py
@@ -1425,9 +1430,12 @@ ivas-conformance:
    - cp Readme_IVAS_enc.txt testvec 
    - cp Readme_IVAS_rend.txt testvec
    - cp Readme_IVAS_JBM_dec.txt testvec
    - cp Readme_IVAS_ISAR_dec.txt testvec 
    - cp Readme_IVAS_ISAR_post_rend.txt testvec   
    - cp IVAS_cod.exe testvec/bin
    - cp IVAS_dec.exe testvec/bin
    - cp IVAS_rend.exe testvec/bin
    - cp ISAR_post_rend.exe testvec/bin    
    
    
    # Test run generated scripts in testvec
@@ -1447,6 +1455,8 @@ ivas-conformance:
      - Readme_IVAS_enc.txt  
      - Readme_IVAS_rend.txt
      - Readme_IVAS_JBM_dec.txt
      - Readme_IVAS_ISAR_dec.txt 
      - Readme_IVAS_ISAR_post_rend.txt    
    expose_as: "Draft IVAS conformance"
    reports:
      junit: report-junit.xml
@@ -1471,7 +1481,7 @@ ivas-conformance-linux:
    # Reference creation
    - python3 tests/create_short_testvectors.py
    - python3 scripts/prepare_combined_format_inputs.py
    - TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py"
    - TEST_SET="tests/codec_be_on_mr_nonselection tests/renderer/test_renderer.py tests/split_rendering/test_split_rendering.py"
    - python3 -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref --create_ref --keep_files
    - python3 -m pytest $TEST_SET -v -n auto --update_ref 1 -m create_ref_part2 --keep_files

@@ -1485,6 +1495,7 @@ ivas-conformance-linux:
    - mkdir testvec/binauralRenderer_interface
    - mkdir testvec/testv
    - mkdir testvec/testv/renderer
    - mkdir testvec/testv/split_rendering    
    - mkdir testvec/bin    
    - cp -r scripts/testv/* testvec/testv
    - cp -r scripts/ls_layouts testvec
@@ -1494,6 +1505,9 @@ ivas-conformance-linux:
    - cp -r tests/ref testvec/testv/ref
    - cp -r tests/dut/* testvec/testv/ref
    - cp -r tests/renderer/cut testvec/testv/renderer/ref
    - cp -r tests/split_rendering/cut testvec/testv/split_rendering/ref  
    - cp -r tests/split_rendering/renderer_configs testvec/testv/split_rendering/renderer_configs 
    - cp -r tests/split_rendering/error_patterns testvec/testv/split_rendering/error_patterns    
    
    # Remove redundant files 
    - python3 scripts/cleanup_26252.py
@@ -1504,6 +1518,8 @@ ivas-conformance-linux:
    - cp Readme_IVAS_enc.txt testvec 
    - cp Readme_IVAS_rend.txt testvec
    - cp Readme_IVAS_JBM_dec.txt testvec
    - cp Readme_IVAS_ISAR_dec.txt testvec 
    - cp Readme_IVAS_ISAR_post_rend.txt testvec    
    
    # Create GCOV execs for coverage analysis
    - make clean
@@ -1512,6 +1528,7 @@ ivas-conformance-linux:
    - cp IVAS_cod testvec/bin
    - cp IVAS_dec testvec/bin
    - cp IVAS_rend testvec/bin
    - cp ISAR_post_rend testvec/bin    
        
    # Test run generated scripts in testvec
    - cd testvec   
@@ -1528,6 +1545,9 @@ ivas-conformance-linux:
    - commit_sha=$(git rev-parse HEAD)
    - genhtml coverage.info -o coverage -t "Coverage on main @ $commit_sha"

    # Check for failures
    - if [ $exit_code -eq 1 ]; then echo "Test failures encountered"; exit $EXIT_CODE_FAIL; fi
    
  artifacts:
    name: "ivas-conformance-linux-$CI_COMMIT_SHORT_SHA"
    expire_in: 1 week
@@ -1540,6 +1560,8 @@ ivas-conformance-linux:
      - Readme_IVAS_enc.txt  
      - Readme_IVAS_rend.txt
      - Readme_IVAS_JBM_dec.txt
      - Readme_IVAS_ISAR_dec.txt 
      - Readme_IVAS_ISAR_post_rend.txt    
      - coverage.info
      - coverage
    expose_as: "Draft IVAS conformance -- Linux"
+3 −0
Original line number Diff line number Diff line
@@ -155,8 +155,11 @@

/*#define FIX_I4_OL_PITCH*/                             /* fix open-loop pitch used for EVS core switching */
#define SPLIT_REND_WITH_HEAD_ROT                        /* Dlb,FhG: Split Rendering contributions 21 and 35 */
#ifdef SPLIT_REND_WITH_HEAD_ROT
#define ISAR_BITSTREAM_UPDATE_LC3PLUS                   /* FhG: Multiple improvements to the ISAR bitstream when LC3plus is used. See MR 1456 for details. */
#define SPLIT_REND_POSE_CORRECTION_UNUSED_BITS
#define FIX_1081_BINAURAL_SPLIT_PCM_SANITY_CHECK        /* VA: issue 1081: correct error print-out when BINAURAL_SPLIT_PCM is requested */
#endif

#define FIX_1053_REVERB_RECONFIGURATION                 /* Philips: issue 1053: fix for dynamic switching of acoustic environment */
#define CONF_DISTATT                                    /* Eri: Make distance attenuation configurable */
+14 −14
Original line number Diff line number Diff line
@@ -1677,14 +1677,14 @@ void ivas_binaural_cldfb(
                    idx_in++;
                }

                if ( st_ivas->hSplitBinRend.hCldfbDataOut != NULL )
                if ( st_ivas->hSplitBinRend->hCldfbDataOut != NULL )
                {
                    for ( ch = 0; ch < ( st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe ); ch++ )
                    {
                        mvr2r( Cldfb_RealBuffer[ch][slot_idx], st_ivas->hSplitBinRend.hCldfbDataOut->Cldfb_RealBuffer[ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer[ch][slot_idx], st_ivas->hSplitBinRend.hCldfbDataOut->Cldfb_ImagBuffer[ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_RealBuffer[ch][slot_idx], st_ivas->hSplitBinRend->hCldfbDataOut->Cldfb_RealBuffer[ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer[ch][slot_idx], st_ivas->hSplitBinRend->hCldfbDataOut->Cldfb_ImagBuffer[ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                    }
                    st_ivas->hSplitBinRend.hCldfbDataOut->config = st_ivas->hIntSetup.output_config;
                    st_ivas->hSplitBinRend->hCldfbDataOut->config = st_ivas->hIntSetup.output_config;
                }
            }
#endif
@@ -1694,7 +1694,7 @@ void ivas_binaural_cldfb(
        ivas_binRenderer(
            st_ivas->hBinRenderer,
#ifdef SPLIT_REND_WITH_HEAD_ROT
            &st_ivas->hSplitBinRend.splitrend.multiBinPoseData,
            &st_ivas->hSplitBinRend->splitrend.multiBinPoseData,
#endif
            st_ivas->hCombinedOrientationData,
            JBM_CLDFB_SLOTS_IN_SUBFRAME,
@@ -1736,8 +1736,8 @@ void ivas_binaural_cldfb(
                                   maxBand );
                        }

                        mvr2r( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][( subframeIdx * JBM_CLDFB_SLOTS_IN_SUBFRAME ) + slot_idx], maxBand );
                    }
                }
            }
@@ -1855,14 +1855,14 @@ void ivas_binaural_cldfb_sf(
                }

#ifdef SPLIT_REND_WITH_HEAD_ROT
                if ( st_ivas->hSplitBinRend.hCldfbDataOut != NULL )
                if ( st_ivas->hSplitBinRend->hCldfbDataOut != NULL )
                {
                    for ( ch = 0; ch < ( st_ivas->hIntSetup.nchan_out_woLFE + st_ivas->hIntSetup.num_lfe ); ch++ )
                    {
                        mvr2r( Cldfb_RealBuffer[ch][slot_idx], st_ivas->hSplitBinRend.hCldfbDataOut->Cldfb_RealBuffer[ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer[ch][slot_idx], st_ivas->hSplitBinRend.hCldfbDataOut->Cldfb_ImagBuffer[ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_RealBuffer[ch][slot_idx], st_ivas->hSplitBinRend->hCldfbDataOut->Cldfb_RealBuffer[ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer[ch][slot_idx], st_ivas->hSplitBinRend->hCldfbDataOut->Cldfb_ImagBuffer[ch][slot_index_start + slot_idx], maxBand );
                    }
                    st_ivas->hSplitBinRend.hCldfbDataOut->config = st_ivas->hIntSetup.output_config;
                    st_ivas->hSplitBinRend->hCldfbDataOut->config = st_ivas->hIntSetup.output_config;
                }
#endif
            }
@@ -1873,7 +1873,7 @@ void ivas_binaural_cldfb_sf(
        ivas_binRenderer(
            st_ivas->hBinRenderer,
#ifdef SPLIT_REND_WITH_HEAD_ROT
            &st_ivas->hSplitBinRend.splitrend.multiBinPoseData,
            &st_ivas->hSplitBinRend->splitrend.multiBinPoseData,
#endif
            st_ivas->hCombinedOrientationData,
            st_ivas->hTcBuffer->subframe_nbslots[subframeIdx],
@@ -1895,8 +1895,8 @@ void ivas_binaural_cldfb_sf(
                {
                    for ( ch = 0; ch < st_ivas->hDecoderConfig->nchan_out; ch++ )
                    {
                        mvr2r( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend.hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_RealBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_RealBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_index_start + slot_idx], maxBand );
                        mvr2r( Cldfb_ImagBuffer_Binaural[pos_idx][ch][slot_idx], st_ivas->hSplitBinRend->hMultiBinCldfbData->Cldfb_ImagBuffer_Binaural[( pos_idx * BINAURAL_CHANNELS ) + ch][slot_index_start + slot_idx], maxBand );
                    }
                }
            }
+33 −12
Original line number Diff line number Diff line
@@ -33,11 +33,12 @@

These files represent the 3GPP EVS Codec Extension for Immersive Voice and 
Audio Services (IVAS) floating-point C simulation. All code is writtten
in ISO/IEC C99. The system is implemented as three separate programs:
in ISO/IEC C99. The system is implemented as four separate programs:

        IVAS_cod   Encoder
        IVAS_dec   Decoder
        IVAS_rend  Renderer
        IVAS_cod   	    IVAS Encoder
        IVAS_dec   	    IVAS Decoder
        IVAS_rend  	    IVAS External Renderer
        ISAR_post_rend  ISAR Post Renderer

For encoding using the coder program, the input is a binary
audio file (*.8k, *.16k, *.32k, *.48k) and the output is a binary
@@ -128,6 +129,8 @@ should have the following structure:
    |-- lib_debug
    |-- lib_dec
    |-- lib_enc
    |-- lib_isar
    |-- lib_lc3plus
    |-- lib_rend    
    |-- lib_util
    |-- readme.txt
@@ -135,16 +138,16 @@ should have the following structure:

The package includes a Makefile for gcc, which has been verified on
32-bit Linux systems. The code can be compiled by entering the directory
"c-code" and typing the command: make. The resulting encoder/decoder/renderer
executables are named "IVAS_cod", "IVAS_dec", and "IVAS_rend". All reside 
in the c-code directory.
"c-code" and typing the command: make. The resulting encoder/decoder/renderer/
ISAR_post_renderer executables are named "IVAS_cod", "IVAS_dec", "IVAS_rend",
and "ISAR_post_rend". All reside in the c-code directory.

The package also includes a solution-file for Microsoft Visual Studio 2017 (x86). 
To compile the code, please open "Workspace_msvc\Workspace_msvc.sln" and build 
"encoder" for the encoder, "decoder" for the decoder, and "renderer" for the 
renderer executable. The resulting encoder/decoder/renderer executables are 
"IVAS_cod.exe", "IVAS_dec.exe", and "IVAS_rend.exe". All reside in the c-code 
main directory. 
renderer executable. The resulting encoder/decoder/renderer/ISAR_post_renderer 
executables are "IVAS_cod.exe", "IVAS_dec.exe", "IVAS_rend.exe", and
"ISAR_post_rend.exe". All reside in the c-code main directory. 


                       RUNNING THE SOFTWARE
@@ -239,7 +242,8 @@ Usage for IVAS: IVAS_dec.exe [Options] OutputConf Fs bitstream_file output_file
Mandatory parameters:
---------------------
OutputConf           : Output configuration: MONO, STEREO, 5_1, 7_1, 5_1_2, 5_1_4, 7_1_4, FOA,
                      HOA2, HOA3, BINAURAL, BINAURAL_ROOM_IR, BINAURAL_ROOM_REVERB, EXT
                      HOA2, HOA3, BINAURAL, BINAURAL_ROOM_IR, BINAURAL_ROOM_REVERB, 
                      BINAURAL_SPLIT_CODED, BINAURAL_SPLIT_PCM, EXT
                       By default, channel order and loudspeaker positions are equal to the
                       encoder. For loudspeaker outputs, OutputConf can be a custom loudspeaker
                       layout file. See below for details.
@@ -287,6 +291,7 @@ Options:
					  spaces, with ':' character separating ID from duration, where duration is specified in frames
					  for BINAURAL_ROOM_REVERB output configuration.					 
-level level        : Complexity level, level = (1, 2, 3), will be defined after characterisation.
-om File            : Coded metadata File for BINAURAL_SPLIT_PCM OutputConf
                      Currently, all values default to level 3 (full functionality).
-q                  : Quiet mode, limit printouts to terminal, default is deactivated

@@ -331,11 +336,27 @@ Options:
-g                  : Input gain (linear, not in dB) to be applied to input audio file
-l                  : List supported audio formats
-smd                : Metadata Synchronization Delay in ms, Default is 0. Quantized by 5ms subframes.
-om File            : Coded metadata File for BINAURAL_SPLIT_PCM output format
-level level        : Complexity level, level = (1, 2, 3), will be defined after characterisation.
                      Currently, all values default to level 3 (full functionality).
-q                  : Quiet mode, limit printouts to terminal, default is deactivated


The usage of the "ISAR_post_rend" program:
------------------------------------------

Usage: ISAR_post_rend [options]

Options:
--------
-i File             : Input File (input file is bitstream if format is BINAURAL_SPLIT_CODED, or PCM/WAV file if format is BINAURAL_SPLIT_PCM)
-if Format          : Input Format of input (BINAURAL_SPLIT_CODED, BINAURAL_SPLIT_PCM)
-im File            : Coded metadata File for BINAURAL_SPLIT_PCM input format
-o File             : Output Audio File in BINAURAL format
-fs                 : Input sampling rate in kHz (48)
-prbfi File         : BFI File


                       MULTICHANNEL LOUDSPEAKER INPUT / OUTPUT CONFIGURATIONS
                       ======================================================
The loudspeaker positions for each MC layouts are assumed to have the following azimuth and elevation

readme_split_rendering.txt

deleted100644 → 0
+0 −128
Original line number Diff line number Diff line
/******************************************************************************************************

   (C) 2022-2024 IVAS codec Public Collaboration with portions copyright Dolby International AB, Ericsson AB,
   Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD.,
   Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange,
   Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other
   contributors to this repository. All Rights Reserved.

   This software is protected by copyright law and by international treaties.
   The IVAS codec Public Collaboration consisting of Dolby International AB, Ericsson AB,
   Fraunhofer-Gesellschaft zur Foerderung der angewandten Forschung e.V., Huawei Technologies Co. LTD.,
   Koninklijke Philips N.V., Nippon Telegraph and Telephone Corporation, Nokia Technologies Oy, Orange,
   Panasonic Holdings Corporation, Qualcomm Technologies, Inc., VoiceAge Corporation, and other
   contributors to this repository retain full ownership rights in their respective contributions in
   the software. This notice grants no license of any kind, including but not limited to patent
   license, nor is any license granted by implication, estoppel or otherwise.

   Contributors are required to enter into the IVAS codec Public Collaboration agreement before making
   contributions.

   This software is provided "AS IS", without any express or implied warranties. The software is in the
   development stage. It is intended exclusively for experts who have experience with such software and
   solely for the purpose of inspection. All implied warranties of non-infringement, merchantability
   and fitness for a particular purpose are hereby disclaimed and excluded.

   Any dispute, controversy or claim arising under or in relation to providing this software shall be
   submitted to and settled by the final, binding jurisdiction of the courts of Munich, Germany in
   accordance with the laws of the Federal Republic of Germany excluding its conflict of law rules and
   the United Nations Convention on Contracts on the International Sales of Goods.

*******************************************************************************************************/

For the IVAS Readme.txt, please refer to Readme.txt.

This readme_split_rendering.txt describes a usage of the binaural split 
rendering feature in the IVAS codec. This feature is implemented as part of 
the following two separate programs:

        IVAS_dec        Decoder
        IVAS_rend       Renderer
        ISAR_post_rend  ISAR_post_renderer        
		


                      INSTALLING THE SOFTWARE
                      =======================

Same as described in Readme.txt while the structure looks as follows:

.
`-- c-code
    |-- Makefile
    |-- Workspace_msvc
    |-- apps
    |-- lib_com
    |-- lib_debug
    |-- lib_dec
    |-- lib_enc
    |-- lib_lc3plus
    |-- lib_rend
    |-- lib_isar    
    |-- lib_util
    |-- readme.txt
    |-- readme_split_rendering.txt



                       RUNNING THE SOFTWARE
                       ====================

The usage of the "IVAS_cod" program:
------------------------------------

Same as described in Readme.txt.



The usage of the "IVAS_dec" program:
------------------------------------

Same as described in Readme.txt while more command-line options are avilable.

Usage for IVAS:  IVAS_dec.exe [Options] OutputConf Fs bitstream_file output_file

Additional options:
-------------------
OutputConf          : Output configuration: MONO, STEREO, 5_1, 7_1, 5_1_2, 5_1_4, 7_1_4, FOA,
                      HOA2, HOA3, BINAURAL, BINAURAL_ROOM_IR, BINAURAL_ROOM_REVERB, 
                      BINAURAL_SPLIT_CODED, BINAURAL_SPLIT_PCM, EXT
-om File            : Coded metadata File for BINAURAL_SPLIT_PCM output mode



The usage of the "IVAS_rend" program:
-------------------------------------

Same as described in Readme.txt while more command-line options are avilable.

Usage: IVAS_rend [options]

Additional options:
-------------------
-om File            : Coded metadata File for BINAURAL_SPLIT_PCM output mode


The usage of the "ISAR_post_rend" program:
-------------------------------------

Usage: ISAR_post_rend [options]

Options:
--------
-i File             : Input File (input file is bitstream if format is BINAURAL_SPLIT_CODED, PCM or WAV file if format is BINAURAL_SPLIT_PCM)
-if Format          : Audio Format of input (BINAURAL_SPLIT_CODED, BINAURAL_SPLIT_PCM)
-im File            : Coded metadata File for BINAURAL_SPLIT_PCM input mode
-o File             : Output audio File (BINAURAL always)
-fs                 : Input sampling rate in kHz (48)
-prbfi File         : Split rendering option: bfi File
                       

                       RUNNING THE SELF TEST
                       =====================

Same as described in Readme.txt except of the renderer configuration text file which 
can additionally be used to configure the pre-rendering step of the split binaural 
renderer. All split renderer parameters are optional. 

The detailed syntax of the renderer configuration text can be found in 3GPP TS 26.258.
Loading