Audio Compression: A Web-API Optimized Coder Design
2016 (English)Independent thesis Advanced level (professional degree), 20 credits / 30 HE credits
Student thesis
Abstract [en]
The goal of this thesis was to design a web implemented audio codec with the help of JavaScript and WebGL. The idea was to use the computers graphic processor unit (GPU) for heavy computations through WebGL. The performance was then evaluated on a limited set of systems.The codec structure is based on the existing G.719 codec which is briefly explained. Additionally a custom low complex vector quantizer was implemented instead of the existing one in G.719. The coder was adjusted to take advantage of WebWorkers and the parallelization of WebGL.The final coder works in real time on all tested systems and produces satisfactory audio, even though a slight performance difference can be seen in favour for Chrome over Firefox.It was found that WebGL is a really powerful tool but is costly to use. It is especially resource heavy to read the values from the GPU, it is obvious that WebGL wasn't implemented for that kind of use. An extra layer of difficulty is also added by the fact that values can only be sent and retrieved from WebGL as 8-bit values, this needs to be worked around since 8-bits are not enough for high quality audio.WebWorkers were found to be a good middle ground where the main tools of JavaScript exists while being able to perform heavy calculations without blocking the main script. This bodes well for the future when AudioWorkers are implemented. The suggestion is to wait for them and then evaluate their performance. The currently implemented coder will likely be easily converted when that happens.
Place, publisher, year, edition, pages
2016.
Keywords [en]
Technology
Keywords [sv]
Teknik, JavaScript, Audio codec, FFT, Fast Fourier Transfrom, AudioWorker, WebWorker, Chrome, Firefox, Audio compression, compression, optimized, WebGL, GPU, codec, G.719, Discrete Cosine Transform, Modified Discrete Cosine Transform, SNR, Vector quantizer, Web Audio, Ericsson, windowing, API, canvas, texture, DCT, MDCT
Identifiers
URN: urn:nbn:se:ltu:diva-42492Local ID: 07fca1aa-5197-4e1c-9a57-25e4fd711f6bOAI: oai:DiVA.org:ltu-42492DiVA, id: diva2:1015714
External cooperation
Subject / course
Student thesis, at least 30 credits
Educational program
Engineering Physics and Electrical Engineering, master's level
Supervisors
Examiners
Note
Validerat; 20160522 (global_studentproject_submitter)
2016-10-042016-10-04Bibliographically approved