</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</td></tr>
<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>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>
</table>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
</div><!-- contents -->
<!-- start footer part -->
<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"/>
</a> 1.8.3.1
</small></address>
/*
- * 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
* modification, are permitted provided that the following conditions are met:
printf(" codec\n");
printf("-accuratedct = Use the most accurate DCT/IDCT algorithms available in the\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("-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");
{
unsigned char *srcbuf=NULL; int w, h, i, j;
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)
_throwtj("executing tjGetScalingFactors()");
printf("Using most accurate DCT/IDCT algorithm\n\n");
flags|=TJFLAG_ACCURATEDCT;
}
+ if(!strcmp(argv[i], "-440")) do440=1;
if(!strcasecmp(argv[i], "-rgb")) pf=TJPF_RGB;
if(!strcasecmp(argv[i], "-rgbx")) pf=TJPF_RGBX;
if(!strcasecmp(argv[i], "-bgr")) pf=TJPF_BGR;
dotest(srcbuf, w, h, TJ_420, i, argv[1]);
printf("\n");
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");
for(i=maxqual; i>=minqual; i--)
dotest(srcbuf, w, h, TJ_444, i, argv[1]);
/**
* 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.
+ * Note that 4:4:0 subsampling is not fully accelerated in the libjpeg-turbo
+ * implementation of TurboJPEG.
*/
TJSAMP_440
};