JPEGред рдХрдореНрдкреНрд░реЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рдлреЗрд░реА рдЕрднрд┐рд╡рд╛рджрди! рдореИрд▓реЗ рдпреЛ рд▓реЗрдЦ рдореЗ 2019 рдорд╛ рдлрд┐рд░реНрддрд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рднреЗрдЯреНрдЯрд╛рдПрдБред рдпреЛ WAVE рд░ JPEG рдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓реЗрдЦрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рдирд┐рд░рдиреНрддрд░рддрд╛ рд╣реЛ, рдпрд╣рд╛рдБ рдкрд╣рд┐рд▓реЛред рдпрд╕ рдкреНрд░рдХрд╛рд╢рдирдорд╛ рдЫрд╡рд┐ рд╕рдЩреНрдХреЗрддрди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд░ рд╕рдордЧреНрд░ рд░реВрдкрдорд╛ рдврд╛рдБрдЪрд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреЗрдЫред

рдЗрддрд┐рд╣рд╛рд╕ рдХреЛ рдПрдХ рдЪреБрдЯрдХреА

рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ рдХреЛ рдПрдХ рдЪрдореНрдордЪ:

JPEG (рд╕рдВрдпреБрдХреНрдд рдлреЛрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рдореВрд╣) рдлреЛрдЯреЛ рд░ рд╕рдорд╛рди рдЫрд╡рд┐рд╣рд░реВ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд░рд╛рд╕реНрдЯрд░ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдврд╛рдБрдЪрд╛рд╣рд░реВ рдордзреНрдпреЗ рдПрдХ рд╣реЛред

рдпреЛ рдорд╛рдирдХ рд╕рдВрдпреБрдХреНрдд рдлреЛрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ 1991 рдорд╛ рдХреБрд╢рд▓ рдЫрд╡рд┐ рдХрдореНрдкреНрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рд╡рд┐рдХрд╕рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред

рдЫрд╡рд┐рд╣рд░реВ рдХрдЪреНрдЪрд╛рдмрд╛рдЯ JPEG рдорд╛ рдХрд╕рд░реА рдЬрд╛рдиреНрдЫрдиреН?

рдХреЗрд╣реА рдорд╛рдирд┐рд╕рд╣рд░реВрд▓реЗ JPEG рдЫрд╡рд┐рд╣рд░реВ рд╣рдлрдореНрдпрд╛рди рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдЪреНрдЪрд╛ рдбрд╛рдЯрд╛ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░рд┐рдПрдХреЛ рд╣реЛ рднрдиреНрдиреЗ рд╕реЛрдЪреНрдЫрдиреН, рддрд░ рдпреЛ рд╕рддреНрдп рд╣реЛрдЗрдиред рдирд┐рдпрдиреНрддреНрд░рдг рд╕рдЩреНрдХреБрдЪрди рдЕрдШрд┐, рдбрд╛рдЯрд╛ рд▓рд╛рдореЛ рдмрд╛рдЯреЛ рдпрд╛рддреНрд░рд╛ рдЧрд░реНрджрдЫред

рдкрд╣рд┐рд▓реЛ, рд░рдВрдЧ рдореЛрдбреЗрд▓ RGB рдмрд╛рдЯ YCbCr рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХреЛ рдЫред рдпрд╕рдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдкрдирд┐ рдЫ - рдпрд╣рд╛рдБред Y рдЫреЛрдЗрдПрдХреЛ рдЫреИрди, рдХрд┐рдирдХрд┐ рдпреЛ рдЪрдордХрдХреЛ рд▓рд╛рдЧрд┐ рдЬрд┐рдореНрдореЗрд╡рд╛рд░ рдЫ, рд░ рдпрд╕рдХреЛ рдкрд░рд┐рд╡рд░реНрддрди рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реБрдиреЗрдЫред

