○ MP3

基本的なファイル構成
ID3v2タグ
MP3データ
ID3v1タグ

・ID3v2タグは先頭に付加(サイズ可変)



・フレーム単位で音声データが保持されている



・ID3v1タグは終端に付加(サイズ128バイト固定)
以下はバイナリエディタを利用した簡単なデータの有無の判別方法です。

ID3v2タグ

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 

00000000 :49443303000000000176545045310000  ID3.......TPE1..
00000010 :000D00000059616D6174616E2042616E  .....Yamatan Ban
00000020 :64544954320000000C00000053616D70  dTIT2.......Samp
00000030 :6C6520536F6E6754414C420000000700  le SongTALB.....
00000040 :00004D50336F6E335459455200000005  ..MP3on3TYER....
00000050 :00000032303034434F4D4D0000001000  ...2004COMM.....
00000060 :0000656E670053616D706C6520446174  ..eng.Sample Dat
00000070 :61000000000000000000000000000000  a...............
00000080 :00000000000000000000000000000000  ................
000000F0 :00000000000000000000000000000000  ................
00000100 :FFFB9060000000000000000000000000  ..秦............

MP3ファイルの先頭に ID3 の文字列が見つかれば、ID3v2タグが付加されていると判断できます。(上図の
ID3v2タグのサイズは可変ですが、シンクセーフ整数 としてサイズ値が保持されているので(上図例では 00 00 01 76)、以下の式で算出できます。

 16進 : 00 × 803 + 00 × 802 + 01 × 80 + 76 = F6
 10進 : 0 × 1283 + 0 × 1282 + 1 × 128 + 118 = 246

算出されたサイズにはヘッダー10バイト(上図の 49 44 33 03 00 00 00 00 01 76 の部分)は含まれないので、 この例でのID3v2タグの全体のサイズは 246 + 10 = 256バイトになります。(16進だと100)

シンクセーフ整数
 ID3v2タグを認識しないデコーダーがMP3の同期ワード(FFF,後述)と
 混同しないように、0xFF を使わずに7ビットで整数を表現する方法
  例) 00001111 11111111 (0F FF) → 00011111 01111111 (1F 7F)

MP3データ

