1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-02-09 14:14:39 +02:00

jpeg2000/j2k: merge getsigctxno()

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2013-05-26 17:39:02 +02:00
parent 69b9773980
commit b67fe48f34
2 changed files with 53 additions and 67 deletions

View File

@ -107,43 +107,43 @@ static int getsigctxno(int flag, int bandno)
{ {
int h, v, d; int h, v, d;
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);
if (h == 2) return 8; if (h == 2) return 8;
if (h == 1){ if (h == 1){
if (v >= 1) return 7; if (v >= 1) return 7;
if (d >= 1) return 6; if (d >= 1) return 6;
return 5; return 5;
} }
if (v == 2) return 4; if (v == 2) return 4;
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){
if (h+v >= 1) return 7; if (h+v >= 1) return 7;
return 6; return 6;
} }
if (d == 1){ if (d == 1){
if (h+v >= 2) return 5; if (h+v >= 2) return 5;
if (h+v == 1) return 4; if (h+v == 1) return 4;
return 3; return 3;
} }
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)

View File

@ -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) return 7;
if (v >= 1) if (d >= 1) return 6;
return 7;
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) } else{
return 2; if (d >= 3) return 8;
if (d == 1) if (d == 2){
return 1; if (h+v >= 1) return 7;
return 0;
} else {
if (d >= 3)
return 8;
if (d == 2) {
if (h + v >= 1)
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;
} }