QOI рдЗрдореЗрдЬ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдлреЙрд░рдореЕрдЯ рд╕рд╛рджрд░ рдХреЗрд▓реЗ

рдПрдХ рдирд╡реАрди рд╣рд▓рдХреЗ, рд▓реЙрд╕рд▓реЗрд╕ рдЗрдореЗрдЬ рдХреЙрдореНрдкреНрд░реЗрд╢рди рдлреЙрд░рдореЕрдЯ рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ - QOI (рдПрдХрджрдо рдУрдХреЗ рдЗрдореЗрдЬ), рдЬреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрд░рдЬреАрдмреА рдЖрдгрд┐ рдЖрд░рдЬреАрдмреАрдП рдХрд▓рд░ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рдЗрдореЗрдЬ рджреНрд░реБрддрдкрдгреЗ рдХреЙрдореНрдкреНрд░реЗрд╕ рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ. рдкреАрдПрдирдЬреА рдлреЙрд░рдореЕрдЯрд╢реА рдХрд╛рдордЧрд┐рд░реАрдЪреА рддреБрд▓рдирд╛ рдХрд░рддрд╛рдирд╛, рд╕реА рднрд╛рд╖реЗрддреАрд▓ QOI рдлреЙрд░рдореЕрдЯрдЪреА рд╕рд┐рдВрдЧрд▓-рдереНрд░реЗрдбреЗрдб рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА, рдЬреА SIMD рд╕реВрдЪрдирд╛ рдЖрдгрд┐ рдЕрд╕реЗрдВрдмреНрд▓реА рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд╡рд╛рдкрд░рдд рдирд╛рд╣реА, libpng рдЖрдгрд┐ stb_image рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЧрддреАрдордзреНрдпреЗ 20-50 рдкрдЯ рдЕрдзрд┐рдХ рд╡реЗрдЧрд╡рд╛рди рдЖрд╣реЗ рдЖрдгрд┐ 3. рдбреАрдХреЛрдбрд┐рдВрдЧ рдЧрддреАрдордзреНрдпреЗ -4 рдкрдЯ рд╡реЗрдЧрд╡рд╛рди. рдХреЙрдореНрдкреНрд░реЗрд╢рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдмрд╛рдмрддреАрдд, QOI рдмрд╣реБрддреЗрдХ рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ libpng рдЪреНрдпрд╛ рдЬрд╡рд│ рдЖрд╣реЗ (рдХрд╛рд╣реА рдЪрд╛рдЪрдгреНрдпрд╛рдВрдордзреНрдпреЗ рддреЗ рдереЛрдбреЗ рдкреБрдвреЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЗрддрд░рд╛рдВрдордзреНрдпреЗ рддреЗ рдирд┐рдХреГрд╖реНрдЯ рдЖрд╣реЗ), рдкрд░рдВрддреБ рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рддреЗ stb_image (20% рдкрд░реНрдпрдВрдд рд╡рд╛рдв) рдкреЗрдХреНрд╖рд╛ рд▓рдХреНрд╖рдгреАрдп рдЖрд╣реЗ.

C рдордзреНрдпреЗ QOI рдЪреА рд╕рдВрджрд░реНрдн рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХреЛрдбрдЪреНрдпрд╛ рдлрдХреНрдд 300 рдУрд│реА рдЖрд╣реЗ. рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдПрдордЖрдпрдЯреА рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдЙрддреНрд╕рд╛рд╣реАрдВрдиреА рдЧреЛ, рдЭрд┐рдЧ рдЖрдгрд┐ рд░рд╕реНрдЯ рднрд╛рд╖рд╛рдВрдордзреНрдпреЗ рдПрдиреНрдХреЛрдбрд░ рдЖрдгрд┐ рдбреАрдХреЛрдбрд░рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рддрдпрд╛рд░ рдХреЗрд▓реА рдЖрд╣реЗ. MPEG1 рд╡реНрд╣рд┐рдбрд┐рдУ рдбреАрдХреЛрдбрд┐рдВрдЧрд╕рд╛рдареА рд▓рд╛рдпрдмреНрд░рд░реА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЧреЗрдо рдбреЗрд╡реНрд╣рд▓рдкрд░ рдбреЙрдорд┐рдирд┐рдХ рд╕реНрдЭреЗрдмрд▓реЗрд╡реНрд╕реНрдХреАрджреНрд╡рд╛рд░реЗ рд╣рд╛ рдкреНрд░рдХрд▓реНрдк рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ. QOI рдлреЙрд░рдореЕрдЯрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди, рд▓реЗрдЦрдХрд╛рд▓рд╛ рд╣реЗ рджрд╛рдЦрд╡рд╛рдпрдЪреЗ рд╣реЛрддреЗ рдХреА рдЕрддреНрдпрд╛рдзрд┐рдХ рдХреНрд▓рд┐рд╖реНрдЯ рдЖрдзреБрдирд┐рдХ рдЗрдореЗрдЬ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдлреЙрд░рдореЕрдЯрд╕рд╛рдареА рдПрдХ рдкреНрд░рднрд╛рд╡реА рдЖрдгрд┐ рд╕реЛрдкрд╛ рдкрд░реНрдпрд╛рдп рддрдпрд╛рд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ.

