how would you do that ?
Let's say you've got the following 16x16 tilemap.
First load in the ( uncompressed ) tile-sheet into memory.
Each tile consists of 16x16 pixels, 4-bytes per pixel ( RGBA ), so 1 tile equals 1024 bytes.
Now, when you want to for example split the map into 8x8 chunks, you end up with 4 textures of 128x128. Each texture is ( 8x8x1024 ) 65536 bytes. In order to generate the texture data you iterate through the texture-array and calculate which pixel coordinate corresponds with the current iteration. From that pixel coordinate you can determine the tile-index, and from the tile-index ( + the pixel coordinate as offset ) the memory address of the pixel you need to copy.