Testissä videonkäsittely näytönohjaimen avustuksella

Kaarlo Räihä
19. tammikuuta, 2009 19:07

Johdanto


Viime vuosien aikana näytönohjaimien tarjoamat ominaisuudet ovat monipuolistuneet nopealla vauhdilla, jonka johdosta näytönohjaimilla voi käyttää muuhunkin kuin pelkkään pelaamiseen tai 3D-mallinnukseen.
Nykyään näytönohjaimien tarjoaman laskentatehon voi valjastaa esim. salasanojen murtamiseen, lääketieteelliseen laskentaan ja videoiden käsittelyyn.
Näytönohjaimien tarjoamaa laskentatehoa ei voi kuitenkaan hyödyntää automaattisesti ohjelmissa, vaan ohjelmiin pitää lisätä erikseen ohjelmakoodia ja tuki sopivalle rajapinnalle, jonka kautta näytönohjaimien tarjoamaa laskentatehoa pääsee hyödyntämään. Nykyään rajapinnoista suosituin on NVIDIA:n CUDA, jota tuetaan virallisesti NVIDIA:n omissa näytönohjaimissa. Muita tarjolla olevia rajapintoja ovat ATI:n kehittämä Stream, joulukuussa 1.0-version saavuttanut OpenCL ja Microsoftin DirectX 11:n mukana tuoma Compute Shader -tuki.

Ohjelmat


Allekirjoittanut päätti tutustua paremmin CUDA:n tuomiin hyötyihin videonkäsittelyssä, koska CUDA-tuki löytyy nykyään valmiina mm. TMPGEnc 4.0 XPress- ja PowerDirector-ohjelmista.
Tarkoituksena oli selvittää se, kuinka paljon CUDA nopeuttaa videoiden pakkausta ja se, että häviääkö näytönohjaimen avulla käsitellyn videon laatu pelkästään suorittimella käsitellyn videon laadulle, kuten ATI:n ja NVIDIA:n tarjoamien oletusohjelmien kanssa voi käydä.
TMPGEnc 4.0 XPress -ohjelmassa CUDA:a hyödynnetään MPEG-1- ja MPEG-2-videodatan purkamisessa ja tiettyjen videosuotimien laskemisessa. Täten CUDA:sta ei ole hyötyä kaikissa mahdollisissa tilanteissa, mutta ohjelman CUDA-tukea on tarkoitus laajentaa tulevaisuudessa, joten toivottavasti TMPGEnc 4.0 XPress saa jatkossa lisää hyötyä CUDA:n tarjoamasta laskentatehosta. Nykyisellään videonkäsittely nopeutuu PEGASYS Inc. -yrityksen antamien tietojen mukaan parhaimmillaan tietyissä tapauksissa noin 800 prosenttia, kun koneesta löytyy CUDA-rajapintaa tukeva näytönohjain.
CyberLink julkaisi PowerDirector-ohjelmasta uuden version CES-messujen kynnyksellä, josta löytyy tuki sekä CUDA:lle että Streamille. PowerDirectorissa näytönohjaimen laskentatehoa hyödynnetään suotimien laskennan ohella myös videon pakkaamisessa H.264/AVC-muotoon. Allekirjoittanut asettikin PowerDirectorin CUDA-tuelle suuret ennakko-odotukset.
Kummassakaan ohjelmassa CUDA-tuki ei ole oletuksena päällä, vaan se pitää ottaa erikseen käyttöön. TMPGEnc 4.0 XPress -ohjelmassa tämä onnistuu valitsemalla CUDA-tuen päälle ja käynnistämällä ohjelman uudelleen. PowerDirector-ohjelmassa pitää puolestaan valita valikoista tuki suotimien CUDA-laskennalle ja H.264/AVC-pakkauksen yhteydessä valita GPU-pakkaaja käyttöön.

TMPGEnc 4.0 XPressin CUDA-tuki efekteille ja videoiden purkamiselle

PowerDirectorin CUDA-tuki efekteille

PowerDirectorin CUDA-tuki H-264/AVC-videon pakkaamiselle
Kaksikkoa vastaan asettui avoimen lähdekoodin AVIdemux-ohjelma, joka ei osaa hyödyntää näytönohjaimen tarjoamia ominaisuuksia, mutta sen avulla saadaan jonkinlaista vertailukohtaa kuvanlaadun osalta, kun videot pakataan monien suosimalla x264-enkooderilla.

Testausmenetelmät


