またの名を「発掘作業」。
たまにしか使わないものについて、「ググる」よりもワタシの場合、結構「自分でかつてメモったもの」から探すことも多いわけね。今回その対象となったのは「0.4444444444444444って何分の何、の計算」。なんだけど、ワタシのサイトの「個性」つーかさ、要するに「不適切な見出し」なわけよね。タイトルで遊んじゃうもんだから、「実用的」に自分で勝手に困る。「自爆」てやつだ。
「なんで 29.97?」については、確か一年程度前にちょっとだけ調べて意味を知った。ただその際は自分だけで勝手に納得して、ブログにあげようとは思わなかった。つーか「29.97 の意味がわかりましたぁ」なんてネタ、誰得だよ、てことだ。なんだけれど、『「0.4444444444444444って何分の何、の計算」だとキーワードを思い出しにくくて検索しにくい、でも 29.97 ならば』と思ったわけさ。
というわけで「発見しやすいように」が動機のネタとして今回これを書こうと思った。思ったんだけれど…。
要するに、29.97 という値も 23.98 という値もどちらも、「意図した計算結果を丸めた値」なんだなぁ、てこと。
これだけで理解してもらえると思うんだけど…:
1 >>> from fractions import Fraction
2 >>> Fraction(29.97)
3 Fraction(1054475631502295, 35184372088832)
4 >>> fl = [24, 25, 30, 48, 50, 60, 100, 120]
5 >>> res = [(c, Fraction(c).limit_denominator()) for c in [fps*1000/1001. for fps in fl]]
6 >>> print("\n".join(map(repr, res)))
7 (23.976023976023978, Fraction(24000, 1001))
8 (24.975024975024976, Fraction(25000, 1001))
9 (29.97002997002997, Fraction(30000, 1001))
10 (47.952047952047955, Fraction(48000, 1001))
11 (49.95004995004995, Fraction(50000, 1001))
12 (59.94005994005994, Fraction(60000, 1001))
13 (99.9000999000999, Fraction(100000, 1001))
14 (119.88011988011988, Fraction(120000, 1001))
つまり元の意味を知らないと 30000 / 1001 なんて導き出せない、てこと。
なお、「なんで 30000 / 1001 なんて中途半端な値を選んだの?」の疑問については、たとえばこのサイトとか読むとわかる。
つまりアナログ信号だったからこそ、てことなんだね。「音声信号と映像信号を分離」するために、一方を「整数倍にしない」というふうに作為を加えた、てのが「/1001」の意味。(説明が雑すぎるのは承知で言ってるので、正しく知りたければやはりちゃんとしたサイトを当たりなはれ。)