[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 04/25 19:15 / Filesize : 137 KB / Number-of Response : 563
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

画像処理 その13



1 名前:デフォルトの名無しさん [2011/04/04(月) 14:56:41.07 ]
画像処理プログラミングについて質問、議論を行うスレッドです
・画像処理について素人同士で大激論
・初学者の質問に対してやさしく(的を外れた)解答を与える
・その道の玄人も大歓迎

前スレ
画像処理 その12
hibari.2ch.net/test/read.cgi/tech/1247100724/

357 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:41:14.41 ]
うっせえな、順番に重ねてるだけだろwww

358 名前:デフォルトの名無しさん mailto:sage [2012/01/05(木) 22:57:08.25 ]
2D+Zデプスマップから立体視用の左右の画を得たいのですが
上手い変換方法が思いつきません
何も考えずにずらしたら隙間が出来ちゃうし・・・
良さそうな方法があったら教えてください
最終的にはリアルタイムで処理したいので速度はそれなりに重視します

よろしくお願いします

359 名前:デフォルトの名無しさん mailto:sage [2012/01/06(金) 09:50:35.62 ]
「視差」でググると出てくるかな
eiga.com/extra/oguchi/6/

機械がKinectぽいし、この辺りが参考になるかも
opencv.jp/opencv2-x-samples/point-cloud-rendering

360 名前:デフォルトの名無しさん [2012/01/06(金) 22:26:16.57 ]
Windowsで10bit出力ってどうやるの?

361 名前:デフォルトの名無しさん mailto:sage [2012/01/07(土) 09:57:53.71 ]
ttp://msdn.microsoft.com/ja-jp/library/windows/desktop/dd579106.aspx

362 名前:デフォルトの名無しさん [2012/01/07(土) 11:25:52.91 ]
>>361
thx

363 名前:358 mailto:sage [2012/01/10(火) 00:01:06.61 ]
>>359
レスありがとうございます
ディスプレイスメント・マッピングですか・・・Blenderでも使って実験するしかないか

HDMIのL+デプスマップはどうやって変換しているのかな・・・

>OpenCV
そのサンプルは左右の画からデプスマップを得るコードで
逆だと思うのですが・・・

364 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 10:08:09.27 ]
jpeg画像からDCT係数を直接取り出したりってできるんでしょうか


365 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 10:42:25.64 ]
>>364
単にjpegのデコードを途中で止めればいいだけだから、そういうコード書けばできるよ
そういうライブラリがあるかって話しなら聞いたことないなぁ・・・



366 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 21:55:00.04 ]
>>364
計算すりゃいいだろ

367 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 22:34:50.81 ]
DCT符号?jpegアナライザにその機能あるよ。
自分で調べてバイナリ抜き出してもいい。


368 名前:デフォルトの名無しさん mailto:sage [2012/01/11(水) 23:11:59.93 ]
うっせえな。

369 名前:デフォルトの名無しさん mailto:sage [2012/01/14(土) 02:02:20.09 ]
何かわからないことでも?

370 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 00:40:48.02 ]
kernelマシンってパターン認識以外で使われてるみたことない
他に何か応用あっただろうか

371 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:40:59.52 ]
SVMの応用なんて山ほどあるだろ


372 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 09:41:37.78 ]
カーネルサンダースってケンタッキー以外で使われてるみたことない
他に何か応用あっただろうか

373 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:04:29.22 ]
>>372
くそわろた

374 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 11:16:51.70 ]
何が面白いんだ

375 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 12:10:58.55 ]
ケンタッキー州どころか、日本にも進出しているよ。



376 名前:デフォルトの名無しさん [2012/01/20(金) 13:48:20.12 ]
>>372
軍事用途に応用できるんじゃないかな
もともと軍人だし

377 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 14:26:56.52 ]
>>372
道頓堀で発掘されたな
大阪の神に応用されたらしい

378 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 17:40:18.53 ]
呪物として利用された。

379 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:07:39.54 ]
高速なDFTができたらしい。
arxiv.org/pdf/1201.2501v1

380 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 18:11:02.93 ]
元データに何らかの特性が必要らしい
疎(スパース)だとかなんだとか

