
рдЖрдЬрдХрд▓, рдЬрдм рддрдВрддреНрд░рд┐рдХрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдмрд┐рдЧ рдбреЗрдЯрд╛ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реА рд╣реИ рдХрд┐ рдмрд┐рдЯрдХреЙрдЗрди рдореЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╡реЗрддрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЙрд╕рдХреЗ рд▓рд┐рдП рд▓рд╛рднрджрд╛рдпрдХ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдореБрдЭреЗ рдЧреНрд░рд╛рдлрд┐рдХ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ, рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдЯреНрд░рд╛рдВрд╕рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рддреЗрдЬ рдУрдкрди рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЦреЛрдЬрдиреЗ рдХрд╛ рдХрд╛рдо рдорд┐рд▓рд╛, рдЬреЛ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрднрд┐рдЧреНрд░рд╛рд╣рд┐рддрд╛ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ ред рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдХрд╛рд░реНрдп рдкрд╣рд▓реЗ рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ - рдХрдВрдкреНрдпреВрдЯрд░ рджреГрд╖реНрдЯрд┐ рдФрд░ рдорд╢реАрди рд╕реАрдЦрдиреЗ рдХреА рд╕рднреА рддрдХрдиреАрдХреЛрдВ рдХреЗ рд▓рд┐рдП, рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдХрднреА-рдХрднреА рдордзреНрдпрд╡рд░реНрддреА рдбреЗрдЯрд╛ рдХреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рд╣реЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рддреЛ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рддрд░реАрдХреЗ рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╡рд╛рдВрдЫрдиреАрдп рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╣рдореЗрдВ рд╡рд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдорд┐рд▓реЗрдЧреА рдЬрд┐рд╕рдХреА рд╣рдо рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЙрддреНрдкрд╛рдж рд╕реЗ рдирд┐рдкрдЯреЗрдВрдЧреЗ рдЬреЛ рд╕рдорд╛рди рдФрд░ рдХрдИ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рд░рд▓ рдХрд░рддрд╛ рд╣реИ - Google рдмреЗрдВрдЪрдорд╛рд░реНрдХред
рддреЛ, рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдЯреАрдХ рд╡рд┐рд╡рд░рдг рдмрддрд╛рддрд╛ рд╣реИ: рдЖрд╡реЗрджрди рдореЗрдВ, 24 рдФрд░ 8 рдмрд┐рдЯ рд░рдВрдЧ рдХреА рдЧрд╣рд░рд╛рдИ рдХреЗ рд╕рд╛рде рдЬреЗрдкреА рдФрд░ рдЯрд┐рдлрд╝ рдлрд╛рдЗрд▓реЗрдВ, рд╕рд╛рде рд╣реА 32-рдмрд┐рдЯ рдмреАрдПрдордкреА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЫрд╡рд┐ рдХрд╛ рдЖрдХрд╛рд░ рдЫреЛрдЯреЗ (32x32 рдкрд┐рдХреНрд╕реЗрд▓) рд╕реЗ рдмрдбрд╝реЗ рддрдХ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 15K рдХрд╛ рд╕рдВрдХрд▓реНрдк рд╣реЛрддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдиреНрд╣реЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реНрд╡рд░реВрдкреЛрдВ рдореЗрдВ рдбрд┐рд╕реНрдХ рдореЗрдВ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдпрд╣ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдУрдкрди рд╕реЛрд░реНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдореЗрдВ рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢ AVX2 рдХреЗ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЖрдзреБрдирд┐рдХ рдЗрдВрдЯреЗрд▓ рдкреНрд░реЛрд╕реЗрд╕рд░ рдкрд░ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рд╣реЛрддрд╛ рд╣реИред рдкреБрд╕реНрддрдХрд╛рд▓рдп DirectX DXT1 рд╕рдВрдХреБрдЪрд┐рдд рдмрдирд╛рд╡рдЯ рдкреНрд░рд╛рд░реВрдк рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рднреА рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдВрдбреЛрдЬ рдЗрдореЗрдЬрд┐рдВрдЧ рдХрдВрдкреЛрдиреЗрдВрдЯ рдХреЛ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдорд╛рдирджрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рд░реВрдкрд░реЗрдЦрд╛, рдЕрд░реНрдерд╛рдд, рдЖрдкрдХреЛ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЦреЛрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ WIC рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд░рд╛рдмрд░ рдпрд╛ рддреЗрдЬрд╝реА рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЖрд╡рд╢реНрдпрдХрддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рдХрд▓ рдХреАред
Bmp, tiff, jpeg рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдорд┐рд▓реЗрдВ
рд╕рдорд╛рдзрд╛рди рдХреА рд╢реБрд░реБрдЖрдд рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдмрд┐рдирд╛ рд╕реЛрдЪреЗ рд╕рдордЭреЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрджреНрдпрдкрд┐ рдпрд╣ рдмрд╣реБрдд рдЬрд▓реНрджреА рдХрджрдо рдирд╣реАрдВ рд╣реИ - рд╡рд╛рдВрдЫрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рднреВрдорд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЙрдореНрдореАрджрд╡рд╛рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ
рд╡рд┐рдХрд┐рд▓рд┐рдХреНрд╕ рдЧрд┐рдердм ,
рд╕реНрдЯреИрдХрдУрд╡рд░рдлрд╝реНрд▓реЛ рдФрд░ рдЕрдиреНрдп Google рдХрд╛ рдЧрд╣рди рдЕрдзреНрдпрдпрдиред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдереЗ:
- FreeImage ред рдкреНрд░рд╕рд┐рджреНрдз рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ LibJPEG, LibPNG, LibTIFF рдкрд░ рдПрдХ рд╢реЗрд▓ред DXT1 рд╕рдорд░реНрдерди рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдореМрдЬреВрдж рд╣реИред рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдореЗрдВ рдЬреЗрдкреАрдИрдЬреА рдХреА рдмрдЪрдд рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдмрд╣реБрдд рд╣реА рд╡рд┐рд╡реЗрдХрдкреВрд░реНрд╡рдХ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЧрдИ рд╣реИ - 100, 75.50 рдФрд░ 25%ред рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬреАрд╡рдВрдд рдФрд░ рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рд╣реИ - рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг 3.18.0 31 рдЬреБрд▓рд╛рдИ, 2018 рдХреЛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рдЕрд╕реЗрдВрдмрд▓реА рддреБрдЪреНрдЫ рд╣реИ, рд╕рднреА рдШрдЯрдХ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
- Cimg рдпрд╣ рдПрдХ C ++ рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓ рд░реИрдкрд░ рд╣реИ рдЬреЛ рдПрдХ рдкреНрд░рд╛рдЪреАрди
рдЖрд░реНрдЯрд┐рдлрд╝рд┐рд╢рд┐рдпрд▓ рдкреИрдХреЗрдЬ ImageMagick рдкрд░ рд╣реИ ред рдкреИрдХреЗрдЬ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдмрд┐рд▓реНрдб-рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЗрд╕реЗ рд╕реАрдзреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реИ, Cimg рдХреЛ рджрд░рдХрд┐рдирд╛рд░ рдХрд░рдирд╛ред рдЗрд╕рдореЗрдВ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВ: рдлрд┐рд▓реНрдЯрд░, рд░реВрдкрд╛рдВрддрд░рдг, рдЖрдХрд╛рд░рд┐рдХреА рдХреА рдкрд░рд┐рднрд╛рд╖рд╛, рдЖрджрд┐ред рдПрдЪрдбреАрдЖрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдбреАрдПрдХреНрд╕рдЯреА 1 рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред - рдбреЗрд╡рд┐рд▓ ( рдбреЗрд╡рд▓рдкрд░ рдХреА рдЫрд╡рд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА )ред рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдУрдкрди-рд╕реНрдЯрд╛рдЗрд▓ рд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реАред рдЗрд╕рдореЗрдВ LibJPEG, LibPNG, LibTIFF рдкрд░ рдПрдХ рд╢реЗрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд╡реНрдпрд╛рдкрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рднреА рд╣реИ, рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд DXT1 рд╕рд╣рд┐рдд рдХрдИ рдЫрд╡рд┐ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рд▓рд┐рдП рд╕реАрдПрдордХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдирд┐рд░реНрднрд░рддрд╛рдПрдВ, рдЬрд┐рдирдореЗрдВ LibJPEG, LibPNG, LibTIFF, рд╢реИрддрд╛рди рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдЕрд▓рдЧ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╡реАрдирддрдо рдбреЗрд╡рд┐рд▓ рдЕрдкрдбреЗрдЯ 01/01/2017 рджрд┐рдирд╛рдВрдХрд┐рдд рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓рд╛ рдПрдХ рдЖрдо рддреМрд░ рдкрд░ 2014 рдореЗрдВ рд╣реБрдЖ рдерд╛, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред
- OpenImageIO ред рдпрд╣ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреЗрд╢реЗрд╡рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рддреИрдирд╛рдд рд╣реИред рдпрд╣ рдХрдИ рд╡рд┐рджреЗрд╢реА рдлреЛрдЯреЛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡реАрдбрд┐рдпреЛ рдХреЗ рд╕рд╛рде рдкреНрд▓рдЧ-рдЗрди рдХрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдб рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдмреВрд╕реНрдЯ рдФрд░ рдХреНрдпреВрдЯреА 4 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХреЛрдИ рддреИрдпрд╛рд░-рдХрд┐рдП рдЧрдП рдЗрдХрдЯреНрдареЗ рд╕рдВрд╕реНрдХрд░рдг рдирд╣реАрдВ рд╣реИред
- рдмреВрд╕реНрдЯ рдЬреАрдЖрдИрдПрд▓ (рдЬреЗрдиреЗрд░рд┐рдХ рдЗрдореЗрдЬ рд▓рд╛рдЗрдмреНрд░реЗрд░реА) рдмреВрд╕реНрдЯ рдФрд░ рдпрд╣реА рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╕рднреА рдирд╣реАрдВред рдЗрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ LibJPEG, LibPNG рдФрд░ LibTIFF рдкрд░ рдПрдХ рдЖрд╡рд░рдг рднреА рд╣реИред
- SDL_image 2.0 SDL рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдЖрдк рд╣рдБрд╕реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ LibJPEG, LibPNG рдФрд░ LibTIFF рдкрд░ рдПрдХ рд╢реЗрд▓ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рднреА рдкрд╛рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ / рдЖрд░реНрдХ: AVX2 рд╕реНрд╡рд┐рдЪ рдХреЗ рдЕрдзрд┐рдХрддрдо рд╕реНрддрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рддрд╣рдд рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рддрд╛рдЬрд╛
OpenCV рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреИрдХреЗрдЬ рд╕реЗ рд▓рд┐рдП рдЧрдП рдХрд╛рдо рдХреЛ рдЧрддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП LibJPEG, LibPNG рдФрд░ LibTIFF рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рднреА рдпрд╣реА рдмрд╛рдд рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдВ
рдЕрдЧрд▓рд╛ рд╕рдорд╛рдзрд╛рди рдХрджрдо рднреА рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдкрд╛рдпрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреА рддреБрд▓рдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдирд┐рд░реНрдорд╛рдг, рдФрд░ Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдорд╛рдЗрдХреНрд░реЛрдмреЗрдирдорд╛рд░реНрдХрд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬреЛ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рд╕рдВрдХреАрд░реНрдг рд╣рд▓рдХреЛрдВ рдореЗрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕реЗ рд╕рд░рд▓ рдФрд░ рддреЗрдЬ рдмрдирд╛рддрд╛ рд╣реИред
Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ C ++ 11 рдЪрдХреНрд░ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдбрд╛рд▓реЗ рдЧрдП рдХреЛрдб рдХреЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдорд╛рдк рд╕рдХрддрд╛ рд╣реИред
static void BM_foo1(benchmark::State& state) {
рдПрдХ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ
рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЪрд▓рд╛рдПрдВ:
BENCHMARK_MAIN();
рдлрд┐рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЬрд╛рд░реА рдХрд░реЗрдВ - рдХрдВрд╕реЛрд▓ рдЖрдЙрдЯрдкреБрдЯ, json, csvред
рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓реА (рдкреНрд░реЛрд╕реЗрд╕рд░, рдХреИрд╢ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди) рдкрд░ рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛, рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдкрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдХреБрд▓ рд╡реИрд╢реНрд╡рд┐рдХ рдкрд░рд┐рдЪрд╛рд▓рди рд╕рдордп, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рд▓реЗрдиреЗ рдХрд╛ рд╕рдордп рднреАред рдпреЗ рд╕рдордп рдЖрдо рддреМрд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ - рдкрд╣рд▓рд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдореЗрдВ рджреЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рд╕рднреА рдХреЛрд░ рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рдордп рдХрд╛ рдпреЛрдЧ рд╣реИред
Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдЕрдВрддрд┐рдо рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рд╕рдордп рдХреЗ рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реА рд╕рдЯреАрдХ рдорд╛рдк рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдорд╛рдк рдХрд░рддреЗ рд╣реБрдП, рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдиреЗ рдЖрдк рдЗрд╕рдХрд╛ рдЪрдпрди рдХрд░ рд▓реЗрддрд╛ рд╣реИред
рд░рдирдЯрд╛рдЗрдо рдХрд╛ "рд╕рдЯреАрдХ рдорд╛рдк" рдХреНрдпрд╛ рд╣реИ? рдЖрдк рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╢реЛрдз рдкреНрд░рдмрдВрдз рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдХрд╣рдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдорд╛рдк рдкреНрд░реЛрд╕реЗрд╕рд░ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рд╕рдЯреАрдХрддрд╛ рдХрд╛ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рдХреНрд░рдо рдмрд┐рд▓реНрдХреБрд▓ рдпрд╣реА рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЖрдЙрдЯрдкреБрдЯ рдиреИрдиреЛрд╕реЗрдХрдВрдб рдореЗрдВ рд╣реИ;
- рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЧрдП рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рд▓реЙрдиреНрдЪ рд╕реЗ рд▓реЙрдиреНрдЪ рддрдХ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рд╣реИрдВ;
- рдореЗрд░реЗ рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдХреЗ рдЖрдВрдХрдбрд╝реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдФрд░ рдЗрд╕рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдкрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднрд░реЛрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рджреБрдирд┐рдпрд╛ рдХреЗ рдХрд┐рд╕реА рднреА рдСрдЯреЛрдореЛрдмрд╛рдЗрд▓ рдЪрд┐рдВрддрд╛ рдХреЗ рдСрди-рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддреЛ рд╣рдо рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░реЗрдВрдЧреЗред
рдХреЗрд╡рд▓ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рдмрд╛рдд: рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рдмреАрдЪ Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреИрд╢ рдХреА "рд╕рдлрд╛рдИ" рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдХрд┐рди Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХрдИ рдЕрдиреНрдп рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ:
- рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (рдУ) рдХреА рд╕реНрдкрд░реНрд╢реЛрдиреНрдореБрдЦ рдЬрдЯрд┐рд▓рддрд╛ рдХреА рдЧрдгрдирд╛;
- рдорд▓реНрдЯреА-рдереНрд░реЗрдбреЗрдб рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЗ рд╕рд╛рде рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЙрдирдХреА рдЕрд╡рдзрд┐ рдХреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЯрд┐рдХреНрд╕ рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ "рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп" рдореЛрдб (рджреАрд╡рд╛рд░ рдШрдбрд╝реА) рдореЗрдВ рдорд╛рдкрддреЗ рд╣реИрдВ;
- "рдореИрдиреБрдЕрд▓" рд╕рдордп рдорд╛рдк рдХреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм GPU рдкрд░ рдХрд╛рдо рдорд╛рдкрддреЗ рд╣реИрдВ;
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдорд╛рдкрд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдирд┐рдХрд╛рдп рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╕реЗрдЯ рдХрд░реЗрдВ;
- рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреА рдХрдИ рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП рдФрд╕рдд рдореВрд▓реНрдп, рдФрд╕рдд рдФрд░ рдорд╛рдирдХ рд╡рд┐рдЪрд▓рди рджрд┐рдЦрд╛рдПрдВ;
- рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдФрд░ рдЯреИрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ рдЬреЛ Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреЗред
Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдХреЛ рдЬреАрдердм
рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛
рдЬрд╛рддрд╛ рд╣реИ , рд╕реАрдореЗрдХ (рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдЕрд╕реЗрдВрдмрд▓реА рдЙрдкрд▓рдмреНрдз рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреБрдХреНрдд рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝реЗрдЧреА (рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╢рд╛рд▓реНрд▓реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд▓рд┐рдВрдХ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИ), рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреЗ рдХреЛрдб рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рддреА рд╣реИред .h, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╕рдм рдХреБрдЫ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдпрджрд┐ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди,
рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХреЗрддрд┐рдд рд╕рд╛рдЗрдЯ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрд╣рд╛рдВ рдЖрдк рдХрдо рд╕реЗ рдХрдо рдХреБрдЫ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░ рдорджрдж рдПрдХ
рд╡рд┐рд╢реЗрд╖ рдЙрддреНрдкрд╛рдж рдордВрдЪ рд╣реИ ред
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдм рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ред рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, 4 рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рдирд╛рдо рдХреЗ рддрд╣рдд рд▓реЛрдб рдФрд░ рдмрдЪрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
- 15k рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде 8-рдмрд┐рдЯ jpeg рдлрд╝рд╛рдЗрд▓
- 15k рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде 24-рдмрд┐рдЯ рдЬреЗрдкреАрдЖрд░ рдлрд╝рд╛рдЗрд▓
- 15k рдХреЗ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде 24-рдмрд┐рдЯ рдЯрд┐рдлрд╝ рдлрд╝рд╛рдЗрд▓
- 32x32 рдХреЗ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде 32-рдмрд┐рдЯ рдмреАрдПрдордкреА рдлрд╝рд╛рдЗрд▓
рдирддреАрдЬреЗ рдорд┐рд▓рддреЗ рд╣реИрдВ
рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдпреЛрдЬрдирд╛рдмрджреНрдз рдерд╛ рдХрд┐ рд╕рднреА рдкрд╛рдП рдЧрдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдЕрд░реНрдерд╛рддреН, FreeImage, Cimg, DevIL, OpenImageIO, Boost GIL рдФрд░ SDL_image 2.0, рд╡рд┐рдВрдбреЛрдЬ рдЗрдорд┐рд╢рди рдХрдВрдкреЛрдиреЗрдВрдЯ (WIC) рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг-рддреБрд▓рдирд╛ рдореЗрдВ рднрд╛рдЧ рд▓реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдмреВрд╕реНрдЯ рдФрд░ рдПрд╕рдбреАрдПрд▓ рдЬреИрд╕реЗ "рд░рд╛рдХреНрд╖рд╕реЛрдВ" рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЕрдВрддрд┐рдо рддреАрди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдЖрдкрд╛рддрдХрд╛рд▓реАрди рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрд░рдХреНрд╖рд┐рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкрд╣рд▓реЗ рддреАрди рдореЗрдВ рд╕реЗ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред рдФрд░, рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╡рд╣ рдорд┐рд▓реА рдереАред рд╣рд╛рд▓рд╛рдВрдХрд┐ рддреБрд░рдВрдд рдирд╣реАрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд░рд┐рдкреЛрд░реНрдЯ рд╣реИ, рдЬреЛ рджрд░реНрд╢рд╛рддреА рд╣реИ рдХрд┐:
- рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рдХреБрдЪрд▓ рд╕реНрдХреЛрд░ рдХреЗ рд╕рд╛рде FreeImage рд╕рднреА рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ WIC рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЕрдм рдирд╣реАрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- Cimg WIC рдХреЛ рд▓реЛрдбрд┐рдВрдЧ рдЯрд┐рдл рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣рд░ рдЬрдЧрд╣ рд╕рд╛рдл-рд╕реБрдерд░рд╛ рдЦреЛ рджреЗрддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдпрд╣ рдереЛрдбрд╝рд╛ (5% рд╕реЗ рдХрдо) рддреЗрдЬреА рд╕реЗ рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд╢, рдЙрд╕реЗ рднреА рд╣рдЯрд╛рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ ImageMagick рдкреИрдХреЗрдЬ рдХреЗ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рд╢реИрддрд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдмрдиреА рд╣реБрдИ рд╣реИред рдпрд╣ bmp рдФрд░ tiff (WIC рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 3 рдФрд░ 2.8 рдЧреБрдирд╛ рдЕрдзрд┐рдХ!) рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЙрддреНрдХреГрд╖реНрдЯ рдкрд░рд┐рдгрд╛рдо рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рдХрд╛рд▓реЗ рдФрд░ рд╕рдлреЗрдж jpeg (WIC рдХреА рддреБрд▓рдирд╛ рдореЗрдВ 1.75x рдмреЗрд╣рддрд░), рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рдпрдорд┐рдд 24-рдмрд┐рдЯ jpeg рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣ 3 рд╕реЗ рдХрд░рддрд╛ рд╣реИ WIC рдХреЗ рдореБрдХрд╛рдмрд▓реЗ% рдзреАрдорд╛ред
08/15/18 11:15:44 Running c:\WIC\WIC_test\Release\WIC_test.exe Run on (8 X 4008 MHz CPU s) CPU Caches: L1 Data 32K (x4) L1 Instruction 32K (x4) L2 Unified 262K (x4) L3 Unified 8388K (x1) |
Benchmark | Time | CPU | Iterations |
BM_WIC8jpeg | 72 ms | 70 ms | 11 |
BM_cimg8jpeg | 562 ms | 52 ms | 10 |
BM_FreeImage8jpeg | 147 ms | 144 ms | 5 |
BM_devIL8jpeg | 41 ms | 41 ms | 17 |
|
BM_WIC24jpeg | 266 ms | 260 ms | 3 |
BM_cimg24jpeg | 656 ms | 128 ms | 6 |
BM_FreeImage24jpeg | 594 ms | 594 ms | 1 |
BM_devIL24jpeg | 276 ms | 276 ms | 3 |
|
BM_WIC24tiff | 844 ms | 844 ms | 1 |
BM_cimg24tiff | 808 ms | 131 ms | 5 |
BM_FreeImage24tiff | 953 ms | 938 ms | 1 |
BM_devIL24tiff | 305 ms | 305 ms | 2 |
|
BM_WIC32 | 3 ms | 3 ms | 236 |
BM_cimg32 | 71 ms | 7 ms | 90 |
BM_FreeImage32 | 6 ms | 5 ms | 112 |
BM_devIL32 | 1 ms | 1 ms | 747 |
рдмреЗрд╢рдХ, рдЗрд╕ рд╕реНрддрд░ рдкрд░ рдбреЗрд╡рд┐рд▓ рдХреЛ рднреА рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рдПрдХ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдлреНрд░реЗрдо рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ -
рд▓рд┐рдмрдЬрдкреНрд░реЗрд╕-рдЯрд░реНрдмреЛ ред
рдЗрд╕рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЖрд╕рд╛рдиреА рд╕реЗ рддрд╛рд▓рд┐рдпреЛрдВ рд╕реЗ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ -
рд▓рд┐рдмрдЬрдкреНрд░реЗрд╕-рдЯрд░реНрдмреЛ рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ libjpeg рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ (рдПрдкреАрдЖрдИ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЕрдкрдиреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 32-рдмрд┐рдЯ рдмрдлрд╝рд░реНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛)ред рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ, x86 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП Libjpeg-рдЯрд░реНрдмреЛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡реЗрдХреНрдЯрд░ рдирд┐рд░реНрджреЗрд╢реЛрдВ (SSE2, AVX2) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░, рдЗрд╕рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, libjpeg (!) рд╕реЗ 2-6 рдЧреБрдирд╛ рддреЗрдЬ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд▓рд╛ рдХрджрдо libjpeg рдХреЗ рдмрдЬрд╛рдп Libjpeg-рдЯрд░реНрдмреЛ рдХреЗ рд╕рд╛рде Devil рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╣реИред Libakepeg- рдЯрд░реНрдмреЛ рд╕реАрдПрдордХреЗ рдХреА рдорджрдж рд╕реЗ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд (рдХреЗрд╡рд▓ #define рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд╕рд╛рде, рдЬреЛ рдбреЗрд╡рд┐рд▓ рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ libjpeg рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ) Devil рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рд░рд┐рдкреЛрд░реНрдЯ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
Benchmark | Time | CPU | Iterations |
BM_WIC8jpeg | 72 ms | 68 ms | 9 |
BM_cimg8jpeg | 565 ms | 39 ms | 10 |
BM_FreeImage8jpeg | 148 ms | 141 ms | 5 |
BM_devIL8jpeg | 31 ms | 31 ms | 24 |
|
BM_WIC24jpeg | 269 ms | 266 ms | 2 |
BM_cimg24jpeg | 675 ms | 131 ms | 5 |
BM_FreeImage24jpeg | 604 ms | 594 ms | 1 |
BM_devIL24jpeg | 149 ms | 150 ms | 5 |
|
BM_WIC24tiff | 833 ms | 828 ms | 1 |
BM_cimg24tiff | 785 ms | 138 ms | 5 |
BM_FreeImage24tiff | 943 ms | 938 ms | 1 |
BM_devIL24tiff | 318 ms | 320 ms | 2 |
|
BM_WIC32 | 4 ms | 3 ms | 236 |
BM_cimg32 | 74 ms | 8 ms | 56 |
BM_FreeImage32 | 6 ms | 5 ms | 100 |
BM_devIL32 | 1 ms | 1 ms | 747 |
рдмреЗрд╢рдХ, jpeg рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рди рдореЗрдВ рд╕реБрдзрд╛рд░ libjpeg рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рджреЛрдЧреБрдирд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рдХреНрдпреЛрдВрдХрд┐ рдЧрддрд┐ рд╢реНрд░реЗрд╖реНрдарддрд╛ рдХреЗрд╡рд▓ jpeg рдПрдиреНрдХреЛрдбрд┐рдВрдЧ / рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХрд╛ рдУрд╡рд░рд╣реЗрдб рд╢рд╛рдорд┐рд▓ рд╣реИред
рд▓реЗрдХрд┐рди рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдФрд╕рддрди рд╢реИрддрд╛рди 8-рдмрд┐рдЯ рдЬреЗрдкреАрдИрдЬреА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ
2.3 рдЧреБрдирд╛, 24-рдмрд┐рдЯ рдЬреЗрдкреАрдИрдЬреА
1.8 рдЧреБрдирд╛, 24-рдмрд┐рдЯ рдЯрд┐рдлрд╝ -
2.7 рдЧреБрдирд╛, 32-рдмрд┐рдЯ рдмреАрдПрдордкреА -
3.5 рдЧреБрдирд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдбрдмреНрд▓реНрдпреВрдЖрдИрд╕реА рд╕реЗ рддреЗрдЬ рд╣реИред
рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рддреАрди рдЧреНрд░реАрд╖реНрдордХрд╛рд▓реАрди рдкреВрд░реНрд╡-рдЕрд╡рдХрд╛рд╢ рдХрд╛рд░реНрдп рджрд┐рд╡рд╕ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рд░реНрдгрдп рдкрд░ рдЦрд░реНрдЪ рдХрд┐рдП рдЧрдП рдереЗред рдмреЗрд╢рдХ, рдЕрдЧрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рд╣реЛрддрд╛, рддреЛ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рдПрдХ рдФрд░ рдЕрдзрд┐рдХ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реЛрдЧрд╛, рдФрд░ рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛, рддреЛ рд╢рд╛рдпрдж рдореИрдВ рдЙрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рд▓рд┐рдЦреВрдВрдЧрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдЦреБрдж рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣рд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЬреЛ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдЧреНрд░рд╛рдлрд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рд╣рд░ рджреГрд╖реНрдЯрд┐ рд╕реЗ рддреНрд╡рд░рд┐рдд рдФрд░ рдЖрд╕рд╛рди рд╣реИ, рддреЛ
DevIL рдкрд░ рдзреНрдпрд╛рди
рджреЗрдВ , рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЛрдб рдХреА рддреБрд▓рдирд╛рддреНрдордХ рдорд╛рдк рдЬрд▓реНрджреА рдФрд░ рд╕рдЯреАрдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ
Google рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдЖрдкрдХреА рд╕реЗрд╡рд╛ рдореЗрдВ рд╣реИред