Merge pull request #834 from trylab/issue833
[openjpeg.git] / src / lib / openjp2 / t1_generate_luts.c
index d18432489392dbcf3cb12fc9ff968e008cbed5cd..1a8430898fc5726b0e661add94c327894710f55f 100644 (file)
@@ -1,9 +1,15 @@
 /*
- * Copyright (c) 2002-2007, Communications and Remote Sensing Laboratory, Universite catholique de Louvain (UCL), Belgium
- * Copyright (c) 2002-2007, Professor Benoit Macq
+ * The copyright in this software is being made available under the 2-clauses 
+ * BSD License, included below. This software may be subject to other third 
+ * party and contributor rights, including patent rights, and no such rights
+ * are granted under this license.
+ *
+ * Copyright (c) 2002-2014, Universite catholique de Louvain (UCL), Belgium
+ * Copyright (c) 2002-2014, Professor Benoit Macq
  * Copyright (c) 2001-2003, David Janssens
  * Copyright (c) 2002-2003, Yannick Verschueren
- * Copyright (c) 2003-2007, Francois-Olivier Devaux and Antonin Descampe
+ * Copyright (c) 2003-2007, Francois-Olivier Devaux 
+ * Copyright (c) 2003-2014, Antonin Descampe
  * Copyright (c) 2005, Herve Drolon, FreeImage Team
  * Copyright (c) 2007, Callum Lerwick <seg@haxxed.com>
  * All rights reserved.
 
 #include "opj_includes.h"
 
-static int t1_init_ctxno_zc(int f, int orient) {
+static int t1_init_ctxno_zc(unsigned int f, unsigned int orient) {
        int h, v, d, n, t, hv;
-       n = 0;
        h = ((f & T1_SIG_W) != 0) + ((f & T1_SIG_E) != 0);
        v = ((f & T1_SIG_N) != 0) + ((f & T1_SIG_S) != 0);
        d = ((f & T1_SIG_NW) != 0) + ((f & T1_SIG_NE) != 0) + ((f & T1_SIG_SE) != 0) + ((f & T1_SIG_SW) != 0);
+       n = 0;
+       t = 0;
+       hv = 0;
 
        switch (orient) {
                case 2:
                        t = h;
                        h = v;
                        v = t;
+                       /* fall through */
                case 0:
                case 1:
                        if (!h) {
@@ -104,7 +113,7 @@ static int t1_init_ctxno_zc(int f, int orient) {
        return (T1_CTXNO_ZC + n);
 }
 
-static int t1_init_ctxno_sc(int f) {
+static int t1_init_ctxno_sc(unsigned int f) {
        int hc, vc, n;
        n = 0;
 
@@ -145,7 +154,7 @@ static int t1_init_ctxno_sc(int f) {
        return (T1_CTXNO_SC + n);
 }
 
-static int t1_init_spb(int f) {
+static int t1_init_spb(unsigned int f) {
        int hc, vc, n;
 
        hc = opj_int_min(((f & (T1_SIG_E | T1_SGN_E)) ==
@@ -181,8 +190,9 @@ static void dump_array16(int array[],int size){
        printf("0x%04x\n};\n\n", array[size]);
 }
 
-int main(){
-       int i, j;
+int main(int argc, char **argv)
+{
+       unsigned int i, j;
        double u, v, t;
 
        int lut_ctxno_zc[1024];
@@ -190,51 +200,52 @@ int main(){
        int lut_nmsedec_sig0[1 << T1_NMSEDEC_BITS];
        int lut_nmsedec_ref[1 << T1_NMSEDEC_BITS];
        int lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS];
+  (void)argc; (void)argv;
 
        printf("/* This file was automatically generated by t1_generate_luts.c */\n\n");
 
        /* lut_ctxno_zc */
-       for (j = 0; j < 4; ++j) {
-               for (i = 0; i < 256; ++i) {
-                       int orient = j;
-                       if (orient == 2) {
-                               orient = 1;
-                       } else if (orient == 1) {
-                               orient = 2;
+       for (j = 0U; j < 4U; ++j) {
+               for (i = 0U; i < 256U; ++i) {
+                       unsigned int orient = j;
+                       if (orient == 2U) {
+                               orient = 1U;
+                       } else if (orient == 1U) {
+                               orient = 2U;
                        }
                        lut_ctxno_zc[(orient << 8) | i] = t1_init_ctxno_zc(i, j);
                }
        }
 
-       printf("static OPJ_BYTE lut_ctxno_zc[1024] = {\n  ");
-       for (i = 0; i < 1023; ++i) {
+       printf("static const OPJ_BYTE lut_ctxno_zc[1024] = {\n  ");
+       for (i = 0U; i < 1023U; ++i) {
                printf("%i, ", lut_ctxno_zc[i]);
-               if(!((i+1)&0x1f))
+               if(!((i+1U)&0x1fU))
                        printf("\n  ");
        }
        printf("%i\n};\n\n", lut_ctxno_zc[1023]);
 
        /* lut_ctxno_sc */
-       printf("static OPJ_BYTE lut_ctxno_sc[256] = {\n  ");
-       for (i = 0; i < 255; ++i) {
+       printf("static const OPJ_BYTE lut_ctxno_sc[256] = {\n  ");
+       for (i = 0U; i < 255U; ++i) {
                printf("0x%x, ", t1_init_ctxno_sc(i << 4));
-               if(!((i+1)&0xf))
+               if(!((i+1U)&0xfU))
                        printf("\n  ");
        }
-       printf("0x%x\n};\n\n", t1_init_ctxno_sc(255 << 4));
+       printf("0x%x\n};\n\n", t1_init_ctxno_sc(255U << 4));
 
        /* lut_spb */
-       printf("static OPJ_BYTE lut_spb[256] = {\n  ");
-       for (i = 0; i < 255; ++i) {
+       printf("static const OPJ_BYTE lut_spb[256] = {\n  ");
+       for (i = 0U; i < 255U; ++i) {
                printf("%i, ", t1_init_spb(i << 4));
-               if(!((i+1)&0x1f))
+               if(!((i+1U)&0x1fU))
                        printf("\n  ");
        }
-       printf("%i\n};\n\n", t1_init_spb(255 << 4));
+       printf("%i\n};\n\n", t1_init_spb(255U << 4));
 
        /* FIXME FIXME FIXME */
        /* fprintf(stdout,"nmsedec luts:\n"); */
-       for (i = 0; i < (1 << T1_NMSEDEC_BITS); ++i) {
+       for (i = 0U; i < (1U << T1_NMSEDEC_BITS); ++i) {
                t = i / pow(2, T1_NMSEDEC_FRACBITS);
                u = t;
                v = t - 1.5;
@@ -258,17 +269,17 @@ int main(){
                                        (int) (floor((u * u) * pow(2, T1_NMSEDEC_FRACBITS) + 0.5) / pow(2, T1_NMSEDEC_FRACBITS) * 8192.0));
        }
 
-       printf("static OPJ_INT16 lut_nmsedec_sig[1 << T1_NMSEDEC_BITS] = {\n  ");
-       dump_array16(lut_nmsedec_sig, 1 << T1_NMSEDEC_BITS);
+       printf("static const OPJ_INT16 lut_nmsedec_sig[1U << T1_NMSEDEC_BITS] = {\n  ");
+       dump_array16(lut_nmsedec_sig, 1U << T1_NMSEDEC_BITS);
 
-       printf("static OPJ_INT16 lut_nmsedec_sig0[1 << T1_NMSEDEC_BITS] = {\n  ");
-       dump_array16(lut_nmsedec_sig0, 1 << T1_NMSEDEC_BITS);
+       printf("static const OPJ_INT16 lut_nmsedec_sig0[1U << T1_NMSEDEC_BITS] = {\n  ");
+       dump_array16(lut_nmsedec_sig0, 1U << T1_NMSEDEC_BITS);
 
-       printf("static OPJ_INT16 lut_nmsedec_ref[1 << T1_NMSEDEC_BITS] = {\n  ");
-       dump_array16(lut_nmsedec_ref, 1 << T1_NMSEDEC_BITS);
+       printf("static const OPJ_INT16 lut_nmsedec_ref[1U << T1_NMSEDEC_BITS] = {\n  ");
+       dump_array16(lut_nmsedec_ref, 1U << T1_NMSEDEC_BITS);
 
-       printf("static OPJ_INT16 lut_nmsedec_ref0[1 << T1_NMSEDEC_BITS] = {\n  ");
-       dump_array16(lut_nmsedec_ref0, 1 << T1_NMSEDEC_BITS);
+       printf("static const OPJ_INT16 lut_nmsedec_ref0[1U << T1_NMSEDEC_BITS] = {\n  ");
+       dump_array16(lut_nmsedec_ref0, 1U << T1_NMSEDEC_BITS);
 
        return 0;
 }