diff --git a/src/core/CL/cl_kernels/hog.cl b/src/core/CL/cl_kernels/hog.cl
index 5d3a607..3d37fbc 100644
--- a/src/core/CL/cl_kernels/hog.cl
+++ b/src/core/CL/cl_kernels/hog.cl
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 ARM Limited.
+ * Copyright (c) 2017, 2018 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -124,7 +124,7 @@
         for(; xc < CELL_WIDTH; xc++)
         {
             const float mag_value   = *((__global short *)mag_row_ptr + xc);
-            const float phase_value = *(mag_row_ptr + xc) * (float)PHASE_SCALE + 0.5f;
+            const float phase_value = *(phase_row_ptr + xc) * (float)PHASE_SCALE + 0.5f;
             const float w1          = phase_value - floor(phase_value);
 
             // The quantised phase is the histogram index [0, NUM_BINS - 1]
diff --git a/src/core/HOGInfo.cpp b/src/core/HOGInfo.cpp
index 1b6175e..73f4c42 100644
--- a/src/core/HOGInfo.cpp
+++ b/src/core/HOGInfo.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016, 2017 ARM Limited.
+ * Copyright (c) 2016, 2018 ARM Limited.
  *
  * SPDX-License-Identifier: MIT
  *
@@ -66,10 +66,20 @@
 
 Size2D HOGInfo::num_cells_per_block() const
 {
+    ARM_COMPUTE_ERROR_ON(_cell_size.width == 0 || _cell_size.height == 0);
+
     return Size2D(_block_size.width / _cell_size.width,
                   _block_size.height / _cell_size.height);
 }
 
+Size2D HOGInfo::num_cells_per_block_stride() const
+{
+    ARM_COMPUTE_ERROR_ON(_cell_size.width == 0 || _cell_size.height == 0);
+
+    return Size2D(_block_stride.width / _cell_size.width,
+                  _block_stride.height / _cell_size.height);
+}
+
 Size2D HOGInfo::num_blocks_per_image(const Size2D &image_size) const
 {
     return Size2D(((image_size.width - _block_size.width) / _block_stride.width) + 1,