рдЫрд╡рд┐ рд╕рдВрдЧ рдЧрд░реНрди рдХреЛ рд▓рд╛рдЧреА рдкрд╣рд┐рд▓реЛ рдХреБрд░рд╛ рд╣реЛ "рдкрд╛рддрд▓реЛ" (рд╕рдмрд╕рдореНрдкрд▓рд┐рдВрдЧ)ред рдпреЛ рдмреБрдЭреНрди рд╕рдЬрд┐рд▓реЛ рдЫ: рдкрд┐рдХреНрд╕реЗрд▓рдХреЛ 2x2 рдПрд░реЗ рд▓рд┐рдЗрдиреНрдЫ, рддреНрдпрд╕рдкрдЫрд┐ Cb рд░ Cr рд▓рд┐рдЗрдиреНрдЫ - рдпреА рек рдкрд┐рдХреНрд╕реЗрд▓рдХреЛ YCbCr рдХрдореНрдкреЛрдиреЗрдиреНрдЯрд╣рд░реВ рдордзреНрдпреЗ рдкреНрд░рддреНрдпреЗрдХрдХреЛ рдФрд╕рдд рдорд╛рдирд╣рд░реВред рддрд░, рд╣рд╛рдореАрд▓реЗ 6 рдмрд╛рдЗрдЯ рдЬрд┐рддреНрдпреМрдВ, 4 Y, 4 Cb, 4 Cr рдХреЛ рд╕рдЯреНрдЯрд╛ рд╣рд╛рдореАрд▓реЗ 4 Y рд░ рд╕рдорд╛рди Cb рд░ Cr рдкреНрд░рддреНрдпреЗрдХрдХреЛ рд▓рд╛рдЧрд┐ рдкрд╛рдпреМрдВ (4 + 4 + 4 = 12; 4 + 1 + 1 = 6; 12 - 6 = 6)ред реиxреи рдорд╛рдкрдирдорд╛ рдкрдирд┐, реи:рез рдХрдореНрдкреНрд░реЗрд╕рди рдЕрдиреБрдкрд╛рддрдХреЛ рд╕рд╛рде рд╣рд╛рдирд┐рдкреВрд░реНрдг рдХрдореНрдкреНрд░реЗрд╕рди рдареЛрд╕ рд╕реБрдирд┐рдиреНрдЫред рдпреЛ рд╕рдореНрдкреВрд░реНрдг рдЫрд╡рд┐рдорд╛ рд▓рд╛рдЧреВ рд╣реБрдиреНрдЫред рд░ рддреНрдпрд╕реИрд▓реЗ - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдЖрдзрд╛ рдЖрдХрд╛рд░ рдЫреЛрдбреЗред рд░ рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рд░рдВрдЧ рдзрд╛рд░рдгрд╛ рдХреЛ рд▓рд╛рдЧреА рдпреЛ рдкреНрд░рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫреМрдВред рдПрдХ рд╡реНрдпрдХреНрддрд┐рд▓реЗ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рдЪрдордХрдорд╛ рдлрд░рдХ рджреЗрдЦреНрдиреЗрдЫ, рддрд░ рд░рдВрдЧрдорд╛ рд╣реЛрдЗрди, рдпрджрд┐ рдпреЛ рдкрд┐рдХреНрд╕реЗрд▓рдХреЛ рд╕рд╛рдиреЛ рдмреНрд▓рдХрдорд╛ рдФрд╕рдд рдЫред рдкрд╛рддрд▓реЛ рдкрдирд┐ рдПрдХ рд▓рд╛рдЗрди рдорд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, 2 рдкрд┐рдХреНрд╕реЗрд▓ рддреЗрд░реНрд╕реЛ рд░ рдард╛рдбреЛ рд░реВрдкрдорд╛ред рдкрд╣рд┐рд▓реЛ рд╡рд┐рдХрд▓реНрдк рдзреЗрд░реИ рдкрдЯрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдпрджрд┐ рдЫрд╡рд┐ рдЧреБрдгрд╕реНрддрд░ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╡рд┐рдирд╛рд╢ рд╕рдмреИ рдкреНрд░рджрд░реНрд╢рди рдЧрд░рд┐рдПрдХреЛ рдЫреИрдиред
рдкрд╛рддрд▓реЛ рд╣реБрдиреЗ рджреГрд╢реНрдп рдЪрд┐рддреНрд░рдг (Habr рд▓реЗ рдорд▓рд╛рдИ gif рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдПрди) - https://i.ibb.co/Rg5Th9H/150953010617579181.gif

