기술 명세서


시스템 아키텍처

전체 시스템을 구성하는 주요 컴포넌트와 상호작용 방식을 정의한다.

─ ◆ ─

시스템 설계

아키텍처가 정해지면 실제 개발에 필요한 구체적인 기술적 결정과 설계를 하며, “어떻게 만들 것인가?”에 대한 질문에 초점을 맞춘다.

─ ◆ ─

그래프 아키텍처

Video Processing

Video Processing Graph Architecture

─ ◆ ─

데이터 흐름

RPi Data Flow RPi Data Flow (Encrypt)

─ ◆ ─

소프트웨어 아키텍처

소프트웨어의 개념적 구성 요소와 그 상호 관계를 체계적으로 정의하고, 모듈화 및 계층화를 통해 구조적 일관성을 확보함으로써 장기적인 안정성과 확장성을 보장하는 고수준의 설계 원칙을 수립한다. 또한, 이를 기반으로 최적의 개발 플랫폼 및 기술 스택을 선정할 수 있는 기준을 제공한다

계층 구조

계층

역할 및 설명

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 )

─ ◆ ─