
Formát PNG má být bezztrátový formát, ale když uložíte obrázek jako soubor PNG, budete požádáni zvolte úroveň komprese. Znamená to, že formát PNG ve skutečnosti není bezztrátový? Dnešní příspěvek Q & A SuperUser pomáhá vyčistit zmatek pro zvědavého čtenáře.
Dnešní dotazovací a odpověď se k nám přichází s laskavým svolením SuperUser - subdivize Stack Exchange, komunitní skupiny webových stránek Q & A.
Jak jsem pochopil, soubory PNG používají bezztrátovou kompresi. Pokud však používám editor obrázků, jako je Gimp a pokusím se uložit obrázek jako soubor PNG, požádá o úroveň komprese v rozmezí 0 až 9.
Pokud má parametr komprese, který ovlivňuje vizuální přesnost komprimovaný obraz, jak je tedy PNG bezztrátový? Může mi to někdo vysvětlit? Chystám se bezstratové chování pouze tehdy, když nastavím úroveň komprese na 9?
Existuje rozdíl v kvalitě obrazu v závislosti na zvolené úrovni komprese?
Příspěvky
PNG je komprimovaný, ale ztrátový
Úroveň komprese je kompromis mezi velikostí souboru a rychlostí kódování / dekódování. Při příliš velkém zobecnění mají i jiné formáty, jako je FLAC, podobné pojmy.
Různé úrovně komprese, stejný dekódovaný výstup
Přestože jsou velikosti souborů odlišné vzhledem k různým úrovním komprese, bude skutečný dekódovaný výstup shodný. Můžete porovnat hash MD5 dekódovaných výstupů s ffmpeg pomocí muxeru MD5. Nejlépe se to ukazuje s některými příklady:
Vytvořit PNG soubory
Ve výchozím nastavení ffmpeg použije pro výstup PNG hodnotu -compression_level 100.
- Rychlý, nepřesný test ukázal, že 100 (nejvyšší úroveň komprese) krát delší kódování a pětkrát delší dekódování než 0 (nejnižší úroveň komprese) v tomto příkladu.
- Porovnání velikosti souboru
Dekódování souborů PNG a zobrazení příkazů MD5 Hashes
Jelikož oba hash jsou stejné, vy že dekódované výstupy (nekomprimované nespracované soubory) jsou přesně stejné.
Následuje odpověď z jjlin:
PNG je bezztrátový. GIMP s největší pravděpodobností nepoužívá v tomto případě nejlepší volbu formulace.
Představte si, že je
kompresní nebo komprese . S nižší kompresí získáte větší soubor, ale produkuje méně času, zatímco při vyšší kompresi získáte menší soubor, který trvá déle, než produkuje. Obvykle dochází ke zmenšujícím se výnosům, tj. Není tolik snížení velikosti ve srovnání s časovým nárůstem, který nastane při dosažení nejvyšší úrovně komprese, ale je na vás.
Musíte něco přidat k vysvětlení? Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.
Jak otevřít terminál určitému adresáři v systému Linux
Ve výchozím nastavení se nové Terminálové okna otevřou do vašeho domovského adresáře. Pokud však existuje jiný adresář, na který často používáte okamžitý přístup, když otevřete terminál, existuje snadný způsob, jak toto nastavit. SOUVISEJÍCÍ: Začátečník: Jak začít používat terminál Linuxu Soubor .bashrc v domovském adresáři obsahuje příkazy, které se spustí při otevření okna Terminál.
Proč jsou ty prohřešky tak nepřesné?
Na první pohled se zdá, že vytváření přesného odhadu času by mělo být poměrně snadné. Koneckonců, algoritmus vytvářející graf pokroku zná všechny úkoly, které musí udělat před časem ... správně? Z velké části je pravda, že zdrojový algoritmus neví, co potřebuje udělat před časem. Určitý čas, který bude vyžadovat provedení každého kroku, je však velmi obtížný, ne-li prakticky nemožný úkol.