| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- device in use
- silent printing
- custom printing
- rolldown
- github 100mb
- Failed to compiled
- nextjs
- camera access
- html
- adb pair
- Recoil
- Each child in a list should have a unique "key" prop.
- Git
- dvh
- react-native-dotenv
- react-native
- 이미지 데이터 타입
- ELECTRON
- ffi-napi
- npm package
- github pdf
- Can't resolve
- github lfs
- adb connect
- animation
- electron-packager
- vercel git lfs
- camera permission
- augmentedDevice
- 티스토리 성능
- Today
- Total
Bleeding edge
AV1와 NVENC의 차이 본문
요즘 영상 인코딩 쪽을 보다 보면 계속 부딪히는 질문이 있다.
“NVENC가 빠르다는데 AV1은 왜 쓰지?” / “NVENC 최고 옵션이면 이미 좋은거 아닌가?”
이걸 그냥 속도 vs 품질 정도로 이해하고 있었는데, 조금 깊게 보니까 이건 그런 문제가 아니라
애초에 설계 철학이 다른 문제였다.
구조부터 다름
NVENC는 GPU 안에 들어있는 전용 인코딩 칩(ASIC)이다. 프로그램이 아니라 하드웨어다.
그래서 특징이 명확하다: 빠름 / 일정함 / 대신 유연성 없음.
반대로 AV1 (libaom, SVT, 그리고 GPU 기반 구현들)은 그냥 코드다.
CPU든 GPU든 위에서 돌아가는 알고리즘이다. 그래서 느릴 수 있지만, 대신 얼마든지 복잡하게 만들 수 있다.
핵심 차이: 얼마나 많이 비교하느냐
영상 압축은 결국 이 문제다.
“이 블록을 어떻게 표현해야 제일 작아지냐?”
여기서 둘이 갈린다.
- NVENC → 후보 몇 개만 보고 빠르게 결정
- AV1 → 가능한 후보 거의 다 보고 계산해서 선택
이걸 그림으로 보면 이 느낌이다:
NVENC: [후보 3개] → 빠르게 선택
AV1: [후보 30개] → 다 계산 → 최적 선택
실제로 어디서 용량 차이가 나냐
1) 블록 분할 (Partition)
영상은 블록으로 쪼개서 압축한다.
- AV1: 128 → 64 → 32 → 16 → 8 → 4까지 계속 쪼개보면서 최적 선택
- NVENC: 몇 개만 시도하고 빨리 끝냄
이게 왜 중요하냐면, 디테일 표현력이 여기서 결정된다.
👉 여기서 이미 10~20% 차이
2) 모드 선택 (Mode Decision)
각 블록을 intra(자기 프레임)로 할지, inter(이전 프레임)로 할지 결정하는 단계
- AV1: intra 여러 개 + inter 여러 개 → 다 비교
- NVENC: 몇 개만 보고 선택
👉 여기서 5~15%
3) 모션 추정 (Motion Estimation)
프레임 간 움직임을 얼마나 정확히 찾느냐
- AV1: 멀리까지 찾고 + 정밀하게 맞추고 + 여러 후보 비교
- NVENC: 범위 제한 + 빠르게 끝냄
👉 여기서 5~10%
전체 차이
위 요소들을 다 합치면:
NVENC (max) : ████████████████████ (1.0)
AV1 (중간) : ███████████████ (~0.6~0.7)
AV1 (고품질) : █████████████ (~0.5~0.6)
👉 20~40% 용량 차이
속도는 왜 이렇게 차이나냐
이건 더 단순하다.
NVENC → 고정 파이프라인 → 분기 없음 → 계속 흘러감
AV1 → 재귀 탐색 → 분기 많음 → 경우의 수 폭발
그래서 느낌이 딱 이거다:
- NVENC = 그리디
- AV1 = 완전탐색 + pruning
비용 관점에서 보면
이게 실제로 중요한 포인트다.
NVENC → compute ↓ / storage + network ↑
AV1 → compute ↑ / storage + network ↓
예시 (직관적으로)
1TB 트래픽 기준:
NVENC : 1.0 TB
AV1 : 0.6 ~ 0.7 TB
→ 하루 0.3TB 절감
→ 규모 커지면 비용 차이 크게 남
정리
이건 뭐가 더 좋은 문제가 아니라, 뭘 포기했냐의 차이다.
- NVENC → 탐색을 줄이고 속도를 얻음
- AV1 → 시간을 쓰고 압축을 얻음
한 줄 정리
NVENC는 “빨리 괜찮은 선택”
AV1은 “느리지만 최적 선택”
'CS' 카테고리의 다른 글
| JPEG 안의 FF C0와 FF C2는 무엇일까? (1) | 2026.04.14 |
|---|---|
| 각 코덱이 생긴 이유 (0) | 2026.04.04 |
| ROS 2에서 카메라 노드 제어: Inactive vs Subprocess (0) | 2025.09.03 |
| ROS2 DDS 환경 설정 확인하기: `ps` 명령어 활용 가이드 (0) | 2025.08.19 |
| ROS 2 통신의 기반, DDS(Data Distribution Service)란 (2) | 2025.08.10 |