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: transformace a podvzorkování barev

Krtek
Krtek (neregistrovaný)
21. 12. 2006 11:55 Nový

obrázek

celé vlákno
Pichi aura:75
21. 12. 2006 12:46 Nový

Re: obrázek

celé vlákno
Hmm, že by to v těch 80. letech scanovali rovnou do jpg?
Pavel Tišnovský aura:98
21. 12. 2006 17:26 Nový

Re: obrázek

celé vlákno
:-)

Praveze s tim originalnim obrazkem jsou nejake problemy, mam dojem, ze se nemuze obnovit postup, jakym zpusobem byl naskenovan, jake se pouzily A/D prevodniky (linearita, sum) apod. U obrazku pouzivaneho jako jisty "etalon" je to trosku usmevne.

Na vyse uvedene adrese je normalni sken, ktery si kdokoli muze udelat, kdyz si v knihovne vyhleda prislusne cislo Playboye (i tyto veci nektere knihovny schranuji :-). Take se (snad) jeste nenasel originalni fotograficky snimek, takze to vsechno jsou pouze odvozene obrazky. Staci si na Googlu v sekci "obrazky" vyhledat Lenna a vyleze nekolik variant, ktere se lisi kontrastem, gamma korekci a ja nevim cim jeste.
Martin Surovcek aura:47
21. 12. 2006 11:55 Nový

tesim

celé vlákno
super, tesim sa z tohoto serialu, aj ked ma viac zaujima dalsia cast ;-)
Clock
Clock (neregistrovaný)
21. 12. 2006 13:22 Nový

YCbCr?

celé vlákno
Ja jsem psal dekoder JPEGu do Linkse a jestli se dobre pamatuju, z JPEGu neleze YCbCr jak se tu snazi autor naznacit, ale Y'CbCr. Ono YCbCr by ani nemelo smysl protoze by pak zaokrouhlovaci chyby byly vyrazne videt na tmavych partiich a nevyrazne na bilych - takhle se to rozlozi rovnomerne.

Kdyz si nekdo bude podle tohohle clanku myslet ze z JPEGu jde YCbCr a napise podle toho software, tak ten software bude zobrazovat JPEGy vyblite jakoby v mlze.

Nema smysl to ani narychlo konvertovat nejakou 8-bitovou gamma korekci protoze se pak udelaj v tmavsich partiich schodovite prouzky na barevnych prechodech kvuli degradaci barevneho rozliseni.
Pavel Tišnovský aura:98
21. 12. 2006 13:38 Nový

Re: YCbCr?

celé vlákno
Kdyz se mrknete na ten druhy demonstracni priklad, tak je patrne, ze jsou tam pouzity oba typy prevodu, jak RGB->YCbCr, tak i YCbCr->RGB. K zadnym chybam tam nedochazi (samozrejme pri velikosti bloku 1x1 pixel). Slozka Y se zadnym zpusobem nemeni, podvzorkovavaji se pouze Cb a Cr.

Ale mozna mate ma mysli "matematicke" Y'CbCr, kde se slozka Y' opravdu koriguje pomoci gamma faktoru a navic plati, ze ma rozsah pouze <16,235>, coz neni "nas" pripad, protoze zde ma Y plny rozsah <0,255>.

Klasicka analogova Y'CbCr pouziva jine konstanty a rozsahy jsou:
Y lezi v [0,1]
Cb lezi v [-0.5, 0.5]
Cr lezi v [-0.5, 0.5]

Takovy barvovy model se nekdy oznacuje spis jako YPbPr
Pavel Tišnovský aura:98
21. 12. 2006 13:40 Nový

Re: YCbCr?

celé vlákno
Jeste vysledky rychleho hledani:

http://en.wikipedia.org/wiki/YCbCr

uplne dole je cast tykajici se JPEGu.
uživatel si přál zůstat v anonymitě
21. 12. 2006 15:41 Nový

Re: YCbCr?

