哪里可以找到关于实现用于计算"脏矩形"的算法的参考,以最小化帧缓冲器更新?一种显示模型,允许任意编辑并计算更新显示所需的最小"位blit"操作集.
我在这里寻找一种算法,独立于特定的编程语言.
问题:
我们有一个二维显示区域(想象简单的像素缓冲区).定期地,一些像素被改变.我们需要找到一组封装所有更改像素的矩形.
计算一个封装所有已更改像素的单个可能很大的矩形将是微不足道的,但这是不可取的.我们宁愿将多个较小的,紧密拟合的矩形缩小到指定的最小尺寸(这是一个可以更改的变量).
例如,假设在整个显示区域内,左上角的几个像素发生了变化,右下角的几个像素发生了变化.我们不想计算整个区域的单个脏矩形 - 我们想要两个脏矩形:左上角的小矩形和右下角的小矩形.
性能至关重要,因此这个问题.
我认为,这个问题一直存在,绝对是在视频编解码器和远程桌面压缩区域.就我而言,在图形图像处理过程中,这是一个反复出现的问题,涉及多个用户同时在共享区域绘图.
有没有人知道已发布的算法或知道您过去使用过的解决方案?
谢谢!
我有一个覆盆子pi,并从raspbmc.com加载了最新的独立产品.使用XBMC时,我发现CPU使用率始终高于90%.在查看XBMC wiki和FAQ之后,脏区似乎是降低CPU使用率的常用方法.
我创建了一个文件advancedsettings.xml
在/home/pi/.xbmc/userdata/
.该文件的内容是:
<advancedsettings>
<gui>
<algorithmdirtyregions>1</algorithmdirtyregions>
</gui>
</advancedsettings>
Run Code Online (Sandbox Code Playgroud)
我尝试了XBMC wiki中解释的脏区 1和2模式,在这两种情况下我都看到只显示脏区域而其余区域是黑色.该OpenElec维基说,这是一个已知的问题,因为在八月'12建立.
现在,我能做些什么来解决/解决这个问题?我以1080p运行高清电影,它们工作正常.但是我有点担心RPi在发生关键事件之前可以花多长时间使用这么多的CPU.
graphics ×2
bounding-box ×1
framebuffer ×1
geometry ×1
optimization ×1
raspberry-pi ×1
rectangles ×1
xbmc ×1