Mengacu pada perlindungan
alamiah
dari perusahaan yang mengembangkan
mp3, spesifikasi dari mp3
tidak dirincikan secara detil tentang proses encoding
mereka yang sebenarnya, proses
tersebut tersajikan dalam pseudocode
tingkat tinggi sehingga perusahaan lain harus
menghasilkan encoders buatan mereka sendiri. Struktur untuk mp3 encoder tersaji pada
gambar 2.1.
Gambar
2.1 MPEG-1 Layer 3 Encoder [ISO/IEC
1995] ( Sumber: Atracmp3,p6 )
Input audio sampel dimasukkan ke dalam encoder dan proses pemetaan
menghasilkan sebuah filter dan sub-sample
yang menggambarkan audio stream
yang masuk, yang disebut
transformed sub-band samples, model psychoacoustic yang cocok
dipergunakan untuk menyajikan satu
set data yang dapat digunakan untuk mengontrol quantization dan coding. [ISO/IEC,
1995] mengusulkan agar mempergunakan estimasi
masking threshold untuk
mengontrolnya. Proses quantizer dan
coding menghasilkan satu set simbol coding dari sample input yang telah dipetakan. Setelah tahap pengelompokan frame kemudian mengumpulkan hasil encoding bitstream
dari data ini, dan menambahkan data yang diperlukan seperti kode koreksi kesalahan. Pada MPEG-1, semakin bertambahnya layer,
maka begitu juga tingkat kerumitan pada encoder juga meningkat.
Layer 3 terbentuk dari layer-layer sebelumnya, dan termasuk
fitur-fiturnya. Pada layer 1, input dipetakan ke dalam 32 sub-bands dengan segmentasi yang pasti dari
data ke dalam blok-blok.
Model psychoacoustic
menentukan penyesuaian diri pada
alokasi bit, dan quantization
dilaksanakan dengan
menggunakan penghalang
"companding" (compression
dan expanding) dan formatting. Layer 2 menggunakan coding tambahan pada alokasi bit, faktor skala dan sampel, serta teknik pembuatan frame berbeda. Layer
3 menambahkan
peningkatan frekuensi resolusi dengan cara hibrida
filterbank, sebuah non-uniform
quantizer, penyesuaian segmentasi dan entropy coding (seperti Huffman
Coding) pada quantized data.
Sejarah MPEG-1 Layer 3
Di awal
abad
ke-19,
matematikawan
Perancis
Joseph
Fourier
menyusun beberapa persamaan matematik
untuk menggambarkan cara panas menyebar. Persamaan itu bisa dipergunakan untuk menggambarkan
segala macam bentuk gelombang sebagai urutan nomor, termasuk gelombang suara. Di tahun 60an,
seorang insinyur Amerika yang
dinamai R A Moog mempergunakan
rumus Fourier untuk mendesain musik
elektronik synthesizers.
Di tahun 1980an, Yamaha, perusahaan ilmu elektronika Jepang, mempergunakan rumusan matematika yang sama untuk merevolusionerkan industri musik dengan memperkenalkan keyboard elektronik. Dan hari ini, persamaan
Fourier hidup sebagai bagian kerangka matematik yang menggambarkan mp3. Aspek yang benar-benar mempesona dari mp3 adalah
aspek yang menggabungkan matematika
dengan sistem pendengaran manusia.
Gambar
2.2 Struktur Decoding mp3
(
Sumber: Allen Cheng and Chih-Hung Cheng,2002,p2 )
MPEG Layer
1-3 frame header
Sebuah
file MPEG audio dibentuk dari bagian-bagian kecil yang disebut frames.
Secara umum, frames adalah sesuatu yang dapat berdiri sendiri (independent). Masing- masing frame mempunyai header
dan audio information masing-masing. Oleh karena
itu, anda bisa mengambil bagian mana pun dari file MPEG, menyimpannya dan
lalu memainkannya dengan baik. Pada Layer III, ini tidak 100% benar. Karena pengaturan internal data di file
MPEG versi 1 Layer III , frame biasanya tergantung satu sama lain dan frame tersebut tidak bisa
diambil begitu saja.
Waktu anda ingin membaca
informasi mengenai sebuah file
MPEG, biasanya cukup menemukan frame pertama, membaca headernya dan mengasumsikan bahwa frame lain juga mengandung informasi yang sama. Mungkin tidak semuanya mengandung informasi
yang sama seperti itu. Variable bitrate
file MPEG biasanya disebut dengan bitrate switching, yang berarti bahwa
bitrate berubah berdasarkan isi pada masing-masing frame. Disini lower bitrates mungkin digunakan
pada frame yang tidak menurunkan kualitas dari suara. Ini diperbolehkan untuk dilakukan selama menghasilkan
kompresi yang tetap mempertahankan kualitas suara yang baik.
Frame header terletak pada empat byte pertama (32bits) di dalam
satu
frame. 11 bit yang
pertama (atau pada dua belas bit pertama, terlihat tentang framesync) pada frame header selalu diatur dan
disebut "framesync". Oleh karena itu, anda
bisa menemukan 1 byte
dengan nilai 255 dan diikuti
dengan 3 atau 4
bit yang penting pada framesync yang pertama. Lalu anda membaca seluruh
header dan cek jika nilainya benar. Anda akan dapatkan pada tabel berikut arti sebenarnya pada setiap bit pada
header dan isinya mungkin
diperiksa untuk validitas. Masing-masing isi adalah spesifik sesuai yang ditentukan. Tidak valid, cacat ataupun yang tidak dijinkan akan mengindikasikan data header yang salah. Ingat, ini tidaklah cukup, framesync bisa dengan
mudah (dan sangat sering) ditemukan pada setiap file biner mana pun. Dan juga
mungkin file MPEG berisi
sampah pada awalnya, yang berisi sync yang salah. Dengan begitu,
anda harus memeriksa dua atau lebih
frame selanjutnya untuk memastikan anda benar-benar berhadapan dengan file
MPEG audio.
Frame mungkin
memiliki pemeriksa
CRC. CRC adalah sebuah
bit yang panjangnya 16 bit dan, jika ada, ini mengikuti frameheader. Setelah CRC terdapat audio data. Anda bisa memperhitungkan panjang frame
dan
menggunakan
ini
jika
anda memerlukannya untuk membaca
headers lainnya juga,
atau hanya mau
memperhitungkan
CRC dari frame tersebut
untuk membandingkannya dengan yang anda baca dari file.
Sebenarnya, ini adalah sebuah metode
yang baik jika mencek validitas MPEG
header.
0 komentar:
Posting Komentar