1. A method for error correction in a mobile device, comprising: receiving coded data in a physical layer; obtaining error characteristics for the coded data; obtaining a bitstream in an application layer, the bitstream comprising one or more bits from the coded data; determining if the bitstream has one or more corrupt bits; determining one or more hypotheses representing an error pattern for the bitstream; and assigning a probability to each of the hypotheses in order to correct the corrupt bits, wherein the step of determining one or more hypotheses comprises determining the hypotheses for a group of bits making up a coded symbol, wherein the coded symbol is chosen from the group consisting of a macroblock type, a quantization parameter, an intra prediction direction, a motion vector, a DC coefficient and an AC coefficient, and wherein the steps of receiving, obtaining, determining and assigning are performed in the mobile device.