diff --git a/Documentation/converter_and_quantizer.xhtml b/Documentation/converter_and_quantizer.xhtml
new file mode 100644
index 0000000..ac0e666
--- /dev/null
+++ b/Documentation/converter_and_quantizer.xhtml
@@ -0,0 +1,147 @@
+<!-- Copyright (c) 2020 ARM Limited. -->
+<!--                                 -->
+<!-- SPDX-License-Identifier: MIT    -->
+<!--                                 -->
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="robots" content="NOINDEX, NOFOLLOW" />
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>ArmNN: The ArmNN Converter and Quantizer</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+  $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+  MathJax.Hub.Config({
+    extensions: ["tex2jax.js"],
+    jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+<link href="stylesheet.css" rel="stylesheet" type="text/css"/>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <img alt="ArmNN" src="Arm_NN_horizontal_blue.png" style="max-width: 10rem; margin-top: .5rem; margin-left 10px"/>
+  <td style="padding-left: 0.5em;">
+   <div id="projectname">
+   &#160;<span id="projectnumber">20.02</span>
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+  <div id="nav-tree">
+    <div id="nav-tree-contents">
+      <div id="nav-sync" class="sync"></div>
+    </div>
+  </div>
+  <div id="splitbar" style="-moz-user-select:none;" 
+       class="ui-resizable-handle">
+  </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('converter_and_quantizer.xhtml','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+  <div class="headertitle">
+<div class="title">The ArmNN Converter and Quantizer </div>  </div>
+</div><!--header-->
+<div class="contents">
+<div class="toc"><h3>Table of Contents</h3>
+<ul><li class="level1"><a href="#S10_converter">The ArmNN Converter</a></li>
+<li class="level1"><a href="#S11_quantizer">The ArmNN Quantizer</a></li>
+</ul>
+</div>
+<div class="textblock"><h1><a class="anchor" id="S10_converter"></a>
+The ArmNN Converter</h1>
+<p>The <code>ArmnnConverter</code> is a program for converting neural networks from other formats to Arm NN format. Currently the program supports models in Caffe, Onnx, Tensorflow Protocol Buffers and Tensorflow Lite FlatBuffers formats. Run the program with no arguments to see command-line help.</p>
+<p>For more information about the layers that are supported, see <a href="parsers.xhtml">parsers</a>. <br />
+<br />
+<br />
+<br />
+</p>
+<h1><a class="anchor" id="S11_quantizer"></a>
+The ArmNN Quantizer</h1>
+<p>The <code>ArmnnQuantizer</code> is a program for loading a 32-bit float network into ArmNN and converting it into a quantized asymmetric 8-bit or quantized symmetric 16-bit network. It supports static quantization by default, dynamic quantization is enabled if CSV file of raw input tensors is provided. Run the program with no arguments to see command-line help.</p>
+<table class="doxtable">
+<tr>
+<th>Cmd:</th><th></th><th></th></tr>
+<tr>
+<td>-h </td><td>&ndash;help </td><td>Display help messages </td></tr>
+<tr>
+<td>-f </td><td>&ndash;infile </td><td>Input file containing float 32 ArmNN Input <a class="el" href="classarmnn_1_1_graph.xhtml">Graph</a> </td></tr>
+<tr>
+<td>-s </td><td>&ndash;scheme </td><td>Quantization scheme, "QAsymm8" or "QSymm16". Default value: QAsymm8 </td></tr>
+<tr>
+<td>-c </td><td>&ndash;csvfile </td><td>CSV file containing paths for raw input tensors for dynamic quantization. If unset, static quantization is used </td></tr>
+<tr>
+<td>-p </td><td>&ndash;preserve-data-type </td><td>Preserve the input and output data types. If unset, input and output data types are not preserved </td></tr>
+<tr>
+<td>-d </td><td>&ndash;outdir </td><td>Directory that output file will be written to </td></tr>
+<tr>
+<td>-o </td><td>&ndash;outfile </td><td>ArmNN output file name </td></tr>
+</table>
+<p><br />
+ </p><div class="fragment"><div class="line">./ArmnnQuantizer -f /path/to/armnn/input/graph/ -s &quot;QSymm16&quot; -c /path/to/csv/file -p 1 -d /path/to/output -o outputFileName</div></div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+  <ul>
+    <li class="footer">Generated on Fri Mar 13 2020 16:09:16 for ArmNN by
+    <a href="http://www.doxygen.org/index.html">
+    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+  </ul>
+</div>
+</body>
+</html>
