tceencode3d_lossless [-w wavelet] [-b boundary] [-nl num_levels] [-sl spatial_num_levels] [-tl temporal_num_levels] [-a alpha] [-vo] icbfile bitstream
tcedecode3d_lossless [-w wavelet] [-b boundary] [-r rate] bitstream icbfile
tceencode3d_lossless codes an image cube, icbfile, using the lossless, or reversible, 3D-TCE algorithm. The original TCE algorithm was developed for lossy coding of 2D images by Tian and Hemami; it was latter extended to 3D and made lossless via the incorporation of reversible transforms by Zhang et al. See QccWAVtce3DLosslessEncode(3) for more detail.
The transform is the usual discrete wavelet transform (DWT), with the -w option specifying the wavelet, and the -b option specifying the boundary extension.
The 3D-TCE algorithm performance is determined in part through the parameter alpha, a value that gives the learning rate of the density-estimation process implemented by the tarp filter used in one of the coding passes of the TCE algorithm.
The -nl, -sl, and -tl options determine whether a dyadic or wavelet-packet transform is used. If -nl is specified, a dyadic transform is used. In this case, num_levels is the number of decompositions in all three directions. If either -sl or -tl, or both, is specified, a wavelet-packet transform is used. In this case, spatial_num_levels and temporal_num_levels give the number of decompositions spatially and temporally, respectively, of the packet transform. If only one of -sl and -tl is given, then the same number of decompositions is used spatially and temporally. In the case that none of -nl, -sl, and -tl is specified, then a dyadic decomposition with the default value of num_levels is used.
tceencode3d_lossless normally prints to stdout a small amount of information concerning the actual bitrate achieved. If the -vo (value-only) option is given, all printed output is suppressed except for the actual bitrate.
tcedecode3d_lossless performs the corresponding decoding using the lossless 3D-TCE algorithm, decoding the bitstream made by tceencode3d_lossless and producing a reconstructed image cube, icbfile. For sane results, wavelet and boundary should be the same as they were for tceencode3d_lossless. If a decoding rate is specified with the -r option, then tcedecode3d_lossless stops decoding when rate bits per voxel from the input bitstream have been decoded. Otherwise, decoding stops when the end of the input bitstream is reached. In this latter case, a lossless reconstruction of the original encoded image will be produced. Otherwise, a lossy representation that differs from the original image will result.
tceencode3d_lossless and tcedecode3d_lossless call QccWAVtce3DLosslessEncode(3) and QccWAVtce3DLosslessDecode(3) , respectively, to perform lossless 3D-TCE encoding and decoding. Refer to the man pages for these functions for more information on the details of the QccPack implementation of the lossless 3D-TCE algorithm.
J. Zhang, J. E. Fowler, and G. Liu, "Lossy-to-Lossless Compression of Hyperspectral Imagery Using 3D-TCE and an Integer KLT," IEEE Geoscience and Remote Sensing Letters, vol. 5, pp. 814-818, October 2008.
C. Tian and S. S. Hemami, "An Embedded Image Coding System Based on Tarp Filter with Classification," in Proceedings of the International Conference on Acoustics, Speech, and Signal Processing, Montreal, Quebec, Canada, May 2004, vol. 3, pp. 49-52.