Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
da555a2
Optimize opencv dft by vectorizing radix2 and radix3.
legrosbuffle Aug 20, 2020
e3da181
Enable a GMainLoop when capturing using GStreamer
michaelgruner Oct 2, 2020
716450c
Merge pull request #18158 from legrosbuffle:3.4-vectorize-dft-radix
alalek Oct 30, 2020
099ad1a
G-API: Desync -- fix the queue saturation problem
dmatveev Oct 28, 2020
2a3cdba
Merge pull request #18701 from TolyaTalamanov:at/introduce-config-for…
TolyaTalamanov Nov 3, 2020
a110ede
Merge pull request #18716 from dmatveev:dm/upstream_onnx
dmatveev Nov 3, 2020
039795b
Change naming of keypoints comparator
S-o-T Nov 3, 2020
24d60da
Merge pull request #18724 from S-o-T:fix_confusing_naming_for_keypoin…
alalek Nov 3, 2020
07736c9
Merge pull request #18719 from dmatveev:dm/upstream_desync_fix
alalek Nov 5, 2020
21a8d95
videoio: added frameSize to MFX capture
mshabunin Nov 5, 2020
39ecd96
Merge pull request #18736 from mshabunin:mfx-frame-size-34
alalek Nov 5, 2020
a6e15b2
cmake: prefer using Eigen configuration files
alalek Oct 29, 2020
fb69620
Merge pull request #18699 from alalek:support_ceres_2.0.0
alalek Nov 5, 2020
7459613
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 5, 2020
d9877ef
Added rmat.cpp and media.cpp to files being built in standalone
Nov 5, 2020
eb24575
Use explicit opset of Unsqueeze from nGraph
rkazants Nov 6, 2020
ad71a16
fix truncate threshold example display issue in py_tutorials
junxnone Nov 5, 2020
90524a8
Merge pull request #18740 from rgarnov:rg/fix_rmat_media_missing_in_s…
alalek Nov 6, 2020
ec5065e
Fixed Inputs/OutputsDataMap conversion
AsyaPronina Nov 6, 2020
527cedd
Merge pull request #18741 from rkazants:fix/rkazants/39665_unsqueeze
alalek Nov 6, 2020
127a44f
Merge pull request #18732 from junxnone:master
alalek Nov 6, 2020
e12adcd
Merge pull request #18742 from AsyaPronina:asyadev/fix_preprocessing_…
alalek Nov 6, 2020
bb5b628
Use explicit opset of Unsqueeze from nGraph
rkazants Nov 6, 2020
caa1658
Merge pull request #18746 from alalek:backport_18741
alalek Nov 7, 2020
bed5deb
dnn: use OpenVINO 2021.1 defines
alalek Nov 7, 2020
df7bf9a
Fix typo in OpenCVFindOpenBLAS.cmake file.
catree Nov 8, 2020
083edb2
Merge pull request #18753 from catree:fix_FindOpenBLAS_typo
alalek Nov 8, 2020
c3e7a23
Merge pull request #18752 from alalek:dnn_defines_openvino_2021.1.0
alalek Nov 8, 2020
a104e7c
doxygen: adjust IMAGE_PATH, allow custom OPENCV_DOCS_EXTRA_IMAGE_PATH
alalek Nov 9, 2020
08271e5
Fix code snippets inclusion into video tutorials
GArik Nov 10, 2020
c694171
Merge pull request #18764 from alalek:doxygen_image_path
alalek Nov 10, 2020
5f1ca33
Merge pull request #18652 from OrestChura:oc/morphologyEx
OrestChura Nov 10, 2020
30d91e8
Merge pull request #18765 from GArik:tutorials
alalek Nov 10, 2020
ef32d7f
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 10, 2020
5dae278
bindings: "inline namespace"
alalek Nov 7, 2020
1b0dca9
Fix issues found by static analysis
mshabunin Nov 10, 2020
3fc1c73
Merge pull request #18510 from OrestChura:oc/boundingRect
OrestChura Nov 11, 2020
5564d73
Merge pull request #18770 from mshabunin:fix-kw-1
alalek Nov 11, 2020
724001a
Added multidimensional RMat::View steps
Nov 3, 2020
d986cc4
calib3d: uninitialzed fields in usac
mshabunin Nov 12, 2020
ed3591e
Merge pull request #18774 from alalek:bindings_namespace_inline
alalek Nov 12, 2020
76cf31b
Merge pull request #18786 from mshabunin:fix-kw-2
alalek Nov 12, 2020
d9c5b85
Use in-place sort
aitikgupta Nov 13, 2020
1f8f0ab
Merge pull request #18795 from aitikgupta:stiching-bug
alalek Nov 13, 2020
011d8e8
videoio: Support Orbbec Astra 3D cameras using OpenNI2 API
GArik Nov 9, 2020
0e4b5b8
Added support of 1x1x1xN input for parseYolo
Nov 4, 2020
41c2669
java: robust code generation
alalek Nov 12, 2020
41e906d
Merge pull request #18729 from rgarnov:rg/extend_parse_yolo
alalek Nov 13, 2020
4d00ed8
Merge pull request #18771 from chrisballinger:xcode-12-fixes
chrisballinger Nov 13, 2020
a3f3fbe
add rudimentary support for uEye cameras
andy-held Oct 18, 2020
389495f
Merge pull request #18499 from RidgeRun:optional-gstreamer-mainloop
alalek Nov 13, 2020
d23435b
Merge pull request #18798 from alalek:java_robust_binding_code
alalek Nov 13, 2020
61144f9
Merge pull request #18783 from sl-sergei:fix_conv1d
sl-sergei Nov 13, 2020
a7c150e
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 13, 2020
3826158
java: 'namespace_' class prefix, support inner classes
alalek Nov 13, 2020
05c011e
Small typo-fix
aitikgupta Nov 14, 2020
79a8201
samples: cmake: digits needs opencv_dnn module to build
quaresmajose Nov 1, 2020
cea137f
Merge pull request #18806 from quaresmajose:cmake
alalek Nov 14, 2020
2e7ef6f
objc: fix std::string handling
alalek Nov 14, 2020
9e84b86
cmake: update objc generator scripts
alalek Nov 14, 2020
f58f36d
Changed sample code, fixes #18807
AntonVeselskyi Nov 14, 2020
892cac9
Merge pull request #18809 from alalek:objc_string
alalek Nov 14, 2020
90bea15
objc: robust code generation
alalek Nov 14, 2020
564d1a0
Merge pull request #18802 from aitikgupta:typo
alalek Nov 14, 2020
b455e1c
Merge pull request #18810 from AntonVeselskyi:bugfix-18807
alalek Nov 14, 2020
71db9d3
Merge pull request #18801 from alalek:java_improve_nested_classes_nam…
alalek Nov 14, 2020
cfbdbff
objc: rework headers import
alalek Nov 14, 2020
936530f
Merge pull request #18808 from alalek:objc_robust_binding_code
alalek Nov 15, 2020
24f2b7d
objc(test): repair binary resource files
alalek Nov 16, 2020
dde3cb3
java: workaround handling of base class
alalek Nov 16, 2020
786cecf
Merge pull request #18817 from alalek:fixup_objc_tests
alalek Nov 16, 2020
3da1e8b
Merge pull request #18805 from alalek:cmake_objc_generator
alalek Nov 16, 2020
56074c2
Merge pull request #18763 from GArik:orbbec
alalek Nov 16, 2020
14aa8af
Merge pull request #18811 from alalek:objc_headers_import
alalek Nov 16, 2020
58268b6
Added ND GMatDesc serialization test
Oct 28, 2020
d0b6637
Merge pull request #18720 from rgarnov:rg/nd_rmat_view
alalek Nov 16, 2020
e4a9ad1
Merge pull request #18688 from rgarnov:rg/add_gmatdesc_s11n_nd_test
alalek Nov 16, 2020
0647774
Merge pull request #18744 from mpashchenkov:mp/onnx-dynamic-input-tensor
Nov 16, 2020
4c9e372
objc: skip unsupported inner namespaces
alalek Nov 15, 2020
464d53b
python: emit "string" => "std::string"
alalek Nov 16, 2020
b4b2a27
Merge pull request #18756 from andy-held:add_ueye_capture
alalek Nov 16, 2020
3a184ae
[ONNX] Added handler for int32 tensors
l-bat Nov 17, 2020
efd556b
Merge pull request #18818 from alalek:objc_skip_nested_classes_namesp…
alalek Nov 17, 2020
60c76cc
Merge pull request #18822 from alalek:java_workaround_base_class_issue
alalek Nov 17, 2020
b5c1621
Merge pull request #18823 from alalek:issue_contrib_2750
alalek Nov 17, 2020
2b82f8f
Merge pull request #18296 from sl-sergei:fix_16783
sl-sergei Nov 17, 2020
32e7ef8
Add fixes and tests for different layers
sl-sergei Nov 17, 2020
025a964
Merge pull request #18830 from l-bat:issue_18785
alalek Nov 17, 2020
23baf1a
dnn: fix High-Level public API (cv::dnn::Model class)
alalek Oct 31, 2020
3cdf926
disable Conv1d test on NGRAPH/MYRIAD
sl-sergei Nov 17, 2020
72d0608
[ONNX] Added Reduce ops for batch and channel
l-bat Nov 17, 2020
2b558a3
core: fix F16C compilation check
alalek Nov 11, 2020
b866d0d
Merge pull request #18793 from dmatveev:dm/in_graph_metadata
dmatveev Nov 17, 2020
fe9a8eb
Fix typo 'Applicatioin'
ichisadashioko Nov 17, 2020
2c6a2f0
Merge pull request #18790 from OrestChura:oc/fitLine
OrestChura Nov 17, 2020
8357e86
Merge pull request #18828 from ichisadashioko:fix-calibration-sample-…
alalek Nov 17, 2020
d266fee
3rdparty: libjpeg-turbo 2.0.5 => 2.0.6
alalek Nov 17, 2020
8e1e08e
Merge pull request #18833 from sl-sergei:disable_conv1d_wb_test
alalek Nov 17, 2020
b645fc1
Merge pull request #18782 from alalek:issue_18779
alalek Nov 17, 2020
a316b11
Merge pull request #18220 from Omar-AE:hddl-supported
Omar-AE Nov 17, 2020
474a672
dnn(test): skip gather_multi_output test on Myriad
alalek Nov 17, 2020
34909d9
Merge pull request #18840 from alalek:dnn_test_skip_myriad_gather_mul…
alalek Nov 17, 2020
f7e8dc7
Merge pull request #18834 from l-bat:update_reducemax
alalek Nov 17, 2020
a783bf4
Merge pull request #18839 from alalek:update_libjpeg-turbo
alalek Nov 17, 2020
4f3130f
Merge pull request #18145 from sl-sergei:fix_17914
alalek Nov 17, 2020
9acbfc6
Merge pull request #18711 from alalek:dnn_fix_model_public_api
alalek Nov 17, 2020
9485113
pre: OpenCV 3.4.13 (version++)
alalek Nov 16, 2020
301c078
Merge pull request #18824 from alalek:update_version_3.4.13-pre
alalek Nov 17, 2020
ce8027c
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 17, 2020
94e8a08
Merge pull request #18819 from mpashchenkov:mp/ocv-gapi-skip-centos-t…
Nov 17, 2020
aab6362
Merge pull request #18838 from alalek:video_tracking_api
alalek Nov 18, 2020
2687a2b
pre: OpenCV 4.5.1 (version++)
alalek Nov 16, 2020
e8536c4
Merge pull request #18825 from alalek:update_version_4.5.1-pre
alalek Nov 18, 2020
3c25fd1
Update and expand erosion / dilation tutorial
malliaridis Jul 14, 2020
cc7f17f
update documentation
sturkmen72 Oct 28, 2020
87ed750
Merge pull request #17839 from malliaridis:master
alalek Nov 18, 2020
328883b
Merge pull request #18675 from sturkmen72:update-documentation
alalek Nov 18, 2020
fef2376
Fixed issue with Epipolar Geometry Tutorial
Nov 18, 2020
b86f129
Fixed Test_Model.DetectionOutput
l-bat Nov 19, 2020
f8c7862
Add tutorial on how to use Orbbec Astra 3D cameras
GArik Nov 9, 2020
dbfa1bf
Merge pull request #18863 from l-bat:lb/fix_test
alalek Nov 19, 2020
599bb9c
Merge pull request #18848 from IanMaquignaz:fixEpipolarGeometryTutorial
alalek Nov 19, 2020
bb067c7
Merge pull request #18849 from IanMaquignaz:fix_findFundamentalMat_pa…
IanMaquignaz Nov 19, 2020
adafb20
Merge pull request #18854 from GArik:orbbec
alalek Nov 19, 2020
11cfa64
Merge pull request #18335 from chargerKong:master
chargerKong Nov 19, 2020
34c4e45
Added small cmake fix
Nov 19, 2020
c4c9cdd
Merge pull request #18855 from Rightpoint:feature/colejd/add-apple-co…
colejd Nov 19, 2020
c996fd1
Small improvements to persistence-API doc
fegorschIGD Nov 9, 2020
12fd382
Merge pull request #18868 from mpashchenkov:mp/onnx-small-cmake-fix
alalek Nov 20, 2020
049b50d
Merge pull request #18858 from fegorsch:improve-persistence-doc
alalek Nov 20, 2020
ac24a72
Merge pull request #18841 from JulienMaille:patch-2
JulienMaille Nov 20, 2020
2255973
Merge pull request #18371 from nathanrgodwin:sqpnp_dev
nathanrgodwin Nov 20, 2020
e05c2e0
Fix Reduce Mean error for MobileNets DNN
joegeisbauer Nov 17, 2020
0105f8f
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 20, 2020
bc434e8
calib3d: eliminate 'register' build warning
alalek Nov 20, 2020
ce31c9c
core(matrix): Negative values checks
i386x Apr 14, 2020
1b3dd8f
Merge pull request #18882 from alalek:build_warning_calib3d_drop_regi…
alalek Nov 20, 2020
0f8ab05
enable fusion tests, update thresholds and fix missed eltwise fusions
YashasSamaga Nov 21, 2020
632a08f
Fix typo in docs
HollowMan6 Nov 21, 2020
5a3a915
Remove unnecessary condition (will never reach)
oravital7 Nov 22, 2020
ae42815
Merge pull request #18887 from HollowMan6:patch-1
alalek Nov 22, 2020
ac418e9
cmake: update condition for find_package(Eigen3 CONFIG)
alalek Nov 22, 2020
0401d59
Merge pull request #18845 from joegeisbauer:fix_reduce_mean_index_error
alalek Nov 23, 2020
bf0846f
Merge pull request #18895 from oravital7:flip-module
alalek Nov 23, 2020
359ecda
Merge pull request #18896 from alalek:cmake_fix_eigen_detection
alalek Nov 23, 2020
eafe6cc
objc: fix handling of std::vector<std::vector<T>> return type
alalek Nov 23, 2020
e1a8fc0
Merge pull request #18905 from alalek:objc_fix_return_type_handling
alalek Nov 24, 2020
f4f462c
Merge pull request #18862 from sl-sergei:support_pool1d
sl-sergei Nov 24, 2020
19d825a
Merge pull request #18904 from mpashchenkov:mp/ocv-gapi-skip-gm-tests
Nov 24, 2020
85b0fb2
Merge pull request #18826 from Rightpoint:feature/colejd/build-cataly…
colejd Nov 24, 2020
0800f6f
videoio: add missing getCaptureDomain() methods
alalek Nov 24, 2020
c08e38a
fix missing addref() in ocl::Context::create(str)
diablodale Nov 25, 2020
d65c6af
Merge pull request #18907 from diablodale:exec_context_create_addref
alalek Nov 25, 2020
f28895c
doc: Fix example code using deprecated xrange
Nov 25, 2020
3fd0d0d
Merge pull request #18918 from gabrielnhn:patch-2
alalek Nov 25, 2020
f601e81
Merge pull request #18914 from alalek:videoio_fix_missing_get_capture…
alalek Nov 25, 2020
387a76b
build: xcode 12 support, cmake fixes
alalek Nov 25, 2020
7afd486
gapi: eliminate std::rand() and RAND_MAX from tests
alalek Nov 26, 2020
8c5b3c4
Merge pull request #17077 from i386x:check-negative-values
alalek Nov 26, 2020
3c9d03c
Merge pull request #18929 from alalek:gapi_test_eliminate_rand
alalek Nov 26, 2020
ece14ea
Removed redundant call of handleNewStream in streaming executor
Nov 26, 2020
2cf2456
dnn(test): skip unstable GatherMultiOutput OCL_FP16 test
alalek Nov 26, 2020
7efc001
gapi(test): avoid anonymous namespace types as template parameters
alalek Nov 26, 2020
0cc92bd
Merge pull request #18922 from alalek:3.4-xcode12
alalek Nov 26, 2020
5c987e4
Merge pull request #18924 from alalek:4.x-xcode12
alalek Nov 26, 2020
7c78c59
Merge pull request #18939 from alalek:unstable_test_18937
alalek Nov 27, 2020
df18431
Merge pull request #18285 from YashasSamaga:cuda4dnn-update-tests
alalek Nov 27, 2020
f90673e
Merge pull request #18938 from alalek:issue_18865
alalek Nov 27, 2020
23be514
Merge pull request #18935 from rgarnov:rg/remove_double_handle_new_st…
alalek Nov 27, 2020
2155296
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
alalek Nov 27, 2020
7521f20
Merge pull request #18762 from TolyaTalamanov:at/support-garray
TolyaTalamanov Nov 27, 2020
95ce8f4
Merge pull request #17851 from anton-potapov:sole_tbb_executor
anton-potapov Nov 30, 2020
986ad4f
Merge pull request #18857 from OrestChura:oc/kmeans
OrestChura Nov 30, 2020
74b6646
GAPI: reuse copy_through_move_t in the gasync.cpp file
anton-potapov Nov 30, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions 3rdparty/libjpeg-turbo/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ ocv_warnings_disable(CMAKE_C_FLAGS -Wunused-parameter -Wsign-compare -Wshorten-6

set(VERSION_MAJOR 2)
set(VERSION_MINOR 0)
set(VERSION_REVISION 5)
set(VERSION_REVISION 6)
set(VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION})
set(LIBJPEG_TURBO_VERSION_NUMBER 2000005)
set(LIBJPEG_TURBO_VERSION_NUMBER 2000006)

