Fórum Root.cz
Ostatní => Odkladiště => Téma založeno: Vietnanka 17. 05. 2022, 12:10:12
-
U této novinky PNG může vypadat jinak na Apple a na jiných zařízeních - root.cz (https://www.root.cz/zpravicky/png-muze-vypadat-jinak-na-apple-a-na-jinych-zarizenich/), znamená to, že ten jiný obrázek se ukáže vždy a nebo s určitou pravděpodobností? (Byla tam zmínka o paralelním dekodéru a race condition)
-
Nejde o race condition (timing bug), ale o false-assumption / over-optimalization.
viz:
https://github.com/DavidBuchanan314/parallel-png-proposal/issues/3
Soubor PNG obsahuje segmenty, na ktere se odkazuje indexem z tabulky. Pokud mate paralelni dekoder, kazde vlakno si jede svoji malou cast - od urciteho offsetu. Pokud mate single thread dekoder, tak se indexova tabulka ignoruje a procesuje se cely soubor sekvencne.
Chyba je spise na strane single thread dekoderu, ktery namisto toho, aby vstup rozsekal podle indexu na segmenty s omezenou delkou, procesuje vse co mu prijde - i kdyby indexova tabulka byla zkonstruovana takovym zpusobem, ze budou v souboru diry ktere se nemaji dekodovat.