유사한 JPG 이미지를 대량으로 압축하려고 합니다. 지금까지 내가 찾은 최고의 압축 알고리즘은 다음과 같습니다.FP8. 존재하다이 문제테스트 결과를 보여주고 더 나은 옵션이 있는지 물어봅니다. 하지만 fp8은 지금까지 제가 찾은 것 중 최고입니다. 여전히 이상적이지는 않지만 다른 기존 압축 유틸리티(zip, z7, rar, tar, bz2 등)보다 데이터 세트를 크기의 80%로 줄였습니다.그 질문더 나은 옵션에 대한 제안이 있는 경우).
그러나 fp8은 Windows에서만 작동하는 버려진 유틸리티인 것 같습니다(와인에서 실행하여 테스트했습니다).
Linux에서 fp8 알고리즘을 구현하는 유틸리티가 있습니까?
구현도 제공하는 Ubuntu 저장소에서 zpaq을 찾았습니다.PAQ압축. 그러나 유사한 JPG 이미지에서는 성능이 훨씬 나쁩니다. 그렇기 때문에 저는 특히 비슷하거나 더 나은 성능을 가진 fp8 또는 유사한 JPG 이미지를 찾고 있습니다.
답변1
FP8 형식은 다음과 같습니다.ZPAQ 형식을 선호하여 작성자에 의해 제거되었습니다.이것이 최신 버전을 찾을 수 없는 이유입니다.
ZPAQ은 PAQ 및 그 변형(PAQ8, PAQ9A, LPAQ, LPQ1 등)을 휴대용 표준 형식에서 유사하거나 더 나은 압축으로 대체하도록 설계되었습니다. PAQ의 현재 버전은 모든 압축 개선으로 인해 아카이브 호환성이 손상되었습니다. ZPAQ은 이 문제를 해결하는 것을 목표로 합니다. 더 이상 이전 PAQ 코드를 유지하지 않습니다.
ZPAQ 우분투 배포판오래된 것 같아요이므로 ZPAQ 웹사이트의 버전을 사용하여 업그레이드할 수 있습니다.https://pkgs.org/download/zpaq. 최신 버전은 압축 동작과 관련된 더 많은 옵션을 지원합니다(ZPAQ 문서):
-m
유형[블록 크기[.pre[.arg][비교하다[.arg]]…]]
-method
유형[블록 크기[.pre[.arg][비교하다[.arg]]…]]
add
압축 방법을 선택하는 데 사용됩니다 . 유형은0
,1
,2
,3
,4
,5
,x
또는 일 수 있습니다s
. 선택 과목블록 크기0..11일 수 있으며 유형 뒤에 공백을 두지 마십시오(예:-m10
또는 )-method 511
. 나머지 인수는 공백 없이 마침표나 쉼표로 구분됩니다( 예:x
or 유형의 경우에만) .s
-mx4.3ci1
유형이 숫자인 경우 숫자가 클수록 압축률은 높아지지만 속도는 느려집니다. 기본값은 입니다
-m1
. 백업에 권장됩니다.-m2
압축 속도는 느리지만 압축 해제 속도는 동일합니다1
. 아카이브를 한 번 압축하고 다운로드 등을 위해 여러 번 압축을 해제하는 것이 좋습니다.-m0
스토리지는 중복 제거되지만 더 이상 압축되지는 않습니다.블록 크기조각을 최대 2^의 덩어리로 묶는 것을 의미합니다.블록 크기미부. 더 큰 블록을 사용하면 압축이 향상되지만 각 블록이 별도의 스레드에 의해 압축되거나 압축 해제되므로 더 많은 메모리가 필요하고 속도가 느려질 수 있습니다. 메모리 요구 사항 최대 8배블록 크기레벨 4의 경우 각 스레드는 블록 크기의 16배이고, 레벨 5의 경우 각 스레드는 블록 크기의 16배입니다. 기본값블록 크기유형 0과 1의 경우 4(16MiB), 그렇지 않은 경우 6(64MiB)입니다.
[...]
처음에는 비슷한 압축을 얻을 수 있는지 알아보기 위해 -m2
through를 사용해 보았습니다. (크기와 속도 사이의 균형을 이루도록 설계된 기본 설정입니다. 다른 프로그램과 동일합니다 .)-m5
-m1
-1
사용할 수 있는 다른 조정 방법이 있지만(문서 참조), ("64 MiB 블록(6), E8E9가 없는 가변 길이 LZ77(1), 최소 일치 길이 4, 보조 검색 없음(0))과 같은 특정 설정이 필요 -method x6.1.4.0.5.27.1
하지 않은 경우 , 접미사 배열의 각 방향에서 2^5 = 32(27 = 6 + 21)의 검색 깊이 및 1바이트 미리보기"[문서에서!]) 걱정하지 마세요. 사전 정의된 설정은 아마도 잘 작동합니다.
원래 FP8 프로그램이 꼭 필요한 경우 사용할 수 있습니다.GitHub의 소스 코드로.git
32비트 GCC 툴체인 이 필요합니다 nasm
(이 프로그램에는 32비트 어셈블리 파일이 있으므로 64비트 프로그램으로 빌드할 수 없습니다.)
답변2
몇 가지 추가 연구 끝에 paq8pxd 소프트웨어에서 최신 세대의 paq8 알고리즘(fp8이 하나의 버전)이 개발되고 있음을 발견했습니다. git 저장소는여기, 이전 버전의 기록은 다음과 같습니다.여기. 벤치마크, 바이너리 및 추가 정보는 일반적으로 다음 위치에 게시됩니다.Paq8pxd 사전 스레드encode.ru에서.
paq8에는 JPG 모델이 포함되어 있으므로 JPG 파일을 원래 크기의 70-80%로 무손실 압축할 수 있습니다. 그러나 zpaq은 최신 패키지이지만 이러한 모델이 포함되어 있지 않으므로 JPG 이미지에서 성능이 훨씬 낮습니다.
zpaq과 관련하여 Ubuntu 저장소의 버전은 매우 오래되었습니다(v1.10). 최신 버전(v7.14)을 확인하실 수 있습니다여기, Ubuntu에서 컴파일을 매우 쉽게 해주는 Makefile이 포함되어 있습니다. 그러나 여전히 JPG 모델이 포함되어 있지 않으므로 jpg 파일에서는 제대로 작동하지 않으며 이 특정 애플리케이션에서는 이전 paq8 기반 패키지보다 성능이 뛰어납니다.