IT Study/데이터베이스 및 데이터 처리

🧰 데이터 압축 알고리즘 정리

cs_bot 2025. 4. 5. 17:02

1. 데이터 압축 알고리즘 개요

  • 데이터 압축이란 데이터 표현에 필요한 비트 수를 줄이는 기술을 의미함
  • 저장공간 절약, 전송 속도 향상, 비용 절감 등의 목적을 가짐
  • 무손실 압축(Lossless)과 손실 압축(Lossy)으로 구분됨
    • 무손실 압축: 원본 데이터 완전 복원이 가능함 (예: 텍스트, 실행 파일 등)
    • 손실 압축: 일부 정보 손실을 허용함 (예: 이미지, 음성, 영상 등)
  • 알고리즘에 따라 사전 기반, 통계 기반, 변환 기반 방식 등으로 분류 가능함

2. 무손실 압축 알고리즘

2.1 런렝스 인코딩(Run-Length Encoding, RLE)

  • 연속된 동일한 값을 하나의 값과 반복 횟수로 표현함
  • 데이터에 반복 패턴이 많을수록 압축 효율 증가함
  • 예시: AAAAABBBCC5A3B2C
  • 이미지에서 단색 블록 압축에 효과적임
  • 압축률이 낮은 경우도 많아 단독으로 쓰기보다 보조 알고리즘으로 활용됨

2.2 허프만 코딩(Huffman Coding)

  • 문자별 빈도 수 기반으로 가변 길이 코드 생성함
  • 빈도가 높은 문자는 짧은 코드, 낮은 문자는 긴 코드 부여함
  • 최적 이진 트리(Huffman Tree)를 구성하여 트래버싱 방식으로 인코딩 수행
  • 텍스트 파일, JPEG 압축 등에서 널리 사용됨
  • 통계 기반 압축의 대표적 사례임

2.3 산술 코딩(Arithmetic Coding)

  • 전체 메시지를 0과 1 사이의 실수 구간으로 표현함
  • 허프만 코딩보다 이론상 더 높은 압축률 보장함
  • 부동소수점 연산으로 인해 구현이 복잡하고 특허 문제로 제한 있음
  • 이미지 및 영상 압축에서 제한적으로 활용됨

2.4 LZ77, LZ78, LZW 계열

  • 사전 기반 압축 알고리즘으로 연속된 문자열 패턴을 테이블에 저장하고 참조함
  • LZ77: Sliding Window 기법 활용해 과거 문자열 참조
  • LZ78: 사전(Dynamic Dictionary)을 별도로 구축하여 인덱스로 참조
  • LZW: GIF, TIFF, PDF 등 다양한 포맷에서 활용됨
  • DEFLATE (LZ77 + Huffman) 방식은 ZIP, PNG 등 주요 포맷에서 사용됨

3. 손실 압축 알고리즘

3.1 변환 기반 압축 (Transform Coding)

  • 신호를 다른 표현 영역으로 변환하여 주파수 성분 분리
  • 인간 감각이 민감하지 않은 성분 제거 후 압축 수행함
  • DCT(Discrete Cosine Transform), DWT(Discrete Wavelet Transform) 등이 대표적임

3.1.1 JPEG 압축

  • 이미지 압축에 특화된 알고리즘
  • DCT 적용 → 양자화 → RLE 및 Huffman Coding 수행
  • 시각적 품질 손실이 크지 않으면서 높은 압축률 달성함

3.1.2 MP3, AAC

  • 오디오 압축 기술
  • MDCT(Modified DCT) 사용
  • 인간의 청각 특성(청각 마스킹)을 이용해 불필요 정보 제거함

3.1.3 MPEG

  • 영상 압축 표준
  • I-Frame, P-Frame, B-Frame 등을 이용한 시간 중복 제거
  • DCT 기반 압축과 움직임 보상(Motion Compensation) 기술 적용됨

4. 최신 압축 알고리즘

4.1 BWT(Burrows-Wheeler Transform)

  • 데이터 순서를 재배열하여 RLE나 Huffman 적용 시 압축률 향상 유도
  • bzip2에서 활용됨
  • 원본 데이터 복원이 가능하도록 역변환 알고리즘 제공됨

4.2 Context-based Adaptive Binary Arithmetic Coding (CABAC)

  • MPEG-4 AVC(H.264), HEVC(H.265) 등에 적용됨
  • 문맥(Context)을 고려한 확률 모델 기반의 산술 코딩 사용
  • 압축 효율 높지만 처리 시간 및 연산량 증가함

4.3 딥러닝 기반 압축

  • 자동 인코더(AutoEncoder), GAN, Transformer 등을 활용한 이미지/영상 압축 연구 활발함
  • 비지도 학습 기반으로 최적의 임베딩 벡터 생성
  • JPEG AI, MLP-Mixer 기반 압축, Neural Codec 등 등장함
  • 실제 사용에 제약이 있지만 미래 기술로 주목받는 중임

5. 데이터 압축 알고리즘 비교

구분 장점 단점 사용 예시
RLE 구현 간단, 반복 데이터에 효율적 데이터 중복 적을 경우 오히려 용량 증가 흑백 이미지, 간단한 시계열
Huffman 효율적 가변 길이 인코딩 통계 분석 필요, 실시간 압축 어려움 텍스트 파일, JPEG 등
LZW 사전 기반, 효율적 압축 초기 사전 크기 조정 어려움 GIF, PDF, TIFF
DCT 기반 시각적 손실 적음, 고압축률 가능 손실 발생, 블록 아티팩트 가능성 있음 JPEG, MPEG
AutoEncoder 비정형 데이터에 적합, 압축 효율 높음 학습 필요, 복원 신뢰도 문제 있음 영상 스트리밍, 미래형 압축

6. 데이터 압축 알고리즘의 적용 및 활용 방안

  • 클라우드 스토리지: 압축 기술로 저장 효율 향상 및 비용 절감 유도
  • IoT 환경: 전송 데이터 최소화로 네트워크 부하 감소 효과
  • 스트리밍 서비스: 실시간 압축·복원 기술로 전송 품질 최적화
  • 백업 시스템: 장기 보관용 데이터에 고압축률 기술 적용
  • 블록체인: 블록 크기 제한 해결을 위한 트랜잭션 데이터 압축 도입 가능성 있음

7. 결론

  • 데이터 압축은 정보 처리 기술 전반에 핵심적으로 활용되는 기반 기술임
  • 알고리즘 선택은 데이터 특성, 실시간성, 압축률, 복원 정확도 등을 고려하여 결정해야 함
  • 전통적인 알고리즘과 더불어 인공지능 기반 압축 기술의 도입이 활발히 진행되고 있음
  • 향후에는 압축 효율뿐만 아니라 에너지 절약, 보안성, 프라이버시 측면도 중요하게 고려될 것으로 전망됨