рддрдпрд╛рд░реА рдХреЛ рдореБрдЦреНрдп рднрд╛рдЧ

рдкреНрд░реЗрдк

рдЕрдм рд╕рдмреИрднрдиреНрджрд╛ рдХрдард┐рди рд░ рд╕рдмреИрднрдиреНрджрд╛ рдЖрд╡рд╢реНрдпрдХ рднрд╛рдЧ рдЖрдЙрдБрдЫред рд╕рдореНрдкреВрд░реНрдг рдЫрд╡рд┐рд▓рд╛рдИ 8x8 рдмреНрд▓рдХрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ (рдпрджрд┐ рд░рд┐рдЬреЛрд▓реНрдпреБрд╕рди рдмреНрд▓рдХ рд╕рд╛рдЗрдбрдХреЛ рдорд▓реНрдЯрд┐рдкрд▓ рдЫреИрди рднрдиреЗ рднрд░рд┐рдиреЗ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ)ред

рдЕрдм рдкреНрд░рддреНрдпреЗрдХ рдмреНрд▓рдХрдорд╛ рд▓рд╛рдЧреВ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдбреАрд╕реАрдЯреА (рдбрд┐рд╕реНрдХреНрд░рд┐рдЯ рдХреЛрд╕рд╛рдЗрди рдЯреНрд░рд╛рдиреНрд╕рдлрд░реНрдо)ред рдпрд╕ рднрд╛рдЧрдорд╛, рд╕рдмреИ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪрд┐рддреНрд░рдмрд╛рдЯ рдмрд╛рд╣рд┐рд░ рдирд┐рдХрд╛рд▓рд┐рдПрдХреЛ рдЫред DCT рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рддрдкрд╛рдИрдВрд▓реЗ рдмреБрдЭреНрдиреБрдкрд░реНрдЫ рдХрд┐ рджрд┐рдЗрдПрдХреЛ рдмреНрд▓рдХ (8 ├Ч 8) рд▓реЗ рдЫрд╡рд┐рдХреЛ рдХреБрдиреИ рдкрдирд┐ рдиреАрд░рд╕ рднрд╛рдЧрд▓рд╛рдИ рд╡рд░реНрдгрди рдЧрд░реНрджрдЫ: рдЖрдХрд╛рд╢, рдкрд░реНрдЦрд╛рд▓; рд╡рд╛ рдпрд╕рд▓реЗ рдЬрдЯрд┐рд▓ рд╕рдВрд░рдЪрдирд╛ (рдХрдкрд╛рд▓, рдкреНрд░рддреАрдХрд╣рд░реВ, рдЖрджрд┐) рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред рдпреЛ рддрд╛рд░реНрдХрд┐рдХ рдЫ рдХрд┐ рд╕рдорд╛рди рд░рдВрдЧ рдХреЛ 64 рдкрд┐рдХреНрд╕реЗрд▓ рдорд╛рддреНрд░ 1 рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрди рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫ, рдХрд┐рдирднрдиреЗ рдмреНрд▓рдХ рд╕рд╛рдЗрдЬ рдкрд╣рд┐рд▓реЗ рдиреИ рдерд╛рд╣рд╛ рдЫред рдХрдореНрдкреНрд░реЗрд╕рдирдХреЛ рд▓рд╛рдЧрд┐ рдзреЗрд░реИ: 64 рджреЗрдЦрд┐ 1ред

