Le 27/03/13 13:16, Luca Barbato a écrit :
+static int getsgnctxno(int flag, uint8_t *xorbit)
>+{
>+    int vcontrib, hcontrib;
>+    static const int contribtab[3][3] = {{ 0, -1,  1 }, {-1, -1,  0 }, { 1,  
0,  1 }};
>+    static const int  ctxlbltab[3][3] = {{13, 12, 11 }, {10,  9, 10 }, {11, 
12, 13 }};
>+    static const int  xorbittab[3][3] = {{ 1,  1,  1 }, { 1,  0,  0 }, { 0,  
0,  0 }};
>+
>+    hcontrib = contribtab[flag & JPEG2000_T1_SIG_E ? flag & JPEG2000_T1_SGN_E 
? 1 : 2 : 0]
>+               [flag & JPEG2000_T1_SIG_W ? flag & JPEG2000_T1_SGN_W ? 1 : 2 : 
0] + 1;
>+    vcontrib = contribtab[flag & JPEG2000_T1_SIG_S ? flag & JPEG2000_T1_SGN_S 
? 1 : 2 : 0]
>+               [flag & JPEG2000_T1_SIG_N ? flag & JPEG2000_T1_SGN_N ? 1 : 2 : 
0] + 1;
>+    *xorbit = xorbittab[hcontrib][vcontrib];
>+    return ctxlbltab[hcontrib][vcontrib];
>+}
A switch table might be simpler?

Maybe I admit its not the simpler way
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to