# The Data Unpacker (DUP)

The data unpacker is the first component of the cel engine. It reads the preamble of the cel source data to see if the source data is packed. If the cel is unpacked, its data passes directly to the pixel decoder, bypassing the data unpacker completely. If the source data is packed, the data unpacker unpacks it, a process that takes no more time than passing unpacked data along unchanged. As a matter of fact, packed cels usually take less time to process than unpacked cels because there are fewer bytes to pass through the data bus to the unpacker.

The process of unpacking packed source data is mostly a matter of turning packets into pixels and sending them on to the pixel decoder. There is one exception. If the unpacker unpacks a packet of transparent pixels, it notifies the projector that the pixels are transparent so the projector will pass over their position without altering the frame buffer pixels underneath. The pixels are not passed through the pixel decoder and pixel processor, which saves quite a bit of processing time for any cel that contains significant numbers of transparent pixels.