DCT рд▓реЗ рдмреНрд▓рдХрд▓рд╛рдИ рд╕реНрдкреЗрдХреНрдЯреНрд░рдордорд╛ рдкрд░рд┐рдгрдд рдЧрд░реНрдЫ, рд░ рдЬрд╣рд╛рдБ рд░рд┐рдбрд┐рдЩрд╣рд░реВ рддреАрд╡реНрд░ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫрдиреН, рдЧреБрдгрд╛рдВрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реБрдиреНрдЫ, рд░ рддреАрд╡реНрд░ рд╕рдВрдХреНрд░рдордг, рдЙрдЪреНрдЪ рдЙрддреНрдкрд╛рджрди рд╣реБрдиреЗрдЫред рдЬрд╣рд╛рдБ рдЧреБрдгрд╛рдВрдХ рдЙрдЪреНрдЪ рдЫ, рдЪрд┐рддреНрд░рд▓реЗ рд░рдВрдЧ рд░ рдЪрдордХрдорд╛ рд╕реНрдкрд╖реНрдЯ рд╕рдВрдХреНрд░рдордгрд╣рд░реВ рджреЗрдЦрд╛рдЙрдБрдЫ, рдЬрд╣рд╛рдБ рдпреЛ рдХрдо рдЫ - рдмреНрд▓рдХрдорд╛ YCbCr рдШрдЯрдХрд╣рд░реВрдХреЛ рдорд╛рдирд╣рд░реВрдорд╛ рдХрдордЬреЛрд░ (рдЪрд┐рдЯреЛ) рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВред

рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг

рдХрдореНрдкреНрд░реЗрд╕рди рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╣рд╛рдБ рд▓рд╛рдЧреВ рдЧрд░рд┐рдПрдХреЛ рдЫред рдкреНрд░рддреНрдпреЗрдХ 8x8 matrices рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рдЧреБрдгрд╛рдВрдХ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрдЦреНрдпрд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рдЫред рдпрджрд┐ рддрдкрд╛рдЗрдБ рдпрд╕рдХреЛ рд╕рдмреИ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдкрдЫрд┐ рдЫрд╡рд┐ рдЧреБрдгрд╕реНрддрд░ рдХрдо рдЧрд░реНрдиреБрд╣реБрдиреНрди рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рд╡рд┐рднрд╛рдЬрдХ рдПрдХ рд╣реБрдиреБрдкрд░реНрдЫред рдпрджрд┐ рдпреЛ рддрд╕реНрдмрд┐рд░рд▓реЗ рдУрдЧрдЯреЗрдХреЛ рдореЗрдореЛрд░реА рддрдкрд╛рдИрдВрдХреЛ рд▓рд╛рдЧрд┐ рдмрдвреА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдЫ рднрдиреЗ, рднрд╛рдЬрдХ рез рднрдиреНрджрд╛ рдареВрд▓реЛ рд╣реБрдиреЗрдЫ, рд░ рднрд╛рдЧрдлрд▓ рдЧреЛрд▓рд╛рдХрд╛рд░ рд╣реБрдиреЗрдЫред рдпреЛ рдмрд╛рд╣рд┐рд░ рдЬрд╛рдиреНрдЫ рдХрд┐ рд░рд╛рдЙрдиреНрдбрд┐рдЩ рдкрдЫрд┐ рддрдкрд╛рдЗрдБ рдкреНрд░рд╛рдпрдГ рдзреЗрд░реИ рд╢реВрдиреНрдп рд╕рдВрдЧ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред

рдХреНрд╡рд╛рдиреНрдЯрд╛рдЗрдЬреЗрд╕рди рдЕрдЭ рдареВрд▓реЛ рдХрдореНрдкреНрд░реЗрд╕рдирдХреЛ рд╕рдореНрднрд╛рд╡рдирд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЧрд░рд┐рдиреНрдЫред рдЧреНрд░рд╛рдл y = sin(x) рдХреЛ рдкрд░рд┐рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрдиреЗ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд╛ рдпреЛ рдХрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

JPEGред рдХрдореНрдкреНрд░реЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рдХрдореНрдкреНрд░реЗрд╕рди

рдкрд╣рд┐рд▓реЗ рд╣рд╛рдореА zig-zag рдврд╛рдБрдЪрд╛рдорд╛ рдореНрдпрд╛рдЯреНрд░рд┐рдХреНрд╕ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреНрдЫреМрдВ:

