libcamera рдЪреЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди, Linux рд╡рд░ рдХреЕрдореЗрд░рд╛ рд╕рдорд░реНрдердирд╛рд╕рд╛рдареА рдПрдХ рд╕реНрдЯреЕрдХ

рдЪрд╛рд░ рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рд╛рдирдВрддрд░, libcamera рдкреНрд░реЛрдЬреЗрдХреНрдЯрдЪреЗ рдкрд╣рд┐рд▓реЗ рдкреНрд░рдХрд╛рд╢рди (0.0.1) рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдд рдЖрд▓реЗ, рдЬреНрдпрд╛рдиреЗ рд▓рд┐рдирдХреНрд╕, Android рдЖрдгрд┐ ChromeOS рдордзреНрдпреЗ рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЕрдореЗрд░рд╛, рдХреЕрдореЗрд░рд╛ рдЖрдгрд┐ рдЯреАрд╡реНрд╣реА рдЯреНрдпреВрдирд░рд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╕реНрдЯреЕрдХ рдСрдлрд░ рдХреЗрд▓рд╛, рдЬреЛ V4L2 API рдЪрд╛ рд╡рд┐рдХрд╛рд╕ рд╕реБрд░реВ рдареЗрд╡рддреЛ. рдЖрдгрд┐ рд╢реЗрд╡рдЯреА рддреЗ рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░реЗрд▓. рд▓рд╛рдпрдмреНрд░рд░реАрдЪреЗ API рдЕрдЬреВрдирд╣реА рдмрджрд▓рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдЖрдгрд┐ рдЕрджреНрдпрд╛рдк рдкреВрд░реНрдгрдкрдгреЗ рд╕реНрдерд┐рд░ рдЭрд╛рд▓реЗрд▓реЗ рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдкреНрд░рдХрд▓реНрдк рдЖрддрд╛рдкрд░реНрдпрдВрдд рд╕рддрдд рд╡рд┐рдХрд╛рд╕ рдореЙрдбреЗрд▓рдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рд╡реИрдпрдХреНрддрд┐рдХ рдкреНрд░рдХрд╛рд╢рдирд╛рдВрдЪреА рд╢рд╛рдЦрд╛ рди рдХрд░рддрд╛ рд╡рд┐рдХрд╕рд┐рдд рдЭрд╛рд▓рд╛ рдЖрд╣реЗ. рд╕реБрд╕рдВрдЧрддрддреЗрд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдгрд╛рд░реНтАНрдпрд╛ API рдмрджрд▓рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдкреЕрдХреЗрдЬрдордзреАрд▓ рд▓рд╛рдпрдмреНрд░рд░реАрдВрдЪреЗ рд╡рд┐рддрд░рдг рд╕реБрд▓рдн рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд┐рддрд░рдгрд╛рдЪреНрдпрд╛ рдЧрд░рдЬреЗрдЪреНрдпрд╛ рдкреНрд░рддрд┐рд╕рд╛рджрд╛рдд, ABI рдЖрдгрд┐ API рдмрджрд▓рд╛рдВрдЪреА рд╡реНрдпрд╛рдкреНрддреА рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░рдгрд╛рд░реА рд░реАрд▓рд┐рдЭ рд╡реЗрд│реЛрд╡реЗрд│реА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдд рдЖрд▓рд╛ рдЖрд╣реЗ. рдкреНрд░рдХрд▓реНрдк рдХреЛрдб C++ рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓рд╛ рдЖрд╣реЗ рдЖрдгрд┐ LGPLv2.1 рдкрд░рд╡рд╛рдиреНрдпрд╛рдЕрдВрддрд░реНрдЧрдд рд╡рд┐рддрд░рд┐рдд рдХреЗрд▓рд╛ рдЖрд╣реЗ.

рд╣рд╛ рдкреНрд░рдХрд▓реНрдк Linux рдХрд░реНрдирд▓рдЪреНрдпрд╛ рдорд▓реНрдЯреАрдореАрдбрд┐рдпрд╛ рдЙрдкрдкреНрд░рдгрд╛рд▓реАрдЪреНрдпрд╛ рд╡рд┐рдХрд╕рдХрд╛рдВрджреНрд╡рд╛рд░реЗ рдХрд╛рд╣реА рдХреЕрдореЗрд░рд╛ рдирд┐рд░реНрдорд╛рддреНрдпрд╛рдВрд╕реЛрдмрдд рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдд рдЖрд╣реЗ рдЬреНрдпрд╛рдпреЛрдЧреЗ рд╕реНрдорд╛рд░реНрдЯрдлреЛрдиреНрд╕рд╕рд╛рдареА рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╕рд╛рдареА рд▓рд┐рдирдХреНрд╕ рд╕рдкреЛрд░реНрдЯ рдЖрдгрд┐ рдкреНрд░реЛрдкреНрд░рд╛рдпрдЯрд░реА рдбреНрд░рд╛рдпрд╡реНрд╣рд░реНрд╕рд╢реА рдЬреЛрдбрд▓реЗрд▓реНрдпрд╛ рдПрдореНрдмреЗрдбреЗрдб рдбрд┐рд╡реНрд╣рд╛рдЗрд╕реЗрд╕рд╕рд╣ рдкрд░рд┐рд╕реНрдерд┐рддреА рд╕рд╛рдорд╛рдиреНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА. API V4L2, рдЖрдзреАрдкрд╛рд╕реВрдирдЪ Linux рдХрд░реНрдирд▓рдордзреНрдпреЗ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ, рдПрдХрд╛ рд╡реЗрд│реА рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рд╡реЗрдЧрд│реНрдпрд╛ рд╡реЗрдм рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддрдпрд╛рд░ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рд╣реЛрддреЗ рдЖрдгрд┐ MCU рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ CPU рдЪреНрдпрд╛ рдЦрд╛рдВрджреНрдпрд╛рд╡рд░ рд╣рд▓рд╡рдгреНрдпрд╛рдЪреНрдпрд╛ рдЕрд▓реАрдХрдбреАрд▓ рдЯреНрд░реЗрдВрдбрд╢реА рдЦрд░рд╛рдмрдкрдгреЗ рдЬреБрд│рд╡реВрди рдШреЗрддрд▓реЗ рдЖрд╣реЗ.

