Prima che l'HD fosse una cosa, le CPU potevano gestire facilmente la decodifica video. Quando l'HD è diventato popolare circa 8 anni fa, i produttori di GPU hanno iniziato a implementare la decodifica video accelerata nei loro chip. È possibile trovare facilmente schede grafiche commercializzate come supporto di video HD e alcuni altri slogan. Oggi qualsiasi GPU supporta video accelerati, anche GPU integrate come Intel HD Graphics o i loro predecessori, Intel GMA. Senza quell'aggiunta la tua CPU avrebbe difficoltà a cercare di digerire video 1080p con framerate accettabile, per non parlare di un aumento del consumo di energia. Quindi stai già utilizzando video accelerati ogni giorno.
Ora, quando le GPU hanno sempre più potere di calcolo generale, sono ampiamente utilizzate anche per accelerare l'elaborazione video. Questa tendenza è iniziata nello stesso periodo in cui è stata introdotta la decodifica accelerata. Programmi come Badaboom hanno iniziato a guadagnare popolarità in quanto si è scoperto che le GPU sono molto meglio nella (ri) codifica dei video rispetto alle CPU. Non si poteva fare prima, però, perché le GPU mancavano di capacità computazionali generiche.
Ma le GPU potrebbero già ridimensionare, ruotare e trasformare le immagini dal Medioevo, quindi perché non siamo stati in grado di utilizzare queste funzionalità per l'elaborazione video? Bene, queste funzionalità non sono mai state implementate per essere utilizzate in questo modo, quindi non erano ottimali per vari motivi.
Quando programmate un gioco, caricate prima tutta la grafica, gli effetti, ecc. Sulla GPU, quindi riproducete semplicemente poligoni e mappate gli oggetti appropriati su di essi. Non è necessario inviare trame ogni volta che sono necessarie, è possibile caricarle e riutilizzarle. Quando si tratta di elaborazione video, è necessario alimentare costantemente i frame nella GPU, elaborarli e recuperarli per ricodificarli sulla CPU (ricordate, stiamo parlando di tempi pre-computazionali-GPU). Non era così che le GPU dovevano funzionare, quindi le prestazioni non erano eccezionali.
Un'altra cosa è che le GPU non sono orientate alla qualità quando si tratta di trasformazioni di immagini. Quando giochi a una velocità superiore a 40 fps, non noterai davvero lievi false dichiarazioni di pixel. Anche se lo facessi, la grafica del gioco non era abbastanza dettagliata da interessare alla gente. Esistono vari hack e trucchi utilizzati per accelerare il rendering che possono influire leggermente sulla qualità. I video vengono riprodotti anche con framerate piuttosto elevati, quindi è accettabile ridimensionarli dinamicamente durante la riproduzione, ma la ricodifica o il rendering devono produrre risultati perfetti per i pixel o almeno il più vicino possibile a costi ragionevoli. Ciò non è possibile senza le funzionalità appropriate implementate direttamente nella GPU.
Oggigiorno l'uso delle GPU per elaborare i video è abbastanza comune perché abbiamo richiesto la tecnologia in atto. Perché non è la scelta predefinita è piuttosto una domanda per l'editore del programma, non per noi: è la loro scelta. Forse credono che i loro clienti siano orientati all'hardware per elaborare i video sulla CPU, quindi il passaggio alla GPU influirà negativamente sulle prestazioni, ma è solo una mia ipotesi. Un'altra possibilità è che trattano ancora il rendering GPU come funzionalità sperimentale che non è abbastanza stabile da impostarlo come predefinito. Non vuoi perdere ore a rendere il tuo video solo per rendersi conto che qualcosa è rovinato a causa di un bug di rendering della GPU. Se decidi di utilizzarlo comunque, non puoi incolpare l'editore del software: è stata una tua decisione.