Fix typo in SIMD dispatch routines which was causing 4:2:0 upsampling to

be used instead of 4:2:2 when decompressing JPEG images using SSE2 code


git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/trunk@223 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC
2010-08-07 16:06:56 +00:00
parent 231a43fc68
commit 30959719ad
17 changed files with 23 additions and 24 deletions

View File

@@ -5,6 +5,9 @@ Significant changes since 1.0.0
from a corrupt JPEG image.) Previously, these would cause libjpeg-turbo to
crash under certain circumstances.
[2] Fixed typo in SIMD dispatch routines which was causing 4:2:0 upsampling to
be used instead of 4:2:2 when decompressing JPEG images using SSE2 code.
Significant changes since 0.0.93
================================

View File

@@ -113,7 +113,7 @@ test: testclean cjpeg djpeg jpegtran jpegut
./djpeg -dct float -ppm -outfile testoutflt.ppm $(srcdir)/testorig.jpg
cmp $(srcdir)/testimgint.ppm testoutint.ppm
cmp $(srcdir)/testimgfst.ppm testoutfst.ppm
cmp $(srcdir)/testorig.ppm testoutflt.ppm
cmp $(srcdir)/testimgflt.ppm testoutflt.ppm
./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(srcdir)/testorig.jpg
cmp $(srcdir)/testimg.bmp testout.bmp
./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testorig.ppm
@@ -125,24 +125,24 @@ else
test: testclean cjpeg djpeg jpegtran jpegut
./jpegut
./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig-nosimd.ppm
./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testorig-nosimd.ppm
./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testorig-nosimd.ppm
cmp $(srcdir)/testimgint-nosimd.jpg testoutint.jpg
cmp $(srcdir)/testimgfst-nosimd.jpg testoutfst.jpg
./cjpeg -dct int -outfile testoutint.jpg $(srcdir)/testorig.ppm
./cjpeg -dct fast -opt -outfile testoutfst.jpg $(srcdir)/testorig.ppm
./cjpeg -dct float -outfile testoutflt.jpg $(srcdir)/testorig.ppm
cmp $(srcdir)/testimgint.jpg testoutint.jpg
cmp $(srcdir)/testimgfst.jpg testoutfst.jpg
cmp $(srcdir)/testimgflt-nosimd.jpg testoutflt.jpg
./djpeg -dct int -fast -ppm -outfile testoutint.ppm $(srcdir)/testorig.jpg
./djpeg -dct fast -ppm -outfile testoutfst.ppm $(srcdir)/testorig.jpg
./djpeg -dct float -ppm -outfile testoutflt.ppm $(srcdir)/testorig.jpg
cmp $(srcdir)/testimgint.ppm testoutint.ppm
cmp $(srcdir)/testimgfst-nosimd.ppm testoutfst.ppm
cmp $(srcdir)/testorig-nosimd.ppm testoutflt.ppm
cmp $(srcdir)/testimgfst.ppm testoutfst.ppm
cmp $(srcdir)/testorig.ppm testoutflt.ppm
./djpeg -dct int -bmp -colors 256 -outfile testout.bmp $(srcdir)/testorig.jpg
cmp $(srcdir)/testimg-nosimd.bmp testout.bmp
./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testorig-nosimd.ppm
cmp $(srcdir)/testimgp-nosimd.jpg testoutp.jpg
cmp $(srcdir)/testimg.bmp testout.bmp
./cjpeg -dct int -progressive -outfile testoutp.jpg $(srcdir)/testorig.ppm
cmp $(srcdir)/testimgp.jpg testoutp.jpg
./jpegtran -outfile testoutt.jpg testoutp.jpg
cmp $(srcdir)/testimgint-nosimd.jpg testoutt.jpg
cmp $(srcdir)/testimgint.jpg testoutt.jpg
endif

View File

@@ -382,7 +382,7 @@ jsimd_h2v2_fancy_upsample (j_decompress_ptr cinfo,
{
if ((simd_support & JSIMD_SSE2) &&
IS_ALIGNED_SSE(jconst_fancy_upsample_sse2))
jsimd_h2v1_fancy_upsample_sse2(cinfo->max_v_samp_factor,
jsimd_h2v2_fancy_upsample_sse2(cinfo->max_v_samp_factor,
compptr->downsampled_width, input_data, output_data_ptr);
else if (simd_support & JSIMD_MMX)
jsimd_h2v2_fancy_upsample_mmx(cinfo->max_v_samp_factor,

View File

@@ -260,7 +260,7 @@ jsimd_h2v2_fancy_upsample (j_decompress_ptr cinfo,
JSAMPARRAY input_data,
JSAMPARRAY * output_data_ptr)
{
jsimd_h2v1_fancy_upsample_sse2(cinfo->max_v_samp_factor,
jsimd_h2v2_fancy_upsample_sse2(cinfo->max_v_samp_factor,
compptr->downsampled_width,
input_data, output_data_ptr);
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

4
testimgflt.ppm Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long