Testaukseen käytetään W6RZ-sivustolta löytyvää Sony HDW-F900 footage -videota, jolla on kestoa 2 minuuttia ja 6 sekuntia. Video on MPEG-2-muodossa 1080p-resoluutiolla ja se on tallennettu Transport Stream -säiliöformaattiin. Videodatan bitrate nousee parhaillaan 30 Mbps asti ja keskiarvollinen bitrate on puolestaan 18 Mbps, joten videon pitäisi rasittaa ohjelmia tarpeeksi ja se toimii myös hyvänä vertailukohtana monien parempien digitaalisten videokameroiden tuottamille tiedostoille.
Testivideo pakataan kaikilla ohjelmilla H.264/AVC-muotoon sekä ilman CUDA-avusteita että avusteiden kera (AVIdemuxin kanssa CUDA ei luonnollisesti ole mukana). Ensimmäisenä kohteena on nettilevitystä varten tehtävä 720p-resoluution video, joka pakataan 2 pass variable bitrate -asetuksella. Keskiarvoiseksi bitrateksi asetettiin kaikissa ohjelmissa 3 000 kbps, muuten asetukset ovat oletusasetuksia videon osalta. Audion bitrateksi asetettiin 64 kbps.

TMPGEnc 4.0 XPressin 720p-pakkausasetukset

PowerDirectorin 720p-pakkausasetukset

AVIdemuxin 720p-pakkausasetukset
Toisena kohteena oli iPhoneja ja iPod toucheja varten tehty versio, jossa resoluutioksi valittiin 640x360 ja pakkausmetodiksi 1 pass constant bitrate -asetus (bitrate 1 000). Audion bitrateksi asetettiin 64 kbps.

TMPGEnc 4.0 XPressin iPhone-pakkausasetukset

AVIdemuxin iPhone-pakkausasetukset
Valitettavasti PowerDirectorin kanssa H.264/AVC-videota ei saa tallennettua MP4-tiedostoon, vaan ainoastaan m2ts-tiedostoiksi. Tämän vuoksi videoraita irrotettiin m2ts-tiedostosta mencoder-ohjelmalla, jonka jälkeen se laitettiin MP4-tiedostoon MP4box-ohjelman avustuksella. PowerDirectorin resoluution valinta on myös erittäin rajoittunut, jonka takia iPhone/iPod touch -tiedostoa ei ohjelmalla tehty lainkaan. Ohjelma ei osannut myöskään tuottaa AAC-ääniraitaa m2ts-tiedostoon, joten myös se puuttuu lopullisista tiedostoista. Ohjelma sotki myös videon kuvasuhteen, vaikka sitä yritettiin vielä pakottaa erikseen 16:9-tilaan.
Molemmat käännökset testattiin kaikissa ohjelmissa ilman suotimia ja värejä korjaavan Color Correction -suotimen kera. Eri ohjelmien ajat eivät ole keskenään vertailukelpoisia, koska ohjelmien H.264/AVC-pakkaus on toteutettu eri kirjastoilla ja myös suotimet ovat toteutettu eri tavalla, jonka johdosta ohjelmista ulos tulevat tiedostot ovat erilaisia. Suotimen kanssa on kuitenkin helppo tarkistella kuinka paljon sen käyttäminen hidastaa pakkausta kyseisen ohjelman kohdalla.
Operaatiot suoritettiin Windows Vista SP1 -käyttöjärjestelmän omaavalla tietokoneella, josta löytyy 1,6 GHz kellotaajuudella toimiva kaksiytiminen Intel Pentium Dual E2140 -suoritin, 2 gigatavua keskusmuistia ja Club 3D:n valmistama Geforce 9600GT -näytönohjain. Näytönohjaimen ajurina toimi NVIDIA:n Forceware 181.20-ajuri. TMPGEnc 4.0 XPress -ohjelmasta käytössä oli 4.6.3.268-versio, PowerDirectorista käytössä oli 7.0.2416a-versio ja AVIdemuxista käytössä oli 2.4.3-versio (r4494), jossa käytettiin x264-pakkauskirjaston r1080-julkaisua.
Pakkaukseen kulunut aika mitattiin sekuntikellon avulla.

Testitulokset


720p ilman suodinta

OhjelmaAika ilman CUDA:aAika CUDA:n kanssaCUDA:n tuoma hyöty
TMPGEnc 4.0 XPress 16 min 16 sek 15 min 17 sek 59 sek
PowerDirector 4 min 54 sek 3 min 51 sek 1 min 3 sek
AVIdemux 11 min 10 sek--

720p suotimen kanssa
OhjelmaAika ilman CUDA:aAika CUDA:n kanssa
CUDA:n tuoma hyöty
TMPGEnc 4.0 XPress 25 min 22 sek 16 min 15 sek 9 min 7 sek
PowerDirector 6 min 2 sek 4 min 59 sek 1 min 3 sek
AVIdemux 11 min 18 sek - -

iPhone ilman suodinta
OhjelmaAika ilman CUDA:aAika CUDA:n kanssaCUDA:n tuoma hyöty
TMPGEnc 4.0 XPress 3 min 44 sek 3 min 54 sek -10 sek
AVIdemux 2 min 34 sek - -

iPhone suotimen kanssa
OhjelmaAika ilman CUDA:aAika CUDA:n kanssaCUDA:n tuoma hyöty
TMPGEnc 4.0 XPress 8 min 26 sek 5 min 56 sek 2 min 30 sek
AVIdemux 2 min 36 sek--

