Abstract: | V diplomskem delu smo razvili in implementirali algoritem za stiskanje avdia v časovni domeni brez izgub. Algoritem je zasnovan tako, da bo na podlagi ocene frekvence, temelječe na številu lokalnih ekstremov avdiosignala, prilagodil kodiranje ocenjenim visokofrekvenčnim ali nizkofrekvenčnim intervalom. Kot možne prilagoditve smo preučevali prileganje avdiosignala daljicam in kvadratnim Bézierovim krivuljam ter stiskanje s slovarjem, prvo v lastni implementaciji, slednje v zunanjem programu. Preostanke, ki jih predstavljajo odstopanja avdiosignala od daljice ali krivulje, zapišemo s kodiranjem delta in stisnemo z prilagodljivim binarnim zaporednim kodiranjem. Zaznali smo razliko v deležih rabe krivulj in daljic v nizkofrekvenčnih in visokofrekvenčnih intervalih, vendar ta ni dovolj signifikantna, da bi bilo tovrstno ločevanje intervalov smiselno pri sedanji zasnovi algoritma.
V uvodnem poglavju izpostavimo izziv, ki ga predstavlja nižja stopnja stiskanja visokofrekvenčnih odsekov avdia, ki jo obstoječi brezizgubni algoritmi dosegajo v primerjavi z učinkovitosti stiskanja nižjefrekvenčnih odsekov. Vprašamo se, ali je naš algoritem lahko že v osnovi konkurenčen obstoječim metodam brezizgubnega stiskanja avdia, kako postaviti prag med visokofrekvenčnimi in nizkofrekvenčnimi odseki ter kako bi takšno razlikovanje lahko prispevalo uspešnejšemu stiskanju.
V drugem poglavju opišemo teoretično ozadje naloge.
V tretjem poglavju predstavimo lastno metodo, ki za razliko od drugih metod brezizgubnega stiskanja avdia ne napoveduje posameznega vzorca iz množice predhodnih vzorcev, ampak napove več vzorcev hkrati s čim optimalnejšo izbiro prilegajoče krivulje ali daljice iz danega nabora. Kot krivulje uporabimo kvadratne Bézierove krivulje, ki jih opišemo s tremi kontrolnimi točkami in preostanki, pri čemer moramo sredinsko kontrolno točko predhodno še izračunati. Izkazalo se je, da je bolj racionalno izhajati iz razlik med zaporednimi vzorci, torej iz kodiranja delta, kot iz samih vzorcev. Ob navedenih posebnostih naše metode smo tudi ugotovili, da je za kodiranje entropije preostankov bolje uporabiti prilagodljivo binarno zaporedno kodiranje namesto Riceovega kodiranja, ki ga uporabljajo drugi algoritmi brezizgubnega stiskanja avdia. Ločeno podpoglavje je namenjeno tudi poskusom določanja praga med visokofrekvenčnimi in nizkofrekvenčnimi intervali ter eksperimentiranju z drugačnimi pristopi stiskanja enih in drugih, kar pa ob trenutni zasnovi algoritma ni pomembno vplivalo na stopnjo stiskanja. V zaključku poglavja opišemo tudi posebnosti implementacije in uporabniški vmesnik konzolne aplikacije.
V četrtem poglavju opišemo testno okolje in analiziramo rezultate testiranj. Najprej preizkusimo vpliv dolžine odsekov, ki jih modeliramo s krivuljami in daljicami, na čas obdelave in na stopnjo stiskanja. Ugotovimo, da se v večini primerov uporabljajo za aproksimacijo avdiosignala krajše daljice. Nato primerjamo rezultate stiskanja testnega nabora avdioposnetkov, dosežene z našo metodo, s kodirnikom FLAC in stiskanjem s slovarjem. Poskus ponovimo v enosekundnih intervalih s polsekundnim prekrivanjem, pri čemer smo iskali morebitne prednosti stiskanja s slovarjem. Naša metoda se izkaže za primerljivo z obstoječimi brezizgubnimi avdiokodeki, saj že v zgodnji fazi razvoja dosega le 10-40 % slabše rezultate. Časi dekodiranja povsem zadoščajo zahtevam realnočasovnega predvajanja, časi kodiranja pa so zaradi reševanja optimizacijskega problema izbire dolžin krivulj in daljic pričakovano slabši kot v obstoječih metodah. Zaenkrat nismo potrdili smiselnosti razlikovanja med nizkofrekvenčnimi in visokofrekvenčnimi intervali na podlagi števila lokalnih ekstremov avdiosignala v časovnem oknu, saj je to število močno zaznamovano s šumom in vsebnostjo časovno zakasnelih nižjefrekvenčnih komponent. |
---|