Diit.cz - Novinky a informace o hardware, software a internetu

Zpoždění (lag) při živém sledování

AVerMedia DarkCrystal HD Capture SDK II - HDMI konektory
V minulém díle jsme si představili kartu AVerMedia DarkCrystal HD Capture SDK II a jak jsme slíbili, ukážeme si výsledky grabování z HDMI a popovídáme si o několika úskalích tohoto produktu…

Pokusili jsme se změřit zpoždění obrazu při jeho živém sledování, protože už pouhým okem jsme zaznamenali takovou prodlevu, s jakou je občas potíž se korektně trefit myší na správné tlačítko či jiný prvek na obrazovce (možná jste si toho na videích sami všimli, že uživatel jakoby nemá myš pevně v rukou, jako by před tím cosi požil ;-).

Faktem je, že do celkové prodlevy vstoupilo poměrně hodně faktorů. Počítač, ve kterém byla AVerMedia karta, byl připojený k monitoru HP LP2475w, který sám o sobě nějaké zpoždění udělá. Když jsme z grafiky Radeon HD 2900 XT vyvedli dva VGA (RGB) výstupy s tím, že jeden jsme zapojili právě do LCD HP a druhý do starého dobrého Trinitron CRT monitoru IBM P202 a na obou nastavili stejné rozlišení a frekvenci 60 Hz, pak pokud bychom uvažovali, že měla karta oba výstupy perfektně sesynchronizované, pak zpoždění našeho běžně používaného LCD HP LP2475w činilo oproti CRT IBM P202 přibližně 2 snímky. Zkoumali jsme to pomocí vytvořených videí o patřičné snímkové frekvenci, kde každý snímek obsahuje své číslo, a oba monitory vedle sebe jsme točili mobilem Samsung Wave, který umí v omezeném rozlišení (320×240) točit při 120 fps (jde o režim Pomalý pohyb). Pokud jsme tedy nastavili frekvenci zobrazování právě 60 Hz a pustili jsme 60fps video, pak každý snímek pasoval přesně na poslaný frame do obou monitorů. Video se opakuje pořád dokola, ovšem na konci (snímek s číslem 600) se na chvilku zasekne, takže podle toho to není dobré měřit. Zkuste si video na různých místech zastavovat.

Tím jsme změřili, jak dlouho trvá, než počítač s grafikou dostane svůj obraz před oči uživatele, konkrétně na LCD monitoru HP LP2475w, který používáme. V tomto případě postačí, když to zaokrouhlíme na 2 snímky při 60 fps (což je zhruba 0,033 sekundy).

Stačí tedy zapojit VGA výstup do CRT monitoru, HDMI do AVerMedia karty a opět VGA z počítače do LCD monitoru a změřit rozdíl. Jenže ouha. Poměr stran 16:9 není u CRT monitorů zrovna běžnou záležitostí, navíc IBM P202 umí max. 1600×1200, ale ne 1920×1080. A jako na potvoru se grafice nechtělo posílat do CRT monitoru 1600×1200 při 60 Hz, aby to bylo aspoň srovnatelné s 1600×1200 při 30 Hz, které šly přes HDMI do AVerMedia karty. Podařilo se nám tedy poslat do CRT monitoru 1600×1200 při 75 Hz a přes HDMI do AVerMedia karty rovněž 1600×1200, ovšem při 30 Hz. Tady už si neděláme moc iluze, že by časování snímků bylo přesné, to při jejich rozdílném počtu za sekundu ani nejde, ale zkusíme to v našem primitivním měření považovat za zanedbatelnou odchylku. Přehrávali jsme tentokráte 30fps video (aby to sedělo hlavně na HDMI), výsledek můžete vidět na další ukázce:

Tady už jsme dali dohromady rozdíl až 4 snímků, ovšem při 30 Hz, přepočteno na 60 Hz je to 8 snímků. Odečtěme dva snímky, které udělá přechod z počítače s AVerMedia kartou do LCD monitoru a máme lag 6 snímků při 60 Hz, což je rovná jedna desetina sekundy neboli 100 ms, jak chcete. Může se to zdát málo, ale ono je to docela dost, to už zkrátka při běžné práci poznáte. Zejména když budete používat LCD monitor s vlastním nezanedbatelným lagem, tak se to samozřejmě bude sčítat.

Každopádně s touto kartou se nabízí vyloženě efektivní a velice přesné zjištění lagu úplně jinou metodou. Počítání snímků je poměrně nepřesné, protože pracujeme s bídnými 30 snímky za sekundu. Takhle kdyby jich bylo víc, to by bylo o jiné přesnosti. Přitom ve videu existují prvky, které se dají počítat na tisíce za sekundu, dokonce desetitisíce. Pořád ještě nevíte?

