分页: 1 / 6

Avisynth 流水线化多线程/多进程支持插件(2012-2-20)

发表于 : 2012-02-10 12:57
leiming
我都不知道已经有人做过了orz
说来仔细想一想似乎这么简单的东西肯定别人早就想出来了
怎么轮得到我啊(死

内有源代码、dll、说明文件

功能:
sorathread是让处理能够流水线多线程化的
参数
Cache是读过的帧暂存在里面,默认值是0(帧)
Buffer是预读的帧暂存在里面,默认值是5(帧)
Prefetch是选择预读帧的算法,通过lua脚本编写,具体看里面的example和readme吧……
CopyData是是否把要缓存的数据复制到自己的内存中,而不是简单地保存那个帧的指针(默认是false)

sorasmsource和sorasmserver是让处理能够多进程化的
用于解决内存使用过多而程序崩溃问题
原理用了共享内存,希望会比tcp来得快
谁来测试一下?……(爬走
因为进程间同步的效率问题,在我电脑上最高只能到250fps左右
如果脚本的运行速度高于250fps那么也只能在250fps

源代码也在包里面

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 8:45
msg7086
{:cat_3} 雷鸣大大

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 11:01
翡璃月
我來試試看吧
最近跑的腳本連tcp都會crash....
用sora跑看看

不好意思 請問是否給個範例...
sorasmserver 人笨不會用 {:cat_15}

===========

原來如此 把sorasmserver.exe當作載體阿...

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 14:18
leiming
更新。
不太清楚使用方法的话看里面examples应该能懂吧
不懂再提出来就是

修正了一个很严重很严重的问题,计算帧字节数的时候算错导致崩溃(死




tcp我其实还没用过(死
觉得用tcp会overhead很大所以才做了这个用共享内存的
虽然进程同步的时候开销还是很大…………



mr你别这样我会超级有压力的(倒

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 16:49
06_taro
{:cat_3} 雷鸣大大

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 18:29
翡璃月
目前用更新前的版本 並未出現問題
等這任務結束之後 再來更新新版本試用

目前發現跟tcp相比的優點是 可以1pass+2pass一貫到底
不須重新啟動tcp前置

建議exe是否可GUI化?
多放一個bat實在挺礙眼的...(羞

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 19:12
06_taro
TCP如果用MP_Pipeline,或者SAP修改过的TCPDeliver.dll的话都不用重新启动前置的。原版关闭时crash是bug。

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 19:54
翡璃月
原來如此
目前只感覺比tcp速度快約0.1fps
原本只有1.28fps
現在是1.38fps
參數&大小...1920x1080 tesa+subme11+me64

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 21:12
翡璃月
本來想雙壓...
可是發現問題了 不管是 修改前版本 還是修改後版本 的 sorasmserver
都會crash 不給我雙壓...

Re: Avisynth 流水线化多线程/多进程支持插件

发表于 : 2012-02-11 21:50
leiming
当前是只考虑了一对一的情况,一个sorasmserver对应一个sorasmsource
所以一个sorasmserver对应两个sorasmsource的时候估计会出莫名其妙的问题。

说来对于本身就很慢的情况下这个开销对速度的影响似乎就微不足道了?
呃,其实这个版本发了之后还在考虑能不能进一步提高进程间通信的效率的orz
感觉投入产出不是特别大?……不是很清楚呢

如果不是误差而是真的有速度提升的话我是很开心w
一个是我的想法被证实,一个是我的努力有一点成果