⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qccwavtarp3dencode.3

📁 spiht for linux this is used to decod and encode vedio i wich all enjoy
💻 3
字号:
.TH QCCWAVTARP3DENCODE 1 "QCCPACK" "".SH NAMEQccWAVTarp3DEncode, QccWAVTarp3DDecode \-encode/decode an image cube using the 3D tarp algorithm.SH SYNOPSIS.B #include "libQccPack.h".sp.BI "int QccWAVTarp3DEncode(const QccIMGImageCube *" image ", const QccIMGImageCube *" mask ", QccBitBuffer *" buffer ", int " transform_type ", int " temporal_num_levels ", int " spatial_num_levels ", double " alpha ", const QccWAVWavelet *" wavelet ", int " target_bit_cnt );.sp.BI "int QccWAVTarp3DDecodeHeader(QccBitBuffer *" buffer ", int *" transform_type ", int *" temporal_num_levels ", int *" spatial_num_levels ", int *" num_frames ", int *" num_rows ", int *" num_cols ", double *" image_mean ", int *" max_coefficient_bits ", double *" alpha );.sp.BI "int QccWAVTarp3DDecode(QccBitBuffer *" buffer ", QccIMGImageCube *" image ", const QccIMGImageCube *" mask ", int " transform_type ", int " temporal_num_levels ", int " spatial_num_levels ", double " alpha ", const QccWAVWavelet *" wavelet ", double " image_mean ", int " max_coefficient_bits ", int " target_bit_bit );.SH DESCRIPTION.SS Encoding.LP.B QccWAVTarp3DEncode()encodes an image cube,.IR image ,using a 3D generalization of the tarp algorithm.The original tarp algorithm was developed for 2D images bySimard.IR "et al" .;it was latter extended to 3D by Wang.IR "et al" .In essence, the 3D tarp algorithm involves a 3D DWT followed by a progressive "bitplane" coding of the wavelet coefficients using aParzen-window technique to estimate probability of significance andnonadaptive arithmetic coding to code significance-map andrefinement information. See "ALGORITHM" below for more detail..LP.I imageis the image cube to be coded and.I bufferis the output bitstream..I buffermust be of.B QCCBITBUFFER_OUTPUTtype and opened via a prior call to.BR QccBitBufferStart (3)..LP.BR QccWAVTarp3DEncode ()supports the use of both wavelet-packet and dyadic wavelet-transformdecompositions.If.IR transform_typeis.BR QCCWAVSUBBANDPYRAMID3D_DYADIC ,a dyadic DWT is used; if.IR transform_typeis.BR QCCWAVSUBBANDPYRAMID3D_PACKET ,a wavelet-packet DWT is used..IR temporal_num_levels and.IR spatial_num_levelsgive the number of levels of wavelet decomposition to performfor both transform types; for a dyadic transform,.IR temporal_num_levels should equal.IR spatial_num_levels ..I waveletis the wavelet to use for decomposition..LPThe 3D tarp algorithm performance is determined primarily throughthe parameter.IR alpha ,a value that gives the learning rate of the density-estimationprocess implemented by the tarp filter.Wang.IR "et al" .used a value of.I alpha= 0.3..LPThe bitstream output from the 3D tarp encoder is embedded, meaning thatany prefix of the bitstream can be decoded to give a valid representation of the image.  The 3D tarp encoder essentially producesoutput bits until the number of bits output reaches.IR target_bit_cnt ,the desired (target) total length of the output bitstream in bits,and then it stops.Note that this is the bitstream length in bits, not the rate of the bitstream(which would be expressed in bits per voxel)..LP.BR QccWAVTarp3DEncode()optionally supports the use of a shape-adaptive DWT (SA-DWT) rather thanthe usual DWT. That is, .BR QccWAVTarp3DEncode()can call.BR QccWAVSubbandPyramid3DShapeAdaptiveDWT (3)as the wavelet transform rather than the usual.BR QccWAVSubbandPyramid3DDWT (3).The use of a SA-DWT is indicated by a non-NULL.IR mask ;if .I maskis NULL, then the usual DWT is used.In the case of a SA-DWT,.I mask gives the transparency mask which indicates which voxels of the imageare non-transparent and thus have data that is to be transformed.Refer to .BR QccWAVSubbandPyramid3DShapeAdaptiveDWT (3)for more details on the calculation of this SA-DWT.See "ALGORITHM" below for details on how the 3D tarpalgorithm handles shape-adaptive coding..SS Decoding.LP.B QccWAVTarp3DDecodeHeader()decodes the header information in a bitstream previously produced by.BR QccWAVTarp3DEncode() .The input bitstream is.I bufferwhich must be of.B QCCBITBUFFER_INPUTtype and opened via a prior call to.BR QccBitBufferStart (3)..LPThe header information is returned in.I transform_type(either.BR QCCWAVSUBBANDPYRAMID3D_DYADIC or.BR QCCWAVSUBBANDPYRAMID3D_PACKET to indicate a dyadic or wavelet-packet transform decomposition, respectively),.I temporal_num_levels(number of levels of wavelet decomposition in the temporal direction),.I spatial_num_levels(number of levels of wavelet decomposition in the spatial directions),.I num_frames(size of the image cube in the temporal direction),.I num_rows(vertical size of image cube),.I num_cols(horizontal size of image cube),.I image_mean(the mean value of the original image cube),.I max_coefficient_bits(indicates the precision, in number of bits, of the wavelet coefficientwith the largest magnitude),and.I alpha(the value of the learning rate)..LP.B QccWAVTarp3DDecode()decodes the bitstream.IR buffer ,producing the reconstructed image cube,.IR image .The bitstream must already have had its header read by a prior callto.B QccWAVTarp3DDecodeHeader()(i.e., you call.B QccWAVTarp3DDecodeHeader() first and then.BR QccWAVTarp3DDecode() ).If.I target_bit_cntis.BR QCCENT_ANYNUMBITS ,then decoding stops when the end of the input bitstream is reached;otherwise, decoding stops when.I target_num_bitsfrom the input bitstream have been decoded..LPIf a SA-DWT was used in 3D tarp encoding, then the original transparencymask should be passed to .BR QccWAVTarp3DDecode()as.IR mask .That is,.I maskshould be the same transparency mask (untransformed) that was passed to.BR QccWAVTarp3DEncode() .Note that.BR QccWAVTarp3DDecode()will transform this.I maskvia a Lazy wavelet transform, and then pass the transformed maskto .BR QccWAVSubbandPyramid3DInverseShapeAdaptiveDWT (3).If the usual, full-volume DWT was used in encoding, then.I maskshould be a NULL pointer..SH "ALGORITHM"There are several variants of the tarp algorithm.The progressive (but not embedded) coder originally described by Simard.IR "et al" .for 2D imagesapplied a scalar quantizer to the coefficients of a 2D DWT andthen used the tarp-filter procedure described below toindependentlycode each of the bitplanes of the coefficients.On the other hand,the QccPack implementation of 2D tarp coding is an embeddedcoder based on the significance-refinement approachto bitplane coding common to wavelet-based embedded coders.(see.BR QccWAVTarpEncode (3))..LPThe 3D tarp algorithm implemented here isthat described by Wang.IR "et al" .This 3D tarp coderfollows the same significance-refinement approach to embedded coding asemployed in the 2D QccPack tarp coder.BR QccWAVTarpEncode (3)andinvolves a 3D DWT followed by a progressive encodingof the bitplanes of wavelet coefficients.As is common with bitplane-based embedded coders,the encoder of the tarp algorithmcodes significance information in a significance passfollowed by refinement-bit information in a refinement pass.The significance pass determines the significance of a wavelet coefficientagainst a given threshold, while the refinement pass codes the bits ofthose coefficients previously determined to be significant..LPThe unique aspect of the 3D tarp algorithm is in the significancepass. The 3D tarp algorithm employs a density-estimation processbased upon Parzen windows to determine the probability that eachcurrently insignificant coefficient becomes significant in the currentsignificance pass. This probability is passed to a two-symbol,nonadaptive arithmeticcoder to code the actual significance value of the current coefficient.The.I alphaparameter to the algorithm determines the shape of the Parzen windowsemployed, effectively determining the learning rate of thedensity-estimation process.The actual density estimation isimplemented as an efficient set of filtering operations that createa causal 3D filter..LPThe refinement pass codes refinement bits using the samenonadaptive arithmetic coder used in the significance pass except thatthe refinement bits are assumed equally likely, and thus a uniformdensity is used by the nonadaptive arithmetic coder..LPAs proposed by Fowler,to handle shape-adaptive coding (not originally considered by Simard.IR "et al" .for the initial 2D algorithm, or by Wang.IR "et al" .for the subsequent 3D algorithm),the implementation here merely skips over the transparent regions, maintaining the currentprobability estimate unchanged..SH "SEE ALSO".BR tarpencode3d (1),.BR tarpdecode3d (1),.BR QccBitBuffer (3),.BR QccWAVSubbandPyramid3D (3),.BR QccWAVSubbandPyramid3DDWT (3),.BR QccWAVSubbandPyramid3DShapeAdaptiveDWT (3),.BR QccWAVTarpEncode (3),.BR QccPackWAV (3),.BR QccPackIMG (3),.BR QccPack (3)Y. Wang, J. T. Rucker, and J. E. Fowler, "Embedded Wavelet-Based Compressionof Hyperspectral Imagery Using Tarp Coding," in.IR "Proceedings of the International Geoscience and Remote Sensing Symposium" ,Toulouse, France, July 2003, vol. 3, pp. 2027-2029..LPP. Simard, D. Steinkraus, and H. Malvar, "On-Line Adaptation in Image Codingwith a 2-D Tarp Filter", in.IR "Proceedings of the IEEE Data Compression Conference" ,J. A. Storer and M. Cohn, Eds.,  Snowbird, UT, April 2002, pp. 422-431..LPJ. E. Fowler, "Shape-Adaptive Tarp Coding," in.IR "Proceedings of the International Conference on Image Processing" ,Barcelona, Spain, September 2003, vol. 1, pp. 621-624..SH AUTHORCopyright (C) 1997-2009  James E. Fowler.\"  The programs herein are free software; you can redistribute them and/or.\"  modify them under the terms of the GNU General Public License.\"  as published by the Free Software Foundation; either version 2.\"  of the License, or (at your option) any later version..\"  .\"  These programs are distributed in the hope that they will be useful,.\"  but WITHOUT ANY WARRANTY; without even the implied warranty of.\"  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the.\"  GNU General Public License for more details..\"  .\"  You should have received a copy of the GNU General Public License.\"  along with these programs; if not, write to the Free Software.\"  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -