1. A method comprising: parsing a file to identify boundaries for a plurality of first level objects included in the file; determining whether each of the plurality of first level objects is compound or primitive, wherein a first compound object included in the file encapsulates a plurality of second level objects; recursively parsing the first compound object to identify boundaries for a plurality of second level objects included in the first compound object; determining whether each of the plurality of second level objects is compound or primitive; identifying a plurality of lowest level primitive objects, wherein the plurality of lowest level primitive objects are basic representations of discrete data structures; decompressing the plurality of lowest level primitive objects; recompressing the plurality of lowest level primitive objects with a plurality of object specific optimization algorithms.