COMPMID-3221: Add DeconvolutionLayerDescriptor

A new struct for DeconvolutionLayerNode is added for better
extendability.

Change-Id: I935277e8073a8295de7b0059b946cb637085f1ff
Signed-off-by: Sang-Hoon Park <sang-hoon.park@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2883
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/arm_compute/graph/LayerDescriptors.h b/arm_compute/graph/LayerDescriptors.h
index af69682..0cf2031 100644
--- a/arm_compute/graph/LayerDescriptors.h
+++ b/arm_compute/graph/LayerDescriptors.h
@@ -86,6 +86,22 @@
     RoundingPolicy   r_policy;       /**< Rounding policy */
 };
 
+/** Deconvolution layer descriptor */
+struct DeconvolutionLayerDescriptor
+{
+    /** Constructor
+     *
+     * @param[in] info           Dedonvolution layer attributes
+     * @param[in] out_quant_info (Optional) Output quantization infomation
+     */
+    DeconvolutionLayerDescriptor(PadStrideInfo info, QuantizationInfo out_quant_info = QuantizationInfo())
+        : info(info), out_quant_info(out_quant_info)
+    {
+    }
+
+    PadStrideInfo    info;           /**< Padding and stride information */
+    QuantizationInfo out_quant_info; /**< Output quantization information */
+};
 } // namespace descriptor
 } // namespace graph
 } // namespace arm_compute
diff --git a/arm_compute/graph/nodes/DeconvolutionLayerNode.h b/arm_compute/graph/nodes/DeconvolutionLayerNode.h
index 5633898..a5efdfb 100644
--- a/arm_compute/graph/nodes/DeconvolutionLayerNode.h
+++ b/arm_compute/graph/nodes/DeconvolutionLayerNode.h
@@ -25,6 +25,7 @@
 #define ARM_COMPUTE_GRAPH_DECONVOLUTION_LAYER_NODE_H
 
 #include "arm_compute/graph/INode.h"
+#include "arm_compute/graph/LayerDescriptors.h"
 
 namespace arm_compute
 {
@@ -36,10 +37,9 @@
 public:
     /** Constructor
      *
-     * @param[in] info           DeConvolution layer attributes
-     * @param[in] out_quant_info (Optional) Output quantization infomation
+     * @param[in] descriptor Contains information used by this layer described in @ref descriptors::DeconvolutionLayerDescriptor
      */
-    DeconvolutionLayerNode(PadStrideInfo info, QuantizationInfo out_quant_info = QuantizationInfo());
+    DeconvolutionLayerNode(const descriptors::DeconvolutionLayerDescriptor &descriptor);
     /** Deconvolution metadata accessor
      *
      * @return Deconvolution information
@@ -64,8 +64,7 @@
     void accept(INodeVisitor &v) override;
 
 private:
-    PadStrideInfo    _info;
-    QuantizationInfo _out_quant_info;
+    descriptors::DeconvolutionLayerDescriptor descriptor;
 };
 } // namespace graph
 } // namespace arm_compute