Fwd: [LUGOS] kvalitetni resize slik

Jure Koren idiots at gmail.com
Tue Aug 30 08:38:29 CEST 2005


On 8/30/05, Metod Kozelj <metod.kozelj at lugos.si> wrote:
> Howdy!
> Podrobnosti zapisa jpeg mi niso znane, zato naj mi kdo razloži. Takole
> na grobo pa je menda kompresija v JPEGu narejena tako, da na sliki
> naredijo FFT in jo s tem pretvorijo v spektralni prostor, slika pa je
> določena s koeficienti valovnih funkcij. Potem pa pomečejo stran
> koeficiente funkcij, katerih frekvence padejo v območje, ki ga človeško
> oko manj (ali nič) zazna.

Tako je.

> Dejstvo je, da zapis valovnih funkcij ni povezan z velikostjo osnovne
> celice mreže. Kar pomeni, da je načeloma lossless pomanjševanje možno,
> vendar pa se pri tem datoteka praktično ne spremeni. Razlika nastane
> šele pri renderingu. Mimogrede: podoben efekt je pri obračanju slike za
> recimo 90 stopinj: če to naredimo v programih, ki delajo nad bitnim
> zapisom (ImageMagick in podobni), bomo pri tem naredili veliko sranje.
> Če pa uporabimo jpegtran, ki dela direktno nad valovnim zapisom, pa je
> stvar lossless.

Ja, naceloma je mozno, vendar je to odvisno tudi od same slike. Ce
slika ni trivialna, potem je njen natancen zapis v spektralnem
prostoru potencialno vecji od bitnega zapisa. Izguba informacij, ki
jih clovesko oko ne zazna, temu mocno odpomore, seveda pa pri tem
zrtvujemo informacije, ki bi nam utegnile priti prav pri nekaterih
transformacijah slike. Vse skupaj je seveda lossless za vse prakticne
pomene besede, kadar transformacije delamo nad valovnimi zapisi, le ni
lossless v informacijskem pomenu besede (kar je tisto, ob kar sva se s
polzem spotaknila).

Zal vecina popularnih programov JPEG sliko renderira v mrezo,
transformacijo opravlja s takim ali drugacnim povprecenjem prek
sosednjih pikslov, potem obicajno izvede se poudarjanje robov, ki se
pri takih transformacijah pogosto zmehcajo, in zapis spet shrani kot
nov JPEG. Napaka.

Ko sem delal svojo prvo spletno galerijo, tega nisem vedel, zato sem
npr. rotiranje za 90 stopinj (ki bi lahko bilo lossless pri bitnem
formatu slike) izvajal na produktu prejsnjega rotiranja. Potem sem za
hec operacijo ponovil 10.000krat (oz. tam nekje). Rezultat je bil
grozota, ki jo se vedno nekje hranim. Z jpegtran tega se nisem
poizkusal, ker sem takrat potem vedno zeljeno transformacijo izvajal
nad originalno sliko.


More information about the lugos-list mailing list