* introduce non-loop-unrolled version of function and use them when the image size is not a multiple of 12 or 16
* Remove tests for imagesize being a multiple of 16 or 12 to handle functions with unrolled loops
* Use non-unrolled functions when image size is not a multiple of 12 or 16
* use std_blend when image is odd size
Memory allocations and image size requirements changed to be as needed for 64 byte alignment.
Self-test code for Blend modified accordingly and added Self-test for the delta functions.
CHAR_WIDTH is defined by limits.h, and class Image redefines it to 6,
which causes gcc6, clang, gcc5 to complain about it.
Fix by adding ZM_ prefix to CHAR_WIDTH and CHAR_HEIGHT, so it can be
compiled.
Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
1) Added optimized versions of four field deinterlacing, including SSSE3 ones.
2) Removed the "Very Soft" and "Very Hard" options.
3) Deinterlacing happens before any rotation to the image.
1) Removed the V4L2_CAPTURE_FIELDS option.
2) V4L2 Interlacing control options added to the new per-monitor deinterlacing option.
3) Fixed the 32bit version of Linear.
4) Added Blend (50%) and Blend (25%).
5) Completed the grayscale version of the Four Field Motion Adaptive deinterlacing algorithm.
1) Fixed wrong size calculation in Image::AssignDirect.
2) Improved libjpeg subpixel order selection.
3) Finished adding support in the simple Overlay function.
4) Completed Flip and Rotate 32bit RGB support.
5) Allow ZM to compile on 32bit with omit frame pointer disabled by defining _DEBUG
To use one less register in the SSE algorithms.
6) Removed the counter variable in some loops to reduce loop overhead.
7) Modified crop query error handling.
8) Most of the shared data now declared as volatile.
9) Small improvements to the AlarmedPixels motion detection.
10) Changed the default blend percent from 7% to 12%.
11) Fixed an earlier bug created by me: motion detection checking the wrong pixels.
2) Changed image class buffer related functions
3) Improved format selection for local cameras
4) Removed imagesize check for swscale
5) Fixed mmap unexpected memory size when changing capture options
6) Fixed unrelated bug in zmdc.pl: sockets directory doesn't exist
2) SSE2 aligned memcpy now functional
3) Fixed fill functions bug from an earlier commit
4) Many changes to zm_local_camera.cpp format selection
5) Fixed memory leak in AssignDirect()
6) Fixed Target Colorspace webinterface issues
7) Small other changes
1) Delta and blend SSE and standard alogirthms inside
2) Changed event streaming to use sendfile() syscall if available
3) Direct memory capture (Less memcpys required)
4) Added macros for BGR24 and RGB32(and its variants) formats
5) Modified Monitors database table to add a target colorspace option
6) Changed most image buffer allocations to be on 16 byte boundary, work still in progress
7) Added Target colorspace instead of the old colours selection. this one also visible to local cameras
8) Replacing Y deltas option with ZM_CPU_EXTENSIONS
9) Added SSE detection code
10) Changed some code to make linking success with inlining enabled.
11) Some other changes and work still in progress for some listed above