Time waits for nobody
Keeping video enhancement software general also means using modern programming techniques and languages to allow to the use of complex features while still remaining compatible with older hardware. Let’s take a look at a small example of what this may entail. How about getting the current (precise) time and date? That’s simple enough, right? Well, yes, this is done quite easily in both Linux (the base of Android and most IoT systems) and Windows. On Linux, this can be done with a few lines of programming code:
time_t t;
time(t&)
result = asctime(localtime(tm&));
It’s not too bad in Windows either. Unfortunately, Windows reports the time and date in another format! Since the output (or internal workings) of video enhancement software should work exactly the same regardless of the operating system, you need to be proactive even with small details like these. Therefore, when building our Vidhance video enhancement software for a Windows platform, our build system swaps out the above code for something like this:
length = GetDateFormat(LOCALE_USER_DEFAULT, 0, NULL, NULL, NULL, 0);
char* date = (char*)calloc(1, length);
char* time = (char*)calloc(1, length);
GetDateFormat(LOCALE_USER_DEFAULT, 0, NULL, NULL, date, length);
GetTimeFormat(LOCALE_USER_DEFAULT, 0, NULL, NULL, time, length);
strcpy(result, date);
strcat(result, time);
There’s no need to understand the details here. The main takeaway is that even a small detail like this requires effort. When building the video enhancement software for a customer, information about the target system is provided along with specific customer requests, and the correct pieces of code are automatically selected and compiled, here and in a thousand other places, all ensuring the best possible performance and compatibility.
More to implementation than meets the eye
A typical implementation project often requires more than just installing a packaged product. There’s normally more work needed for integration and fine-tuned algorithms. Clients may request everything from customized products to pre-testing or characterization evaluation in our DxO lab (read more about our testing process and lab). The results are distilled down to a few important key variables. These are inputted into Vidhance, which automatically adjusts to make the best video enhancements and analysis possible.
A “semi-automatic” process centered on maintaining generality as outlined in this post takes some effort in the short run but certainly pays off when scaling up in the long run. Ultimately, it’s easier to adapt the software to different devices, hardware configurations and client needs while making it easy to add additional features and serve more clients. And this is just barely scratching the service of what is possible.
A customizable platform for your current and future needs
If you purchase some hardware or software only for video stabilization and then later need to integrate something new to enable object tracking or other features, this could be an expensive and time-consuming dilemma. A general, customizable video enhancement platform that can be integrated into different devices and configurations is the answer. This will also allow you to easily add and upgrade performance and features over time as needed, which is key to future-proofing your video quality. As a result, you’ll be poised to realize the enormous potential for new vision processing advancements in drones and similar cameras in motion.
Contact us to learn more about all the possibilities of Vidhance. We’d be happy to discuss your needs and book a demo. For inspiration, insights and best practices for the next generation of video enhancement, enter your email address below and subscribe to our newsletter.