기술 명세서
시스템 아키텍처
전체 시스템을 구성하는 주요 컴포넌트와 상호작용 방식을 정의한다.
─ ◆ ─
시스템 설계
아키텍처가 정해지면 실제 개발에 필요한 구체적인 기술적 결정과 설계를 하며, “어떻게 만들 것인가?”에 대한 질문에 초점을 맞춘다.
─ ◆ ─
그래프 아키텍처
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 ) |
─ ◆ ─