Measuring Opencv.js performance with Wasm execution engine in desktop, embedded and mobile browsers - Pérez, Carlos A. (2019)
Current browsers have sophisticated execution environments for Javascript, and fast rendering engines. With the advent of HTML5, they accept digital cameras, and they can process, in real time, video streaming between browsers, allowing instant communications. In addition, the introduction of the low-level virtual machine (LLVM) allows image-processing libraries to be delivered, alongside web pages, as specialized scripts that execute in browser, with significant speed gains when compared to traditional Javascript engines. This make the browser a very suitable platform to deliver web applications with heavy image processing tasks, that execute at native speeds. However, measuring such performance in modern browsers is a demanding challenge. In this paper, a set of recommended practices to use and to benchmark Opencv.js are presented and obtained figures on several testbeds are discussed. Measurements involved a desktop PC, a selection of smartphones with mainstream processors, and a Raspberry Pi single-board computer, which resulted in several findings that confirm the maturity of mobile an embedded browser for image-processing with Javascript at client side, running at native speeds.