본문 바로가기
영문 위키피디아 번역

(번역) Lempel–Ziv–Oberhumer

by 다움위키 2024. 11. 25.
Original article: w:Lempel–Ziv–Oberhumer

 

Lempel–Ziv–Oberhumer (LZO)는 압축-해제 속력에 초점을 맞춘 무손실 데이터 압축 알고리즘입니다.

Design

1996년에 출시된 원래의 "lzop" 구현은 Abraham LempelJacob Ziv에 의한 초기 알고리즘에 기반을 둔 Markus Franz Xaver Johannes Oberhumer에 의해 개발되었습니다. LZO 라이브러리는 다음과 같은 특성을 가진 여러 알고리즘을 구현합니다:

  • DEFLATE 압축에 비해 압축 속력이 더 빠릅니다.
  • 매우 빠른 압축-해제
  • 압축 중 추가 버퍼가 필요합니다 (압축 수준에 따라 8 kB 또는 64 kB, 크기)
  • 소스 및 대상 버퍼 외에 압축-해제에 추가 메모리가 필요하지 않습니다.
  • 사용자가 압축률과 압축 속력 사이의 균형을 조정하면서도 압축-해제 속도에는 영향을 미치지 않도록 합니다.

LZO는 중복 압축 및 제자리 압축-해제를 지원합니다. 블록 압축 알고리즘으로서, 그것은 데이터의 블록을 압축하고 압축-해제합니다. 압축과 압축-해제에 대해 블록 크기는 같아야 합니다. LZO는 데이터의 블록을 일치 항목 (슬라이딩 사전)과 일치하지 않는 리터럴의 실행으로 압축하여 매우 중복된 데이터에 대해 좋은 결과를 생성하고 압축 불가능한 데이터를 허용 가능한 수준으로 처리하며, 적어도 1 kB의 블록 크기에 걸쳐 측정될 때 압축 불가능한 데이터를 원래 크기의 최대 1/64로만 확장합니다.

Implementations

참조 구현은 ANSI C로 작성되었고, GNU General Public License에 따라 자유 소프트웨어로 제공되어 왔습니다. 코드의 저작권은 Markus F. X. J. Oberhumer가 소유합니다. 그것은 원래 1996년에 출판되었습니다. Oberhumer는 lzop이라는 명령-줄 프런트엔드도 작성해 왔습니다.

LZO의 버전은 Perl, Python, 및 Java 언어에 사용할 수 있습니다. 다양한 LZO 구현은 AIX, Atari TOS (Atari ST), ConvexOS, IRIX, Linux, Mac OS, Nintendo 64, Palm OS, PlayStation, Solaris, SunOS, VxWorks, Wii, 및 Win32에서 작동하는 것으로 보고되었습니다.

FFmpeg의 libavutil 라이브러리에는 손실-없는 비디오 압축을 위한 가능한 방법으로 LZO의 자체 구현이 포함되어 있습니다. FFmpeg의 압축 해제기의 구현은 Juniper NetworksPulse Secure VPN 서버에서 보낸 LZO-압축된 ESP 패킷을 지원하기 위해 OpenConnect에서도 사용됩니다.

리눅스 커널은 일부 기능에 LZO 구현을 사용합니다:

References

 

External links