Alexander Alekhin [Wed, 8 Jul 2020 21:03:43 +0000 (21:03 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Wed, 8 Jul 2020 20:59:29 +0000 (20:59 +0000)]
Merge pull request #17737 from pemmanuelviel:pev--fix-trees-descent
Alexander Alekhin [Wed, 8 Jul 2020 20:33:40 +0000 (20:33 +0000)]
Merge pull request #17707 from Yosshi999:gsoc_sift-universal-intrinsic
Alexander Alekhin [Wed, 8 Jul 2020 20:20:19 +0000 (20:20 +0000)]
Merge pull request #17748 from YashasSamaga:cuda4dnn-data-parallel
Alexander Alekhin [Wed, 8 Jul 2020 20:01:35 +0000 (20:01 +0000)]
Merge pull request #17674 from alalek:issue_16214
Alexander Alekhin [Wed, 8 Jul 2020 20:00:12 +0000 (20:00 +0000)]
Merge pull request #17777 from alalek:backport_cuda_cmake
Alexander Alekhin [Wed, 8 Jul 2020 19:59:42 +0000 (19:59 +0000)]
Merge pull request #17745 from alalek:cuda_fix_ccbin
Alexander Alekhin [Fri, 26 Jun 2020 22:31:02 +0000 (22:31 +0000)]
imgproc: align GaussianBlur/sepFilter2D OpenCL with CPU version
Alexander Alekhin [Sun, 28 Jun 2020 08:14:54 +0000 (08:14 +0000)]
imgproc(test): test bitExact cases in OCL/sepFilter2D
Alexander Alekhin [Fri, 3 Jul 2020 21:11:11 +0000 (21:11 +0000)]
cmake(cuda): repair ccbin, re-implement execute_process() cache
- preventive fix for arch "11.0" (CUDA_ARCH_BIN_OR_PTX_10 bug)
- new var: OPENCV_CUDA_DETECTION_NVCC_FLAGS
- new var: OPENCV_CMAKE_CUDA_DEBUG
Alexander Alekhin [Wed, 8 Jul 2020 07:28:40 +0000 (07:28 +0000)]
cmake: backport CUDA scripts
Alexander Alekhin [Tue, 7 Jul 2020 19:28:53 +0000 (19:28 +0000)]
Merge pull request #17759 from alalek:build_opencv_winpack_dldt_2020.4.0
Alexander Alekhin [Tue, 7 Jul 2020 10:36:01 +0000 (10:36 +0000)]
Merge pull request #17752 from YashasSamaga:generalize-concat-fusion-3.4
Alexander Alekhin [Mon, 6 Jul 2020 23:05:04 +0000 (23:05 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Mon, 6 Jul 2020 23:01:27 +0000 (23:01 +0000)]
Merge pull request #17728 from sturkmen72:patch-4
Alexander Alekhin [Mon, 6 Jul 2020 22:58:17 +0000 (01:58 +0300)]
Merge pull request #17699 from alalek:build_core_cuda
* core(cuda): fix build
- MSVS 19.25.28612.0
- CUDA release 11.0, V11.0.167
* cmake(cuda): backport workaround for CUDA 11
* cmake(cuda): call CUDA_BUILD_CLEAN_TARGET() on finalize
* cmake(cuda): use CMAKE_SUPPRESS_REGENERATION with MSVS
Alexander Alekhin [Mon, 6 Jul 2020 22:48:07 +0000 (22:48 +0000)]
Merge pull request #17685 from YashasSamaga:cuda4dnn-cudnn8-support
Alexander Alekhin [Mon, 6 Jul 2020 22:36:35 +0000 (22:36 +0000)]
Merge pull request #17743 from alalek:test_17666
Alexander Alekhin [Mon, 6 Jul 2020 21:50:23 +0000 (21:50 +0000)]
Merge pull request #17766 from alalek:backport_17756
Alexander Alekhin [Mon, 6 Jul 2020 14:13:38 +0000 (14:13 +0000)]
dnn(slice): disable buggy OCV/OCL implementation
Alexander Alekhin [Fri, 3 Jul 2020 19:14:05 +0000 (19:14 +0000)]
dnn(test): add YOLOv4-tiny tests
Alexander Alekhin [Mon, 6 Jul 2020 20:02:15 +0000 (20:02 +0000)]
Merge pull request #17761 from mshabunin:test-wo-jpg-png
Alexander Alekhin [Mon, 6 Jul 2020 20:00:51 +0000 (20:00 +0000)]
Merge pull request #17754 from YashasSamaga:cuda4dnn-slice-concat-copy-reduction
Alexander Alekhin [Mon, 6 Jul 2020 19:57:53 +0000 (19:57 +0000)]
Merge pull request #17758 from tomoaki0705:fixGapiOpenclTestError
Ilya Churaev [Mon, 6 Jul 2020 08:11:59 +0000 (11:11 +0300)]
Fixed header paths for some nGraph ops
* Added dependency on IE version
backport of commit:
992c908b566d264b824680d0cf7d668cdf918254
Alexander Alekhin [Sun, 5 Jul 2020 22:16:46 +0000 (22:16 +0000)]
build: winpack_dldt with dldt 2020.4.0
Maksim Shabunin [Mon, 6 Jul 2020 11:52:52 +0000 (14:52 +0300)]
imgcodecs: fix test build with disabled JPEG and PNG libs
Tomoaki Teshima [Mon, 6 Jul 2020 09:27:19 +0000 (18:27 +0900)]
avoid kernel compile error on Arm SBCs
Ilya Churaev [Mon, 6 Jul 2020 08:11:59 +0000 (11:11 +0300)]
Merge pull request #17756 from ilyachur:feature/ichuraev/fix_ngraph_headers
* Fixed header paths for some nGraph ops
* Added dependency on IE version
Suleyman TURKMEN [Wed, 1 Jul 2020 20:50:09 +0000 (23:50 +0300)]
Update documentation of imwrite()
YashasSamaga [Sun, 5 Jul 2020 15:22:35 +0000 (20:52 +0530)]
reduce slice, concat to copy; enable more concat fusions
Alexander Alekhin [Sat, 4 Jul 2020 17:17:57 +0000 (17:17 +0000)]
Merge pull request #17729 from modeste2015:3.4
Alexander Alekhin [Sat, 4 Jul 2020 17:16:57 +0000 (17:16 +0000)]
Merge pull request #17724 from pemmanuelviel:pev--fix-mix-of-types
pemmanuelviel [Sat, 4 Jul 2020 17:15:44 +0000 (19:15 +0200)]
Merge pull request #17722 from pemmanuelviel:pev--replace-asserts
* Clean: replace C style asserts by CV_Assert and CV_DbgAssert
* Try fixing warning on Windows compilation
* Another way trying to fix warnings on Win
* Fixing warnings with some compilers:
Some compilers warn on systematic exit preventing to execute the code that follows.
This is why assert(0) that exits only in debug was working, but not CV_Assert or CV_Error
that exit both in release and debug, even if with different behavior.
In addition, other compilers complain when return 0 is removed from getKey(),
even if before we have a statement leading to systematic exit.
* Disable "unreachable code" warnings for Win compilers so we can use proper CV_Error
Alexander Alekhin [Sat, 4 Jul 2020 17:14:34 +0000 (17:14 +0000)]
Merge pull request #17719 from pemmanuelviel:pev--fix-computeNodeStatistics-genericity
YashasSamaga [Sat, 4 Jul 2020 13:27:28 +0000 (18:57 +0530)]
generalize axis for concat fusion
YashasSamaga [Sat, 4 Jul 2020 07:24:56 +0000 (12:54 +0530)]
transfer output blobs in background
Christoph [Fri, 3 Jul 2020 22:59:19 +0000 (00:59 +0200)]
Merge pull request #17454 from creinders:master
fix instable fisheye undistortPoints
* remove artefacts when (un)distorting fisheye images with large distortion coefficient values
* fix fisheye undistortion when theta is close to zero
* add fisheye image undistort and distort test
* Fixed type conversion warnings
* fixed trailing whitespace
Alexander Alekhin [Fri, 3 Jul 2020 22:53:44 +0000 (22:53 +0000)]
Merge pull request #17701 from pemmanuelviel:pev-lshIndexParams-consistency
Alexander Alekhin [Fri, 3 Jul 2020 21:21:27 +0000 (21:21 +0000)]
Merge pull request #17744 from alalek:issue_17657
Alexander Alekhin [Fri, 3 Jul 2020 19:31:41 +0000 (19:31 +0000)]
cmake: fix ENABLE_PROFILING
Liubov Batanina [Fri, 3 Jul 2020 18:07:08 +0000 (21:07 +0300)]
Merge pull request #17733 from l-bat:tiny_yolov4
* Supported yolov4-tiny
* Added comments
Alexander Alekhin [Fri, 3 Jul 2020 11:24:11 +0000 (11:24 +0000)]
Merge pull request #17725 from pemmanuelviel:pev--precompute-divisor
Pierre-Emmanuel Viel [Thu, 18 Jun 2020 14:30:29 +0000 (16:30 +0200)]
Fix trees parsing behavior in hierarchical_clustering_index:
Before, when maxCheck was reached in the first descent of a tree, time was still wasted parsing
the next trees till their best leaves whose points were not used at all.
Alexander Alekhin [Thu, 2 Jul 2020 11:54:28 +0000 (11:54 +0000)]
Merge pull request #17721 from pemmanuelviel:pev--fix-hist-intersect-arguments
Ken Shirriff [Thu, 2 Jul 2020 10:58:53 +0000 (03:58 -0700)]
Merge pull request #17708 from shirriff:patch-1
Clarify component statistics documentation
* Change ConnectedComponentsTypes documentation
Change from "algorithm output formats" to "statistics" because it specifies types of statistics, not formats.
* Documentation: clarify component statistics
Explain that ConnectedComponentTypes selects a statistic.
Heritier Kinke [Thu, 2 Jul 2020 01:27:34 +0000 (03:27 +0200)]
forget to look in sub folder of include/openblas
Alexander Alekhin [Wed, 1 Jul 2020 18:14:08 +0000 (18:14 +0000)]
Merge pull request #17723 from pemmanuelviel:pev--remove-duplicate
Pierre-Emmanuel Viel [Wed, 1 Jul 2020 16:20:02 +0000 (18:20 +0200)]
Fix arguments list in loadindex for histogram intersection
Pierre-Emmanuel Viel [Wed, 1 Jul 2020 16:52:05 +0000 (18:52 +0200)]
Precompute the divisor to ensure that no kind of compiler would process it on the fly at each call.
Pierre-Emmanuel Viel [Wed, 1 Jul 2020 16:27:07 +0000 (18:27 +0200)]
Mix of 32 and 64bits vector types prevents vectorisation for distance computation.
Argument "a" is of type ElementType* that is either int* or float*, while b was double*.
Mixing types prevents the possibility to use SSE or AVX instructions.
On implementation without SIMD instructions, this doesn't show any impact on performance.
Pierre-Emmanuel Viel [Wed, 1 Jul 2020 16:15:01 +0000 (18:15 +0200)]
Remove duplicate line
Pierre-Emmanuel Viel [Tue, 30 Jun 2020 22:43:42 +0000 (00:43 +0200)]
Fix genericity of computeNodeStatistics that couldn't compute stats properly on sub-nodes
Alexander Alekhin [Tue, 30 Jun 2020 19:55:53 +0000 (19:55 +0000)]
Merge pull request #17700 from asmorkalov:as/cuda_cmake_compat
YashasSamaga [Tue, 30 Jun 2020 16:21:23 +0000 (21:51 +0530)]
add cuDNN 8 support
Pierre-Emmanuel Viel [Tue, 30 Jun 2020 08:33:07 +0000 (10:33 +0200)]
Type consistency for all xxxIndexParams integer arguments as well as with miniflann's LshIndexParams
Alexander Smorkalov [Tue, 30 Jun 2020 08:28:36 +0000 (11:28 +0300)]
Restored compatibility with CMake older than 3.7.
Yosshi999 [Tue, 30 Jun 2020 06:41:55 +0000 (06:41 +0000)]
use universal SIMD intrinsics for SIFT
Alexander Alekhin [Mon, 29 Jun 2020 21:00:18 +0000 (21:00 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Mon, 29 Jun 2020 20:53:34 +0000 (20:53 +0000)]
Merge pull request #17640 from pemmanuelviel:pev--fix-lsh-bad-any-cast
Alexander Alekhin [Mon, 29 Jun 2020 19:54:40 +0000 (19:54 +0000)]
Merge pull request #17696 from dbudniko:dbudniko/g_api_fix_min_max
Alexander Alekhin [Mon, 29 Jun 2020 19:15:24 +0000 (19:15 +0000)]
Merge pull request #17695 from alalek:issue_17677
Alexander Alekhin [Mon, 29 Jun 2020 19:13:59 +0000 (19:13 +0000)]
Merge pull request #17686 from alalek:cmake_cuda_cxx_flag
Dmitry Budnikov [Mon, 29 Jun 2020 17:57:44 +0000 (20:57 +0300)]
min max fix for standalone
Alexander Alekhin [Mon, 29 Jun 2020 17:46:09 +0000 (17:46 +0000)]
cmake(gapi): fix opencv_world build for winpack
Alexander Alekhin [Sun, 28 Jun 2020 22:49:00 +0000 (01:49 +0300)]
cmake(cuda): update handling of -std=c++11/14 flags
Pierre-Emmanuel Viel [Sun, 28 Jun 2020 14:55:50 +0000 (16:55 +0200)]
Add test checking we don't throw when creating GenericIndex with LshIndexParams()
Pierre-Emmanuel Viel [Tue, 16 Jun 2020 14:51:41 +0000 (16:51 +0200)]
Fix the 'cvflann::anyimpl::bad_any_cast' error using Lsh
cyy [Sat, 27 Jun 2020 20:34:44 +0000 (04:34 +0800)]
Merge pull request #17499 from cyyever:fix_CUDA11
Fix cuda11
* use cudnn_version.h to detect version when it is available
* remove nppi from CUDA11
* use ocv_list_filterout
* dnn(cuda): temporary disable CUDNN 8.0
Alexander Alekhin [Sat, 27 Jun 2020 20:17:16 +0000 (20:17 +0000)]
Merge pull request #17636 from okamotoR:3.4
Alexander Alekhin [Sat, 27 Jun 2020 20:12:08 +0000 (20:12 +0000)]
Merge pull request #17665 from komakai:fix-ios-dynamic-build
Alexander Alekhin [Sat, 27 Jun 2020 20:08:36 +0000 (20:08 +0000)]
Merge pull request #17567 from dev-tronifier:new_branch
Alexander Alekhin [Fri, 26 Jun 2020 22:51:34 +0000 (22:51 +0000)]
Merge pull request #17671 from tomoaki0705:fixCUDANativeDetection
pemmanuelviel [Fri, 26 Jun 2020 22:34:52 +0000 (00:34 +0200)]
Merge pull request #17642 from pemmanuelviel:pev--fixes-and-clean
* Clean: make the use of the indices array length consistent
Either we don't want this method to be used in the future for any other node
than the root node, and so we replace indices_length by size_ and remove it as
argument, or we want to be able to use it potentially for other nodes, and
so using size_ instead of indices_length would have lead to a bug.
* Fix: b was not an address
* Fix: transpose the Flann repo commit "Fixes in accum_dist methods" from Adil Ibragimov
Avoids trying to compute log(ratio) with ratio = 0
* Fix: transpose the Flann repo commit "result_set bugfix" from Jack Rae
* Fix Jack Rae commit as the initial i - 1 index was decremented before entering the loop body
* Clean: transpose the Flann repo commit "Updated comments in lsh_index" from Richard McPherson
* Fix: Transpose the Flann repo commit "Fixing unreachable code in lsh_table.h" from hypevr
* Fix warning the same way it was done in flann standalone repo
* Change the return value in case of unsupported type
dev-tronifier [Wed, 17 Jun 2020 06:30:18 +0000 (12:00 +0530)]
Increased portability of CV_Func
Dmitry Budnikov [Fri, 26 Jun 2020 19:41:29 +0000 (22:41 +0300)]
Merge pull request #17020 from dbudniko:dbudniko/serialization_backend
G-API Serialization routines
* Serialization backend in tests, initial version
* S11N/00: A Great Rename
- "Serialization" is too long and too error-prone to type,
so now it is renamed to "s11n" everywhere;
- Same applies to "SRLZ";
- Tests also renamed to start with 'S11N.*' (easier to run);
- Also updated copyright years in new files to 2020.
* S11N/01: Some basic interface segregation
- Moved some details (low-level functions) out of serialization.hpp;
- Introduced I::IStream and I::OStream interfaces;
- Implemented those via the existing [De]SerializationStream classes;
- Moved all operators to use interfaces instead of classes;
- Moved the htonl/ntohl handling out of operators (to the classes).
The implementation didn't change much, it is a subject to the further
refactoring
* S11N/02: Basic operator reorg, basic tests, vector support
- Reorganized operators on atomic types to follow >>/<< model
(put them closer in the code for the respective types);
- Introduce more operators for basic (scalar) types;
- Drop all vector s11n overloads -- replace with a generic
(template-based) one;
- Introduced a new test suite where low-level s11n functionality
is tested (for the basic types).
* S11N/03: Operators reorganization
- Sorted the Opaque types enum by complexity;
- Reorganized the existing operators for basic types, also ordered by
complexity;
- Organized operators in three groups (Basics, OpenCV, G-API);
- Added a generic serialization for variant<>;
- Reimplemented some of the existing operators (for OpenCV and G-API
data structures);
- Introduced new operators for cv::gimpl data types. These operators
(and so, the data structures) are not yet used in the graph
dump/reconstruction routine, it will be done as a next step.
* S11N/04: The Great Clean-up
- Drop the duplicates of GModel data structures from the
serialization, serialize the GModel data structures themselve
instead (hand-written code replaced with operators).
- Also removed usuned code for printing, etc.
* S11N/05: Internal API Clean-up
- Minimize the serialization API to just Streams and Operators;
- Refactor and fix the graph serialization (deconstruction and
reconstruction) routines, fix data addressing problems there;
- Move the serialization.[ch]pp files to the core G-API library
* S11N/06: Top-level API introduction
- !!!This is likely the most invasive commit in the series!!!
- Introduced a top-level API to serialize and deserialize a GComputation
- Extended the compiler to support both forms of a GComputation:
an expession based and a deserialized one. This has led to changes in
the cv::GComputation::Priv and in its dependent components (even the
transformation tests);
- Had to extend the kernel API (GKernel) with extra information on
operations (mainly `outMeta`) which was only available for expression
based graphs. Now the `outMeta` can be taken from kernels too (and for
the deserialized graphs it is the only way);
- Revisited the internal serialization API, had to expose previously
hidden entities (like `GSerialized`);
- Extended the serialized graph info with new details (object counter,
protocol). Added unordered_map generic serialization for that;
- Reworked the very first pipeline test to be "proper"; GREEN now, the rest
is to be reworked in the next iteration.
* S11N/07: Tests reworked
- Moved the sample pipeline tests w/serialization to
test the public API (`cv::gapi::serialize`, then
followed by `cv::gapi::deserialize<>`). All GREEN.
- As a consequence, dropped the "Serialization" test
backend as no longer necessary.
* S11N/08: Final touches
- Exposed the C++ native data types at Streams level;
- Switched the ByteMemoryIn/OutStreams to store data in `char`
internally (2x less memory for sample pipelines);
- Fixed and refactored Mat dumping to the stream;
- Renamed S11N pipeline tests to their new meaning.
* linux build fix
* fix RcDesc and int uint warnings
* more Linux build fix
* white space and virtual android error fix (attempt)
* more warnings to be fixed
* android warnings fix attempt
* one more attempt for android build fix
* android warnings one more fix
* return back override
* avoid size_t
* static deserialize
* and how do you like this, elon? anonymous namespace to fix android warning.
* static inline
* trying to fix standalone build
* mat dims fix
* fix mat r/w for standalone
Co-authored-by: Dmitry Matveev <dmitry.matveev@intel.com>
Alexander Alekhin [Fri, 26 Jun 2020 19:22:20 +0000 (19:22 +0000)]
Merge pull request #17638 from pemmanuelviel:pev--avoid-branching-in-loop
Alexander Alekhin [Fri, 26 Jun 2020 17:41:53 +0000 (17:41 +0000)]
Merge pull request #17663 from alalek:backport_17658
Tomoaki Teshima [Fri, 26 Jun 2020 07:36:59 +0000 (16:36 +0900)]
fix native detection on Jetson
Giles Payne [Thu, 25 Jun 2020 12:27:31 +0000 (21:27 +0900)]
Dynamic build for Objective-C/Swift wrapper
Yosshi999 [Thu, 25 Jun 2020 11:34:31 +0000 (20:34 +0900)]
Merge pull request #17618 from Yosshi999:gsoc_sift-better-test
Added/Fixed testcases for SIFT
* merge perf_sift into conventional perf tests
* Fix disabled SIFT scale invariance tests
allows trainIdx duplication in matching scaled keypoints
Ilya Lavrenov [Wed, 24 Jun 2020 20:58:18 +0000 (23:58 +0300)]
Conditional compilation for IR v7 support
backported commit
86905754e482fb265731840dcf9b36e6a2675c0d
Alexander Alekhin [Thu, 25 Jun 2020 09:42:58 +0000 (09:42 +0000)]
Merge pull request #17658 from ilya-lavrenov:get-layer-by-name
Alexander Alekhin [Thu, 25 Jun 2020 09:12:40 +0000 (09:12 +0000)]
Merge pull request #17641 from pemmanuelviel:pev--fix-middleSplit-for-kdtree-single
Ilya Lavrenov [Wed, 24 Jun 2020 20:58:18 +0000 (23:58 +0300)]
Conditional compilation for IR v7 support
Alexander Alekhin [Thu, 25 Jun 2020 08:22:20 +0000 (08:22 +0000)]
Merge pull request #17584 from AsyaPronina:gapi_state_init_params_via_compile_args
Anastasiya [Wed, 24 Jun 2020 21:43:12 +0000 (00:43 +0300)]
Enable state initialization params via compile_args
Alexander Alekhin [Wed, 24 Jun 2020 10:57:37 +0000 (10:57 +0000)]
Merge pull request #17650 from alalek:update_libjpeg-turbo
Alexander Alekhin [Wed, 24 Jun 2020 10:57:07 +0000 (10:57 +0000)]
Merge pull request #17648 from alalek:update_libjpeg
Alexander Alekhin [Wed, 24 Jun 2020 09:44:51 +0000 (09:44 +0000)]
Merge pull request #17605 from TolyaTalamanov:at/fix-plaidml-kernels-function
Alexander Alekhin [Wed, 24 Jun 2020 06:28:16 +0000 (06:28 +0000)]
3rdparty: libjpeg-turbo 2.0.4 => 2.0.5
https://github.com/libjpeg-turbo/libjpeg-turbo/releases/tag/2.0.5
Alexander Alekhin [Tue, 23 Jun 2020 20:35:56 +0000 (20:35 +0000)]
3rdparty: libjpeg 9d
http://www.ijg.org/files/jpegsrc.v9d.tar.gz
Alexander Alekhin [Tue, 23 Jun 2020 19:15:47 +0000 (19:15 +0000)]
Merge remote-tracking branch 'upstream/3.4' into merge-3.4
Alexander Alekhin [Tue, 23 Jun 2020 18:44:50 +0000 (18:44 +0000)]
Merge pull request #17621 from YashasSamaga:cuda4dnn-mish-half
Alexander Alekhin [Tue, 23 Jun 2020 18:43:50 +0000 (18:43 +0000)]
Merge pull request #17624 from dkurt:dnn_optimize_mish
Alexander Alekhin [Tue, 23 Jun 2020 18:29:55 +0000 (18:29 +0000)]
Merge pull request #17633 from alalek:backport_17616
Pierre-Emmanuel Viel [Sat, 16 May 2020 18:13:00 +0000 (20:13 +0200)]
Fix: error in the dimension used for computeMinMax
Instead of using the current dimension for which we just got a big span,
we were computing Min and Max for the previous dimension stored in cutfeat
(and using 0 instead of the dimension indice for the very first dimension
with "span > (1-eps)max_span")
Pierre-Emmanuel Viel [Sat, 16 May 2020 22:06:47 +0000 (00:06 +0200)]
Optim: test that could be done once has been extracted from the loop
Alexander Alekhin [Tue, 23 Jun 2020 12:51:21 +0000 (12:51 +0000)]
Merge pull request #17634 from dkurt:dnn_ie_cpu_ext_update_master
okamotoR [Tue, 23 Jun 2020 12:36:47 +0000 (21:36 +0900)]
add if block for indexed color images