string(TIMESTAMP BUILD "opencv-${OPENCV_VERSION}-libjpeg-turbo")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
Expand Down
2 changes: 1 addition & 1 deletion 3rdparty/libjpeg-turbo/LICENSE.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ best of our understanding.
The Modified (3-clause) BSD License
===================================

Copyright (C)2009-2019 D. R. Commander. All Rights Reserved.
Copyright (C)2009-2020 D. R. Commander. All Rights Reserved.
Copyright (C)2015 Viktor Szathmáry. All Rights Reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
22 changes: 8 additions & 14 deletions 3rdparty/libjpeg-turbo/README.ijg
Original file line number Diff line number Diff line change
Expand Up @@ -223,12 +223,12 @@ https://www.iso.org/standard/54989.html and http://www.itu.int/rec/T-REC-T.871.
A PDF file of the older JFIF 1.02 specification is available at
http://www.w3.org/Graphics/JPEG/jfif3.pdf.

The TIFF 6.0 file format specification can be obtained by FTP from
ftp://ftp.sgi.com/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation scheme
found in the TIFF 6.0 spec of 3-June-92 has a number of serious problems.
IJG does not recommend use of the TIFF 6.0 design (TIFF Compression tag 6).
Instead, we recommend the JPEG design proposed by TIFF Technical Note #2
(Compression tag 7). Copies of this Note can be obtained from
The TIFF 6.0 file format specification can be obtained from
http://mirrors.ctan.org/graphics/tiff/TIFF6.ps.gz. The JPEG incorporation
scheme found in the TIFF 6.0 spec of 3-June-92 has a number of serious
problems. IJG does not recommend use of the TIFF 6.0 design (TIFF Compression
tag 6). Instead, we recommend the JPEG design proposed by TIFF Technical Note
#2 (Compression tag 7). Copies of this Note can be obtained from
http://www.ijg.org/files/. It is expected that the next revision
of the TIFF spec will replace the 6.0 JPEG design with the Note's design.
Although IJG's own code does not support TIFF/JPEG, the free libtiff library
Expand All @@ -243,14 +243,8 @@ The most recent released version can always be found there in
directory "files".

