비디오 압축
더 많은 작업
비디오 압축(Video Compression)은 동영상 안의 공간적·시간적·통계적 중복과 사람이 잘 느끼지 못하는 정보를 줄여, 화질 손실을 최소화하면서 저장 용량과 전송 대역폭을 크게 줄이는 부호화 기술이다.
압축하지 않은 Full HD(1920×1080) 동영상은 초당 30프레임, 화소당 24비트만 잡아도 약 1.5 Gbit/s 가 필요하다. 방송·스트리밍·저장에 쓰려면 수십~수백 분의 1 로 줄여야 한다. 동영상에는 다음과 같은 중복이 많아 이것이 가능하다.
| 중복 | 내용 | 제거 기법 |
|---|---|---|
| 공간적 중복 | 한 프레임 안에서 이웃 화소끼리 값이 비슷하다 | 화면 내 예측, DCT 변환 |
| 시간적 중복 | 연속한 프레임은 대부분 같고 일부만 움직인다 | 움직임 추정·보상(화면 간 예측) |
| 통계적 중복 | 자주 나오는 값과 드문 값이 있다 | 엔트로피 부호화(허프만, CAVLC, CABAC) |
| 시각적(심리적) 중복 | 사람 눈은 고주파 세부와 색 변화에 둔감하다 | 양자화, 크로마 서브샘플링(4:2:0) |
한 장의 프레임 안에서 중복을 줄인다. 원리는 JPEG 정지 영상 압축과 같다. MPEG 계열에서는 화면 내 부호화(Intra coding)라고 한다.
- 색 공간 변환과 크로마 서브샘플링: RGB 를 밝기(Y)와 색차(Cb, Cr)로 바꾸고, 눈이 둔감한 색차 해상도를 줄인다(4:2:0 이면 색차 데이터가 1/4)
- 블록 분할: 프레임을 매크로블록(16×16, H.264) 또는 코딩 트리 단위(최대 64×64, HEVC)로 나눈다
- 화면 내 예측: 이미 부호화한 주변 화소로 현재 블록을 예측하고 차이(잔차)만 남긴다(H.264 이후)
- 이산 코사인 변환(DCT): 화소값을 주파수 성분으로 바꿔 에너지를 저주파 몇 개 계수에 몰아 준다
- 양자화: 계수를 양자화 단계로 나눠 반올림한다. 고주파 계수는 대부분 0 이 된다. 손실이 생기는 유일한 단계이며 압축률과 화질을 조절한다
- 지그재그 스캔과 런 렝스 부호화: 0 이 연속되도록 계수를 읽어 (0 의 개수, 값) 쌍으로 줄인다
- 엔트로피 부호화: 자주 나오는 기호에 짧은 부호를 주는 가변 길이 부호화(허프만 코딩, CAVLC)나 산술 부호화(CABAC)로 마무리한다
연속한 프레임 사이의 중복을 줄인다. 화면 간 부호화(Inter coding)라고 하며 압축 효율 대부분이 여기서 나온다.
- 움직임 추정(Motion Estimation): 현재 프레임의 각 블록과 가장 비슷한 영역을 참조 프레임에서 찾는다(블록 정합). 찾은 위치까지의 변위가 움직임 벡터이다
- 움직임 보상(Motion Compensation): 움직임 벡터로 참조 프레임에서 예측 블록을 가져온다
- 잔차 부호화: 실제 블록과 예측 블록의 차이만 DCT·양자화·엔트로피 부호화한다. 움직임이 없으면 잔차가 거의 0 이다
- 움직임 벡터 자체도 주변 블록의 벡터로 예측해 차이만 보낸다
| 구분 | I-프레임(Intra) | P-프레임(Predictive) | B-프레임(Bi-directional) |
|---|---|---|---|
| 부호화 방식 | 다른 프레임 참조 없이 자기 프레임만으로 부호화(공간 압축) | 앞쪽 I·P 프레임을 참조해 순방향 예측 | 앞뒤 I·P 프레임을 모두 참조해 양방향 예측(두 예측의 평균도 가능) |
| 데이터 크기 | 가장 큼 | 중간 | 가장 작음 |
| 독립 복호 | 가능 | 참조 프레임 필요 | 앞뒤 참조 프레임 모두 필요 |
| 역할 | 탐색·임의 접근 시작점, 오류 전파 차단 | 다음 P·B 의 참조 프레임 | 압축률 향상(전통적으로 다른 프레임의 참조로 쓰지 않음) |
| 단점 | 압축률 낮음 | 앞 프레임 오류가 전파됨 | 뒤 프레임을 먼저 받아야 해 지연·메모리 증가 |
B-프레임은 뒤쪽 프레임을 참조하므로 부호화·전송 순서와 화면 표시 순서가 다르다. 예를 들어 표시 순서가 I₁ B₂ B₃ P₄ 이면 전송 순서는 I₁ P₄ B₂ B₃ 이다. H.264 부터는 B-프레임도 참조 프레임으로 쓸 수 있고, 여러 장의 참조 프레임을 고를 수 있다.
GOP(Group of Pictures)는 I-프레임 하나에서 다음 I-프레임 전까지의 프레임 묶음이다. GOP 길이(N)와 참조 프레임 간격(M)으로 구조를 나타내며, 예를 들어 N=12, M=3 이면 I B B P B B P B B P B B 이다.
- GOP 가 길면 압축률이 높지만, 탐색 응답이 느리고 오류가 오래 전파된다
- GOP 가 짧으면 편집·탐색과 오류 복구에 유리하지만 데이터가 커진다
- 닫힌 GOP는 GOP 밖 프레임을 참조하지 않아 편집점으로 쓸 수 있고, 열린 GOP는 이전 GOP 를 참조해 효율이 조금 더 높다
| 표준 | 연도 | 특징·용도 |
|---|---|---|
| MPEG-1 | 1993 | 비디오 CD, MP3(오디오 계층 3) |
| MPEG-2 (H.262) | 1995 | 디지털 방송, DVD. 비월주사 지원 |
| MPEG-4 Part 2 | 1999 | 객체 기반 부호화, 저대역 인터넷 영상 |
| H.264/AVC (MPEG-4 Part 10) | 2003 | 화면 내 예측, 가변 블록 크기, 다중 참조, 1/4 화소 움직임 보상, CABAC, 디블로킹 필터. 블루레이·스트리밍 |
| H.265/HEVC | 2013 | 코딩 트리 단위(최대 64×64), AVC 대비 약 절반 비트율. 4K UHD 방송 |
| H.266/VVC | 2020 | HEVC 대비 약 절반 비트율. 8K, 360도 영상 |
| VP9, AV1 | 2013, 2018 | 구글·AOMedia 의 로열티 없는 코덱. 웹 스트리밍 |
MPEG 는 표준을 만든 전문가 그룹(Moving Picture Experts Group)의 이름이자 그 표준의 이름이다. 공간 압축(DCT·양자화·엔트로피 부호화)과 시간 압축(움직임 보상 예측)을 결합한 하이브리드 부호화 구조는 MPEG-1 부터 VVC 까지 그대로 이어진다.