기술 명세서
시스템 아키텍처
전체 시스템을 구성하는 주요 컴포넌트와 상호작용 방식을 정의한다.
시스템 설계
아키텍처가 정해지면 실제 개발에 필요한 구체적인 기술적 결정과 설계를 하며, “어떻게 만들 것인가?”에 대한 질문에 초점을 맞춘다.
그래프 아키텍처
Video Processing
데이터 흐름
Video Processing
소프트웨어 아키텍처
소프트웨어의 개념적 구성 요소와 그 상호 관계를 체계적으로 정의하고, 모듈화 및 계층화를 통해 구조적 일관성을 확보함으로써 장기적인 안정성과 확장성을 보장하는 고수준의 설계 원칙을 수립한다. 또한, 이를 기반으로 최적의 개발 플랫폼 및 기술 스택을 선정할 수 있는 기준을 제공한다
계층 구조
계층 |
역할 및 설명 |
|---|---|
Application |
사용자 App이 실행되는 계층, Task 또는Thread 로 구성, IP(process)C 또는 IT(thread)C 로 수행 |
Application Framework |
App 개발을 위한 기본 구조 및 표준 을 제공하는 틀 ( 일정한 구조와 규칙 제공 ) |
Middleware |
App과 OS 사이에서 중재 역할 수행 ( 데이터 변환, 통신 관리, API 호출 등 ) |
HAL |
H/W와 S/W 간의 추상화된 I/F 계층 ( 하드웨어 종류와 상관없이 일관된 API 로 제어 ) |
OS |
App과 H/W를 관리하는 운영체제, 프로세스 / 메모리 / 파일 시스템 / 네트워크 / 입출력 제어 역할 수행 |
Device Driver |
H/W 장치를 제어하는 계층, OS와 H/W 간 I/F 역할 수행 |
Interrupt Handler |
H/W 인터럽트를 처리하는 모듈 |
Linux Kernel |
OS의 핵심 부분, CPU/ 메모리 / 파일 시스템 등 자원 관리와 App 과 H/W 간 직접적인 I/F 제공 |
소프트웨어 기술 스택
제품을 개발하는 모든 과정에서 활용되는 기술 스택을 정의한다. 소프트웨어를 개발, 실행, 배포 할 수 있는 기반 환경과 개발에 사용하는데 사용되는 기술 조합이다.
SW 개발 플랫폼 |
설명 |
|---|---|
Language |
애플리케이션 및 시스템 소프트웨어 개발에 사용되는 주요 프로그래밍 언어 |
Framework |
카메라 및 영상 처리를 위한 미들웨어 및 프레임워크 |
Development ( SDK ) |
임베디드 OS 커스터마이징 및 시스템 빌드를 위한 도구 |
DevOps ( CI/CD ) |
CI/CD 자동화, 소스 코드 관리, 코드 품질 관리 및 프로젝트 관리 도구 |
소프트웨어 설계
소프트웨어 설계 원칙에 따른 소프트웨어 개발 및 실행 기반 환경 플랫폼의 주요 구성 요소와 계층 구조에 대한 설계도이다.
계층 구조
핵심 구성 요소 |
역할 및 설명 |
|---|---|
Camera App |
카메라 기능을 제공하는 애플리케이션 ( 사진 촬영, 영상 녹화, 미리보기 등 ) |
Picamera2 |
Python 기반의 고수준 카메라 라이브러리 ( libramera 활용 ) |
GStreamer |
멀티미디어 프레임워크로, 인코딩(H.264) 등을 위한 플러그인 ( v4l2src, libcamerasrc 등 ) 제공 |
V4L2 |
리눅스 커널의 비디오 장치 인터페이스로, 카메라의 원시 데이터를 애플리케이션에 전달하는 역할 수행 |
libcamera |
최신 리눅스 카메라 스택으로, 복잡한 카메라 파이프라인을 관리하고 V4L2보다 더 정교한 기능 제공 |
USB |
USB 카메라 및 기타 주변 장치와의 인터페이스를 제공하는 리눅스 드라이버 |
VideoCodec |
영상 및 오디오 데이터를 압축 / 디코딩하는 하드웨어 엔진 |
소스 코드 구조
소프트웨어 플랫폼 아키텍처
임베디드 플랫폼
HW |
Description |
|---|---|
FPGA |
Xilinx Zynq-7000 XC7020-CLG400 |
SoM |
Raspberry Pi 4 CM4 Lite |
Camera I/F |
Cypress FX3 USB 3.0 Controller |
개발 플랫폼
DevKit ( HW ) |
Description |
|---|---|
FPGA |
AMD Zynq™ 7000 SoC ZC702 EVB’d + SW Platform ( SDK IDE, etc ) |
SoM |
Raspberry Pi 4 Model B B’d + SW Platform ( SDK, IDE, etc ) |
Camera I/F |
EZ-USB™ FX3 Camera B’d + ( SDK, IDE, etc ) |
DevKit ( SW ) |
Description |
|---|---|
FPGA |
Off. SDK ( Vitis SW Platform ) |
SoM |
Off. SDK ( Raspberry Pi OS + Raspberry Pi Imager ) |
Camera I/F |
Off. SDK ( EZ-USB™ FX3 SDK ) |