Jump to content

Какво е хардуерно ускорение?


Препоръчан пост

Здравейте,моля за точно определение,обяснено просто,като за неук технически човек,какво е хардуерно ускорение,в какво се изразява и въобще всичко което се сетите за него. Google не може да ми помогне,wikipedia също, чуждите ми езици са слаби,ще се радвам на всяко мнение. Имам предвид нали се казва често за някой плейър че ползва хардуерно ускорение,това бих желал да ми се разясни. Благодаря.
Link to comment
Сподели другаде

Под хардуерно ускорение се има предвид възможността дадено действие/изчисление да се извършва от хардуерен компонент вместо от софтуерно приложение посредством централния процесор.

 

По принцип всички изчисления се извършват именно от централния процесор, но е възможно в някои случаи да бъдат извършени от друг хардуерен компонент. Когато се говори за хардуерно ускорение в 99% от случаите се има предвид видео картата. Преди години всички изчисления минаваха през централния процесор, включително и тези за 3D изображенията. Т.е. игрите по него време използваха централния процесор за всички свои изчисления, били те 2D или 3D. Започнаха да се появяват видео карти обаче, които облекчаваха процесора от изчисления, като поемаха част от тях. Затова и се използваха термини и наименования като "3D ускорители". Това беше и причината по-старите игри да предлагат опции в графичните си настройки за избор дали рендерирането да се извършва софтуерно или да се използва харудерно рендериране посредством Glide, OpenGL или Direct3D програмните интерфейси. Ако си на достатъчно години да си спомняш такива игри и ако си ги играл разбира се. Постепенно това ускорение се превърна в стандарт, защото започваха да се появяват все повече и повече игри, които имаха все по-голяма и по-голяма нужда от повече изчисления.

Постепенно обаче компютърът започна да се използва и за възпроизвеждане на видео. Декодирането на видео поток не беше чак толкова тежък процес, но не беше и лек. Затова започнаха да се срещат видео карти с харудерно ускорение на видео декодиране. Т.е. дадената видео карта разполага със специален допълнителен чип, който е проектиран с цел специфични изчисления, които се използват при декодиране на даден видео формат. В началото това беше MPEG-2 видео формата, който се използва (и до днес разбира се) в DVD. Постепенно процесорите започнаха да набират скорост и станаха достатъчно мощни, за да не им е особен проблем да декодират MPEG-2, без това да консумира прекалено много ресурси и да спъва работата на системата като цяло. Разбира се така и не се появи хардуерно декодиране (ускорение) за DivX и Xvid, защото те се използваха почти и само за компресиране и разпространение на филми, т.е. за неща, които индустрията не одобрява. След време обаче започнаха да навлизат както HD (High-definition) стандарта, така и HD DVD и Blu-ray форматите, които домъканаха със себе си нови видео формати, които отново вдигнаха летвата за видео декодиране и натоварваха процесорите доста (особено H.264, който е още известен и като AVC). Затова и отново се прибегна до практиката на хардуерно декодиране от страна на видео картите и в днешно време не може да се намери такава, която да няма т.нар. видео ускорение. Когато се казва, че даден плеър (или видео декодер) поддържа хардуерно ускорение, се има предвид, че се поддържат сътоветните програмни интерфейси, чрез които се извършва комуникацията със съответния чип, който извършва това видео декодиране.

 

Разбира се хардуерното ускорение не е нужно да се ограничава само до видео картата. Звуковите карти също имаха свои си хардуерни ускорения. Преди доста години беше често явление дадена звукова карта да разполага с възможности за хардуерно миксиране на подаваните към нея аудио потоци. С течение на времето обаче все по-малко звукови карти предлагаха подобни възможности, защото ресурсите, нужни за смесването на потоци, ставаха все по-незначителни и по-незначителни на фона на нарастващата мощ на процесорите.

 

По-нагоре споменах, че когато се говори за хардуерно ускорение, в 99% от случаите става въпрос за видео картата. Това е така, защото освен централния процесор, тя е единственият друг компонент с някакви изчислителни възможности, защото разполага със свой (графичен) процесор. Някои звукови карти също разполагат със свои самостоятелни (аудио) процесори, но това са само самостоятелните карти и то почти и само по-скъпите и професионални такива. Но дори и те са на светлинни години от възможностите на съвременните процесори и видео карти. Затова и видео картата вече се използва и за общоизчислителни дейности от някои приложения. Нещо като втори процесор. Разбира се трябва приложението трябва да може да се възползва то тези възможности, защото графичните процесори са доста различни от стандартните централни. Например видео компресиране е дейност, която в днешно време може да бъде поета/ускорена от видео картата. Разбира се видео компресиране не трябва да се бърка с видео декодиране. Първото се използва при конвертиране от един формат в друг, а второто се използва при възпроизвеждане на видео файл (т.е. гледане).

