Benefit of applying tf.image.per_image_standardization() over batch_norm layer in Tensorflow?
They both do similar things, and one could indeed use batch norm to normalize input images.
However, I would not use batch norm for this purpose:

It is clearer to use tf.image.per_image_standardization for image normalization than batch norm.
Batch normalization is a broader concept than a per-channel normalization. Libraries like tensorflow let you normalize along any axis you want.
Batch normalization is usually paired with streaming statistics of the means and variances used for normalization, that are meant to be used for testing and deployement. You don't need those statistics when you normalize your input image per sample.
What is the benefit in applying tf.image.per_image_standardization() before the first layer of the deep neural network over adding the Batch_Norm layer as the first layer? 
In order to normalize the [0.0, 255.0] float value image pixels before feeding into the network, which method would be suitable?

tf.image.per_image_standardization()
Batch_Norm - layer