There are two approaches to building cars that can drive themselves. The most common approach is to build maps that a car can “read” in order to navigate. With this approach a vehicle can only navigate an area where it has map information. The common term for this is being geo-fenced. For example, General Motors has been testing taxis in San Francisco which work like this.
One of the biggest problems with this approach is that the map data must be current. As an example I have a friend who drove the same route to work every day. One night a water main going under the street had broken and the surface of the road over it collapsed. He hit this hole in the road that wasn’t there a few hours before and destroyed two tires.
The other approach, the approach that Tesla is taking, is to create a car that can learn to drive much like you would do with a person. Besides having a lot of computer power in the car itself, Tesla collects “experience” from all its cars and processes it with a super-computer complex. This data is then used to improve the way that the cars learn.
At this point in time Tesla is way ahead of anyone else in this learning approach. It seems unlikely that any other company can catch up. While any vendor can add more compute power to a vehicle, they will not have the experience database that Tesla has built.
The Electric Viking offers a good video talking about this.