Andmete pakkimine: erinevus redaktsioonide vahel

Allikas: Vikipeedia
Eemaldatud sisu Lisatud sisu
Eilyre (arutelu | kaastöö)
Resümee puudub
Eilyre (arutelu | kaastöö)
7. rida: 7. rida:
==Liigid==
==Liigid==
Andmeid on võimalik pakkida kahel erineval moel:
Andmeid on võimalik pakkida kahel erineval moel:

Kadudeta pakkimine (Inglise K. ''"lossless compression''")
Kadudega pakkimine (Inglise K. ''"lossy compression"'')
*Kadudeta pakkimine (Inglise K. ''"lossless compression''")
*Kadudega pakkimine (Inglise K. ''"lossy compression"'')

Kadudeta andmete pakkimise korral saavutatakse lahti pakkimisel esialgsed andmed. Kasutatakse seda varianti tavaliselt siis, kui on oluline, et andmed säiliksid nii nagu nad alguses olid. Näiteks teksti pakkimisel.
Kadudeta andmete pakkimise korral saavutatakse lahti pakkimisel esialgsed andmed. Kasutatakse seda varianti tavaliselt siis, kui on oluline, et andmed säiliksid nii nagu nad alguses olid. Näiteks teksti pakkimisel.



Redaktsioon: 9. detsember 2013, kell 01:57

