X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libopenjpeg%2Fmct.c;h=ed34be9c6bdaa2ef0d38e539aed32f4a29125355;hb=94a5e081e5fb5e8b1ad00b95960b96d7093241d1;hp=828b42d1f257e70da3c0120f3ab9192c5f5601b9;hpb=b551844cc2412981bcf7c26c897c07c0e6bc6a8e;p=openjpeg.git diff --git a/libopenjpeg/mct.c b/libopenjpeg/mct.c index 828b42d1..ed34be9c 100644 --- a/libopenjpeg/mct.c +++ b/libopenjpeg/mct.c @@ -45,6 +45,16 @@ static const double mct_norms[3] = { 1.732, .8292, .8292 }; /* */ static const double mct_norms_real[3] = { 1.732, 1.805, 1.573 }; +const OPJ_FLOAT64 * get_mct_norms () +{ + return mct_norms; +} + +const OPJ_FLOAT64 * get_mct_norms_real () +{ + return mct_norms_real; +} + /* */ /* Foward reversible MCT. */ /* */ @@ -190,9 +200,9 @@ double mct_getnorm_real(int compno) { } -opj_bool mct_decode_custom( +opj_bool mct_encode_custom( // MCT data - OPJ_BYTE * pDecodingData, + OPJ_BYTE * pCodingdata, // size of components OPJ_UINT32 n, // components @@ -201,6 +211,62 @@ opj_bool mct_decode_custom( OPJ_UINT32 pNbComp, // tells if the data is signed OPJ_UINT32 isSigned) +{ + OPJ_FLOAT32 * lMct = (OPJ_FLOAT32 *) pCodingdata; + OPJ_UINT32 i; + OPJ_UINT32 j; + OPJ_UINT32 k; + OPJ_UINT32 lNbMatCoeff = pNbComp * pNbComp; + OPJ_INT32 * lCurrentData = 00; + OPJ_INT32 * lCurrentMatrix = 00; + OPJ_INT32 ** lData = (OPJ_INT32 **) pData; + OPJ_UINT32 lMultiplicator = 1 << 13; + OPJ_INT32 * lMctPtr; + + lCurrentData = (OPJ_INT32 *) opj_malloc((pNbComp + lNbMatCoeff) * sizeof(OPJ_INT32)); + if (! lCurrentData) { + return OPJ_FALSE; + } + + lCurrentMatrix = lCurrentData + pNbComp; + + for (i =0;i