0.0.1๋ ๊ฐ์ ๊ฐ๋ฐ ๋์ libcamera ํ๋ก์ ํธ(4)์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๊ฐ ํ์ฑ๋์ด Linux, Android ๋ฐ ChromeOS์์ ๋น๋์ค ์นด๋ฉ๋ผ, ์นด๋ฉ๋ผ ๋ฐ TV ํ๋์ ํจ๊ป ์๋ํ๊ธฐ ์ํ ์ํํธ์จ์ด ์คํ์ ์ ๊ณตํ์ผ๋ฉฐ V2L2.1 API ๊ฐ๋ฐ์ ๊ณ์ํ์ต๋๋ค. ๊ฒฐ๊ตญ ๊ต์ฒดํ๊ฒ ๋ฉ๋๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API๊ฐ ๊ณ์ ๋ณ๊ฒฝ๋๊ณ ์๊ณ ์์ง ์์ ํ ์์ ํ๋์ง ์์๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ๋ ์ง๊ธ๊น์ง ์ง์์ ์ธ ๊ฐ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ณ ๋ฆด๋ฆฌ์ค๋ฅผ ๋ถ๊ธฐํ์ง ์๊ณ ๊ฐ๋ฐ๋์์ต๋๋ค. ํธํ์ฑ์ ์ํฅ์ ๋ฏธ์น๋ API ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ณ ํจํค์ง์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๋ฌ์ ๋จ์ํํ๊ธฐ ์ํ ๋ฐฐํฌํ์ ํ์์ฑ์ ๋์ํ์ฌ ์ด์ ABI ๋ฐ API ๋ณ๊ฒฝ ๋ฒ์๋ฅผ ๋ฐ์ํ๋ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์์ฑํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ C++๋ก ์์ฑ๋์์ผ๋ฉฐ LGPLvXNUMX ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ด ํ๋ก์ ํธ๋ ๋ ์ ๋๋ผ์ด๋ฒ์ ์ฐ๊ฒฐ๋ ์ค๋งํธํฐ ๋ฐ ์๋ฒ ๋๋ ์ฅ์น์ฉ ์นด๋ฉ๋ผ์ ๋ํ Linux ์ง์ ์ํฉ์ ์ ์ํํ๊ธฐ ์ํด ์ผ๋ถ ์นด๋ฉ๋ผ ์ ์กฐ์ ์ฒด์ ํจ๊ป Linux ์ปค๋์ ๋ฉํฐ๋ฏธ๋์ด ํ์ ์์คํ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. Linux ์ปค๋์์ ์ด๋ฏธ ์ฌ์ฉ ๊ฐ๋ฅํ API V4L2๋ ํ๋ ๊ธฐ์กด์ ๋ณ๋ ์น ์นด๋ฉ๋ผ์ ํจ๊ป ์๋ํ๋๋ก ๋ง๋ค์ด์ก์ผ๋ MCU ๊ธฐ๋ฅ์ CPU๋ก ์ฎ๊ธฐ๋ ์ต๊ทผ ์ถ์ธ์ ์ ๋๋ก ์ ์ํ์ง ๋ชปํ์ต๋๋ค.
๊ธฐ๋ณธ ์ด๋ฏธ์ง ์ฒ๋ฆฌ ์์ ์ด ๋น์ฉ ์ ๊ฐ์ ์ํด ์นด๋ฉ๋ผ(MCU)์ ๋ด์ฅ๋ ํน์ ํ๋ก์ธ์์์ ์ํ๋๋ ๊ธฐ์กด ์นด๋ฉ๋ผ์ ๋ฌ๋ฆฌ ์๋ฒ ๋๋ ์ฅ์น์์๋ ์ด๋ฌํ ๊ธฐ๋ฅ์ด ๋ฉ์ธ CPU์ ์ด๊นจ์์ ์ํ๋๋ฉฐ ๋ค์๊ณผ ๊ฐ์ ๋ณต์กํ ๋๋ผ์ด๋ฒ๊ฐ ํ์ํฉ๋๋ค. ์คํ ์์ค๊ฐ ์๋ ๋ผ์ด์ ์ค ๊ตฌ์ฑ ์์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. libcamera ํ๋ก์ ํธ์ ์ผํ์ผ๋ก ์คํ ์์ค ์ํํธ์จ์ด ์ง์ง์์ ํ๋์จ์ด ์ ์กฐ์ ์ฒด๋ ํํธ์ผ๋ก๋ ์คํ ์์ค ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ๊ณ ๋ค๋ฅธ ํํธ์ผ๋ก๋ ์นด๋ฉ๋ผ ์ ์กฐ์ ์ฒด์ ์ง์ ์ฌ์ฐ์ ๋ณดํธํ ์ ์๋ ์ ์ถฉ ์๋ฃจ์ ์ ๋ง๋ค๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค.
libcamera ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ๊ณตํ๋ ์คํ์ ์ ์ ์ผ๋ก ์ฌ์ฉ์ ๊ณต๊ฐ์์ ๊ตฌํ๋ฉ๋๋ค. ๊ธฐ์กด ์ํํธ์จ์ด ํ๊ฒฝ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ์ ํธํ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด V4L API, Gstreamer ๋ฐ Android Camera HAL์ ๋ํ ํธํ์ฑ ๋ ์ด์ด๊ฐ ์ ๊ณต๋ฉ๋๋ค. ์ฅ๋น์ ์ํธ ์์ฉํ๊ธฐ ์ํด ๊ฐ ์นด๋ฉ๋ผ์ ํน์ ํ ๋ ์ ๊ตฌ์ฑ ์์๋ ๋ณ๋์ ํ๋ก์ธ์ค์์ ์คํ๋๊ณ IPC๋ฅผ ํตํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ํธ ์์ฉํ๋ ๋ชจ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ชจ๋์ ์ฅ์น์ ์ง์ ์ก์ธ์คํ ์ ์์ผ๋ฉฐ ์ค๊ฐ API๋ฅผ ํตํด ์ฅ๋น์ ์ก์ธ์คํฉ๋๋ค. ์ด๋ฅผ ํตํด ์์ฒญ์ ํ์ธ, ํํฐ๋ง๋๊ณ ์นด๋ฉ๋ผ ์ ์ด์ ํ์ํ ๊ธฐ๋ฅ์๋ง ์ก์ธ์คํ๋๋ก ์ ํ๋ฉ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ํ ์ด๋ฏธ์ง์ ๋น๋์ค์ ํ์ง์ ์ฒ๋ฆฌํ๊ณ ๊ฐ์ ํ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ(ํ์ดํธ ๋ฐธ๋ฐ์ค ์กฐ์ , ๋
ธ์ด์ฆ ๊ฐ์, ๋น๋์ค ์์ ํ, ์๋ ์ด์ , ๋
ธ์ถ ์ ํ ๋ฑ)์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ฉฐ, ์ด๋ ๊ฐ๋ฐฉํ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ๋
์ ํํ๋ก ์ฐ๊ฒฐ๋ ์ ์์ต๋๋ค. ๊ฒฉ๋ฆฌ๋ ๋ชจ๋. API๋ ๊ธฐ์กด ์ธ๋ถ ๋ฐ ๋ด์ฅ ์นด๋ฉ๋ผ์ ๊ธฐ๋ฅ ๊ฒฐ์ , ์ฅ์น ํ๋กํ ์ฌ์ฉ, ์นด๋ฉ๋ผ ์ฐ๊ฒฐ ๋ฐ ์ฐ๊ฒฐ ํด์ ์ด๋ฒคํธ ์ฒ๋ฆฌ, ๊ฐ๋ณ ํ๋ ์ ์์ค์์ ์นด๋ฉ๋ผ ๋ฐ์ดํฐ ์บก์ฒ ๊ด๋ฆฌ, ์ด๋ฏธ์ง๋ฅผ ํ๋์์ ๋๊ธฐํ์ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ํ ์ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์คํ
์ ์๋ ์ฌ๋ฌ ๋์ ์นด๋ฉ๋ผ์ ๋ณ๋๋ก ์์
ํ๊ณ ํ ๋์ ์นด๋ฉ๋ผ์์ ์ฌ๋ฌ ๋น๋์ค ์คํธ๋ฆผ์ ๋์์ ์บก์ฒํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค(์: ํ์ ํ์๋ฅผ ์ํ ์ ํด์๋ ์นด๋ฉ๋ผ์ ๋์คํฌ ๊ธฐ๋ก ๋ณด๊ด์ ์ํ ๊ณ ํด์๋ ์นด๋ฉ๋ผ).
์ถ์ฒ : opennet.ru