Byla vydána beta verze openSUSE Leap 16. Ve výchozím nastavení s novým instalátorem Agama.
Devadesátková hra Brány Skeldalu prošla portací a je dostupná na platformě Steam. Vyšel i parádní blog autora o portaci na moderní systémy a platformy včetně Linuxu.
Lidi dělají divné věci. Například spouští Linux v Excelu. Využít je emulátor RISC-V mini-rv32ima sestavený jako knihovna DLL, která je volaná z makra VBA (Visual Basic for Applications).
Revolut nabídne neomezený mobilní tarif za 12,50 eur (312 Kč). Aktuálně startuje ve Velké Británii a Německu.
Společnost Amazon miliardáře Jeffa Bezose vypustila na oběžnou dráhu první várku družic svého projektu Kuiper, který má z vesmíru poskytovat vysokorychlostní internetové připojení po celém světě a snažit se konkurovat nyní dominantnímu Starlinku nejbohatšího muže planety Elona Muska.
Poslední aktualizací začal model GPT-4o uživatelům příliš podlézat. OpenAI jej tak vrátila k předchozí verzi.
Google Chrome 136 byl prohlášen za stabilní. Nejnovější stabilní verze 136.0.7103.59 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 8 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.
Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Programming stuff. And stuff.
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):
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.
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í.
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ě).
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).
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.
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).
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í).
Tiskni
Sdílej: