Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

DCFmpacket_Rtmra_float_scalar.cpp

Go to the documentation of this file.
00001 // DCFmpacket_Rtmra_float_scalar.cpp
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2001-2002 Brown Deer Technology, LLC.
00004 //                        All rights reserved.
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 // specialization DCFmpacket< Rtmra<float,scalar> >
00008 
00009 DCFmpacket< Rtmra<float,scalar> >::DCFmpacket( 
00010   const int sizebmax,
00011   const int bplen_sizeb, const int bplen_n,
00012   DCFencode< Rtmra<float,scalar> >& enc
00013   ) : DCFmpacketBase(sizebmax, bplen_sizeb, bplen_n) {
00014 
00015    _enc=enc;
00016 
00017 };
00018 
00019 void DCFmpacket< Rtmra<float,scalar> >::setencode( 
00020   const int sizebmax,
00021   const int bplen_sizeb, const int bplen_n,
00022   DCFencode< Rtmra<float,scalar> >& enc
00023   ) {
00024 
00025    setencode(sizebmax, bplen_sizeb, bplen_n );
00026    _enc=enc;
00027 
00028 };
00029 
00030 DCFmpacket< Rtmra<float,scalar> >& 
00031   DCFmpacket< Rtmra<float,scalar> >::operator()(
00032     Rtmra<float,scalar>& x,
00033     const char mcode
00034     ) {
00035      DCFmpacket< Rtmra<float,scalar> >::encode(x,mcode);
00036      return *this;
00037 };
00038 
00039 void DCFmpacket< Rtmra<float,scalar> >::encode(
00040     Rtmra<float,scalar>& x,
00041     const char mcode
00042     ) {
00043 
00044    float tmp;
00045    bytepack bp;
00046 
00047    int n;
00048 
00049    if (sw(mcode)) { n=((( x.mrastep() )&( (1<<x.mmax()) -1 ) )>> m(mcode)); } 
00050    else { n=0; }
00051 
00052    clear();
00053    set(mcode,n);
00054 
00055    if (sw(mcode)) { tmp=x.wav(m(mcode)); } 
00056    else { tmp=x.scal(m(mcode)); }
00057 
00058    if (fabs(tmp)>=_enc.quantcoef()) {
00059 #ifdef STORM_DEBUG
00060    cout << "DCFmpacket.encode(): put() : mcode, n, tmp = "
00061         << int( (unsigned char)(mcode) ) << ' ' << n << ' ' << tmp << '\n';
00062 #endif
00063       put( bp(tmp,_enc.bplen_coef()) );
00064    }
00065 
00066 };
00067 
00068 
00069 void DCFmpacket< Rtmra<float,scalar> >::replace( Rtmra<float,scalar>& x ) {
00070 
00071    int j;
00072    float tmp;
00073    bytepack bp;
00074 
00075    if (empty()) { tmp=0; }
00076    else {
00077       bp(0,_enc.bplen_coef());
00078       for(j=0;j<bp.size();j++) { bp[j]=_ptmpacket[j]; }
00079       tmp=float(bp);
00080    }
00081 
00082 #ifdef STORM_DEBUG
00083    cout << "DCFmpacket.replace(): sw m coef "
00084         << sw() << ' ' << m() << ' ' << tmp << '\n';
00085 #endif
00086 
00087    if (sw()) { x.wav(m(),tmp); } 
00088    else { x.scal(m(),tmp); }
00089 
00090 };
00091 

Generated on Mon May 31 21:38:44 2004 for SR2k4 Assembler by doxygen 1.3.6