Yuantao Feng [Wed, 21 Dec 2022 06:04:41 +0000 (14:04 +0800)]
dnn: add the CANN backend (#22634)
* cann backend impl v1
* cann backend impl v2: use opencv parsers to build models for cann
* adjust fc according to the new transA and transB
* put cann net in cann backend node and reuse forwardLayer
* use fork() to create a child process and compile cann model
* remove legacy code
* remove debug code
* fall bcak to CPU backend if there is one layer not supoorted by CANN backend
* fix netInput forward
Alexander Alekhin [Tue, 20 Dec 2022 14:52:35 +0000 (14:52 +0000)]
Merge pull request #22995 from alalek:dnn_fix_opencl_matmul
Alexander Smorkalov [Tue, 20 Dec 2022 12:07:10 +0000 (15:07 +0300)]
Merge pull request #22963 from cudawarped:replace_texture_ref_with_texture_obj
Replace all instances of CUDA texture references with texture objects
Alexander Alekhin [Tue, 20 Dec 2022 09:46:48 +0000 (09:46 +0000)]
dnn: disable OpenCL code path in MatMul processing
- this mode is not supported by 22828
Alexander Alekhin [Tue, 20 Dec 2022 09:42:16 +0000 (09:42 +0000)]
Merge pull request #22994 from alalek:gapi_build_issues
Alexander Alekhin [Tue, 20 Dec 2022 06:36:01 +0000 (06:36 +0000)]
build: eliminate build warnings on Ubuntu 20.04/16.04
Alexander Alekhin [Mon, 19 Dec 2022 17:29:57 +0000 (17:29 +0000)]
Merge pull request #22981 from alalek:core_freeze_cache_dir_prefix_4.x
cudawarped [Thu, 15 Dec 2022 06:55:31 +0000 (08:55 +0200)]
cv::cuda: Replace all instances of texture references/objects with texture objects using the existing updated cv::cudev::Texture class.
Fixes bugs in cv::cuda::demosaicing, cv::cuda::resize and cv::cuda::HoughSegmentDetector.
Alexander Smorkalov [Mon, 19 Dec 2022 07:01:43 +0000 (10:01 +0300)]
Merge pull request #22979 from alalek:fix_videio_test_limit_threads
videoio(test): reduce number of test threads
Alexander Alekhin [Mon, 19 Dec 2022 06:05:15 +0000 (09:05 +0300)]
Merge pull request #22935 from alalek:gapi_error
G-API: replace GAPI_Assert() with 'false' and '0' to GAPI_Error()
* gapi: GAPI_Error() macro
* gapi: replace GAPI_Assert() with 'false' and '0' to GAPI_Error()
* build: eliminate 'unreachable code' after CV_Error() (MSVC 2015)
* build: eliminate 'unreachable code' warning for MSVS 2015/2017
- observed in constructors stubs with throwing exception
Alexander Alekhin [Sun, 18 Dec 2022 02:16:17 +0000 (02:16 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Sun, 18 Dec 2022 02:07:46 +0000 (02:07 +0000)]
Merge pull request #22980 from alalek:samples_python_3.11
Alexander Alekhin [Sun, 18 Dec 2022 00:24:52 +0000 (00:24 +0000)]
core: freeze cache directory prefix - "4.x"
Alexander Alekhin [Sun, 18 Dec 2022 00:14:41 +0000 (00:14 +0000)]
samples: query for Python 3.11 setup
Alexander Alekhin [Sun, 18 Dec 2022 00:02:07 +0000 (00:02 +0000)]
videoio(test): reduce number of test threads
Alexander Alekhin [Sat, 17 Dec 2022 03:28:13 +0000 (03:28 +0000)]
Merge pull request #22934 from alalek:fix_filestorage_binding
Alexander Smorkalov [Fri, 16 Dec 2022 09:30:03 +0000 (12:30 +0300)]
Merge pull request #22880 from cudawarped:remember_cudacodec_lib_locations
Prevent cudacodec libs locations being reset when cmake is re-run
Alexander Panov [Fri, 16 Dec 2022 09:28:47 +0000 (12:28 +0300)]
Merge pull request #22368 from AleksandrPanov:move_contrib_aruco_to_main_objdetect
Megre together with https://github.com/opencv/opencv_contrib/pull/3325
1. Move aruco_detector, aruco_board, aruco_dictionary, aruco_utils to objdetect
1.1 add virtual Board::draw(), virtual ~Board()
1.2 move `testCharucoCornersCollinear` to Board classes (and rename to `checkCharucoCornersCollinear`)
1.3 add wrappers to keep the old api working
3. Reduce inludes
4. Fix java tests (add objdetect import)
5. Refactoring
### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
```
**WIP**
force_builders=linux,win64,docs,Linux x64 Debug,Custom
Xbuild_contrib:Docs=OFF
build_image:Custom=ubuntu:22.04
build_worker:Custom=linux-1
```
hzc [Fri, 16 Dec 2022 09:23:12 +0000 (17:23 +0800)]
Merge pull request #22936 from hzcyf:orbbec_new_cam_support
videoio: add Orbbec Gemini 2 and Astra 2 camera support
### Test Result
| OS | Compiler | Camera | Result |
|-----|-----------|---------|--------|
|Windows11| (VS2022)MSVC17.3|Orbbec Gemini 2|Pass|
|Windows11| (VS2022)MSVC17.3|Orbbec Astra 2|Pass|
|Ubuntu22.04|GCC9.2|Orbbec Gemini 2|Pass|
|Ubuntu22.04|GCC9.2|Orbbec Astra 2|Pass|
### Pull Request Readiness Checklist
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] The feature is well documented and sample code can be built with the project CMake
Alexander Smorkalov [Fri, 16 Dec 2022 09:19:24 +0000 (12:19 +0300)]
Merge pull request #22966 from vrabaud:mm_pause_fix
Fix slower CV_PAUSE on SkyLake and above.
Alexander Alekhin [Fri, 9 Dec 2022 21:05:17 +0000 (21:05 +0000)]
compatibility: keep Ptr<FileStorage> stubs till OpenCV 5.0
Alexander Alekhin [Thu, 8 Dec 2022 23:37:39 +0000 (23:37 +0000)]
python: resolve Ptr<FileStorage> requirement issue
Parthiban Marimuthu [Thu, 15 Dec 2022 21:52:08 +0000 (03:22 +0530)]
Merge pull request #22907 from partheee:patch-1
* Update windows_install.markdown
Fixing Issue - #22053 Inaccuracy in the tutorial for installation for Windows
* Update windows_install.markdown #22907
Changed all changes mentioned in the comments
* Update windows_install.markdown #22907
* fix whitespace, update configurations order (64-bit goes first)
- x86 is optional and not available by default in packages
Vincent Rabaud [Thu, 15 Dec 2022 11:28:30 +0000 (12:28 +0100)]
Fix slower CV_PAUSE on SkyLake and above.
This is fixing https://github.com/opencv/opencv/issues/22852
cudawarped [Tue, 29 Nov 2022 06:25:26 +0000 (08:25 +0200)]
Enable cudacodec libs by default, prevent their locations being lost when cmake is re-run and add log info when the libs/headers cannot be found.
Alexander Smorkalov [Thu, 15 Dec 2022 10:36:22 +0000 (13:36 +0300)]
Merge pull request #22828 from WanliZhong:improve_matmul
DNN: make MatMul support 3D or 4D with broadcast
Alexander Smorkalov [Thu, 15 Dec 2022 09:53:22 +0000 (12:53 +0300)]
Merge pull request #22919 from asmorkalov:as/gstreamer_read_timeout
Address https://github.com/opencv/opencv/issues/22868
Used the same defaults as it's done for FFmpeg
### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
```
force_builders=Custom
build_image:Custom=gstreamer:16.04
buildworker:Custom=linux-1
```
Alexander Smorkalov [Thu, 15 Dec 2022 06:39:58 +0000 (09:39 +0300)]
Merge pull request #22891 from AleksandrPanov:qr_add_alignment
Use QR code alignment markers
zoom [Thu, 15 Dec 2022 02:36:08 +0000 (10:36 +0800)]
make MatMul support 3D or 4D with broadcast
Alexander Alekhin [Wed, 14 Dec 2022 21:21:49 +0000 (21:21 +0000)]
Merge pull request #22951 from zihaomu:update_nanotrack_comment
Alexander Alekhin [Wed, 14 Dec 2022 21:16:07 +0000 (21:16 +0000)]
Merge pull request #22958 from asmorkalov:as/ffmpeg_missing_include
AleksandrPanov [Wed, 14 Dec 2022 20:56:57 +0000 (23:56 +0300)]
add alignment detect
Sergei Shutov [Wed, 14 Dec 2022 19:15:02 +0000 (21:15 +0200)]
Merge pull request #22939 from stopmosk:21826-python-bindings-for-videocapturewaitany
Add Python bindings for VideoCapture::waitAny #21826
### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [x] There is a reference to the original bug report and related work
- [x] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
- [x] The feature is well documented and sample code can be built with the project CMake
Alexander Smorkalov [Wed, 14 Dec 2022 12:41:34 +0000 (15:41 +0300)]
Merge pull request #22675 from CSBVision:patch-2
Update OpenCVDetectCUDA.cmake
Alexander Smorkalov [Wed, 14 Dec 2022 10:09:37 +0000 (13:09 +0300)]
Fix missing FFmpeg include needed for av_get_pix_fmt_name
Alexander Smorkalov [Wed, 14 Dec 2022 06:42:43 +0000 (09:42 +0300)]
Merge pull request #22954 from VadimLevin:dev/vlevin/fix-merge-artifacts-in-python-misc-tests
fix: remove function duplicates in test_misc.py
zihaomu [Wed, 14 Dec 2022 06:41:49 +0000 (14:41 +0800)]
add nanotrack v2 at regression test.
Alexander Smorkalov [Wed, 14 Dec 2022 06:35:07 +0000 (09:35 +0300)]
Merge pull request #22955 from VadimLevin:dev/vlevin/handle-properties-with-keyword-names
fix: add _ suffix to properties having reserved keyword names
Vadim Levin [Tue, 13 Dec 2022 17:24:57 +0000 (20:24 +0300)]
fix: add _ suffix to properties having reserved keyword names
CSBVision [Fri, 21 Oct 2022 07:22:25 +0000 (09:22 +0200)]
Update OpenCVDetectCUDA.cmake
Adds the option to enable delay loading of CUDA DLLs on Windows. This is particularly useful to use the same binary on systems with and without CUDA support without distributing the CUDA DLLs to systems that cannot use them at all due to missing CUDA-supported hardware.
Resolves #13509
Vadim Levin [Tue, 13 Dec 2022 16:14:52 +0000 (19:14 +0300)]
fix: remove function duplicates in test_misc.py
Alexander Smorkalov [Tue, 13 Dec 2022 12:28:10 +0000 (15:28 +0300)]
Merge pull request #22924 from alalek:logger_strip_base_dir
core(logger): strip opencv's modules base path
Alexander Smorkalov [Tue, 13 Dec 2022 07:34:42 +0000 (10:34 +0300)]
Merge pull request #22946 from VadimLevin:dev/vlevin/avfoundation-stable-multicamera-index
fix: AVFoundation inconsistent camera indices
Alexander Alekhin [Tue, 13 Dec 2022 06:32:16 +0000 (06:32 +0000)]
Merge pull request #22928 from alalek:riscv_toolchains
Vadim Levin [Mon, 12 Dec 2022 07:41:39 +0000 (10:41 +0300)]
fix: AVFoundation inconsistent camera indices
Alexander Alekhin [Mon, 12 Dec 2022 12:38:14 +0000 (15:38 +0300)]
Merge pull request #22942 from alalek:videoio_test_update_hw_checks
* videoio(test): update PSNR check for H264/265
* videoio(test): reduce size for ffmpeg tests on 32-bit platforms
Alexander Alekhin [Sun, 11 Dec 2022 17:10:00 +0000 (17:10 +0000)]
build(riscv): suppress massive -Wignored-attributes warnings
Alexander Alekhin [Sat, 10 Dec 2022 14:42:13 +0000 (14:42 +0000)]
Merge pull request #22940 from alalek:build_warnings_msvc
Alexander Alekhin [Sat, 10 Dec 2022 02:08:48 +0000 (02:08 +0000)]
build: fix/eliminate MSVC warnings
Alexander Alekhin [Fri, 9 Dec 2022 17:11:51 +0000 (17:11 +0000)]
Merge pull request #22937 from asmorkalov:as/issue_22893
Alexander Smorkalov [Fri, 9 Dec 2022 12:06:08 +0000 (15:06 +0300)]
Integer underflow fix for morphologyEx in Carotene (arm).
Alexander Alekhin [Mon, 5 Dec 2022 09:11:11 +0000 (09:11 +0000)]
cmake: fix RISC-V toolchains
- RVV options are moved to configuration scripts instead of toolchains
Alexander Alekhin [Thu, 8 Dec 2022 22:07:46 +0000 (22:07 +0000)]
Merge pull request #22922 from alalek:fix_riscv_intrin_rvv
Alexander Alekhin [Thu, 8 Dec 2022 22:07:30 +0000 (22:07 +0000)]
Merge pull request #22932 from alalek:cmake_drop_libjpeg_simd_warning
Alexander Alekhin [Thu, 8 Dec 2022 22:07:04 +0000 (22:07 +0000)]
Merge pull request #22933 from alalek:fixup_22894
Alexander Alekhin [Thu, 8 Dec 2022 16:44:45 +0000 (16:44 +0000)]
cmake(3rdparty): drop simd warning in libjpeg-turbo
Alexander Alekhin [Thu, 8 Dec 2022 17:18:29 +0000 (17:18 +0000)]
videoio(test): test skip due to non-updated FFmpeg wrapper
Alexander Alekhin [Thu, 8 Dec 2022 14:18:33 +0000 (14:18 +0000)]
Merge pull request #22882 from zihaomu:gemm_first_const
Alexander Alekhin [Thu, 8 Dec 2022 14:12:51 +0000 (14:12 +0000)]
Merge pull request #22894 from mshabunin:ffmpeg-16bit
Zihao Mu [Thu, 8 Dec 2022 12:57:13 +0000 (20:57 +0800)]
Merge pull request #22840 from zihaomu:optimze_conv_memory_usage
DNN: reduce the memory used in convolution layer
* reduce the memory in winograd and disabel the test when usage memory is larger than 2gb.
* remove VERY_LOG tag
Alexander Alekhin [Tue, 6 Dec 2022 23:32:10 +0000 (23:32 +0000)]
core(logger): strip path prefix
Alexander Smorkalov [Wed, 7 Dec 2022 11:25:31 +0000 (14:25 +0300)]
Merge pull request #22885 from asmorkalov:as/new_qt_icons
Switch QT UI to icons with Google Material Design
Maksim Shabunin [Wed, 30 Nov 2022 22:29:43 +0000 (01:29 +0300)]
videoio/FFmpeg: added CV_16UC1 read/write support
Alexander Alekhin [Tue, 6 Dec 2022 11:53:20 +0000 (11:53 +0000)]
risc-v: fix RVV backend on clang with undefined CV_RVV_SCALABLE
- v_interleave_quads
- v_pack_triplets
- v_signmask
Zihao Mu [Tue, 6 Dec 2022 05:54:32 +0000 (13:54 +0800)]
Merge pull request #22808 from zihaomu:nanotrack
[teset data in opencv_extra](https://github.com/opencv/opencv_extra/pull/1016)
NanoTrack is an extremely lightweight and fast object-tracking model.
The total size is **1.1 MB**.
And the FPS on M1 chip is **150**, on Raspberry Pi 4 is about **30**. (Float32 CPU only)
With this model, many users can run object tracking on the edge device.
The author of NanoTrack is @HonglinChu.
The original repo is https://github.com/HonglinChu/NanoTrack.
### Pull Request Readiness Checklist
See details at https://github.com/opencv/opencv/wiki/How_to_contribute#making-a-good-pull-request
- [x] I agree to contribute to the project under Apache 2 License.
- [x] To the best of my knowledge, the proposed patch is not based on a code under GPL or another license that is incompatible with OpenCV
- [x] The PR is proposed to the proper branch
- [ ] There is a reference to the original bug report and related work
- [ ] There is accuracy test, performance test and test data in opencv_extra repository, if applicable
Patch to opencv_extra has the same branch name.
- [ ] The feature is well documented and sample code can be built with the project CMake
Alexander Alekhin [Sat, 3 Dec 2022 05:46:23 +0000 (05:46 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Christine Poerschke [Sat, 3 Dec 2022 05:29:04 +0000 (05:29 +0000)]
Merge pull request #22865 from cpoerschke:3.4-issue-22860
ocl_minMaxIdx to call minmaxloc.cl for OpenCL 1.2+ only
Alexander Alekhin [Sat, 3 Dec 2022 05:24:28 +0000 (05:24 +0000)]
Merge pull request #22888 from alalek:dnn_ov_fix_custom_layers
Alexander Alekhin [Sat, 3 Dec 2022 05:22:04 +0000 (05:22 +0000)]
Merge pull request #22910 from alalek:cmake_pkg_config_ignore_atomic
Alexander Alekhin [Fri, 2 Dec 2022 23:55:16 +0000 (23:55 +0000)]
dnn(test): restore openvino tests with 'Cannot get memory' message
Alexander Alekhin [Wed, 30 Nov 2022 01:26:09 +0000 (01:26 +0000)]
dnn(openvino): fix custom layers BlockingDesc
Alexander Alekhin [Fri, 2 Dec 2022 22:48:40 +0000 (22:48 +0000)]
cmake: ocv_check_modules: ignore -latomic and -lstdc++
Alexander Smorkalov [Tue, 29 Nov 2022 13:41:01 +0000 (16:41 +0300)]
Switch QT UI to icons with Google Material Design.
Alexander Alekhin [Thu, 1 Dec 2022 21:39:15 +0000 (21:39 +0000)]
Merge pull request #22899 from mshabunin:fix-videoio-plugin
Maksim Shabunin [Thu, 1 Dec 2022 12:13:52 +0000 (15:13 +0300)]
videoio: fixed FFmpeg plugin build
Alexander Smorkalov [Thu, 1 Dec 2022 10:47:32 +0000 (13:47 +0300)]
Merge pull request #22594 from ZhaoChuyang:pr_test_for_22253
add test for PR #22253
Vadim Levin [Wed, 30 Nov 2022 14:40:38 +0000 (17:40 +0300)]
refactor: rework test to be more specific
赵楚洋 [Sun, 2 Oct 2022 09:06:07 +0000 (17:06 +0800)]
add test
Alexander Smorkalov [Wed, 30 Nov 2022 11:26:07 +0000 (14:26 +0300)]
Merge pull request #22796 from ClayXrex:patch-1
fix: typo in opencv-python tutorials
Alexander Smorkalov [Wed, 30 Nov 2022 11:25:09 +0000 (14:25 +0300)]
Merge pull request #22792 from tailsu:sd/avfoundation-orientation-meta
Add support for CAP_PROP_ORIENTATION_AUTO to AVFoundation backend
ClayXrex [Sat, 12 Nov 2022 11:31:57 +0000 (12:31 +0100)]
fix: typo
Alexander Smorkalov [Wed, 30 Nov 2022 09:37:49 +0000 (12:37 +0300)]
Merge pull request #22857 from fengyuentau:batched_nms
dnn: add batched nms
Alexander Smorkalov [Tue, 29 Nov 2022 11:42:28 +0000 (14:42 +0300)]
Merge pull request #22809 from fengyuentau:tile
dnn: support ONNX Tile
zihaomu [Tue, 29 Nov 2022 09:13:36 +0000 (17:13 +0800)]
gemm support transA and transB, and first input is constance.
fengyuentau [Thu, 24 Nov 2022 02:20:04 +0000 (10:20 +0800)]
batched nms impl
fengyuentau [Tue, 15 Nov 2022 06:29:30 +0000 (14:29 +0800)]
tile impl
Alexander Alekhin [Mon, 28 Nov 2022 19:10:51 +0000 (19:10 +0000)]
Merge pull request #22873 from WanliZhong:issue22859
Alexander Alekhin [Mon, 28 Nov 2022 19:05:59 +0000 (19:05 +0000)]
Merge pull request #22875 from asmorkalov:as/cl_error_code_fix
HAN Liutong [Mon, 28 Nov 2022 18:28:14 +0000 (02:28 +0800)]
Merge pull request #22520 from hanliutong:hsv
Modify the SIMD loop in color_hsv.
* Modify the SIMD loops in color_hsv.
* Add FP supporting in bit logic.
* Add temporary compatibility code.
* Use max_nlanes instead of vlanes for array declaration.
* Use "CV_SIMD || CV_SIMD_SCALABLE".
* Revert the modify of the Universal Intrinsic API
* Fix warnings.
* Use v_select instead of bits manipulation.
Alexander Smorkalov [Mon, 28 Nov 2022 16:50:02 +0000 (19:50 +0300)]
Merge pull request #22695 from AleksandrPanov:qr_improve_version_detect
Improve QR code version estimation
AleksandrPanov [Mon, 28 Nov 2022 14:45:09 +0000 (17:45 +0300)]
add getNumModules(), add decode version
Alexander Smorkalov [Mon, 28 Nov 2022 06:47:51 +0000 (09:47 +0300)]
More fixes for OpenCL error reporting.
zoom [Sun, 27 Nov 2022 09:32:41 +0000 (17:32 +0800)]
let MatMul can work when both two inputs are const
Alexander Alekhin [Fri, 25 Nov 2022 22:47:19 +0000 (22:47 +0000)]
Merge pull request #22866 from asmorkalov:as/error_formatting
Stefan Dragnev [Thu, 10 Nov 2022 17:08:59 +0000 (18:08 +0100)]
add support for CAP_PROP_ORIENTATION_AUTO to AVFoundation backend
* extract rotateFrame as free function, rename to applyMetadataRotation
* LegacyCapture::get() always return 0, if cap is null
Alexander Smorkalov [Fri, 25 Nov 2022 13:46:12 +0000 (16:46 +0300)]
Fixed OpenGL errors formatting.
Amir Hassan [Fri, 25 Nov 2022 06:13:57 +0000 (07:13 +0100)]
Merge pull request #22855 from kallaballa:print_cl_status_on_fail
Print CL status code on error in opengl interop functions
Alexander Smorkalov [Tue, 22 Nov 2022 13:15:50 +0000 (16:15 +0300)]
Merge pull request #22478 from WanliZhong:nary_eltwise_cuda
DNN: Let part of the operators in nary_eltwise support CUDA
Dan Mašek [Tue, 22 Nov 2022 10:47:27 +0000 (11:47 +0100)]
Merge pull request #22838 from dan-masek:fix_issue_22837
Fix issue 22837: No more blank buttons on toolbar after resizing the window
Alexander Smorkalov [Tue, 22 Nov 2022 09:50:02 +0000 (12:50 +0300)]
Merge pull request #22830 from alalek:issue_22752
imgcodecs: ensure parameters are key-value pairs, fix HDR encoder