|
|
1
2
您需要了解运动估计,它在视频编码中用于查找先前编码的图片中与要编码的块最相似的块的位置。 (注意:我没有足够的声誉来发布2个链接,所以你必须在维基百科中查找运动估计)。 可以找到一些简单的块匹配算法 here . 这些方法只分析搜索区域中的一部分点。
当只检查搜索点的子集时,提前终止也很有用,尽管加速不如完全搜索。 |
|
2
1
您可以尝试找到近似的解决方案: Patch Match
|
|
|
3
1
回答我自己的问题。 我能够删除alpha通道,所以我决定使用图像金字塔(参见 pyramid 和 gaussian pyramid 长话短说: 我最初的目标是纹理合成。Alpha用于生成尚未填充的像素,B表示已生成图像的一部分(即A是样本图案,B是生成的图像) I-COLLIDE: an interactive and exact collision detection system for large-scale environments “使用3个排序的数组(每个数组按不同的维度排序)进行三维搜索),但它们显然对浮点和较低的维度数效果更好。 使用运动检测的建议是没有用的,因为(似乎)运动检测假设像素代表运动对象(在我的例子中不是真的),至少一些优化依赖于此。 最后我找到了一份名为 Fast Texture Synthesis using Tree-structured Vector Quantization 同一篇论文还提到了一些进一步加速搜索的技术。其中一个是“树结构矢量量化(TSVQ)”,虽然我不能提供更多关于它的信息(还没有检查它-当前的纹理生成器在我的硬件上以可接受的速度工作,所以我可能不会研究进一步的优化)。 |
|
|
4
0
|
|
|
5
0
我会考虑把你早期的电流差转移到你的内环,这样如果误差已经太大的话,它就可以在内环完成之前短路。你的交易条件是一些沉重的数学。此外,错误上的像素比例值可以是乘法而不是除法(在新机器上较小) 是否有可能一次读取多个像素或并行处理? 对于线程,可以在每次外部For循环迭代中启动线程(分解为要使用多少个线程),以使cpu更高效。同步最大错误将是唯一的问题—这可以通过将错误存储到外部表并在最后进行比较来防止内存争用来实现。 缓存要删除的结构->'s可以帮助您,但编译器通常会为您执行此操作。 只是一些想法。还在看。。。 |