Zanim HD było czymś, procesory z łatwością radziły sobie z dekodowaniem wideo. Kiedy HD stało się popularne około 8 lat temu, producenci układów GPU zaczęli wdrażać przyspieszone dekodowanie wideo w swoich układach scalonych. Możesz łatwo znaleźć karty graficzne sprzedawane jako obsługujące filmy HD i niektóre inne hasła. Obecnie każdy procesor graficzny obsługuje przyspieszone wideo, nawet zintegrowane układy graficzne, takie jak Intel HD Graphics lub ich poprzednicy, Intel GMA. Bez tego dodatku procesor miałby trudności z trawieniem wideo 1080p z akceptowalną liczbą klatek na sekundę, nie mówiąc już o zwiększonym zużyciu energii. Więc już używasz przyspieszonego wideo na co dzień.
Teraz, gdy procesory graficzne mają coraz bardziej powszechne wykorzystanie mocy obliczeniowej, są one również szeroko stosowane do przyspieszenia przetwarzania wideo. Trend ten rozpoczął się mniej więcej w tym samym czasie, gdy wprowadzono przyspieszone dekodowanie. Programy takie jak Badaboom zaczęły zyskiwać na popularności, ponieważ okazało się, że procesory graficzne są znacznie lepsze w (re) kodowaniu wideo niż procesory. Nie można tego jednak zrobić wcześniej, ponieważ procesorom graficznym brakowało ogólnych zdolności obliczeniowych.
Ale procesory graficzne mogły już skalować, obracać i przekształcać zdjęcia od średniowiecza, więc dlaczego nie byliśmy w stanie wykorzystać tych funkcji do przetwarzania wideo? Cóż, te funkcje nigdy nie zostały zaimplementowane, aby mogły być używane w taki sposób, więc z różnych powodów były nieoptymalne.
Podczas programowania gry najpierw przesyłasz wszystkie grafiki, efekty itp. Do GPU, a następnie renderujesz wielokąty i mapujesz na nich odpowiednie obiekty. Nie musisz wysyłać tekstur za każdym razem, gdy są potrzebne, możesz je załadować i użyć ponownie. Jeśli chodzi o przetwarzanie wideo, musisz stale przesyłać ramki do GPU, przetwarzać je i pobierać z powrotem, aby ponownie zakodować je na CPU (pamiętaj, mówimy o czasach przed obliczeniowych GPU). Nie tak powinny działać GPU, więc wydajność nie była świetna.
Inną sprawą jest to, że procesory graficzne nie są zorientowane na jakość, jeśli chodzi o transformację obrazu. Kiedy grasz w grę z prędkością 40+ fps, tak naprawdę nie zauważysz niewielkich fałszywych informacji o pikselach. Nawet jeśli chcesz, grafika gry nie była wystarczająco szczegółowa, aby ludzie mogli się tym przejmować. Istnieją różne sztuczki i sztuczki używane do przyspieszenia renderowania, które mogą nieznacznie wpłynąć na jakość. Filmy są również odtwarzane z dość dużą liczbą klatek na sekundę, więc skalowanie ich dynamicznie podczas odtwarzania jest dopuszczalne, ale ponowne kodowanie lub renderowanie musi dawać wyniki, które są idealnie w pikselach lub przynajmniej tak zbliżone, jak to możliwe, przy rozsądnych kosztach. Nie można tego osiągnąć bez odpowiednich funkcji zaimplementowanych bezpośrednio w GPU.
W dzisiejszych czasach używanie procesorów graficznych do przetwarzania filmów jest dość powszechne, ponieważ potrzebujemy technologii. Dlaczego nie jest to domyślny wybór, jest raczej pytaniem do wydawcy programu, a nie do nas - to ich wybór. Być może uważają, że ich klienci mają sprzętowo zorientowane na przetwarzanie filmów wideo na procesorze, więc przejście na GPU negatywnie wpłynie na wydajność, ale tak sądzę. Inną możliwością jest to, że nadal traktują renderowanie GPU jako funkcję eksperymentalną, która nie jest wystarczająco stabilna, aby ustawić ją jako domyślną. Nie chcesz tracić godzin na renderowanie wideo, aby zdać sobie sprawę, że coś jest nie tak z powodu błędu renderowania GPU. Jeśli mimo to zdecydujesz się go użyć, nie możesz winić wydawcy oprogramowania - to była twoja decyzja.