381 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 19:39:49.17 ]
>>380
残念、ありがとう。

382 名前:デフォルトの名無しさん [2012/01/20(金) 20:09:04.57 ]
質問です。
ハリスのコーナー検出についてわかりやすく紹介してるところありませんか。
Wikiとか見たんですが、もう少し図とかあるかんじで教えてもらえると嬉しいんですが。

383 名前:デフォルトの名無しさん mailto:sage [2012/01/20(金) 22:09:00.18 ]
これの/?cp=以下のハッシュ値みたいなものが何なのか分かりますか?

よさげな画像なのでとりあえず見るだけでもどうぞ
よかったら回答願います^^;

ttp://img.stardust-web.net/pub/imgc/?cp=gzPTeBGsJejFLAbSmZLMqYdCVfbuc4RWT5od31Bn94VDPoQQwdakKwyrAhzfYMngZDce7COS7aKEwwIkBRVfjJsrmso9Ek&path=/user/entry/blog_id_9/1965a6849181d08346fac3849723cc7d.jpg&cplc=0


384 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 12:10:20.49 ]
画像処理と関係ないからどっかよそに行け
これからは気持ち悪い画像を貼らないように

ちなみにcpは564bit、pathは128bit。後者はMD5くせえな

385 名前:デフォルトの名無しさん [2012/01/21(土) 13:17:50.29 ]
2次元離散フーリエ変換したときに、DC成分を真ん中に持ってくるために
第1象限と第3象限、第2象限と第4象限を入れ替えますが、

データ数が奇数のときってどうやって入れ替えるんでしょうか?



386 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 13:20:54.10 ]
【プログラミング部】 PHPが100倍速で動くようになったぞー
awabi.2ch.net/test/read.cgi/poverty/1327050821/

387 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:30:27.22 ]
>>385
データ数が奇数という事は、奇数x奇数だな。寧ろ、判り易いじゃないか。
012
345
678



567
801
234

偶数だとこんな感じ。
0123
4567
89ab
cdef



6789
abcd
ef01
2345

388 名前:デフォルトの名無しさん mailto:sage [2012/01/21(土) 14:33:27.52 ]
いけね、それぞれ

867
201
534



ab89
efcd
2301
6745

だったw

389 名前:デフォルトの名無しさん [2012/01/21(土) 15:34:31.76 ]
>>388
ありがとございます

5x5ならどうなりますか?

0 1 2 3 4
5 6 7 8 9
a b c d e
f g h i j
k l m n o

390 名前:389 [2012/01/21(土) 15:37:55.80 ]
i j f g h
n o k l m
3 4 0 1 2
8 9 5 6 7
d e a b c

であってます?

391 名前:デフォルトの名無しさん mailto:sage [2012/01/23(月) 14:06:00.84 ]
>>390
いんじゃね?
要は、元のパターンをタイリングしてパターン半分ずらした状態なんだから。

392 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:32:18.63 ]
圧縮した状態でも、座標を指定すればその画素値を取得出来るようなフォーマットってあるのでしょうか?
あるとしたら圧縮率は悪くなのでしょうが。
メモリに出来るだけ溜めこんで、出来るだけ高速に画像処理をするという矛盾したことをやりたいと思っています。

64bitOSにしてメモリ大量に詰むのが一番でしょうが、もしもありましたらお願いします。

393 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:50:22.64 ]
>>392
ないない。
あるとしたら、ってそれはもう非圧縮っていう。
なんかのライブラリ挟んでそういう風に見せることは出来るだろうけど

394 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 14:55:40.49 ]
私はそんなフォーマットわからない。
けど、もし同じことをしようとしたら画像処理途中のグレイスケールや2値画像でメモリにおいとくかな。

どんな用途なんだろう
複数のハイスピードカメラで学習画像をマッチングさせるのかな

395 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:27:13.69 ]
画像の特性にもよるかなぁ。
画像処理というよりバイナリのメモリ圧縮と探索の話になるが。



