Html5 canvas 有没有比运行getImageData更快的方法来捕获画布像素值?

Html5 canvas 有没有比运行getImageData更快的方法来捕获画布像素值?,html5-canvas,Html5 Canvas,我正在处理实时网络摄像头图像帧,以使用javascript提供运动/遥测数据来控制基于web的游戏,为此,我使用画布上下文来获取字节数据。。。context.getImageData( 有没有其他更有效的方法可以从画布读取数据 从网络摄像头抓取帧到画布需要不到我帧处理时间的2%(0.11ms),但运行getImageData将其置于可读状态需要76%的时间(3.67ms) 如果我提高图像分辨率,我将图像处理为10像素,我只看到处理增加15%(4.04ms)G.TimaGeDATA的一次性性能开销

我正在处理实时网络摄像头图像帧,以使用javascript提供运动/遥测数据来控制基于web的游戏,为此,我使用画布上下文来获取字节数据。。。context.getImageData(

有没有其他更有效的方法可以从画布读取数据

从网络摄像头抓取帧到画布需要不到我帧处理时间的2%(0.11ms),但运行getImageData将其置于可读状态需要76%的时间(3.67ms)


如果我提高图像分辨率,我将图像处理为10像素,我只看到处理增加15%(4.04ms)G.TimaGeDATA的一次性性能开销与你所获得的像素数没有直接关系。这是因为获取像素意味着将存储在GPU RAM中的画布像素移动到CPU RAM。这是一种缓慢的设置。在一些设备中,单个像素可以有一半的帧速率。考虑在TH上进行处理。使用着色器和webGL的e GPU。您仍然需要将数据移回CPU,但webGL可以比Canvas 2D API更好地优化此数据移动getImageData的性能成本高一倍,与您获得的像素数没有直接关系。这是因为获得像素意味着将Canvas像素移回CPUGPU RAM中的红色RAM到CPU RAM。安装速度慢。在一些设备中,单个像素可以占用帧速率的一半。考虑使用着色器和WebGL对GPU进行处理。您仍然需要将数据移回CPU,但WebGL可以比画布2D API更好地优化数据移动。