> rle | 압축 | 반복 <
// Run-Length Encoding - 반복 데이터용 간단한 압축 방식
데이터 압축
반복되는 시퀀스를 효율적으로 인코딩하여 파일 크기를 줄입니다.
단순 알고리즘
오버헤드가 적고 구현이 쉬운 빠른 압축 방식입니다.
여러 포맷 지원
단순 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 또는 허프만 코딩 같은 알고리즘보다 단순하지만 압축 효율은 낮습니다. 보통 전처리 단계나 팩스와 같이 단순함이 중요한 포맷에서 사용됩니다.