celé vlákno
Jasne OK, YCbCr je luma a chroma (gamma korigovane hodnoty vzhledem k fyzikalnimu poctu fotonu). Problem je ale, ze RGB -> YCbCr transformace se neda delat takhle jednoduse - to je jako predpoklada, ze (a+b)^n=a^n+b^n. Je potreba to RGB nejdriv prevyst do fotometricky reprezentace (umocnit na 2.2), v tom pak udelat to podvzorkovani 2x2, a pak to zase prevyst na YCbCr umocnenim na 0.45

Kdyz maji sousedni pixely podobnou barvu, moc chyby tim nevznika. Kdyz maji ale rozdilnou, vznika chyba:
http://en.wikipedia.org/wiki/Image:Color-bars-vegas-dv.gif
Na rozhrani mezi zelenou a fialovou je pruh sedozelene, ktery je tmavsi nez jak ta zelena i ta fialova - neni mozne aby kdyz mame jasy (luma) rekneme 0.3 a 0.4, aby jejich zprumerovanim vzniklo 0.2

"Chroma subsampling deviates from color science in that the luma and chroma components are formed as a weighted sum of gamma-corrected (tristimulus) R'G'B' components instead of linear (tristimulus) RGB components. As a result, luminance and color detail are not completely independent of one another. There is some "bleeding" of luminance and color information between the luma and chroma components. The error is greatest for highly-saturated colors and can be somewhat noticeable in between the magenta and green bars of a color bars test pattern (that has chroma subsampling applied). This engineering approximation (by reversing the order of operations between gamma correction and forming the weighted sum) allows color subsampling to be more easily implemented."

Sice se to zda rychlejsi na implementaci, ale to se da zase nahnat tim, ze misto C++ nebo Javy budeme psat v C, jako jsem to udelal v Linksu - v Linksu se pocita vsechno ve 48-bitovym fotometrickym prostoru, vzdycky se ditheruje, a jeste je to jeden z nejrychlejsich prohlizecu, ve srovnani s temi zbylymi co to pocitaj ve 24 bitech a na gammu a takovyhle veci vetsinou kaslou.
Pavel Tišnovský aura:98
21. 12. 2006 15:58 Nový

Re: YCbCr?

celé vlákno

Jasne, tu nesmyslnost pri scitani (prumerovani) beru, pri nekterych kontrastnich prechodech (zejmena barev na opacne strane spektra) se ta chyba vizualne projevi. Asi by se tedy misto RGB melo psat sRGB, kdyz uz se teda Microsoft se zbytkem sveta dohodl na γ=2.2. Nejsem si vsak zdaleka jisty, jestli tuto korekci provadi vsechny kodery a dekodery JPEGu, neni k dispozici nejaky testovaci obrazek - takova ta typicka dvojice s ditherovanymi prechody?

Clock
Clock (neregistrovaný)
21. 12. 2006 15:52 Nový

Clanek vyvracejici tyto bludy

celé vlákno
Tyto bludy Y'CbCr YCbCb luma luminance chroma chrominance gama negama hodinky holinky hlavne ze oboji se natahuje co tu autor prezentuje jsou
velmi rozsirene i v autoritativnich publikacich. v JPEGu neni YCbCr, ale Y'CbCr. Kdo chce v tom mit jasne a rozeznat blud od reality, at si precte Charles Poynton's YUV and Luminance Harmful:
http://poynton.com/PDFs/YUV_and_luminance_harmful.pdf
Pavel Tišnovský aura:98
21. 12. 2006 16:29 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
Ten clanek jsem si se zajmem precetl (sice si cement s betonem u nas IMHO splete malo lidi, ale v US se ta slova asi pouzivaji s trosku jinym vyznamem).

