Add note regarding the fact that 4:4:0 lacks full SIMD support; Add an option for benchmarking 4:4:0 subsampling in TJBench; Wordsmithing; Disable timestamp in generated HTML files to make diffing and merging easier

git-svn-id: svn+ssh://svn.code.sf.net/p/libjpeg-turbo/code/branches/1.3.x@1016 632fc199-4ca6-4c93-a231-07263d6284db
This commit is contained in:
DRC 2013-08-18 10:47:07 +00:00
Родитель ca866c48f0
Коммит ae92418cc1
22 изменённых файлов: 29 добавлений и 60 удалений

Просмотреть файл

@ -62,7 +62,7 @@ headers: all
docs: all docs: all
mkdir -p ${srcdir}/doc; \ mkdir -p ${srcdir}/doc; \
javadoc -d ${srcdir}/doc -sourcepath ${srcdir} org.libjpegturbo.turbojpeg javadoc -notimestamp -d ${srcdir}/doc -sourcepath ${srcdir} org.libjpegturbo.turbojpeg
endif endif

Просмотреть файл

@ -1,5 +1,5 @@
/* /*
* Copyright (C)2009-2012 D. R. Commander. All Rights Reserved. * Copyright (C)2009-2013 D. R. Commander. All Rights Reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met: * modification, are permitted provided that the following conditions are met:
@ -600,6 +600,7 @@ class TJBench {
System.out.println(" codec"); System.out.println(" codec");
System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the"); System.out.println("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the");
System.out.println(" underlying codec"); System.out.println(" underlying codec");
System.out.println("-440 = Test 4:4:0 chrominance subsampling instead of 4:2:2");
System.out.println("-quiet = Output results in tabular rather than verbose format"); System.out.println("-quiet = Output results in tabular rather than verbose format");
System.out.println("-yuvencode = Encode RGB input as planar YUV rather than compressing as JPEG"); System.out.println("-yuvencode = Encode RGB input as planar YUV rather than compressing as JPEG");
System.out.println("-yuvdecode = Decode JPEG image to planar YUV rather than RGB"); System.out.println("-yuvdecode = Decode JPEG image to planar YUV rather than RGB");
@ -636,6 +637,7 @@ class TJBench {
byte[] srcBuf = null; int w = 0, h = 0; byte[] srcBuf = null; int w = 0, h = 0;
int minQual = -1, maxQual = -1; int minQual = -1, maxQual = -1;
int minArg = 1; int retval = 0; int minArg = 1; int retval = 0;
boolean do440 = false;
try { try {
@ -713,6 +715,8 @@ class TJBench {
System.out.println("Using most accurate DCT/IDCT algorithm\n"); System.out.println("Using most accurate DCT/IDCT algorithm\n");
flags |= TJ.FLAG_ACCURATEDCT; flags |= TJ.FLAG_ACCURATEDCT;
} }
if (argv[i].equals("-440"))
do440 = true;
if (argv[i].equalsIgnoreCase("-rgb")) if (argv[i].equalsIgnoreCase("-rgb"))
pf = TJ.PF_RGB; pf = TJ.PF_RGB;
if (argv[i].equalsIgnoreCase("-rgbx")) if (argv[i].equalsIgnoreCase("-rgbx"))
@ -834,7 +838,7 @@ class TJBench {
System.out.println(""); System.out.println("");
System.gc(); System.gc();
for (int i = maxQual; i >= minQual; i--) for (int i = maxQual; i >= minQual; i--)
doTest(srcBuf, w, h, TJ.SAMP_422, i, argv[0]); doTest(srcBuf, w, h, do440 ? TJ.SAMP_440 : TJ.SAMP_422, i, argv[0]);
System.out.println(""); System.out.println("");
System.gc(); System.gc();
for (int i = maxQual; i >= minQual; i--) for (int i = maxQual; i >= minQual; i--)

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
All Classes All Classes
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
All Classes All Classes
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
Constant Field Values Constant Field Values
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
Deprecated List Deprecated List
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:35 CDT 2013 -->
<TITLE> <TITLE>
API Help API Help
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
Index Index
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,7 +2,6 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc on Fri Apr 26 20:05:34 CDT 2013-->
<TITLE> <TITLE>
Generated Documentation (Untitled) Generated Documentation (Untitled)
</TITLE> </TITLE>

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:33 CDT 2013 -->
<TITLE> <TITLE>
TJ TJ
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
@ -534,6 +532,7 @@ public static final int <B>SAMP_440</B></PRE>
<DL> <DL>
<DD>4:4:0 chrominance subsampling. The JPEG or YUV image will contain one <DD>4:4:0 chrominance subsampling. The JPEG or YUV image will contain one
chrominance component for every 1x2 block of pixels in the source image. chrominance component for every 1x2 block of pixels in the source image.
Note that 4:4:0 subsampling is not fully accelerated in libjpeg-turbo.
<P> <P>
<DL> <DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_440">Constant Field Values</A></DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.SAMP_440">Constant Field Values</A></DL>
@ -796,11 +795,11 @@ FLAG_FASTDCT</H3>
public static final int <B>FLAG_FASTDCT</B></PRE> public static final int <B>FLAG_FASTDCT</B></PRE>
<DL> <DL>
<DD>Use the fastest DCT/IDCT algorithm available in the underlying codec. The <DD>Use the fastest DCT/IDCT algorithm available in the underlying codec. The
default if this flag is not specified is implementation-specific. The default if this flag is not specified is implementation-specific. For
libjpeg implementation, for example, uses the fast algorithm by default example, the implementation of TurboJPEG for libjpeg[-turbo] uses the fast
when compressing, because this has been shown to have only a very slight algorithm by default when compressing, because this has been shown to have
effect on accuracy, but it uses the accurate algorithm when decompressing, only a very slight effect on accuracy, but it uses the accurate algorithm
because this has been shown to have a larger effect. when decompressing, because this has been shown to have a larger effect.
<P> <P>
<DL> <DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT">Constant Field Values</A></DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.FLAG_FASTDCT">Constant Field Values</A></DL>
@ -814,11 +813,11 @@ public static final int <B>FLAG_ACCURATEDCT</B></PRE>
<DL> <DL>
<DD>Use the most accurate DCT/IDCT algorithm available in the underlying <DD>Use the most accurate DCT/IDCT algorithm available in the underlying
codec. The default if this flag is not specified is codec. The default if this flag is not specified is
implementation-specific. The libjpeg implementation, for example, uses implementation-specific. For example, the implementation of TurboJPEG for
the fast algorithm by default when compressing, because this has been libjpeg[-turbo] uses the fast algorithm by default when compressing,
shown to have only a very slight effect on accuracy, but it uses the because this has been shown to have only a very slight effect on accuracy,
accurate algorithm when decompressing, because this has been shown to have but it uses the accurate algorithm when decompressing, because this has
a larger effect. been shown to have a larger effect.
<P> <P>
<DL> <DL>
<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT">Constant Field Values</A></DL> <DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.libjpegturbo.turbojpeg.TJ.FLAG_ACCURATEDCT">Constant Field Values</A></DL>

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJCompressor TJCompressor
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJCustomFilter TJCustomFilter
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJDecompressor TJDecompressor
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJScalingFactor TJScalingFactor
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJTransform TJTransform
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
TJTransformer TJTransformer
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
org.libjpegturbo.turbojpeg org.libjpegturbo.turbojpeg
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
org.libjpegturbo.turbojpeg org.libjpegturbo.turbojpeg
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
org.libjpegturbo.turbojpeg Class Hierarchy org.libjpegturbo.turbojpeg Class Hierarchy
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
Class Hierarchy Class Hierarchy
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -2,12 +2,10 @@
<!--NewPage--> <!--NewPage-->
<HTML> <HTML>
<HEAD> <HEAD>
<!-- Generated by javadoc (build 1.6.0_43) on Fri Apr 26 20:05:34 CDT 2013 -->
<TITLE> <TITLE>
Serialized Form Serialized Form
</TITLE> </TITLE>
<META NAME="date" CONTENT="2013-04-26">
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style"> <LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">

Просмотреть файл

@ -61,6 +61,7 @@ public final class TJ {
/** /**
* 4:4:0 chrominance subsampling. The JPEG or YUV image will contain one * 4:4:0 chrominance subsampling. The JPEG or YUV image will contain one
* chrominance component for every 1x2 block of pixels in the source image. * chrominance component for every 1x2 block of pixels in the source image.
* Note that 4:4:0 subsampling is not fully accelerated in libjpeg-turbo.
*/ */
public static final int SAMP_440 = 4; public static final int SAMP_440 = 4;
@ -300,21 +301,21 @@ public final class TJ {
public static final int FLAG_FASTUPSAMPLE = 256; public static final int FLAG_FASTUPSAMPLE = 256;
/** /**
* Use the fastest DCT/IDCT algorithm available in the underlying codec. The * Use the fastest DCT/IDCT algorithm available in the underlying codec. The
* default if this flag is not specified is implementation-specific. The * default if this flag is not specified is implementation-specific. For
* libjpeg implementation, for example, uses the fast algorithm by default * example, the implementation of TurboJPEG for libjpeg[-turbo] uses the fast
* when compressing, because this has been shown to have only a very slight * algorithm by default when compressing, because this has been shown to have
* effect on accuracy, but it uses the accurate algorithm when decompressing, * only a very slight effect on accuracy, but it uses the accurate algorithm
* because this has been shown to have a larger effect. * when decompressing, because this has been shown to have a larger effect.
*/ */
public static final int FLAG_FASTDCT = 2048; public static final int FLAG_FASTDCT = 2048;
/** /**
* Use the most accurate DCT/IDCT algorithm available in the underlying * Use the most accurate DCT/IDCT algorithm available in the underlying
* codec. The default if this flag is not specified is * codec. The default if this flag is not specified is
* implementation-specific. The libjpeg implementation, for example, uses * implementation-specific. For example, the implementation of TurboJPEG for
* the fast algorithm by default when compressing, because this has been * libjpeg[-turbo] uses the fast algorithm by default when compressing,
* shown to have only a very slight effect on accuracy, but it uses the * because this has been shown to have only a very slight effect on accuracy,
* accurate algorithm when decompressing, because this has been shown to have * but it uses the accurate algorithm when decompressing, because this has
* a larger effect. * been shown to have a larger effect.
*/ */
public static final int FLAG_ACCURATEDCT = 4096; public static final int FLAG_ACCURATEDCT = 4096;