summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-06-29Add input JPEG images for djpeg and jpegtran testsJonathan Wright
Upstream unit tests use the output of cjpeg tests as input for djpeg and jpegtran tests. To avoid the coupling of compression and decompression unit tests, this commit adds the input JPEG images for the djpeg and jpegtran unit tests to the testimages directory. These images are generated from the original images in the testimages directory and are distributed under the same license. Bug: 993876 Change-Id: I1c08432f8891f71d081df284ff83bbc021d8cb72
2020-06-24Refactor jpegtran.c to provide test interfaceJonathan Wright
jpegtran.c contains a standalone program to transcode JPEG images. One use of jpegtran is to generate input for libjpeg-turbo unit tests. This commit refactors jpegtran.c to provide an interface to run the jpegtran code programmatically. A gtest wrapper containing JPEG transcoding unit tests will be introduced in a subsequent commit. Bug: 993876 Change-Id: Iefede222d433e0914b3eb6dc1067684c0232f889
2020-06-24Add gtest wrapper for cjpeg testsJonathan Wright
Add gtests to test JPEG compression code paths. Bug: 993876 Change-Id: I354ab14fd6502adf432bfea32759cd8d062b888e
2020-06-23Refactor cjpeg.c to provide test interfaceJonathan Wright
cjpeg.c contains a standalone program to encode JPEG images. One use of cjpeg is to generate input for libjpeg-turbo unit tests. This commit refactors cjpeg.c to provide an interface to run the cjpeg code programmatically. A gtest wrapper containing JPEG compression unit tests will be introduced in a subsequent commit. Bug: 993876 Change-Id: Ia6ee40042f7953acb5ae6b5b0bc0e08b630f5393
2020-06-23Write tjunittest output files to sdcard on AndroidJonathan Wright
For tjunittest tests to complete successfully, they need to write output image files to disk. On Android, only some parts of the filesystem are write enabled. This commit sets the write path to /sdcard (which is write enabled) when building libjpeg_turbo_unittests for Android. Bug: 993876 Change-Id: I87bb942311610bff089488d3e4d14dac523bf8aa
2020-06-19Move tbench logs from stdout to stderrJonathan Wright
gtest output prints to stdout. Printing unit test logs to stderr allows the two to be easily separated using stream redirection. Bug: 993876 Change-Id: I52d9d04ce7d6d883e9de09595fbe5a6de262c2ca
2020-06-19Add gtest wrapper for tjbench testsJonathan Wright
Add gtests for tiling unit tests that use tjbench. Bug: 993876 Change-Id: I80fe76754bee044a7601c55f2cd25e7e4c2c7e35
2020-06-16Reinstate upstream test image data filesJonathan Wright
These images and data will be used by tests added in subsequent commits. Bug: 993876 Change-Id: Ie4612eea6d0d3804789e1ad1eb9242f3c4cc290b
2020-06-16Refactor tjbench.c to provide test interfaceJonathan Wright
tjbench.c contains a program to benchmark encoding and decoding of JPEG images. As such, the code in tjbench.c was designed to run as a stanalone binary. As well as benchmarking code, tjbench is used to produce image data for unit test input. This commit refactors tjbench.c to provide an interface to run the tjbench code programmatically. A gtest wrapper containing unit tests will be introduced in a subsequent commit. All other global symbols in tjbench.c are marked as 'static' to prevent symbol collision. Bug: 993876 Change-Id: Ib8469d4ee8adee466f0b9d8a9dd696bd5ef7c205
2020-06-16Move tjunittest logs from stdout to stderrJonathan Wright
gtest output prints to stdout. Printing unit test logs to stderr allows the two to be easily separated using stream redirection. Bug: 993876 Change-Id: Ibbf2244d878ff0c9894a65dec2ceae85e254fcd4
2020-06-16Add gtest wrapper for tjunittestsJonathan Wright
Adds a gtest wrapper and GN build configuration for the unit tests in tjunittest.c. Bug: 993876 Change-Id: Ic33c6930de0e0005aebb70cb358823640a35c8b7
2020-06-16Refactor tjunittest.c to provide test interfaceJonathan Wright
tjunittest.c contains unit tests for the TurboJPEG API (which in turn test the underlying libjpeg-turbo code.) These tests were designed to run as a standalone binary. This commit refactors tjunittest.c to provide an interface to run all unit tests individually. This is the first step towards running all tests through the gtest framework. The following files are also reinstated from the upstream libjpeg-turbo project as the tests in tjunittest.c rely on an MD5 checksum: * md5/md5.h * md5/md5.c * md5/md5hl.c Bug: 993876 Change-Id: I6380a8f0ca5db02b40a1235e379cb1e5134becca
2020-04-28Add license type: BSD+zlib+MIT is NOTICE am: 8f13590e2d am: fdfd06bfab am: ↵Bob Badour
c3ac57b560 am: 6d9f2b2abe Change-Id: Ic384c770d380ff9ba8559e484b3c039375af4fcb
2020-04-28Add license type: BSD+zlib+MIT is NOTICE am: 8f13590e2d am: fdfd06bfab am: ↵Bob Badour
c3ac57b560 Change-Id: Id2438b8f4811d9a1d0553c6bd0547897f2716cd5
2020-04-28Add license type: BSD+zlib+MIT is NOTICE am: 8f13590e2d am: fdfd06bfabBob Badour
Change-Id: I8e8ce23a3c14e0e7e503dba7f218024e8523939b
2020-04-28Add license type: BSD+zlib+MIT is NOTICE am: 8f13590e2dBob Badour
Change-Id: Ieb3a72eed08a56f5f2e4d5ccce29431d4617b969
2020-04-27Add license type: BSD+zlib+MIT is NOTICEBob Badour
Single GPL hit is not distributed. Single BEERWARE is merely unclear. Bug: 68860345 Bug: 69058154 Bug: 151953481 Test: no code changes Exempt-From-Owner-Approval: janitorial work Change-Id: Iaa9974be60d06f51b01aca3c979c66efab4852ea
2020-04-10[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into ↵Xin Li
stag-aosp-master am: 0f23be171e -s ours am: f48e53a35a am: 5b599a9db6 Change-Id: I78fc69c457d09ee3700dbd73342f3b6bc287b09e
2020-04-10[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into ↵Xin Li
stag-aosp-master am: 0f23be171e -s ours am: f48e53a35a Change-Id: Ic182f7766aa58cda06ed84610e834b26e702ac3d
2020-04-10[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into ↵Xin Li
stag-aosp-master am: 0f23be171e -s ours am skip reason: subject contains skip directive Change-Id: Iaaea7a4e08f5d151a333892ca66c1ac941049fef
2020-04-09DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-masterXin Li
Bug: 151763422 Change-Id: I2d51236b5e7fe4cfafe4ca15a2677616d5ab16a9
2020-03-30Fix Mac builds of libjpeg-turboChris Blume
Mac builds were failing because they were exporting symbols and we have tooling to make sure we do not accidentally export symbols. The cause of this was a switch from YASM to NASM and libjpeg-turbo not adding :private_extern to Mach-O symbols when using NASM. The fix for this already landed upstream so I am cherrypicking the patch [1]. [1] https://github.com/libjpeg-turbo/libjpeg-turbo/commit/cf54623b08c5bd13e44d8dca30a7a745cfcb954e Change-Id: I93c68dea9ecfe3da94e1f552d565ac04b30aae50
2020-03-27Fix include directories for NASM.Dale Curtis
For some reason the -I. isn't working with JPEG turbo. R=cblume Bug: 766721 Change-Id: Ifa7fb8034bba6221a4428efe4715bdb29f909a5c
2020-03-28Merge "Switch to NASM for libjpeg_turbo."Chris Blume
2020-03-27Switch to NASM for libjpeg_turbo.Dale Curtis
Bug: 766721 Change-Id: I436767e68406d557db3c3e85dcf65ad32c41f59a
2020-03-19[automerger skipped] DO NOT MERGE - Empty merge ↵Xin Li
qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: 0090574051 -s ours am: 012239fe11 am: b0cea1009b Change-Id: Ie16c052da56d08a297ca64a911ecf1fad2aa8eb8
2020-03-19[automerger skipped] DO NOT MERGE - Empty merge ↵Xin Li
qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: 0090574051 -s ours am: 012239fe11 Change-Id: I5e333f977821566b76447fdafe929ed1aa72ff8c
2020-03-19DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into ↵Xin Li
stag-aosp-master am: 0090574051 Change-Id: I8706a57e826ae2ab3f3710aa4c3f8bcd862bfb51
2020-03-19[automerger skipped] DO NOT MERGE - Empty merge ↵Xin Li
qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: 0090574051 -s ours am skip reason: subject contains skip directive Change-Id: If1394ae2f6a5465c3834a480d459d37b8d26b419
2020-03-18DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-masterXin Li
Bug: 151763422 Change-Id: I656d6877c200fbd8c7dc707cc117fcb3950bf80a
2020-03-11Remove mips workarounds. am: d45e9de55f am: 173fca7f51 am: 8b8ae043e3 am: ↵Automerger Merge Worker
d4d93cba52 Change-Id: I2e785cc82f5324ac30f3454f915140009f89ea6f
2020-03-11Remove mips workarounds. am: d45e9de55f am: 173fca7f51 am: 8b8ae043e3Automerger Merge Worker
Change-Id: I041a89b0dc81d42e8deb7f542e0761ae8b3f14fb
2020-03-11Remove mips workarounds. am: d45e9de55f am: 173fca7f51Automerger Merge Worker
Change-Id: I765472bfd4035c6d8a900192f97879181ba2cd78
2020-03-11Remove mips workarounds. am: d45e9de55f am: 173fca7f51Automerger Merge Worker
Change-Id: Ief0610a293dfb6fd64b75b7e8cbec5fecacd0a99
2020-03-11Remove mips workarounds. am: d45e9de55fAutomerger Merge Worker
Change-Id: If60bb8dbdb1127dd4814f7530c83518bd39239e3
2020-03-11Remove mips workarounds.Elliott Hughes
We haven't supported mips in years, and are trying to remove cruft from the build system. Test: treehugger Change-Id: I7f6600a7309b3ec5c15e5e56500ac3242835c098
2020-01-27Switch scroggo@chromium to scroggo@googleLeon Scroggins III
I am switching everything to my Google account. Change-Id: I1ad6a72552110f05fb2c7df96ae7189daeb77a2f
2019-12-12Implement fast IDCT using Arm NEON intrinsicsJonathan Wright
Adds an Arm NEON intrinsics implementation of the 'fast' not-so- accurate Inverse Discrete Cosine Transform (IDCT). Removes the NEON assembly implementations for both AArch32 and AArch64. Bug: 922430 Change-Id: I0dd45eec77b0e0eb3d3819953f82ec159901c6bd
2019-12-11Precompute DCT block output pointers in IDCT functionsJonathan Wright
Computes the output pointer values for storing DCT blocks ahead of time so the compiler knows that the storage locations for each row do not overlap and are not changed by storing each successive row of coefficients. The base pointer can be loaded once, rather than being reloaded after storing each row of the DCT block - breaking a memory dependency chain and increasing overall decode performance. Bug: 922430 Change-Id: I93030fd48f048a28e1eb57d234054f3f85b1bf88
2019-10-30[automerger skipped] DO NOT MERGE - ↵Xin Li
qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master am: 9ac75d8528 am: c85a853564 -s ours am skip reason: subject contains skip directive Change-Id: Id512c503d5e28ea5bd7b6b68caa9ee79a17586e4
2019-10-30DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into ↵Xin Li
stage-aosp-master am: 9ac75d8528 Change-Id: I7259f825dc9b3540f7683407d1af151124af51f3
2019-10-30DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into ↵Xin Li
stage-aosp-master Bug: 142003500 Change-Id: I67522db54ed4f291b96566d2b49153c211d034c3
2019-10-19Implement slow IDCT using Arm NEON intrinsicsJonathan Wright
Adds an Arm NEON intrinsics implementation of the 'slow' accurate inverse discrete cosine transform (IDCT). The NEON assembly implementations are removed for both AArch32 and AArch64. Bug: 922430 Change-Id: Ic35eb8f0e5dee0a8a1f71b9ffc303be5e2d3e392
2019-10-07Add "# COMPONENT" to libjpeg OWNERS fileEric Foo
See https://tinyurl.com/yxau5sc4 for context. Bug: 977050 Change-Id: I3451c6d5d4980f0eddb5e0c21344e8b13a86e4ae
2019-09-16Implement 4x4 IDCT using Arm NEON intrinsicsJonathan Wright
Adds an Arm NEON intrinsics implementation of the 4x4 reduced-size Inverse Discrete Cosine Transform (IDCT). Removes the NEON assembly implementations for both AArch32 and AArch64. Bug: 922430 Change-Id: I39bd4fc9165224af1963dc35681bd1ce4b7b9267
2019-09-11[automerger skipped] [RESTRICT AUTOMERGE] tjbench.exe: Fix decompression ↵DRC
access violation am: 31f2242ed3 am: 7fcb8d19a0 am: ac4de6ba3d -s ours am: 9cc205d55c -s ours am: 3911ad3369 am: 0f14204411 am: 1c8190b9b3 am: f62296b70a -s ours am skip reason: subject contains skip directive Change-Id: Ib9eb98ba42e44a172ed85f122cff08dd45cb8f74
2019-09-11[automerger skipped] [RESTRICT AUTOMERGE] TJBench: Fix errors when decomp. ↵DRC
files w/ ICC data am: 87ccce3a16 am: 8fb8607759 am: a3292c09aa -s ours am: d4aceabe8a -s ours am: e2b87474fe am: 376ca1bdf4 am: 2c20cade5c am: 50648aa826 -s ours am skip reason: subject contains skip directive Change-Id: Iada37a1ede98b5d43e08b176bd84e0aad103a87d
2019-09-11[automerger skipped] [RESTRICT AUTOMERGE] Prevent integer overflows when ↵Bryan Ferris
handling large images am: b1ab8ba6d9 am: 622fa8362f am: f6fe132d89 -s ours am: ac6efc4641 -s ours am: 2dbb0b8222 am: f2caf151c5 am: f55c84ab7f am: 1c70f7555f -s ours am skip reason: subject contains skip directive Change-Id: Ibb63061e67beb3204b6e685058c2a0dd889008f1
2019-09-11[automerger skipped] [RESTRICT AUTOMERGE] Prevent integer overflows when ↵Bryan Ferris
handling large images am: be6e36b97f -s ours am: 08f226f6dc am: 58e1a6c166 am: 30a5a2d537 am: 3f66285c22 -s ours am skip reason: subject contains skip directive Change-Id: I9d244a6b2c04b4e1263a25dafc93ef3b6aa19060
2019-09-11[automerger skipped] [RESTRICT AUTOMERGE] tjbench.exe: Fix decompression ↵DRC
access violation am: 31f2242ed3 am: 7fcb8d19a0 am: ac4de6ba3d -s ours am: 9cc205d55c -s ours am: 3911ad3369 am: 0f14204411 am: 1c8190b9b3 Change-Id: I72a0b25d22dbafc7583463be8ba9c5ecdc364d9b