The JPEG FAQ (Frequently Asked Questions) article is a source of some
general information about JPEG.
It is available on the World Wide Web at http://www.faqs.org/faqs/jpeg-faq/
and other news.answers archive sites, including the official news.answers
archive at rtfm.mit.edu: ftp://rtfm.mit.edu/pub/usenet/news.answers/jpeg-faq/.
If you don't have Web or FTP access, send e-mail to mail-server@rtfm.mit.edu
with body
send usenet/news.answers/jpeg-faq/part1
send usenet/news.answers/jpeg-faq/part2
general information about JPEG. It is available at
http://www.faqs.org/faqs/jpeg-faq.


FILE FORMAT COMPATIBILITY
Expand Down
21 changes: 11 additions & 10 deletions 3rdparty/libjpeg-turbo/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Background
==========

libjpeg-turbo is a JPEG image codec that uses SIMD instructions to accelerate
baseline JPEG compression and decompression on x86, x86-64, ARM, PowerPC, and
baseline JPEG compression and decompression on x86, x86-64, Arm, PowerPC, and
MIPS systems, as well as progressive JPEG compression on x86 and x86-64
systems. On such systems, libjpeg-turbo is generally 2-6x as fast as libjpeg,
all else being equal. On other types of systems, libjpeg-turbo can still
Expand Down Expand Up @@ -179,8 +179,8 @@ supported and which aren't.