396 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:54:10.21 ]
カラーなら色空間変換で茶を濁すとか (当然不可逆
R8G8B8(24bit) → Y8U4V4(16 bit) 等

397 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 15:58:46.16 ]
>>392
そもそもそれは画像なの?
特徴点抽出した結果とか輪郭線抽出した結果とかなら、別な有効な手段もあるんだけど。

398 名前:デフォルトの名無しさん mailto:sage [2012/01/24(火) 17:13:30.56 ]
>>393
ですよねー。

>>394
せいぜい余分なデータを省くくらいですよね。
CoaXPressをフルに使った映像をリアルタイムで各種画像処理しながら動画保存するのですが
画像処理に同一動画の前の画像を利用する処理があるので、全部メモリに溜めこめないかなと。

399 名前:デフォルトの名無しさん mailto:sage [2012/01/25(水) 20:36:24.25 ]
>>398
アクセスパターン次第じゃね?
ランダムアクセスじゃなきゃフォーマット設計すればできそう。

400 名前:デフォルトの名無しさん mailto:sage [2012/01/26(木) 15:05:55.69 ]
JPEGは8x8で符号化してるから画素単位までとは行かなくても
その周辺を含む領域でなら復号出来るだろ

可逆にしたって、ブロック単位でやればいいだけじゃね
圧縮率は下がるだろうが

401 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:11:39.59 ]
OpenCVなどで日本語文字列を描画するのに
なんかいいライブラリありませんか?

402 名前:デフォルトの名無しさん [2012/02/01(水) 18:43:34.61 ]
いくつもある画像変換ソフトって設定でサンプリング?1:1:1みたいのとかJPG圧縮率90%とか合わせても変換後のサイズが全然違うのなんで?

403 名前:デフォルトの名無しさん mailto:sage [2012/02/01(水) 18:45:49.05 ]
内部アルゴリズムの違いだろ

404 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 00:08:35.74 ]
フィルタ処理とか特徴点検出とか諸々の画像処理の基本的なアルゴリズムはわかっているんだけど、
高速動作のための実践的な実装を学ぶのにいい本はない?

405 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 00:57:50.76 ]
>>404
高速動作する実践的な実装のコードや
数値計算やHPCの本を読めばいいのでは




406 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 09:31:57.49 ]
>>404
急がば回れ。
一般的な高速化のアルゴリズムやデータ構造(部分計算、DP、木など)や画像処理とは
直接の関係の無い分野のアルゴリズム(文字列処理や人工知能)に詳しくなっていると、
画像処理でもアイデアがいくらでも湧いてくる。

そのうち循環畳み込み演算を膨大な回数繰り返す処理をfft/ifftを使った処理と比較して
3桁高速化するなんてこともできるようになる。

407 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 13:55:04.41 ]
私も406と同じ意見。
アルゴリズムをもっと勉強してブレイクスルーを考えるのがはやいと思う。
普通の高速化なんて目じゃないほどはやくなるよ。

普通の高速化ならopenMPとかソートアルゴリズムの本なんかがオススメかな。結局計算しなくていいとこをいかに早くみつけるかが肝

408 名前:デフォルトの名無しさん mailto:sage [2012/02/02(木) 14:09:36.28 ]
>>404
私偉そうに高速化どうこういってますが、最近SURF特徴点抽出方法覚えたてで高速化に苦戦してます。
2つの画像の128次元ユークリッドベクトルの距離が近いものを探す処理で全部の線を比較するダメダメ処理しかわかりません。

一緒にがんがりましょう

409 名前:デフォルトの名無しさん mailto:sage [2012/02/03(金) 21:19:51.55 ]
そんな簡単にブレークスルーできてたらノーベル賞取りまくりやわ。ええ加減にしとけよ

410 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 01:33:02.72 ]
アルゴリズム自体は固定で実装上の細かい最適化テクニックってことなら
Intelが出してる最適化リファレンス・マニュアルだな。

411 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 02:22:36.88 ]
SIFTなんてガウシアンの畳み込み何回もやるから凄い重いけど実装の工夫だけで超高速にできるもんなんだろうか

412 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 04:22:00.26 ]
パワープレイになりますけれども
CUDAで超並列マルチスッドレとか

