A stream of data is encoded by applying a multilevel transform to the
stream of data, each level of the transform producing one or more
transform coefficients for each block of a sequence of blocks in the
stream of data. Encryption is applied to at least a subset of the
transform coefficients produced by a least one level of the multilevel
transform. Furthermore, at least one level of the multilevel transform is
applied to the encrypted transform coefficients. The multilevel transform
and encryption operations generate a result set of transform
coefficients. The result set of transform coefficients may be encrypted,
using a symmetric key encryption, to generate an output data stream that
is then transmitted from a sending device to a receiving device. The
encoding method may be performed in real time, producing the output data
stream at a same rate as the stream of data is presented for encoding.