A software architecture for high-performance video processing
No Thumbnail Available
Journal Title
Journal ISSN
Volume Title
School of Science |
Master's thesis
Checking the digitized thesis and permission for publishing
Instructions for the author
Instructions for the author
Author
Date
2010
Department
Informaatio- ja luonnontieteiden tiedekunta
Major/Subject
Ohjelmistotekniikka
Mcode
T-106
Degree programme
Language
en
Pages
66
Series
Abstract
The subject of this thesis is the study of high performance video processing with a new software framework for modern parallel computers. The main goal of the framework is to efficiently use parallel computing resources in demanding video processing applications for television broadcast production systems. The framework enables easy development of video processing systems through rapid prototyping on general purpose computers while simultaneously provides solid foundation for building complex video processing applications. Real-time digital video processing is computationally very demanding and traditionally requires specialized custom video processing hardware. The recent emergence of multi-core processors and programmable graphics processing units has brought great performance potential for software based video processing. However, current video processing software for this heterogeneous computing environment is still lacking behind, and does not scale when more parallel computing resources are made available. In order to solve this, I propose a new software architecture that implements filter graph based framework for video processing similar to existing multimedia frameworks, but with parallel execution model. It is scalable and high performance while using only standard CPU and GPU components. The framework and its video processing component library can be used with high-level scripting languages to make applications development easier and faster. It has a collection of various processing elements, which can be connected as a complex filter graph that has explicit coarse grain parallel execution model based on data flow driven execution. I will explain how dynamic real-time execution scheduler can do parallel and efficient execution of those filter graphs. Last part of this thesis provides tests results of a prototype system made to verify system scalability and efficiency. These results show that our system has good scalability and can run with over five times performance on an eight core computer when compared to a single threaded execution. I have also compared GPU and multi-core CPU processing and in my video processing benchmark a single GPU can run 4 - 20 times faster than CPU only solution depending on how many processing threads are used. The framework can flexibly mix both GPU and CPU processing elements to get benefit of both and exploits both fine-grain and coarse-grain parallelism that is often available in video processing applications.Tässä diplomityössä olen tutkinut videonkäsittelyssä käytettävää ohjelmistoarkkitehtuuria ja kehittänyt ohjelmistoalustan korkeaa suorituskykyä vaativille televisiontuotantojärjestelmille käyttäen moderneja rinnakkaisia tietokoneita. Ohjelmistoalusta mahdollistaa nopean prototyyppien kehityksen yleisesti saatavilla olevilla tietokoneilla ja samalla tarjoaa tehokkaan rungon monimutkaisten videonkäsittelyohjelmistojen kehittämiseen. Reaaliaikainen videonkäsittely on laskennallisesti vaativaa ja perinteiset järjestelmät käyttävät usein erikoislaitteita videonkäsittelyyn. Ohjelmoitavien grafiikka- ja moniydinsuorittimien viimeaikainen kehitys tarjoaa runsaasti suorituskykyä ohjelmistopohjaiseen videonkäsittelyyn, mikä mahdollistaa korkean suorituskyvyn rinnakkaislaskennan. Kuitenkaan nykyiset ohjelmistot eivät kykene tehokkaasti käyttämään näitä rinnakkaisia järjestelmiä. Esittelen uuden ohjelmistoarkkitehtuurin rinnakkaiseen videonkäsittelyyn, mikä hyödyntää aikaisemmissa multimedia-alustoissa käytettyjä suodatingraafeja, mutta lisäksi laajentaa niitä rinnakkaisella prosessointimenetelmällä. Tämä uusi järjestelmämme on skaalautuva ja kykenee tehokkaasti käyttämään sekä moniydinsuorittimia että grafiikkasuorittimia. Videonkäsittelykomponenttikirjastoamme ja ohjelmistoalustaamme on mahdollista käyttää myös korkeantason ohjelmointikielillä, mikä tarjoaa helpomman ja nopeamman tavan kehittää sovelluksia. Komponentteja voi helposti yhdistää toisiinsa ja näin rakentaa laajoja modulaarisia järjestelmiä. Järjestelmällä muodostetaan suodatingraafeja, jotka kuvaavat tietovuota videonkäsittelyprosesseissa. Näitä graafeja voi prosessoida hyödyntäen tietovuolaskennan menetelmiä. Lisäksi esittelen miten nämä graafit voi ajoittaa ja tosiaikaisesti suorittaa tehokkaasti rinnakkaistietokoneilla. Lopuksi esittelen tuloksia esittelemäni järjestelmän prototyypillä tehdyistä testeistä, joilla mittaan järjestelmän tehokkuutta ja skaalautuvuutta. Testattaessa kahdeksan suoritinytimenjärjestelmällä tulokset osoittavat, että järjestelmä kykenee toimimaan monisäikeistettynä yli viisinkertaistella suorituskyvyllä verrattuna vain yhteen prosessointisäikeeseen. Vertailen myös grafiikka- ja moniydinsuorittimien suorituskykyä, missä testissäni yksi grafiikkasuoritin on 4 - 20 kertaa tehokkaampi kuin moniydinsuoritin riippuen käytettyjen prosessointisäikeiden määrästä. Esittelemäni järjestelmä kykenee käyttämään sekä grafiikka- että moniydinsuorittimia ja pystyy näin hyödyntämään videonkäsittelyssä usein ilmenevää monimuotoista rinnakkaisuutta tehokkaasti.Description
Supervisor
Soisalon-Soininen, EljasThesis advisor
Suontama, VesaKeywords
parallel processing, rinnakkaislaskenta, video processing, videokäsittely, software architecture, ohjelmistoarkkitehtuuri,