算出されたID3v2タグのサイズに従い、アドレス 00000100 の位置を見ると FFF〜 という同期ワードで始まるMP3のデータが見つかります。
(ID3v2タグがないMP3ファイルの場合は、ファイルの先頭は通常このデータから始まります)

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 
000000F0 :00000000000000000000000000000000  ................
00000100 :FFFB9060000000000000000000000000  ..秦............
00000110 :00000000000000000000000000000000  ................
00000120 :00000000496E666F0000000F00000E0C  ....Info........
00000130 :0016F0A6000305070A0D0F1214171A1C  ................
00000140 :1E222426292C2E303336383B3D3F4345  ."$&),.0368;=?CE
00000150 :474A4D4F525457595C5E616466686C6E  GJMORTWY\^adfhln
00000160 :707376787B7D7F828587898D8F919497  psvx{}e燕書迫
00000170 :999C9EA1A4A6A8ABAEB0B2B6B8BABDBF  劈棕............
00000180 :C2C5C7C9CDCFD1D3D7D9DBDEE1E3E6E8  ............矼跖
00000190 :EBEEF0F2F6F8FAFC0000003A4C414D45  ...........:LAME
000001A0 :332E39332001AF000000000000000012  3.93 ...........
000001B0 :802405284E0000800016F0A62AC10CEC  .$.(N.......*...
000001C0 :00000000000000000000000000000000  ................
000001D0 :00000000000000000000000000000000  ................
000001E0 :00000000000000000000000000000000  ................
000001F0 :00000000000000000000000000000000  ................
00000200 :00000000000000000000000000000000  ................
00000210 :00000000000000000000000000000000  ................
00000220 :00000000000000000000000000000000  ................
00000230 :00000000000000000000000000000000  ................
00000240 :00000000000000000000000000000000  ................
00000250 :00000000000000000000000000000000  ................
00000260 :00000000000000000000000000000000  ................
00000270 :00000000000000000000000000000000  ................
00000280 :00000000000000000000000000000000  ................
00000290 :00000000000000000000000000000000  ................
000002A0 :00FFFB90600000038D85BC2635400036  ...秦...劫.&5@.6
000002B0 :8C8800C108000CE5010D5CD300012F96  決........\.../問

この FFF〜 で始まるデータの固まり(上図の の部分)をフレームと呼びます。 MP3の音声データはこのフレームという単位で構成されています。 フレームは次々と連続して並んで現われ、これらをデコードして行くことで音声として再生されます。
各フレームのサイズはフレームヘッダー(先頭4バイト)にある情報から算出できます。

 144 × ビットレート ÷ サンプリング周波数 (パディングビットが ON なら更に+1)

上図例の場合は 144 × 128000 ÷ 44100 ≒ 417 バイトとなります。(16進だと1A1)
CBRでは各フレームのサイズは全て同じになりますが、 VBRの場合はフレーム毎にビットレートが異なるので、サイズもフレーム毎に異なります。

MP3データ内で一番先頭にあるフレーム内に Info の文字列が見つかれば、 それは Lame でエンコードされた時に付加された CBR の Xingヘッダー です。 VBR でエンコードされた場合は Xing の文字列になります。

ID3v1タグ

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 
0016F1A0 :55555555555554414753616D706C6520  UUUUUUTAGSample
0016F1B0 :536F6E67000000000000000000000000  Song............
0016F1C0 :0000000000000059616D6174616E2042  .......Yamatan B
0016F1D0 :616E6400000000000000000000000000  and.............
0016F1E0 :00000000004D50336F6E330000000000  .....MP3on3.....
0016F1F0 :00000000000000000000000000000000  ................
0016F200 :0000003230303453616D706C65204461  ...2004Sample Da
0016F210 :74610000000000000000000000000000  ta..............
0016F220 :000000000611   ......

MP3ファイルの末尾から戻って128バイト目の位置に TAG の文字列が見つかれば、 ID3v1タグが付加されていると判断できます。(上図の


  ○ キューシート

 Exact Audio Copy で作成
PERFORMER "Yamatan Band"
TITLE "MusicPack 3on3"
FILE "CDImage.mp3" WAVE
  TRACK 01 AUDIO
    TITLE "Null Pointer"
    PERFORMER "Yamatan Band"
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Don't Use GOTO"
    PERFORMER "Yamatan Band"
    INDEX 01 02:54:47
  TRACK 03 AUDIO
    TITLE "Do While, Do Until"
    PERFORMER "Yamatan Band"
    INDEX 01 07:11:27
  TRACK 04 AUDIO
    TITLE "Permanent Loop"
    PERFORMER "Yamatan Band"
    INDEX 01 09:26:53
  TRACK 05 AUDIO
    TITLE "Stack Over Flow"
    PERFORMER "Yamatan Band"
    INDEX 01 12:40:21
  TRACK 06 AUDIO
    TITLE "Memory Dump"
    PERFORMER "Yamatan Band"
    INDEX 01 16:20:13
  TRACK 07 AUDIO
    TITLE "Debug & Recompile"
    PERFORMER "Yamatan Band"
    INDEX 01 19:42:11
  TRACK 08 AUDIO
    TITLE "Abnormal Termination"
    PERFORMER "Yamatan Band"
    INDEX 01 24:11:55
  TRACK 09 AUDIO
    TITLE "System Crash!"
    PERFORMER "Yamatan Band"
    INDEX 01 27:44:02
  TRACK 10 AUDIO
    TITLE "Null Pointer(Reprise)"
    PERFORMER "Yamatan Band"
    INDEX 01 30:59:10
  
 MusicPack 3on3 から Export
TITLE "MusicPack 3on3"
PERFORMER "Yamatan Band"
REM *** Generated by MusicPack 3on3 ***
REM 128Kbps 44100Hz 80272frames
REM Total Time 34:56:67
FILE "Yamatan Band - MusicPack 3on3.pac.mp3" MP3
  TRACK 01 AUDIO
    TITLE "Null Pointer"
    PREGAP 00:00:00
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Don't Use GOTO"
    INDEX 01 02:54:47
  TRACK 03 AUDIO
    TITLE "Do While, Do Until"
    INDEX 01 07:11:27
  TRACK 04 AUDIO
    TITLE "Permanent Loop"
    INDEX 01 09:26:53
  TRACK 05 AUDIO
    TITLE "Stack Over Flow"
    INDEX 01 12:40:21
  TRACK 06 AUDIO
    TITLE "Memory Dump"
    INDEX 01 16:20:13
  TRACK 07 AUDIO
    TITLE "Debug & Recompile"
    INDEX 01 19:42:11
  TRACK 08 AUDIO
    TITLE "Abnormal Termination"
    INDEX 01 24:11:55
  TRACK 09 AUDIO
    TITLE "System Crash!"
    INDEX 01 27:44:02
  TRACK 10 AUDIO
    TITLE "Null Pointer(Reprise)"
    INDEX 01 30:59:10

         ↑

  ・全トラックが同じPERFORMERなので省略
  ・REM(コメント)として追加情報を付加

アーティスト名(PERFORMER)曲名(TITLE)をトラック(TRACK)毎に分けて 再生開始時間(INDEX)を指定した一覧表がキューシートです。
MusicPack 3on3 で作成したりMP3のID3v2タグに埋め込む場合は右側の形式になります。 (ビットレート、サンプリング周波数、フレーム数、再生合計時間をコメント行(REM)に付加情報として追加)

ID3v2タグに埋め込む場合は GEOB フレームに設定しています。(下図の

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 

00000000 :4944330300000000083F544954320000  ID3......?TIT2..
00000010 :000F0000004D757369635061636B2033  .....MusicPack 3
00000020 :6F6E33545045310000000D0000005961  on3TPE1.......Ya
00000030 :6D6174616E2042616E6447454F420000  matan BandGEOB..
00000040 :040500000074657874006D7033637565  .....text.mp3cue
00000050 :20437565536865657400514355455348   CueSheet.QCUESH
00000060 :4545540D0A5449544C4520224D757369  EET..TITLE "Musi
00000070 :635061636B20336F6E33220D0A504552  cPack 3on3"..PER
00000080 :464F524D4552202259616D6174616E20  FORMER "Yamatan
00000090 :42616E64220D0A52454D202A2A2A2047  Band"..REM *** G
000000A0 :656E657261746564206279204D757369  enerated by Musi
000000B0 :635061636B20336F6E33202A2A2A0D0A  cPack 3on3 ***..
000000C0 :52454D203132384B6270732034343130  REM 128Kbps 4410
000000D0 :30487A2038303237326672616D65730D  0Hz 80272frames.
000000E0 :0A52454D20546F74616C2054696D6520  .REM Total Time
000000F0 :33343A35363A36370D0A46494C452022  34:56:67..FILE "
00000100 :59616D6174616E2042616E64202D204D  Yamatan Band - M
00000110 :757369635061636B20336F6E332E7061  usicPack 3on3.pa
00000120 :632E6D703322204D50330D0A20205452  c.mp3" MP3.. TR
00000130 :41434B20303120415544494F0D0A2020  ACK 01 AUDIO..
00000140 :20205449544C4520224E756C6C20506F   TITLE "Null Po
00000150 :696E746572220D0A2020202050524547  inter".. PREG
00000160 :41502030303A30303A30300D0A202020  AP 00:00:00..
00000170 :20494E4445582030312030303A30303A   INDEX 01 00:00:
00000180 :30300D0A2020545241434B2030322041  00.. TRACK 02 A
00000190 :5544494F0D0A202020205449544C4520  UDIO.. TITLE
000001A0 :22446F6E27742055736520474F544F22  "Don't Use GOTO"
000001B0 :0D0A20202020494E4445582030312030  .. INDEX 01 0
000001C0 :323A35343A34370D0A2020545241434B  2:54:47.. TRACK
000001D0 :20303320415544494F0D0A2020202054   03 AUDIO.. T
000001E0 :49544C452022446F205768696C652C20  ITLE "Do While,
000001F0 :446F20556E74696C220D0A2020202049  Do Until".. I
00000200 :4E4445582030312030373A31313A3237  NDEX 01 07:11:27
00000210 :0D0A2020545241434B20303420415544  .. TRACK 04 AUD
00000220 :494F0D0A202020205449544C45202250  IO.. TITLE "P
00000230 :65726D616E656E74204C6F6F70220D0A  ermanent Loop"..
00000240 :20202020494E4445582030312030393A   INDEX 01 09:
00000250 :32363A35330D0A2020545241434B2030  26:53.. TRACK 0
00000260 :3520415544494F0D0A20202020544954  5 AUDIO.. TIT
00000270 :4C452022537461636B204F7665722046  LE "Stack Over F
00000280 :6C6F77220D0A20202020494E44455820  low".. INDEX
00000290 :30312031323A34303A32310D0A202054  01 12:40:21.. T
000002A0 :5241434B20303620415544494F0D0A20  RACK 06 AUDIO..
000002B0 :2020205449544C4520224D656D6F7279   TITLE "Memory
000002C0 :2044756D70220D0A20202020494E4445   Dump".. INDE
000002D0 :582030312031363A32303A31330D0A20  X 01 16:20:13..
000002E0 :20545241434B20303720415544494F0D   TRACK 07 AUDIO.
000002F0 :0A202020205449544C45202244656275  . TITLE "Debu
00000300 :672026205265636F6D70696C65220D0A  g & Recompile"..
00000310 :20202020494E4445582030312031393A   INDEX 01 19:
00000320 :34323A31310D0A2020545241434B2030  42:11.. TRACK 0
00000330 :3820415544494F0D0A20202020544954  8 AUDIO.. TIT
00000340 :4C45202241626E6F726D616C20546572  LE "Abnormal Ter
00000350 :6D696E6174696F6E220D0A2020202049  mination".. I
00000360 :4E4445582030312032343A31313A3535  NDEX 01 24:11:55
00000370 :0D0A2020545241434B20303920415544  .. TRACK 09 AUD
00000380 :494F0D0A202020205449544C45202253  IO.. TITLE "S
00000390 :797374656D20437261736821220D0A20  ystem Crash!"..
000003A0 :202020494E4445582030312032373A34   INDEX 01 27:4
000003B0 :343A30320D0A2020545241434B203130  4:02.. TRACK 10
000003C0 :20415544494F0D0A202020205449544C   AUDIO.. TITL
000003D0 :4520224E756C6C20506F696E74657228  E "Null Pointer(
000003E0 :5265707269736529220D0A2020202049  Reprise)".. I
000003F0 :4E4445582030312033303A35393A3130  NDEX 01 30:59:10
00000400 :0D0A454E444355455348454554435545  ..ENDCUESHEETCUE
00000410 :56455253494F4E0D0A4D757369635061  VERSION..MusicPa
00000420 :636B20336F6E33454E44435545564552  ck 3on3ENDCUEVER
00000430 :53494F4E435545494E464F0D0A454E44  SIONCUEINFO..END
00000440 :435545494E464F0D0A5061636B000005  CUEINFO..Pack...

GEOB フレーム内で の部分がキューシートのテキストデータです。

埋め込まれたキューシートの部分はテキストビューア等でも参照できます。

ID3・    ・?TIT2   ・   MusicPack 3on3TPE1   
   Yamatan BandGEOB  ・・   text mp3cue CueSheet QCUESHEET
TITLE "MusicPack 3on3"
PERFORMER "Yamatan Band"
REM *** Generated by MusicPack 3on3 ***
REM 128Kbps 44100Hz 80272frames
REM Total Time 34:56:67
FILE "Yamatan Band - MusicPack 3on3.pac.mp3" MP3
  TRACK 01 AUDIO
    TITLE "Null Pointer"
    PREGAP 00:00:00
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    TITLE "Don't Use GOTO"
    INDEX 01 02:54:47
  TRACK 03 AUDIO
    TITLE "Do While, Do Until"
    INDEX 01 07:11:27
  TRACK 04 AUDIO
    TITLE "Permanent Loop"
    INDEX 01 09:26:53
  TRACK 05 AUDIO
    TITLE "Stack Over Flow"
    INDEX 01 12:40:21
  TRACK 06 AUDIO
    TITLE "Memory Dump"
    INDEX 01 16:20:13
  TRACK 07 AUDIO
    TITLE "Debug & Recompile"
    INDEX 01 19:42:11
  TRACK 08 AUDIO
    TITLE "Abnormal Termination"
    INDEX 01 24:11:55
  TRACK 09 AUDIO
    TITLE "System Crash!"
    INDEX 01 27:44:02
  TRACK 10 AUDIO
    TITLE "Null Pointer(Reprise)"
    INDEX 01 30:59:10
ENDCUESHEETCUEVERSION
MusicPack 3on3ENDCUEVERSIONCUEINFO
ENDCUEINFO
Pack  ・Q 
〜


  ○ Pack形式

ID3v2タグ
(Cueシート含む)
P
a
c
k
  Pack ヘッダー  
曲データ1
曲データ2
曲データn
  Pack フッター  
ID3v1タグ
  

・ID3v2タグ付きの場合 (→参照)



・各曲データの情報を保持(後述)




・通常のMP3ファイル (→参照)
・各曲データの間は全て切れ目なく繋がった状態





・128バイト以上のデータ(後述)


・ID3v1タグ付きの場合 (→参照

各曲データを切れ目なく連結させて、ヘッダーとフッターを前後に付加した形式です。 各曲の先頭位置(Pack 文字列を起点とした相対位置)はヘッダーに保持してあります。 (その他詳しい説明は Pack詳細 を参照)

Packヘッダー

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 
00000440 :435545494E464F0D0A5061636B000005  CUEINFO..Pack...
00000450 :51000A00084D757369635061636B2033  Q....MusicPack 3
00000460 :6F6E33000000090259616D6174616E20  on3.....Yamatan
00000470 :42616E64202D204E756C6C20506F696E  Band - Null Poin
00000480 :7465722E6D70330059616D6174616E20  ter.mp3.Yamatan
00000490 :42616E64004E756C6C20506F696E7465  Band.Null Pointe
000004A0 :7200012A4F4E59616D6174616E204261  r..*ONYamatan Ba
000004B0 :6E64202D20446F6E2774205573652047  nd - Don't Use G
000004C0 :4F544F2E6D70330059616D6174616E20  OTO.mp3.Yamatan
000004D0 :42616E6400446F6E2774205573652047  Band.Don't Use G
000004E0 :4F544F0003252D0959616D6174616E20  OTO..%-.Yamatan
000004F0 :42616E64202D20446F205768696C652C  Band - Do While,
00000500 :20446F20556E74696C2E6D7033005961   Do Until.mp3.Ya
00000510 :6D6174616E2042616E6400446F205768  matan Band.Do Wh
00000520 :696C652C20446F20556E74696C000429  ile, Do Until..)
00000530 :445859616D6174616E2042616E64202D  DXYamatan Band -
00000540 :205065726D616E656E74204C6F6F702E   Permanent Loop.
00000550 :6D70330059616D6174616E2042616E64  mp3.Yamatan Band
00000560 :005065726D616E656E74204C6F6F7000  .Permanent Loop.
00000570 :05664A5259616D6174616E2042616E64  .fJRYamatan Band
00000580 :202D20537461636B204F76657220466C   - Stack Over Fl
00000590 :6F772E6D70330059616D6174616E2042  ow.mp3.Yamatan B
000005A0 :616E6400537461636B204F7665722046  and.Stack Over F
000005B0 :6C6F7700073D2C0459616D6174616E20  low..=,.Yamatan
000005C0 :42616E64202D204D656D6F7279204475  Band - Memory Du
000005D0 :6D702E6D70330059616D6174616E2042  mp.mp3.Yamatan B
000005E0 :616E64004D656D6F72792044756D7000  and.Memory Dump.
000005F0 :09024D3259616D6174616E2042616E64  ..M2Yamatan Band
00000600 :202D2044656275672026205265636F6D   - Debug & Recom
00000610 :70696C652E6D70330059616D6174616E  pile.mp3.Yamatan
00000620 :2042616E640044656275672026205265   Band.Debug & Re
00000630 :636F6D70696C65000B09713459616D61  compile...q4Yama
00000640 :74616E2042616E64202D2041626E6F72  tan Band - Abnor
00000650 :6D616C205465726D696E6174696F6E2E  mal Termination.
00000660 :6D70330059616D6174616E2042616E64  mp3.Yamatan Band
00000670 :0041626E6F726D616C205465726D696E  .Abnormal Termin
00000680 :6174696F6E000C591C5159616D617461  ation..Y.QYamata
00000690 :6E2042616E64202D2053797374656D20  n Band - System
000006A0 :4372617368212E6D70330059616D6174  Crash!.mp3.Yamat
000006B0 :616E2042616E640053797374656D2043  an Band.System C
000006C0 :7261736821000E17631E59616D617461  rash!...c.Yamata
000006D0 :6E2042616E64202D204E756C6C20506F  n Band - Null Po
000006E0 :696E7465722852657072697365292E6D  inter(Reprise).m
000006F0 :70330059616D6174616E2042616E6400  p3.Yamatan Band.
00000700 :4E756C6C20506F696E74657228526570  Null Pointer(Rep
00000710 :7269736529000F7F7E12000000000000  rise)..~.......
00000720 :00000000032100000000FFFB90400000  .....!......拭..
00000730 :00000000000000000000000000000000  ................
00000740 :0000000000000000000000000000496E  ..............In
00000750 :666F000000030001399001FFF1F00000  fo......9.......
00000760 :00000000000000000000000000000000  ................
00000770 :00000000000000000000000000000000  ................
00000780 :00000000000000000000000000000000  ................
00000790 :00000000000000000000000000000000  ................
000007A0 :00000000000000000000000000000000  ................
000007B0 :00000000000000000000000000000000  ................
000007C0 :00000000000000000000000000000000  ................
000007D0 :00000000000000000000000000000000  ................
000007E0 :00000000000000000000000000000000  ................
000007F0 :00000000000000000000000000000000  ................
00000800 :00000000000000000000000000000000  ................
00000810 :00000000000000000000000000000000  ................
00000820 :00000000000000000000000000000000  ................
00000830 :00000000000000000000000000000000  ................
00000840 :00000000000000000000000000000000  ................
00000850 :00000000000000000000000000000000  ................
00000860 :00000000000000000000000000000000  ................
00000870 :00000000000000000000000000000000  ................
00000880 :00000000000000000000000000000000  ................
00000890 :00000000000000000000000000000000  ................
000008A0 :00000000000000000000000000000000  ................
000008B0 :00000000000000000000000000000000  ................
000008C0 :00000000000000000000004944330300  ...........ID3..

ID3v2タグの後ろ、またはMP3ファイルの曲データの前に Pack の文字列が見つかったら、 そこからPackヘッダーが始まります。(上図の
Packヘッダーには各曲データの先頭バイト位置、ファイル名、アーティスト名/タイトルを保持しています。 アーティスト名/タイトルはプレイリスト内での表示にも利用されます。
また、パック化MP3全体に対するXingヘッダーを付けた場合は、 Packヘッダーの末尾にフレームの形式で設定されます。 (上図でも FFF〜 の同期ワードと Info の文字列が確認できます)

その他の説明については Pack詳細 を参照してください。

Packフッター

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 
020002D0 :AAAAAAAAAAAAAAAAAAAAAA5441474E75  ...........TAGNu
020002E0 :6C6C20506F696E746572285265707269  ll Pointer(Repri
020002F0 :73652900000000000000000059616D61  se).........Yama
02000300 :74616E2042616E640000000000000000  tan Band........
02000310 :000000000000000000004D7573696350  ..........MusicP
02000320 :61636B20336F6E330000000000000000  ack 3on3........
02000330 :00000000000000003230303400000000  ........2004....
02000340 :00000000000000000000000000000000  ................
02000350 :0000000000000000000A110D0A3D3D3D  .............===
02000360 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
02000370 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
02000380 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
02000390 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
020003A0 :3D3D3D0D0A456E64206F66205061636B  ===..End of Pack
020003B0 :6564204D503320202D2047656E657261  ed MP3 - Genera
020003C0 :74656420627920224D75736963506163  ted by "MusicPac
020003D0 :6B20336F6E3322202D0D0A   k 3on3" -..

パック化MP3内の最後の曲データの後から始まる128バイト以上のデータです。(上図の
最低でも128バイトの領域を確保しているのは、 最後の曲データにID3v1タグ(128バイト)が付いていた場合に、 パック化MP3全体のID3v1タグと誤って認識されてしまうのを防ぐためです。

その他の情報が付加される場合もありますが、それらの説明については Pack詳細 を参照してください。


  ○ 無圧縮ZIP

ID3v2タグ
(Cueシート含む)
Z
I
P
Local File Header
曲データ1
Local File Header
曲データ2
Local File Header
Local File Header
曲データn
Central Directory

(n個分存在)
End of Central
Directory Record
ID3v1タグ
  

・ID3v2タグ付きの場合 (→参照)



・各曲データの前には全てヘッダーが付いている

・通常のMP3ファイルを無圧縮データとして保持 (→参照)


















・保持している件数分存在



・最後に存在


・ID3v1タグ付きの場合 (→参照

ID3タグ以外は通常のZIPファイルと同じ形式です。 ID3タグを付加した場合は正常なZIPファイルの形式ではなくなるため、 一部のアーカイバでは解凍できなくなります。

Local File Header

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 

00000000 :504B03040A0000000000F48A50307957  PK.........咳0yW
00000010 :83EE4CA32A004CA32A001F0000005961  L.*.L.*.....Ya
00000020 :6D6174616E2042616E64202D204E756C  matan Band - Nul
00000030 :6C20506F696E7465722E6D7033494433  l Pointer.mp3ID3
00000040 :03000000000079545045310000000D00  ......yTPE1.....
00000050 :000059616D6174616E2042616E645449  ..Yamatan BandTI
00000060 :54320000000D0000004E756C6C20506F  T2.......Null Po
00000070 :696E74657254414C420000000F000000  interTALB.......
00000080 :4D757369635061636B20336F6E335452  MusicPack 3on3TR
00000090 :434B0000000600000030312F31305459  CK.......01/10TY
000000A0 :4552000000050000003230303454434F  ER.......2004TCO
000000B0 :4E0000000900000028313729526F636B  N.......(17)Rock
000000C0 :FFFB9064000000000069060000000000  ..薪.....i......
000000D0 :0D20C00000000001A41C000000000034  . .............4
     MP3データ
002AA300 :5555555555555555555441474E756C6C  UUUUUUUUUTAGNull
002AA310 :20506F696E7465720000000000000000   Pointer........
002AA320 :0000000000000000000059616D617461  ..........Yamata
002AA330 :6E2042616E6400000000000000000000  n Band..........
002AA340 :00000000000000004D75736963506163  ........MusicPac
002AA350 :6B20336F6E3300000000000000000000  k 3on3..........
002AA360 :00000000000032303034000000000000  ......2004......
002AA370 :00000000000000000000000000000000  ................
002AA380 :000000000000000111504B03040A0000  .........PK.....

格納された各曲(ファイル)の前には Local File Header が付けられます。(上図の
PK という文字列とその後に 03 04 の16進数が見つかれば、 その位置が Local File Header の先頭になります。 ここに格納された各ファイルの情報(ファイル名、サイズ、圧縮率 etc...)が保持されています。(詳細は省略)
その後に格納されたMP3ファイルの曲データが続きます。 無圧縮なのでデータはそのままの状態で保存されています。 上図でもID3タグの識別子(ID3 TAG)やフレームの同期ワード(FFF〜)が確認できます。
データが終わればまた Local File Header が現われます。 これが格納されたファイルの数だけ繰り返されます。

Central Directory 〜 End of Central Directory Record

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 
01FFFD00 :00000000000000000000000000000000  ................
01FFFD10 :0000000A11504B0102170B0A00000000  .....PK.........
01FFFD20 :00F48A5030795783EE4CA32A004CA32A  ..咳0yWL.*.L.*
01FFFD30 :001F0000000000000000000000000000  ................
01FFFD40 :00000059616D6174616E2042616E6420  ...Yamatan Band
01FFFD50 :2D204E756C6C20506F696E7465722E6D  - Null Pointer.m
01FFFD60 :7033504B0102170B0A0000000000F48A  p3PK...........咳
01FFFD70 :50301B352A4DBBAE3E00BBAE3E002100  P0.5*M..>...>.!.
01FFFD80 :00000000000000000000000089A32A00  ............殴*.
01FFFD90 :59616D6174616E2042616E64202D2044  Yamatan Band - D
01FFFDA0 :6F6E27742055736520474F544F2E6D70  on't Use GOTO.mp
01FFFDB0 :33504B0102170B0A0000000000F58A50  3PK...........咳
01FFFDC0 :304A634E1FCF0B2100CF0B2100250000  0JcN...!...!.%..
01FFFDD0 :00000000000000000000008352690059  ...........コi.Y
01FFFDE0 :616D6174616E2042616E64202D20446F  amatan Band - Do
01FFFDF0 :205768696C652C20446F20556E74696C   While, Do Until
01FFFE00 :2E6D7033504B0102170B0A0000000000  .mp3PK..........
01FFFE10 :F58A503070561280FA422F00FA422F00  .咳0pV...B/..B/.
01FFFE20 :2100000000000000000000000000955E  !.............豹
01FFFE30 :8A0059616D6174616E2042616E64202D  ..Yamatan Band -
01FFFE40 :205065726D616E656E74204C6F6F702E   Permanent Loop.
01FFFE50 :6D7033504B0102170B0A0000000000F5  mp3PK..........
01FFFE60 :8A503029700D6CB2B03500B2B0350022  咳0)p.l..5...5."
01FFFE70 :00000000000000000000000000CEA1B9  ................
01FFFE80 :0059616D6174616E2042616E64202D20  .Yamatan Band -
01FFFE90 :537461636B204F76657220466C6F772E  Stack Over Flow.
01FFFEA0 :6D7033504B0102170B0A0000000000F5  mp3PK..........
01FFFEB0 :8A50308C0D9C88AE503100AE5031001E  咳0..怦.P1..P1..
01FFFEC0 :00000000000000000000000000C052EF  ..............Rナ
01FFFED0 :0059616D6174616E2042616E64202D20  .Yamatan Band -
01FFFEE0 :4D656D6F72792044756D702E6D703350  Memory Dump.mp3P
01FFFEF0 :4B0102170B0A0000000000F58A50300E  K...........咳0.
01FFFF00 :D8DFE602D2410002D241002400000000  .....A...A.$....
01FFFF10 :000000000000000000AAA3200159616D  ........... .Yam
01FFFF20 :6174616E2042616E64202D2044656275  atan Band - Debu
01FFFF30 :672026205265636F6D70696C652E6D70  g & Recompile.mp
01FFFF40 :33504B0102170B0A0000000000F58A50  3PK...........咳
01FFFF50 :30FE8A8C329DD533009DD53300270000  0.褐2旌3.旌3.'..
01FFFF60 :0000000000000000000000EE75620159  ............ub.Y
01FFFF70 :616D6174616E2042616E64202D204162  amatan Band - Ab
01FFFF80 :6E6F726D616C205465726D696E617469  normal Terminati
01FFFF90 :6F6E2E6D7033504B0102170B0A000000  on.mp3PK........
01FFFFA0 :0000F58A503030B5BE114DA32F004DA3  ...咳00...M./.M.
01FFFFB0 :2F002000000000000000000000000000  /. .............
01FFFFC0 :D04B960159616D6174616E2042616E64  .K..Yamatan Band
01FFFFD0 :202D2053797374656D20437261736821   - System Crash!
01FFFFE0 :2E6D7033504B0102170B0A0000000000  .mp3PK..........
01FFFFF0 :F58A5030B4AA437B740D3A00740D3A00  .咳0..C{t.:.t.:.
02000000 :28000000000000000000000000005BEF  (.............[ナ
02000010 :C50159616D6174616E2042616E64202D  ..Yamatan Band -
02000020 :204E756C6C20506F696E746572285265   Null Pointer(Re
02000030 :7072697365292E6D7033504B05060000  prise).mp3PK....
02000040 :00000A000A002503000015FDFF010000  ......%.........

全ての格納ファイルの後には、そのファイル数分の Central Directory があります。(PK01 02
更にその後の一番最後には End of Central Directory Record が付けられます。(PK05 06


  ○ 無圧縮LHA

ID3v2タグ
(Cueシート含む)
L
H
A
 Level-2 Header  
曲データ1
 Level-2 Header  
曲データ2
 Level-2 Header  
 Level-2 Header  
曲データn
ID3v1タグ
  

・ID3v2タグ付きの場合 (→参照)



・各曲データの前には全てヘッダーが付いている

・通常のMP3ファイルを無圧縮データとして保持 (→参照)

















・ID3v1タグ付きの場合 (→参照

ID3タグ以外は通常のレベル2ヘッダのLHAファイルと同じ形式です。

Level-2 Header

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 

00000000 :3C002D6C68302D4CA32A004CA32A000C  <.-lh0-L.*.L.*..
00000010 :7E3040200266544D22000159616D6174  ~0@ .fTM"..Yamat
00000020 :616E2042616E64202D204E756C6C2050  an Band - Null P
00000030 :6F696E7465722E6D7033000049443303  ointer.mp3..ID3.
00000040 :000000000079545045310000000D0000  .....yTPE1......
00000050 :0059616D6174616E2042616E64544954  .Yamatan BandTIT
00000060 :320000000D0000004E756C6C20506F69  2.......Null Poi
00000070 :6E74657254414C420000000F0000004D  nterTALB.......M
00000080 :757369635061636B20336F6E33545243  usicPack 3on3TRC
00000090 :4B0000000600000030312F3130545945  K.......01/10TYE
000000A0 :52000000050000003230303454434F4E  R.......2004TCON
000000B0 :0000000900000028313729526F636BFF  .......(17)Rock.
000000C0 :FB90640000000000690600000000000D  .薪.....i.......
000000D0 :20C00000000001A41C00000000003483   .............4ム
     MP3データ
002AA300 :55555555555555555441474E756C6C20  UUUUUUUUTAGNull
002AA310 :506F696E746572000000000000000000  Pointer.........
002AA320 :00000000000000000059616D6174616E  .........Yamatan
002AA330 :2042616E640000000000000000000000   Band...........
002AA340 :000000000000004D757369635061636B  .......MusicPack
002AA350 :20336F6E330000000000000000000000   3on3...........
002AA360 :00000000003230303400000000000000  .....2004.......
002AA370 :00000000000000000000000000000000  ................
002AA380 :00000000000001113E002D6C68302DBB  ........>.-lh0-.

格納された各曲(ファイル)の前には Level-2 Header が付けられます。(上図の
-lh0- という文字列が無圧縮LHAの識別子で、 その2バイト前が Level-2 Header の先頭になります。 ここに格納された各ファイルの情報(ファイル名、サイズ etc...)が保持されています。(詳細は省略)
その後に格納されたMP3ファイルの曲データが続きます。 無圧縮なのでデータはそのままの状態で保存されています。 上図でもID3タグの識別子(ID3 TAG)やフレームの同期ワード(FFF〜)が確認できます。
データが終わればまた Level-2 Header が現われます。 これが格納されたファイルの数だけ繰り返されます。


  ○ Pack詳細

Pack ヘッダー
(拡張領域)
          曲データ          
          曲データ          
(拡張領域)
Pack フッター
  

・Packに関する情報を保持
・各曲に関する情報を保持


・Xingヘッダー
・無音フレーム×n












・無音フレーム×n



・合計128バイト以上のデータ


Packヘッダー

Pack
サイズ
曲数
フラグ
アルバムタイトル\0
オフセット
ファイル名\0
アーティスト名\0
曲タイトル\0
:      
( 繰り返し = 曲数 )     
:      
オフセット
ファイル名\0
アーティスト名\0
曲タイトル\0
オフセット
 項 目  長 さ 解 説
"Pack" 4バイト Packヘッダーの起点を示す識別子(固定)
サイズ 4バイト 拡張領域を除いたPackヘッダーのサイズ(シンクセーフ整数)
曲数 2バイト パック化した曲数(シンクセーフ整数)
フラグ 2バイト
0000000 00111011 (ビット情報)
          ||| ||
          ||| |+-- 0x01 … Not Synchsafe
          ||| +--- 0x02 … Entire (by Cue Sheet)
          |||
          ||+----- 0x08 … Xing Header
          |+------ 0x10 … Silent Frame (Top)
          +------- 0x20 … Silent Frame (Last)
アルバム
タイトル
可変長 アルバムとしてパック化したMP3に付与したタイトル
(終端が \0 の文字列)
オフセット 4バイト 各曲データ先頭のPackヘッダー起点からの相対バイト数
フラグの Not Synchsafe が OFF ならシンクセーフ整数)
最後の オフセット はPackフッターの先頭位置を示す
ファイル名 可変長 パック化した各MP3のファイル名
(終端が \0 の文字列)
アーティスト名 可変長 パック化した各MP3ファイルのアーティスト名
(終端が \0 の文字列)
曲タイトル 可変長 パック化した各MP3ファイルの曲タイトル
(終端が \0 の文字列)


Packヘッダー(拡張領域)
(※フラグの Xing Header または Silent Frame (Top) が ON の場合のみ存在)

*1
*2
予備
*3
予備
 *1 先頭無音フレーム数             *3 下記 *4 *5 領域の合計サイズ
 *2 末尾無音フレーム数

Xingヘッダー (*4)


先頭無音フレーム (*5)

 項 目  長 さ 解 説
先頭無音
フレーム数
2バイト パック化MP3の先頭に付けた無音フレームの数
末尾無音
フレーム数
2バイト パック化MP3の末尾に付けた無音フレームの数
予備 4バイト
下記*4*5領域
の合計サイズ
4バイト Xingヘッダーと先頭無音フレームの合計サイズ
(シンクセーフ整数)
予備 4バイト
Xing (*4)
ヘッダー   
可変長 パック化MP3ファイル全体に対するXingヘッダー
フラグの Xing Header ON の場合のみ存在
先頭無音     
フレーム (*5)
可変長 パック化MP3ファイルの先頭に付加した無音フレーム
フラグの Silent Frame (Top) が ON の場合のみ存在


Packフッター(拡張領域も含む)


末尾無音フレーム

\r\n
サイズ
==================================================================
\r\n
End of Packed MP3  - Generated by "MusicPack 3on3" -
\r\n
 項 目  長 さ 解 説
末尾無音
フレーム
可変長 パック化MP3ファイルの末尾に付加した無音フレーム
フラグの Silent Frame (Last) が ON の場合のみ存在
\r\n 2バイト 改行
サイズ 4バイト 末尾無音フレームのサイズ(シンクセーフ整数)
末尾無音フレームが存在しない場合は文字列 "===="
文字列 122
バイト
\r\n サイズ と合わせて 計128バイトの領域を確保

ADDRESS   +0  +1  +2  +3  +4  +5  +6  +7   +8  +9  +A  +B  +C  +D  +E  +F   0123456789ABCDEF 

00000440 :435545494E464F0D0A5061636B000005  CUEINFO..Pack...
00000450 :51000A00384D757369635061636B2033  Q...8MusicPack 3
00000460 :6F6E33000000126559616D6174616E20  on3....eYamatan
00000470 :42616E64202D204E756C6C20506F696E  Band - Null Poin
00000480 :7465722E6D70330059616D6174616E20  ter.mp3.Yamatan
00000490 :42616E64004E756C6C20506F696E7465  Band.Null Pointe
000004A0 :7200012A593159616D6174616E204261  r..*Y1Yamatan Ba
000004B0 :6E64202D20446F6E2774205573652047  nd - Don't Use G
000004C0 :4F544F2E6D70330059616D6174616E20  OTO.mp3.Yamatan
000004D0 :42616E6400446F6E2774205573652047  Band.Don't Use G
000004E0 :4F544F000325366C59616D6174616E20  OTO..%6lYamatan
000004F0 :42616E64202D20446F205768696C652C  Band - Do While,
00000500 :20446F20556E74696C2E6D7033005961   Do Until.mp3.Ya
00000510 :6D6174616E2042616E6400446F205768  matan Band.Do Wh
00000520 :696C652C20446F20556E74696C000429  ile, Do Until..)
00000530 :4E3B59616D6174616E2042616E64202D  N;Yamatan Band -
00000540 :205065726D616E656E74204C6F6F702E   Permanent Loop.
00000550 :6D70330059616D6174616E2042616E64  mp3.Yamatan Band
00000560 :005065726D616E656E74204C6F6F7000  .Permanent Loop.
00000570 :0566543559616D6174616E2042616E64  .fT5Yamatan Band
00000580 :202D20537461636B204F76657220466C   - Stack Over Fl
00000590 :6F772E6D70330059616D6174616E2042  ow.mp3.Yamatan B
000005A0 :616E6400537461636B204F7665722046  and.Stack Over F
000005B0 :6C6F7700073D356759616D6174616E20  low..=5gYamatan
000005C0 :42616E64202D204D656D6F7279204475  Band - Memory Du
000005D0 :6D702E6D70330059616D6174616E2042  mp.mp3.Yamatan B
000005E0 :616E64004D656D6F72792044756D7000  and.Memory Dump.
000005F0 :0902571559616D6174616E2042616E64  ..W.Yamatan Band
00000600 :202D2044656275672026205265636F6D   - Debug & Recom
00000610 :70696C652E6D70330059616D6174616E  pile.mp3.Yamatan
00000620 :2042616E640044656275672026205265   Band.Debug & Re
00000630 :636F6D70696C65000B097B1759616D61  compile...{.Yama
00000640 :74616E2042616E64202D2041626E6F72  tan Band - Abnor
00000650 :6D616C205465726D696E6174696F6E2E  mal Termination.
00000660 :6D70330059616D6174616E2042616E64  mp3.Yamatan Band
00000670 :0041626E6F726D616C205465726D696E  .Abnormal Termin
00000680 :6174696F6E000C59263459616D617461  ation..Y&4Yamata
00000690 :6E2042616E64202D2053797374656D20  n Band - System
000006A0 :4372617368212E6D70330059616D6174  Crash!.mp3.Yamat
000006B0 :616E2042616E640053797374656D2043  an Band.System C
000006C0 :7261736821000E176D0159616D617461  rash!...m.Yamata
000006D0 :6E2042616E64202D204E756C6C20506F  n Band - Null Po
000006E0 :696E7465722852657072697365292E6D  inter(Reprise).m
000006F0 :70330059616D6174616E2042616E6400  p3.Yamatan Band.
00000700 :4E756C6C20506F696E74657228526570  Null Pointer(Rep
00000710 :72697365290010000775000300050000  rise)....u......
00000720 :000000000D0400000000FFFB90400000  ............拭..
00000730 :00000000000000000000000000000000  ................
00000740 :0000000000000000000000000000496E  ..............In
00000750 :666F000000030001399801FFFEF80000  fo......9.......
00000760 :00000000000000000000000000000000  ................
00000770 :00000000000000000000000000000000  ................
     Xingヘッダー
000008A0 :00000000000000000000000000000000  ................
000008B0 :00000000000000000000000000000000  ................
000008C0 :0000000000000000000000FFFB904000  .............拭.
000008D0 :00000000000000000000000000000000  ................
000008E0 :00000000000000000000000000000000  ................
     先頭無音フレーム (1)
00000A40 :00000000000000000000000000000000  ................
00000A50 :00000000000000000000000000000000  ................
00000A60 :000000000000000000000000FFFB9040  ..............拭
00000A70 :00000000000000000000000000000000  ................
00000A80 :00000000000000000000000000000000  ................
     先頭無音フレーム (2)
00000BE0 :00000000000000000000000000000000  ................
00000BF0 :00000000000000000000000000000000  ................
00000C00 :00000000000000000000000000FFFB90  ...............拭
00000C10 :40000000000000000000000000000000  @...............
00000C20 :00000000000000000000000000000000  ................
     先頭無音フレーム (3)
00000D80 :00000000000000000000000000000000  ................
00000D90 :00000000000000000000000000000000  ................
00000DA0 :00000000000000000000000000004944  ..............ID
00000DB0 :3303000000000079545045310000000D  3......yTPE1....
00000DC0 :00000059616D6174616E2042616E6454  ...Yamatan BandT
00000DD0 :4954320000000D0000004E756C6C2050  IT2.......Null P
00000DE0 :6F696E74657254414C420000000F0000  ointerTALB......
00000DF0 :004D757369635061636B20336F6E3354  .MusicPack 3on3T
00000E00 :52434B0000000600000030312F313054  RCK.......01/10T
00000E10 :59455200000005000000323030345443  YER.......2004TC
00000E20 :4F4E0000000900000028313729526F63  ON.......(17)Roc
00000E30 :6BFFFB90640000000000690600000000  k..薪.....i.....
00000E40 :000D20C00000000001A41C0000000000  .. .............
     MP3データ
020007B0 :AAAAAAAAAAAAAAAAAAAAAAAAAAAA5441  ..............TA
020007C0 :474E756C6C20506F696E746572285265  GNull Pointer(Re
020007D0 :70726973652900000000000000000059  prise).........Y
020007E0 :616D6174616E2042616E640000000000  amatan Band.....
020007F0 :000000000000000000000000004D7573  .............Mus
02000800 :69635061636B20336F6E330000000000  icPack 3on3.....
02000810 :00000000000000000000003230303400  ...........2004.
02000820 :00000000000000000000000000000000  ................
02000830 :0000000000000000000000000A11FFFB  ...............
02000840 :90400000000000000000000000000000  拭..............
02000850 :00000000000000000000000000000000  ................
     末尾無音フレーム (1)
020009B0 :00000000000000000000000000000000  ................
020009C0 :00000000000000000000000000000000  ................
020009D0 :000000000000000000000000000000FF  ................
020009E0 :FB904000000000000000000000000000  .拭.............
020009F0 :00000000000000000000000000000000  ................
02000A00 :00000000000000000000000000000000  ................
     末尾無音フレーム (2)
02000B60 :00000000000000000000000000000000  ................
02000B70 :00000000000000000000000000000000  ................
02000B80 :FFFB9040000000000000000000000000  ..拭............
02000B90 :00000000000000000000000000000000  ................
02000BA0 :00000000000000000000000000000000  ................
     末尾無音フレーム (3)
02000D00 :00000000000000000000000000000000  ................
02000D10 :00000000000000000000000000000000  ................
02000D20 :00FFFB90400000000000000000000000  ...拭...........
02000D30 :00000000000000000000000000000000  ................
02000D40 :00000000000000000000000000000000  ................
     末尾無音フレーム (4)
02000EA0 :00000000000000000000000000000000  ................
02000EB0 :00000000000000000000000000000000  ................
02000EC0 :0000FFFB904000000000000000000000  ....拭..........
02000ED0 :00000000000000000000000000000000  ................
02000EE0 :00000000000000000000000000000000  ................
     末尾無音フレーム (5)
02001040 :00000000000000000000000000000000  ................
02001050 :00000000000000000000000000000000  ................
02001060 :0000000D0A000010253D3D3D3D3D3D3D  ........%=======
02001070 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
02001080 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
02001090 :3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D  ================
020010A0 :3D3D3D3D3D3D3D3D3D3D3D0D0A456E64  ===========..End
020010B0 :206F66205061636B6564204D50332020   of Packed MP3
020010C0 :2D2047656E6572617465642062792022  - Generated by "
020010D0 :4D757369635061636B20336F6E332220  MusicPack 3on3"
020010E0 :2D0D0A   -..


  ○ 比較表

※Winamp + Album Playlist Plugin for Winamp 2.x での再生を前提

パック形式比較(1)

CuePackZIPLHA解 説
汎用性 × ・Cue は mp3cue プラグインと互換
・Pack は MusicPack 3on3 独自形式
・ZIP/LHA は通常の無圧縮アーカイブ
処理効率 ・Cue は時間算出済なので高速
・その他は時間の算出が必要なので非効率
・ZIP/LHA はアーカイブ内のデータ部分を
 検出しているので更に効率は悪い
ファイル
情報表示
× ・Cue は各曲データ部分の認識はしていない
 ので情報を取得できず表示は不可
・その他は各曲データ部分をファイルとして
 認識しているので表示可能
 ただしフレームをスキャンしているので
 処理速度はやや遅い
ファイル
抽出保存
× ・理由は情報表示と同様
・展開で MusicPack 3on3 を起動して
 抽出(Extract)することは可能
Entire - × × ・Cue はファイル形式に無関係なので除外
・Pack は各曲データ間が隙間なく繋がって
 いるので最適(Pack+Cue が最良)
・ZIP/LHA では各曲としての認識ができない
 のでアーカイブ化しても意味がない
VBR × × × ・Pack+Cueでパック化
・Xingヘッダーを付加
・ID3タグは除去
・in_mpg123.dll を使用

パック形式比較(2)

長 所短 所用 途
Cue
・処理が高速
・Entire可
・各曲データ把握不可
・シャッフル(全ファイル)
・Entire(Pack+Cue)
・VBR可(Pack+Cue)
Pack
・無駄のない形式
・多様な用途の再生可
・汎用性は低い
・再生用途は多い
・Entire(Pack+Cue)
・mpg123可
・VBR可(Pack+Cue)
ZIP
・汎用性が高い形式
・ゴミデータが多い
・Entire不可
・mpg123不可
・VBR不可
・単曲のパック化
LHA