NOTE: As of this writing, extensive research has been conducted into the
usefulness of DCT scaling as a means of data reduction and SmartScale as a
means of quality improvement. The reader is invited to peruse the research at
<http://www.libjpeg-turbo.org/About/SmartScale> and draw his/her own conclusions,
means of quality improvement. Readers are invited to peruse the research at
<http://www.libjpeg-turbo.org/About/SmartScale> and draw their own conclusions,
but it is the general belief of our project that these features have not
demonstrated sufficient usefulness to justify inclusion in libjpeg-turbo.

Expand Down Expand Up @@ -287,12 +287,13 @@ following reasons:
(and slightly faster) floating point IDCT algorithm introduced in libjpeg
v8a as opposed to the algorithm used in libjpeg v6b. It should be noted,
however, that this algorithm basically brings the accuracy of the floating
point IDCT in line with the accuracy of the slow integer IDCT. The floating
point DCT/IDCT algorithms are mainly a legacy feature, and they do not
produce significantly more accuracy than the slow integer algorithms (to put
numbers on this, the typical difference in PNSR between the two algorithms
is less than 0.10 dB, whereas changing the quality level by 1 in the upper
range of the quality scale is typically more like a 1.0 dB difference.)
point IDCT in line with the accuracy of the accurate integer IDCT. The
floating point DCT/IDCT algorithms are mainly a legacy feature, and they do
not produce significantly more accuracy than the accurate integer algorithms
(to put numbers on this, the typical difference in PNSR between the two
algorithms is less than 0.10 dB, whereas changing the quality level by 1 in
the upper range of the quality scale is typically more like a 1.0 dB
difference.)

