MLCE-159 Add QAsymmS8 to ArmnnQuantizer

 * Allow per layer quantization from Fp32 to Int8 (QAsymmS8) like TfLite

Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
Change-Id: I5bbf770aa29d81af3568c15b47d2b2c18e55bb28
diff --git a/src/armnnQuantizer/ArmNNQuantizerMain.cpp b/src/armnnQuantizer/ArmNNQuantizerMain.cpp
index 30167e7..219363e 100644
--- a/src/armnnQuantizer/ArmNNQuantizerMain.cpp
+++ b/src/armnnQuantizer/ArmNNQuantizerMain.cpp
@@ -36,9 +36,19 @@
     inputFileStream.close();
 
     armnn::QuantizerOptions quantizerOptions;
-    quantizerOptions.m_ActivationFormat = cmdline.GetQuantizationScheme() == "QSymm16"
-                                          ? armnn::DataType::QSymmS16
-                                          : armnn::DataType::QAsymmU8;
+
+    if (cmdline.GetQuantizationScheme() == "QAsymmS8")
+    {
+        quantizerOptions.m_ActivationFormat = armnn::DataType::QAsymmS8;
+    }
+    else if (cmdline.GetQuantizationScheme() == "QSymmS16")
+    {
+        quantizerOptions.m_ActivationFormat = armnn::DataType::QSymmS16;
+    }
+    else
+    {
+        quantizerOptions.m_ActivationFormat = armnn::DataType::QAsymmU8;
+    }
 
     quantizerOptions.m_PreserveType = cmdline.HasPreservedDataType();
 
diff --git a/src/armnnQuantizer/CommandLineProcessor.cpp b/src/armnnQuantizer/CommandLineProcessor.cpp
index d2163c0..0cccb66 100644
--- a/src/armnnQuantizer/CommandLineProcessor.cpp
+++ b/src/armnnQuantizer/CommandLineProcessor.cpp
@@ -67,8 +67,10 @@
         return false;
     }
 
-    std::vector<std::string> supportedSchemes = {
-        "QAsymm8",
+    std::vector<std::string> supportedSchemes =
+    {
+        "QAsymmS8",
+        "QAsymmU8",
         "QSymm16"
     };
 
@@ -93,8 +95,10 @@
                 ("help,h", "Display help messages")
                 ("infile,f", po::value<std::string>(&m_InputFileName)->required(),
                              "Input file containing float 32 ArmNN Input Graph")
-                ("scheme,s", po::value<std::string>(&m_QuantizationScheme)->default_value("QAsymm8"),
-                              "Quantization scheme, \"QAsymm8\" or \"QSymm16\", default value QAsymm8")
+                ("scheme,s", po::value<std::string>(&m_QuantizationScheme)->default_value("QAsymmU8"),
+                              "Quantization scheme,"
+                              " \"QAsymmU8\" or \"QAsymmS8\" or \"QSymm16\","
+                              " default value QAsymmU8")
                 ("csvfile,c", po::value<std::string>(&m_CsvFileName)->default_value(""),
                              "CSV file containing paths for RAW input tensors")
                 ("preserve-data-type,p", po::bool_switch(&m_PreserveDataType)->default_value(false),