パスワードを忘れた? アカウント作成
13510804 story
Facebook

Facebookが新たな時間単位「flick」を提唱 41

ストーリー by hylom
NTCSの闇 部門より

Facebookが新たな時間の単位を提唱している(PC Watch)。

この時間単位は「flick(flicks)」と名付けられており、1flickは705600000分の1秒に相当する。これを実装したC++コードもすでにGitHubで公開されている

昨今ではさまざまなフレームレートの動画やサンプリング周波数の音声がコンピュータで取り扱われているが、1flickをこのように定義することでさまざまなフォーマットにおいて扱いやすい形で時間を管理できるという。たとえば毎秒24フレームの動画においては、1フレームの時間は29400000flicks、毎秒30フレームの動画の場合は1フレームは23520000flicksとなる。

ただし、毎秒29.97フレームであるNTSCについてはflicksでも正確には扱えないとのこと。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 脊髄反射
    スウォッチの腕時計に「インターネット時間」組み込み [impress.co.jp]
    こんなのもアリましたけどね程度に。
    @その後どーなったかは知らん。興味もないので追っかけナシ。
    • by nemui4 (20313) on 2018年01月25日 11時33分 (#3350467) 日記

      一瞬「脊髄反射」の時間単位もあるのかと脊髄反射した。

      親コメント
    • PSOとか待ち合わせに使われてましたな。
      PSOBBではボスの攻撃力と外観が変わるとかそういうのにもつかわれてたもよう。
      最近はどうなんだろうな。

      親コメント
      • by Anonymous Coward

        PSOBBではボスの攻撃力と外観が変わるとかそういうのにもつかわれてたもよう。

        インターネット時間が特定の条件を満たすと特殊攻撃が発動したり攻撃力が変動したりするレア武器もありましたね

        しかし、後継のPSU・PSO2ではインターネット時間非対応になったので時間を使ったギミックはなくなりました
        (特殊攻撃自体なくなったのでレア武器の個性が薄くなりましたけど)

    • by Anonymous Coward

      実はフランス革命では時刻も十進にしていて、Swatchの1ビートは1十進分と同じです。
      あまりに不評だったのか、大本のフランス革命暦よりもかなり前に廃止になっています。

  • ダメじゃん
    分数で管理するのはダメなのか

    • by Anonymous Coward on 2018年01月25日 11時41分 (#3350474)

      実はできます♪

      https://pc.watch.impress.co.jp/docs/news/1102480.html [impress.co.jp]
      1001/30000 (~29.97) fpsの1フレーム: 23,543,520 flicks

      #記事の訂正が反映されてないだけで~す

      親コメント
      • by Anonymous Coward

        どうせ訂正されないんだろうな
        スラドは窓の社以下か

      • by Anonymous Coward

        1001/30000≒0.0333667なんですが?

        # 最近「≒」は使わなくなったのだろうか

        • by Anonymous Coward

          1/705600000が有限小数だとでも思いましたか?

          • by Anonymous Coward

            1001/30000 じゃなくて
            30000/1001 だろうって話なんじゃ?

      • by Anonymous Coward

        放送であったりビデオデッキ、ゲーム機等から出力されるNTSC映像のものは表現できても、
        それらをエンコードしたAVI資産は大概strhに 2997/100 と書かれていて表現できないでしょ

    • 分数で管理することにして、よく使う分数の分母で通分して分母を固定すれば、
      分子という一つの整数だけで時刻を正確に管理できる、というのが今回のflicksのアイデアでしょう。

      flicksの分母が705,600,000なわけですが、「705,600,000=44,100×16,000=48,000×147,000」と考えると、公倍数感がすごくありますよ。

      29.97については別のコメントもありますが、見た目通りの「1/29.97秒」という時間はこのflicksでは表現出来ませんが、
      実際のNTSCのフレームレートは30×1000÷1001 = 29.9700299700…fpsです。
      「毎秒○フレーム」という表記だと循環小数になってしまい正確な表現ができない感じがしますが、
      1フレームの時間を分数で表した場合は1001/30000秒。分母は30000というきりがいい数値なので、正確にflicksで表現できます。

      親コメント
      • by Anonymous Coward

        そうそう。
        44.1kHz-48.0kHzのサンプリングレート変換をまじめにやると出てくるオーバーサンプリング周波数7,056kHzが正確、簡潔に表現できるのは有難い。

  • by Anonymous Coward on 2018年01月25日 12時30分 (#3350506)

    細かいこと言うけど、ここはスラドなんだから、
    C++と書くより C++11/14 と拘って欲しかったかな。 >タレコミ

    C++11で導入されたstd::chronoを利用しているらしいけど
    github の readme 上では "-std=c++14" と コンパイラオプションを指定してるから
    C++14導入の何かも利用しているのかな?

    std::chronoは正直面倒くさいイメージしか無かったけど
    こういうハック的な概念を実装するときには便利だね。
    ちょっと見直したのでもう1回ちゃんと勉強しようかな・・・

    • by Anonymous Coward

      なんで?
      ただC++と書くとC++17を意味するから?

      • by Anonymous Coward

        C++17ではダメということはboolの変数を++してたりするのかな?

      • by Anonymous Coward

        C++って書いたら、普通は 03かそれ以前の処理系でしょ。
        C++17なんて使ってるとこまだまだ少ないよ。
        昨今のC++案件は圧倒的に過去のリプレースばかりだし、現場のおっさんどもは
        だいたい C++11ナニソレっていう古い知識しか持ってない連中だよ。
        C++って書いたら17を意味するってどんな先進的な職場だよ。うらやましいよ。

        もとい、03以前と11以降じゃ大きめな互換性の問題があるからね。
        一口にC++って言われても、どっちだよって気になってしまう。

        オーディオ・ビデオライブラリは古いやつもいっぱいあるから
        少なくともC++11に上げられないとこのライブラリと共存できないじゃん。

        • by Anonymous Coward

          老害の脳内の普通の話なんぞ聞いてないよ

        • by Anonymous Coward

          > C++って書いたら17を意味するってどんな先進的な職場だよ。
          C++ が通じる時点で先進的じゃない気すらするよ

  • じゃあフレームレートの公倍数で新しい単位を作ればいいじゃん! などと意味不明の供述をしており、慎重な捜査を…

  • by Anonymous Coward on 2018年01月25日 11時44分 (#3350476)

    単位を決めたところでハードウェアがそれに見合う精度を提供できないのでは?(特にx86)
    単にプログラマの脳内で切が良く感じられる以上の意味はなさげ。

    • by shesee (27226) on 2018年01月25日 12時02分 (#3350489) 日記

      TSCとLocalAPICに何か問題でも?

      親コメント
      • by Anonymous Coward

        LocalAPICは知らんがTSCはCPUのパワーセーブが当然になった昨今ではまったく当てにならんな

    • by Anonymous Coward

      再生時間が伸びた時に浮動小数点数の丸め方の違いでフレーム番号が決定不能になることがなくなる
      フレームの表示順がカノニカルになる

    • by Anonymous Coward

      ナノ秒を扱える環境で使えれば十分なのでは?
      複数のフォーマットのデータを同時に扱う編集環境の内部で有用なのではないかと思います。
      ユーザがそれを意識する必要はなさげ。

    • by Anonymous Coward

      ノンリニア編集でのアドレス決定に不確定性が無くなるのがメリットなのだから、ハードウェアの精度とか関係ないんじゃないの?
      基本的に映像のプロ用途でしょコレ。

      いずれビデオ編集のタイムコードとかに使われるようになるんじゃないかね。

    • by Anonymous Coward

      周波数で言うとflickは705MHzだから遅いほうでしょ。

  • by Anonymous Coward on 2018年01月25日 12時32分 (#3350507)

    705600000分の1っていうのはきっと今使われている29.97fpsみたいな数値を全部集めて、その最大公約数的なものを算出してその値にしたのでしょ。
    既存の数値はこれで表現できるとしても、今後どういった理由で中途半端な数値が採用されるかもわからず、そしてそれがflickで表現できない可能性が残ると思うんだけど・・・

    • by Anonymous Coward

      割とありそうな数字だと
      11fps,13fps,17fps,19fpsみたいな素数fpsが無理ですね。
      実質既存の物である程度目星をつけてるんだから、選択肢から選べるようにするか、逆数や分数に対応すれば十分な気がします。
      アイデアとしては面白く多少使えそうではありますが。

      • by Anonymous Coward

        プランク時間(真空のプランク長を光子が通過する時間、プランク自然単位系の時間単位)なら、今後発明される物を含め大抵の時間の公約数。

  • by Anonymous Coward on 2018年01月25日 14時40分 (#3350580)

    スマホを1回フリックするのにかかる時間かと思った

  • by Anonymous Coward on 2018年01月25日 15時19分 (#3350606)

    初期のPCMオーディオで使われたサンプリング周波数なんだけど、対応出来てるんですね(16016 flicks)。

    # そんな古い素材を持ってる人は限られるんだろうけど。
    # 2chステレオなのにA/Dコンバータ1つで済ませてた変態仕様なのがあったらすぃw

  • by Anonymous Coward on 2018年01月25日 15時51分 (#3350625)

    どうして、あと一声、半分にして 1/1411200000 にしなかったんだろう?
    今だもハイレゾ音源とかって 384KHz とか普通にあるよね。

    • by Anonymous Coward

      ミリflick を使えばいい

  • by Anonymous Coward on 2018年01月25日 17時47分 (#3350680)

    ❌NTCSの闇
    ⭕NTSCの闇

  • by Anonymous Coward on 2018年01月25日 21時53分 (#3350817)

    今さらだけどレガシーなシリアル通信の様々なボーレートに対応できそう。

  • by Anonymous Coward on 2018年01月26日 16時54分 (#3351244)

    なんで秒30コマのどうがで何億分の1の精度が必要なのでしょうか?
    せいぜい100分の1程度の精度でいいのでは?

    • おそらくこのflickが想定しているのは映像編集ソフトなど。

      この場合、必要なのは「1/30秒の絶対的な精度」ではなく
      「1/30秒・44.1kHzなどのさまざまなレートを統一的に扱う時の、相対的な誤差のなさ」です。
      秒30コマの映像と秒24コマの映像、
      秒44100サンプルの音声と秒48000サンプルの音声
      などを混在させて相対誤差なく編集できるかどうかの問題。

      たとえば、「100分の1程度の」精度だと、「たった1分40秒のムービーで、絵と音が1秒ずれる」というまったく使いものにならないレベル。

      「2時間のムービー(秒30コマ=33.3ms/コマで216,000コマ)で、ズレは1コマ程度」の精度を出そうとしたら、「20万分1程度の精度」が必要になります。
      「1/30秒を20万分の1の精度」で表現するには、十進小数形式だと、マイクロ秒の整数で表すレベルではまだ足りず、ナノ秒レベルが必要です。

      「十進表記で循環小数になるものを、十進ベースのまま必要な精度が出るまで桁数を増やす」ような場当たり的な対応ではなく、「すべての情報が正確に表現できるように、最小公倍数分母の分数で表現する」方がいいんじゃないの、ってのがflickのアイデアです。

      親コメント
typodupeerror

一つのことを行い、またそれをうまくやるプログラムを書け -- Malcolm Douglas McIlroy

読み込み中...