It is complicated . Google have a lot of patent to do that . You can search it on Google.com to find the detailedly infor .