removed mixed scalers entirely, they're in git
This commit is contained in:
parent
2eb550826d
commit
d24721469d
4 changed files with 1 additions and 102 deletions
|
|
@ -1039,84 +1039,3 @@ void scale6x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32
|
|||
memcpy((uint8_t*)dst+dp*5, dst, swl);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// mixed scalers
|
||||
//
|
||||
|
||||
void scale1x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
||||
if (!sw||!sh) { return; }
|
||||
uint32_t swl = sw*sizeof(uint16_t);
|
||||
if (!sp) { sp = swl; } if (!dp) { dp = swl*1; }
|
||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*2) {
|
||||
memcpy(dst, src, swl);
|
||||
memcpy((uint8_t*)dst+dp, dst, swl);
|
||||
}
|
||||
}
|
||||
|
||||
void scale2x1_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
||||
if (!sw||!sh) { return; }
|
||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
||||
if (!sp) { sp = swl; } swl*=2; if (!dp) { dp = swl; }
|
||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*1) {
|
||||
uint32_t *s = (uint32_t* __restrict)src;
|
||||
uint32_t *d = (uint32_t* __restrict)dst;
|
||||
for (x=dx=0; x<(sw/2); x++, dx+=2) {
|
||||
pix = s[x];
|
||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
||||
d[dx] = dpix1; d[dx+1] = dpix2;
|
||||
}
|
||||
if (sw&1) {
|
||||
uint16_t *s16 = (uint16_t*)s;
|
||||
uint16_t pix16 = s16[x*2];
|
||||
d[dx] = pix16|(pix16<<16);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void scale2x3_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
||||
if (!sw||!sh) { return; }
|
||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
||||
if (!sp) { sp = swl; } swl*=2; if (!dp) { dp = swl; }
|
||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*3) {
|
||||
uint32_t *s = (uint32_t* __restrict)src;
|
||||
uint32_t *d = (uint32_t* __restrict)dst;
|
||||
for (x=dx=0; x<(sw/2); x++, dx+=2) {
|
||||
pix = s[x];
|
||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
||||
d[dx] = dpix1; d[dx+1] = dpix2;
|
||||
}
|
||||
if (sw&1) {
|
||||
uint16_t *s16 = (uint16_t*)s;
|
||||
uint16_t pix16 = s16[x*2];
|
||||
d[dx] = pix16|(pix16<<16);
|
||||
}
|
||||
memcpy((uint8_t*)dst+dp*1, dst, swl);
|
||||
memcpy((uint8_t*)dst+dp*2, dst, swl);
|
||||
}
|
||||
}
|
||||
|
||||
void scale4x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp) {
|
||||
if (!sw||!sh) { return; }
|
||||
uint32_t x, dx, pix, dpix1, dpix2, swl = sw*sizeof(uint16_t);
|
||||
if (!sp) { sp = swl; } swl*=4; if (!dp) { dp = swl; }
|
||||
for (; sh>0; sh--, src=(uint8_t*)src+sp, dst=(uint8_t*)dst+dp*2) {
|
||||
uint32_t *s = (uint32_t* __restrict)src;
|
||||
uint32_t *d = (uint32_t* __restrict)dst;
|
||||
for (x=dx=0; x<(sw/2); x++, dx+=4) {
|
||||
pix = s[x];
|
||||
dpix1=(pix & 0x0000FFFF)|(pix<<16);
|
||||
dpix2=(pix & 0xFFFF0000)|(pix>>16);
|
||||
d[dx] = dpix1; d[dx+1] = dpix1; d[dx+2] = dpix2; d[dx+3] = dpix2;
|
||||
}
|
||||
if (sw&1) {
|
||||
uint16_t *s16 = (uint16_t*)s;
|
||||
uint16_t pix16 = s16[x*2];
|
||||
dpix1 = pix16|(pix16<<16);
|
||||
d[dx] = dpix1; d[dx+1] = dpix1;
|
||||
}
|
||||
memcpy((uint8_t*)dst+dp*1, dst, swl);
|
||||
}
|
||||
}
|
||||
|
|
@ -51,10 +51,4 @@ void scale5x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32
|
|||
void scale6x_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
void scale6x_c32(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
|
||||
// mixed scalers
|
||||
void scale1x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
void scale2x1_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
void scale2x3_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
void scale4x2_c16(void* __restrict src, void* __restrict dst, uint32_t sw, uint32_t sh, uint32_t sp, uint32_t dp);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue