IVAS FORMAT - Worst Case WMOPS Performance
--
-
- Worst case encoder + decoder performance: Encoder and decoder mode might be different. -
- Worst case codec performance: Encoder and decoder modes are identical. -
- Worst case encoder performance -
- Worst case decoder performance -
- 3xEVS Reference -
- 6xEVS Reference -
- 10xEVS Reference -
Level 1 (13.2 - 80 kbps)
+ +Level 2 (96 - 192 kbps)
+ +Level 3 (256 - 512 kbps)
+ +Rate switching (level-independent)
+ +-
+
- Worst case encoder + decoder performance: Encoder and decoder mode might be different. +
- Worst case codec performance: Encoder and decoder modes are identical. +
- Worst case encoder performance +
- Worst case decoder performance + + + +
-
IVAS FORMAT - Worst Case WMOPS Performance per Operating Point
+IVAS FORMAT - Worst Case WMOPS Performance per Operating Point
Encoder
-Decoder
-- - - +
Rate switching (level-independent)
+ +IVAS FORMAT - Worst Case RAM Demand
--
-
- Max. total RAM Codec:
+ ++
-
+
- Max. total RAM Codec: Encoder + Decoder -
- Max. total RAM Encoder: +
- Max. total RAM Encoder: Encoder only -
- Max. total RAM Decoder: +
- Max. total RAM Decoder: Decoder only - -
- Max. HEAP Codec: + +
- Max. HEAP Codec: Encoder + Decoder -
- Max. HEAP Encoder +
- Max. HEAP Encoder Encoder only -
- Max. HEAP Decoder +
- Max. HEAP Decoder Decoder only - -
- Max. STACK Codec: + +
- Max. STACK Codec: max(Encoder, Decoder) -
- Max. STACK Encoder: +
- Max. STACK Encoder: Encoder only -
- Max. STACK Decoder: +
- Max. STACK Decoder: Decoder only -
+
- +
-
+
- Max. total ROM Codec: Encoder + Decoder -
- Max. total ROM Codec: Encoder + Decoder - -
- Max. Program ROM Encoder Library: lib_enc only -
- Max. Program ROM Decoder Library: lib_dec only -
- Max. Program ROM Common Library: lib_com only -
- Max. Program ROM Ext Renderer Library: lib_rend only - -
- Max. Table ROM Encoder Library: lib_enc only -
- Max. Table ROM Decoder Library: lib_dec only -
- Max. Table ROM Common Library: lib_com only -
- Max. Table ROM Ext Renderer Library: lib_rend only -
- Max. Program ROM Encoder Library: lib_enc only +
- Max. Program ROM Decoder Library: lib_dec only +
- Max. Program ROM Common Library: lib_com only +
- Max. Program ROM Ext Renderer Library: lib_rend only + +
- Max. Table ROM Encoder Library: lib_enc only +
- Max. Table ROM Decoder Library: lib_dec only +
- Max. Table ROM Common Library: lib_com only +
- Max. Table ROM Ext Renderer Library: lib_rend only +
IVAS FORMAT - Worst Case ROM Demand
- --
-
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). -
" - text += 'Score: ' + y; - - if (graph.direction == -1) - text += " WMOPS"; - text += "
"; + text += 'Score: ' + y + " WMOPS" + "
"; // add more info only if not a reference line if ( !item.series.id.includes("EVS") ) @@ -503,8 +384,7 @@ var diff = Math.round((thisValue - prevValue) * 100) / 100; var pdiff = calcPercentDiff(thisValue, prevValue); var better; - if ((pdiff < 0 && graph.direction == -1) || - (pdiff > 0 && graph.direction == 1)) { + if (pdiff < 0) { better = "worse"; } else { better = "better"; @@ -512,44 +392,28 @@ pdiff = Math.abs(pdiff); if (diff === diff) { text += String.fromCharCode(916) + ": " + diff; - if (graph.direction == -1) - text += " WMOPS"; + text += " WMOPS"; text += " (" + pdiff + "% " + better + ")
"; } } if( item.series.id == "worst case enc/dec" ){ - text += "Worst case enc: " + graph.runs[x].worstCaseEnc + "
"; - text += "Worst case dec: " + graph.runs[x].worstCaseDec + "
"; + text += "Encoder OP: " + graph.runs[x].worstCaseEnc + "
"; + text += "Decoder OP: " + graph.runs[x].worstCaseDec + "
"; } if( item.series.id == "worst case codec" ){ - text += "Worst case codec: " + graph.runs[x].worstCaseCodec + "
"; + text += "OP: " + graph.runs[x].worstCaseCodec + "
"; } if( item.series.id == "worst case enc" ){ - text += "Worst case enc: " + graph.runs[x].worstCaseEnc + "
"; + text += "OP: " + graph.runs[x].worstCaseEnc + "
"; } if( item.series.id == "worst case dec" ){ - text += "Worst case dec: " + graph.runs[x].worstCaseDec + "
"; - } - if( item.series.id == "worst case enc/dec rs" ){ - text += "Worst case enc rateswitching: " + graph.runs[x].worstCaseEncRs + "
"; - text += "Worst case dec rateswitching: " + graph.runs[x].worstCaseDecRs + "
"; - } - if( item.series.id == "worst case codec rs" ){ - text += "Worst case codec rateswitching: " + graph.runs[x].worstCaseCodecRs + "
"; - } - if( item.series.id == "worst case enc rs" ){ - text += "Worst case enc rateswitching: " + graph.runs[x].worstCaseEncRs + "
"; + text += "OP: " + graph.runs[x].worstCaseDec + "
"; } - if( item.series.id == "worst case dec rs" ){ - text += "Worst case dec rateswitching: " + graph.runs[x].worstCaseDecRs + "
"; - } - text += "
" 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
"; } @@ -559,44 +423,25 @@ } $(document).ready(function () { - var max = get_max_y_val_for_plotting(Graphs_WMOPS.wmops_worstcase.displays, 50); - drawGraph($("#wmops-graph"), Graphs_WMOPS.wmops_worstcase, max); + var max = get_max_y_val_for_plotting(Graphs_WMOPS_level_1.wmops_worstcase.displays, 50); + drawGraph($("#wmops-graph-level_1"), Graphs_WMOPS_level_1.wmops_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_WMOPS_level_2.wmops_worstcase.displays, 50); + drawGraph($("#wmops-graph-level_2"), Graphs_WMOPS_level_2.wmops_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_WMOPS_level_3.wmops_worstcase.displays, 50); + drawGraph($("#wmops-graph-level_3"), Graphs_WMOPS_level_3.wmops_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_WMOPS_rate_sw.wmops_worstcase.displays, 50); + drawGraph($("#wmops-graph-rate_sw"), Graphs_WMOPS_rate_sw.wmops_worstcase, max); }); - - var refData = Graphs_WMOPS.wmops_worstcase.displays[0]; - var testData = Graphs_WMOPS.wmops_worstcase.displays[2]; - var testDataRs = Graphs_WMOPS.wmops_worstcase.displays[6]; - var nEntries = testData.data.length; - - if( testDataRs.data[nEntries-1][1] > testData.data[nEntries-1][1] ) { - testData = testDataRs; - } - - if(testData.data[nEntries-1][1] > refData.data[nEntries-1][1] ) { - document.getElementById("wmops_tl_l").style.color="#FF0000"; - } else if(testData.data[nEntries-1][1] > 0.97 * refData.data[nEntries-1][1] ) { - document.getElementById("wmops_tl_c").style.color="#FFFF00"; - } else { - document.getElementById("wmops_tl_r").style.color="#00FF00"; - } - - if(nEntries > 1) { - if( testData.data[nEntries-1][1] > 1.01 * testData.data[nEntries-2][1] ) { - document.getElementById("wmops_trend").innerHTML="↑"; - document.getElementById("wmops_trend").style.color="#FF0000"; - } else if(testData.data[nEntries-1][1] < 0.99 * testData.data[nEntries-2][1] ) { - document.getElementById("wmops_trend").innerHTML="↓"; - document.getElementById("wmops_trend").style.color="#00FF00"; - } else { - document.getElementById("wmops_trend").innerHTML="→"; - document.getElementById("wmops_trend").style.color="#FFFFFF"; - } } -} function WMOPS_perOP() { - var previousPoint = null; function drawGraph(elt, graph, max_val) { @@ -604,12 +449,7 @@ function WMOPS_perOP() { yaxis: { min: 0, max: max_val, - tickFormatter: function (v, axis) { - if (graph.direction == -1) - return v + " WMOPS"; - return v; - }, - invert: graph.direction == 1 + tickFormatter: wmopsFormatter, }, xaxis: { ticks: graph.ticks @@ -710,20 +550,35 @@ function WMOPS_perOP() { drawGraph($("#wmops_per_op-graph-dec"), graph_dec, max_dec); }); - var nEntriesWmopsGraph = Graphs_WMOPS.wmops_worstcase.runs.length - 1; + var nEntriesWmopsGraph = Graphs_WMOPS_level_1.wmops_worstcase.runs.length - 1; var legend = "
Numbers derived from revision " + - Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].revision + + Graphs_WMOPS_level_1.wmops_worstcase.runs[nEntriesWmopsGraph].revision + ", " + - Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].fullDate + + Graphs_WMOPS_level_1.wmops_worstcase.runs[nEntriesWmopsGraph].fullDate + "
"; document.getElementById("wmops_per_op-legend-enc").innerHTML = legend; } + function memTickFormatter(v, axis) { + var decimals = axis.tickDecimals; + var str_val = ""; + if (v > 1000000) { + str_val = (v / 1000000).toFixed(decimals) + " MB"; + } + else if (v > 1000) { + str_val = (v / 1000).toFixed(decimals) + " kB"; + } + else { + str_val = v.toFixed(decimals) + " B"; + } + return str_val; + } + function RAM() { - + var previousPoint = null; function drawGraph(elt, graph, max_val) { @@ -731,12 +586,7 @@ function RAM() { yaxis: { min: 0, max: max_val, - tickFormatter: function (v, axis) { - if (graph.direction == -1) - return v + " bytes"; - return v; - }, - invert: graph.direction == 1 + tickFormatter: memTickFormatter, }, xaxis: { tickFormatter: function (v, axis) { @@ -781,8 +631,7 @@ function RAM() { var text = "" + item.series.id + "" text += 'Score: ' + y; - if (graph.direction == -1) - text += " bytes"; + text += " bytes"; text += "
"; if (x > 0) { @@ -791,8 +640,7 @@ function RAM() { var diff = Math.round((thisValue - prevValue) * 100) / 100; var pdiff = calcPercentDiff(thisValue, prevValue); var better; - if ((pdiff < 0 && graph.direction == -1) || - (pdiff > 0 && graph.direction == 1)) { + if (pdiff < 0) { better = "worse"; } else { better = "better"; @@ -800,8 +648,7 @@ function RAM() { pdiff = Math.abs(pdiff); if (diff === diff) { text += String.fromCharCode(916) + ": " + diff; - if (graph.direction == -1) - text += " bytes"; + text += " bytes"; text += " (" + pdiff + "% " + better + ")
"; } } @@ -852,40 +699,26 @@ function RAM() { } $(document).ready(function () { - var max = get_max_y_val_for_plotting(Graphs_RAM.ram_worstcase.displays, 50000); - drawGraph($("#ram-graph"), Graphs_RAM.ram_worstcase, max); + var max = get_max_y_val_for_plotting(Graphs_RAM_level_1.ram_worstcase.displays, 50000); + drawGraph($("#ram-graph-level_1"), Graphs_RAM_level_1.ram_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_RAM_level_2.ram_worstcase.displays, 50000); + drawGraph($("#ram-graph-level_2"), Graphs_RAM_level_2.ram_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_RAM_level_3.ram_worstcase.displays, 50000); + drawGraph($("#ram-graph-level_3"), Graphs_RAM_level_3.ram_worstcase, max); + }); + $(document).ready(function () { + var max = get_max_y_val_for_plotting(Graphs_RAM_rate_sw.ram_worstcase.displays, 50000); + drawGraph($("#ram-graph-rate_sw"), Graphs_RAM_rate_sw.ram_worstcase, max); }); - - var testData = Graphs_RAM.ram_worstcase.displays[1]; - var refData = Graphs_RAM.ram_worstcase.displays[0]; - var nEntries = testData.data.length; - - if( testData.data[nEntries-1][1] > refData.data[nEntries-1][1] ) { - document.getElementById("ram_tl_l").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] > 0.97 * refData.data[nEntries-1][1] ) { - document.getElementById("ram_tl_c").style.color="#FFFF00"; - } else { - document.getElementById("ram_tl_r").style.color="#00FF00"; - } - - if(nEntries > 1) { - if( testData.data[nEntries-1][1] > 1.01 * testData.data[nEntries-2][1] ) { - document.getElementById("ram_trend").innerHTML="↑"; - document.getElementById("ram_trend").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] < 0.99 * testData.data[nEntries-2][1] ) { - document.getElementById("ram_trend").innerHTML="↓"; - document.getElementById("ram_trend").style.color="#00FF00"; - } else { - document.getElementById("ram_trend").innerHTML="→"; - document.getElementById("ram_trend").style.color="#FFFFFF"; - } - } } function ROM() { - var previousPoint = null; function drawGraph(elt, graph, max_val) { @@ -893,12 +726,7 @@ function ROM() { yaxis: { min: 0, max: max_val, - tickFormatter: function (v, axis) { - if (graph.direction == -1) - return v + " bytes"; - return v; - }, - invert: graph.direction == 1 + tickFormatter: memTickFormatter, }, xaxis: { tickFormatter: function (v, axis) { @@ -943,8 +771,7 @@ function ROM() { var text = "" + item.series.id + "
" text += 'Score: ' + y; - if (graph.direction == -1) - text += " bytes"; + text += " bytes"; text += "
"; if (x > 0) { @@ -953,8 +780,7 @@ function ROM() { var diff = Math.round((thisValue - prevValue) * 100) / 100; var pdiff = calcPercentDiff(thisValue, prevValue); var better; - if ((pdiff < 0 && graph.direction == -1) || - (pdiff > 0 && graph.direction == 1)) { + if (pdiff < 0) { better = "worse"; } else { better = "better"; @@ -962,62 +788,16 @@ function ROM() { pdiff = Math.abs(pdiff); if (diff === diff) { text += String.fromCharCode(916) + ": " + diff; - if (graph.direction == -1) - text += " bytes"; + text += " bytes"; text += " (" + pdiff + "% " + better + ")
"; } } -/* - if( item.series.id == "TotalRomCodecScore" ){ - text += "Worst case enc: " + graph.runs[x].TotalRomEnc + "
"; - text += "Worst case dec: " + graph.runs[x].TotalRomDec + "
"; - } - if( item.series.id == "TotalRomEncScore" ){ - text += "Worst case enc: " + graph.runs[x].TotalRomEnc + "
"; - } - if( item.series.id == "TotalRomDecScore" ){ - text += "Worst case dec: " + graph.runs[x].TotalRomDec + "
"; - } - if( item.series.id == "PROMCodecScore" ){ - text += "Worst case enc: " + graph.runs[x].PromEnc + "
"; - text += "Worst case dec: " + graph.runs[x].PromDec + "
"; - } - if( item.series.id == "PROMEncScore" ){ - text += "Worst case enc: " + graph.runs[x].PromEnc + "
"; - } - if( item.series.id == "PROMDecScore" ){ - text += "Worst case dec: " + graph.runs[x].PromDec + "
"; - } - if( item.series.id == "TROMCodecScore" ){ - text += "Worst case enc: " + graph.runs[x].TromEnc + "
"; - text += "Worst case dec: " + graph.runs[x].TromDec + "
"; - } - if( item.series.id == "TROMEncScore" ){ - text += "Worst case enc: " + graph.runs[x].TromEnc + "
"; - } - if( item.series.id == "TROMDecScore" ){ - text += "Worst case dec: " + graph.runs[x].TromDec + "
"; - } -*/ - text += "
" text += "Revision: " + graph.runs[x].revision + "
"; text += "Date: " + graph.runs[x].fullDate + "
"; text += "Logfile
"; - /* - if( item.series.id == "maxRomFlc" ){ - text += "Logfile
"; - } - */ - - /* - if( item.series.id == "maxRomBasop" ){ - text += "Logfile
"; - } - */ - } else { text = "ROM requirement: 800000 bytes"; } @@ -1032,66 +812,10 @@ function ROM() { drawGraph($("#rom-graph"), Graphs_ROM.rom_worstcase, max); }); - - /* FLC */ - var testData = Graphs_ROM.rom_worstcase.displays[1]; - var refData = Graphs_ROM.rom_worstcase.displays[0]; - var nEntries = testData.data.length; - - if( testData.data[nEntries-1][1] > refData.data[nEntries-1][1] ) { - document.getElementById("rom_tl_l").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] > 0.97 * refData.data[nEntries-1][1] ) { - document.getElementById("rom_tl_c").style.color="#FFFF00"; - } else { - document.getElementById("rom_tl_r").style.color="#00FF00"; - } - - if(nEntries > 1) { - if( testData.data[nEntries-1][1] > 1.01 * testData.data[nEntries-2][1] ) { - document.getElementById("rom_trend").innerHTML="↑"; - document.getElementById("rom_trend").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] < 0.99 * testData.data[nEntries-2][1] ) { - document.getElementById("rom_trend").innerHTML="↓"; - document.getElementById("rom_trend").style.color="#00FF00"; - } else { - document.getElementById("rom_trend").innerHTML="→"; - document.getElementById("rom_trend").style.color="#FFFFFF"; - } - } - - - /* BASOP */ - /* - var testData = Graphs_ROM_BASOP.rom_worstcase.displays[2]; - var refData = Graphs_ROM.rom_worstcase.displays[0]; - var nEntries = testData.data.length; - - if( testData.data[nEntries-1][1] > refData.data[nEntries-1][1] ) { - document.getElementById("rom_basop_tl_l").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] > 0.97 * refData.data[nEntries-1][1] ) { - document.getElementById("rom_basop_tl_c").style.color="#FFFF00"; - } else { - document.getElementById("rom_basop_tl_r").style.color="#00FF00"; - } - - if(nEntries > 1) { - if( testData.data[nEntries-1][1] > 1.01 * testData.data[nEntries-2][1] ) { - document.getElementById("rom_basop_trend").innerHTML="↑"; - document.getElementById("rom_basop_trend").style.color="#FF0000"; - } else if( testData.data[nEntries-1][1] < 0.99 * testData.data[nEntries-2][1] ) { - document.getElementById("rom_basop_trend").innerHTML="↓"; - document.getElementById("rom_basop_trend").style.color="#00FF00"; - } else { - document.getElementById("rom_basop_trend").innerHTML="→"; - document.getElementById("rom_basop_trend").style.color="#FFFFFF"; - } - } - */ } WMOPS(); WMOPS_perOP(); - RAM(); ROM(); diff --git a/ci/complexity_measurements/split_by_levels.py b/ci/complexity_measurements/split_by_levels.py new file mode 100755 index 0000000000000000000000000000000000000000..3b4320abefa46ee309f080193a088553b3a990bf --- /dev/null +++ b/ci/complexity_measurements/split_by_levels.py @@ -0,0 +1,83 @@ +#! /usr/bin/env python3 + +# (C) 2022-2025 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 pandas as pd +import numpy as np +import argparse +import pathlib + +LEVELS_2_MAX_BR = { + "_level_1": (0, 80), + "_level_2": (96, 192), + "_level_3": (256, 512), +} + + +def main(csv_files: list): + for csv_file in csv_files: + df = pd.read_csv(csv_file, delimiter=";") + + mask_vbr = df["conf"].str.contains("RS") + df_vbr = df[mask_vbr] + filename_vbr = str(csv_file.with_suffix("")) + "_rate_sw" + csv_file.suffix + df_vbr.to_csv( + filename_vbr, + index=False, + sep=";", + ) + + df_cbr = df[np.logical_not(mask_vbr)] + columns = df_cbr.columns + df_cbr["bitrate"] = df_cbr["conf"].str.extract(r"@(.*) kbps").astype("float") + + for lvl_suffix, (min_br, max_br) in LEVELS_2_MAX_BR.items(): + mask_lvl = np.logical_and( + df_cbr["bitrate"] >= min_br, df_cbr["bitrate"] <= max_br + ) + df_lvl = df_cbr[mask_lvl] + filename_lvl = str(csv_file.with_suffix("")) + lvl_suffix + csv_file.suffix + df_lvl[columns].to_csv( + filename_lvl, + index=False, + sep=";", + ) + + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument( + "csv_files", + nargs="+", + help="CSV files to split by complexity levels.", + type=pathlib.Path, + ) + + args = parser.parse_args() + main(args.csv_files) diff --git a/ci/complexity_measurements/style.css b/ci/complexity_measurements/style.css index 5450bf1e8656b174862459d3306c09e9080d1f08..4e4d0fa9da5a92371f558735c45f50f9748b3e4d 100755 --- a/ci/complexity_measurements/style.css +++ b/ci/complexity_measurements/style.css @@ -49,7 +49,22 @@ hr { background-color: #FF8000; border-radius: 20px; } -#wmops-graph { +#wmops-graph-level_1 { + height:500px; + width:1600px; + float:left; +} +#wmops-graph-level_2 { + height:500px; + width:1600px; + float:left; +} +#wmops-graph-level_3 { + height:500px; + width:1600px; + float:left; +} +#wmops-graph-rate_sw { height:500px; width:1600px; float:left; @@ -89,7 +104,22 @@ hr { width:1600px; float:left; } -#ram-graph { +#ram-graph-level_1 { + height:500px; + width:1600px; + float:left; +} +#ram-graph-level_2 { + height:500px; + width:1600px; + float:left; +} +#ram-graph-level_3 { + height:500px; + width:1600px; + float:left; +} +#ram-graph-rate_sw { height:500px; width:1600px; float:left;