413 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 16:41:48.44 ]
マシンパワーに頼った実装ってなんかつまらないな

414 名前:デフォルトの名無しさん [2012/02/04(土) 20:06:53.47 ]
マシンパワーを引き出すのも面白いぞ

415 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 21:37:39.20 ]
だからって16bitCPUで32bit使ったり、32bitCPUで16bit扱うのはマヌケだろう?
グラフィック分野では、CPUやGPUの実装に合わせてゴリゴリ書いて
パフォーマンスを叩き出すのが昔からの慣例。



416 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:00:30.46 ]
最適化ってその時々の中流機で速いことに意味があると思う
ハードを追加することが前提ならいくらでも金かけりゃいいってことになってつまらん

417 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:13:43.23 ]
ハードを追加することでコンスタントに処理速度が上がってく段階になると、
さすがにプログラマとしてはつまらなくなると思う

でも、例えばシングルコアがマルチコアになったとか、
複数のマシンをLANで繋いで負荷を分散できるようになったとか、
GPUが計算に使えるようになったとか、
CPUがCellに変わったとか

そういう劇的な変化時におけるパワープレイは、それはそれで面白い
その環境に最適化する場合の考え方ががらっと変わるからな
パワープレイの方法を間違うと本来の力が全然が出せないし

418 名前:デフォルトの名無しさん [2012/02/04(土) 23:16:59.74 ]
>>417
>ハードを追加することでコンスタントに処理速度が上がってく段階になると、
>さすがにプログラマとしてはつまらなくなると思う

処理速度に余裕ができた分、新しいアルゴリズムを追加できるように
なるんだから面白くなるんじゃないの

419 名前:デフォルトの名無しさん mailto:sage [2012/02/04(土) 23:46:23.11 ]
>>418
人によって段階をどう捉えるかは違うけど、私は次のような段階を考える

1. 様々なアルゴリズムを考え、実験し、検証する(計算上の仮想実験も含む)
2. ハードが変化し、1のアルゴリズムで実用的になるものも現れる
3. ハードの追加によってコンスタントに処理速度が上がってく

この段階で私がプログラマとして最も面白いと感じるのは 1 の段階

次に面白いのは 2 の段階だが、これはどちらかと言うと、
1 のアルゴリズムが使えるようになったおかげで可能になった
他の処理の実装などが面白い

3 の段階になると、処理速度が上がることが分かっているから、
単なる作業と確認でしかなくなる
確かにこの段階でも 2 の様なことは起きるのだが、
ワクワク感やドキドキ感は無いな

420 名前:デフォルトの名無しさん [2012/02/04(土) 23:51:17.93 ]
いや、だから、3の段階に達したらまた別の
アルゴリズムを考える1に戻ればいいじゃん

処理速度に余裕ができたんだから新しいアルゴリズムを追加できるんだよ

421 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 00:18:39.70 ]
>>420
> いや、だから、3の段階に達したらまた別の
> アルゴリズムを考える1に戻ればいいじゃん

全くその通り

どうも言い方が悪かったみたいだ

あるひとつの方法に関して、その実装が
ハードを追加することでコンスタントに処理速度が上がってく段階になると、
その環境でその方法を使い続けることはプログラマとしてはつまらなくなる
(仕事としては、こちらの方が圧倒的に多いが)

422 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 00:39:57.52 ]
>>421
いや、違うか
何て言えば良いのかな・・・

目標 --> 達成 --> 目標 --> 達成・・・というプロセスが続いていくわけだが、
ハードを追加することでコンスタントに処理速度が上がってく段階というのは、
その目標を達成するのにハードの追加で事足りてしまう段階だ

>>419 の 1 の段階は目標を達成するための行為であり、そこで複数の方法を考える

その方法は 2 の段階で実用になるものもあるだろうし、そこで新たな課題が出ることもある

しかし、3の段階になると、その方法を使ってあとはマシンパワーを上げていくだけになる
要求に対して足りないパワーを補うだけ
例えばサーバーやコアの数を増やしたり、メモリを増やしたり
この段階では、この方法に関してはもうプログラマ(私)があれこれ模索することもなくなり、
プログラム的にはほとんどメンテだけの状態に入る

