@ -530,6 +530,7 @@ void test_subpixel_4()
STBIR_ASSERT ( memcmp ( image , output , 8 * 8 ) = = 0 ) ;
}
static unsigned int image88_int [ 8 ] [ 8 ] ;
static unsigned char image88 [ 8 ] [ 8 ] ;
static unsigned char output88 [ 8 ] [ 8 ] ;
static unsigned char output44 [ 4 ] [ 4 ] ;
@ -566,16 +567,12 @@ void verify_box(void)
STBIR_ASSERT ( output11 [ 0 ] [ 0 ] = = ( ( t + 32 ) > > 6 ) ) ;
}
void verify_filter_normalized ( stbir_filter filter , uns igned char * output , int output_siz e)
void verify_filter_normalized ( stbir_filter filter , int output_size , int valu e)
{
int value = 64 ;
int i , j ;
for ( j = 0 ; j < 8 ; + + j )
for ( i = 0 ; i < 8 ; + + i )
image88 [ j ] [ i ] = value ;
unsigned int output [ 64 ] ;
stbir_resize_uint8_generic ( image88 [ 0 ] , 8 , 8 , 0 , output , output_size , output_size , 0 , 1 , - 1 , 0 , STBIR_EDGE_CLAMP , filter , STBIR_COLORSPACE_LINEAR , NULL ) ;
stbir_resize ( image88_int [ 0 ] , 8 , 8 , 0 , output , output_size , output_size , 0 , STBIR_TYPE_UINT32 , 1 , STBIR_ALPHA_CHANNEL_NONE , 0 , STBIR_EDGE_CLAMP , STBIR_EDGE_CLAMP , filter , filter , STBIR_COLORSPACE_LINEAR , NULL ) ;
for ( j = 0 ; j < output_size ; + + j )
for ( i = 0 ; i < output_size ; + + i )
@ -605,29 +602,35 @@ void test_filters(void)
image88 [ j ] [ i ] = i & 2 ? 255 : 0 ;
verify_box ( ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , & output88 [ 0 ] [ 0 ] , 8 ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , & output88 [ 0 ] [ 0 ] , 8 ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , & output88 [ 0 ] [ 0 ] , 8 ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , & output88 [ 0 ] [ 0 ] , 8 ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , & output88 [ 0 ] [ 0 ] , 8 ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , & output44 [ 0 ] [ 0 ] , 4 ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , & output44 [ 0 ] [ 0 ] , 4 ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , & output44 [ 0 ] [ 0 ] , 4 ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , & output44 [ 0 ] [ 0 ] , 4 ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , & output44 [ 0 ] [ 0 ] , 4 ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , & output22 [ 0 ] [ 0 ] , 2 ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , & output22 [ 0 ] [ 0 ] , 2 ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , & output22 [ 0 ] [ 0 ] , 2 ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , & output22 [ 0 ] [ 0 ] , 2 ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , & output22 [ 0 ] [ 0 ] , 2 ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , & output11 [ 0 ] [ 0 ] , 1 ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , & output11 [ 0 ] [ 0 ] , 1 ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , & output11 [ 0 ] [ 0 ] , 1 ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , & output11 [ 0 ] [ 0 ] , 1 ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , & output11 [ 0 ] [ 0 ] , 1 ) ;
int value = 64 ;
for ( j = 0 ; j < 8 ; + + j )
for ( i = 0 ; i < 8 ; + + i )
image88_int [ j ] [ i ] = value ;
verify_filter_normalized ( STBIR_FILTER_BOX , 8 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , 8 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , 8 , value ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , 8 , value ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , 8 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , 4 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , 4 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , 4 , value ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , 4 , value ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , 4 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , 2 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , 2 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , 2 , value ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , 2 , value ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , 2 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BOX , 1 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BILINEAR , 1 , value ) ;
verify_filter_normalized ( STBIR_FILTER_BICUBIC , 1 , value ) ;
verify_filter_normalized ( STBIR_FILTER_CATMULLROM , 1 , value ) ;
verify_filter_normalized ( STBIR_FILTER_MITCHELL , 1 , value ) ;
}
@ -671,7 +674,7 @@ void test_suite(int argc, char **argv)
sums [ 3 ] + = y * stbir__filter_bilinear ( x + o ) ;
}
for ( i = 0 ; i < 3 ; + + i )
STBIR_ASSERT ( sums [ i ] > = 1.0 - 0.02 & & sums [ i ] < = 1.0 + 0.02 ) ;
STBIR_ASSERT ( sums [ i ] > = 1.0 - 0.0170 & & sums [ i ] < = 1.0 + 0.0170 ) ;
}
}
# endif