Metadata-Version: 2.4
Name: pms-nvidia-processor
Version: 2.16.0
Summary: lib for pms nvidia processors
Author: HyeongSeok Kim
Author-email: tiryul@gmail.com
Requires-Python: ==3.12.*
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: albumentations (>=1.4.13,<2.0.0)
Requires-Dist: loguru
Requires-Dist: numpy
Requires-Dist: pms-inference-engine (>=2.1.0,<2.2.0)
Requires-Dist: pms-tensorrt (>=2.1.3,<2.2.0)
Description-Content-Type: text/markdown

# PMS NVIDIA Processor: High-Performance GPU Inference Backend

`pms-nvidia-processor`는 고해상도 비디오 및 이미지 복원 AI 모델들을 **NVIDIA GPU 및 TensorRT 환경에서 초고속으로 추론(Inference)하기 위해 설계된 백엔드 프로세서 패키지**입니다.

이 라이브러리는 사내 표준 추론 프레임워크인 `pms-inference-engine`의 규격을 완벽히 준수하는 플러그인 형태로 동작합니다. 이를 통해 상위 오케스트레이터의 코드 변경 없이, 다양한 비전(Vision) 모델의 I/O 텐서 매핑, 메모리 관리, 그리고 전/후처리를 하드웨어에 최적화된 방식으로 수행합니다.

## 🚀 Key Engineering Features

- **Advanced Patch-Based Inference Engine**
  - 4K, 8K와 같은 초고해상도 미디어 처리 시 발생하는 GPU VRAM 부족(OOM) 현상을 방지하기 위해, 자체 구현한 고도화된 패치 분할 및 병합(Patcher) 알고리즘(`utility/patcher`)을 적용했습니다.
  - 오버랩(Overlap) 블렌딩 기법을 통해 패치 경계선의 아티팩트(Seam)를 완벽하게 제거하여, 메모리 제약 없이 원본 화질의 무손실 추론을 보장합니다.
- **Dynamic Normalization & Tensor IO Pipeline**
  - 모델마다 상이한 입력 정규화(Normalization) 방식과 채널 순서를 유연하게 처리하기 위해, 팩토리 패턴 기반의 `Normalizer` 및 데이터 타입 변환(`Caster`) 유틸리티를 추상화했습니다.
- **Extensive Model Support & Modularity**
  - DPIR, DRU-RBPN (Deinterlacing, Super Resolution), FISF, Color ResNet 등 수십 가지의 복잡한 딥러닝 모델들을 각각 독립적인 `Processor` 모듈로 캡슐화(Encapsulation)했습니다.
  - 새로운 모델이 추가되더라도 기존 코드를 수정할 필요 없이 (Open-Closed Principle 준수) 즉시 파이프라인에 통합할 수 있습니다.
- **Robust Verification Pipeline**
  - 프로덕션 배포 전 결함을 원천 차단하기 위해, 지원하는 모든 프로세서와 코어 유틸리티(Patcher, Normalizer)에 대해 방대한 `pytest` 기반의 유닛 테스트 환경을 구축했습니다.

## 📁 Architecture & Module Structure

패키지 내부는 공통 추론 유틸리티와 개별 모델별 파이프라인으로 명확하게 분리되어 있습니다.

```text
pms_nvidia_processor/
├── tools/                      # TensorRT Engine (.plan) 빌드 및 패키지 관리 스크립트
├── utility/                    # 공통 유틸리티 모듈
├── processor/                  # 개별 AI 모델 파이프라인 구현체 (Base 상속)
│   ├── base/                   # 프로세서 인터페이스 및 공통 설정 의존성
│   ├── dpir/                   # DPIR (Denoising) 파이프라인
│   ├── dru_rbpn_sr_f3/         # DRU-RBPN Super Resolution (3-Frame)
│   ├── dru_rbpn_deinter_.../   # Deinterlacing 파이프라인 시리즈
│   └── (기타 10+종 모델 프로세서)
└── tests/                      # 모델 및 유틸리티 기능 검증 Unit Test Suite

```

## 🛠 Tech Stack

* **Language:** Python 3.x
* **Hardware Acceleration:** NVIDIA GPU, TensorRT
* **Core Abstraction:** `pms-inference-engine` Interface
* **Dependency Management:** Poetry
* **Testing & CI/CD:** Pytest, GitHub Actions

## 📦 Getting Started

### Installation

본 모듈은 `pms-inference-engine` 환경의 NVIDIA 백엔드로 동작합니다. GPU 드라이버 및 TensorRT가 호스트 환경에 구성되어 있어야 합니다.

```bash
pip install pms-nvidia-processor

```


