A method for enhanced image encoding, the method comprising: dividing, by an encoder executing on a first computing machine, a two-dimensional image into at least two overlapping two-dimensional image sections (310, 311, 312, 313, 314) according to a grid size and an overlap margin; computing, by the encoder, a lightweight CRC index taken of each overlapping image section (310, 311, 312, 313, 314); comparing, by the encoder, the lightweight CRC index taken of each overlapping image section (310, 311, 312, 313, 314) to lightweight CRC indexes associated with stored two-dimensional image blocks of a second two-dimensional image; identifying, by the encoder responsive to the comparison of lightweight CRC indexes, a first match between at least one stored image block having a first lightweight CRC index substantially similar to a first lightweight CRC index computed for the at least one overlapping image section (310, 311, 312, 313, 314); computing, by the encoder, in response to the first match, a first heavyweight CRC index taken of the at least one overlapping section (310, 311, 312, 313, 314); comparing, by the encoder, the first heavyweight CRC index with a second heavyweight CRC index associated with the at least one stored image block; confirming, by the encoder responsive to the comparison of heavyweight CRC indexes, the first match; assigning, by the encoder to the at least one overlapping image section (310, 311, 312, 313, 314), in response to the confirming, a pointer to a storage location of the at least one stored image block; and transmitting the pointer and overlapping image sections not assigned to the pointer to a second computing machine; wherein the lightweight CRC indexes are indexes that are faster to compute than the heavyweight CRC indexes but may result in a higher rate of false positive matches between stored image blocks and overlapping image sections (310, 311, 312, 313, 314) than the heavyweight CRC indexes. dividing, by an encoder executing on a first computing machine, a two-dimensional image into at least two overlapping two-dimensional image sections (310, 311, 312, 313, 314) according to a grid size and an overlap margin; computing, by the encoder, a lightweight CRC index taken of each overlapping image section (310, 311, 312, 313, 314); comparing, by the encoder, the lightweight CRC index taken of each overlapping image section (310, 311, 312, 313, 314) to lightweight CRC indexes associated with stored two-dimensional image blocks of a second two-dimensional image; identifying, by the encoder responsive to the comparison of lightweight CRC indexes, a first match between at least one stored image block having a first lightweight CRC index substantially similar to a first lightweight CRC index computed for the at least one overlapping image section (310, 311, 312, 313, 314); computing, by the encoder, in response to the first match, a first heavyweight CRC index taken of the at least one overlapping section (310, 311, 312, 313, 314); comparing, by the encoder, the first heavyweight CRC index with a second heavyweight CRC index associated with the at least one stored image block; confirming, by the encoder responsive to the comparison of heavyweight CRC indexes, the first match; assigning, by the encoder to the at least one overlapping image section (310, 311, 312, 313, 314), in response to the confirming, a pointer to a storage location of the at least one stored image block; and transmitting the pointer and overlapping image sections not assigned to the pointer to a second computing machine; wherein the lightweight CRC indexes are indexes that are faster to compute than the heavyweight CRC indexes but may result in a higher rate of false positive matches between stored image blocks and overlapping image sections (310, 311, 312, 313, 314) than the heavyweight CRC indexes.