今日で仕事がひと段落。

と言うか、ひと段落とまではいってないんだけど、

明日じゃないや来週から作業がまた本社に戻るので、

品川での作業はひと段落と。


で、仕事で覚えたこととか調べたことを忘れたらもったいないので覚え書きをチマチマつけようかと。

機密事項に触れない範囲で。

とりあえず、調べたこととかはフリーな内容(?)なので、

ネットで調べれば見つかる範囲の内容だったりです。

システムの内部に関わることは一切なしで。





・MP3

 ・フォーマット

[ID3v2タグ]-MP3データ-[ID3v1タグ]

 ・ID3v2フォーマット

ID3v2ヘッダ-[拡張ヘッダ]-フレーム-[パディング]-[フッタ]

 ・ID3v2ヘッダ

|'I'|'D'|'3'|v|v|f|s|s|s|s|

先頭3文字が"ID3"
v = ID3V2のメジャーバージョン1バイト・改定番号1バイト
f = 各種フラグ(非同期化・拡張ヘッダ・実験中・フッタ・0・0・0・0)
  フラグはメジャーバージョンによって含まれるものが異なる
  ID3v2.2 、2.3 、2.4でそれぞれ異なる、上記は2.4の形式
s = サイズ4バイト(※32bitのように見えるが、SyncSafe整形されており、
  実際には7ビット目を覗いた7ビットずつの構成になっており、合計28bit)

 ・拡張ヘッダ以降

触れてないので判りません。詳しくは→http://www1.cds.ne.jp/~takaaki/ID3/id3v2_4_0-structure_j.txt


 ・MP3データ

SyncHeader-Version-Layer-CRC-
BitRate-SamplingRate-Padding-Extention-
Chanel-ModeExtention-CopyRight-Original-Emphasis

|7|6|5|4|3|2|1|0|
----------------------------
|s|s|s|s|s|s|s|s|
|s|s|s|s|v|L|L|C|
|b|b|b|b|S|S|P|E|
|c|c|M|M|©|O|E|E|

s = SyncHeader、0バイト目は0xFF、
  1バイト目は4bitが、MPEG2.5の時のみ0
v = Version、SyncHeaderの1バイト目4ビット目と合わせて、
  00=MPEG2.5、01=なし、10=MPEG2、11=MPEG1
L = Layer、MP3は通常MPEG1Layer3を指すが、このLayerの種類
  00=なし、01=Layer3、10=Layer2、11=Layer1
C = CRC、エラー保護用のCRC(1:フレームの最後に1バイト0x00を負荷する)
b = BitRate、Version、Layerごとに異なる。
  ここで定義された値以外のビットレートは存在しない。
         0x { 00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0a, 0b, 0c, 0d, 0e, 0f }
 MPEG1Layer1 = { 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 0 }
 MPEG1Layer2 = { 0, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 0 }
 MPEG1Layer3 = { 0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 0 }
 MPEG2Layer1 = { 0, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 0 }
 MPEG2Layer2 = { 0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 0 }
 MPEG2Layer3 = 同上
 MPEG2.5Layer3 = 同上
 ※補足、MPEG2.5は仕様上、Layer3しか存在しない。

S = SamplingRate、サンプル周波数。(サンプル取得回数/秒)
  これが高ければ高いほど、音のサンプリング回数が多くなるため、
  高周波数域(高音)がキレイに再生される。
       00,   01,   10,   11
MPEG1  44100, 48000, 32000, なし
MPEG2  22050, 24000, 16000, なし
MPEG2.5 11025, 12000, 8000, なし

P = パディング
E = エクステンションなんちゃら
c = Channel、モノラル・ステレオ
M = モードエクステンションなんちゃら
© = コピーライト
O = オリジナル
E = エンファシス


MP3の補足
・フレームサイズ計算
MPEG1Layer1 / MPEG2Layer1
 {(12*BitRate/SamplingRate)+パディング}*4
MPEG1Layer2/3
 144*BitRate/SamplingRate+パディング
MPEG2Layer2
 72*BitRate/SamplingRate+パディング


今日はこんなところで。