abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:22 | IT novinky

    Amazon Web Services (AWS) oznámil (en) výstavbu Fastnetu – strategického transatlantického optického kabelu, který propojí americký stát Maryland s irským hrabstvím Cork a zajistí rychlý a spolehlivý přenos cloudových služeb a AI přes Atlantik. Fastnet je odpovědí na rostoucí poptávku po rychlém a spolehlivém přenosu dat mezi kontinenty. Systém byl navržen s ohledem na rostoucí provoz související s rozvojem umělé inteligence a

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 15:11 | IT novinky

    Evropská komise zkoumá možnosti, jak přinutit členské státy Evropské unie, aby ze svých telekomunikačních sítí postupně vyloučily čínské dodavatele Huawei a ZTE. Místopředsedkyně EK Henna Virkkunenová chce změnit doporučení nepoužívat rizikové dodavatele při budování mobilních sítí z roku 2020 v právně závazný požadavek.

    Ladislav Hagara | Komentářů: 6
    dnes 12:44 | Bezpečnostní upozornění

    sudo-rs, tj. sudo a su přepsané do programovacího jazyka Rust, již obsaženo v Ubuntu 25.10, bylo vydáno ve verzi 0.2.10. Opraveny jsou 2 bezpečnostní chyby.

    Ladislav Hagara | Komentářů: 1
    dnes 12:22 | IT novinky Ladislav Hagara | Komentářů: 2
    dnes 11:55 | Zajímavý software

    Společnost Avalonia UI oznámila, že pracuje na .NET MAUI pro Linux a webový prohlížeč. Vyzkoušet lze demo v prohlížeči. Když bude backend stabilní, bude vydán jako open source pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    včera 16:44 | Nová verze

    Byl vydán Mozilla Firefox 145.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Ukončena byla podpora 32bitového Firefoxu pro Linux. Přidána byla podpora Matrosky. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 145 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 13:33 | IT novinky

    Lidé.cz (Wikipedie) jsou zpět jako sociální síť s "ambicí stát se místem pro kultivované debaty a bezpečným online prostředím".

    Ladislav Hagara | Komentářů: 45
    včera 10:33 | Nová verze

    Byla vydána nová verze 4.4 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    včera 04:00 | IT novinky

    ASUS má v nabídce komplexní řešení pro vývoj a nasazení AI: kompaktní stolní AI superpočítač ASUS Ascent GX10 poháněný superčipem NVIDIA GB10 Grace Blackwell a platformou NVIDIA DGX Spark. S operačním systémem NVIDIA DGX založeném na Ubuntu.

    Ladislav Hagara | Komentářů: 5
    včera 03:11 | Nová verze

    Desktopové prostredie Trinity Desktop vyšlo vo verzii R14.1.5. Je tu opravená chyba v tqt komponente spôsobujúca 100% vyťaženie cpu, dlaždice pre viac monitorov a nemenej dôležité su dizajnové zmeny v podobe ikon, pozadí atď. Pridaná bola podpora distribúcií Debian Trixie, Ubuntu Questing, RHEL 10 a OpenSUSE Leap 16.

    lukve | Komentářů: 8
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (47%)
     (18%)
     (17%)
     (22%)
     (15%)
     (22%)
     (15%)
     (16%)
    Celkem 344 hlasů
     Komentářů: 16, poslední dnes 18:21
    Rozcestník

    Frekvenční spektrum videa podruhé

    12.10.2009 00:19 | Přečteno: 1345× | programování | poslední úprava: 12.10.2009 01:23

    Opět jsem si zaexperimentoval s Fourierovou transformací nad videemi. Teď byl cíl najít jednoduše čitelné vyjádření podobnosti encodovaného videa proti originálu.

    Experimentálně vyvinutá (prostě dává celkem rozumné výsledky ;-)) metoda je:

    Vem každý frame videa v daném časovém rozmezí, rozděl ho na bloky velikosti NxN (používal jsem většinou N=16), spočti power spectral density (PSD) nad blokem, zintegruj všechny PSD vektory takhle získané (v logaritmické škále, dB/Hz).

    Na to, že jsem si tuhle metodu vymyslel takříkajíc "z brucha", funguje překvapivě dobře. Používal jsem ffmpeg a dvě verze mencoderu pro encodování; novší, 2009-07-31, je označen opt_mencoder, druhý je od něj o rok starší; bez označení "mencoder" jsou videa encodovány přes ffmpeg. Testována byla na Baader Meinhof Komplex traileru a pár dalších videích.

    Grafy zobrazené níže mají v levém grafu integrované PSD vektory a vpravo jejich korelaci k prvnímu video souboru nebo framu. V pravém grafu je několik hodnot korelací - počítá se korelace od X-tého prvku vektoru k poslednímu, vzhledem k ose X. To značí, že čím vyšší hodnota X, graf ukazuje hodnotu korelace tím vyšších frekvencí. Např. při X=3 je zobrazena korelace original[3:] a encoded[3:] (v pythoní notaci), tj. od čtvrtého prvku ke konci vektoru (index vektoru jde od nuly).

    Pro ilustraci několik framů (první je zmenšený originál; případne můžu vyhrabat kompletní commandlajny jak se které video encodovalo):

    Vlajka (rychlá scéna):

    Tvář (statická scéna):

    Čím zmenšit a nenarušit frekvence?

    První oříšek byl výběr vhodné metody zmenšení originálního videa, protože encodované videa byly zmenšeny. Tady je zobrazeno porovnání PSD zmenšeného originálního framu a originálního framu (vyděleno poměrem počtu bloků originálu a počtu bloků zmenšeného framu):

    Tady mně překvapil lanczos filtr (resizováno gimp-em), kde jsem čekal, že "ořez frekvencí" se bude týkat nejvyšších frekvencí (šum), ale vypadá spíš jako generický low-pass filter. Mencoderův lanczos filtr se choval podobně. Po několika pokusech to dopadlo tak, že lanczos a nearest-neighbor ne, mezi bilinear a bicubic ve výsledku moc rozdíl nebyl.

    Výslední grafy

    PSD je počítáno na luma kanále framů. Pro "podobnost" integrovaných PSD vektorů jsem použil korelaci, která vypadá použitelně. Posun PSD grafu na ose Y má na svědomí změna světlosti kodekem (tudíž i změna amplitud). V pravém grafu korelace pro X větší 6 nemá příliš smysl (protože se počítá korelace příliš málo prvků). Soubory označeny jenom "argvNM" jsou z ffmpegu, ostatní obsahující řetězec "mencoder" jsou z mencoderu.

    Jsou vybrány typické případy (96%) s plus několik případu na zamyšlení.

    Rychlá scéna (11-12s):

    Tady korelace správně ukazuje změnu ve vysokých frekvencích, u singlepass ffmpeg VBR i CBR jsou patrné artefakty. U mencoderu (argv7) je rozdíl ve vysokých frekvencích (blur) způsoben lanczos filtrem při změně velikosti (a taky kubickou interpolací při deinterlace). "Ručně" jsme vybrali argv2 jako nejlepší, jenže pouhým okem to téměř nejde rozlišit (v případě 2-pass encodingu), náhodně jsme se dívali a porovnávali specifické framy (třeba argv[2-4] vypadají při přehrávání neodlišitelně).

    Převážne rychlé scény (7-13s):

    U mencoderu je tady vidět efekt vypnutí deinterlacu (argv7 vs argv8; možná by bylo lepší zkusit detelecine pullup filtr, v případě Baader/Meinhof to není potřeba, ale encodování musí univerzálně fungovat i pro interlacované videa).

    Překvápko s bicubic resize u mencoderu. Subjektivně na několika framech je mencoder s bicubic rezising lepší než s bilinear resizing (argv12 vs argv13), viz zachycené framy výše. Možná korelace není úplně nejvhodnejší nástroj (chtělo by to něco jako "weighted correlation", aby třeba nejvyšším frekvencím šla nastavit nižsí váha).

    Pomalé i rychlé scény (1-13s):

    Jediné překvapení tady je argv13 vs argv12: subjektivně jsou framy z bicubic-scaled argv13 lepší než argv12, nicméně korelace tvrdí něco jiného (nejspíš způsobeno odstraněním vysokofrekvenčního šumu v argv13, hodnoty 7-8 na ose X, viz levý graf), opět platí teze že by možná nebylo špatný se porozhlídnout po nečem specifictějším nežli korelace.

    Limitace metody

    Kromě zmíněných speciálních případů s korelací to funguje dobře za předpokladu, že codec má specifickou chybu; volně definováno - vždy rozostří, nebo přidá hrany/šum, jinými slovy nenastane situace kdy by energie dané frekvence v jednom framu byly nízké a naopak v jiném framu vysoké, tudíž rozdíl integrace energií v těchhle framech by měla za výsledek nulu (nebo něco blízké nule).

    Ze zkušenosti šum ve zdrojovém videu má taky "neočekávané" účinky - kodeky (nebo motion estimation atd.) mají tendenci vysokofrekvenční šum vyhladit, což subjektivně vede k lepšímu výsledku, ale na druhé straně korelace zobrazuje singlepass encodované videa "bližší" originálu, protože mají podobné vysokofrekvenční spektrum (i když hrany byly ve skutečnosti přidány).

    Závěr

    Můžete vyzkoušet zdrojáky jestli chcete. Syntax:

    video_psd_integrate.py -s NN -t MM [options] videofile1 [videofile2] ... [videofileN]
    psd_integrate.py imagefile1 [imagefile2] ... [imagefileN]
    

    U video_psd_integrate je parametr -s počáteční čas, -t jak dlouho od začátku počítat, -h nebo --help vyhodí kompletní help. Jako vedlejší účinek jsem taky zjistil, že vlákna v Pythonu jsou GIL-em brzděny úplně brutálně (sériové počítaní je rychlejší než paralelní i když máte volná jádra/procesory). Zdrojáky vyžadují numpy, matplotlib a ffmpeg.

    Je možné stáhnout grafy v SVG (ideální pro zoomování).

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.