Portál AbcLinuxu, 10. května 2025 17:21
V době dnešních výkonů cpu a gpu je hw dekodér k ničemu.Ámen.
Bohužel velká část výrobců notebooků vybavuje BIOSy whitelistem povolených karet – ten ale jde u mnoha modelů zablokovat, případně nějak ošidit.Tohle je zásadní a největší problém Crystal HD. Doporučuji všem zájemcům vyzkoušet ve svém notebooku nějakou "cizí" kartu než si pořídíte Crystal HD. Problémy lze očekávat u Lenova, HP, Dellu a dost dalších značek. Konkrétně, co se týče novějších (2010+) modelů Lenova, nepomůže nic než patchnutý BIOS. Nějaké zalepování pinů, vypínání slotů, přehazování karet a podobně nemá žádný efekt (vlastní zkušenost).
Spíš než spešl dekodér bych zkoumal nějaký DSP, který bude umět třeba i kódovat.Quicksync u některých procesorů Intel. AMD chystá něco podobného (bude to v grafikách, a zřejmě také v příší generaci procesorů Fusion). Ovšem kvalitou jsou takové dekodéry jenom šidítka. Kdybych s tím zenkódoval nějakej fansub, tak internet vyleze ze zásuvky a nakope mi zadek.
Spíš si myslím, že celkový přínos HW dekoderu je nulový, né-li záporný.Trošku fyziky: Nejnáročnější část u frekvenčně-kompresních algoritmů je právě převod z frekvenční domény do časové. Všelijaké kvantování a strukturování a MC a podobně je většinou brnkačka, protože to jde provést způsoby ALU blízkými (bitové posuny, bitové operace, vybrání z polí, atd.), ne však iD(F/C)T. Ve své čisté podobě je to hodně sinů a hodně cosinů a už takový cosinus se implementuje v číslicových strojích dost blbě, ne jejich série (ve skutečnosti dnešní úrovni předcházela spousta matematického hackingu). DSP pokud již nemají přímo dedikované obvody pro takové akce se aspoň to snaží nějak řešit. Z toho důvodu, pokud to není úplný křáp, tak varianta DSP + spící CPU musí vždy vyjít lépe než cokoliv jiného (i z pohledu spotřeby). Pokud ne, je někde chyba, ale není to chyba fyzikální, ale implementační. Osobně tuto variantu Ďolasovi velmi schvaluji. Nedělat to tak je jako třeba pouštět si do digitálního monitoru signál skrze VGA – jde to, ale podobně jako pan Monk u toho mám vždycky takový divný tik v oku.
H.264 ale neužívá standardní (i)DCT, nedělá to ani mpeg2.Vím jen, že AVC to má rozšířeno o jinou eventuální transformaci, ale jinak to slyším prvně. Tak co teda?
Mpeg2 definoval určitý rozsah, do kterého se musí aproximace použitá dekodérem/enkodérem vejít a hotovo, udělejte si to jak chcete (libavcodec má těch algoritmů přes deset)Tak ± kvantizace koeficientů (fixed/float). Nic v tom smyslu, že by si mohl dekodér dovolit různě interpretovat koeficienty.
Tuším se to někdy dokonce označovalo jako "HCT".Nebude to Hadamard?
loopfilterNo jo, na ten jsem zapomněl. Ale jinak stejný problém.
2012-01-05 00:27:57 < Dark_Shikari> The H.264 Cosine Transform is often referred to as the "dct", but it isn't quite the same thing (it's much simpler, and require no multiplications).
2012-01-05 00:29:32 < Dark_Shikari> Basically it's a fast dct approximation that results in improperly scaled output -- which gets corrected later as part of quantization/dequantization.
Vývojář to doufejme ví dobře :)
Subjektivně mi přišlo hardwarově dekomprimované video stejně kvalitní jako při softwarové dekompresiKdyby ne, pak by se zařízení nemohlo pyšnit podporou formátů MPEG, ale nějakých jejich podmnožin. MPEG standard nepředepisuje kodér (kvůli možnosti vylepšování), ovšem dekodér dle tohoto standardu musí vždycky dávat přesně na bit stejný výsledek jinak nesplňuje požadavky MPEG standardu (malé deviace jako zaokrouhlování tolerovány).
Subjektivně mi přišlo hardwarově dekomprimované video stejně kvalitní jako při softwarové dekompresi, nicméně autor libcrystalhd mě upozornil, že hardware dodává výstup v yuyv422, namísto yuv420.YUV422 má větší chrominační rozlišení než YUV420, převod YUV420 -> YUV422 ničemu nevadí, protože by měl být bezeztrátový.
To neznamená, že by „read-back“ z karty byl nemožný, ale FFmpeg to prostě teď nepodporuje.Krom jiného by to bylo jako šťárat se levou nohou v pravém uchu.
Na serveru potřebuji komprimovat v reálném čase televizní vysílání tak, aby se vešlo do uploadu mé VDSL2 linky, který činí 2 Mbit/s.Z Ďolase se stal mediální magnát?
Zde je nutné podotknout, že Crystal HD nebude stíhat dekódování vyšší rychlostí než 1× – nejde tedy použít jako zázračně rychlý dekodér, dekódovat bude jen „přehrávací“ rychlostí.Řešením by bylo použít nějaké DSP od TI (přecijen mají delší tradici). Některé výkonnější by dost možná zvládlo i dekódovaní + kódování na místě (mají menší buffer, ale jinak stejně používají sdílený prostor s GPP). Nicméně uvádění do chodu Broadcomu oproti TI DSP je ještě procházka růžovým sadem (i se všemi zde zmíněnými problémy).
Z Ďolase se stal mediální magnát?Když jsem u rodičů, tak se nechci koukat na Novu
Krom jiného by to bylo jako šťárat se levou nohou v pravém uchu.Prostě se jen snažím využít to, co je, aniž bych musel dokupovat nový procesor, a tudíž i základní desku a paměti.
Když jsem u rodičů, tak se nechci koukat na NovuJsem si to myslel. A nepomůže ani kvalitní zesilovač k parabole?
rostě se jen snažím využít to, co je, aniž bych musel dokupovat nový procesor, a tudíž i základní desku a paměti.Nevím, ale není VDPAU prezentační vrstva? Co vím tak zrovna s přímím zapisováním na adresy grafického portu to nikdy nebyla moc sranda (muselo se čekat na cykly) nebude to stejně i s VDPAU? DSP se to podšoupne a výsledek přecijen někde po cestě vyklopí. Jinými slovy nechci říct, že by to nešlo, ale nebude to podobné jako se zmiňovaným dvojím převodem v případě VGA? (Tedy levá noha, pravé ucho)
Jsem si to myslel. A nepomůže ani kvalitní zesilovač k parabole?No, rodiče bydlí 200km daleko, to si spíš pořídím mobilní parabolu
Nevím, ale není VDPAU prezentační vrstva? Co vím tak zrovna s přímím zapisováním na adresy grafického portu to nikdy nebyla moc sranda (muselo se čekat na cykly) nebude to stejně i s VDPAU?Čuně VLC to tak ale teď dělá... pošle H264 do grafiky, přečte zpátky raw video a to zase zpátky zapíše do grafiky. Je to na pár facek, ale je to důkazem toho, že se VDPAU dá využít čistě k dekódování bez zobrazování.
Starší MPEGy definují odchylku do které se musíte vejít (jediná ne-exaktní část procesu je však DCT/iDCT). H.264 je celé exaktní - jakákoliv odchylka od referenčního dekodéru znamená vadnou implementaci (tedy kromě lahůdek jako že referenční dekodér prý nezvládá některé části high 4:4:4 predictive profilu protože je v něm neopravená chyba... holt to nikdo nepoužívá tak se na to kašle).Subjektivně mi přišlo hardwarově dekomprimované video stejně kvalitní jako při softwarové dekompresiKdyby ne, pak by se zařízení nemohlo pyšnit podporou formátů MPEG, ale nějakých jejich podmnožin. MPEG standard nepředepisuje kodér (kvůli možnosti vylepšování), ovšem dekodér dle tohoto standardu musí vždycky dávat přesně na bit stejný výsledek jinak nesplňuje požadavky MPEG standardu (malé deviace jako zaokrouhlování tolerovány).
Kompilace pravděpodobně selže na souboru crystalhd_flea_ddr.c – stačí na jeho začátek připsat tento řádek a už se to povede.Jo, na to je dobré alespoň uvést commit, na kterém jsi to testoval. Co když v gitu někdo ještě stihne něco pokazit :).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.