Arvutiteaduses ja informatsiooniteoorias on Andmete pakkimine (ka andmete tihendamine, andmetihendus; bitimäära vähendamine; (Inglise K. "Data compression") on andmete kodeerimine selliselt, et väljundandmed on mälu mahult väiksemad kui sisendandmed. [1] Pakkimist on kahte tüüpi: kadudega või kadudeta. Kadudeta pakkimine vähendab bitimäära läbi selle, et leiab ja elimineerib statistilise liiasuse (Inglise K. "Statistic redundancy"). [2] Statistiline liiasus tähendab bittide hulka, mida kasutati, et sõnumit edastada miinus see bittide hulk, mis hulk informatsiooni selles sõnumis tegelikult oli. Kadudeta pakkimisel informatsiooni ei lähe kaduma. Kadudega pakkimisel leitakse ebavajalik informatsioon ja eemaldatakse see. Kui andmed on pakitud, saab neid andmeid uuesti kasutada ainult siis, kui need kindlad andmed on lahti pakitud. [3]

Pakkimine on vajalik, sest see aitab vähendada ressursikulu, nagu andmete säilitamise ruum või edastusmaht. Kuna andmed peavad olema lahtipakitud, et neid kasutada, on andmete pakkimine arvutusvõimsuse suhtes nõudlik. See tähendab seda, et andmete pakkimine tähendab muude ressursside eraldamist informatsiooni mahu vähendamise nimel. See tähendab seda, et näiteks video vaatamisel võib vaja minna suhteliselt võimsat riistvara, et arvuti suudaks informatsiooni lahti pakkida piisavalt kiiresti, et seda videot ilma probleemideta (puhverdamisvajaduseta) vaadata. Veel on võimalus see video täielikult lahti pakkida enne, kui videot vaatama hakatakse, kuid see vajab rohkem ruumi ja aega. Seega, andmete pakkimise süsteemid tähendavad, et andmete mahu vähendamise nimel ohverdatakse muid resursse, nagu aeg, arvutuslik võimsus ja andmete enda moonutus (kasutades kadudega pakkimist).

Liigid

Andmeid on võimalik pakkida kahel erineval moel:

  • Kadudeta pakkimine (Inglise K. "lossless compression")
  • Kadudega pakkimine (Inglise K. "lossy compression")

Kadudeta andmete pakkimise korral saavutatakse lahti pakkimisel esialgsed andmed. Kasutatakse seda varianti tavaliselt siis, kui on oluline, et andmed säiliksid nii nagu nad alguses olid. Näiteks teksti pakkimisel.

Kadudega andmete pakkimise korral võib originaaliga võrreldes esineda väikeseid erinevusi. Kasutatakse peamiselt graafiliste failide puhul. Tuntuim failiformaat, kus seda kasutatakse on .jpeg. Kui andmed on pakitud kasutades mõnda kadudega andmete pakkimise algoritmi, siis ei ole võimalik taastada sellest kadudeta versiooni.

Kadudeta pakkimine

Kadudeta andmete pakkimise algoritmid tavaliselt kasutavad ära statistilist liiasust, et esitada andmeid sisutihedalt ilma informatsiooni kaotamata. Kadudeta andmetihendus on võimalik, sest enamus päris maailma andmetest sisaldab statistilist liiasust. Näiteks, üks pilt võib endas kanda värvide piirkondi, kus värv ei muutu üle suure hulga pikslite. Selle asemel, et kodeerida "punane piksel asukohal 2000, punane piksel asukohal 2001, ..." võib andmed kodeerida "279 punast pikslit asukohal 2000, 2001, 2002". See on algeline näide RLE (Inglise K. "Run-length encoding") kohta.

Grammatikapõhine pakkimine (Inglise K. "Grammar-based compression") kujutab endas väga efektiivselt väga korduva teksti pakkimist, näiteks bioloogiliste andmete kollektsioon, internetiarhiivid, suure hulga dokumentide kollektsioon jne. Põhiline tööülesanne grammatikapõhisel pakkimisel on leida kontekstivaba korduv osa dokumendis, kustutada see nendest asukohtadest, luua üks koopia dokumendi algusesse ja lisada selle korduva osa asukoht. Näiteks, üks pikk referaat võib endas sisaldada lauset "tiigrite tüüpiline elukoht on" 200 korda. Selle asemel, et seda 208-t baiti iga kord uuesti kirjutada, kustutatakse see igast asukohast, luuakse üks koopia ja selle järgi kirjutatakse selle korduva osa asukoht näiteks nii: ""tiigrite tüüpiline elukoht on" - 2000, 2015, 2090, .." ja selle asemel, et iga kord kasutada 208 baiti, kasutab see ainult 36 baiti.

Kadudega pakkimine

Kadudega pakkimise süsteeme kasutatakse ainult olukordades, kus täielik perfektsus pole nii tähtis. Kaotades mittevajalikkud detailid andmete allikast saab säästa mäluruumi. Kadudega pakkimise algoritmid on ehitatud üles erinevate uurimiste põhjal, kuidas inimene tajub võib märkab kindlat informatsiooni. Näiteks, inimese silm on rohkem tundlik väikestele heleduse muutustele kui värvi muutustele. Selle põhjal saab teha väikeseid kompromisse informatsiooni säilitamise ja andmehulga vähendamise vahel. Mitmed populaarsed pakkimise formaadid kasutavad ära neid väikseid tajumise erinevuseid, nagu näiteks JPEG või muud muusika, piltide või video pakkimise algoritmid.

Kadudega piltide pakkimist saab kasutada digitaalkaamerates, et vähendada mälu kasutust piltide poolt, kuid selle nimel ohverdatakse võimalikult minimaalne hulk pildi kvaliteeti. Sarnaselt, DVD-d kasutavad kadudega MPEG-2 Video pakkimise formaati või "koodeksit" nagu seda kutsutakse heli ja videote pakkimisel. Kadudega heli pakkimisel, psühhoacustika (Inglise K. "psychoacoustics") meetodeid, et eemaldada mitte-kuuldavaid (või vaevu kuuldavaid) komponente kogu andmete hulgast. [4] Inimese kõne pakkimimist tehakse tihti veelgi spetsiaalsemate tehnikatega. Kõne kodeerimine või hääle kodeerimine on tihti eristatud tavalisest heli pakkimisest. Hääle pakkimist kasutatakse näiteks internetitelefonide puhul ja heli pakkimist kasutatakse näiteks CD-d puhul ja helimängijad peavad helifailid lahti pakkima.

Arhiveerimine

Kindlasti tuleks eristada andmete pakkimisest teist tüüpi andmesuuruste vähendamist - arhiveerimist. Kuigi enamus tänapäeval rohkem levinuid pakkimisprogramme lubavad ka arhiveerimist (Näiteks WinZip, WinRar, WinAce, arj, jne.), on need siiski kaks erinevat asja.

Pakkimise on ainult kindla andmehulga tihendamine, mis lubab vähendada selle kindla andmehulga mahtu. Arhiveerimine on mitme erineva andmehulga, vahepeal ka erinevat tüüpi andmehulga, pakkimine üheks failiks (Arhiiviks).

Algoritmid

Kadudeta andmete pakkimisel kasutatavad algoritmid on:

  • DEFLATE
  • RLE
  • GZIP
  • BZIP2
  • LZW
  • JPEG 2000 (Sisaldab endas seda võimalust)

Kadudega andmete pakkimisel kasutatavad algoritmid:

  • MPEG1
  • MPEG2
  • MPEG3
  • MPEG4
  • JPEG
  • MP3
  • DOLBY AC-3

Andmete pakkimise maksimaalsuse saavutamiseks kasutatakse erinevaid algoritme koos.

Kasutusalad

Heli

Heli andmete pakkimist, mida eristatakse dünaamilise raadiuse pakkimisest (Inglise K. "Dynamic range compression"), kasutatakse selleks, et vähendada edastamiseks vajalikku ribalaiust ja ladustamiseks vajalikku mälumahtu. Heli andmete pakkimise algoritme implementeeritakse tarkvarasse ja neid kutsutakse heli koodeksiteks (Inglise K. "Codec"). Kadudega heli andmete pakkimise algoritmid või koodeksid võimaldavad efektiivsemat andmete pakkimist, kuid vähendavad kvaliteeti, ja neid kasutatakse väga paljudes heli rakendustes. Need algoritmid peaaegu kõik tuginevad psühhoakustika uurimustöödele, et vähendada inimesele vähem tajutavad vähem kuuldavad või mittetähenduslikud helid, seega vähendades mäluruumi ja ribalaiuse vajadust ladustamise või edastamise puhul. Nii kadudega kui kadudeta pakkimisel vähendatakse informatsiooni liiasust, kasutades meetodeid nagu kodeerimine, mustri eristamine ja lineaarne ennustamine, et vähendada andmete hulka, et esindada pakkimata informatsiooni[5].

Video

Video andmete pakkimine kasutab tänapäevaseid kodeerimistehnikaid, et vähendada liiasust video andmetes. Enamus video andmete pakkimise algoritme või koodekseid kombineerivad ruumilise pildi pakkimise (Inglise K. "Spatial image compression") ja ajalise liikumise hüvitamise (Inglise K. "Temporal motion compensation"). Enamus video koodekseid kasutab heli pakkimise tehnikaid paralleelselt video pakkimisele, aga andmed on ühendatud üheks hulgaks[6].

Kodeerimise teooria

Video andmeid saab kujutada kui seeriat paigal olevaid pilte (kaadreid). Piltide (Kaadrite) jada sisaldab endas ajalist ja ruumilist liiasust mida video pakkimise algoritmid üritavad elimineerida või kodeerida väiksemasse suurusesse. Sarnasused saab kodeerida näiteks ainult ladustades ainult erinevused kahe järjestikkuse kaadri vahel, või kasutades erinevaid inimese taju iseärasusi. Näiteks, väikeseid värvi erisusi on raskem inimese jaoks tajuda, kui erinevusi heleduses. Pakkimisalgoritmid saavad seetõttu luua mitme järgneva pildi värvide keskmise ja kasutada seda värvi, et vähendada ruumi.

Üks kõige võimsamaid tehnikaid video pakkimiseks on raamiväline pakkimine (Inglise K. "Interframe compression"), kus kasutatakse varasemaid või järgnevaid kaadreid jadas, et pakkida käesolev kaader, kuid raamisisene pakkimine (Inglise K. "Intraframe compression") kasutab ainult käesolevat kaadrit, olles rohkem pildi pakkimine[7].

Raamivälise pakkimise puhul võrreldakse igat kaadrit jadas eelnevaga, et näha, kas on järgneval kaadril alasid, kus midagi ei ole muutunud. Kui selline ala on, siis kopeeritakse see ala lihtsalt eelmiselt pildilt järgnevale. Kui selle ala asukoht on muutunud, siis pööratakse ja liigutatakse eelmisel kaadril olevat ala. See siiski on palju vähem mälumahtu nõudev, kui iga pilt uuesti esitada. Raamiväline pakkimine töötab ideaalselt programmide puhul, mis lihtsalt mängivad video vaatajale[8].

Probleem raamivälise pakkimisega on aga see, et kuna see algoritmkopeerib andmeid ühelt kaadrilt teisele, võib juhtuda olukordi, kus vajalik kaader on kaduma läinud. Nendes olukordades ei ole võimalik konstrueerida järgmiseid kaadreid õigesti.

Vaata ka

Viited

  1. Mahdi, O.A. (2012). "Implementing a Novel Approach an Convert Audio Compression to Text Coding via Hybrid Technique" (PDF). International Journal of Computer Science Issues. 9 (6, No. 3): 53–59. Vaadatud 6. märtsil 2013. {{cite journal}}: eiran tundmatut parameetrit |coauthors=, kasuta parameetrit (|author=) (juhend); eiran tundmatut parameetrit |month= (juhend)
  2. Pujar, J.H. (2010). "A New Lossless Method of Image Compression and Decompression Using Huffman Coding Techniques" (PDF). Journal of Theoretical and Applied Information Technology. 15 (1): 18–23. {{cite journal}}: eiran tundmatut parameetrit |coauthors=, kasuta parameetrit (|author=) (juhend); eiran tundmatut parameetrit |month= (juhend)
  3. Salomon, David (2008). A Concise Introduction to Data Compression. Berlin: Springer. ISBN 9781848000728.
  4. Arcangel, Cory. "On Compression" (PDF). Vaadatud 12. detsembril 2013.
  5. Mahdi, O.A. (2012). "Implementing a Novel Approach an Convert Audio Compression to Text Coding via Hybrid Technique" (PDF). International Journal of Computer Science Issues. 9 (6, No. 3): 53–59. Vaadatud 6. märtsil 2013. {{cite journal}}: eiran tundmatut parameetrit |coauthors=, kasuta parameetrit (|author=) (juhend); eiran tundmatut parameetrit |month= (juhend)
  6. "Video Coding". Center for Signal and Information Processing Research. Georgia Institute of Technology. Vaadatud 12. detsembril 2013.
  7. Faxin Yu, Hao Luo, Zheming Lu (2010). Three-Dimensional Model Analysis and Processing. Berlin: Springer. Lk 47. ISBN 9783642126512.{{cite book}}: CS1 hooldus: mitu nime: autorite loend (link)
  8. Bhojani, D.R. "4.1 Video Compression" (PDF). Hypothesis. Vaadatud 12. detsembril 2013.