Hey,
So as we're talking about GSoC I also realized it's time to come up with an idea for a senior project. Here's the one I'm thinking about proposing. I'd love it if anyone has any ideas or suggestions about how to improve it.
SVG Crunch
SVG is a XML vector graphics format standardized by the W3C for use in the Web. It is currently supported by most major browsers and is increasingly being seen on websites. As it continues to grow in popularity economic pressures will start to come into play. Even though bandwidth has become cheaper, it is still not free. This project is to create a utility to remove excess information in an SVG file to reduce its overall size.
Phase One -- Basic XML compression -- There are some basic things that can be done to an XML file to make it smaller. Things like removing spaces and carriage returns. Also renaming name spaces from things like "mathml" to "m". The optimizations are simple but important. At the end of this phase the file should be no different to an XML parser.
Phase Two -- SVG Compression -- SVG provides several ways that file size can be reduced as part of the format. These some of these include: using a "pointer tag" (use) to refer to objects that are identical; allowing style to inherit down the XML hierarchy; groups to take style for a set of objects; and many more. These optimizations should be applied to the document in order to reduce the size of the file. At the end of this phase the files should render no differently on an SVG renderer.
Phase Three -- Display specific compression -- As a vectored format SVG provides elements that can be rendered at any resolution, but rarely does a graphic on the web need to be zoomed in at 1600%. This phase of the compression should focus on removing the precision of numbers and in some cases removing points that are unnecessary based on a target resolution provided by the user. At the end of this phase the files should look no different to a human at the target resolution.
This project will be developed and published as an open source project. It can be done in any language that has an XML library available for it.
Thanks, Ted
On Tue, 2007-02-20 at 19:37 -0800, Ted Gould wrote:
Hey,
So as we're talking about GSoC I also realized it's time to come up with an idea for a senior project. Here's the one I'm thinking about proposing. I'd love it if anyone has any ideas or suggestions about how to improve it.
SVG Crunch
SVG is a XML vector graphics format standardized by the W3C for use in the Web. It is currently supported by most major browsers and is increasingly being seen on websites. As it continues to grow in popularity economic pressures will start to come into play. Even though bandwidth has become cheaper, it is still not free. This project is to create a utility to remove excess information in an SVG file to reduce its overall size.
Phase One -- Basic XML compression -- There are some basic things that can be done to an XML file to make it smaller. Things like removing spaces and carriage returns. Also renaming name spaces from things like "mathml" to "m". The optimizations are simple but important. At the end of this phase the file should be no different to an XML parser.
Phase Two -- SVG Compression -- SVG provides several ways that file size can be reduced as part of the format. These some of these include: using a "pointer tag" (use) to refer to objects that are identical; allowing style to inherit down the XML hierarchy; groups to take style for a set of objects; and many more. These optimizations should be applied to the document in order to reduce the size of the file. At the end of this phase the files should render no differently on an SVG renderer.
Phase Three -- Display specific compression -- As a vectored format SVG provides elements that can be rendered at any resolution, but rarely does a graphic on the web need to be zoomed in at 1600%. This phase of the compression should focus on removing the precision of numbers and in some cases removing points that are unnecessary based on a target resolution provided by the user. At the end of this phase the files should look no different to a human at the target resolution.
This project will be developed and published as an open source project. It can be done in any language that has an XML library available for it.
Ted this is a great and killer idea. I think the key piece that should be necessary is interfacing this app with Inkscape through an extension so we can use it. I'm serious. Also, that will help shape the decision on language to use and they can benefit from the knowledge of our communities...
Jon
Thanks, Ted
Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=D... _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
participants (2)
-
Jon Phillips
-
Ted Gould