YUV 컬러 인코딩 포맷으로 수십 밤을 잠 못 이루며 작업한 후, 저는 이 놀라운 포맷에 대한 정보가 얼마나 적은지 깨달았습니다. 하지만 P2P 비디오 스트리밍이나 AI로 비디오 스트림을 처리하는 사람들에게는 엄청나게 유용할 수 있습니다.
언뜻 보기에 RGB 와 YUV는 색상을 표현하는 방식이 다를 뿐인 것처럼 보일 수 있습니다. 하지만 이러한 구분의 바탕에는 편의성 대 효율성, 정확성 대 성능, 완벽한 인식 대 눈에 띄는 손실 없는 압축이라는 지속적인 싸움이 있습니다. RGB 가 색상 공간의 확실한 왕이라고 생각할 수도 있습니다. 결국 카메라, 화면, 대부분의 신경망이 RGB에서 작동하기 때문입니다. 하지만 비디오 스트리밍 및 인코딩의 세계에서는 YUV가 선두를 차지하며, 지연 없이 비디오를 시청하고, 기가바이트의 데이터를 절약하고, 실시간 처리를 가속화할 수 있는 일련의 복잡한 상충 관계를 후드 아래에 숨깁니다.
하지만 이 두 세계를 연결하고 싶다면 어떨까요? RGB에서 훈련된 AI 모델은 YUV에서 비디오 스트림을 어떻게 처리할까요? 코덱은 왜 RGB로 작업하는 것을 그렇게 꺼릴까요? 그리고 이 포맷 사이에서 완벽한 균형을 이루는 것이 가능할까요? 여기서 RGB와 YUV가 비디오 스트리밍과 AI 기술의 같은 링에서 만나야 하는 다른 체급의 두 권투 선수와 같은 이유를 깊이 파헤쳐 보겠습니다.
RGB 및 RGBA 형식은 컴퓨터 그래픽에서 매우 간단하고 널리 사용되므로 기본 사항에 대해 너무 깊이 파고들지 않겠습니다. 간단히 말해서 컴퓨터가 이미지를 렌더링할 때 세 가지 채널, 즉 Red(R) , Green(G) , Blue(B) 로 작동합니다. 이것이 대부분의 화면이 작동하는 방식입니다.
RGBA는 투명도를 제어하는 알파(A) 라는 추가 채널을 추가하여 웹 그래픽과 디지털 디자인에 특히 유용합니다. RGB는 왜곡 없이 색상을 정확하게 표현하지만 치명적인 단점이 있습니다. 공간을 너무 많이 차지한다는 것입니다. 예를 들어, RGBA 형식(채널당 1바이트 사용)의 해상도가 1920 × 1080
인 이미지는 다음을 차지합니다. 1920×1080×4 = 8294400 bytes ≈ 8.2 MB
JPEG와 같은 압축 포맷은 파일 크기를 줄이지만, P2P 비디오 스트리밍과 클라이언트 머신에서 객체 인식, 키 포인트 감지, 세분화와 같은 AI 실시간 처리의 세계에서는 실행 가능한 옵션이 아닙니다. 압축 아티팩트를 도입하거나 중요한 세부 정보를 잃지 않고 모든 프레임을 실시간으로 전송하고 분석해야 합니다. 바로 여기서 YUV가 등장하여 품질, 효율성, 성능의 균형을 맞추는 더 스마트한 접근 방식을 제공합니다.
색상 정보를 직접 저장하는 RGB와 달리 YUV는 이미지를 루마 (Y) 와 크로마 구성 요소 (U 및 V) 로 분리합니다. 이 접근 방식은 상당한 품질 손실 없이 효율적인 데이터 압축을 가능하게 합니다.
Y(루마, 밝기) – 픽셀의 밝기를 나타내며, 얼마나 밝거나 어둡게 보이는지 결정합니다. 기본적으로 이것은 이미지의 회색조(흑백) 버전으로, 모든 모양과 세부 사항을 보존합니다.
U 및 V(크로마, 색상) – 색상 정보를 저장하지만 인간의 눈은 색상 정확도보다 밝기를 더 예리하게 인식하기 때문에 정확도가 낮습니다. 간단히 말해서, 이러한 채널은 밝기를 다른 색상 색조로 2차원 "이동"하는 역할을 합니다.
이러한 분리는 YUV가 비디오 압축, 스트리밍, AI 기반 비디오 처리에 매우 효과적인 이유입니다.
YUV의 덜 분명하지만 매우 효과적인 장점 중 하나는 채널 중 하나 (Y) 가 색상을 저장하기 위한 것이 전혀 아니라는 것입니다. 대신, 그것은 정확하게
인간의 눈은 망막에 있는 두 가지 유형의 광수용체를 사용하여 이미지를 인식합니다.
막대 세포(약 1억 2천만 개) – 밝기와 대비에 민감하지만 색상을 감지할 수 없습니다. 낮은 조명에서도 모양과 세부 사항을 볼 수 있게 해줍니다.
원뿔 세포(약 600만 개) – 색상 인식을 담당하지만 숫자가 20배 적습니다. 이들은 좋은 조명 조건에서만 기능하며 빨간색, 녹색, 파란색( RGB , 놀랍지 않게도)의 세 가지 유형이 있습니다.
이러한 수용체 불균형으로 인해 우리 뇌는 색상보다 모양을 우선시합니다. 밝기나 대비가 왜곡되면 즉시 알아차립니다. 그러나 약간의 색상 변화는 종종 알아차리지 못합니다.
이것이 YUV의 핵심 원리입니다
즉, RGB 와 달리(세 채널이 모두 똑같이 중요한 경우) YUV는 인간의 지각에 따라 채널을 다르게 처리합니다. 색상 데이터 (U 및 V) 가 덜 중요하기 때문에 인지 가능한 품질을 잃지 않고 전송되는 데이터 양을 줄일 수 있습니다.
이것이 바로 크로마 서브샘플링 메커니즘이 작동하는 방식입니다. 즉, 밝기는 그대로 유지하면서 색상 정보를 선택적으로 압축하여 비디오 인코딩을 최적화하는 것입니다.
크로마 서브샘플링 은 이미지의 색상 데이터 양을 줄이는 기술입니다. YUV는 모든 픽셀에 색상을 저장하는 대신( RGB 처럼) 밝기(모양)를 그대로 유지하면서 색상 채널의 해상도를 낮춥니다.
크로마 서브샘플링에는 여러 가지 산업 표준이 있습니다.
4:2:2 서브샘플링 – 각 픽셀 쌍은 색상 정보를 공유합니다. 눈은 차이를 거의 알아차리지 못하지만 파일 크기는 33% 줄어듭니다. 이 방법은 거의 사용되지 않습니다.
4:2:0 서브샘플링 – 4개 픽셀 중 1개 픽셀에만 색상을 저장하여 최대 압축을 달성합니다.
왜 4:2:0이 주요 표준인가요?
이 포맷은 눈에 띄게 화질을 떨어뜨리지 않고 데이터 크기를 절반으로 줄입니다. 그래서 거의 모든 스트리밍 서비스와 비디오 플랫폼의 표준이 되었습니다. 예를 들어, Microsoft Teams는 품질과 대역폭 효율성 사이에서 최상의 균형을 제공하기 때문에 4:2:0 으로 비디오를 전송합니다.
이러한 설정에서 단일 색상 값은 4개 픽셀을 나타내며, 밝기(Y)가 변경되지 않으므로 인간의 눈은 확대하더라도 차이를 감지하지 못합니다.
1920×1080×1.5 = 3110400 bytes ≈ 3.1 MB
로, 이는 RGBA 에 비해 데이터 크기가 두 배 이상 줄어들며 품질은 눈에 띄게 저하되지 않습니다!
아래 이미지는 4:2:0 크로마 서브샘플링으로 최종 프레임/이미지가 어떻게 보이는지 보여줍니다. 하나의 U가 4개의 Y를 설명하는 방식에 주목하세요. 4배 메모리가 이깁니다!
오늘날 세계에서 실시간 비디오 처리를 위한 AI 애플리케이션이 빠르게 확장되고 있습니다. 신경망은 감시 카메라 분석 및 스트림 품질 향상뿐만 아니라 생성 효과, 실시간 모양 수정, 객체 인식 및 동작 추적과 같은 보다 복잡한 작업에도 사용됩니다.
예를 들어, 우리는 비디오 채팅에서 사람의 얼굴에 립스틱과 아이섀도를 바르는 가상 메이크업 시스템을 개발했습니다. 가능한 한 현실적으로 말입니다. 이러한 작업에서는 모양과 움직임의 정밀성이 매우 중요하지만 색상 정보는 부차적입니다. 또한 회색조 이미지를 이해하도록 모델을 훈련하여 성능을 높일 수 있으며, 동시에 YUV 4:2:0을 입력으로 사용하면 GPU에서 회색조 이미지를 얻는 것이 훨씬 더 효율적입니다. 결과 회색조 채널을 얻으려면 이미지의 첫 번째 부분만 잘라내면 되기 때문입니다.
색상보다 모양이 더 중요합니다
다른 많은 컴퓨터 비전 시스템과 마찬가지로 AI 모델은 정확한 색상 재현보다는 주로 객체 구조, 모양 및 모서리에 초점을 맞춥니다. 이는 얼굴 인식, 포즈 추적, 이상 감지 및 AR 효과에 해당합니다. 예를 들어, 동작 인식 시스템에서 신체의 픽셀 윤곽은 피부 톤보다 훨씬 더 중요합니다.
성능이 중요합니다
실시간 AI의 경우, 각 프레임은 매끄러운 프레임 속도( 50–60 FPS
)를 유지하기 위해 20 ms
이내에 처리되어야 합니다. 신경망이 프레임을 수신하고 처리하는 속도가 빠를수록 애플리케이션이 더 자연스럽고 유연하게 실행됩니다.
1920×1080
RGBA 프레임의 무게는 8.2 MB
로 메모리와 처리 능력에 엄청난 부담을 줍니다.O(1)
에서 불필요한 데이터를 줄이고, 눈에 띄는 품질 손실 없이 계산 리소스를 절약합니다.
최적화된 GPU 처리
최신 GPU는 YUV 처리에 최적화되어 있어 RGB로 변환하지 않고도 이미지를 작업할 수 있습니다. 이는 불필요한 계산을 제거하고 처리 속도를 높입니다.
대역폭 및 메모리 절약
실시간 비디오 전송 및 처리를 위해서는 데이터 크기를 줄이는 것이 중요합니다.
솔직히 말해서 RGB가 가장 확실한 선택처럼 보입니다. 카메라, 화면, 컴퓨터 그래픽의 표준입니다. 하지만 실제 비디오 스트리밍과 AI 통합에 관해서는 RGB가 느린 공룡 으로 변합니다. 그런 다음 YUV가 등장하여 품질, 속도, 데이터 효율성의 완벽한 균형을 제공합니다. 밝기와 압축 색상을 분리하는 영리한 저장 시스템은 RGB 에서는 계산상 악몽이 될 수 있는 것을 가능하게 합니다.
RGB 는 훌륭하지만 실시간 성능과 AI가 관여하는 곳에서는 그렇지 않습니다. 비디오 스트리밍에서 YUV는 진정한 워크호스이며 수년간 주요 솔루션을 구동해 왔습니다.
그러니, 여전히 RGB가 왕이라고 생각한다면, 다시 생각해 볼 때입니다. 비디오 포맷은 오랫동안 그들만의 규칙에 따라 플레이되어 왔습니다.