1. A computer-implemented method for generating a depth map for a 2D image, the method comprising: receiving the 2D image; analyzing content of the received 2D image; determining a depth map based on a result of the content analysis; refining the determined depth map using an edge-preserving and noise reducing smoothing filter; and providing the refined depth map.