¿Cómo convertir una imagen PNG en un SVG?
Un png es un estilo de imagen de mapa de bits y un SVG es un diseño gráfico basado en vectores que admite mapas de bits, por lo que no es como si convirtiera la imagen en vectores, sólo una imagen incrustada en un formato basado en vectores. Podrías hacer esto usando http://www.inkscape.org/ que es gratis. Lo incrustaría, sin embargo también tiene un motor similar a Live Trace que intentará convertirlo en rutas si lo deseas (usando potrace). Ver live trace en adobe illustrator (commericial) es un ejemplo:
http://graphicssoft.about.com/od/illustrator/ss/sflivetrace.htm
Supongo que desea escribir un software para hacer esto. Para hacerlo de forma ingenua, sólo tendrías que encontrar líneas y establecer los vectores. Para hacerlo de forma inteligente, intentas encajar formas en el dibujo (ajuste de modelos). Además, debe intentar determinar las regiones en forma de bits (regiones que no puede modelar a través de las sombras o la aplicación de texturas. Yo no recomendaría ir por esta ruta, ya que tomará un poco de tiempo y requiere un poco de gráficos y conocimientos de visión por ordenador. Sin embargo, la salida será mucho y escala mucho mejor que su salida original.