Portál AbcLinuxu, 30. dubna 2025 10:16
Spíš jsem čekal že někomu bude vadit, že PSD grafy nejsou škálovány na správnou frekvenci (kvůli logaritmickému měřítku na ose y jenom dojde k lineárnímu posunu, tvar je zachován, takže to nějak extrémně nevadí; se správnou frekvencí se pak nevešly popisky na osu x).
Nebo že v prvním kousku kódu zůstaly rovnítka místo většítek (zdejší redakční systém mění entity gt a lt při každém náhledu na většítka/menšítka v textovém okně, takže si to vždy nechávám na finální post a nějak se na to zapomělo).
Holt v jednu ráno po 3 hodinách psaní jsem rád že těch chyb je tam tak málo A nakonec něco z xkcd.
BTW dá se blog editovat ex post? Nikde jsem na to nenašel odkaz/tlačítko, ale zdá se mi že některým lidem se to povedlo.
Dík, právě jsem to před chvílí našel a chybky opravil.
Možná jsem vás nepochopil, ale jaký smysl má hledat hrany v překódovaném obrazu (hrana může být už v originálu nebo naopak překódovaný obrázek může být zbytečně rozmazaný)?
Neměl by se nejprve udělat (absolutní) rozdíl překódovaného a původního obrázku a teprve až pak se ptát, jak budeme rozdíl „objektivně“ algoritmicky hodnotit?
Neměl by se nejprve udělat (absolutní) rozdíl překódovaného a původního obrázku a teprve až pak se ptát, jak budeme rozdíl „objektivně“ algoritmicky hodnotit?
Ano, presne tak byla myslena jedna varianta (odcitaly by se energie frekvenci z PSD).
Druha varianta by byla metrika nad jednim videem (encodovanym), treba zintegrovat energii vybranych vysokych frekvenci (nebo zintegrovat do vektoru, ktery je indexovan frekvencema). Ta by pak mela vyznam jenom v porovani s jinym encodovanym videem z tehoz zdroje, nebo se zdrojem samotnym.
Smyslem bylo najít nějaký objektivnější způsob jak klasifikovat kvalitu výstupního videa než metoda P-V (podívám-vidím).Nechci do toho kecat, ale už nějakou dobu se používá metoda PSNR. A i nad ní metoda P-V(i když asi v různých pohledech) naprosto vládne.
Abych to nekomplikoval, vymyslel jsem si celkem jednoduchou definici: má minimum artefaktů ("čtverečků"; ty způsobeny kompresí nebo motion compensation v rychle se pohybujících scénách).To bych ovšem v současné době nepovažoval příliš za směrodatné. Až se dovalím domů, snad nezapomenu se trošku o tom rozepsat, jelikož sám v podobné oblasti něco málo bádám.
Detekce kvality videaPrrr, už zas? Chtělo by to konečně vymyslet nějaký vhodnější termín.
Jj, jsem taky psal, ze jde o "maly experiment". Image processing neni tak uplne muj obor, jenom o tom neco vim a chtel jsem si s tim po dlouhe dobe pohrat ("zaprogramovat si pro radost" )
BTW, nejsou kvantizacni matice JPEG a komprese mp3 taky zalozeny na empirii typu P-V? (nezli na "tvrdem matematickem modelu")
Jinak rozepsani podporuji, zajimalo by me to.
Jinak rozepsani podporuji, zajimalo by me to.
Tak teda, proč zrovna "čtverečky" (blokové artefakty jak je s oblibou profesionálové nazývají) nepovažuji za směrodatné? Je to přežitek z dob JPEGu. Já bych ten blokový artefakt definoval jako přechod na hraně sítě sekvenčního zpracování obrazu tak velký, že je lidské oko schopno jej rozpoznat. A ty se nacházejí téměř všude, jen je lidské oko při zobrazení 1:1(bez zoomu) není schopno rozpoznat, ale vnímá je jako šum(a nebo hranu nějakého objektu), což ovšem vůbec neznamená, že tam nejsou(většinou viditelné až po zvětšení). Ty viditelné vznikají většinou jako důsledek absence dostatečného počtu AC koeficientů. A to se přihodí(většinou) až u velmi vysokých kompresních poměrů. Navíc vzhledem k existenci in-loop deblocking filteringu(u jiných formátů nepovinný, ovšem u H.264 už povinného – tím se sice hrany, které do výsledku nepatří docela dobře maskují, ovšem za cenu ještě nevzhlednějších fleků) a vzhledem k tomu, že to ze hry vyřazuje formáty které blokové artefakty nevytvářejí(Dirac,Snow,…koneckonců i to H.264 už jen ve velmi omezené míře) mi prostě hledání artefaktů nepřijde moc košer. Proč ne prostá frekvenční analýza? Už jen z toho důvodu, že právě ty přechody a kvantizační šum zavádějí další vysokofrekvenční složky. Komprese není jen prosté ořezání vysokých frekvencí. A navíc není moc vypovídající(ořezání vysokých frekvencí s malou amplitudou namodulovaných na nějakou sinusovku a úplně těch stejných z okolí hrany je přece jen docela rozdíl o kterém frekvenční analýza neřekne ani ň). S PSNR bych to viděl také tak nějak. A co mě k tomu všemu vede?
No to snad dopíšu až zase budu mít dvě oči.
Image processing neni tak uplne muj oborA čí jo?
BTW, nejsou kvantizacni matice JPEG a komprese mp3 taky zalozeny na empirii typu P-V? (nezli na "tvrdem matematickem modelu")No, jak se to vezme. Původní kvantizační matice u standardu (jak se dělali filtrovací banky u MPEG1 netuším) prej dělalo samotné JPEG tak že skenovalo běžné materiály (fotografie, medicínské podklady,…), dělalo právě frekvenční analýzu a výsledky se nějak zprůměrovaly. Tak se prej mimo jiné přišlo na to, že lidský zrak je více citlivý na horizontální frekvence než na vertikální. Do dnešní podoby se dostaly opravdu metodou pokus omyl.
Dík za info.
Metoda popsaná v předchozím komentáři mi dává celkem rozumné výsledky (i.e. odpovídá celkem tomu co na videu vidím), ješte to vyzkouším zintegrovat nejen na jednom framu, ale na několik tisíc framech (delší úsek videa).
Neznáte náhodou knihu Image Processing, Analysis, and Machine Vision? Údajně je dobrá, uvažoval jsem nad tím, že bych si ji koupil.
A čí jo?
No určitě existuje pár lidí designujících třeba různe medicínske mašiny
zintegrovat nejen na jednom framu, ale na několik tisíc framech (delší úsek videa).Pak doporučuji očkem pokukovat po FFTW. Je to fakt špica.(O čemž svědčí i těch pár matematických cen co už získali)
NeznáteCo to?
Neznáte náhodou knihu Image Processing, Analysis, and Machine Vision? Údajně je dobrá, uvažoval jsem nad tím, že bych si ji koupil.Já už si pomalu začínám psát seznam. No bohužel trošičku odrazuje cena(teda na to, že je to Taschenbuch), ale co především, tak volný čas. Už tak tu mám pár knížek které jsou ve stavu rozečtené a stejně na ně nemám čas a dokud alespoň ty nedoklepu, tak nebudu nic začínat. Kdyby se tak dal koupit volný čas. No určitě mnohokrát děkuju za zajímavý tip pod stromeček. Slibuju, že až až ten čas bude(a snad dřív než v důchodě), tak bude první které na seznamu zpracuju.
No určitě existuje pár lidí designujících třeba různe medicínske mašinyA tam bych asi také při zkoumání video/image processingu začal. Já např. nikdy netušil, že ta skleněná svíticí pixle se zmenšujícími se písmenky ve skutečnosti (přeneseně samozřejmě) zkoumá rozlišení oka jedince.
psát seznamPsát seznam a na toto zapomenout. No fuj.
Pak doporučuji očkem pokukovat po FFTW. Je to fakt špica.(O čemž svědčí i těch pár matematických cen co už získali)Jj, FFTW znam, i scipy (nedavno) pouzival FFTW. Prave jsem si napsal udelatko pro framegrabber + integraci pres framy z nejakeho casoveho useku videa a jiz na nekolikasekundovym useku na 480*252 videu je to k*va pomale. Nicmene vystupy z udelatka celkem odpovidaji tomu co vidim (jeste jsem to neporovnaval "rucno-ocne" frame po framu):
Pohybliva scena, 7-13 s (PNG)
Mix scen, pomale i pohyblive, 1-13 s (PNG)
A co mě k tomu všemu vede?Jednoho dne jsem se vzbudil s otázkou: Co je efektivnější, zmenšit rozlišení nebo zvětšit kompresní poměr? No to znělo jako výzva na test. Použil jsem tento vzorek(uvádím ho záměrně, třeba se k němu ještě jednou vrátím až budu povídat o drzosti výrobců fotoaparátů). Toto jsem vyhrabal v historii:
$ export W=1440 $ export H=900 $ touch compressed_100.jpg; c=280;for ((b=100;`ls -sk compressed_100.jpg | cut -d' ' -f1`>$c;b--));do convert original.jpg -quality $b% compressed_100.jpg && echo "100%:$b"; done; b=9;b=$((b+1)); for ((a=99;a>0;a--)); do convert -resize $a% original.jpg -quality $b compressed_$a.jpg && echo "$a%: $b,`ls -sk compressed_$a.jpg | cut -d' ' -f1`kB";if [ `ls -sk compressed_$a.jpg | cut -d' ' -f1` -lt $c ];then for((;`ls -sk compressed_$a.jpg | cut -d' ' -f1`<=$c && $b != 100; b++));do convert -resize $a% original.jpg -quality $b compressed_$a.jpg && echo "$a%: $b,`ls -sk compressed_$a.jpg | cut -d' ' -f1`kB"; done ;if [ $b -ne 100 ]; then b=$(($b-2));convert -resize $a% original.jpg -quality $b compressed_$a.jpg && echo "$a%: $b,`ls -sk compressed_$a.jpg | cut -d' ' -f1`kB - final";fi;fi; done $ touch testik.yuv $ for((a=1;a<100;a++));do convert -resize 3072x2304\! -crop $Wx$H+0+0 -gravity Center compressed_$a.jpg -quality 05 temp.png && composite label:"Scale: $a%" -gravity SouthEast temp.png temp.yuv && echo temp.yuv >> testik.yuv && echo $a;done && for((a=101;a>0;a--));do convert -resize 3072x2304\! compressed_$a.jpg -quality 05 temp.png && composite label:"Scale: $a%" -gravity SouthEast temp.png temp.yuv && echo temp.yuv >> testik.yuv && echo $a;done $ mplayer testik.yuv -demuxer rawvideo -rawvideo fps=25:w=$W:h=$H:i420 -loop 0 -fs
(Psal jsem to přímo v editoru a ještě jsem to ke všemu netestoval. Snad to bude fungovat. No hlavní je pokud bude pochopeno co vlastně vůbec básník chtěl říct.)
Já jsem si z toho ještě vykreslil PSNR graf a neočekávaně dostal úplný nesmysl. To mě vede k tomu, že PSNR prostě ne(je to matematické čudo, které nedostatečně zohledňuje vlastnosti lidského zraku). Stejně tak se u toho dobře pozoruje u jakého měřítka se začínají teprve objevovat právě ty artefakty a jak se to vlastně po kompresi celé chová. Doporučuji si pár takových testů provést(nejen s úměrností QP, měřítko). Pak nezbude nic jiného než na otázku jak objektivně vyzkoumat tu kvalitu
vypustit: Ufff…
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.