Loading scripts/split_rendering/lc3plus/split_rend_lc3plus_cmdlines.pydeleted 100755 → 0 +0 −191 Original line number Diff line number Diff line """ Generate command lines for split rendering with LC3plus """ import itertools import os # Paths ENC_PATH = "./IVAS_cod" DEC_PATH = "./IVAS_dec" REND_PATH = "./IVAS_rend" TEMP_DIR = "tmp" # Config values to iterate over ISM_CONFIGS_NUM_OBJECTS = [1, 2, 3, 4] IVAS_BITRATES = [128000] PRE_HEAD_ROT_FILES = [ "Workspace_msvc/trajectories/pre-renderer_pose_files/pre_yaw-20static.csv" ] POST_HEAD_ROT_FILES = [ "Workspace_msvc/trajectories/post-renderer_pose_files/post_0static.csv" ] RENDER_CONFIG_FILES = [ ####################################################### # Alternative 2 - LC3plus with CLDFB pose correction "Workspace_msvc/renderer_configs/split_renderer_config_768_1dof.txt", "Workspace_msvc/renderer_configs/split_renderer_config_512_2dof.txt", None, # Alternative 2 is the default when no rendering config file is given on command line ####################################################### # Alternative 3 - LC3plus with multi-stream (TD) pose correction "Workspace_msvc/renderer_configs/split_renderer_config_768_1dof_tdposecorr.txt", "Workspace_msvc/renderer_configs/split_renderer_config_1536_2dof_tdposecorr.txt", ] def audio_for_ism(num_objects): return f"scripts/testv/stv{num_objects}ISM48s.wav" def metadata_for_ism(num_objects): return f"scripts/testv/stvISM{num_objects}.csv" def basename(file_path): basename_w_ext = os.path.basename(file_path) return os.path.splitext(basename_w_ext)[0] # Full chain: IVAS_cod -> IVAS_dec -> IVAS_rend(post) def full_chain( num_objects, ivas_bitrate, pre_head_rot_file, render_config_file, post_head_rot_file ): bs_name = f"{TEMP_DIR}/ism{num_objects}_b{ivas_bitrate}_full_chain.g192" cod = [ ENC_PATH, "-ism", str(num_objects), *[metadata_for_ism(i + 1) for i in range(num_objects)], str(ivas_bitrate), "48", audio_for_ism(num_objects), bs_name, ] render_config_infix = ( f"##{basename(render_config_file)}" if render_config_file else "" ) split_bs_name = bs_name.replace( ".g192", f"##{basename(pre_head_rot_file)}{render_config_infix}##split.bs" ) render_config_args = ( ["-render_config", render_config_file] if render_config_file else [] ) dec = [ DEC_PATH, "-T", pre_head_rot_file, *render_config_args, "SPLIT_BINAURAL", "48", bs_name, split_bs_name, ] binaural_output_name = split_bs_name.replace( ".bs", f"##{basename(post_head_rot_file)}##binaural.wav" ) rend = [ REND_PATH, "-i", split_bs_name, "-if", "BINAURAL_SPLIT_CODED", "-of", "BINAURAL", "-fs", "48", "-tf", post_head_rot_file, "-o", binaural_output_name, ] return [cod, dec, rend] # Renderer chain: IVAS_rend(pre) -> IVAS_rend(post) def rend_chain(num_objects, pre_head_rot_file, render_config_file, post_head_rot_file): render_config_infix = ( f"##{basename(render_config_file)}" if render_config_file else "" ) split_bs_name = f"{TEMP_DIR}/ism{num_objects}_rend_chain##{basename(pre_head_rot_file)}{render_config_infix}##split.bs" render_config_args = ( ["-render_config", render_config_file] if render_config_file else [] ) pre = [ REND_PATH, "-i", audio_for_ism(num_objects), "-if", f"ISM{num_objects}", "-im", *[metadata_for_ism(i + 1) for i in range(num_objects)], "-of", "BINAURAL_SPLIT_CODED", "-fs", "48", *render_config_args, "-tf", pre_head_rot_file, "-o", split_bs_name, ] binaural_output_name = split_bs_name.replace( ".bs", f"##{basename(post_head_rot_file)}##binaural.wav" ) post = [ REND_PATH, "-i", split_bs_name, "-if", "BINAURAL_SPLIT_CODED", "-of", "BINAURAL", "-fs", "48", "-tf", post_head_rot_file, "-o", binaural_output_name, ] return [pre, post] def print_command_list(list_of_lists): for lst in list_of_lists: print(" ".join(lst)) print("") # newline def main(): print("\n##########################################") print("# Full chain: enc -> dec -> rend(post)") print("##########################################\n") for args_full_chain in itertools.product( # Ordering here must match argument order in function call below! ISM_CONFIGS_NUM_OBJECTS, IVAS_BITRATES, PRE_HEAD_ROT_FILES, RENDER_CONFIG_FILES, POST_HEAD_ROT_FILES, ): print_command_list(full_chain(*args_full_chain)) print("\n##########################################") print("# Renderer chain: rend(pre) -> rend(post)") print("##########################################\n") for args_rend_chain in itertools.product( # Ordering here must match argument order in function call below! ISM_CONFIGS_NUM_OBJECTS, PRE_HEAD_ROT_FILES, RENDER_CONFIG_FILES, POST_HEAD_ROT_FILES, ): print_command_list(rend_chain(*args_rend_chain)) if __name__ == "__main__": main() Loading
scripts/split_rendering/lc3plus/split_rend_lc3plus_cmdlines.pydeleted 100755 → 0 +0 −191 Original line number Diff line number Diff line """ Generate command lines for split rendering with LC3plus """ import itertools import os # Paths ENC_PATH = "./IVAS_cod" DEC_PATH = "./IVAS_dec" REND_PATH = "./IVAS_rend" TEMP_DIR = "tmp" # Config values to iterate over ISM_CONFIGS_NUM_OBJECTS = [1, 2, 3, 4] IVAS_BITRATES = [128000] PRE_HEAD_ROT_FILES = [ "Workspace_msvc/trajectories/pre-renderer_pose_files/pre_yaw-20static.csv" ] POST_HEAD_ROT_FILES = [ "Workspace_msvc/trajectories/post-renderer_pose_files/post_0static.csv" ] RENDER_CONFIG_FILES = [ ####################################################### # Alternative 2 - LC3plus with CLDFB pose correction "Workspace_msvc/renderer_configs/split_renderer_config_768_1dof.txt", "Workspace_msvc/renderer_configs/split_renderer_config_512_2dof.txt", None, # Alternative 2 is the default when no rendering config file is given on command line ####################################################### # Alternative 3 - LC3plus with multi-stream (TD) pose correction "Workspace_msvc/renderer_configs/split_renderer_config_768_1dof_tdposecorr.txt", "Workspace_msvc/renderer_configs/split_renderer_config_1536_2dof_tdposecorr.txt", ] def audio_for_ism(num_objects): return f"scripts/testv/stv{num_objects}ISM48s.wav" def metadata_for_ism(num_objects): return f"scripts/testv/stvISM{num_objects}.csv" def basename(file_path): basename_w_ext = os.path.basename(file_path) return os.path.splitext(basename_w_ext)[0] # Full chain: IVAS_cod -> IVAS_dec -> IVAS_rend(post) def full_chain( num_objects, ivas_bitrate, pre_head_rot_file, render_config_file, post_head_rot_file ): bs_name = f"{TEMP_DIR}/ism{num_objects}_b{ivas_bitrate}_full_chain.g192" cod = [ ENC_PATH, "-ism", str(num_objects), *[metadata_for_ism(i + 1) for i in range(num_objects)], str(ivas_bitrate), "48", audio_for_ism(num_objects), bs_name, ] render_config_infix = ( f"##{basename(render_config_file)}" if render_config_file else "" ) split_bs_name = bs_name.replace( ".g192", f"##{basename(pre_head_rot_file)}{render_config_infix}##split.bs" ) render_config_args = ( ["-render_config", render_config_file] if render_config_file else [] ) dec = [ DEC_PATH, "-T", pre_head_rot_file, *render_config_args, "SPLIT_BINAURAL", "48", bs_name, split_bs_name, ] binaural_output_name = split_bs_name.replace( ".bs", f"##{basename(post_head_rot_file)}##binaural.wav" ) rend = [ REND_PATH, "-i", split_bs_name, "-if", "BINAURAL_SPLIT_CODED", "-of", "BINAURAL", "-fs", "48", "-tf", post_head_rot_file, "-o", binaural_output_name, ] return [cod, dec, rend] # Renderer chain: IVAS_rend(pre) -> IVAS_rend(post) def rend_chain(num_objects, pre_head_rot_file, render_config_file, post_head_rot_file): render_config_infix = ( f"##{basename(render_config_file)}" if render_config_file else "" ) split_bs_name = f"{TEMP_DIR}/ism{num_objects}_rend_chain##{basename(pre_head_rot_file)}{render_config_infix}##split.bs" render_config_args = ( ["-render_config", render_config_file] if render_config_file else [] ) pre = [ REND_PATH, "-i", audio_for_ism(num_objects), "-if", f"ISM{num_objects}", "-im", *[metadata_for_ism(i + 1) for i in range(num_objects)], "-of", "BINAURAL_SPLIT_CODED", "-fs", "48", *render_config_args, "-tf", pre_head_rot_file, "-o", split_bs_name, ] binaural_output_name = split_bs_name.replace( ".bs", f"##{basename(post_head_rot_file)}##binaural.wav" ) post = [ REND_PATH, "-i", split_bs_name, "-if", "BINAURAL_SPLIT_CODED", "-of", "BINAURAL", "-fs", "48", "-tf", post_head_rot_file, "-o", binaural_output_name, ] return [pre, post] def print_command_list(list_of_lists): for lst in list_of_lists: print(" ".join(lst)) print("") # newline def main(): print("\n##########################################") print("# Full chain: enc -> dec -> rend(post)") print("##########################################\n") for args_full_chain in itertools.product( # Ordering here must match argument order in function call below! ISM_CONFIGS_NUM_OBJECTS, IVAS_BITRATES, PRE_HEAD_ROT_FILES, RENDER_CONFIG_FILES, POST_HEAD_ROT_FILES, ): print_command_list(full_chain(*args_full_chain)) print("\n##########################################") print("# Renderer chain: rend(pre) -> rend(post)") print("##########################################\n") for args_rend_chain in itertools.product( # Ordering here must match argument order in function call below! ISM_CONFIGS_NUM_OBJECTS, PRE_HEAD_ROT_FILES, RENDER_CONFIG_FILES, POST_HEAD_ROT_FILES, ): print_command_list(rend_chain(*args_rend_chain)) if __name__ == "__main__": main()