Add note regarding the fact that 4:4:0 lacks full SIMD support; Add an option for benchmarking 4:4:0 subsampling in tjbench.
This commit is contained in:
@@ -95,7 +95,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -97,7 +97,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -125,7 +125,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -704,7 +704,7 @@ Variables</h2></td></tr>
|
|||||||
</td></tr>
|
</td></tr>
|
||||||
<tr><td class="fieldname"><em><a class="anchor" id="gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974"></a>TJSAMP_440</em> </td><td class="fielddoc">
|
<tr><td class="fieldname"><em><a class="anchor" id="gga1d047060ea80bb9820d540bb928e9074accf740e6f3aa6ba20ba922cad13cb974"></a>TJSAMP_440</em> </td><td class="fielddoc">
|
||||||
<p>4:4:0 chrominance subsampling. </p>
|
<p>4:4:0 chrominance subsampling. </p>
|
||||||
<p>The JPEG or YUV image will contain one chrominance component for every 1x2 block of pixels in the source image. </p>
|
<p>The JPEG or YUV image will contain one chrominance component for every 1x2 block of pixels in the source image. Note that 4:4:0 subsampling is not fully accelerated in the libjpeg-turbo implementation of TurboJPEG. </p>
|
||||||
</td></tr>
|
</td></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
@@ -1694,7 +1694,7 @@ If you choose option 1, <code>dstSizes[i]</code> should be set to the size of yo
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ var searchBox = new SearchBox("searchBox", "search",false,'Search');
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ Data Fields</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ Data Fields</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -203,7 +203,7 @@ Data Fields</h2></td></tr>
|
|||||||
</div><!-- contents -->
|
</div><!-- contents -->
|
||||||
<!-- start footer part -->
|
<!-- start footer part -->
|
||||||
<hr class="footer"/><address class="footer"><small>
|
<hr class="footer"/><address class="footer"><small>
|
||||||
Generated on Sun Aug 18 2013 03:40:14 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
Generated on Sun Aug 18 2013 04:14:41 for TurboJPEG by  <a href="http://www.doxygen.org/index.html">
|
||||||
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
<img class="footer" src="doxygen.png" alt="doxygen"/>
|
||||||
</a> 1.8.3.1
|
</a> 1.8.3.1
|
||||||
</small></address>
|
</small></address>
|
||||||
|
|||||||
@@ -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:
|
||||||
@@ -686,6 +686,7 @@ void usage(char *progname)
|
|||||||
printf(" codec\n");
|
printf(" codec\n");
|
||||||
printf("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the\n");
|
printf("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the\n");
|
||||||
printf(" underlying codec\n");
|
printf(" underlying codec\n");
|
||||||
|
printf("-440 = Test 4:4:0 chrominance subsampling instead of 4:2:2\n");
|
||||||
printf("-quiet = Output results in tabular rather than verbose format\n");
|
printf("-quiet = Output results in tabular rather than verbose format\n");
|
||||||
printf("-yuvencode = Encode RGB input as planar YUV rather than compressing as JPEG\n");
|
printf("-yuvencode = Encode RGB input as planar YUV rather than compressing as JPEG\n");
|
||||||
printf("-yuvdecode = Decode JPEG image to planar YUV rather than RGB\n");
|
printf("-yuvdecode = Decode JPEG image to planar YUV rather than RGB\n");
|
||||||
@@ -719,7 +720,7 @@ int main(int argc, char *argv[])
|
|||||||
{
|
{
|
||||||
unsigned char *srcbuf=NULL; int w, h, i, j;
|
unsigned char *srcbuf=NULL; int w, h, i, j;
|
||||||
int minqual=-1, maxqual=-1; char *temp;
|
int minqual=-1, maxqual=-1; char *temp;
|
||||||
int minarg=2; int retval=0;
|
int minarg=2, retval=0, do440=0;
|
||||||
|
|
||||||
if((scalingfactors=tjGetScalingFactors(&nsf))==NULL || nsf==0)
|
if((scalingfactors=tjGetScalingFactors(&nsf))==NULL || nsf==0)
|
||||||
_throwtj("executing tjGetScalingFactors()");
|
_throwtj("executing tjGetScalingFactors()");
|
||||||
@@ -810,6 +811,7 @@ int main(int argc, char *argv[])
|
|||||||
printf("Using most accurate DCT/IDCT algorithm\n\n");
|
printf("Using most accurate DCT/IDCT algorithm\n\n");
|
||||||
flags|=TJFLAG_ACCURATEDCT;
|
flags|=TJFLAG_ACCURATEDCT;
|
||||||
}
|
}
|
||||||
|
if(!strcmp(argv[i], "-440")) do440=1;
|
||||||
if(!strcasecmp(argv[i], "-rgb")) pf=TJPF_RGB;
|
if(!strcasecmp(argv[i], "-rgb")) pf=TJPF_RGB;
|
||||||
if(!strcasecmp(argv[i], "-rgbx")) pf=TJPF_RGBX;
|
if(!strcasecmp(argv[i], "-rgbx")) pf=TJPF_RGBX;
|
||||||
if(!strcasecmp(argv[i], "-bgr")) pf=TJPF_BGR;
|
if(!strcasecmp(argv[i], "-bgr")) pf=TJPF_BGR;
|
||||||
@@ -902,7 +904,7 @@ int main(int argc, char *argv[])
|
|||||||
dotest(srcbuf, w, h, TJ_420, i, argv[1]);
|
dotest(srcbuf, w, h, TJ_420, i, argv[1]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
for(i=maxqual; i>=minqual; i--)
|
for(i=maxqual; i>=minqual; i--)
|
||||||
dotest(srcbuf, w, h, TJ_422, i, argv[1]);
|
dotest(srcbuf, w, h, do440? TJSAMP_440:TJ_422, i, argv[1]);
|
||||||
printf("\n");
|
printf("\n");
|
||||||
for(i=maxqual; i>=minqual; i--)
|
for(i=maxqual; i>=minqual; i--)
|
||||||
dotest(srcbuf, w, h, TJ_444, i, argv[1]);
|
dotest(srcbuf, w, h, TJ_444, i, argv[1]);
|
||||||
|
|||||||
@@ -85,6 +85,8 @@ enum TJSAMP
|
|||||||
/**
|
/**
|
||||||
* 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 the libjpeg-turbo
|
||||||
|
* implementation of TurboJPEG.
|
||||||
*/
|
*/
|
||||||
TJSAMP_440
|
TJSAMP_440
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user