  We report an experimental demonstration of Schumacher's quantum noiseless
coding theorem. Our experiment employs a sequence of single photons each of
which represents three qubits. We initially prepare each photon in one of a set
of 8 non-orthogonal codeword states corresponding to the value of a block of
three binary letters. We use quantum coding to compress this quantum data into
a two-qubit quantum channel and then uncompress the two-qubit channel to
restore the original data with a fidelity approaching the theoretical limit.
