dilluns, de gener 07, 2008

Video Acceleration API, l'evolució de XvMC i... el futur del vídeo en alta definició a Linux?

Ufff, quin munt de coses rares que he posat al títol, no?, jajaja, bé doncs anem a pams. Fa un parell de dies em va agafar aquella mania que m'agafa de fer-me un PC a peces a veure quan em costaria. Primer em vaig marcar l'objectiu que hauria de tenir el PC en qüestió, que fos capaç de reproduir vídeo en alta definició verdadera, es a dir 1080p, codificat en AVC (o h.264 o mpeg-4 Part 10 o com coi lo vulgueu dir). El problema bàsic, aquest algorisme de codificació necessita una gran capacitat de calcul. En les seves primeres especificacions que vaig veure fa molt de temps parlaven de la necessitat de tenir com a requisits mínims per descodificar un vídeo 480p un Pentium 4 a 1,5 Ghz, per un vídeo 720p un Pentium 4 a 2,4 Ghz i per un vídeo 1080p un Pentium 4 a 3 Ghz. Però després d'un temps tractant amb l'AVC puc dir que aquestes especificacions són molt mínimes. El processador del meu PC actual és un Pentium 4 a 1,7 Ghz i només pot reproduir mig bé vídeo 480p en AVC on no hi hagi molt moviment. El del meu portàtil és un Pentium M a 1,86 Ghz (Equival a un Pentium 4 a 3,1 ~ 3,3 Ghz, aprox.) no és capaç de reproduir vídeo 1080p en AVC amb fluïdesa.

Sembla que els processadors més nous ja són capaços de reproduir l'AVC amb fluïdesa, però necessiten un gran percentatge de CPU per aconseguir-ho, per això s'està renovant la solució que es va aplicar quan va aparèixer el DVD per alliberar a la CPU d'aquesta carrega, passar-li tota o gran part a la targeta gràfica. Part de les noves targes gràfiques d'ATI i d'nVidia ja incorporen la descodificació completa per hardware del AVC. Clar, tot això és molt maco per els usuaris de Windows, però els usuaris d'altres sistemes no ho tenim tant senzill.

L'XvMC(X-Video Motion Compensation) és una extensió del servidor d'X que permet la descodificació de vídeo en MPEG2 per hardware en aquells controladors gràfics que ho permeten. Va néixer, segurament per la necessitat de descodificar DVD's sense fer patir la CPU. Actualment quasi ni s'utilitza crec que per dues raons:

  • Les CPU's actuals són prou potents com per descodificar DVD's sense utilitzar un gran percentatge de la seva capacitat.
  • El poc suport entre els controladors gràfics. Només el suporten Intel, nVidia en els controladors propietaris i VIA en algunes targetes.
Actualment ens trobem amb un problema similar al d'aquells temps. Tenim un codec que fa patir molt la CPU i que fins hi tot en CPU's relativament noves no es capaç d'aconseguir el seu màxim objectiu, reproduir vídeo en alta definició real. Com ja he dit abans, tant ATI com nVidia ja han provat de posar solució això i ja suporten la descodificació per hardware. Però clar, com també he dit, només per Windows.

Per aconseguir-ho a Linux i principalment per part d'Intel, des de fa uns mesos es va decidir renovar l'antic XvMC per aconseguir accelerar la descodificació d'altres codecs a més del MPEG2 i s'ha reanomenat a VA API (Video Acceleration API). Això està molt bé, però hi ha un problema, i per això hi és l'interrogant al títol de l'entrada, de moment només està pensat per els controladors d'Intel, i fins on sé, els xips gràfics d'Intel de moment no tenen acceleració completa d'AVC (encara que sí que tenen parts de MPEG-4 que serien d'utilitat). nVidia ja ha dit que de moment no te pensament de suportar-ho i ATI mai ha suportat ni tant sols en els controladors propietaris el XVMC. Però esperem que ATI, aprofitant el seu acostament al software lliure i Linux des de que forma part d'AMD, canvii d'opinió. I és que sí el segon punt no desapareix, difícilment tot això servirà de gaire.

Sento ser tant negatiu amb el tema, que és molt interessant, però les perspectives no són gaire positives. De totes formes espero que ho poguem veure molt aviat dins del servidor d'X juntament amb el també molt esperat, pels usuaris de controladors lliures, Redirected direct rendering.

Cap comentari:

Publica un comentari a l'entrada