ΠŸΡŠΡ€Π²ΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° libcamera, стСк Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π° Π² Linux

Π‘Π»Π΅Π΄ Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ Π³ΠΎΠ΄ΠΈΠ½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° бСшС Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Π½Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° libcamera (0.0.1), ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Ρ‰ софтуСрСн стСк Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°ΠΌΠ΅Ρ€ΠΈ, ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ ΠΈ Π’Π’ Ρ‚ΡƒΠ½Π΅Ρ€ΠΈ Π² Linux, Android ΠΈ ChromeOS, ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π° Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° V4L2 API ΠΈ Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка Ρ‰Π΅ Π³ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈ. Въй ΠΊΠ°Ρ‚ΠΎ API Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° всС ΠΎΡ‰Π΅ сС промСня ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ напълно стабилизиран, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ досСга сС Ρ€Π°Π·Π²ΠΈΠ²Π° Π±Π΅Π· разклоняванС Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ издания, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠΎΠ΄Π΅Π» Π½Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅. Π’ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π½Π° нСобходимостта дистрибуциитС Π΄Π° слСдят ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² API, ΠΊΠΎΠΈΡ‚ΠΎ засягат ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚Ρ‚Π°, ΠΈ Π΄Π° сС опрости доставката Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ, сСга Π΅ Π²Π·Π΅Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π½ΠΎ Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ вСрсии, отразяващи стСпСнта Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² ABI ΠΈ API. ΠšΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π΅ написан Π½Π° C++ ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π· LGPLv2.1.

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ сС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ подсистСми Π½Π° ядрото Π½Π° Linux Π·Π°Π΅Π΄Π½ΠΎ с някои ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈ Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ, Π·Π° Π΄Π° сС Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·ΠΈΡ€Π° ситуацията с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Linux Π·Π° ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ Π·Π° смартфони ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ устройства, ΠΊΠΎΠΈΡ‚ΠΎ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ със собствСни Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ. API V4L2, ΠΊΠΎΠΉΡ‚ΠΎ Π²Π΅Ρ‡Π΅ Π΅ Π½Π°Π»ΠΈΡ‡Π΅Π½ Π² ядрото Π½Π° Linux, ΠΏΠΎ Π΅Π΄Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ бСшС създадСн Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ ΡƒΠ΅Π± ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ ΠΈ Π΅ слабо Π°Π΄Π°ΠΏΡ‚ΠΈΡ€Π°Π½ към ΡΠΊΠΎΡ€ΠΎΡˆΠ½Π°Ρ‚Π° тСндСнция Π·Π° прСмСстванС Π½Π° функционалността Π½Π° MCU Π²ΡŠΡ€Ρ…Ρƒ Ρ€Π°ΠΌΠ΅Π½Π΅Ρ‚Π΅ Π½Π° процСсора.

Π—Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ Ρ„ΠΎΡ‚ΠΎΠ°ΠΏΠ°Ρ€Π°Ρ‚ΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡŠΡ€Π²ΠΈΡ‡Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° изобраТСния сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π½Π° спСциализиран процСсор, Π²Π³Ρ€Π°Π΄Π΅Π½ във Ρ„ΠΎΡ‚ΠΎΠ°ΠΏΠ°Ρ€Π°Ρ‚Π° (MCU), във Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈΡ‚Π΅ устройства, Π·Π° Π΄Π° сС намалят Ρ€Π°Π·Ρ…ΠΎΠ΄ΠΈΡ‚Π΅, Ρ‚Π΅Π·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚ Π½Π° Ρ€Π°ΠΌΠ΅Π½Π΅Ρ‚Π΅ Π½Π° главния процСсор ΠΈ изискват слоТСн Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ€Π°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ Π±Π΅Π· ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. ΠšΠ°Ρ‚ΠΎ част ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° libcamera, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠ½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° софтуСр с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄ ΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€ сС ΠΎΠΏΠΈΡ‚Π°Ρ…Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ компромисно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ, ΠΎΡ‚ Π΅Π΄Π½Π° страна, Π΄Π° Π·Π°Π΄ΠΎΠ²ΠΎΠ»ΠΈ Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° софтуСр с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Π° ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, позволява Π·Π°Ρ‰ΠΈΡ‚Π° Π½Π° ΠΈΠ½Ρ‚Π΅Π»Π΅ΠΊΡ‚ΡƒΠ°Π»Π½Π°Ρ‚Π° собствСност Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ.

Π‘Ρ‚Π΅ΠΊΡŠΡ‚, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½ ΠΎΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° libcamera, Π΅ Π²Π½Π΅Π΄Ρ€Π΅Π½ изцяло Π² потрСбитСлското пространство. Π—Π° Π΄Π° сС осигури ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ със ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ софтуСрни срСди ΠΈ прилоТСния, са прСдоставСни слоСвС Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π·Π° V4L API, Gstreamer ΠΈ Android Camera HAL. ΠŸΠ°Ρ‚Π΅Π½Ρ‚ΠΎΠ²Π°Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ, спСцифични Π·Π° всяка ΠΊΠ°ΠΌΠ΅Ρ€Π° Π·Π° взаимодСйствиС с ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅, са ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½ΠΈ ΠΊΠ°Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ работят Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ процСси ΠΈ взаимодСйстват с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Ρ‡Ρ€Π΅Π· IPC. ΠœΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ нямат Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ устройството ΠΈ ΠΈΠΌΠ°Ρ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅Ρ‚ΠΎ Ρ‡Ρ€Π΅Π· ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ API, Ρ‡Ρ€Π΅Π· ΠΊΠΎΠΉΡ‚ΠΎ заявкитС сС провСряват, Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚ ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Ρ‚ само Π΄ΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ функционалността, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π°.

Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° прСдоставя Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ подобряванС Π½Π° качСството Π½Π° изобраТСния ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅ (Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° баланса Π½Π° бялото, намаляванС Π½Π° ΡˆΡƒΠΌΠ°, Π²ΠΈΠ΄Π΅ΠΎ стабилизация, автофокус, ΠΈΠ·Π±ΠΎΡ€ Π½Π° Скспозиция ΠΈ Π΄Ρ€.), ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ΠΈ външни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈΠ»ΠΈ собствСни ΠΈΠ·ΠΎΠ»ΠΈΡ€Π°Π½ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ. API осигурява Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠ°Ρ‚ΠΎ опрСдСлянС Π½Π° функционалността Π½Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ΠΈ външни ΠΈ Π²Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈ Π½Π° устройства, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° с ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π°, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° заснСманСто Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ ΠΊΠ°ΠΌΠ΅Ρ€Π°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»Π΅Π½ ΠΊΠ°Π΄ΡŠΡ€ ΠΈ синхронизиранС Π½Π° изобраТСния със свСткавица. Има Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΎΡ‚Π΄Π΅Π»Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с няколко ΠΊΠ°ΠΌΠ΅Ρ€ΠΈ Π² систСмата ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ заснСманС Π½Π° няколко Π²ΠΈΠ΄Π΅ΠΎ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ Π΅Π΄Π½Π° ΠΊΠ°ΠΌΠ΅Ρ€Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π΅Π΄Π½Π° с ниска Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΡ Π·Π° Π²ΠΈΠ΄Π΅ΠΎΠΊΠΎΠ½Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ ΠΈ Π΄Ρ€ΡƒΠ³Π° с висока Ρ€Π΅Π·ΠΎΠ»ΡŽΡ†ΠΈΡ Π·Π° Π°Ρ€Ρ…ΠΈΠ²Π΅Π½ запис Π½Π° диск).

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€