Files
video-v1/vav2/optimization3-hwcodec.txt
2025-09-23 02:26:17 +09:00

87 lines
2.6 KiB
Plaintext

● 🎯 dav1d GPU 가속 진단 결과
📊 핵심 결론: dav1d는 CPU 전용 소프트웨어 디코더
❌ dav1d 자체의 GPU 가속 지원 없음
- dav1d는 순수 CPU 기반 소프트웨어 디코더
- NVIDIA NVDEC, Intel QSV, AMD VCN 등의 하드웨어 가속 지원하지 않음
- GPU 가속이 필요하면 다른 디코더 라이브러리 사용 필요
🔧 Windows AV1 하드웨어 가속 대안 (2024년 현재)
1. Intel Quick Sync Video (QSV)
// Intel 11세대 이상 CPU에서 AV1 하드웨어 디코딩 지원
// API: DXVA2/D3D11VA + Intel OneVPL/MediaSDK
2. NVIDIA NVDEC
// RTX 30시리즈(Ampere) 이상에서 AV1 하드웨어 디코딩 지원
// API: NVDEC + DXVA2/D3D11VA
3. AMD Video Core Next (VCN)
// RDNA2/3 아키텍처에서 AV1 하드웨어 디코딩 지원
// API: VCN + DXVA2/D3D11VA
⚡ 성능 비교
dav1d (CPU 전용)
- 장점: 호환성 100%, 정확도 높음, 크로스플랫폼
- 단점: CPU 사용률 높음, 4K@30fps 한계
하드웨어 가속 (GPU)
- 장점: CPU 사용률 낮음, 4K@60fps+ 가능, 전력 효율 좋음
- 단점: 하드웨어 의존성, 호환성 제한
🚀 GPU 가속 구현 방안
Option 1: Media Foundation + DXVA2/D3D11VA
// Windows Media Foundation을 통한 하드웨어 가속
#include <mfapi.h>
#include <mftransform.h>
// AV1 하드웨어 디코더 직접 사용
Option 2: FFmpeg libav + 하드웨어 가속*
// FFmpeg의 하드웨어 가속 디코더 사용
// avcodec_find_decoder_by_name("av1_qsv"); // Intel
// avcodec_find_decoder_by_name("av1_nvdec"); // NVIDIA
// avcodec_find_decoder_by_name("av1_d3d11va"); // Generic
Option 3: 하이브리드 접근법
// 1차: 하드웨어 가속 시도
// 2차: 실패 시 dav1d로 fallback
if (HasHardwareAV1Support()) {
decoder = CreateHardwareDecoder();
} else {
decoder = CreateDav1dDecoder();
}
📈 예상 성능 향상
| 구분 | dav1d (CPU) | 하드웨어 가속 (GPU) |
|----------|-------------|---------------|
| 4K@30fps | 33ms+ (한계) | 5-15ms |
| CPU 사용률 | 80-90% | 10-20% |
| 전력 소모 | 높음 | 낮음 |
| 배터리 수명 | 짧음 | 긴 편 |
🛠️ 권장 사항
단기 해결책 (현재 dav1d 유지)
1. 멀티스레딩 최적화: num_threads 증가
2. 메모리 풀 활용: 이미 구현됨
3. Zero-copy 디코딩: 이미 구현됨
장기 해결책 (GPU 가속 도입)
1. 하드웨어 감지 로직 구현
2. Media Foundation 기반 하드웨어 디코더 추가
3. Fallback 메커니즘으로 dav1d 유지