小编Ber*_*ion的帖子

是否有一个很好的开放编解码器用于截屏视频压缩

从计算机屏幕捕获的视频可以通过针对屏幕视频优化的编解码器进行非常好的压缩.通常,这意味着考虑到屏幕的大区域在帧之间不改变,并且当区域改变时它们经常变回先前看到的状态.

我所知道的唯一一个是Adobe的Flash Screen Video,它被指定为SWF格式的一部分:http://www.adobe.com/devnet/swf.html.它有点巴洛克式,但可以使用.

我正在制作一个实验性的HTML5/JS截屏视图,需要一个基本格式.目前,我能看到的唯一选择是在JavaScript中实现FlashSV解码器,或者滚动我自己的格式.

有谁知道那里的任何其他屏幕视频编解码器?

编辑:接受第一个答案,因为底部的链接提供了一个非常类似于我正在寻找的编解码器:http://wiki.multimedia.cx/index.php?title = PeopleBox_Capture_Codec

video screen codec

18
推荐指数
1
解决办法
6660
查看次数

找到任意子数组中所有项的总和的最佳算法是什么

我有一个问题,一个OK-ish解决方案.我希望那里有更好的解决方案.

问题

我有一个大约200,000个整数的数组.给定两个索引i1和i2,我需要计算i1和i2之间所有元素的总和.数组中的每个整数都介于1和4之间.例如:

a = [1, 3, 2, 4, 3, 2, 4, 1];
subsection_sum(a, 0, 3); // returns 6: (1 + 3 + 2)
Run Code Online (Sandbox Code Playgroud)

此操作将执行大约200,000次,因此需要非常快.for循环中的一个简单计数器是O(n),而且太慢了.在构建之后,阵列永远不会被修改,因此可以拥有相对昂贵的预处理阶段.

迄今为止我的最佳解决方案

该算法在O(log n)时间内工作:

首先用零填充原始数组,直到其长度为2的幂.接下来,将数组拆分为两个相等的部分并存储每个的总和.然后将数组拆分为四分之一并存储每个数组的总和.然后是八分之一.继续这样做,直到数组被分成2个元素长的部分.对于上面的8元素数组,这需要两个步骤:

halves = [(a[0] + a[1] + a[2] + a[3]), (a[4] + a[5] + a[6] + a[7])]
quarters = [(a[0] + a[1]), (a[2] + a[3]), (a[4] + a[5]), (a[6] + a[7])]
Run Code Online (Sandbox Code Playgroud)

然后给出两个索引,现在可以在O(log n)时间内计算出subsection_sum.例如,subsection_sum(a,2,7)== quarters [1] + halfves [1].

algorithm sum array-algorithms

6
推荐指数
1
解决办法
3174
查看次数

标签 统计

algorithm ×1

array-algorithms ×1

codec ×1

screen ×1

sum ×1

video ×1