1. A computer-implemented method of histogram of gradients generation for image processing comprising: obtaining image data comprising horizontal and vertical gradient components of individual pixels of an image; associating the horizontal and vertical gradient components of the same pixel with one of a plurality of angular channels depending on the values of the horizontal and vertical gradient components; determining a gradient magnitude and a gradient orientation of individual angular channels after the horizontal and vertical gradient components are assigned to the channels, wherein the gradient orientation of individual angular channels is determined using an arctan operation without first performing an arctan operation on the individual pixels; and generating a histogram of gradients by using the gradient direction and gradient magnitude of the angular channels; performing block-based normalization wherein each block has multiple cells wherein each cell has an initial histogram of gradients formed of the gradient magnitude or gradient orientation or both of the individual channels of the cell, wherein the normalization compares the gradient magnitude or gradient orientation or both of the channels from cell to cell in the block.