Ale porad nechapu, co to ma spolecneho s vysvetlovanim prevodu RGB do YCbCr, subsamplingem Cb, Cr a naopak. Ze zrovinka na masinach IBM neni RGB rovno sRGB? Dobre, RGB musi byt pred vstupem gamma korigovane, ale na uvadenem a vysvetlovanem principu se prece vubec nic nemeni. Se slovicky si hrat nemusime, "luma" ani "luminance" se u nas moc neujalo.
tapír Alfons
tapír Alfons (neregistrovaný)
21. 12. 2006 19:11 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
Nojó clock, ten ditheruje i ve 24b barvách, aby mu nějaký bitík informace náhodou nezůstal nevyjádřen.. Prostě "YCbCr" nemá to samé Y jako CIE, já bych mu to odkýval a dál se v tom nerýpal. Stejnak tak 90% dnešního software při ukládání vezme RGB rastr a nablije ho do jpegliby, takže nejvěrnější podobu originálního RGB dostaneme nikoliv studiem kolorimetrie, ale použitím jpegliby.. ;-P
Pavel Tišnovský aura:98
21. 12. 2006 17:45 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
Zajimave je, ze stejny autor v jinem clanku (o Gamma korekci, dohledatelne pres Wikipedii) pise:

"More significantly, there is a huge installed base of encoding and
decoding equipment that assumes image coding similar or identical to
that of video. The installed base includes roughly 1,300,000,000 television
receivers, 400,000,000 VCRs, 250,000,000 camcorders, and
300,000,000 desktop computers. These devices are all, in effect, wired
to directly reproduce R’G’B’ signals encoded according to Rec. 709.
Any proposal for a new encoder transfer function would compromise
the interchange of images among these systems."

Takze podle techto slov ve skutecnosti prevadime opravdu uz gamma-korigovane barevne slozky, i kdyz hodnota gamma-korekce tak, jak jste ji pouzil v predchozich prispevcich, je docela zajimavy (proste nastavime "natvrdo" 2.2). Ta hodnota 2.2 je uvedena proto, ze se pouziva v NTSC?
Pavel Tišnovský aura:98
21. 12. 2006 18:19 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
I v oficialni specifikaci JPEGu: "JPEG File Interchange Format Version 1.02" maji tentyz "blud" :-), takze bacha na to.
Clock
Clock (neregistrovaný)
22. 12. 2006 15:19 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
Od nejakyho JPEG komitetu od zelenyho stolu me ani neprekvapuje, ze tomu rozumej jak kozel petrzeli. Ale treba v takovym PNG co bylo navrhovany kompetentnima hackerama, tam takovy nesmysly nejsou.

Stejnak MP3 vs. Ogg Vorbis - z MP3 mi praska lebka, Ogg Vorbis muzu poslouchat i na 64kbps (v nejhorsim i na 32kbps).
dgx
dgx (neregistrovaný)
26. 12. 2006 18:27 Nový

Re: Clanek vyvracejici tyto bludy

celé vlákno
Nejspíš byste mohl téma doplnit o nové a podstatné informace, ale půjde to jen stěží, vyjadřujete-li se jako arogantní kokot.
abcd
abcd (neregistrovaný)
5. 1. 2007 0:09 Nový

Co znamenaji tyto subsampling moznosti?

celé vlákno
V PaintShopPro je pri ukladani do JPG moznost vybrat nasledujici:
Chroma subsampling:
YCbCr 1x1 1x1 1x1 (none)
YCbCr 2x1 1x1 1x1
YCbCr 1x2 1x1 1x1
YCbCr 2x2 1x1 1x1
YCbCr 2x2 2x1 2x1
YCbCr 4x2 1x1 1x1
YCbCr 2x4 1x1 1x1
YCbCr 4x1 1x1 1x1
YCbCr 1x4 1x1 1x1
YCbCr 4x1 2x1 2x1
YCbCr 1x4 1x2 1x2
YCbCr 4x4 2x2 2x2
Nejak jsem z toho mimo, to jako ze se u posledni moznosti bere jas jen z 1/16 pixelu, nebo co? Muze mi prosim nekdo vysvetlit, co ty moznosti znamenaji (v helpu nic neni)? Diky.
Zasílat nově přidané příspěvky e-mailem