重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

高2です。今度の科学展にサブリミナル効果の有用性についての実験を提出しようと、任意の画像をサブリミナルさせるプログラムを書いています。

それらしいものができたのですが、やってみると画像が少し見えてしまってぜんぜんサブリミナルじゃありません。調べてみると、Windowsのタイマ機能は100ミリ秒刻みだということがわかりました。でも、サブリミナルには20ミリ秒ぐらいが必要なんです。シェアで同じようなソフトがあったんですが、そのソフトは15ミリ秒間の表示ができるというので無理ではないと思うのですが・・・

どなたか教えていただけたら幸いです。質問には答えるようにします。

A 回答 (5件)

サブリミナル効果っていうと, 初期に言われていたのは映画の話だから毎秒 24コマ, 40ms 程度ですかね.


MPEG とかであれば「途中で切って」「間に 1コマだけ画像を入れて」「全体を繋ぐ」ことができれば作れますが, そういう機能を持っているソフトがあるかどうかは知りません.
以下は余談なんですが....
真面目にやるのであれば「サブリミナル効果は存在しないという報告もある」, 「認知とか心理に関する実験は, 条件をそろえるにくいため本当に効果があったということを示すのが実は非常に難しい」ということくらいは念頭におくべきかと思います. てきとーにやるだけならこんなことを気にする必要はありませんが, てきとーにやるならてきとーにやるで「てきとーにやっているんだ」という意識はいるんじゃないかなぁ.
    • good
    • 0

描画の速度が遅いと無理だと思います。

(PCの性能に依存)

DirectX等は使っているでしょうか?
例えば秒間60フレームなら
1フレームが約17ミリ秒なわけですが、それだけのフレームレートはでていなければ
無理でしょう。
    • good
    • 0

Windowsでは指定した時間どおりに正確に何かを実行することができません。

何か優先度の高い処理が入ると、自動的に(勝手に)そちらの処理が先に行われるので、優先度の低い処理は動作が遅れます。

・・・が、そういう高優先度の処理が入らないものと仮定する場合、

timeBeginPeriod, timeEndPeriod, timeSetEvent, timeGetTime

等の、通称「マルチメディアタイマー」機能を使用して、約1ミリ秒単位まで指定したタイマーが使用できます。

Windowsの通常のアプリケーション(専用デバイスドライバを使用しないもの)としては、これが最も高い時間精度を実現できるAPIです。
    • good
    • 0

GetTickCount() 使えば大丈夫では?


タイマではないのでループを工夫する必要があるかも知れませんが…。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

なるほど、GetTickCount関数でいけますね。timeGetTime関数でもいけるかもしれませんが。
早速いろいろやってみます。

お礼日時:2005/09/26 23:11

ムービーでやってはいかがでしょうか?

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
最初FLASHでやろうと思ったんですよ。簡単だし。だけど20ミリ秒の壁は越えられませんでしたね。オーバーロードしちゃいまして。
MPEGとかAVIのムービーにミリ秒単位で画像を差し込んでいくのはちょっと方法が思いつかないので・・・
知っていたら、教えてくださると幸いです。

お礼日時:2005/09/26 22:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!