Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Programujeme JPEG: Kvantizace DCT koeficientů

jx0
jx0 (neregistrovaný)
11. 1. 2007 15:37 Nový

dobry....

celé vlákno
Tradicne velmi dobre. Dekuji za clanek.

Opet par poznamek:

[1] preklep: Q77 je vpravo dole

[2] U kvantizacnich tabulek jeste nezaznelo nejak natvrdo (a proto se tak domnivam), ze kvantizacni tabulka musi byt uvedena nekde v souboru. Mam i dotaz: Je mozne mit v jednom JPEGu vice techto tabulek? (Neco jako v GIFu vic framu s paletami.)
Pavel Tišnovský aura:98
11. 1. 2007 16:12 Nový

Re: dobry....

celé vlákno
Diky za opravu.

Kvantizacni tabulky jsou ukladany do vysledneho JPEGu, aby ho bylo mozne spravne zrekonstruovat. Format ulozeni je podobny jako u vlastnich pixelu: cik-cak. Urcite je mozne ukladat vice tabulek, minimalne tri (jsou ocislovane). Typicky se jedna tabulka pouziva pro barvonosne signaly (Cr, Cb) a druha pro luminanci (Y), protoze na rozmazani jsme citlivejsi prave u luminance, proto se zde take "mene kvantuje". Da se vsak take pro kazdou barvovou slozku pouzit samostatna tabulka, tj. jedna pro Y, druha pro Cr a treti pro Cb.
P_V
P_V (neregistrovaný)
11. 1. 2007 17:31 Nový

Re: dobry....

celé vlákno
A dají se použít různé kvantizační tabulky pro různé bloky nebo oblasti obrázku?
Pavel Tišnovský aura:98
11. 1. 2007 17:47 Nový

Re: dobry....

celé vlákno
Pokud je mi znamo, tak prepinani tabulek pri zpracovani neni povoleno.
Jakub Friedl
Jakub Friedl (neregistrovaný)
15. 1. 2007 11:07 Nový

Re: dobry....

celé vlákno
Jak to řeší programy, které umí nastavit vyšší kvalitu komprese určité části JPEGu (například obličeji) a nižší pozadí? Přinejmenším s jedním takovým programem jsem pracoval.
P_V
P_V (neregistrovaný)
15. 1. 2007 12:07 Nový

Re: dobry....

celé vlákno
Pokud se tabulka nedá přepínat, řekl bych, že se použije tabulka pro vyšší kvalitu, a v částech obrazu, které snesou menší kvalitu, se zvýší práh pro zahazování kvantovaných koeficientů (např. se vynulují i ty které vyjdou < 1,5 místo standardních < 1,0 při FP dělení).
Pavel Tišnovský aura:98
15. 1. 2007 13:48 Nový

Re: dobry....

celé vlákno
Taky mam dojem, ze se ty mene dulezite casti obrazu kvantuji trosku jinou kvantovaci matici, nez tou, ktera je ulozena spolu se souborem. Pri dekomprimaci to nevadi, protoze 0 x cokoli=0.
Pavel Tišnovský aura:98
12. 1. 2007 9:28 Nový

Re: dobry....

celé vlákno
Porad se mi ta otazka honila hlavou, protoze jsem si pamatoval, ze nekde se skutecne dalo pouzit vice kvantizacnich tabulek.

Ve skutecnosti se u JPEGu jasne pise, ze od chvile zahajeni prenosu dat (tim mysli spusteni kodovani ci dekodovani) se uz kvantizacni tabulky nesmi menit.

Narozdil od JPEGu se u MPEGu mohou menit kvantizacni tabulky jak pro cele snimky (framy), tak i dokonce pro jednotlive bloky 8x8 hodnot. U JPEGu ani u MJPEGu to mozne neni.
zzz
zzz (neregistrovaný)
11. 1. 2007 17:35 Nový

nesymetricnost kvant. tabulky

celé vlákno
proc je kvantizacni tabulka nesymetricka podle diagonaly?
myslel jsem, ze tabulka a transponovana tabulka budou stejne,
ale koeficienty se mirne lisi, procpak?
pokud se nepletu, tak uvedene tabulky vice ztraceji informaci
pro horizontalni hrany (detaily).
Pavel Tišnovský aura:98
11. 1. 2007 17:57 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Originalni tabulky JPEGu byly ziskany ze zpracovani velkeho mnozstvi obrazoveho materialu a tyto koeficienty jim v realnych testech vysly jako nejlepe pouzitelne. Jestli je to proto, ze se v obrazcich vyskytovalo vice vertikalnich hran (priroda, budovy atd.) to nevim. Mozne take je, ze proste HVS neni uplne symetricky (to by odpovidalo umisteni a funkcim oci - cloveka vlastne nikdy neohrozovali dravci ze vzduchu, ale potreboval pomerne ostre a presne videni smerem dopredu a nepresne, ale aspon nejake, videni do stran).
Clovek jako lovec (tedy vetsinou, nekdy se role otocily) ma oci umistene na predni strane hlavy a ne na bocich, jako nektera zver, ktera je nepotrebuje pro lov, ale naopak pro ochranu pred predatory.

