Convolutional Dictionary Learning