JPEGред рдХрдореНрдкреНрд░реЗрд╕рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо

рд╣рд╛рдореАрд▓реЗ рд╕рдВрдЦреНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рде рдПрдХ-рдЖрдпрд╛рдореА рдПрд░реЗ рдкрд╛рдЙрдБрдЫреМрдВред рд╣рд╛рдореА рджреЗрдЦреНрдЫреМрдВ рдХрд┐ рдпрд╕рдорд╛ рдзреЗрд░реИ рд╢реВрдиреНрдпрд╣рд░реВ рдЫрдиреН, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рд╣рдЯрд╛рдЙрди рд╕рдХрд┐рдиреНрдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдзреЗрд░реИ рд╢реВрдиреНрдпрд╣рд░реВрдХреЛ рдЕрдиреБрдХреНрд░рдордХреЛ рд╕рдЯреНрдЯрд╛, рд╣рд╛рдореА 1 рд╢реВрдиреНрдп рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдЫреМрдВ рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрдиреБрдХреНрд░рдордорд╛ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рд╕рдВрдХреЗрдд рдЧрд░реНрдиреЗ рд╕рдВрдЦреНрдпрд╛ред рдпрд╕ рддрд░рд┐рдХрд╛рд▓реЗ рддрдкрд╛рдЗрдБ рд╕рдореНрдкреВрд░реНрдг рдПрд░реЗрдХреЛ рдЖрдХрд╛рд░ 1/3 рдорд╛ рд░рд┐рд╕реЗрдЯ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рд╣рдлрдореНрдпрд╛рди рд╡рд┐рдзрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдпреЛ рдПрд░реЗрд▓рд╛рдИ рдХрдореНрдкреНрд░реЗрд╕ рдЧрд░реНрдЫреМрдВ рд░ рдлрд╛рдЗрд▓рдорд╛ рдиреИ рд▓реЗрдЦреНрдЫреМрдВред

рдЬрд╣рд╛рдБ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ

рдЬрддрд╛рддрддреИред PNG рдЬрд╕реНрддреИ, JPEG рдХреНрдпрд╛рдореЗрд░рд╛, OS (рдХрдореНрдкрдиреА рд▓реЛрдЧреЛ, рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдЖрдЗрдХрди, рдердореНрдмрдиреЗрд▓рдХреЛ рд░реВрдкрдорд╛) рд░ рдЫрд╡рд┐рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рд░реВрдкрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рд╕рдмреИ рд╕рдореНрднрд╛рд╡рд┐рдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрд╕ рд╕рдордпрдорд╛, JPEG рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЬреНрдЮрд╛рди рдЕрдм рдХреЗрд╡рд▓ рд╢реИрдХреНрд╖рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдореВрд▓реНрдпрд╡рд╛рди рдЫ, рдХрд┐рдирдХрд┐ рдпреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рд╕рдмреИ рдард╛рдЙрдБрдорд╛ рдмрдирд╛рдЗрдПрдХреЛ рдЫ рд░ рдорд╛рдирд┐рд╕рд╣рд░реВрдХреЛ рдареВрд▓реЛ рд╕рдореВрд╣рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдЫ, рддрд░ рд╡рд┐рдЬреНрдЮрд╛рдирдХреЛ рдЧреНрд░реЗрдирд╛рдЗрдЯ рдЕрдЭреИ рд╕реНрд╡рд╛рджрд┐рд╖реНрдЯ рдЫред

рд╕реНрд░реЛрддрд╣рд░реВ

рд╡рд┐рдХрд┐рдкрд┐рдбрд┐рдпрд╛рдорд╛ YCbCr рдХреЛ рдмрд╛рд░реЗрдорд╛ рд▓реЗрдЦ
JPEG рдорд╛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ
Pikabu рдкреЛрд╖реНрдЯрдмрд╛рдЯ PrEP рдХреЛ рдмрд╛рд░реЗрдорд╛ рдереЛрд░реИ
PrEP рдорд╛ рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд▓реЗрдЦ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди