압축 알고리즘 (Compression Algorithms)이란?
본문 바로가기
잡학모음집

압축 알고리즘 (Compression Algorithms)이란?

by mement0mori 2023. 9. 1.

ai_압축알고리즘
ai 이미지

압축 알고리즘은 데이터의 크기를 줄이는 데 사용되는 알고리즘입니다. 압축 알고리즘은 데이터의 중복을 제거하거나, 데이터의 표현 방식을 변경하여 데이터의 크기를 줄입니다.

 

압축 알고리즘은 크게 무손실 압축 알고리즘과 손실 압축 알고리즘으로 나눌 수 있습니다.

 

무손실 압축 알고리즘

무손실 압축 알고리즘은 압축 후에도 원래의 데이터를 그대로 복원할 수 있는 압축 알고리즘입니다. 무손실 압축 알고리즘은 데이터의 중복을 제거하거나, 데이터의 표현 방식을 변경하여 데이터의 크기를 줄입니다.

LZ77

이전에 출현한 문자열을 다시 사용함으로써 데이터를 압축하는 알고리즘입니다. LZ77은 압축기가 읽은 데이터를 버퍼에 저장하고, 버퍼에 저장된 데이터와 현재 읽고 있는 데이터를 비교하여 중복되는 문자열을 찾습니다. 중복되는 문자열을 찾으면, 그 문자열을 나타내는 인덱스와 길이를 압축된 데이터에 저장합니다.

 

LZ78

LZ77과 유사한 알고리즘이지만, 이전에 출현한 문자열을 다시 사용하기 위한 인덱스를 압축된 데이터에 저장하지 않습니다. 대신, 이전에 출현한 문자열을 나타내는 고유한 ID를 압축된 데이터에 저장합니다. LZ78LZ77에 비해 압축률이 높지만, 압축된 데이터의 크기가 크다는 단점이 있습니다.

 

Huffman

데이터를 나타내는 비트의 수를 최소화하여 압축하는 알고리즘입니다. Huffman은 각 문자의 출현 빈도를 계산하고, 출현 빈도가 높은 문자에 더 짧은 코드를 부여합니다. 이렇게 하면, 데이터의 크기를 줄일 수 있습니다.

 

Deflate

LZ77Huffman을 결합한 알고리즘입니다. Deflate는 먼저 LZ77을 사용하여 데이터를 압축한 후, Huffman을 사용하여 압축된 데이터를 다시 압축합니다. 이렇게 하면, 압축률을 더욱 높일 수 있습니다.

ai_압축알고리즘
ai 이미지

손실 압축 알고리즘

압축 후에도 원래의 데이터를 완전히 복원할 수 없는 압축 알고리즘입니다. 손실 압축 알고리즘은 데이터의 일부를 제거하거나, 데이터의 품질을 낮추어 데이터의 크기를 줄입니다. 대표적인 손실 압축 알고리즘으로는 다음과 같은 것들이 있습니다.

 

JPEG

이미지를 압축하는 데 사용되는 손실 압축 알고리즘입니다. 이미지의 색상을 손실하여 데이터의 크기를 줄입니다.

MPEG

동영상을 압축하는 데 사용되는 손실 압축 알고리즘입니다. 동영상의 프레임 수와 해상도를 낮추어 데이터의 크기를 줄입니다.

MP3

오디오를 압축하는 데 사용되는 손실 압축 알고리즘입니다. 오디오의 주파수와 품질을 낮추어 데이터의 크기를 줄입니다.

 

압축 알고리즘은 다양한 분야에서 사용되고 있습니다. 데이터의 저장과 전송, 네트워크의 대역폭 절감, 데이터베이스의 효율성 향상 등에 압축 알고리즘이 사용됩니다.

 

압축 알고리즘을 선택할 때는 다음과 같은 요소를 고려해야 합니다.

 

압축률: 압축 후의 데이터 크기와 원래의 데이터 크기의 비율입니다.

 

복원률: 압축 후의 데이터를 원래의 데이터로 복원할 수 있는 정도입니다.

 

컴퓨팅 복잡도: 압축과 복원에 필요한 컴퓨팅 자원입니다.

 

지원 범위: 압축할 수 있는 데이터의 종류입니다.

 

압축률이 높을수록 데이터의 크기를 많이 줄일 수 있지만, 복원률이 낮아질 수 있습니다. 컴퓨팅 복잡도가 높을수록 압축과 복원에 시간이 오래 걸릴 수 있습니다. 지원 범위가 넓을수록 다양한 데이터를 압축할 수 있습니다.