본문 바로가기
IT생활

SVT-AV1에서 장기적인 비트레이트 최적화 방법

by 우물 밖 개구리. 2025. 2. 17.
반응형

SVT-AV1에서 장기적인 비트레이트 최적화 방법

SVT-AV1은 Lookahead, 2-Pass뿐만 아니라 AI 기반의 움직임 예측 및 복잡도 분석 기능을 지원하기 때문에, NVENC보다 훨씬 정밀한 비트레이트 제어가 가능함. 하지만 기본 설정만으로는 영상 전체적인 움직임을 고려한 최적의 비트레이트 분배가 어려울 수 있음.

➡️ SVT-AV1에서 움직임이 많은 장면에 집중적으로 비트레이트를 배분하는 방법을 알아보자.


📌 1️⃣ 기본적인 Lookahead 및 2-Pass 설정

SVT-AV1에서는 기본적으로 Lookahead 및 2-Pass 인코딩이 가능하며, 이를 적절히 조정하면 단기적인 비트레이트 최적화가 가능하다.

🔹 FFmpeg 명령어 예제

ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 8000k -preset 4 -svtav1-params "lookahead=256:scd=1" -pix_fmt yuv420p10le output.mp4

옵션 설명

  • lookahead=256 → 256프레임(약 10초 이상)까지 예측하여 움직임을 분석
  • scd=1 → Scene Change Detection(씬 체인지 감지) 활성화 (씬 전환 시 비트레이트 조정)
  • -b:v 8000k → 평균 비트레이트를 설정하되, Lookahead를 통해 움직임이 많은 부분에 더 집중적으로 할당
  • -pix_fmt yuv420p10le → HDR 및 10비트 컬러 지원

📌 Lookahead 프레임 수를 늘리면 장기적인 움직임 분석이 가능하지만, 인코딩 속도가 느려질 수 있음.
(기본은 120, 최대 256 이상 가능)


📌 2️⃣ AI 기반 비트레이트 최적화 (tune 옵션 활용)

SVT-AV1에는 AI 기반의 비트레이트 조정 기능이 내장되어 있어, 사람이 인지하기 어려운 부분에서는 비트레이트를 줄이고, 움직임이 많거나 중요한 장면에서는 더 많은 비트레이트를 배분할 수 있음.

🔹 FFmpeg 명령어 예제

ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 8000k -preset 4 -svtav1-params "tune=0:lookahead=256:scd=1" -pix_fmt yuv420p10le output.mp4

옵션 설명

  • tune=0AI 기반 비트레이트 최적화 활성화 (사람의 시각적 인지를 고려한 비트레이트 분배)
  • tune=1 → 비트레이트를 일정하게 분배하는 일반적인 방식
  • tune=2 → 움직임이 많은 장면에서는 품질보다 속도를 우선시

📌 AI 기반 비트레이트 최적화를 사용하면, 전체적인 움직임을 고려한 분배가 가능하지만 인코딩 속도가 더 느려질 수 있음.


📌 3️⃣ 2-Pass 인코딩으로 비트레이트 최적화

SVT-AV1에서는 2-Pass 인코딩을 활용하면 더욱 정밀한 비트레이트 제어가 가능함.
특히 씬 전환(Scene Change)과 움직임(Motion)을 고려하여 비트레이트를 조정할 수 있음.

🔹 FFmpeg 명령어 예제 (2-Pass)

1️⃣ 첫 번째 패스 (비트레이트 분석)

ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 8000k -preset 4 -svtav1-params "pass=1:lookahead=256:scd=1" -an -f null NUL

2️⃣ 두 번째 패스 (최적화된 비트레이트 적용)

ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 8000k -preset 4 -svtav1-params "pass=2:lookahead=256:scd=1" -pix_fmt yuv420p10le output.mp4

이 방식의 장점

  • 2-Pass를 사용하면, 전체 영상을 분석한 후 가장 효율적인 비트레이트 배분이 가능
  • 씬 체인지 감지(SCD)를 사용하면 장면별로 비트레이트를 최적화 가능
  • Lookahead를 256 이상으로 설정하면 더 장기적인 비트레이트 최적화 가능

📌 NVENC는 2-Pass를 지원하지 않지만, SVT-AV1은 지원하므로 비트레이트 최적화가 훨씬 뛰어남.


📌 4️⃣ ROI (Region of Interest) Encoding 활용 (움직임이 많은 부분에 집중적으로 비트레이트 할당)

SVT-AV1에서는 화면의 특정 영역(예: 얼굴, 중요한 오브젝트)에 더 많은 비트레이트를 할당하는 ROI 기능을 지원함.

🔹 FFmpeg 명령어 예제 (ROI 활용)

ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 8000k -preset 4 -svtav1-params "roi:1,100,100,800,600:qp=10" output.mp4

옵션 설명

  • roi:1,100,100,800,600:qp=10 → 영상의 특정 영역(100,100 ~ 800,600)에 더 높은 품질(QP=10)을 적용
  • 움직임이 많은 부분(예: 스포츠 경기에서 공이 있는 영역)에 집중적으로 비트레이트를 할당 가능
  • 정적인 배경 부분에서는 자동으로 비트레이트를 줄여 효율적인 인코딩 가능

📌 ROI 기능을 활용하면 움직임이 많은 영역만 선명하게 처리할 수 있음.


📌 결론: SVT-AV1에서 장기적인 비트레이트 최적화 방법

Lookahead를 최대 256 이상으로 늘려서 더 장기적인 움직임 예측 가능
AI 기반 비트레이트 최적화(tune=0)를 활용하면 사람이 인지하는 품질을 최적화 가능
2-Pass 인코딩을 사용하면 전체적인 비트레이트 배분을 분석한 후 최적화 가능
ROI(Region of Interest) 기능을 활용하면 움직임이 많은 부분에 집중적으로 비트레이트 할당 가능

📌 즉, Lookahead + AI 기반 비트레이트 최적화 + 2-Pass + ROI 기능을 조합하면, NVENC보다 훨씬 정밀한 비트레이트 컨트롤이 가능!

반응형