Andmete pakkimine: erinevus redaktsioonide vahel

resümee puudub
Resümee puudub
Resümee puudub
{{ToimetaAeg|kuu=september|aasta=2012}}
 
[[informaatika|Arvutiteaduses]] ja [[informatsiooniteooria|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. <ref>{{cite journal|last=Mahdi|first=O.A.|coauthors=Mohammed, M.A.; Mohamed, A.J.|title=Implementing a Novel Approach an Convert Audio Compression to Text Coding via Hybrid Technique|journal=International Journal of Computer Science Issues|year=2012|month=November|volume=9|issue=6, No. 3|pages=53–59|url=http://ijcsi.org/papers/IJCSI-9-6-3-53-59.pdf|accessdate=6 March 2013}}</ref> 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"''). <ref>{{cite journal|last=Pujar|first=J.H.|coauthors=Kadlaskar, L.M.|title=A New Lossless Method of Image Compression and Decompression Using Huffman Coding Techniques|journal=Journal of Theoretical and Applied Information Technology|year=2010|month=May|volume=15|issue=1|pages=18–23|url=http://www.jatit.org/volumes/research-papers/Vol15No1/3Vol15No1.pdf}}</ref> 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. <ref>{{cite book|last=Salomon|first=David|title=A Concise Introduction to Data Compression|year=2008|publisher=Springer|location=Berlin|isbn=9781848000728}}</ref>
 
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 [[Algoritm|algoritmi]], siis ei ole võimalik taastada sellest kadudeta versiooni.
 
==Kadudeta pakkimine==
 
Kadudeta andmete pakkimise [[Algoritm|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 [[Algoritm|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 [[Algoritm|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. <ref>{{cite web|last=Arcangel|first=Cory|title=On Compression|url=http://www.coryarcangel.com/downloads/Cory-Arcangel-OnC.pdf|accessdate=612 MarchDecember 2013}}</ref> 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==
 
==Algoritmid==
Kadudeta andmete pakkimisel kasutatavad [[Algoritm|algoritmid]] on:
 
*DEFLATE
*JPEG 2000 (Sisaldab endas seda võimalust)
 
Kadudega andmete pakkimisel kasutatavad [[Algoritm|algoritmid]]:
 
*MPEG1
*DOLBY AC-3
 
Andmete pakkimise maksimaalsuse saavutamiseks kasutatakse erinevaid [[Algoritm|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 [[Ribalaius|ribalaiust]] ja ladustamiseks vajalikku mälumahtu. Heli andmete pakkimise [[Algoritm|algoritme]] implementeeritakse tarkvarasse ja neid kutsutakse heli koodeksiteks (Inglise K. ''"Codec"''). Kadudega heli andmete pakkimise [[Algoritm|algoritmid]] või koodeksid võimaldavad efektiivsemat andmete pakkimist, kuid vähendavad kvaliteeti, ja neid kasutatakse väga paljudes heli rakendustes. Need [[Algoritm|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 [[Ribalaius|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<ref>{{cite journal|last=Mahdi|first=O.A.|coauthors=Mohammed, M.A.; Mohamed, A.J.|title=Implementing a Novel Approach an Convert Audio Compression to Text Coding via Hybrid Technique|journal=International Journal of Computer Science Issues|year=2012|month=November|volume=9|issue=6, No. 3|pages=53–59|url=http://ijcsi.org/papers/IJCSI-9-6-3-53-59.pdf|accessdate=6 March 2013}}</ref>.
 
=== Video ===
 
Video andmete pakkimine kasutab tänapäevaseid kodeerimistehnikaid, et vähendada liiasust video andmetes. Enamus video andmete pakkimise [[Algoritm|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<ref>{{cite web|title=Video Coding|url=http://csip.ece.gatech.edu/drupal7/?q=technical-area/video-coding|work=Center for Signal and Information Processing Research|publisher=Georgia Institute of Technology|accessdate=612 MarchDecember 2013}}</ref>.
 
=== Kodeerimise teooria ===
 
Video andmeid saab kujutada kui seeriat paigal olevaid pilte (kaadreid). Piltide (Kaadrite) jada sisaldab endas ajalist ja ruumilist liiasust mida video pakkimise [[Algoritm|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|kaader]], kuid raamisisene pakkimine (Inglise K. ''"Intraframe compression"'') kasutab ainult käesolevat kaadrit, olles rohkem pildi pakkimine<ref>{{cite book|last=Faxin Yu, Hao Luo, Zheming Lu|title=Three-Dimensional Model Analysis and Processing|year=2010|publisher=Springer|location=Berlin|isbn=9783642126512|page=47}}</ref>.
 
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<ref>{{cite web|last=Bhojani|first=D.R.|title=4.1 Video Compression|url=http://shodh.inflibnet.ac.in/bitstream/123456789/821/5/05_hypothesis.pdf|work=Hypothesis|accessdate=612 MarchDecember 2013}}</ref>.
 
Probleem raamivälise pakkimisega on aga see, et kuna see [[Algoritm|algoritm ]]kopeerib andmeid ühelt kaadrilt teisele, võib juhtuda olukordi, kus vajalik [[kaader|kaader]] on kaduma läinud. Nendes olukordades ei ole võimalik konstrueerida järgmiseid kaadreid õigesti.
 
== Vaata ka ==
 
*[[MJPEG]]
*[[Kodeerimine]]
 
== Viited ==
36

muudatust