In an effort to improve the code performance we did a lot of weeding out stuff from the DigitalSuper8 cartridge C++ code. We simplified the code quite a bit and also used Mutexes to prevent multiple threads from trying to alter or test certain variables at the same time. Seems that errors have lessened but more testing is required.
New: Color monitoring while filming Importantly we managed to ‘upgrade’ functionality with color image monitoring while shooting raw images. It used to be B&W for performance purposes.
Safer multi threading and queuing Also we are using the Qt framework which is a C++ library framework with added functionality such as threadsafe communications between objects. We changed the code so as to send ‘Mat’ arrays that contain the captured images (using OpenCV libraries for that) from one thread to another, that way achieving a safer queuing mechanism as well.
Monitoring explained As further Information: the Digitalsuper8 cartridge runs it’s own webserver and WiFi accesspoint so that a user can fully control the functions and settings of the cartridge and can monitor the captured frames in real-time through a browser on a smartphone or iPhone.
How this real-time monitoring works:
Next to capturing and storing RAW images from the Ximea subminiature camera and sensor in the cartridge, the cartridge sends image file names for each captured and written frame to the browser via server sent events. The browser uses that file name info to load the image and display it on the smartphone. So the videostreaming solution is actually a frame by frame retrieving of images at 18 fps by the browser, triggered by server sent events
We’ve got a working prototype of the Digital Super 8 Cartridge that runs with the Raspberry Pi 3 in an external module with touch screen. Benefits of that solution is the high level of control of operating the Digital Super 8 Cartridge and its settings through the touch screen. Plus the additional real-time monitoring of what is being filmed (in B&W) is a plus.
However the drawback is that the ‘filmtype viewing pane’ of the super 8 camera has to be knocked out of your camera in order to enable the USB connection from the cartridge to the external module.
Some people have suggested to us to try and fit all electronics into the cartridge. Clearly we had to find a smaller Single Board Computer than the Raspberry Pi. Ports and test with the NextThing Co. C.H.I.P. SBC failed as this single core ARM SBC is simply not powerful enough. Now our hopes are on the Orange Pi Zero, which sports a quad-core ARMv7 SOC in a tiny form factor. We have ported the software and the OPI Zero performs reasonably well. Great results for VGA and QHD resolutions. But we need to find optimisations in the code and push for the 720p to runs without dropping frames as well. Whether this will be at all possible we don’t know yet.
Benefits of this solution is that the Digital Super 8 Cartridge can simply be dropped into your camera and you don’t have to work with external module or screen. However the cartridge will have to provide a few buttons and LEDs for powering on/off and controlling settings. Alternatively we are looking at using VNC to provide connection via WiFi to your smartphone where you can then see the desktop of the Digital Super 8 cartridge and control its settings.
We are now waiting for the appropriate Lithium Polymer battery and boost/charge circuit and first need to get all the electronics really to fit within the cartridge. More to follow.
We managed to encode the RAW Digital Super 8 images with S-Log (following Sony’s algorithm). Then processing those with simple S-curve and tweaking colors, saturation and brightness/contrast a bit leads to great results, as show below:
Earlier (before we did S-Log encoding, only gamma encoding) we shot a few new samples with fully portable Digital Super 8. Below a summer sky time lapse (1280 x 720)
and autumn colours in QHD:
and the the same capture rendered as Black & White. To demonstrate the power of Digital Super 8 cartridge shooting individual RAW images in 12 bit (!) bit depth. The Digital Super 8 software tools allow rendering and controlling RGB channels, color cast, saturation, contrast, brightness, HDR and fps.
We took the wearable control unit and the Digital Super 8 cartridge outside for some portable testing.
At dusk we shot the grapes growing in the garden. First part is dark at 200 ASA but we also tested the autogain function that increases the CMOS sensor gain as necessary, leading to better brightness. At the cost of noise in the images of course.
We decided to not color correct the images, just take the 12 bit RAW images (as always) and do the gamma correction. But leaving brightness, saturation, contrast, red, blue and green in their default state. Pretty pleasing results, filmed with the Nizo 481 macro lense at dusk.
During our last coding session we developed the ‘ConnectCam’ button. This button allows users to functionally re-connect the digital super 8 cartridge to the raspberry pi control unit.
This comes in handy in case the USB cable between control unit and cartridge gets accidentally disconnected or wasn’t connected before the control application was started. This will help users solve small issues that may lead to a ‘DS8 Cartridge not connected’ error messages in the application.