- If the floating point algorithms in libjpeg-turbo are not implemented using
SIMD instructions on a particular platform, then the accuracy of the
Expand Down Expand Up @@ -340,7 +341,7 @@ The algorithm used by the SIMD-accelerated quantization function cannot produce
correct results whenever the fast integer forward DCT is used along with a JPEG
quality of 98-100. Thus, libjpeg-turbo must use the non-SIMD quantization
function in those cases. This causes performance to drop by as much as 40%.
It is therefore strongly advised that you use the slow integer forward DCT
It is therefore strongly advised that you use the accurate integer forward DCT
whenever encoding images with a JPEG quality of 98 or higher.


Expand Down
4 changes: 2 additions & 2 deletions 3rdparty/libjpeg-turbo/src/jchuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
* memory footprint by 64k, which is important for some mobile applications
* that create many isolated instances of libjpeg-turbo (web browsers, for
* instance.) This may improve performance on some mobile platforms as well.
* This feature is enabled by default only on ARM processors, because some x86
* This feature is enabled by default only on Arm processors, because some x86
* chips have a slow implementation of bsr, and the use of clz/bsr cannot be
* shown to have a significant performance impact even on the x86 chips that
* have a fast implementation of it. When building for ARMv6, you can
* have a fast implementation of it. When building for Armv6, you can
* explicitly disable the use of clz/bsr by adding -mthumb to the compiler
* flags (this defines __thumb__).
*/
Expand Down
5 changes: 4 additions & 1 deletion 3rdparty/libjpeg-turbo/src/jcinit.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
/*
* jcinit.c
*
* This file was part of the Independent JPEG Group's software:
* Copyright (C) 1991-1997, Thomas G. Lane.
* This file is part of the Independent JPEG Group's software.
* libjpeg-turbo Modifications:
* Copyright (C) 2020, D. R. Commander.
* For conditions of distribution and use, see the accompanying README.ijg
* file.
*
Expand All @@ -19,6 +21,7 @@
#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"
#include "jpegcomp.h"


/*
Expand Down
4 changes: 2 additions & 2 deletions 3rdparty/libjpeg-turbo/src/jcphuff.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@
* memory footprint by 64k, which is important for some mobile applications
* that create many isolated instances of libjpeg-turbo (web browsers, for
* instance.) This may improve performance on some mobile platforms as well.
* This feature is enabled by default only on ARM processors, because some x86
* This feature is enabled by default only on Arm processors, because some x86
* chips have a slow implementation of bsr, and the use of clz/bsr cannot be
* shown to have a significant performance impact even on the x86 chips that
* have a fast implementation of it. When building for ARMv6, you can
* have a fast implementation of it. When building for Armv6, you can
* explicitly disable the use of clz/bsr by adding -mthumb to the compiler
* flags (this defines __thumb__).
*/
Expand Down
5 changes: 3 additions & 2 deletions 3rdparty/libjpeg-turbo/src/jctrans.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
* This file was part of the Independent JPEG Group's software:
* Copyright (C) 1995-1998, Thomas G. Lane.
* Modified 2000-2009 by Guido Vollbeding.
* It was modified by The libjpeg-turbo Project to include only code relevant
* to libjpeg-turbo.
* libjpeg-turbo Modifications:
* Copyright (C) 2020, D. R. Commander.
* For conditions of distribution and use, see the accompanying README.ijg
* file.
*
Expand All @@ -17,6 +17,7 @@
#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"
#include "jpegcomp.h"


