Andmete pakkimine

**Andmete pakkimine** (ka **andmete tihendamine**, **andmetihendus**) on informaatikas andmete mahu vähendamine. Andmete pakkimine vähendab andmete edastamise ja salvestamise kulusid. Andmeid tihendatakse kindla reeglistiku alusel digitaalsignaaliks kodeerimise teel, misläbi andmete maht väheneb. Andmemahu vähendamist digiteerimisel nimetatakse ka säästkodeerimiseks.

Kodeeritud andmete kasutamiseks tuleb need lahti pakkida ehk dekodeerida, s.t esialgsele kujule tagasi teisendada. Andmete kodeerimine ja dekodeerimine nõuab spetsiaalset tark- või riistvara, näiteks koodekite näol.

Pakkimist on kahte põhitüüpi: kadudega ja kadudeta.

## Kadudeta tihendamine

Kadudeta andmetihenduse korral vähendatakse andmemahtu statistilise liiasuse leidmise ja kõrvaldamise teel. Korduvalt esinevad andmelõigud saab esitatada ühe koodiga. Näiteks kui pildil on järjest mitu sama värvi pikslit, siis saab selle pildi osa kodeerida kui "279 punast pikslit" selle asemel, et kodeerida iga piksli värv eraldi. Tekstidokumendis võib luua korduvatest osadest ühe koopia ja lisada selle koopia lõppu iga asukoht, kus see osa dokumendis kordus.

Kadudeta andmetihendust tuleb kasutada juhul, kui on oluline andmete säilimine algsel kujul, näiteks programmid ja tekst.

Kadudeta tihendamisel on bittide sääst siiski tagasihoidlik, näiteks audiosignaali korral kahekordne.

## Kadudega tihendamine
Teatud andmete, näiteks piltide ja heli pakkimisel võib mõningane andmekadu olla aktsepteeritav. Kadudega tihendamisel leitakse tarbetu või vähemoluline informatsioon ja eemaldatakse see signaalist. Paratamatult ei ole niiviisi kodeeritud andmetest enam võimalik algsel kujul taastada.
 
Kadudega andmetihenduse algoritmide väljatöötamisel kasutatakse muuhulgas ära inimese kuulmis- ja nägemistaju iseärasusi. Näiteks on inimese silm rohkem tundlik väikestele heleduse muutustele kui värvi muutustele. Selle põhjal saab bitte kokku hoida väikeste värvimuutuste arvel.

Fotode kadudega pakkimist kasutatakse digikaamerates mälu säästmiseks. Sealjuures püütakse ohverdada võimalikult vähe pildi kvaliteeti. Samamoodi kasutavad DVD-d kadudega videopakkimise vormingut MPEG-2.

### Audiotihendus
Kodeerimiseks töödeldakse audiosignaali mitmel moel:
* vähendatakse helisignaali dünaamikaulatust, mis tähendab valjude helide vaigistamist ja vaiksete helide valjemaks tegemist, tulemusena vajab kodeerimine vähem bitte;
* lõigatakse ära kuuldamatud sagedused üle 20&nbsp;kHz (seega ülemtoonid) ja jäetakse ära kuuldelävest allapoole jäävad signaalikomponendid;
* kõrgetel ja madalatel helisagedustel kasutatakse lühemat koodisõna, sest nendel sagedustel on kõrva tundlikkus väiksem;
* jäetakse kodeerimata signaaliosad, mis maskeerimisnähtuse tõttu mattuvad suure amplituudiga signaalikomponentide alla.

Salvestatavat andmemahtu saab kokku hoida ka sel teel, et pakkimistihedus seatakse sõltuvusse helimaterjali keerukusest, s.t kasutatakse muutuva tihedusega andmevoogu. Sel juhul on kodeerimisel helikvaliteet püsiv.

### Videotihendus
Videoandmeid on vaja tugevasti tihendada selleks, et näiteks digitaalset televisioonisignaali oleks võimalik olemasolevate kanalite kaudu üle kanda. Tihendamata digitaalse telesignaali ülekandmiseks on tarvis andmeedastuskiirust umbes 250&nbsp;Mbit/s (tavatelevisiooni ühe kaadri (pildi) edastamiseks läheb vaja 576×720×3 = 1 244 160 baiti (piksli iga värvi R, G, B jaoks 1 bait), vastavalt 1,244 MB; seega sekundis 25×1,244 = 31 MB ehk 31×8 = 249&nbsp;Mbit/s).

Edastatava info mahtu vähendatakse kõigepealt videosignaali digiteerimisel. Nimelt kasutatakse nägemistaju omadust hinnata kuva teravust peamiselt heleduse järgi ja vähemal määral värvide järgi. See võimaldab kasutada kaadrisisest tihendamist: näiteks kasutatakse digiteerimisel värvisignaalikomponentide (U ja V) kvantimisel poole väiksemat sagedust kui heledussignaali (Y) puhul – kui heledusnäidud võetakse sagedusega 13,5&nbsp;MHz, siis värvinäidud sagedusega 6,75&nbsp;MHz; vastava süsteemi tähis on 4:2:2 (Y:U:V).

Digitaalsignaali tihendamisel hoitakse ülekantavat andmemahtu kokku peamiselt kaadritevahelise tihendamise teel, mille puhul kodeeritakse perioodiliselt võtmekaadrid, aga neile järgnevates kaadrites üksnes pildierinevused. Järjestikuseid kaadreid analüüsides jätab protsessor üle kandmata selle osa infost, mis jääb kaadris eelmisega võrreldes samaks.
 
Tulemusena on võimalik edastatava videovoo mahtu vähendada kuni 200-kordselt. Nii osutub võimalikuks ühe UHF-raadiokanali kaudu edastada kuni 14 tavalahutusega või kolme kõrglahutusega teleprogrammi. Nagu kõikides kadudega tihendamise süsteemides, leitakse siingi kompromiss video kvaliteedi, edastustrakti maksumuse ja tehniliste võimaluste vahel.

Kuna kaadritevahelisel pakkimisel kopeeritakse andmeid ühelt kaadrilt teisele, siis võib juhtuda olukordi, kus võtmekaader läheb kaduma. Sel juhul aga ei ole võimalik järgmisi kaadreid õigesti moodustada ja signaaliedastus on häiritud.

## Tihenduslgoritmid
Kadudeta andmete pakkimisel kasutatavaid algoritme:
* DEFLATE
* RLE
* gzip
* bzip2
* LZW
* JPEG 2000
* FLAC

Kadudega andmepakkimisel kasutatavaid algoritme:
* MPEG-1
* MPEG-2
* MPEG-3
* MPEG-4
* JPEG (sisaldab ka kadudeta andmetihendamise võimalust)
* MP3
* Dolby AC-3

## Viited