QOI рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкреНрд░рддрд┐рдореЗрдЪреНрдпрд╛ (O(n)) рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рди рдЖрдгрд┐ рд╕реНрд╡рд░реВрдкрд╛рдкрд╛рд╕реВрди рд╕реНрд╡рддрдВрддреНрд░ рдЖрд╣реЗ. рдПрдиреНрдХреЛрдбрд┐рдВрдЧ рдЖрдгрд┐ рдбреАрдХреЛрдбрд┐рдВрдЧ рдПрдХрд╛ рдкрд╛рд╕рдордзреНрдпреЗ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд - рдкреНрд░рддреНрдпреЗрдХ рдкрд┐рдХреНрд╕реЗрд▓рд╡рд░ рдлрдХреНрдд рдПрдХрджрд╛рдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рддреЗ рдЖрдгрд┐ рдорд╛рдЧреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓рдЪреНрдпрд╛ рдореВрд▓реНрдпрд╛рдВрд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ 4 рдкреИрдХреА рдПрдХрд╛ рдорд╛рд░реНрдЧрд╛рдиреЗ рдПрдиреНрдХреЛрдб рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдЬрд░ рдкреБрдвреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рдЧреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓рд╢реА рдЬреБрд│рдд рдЕрд╕реЗрд▓, рддрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддреА рдХрд╛рдЙрдВрдЯрд░ рдлрдХреНрдд рд╡рд╛рдврддреЗ. рдЬрд░ рдкрд┐рдХреНрд╕реЗрд▓ 64 рднреВрддрдХрд╛рд│рд╛рддреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓ рдмрдлрд░рдордзреАрд▓ рдПрдХрд╛ рдореВрд▓реНрдпрд╛рд╢реА рдЬреБрд│рдд рдЕрд╕реЗрд▓, рддрд░ рдореВрд▓реНрдп рдорд╛рдЧреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓рдордзреНрдпреЗ 6-рдмрд┐рдЯ рдСрдлрд╕реЗрдЯрджреНрд╡рд╛рд░реЗ рдмрджрд▓рд▓реЗ рдЬрд╛рдИрд▓. рдЬрд░ рдорд╛рдЧреАрд▓ рдкрд┐рдХреНрд╕реЗрд▓рдЪрд╛ рд░рдВрдЧ рдереЛрдбрд╛ рд╡реЗрдЧрд│рд╛ рдЕрд╕реЗрд▓, рддрд░ рдлрд░рдХ рд▓рд╣рд╛рди рд╕реНрд╡рд░реВрдкрд╛рдд рджрд░реНрд╢рд╡рд┐рд▓рд╛ рдЬрд╛рддреЛ (2,4, 5 рдЖрдгрд┐ XNUMX рдмрд┐рдЯреНрд╕рдордзреНрдпреЗ рдмрд╕рдгрд╛рд░реНрдпрд╛ рд░рдВрдЧ рдШрдЯрдХрд╛рдВрдордзреАрд▓ рдлрд░рдХрд╛рдВрдЪреЗ рд▓рд╣рд╛рди рдПрдиреНрдХреЛрдбрд┐рдВрдЧ). рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди рд▓рд╛рдЧреВ рдирд╕рд▓реНрдпрд╛рд╕, рд╕рдВрдкреВрд░реНрдг rgba рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЬрд╛рддреЗ.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