/* Forward declarations */
Expand Down
45 changes: 36 additions & 9 deletions 3rdparty/libjpeg-turbo/src/jdapistd.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* This file was part of the Independent JPEG Group's software:
* Copyright (C) 1994-1996, Thomas G. Lane.
* libjpeg-turbo Modifications:
* Copyright (C) 2010, 2015-2018, D. R. Commander.
* Copyright (C) 2010, 2015-2018, 2020, D. R. Commander.
* Copyright (C) 2015, Google, Inc.
* For conditions of distribution and use, see the accompanying README.ijg
* file.
Expand All @@ -21,6 +21,8 @@
#include "jinclude.h"
#include "jdmainct.h"
#include "jdcoefct.h"
#include "jdmaster.h"
#include "jdmerge.h"
#include "jdsample.h"
#include "jmemsys.h"

Expand Down Expand Up @@ -316,6 +318,8 @@ LOCAL(void)
read_and_discard_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
{
JDIMENSION n;
my_master_ptr master = (my_master_ptr)cinfo->master;
JSAMPARRAY scanlines = NULL;
void (*color_convert) (j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
JDIMENSION input_row, JSAMPARRAY output_buf,
int num_rows) = NULL;
Expand All @@ -332,8 +336,13 @@ read_and_discard_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
cinfo->cquantize->color_quantize = noop_quantize;
}

