인코딩 | 디코딩 | 압축

> exp | golomb | h264 <

// Exponential-Golomb – 비디오 압축에서 사용되는 표준 가변 길이 코드

0
0

>> 특징

[H.264/H.265]

비디오 표준

H.264/AVC 및 H.265/HEVC 코덱에서 사용됩니다.

[ADAPTIVE]

여러 차수

서로 다른 분포에 맞춰 다양한 k 값을 선택할 수 있습니다.

[SIGNED]

부호 있는 정수 지원

부호 있는 정수를 위한 내장 매핑.

>> 기술 정보

Exp-Golomb 인코딩 동작 원리

차수 k 의 Exp-Golomb 코드는 음이 아닌 정수 n 을 다음과 같이 인코딩합니다. 1) n+1 을 계산하여 codeNum 을 얻고, 2) 2^k 로 나누어 몫 q 와 나머지 r 을 구한 뒤, 3) q 개의 0, 그 다음 1, 그리고 k 비트로 표현된 r 을 이어붙입니다. k=0 일 때 Elias Gamma 코드와 동일합니다. 부호 있는 정수는 n>0 → 2n−1, n≤0 → −2n 으로 매핑합니다.

Exp-Golomb 예제

차수 k=0 (표준):
0 → 1
1 → 010
2 → 011
3 → 00100

차수 k=1:
0 → 10
1 → 11
2 → 010
3 → 011

부호 모드 (k=0):
0 → 1 (0 에 매핑)
1 → 010 (1 에 매핑)
-1 → 011 (2 에 매핑)
2 → 00100 (3 에 매핑)

Exp-Golomb 를 사용하는 이유

  • H.264/H.265 구문 요소
  • 모션 벡터 코딩
  • 계수 레벨 표현
  • 간단한 하드웨어 구현
  • 데이터 분포에 대한 적응성

>> 자주 묻는 질문

Exp-Golomb 인코딩이란 무엇인가요?

Exponential-Golomb 인코딩은 H.264 및 H.265 와 같은 비디오 압축 표준에서 널리 사용되는 범용 가변 길이 코드입니다. k 라는 매개변수를 도입하여 Elias Gamma 코드를 일반화하고, 다양한 데이터 분포에 쉽게 적응할 수 있게 합니다.

차수 k 는 어떻게 선택하나요?

k=0 (표준 Exp-Golomb) 는 지수가분포에 가까운 작은 정수에 적합합니다. 더 큰 정수나 더 균일한 분포에는 더 큰 k 값이 좋습니다. 비디오 코덱은 보통 구문 요소에 k=0 을, 잔차에는 가변적인 k 를 사용합니다.

왜 비디오에 사용하나요?

Exp-Golomb 가 비디오에 적합한 이유는 다음과 같습니다. 1) 하드웨어로 구현하기 쉽고, 2) 룩업 테이블이 필요 없으며, 3) 비디오 데이터의 통계적 분포에 잘 맞고, 4) 모션 벡터와 변환 계수를 효율적으로 압축합니다.

다른 코드와 비교하면 어떤가요?

Huffman 과 비교하면 테이블이 필요 없고 더 단순하지만, 최적성은 다소 떨어집니다. 산술 부호화와 비교하면 훨씬 단순하지만 압축률은 낮습니다. Exp-Golomb 는 단순성과 효율성 사이에서 좋은 균형을 제공하며, 실시간 비디오 인코딩에 적합합니다.