Image Compression. Tujuan Kompresi Image. Teknik kompresi yang diharapkan. Image Compression. Kompresi untuk apa?

dokumen-dokumen yang mirip
Image Compression. Tujuan Kompresi Image. Teknik kompresi yang diharapkan. Image Compression. Kompresi untuk apa?

Image Compression. Kompresi untuk apa?

MKB3383 -TEKNIK PENGOLAHAN CITRA. Kompresi Citra. Muhammad Zidny Naf an, M.Kom. Genap, 2016/2017

TEKNIK KOMPRESI LOSSLESS TEXT

KOMPRESI DATA DAN TEKS. By : Nurul Adhayanti

HUFFMAN CODING. Huffman Coding

BAB 2 LANDASAN TEORI

BAB 2 TINJAUAN PUSTAKA

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA ARIHTMETIC CODING DAN SHANNON-FANO PADA KOMPRESI CITRA BMP

PENGANTAR KOMPRESI DATA

~ By : Aprilia Sulistyohati, S.Kom ~

Kompresi. Definisi Kompresi

BAB 2 TINJAUAN PUSTAKA

PEMAMPATAN CITRA (IMA

DIGITAL IMAGE CODING. Go green Aldi Burhan H Chandra Mula Fitradi Mardiyah

Studi Kompresi Data dengan Metode Arithmetic Coding

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

MULTIMEDIA system. Roni Andarsyah, ST., M.Kom Lecture Series

Standard Kompresi Citra: JPEG

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

BAB 2 LANDASAN TEORI

NASKAH PUBLIKASI KOMPRESI CITRA DENGAN METODE ARITHMETIC CODING DALAM KAWASAN ENTROPY CODING

Konstruksi Kode dengan Redundansi Minimum Menggunakan Huffman Coding dan Range Coding

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO MULTIMEDIA. Kompresi. Oky Dwi Nurhayati, ST, MT

PEMAMPATAN TATA TEKS BERBAHASA INDONESIA DENGAN METODE HUFFMAN MENGGUNAKAN PANJANG SIMBOL BERVARIASI

PERBANDINGAN ALGORITMA HUFFMAN DAN ALGORITMA SHANNON-FANO PADA PROSES KOMPRESI BERBAGAI TIPE FILE. Irwan Munandar

KOMPRESI TEKS MENGGUNAKAN ALGORITMA DAN POHON HUFFMAN. Nama : Irfan Hanif NIM :

BAB 2 LANDASAN TEORI

Informasi dan Coding

TEKNIK PENGOLAHAN CITRA. Kuliah 13 Kompresi Citra. Indah Susilawati, S.T., M.Eng.

1. Pendahuluan. 1.1 Latar Belakang Masalah

>>> Kompresi Data dan Teks <<<

Pemampatan Citra. Esther Wibowo Erick Kurniawan

IMPLEMENTASI DAN ANALISIS KINERJA ALGORITMA SHANNON- FANO UNTUK KOMPRESI FILE TEXT

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET KOMUNIKASI DATA

Kompresi Citra dan Video. Muhtadin, ST. MT.

Teknik Kompresi Citra Menggunakan Metode Huffman

KOMPRESI DATA. Multimedia Jurusan Teknik Informatika. Riki Ruli S -

BAB II DASAR TEORI. 2.1 Pendahuluan

Penggunaan Kode Huffman dan Kode Aritmatik pada Entropy Coding

Contoh kebutuhan data selama 1 detik pada layar resolusi 640 x 480 : 640 x 480 = 4800 karakter 8 x 8

Penerapan Pengkodean Huffman dalam Pemampatan Data

ABSTRAK. Universitas Kristen Maranatha

KOMPRESI DAN TEKS. By Aullya Rachmawati,

BAB 2 TINJAUAN PUSTAKA

Penyandian (Encoding) dan Penguraian Sandi (Decoding) Menggunakan Huffman Coding

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PROGRAM STUDI S1 SISTEM KOMPUTER UNIVERSITAS DIPONEGORO. Oky Dwi Nurhayati, ST, MT.

Kata kunci: pohon biner, metode Huffman, metode Kanonik Huffman, encoding, decoding.

BAB 1 PENDAHULUAN Latar Belakang

BAB 2 LANDASAN TEORI

N, 1 q N-1. A mn cos 2M , 2N. cos. 0 p M-1, 0 q N-1 Dengan: 1 M, p=0 2 M, 1 p M-1. 1 N, q=0 2. α p =

KOMPRESI TEKS dengan MENGGUNAKAN ALGORITMA HUFFMAN

Penerapan Algoritma Huffman dalam Kompresi Gambar Digital

Penggunaan Pohon Huffman Sebagai Sarana Kompresi Lossless Data

1. PENDAHULUAN 1.1. Latar Belakang Masalah

BAB 2 TINJAUAN PUSTAKA

Penerapan Pohon Biner Huffman Pada Kompresi Citra

ANALISIS BEBERAPA TEKNIK CODING RAHMAD FAUZI, ST, MT JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS SUMATERA UTARA BAB I PENDAHULUAN

BAB II LANDASAN TEORI. Kompresi data atau pemampatan data adalah suatu proses pengubahan

BAB I. PENDAHULUAN Latar Belakang Masalah

KONSEP. Tujuan Kompresi:

BAB 2 TINJAUAN PUSTAKA

Pemampatan Citra Pemampatan Citra versus Pengkodean Citra

BAB III METODE KOMPRESI HUFFMAN DAN DYNAMIC MARKOV COMPRESSION. Kompresi ialah proses pengubahan sekumpulan data menjadi suatu bentuk kode

TEKNIK KOMPRESI LOSSLESS

KOMPRESI DAN TEKS. = 4800 karakter. 8 x 8 Kebutuhan tempat penyimpanan per halaman = byte = byte = Kbyte

Entropy Naskah Bahasa Sunda Dan Bahasa Jawa Untuk Kompresi Teks Menggunakan Algoritma Binary Huffman Code

[TTG4J3] KODING DAN KOMPRESI. Oleh : Ledya Novamizanti Astri Novianty. Prodi S1 Teknik Telekomunikasi Fakultas Teknik Elektro Universitas Telkom

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

STMIK GI MDP. Program Studi Teknik Informatika Skripsi Sarjana Komputer Semester Ganjil Tahun 2010/2011

KOMPRESI CITRA. Pertemuan 12 Mata Pengolahan Citra

BAB II TEORI DASAR PENGOLAHAN CITRA DIGITAL. foto, bersifat analog berupa sinyal sinyal video seperti gambar pada monitor

BAB III METODOLOGI PENELITIAN. Penelitian ini dilakukan di Jurusan Ilmu Komputer Fakultas Matematika dan

Kompresi. Pengertian dan Jenis-Jenis Kompresi

BAB 2 TINJAUAN PUSTAKA

KOMPRESI FILE MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

Bab 6. Kompresi Data dan Teks. Pokok Bahasan : Tujuan Belajar : Sekilas Kompresi Data

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET (KOMUNIKASI DATA)

KOMPRESI JPEG 2000 PADA CITRA DIGITAL DENGAN TRANSFORMASI WAVELET DISKRIT

Oleh : Page 1

KOMPRESI DAN TEKS M U L T I M E D I A KOMPRESI DATA

SISTEM ANALISA PERBANDINGAN UKURAN HASIL KOMPRESI WINZIP DENGAN 7-ZIP MENGGUNAKAN METODE TEMPLATE MATCHING

SATUAN ACARA PERKULIAHAN ( SAP )

BAB 2 TINJAUAN PUSTAKA

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

DATA COMPRESSION CODING USING STATIC AND DYNAMIC METHOD OF SHANNON-FANO ALGORITHM

TTG3B3 - Sistem Komunikasi 2 Teori Informasi

PENERAPAN METODE HUFFMAN DALAM PEMAMPATAN CITRA DIGITAL

Algoritma Huffman dan Kompresi Data

BAB I PENDAHULUAN. Dalam dunia modern sekarang ini kebanyakan aktivitas manusia selalu

Perbandingan Algoritma Kompresi Terhadap Objek Citra Menggunakan JAVA

APLIKASI KOMPRESI TEKS SMS PADA MOBILE DEVICE BERBASIS ANDROID DENGAN MENGGUNAKAN ALGORITMA HUFFMAN KANONIK

BAB 2 LANDASAN TEORI

KOMPRESI DAN TEKS. Pemrograman Multimedia KOMPRESI DATA. Diktat Kuliah

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

KOMPRESI CITRA MENGGUNAKAN METODE RUN LENGTH ENCODING (RLE) DAN ALGORITMA ARITMETIC CODING

Transkripsi:

Tujuan Kompresi Image Image Compression Sesi 0 Dosen Pembina : Sriyani Violina Danang Junaedi Kompresi untuk apa? Volume data yang besar Bit rate tinggi bandwidth yang tinggi Bayangkan sebuah video dengan resolusi 640x480 dengan 30 fps, dimana menggunakan penyimpanan 24-bit. Bila video berdurasi jam berapa ukuran file video tersebut? 2 Image Compression Alternatif Solusi Penambahan storage dan bandwidth Kompresi data (smart choice!!!) Teknik kompresi yang diharapkan Proses kompresi/dekompresi yang cepat Membutuhkan memory yang kecil Kualitas citra kompresi yang bagus Proses transfer dan penyimpanannya mudah 3 4

Teknik Kompresi Berdasarkan hasilnya: Lossless Compression: based on the idea of breaking a file into a "smaller" form for transmission or storage and then putting it back together on the other end so it can be used again. Ex : ZIP, PNG, GIF Lossy Compression: eliminate "unnecessary" bits of information, tailoring the file so that it is smaller. Ex: JPEG, MP3, MPEG Klasifikasi Teknik Kompresi Entropy Encoding (Lossless) Run Length Encoding (RLE) Pattern Substitution Huffman DPCM Source Encoding (Lossy) Quantizing Compression Transfrom Encoding Hybrid Encoding (Lossy) JPEG 5 6 Run Length Encoding (RLE) 2 3 4 4 4 3 3 3 3 Diubah dalam bentuk sekuensial 2 3 4 4 4 4 3 3 3 5 3 3 = 24 byte Dihitung jumlah kemunculan data (,) (2,) (,5) (3,) (4,4) (,2) (3,3) (5,) (,4) (3,2) Data Kompresi 2 5 3 4 4 2 3 3 5 4 3 2 = 20 byte 3 4 5 Shannon's Source Coding Theorem Pada umumnya teknik lossless akan melakukan proses penggantian simbol dengan suatu simbol biner Masalahnya: Menentukan simbol biner sehingga data yang dikompresi menjadi lebih kecil dan dapat dibalikkan kembali harus unik 7 8 2

Shannon's Source Coding Theorem Simbol MODEL _A MODEL_B MODEL_C a 00 0 0 b 0 0 c 0 0 00 d 0 Misalkan S = aacabad Model manakah yang dapat digunakan untuk encode S?? Shannon's Source Coding Theorem Misalkan sebuah data: A={a,a2,,an} Probabilitas data : P={p,p2,,pn} Dengan kedua informasi tersebut maka kita dapat memperkirakan information content dari suatu simbol Semakin besar probabilitas maka akan dikodekan dengan biner yang kecil 9 0 Shannon's Source Coding Theorem Information Content I(a) entropy dari suatu simbol a dimana kita telah mengetahui probabilitasnya dapat dirumuskan sebagai: Basis log 2 menyatakan bahwa informasi dinyatakan dalam bentuk biner Shannon's Source Coding Theorem Setelah mengetahui nilai Information Content suatu simbol, kita dapat menyatakan: Suatu simbol a dengan probabilitas P(a) sebaiknya direpresentasikan dalam biner dengan log 2 P(a) simbol Sehingga entropy seluruh data adalah: 2 3

Huffman Code s Dari Teori Shannon : Sebuah source data dapat dikodekan dengan rata-rata panjang kode mendekati entropy dari source data Tahun 952 D.A.Huffman mengajukan teknik encoding untuk menghasilkan panjang kode terpendek dari suatu source data dengan memanfaatkan probabilitasnya. Sejarah Huffman Code s Diciptakan oleh David A. Huffman pada tahun 95 sebagai tugas kuliah ketika di Massachusetts Institute of Technology (MIT). Dosen pengajar Huffman (bernama Robert M. Fano) menawarkan kepada para mahasiswanya bahwa siapa saja yang dapat menulis sebuah artikel tentang membangun pohon biner yang efisien akan mendapatkan nilai bagus tanpa harus menempuh ujian. Setelah lama mencoba dan hampir menyerah, Huffman akhirnya menemukan sebuah metode untuk membangun pohon biner berdasarkan frekuensi. Tekniknya kemudian diakui sebagai teknik yang paling efisien, melebihi teknik buatan sang dosen sendiri. Binary Tree (pohon biner) yang dibuat oleh Huffman (disebut sebagai Huffman Tree) adalah dasar dari kompresi data dengan format ZIP yang kita kenal sekarang. Teknik ini juga dipakai sebagai salah satu algoritma penyusun format file gambar JPEG dan format file musik populer MP3. Jadi, bila kita sekarang bisa mendengarkan MP3 player kita sambil berkegiatan, salah satu faktor yang membuat teknologi ini ada adalah algoritma Huffman. 3 4 Huffman Code s Teknik ini dikenal dengan Huffman Code s dengan pertimbangan: The more frequently occurring symbols can be allocated with shorter codewords than the less frequently occurring symbols The two least frequently occurring symbols will have codewords of the same length, and they differ only in the least significant bit. Huffman Code s Algoritma dalam pseudo code. Hitunglah probabilitas dari setiap simbol yang ada 2. Pasangkan setiap <simbol,probabilitas> dengan node 3. Temukan 2 buah node dengan probabilitas terendah kemudian buatkah node parent dengan probabilitas gabungan dari 2 anaknya 4. Berikan label untuk cabang dari anak ke parent dengan 0 dan (sebaiknya konsisten) 5. Update node (node anak diabaikan), lalu periksa jumlah node yang ada, bila jumlah node > maka ulangi langkah 3 6. Untuk menemukan kode setiap simbol, lakukan traverse dari root ke leaf, (label branch yang dilalui akan menjadi kode untuk leaf) 5 6 4

Huffman Code s Huffman Code s Misalkan data: S= AABAACCCCDDBBBBEF Hitung frekuensi data probalitas a 4, b 5, c 4, d 2, e, f Proses pembangunan code sebagai berikut A,4 B,5 C,4 D,2 E, 0 0 2 0 9 4 8 0 7 F, 0 7 8 Huffman Code s Kode untuk setiap simbol: A 0 B C 00 D 00 E 0 F 00 Jadi data S= aabaaccccddbbbbef (7 byte) akan dikodekan menjadi : 0 0 0 0 00 00 00 00 00 00 0 00 = 40 bit 5 byte Dalam implementasinya teknik Huffman Code s dapat dipercepat dengan menggunakan mekanisme sorting data (insertion sort) Contoh: x i p i ----------------------------- A 0,35 B 0,7 C 0,7 D 0,6 E 0,5 9 20 5

Huffman Code s Huffman Coding Dari Huffman tree dapat dibuat tabel codeword: Simbol Biner Jumlah Digit A B 0 3 C 00 3 D 00 3 E 000 3 Tergantung pada bagaimana memilih probabilitas terendah saat membangun Huffman tree Huffman tree tidak unik Namun, panjang rata-rata codeword selalu sama utk tree yang berbeda L Huff = Σ Probabilitas Simbol * Jumlah Digit = 0,35* + 0,7*3 + 0,7*3 + 0,6*3 + 0,5*3 = 2,3 H(S) = Entropy(S) = Σ- Probabilitas Simbol * Log 2 Probabilitas Simbol = - 0.35 log 2 0.35-0.7 log 2 0.7-0.7 log 2 0.7-0.6 log 2 0.6-0.5 log 2 0.5 = 2,23284 Efisiensi = (H(S)/LHuff) * 00% = (2,23284/2,3) * 00 % = 97,08% 2 22 Huffman Coding Huffman Coding Proses coding: mentransmisikan codeword sesuai dg simbol-simbol yg akan dikirim, mis ABAAD 000 Untuk decode message, konversi tabel harus diketahui penerima dp dibangun Huffman tree A B 0 C 00 D 00 E 000 000 DAB Bagaimana encoder memberi tahu decoder utk menggunakan code yang mana: Baik encoder dan decoder sudah sepakat sebelumnya utk menggunakan Huffman tree tertentu sebelum terjadi pengiriman message Encoder membangun Huffman tree yang baru (fresh) setiap message baru akan dikirimkan, dan mengirimkan tabel konversi bersama-sama dg message Keuntungannya terasa jika digunakan utk message yang besar Masalah: pengirim (encoder) dan penerima (decoder) harus menggunakan coding (Huffman tree) yang sama 23 24 6

Huffman Coding Contoh Apakah masih ada ruang perbaikan utk Huffman Coding? Semua kemungkinan Huffman tree akan memberikan panjang rata-rata yang sama Namun ingat Shannon s Fundamental Theorem: Semua kemungkinan pasangan simbol dp digunakan untuk membangun Huffman tree kompresi data dp ditingkatkan Namun perbaikan harus dibayar dg Tabel Konversi yang lebih besar 25 26 Studi Kasus Misalkan kita hendak melakuakn kompresi untuk kalimat : LOGIKA ALGORITMA Solusi Buat tabel frekuensi : Buat Huffman Tree K R T M sp L O G I A 2 2 2 2 3 27 28 7

Sumber: repository.binus.ac.id/content/t0034/t003446363.ppt TABEL HUFFMAN CODE K R T M sp L O G I A 0 000 00 0 0 00 0 0 00 L 0 3 bit O 00 3 bit G 0 3 bit I 0 3 bit K 0 5 bit A 00 2 bit sp 0 4 bit A 00 2 bit L 0 3 bit G 0 3 bit O 00 3 bit R 5 bit I 0 3 bit T 000 4 bit M 00 4 bit A 00 2 bit Quantizing Compression Teknik Quantizing Compression bersifat lossy Digunakan untuk mereduksi data dengan asumsi bahwa perubahan data tidak akan mempengaruhi content/informasi Melakukan pengkodean, rata-rata pada histogram, menggunakan matrik kuantisasi 29 30 Quantizing Compression (kode) Quantizing Compression (kode) 2 9 6 4 8 3 8 5 4 7 3 8 4 7 4 3 9 4 7 2 2 0 4 3 8 Histogram : Warna 0 = 2 Warna = 2 Warna 2 = 9 Warna 3 = Warna 4 = 9 Warna 5 = 4 Warna 6 = 5 Warna 7 = 8 Warna 8 = 9 Warna 9 = 6 2 6 3 8 5 6 3 8 2 8 9 2 3 8 2 7 6 2 6 9 5 4 7 Dikodekan menjadi 0 (Jumlahnya 3 pixel) Dikodekan menjadi (Jumlahnya 20 pixel) Dikodekan menjadi 2 (Jumlahnya 7 pixel) Dikodekan menjadi 3 (Jumlahnya 5 pixel) 9 3 7 4 7 3 7 4 9 5 3 0 2 8 3 0 3 2 3 0 2 3 2 3 2 3 2 2 2 3 0 3 2 3 2 3 0 3 0 2 3 3 2 0 2 2 0 0 2 2 0 0 0 3 3 2 2 0 0 3 0 Bisakah data ini dibalikkan? 3 32 8

Quantizing Compression (matrik) Arithmetic Coding Menggunakan matrik dan pembulatan Pada teknik ini, simbol yang ada akan direpresentasikan dengan bilangan real mulai dari 0-. Konsekuensi? = Aritmethic Coding menawarkan eficiency yang lebih baik dibandingkan dengan Huffman Code s Sesuai digunakan untuk jumlah simbol sedikit (binary simbol) dan simbol dengan highly skewed probabilities 33 34 Arithmetic Coding [Encoding] Arithmetic Coding [Encoding] Example penerapan arithmetic coding Informasi yang dimiliki Pesan akan di encode menjadi sebuah bilangan beserta informasi range simbol Proses penghasilan dengan memasukkan pesan pada range simbol dan melakukan update range simbol Misalkan simbol : BILL GATES 35 36 9

Arithmetic Coding [Encoding] Arithmetic Coding [Encoding] Algoritma: Encoding Bill Gates Set low to 0.0 Set high to.0 While there are still input symbols do get an input symbol code_range = high - low. high = low + range*high_range(symbol) low = low + range*low_range(symbol) End of While output low 37 38 Arithmetic Coding [Decoding] Arithmetic Coding [Decoding] Untuk melakukan Decoding kita membutuhkan range simbol awal Langkahnya adalah: Cocokkan nilai data kode dengan range yang ada pada range simbol, lalu ekstrak kode yang sesuai dengan range simbol Pecah range simbol sesuai dengan hasil pencocokan (Mengubah range simbol) Algoritma: get encoded number Do find symbol whose range straddles the encoded number output the symbol range = symbol low value - symbol high value subtract symbol low value from encoded number divide encoded number by range until no more symbols 39 40 0

Arithmetic Coding [Decoding] JPEG Joint Photographic Experts Group Decoding 4 42 JPEG. Tahap Persiapan (Preparation Process) Pada tahap ini dilakukan proses membagi citra menjadi blok 8x8 JPEG 2. Tranformasi DCT Transformasi DCT bertujuan mengubah menghitung frekuensifrekuensi pembentuk dari citra blok 8x8 dan memisahkan frekuensi rendah dan frekuensi tinggi dari hasil tranformasi DCT. Transformasi DCT terhadap blok 8x8 dapat dilakukan dengan rumus : DCT ( u, v) =. C( u). C ( v) 4 Dimana : C 7 7 x= 0 y = (2. x + ). u. π (2. y + ). v.. f ( x, y).cos.cos 0 6 6, ( z) = 2, z = 0 z > 0 π 43 44

JPEG JPEG 2. Tranformasi DCT (cont.) Frekuensi >>, Penting << 3. Quantisasi Proses Quantisasi bertujuan untuk menghilangkan nilai-nilai yang tidak penting (dalam hal ini nilai-nilai yang berada pada daerah frekuensi tinggi) pada matrix hasil dari Transformasi DCT. DCT Frekuensi >>, Penting << DCT _ Matrix ( i, j) Quantized _ Value ( i, j) = Quantum _ Matrix ( i, j) 45 46 JPEG JPEG 4. Entropy Encoding 3. Quantisasi (Cont.) Entropy Encoding adalah teknik kompresi yang bersifat lossless. Tahap ini bertujuan untuk mengkompresi matrix hasil quantisasi, bisa menggunakn metode huffman atau RLE Proses Entropy Encoding terhadap hasil quantisasi di atas dengan pembacaan zig-zag : = Hasil encoding jika menggunakan RLE : 326,-6,-7,,-5,,6,,-3, [0,3], -,,[0,2],2,[0,],3, [0,],, [0,],4,,[0,3],,[0,5],4,-4,-2,4,-,[0,2],-,[0,], -, [0,4],- 3,4,,[0,5],2,,[0,7] = 49 byte 47 48 2

Referensi. -,2008,CS3204-Pengolahan Citra, Departement Teknik Informatika- IT Telkom 2. Hendrawan,-, HUFFMAN CODING[online],url: telecom.ee.itb.ac.id/~hend/et504/huffmancoding_09.ppt,itb 3. repository.binus.ac.id/content/t0034/t003446363.ppt 4. Mark,99,Arithmetic Coding + Statistical Modeling = Data Compression[online],url: http://marknelson.us/99/02/0/arithmetic-coding-statisticalmodeling-data-compression/, Tanggal Akses: 2 April 20 5. http://computer.howstuffworks.com/file-compression3.htm 6. http://en.wikipedia.org/wiki/lossy_data_compression 7. http://en.wikipedia.org/wiki/lossless_data_compression 49 3