if (master->using_merged_upsample && cinfo->max_v_samp_factor == 2) {
my_merged_upsample_ptr upsample = (my_merged_upsample_ptr)cinfo->upsample;
scanlines = &upsample->spare_row;
}

for (n = 0; n < num_lines; n++)
jpeg_read_scanlines(cinfo, NULL, 1);
jpeg_read_scanlines(cinfo, scanlines, 1);

if (color_convert)
cinfo->cconvert->color_convert = color_convert;
Expand All @@ -353,6 +362,12 @@ increment_simple_rowgroup_ctr(j_decompress_ptr cinfo, JDIMENSION rows)
{
JDIMENSION rows_left;
my_main_ptr main_ptr = (my_main_ptr)cinfo->main;
my_master_ptr master = (my_master_ptr)cinfo->master;

if (master->using_merged_upsample && cinfo->max_v_samp_factor == 2) {
read_and_discard_scanlines(cinfo, rows);
return;
}

/* Increment the counter to the next row group after the skipped rows. */
main_ptr->rowgroup_ctr += rows / cinfo->max_v_samp_factor;
Expand Down Expand Up @@ -382,21 +397,27 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
{
my_main_ptr main_ptr = (my_main_ptr)cinfo->main;
my_coef_ptr coef = (my_coef_ptr)cinfo->coef;
my_master_ptr master = (my_master_ptr)cinfo->master;
my_upsample_ptr upsample = (my_upsample_ptr)cinfo->upsample;
JDIMENSION i, x;
int y;
JDIMENSION lines_per_iMCU_row, lines_left_in_iMCU_row, lines_after_iMCU_row;
JDIMENSION lines_to_skip, lines_to_read;

/* Two-pass color quantization is not supported. */
if (cinfo->quantize_colors && cinfo->two_pass_quantize)
ERREXIT(cinfo, JERR_NOTIMPL);

if (cinfo->global_state != DSTATE_SCANNING)
ERREXIT1(cinfo, JERR_BAD_STATE, cinfo->global_state);

/* Do not skip past the bottom of the image. */
if (cinfo->output_scanline + num_lines >= cinfo->output_height) {
num_lines = cinfo->output_height - cinfo->output_scanline;
cinfo->output_scanline = cinfo->output_height;
(*cinfo->inputctl->finish_input_pass) (cinfo);
cinfo->inputctl->eoi_reached = TRUE;
return cinfo->output_height - cinfo->output_scanline;
return num_lines;
}

if (num_lines == 0)
Expand Down Expand Up @@ -445,8 +466,10 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
main_ptr->buffer_full = FALSE;
main_ptr->rowgroup_ctr = 0;
main_ptr->context_state = CTX_PREPARE_FOR_IMCU;
upsample->next_row_out = cinfo->max_v_samp_factor;
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
if (!master->using_merged_upsample) {
upsample->next_row_out = cinfo->max_v_samp_factor;
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
}
}

/* Skipping is much simpler when context rows are not required. */
Expand All @@ -458,8 +481,10 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
cinfo->output_scanline += lines_left_in_iMCU_row;
main_ptr->buffer_full = FALSE;
main_ptr->rowgroup_ctr = 0;
upsample->next_row_out = cinfo->max_v_samp_factor;
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
if (!master->using_merged_upsample) {
upsample->next_row_out = cinfo->max_v_samp_factor;
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
}
}
}