何が言いたいのかというと、>>413 はつまらんと言うが、
3 と違って 2 の段階でマシンパワーに頼るのはスゲー面白いだろ、と言うこと

ほとんどスレチだからもう終わる、長々とすまんかった

423 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 03:54:10.98 ]
既存の画像処理をOpenCLで並列化なんてのはおもしろいぞ。
画像処理はほとんど反復処理だから劇的に高速化する。

424 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 04:42:11.21 ]
元々が糞プログラムじゃない限り劇的にはならないよ


425 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 08:10:58.82 ]
無知乙
ハードウェアの性能が何桁違うと思っているんだ




426 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 09:52:01.29 ]
最近は何桁も違わないよ

427 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:47:31.03 ]
GPUとかFPGA使って高速化したっていう発表は学会でもあるけど、フーン当たり前じゃんって反応だな
既存のアルゴリズムを複数スレッドに分けるだけじゃなくて、マルチコアを前提とした新しいアルゴリズムでないと感動しないな

428 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 11:50:11.65 ]
フーン。

429 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 12:00:10.26 ]
>>427
へー

430 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 12:03:23.32 ]
感動って無知だからできるんだぜ。

431 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 18:35:00.12 ]
ハードによる高速化はシングルスレッドものと比較して早いって言ってるだけで
マルチスレッドCPUで真面目に記述したものとは大差ないんだよな
それとCPUのシングルとマルチでの比較だけど
マルチだとどうしても制御構造で無駄な処理が大量に入り込むから
シングルでMMXとか使った場合と比較しても大差ないんだよな
CPUのコア数が数十とかにでもならない限りは恩恵は実感出来ないだろうな

432 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:16:35.65 ]
SSE ならまだしも、MMX って古代技術だろ
今の時代 MMX の恩恵が受けられる分野って何がある?

433 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 19:33:58.25 ]
たぶんSIMD拡張全般を指して言ってる?

434 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:16:11.16 ]
MMXじゃなくてMMXとかって書いてあるだろ
日本語読めない人なのか?

435 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:27:06.92 ]
>>434
だから、その中には MMX も含まれてるんだろ?

シングルでMMX使った場合と比較しても大差ない場合もあるんだろ?



436 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 20:49:39.87 ]
一番わかり易い例を出せば
シングルスレッドで画像処理をする場合はたいていメモリポインタは加算演算だけで
現在のピクセルデータの場所を計算出来る
しかしマルチスレッドでやろうとするとピクセル毎に乗算でポインタを計算しないと出来ない
アルゴリズム的な総計算回数ではシングルのほうが圧倒的に高速なんだよな


437 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:18:04.03 ]
>>436
画像の一部に処理を施すのなら、どちらにしても
アドレスは (ベースアドレス + x + y * ピッチ) で計算する必要があると思うが

それに、そもそも今時かけ算が足し算の2倍時間がかかるなんてことは無いんだから、
マルチコアの環境ならマルチスレッドにして同時に計算した方が速い場合の方が
圧倒的に多いと思うぞ

輪郭摘出しかり、グレースケール化しかり、ノイズ除去しかり・・・

438 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:37:49.20 ]
>>437
>ベースアドレス + x + y * ピッチ
足し算と掛け算が同じ処理時間だと過程してもこの式を見る限り4倍ですが?

439 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:47:39.87 ]
>>438
おまえの言ってる意味が分からない。コード書いたことないだろ。

440 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 21:51:09.74 ]
>>439
ほとんどの画像処理は1次元の概念だけで処理出来る
だから1ピクセルにつきポインタ加算を1度すればいいだけ

441 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:16:47.17 ]
>>440
言ってる意味が分からない。おまえ画像処理したことないだろ。

442 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 22:24:24.94 ]
ノイズリダクションというよくあるフィルターを考えても1ピクセルだけで処理すとかないし。

100歩譲って全ピクセルなめるだけと仮定しても、
2スレッドに分けたときそれぞれのベースアドレスが変わるだけで、
どっちのスレッドでも、ポインタをインクリメントするだけ。

なにが4倍なのか本当に意味が分からない。

