87 lines
2.6 KiB
Plaintext
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 유지 |