Videotiedostot (MP4-muodossa)
TMPGEnc 4.0 XPress 720p ilman CUDA:n apua
TMPGEnc 4.0 XPress 720p CUDA:n kanssa
PowerDirector 720p ilman CUDA:n apua
PowerDirector 720p CUDA:n kanssa
AVIdemux 720p
TMPGEnc 4.0 XPress iPhone ilman CUDA:n apua
TMPGEnc 4.0 XPress iPhone CUDA:n kanssa
AVIdemux iPhone
Kuvankaappauksia (720p)
(klikkaamaalla kuvaa näet täysikokoisen PNG-kuvan)

TMPGEnc 4.0 XPress 720p 33 sekunnin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress 720p 33 sekunnin kohdalta (CUDA:n kanssa)

PowerDirector 720p 33 sekunnin kohdalta (ilman CUDA:a)

PowerDirector 720p 33 sekunnin kohdalta (CUDA:n kanssa)

AVIdemux 720p 33 sekunnin kohdalta


TMPGEnc 4.0 XPress 720p minuutin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress 720p minuutin kohdalta (CUDA:n kanssa)

PowerDirector 720p minuutin kohdalta (ilman CUDA:a)

PowerDirector 720p minuutin kohdalta (CUDA:n kanssa)

AVIdemux 720p minuutin kohdalta


TMPGEnc 4.0 XPress 720p 90 sekunnin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress 720p 90 sekunnin kohdalta (CUDA:n kanssa)

PowerDirector 720p 90 sekunnin kohdalta (ilman CUDA:a)

PowerDirector 720p 90 sekunnin kohdalta (CUDA:n kanssa)

AVIdemux 720p 90 sekunnin kohdalta
Kuvankaappauksia (iPhone)
(klikkaamaalla kuvaa näet täysikokoisen PNG-kuvan)

TMPGEnc 4.0 XPress iPhone 33 sekunnin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress iPhone 33 sekunnin kohdalta (CUDA:n kanssa)

AVIdemux iPhone 33 sekunnin kohdalta

TMPGEnc 4.0 XPress iPhone minuutin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress iPhone minuutin kohdalta (CUDA:n kanssa)

AVIdemux iPhone minuutin kohdalta

TMPGEnc 4.0 XPress iPhone 90 sekunnin kohdalta (ilman CUDA:a)

TMPGEnc 4.0 XPress iPhone 90 sekunnin kohdalta (CUDA:n kanssa)

AVIdemux iPhone 90 sekunnin kohdalta

Yhteenveto


TMPGEnc 4.0 XPressin kohdalla CUDA:n tarjoama laskentateho auttoi erityisesti suodinta käyttäessä, kuten TMPGEncin omat testit ennakoivatkin. CUDA:n käyttö ei vaikuttanut XPressin kohdalla kuvanlaatuun, joten CUDA:a voi pitää huoletta päällä kyseisen ohjelman kanssa. Tietyissä tilanteissa CUDA kuitenkin hidastaa pakkausta hieman, joten omien videoiden kohdalla kannattaa tehdä muutama pakkaustesti ennen kuin asetuksen ottaa pysyvästi käyttöön.
PowerDirectorin kanssa CUDA:n käyttö vaihtoi käytettäviä pakkausasetuksia selvästi, sillä CUDA:n kanssa pakkausprofiili vaihtui toiseen, jonka seurauksena CUDA:n tuottama tiedosto on melkein kolme megatavua suurempi. Kuvanlaatu on myös hieman parempi CUDA:n kanssa pakatulla videolla, mutta ilmiö johtunee korkeammasta bitratesta ja toisesta profiilista, eikä varsinaisesta näytönohjaimen avusta. CUDA:n kanssa video pakkautui kuitenkin selvästi nopeammin, joten PowerDirectorin kanssa CUDA kannattaa pitää käytössä.
PowerDirectorin tuottamat videot häviävät kuitenkin kuvanlaadun osalta selvästi TMPGEnc 4.0 XPressin ja AVIdemuxin tuottamille videoille. PowerDirector pakkaa siis videot vauhdilla, mutta valitettavasti lopputulos ei ole kuvanlaadun kannalta paras mahdollinen. Ohjelman rajoittuneet säätöoptiot ja ongelmat kuvasuhteen kanssa eivät myöskään jätä hyvää kuvaa ohjelman toiminnasta.
Kuvanlaadun osalta AVIdemuxin kanssa käytetty x264 tuottaa ainakin allekirjoittaneen mielestä selvästi parhaan lopputuloksen. Toivottavasti x264 saa tulevaisuudessa apua näytönohjaimen laskentatehosta, jotta videoita voidaan vastaisuudessa pakata entistä vauhdikkaammin.

Lue myös nämä
Käytämme evästeitä sivuillamme. Näin parannamme palveluamme.