443 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:05:33.38 ]
>>442
ノイズリダクションも全8方向の1時限的相対位置を加減算するだけでデータ位置が特定出来る

444 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:14:40.65 ]
もともと掛け算命令のない8ビットCPUの頃からアドレス計算は加減算と論理演算で計算してる。
ベースアドレス + x + y * ピッチなんてのは人間の理解用だ。
そもそもx86のアドレッシングは強力だ。アドレっシングで遅くなるとかほんと意味不明。

はっきりいって画像処理なんていう並列しやすい処理は、
スレッドが二つになれば速度は倍近く早くなる。

445 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:19:37.83 ]
だからこそスレッド数を増やすだけのGPU実装を最適化というのは夢が無いよ



446 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:32:15.18 ]
>>438
お前さ、簡単なグレースケール化でいいから、
シングルスレッドと、マルチコア+マルチスレッドの両方をプログラムしてみて、
処理速度を計測してみなよ

447 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:37:38.86 ]
GPU内部で死ぬほど並列化していて、しかもそれがプログラマブルだというのに
それを使わないほうが夢があるとかどうかしてる。

楽してGPGPUライブラリ使えよ。

448 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:44:02.87 ]
これから画像処理の最適化が盛り上がりそうなのってスマートフォンじゃん
NEONベースの最適化ってどれくらい効果あんの?

449 名前:デフォルトの名無しさん mailto:sage [2012/02/05(日) 23:52:59.78 ]
>>446
9600GTでさんざんやったが結局CPUと変わらないという結論に達した
CPUでのマルチスレッド化もやってみたが
区画を複数に分割してもそれぞれの境界をうまく相互作用させないといけない
単純にシングルでやるみたいな加算でループ一発とは行かないんだよ
だから2コアでやってみたが結果は変わらない
4個なら多少は早いかもしれないが多少だろうな


450 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:00:24.29 ]
>>449
CPUでのマルチスレッド化をやっても上手く行かなかった原因が
> 区画を複数に分割してもそれぞれの境界をうまく相互作用させないといけない
であり、また >>436 だと結論づけたのか

分析力が欠乏していると言わざるをえない、仕事仲間じゃなくて本当に良かった

では、他の人たちが画像処理のマルチスレッド化で成功しているのを見て、お前はどう思う?
魔法でも使ってると思ってるのか?

451 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:03:29.85 ]
>>431
まずSIMDとマルチスレッドは同時に使えるわけだが

GPUはメモリの転送でかなりのオーバーヘッドがあるから
グレースケールのような単純処理だとほとんど変わらないけ
大きいガウシアンフィルタのような転送するデータ量に対して計算が多い処理ならかなり速くなるぞ



452 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:05:17.93 ]
>>450
何も成功してる例なんてないって
だからSIMDを使ったシングルが一番効率がいい
速度と作りやすさのバランスでね
早くなったと言ってるのは最適化されてないプログラムと比較して言ってるか
CPUはスペック低くしてハードだけ高スペックにしてるとかそんなもん
詐欺だよ詐欺


453 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:06:03.66 ]
>>451
だからマルチスレッドのアルゴリズムが高コストになるから意味ないってw

454 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:36:35.56 ]
>>452
例えば Adobe Lightroom がマルチコア環境で処理が速くなるのは、
シングルコア環境時は拙いコードが走っていたり、
CPUはスペック低くしてハードだけ高スペックにしてる環境での比較だからなのか?

455 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 00:52:22.64 ]
>>449
ありえね〜www

100%おまえのバグだろw



456 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:04:47.31 ]
アセンブラの知識が不足しまくってんだろうな。
どういう処理にコストがかかるとか全然分かってないのだろう。

境界をうまく相互作用と言ってる時点で設計が間違ってる。
無駄な分岐判定でストールしまくってるコード書いてるんだろ?

457 名前:デフォルトの名無しさん mailto:sage [2012/02/06(月) 01:11:57.79 ]
この流れだとGPU凄いよ派と大したことない派で簡単なコード公表するしか決着つかないんじゃね?
2値化くらいの簡単な処理なら表にできないもんかね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<137KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef