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