LZX

LZX는 LZ77 계열의 압축 알고리즘으로, DEFLATE의 약간 개선된 버전이다.[wimlib: the open source Windows Imaging (WIM) library - Compression algorithm https://wimlib.net/compression.html] 같은 이름의 파일 압축기의 이름이기도 하다. 둘 다 1990년대에 조너선 포브스와 토미 포우타넨이 발명했다.

 LZX 알고리즘의 사용 사례 
 아미가 LZX 
LZX는 저자들이 캐나다의 워털루 대학교에서 공부하던 중 1995년에 아미가 파일 압축기로 공개되었다. 이 소프트웨어는 당시 압축 소프트웨어에서 흔히 볼 수 있었던 셰어웨어였다. 등록된 버전에는 평가판에서 사용할 수 없었던 수정 사항과 개선 사항이 포함되어 있었다. 1997년, 저자들은 압축기에 대한 작업을 중단하고 등록을 받지 않게 되자, 누구나 등록된 버전을 사용할 수 있도록 무료 키 파일을 제공했다.

 마이크로소프트 캐비닛 파일 
1996년 포브스는 마이크로소프트에 입사했고, 마이크로소프트의 캐비닛 압축기는 LZX 압축 방식을 포함하도록 향상되었다. 개선 사항에는 가변 검색 창 크기가 포함되었는데, 아미가 LZX는 64 KB로 고정되었고, 마이크로소프트 LZX는 32에서 2048 킬로바이트 (32,768에서 2,097,152바이트) 사이의 2의 거듭제곱으로 범위가 지정될 수 있었다. 인텔 80x86 "CALL" 명령을 감지하여 피연산자를 상대 주소 지정에서 절대 주소 지정으로 변환하는 특별한 전처리기가 추가되어, 동일한 위치에 대한 호출이 압축기가 일치시킬 수 있는 반복된 문자열을 생성하여 80x86 이진 코드의 압축률을 향상시켰다. (이 기술은 나중에 Branch-Call-Jump [BCJ] 필터링으로 일반화되었다.)

 마이크로소프트 압축 HTML 도움말 (CHM) 파일 
마이크로소프트가 클래식 도움말 파일 형식을 대체하는 마이크로소프트 압축 HTML 도움말을 도입했을 때, 모든 HTML 데이터를 LZX 알고리즘으로 압축하도록 선택했다. 그러나 무작위 접근 속도를 향상시키기 위해, 압축기는 64킬로바이트(65,536바이트) 간격마다 재설정되고 32킬로바이트 간격마다 16비트 경계에 재정렬되도록 변경되었다. 따라서 HTMLHelp 소프트웨어는 항상 압축된 데이터 스트림의 시작부터 디코딩하는 대신 가장 가까운 64킬로바이트 간격을 즉시 탐색하고 거기서부터 디코딩을 시작할 수 있었다.

 마이크로소프트 리더 (LIT) 파일 
마이크로소프트 리더용 마이크로소프트 LIT 파일은 단순히 CHM 파일 형식의 확장이며, 따라서 LZX 압축도 사용한다.

 윈도우 이미징 포맷 (WIM) 파일 
윈도우 비스타와 윈도우 7의 설치/드라이브 이미지 파일 형식인 윈도우 이미징 포맷은 LZX를 압축 방식 중 하나로 사용한다.

 CompactOS NTFS 파일 압축 
윈도우 10에서는 윈도우 이미징 포맷의 LZX 압축이 새로운 CompactOS NTFS 파일 압축에 사용된다.

 엑스박스 라이브 아바타 
마이크로소프트는 디스크 및 대역폭 요구 사항을 줄이기 위해 엑스박스 라이브 아바타에 LZX 압축을 사용한다.

 LZX 파일 압축 해제 
unlzx 프로그램과 XAD는 아미가 LZX 아카이브를 압축 해제할 수 있다. cabextract 프로그램은 LZX 방식을 사용하여 마이크로소프트 캐비닛 파일을 압축 해제할 수 있다. CHM 문서에 명시된 바와 같이, CHM 파일을 역컴파일하거나 보는 데 사용할 수 있는 다양한 크로스 플랫폼 도구들이 있다. LIT 파일은 Convert LIT 소프트웨어를 사용하여 압축 해제할 수 있다.

 같이 보기 

 압축 파일 포맷 목록
 압축 소프트웨어의 비교

 각주 

 외부 링크 
 The LZX page, including many versions of the Amiga LZX archiver
 unlzx source code
 cabextract (includes source code)
 wimlib (included source code)
 Convert LIT (includes source code)
 Microsoft's LZX DELTA specification

분류:데이터 압축
분류:무손실 압축 알고리즘
분류:아미가