diff --git a/ci/complexity_measurements/check_for_changes.py b/ci/complexity_measurements/check_for_changes.py index 50deb76e08202f6b83f2f5ee2afe7499af2cc866..2048feb04451f107a63afe02bb1932defb3a6e24 100644 --- a/ci/complexity_measurements/check_for_changes.py +++ b/ci/complexity_measurements/check_for_changes.py @@ -5,15 +5,17 @@ import sys THRESH = 0.01 COLS = [ - [3, 5, 7, 9], # wmops_all - [3,5,7,8,10,12,13,15,17], # ram_all - [3,5,7,9,11,13,15,17,19], # rom_all + [3, 5, 7, 9], # wmops_all + [3, 5, 7, 8, 10, 12, 13, 15, 17], # ram_all + [3, 5, 7, 9, 11, 13, 15, 17, 19], # rom_all ] def main(args): linewise_logfiles = [args.wmops_logfile, args.ram_logfile, args.rom_logfile] - changes_found_linewise = any([check_linewise_logfile(f, c) for f, c in zip(linewise_logfiles, COLS)]) + changes_found_linewise = any( + [check_linewise_logfile(f, c) for f, c in zip(linewise_logfiles, COLS)] + ) if changes_found_linewise: print("Global max of WMOPS, RAM or ROM changed") diff --git a/ci/complexity_measurements/genWebpageData.py b/ci/complexity_measurements/genWebpageData.py new file mode 100644 index 0000000000000000000000000000000000000000..457ca5ba934edfe6209e2c31cda2ace25a765917 --- /dev/null +++ b/ci/complexity_measurements/genWebpageData.py @@ -0,0 +1,449 @@ +#!/usr/bin/env python3 +""" +(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. +""" + +import argparse +from typing import Optional + + +MAX_VALUES = 40 + +REF_WMOPS_EVS = 88 +REF_WMOPS_3EVS = 3 * REF_WMOPS_EVS +REF_WMOPS_6EVS = 6 * REF_WMOPS_EVS +REF_WMOPS_10EVS = 10 * REF_WMOPS_EVS + +REF_COLORS = ["#000000", "#666666", "#AAAAAA"] + +RUNS_KEYS_COMMON = ["fullDate", "shortDate", "revision", "logFile"] +RUNS_KEYS_WMOPS = RUNS_KEYS_COMMON + [ + "worstCaseEnc", + "worstCaseDec", + "worstCaseCodec", + "worstCaseEncRs", + "worstCaseDecRs", + "worstCaseCodecRs", + "fixpointScalingFac", +] +RUNS_KEYS_WMOPS_PER_OP = [ + "operatingPoint", + "mode", +] +RUNS_KEYS_ROM = RUNS_KEYS_COMMON + [ + "PromEnc", + "PromDec", + "PromCom", + "PromRend", + "TromEnc", + "TromDec", + "TromCom", + "TromRend", +] +RUNS_KEYS_RAM = RUNS_KEYS_COMMON + [ + "maxTotalRamEnc", + "maxTotalRamDec", + "maxStackEnc", + "maxStackDec", + "maxHeapEnc", + "maxHeapDec", +] + +RUNS_KEYS = { + "wmops": RUNS_KEYS_WMOPS, + "rom": RUNS_KEYS_ROM, + "ram": RUNS_KEYS_RAM, + "wmops_per_op": RUNS_KEYS_WMOPS_PER_OP, +} +RUNS_LINE_IDX = { + "wmops": [2, 1, 0, 4, 6, 8, 12, 14, 16, 10, 18], + "rom": [2, 1, 0, 4, 6, 8, 10, 12, 14, 16, 18, 20], + "ram": [2, 1, 0, 4, 6, 9, 11, 14, 16, 18], + "wmops_per_op": [0, 4], +} + +DISPLAY_IDS = { + "wmops": [ + "3xEVS", + "6xEVS", + "10xEVS", + "worst case codec", + "worst case enc/dec", + "worst case enc", + "worst case dec", + ], + "rom": [ + "requirementRom", + "TotalRomCodecScore", + "maxPROMEncScore", + "maxPROMDecScore", + "maxPROMComScore", + "maxPROMRendScore", + "maxTROMEncScore", + "maxTROMDecScore", + "maxTROMComScore", + "maxTROMRendScore", + ], + "ram": [ + "requirementRam", + "maxTotalRamCodecScore", + "maxTotalRamEncScore", + "maxTotalRamDecScore", + "maxStackCodecScore", + "maxStackEncScore", + "maxStackDecScore", + "maxHeapCodecScore", + "maxHeapEncScore", + "maxHeapDecScore", + ], + "wmops_per_op": [ + "worstCaseEnc", + "worstCaseDec", + ], +} +# the -1's are for reference lines +DISPLAY_LINE_IDX = { + "wmops": [-1, -1, -1, 9, 3, 5, 7], + "rom": [-1, 3, 5, 7, 9, 11, 13, 15, 17, 19], + "ram": [-1, 3, 5, 7, 8, 10, 12, 13, 15, 17], + "wmops_per_op": [1, 2], +} +DISPLAY_LABELS = { + "wmops_per_op": ["Encoder", "Decoder"], +} +DISPLAY_ELEM_TEMPLATE = '{{ lines: {{ show: true }}, points: {{ show: true, fillColor: "#ffffff" }}, borderWidth: 1.5, borderColor: "#BEBEBE", markingsLineWidth: .75, hoverable: true, clickable: false, shadowSize: 0, color: "{color}", id: "{id}", data: [ {data} ] }}' + +REF_COLOR_FOR_COMP_BARS = dict( + zip(DISPLAY_LABELS["wmops_per_op"], [REF_COLORS[0], REF_COLORS[2]]) +) +LINE_COLORS = { + "wmops": [ + REF_COLORS[0], + REF_COLORS[1], + REF_COLORS[2], + "#0080FF", + "#FF8000", + "#CF4B4B", + "#008040", + ], + "rom": [ + REF_COLORS[0], + "#FF0000", + "#FF8000", + "#FFFF00", + "#800080", + "#0000FF", + "#0080C0", + "#004000", + "#008000", + "#00FF00", + ], + "ram": [ + REF_COLORS[0], + "#FF0000", + "#FF8000", + "#FFFF00", + "#004000", + "#008000", + "#00FF00", + "#800080", + "#0000FF", + "#0080C0", + ], + "wmops_per_op": [ + "#CF4B4B", + "#008040", + ], +} + +JS_FILE_TEMPLATE = """var {var_name} = {{ + {elem_name}: {{ + description: "{description}", + direction: -1, + ticks: [ + {ticks} + ], + runs: [ + {runs} + ], + displays: [ + {displays} + ] + }} +}}; +""" + +FILE_DATA = { + "wmops": { + "var_name": "Graphs_WMOPS", + "elem_name": "wmops_worstcase", + "description": "Worst Case WMOPS", + "filename": "graphs_wmops_flc.js", + "references": { + "3xEVS": REF_WMOPS_3EVS, + "6xEVS": REF_WMOPS_6EVS, + "10xEVS": REF_WMOPS_10EVS, + }, + }, + "rom": { + "var_name": "Graphs_ROM", + "elem_name": "rom_worstcase", + "description": "ROM", + "filename": "graphs_rom_flc.js", + "references": { + "requirementRom": 0, + }, + }, + "ram": { + "var_name": "Graphs_RAM", + "elem_name": "ram_worstcase", + "description": "Worst Case RAM", + "filename": "graphs_ram_flc.js", + "references": { + "requirementRam": 0, + }, + }, + "wmops_per_op": { + "var_name": "Graphs_WMOPS_perOP", + "elem_name": "wmops_worstcase_per_op", + "description": "Worst Case WMOPS per OP", + "filename": "graphs_wmops_flc_perOP.js", + "references": {}, + }, +} + + +def main( + wmops_log, wmops_per_op_log, rom_log, ram_log, wmops_per_op_log_for_comparison +): + FILE_DATA["wmops"]["log_file"] = wmops_log + FILE_DATA["wmops_per_op"]["log_file"] = wmops_per_op_log + FILE_DATA["rom"]["log_file"] = rom_log + FILE_DATA["ram"]["log_file"] = ram_log + + for x, data in FILE_DATA.items(): + with open(data["log_file"]) as f: + log_lines = f.readlines() + + split_char = " " + ticks = [] + if x == "wmops_per_op": + split_char = ";" + log_lines, ticks = pre_proc_log_lines( + log_lines, wmops_per_op_log_for_comparison + ) + + else: + log_lines = log_lines[-MAX_VALUES:] + + runs = [ + create_runs_string(line.strip().split(split_char), x) for line in log_lines + ] + displays = create_display_strings( + log_lines, + data["references"], + split_char, + x, + has_comparison=x == "wmops_per_op" + and wmops_per_op_log_for_comparison is not None, + ) + + runs = ",\n".join(runs) + displays = ",\n".join(displays) + ticks = ",\n".join(ticks) + + js_string = JS_FILE_TEMPLATE.format( + var_name=data["var_name"], + elem_name=data["elem_name"], + description=data["description"], + runs=runs, + displays=displays, + ticks=ticks, + ) + with open(data["filename"], "w") as f: + print(js_string, file=f) + + +def pre_proc_log_lines( + log_lines: list[str], wmops_per_op_log_for_comparison: Optional[str] +): + if wmops_per_op_log_for_comparison is not None: + with open(wmops_per_op_log_for_comparison) as f: + log_lines_comp = f.readlines() + + log_lines_combined = [] + MISSING_LINE = "{};0;0;0" + for line in log_lines: + line_split = line.split(";") + conf = line_split[0] + + # add - BASOP suffix to existing line + new_line_split = line_split + new_line_split[0] = conf + " - BASOP" + new_line_basop = ";".join(new_line_split) + log_lines_combined.append(new_line_basop) + + # search for same operating point in given comparison log + ref_conf = conf + " - FLT REF" + new_line_ref = MISSING_LINE.format(ref_conf) + for line_comp in log_lines_comp: + line_comp_split = line_comp.split(";") + conf_comp = line_comp_split[0] + if conf == conf_comp: + new_line_ref = ";".join([ref_conf] + line_comp_split[1:]) + break + log_lines_combined.append(new_line_ref) + + log_lines = log_lines_combined + + # some preprocessing is needed so that the later functions work as are + # 1. need to make sure that modes are ordered by bandwidth + # 2. need to add the bandwidth indicator as a column + wb_lines, swb_lines, fb_lines = [], [], [] + for line in log_lines: + if " WB " in line: + wb_lines.append(line + ";WB") + elif " SWB " in line: + swb_lines.append(line + ";SWB") + elif " FB " in line: + fb_lines.append(line + ";FB") + log_lines = wb_lines + swb_lines + fb_lines + + # generate tick positions and x axis labels from the number of lines + in_between_offset_size = 1 + wb_label_pos = len(wb_lines) / 2 + swb_label_pos = len(wb_lines) + in_between_offset_size + len(swb_lines) / 2 + fb_label_pos = ( + len(wb_lines) + + in_between_offset_size + + len(swb_lines) + + in_between_offset_size + + len(fb_lines) / 2 + ) + + ticks = [ + f"['{wb_label_pos}', 'WB']", + f"['{swb_label_pos}', 'SWB']", + f"['{fb_label_pos}', 'FB']", + ] + + return log_lines, ticks + + +def create_runs_string(line: list[str], which: str) -> str: + keys = RUNS_KEYS[which] + + vals = [line[i] for i in RUNS_LINE_IDX[which]] + run = str(dict(zip(keys, vals))) + + return run + + +def create_display_strings( + log_lines, references, split_char, which, has_comparison=False +): + display_ids = DISPLAY_IDS[which] + display_line_idx = DISPLAY_LINE_IDX[which] + line_colors = LINE_COLORS[which] + display_labels = DISPLAY_LABELS.get(which, [""] * len(display_ids)) + + displays = list() + for id, idx, color, label in zip( + display_ids, display_line_idx, line_colors, display_labels + ): + data = list() + for i, line in enumerate(log_lines): + value = line.split(split_char)[idx] + if id in references: + value = references[id] + data.append(f"[{i}, {value}]") + + if which == "wmops_per_op" and has_comparison: + # de-interleave data + data_basop = data[::2] + data_flt_ref = data[1::2] + + display_basop = DISPLAY_ELEM_TEMPLATE.format( + color=color, id=id + " - BASOP", data=", ".join(data_basop) + ) + idx_data = display_basop.index("data:") + label_string = f"label: '{label} - BASOP', " + display_basop = ( + display_basop[:idx_data] + label_string + display_basop[idx_data:] + ) + + ref_color = REF_COLOR_FOR_COMP_BARS[label] + + display_flt_ref = DISPLAY_ELEM_TEMPLATE.format( + color=ref_color, id=id + " - FLT REF", data=", ".join(data_flt_ref) + ) + idx_data = display_flt_ref.index("data:") + label_string = f"label: '{label} - FLT REF', " + display_flt_ref = ( + display_flt_ref[:idx_data] + label_string + display_flt_ref[idx_data:] + ) + + display = display_basop + ", \n" + display_flt_ref + else: + display = DISPLAY_ELEM_TEMPLATE.format( + color=color, id=id, data=", ".join(data) + ) + + if which == "wmops_per_op": + display = display.replace("show: true", "show: false") + + if not has_comparison: + idx_data = display.index("data:") + label_string = f"label: '{label}', " + display = display[:idx_data] + label_string + display[idx_data:] + + displays.append(display) + + return displays + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description="Generate Javascript code for the complexity webpage" + ) + parser.add_argument("wmops_log") + parser.add_argument("wmops_per_op_log") + parser.add_argument("rom_log") + parser.add_argument("ram_log") + parser.add_argument("--wmops_per_op_log_for_comparison", default=None) + + args = parser.parse_args() + + main( + args.wmops_log, + args.wmops_per_op_log, + args.rom_log, + args.ram_log, + args.wmops_per_op_log_for_comparison, + ) diff --git a/ci/complexity_measurements/genWebpageData_Ram.csh b/ci/complexity_measurements/genWebpageData_Ram.csh deleted file mode 100755 index c0e3eab411a23ddd2b798859d71b0cd12be6008f..0000000000000000000000000000000000000000 --- a/ci/complexity_measurements/genWebpageData_Ram.csh +++ /dev/null @@ -1,504 +0,0 @@ -#!/bin/tcsh - -# (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. - -set maxValues = 40 - -if (${#argv} != 3) then - echo usage: $0 \ \ \ - exit -endif - -set srcFile = $1 -set file_final = $2 -set file = ${file_final}_new_$$ -set graphName = $3 - - -set tmpBase = `basename $0` -set tmpFile = /tmp/${tmpBase}_$$ -rm -f ${tmpFile} -cat ${srcFile} | tail -n ${maxValues} > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -set maxNumWordsLine = 19 - -rm -f $file -touch $file - -echo "var $graphName = {" >> $file -echo ' ram_worstcase: {' >> $file -echo ' description: "Worst Case RAM",' >> $file -echo ' direction: -1,' >> $file -echo ' runs: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - @ i++ - set separator = "," - if ( $i == $nLines ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set revision = $tmp[1] - set shortDate = `echo $tmp[2] | sed -e "s/_/\ /g"` - set fullDate = `echo $tmp[3] | sed -e "s/_/\ /g"` - set maxTotalRamEnc = $tmp[5] - set maxTotalRamDec = $tmp[7] - set maxStackEnc = $tmp[10] - set maxStackDec = $tmp[12] - set maxHeapEnc = $tmp[15] - set maxHeapDec = $tmp[17] - set logFile = $tmp[19] - - echo ' {' >> $file - echo ' fullDate: "'${fullDate}'",' >> $file - echo ' shortDate: "'${shortDate}'",' >> $file - echo ' revision: "'${revision}'",' >> $file - echo ' maxTotalRamEnc: "'${maxTotalRamEnc}'",' >> $file - echo ' maxTotalRamDec: "'${maxTotalRamDec}'",' >> $file - echo ' maxStackEnc: "'${maxStackEnc}'",' >> $file - echo ' maxStackDec: "'${maxStackDec}'",' >> $file - echo ' maxHeapEnc: "'${maxHeapEnc}'",' >> $file - echo ' maxHeapDec: "'${maxHeapDec}'",' >> $file - echo ' logFile: "'${logFile}'"' >> $file - echo ' }'${separator} >> $file - -end -echo ' ],' >> $file - -# begin displays -echo ' displays: [' >> $file - -# requirement RAM -echo ' {' >> $file -echo ' lines: { show: false },' >> $file -echo ' points: { show: false, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#000000",' >> $file -echo ' id: "requirementRam",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - # TODO: add real requirement once decided on - set score = 0 - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# requirement RAM - -# maxTotalRamCodecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FF0000",' >> $file -echo ' id: "maxTotalRamCodecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[4] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTotalRamCodecScore - -# maxTotalRamEncScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FF8000",' >> $file -echo ' id: "maxTotalRamEncScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[6] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTotalRamEncScore - -# maxTotalRamDecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FFFF00",' >> $file -echo ' id: "maxTotalRamDecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[8] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTotalRamDecScore - -# maxStackCodecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#004000",' >> $file -echo ' id: "maxStackCodecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[9] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxStackCodecScore - - -# maxStackEncScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#008000",' >> $file -echo ' id: "maxStackEncScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[11] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxStackEncScore - -# maxStackDecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#00FF00",' >> $file -echo ' id: "maxStackDecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[13] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxStackDecScore - -# maxHeapCodecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#800080",' >> $file -echo ' id: "maxHeapCodecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[14] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxHeapCodecScore - -# maxHeapEncScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#0000FF",' >> $file -echo ' id: "maxHeapEncScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[16] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxHeapEncScore - -# maxHeapDecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#0080C0",' >> $file -echo ' id: "maxHeapDecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[18] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' }' >> $file -# maxHeapDecScore - -echo ' ]' >> $file -# end displays - -echo ' }' >> $file -echo '};' >> $file - -mv -f $file $file_final -rm -f $tmpFile diff --git a/ci/complexity_measurements/genWebpageData_Rom.csh b/ci/complexity_measurements/genWebpageData_Rom.csh deleted file mode 100755 index d2ed0b3f949b252e651ae261ea11afb2861ee2c7..0000000000000000000000000000000000000000 --- a/ci/complexity_measurements/genWebpageData_Rom.csh +++ /dev/null @@ -1,535 +0,0 @@ -#!/bin/tcsh - -# (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. - -set maxValues = 40 - -if (${#argv} != 3) then - echo usage: $0 \ \ \ - exit -endif - -set srcFile = $1 -set file_final = $2 -set file = ${file_final}_new_$$ -set graphName = $3 - -set tmpBase = `basename $0` -set tmpFile = /tmp/${tmpBase}_$$ -rm -f ${tmpFile} -cat ${srcFile} | tail -n ${maxValues} > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -set maxNumWordsLine = 21 - -rm -f $file -touch $file - -echo "var $graphName = {" >> $file -echo ' rom_worstcase: {' >> $file -echo ' description: "ROM",' >> $file -echo ' direction: -1,' >> $file -echo ' runs: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - @ i++ - set separator = "," - if ( $i == $nLines ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - - # 1 revision, - # 2 shortDate, - # 3 fullDate, - - # 4 max_total_encdec[1], - - # 5 max_prom_enc[0], - # 6 max_prom_enc[1], - # 7 max_prom_dec[0], - # 8 max_prom_dec[1], - # 9 max_prom_com[0], - # 10 max_prom_com[1], - # 11 max_prom_rend[0], - # 12 max_prom_rend[1], - - # 13 max_trom_enc[0], - # 14 max_trom_enc[1], - # 15 max_trom_dec[0], - # 16 max_trom_dec[1], - # 17 max_trom_com[0], - # 18 max_trom_com[1], - # 19 max_trom_rend[0], - # 20 max_trom_rend[1], - - # 21 newsletterFilenameLast, - - - set revision = $tmp[1] - set shortDate = `echo $tmp[2] | sed -e "s/_/\ /g"` - set fullDate = `echo $tmp[3] | sed -e "s/_/\ /g"` - set PromEnc = $tmp[5] - set PromDec = $tmp[7] - set PromCom = $tmp[9] - set PromRend = $tmp[11] - set TromEnc = $tmp[13] - set TromDec = $tmp[15] - set TromCom = $tmp[17] - set TromRend = $tmp[19] - set logFile = $tmp[21] - - echo ' {' >> $file - echo ' fullDate: "'${fullDate}'",' >> $file - echo ' shortDate: "'${shortDate}'",' >> $file - echo ' revision: "'${revision}'",' >> $file - echo ' PromEnc: "'${PromEnc}'",' >> $file - echo ' PromDec: "'${PromDec}'",' >> $file - echo ' PromCom: "'${PromCom}'",' >> $file - echo ' PromRend: "'${PromRend}'",' >> $file - echo ' TromEnc: "'${TromEnc}'",' >> $file - echo ' TromDec: "'${TromDec}'",' >> $file - echo ' TromCom: "'${TromCom}'",' >> $file - echo ' TromRend: "'${TromRend}'",' >> $file - echo ' logFile: "'${logFile}'"' >> $file - echo ' }'${separator} >> $file - -end -echo ' ],' >> $file - -# begin displays -echo ' displays: [' >> $file - -# requirement ROM -echo ' {' >> $file -echo ' lines: { show: false },' >> $file -echo ' points: { show: false, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#000000",' >> $file -echo ' id: "requirementRom",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - # TODO: add real requirement once decided on - set score = 0 - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# requirement ROM - -# TotalRomCodecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FF0000",' >> $file -echo ' id: "TotalRomCodecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[4] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# TotalRomCodecScore - -# maxPROMEncScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FF8000",' >> $file -echo ' id: "maxPROMEncScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[6] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxPROMEncScore - -# maxPROMDecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FFFF00",' >> $file -echo ' id: "maxPROMDecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[8] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxPROMEncScore - -# maxPROMComScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#800080",' >> $file -echo ' id: "maxPROMComScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[10] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxPROMComScore - - -# maxPROMRendScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#0000FF",' >> $file -echo ' id: "maxPROMRendScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[12] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxPROMRendScore - -# maxTROMEncScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#0080C0",' >> $file -echo ' id: "maxTROMEncScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[14] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTROMEncScore - -# maxTROMDecScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#004000",' >> $file -echo ' id: "maxTROMDecScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[16] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTROMDecScore - -# maxTROMComScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#008000",' >> $file -echo ' id: "maxTROMComScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[18] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# maxTROMComScore - -# maxTROMRendScore -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#00FF00",' >> $file -echo ' id: "maxTROMRendScore",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLine ) then - continue - endif - - set score = $tmp[20] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' }' >> $file -# maxTROMRendScore - -echo ' ]' >> $file -# end displays - -echo ' }' >> $file -echo '};' >> $file - -mv -f $file $file_final -rm -f $tmpFile diff --git a/ci/complexity_measurements/genWebpageData_WMOPS.csh b/ci/complexity_measurements/genWebpageData_WMOPS.csh deleted file mode 100755 index 8e052210c8ea9879ff5eba25041a66520cdb631c..0000000000000000000000000000000000000000 --- a/ci/complexity_measurements/genWebpageData_WMOPS.csh +++ /dev/null @@ -1,500 +0,0 @@ -#!/bin/tcsh - -# (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. - -set maxValues = 40 - -if (${#argv} != 3) then - echo usage: $0 \ \ \ - exit -endif - -set srcFile = $1 -set file_final = $2 -set file = ${file_final}_new_$$ -set graphName = $3 - - -set tmpBase = `basename $0` -set tmpFile = /tmp/${tmpBase}_$$ -rm -f ${tmpFile} -cat ${srcFile} | tail -n ${maxValues} > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -set maxNumWordsLineOld = 12 -set maxNumWordsLineNew = 19 - -rm -f $file -touch $file - -echo "var $graphName = {" >> $file -echo ' wmops_worstcase: {' >> $file -echo ' description: "Worst Case WMOPS",' >> $file -echo ' direction: -1,' >> $file -echo ' runs: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - @ i++ - set separator = "," - if ( $i == $nLines ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - set revision = $tmp[1] - set shortDate = `echo $tmp[2] | sed -e "s/_/\ /g"` - set fullDate = `echo $tmp[3] | sed -e "s/_/\ /g"` - set worstCaseEnc = $tmp[5] - set worstCaseDec = $tmp[7] - set worstCaseCodec = $tmp[9] - set fixpointScalingFac = $tmp[11] - if ( $numWords == $maxNumWordsLineOld ) then - set logFile = $tmp[12] - set worstCaseEncRs = "" - set worstCaseDecRs = "" - set worstCaseCodecRs = "" - else if ( $numWords < $maxNumWordsLineNew ) then - set logFile = "" - set worstCaseEncRs = "" - set worstCaseDecRs = "" - set worstCaseCodecRs = "" - else - set logFile = $tmp[19] - set worstCaseEncRs = $tmp[13] - set worstCaseDecRs = $tmp[15] - set worstCaseCodecRs = $tmp[17] - endif - - - echo ' {' >> $file - echo ' fullDate: "'${fullDate}'",' >> $file - echo ' shortDate: "'${shortDate}'",' >> $file - echo ' revision: "'${revision}'",' >> $file - echo ' worstCaseEnc: "'${worstCaseEnc}'",' >> $file - echo ' worstCaseDec: "'${worstCaseDec}'",' >> $file - echo ' worstCaseCodec: "'${worstCaseCodec}'",'>> $file - echo ' worstCaseEncRs: "'${worstCaseEncRs}'",' >> $file - echo ' worstCaseDecRs: "'${worstCaseDecRs}'",' >> $file - echo ' worstCaseCodecRs: "'${worstCaseCodecRs}'",'>> $file - echo ' fixpointScalingFac: "'${fixpointScalingFac}'",'>> $file - echo ' logFile: "'${logFile}'"' >> $file - echo ' }'${separator} >> $file - -end -echo ' ],' >> $file - -# begin displays -echo ' displays: [' >> $file - -# 135 WMOPS boundary -echo ' {' >> $file -echo ' lines: { show: false },' >> $file -echo ' points: { show: false, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: false,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#000000",' >> $file -echo ' id: "requirement",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - # TODO: add real requirement once decided on - set score = 0 - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# 135 WMOPS boundary - -# worst case codec -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#0080FF",' >> $file -echo ' id: "worst case codec",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - set score = $tmp[10] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# end worst case codec - -# worst case enc/dec -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FF8000",' >> $file -echo ' id: "worst case enc/dec",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - set score = $tmp[4] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# worst case enc/dec - -# worst case encoder -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#CF4B4B",' >> $file -echo ' id: "worst case enc",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - set score = $tmp[6] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# end worst case encoder - -# worst case decoder -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#008040",' >> $file -echo ' id: "worst case dec",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - set score = $tmp[8] - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# end worst case decoder - -########### rateswitching ############### - -# worst case codec rateswitching -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#40C4FF",' >> $file -echo ' id: "worst case codec rs",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - if ( $numWords < $maxNumWordsLineNew ) then - set score = 0 - else - set score = $tmp[18] - endif - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# end worst case codec rateswitching - -# worst case enc/dec rateswitching -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#FFC480",' >> $file -echo ' id: "worst case enc/dec rs",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - if ( $numWords < $maxNumWordsLineNew ) then - set score = 0 - else - set score = $tmp[12] - endif - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# worst case enc/dec rateswitching - -# worst case encoder rateswitching -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#CF8080",' >> $file -echo ' id: "worst case enc rs",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - if ( $numWords < $maxNumWordsLineNew ) then - set score = 0 - else - set score = $tmp[14] - endif - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' },' >> $file -# end worst case encoder rateswitching - -# worst case decoder rateswitching -echo ' {' >> $file -echo ' lines: { show: true },' >> $file -echo ' points: { show: true, fillColor: "#ffffff" },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: true,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#00F040",' >> $file -echo ' id: "worst case dec rs",' >> $file -echo ' data: [' >> $file - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - set separator = "," - if ( $i == $nLines - 1 ) then - set separator = "" - endif - - set tmp = ( $line ) - - set numWords = `echo $tmp | wc -w` - if ( $numWords < $maxNumWordsLineOld ) then - continue - endif - - if ( $numWords < $maxNumWordsLineNew ) then - set score = 0 - else - set score = $tmp[16] - endif - - echo ' ['"${i}, ${score}"']'${separator} >> $file - @ i++ - -end - -echo ' ]' >> $file -echo ' }' >> $file -# end worst case decoder rateswitching - -########### end rateswitching ############### - -echo ' ]' >> $file -# end displays - -echo ' }' >> $file -echo '};' >> $file - -mv -f $file $file_final -rm -f $tmpFile diff --git a/ci/complexity_measurements/genWebpageData_WmopPerOperatingpoint.csh b/ci/complexity_measurements/genWebpageData_WmopPerOperatingpoint.csh deleted file mode 100755 index 906d08c949b015fc6c6bb0f96a11d22c01eab187..0000000000000000000000000000000000000000 --- a/ci/complexity_measurements/genWebpageData_WmopPerOperatingpoint.csh +++ /dev/null @@ -1,503 +0,0 @@ -#!/bin/tcsh - -# (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. - -set srcFile = $1 -set file_final = $2 -set file = ${file_final}.new -set graphName = $3 - -set tmpBase = `basename $0` -set tmpFile = /tmp/${tmpBase}_$$ - -rm -f $file -touch $file - -set worstCaseCodec -set worstCaseEnc -set worstCaseDec -@ numEntries = 0; -@ offsetTicks = 0; - -echo "var $graphName = {" >> $file -echo ' wmops_worstcase_per_op: {' >> $file -echo ' description: "Worst Case WMOPS per OP",' >> $file -echo ' direction: -1,' >> $file -echo ' runs: [' >> $file - -# -# NB modes -# -if (0) then # don't use! -rm -f ${tmpFile} -cat ${srcFile} | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_NB_" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksNB = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "NB"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - -# -# NB modes, rateswitching -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_NB_RS" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksNB_RS = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "NB RS"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - -# -# AMR-WB IO modes -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_WB_" | grep "AMR" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksWBIO = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "AMR-WB IO"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - -# -# AMR-WB IO modes rateswitching -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_WB_RS" | grep "AMR" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksWBIO_RS = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "AMR-WB IO RS"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file -endif - -# -# WB modes -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_WB_" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksWB = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "WB"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - -# -# WB modes rateswitching -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_WB_RS" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksWB_RS = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "WB RS"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - -# -# SWB modes -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_SWB_" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksSWB = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "SWB"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - - -# -# SWB modes rateswitching -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_SWB_RS" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksSWB_RS = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "SWB RS"' >> $file - echo ' },' >> $file - -end - -# -# FB modes -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_FB_" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksFB = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -foreach line ( "`cat ${tmpFile}`" ) - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "FB"' >> $file - echo ' },' >> $file - -end - -set worstCaseCodec = ( $worstCaseCodec 0 ) -set worstCaseEnc = ( $worstCaseEnc 0 ) -set worstCaseDec = ( $worstCaseDec 0 ) -@ numEntries++ - -echo ' {' >> $file -echo ' operatingPoint: "",' >> $file -echo ' mode: ""' >> $file -echo ' },' >> $file - - -# -# FB modes rateswitching -# -rm -f ${tmpFile} -cat $srcFile | grep "[0-9]" | sed -e "s/\ /_/g" | sed -e "s/;/\ /g" | grep "_FB_RS" > ${tmpFile} -set nLines = `cat ${tmpFile} | wc -l` -@ ticksFB_RS = $offsetTicks + ( $nLines / 2 ) -@ offsetTicks += ($nLines + 1) - -@ i = 0 -foreach line ( "`cat ${tmpFile}`" ) - @ i++ - set separator = "," - if ( $i == $nLines ) then - set separator = "" - endif - - set tmp = `echo $line` - - set operatingPoint = $tmp[1] - set worstCaseCodec = ( $worstCaseCodec $tmp[4] ) - set worstCaseEnc = ( $worstCaseEnc $tmp[2] ) - set worstCaseDec = ( $worstCaseDec $tmp[3] ) - @ numEntries++ - - echo ' {' >> $file - echo ' operatingPoint: "'${operatingPoint}'",' >> $file - echo ' mode: "SWB RS"' >> $file - echo ' }'${separator} >> $file - -end - -echo ' ],' >> $file - -# -# ticks -# -echo ' ticks: [' >> $file -if (0) then -echo ' ['$ticksNB', "NB"],' >> $file -echo ' ['$ticksNB_RS', "NB RS"],' >> $file -echo ' ['$ticksWBIO', "AMR-WB IO"],' >> $file -endif -echo ' ['$ticksWB', "WB"],' >> $file -echo ' ['$ticksWB_RS', "WB RS"],' >> $file -echo ' ['$ticksSWB', "SWB"],' >> $file -echo ' ['$ticksSWB_RS', "SWB RS"],' >> $file -echo ' ['$ticksFB', "FB"],' >> $file -echo ' ['$ticksFB_RS', "FB RS"]' >> $file -echo ' ],' >> $file - - -# begin displays -echo ' displays: [' >> $file - -# Start: Worse case encoder -echo ' {' >> $file -echo ' lines: { show: false },' >> $file -echo ' points: { show: false },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: false,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#CF4B4B",' >> $file -echo ' id: "worstCaseEnc",' >> $file -echo ' label: "Encoder",' >> $file -echo ' data: [' >> $file - -@ i = 0 -while($i < $numEntries) - - set separator = "," - if ( $i == $numEntries - 1 ) then - set separator = "" - endif - - @ j = $i + 1 - - echo ' ['"${i}, $worstCaseEnc[$j]"']'${separator} >> $file - - @ i++ -end - -echo ' ]' >> $file -echo ' },' >> $file -# End: Worst case encoder - -# Start: Worse case decoder -echo ' {' >> $file -echo ' lines: { show: false },' >> $file -echo ' points: { show: false },' >> $file -echo ' borderWidth: 1.5,' >> $file -echo ' borderColor: "#BEBEBE",' >> $file -echo ' markingsLineWidth: .75,' >> $file -echo ' hoverable: true,' >> $file -echo ' clickable: false,' >> $file -echo ' shadowSize: 0,' >> $file -echo ' color: "#008040",' >> $file -echo ' id: "worstCaseDec",' >> $file -echo ' label: "Decoder",' >> $file -echo ' data: [' >> $file - -@ i = 0 -while($i < $numEntries) - - set separator = "," - if ( $i == $numEntries - 1 ) then - set separator = "" - endif - - @ j = $i + 1 - - echo ' ['"${i}, $worstCaseDec[$j]"']'${separator} >> $file - - @ i++ -end - -echo ' ]' >> $file -echo ' }' >> $file -# End: Worst case encoder - -echo ' ]' >> $file -# end displays - -echo ' }' >> $file -echo '};' >> $file - -mv -f $file $file_final -rm -f $tmpFile diff --git a/ci/complexity_measurements/getWmops.sh b/ci/complexity_measurements/getWmops.sh index 3289a91c34c027a80e3645bf74d96d16f89d9495..18537048636ed8af441e144b8706949444a6d74d 100755 --- a/ci/complexity_measurements/getWmops.sh +++ b/ci/complexity_measurements/getWmops.sh @@ -92,27 +92,17 @@ ret_val=$? ### WMOPS ${scriptDir}/parseNewsletterWmops.py ${wmopsFilenameFlc}_WMOPS.csv ${wmopsFilenameFlcLast}_WMOPS.csv ${commit_sha} ${shortDate} ${fullDate} >>${destDir}/wmops/log_wmops_all.txt -# now update the webpage -tcsh ${scriptDir}/genWebpageData_WMOPS.csh ${destDir}/wmops/log_wmops_all.txt ${destDir}/wmops/graphs_wmops_flc.js Graphs_WMOPS - -# per mode graph -tcsh ${scriptDir}/genWebpageData_WmopPerOperatingpoint.csh ${wmopsFilenameFlc}_WMOPS.csv ${destDir}/wmops/graphs_wmops_flc_perOP.js Graphs_WMOPS_perOP - # get memory info for webpage ### RAM ${scriptDir}/mergeNewsletterRam.py ${wmopsFilenameFlc}_HEAP.csv ${wmopsFilenameFlc}_STACK.csv >${wmopsFilenameFlc}_RAM.csv ${scriptDir}/parseNewsletterRam.py ${wmopsFilenameFlc}_HEAP.csv ${wmopsFilenameFlc}_STACK.csv ${wmopsFilenameFlcLast}_RAM.csv ${commit_sha} ${shortDate} ${fullDate} >>${destDir}/wmops/log_ram_all.txt -# generate java script from database -tcsh ${scriptDir}/genWebpageData_Ram.csh ${destDir}/wmops/log_ram_all.txt ${destDir}/wmops/graphs_ram_flc.js Graphs_RAM - ### ROM - ${scriptDir}/mergeNewsletterRom.py ${wmopsFilenameFlc}_PROM.csv ${wmopsFilenameFlc}_TROM.csv >${wmopsFilenameFlc}_ROM.csv ${scriptDir}/parseNewsletterRom.py ${wmopsFilenameFlc}_PROM.csv ${wmopsFilenameFlc}_TROM.csv ${wmopsFilenameFlcLast}_ROM.csv ${commit_sha} ${shortDate} ${fullDate} >>${destDir}/wmops/log_rom_all.txt -# generate java script from database -tcsh ${scriptDir}/genWebpageData_Rom.csh ${destDir}/wmops/log_rom_all.txt ${destDir}/wmops/graphs_rom_flc.js Graphs_ROM +# generate javascript code from log files +python3 ci/complexity_measurements/genWebpageData.py ${destDir}/wmops/log_wmops_all.txt ${wmopsFilenameFlc}_WMOPS.csv ${destDir}/wmops/log_rom_all.txt ${destDir}/wmops/log_ram_all.txt python3 ${scriptDir}/check_for_changes.py ${destDir}/wmops/log_wmops_all.txt ${destDir}/wmops/log_ram_all.txt ${destDir}/wmops/log_rom_all.txt if [ "$?" != "0" ]; then diff --git a/ci/complexity_measurements/index_complexity.html b/ci/complexity_measurements/index_complexity.html index 3b3964e9d8da73b40e284b34a64622253c6ebb21..daac766ca0182c46cb22f3f99beef6d1d5c9bd75 100755 --- a/ci/complexity_measurements/index_complexity.html +++ b/ci/complexity_measurements/index_complexity.html @@ -116,13 +116,12 @@
  • Worst case encoder + decoder performance: Encoder and decoder mode might be different.
  • -
  • Worst case encoder + decoder performance (rateswitching): Encoder and decoder mode might be different.
  • Worst case codec performance: Encoder and decoder modes are identical.
  • -
  • Worst case codec performance (rateswitching): Encoder and decoder modes are identical.
  • Worst case encoder performance
  • -
  • Worst case encoder performance (rateswitching)
  • Worst case decoder performance
  • -
  • Worst case decoder performance (rateswitching)
  • +
  • 3xEVS Reference
  • +
  • 6xEVS Reference
  • +
  • 10xEVS Reference
@@ -294,13 +293,15 @@

FAQ

+
Q:
Which input files are used for audio-input? What error pattern is used?
+
A:
The input files can be found here. The error pattern is here
. +
Q:
The legend lists some References, but I can't see them in the plot?
+
A:
The plot Axes are scaled to fit the measured numbers. The reference values might be too high to fit into the plot. Put differently: if you can't see the references, you are probably below them (all is well).
.
Q:
What is the meaning of these funny symbols in the navigation box, in the left upper corner of this page?
A:
1) Traffic light , or : !!!CURRENTLY NOT WORKING CORRECTLY AS NO REQUIREMENTS DEFINED YET!!! The traffic light symbols show, whether the last datapoint matches the requirement (green) or not (red). A yellow traffic light means that the requirement is matched, but the score is very close (within a 3% margin) to the requirement.
2) Arrow , , : The arrow indicates the trend of the last datapoint, compared to the last but one. An upwards arrow means that the score got higher (i.e. worse), downwards arrow arrow means that the score got lower (i.e. better), and a rightwards arrow means that the score was kept constant (within a 1% margin).
-
Q:
Which input files are used for audio-input? What error pattern is used?
-
A:
The input files can be found here. The error pattern is here.
@@ -402,6 +403,13 @@ var max = 0; for ( var i = 0; i < displays.length; i++ ) { + // do not include the references to prevent upscaling too much when the actual + // interesting numbers are only low + var id = displays[i].id; + if ( id.includes("EVS") ) + { + continue; + } var data = displays[i].data; for ( var j = 0; j < data.length; j++ ) { @@ -469,15 +477,19 @@ previousPoint = item.datapoint; $("#tooltip").remove(); - if(item.series.id != "requirement"){ - var x = item.datapoint[0]; - var y = item.datapoint[1]; - var text = 'Score: ' + y; + var x = item.datapoint[0]; + var y = item.datapoint[1]; - if (graph.direction == -1) - text += " WMOPS"; - text += "
"; - + var text = "" + item.series.id + "
" + text += 'Score: ' + y; + + if (graph.direction == -1) + text += " WMOPS"; + text += "
"; + + // add more info only if not a reference line + if ( !item.series.id.includes("EVS") ) + { if (x > 0) { var thisValue = parseFloat(y); var prevValue = parseFloat(item.series.data[x - 1, x - 1][1]); @@ -528,13 +540,10 @@ text += "
" - text += "Revision: " + graph.runs[x].revision + "
"; - text += "Date: " + graph.runs[x].fullDate + "
"; + text += "Revision: " + graph.runs[x].revision + "
"; + text += "Date: " + graph.runs[x].fullDate + "
"; text += "Fixpoint scal. fac. to reach 138 WMOPS: " + graph.runs[x].fixpointScalingFac + "

"; - text += "Logfile
"; - } else { - text = "Complexity requirement: 135 WMOPS"; } showToolTip(item.pageX, item.pageY, text); @@ -651,7 +660,7 @@ function WMOPS_perOP() { var text = ""; - text += "Mode: " + Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x].operatingPoint + "

"; + text += "Mode: " + Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x].operatingPoint + "
"; text += 'Score: ' + Math.round(y * 100) / 100; if (graph.direction == -1) @@ -752,7 +761,8 @@ function RAM() { var x = item.datapoint[0]; var y = item.datapoint[1]; - var text = 'Score: ' + y; + var text = "" + item.series.id + "
" + text += 'Score: ' + y; if (graph.direction == -1) text += " bytes"; @@ -913,7 +923,8 @@ function ROM() { { var x = item.datapoint[0]; var y = item.datapoint[1]; - var text = 'Score: ' + y; + var text = "" + item.series.id + "
" + text += 'Score: ' + y; if (graph.direction == -1) text += " bytes"; diff --git a/ci/complexity_measurements/parseNewsletterRam.py b/ci/complexity_measurements/parseNewsletterRam.py index 55eecff5738264d933b13470ee0f35789c138853..8d32c748163cea844239cef5e8c5043ca2c20364 100755 --- a/ci/complexity_measurements/parseNewsletterRam.py +++ b/ci/complexity_measurements/parseNewsletterRam.py @@ -1,33 +1,33 @@ #!/usr/bin/env python3 # coding: utf-8 """ - (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. +(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. """ import csv diff --git a/ci/complexity_measurements/parseNewsletterRom.py b/ci/complexity_measurements/parseNewsletterRom.py index a4a3df4ecfe0da6763668dd4e4e5639ebbb087aa..0f5c5f76580e1d834fc67913467b87f7b0a0c741 100755 --- a/ci/complexity_measurements/parseNewsletterRom.py +++ b/ci/complexity_measurements/parseNewsletterRom.py @@ -2,33 +2,33 @@ # coding: utf-8 """ - (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. +(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. """ import csv diff --git a/ci/complexity_measurements/parseNewsletterWmops.py b/ci/complexity_measurements/parseNewsletterWmops.py index a00171ead797c3117aaf8e571cd88415480ad47d..5f2b261db50b06c6d61af4ecdf99d0e56719e1ad 100755 --- a/ci/complexity_measurements/parseNewsletterWmops.py +++ b/ci/complexity_measurements/parseNewsletterWmops.py @@ -1,33 +1,33 @@ #!/usr/bin/env python3 # coding: utf-8 """ - (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. +(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. +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. +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. +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. +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. """ import csv