Передача ImageData в background.js

Изучаю расширения для Google Chrome

Я получаю данные с видеокамеры, рисую их на canvas, потом получаю ImageData из canvas и отправляю в service_worker для дальнейшей обработки. В качестве соединения использую долгоживущий port между content и service_worker.

Основная проблема состоит в том, что операция отправки происходит очень долго (от 80ms - 140ms), но при этом я не могу отказаться от отправки данных на service_worker.

Есть ли способ как-то ускорить передачу данных?

Вот мой код:

var port = chrome.runtime.connect({name: 'myPort'});  // <--- открываю порт
function run(){

    ctx.drawImage(video, 0, 0, 640, 480);
    let imageData = ctx.getImageData(0, 0, 640, 480);

    let data = Array.from(imageData.data);  // <--- 30ms - 40ms

    port.postMessage({message: 'video_frame', data: data});  // <--- 40ms - 100ms
};


Ответы (0 шт):