Sebuah
file audio MPEG dibangun dari bagian-bagian kecil yang disebut sebagai frame.
Secara umum, frame adalah sebuah item independent. Setiap frame memiliki header
dan informasi audio tersendiri. Karena tidak ada file header , Anda dapat
memotong part manapun dari sebuah file MPEG dan memainkannya tanpa masalah
(sebaiknya dilakukan dalam batas-batas frame, akan tetapi sebagian besar
aplikasi dapat menangani incorrect header). Namun, untuk layer III, tidak akan
100% tepat. Dikarenakan organisasi data internal dalam file MPEG layer III,
frame-frame seringkali bergantung satu sama lain dan tidak dapat dipotong
sembarangan.
Ketika
Anda ingin membaca informasi mengenai sebuah file MPEG, biasanya cukup dengan
mencarinya pada frame pertama, baca headernya dan anggap frame-frame lainnya
adalah sama. Tetapi kasusnya tidak selalu demikian. Variable Bit Rate pada file
MPEG mungkin digunakan sehingga akan mengakibatkan Bitrate Switching, hal ini
berarti Bitrate akan berubah-ubah tergantung dari content pada tiap frame.
Dengan cara ini Bitrate lebih rendah mungkin akan digunakan pada frame yang tidak
mempengaruhi kualitas suara.
Frame header terdapat pada 4 byte
(32 bits) awal sebuah frame. Sebelas bit pertama (atau dua belas bit pertama,
lihat tabel di bawah mengenai frame sync) dari sebuah frame header selalu
di-set dan bit-bit ini dinamakan “frame sync”. Oleh karena itu, Anda dapat
mencari dalam sebuah file dimana frame sync pertama kali terjadi (artinya bahwa
Anda harus menemukan sebuah byte dengan nilai 255, dan diikuti dengan byte
dengan tiga (atau empat) ‘most-significat-bit-set’-nya. Lalu Anda dapat membaca
keseluruhan header dan memeriksa apakah nilainya sudah benar. Anda dapat
melihat tabel berikut mengenai arti tiap-tiap bit dalam header. Nilai-nilai
yang ditetapkan sebagai ‘reserved’, ‘invalid’, ‘bad’ atau ‘not allowed’
mengindikasikan header yang invalid.
Frame-frame
juga mungkin memiliki pengecekan CRC. CRC adalah bit-bit sepanjang 16 bit, jika
ada, di belakang frame header. Setelah CRC, selanjutnya adalah data audio.
Dengan demikian, Anda dapat menghitung CRC dari sebuah frame kemudian membandingkannya
dengan yang Anda baca dari file. Metode ini sebenarnya sangat baik untuk
memeriksa validitas frame MPEG.
Berikut
ini adalah penjelasan mengenai isi dari header. Karakter dari A sampai M
digunakan untuk menandai bagian-bagian yang berbeda. Dalam tabel di bawahnya,
Anda dapat melihat isi dari tiap-tiap bagian.
AAAAAAAA AAABBCCD EEEEFFGH IIJJKLMM
Tanda
|
Panjang (bit)
|
Posisi (bit)
|
Deskripsi
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
A
|
11
|
(31-21)
|
Frame Sync (semua bit di-set)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
B
|
2
|
(20-19)
|
MPEG Audio version ID (ID versi MPEG Audio)
00 – MPEG versi 2.5 (tidak resmi)
01 – reserved
10 – MPEG versi 2 (ISO/IEC 13818-3)
11 – MPEG versi 1 (ISO/IEC 11172-3)
Catatan : MPEG versi 2.5 bukan merupakan standar resmi.
Ini adalah sebuah ekstensi dari standar yang digunakan pada file dengan
bitrate sangat rendah. Jika decoder Anda tidak mendukung ekstensi ini, Anda
disarankan menggunakan 12 bit untuk sinkronisasi, bukan 11 bit.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
C
|
2
|
(18,17)
|
Layer description
00 - reserved
01 - Layer III
10 - Layer II
11 - Layer I
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
D
|
1
|
16
|
Protection bit (Bit proteksi)
0 – Diproteksi
dengan CRC (16 bit CRC akan mengikuti header)
1 – Tidak
terproteksi
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
E
|
4
|
(15,12)
|
Indeks Bitrate
Catatan : Semua nilai dalam kbps
V1 - MPEG versi 1
V2 - MPEG versi 2
and versi 2.5
L1 - Layer I
L2 - Layer II
L3 - Layer III
“free” berarti format bebas. Jika bitrate tetap yang benar
(beberapa file tidak dapat menggunakan variable bitrate) berbeda dengan yang
tertulis pada tabel di atas, maka harus ditentukan sendiri oleh aplikasi. Hal
ini mungkin hanya akan diterapkan untuk kepentingan internal karena aplikasi
pihak ketiga tidak ditujukan untuk mencari bitrate yang benar. Namun
bagaimanapun, hal ini bukan tidak mungkin untuk dilakukan namun membutuhkan
banyak usaha.
"bad" berarti bukan nilai yang diizinkan.
File MPEG mungkin memiliki Variable Bit Rate (VBR). Tiap
frame mungkin dibuat dengan bitrate yang berbeda. Ini dapat digunakan pada
semua layer. Decoder untuk layer III harus mendukung metode ini. Dekoder
untuk layer I dan layer II mungkin sudah mendukung.
Untuk Layer II ada beberapa kombinasi bitrate dan mode yang
tidak diperbolehkan. Berikut ini adalah daftar kombinasi yang diizinkan :
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
F
|
2
|
(11,10)
|
Sampling Rate Frequency Index (nilai dalam Hz)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
G
|
1
|
9
|
Padding bit (bit lapisan)
0 - frame tidak
berlapis
1 - frame berlapis,
dengan satu extra slot
Padding digunakan untuk mencocokkan bit rate secara tepat.
Sebagai contoh : 128k 44.1kHz layer II menggunakan sebagian besar 418 byte
dan beberapa 417 byte frame untuk mendapatkan 128k bitrate secara tepat.
Untuk layer I slot adalah sepanjang 32 bit, untuk layer II dan layer III slot
sepanjang 8 bit
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
H
|
1
|
8
|
Private bit.
Dapat digunakan dengan bebas untuk kebutuhan spesifik
aplikasi.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
I
|
2
|
(7,6)
|
Channel Mode
00 - Stereo
01 - Joint stereo
(Stereo)
10 - Dual channel
(2 mono channels)
11 - Single channel
(Mono)
Catatan :
File Dual-Channel dibuat dari dua independen mono channel.
Setiap channelnya menggunakan tepat setengah dari bitrate file. Sebagian
besar decoder menghasilkan keluaran stereo, tetapi tidak selalu demikian.
Salah satu contoh kegunaanya adalah menampung dua
percakapan dalam dua bahasa yang berbeda dalam bitstream yang sama, dan
decoder yang baik akan men-decode hanya bahasa yang dipilih.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
J
|
2
|
(5,4)
|
Mode extension (Hanya dipakai dalam mode Joint stereo)
Mode
extension dipakai untuk menggabungkan informasi yang tidak digunakan untuk
efek stereo, untuk mengurangi pemakaian bits. Bits ini dikenali secara
dinamis oleh sebuah encoder dalam Joint stereo mode, dan Joint Stereo dapat
diganti dari satu frame ke frame yang lain, bahkan dihidupkan ataupun
dimatikan.
Range
frekuensi dalam file MPEG dibagi ke dalam beberapa subbands. Terdapat 32
subbands. Untuk Layer I & II, 2 bits ini menentukan range frekuensi
(bands) dimana intensity stereo diterapkan. Untuk Layer III, 2 bits ini
menentukan tipe joint stereo yang digunakan ( intensity stereo atau m/s
stereo). Range frekuensi ditentukan dengan algoritma dekompresi.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
K
|
1
|
(3)
|
Copyright
0 - Audio tidak memiliki copyright 1 - Audio memiliki copyright Copyright memiliki arti yang sama seperti dalam copyright bit CD dan tape DAT, yang menjelaskan legalitas pengkopian. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
L
|
1
|
(2)
|
Original
0 - Salinan dari original media 1 - Original media Original bit mengindikasikan keoriginalan media. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
M
|
2
|
(1,0)
|
Emphasis
00 - tidak ada 01 - 50/15 ms 10 - tidak ada 11 - CCIT J.17 Indikasi ini memberitahu decoder bahwa sebuah file harus di-deemphasize, yang artinya decoder harus mengatur suara dari gangguan seperti Dolby noise. Namun ini jarang digunakan. |
Tidak ada komentar:
Posting Komentar