建築・設備見積りソフト、見積システムの事なら 和田特機株式会社

建設業向け 業務支援タブレットアプリシリーズ 好評発売中

和田特機株式会社HP

傾きの最大値は何故16進数表示なのか?

二週間のご無沙汰でした。SALです。

傾きフォーマットチャンクのメンバ(MaxGradient)は、各傾きの絶対値の最大値を表しています。
例えば、MaxGradient=0x006b79f5 です。
ここで、0x006b79f5 は、(32bit)16進数表示であり、10進数では 7043573 です。
(プリフィックスの 0x が16進表記を宣言し、次の 00 は不要ですが、32bit長を明示する為)
でも、何故16進数で表示しているのでしょうか?
この問いに答える前に、この最大値の必要性を述べたいと思います。

① 小数点位置を示す為
傾きチャンクのデータは、16/24bit 固定小数点データです。
従って、共通の小数点位置を指定する必要が有ります。
尤もこれだけならば、ビット位置を示せば良いのですが、それだけではもったいないと考えました。
勿論この最大値から、小数点位置を決定するアルゴリズムを固定する必要がありますが…。

② DAC内部のオーバーサンプリングに必要な倍率を見積もる為
当り前のことですが、1bitオーバーサンプリングで正常にトレースするには、MaxGradient倍以上の周波数が必要です。
上の例では、7043573倍と言う非現実的な値となるので、下 8bit を無視してみます。
即ち、0x6b7a=27514 ですが、これでも充分非現実的な倍率です。
そこで、マルチビットオーバーサンプリングで、妥当な値を見積って見ましょう。
通常分割は「二分割をn回繰り返す」ので、倍率は2のn乗(2^n)になります。
つまり|差分|を表す15bit情報の内 nbit 分を標本化倍率に充てるのです。
すると、残りの差分情報量は、(1+15-n)bit になります。
例えば、256倍(n=8)すると、差分に 8bit(1+15-8)を与えれば、十分なトレースが可能です。(半々?)

③ 現実のPCMデータの縦横分解能の違いを実感する為
「高域の成分は弱いからそんな大きな差分は無い」と言う方も、実際の楽曲データを見れば、その値の大きさが解ります。
そして、標本点間の変化が 1~4 程度の図で示された、一般のDAC解説書が欺瞞に満ちたものであることも、解ります。
つまり、PCMデータは保存用であり、標本点でそのままアナログ値を再現しただけでは、オーディオとは言えません。
(勿論、通信やUIの手段としては十分です)

もうお解り頂けたと思いますが、傾きの最大値を2進数で表示すれば、②で述べた ビット配分のイメージが直接見えてきます。
しかしながら、それでは桁数が大きくなり過ぎるので、4bit を一纏めにして16進数表示とした訳です。
コンピュータ業界ではメジャーとは言え、一般的には馴染みが薄いかもしれませんが、慣れてくればとても便利な表現法です。
因みに、一桁の数値を表す文字は、アラビア数字を拡張して、0123456789abcdef と16個の文字(大文字も可)を充てます。