Причината, поради която основно се говори за видео ускорение при декодиране, е защото това е най-нужното нещо в момента. Видео компресията не е толкова често срещана дейност колкото видео възпроизвеждането. Малко хора се занимават да компресират видео файлове, а и е нещо, което не се извършва често. Възпроизвеждането обаче е ежедневие за почти всеки.

 

Надявам се поизясниха нещата.

Link to comment
Сподели другаде

Ако може и аз да се вмъкна в разговора. :)

Например видео компресиране е дейност, която в днешно време може да бъде поета/ускорена от видео картата.

Това "поемане", автоматично ли се прави от картата в случай, че процесора не смогва, или може да й се зададе? С други думи, слага ли се отметка някъде по нейните настройки, да ползва хардуерно ускорение.

 

Казваш, че почти няма карти в днешно време, които да нямат хардуерно ускорение. Но за всеки случай ще попитам - как се означават на английски картите, които го поддържат?

Link to comment
Сподели другаде

По принцип има опции в приложенията дали да използват видео картата за ускорение на процеса на компресиране/конвертиране. Дали са активни по подразбиране зависи от самите приложения. Важно е да се отбележи, че приложенията, които поддържат ускорение от видео картата, са доста малко на брой и не всички от тях поддържат картите на двата основни лагера - NVIDIA и AMD/ATI. Също е важно да се отбележи, че при тези два производителя говорим за GPGPU ускорение при компресиране. GPGPU е съкращение от General-purpose computing on graphics processing units. Т.е. графичните процесори не са проектирани специално за компресиране/кодиране на видео, но понеже все пак предлагат изчислителна мощ, се използват за целта, но с по-различни алгоритми на компресия, защото, както вече споменах, графичните процесори са доста по-различни като архитектура и цели. Споменавам това изрично, защото Intel си имат своя технология за целта - Intel Quick Sync Video, която е специално проектирана както за видео декодиране, така и за видео кодиране (за разлика от NVIDIA и AMD/ATI). Тази технология е въведена за пръв път в Sandy Bridge микроархитектурата, т.е. има я "от Sandy Bridge нагоре", така да се каже. От AnandTech са били така добри да направят сравнение тук. Материалът е вече на над 1 година, така че част от информацията може да не е актуална (като например информацията за приложенията, които поддържат Quick Sync), но все пак е доста показателна.

 

Ами, няма еднозначно означение.

 

За картите на NVIDIA е нужно да поддържат PureVideo. Различните поколения видео карти разполагат с различна версия на PureVideo технологията и като цяло е каша. По принцип PureVideo е налична още от GeForce 6xxx картите, но е в доста по-осакатена версия и макар да предлага някакво ускорение, то не е особено пълно. Същото се отнася и за GeForce 7xxx картите, и за някои от високите модели от 8xxx картите. Доколкото съм наясно (защото не съм имал карта на NVIDIA от доста време), е нужна поне втората версия на PureVideo технологията, за да има някакво смислено хардуерно ускорение. Това значи, че е нужна карта от 8ххх поколението (с изключение на 8800 Ultra, 8800 GTX и 320/640-мегабайтовите версии на 8800 GTS). За справка може да се ползва тази таблица в Wikipedia.

 

За картите на ATI/AMD е нужно да поддържат UVD (Unified Video Decoder или Universal Video Decoder, което е по-старото име). Казано с думи прости: нужно е видео картата да има "HD" в модела.

 

При Intel също е леко объркващо. Нужна е поддръжка на Clear Video технологията. Ако говорим за по-старите им видео карти, които са вградени в северните мостове на дънните платки, то е нужна или GMA X4500HD или GMA 4500MHD (т.е. да има "HD" в името) или някоя от базираните на PowerVR вградени карти. Ако говорим за по-новите им видео карти, които са вградени в самите процесори, то е нужен процесор с "Core" в името - Core i3, i5 или i7. Някои от другите GMA X видео карти също имат някакво ускорение, но не е пълно. За справка - тази таблица в Wikipedia.

 

Добавено: относно последния ти въпрос, говорим за хардуерно ускорение при декодиране/възпроизвеждане и аз имам предвид ускорение на VC-1 и H.264, а не (само) на MPEG-2.

Link to comment
Сподели другаде

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гост
Отговори на тази тема

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   Не можете да качите директно снимка. Качете или добавете изображението от линк (URL)

Loading...
×
×
  • Създай ново...