可逆圧縮総合スレ

このエントリーをはてなブックマークに追加
475459
お待たせです、嫁謹製のマルチスレッド版をアップしてみました。再配布はご自由に。
ソースも同梱されてるんで、改良できる部分があれば誰かお願い。
http://iroiro.zapto.org/cmn/jb/data/jb4667.zip

>>470
俺はプログラミングは素人なんでうまく説明できるか自信ないんだけど、以下嫁の話のまとめ。

オリジナルのHuffyuvの処理をそのままマルチスレッド化するのは確かに難しい。
内部処理でマルチスレッド化できる部分をなんとかマルチスレッド対応にしてみた。
出力されるファイルはオリジナルと互換性あり。
 ↓
どうも期待したほど高速化しない。
更にアセンブラコードに手を入れたり、いろいろ試すがうまくいかず。
 ↓
ぶち切れてオリジナルとのファイル互換性維持を断念。
動画フレームが入力された時点でコア数に応じてフレームをぶった切り、ぶった切られた
フレームそれぞれを各コアに流して圧縮処理実行、処理完了後のフレームをくっつけて出力、
というすさまじく乱暴な処理を行うことにしたんだそうな。
デコード時には、圧縮時に分割された数に応じたスレッドが生成されるらしい。
なので、デュアルコアCPUのPCでキャプったデータを4コアCPUのPCで再生させても
4スレッドは立ち上がらない。
逆に4CPUのPCでキャプったデータをデュアルコアCPUのPCで再生する場合は、
2スレッドずつ1コアに流す形で実行する形になるんだって。
一応生成スレッド数を設定するオプションをつけてあるので、デュアルコアCPUで
4スレッド、8スレッドを生成することも可能。
ただしスレッド分割のオーバーヘッドは発生するんで、効率はよくないかもなぁとのこと。

という感じでずいぶん強引な方法でマルチスレッド化をやっていて、なおかつオリジナルのHuffyuvで
出力されたファイルはマルチスレッドで再生できないんで、あんまり期待しないでね、と<嫁
あくまでこの改造版でキャプったデータを、この改造版でデコードという使い方を想定してます。
試して大きな不具合があれば、ここに書いてもらえば嫁に伝えます。
嫁は基本的に2ちゃん見ない人なんで、俺が代わりにここでの対応はしますですよ。