Video Level Differences Between SS Camera Window vs Files and Web Browser
As an expert in home theater calibration, I'm particularly keen on making video playbacks appear the best possible. One thing that has always bothered me is that Security Spy presents camera windows with black levels elevated as opposed to how live & captured video appears on browsers and direct (VLC) playback of downloaded video files. The Security Spy app on IOS and AppleTV matches the levels in direct playback. Only the SS app camera windows do this level shift/ range compression.
Camera windows in Security Spy (yes V5 & V6) erroneously elevate black to digital 16 rather than digital 0. Also white gets decreased to digital 218. This makes SS camera window presentation washed out and lower contrast as opposed to web browser, direct file playback, and SS AppleTV playback. I think SS is presenting camera window video with [0..255] compressed into range [16..235] rather than the original video's [0..255]. As a result, SS camera windows look washed out and dull. This also make it difficult to optimally set camera black level while viewing a SS camera window. Instead, one must pay attention to how image appears in a browser window or on AppleTV not Security Spy's camera windows.
The following analysis of video playback levels were done via my Cosalient Pattern Generator Lite, an app used by home theater film reviewers to measure luma levels in images.
First, this is from a Security Spy camera window. I'm sampling the black area near right of bushes with my cursor. You see the RGB level is 16,14,16. Also, the blown out, max white of the lamp is at RGB 218, 217, 218. The Security Spy presentation of the video is compressed into a reduced RGB range of roughly [16..218]
Via Safari Browser playback, black is at RGB 0,0,0 and white at RGB 234, 234, 234. Safari browser presents the video feed from SS in the range [0..234]. This is a wider display range and visually a stunning difference from what one sees in a SS camera window.
Finally, if one downloads a captured video file and plays it back via VLC (without letting VLC adjust levels), one sees black presented at RGB 0, 0, 0 and white at RGB 232, 232, 232. This matches the [correct] levels in the Safari browser presentation.
Basically, the Security Spy camera window presentation of video content is compressed into a narrower range than the original video file and what one sees via a web browser viewing SS content. Imagery within SS camera windows would look better and be accurate if SS stopped shifting the playback levels into a compressed range. Black would become black instead of gray. White would become brighter.
if one wishes to do screen caps and perform your own measurements. a free, personal use only, copy of Cosalient Patter Generator Lite can be obtained at https://www.avsforum.com/threads/cosalient-pattern-generator-lite-adl-measurement-fine-convergence-interpolator-fractal-focus.3231947/#post-61347252
Launch the app, drop a screen cap into the app to measure levels in the image. Moving cursor sets where the is doing sampling. The S key saves out results.
Comments
Thanks for bringing this to our attention, we have now made some tweaks to address this in a new 6.1b7 beta version - could you please test and report back.
Will check out the beta. Always amazed at the speed of your fixes.
Yes, beta 6.1b7 now presents video material in its camera windows in the correct dynamic range. No longer are blacks turned into dark grays.
Measured the levels in both SS browser window playback and live camera windows. For the live camera window shot, I intentionally adjusted exposure and picture contrast/brightness on a camera to make shadow details maximally dark and white maximally bright. That ensures both ends of range were captured.
SS Browser window playback now presents black correctly at RGB 0,0,0. White in blown out light area RGB maxes at 239
SS camera window with specially adjusted max range camera black is at RGB 0, 0, 0
SS camera window withh specially adjusted max range camera white is at RGB 240, 240, 240
I am happy report that video luma level handling is now correct for the SS camera windows and "browser" window. Black is no longer elevated and dynamic range is not being compressed.
This will make the SS windows match the appearance in web browser, direct file playback, and AppleTV SS app.
Thank you. We're finally freed of that slight foggy appearance in the SS windows. Images should now have deeper looking depth and slightly more saturation. This will be most evident in night videos and in darker scenes.
Your luma level fix in 6.1b7 is working correctly based on my measurements. Bravo.
This video level correction is really great. I can finally tune my cameras to look their best in both web browsers and Security Spy camera windows. Previously, tuning black level to be correct on web browsers made the SS camera windows look too foggy (elevated blacks). Tuning to make SS cameras windows look correct made web browser views clip shadow details into black. The compromise that clipped some shadow details on browsers, but didn't make SS cameras windows too severely wash out black, was never really satisfying.
Now, it is possible to tune a camera correctly and have it look good across all my viewing devices and within the SS app itself.
Typically, I set up display brightness and contrast using the test patterns in my generator software. That sets the display to correctly show shadow details and present black as black.
Then, I tune the camera contrast and brightness to make shadows details a click or so above just visible.
This is great such a good pick up and such a great resolution I will look forward to it in the next update. This is why I had no issue upgrading even though I could have just stayed on V5 this is true product development.
PS love your driveway 😎
Thanks @guykuo for your picking this up, and for your detailed reports. The problem was due to the fact that SecuritySpy's internal image format is "video range" YUV, where luma values range from 16 - 235. When converting this to RGB for display to the screen, this limited range was incorrectly maintained, resulting in insufficient black/white depth. The new beta adjusts this conversion so that the resulting RGB data is full-range with luma values from 0-255.
I can clearly see that the video display in the beta looks a lot better across all cameras, with significantly more defined blacks and whites. Many thanks for helping us make this happen - this is a great improvement!
Updated Cosalient Pattern Generator Lite to run natively on Apple Silicon. You'll still have to right-click & open twice to initially get it running as it is a freebie, not prepped for Apple App Store. SS users may find it useful for properly setting their displays to show SS and other imagery accurately
MacOS version (Intel & Apple Silicon Universal)
http://cosalient.com/picture/jvc/Cosalient%20Pattern%20Generator%20Lite%20MacOS.zip
Look in the first post here for usage info https://www.avsforum.com/threads/cosalient-pattern-generator-lite-adl-measurement-fine-convergence-interpolator-fractal-focus.3231947/#replies