인코드 | 디코드 | 압축

> rle | 압축 | 반복 <

// Run-Length Encoding - 반복 데이터용 간단한 압축 방식

[COMPRESS]

데이터 압축

반복되는 시퀀스를 효율적으로 인코딩하여 파일 크기를 줄입니다.

[SIMPLE]

단순 알고리즘

오버헤드가 적고 구현이 쉬운 빠른 압축 방식입니다.

[FORMATS]

여러 포맷 지원

단순 RLE와 PackBits(TIFF) 형식을 지원합니다.

>> 기술 정보

RLE 동작 방식:

Run-Length Encoding은 반복되는 데이터 시퀀스를 개수와 하나의 값으로 치환하는 방식입니다. 단순 RLE는 개수와 값 쌍을 사용하고, PackBits는 제어 바이트를 사용해 런과 리터럴 구간을 구분합니다.

압축 예제:

Simple RLE: AAAABBBCC → 4A3B2C ABCDE → 1A1B1C1D1E PackBits: [Run] AAA → FD 41 (3 × 'A') [Literal] ABC → 02 41 42 43

RLE를 사용할 때:

  • >이미지 압축 (BMP, PCX, TIFF)
  • >팩스 전송
  • >아이콘 및 스프라이트 저장
  • >희소 데이터 압축
  • >구현이 간단함

>> 자주 묻는 질문

Run-Length Encoding이란 무엇인가요?

RLE는 여러 개의 동일한 요소가 연속될 때 이를 개수와 하나의 값으로 치환하는 간단한 압축 알고리즘입니다. 단순한 그래픽이나 희소 행렬처럼 반복이 많은 데이터에 효과적입니다.

단순 RLE와 PackBits의 차이는 무엇인가요?

단순 RLE는 개수+값 쌍을 사용합니다 (4A = AAAA). PackBits는 제어 바이트를 사용하며, 음수는 반복 구간을, 양수는 리터럴 데이터를 나타냅니다. PackBits는 TIFF 이미지에서 사용되며 혼합 데이터에 더 적합합니다.

RLE는 언제 효과적인가요?

RLE는 동일한 값이 길게 반복되는 데이터에서 가장 효과적입니다. 무작위 데이터에는 비효율적이며, 반복이 거의 없는 경우 오히려 크기가 커질 수 있습니다.

다른 압축 방식과 비교했을 때 RLE는 어떤가요?

RLE는 LZ77 또는 허프만 코딩 같은 알고리즘보다 단순하지만 압축 효율은 낮습니다. 보통 전처리 단계나 팩스와 같이 단순함이 중요한 포맷에서 사용됩니다.

다른 언어