Zvuk. Ten má totiž vzorkovací frekvenci třeba i 48 kHz. A proti čemu ho budeme porovnávat? Bigno! Proti sobě samému. My totiž můžeme HDMI výstup počítače propojit kabelem s HDMI vstupem AVerMedia karty. Nastavíme klonování obrazu (abychom ho také na druhém monitoru viděli, protože když nepřipojíte žádný další monitor, obraz bude uvnitř počítače jen běhat dokola jak Pešek a zabloudí ;-) a budeme nahrávat sami sebe. Spustíme velice krátké pípnutí (kratší než předpokládaný lag) a budeme ho zaznamenávat.

Co se stane? Počítač pípne a pošle to skrz HDMI do AVerMedia karty. Ta to zpracuje a protože software, kterým se video zachytává, také přehrává to, co z HDMI dostane, prostě to pípnutí přehraje znovu - samozřejmě opět do HDMI, takže zvuk se zacyklí. Abychom zbytečně nechytli zpětnou vazbu, bude potřeba nastavit hlasitos trochu níž (buďto nastavíme nižší hlasitost všeho, nebo jen zachytávacího softwaru, to je jedno). Bohužel při živém sledování nahrávání ten zvuk neuslyšíme, protože bude kolovat útrobami počítače přes HDMI, ale to nevadí, bude v zaznamenaném videu. Zvuk z něj vyextrahujeme a v nějakém audio editoru změříme, jak daleko jsou obě pípnutí od sebe. Dostaneme lag s přesností na 1/48000 sekundy ;-).

A kolik nám to vyšlo?

Vyšlo nám to 67 ms. Chcete to přesněji? 3 229 vzorků, což je při 48 kHz nějakých 67,270833 ms. Každopádně při 60 snímcích za sekundu by to byly zhruba 4 snímky. Je to zajímavé, ale ze 100 milisekund jsme se najednou dostali na 67 (a tedy ze 6 snímků na 4). Sami se rozhodněte, co vám připadá blíže realitě. Každopádně nemá cenu si hrát moc na přesnost, když je kolem spousta faktorů, které měření ovlivňují. Mimochodem: když jsme zkusili rozdíl jiných dvou pípů za sebou v zaznamenaném videu, dostali jsme na bajt přesně totéž.

Nakonec koho vlastně lag zajímá? Inu, zajímat to bude určitě hráče her, kteří by si chtěli svůj zážitek touto cestou zaznamenat, avšak nemají jinou možnost výstupu než HDMI. Pro ně je tato metoda záznamu nepoužitelná pro hry náročné na reakci hráče. Aby se uživatel tomuto velkému lagu vyhnul, musí si připojit grafiku na další monitor a klonovat obraz.

Pokud však potřebujete zaznamenat nějakou scénu, na jejíž obsah máte co do rychlosti zanedbatelný vliv, pak vám tato karta postačí. A pokud potřebujete dělat jen screenshoty, tak není vůbec co řešit.

Ať tak, či onak, zapojení počítače do sebe sama by byl hřích nevyužít na nějakou tu legrácku. Samozřejmě je potřeba nezapomenout na klonování obrazu na vnější monitor (když nepřipojíte žádný další monitor, obraz bude uvnitř počítače jen běhat dokola jak Pešek a zabloudí, což by nevadilo tolik jako fakt, že ho neuvidíte ;-).

Mimochodem toto video bylo zaznamenáváno jako MPEG-2 (a ještě navíc prokládaně, proto je i ve FullHD trochu rozmazané, YouTube si však s prokládaným videem poradilo), a to kvůli snížení nároku na kódování pomocí CPU. Jestli jsme to ještě neřekli, tak videa při záznamku touto kartou kóduje procesor v PC, karta bohužel hardwarový kodér nemá. Obrázek o zátěži CPU jste si mohli udělat z právě zhlédnuté ukázky, kde byl zobrazen měřič zatížení vláken procesoru ve Správci úloh.

WIFT "WIFT" WIFT

Bývalý dlouholetý redaktor internetového magazínu CDR-Server / Deep in IT, který se věnoval psaní článků o IT a souvisejících věcech téměř od založení CD-R serveru. Od roku 2014 už psaní článků fakticky pověsil na hřebík.

více článků, blogů a informací o autorovi

Diskuse ke článku Grabujeme z HDMI s AVerMedia DarkCrystal HD Capture SDK II (2. část)

Pondělí, 21 Květen 2012 - 21:21 | Duck Daffy | Existuje. :) Např. capture karty od Blackmagic....
Neděle, 20 Květen 2012 - 22:08 | WIFT | To bych asi musel nejprve ten raw stream...
Neděle, 20 Květen 2012 - 13:22 | danieel | Treba si to nechal rozdelit do segmentu podle...
Neděle, 20 Květen 2012 - 13:03 | WIFT | Co máš konkrétně na mysli? Takový hardware by mě...
Pátek, 18 Květen 2012 - 21:52 | danieel | Kdyz zminujete problemy teto karty.. byl by...

Zobrazit diskusi