ミリ秒単位で処理する関数を作るには? - ページ 3 12345678910...19 新しいコメント Alexey Volchanskiy 2018.09.12 23:20 #21 Dmitry Fedoseev:24コマ/秒は、子供の頃にテレビの本を読んでいなければ十分です)))実はアナログのブラウン管テレビにもインターレース走査がありましたが、当時は与えられた帯域の中でフルフレームを作ることができず、奇数ラインと偶数ラインを先に出して、管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなり手を動かしていました )) Yuriy Vins 2018.09.13 01:22 #22 Alexey Volchanskiy:アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなり手を動かしていました )) 何コマあればいいのかわからない。そのような本は読んだことがない。でも、肝心なのは、今やってみたらうまくいったということです。もちろん、まだすべてを把握できているわけではありませんが、すでにすがるような思いでいます。 Nikolai Semko 2018.09.13 01:49 #23 Nikolay Demko:ChartRedraw関数の コストは40ミリ秒なので、16回目以降のタイマー更新の意味がありません。 40ミリ秒は1秒間に25フレームに相当し、これは人間の知覚速度に等しい。いやいや、ニコライさん、もちろんそれ以下ですよ。私のコンピュータでは、COLOR_FORMAT_ARGB_NORMALIZEで2ミリ秒弱、COLOR_FORMAT_XRGB_NOALPHAで1ミリ秒弱となります。 添付のサンプルスクリプト(TestSpeedCanv.ex5)からわかるように、30ミリ秒のフレーム遅延(32fps)は、あなたの目には絶対に十分なものです。ちなみに、動画はすべてこの速度で撮影しています。スローモーション再生が必要な場合は、より高いフレームレートが使用されます。 ファイル: Screenshot_101.png 246 kb Screenshot_103.png 222 kb TestSpeedCanv.ex5 44 kb Nikolai Semko 2018.09.13 02:45 #24 Реter Konow:タイマー機能の最大周波数は15-16mcです。はい、そうです。(最大周波数=64Hz)。 一応、補足しておきます。 タイマーの周期ステップ=15.625ミリ秒。 つまり、EventSetMillisecondTimer(1) コマンドと EventSetMillisecondTimer(10) コマンドでは、実時間が 15.625ms となります。 EventSetMillisecondTimer(21) コマンドと EventSetMillisecondTimer(30) コマンドを使用した場合、実際の周期は 31.25ms となります。 EventSetMillisecondTimer(95) コマンドと EventSetMillisecondTimer(105) コマンドでは、実際の周期は 109.375 ms になります。 など ファイル: Test_PeriodTimer.mq5 4 kb Natalja Romancheva 2018.09.13 03:10 #25 Alexey Volchanskiy:アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなりのハクリをしたものです)。 ええ、625ラインとかね。最初の自作ゲーム(コンピュータゲームではなく、個々のチップに組み立てられたもの)は、通常312本の線を使っていました。子供のころに遊んだこと:ホッケー、テニス...。 Dmitry Fedoseev 2018.09.13 04:01 #26 Alexey Volchanskiy:アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理で結構なシフトをこなしていました)。それで?ビデオでは、自然な均一 運動効果を得るためには、1秒間に24コマあれば十分だと教わりませんでしたか?そして、フリッカーの問題は、モニター(テレビ)の問題です。 Taras Slobodyanik 2018.09.13 08:33 #27 Dmitry Fedoseev:それで?動画では、1秒間に24コマあれば自然な均等運動効果が得られると、そこで教わりませんでしたか?そして、フリッカーの問題は、モニター(テレビ)の問題です。今では携帯電話でも50fpsの動画が見られるようになりました) 同じもの、速い動きを24fpsと50fpsで撮影し、比較する。 ps. チャーリー・チャップリンは15fpsで撮影しており、これは十分すぎるほどです。) Taras Slobodyanik 2018.09.13 08:46 #28 Alexey Volchanskiy:アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなりのハクリをしたものです)。はい、でもそのハーフフレームは、同じフレームからではなく、別のものでした。 その分、パソコンでの25fpsよりも動きが滑らかでしたね。 Dmitry Fedoseev 2018.09.13 08:49 #29 Taras Slobodyanik:携帯電話でも50fpsの動画が見られるようになった) 同じもの、速い動きを24fpsと50fpsで撮影して比べてみてください。 追記:チャーリー・チャップリンは15fpsで撮影していました。)知識の深さには驚かされます! ...そして、知覚の繊細さにも驚かされます。通常、チャップリンの映画では、誰もがジャークや不自然な動きを見ています。 Реter Konow 2018.09.13 08:50 #30 Nikolai Semko:はい、そうです。(最大周波数=64Hz)。 一応、補足しておきます。 タイマーの周期ステップ=15.625ミリ秒。 つまり、EventSetMillisecondTimer(1) コマンドと EventSetMillisecondTimer(10) コマンドでは、実時間が 15.625ms となります。 EventSetMillisecondTimer(21) コマンドと EventSetMillisecondTimer(30) コマンドを使用した場合、実際の周期は 31.25ms となります。 EventSetMillisecondTimer(95) コマンドと EventSetMillisecondTimer(105) コマンドでは、実際の周期は 109.375 ms になります。 などニコライさん、訂正ありがとうございます。 正確な周期は測っていないのですが、ある周期をスキップしていることに気づきました。周波数が理想的ではないのです。特に、周期値の小さい範囲(16~25ms)では、その傾向が強い。つまり、16ミリ秒に設定すると、かなりの確率で32ミリ秒の間が空くことになる。 生理の頻度には、一種の失敗があるのです。一種の電子的不整脈ですね。 そこで、40msという周期(人間の感覚では十分な周期)を設定し、タイマーがいくつかの周期をスキップしたらどうだろう、と考えています。そうすると、1秒間に24コマではなく、18~24コマになるんです。何回目のピリオドかによって、タイマーがスキップされます。タイマーの周期を25msにするのがベストだと思うのですが、どうでしょうか?それは、私がもともと自分に課していることです。 12345678910...19 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
24コマ/秒は、子供の頃にテレビの本を読んでいなければ十分です)))
実はアナログのブラウン管テレビにもインターレース走査がありましたが、当時は与えられた帯域の中でフルフレームを作ることができず、奇数ラインと偶数ラインを先に出して、管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなり手を動かしていました ))
アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなり手を動かしていました ))
ChartRedraw関数の コストは40ミリ秒なので、16回目以降のタイマー更新の意味がありません。
40ミリ秒は1秒間に25フレームに相当し、これは人間の知覚速度に等しい。
いやいや、ニコライさん、もちろんそれ以下ですよ。私のコンピュータでは、COLOR_FORMAT_ARGB_NORMALIZEで2ミリ秒弱、COLOR_FORMAT_XRGB_NOALPHAで1ミリ秒弱となります。
添付のサンプルスクリプト(TestSpeedCanv.ex5)からわかるように、30ミリ秒のフレーム遅延(32fps)は、あなたの目には絶対に十分なものです。ちなみに、動画はすべてこの速度で撮影しています。スローモーション再生が必要な場合は、より高いフレームレートが使用されます。
タイマー機能の最大周波数は15-16mcです。
はい、そうです。(最大周波数=64Hz)。
一応、補足しておきます。
タイマーの周期ステップ=15.625ミリ秒。
つまり、EventSetMillisecondTimer(1) コマンドと EventSetMillisecondTimer(10) コマンドでは、実時間が 15.625ms となります。
EventSetMillisecondTimer(21) コマンドと EventSetMillisecondTimer(30) コマンドを使用した場合、実際の周期は 31.25ms となります。
EventSetMillisecondTimer(95) コマンドと EventSetMillisecondTimer(105) コマンドでは、実際の周期は 109.375 ms になります。
など
アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなりのハクリをしたものです)。
アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理で結構なシフトをこなしていました)。
それで?ビデオでは、自然な均一 運動効果を得るためには、1秒間に24コマあれば十分だと教わりませんでしたか?そして、フリッカーの問題は、モニター(テレビ)の問題です。
それで?動画では、1秒間に24コマあれば自然な均等運動効果が得られると、そこで教わりませんでしたか?そして、フリッカーの問題は、モニター(テレビ)の問題です。
今では携帯電話でも50fpsの動画が見られるようになりました)
同じもの、速い動きを24fpsと50fpsで撮影し、比較する。
ps. チャーリー・チャップリンは15fpsで撮影しており、これは十分すぎるほどです。)
アナログのブラウン管テレビはインターレース走査でしたが、当時は与えられた帯域でフルフレームを作ることができず、最初に偶数ライン、次に奇数ラインを作り、真空管の残光によるフリッカーが見えなかったからにほかなりません。本を読むだけでなく、学生時代にはテレビの修理の際にかなりのハクリをしたものです)。
はい、でもそのハーフフレームは、同じフレームからではなく、別のものでした。
その分、パソコンでの25fpsよりも動きが滑らかでしたね。
携帯電話でも50fpsの動画が見られるようになった)
同じもの、速い動きを24fpsと50fpsで撮影して比べてみてください。
追記:チャーリー・チャップリンは15fpsで撮影していました。)
知識の深さには驚かされます! ...そして、知覚の繊細さにも驚かされます。通常、チャップリンの映画では、誰もがジャークや不自然な動きを見ています。
はい、そうです。(最大周波数=64Hz)。
一応、補足しておきます。
タイマーの周期ステップ=15.625ミリ秒。
つまり、EventSetMillisecondTimer(1) コマンドと EventSetMillisecondTimer(10) コマンドでは、実時間が 15.625ms となります。
EventSetMillisecondTimer(21) コマンドと EventSetMillisecondTimer(30) コマンドを使用した場合、実際の周期は 31.25ms となります。
EventSetMillisecondTimer(95) コマンドと EventSetMillisecondTimer(105) コマンドでは、実際の周期は 109.375 ms になります。
など
ニコライさん、訂正ありがとうございます。
正確な周期は測っていないのですが、ある周期をスキップしていることに気づきました。周波数が理想的ではないのです。特に、周期値の小さい範囲(16~25ms)では、その傾向が強い。つまり、16ミリ秒に設定すると、かなりの確率で32ミリ秒の間が空くことになる。
生理の頻度には、一種の失敗があるのです。一種の電子的不整脈ですね。
そこで、40msという周期(人間の感覚では十分な周期)を設定し、タイマーがいくつかの周期をスキップしたらどうだろう、と考えています。そうすると、1秒間に24コマではなく、18~24コマになるんです。何回目のピリオドかによって、タイマーがスキップされます。タイマーの周期を25msにするのがベストだと思うのですが、どうでしょうか?それは、私がもともと自分に課していることです。