Loading tests/split_rendering/constants.py +5 −3 Original line number Diff line number Diff line Loading @@ -145,6 +145,8 @@ IVAS_MAX_ISM_BITRATE = { "4": "512000", } RENDERER_FORMATS = ["BINAURAL_SPLIT_CODED", "BINAURAL_SPLIT_PCM"] INPUT_DURATION_SEC = 5 """ PLC constants """ Loading @@ -166,7 +168,7 @@ SPLIT_PRE_DEC_CMD = [ "", # 2 -> pre-trajectory file "-render_config", "", # 4 -> render config file "BINAURAL_SPLIT_CODED", "", # 5 -> renderer format "48", "", # 7 -> encoder bitstream "", # 8 -> split rendering bitstream Loading @@ -186,7 +188,7 @@ SPLIT_PRE_REND_CMD = [ "-o", "", # 10 -> split rendering bitstream "-of", "BINAURAL_SPLIT_CODED", "", # 12 -> renderer format "-tf", "", # 14 -> post-trajectory file ] Loading @@ -199,7 +201,7 @@ SPLIT_POST_REND_CMD = [ "-i", "", # 4 -> split rendering bitstream "-if", "BINAURAL_SPLIT_CODED", "", # 6 -> renderer format "-o", "", # 8 -> output file "-of", Loading tests/split_rendering/test_split_rendering.py +53 −0 Original line number Diff line number Diff line Loading @@ -233,3 +233,56 @@ def test_post_rend_plc(test_info, in_fmt, render_config, trajectory, error_patte output_path_base=OUTPUT_PATH_CUT, plc_error_pattern=ERROR_PATTERNS_DIR.joinpath(f"{error_pattern}.ep"), ) """ BINAURAL_SPLIT_PCM """ full_chain_split_pcm_params = [ ("HOA3", "96000", "split_renderer_config_1dof_512k_default"), ("7_1_4", "512000", "split_renderer_config_3dofhq_512k_lc3plus"), ("ISM4", "384000", "split_renderer_config_2dof_768k_default"), # ("MASA2", "256000", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,bitrate,render_config", full_chain_split_pcm_params) def test_full_chain_split_pcm(test_info, in_fmt, bitrate, render_config): check_xfail(test_info, in_fmt, render_config, bitrate) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") run_full_chain_split_rendering( in_fmt=in_fmt, bitrate=bitrate, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, output_path_base=OUTPUT_PATH_CUT, renderer_fmt="BINAURAL_SPLIT_PCM", ) external_split_pcm_params = [ ("FOA", "split_renderer_config_3dofhq_512k_lc3plus"), ("5_1", "split_renderer_config_1dof_768k_default"), ("ISM1", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,render_config", external_split_pcm_params) def test_external_split_pcm(test_info, in_fmt, render_config): check_xfail(test_info, in_fmt, render_config) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") run_external_split_rendering( in_fmt=in_fmt, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, output_path_base=OUTPUT_PATH_CUT, renderer_fmt="BINAURAL_SPLIT_PCM", ) tests/split_rendering/test_split_rendering_be_comparison.py +53 −0 Original line number Diff line number Diff line Loading @@ -206,3 +206,56 @@ def test_post_rend_plc(test_info, in_fmt, render_config, trajectory, error_patte post_trajectory=post_trajectory, plc_error_pattern=ERROR_PATTERNS_DIR.joinpath(f"{error_pattern}.ep"), ) """ BINAURAL_SPLIT_PCM """ full_chain_split_pcm_params = [ ("HOA3", "96000", "split_renderer_config_1dof_512k_default"), ("7_1_4", "512000", "split_renderer_config_3dofhq_512k_lc3plus"), ("ISM4", "384000", "split_renderer_config_2dof_768k_default"), # ("MASA2", "256000", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,bitrate,render_config", full_chain_split_pcm_params) def test_full_chain_split_pcm(test_info, in_fmt, bitrate, render_config): check_xfail(test_info, in_fmt, render_config, bitrate) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") compare_full_chain_split_args( test_info, in_fmt=in_fmt, bitrate=bitrate, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, renderer_fmt="BINAURAL_SPLIT_PCM", ) external_split_pcm_params = [ ("FOA", "split_renderer_config_3dofhq_512k_lc3plus"), ("5_1", "split_renderer_config_1dof_768k_default"), ("ISM1", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,render_config", external_split_pcm_params) def test_external_split_pcm(test_info, in_fmt, render_config): check_xfail(test_info, in_fmt, render_config) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") compare_external_split_args( test_info, in_fmt=in_fmt, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, renderer_fmt="BINAURAL_SPLIT_PCM", ) tests/split_rendering/utils.py +27 −9 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ def run_full_chain_split_rendering( pre_trajectory: Path, post_trajectory: Path, output_path_base: Path, renderer_fmt: str = "BINAURAL_SPLIT_CODED", binary_suffix: str = "", is_comparetest: bool = False, ) -> Tuple[np.ndarray, int]: Loading @@ -64,8 +65,10 @@ def run_full_chain_split_rendering( cut_in_file = tmp_dir.joinpath("cut_input.wav") ivas_bitstream = tmp_dir.joinpath("ivas.192") split_bitstream = tmp_dir.joinpath("split.bit") if renderer_fmt == "BINAURAL_SPLIT_PCM": split_md_file = tmp_dir.joinpath("split_md.bin") out_file = output_path_base.joinpath( f"{in_fmt}_{bitrate}bps_{pre_trajectory.stem}_split_full_{post_trajectory.stem}__config_{render_config.stem}.wav" f"{in_fmt}_{bitrate}bps_{renderer_fmt}_{pre_trajectory.stem}_split_full_{post_trajectory.stem}_config_{render_config.stem}.wav" ) # check for metadata files Loading Loading @@ -112,9 +115,13 @@ def run_full_chain_split_rendering( cmd[0] += binary_suffix cmd[2] = str(pre_trajectory) cmd[4] = str(render_config) cmd[5] = renderer_fmt cmd[7] = str(ivas_bitstream) cmd[8] = str(split_bitstream) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[5:5] = ["-om", str(split_md_file)] run_cmd(cmd) # run split renderer Loading @@ -122,9 +129,13 @@ def run_full_chain_split_rendering( cmd[0] += binary_suffix cmd[4] = str(split_bitstream) cmd[6] = renderer_fmt cmd[8] = str(out_file) cmd[12] = str(post_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[7:7] = ["-im", str(split_md_file)] run_cmd(cmd) return readfile(out_file) Loading @@ -137,6 +148,7 @@ def run_external_split_rendering( post_trajectory: Path, output_path_base: Path, plc_error_pattern: Path = None, renderer_fmt: str = "BINAURAL_SPLIT_CODED", binary_suffix: str = "", is_comparetest: bool = False, ) -> Tuple[np.ndarray, int]: Loading @@ -148,15 +160,13 @@ def run_external_split_rendering( with TemporaryDirectory() as tmp_dir: tmp_dir = Path(tmp_dir) split_bitstream = tmp_dir.joinpath("split.bit") if plc_error_pattern: out_file = output_path_base.joinpath( f"{in_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}__config_{render_config.stem}_plc_{plc_error_pattern.stem}.wav" ) else: if renderer_fmt == "BINAURAL_SPLIT_PCM": split_md_file = tmp_dir.joinpath("split_md.bin") out_file = output_path_base.joinpath( f"{in_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}__config_{render_config.stem}.wav" f"{in_fmt}_{renderer_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}_config_{render_config.stem}.wav" ) if plc_error_pattern: out_file = out_file.with_stem(f"{out_file.stem}_plc_{plc_error_pattern.stem}") # check for metadata files if in_fmt.upper().startswith("ISM") or in_fmt.upper().startswith("MASA"): Loading @@ -174,8 +184,12 @@ def run_external_split_rendering( cmd[6] = str(FORMAT_TO_FILE_SMOKETEST[in_fmt]) cmd[8] = in_fmt cmd[10] = str(split_bitstream) cmd[12] = renderer_fmt cmd[14] = str(pre_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[13:13] = ["-om", str(split_md_file)] if in_meta_files: cmd[9:9] = ["-im", *in_meta_files] Loading @@ -186,9 +200,13 @@ def run_external_split_rendering( cmd[0] += binary_suffix cmd[4] = str(split_bitstream) cmd[6] = renderer_fmt cmd[8] = str(out_file) cmd[12] = str(post_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[7:7] = ["-im", str(split_md_file)] if plc_error_pattern: cmd[1:1] = ["-prbfi", str(plc_error_pattern)] Loading Loading
tests/split_rendering/constants.py +5 −3 Original line number Diff line number Diff line Loading @@ -145,6 +145,8 @@ IVAS_MAX_ISM_BITRATE = { "4": "512000", } RENDERER_FORMATS = ["BINAURAL_SPLIT_CODED", "BINAURAL_SPLIT_PCM"] INPUT_DURATION_SEC = 5 """ PLC constants """ Loading @@ -166,7 +168,7 @@ SPLIT_PRE_DEC_CMD = [ "", # 2 -> pre-trajectory file "-render_config", "", # 4 -> render config file "BINAURAL_SPLIT_CODED", "", # 5 -> renderer format "48", "", # 7 -> encoder bitstream "", # 8 -> split rendering bitstream Loading @@ -186,7 +188,7 @@ SPLIT_PRE_REND_CMD = [ "-o", "", # 10 -> split rendering bitstream "-of", "BINAURAL_SPLIT_CODED", "", # 12 -> renderer format "-tf", "", # 14 -> post-trajectory file ] Loading @@ -199,7 +201,7 @@ SPLIT_POST_REND_CMD = [ "-i", "", # 4 -> split rendering bitstream "-if", "BINAURAL_SPLIT_CODED", "", # 6 -> renderer format "-o", "", # 8 -> output file "-of", Loading
tests/split_rendering/test_split_rendering.py +53 −0 Original line number Diff line number Diff line Loading @@ -233,3 +233,56 @@ def test_post_rend_plc(test_info, in_fmt, render_config, trajectory, error_patte output_path_base=OUTPUT_PATH_CUT, plc_error_pattern=ERROR_PATTERNS_DIR.joinpath(f"{error_pattern}.ep"), ) """ BINAURAL_SPLIT_PCM """ full_chain_split_pcm_params = [ ("HOA3", "96000", "split_renderer_config_1dof_512k_default"), ("7_1_4", "512000", "split_renderer_config_3dofhq_512k_lc3plus"), ("ISM4", "384000", "split_renderer_config_2dof_768k_default"), # ("MASA2", "256000", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,bitrate,render_config", full_chain_split_pcm_params) def test_full_chain_split_pcm(test_info, in_fmt, bitrate, render_config): check_xfail(test_info, in_fmt, render_config, bitrate) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") run_full_chain_split_rendering( in_fmt=in_fmt, bitrate=bitrate, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, output_path_base=OUTPUT_PATH_CUT, renderer_fmt="BINAURAL_SPLIT_PCM", ) external_split_pcm_params = [ ("FOA", "split_renderer_config_3dofhq_512k_lc3plus"), ("5_1", "split_renderer_config_1dof_768k_default"), ("ISM1", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,render_config", external_split_pcm_params) def test_external_split_pcm(test_info, in_fmt, render_config): check_xfail(test_info, in_fmt, render_config) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") run_external_split_rendering( in_fmt=in_fmt, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, output_path_base=OUTPUT_PATH_CUT, renderer_fmt="BINAURAL_SPLIT_PCM", )
tests/split_rendering/test_split_rendering_be_comparison.py +53 −0 Original line number Diff line number Diff line Loading @@ -206,3 +206,56 @@ def test_post_rend_plc(test_info, in_fmt, render_config, trajectory, error_patte post_trajectory=post_trajectory, plc_error_pattern=ERROR_PATTERNS_DIR.joinpath(f"{error_pattern}.ep"), ) """ BINAURAL_SPLIT_PCM """ full_chain_split_pcm_params = [ ("HOA3", "96000", "split_renderer_config_1dof_512k_default"), ("7_1_4", "512000", "split_renderer_config_3dofhq_512k_lc3plus"), ("ISM4", "384000", "split_renderer_config_2dof_768k_default"), # ("MASA2", "256000", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,bitrate,render_config", full_chain_split_pcm_params) def test_full_chain_split_pcm(test_info, in_fmt, bitrate, render_config): check_xfail(test_info, in_fmt, render_config, bitrate) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") compare_full_chain_split_args( test_info, in_fmt=in_fmt, bitrate=bitrate, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, renderer_fmt="BINAURAL_SPLIT_PCM", ) external_split_pcm_params = [ ("FOA", "split_renderer_config_3dofhq_512k_lc3plus"), ("5_1", "split_renderer_config_1dof_768k_default"), ("ISM1", "split_renderer_config_3dof_384k_lcld"), ] @pytest.mark.parametrize("in_fmt,render_config", external_split_pcm_params) def test_external_split_pcm(test_info, in_fmt, render_config): check_xfail(test_info, in_fmt, render_config) trajectory = SPLIT_REND_HR_TRAJECTORIES_TO_TEST[0] post_trajectory = HR_TRAJECTORY_DIR.joinpath(f"{trajectory}.csv") pre_trajectory = post_trajectory.with_stem(f"{post_trajectory.stem}_delayed") compare_external_split_args( test_info, in_fmt=in_fmt, render_config=RENDER_CFG_DIR.joinpath(f"{render_config}.txt"), pre_trajectory=pre_trajectory, post_trajectory=post_trajectory, renderer_fmt="BINAURAL_SPLIT_PCM", )
tests/split_rendering/utils.py +27 −9 Original line number Diff line number Diff line Loading @@ -52,6 +52,7 @@ def run_full_chain_split_rendering( pre_trajectory: Path, post_trajectory: Path, output_path_base: Path, renderer_fmt: str = "BINAURAL_SPLIT_CODED", binary_suffix: str = "", is_comparetest: bool = False, ) -> Tuple[np.ndarray, int]: Loading @@ -64,8 +65,10 @@ def run_full_chain_split_rendering( cut_in_file = tmp_dir.joinpath("cut_input.wav") ivas_bitstream = tmp_dir.joinpath("ivas.192") split_bitstream = tmp_dir.joinpath("split.bit") if renderer_fmt == "BINAURAL_SPLIT_PCM": split_md_file = tmp_dir.joinpath("split_md.bin") out_file = output_path_base.joinpath( f"{in_fmt}_{bitrate}bps_{pre_trajectory.stem}_split_full_{post_trajectory.stem}__config_{render_config.stem}.wav" f"{in_fmt}_{bitrate}bps_{renderer_fmt}_{pre_trajectory.stem}_split_full_{post_trajectory.stem}_config_{render_config.stem}.wav" ) # check for metadata files Loading Loading @@ -112,9 +115,13 @@ def run_full_chain_split_rendering( cmd[0] += binary_suffix cmd[2] = str(pre_trajectory) cmd[4] = str(render_config) cmd[5] = renderer_fmt cmd[7] = str(ivas_bitstream) cmd[8] = str(split_bitstream) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[5:5] = ["-om", str(split_md_file)] run_cmd(cmd) # run split renderer Loading @@ -122,9 +129,13 @@ def run_full_chain_split_rendering( cmd[0] += binary_suffix cmd[4] = str(split_bitstream) cmd[6] = renderer_fmt cmd[8] = str(out_file) cmd[12] = str(post_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[7:7] = ["-im", str(split_md_file)] run_cmd(cmd) return readfile(out_file) Loading @@ -137,6 +148,7 @@ def run_external_split_rendering( post_trajectory: Path, output_path_base: Path, plc_error_pattern: Path = None, renderer_fmt: str = "BINAURAL_SPLIT_CODED", binary_suffix: str = "", is_comparetest: bool = False, ) -> Tuple[np.ndarray, int]: Loading @@ -148,15 +160,13 @@ def run_external_split_rendering( with TemporaryDirectory() as tmp_dir: tmp_dir = Path(tmp_dir) split_bitstream = tmp_dir.joinpath("split.bit") if plc_error_pattern: out_file = output_path_base.joinpath( f"{in_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}__config_{render_config.stem}_plc_{plc_error_pattern.stem}.wav" ) else: if renderer_fmt == "BINAURAL_SPLIT_PCM": split_md_file = tmp_dir.joinpath("split_md.bin") out_file = output_path_base.joinpath( f"{in_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}__config_{render_config.stem}.wav" f"{in_fmt}_{renderer_fmt}_{pre_trajectory.stem}_split_ext_{post_trajectory.stem}_config_{render_config.stem}.wav" ) if plc_error_pattern: out_file = out_file.with_stem(f"{out_file.stem}_plc_{plc_error_pattern.stem}") # check for metadata files if in_fmt.upper().startswith("ISM") or in_fmt.upper().startswith("MASA"): Loading @@ -174,8 +184,12 @@ def run_external_split_rendering( cmd[6] = str(FORMAT_TO_FILE_SMOKETEST[in_fmt]) cmd[8] = in_fmt cmd[10] = str(split_bitstream) cmd[12] = renderer_fmt cmd[14] = str(pre_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[13:13] = ["-om", str(split_md_file)] if in_meta_files: cmd[9:9] = ["-im", *in_meta_files] Loading @@ -186,9 +200,13 @@ def run_external_split_rendering( cmd[0] += binary_suffix cmd[4] = str(split_bitstream) cmd[6] = renderer_fmt cmd[8] = str(out_file) cmd[12] = str(post_trajectory) if renderer_fmt == "BINAURAL_SPLIT_PCM": cmd[7:7] = ["-im", str(split_md_file)] if plc_error_pattern: cmd[1:1] = ["-prbfi", str(plc_error_pattern)] Loading