1. A computer program product comprising a machine readable medium having instructions encoded therein for: retrieving input data to be packed from a memory and storing it in an offset position in memory locations which represent a local array having a plurality of bytes; setting a source pointer to point to address “local array+1” in said memory; setting a target pointer to point to a position in said memory said pointer representing a local array which holds operation results; computing a first byte of a present block of the output as: (((BLOCK & 0x0F00F0F0F0F0F0F0F)<<4)|((BLOCK & 0x0F0F0F0F0F0F0F0F)<<4)) & 0xFF0000000000000), where “BLOCK” represents said block of said input data; generating the three remaining bytes of the present block by shifting and then ORing the byte to the 4-byte output block incrementing said pointers and repeating the previous two steps four times, once for each said block of said input data; setting the last nibble to 0xC; and storing said array in said memory.