Commit Graph

61 Commits

Author SHA1 Message Date
DRC
bc4d369b49 If the output buffer in the TurboJPEG destination manager was allocated by the destination manager and is being reused from a previous compression operation, then we need to get the buffer size from the previous operation, since the calling program doesn't know the actual buffer size.
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1368 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-21 15:51:47 +00:00
DRC
ce6f3d8cd2 Refactored YUVImage Java class so that it supports both unified YUV image buffers as well as separate YUV image planes; modified the JNI functions accordingly and added new helper functions to the TurboJPEG C API (tjPlaneWidth(), tjPlaneHeight(), tjPlaneSizeYUV()) to facilitate those modifications; changed potentially confusing "component width" and "component height" terms to "plane width" and "plane height" and modified variable names in turbojpeg.c to reflect this; numerous other documentation tweaks
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1360 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-17 12:23:49 +00:00
DRC
4db50792eb Oops. Parameter name is "strides", not "stride"
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1345 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-12 15:52:51 +00:00
DRC
8c2c415847 Reformat TurboJPEG C API documentation to improve ease of maintenance and to make it more consistent with the javadoc formatting; fix minor error in tjCompressFromYUV() prototype.
git-svn-id: svn://svn.code.sf.net/p/libjpeg-turbo/code/trunk@1344 632fc199-4ca6-4c93-a231-07263d6284db
2014-08-18 01:40:23 +01:00
DRC
ab62cf7ba5 Extend the TurboJPEG C API to support handling YUV images stored in separate image planes instead of a unified buffer 2014-08-11 18:05:41 +00:00
DRC
22505838cb Clean up and consolidate notes regarding the YUV image format. This also corrects a factual error regarding the padding of the luminance plane-- because we now support 4:1:1, the component width is not necessarily padded to the nearest multiple of 2 if horizontal subsampling is used. 2014-08-10 20:12:17 +00:00
DRC
11fe81d0df Clean up notes using the doxygen @note command 2014-08-10 18:30:52 +00:00
DRC
0d25e86574 Remove trailing spaces (+ one additional tab in TJUnitTest.java that was missed in the previous commit) 2014-05-09 18:06:58 +00:00
DRC
960ea8fb66 As with tjDecompressToYUV*(), tjCompressFromYUV() also conditionally uses an intermediate buffer if the source image dimensions do not fall on MCU boundaries. 2014-03-15 08:48:53 +00:00
DRC
5c2f2cccb7 Implement a YUV decode function in the TurboJPEG API, to be symmetric with tjEncodeYUV(). 2014-02-28 09:17:14 +00:00
DRC
540789427c Per the conventions of the image compression and digital video communities, use "YCbCr" to describe the JPEG colorspace and "YUV" to describe an image format consisting of Y, Cb, and Cr planes (this partially reverts r960.) 2013-11-25 21:12:23 +00:00
DRC
b767b5e6bb Deprecate and undocument the FORCE{MMX|SSE|SSE2|SSE3} flags. These were originally introduced in TurboJPEG/IPP as a way to override the automatic CPU selection in the underlying IPP codec, which was closed source. They are not meaningful anymore, since libjpeg-turbo provides environment variables to accomplish the same thing and since it no longer necessarily uses x86 SIMD code behind the scenes. 2013-10-31 07:11:39 +00:00
DRC
b3633e930b Extend the TurboJPEG C API to support compressing JPEG images from YUV planar images 2013-10-30 23:02:57 +00:00
DRC
ff3d754f29 Wordsmithing 2013-08-23 06:38:59 +00:00
DRC
0fb3247f9a Add CMYK support to the TurboJPEG Java API & clean up a few things in the C API 2013-08-23 04:45:43 +00:00
DRC
24668df1df Add CMYK support to the TurboJPEG C API 2013-08-23 02:49:25 +00:00
DRC
5ca8bf8738 Add 4:1:1 subsampling support in the TurboJPEG C API 2013-08-18 10:19:00 +00:00
DRC
f4cdf5e8a2 Wordsmithing 2013-08-18 09:31:45 +00:00
DRC
b34b2ad711 Add note regarding the fact that 4:4:0 lacks full SIMD support; Add an option for benchmarking 4:4:0 subsampling in tjbench. 2013-08-18 09:15:37 +00:00
DRC
da64629c62 Extend the TurboJPEG C API to support generating YUV images with arbitrary padding and to support image scaling when decompressing to YUV 2013-04-26 10:33:29 +00:00
DRC
afa79bd62f Further doc tweaks 2013-04-26 08:46:46 +00:00
DRC
c8a3df184e Subtle point, but since libjpeg-turbo 1.3 now supports scaling factors > 1, the width and height specified in tjDecompress2() are not necessarily smaller than the JPEG width/height. 2013-04-26 05:35:22 +00:00
DRC
019d51d4f1 Add flags to the TurboJPEG API that allow the caller to force the use of either the fast or the accurate DCT/IDCT algorithms in the underlying codec. 2012-06-29 23:46:38 +00:00
DRC
c1e4151607 Added new alpha channel colorspace constants/pixel formats, so applications can specify that they need the unused byte in a 4-component RGB output buffer set to 0xFF when decompressing. 2011-12-19 02:21:03 +00:00
DRC
51b8cd674a "which"="that" 2011-12-15 13:12:59 +00:00
DRC
de5d1ec4e4 Wordsmithing 2011-09-20 18:20:43 +00:00
DRC
f343d7332a Implement custom filter callback in Java 2011-09-20 05:02:19 +00:00
DRC
85a878bf07 Implement a custom DCT filter callback for lossless transforms 2011-09-17 00:18:31 +00:00
DRC
489864aefa Re-work TJBUFSIZE() to take into account the level of chrominance subsampling 2011-07-12 03:17:23 +00:00
DRC
994f49d8c2 Added "See also" for tjAlloc() and tjFree() 2011-05-24 17:00:15 +00:00
DRC
411c62396d Add new API functions, tjAlloc() and tjFree(), which allow memory to be allocated and freed using a method of the library's choosing. At the moment, the primary purpose for this is to avoid allocating/freeing memory across the DLL boundary on Windows. 2011-05-24 16:52:47 +00:00
DRC
abeb01d5f1 Don't require buffer size to be preset if using TJFLAG_NOREALLOC 2011-05-24 10:17:32 +00:00
DRC
34e538a8ca Prevent header from being included multiple times 2011-05-24 09:15:44 +00:00
DRC
3ec2702bfc Clean up constants so that flags, pixel formats, etc. are clearly differentiated; Update documentation accordingly; Name the enums to make it easier to reference them in the docs and clean up the references accordingly; Set Doxygen option to force a detailed description for the constants to always be generated 2011-05-21 15:34:54 +00:00
DRC
aa92628cd4 Completely refactored the TurboJPEG C API so that it uses pixel formats instead of the clunky pixel size + flags combination to define the pixel size and component order. tjCompress2() and tjTransform() can also now grow the JPEG buffer as needed, which can allow programs to save memory by not pre-allocating the "worst-case" buffer size calculated by TJBUFSIZE(). Converted API documentation to Doxygen. There is no legacy code remaining, so the refactored version of the library has been re-licensed under a BSD-style license. 2011-05-21 14:37:15 +00:00
DRC
552dd27bde tjTransform() was not working properly if r.w=0 or r.h=0 2011-03-15 20:09:47 +00:00
DRC
4c5eae3bd0 Wordsmithing 2011-03-15 19:33:43 +00:00
DRC
074a6f24bb Handle 4:4:0 (transposed 4:2:2 subsampling) 2011-03-04 12:52:45 +00:00
DRC
4be061b162 Oops. Left out the all-important transform structures 2011-03-02 09:27:49 +00:00
DRC
66b6d80ed6 Since lossless transforms have such a high fixed performance cost, implement a mechanism for performing more than one at a time on the same source image. 2011-03-02 09:22:41 +00:00
DRC
92df122286 Wordsmithing and general cleanup 2011-03-02 09:05:09 +00:00
DRC
be085e08b3 tjGetScaledSize() would never be able to accommodate scaling factors > 1, so replace it with a function that returns a list of fractional scaling factors that TurboJPEG supports. 2011-03-01 09:53:07 +00:00
DRC
3f2ef301c4 Expose libjpeg lossless transform feature in TurboJPEG/OSS 2011-02-26 22:02:37 +00:00
DRC
c8ddbca289 "tjScaledSize"="tjGetScaledSize" (again) 2011-02-26 20:15:27 +00:00
DRC
02156d7c53 "tjScaledSize"="tjGetScaledSize" 2011-02-26 19:53:58 +00:00
DRC
3405865cd2 Replace the TJ_YUV flag with two new API functions 2011-02-25 02:08:23 +00:00
DRC
e7c15f3e41 2011-02-22 10:28:18 +00:00
DRC
38218222cd Make the scaling API a bit more friendly 2011-02-22 06:41:29 +00:00
DRC
05c1af2f57 "TurboJPEG/OSS"="TurboJPEG", since the TurboJPEG header is used with other codecs besides libjpeg-turbo 2011-02-22 00:36:04 +00:00
DRC
9eecea2a8e Add TJBUFSIZEYUV() convenience function 2011-02-22 00:16:14 +00:00