Po více než 7 měsících vývoje od vydání verze 6.8 byla vydána nová verze 6.9 svobodného open source redakčního systému WordPress. Kódové jméno Gene bylo vybráno na počest amerického jazzového klavíristy Gene Harrise (Ray Brown Trio - Summertime).
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za listopad (YouTube).
Google Chrome 143 byl prohlášen za stabilní. Nejnovější stabilní verze 143.0.7499.40 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 13 bezpečnostních chyb.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,2 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,42 %. Procesor AMD používá 66,72 % hráčů na Linuxu.
Canonical oznámil (YouTube), že nově nabízí svou podporu Ubuntu Pro také pro instance Ubuntu na WSL (Windows Subsystem for Linux).
Samsung představil svůj nejnovější chytrý telefon Galaxy Z TriFold (YouTube). Skládačka se nerozkládá jednou, ale hned dvakrát, a nabízí displej s úhlopříčkou 10 palců. V České republice nebude tento model dostupný.
Armbian, tj. linuxová distribuce založená na Debianu a Ubuntu optimalizovaná pro jednodeskové počítače na platformě ARM a RISC-V, ke stažení ale také pro Intel a AMD, byl vydán ve verzi 25.11.1. Přehled novinek v Changelogu.
Byla vydána nová verze 15.0 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
UBports, nadace a komunita kolem Ubuntu pro telefony a tablety Ubuntu Touch, vydala Ubuntu Touch 24.04 1.1 a 20.04 OTA-11. Vedle oprav chyb a drobných vylepšení je řešen také středně závažný bezpečnostní problém.
I letos vyšla řada ajťáckých adventních kalendářů: Advent of Code 2025, Perl Advent Calendar 2025, CSS Advent Calendar 2025, Advent of A11Y 2025, Advent of AI Security 2025, Advent of Agents (in Google) 2025, Advent of Svelte 2025, …
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: