17         std::vector<unsigned int> interleave_map;
 
   20         std::vector<unsigned char> data_interleaved(data.size());
 
   21         for(
int x = 0; x < data.size(); x += interleave_map.size())
 
   22             for(
int y = 0; y < interleave_map.size(); y++)
 
   23                 data_interleaved[x + interleave_map[y]] = data[x + y];
 
   24         return data_interleaved;
 
   30         std::vector<unsigned int> deinterleave_map;
 
   33         std::vector<unsigned char>data_deinterleaved(data.size());
 
   34         for(
int s = 0; s < data.size(); s += deinterleave_map.size())
 
   35             for(
int t = 0; t < deinterleave_map.size(); t++)
 
   36                 data_deinterleaved[s + deinterleave_map[t]] = data[s + t];
 
   37         return data_deinterleaved;