jpeg2000/j2k: merge getsigctxno()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/22/merge
Michael Niedermayer 12 years ago
parent 69b9773980
commit b67fe48f34
  1. 12
      libavcodec/j2k.c
  2. 42
      libavcodec/jpeg2000.c

@ -109,12 +109,13 @@ static int getsigctxno(int flag, int bandno)
h = ((flag & JPEG2000_T1_SIG_E) ? 1 : 0) + h = ((flag & JPEG2000_T1_SIG_E) ? 1 : 0) +
((flag & JPEG2000_T1_SIG_W) ? 1 : 0); ((flag & JPEG2000_T1_SIG_W) ? 1 : 0);
v = ((flag & JPEG2000_T1_SIG_N) ? 1:0); v = ((flag & JPEG2000_T1_SIG_N) ? 1 : 0) +
v = v + ((flag & JPEG2000_T1_SIG_S) ? 1:0); ((flag & JPEG2000_T1_SIG_S) ? 1 : 0);
d = ((flag & JPEG2000_T1_SIG_NE) ? 1 : 0) + d = ((flag & JPEG2000_T1_SIG_NE) ? 1 : 0) +
((flag & JPEG2000_T1_SIG_NW) ? 1:0); ((flag & JPEG2000_T1_SIG_NW) ? 1 : 0) +
d = d + ((flag & JPEG2000_T1_SIG_SE) ? 1:0)+ ((flag & JPEG2000_T1_SIG_SE) ? 1 : 0) +
((flag & JPEG2000_T1_SIG_SW) ? 1 : 0); ((flag & JPEG2000_T1_SIG_SW) ? 1 : 0);
if (bandno < 3){ if (bandno < 3){
if (bandno == 1) if (bandno == 1)
FFSWAP(int, h, v); FFSWAP(int, h, v);
@ -128,7 +129,6 @@ static int getsigctxno(int flag, int bandno)
if (v == 1) return 3; if (v == 1) return 3;
if (d >= 2) return 2; if (d >= 2) return 2;
if (d == 1) return 1; if (d == 1) return 1;
return 0;
} else{ } else{
if (d >= 3) return 8; if (d >= 3) return 8;
if (d == 2){ if (d == 2){
@ -142,8 +142,8 @@ static int getsigctxno(int flag, int bandno)
} }
if (h+v >= 2) return 2; if (h+v >= 2) return 2;
if (h+v == 1) return 1; if (h+v == 1) return 1;
return 0;
} }
return 0;
} }
static int getsgnctxno(int flag, uint8_t *xorbit) static int getsgnctxno(int flag, uint8_t *xorbit)

@ -95,47 +95,33 @@ static int getsigctxno(int flag, int bandno)
((flag & JPEG2000_T1_SIG_NW) ? 1 : 0) + ((flag & JPEG2000_T1_SIG_NW) ? 1 : 0) +
((flag & JPEG2000_T1_SIG_SE) ? 1 : 0) + ((flag & JPEG2000_T1_SIG_SE) ? 1 : 0) +
((flag & JPEG2000_T1_SIG_SW) ? 1 : 0); ((flag & JPEG2000_T1_SIG_SW) ? 1 : 0);
if (bandno < 3){ if (bandno < 3){
if (bandno == 1) if (bandno == 1)
FFSWAP(int, h, v); FFSWAP(int, h, v);
if (h == 2) if (h == 2) return 8;
return 8;
if (h == 1){ if (h == 1){
if (v >= 1) if (v >= 1) return 7;
return 7; if (d >= 1) return 6;
if (d >= 1)
return 6;
return 5; return 5;
} }
if (v == 2) if (v == 2) return 4;
return 4; if (v == 1) return 3;
if (v == 1) if (d >= 2) return 2;
return 3; if (d == 1) return 1;
if (d >= 2)
return 2;
if (d == 1)
return 1;
return 0;
} else{ } else{
if (d >= 3) if (d >= 3) return 8;
return 8;
if (d == 2){ if (d == 2){
if (h + v >= 1) if (h+v >= 1) return 7;
return 7;
return 6; return 6;
} }
if (d == 1){ if (d == 1){
if (h + v >= 2) if (h+v >= 2) return 5;
return 5; if (h+v == 1) return 4;
if (h + v == 1)
return 4;
return 3; return 3;
} }
if (h + v >= 2) if (h+v >= 2) return 2;
return 2; if (h+v == 1) return 1;
if (h + v == 1)
return 1;
return 0;
} }
return 0; return 0;
} }

Loading…
Cancel
Save