Musite si uvedomit, ze u JPEGu (ale i u OGG ci MP3) se pohybujeme v oblasti navrhu nejakeho systemu, kde presne nezname model lidskeho vnimani (my ho dokonce nezname ani hrube). Proto se ani nedaji provadet nejake presnejsi vypocty ale je zapotrebi provest realne testy, at uz nad obrazky nebo nad hudbou/zvuky.
Jirka
Jirka (neregistrovaný)
11. 1. 2007 19:11 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
To s tim ruznym videnim ve vodorovnem a svislem smeru by se asi dalo otestovat. Ale neznam zadny vyzkum, ktery by to zkousel.
zzz
zzz (neregistrovaný)
12. 1. 2007 8:39 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
ty rozdily mezi koeficienty nejsou velke a souhlasim s tim, ze
pokud byly generovany ze skutecnych souboru, tak vyjde realna tabulka.
jx0
jx0 (neregistrovaný)
11. 1. 2007 23:10 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Z te nesymetrie vyplyva otazka, jak potom dopadne "bezeztratove" otoceni obrazku o 90 stupnu? Ale asi dobre, protoze zrejme staci otocit jednotlive kosticky i kvantizacni tabulky, takze se asi fakt nic neztrati.
P_V
P_V (neregistrovaný)
12. 1. 2007 12:49 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Tak to jsem zkoušel a dospěl k překvapivým závěrům. Tedy, bezeztrátově otočit fotku ve formátu jpeg, pak originál i otočený jpeg otevřít v nějakém grafickém editoru, v bitmapové podobě otočit zpět a udělat rozdíl. Téměř vždy tam byly rozdíly (šum kolem jedné až dvou úrovní z 256), a ty rozdíly se lišily program od programu. Vypovídá to o kvalitě použitých algoritmů. Kdyby se kvant. tabulka neotočila tak by ty rozdíly asi byly zásadnější a pro všechny programy shodné. Kupodivu nejméně šumu vyprodukoval Photoshop.
Pavel Tišnovský aura:98
12. 1. 2007 16:08 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
To je opravdu zajimave, protoze bezeztratova rotace je uz (podle jmena) bezeztratova :-) Ale doopravdy, pokud ten program jenom poprehazuje koeficienty ulozene v JPEGu a transponuje kvantizacni tabulku, tak by k zadne ztrate nemelo dojit (to poprehazeni neni zas tak jednoduche, protoze se meni Huffmanuv kod, ale porad jde o vec celociselnou a hlavne nikde nic nevznika ani nezanika).

Ostatne kdyby se otaceni delalo "otrocky" az na urovni bitmap, tak by trvalo o dost delsi dobu, protoze by se prosel cely cyklus JPEG->inv.Huffman->inv.kvantizace->inv.DCT->YCbCr->RGB->otoceni->RGB->YCbCr->DCT->kvantizace->Huffman->JPEG. Jestli spise neni problem v tech grafickych editorech, ktere pri dekomprimaci JPEGu muzou treba zaokrouhlovat apod. (hlavne aby to bylo rychle ne?).
uživatel si přál zůstat v anonymitě
14. 1. 2007 11:36 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
To je opravdu zajimave, protoze bezeztratova rotace je uz (podle jmena) bezeztratova :-)
"Bezztratova" predevsim znamena, ze existuje reverzni transformace, kterou muzeme ziskat stejny JPEG, jako byl original. A to je pravda (staci otocit na opacnou stranu)...
jx0
jx0 (neregistrovaný)
13. 1. 2007 13:51 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Tak jsem to zkusil taky a ate pravdu. Zkusil jsem to shrnout tady. Opravdu ten sum je kolem te jedne az dvou (maximalne tri, ale velmi zridka) urovni z 256. Ale cim to je, to teda nevim, to je otazka pro odbornika.
P_V
P_V (neregistrovaný)
13. 1. 2007 19:30 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Podle mně jsou to zaokrouhlovací chyby při dekompresi. Jestliže daný algoritmus provádí zaokrouhlené výpočty v určitém pořadí, pak při zpřeházení tohoto pořadí se chyby sejdou jinak.
Podle charakteru šumu by snad bylo možno i identifikovat použitý dekompresní algoritmus. Výsledky jsem nezkoumal tak exaktně jako Vy, ale bylo možno usoudit že většina programů co mi přišla pod ruku, produkuje rozdílový šum obdobný (bajvoko) jako dekodér v utilitě jpegcrop založené na zdrojácích IJG. Z toho vybočovaly některé prastaré dosové prohlížeče (šuměly více nebo "jinak") a již zmíněný Photoshop, jehož dekodér produkoval rozdílového šumu nejméně.
Culibrk
Culibrk (neregistrovaný)
14. 1. 2007 10:05 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
Myslim, ze je to kvuli fyzilogii cloveka - vnimani obrazu je citlivejsi na svisle hrany nez vodorovne, protoze pomoci nich rekonstruuje vzdalenost predmentu. A u jpegu se s tim evidentne pocita. Na druhou stranu to take znamena, ze pri konverzi na bezztratovoy format a rotaci o 90 stupnu dostaneme (subjektivne) mene kvalitni obraz. Hmmm.
Jakub Friedl
Jakub Friedl (neregistrovaný)
15. 1. 2007 11:29 Nový

Re: nesymetricnost kvant. tabulky

celé vlákno
To je ovšem docela zajímavé z hlediska fotografie. I fotoaparáty rozeznávající svoji orientaci mění orientaci snímků pouze EXIF tagem, ne otočením JPEG jako takového. Alespoň IMHO. Ale vzhledem k tomu, že většina foťáků produjuje dost brutálně interpolovaný obraz, je to asi jedno.
Leoš
Leoš (neregistrovaný)
27. 2. 2009 14:52 Nový

Obrázek 4 - DCT

celé vlákno
Zkoušel jsem vypočítat hodnoty DCT z matice hodnot barev pixelů na obrázku 4. Všechno sedí, až na DC koeficient (levý horní)... Předpokládám, že je to proto, že od této hodnoty je už odečetna predikce. Mylim se?
Zasílat nově přidané příspěvky e-mailem