1. A computer system for encoding a data file, comprising: at least one processor coupled with a non-transitory processor-readable medium storing processor executable code for causing the at least one processor to: analyze a data file to identify a first portion of the data file having a first symbol probability and a second portion of the data file having a second symbol probability; produce a first coding tree corresponding to the first symbol probability and a second coding tree corresponding to the second symbol probability; encode the first portion using the first coding tree; and encode the second portion using the second coding tree; and transmit the encoded data file.