рдкрд╛рд░рдВрдкрд╛рд░рд┐рдХ рдХреЕрдореЗрд▒реНрдпрд╛рдВрдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд, рдЬреНрдпрд╛рдордзреНрдпреЗ рдкреНрд░рд╛рдердорд┐рдХ рдЗрдореЗрдЬ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдСрдкрд░реЗрд╢рдиреНрд╕ рдХреЕрдореЗрд░рд╛ (MCU) рдордзреНрдпреЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╡рд┐рд╢реЗрд╖ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд, рдПрдореНрдмреЗрдбреЗрдб рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рдЦрд░реНрдЪ рдХрдореА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╣реА рдХрд╛рд░реНрдпреЗ рдореБрдЦреНрдп CPU рдЪреНрдпрд╛ рдЦрд╛рдВрджреНрдпрд╛рд╡рд░ рдХреЗрд▓реА рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рддреНрдпрд╛рд╕рд╛рдареА рдЬрдЯрд┐рд▓ рдбреНрд░рд╛рдпрд╡реНрд╣рд░рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЕрд╕рддреЗ. рдиреЙрди-рдУрдкрди-рд╕реЛрд░реНрд╕ рдкрд░рд╡рд╛рдирд╛рдХреГрдд рдШрдЯрдХрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. libcamera рдкреНрд░рдХрд▓реНрдкрд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ рдореНрд╣рдгреВрди, рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдкреНрд░реЛрдкреЛрдирдВрдЯреНрд╕ рдЖрдгрд┐ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЙрддреНрдкрд╛рджрдХрд╛рдВрдиреА рдПрдХ рддрдбрдЬреЛрдб рдЙрдкрд╛рдп рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЬреЛ рдПрдХреАрдХрдбреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдбреЗрд╡реНрд╣рд▓рдкрд░рдЪреНрдпрд╛ рдЧрд░рдЬрд╛ рдкреВрд░реНрдг рдХрд░рддреЛ рдЖрдгрд┐ рджреБрд╕рд░реАрдХрдбреЗ рдХреЕрдореЗрд░рд╛ рдЙрддреНрдкрд╛рджрдХрд╛рдВрдЪреНрдпрд╛ рдмреМрджреНрдзрд┐рдХ рд╕рдВрдкрддреНрддреАрдЪреЗ рд╕рдВрд░рдХреНрд╖рдг рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ.

libcamera рд▓рд╛рдпрдмреНрд░рд░реАрджреНрд╡рд╛рд░реЗ рдСрдлрд░ рдХреЗрд▓реЗрд▓рд╛ рд╕реНрдЯреЕрдХ рдкреВрд░реНрдгрдкрдгреЗ рд╡рд╛рдкрд░рдХрд░реНрддрд╛ рд╕реНрдкреЗрд╕рдордзреНрдпреЗ рд▓рд╛рдЧреВ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рд╡рд┐рджреНрдпрдорд╛рди рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рд╡рд╛рддрд╛рд╡рд░рдг рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╣ рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, V4L API, Gstreamer рдЖрдгрд┐ Android рдХреЕрдореЗрд░рд╛ HAL рд╕рд╛рдареА рд╕реБрд╕рдВрдЧрддрддрд╛ рд╕реНрддрд░ рдкреНрд░рджрд╛рди рдХреЗрд▓реЗ рдЖрд╣реЗрдд. рдЙрдкрдХрд░рдгрд╛рдВрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддреНрдпреЗрдХ рдХреЕрдореЗрд░реНтАНрдпрд╛рд╕рд╛рдареА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рд▓рдХреАрдЪреЗ рдШрдЯрдХ рдореЙрдбреНрдпреВрд▓реНрд╕ рдореНрд╣рдгреВрди рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗрдд рдЬреЗ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рдЪрд╛рд▓рддрд╛рдд рдЖрдгрд┐ IPC рджреНрд╡рд╛рд░реЗ рд▓рд╛рдпрдмреНрд░рд░реАрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд. рдореЙрдбреНрдпреВрд▓реНрд╕рдирд╛ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕рд╡рд░ рдереЗрдЯ рдкреНрд░рд╡реЗрд╢ рдирд╕рддреЛ рдЖрдгрд┐ рдордзреНрдпрд╡рд░реНрддреА API рджреНрд╡рд╛рд░реЗ рдЙрдкрдХрд░рдгрд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ, рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рд╡рд┐рдирдВрддреНрдпрд╛ рддрдкрд╛рд╕рд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд, рдлрд┐рд▓реНрдЯрд░ рдХреЗрд▓реНрдпрд╛ рдЬрд╛рддрд╛рдд рдЖрдгрд┐ рдХреЕрдореЗрд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд░реНрдпрд╛рджрд┐рдд рдЕрд╕рддрд╛рдд.