Expand Down Expand Up @@ -494,7 +519,8 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
cinfo->output_iMCU_row += lines_to_skip / lines_per_iMCU_row;
increment_simple_rowgroup_ctr(cinfo, lines_to_read);
}
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
if (!master->using_merged_upsample)
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
return num_lines;
}

Expand Down Expand Up @@ -535,7 +561,8 @@ jpeg_skip_scanlines(j_decompress_ptr cinfo, JDIMENSION num_lines)
* bit odd, since "rows_to_go" seems to be redundantly keeping track of
* output_scanline.
*/
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;
if (!master->using_merged_upsample)
upsample->rows_to_go = cinfo->output_height - cinfo->output_scanline;

/* Always skip the requested number of lines. */
return num_lines;
Expand Down
8 changes: 5 additions & 3 deletions 3rdparty/libjpeg-turbo/src/jdcoefct.c
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* libjpeg-turbo Modifications:
* Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
* Copyright (C) 2010, 2015-2016, D. R. Commander.
* Copyright (C) 2015, Google, Inc.
* Copyright (C) 2015, 2020, Google, Inc.
* For conditions of distribution and use, see the accompanying README.ijg
* file.
*
Expand Down Expand Up @@ -495,11 +495,13 @@ decompress_smooth_data(j_decompress_ptr cinfo, JSAMPIMAGE output_buf)
if (first_row && block_row == 0)
prev_block_row = buffer_ptr;
else
prev_block_row = buffer[block_row - 1];
prev_block_row = buffer[block_row - 1] +
cinfo->master->first_MCU_col[ci];
if (last_row && block_row == block_rows - 1)
next_block_row = buffer_ptr;
else
next_block_row = buffer[block_row + 1];
next_block_row = buffer[block_row + 1] +
cinfo->master->first_MCU_col[ci];
/* We fetch the surrounding DC values using a sliding-register approach.
* Initialize all nine here so as to do the right thing on narrow pics.
*/
Expand Down
9 changes: 4 additions & 5 deletions 3rdparty/libjpeg-turbo/src/jdcolor.c
Original file line number Diff line number Diff line change
Expand Up @@ -571,11 +571,10 @@ ycck_cmyk_convert(j_decompress_ptr cinfo, JSAMPIMAGE input_buf,
* RGB565 conversion
*/

#define PACK_SHORT_565_LE(r, g, b) ((((r) << 8) & 0xF800) | \
(((g) << 3) & 0x7E0) | ((b) >> 3))
#define PACK_SHORT_565_BE(r, g, b) (((r) & 0xF8) | ((g) >> 5) | \
(((g) << 11) & 0xE000) | \
(((b) << 5) & 0x1F00))
#define PACK_SHORT_565_LE(r, g, b) \
((((r) << 8) & 0xF800) | (((g) << 3) & 0x7E0) | ((b) >> 3))
#define PACK_SHORT_565_BE(r, g, b) \
(((r) & 0xF8) | ((g) >> 5) | (((g) << 11) & 0xE000) | (((b) << 5) & 0x1F00))

#define PACK_TWO_PIXELS_LE(l, r) ((r << 16) | l)
#define PACK_TWO_PIXELS_BE(l, r) ((l << 16) | r)
Expand Down
Loading