OTT(Over-the-Top)와 RTC(Real-Time Communication) 기술의 급변하는 환경에서 인코딩 및 디코딩 프로세스에 대한 철저한 이해는 필수적입니다. 이러한 프로세스는 오디오 비디오 애플리케이션에서 효율적인 데이터 전송 및 저장의 기반을 형성합니다. 이 블로그 포스트에서는 인코딩과 디코딩 개념을 탐구하며, 특히 오디오에 대한 AAC와 비디오에 대한 H.264라는 두 가지 널리 사용되는 형식에 초점을 맞춥니다.
인코딩과 디코딩의 본질
인코딩은 정보를 특정 규칙에 따라 다른 데이터 형식으로 변환하는 과정이며, 디코딩은 그 반대 과정입니다. 오디오 비디오 기술에서 인코딩의 주요 목적은 데이터 압축으로, 이는 효율적인 전송 및 저장에 필수적입니다.
인코딩의 중요성을 설명하기 위해 한 가지 예를 들어 보겠습니다:
RGBA 색상 형식을 사용하는 25fps의 비압축 720×1280 비디오를 상상해 보십시오. 아무런 처리 없이 이 비디오의 매초 요구되는 용량은:
720 × 1280 × 25 × 2 바이트 ≈ 44 Mbytes
이는 352 Mbps의 비트 전송률로 변환됩니다. 이러한 높은 데이터 양은 압축되지 않은 상태로는 네트워크 전송에 엄청난 부담을 줄 것입니다.
코덱: 오디오 비디오 처리의 일꾼들
오디오 비디오 기술에서 인코딩 및 디코딩에 사용되는 도구를 코덱(codec)이라고 합니다. 이들은 주로 비디오 코덱과 오디오 코덱으로 나뉩니다.
코덱은 WinRAR 또는 7-Zip과 같은 압축 도구에 비유할 수 있지만, 오디오 비디오 데이터에 특화되어 있습니다. 주요 차이점은 다음과 같습니다:
- 전문화: 오디오 비디오 코덱은 멀티미디어 데이터를 위해 특별히 설계되었습니다.
- 효율성: 일반적으로 100:1 이상의 압축 비율을 달성합니다.
- 품질 유지: 높은 압축에도 불구하고 원본과 인간의 인식에서 구별할 수 없는 시각적 및 청각적 품질을 유지합니다.
AAC: 고급 오디오 코딩
AAC는 1997년에 설립된 고압축 오디오 인코딩 알고리즘입니다. MPEG-2 오디오 코딩 기술을 기반으로 하며, 2000년에는 MPEG-4 표준에 통합되었습니다.
AAC의 주요 특징:
- 높은 압축 비율: AAC는 AC3나 MP3와 같은 형식보다 우수한 압축을 제공합니다.
- 품질: 높은 압축에도 불구하고 CD 품질의 사운드를 유지할 수 있습니다.
- 변형: AAC는 다양한 필요에 맞춘 여러 변형이 있으며, AAC LC, AAC HE, AAC HEv2 등이 포함됩니다.
AAC 유형:
AAC는 두 가지 유형으로 추가 분류될 수 있습니다:
ADIF (Audio Data Interchange Format):
- 주로 로컬 파일 저장에 사용됩니다.
- 디코딩은 지정된 헤더에서 시작해야 합니다.
ADTS (Audio Data Transport Stream):
- 인터넷 애플리케이션에 일반적으로 사용됩니다.
- 오디오 스트림의 어느 지점에서도 디코딩을 시작할 수 있습니다.
- 비트스트림에서 ADTS 헤더를 쉽게 식별할 수 있는 동기화 단어를 포함합니다.
ADTS 오디오 스트림의 구조는 다음과 같습니다:
... ADTS 헤더 | AAC ES | ADTS 헤더 | AAC ES ...
여기서:
- ADTS 헤더에는 스트림 식별자, 비트 전송률, 샘플 속도, 채널 수 및 버퍼 크기와 같은 디코딩에 필요한 정보가 포함되어 있습니다.
- AAC ES (Elementary Stream)에는 실제 인코딩된 오디오 데이터가 포함되어 있습니다.
AAC의 구조와 구현 세부정보에 대한 자세한 내용은 이 종합 문서를 참조하십시오.
H.264: 고급 비디오 코딩
H.264는 AVC(Advanced Video Coding)라고도 알려져 있으며, 뛰어난 압축 능력 덕분에 업계의 표준이 된 고성능 비디오 코덱입니다.
H.264의 주요 특징:
- 높은 압축 비율: H.264는 이전 표준인 MPEG-2 및 MPEG-4보다 훨씬 높은 압축 비율을 제공합니다.
- 효율성: 동일한 이미지 품질에서 H.264의 압축 비율은 MPEG-2의 두 배 이상, MPEG-4의 1.5배에서 2배입니다.
- 크기 감소: 평균적으로 H.264 파일은 동등한 MPEG-4 파일의 약 61%, MPEG-2 파일의 36% 크기입니다.
H.264의 프레임 유형:
H.264는 세 가지 유형의 프레임을 정의합니다:
I-프레임 (Intra-coded frames):
- 완전히 인코딩된 그림입니다.
- 디코딩을 위해 다른 프레임에 의존하지 않습니다.
P-프레임 (Predictive frames):
- 이전 I-프레임이나 P-프레임과의 차이를 기반으로 인코딩됩니다.
- I-프레임보다 작습니다.
B-프레임 (Bi-predictive frames):
- 이전 및 후속 프레임 모두와의 차이를 기반으로 인코딩됩니다.
- 일반적으로 가장 작은 크기입니다.
그룹 오브 픽쳐스 (GoP):
그룹 오브 픽쳐스(GoP)는 하나의 I-프레임부터 다음 I-프레임까지의 시퀀스입니다. GoP 내의 모든 프레임은 디코딩을 위해 I-프레임에 의존합니다. I-프레임이 손실되면 전체 GoP는 디코딩할 수 없게 됩니다.
H.264 구조:
H.264는 두 개의 레이어로 구성됩니다:
비디오 코딩 레이어 (VCL):
- 압축된 비디오 데이터를 포함합니다.
네트워크 추상화 레이어 (NAL):
- 전송 또는 저장을 위한 비디오 데이터를 패키징합니다.
- VCL 데이터는 전송 또는 저장 전에 NAL 유닛(NALU)으로 캡슐화됩니다.
NAL 유닛(NALU)의 기본 구조는 다음과 같습니다:
... NALU 헤더 | RBSP | NALU 헤더 | RBSP ...
여기서:
- NALU 헤더는 RBSP의 데이터 유형에 대한 정보를 포함합니다.
- RBSP(Raw Byte Sequence Payload)는 실제 비디오 데이터를 포함합니다.
H.264/AVC에 대한 더 깊은 설명, 인코딩 프로세스, 프레임 유형 및 구조에 대해서는 이 상세 문서를 참조하십시오.
결론
인코딩 및 디코딩 프로세스를 이해하는 것은 OTT 및 RTC 기술에서 일하는 사람에게 매우 중요합니다. AAC와 H.264는 각각 오디오 및 비디오에 대해 현재 가장 널리 지원되는 형식으로, 높은 품질을 유지하면서 우수한 압축 비율을 제공합니다.
오디오 비디오 기술 분야가 계속 발전함에 따라 새로운 코덱과 표준이 지속적으로 개발되고 있습니다. 예를 들어 H.265(HEVC)는 H.264보다 더 나은 압축을 제공하며, AV1은 로열티 없는 대안으로 부상하고 있습니다. 오디오 측면에서도 Opus와 같은 형식이 유연성과 효율성 덕분에 인기를 얻고 있습니다.
최신 코덱 기술에 대한 정보를 지속적으로 업데이트하는 것은 OTT 및 RTC 애플리케이션에서 작업하는 개발자와 엔지니어에게 필수적입니다. 이러한 고급 인코딩 및 디코딩 기술을 활용함으로써 우리는 디지털 미디어 전송 및 저장의 경계를 계속 확장하여 전 세계 사용자에게 더 몰입감 있고 고품질의 오디오 비디오 경험을 제공할 수 있습니다.