рд▓рд╛рдпрдмреНрд░рд░реА рдкреНрд░рддрд┐рдорд╛ рдЖрдгрд┐ рд╡реНрд╣рд┐рдбрд┐рдУрдВрдЪреНрдпрд╛ (рдкрд╛рдВрдврд░реЗ рд╢рд┐рд▓реНрд▓рдХ рд╕рдорд╛рдпреЛрдЬрди, рдЖрд╡рд╛рдЬ рдХрдореА рдХрд░рдгреЗ, рд╡реНрд╣рд┐рдбрд┐рдУ рд╕реНрдерд┐рд░реАрдХрд░рдг, рдСрдЯреЛрдлреЛрдХрд╕, рдПрдХреНрд╕рдкреЛрдЬрд░ рдирд┐рд╡рдб рдЗ.) рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЖрдгрд┐ рд╕реБрдзрд╛рд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрд▓реНрдЧреЛрд░рд┐рджрдордордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рджреЗрдЦреАрд▓ рдкреНрд░рджрд╛рди рдХрд░рддреЗ, рдЬреЗ рдЦреБрд▓реНрдпрд╛ рдмрд╛рд╣реНрдп рд▓рд╛рдпрдмреНрд░рд░реА рдХрд┐рдВрд╡рд╛ рдорд╛рд▓рдХреАрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд. рдкреГрдердХ рдореЙрдбреНрдпреВрд▓. API рд╡рд┐рджреНрдпрдорд╛рди рдмрд╛рд╣реНрдп рдЖрдгрд┐ рдЕрдВрдЧрднреВрдд рдХреЕрдореЗрд▒реНрдпрд╛рдВрдЪреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдгреЗ, рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╡рд╛рдкрд░рдгреЗ, рдХреЕрдореЗрд░рд╛ рдХрдиреЗрдХреНрд╢рди рдЖрдгрд┐ рдбрд┐рд╕реНрдХрдиреЗрдХреНрд╢рди рдЗрд╡реНрд╣реЗрдВрдЯ рд╣рд╛рддрд╛рд│рдгреЗ, рд╡реИрдпрдХреНрддрд┐рдХ рдлреНрд░реЗрдо рд╕реНрддрд░рд╛рд╡рд░ рдХреЕрдореЗрд░рд╛ рдбреЗрдЯрд╛ рдХреЕрдкреНрдЪрд░ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдлреНрд▓реЕрд╢рд╕рд╣ рдкреНрд░рддрд┐рдорд╛ рд╕рдордХреНрд░рдорд┐рдд рдХрд░рдгреЗ рдпрд╛рд╕рд╛рд░рдЦреНрдпрд╛ рд╡реИрд╢рд┐рд╖реНрдЯреНрдпрд╛рдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╕рд┐рд╕реНрдЯреАрдордордзреАрд▓ рдЕрдиреЗрдХ рдХреЕрдореЗрд░реНтАНрдпрд╛рдВрд╕рд╣ рд╕реНрд╡рддрдВрддреНрд░рдкрдгреЗ рдХрд╛рд░реНрдп рдХрд░рдгреЗ рдЖрдгрд┐ рдПрдХрд╛ рдХреЕрдореЗрд░реНтАНрдпрд╛рдордзреВрди рдЕрдиреЗрдХ рд╡реНрд╣рд┐рдбрд┐рдУ рдкреНрд░рд╡рд╛рд╣рд╛рдВрдЪреЗ рдПрдХрд╛рдЪрд╡реЗрд│реА рдХреЕрдкреНрдЪрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╡реНрд╣рд┐рдбрд┐рдУ рдХреЙрдиреНрдлрд░рдиреНрд╕рд┐рдВрдЧрд╕рд╛рдареА рдХрдореА рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирд╕рд╣ рдПрдХ рдЖрдгрд┐ рдбрд┐рд╕реНрдХрд╡рд░ рдЖрд░реНрдХрд╛рдЗрд╡реНрд╣рд▓ рд░реЗрдХреЙрд░реНрдбрд┐рдВрдЧрд╕рд╛рдареА рдЙрдЪреНрдЪ рд░рд┐рдЭреЛрд▓реНрдпреВрд╢рдирд╕рд╣).

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

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