Skip to content

Top Speed Codec은 어떻게 비트레이트를 줄이는가 ​

TSC는 Tencent Cloud의 AI 기반 지능형 인코딩 기술입니다. 같은 화질에서 비트레이트를 최대 50% 줄이는 게 목표이고, 실제로 그 근처까지 갑니다.


들어가기 전에 ​

트랜스코딩에서 비트레이트를 줄이는 건 쉽습니다. CRF를 올리면 됩니다. 문제는 화질도 같이 떨어진다는 점입니다. "같은 화질에서 비트레이트만 줄이겠다"는 건 결국 인코더가 더 똑똑해져야 한다는 뜻입니다.

전통적인 x264/x265는 프레임 단위로 균일한 전략을 씁니다. 복잡한 장면이든 단순한 장면이든 같은 룰로 비트를 배분하다 보니, 단순한 장면에서는 비트가 낭비되고 복잡한 장면에서는 화질이 깨집니다. TSC는 이걸 AI로 풀겠다는 접근입니다.

AWS에서 비슷한 포지션을 찾자면 MediaConvert의 QVBR 모드가 있습니다. "목표 화질을 유지하면서 비트레이트를 동적으로 조절한다"는 컨셉은 유사하지만, TSC는 장면 인식 레벨에서 더 적극적으로 개입합니다.


핵심 기술 ​

TSC의 차별점은 세 가지 레벨에서 동시에 비트레이트를 제어한다는 점입니다.

1. 장면 인식 (Scene Recognition) ​

AI가 콘텐츠 특성을 실시간으로 분석합니다. 정적인 장면, 빠른 액션, 그래디언트 배경, 얼굴 클로즈업 — 각 장면 타입에 따라 인코딩 전략을 바꿉니다. 사람 눈은 모든 장면을 동일한 해상도로 인식하지 않으니, 인코더도 그럴 필요가 없습니다.

2. 동적 인코딩 (Dynamic Encoding) ​

프레임 간 복잡도 변화에 따라 인코딩 파라미터를 동적으로 조정합니다. 단순 장면에서는 비트를 아끼고, 복잡한 장면에 몰아줍니다. 결과적으로 평균 비트레이트는 낮아지는데 시각적 품질은 유지됩니다.

3. CTU/라인/프레임 3레벨 비트레이트 제어 ​

가장 세밀한 단위(CTU, Coding Tree Unit)부터 라인, 프레임 레벨까지 3단계로 비트 배분을 최적화합니다. 프레임 내에서도 중요한 영역(얼굴, 텍스트)과 덜 중요한 영역(배경, 하늘)의 비트 할당이 다릅니다.


실제 성능 ​

동일 소스, 동일 화질(VQA 스코어 기준) 조건에서 x264 대비:

해상도비트레이트 절감CPU 부하 변화화질 차이
720p34.6%-5.4%동일 (미세하게 TSC 우위)
480p25.9%-1.4%동일
288p15.2%0%동일

해상도가 높을수록 절감 효과가 큽니다. 1080p 이상에서는 40% 가까이 줄이는 경우도 있습니다. CPU 부하는 같거나 오히려 줄어듭니다 — 인코딩이 느려지지 않는다는 뜻입니다.

비트레이트가 30% 줄면 CDN 트래픽 비용도 30% 줄어듭니다. 시청자가 많은 라이브 환경에서는 10%만 줄여도 월 청구서가 확 달라집니다.


지원 코덱 ​

TSC는 단일 코덱이 아니라 인코딩 최적화 계층입니다. 아래 코덱에 모두 적용 가능합니다:

인코더코덱설명
libten264H.264/AVC가장 범용. 모든 디바이스 호환
libten265H.265/HEVCH.264 대비 추가 30~40% 절감
libten266H.266/VVC차세대 코덱. 디코더 보급 확대 중
libtenav1AV1로열티 프리. 웹 브라우저 중심

H.265에 TSC를 얹으면 x264 대비 비트레이트가 60% 이상 줄어드는 셈입니다. 코덱 자체의 효율(30~40%)에 TSC의 추가 절감(30~50%)이 곱해지기 때문입니다.


적용 방식 ​

TSC는 두 가지 방식으로 사용할 수 있습니다:

1. 클라우드 API (MPS / CSS) ​

Tencent Cloud MPS(파일 처리)나 CSS(라이브)에서 트랜스코딩 템플릿을 TSC로 지정하면 됩니다. 별도 인프라 없이 클라우드에서 바로 처리할 수 있습니다. 과금은 Standard 트랜스코딩 대비 높지만, CDN 비용 절감분이 더 크면 이득입니다.

2. 서버 측 SDK ​

tscsdk를 받으면 TSC 인코더가 통합된 ffmpeg 바이너리가 들어있습니다. 자체 인프라에서 기존 ffmpeg 파이프라인을 거의 그대로 유지하면서 인코더만 libten264로 바꾸면 TSC가 적용됩니다.

bash
./bin/ffmpeg -i input.mp4 -c:v libten264 -preset:v slower \
  -ten264-params crf=25:vbv-maxrate=2000:vbv-bufsize=4000 \
  -sdk_config sdk_config -y output.mp4

서버 측 SDK에 대한 상세한 테스트 방법은 다른 글에서 더 자세히 다뤘습니다.


데모 체험 ​

직접 눈으로 확인하고 싶다면:

mps.live/encoding

이 사이트에서 TSC 인코딩 결과를 실시간으로 비교해볼 수 있습니다. 동일 소스를 x264와 TSC로 나란히 보여주니, 비트레이트 차이 대비 화질이 어떤지 직접 판단할 수 있습니다. 백문이 불여일견입니다.


마치며 ​

TSC를 한 줄로 정리하면: "AI가 장면을 이해하고, 사람 눈에 안 보이는 곳에서 비트를 아끼는 인코더."

실무에서 의미 있는 건 세 가지입니다:

  • 비트레이트 30~50% 절감 — CDN 비용이 곧 돈인 환경에서 직접적인 비용 절감
  • CPU 부하 동일 — 인코딩 속도를 희생하지 않으니 파이프라인 구조를 바꿀 필요 없음
  • 드롭인 교체 — 기존 ffmpeg 명령에서 -c:v libx264를 -c:v libten264로 바꾸면 끝

"화질 떨어뜨리지 않고 비용 줄이는 방법 없나?"라는 질문에 대한 가장 현실적인 답 중 하나입니다.

참고 자료 ​

基于 VitePress 构建 · 部署于腾讯云 EdgeOne Pages