비슷한 이미지를 무손실 압축하시나요?

비슷한 이미지를 무손실 압축하시나요?

사진 라이브러리의 크기를 줄여야 하므로 자연스럽게 압축하고 싶습니다. 그 중 다수는 완전히 동일하지는 않지만 여전히 매우 유사합니다(동일한 장면의 후속 샷). 이러한 이미지를 효과적으로 압축하기 위해 이 사실을 활용하는 압축 알고리즘이 있습니까? 7zip(LZMA)은 쓸모가 없습니다.

답변1

시도해 볼 수도 있습니다팩 8(fp8_v2.zip). 방금 1440개의 유사한 PNG 이미지에 대해 직접 시도한 다음 111개의 유사한 JPG 이미지에 대해 다시 시도했습니다. 결과는 다음과 같습니다.

  • 1440개의 PNG 파일, 28,631,615바이트 => 2,058,653바이트 압축
  • 111개 JPG 파일, 15,003,820바이트 => 489,096바이트 압축

다음을 사용할 때 PNG 파일 압축에는 약 8분이 걸렸고 메모리는 550MB였습니다.

fp8_v2.exe -7 images *.png

다음을 사용할 때 JPG 파일을 압축하는 데 약 5분이 걸렸고 메모리는 125MB였습니다.

fp8_v2.exe -5 images image12*.jpg

또한보십시오:jpg 무손실 이미지 압축 테스트

답변2

다음은 사진에는 작동하지 않지만 큰 픽셀 단위로 동일한 영역을 가진 여러 이미지가 있는 경우 작동할 수 있는 간단한 솔루션입니다. 이미지를 BMP(PNG 또는 GIF 아님)와 같은 압축 해제된 형식으로 저장한 다음 TAR하고 압축합니다. XZ와 같은 적절한 압축기를 사용합니다. 예를 들어 Linux에서는 다음과 같은 것을 사용합니다.

tar -c myDirectory | xz -9 >myDirectory.tar.xz

TAR 및 XZ 대신 "solid archive" 옵션과 함께 7-Zip을 사용하여 거의 동일한 성능을 얻을 수 있습니다. 이렇게 하면 별도의 PNG 파일로 저장할 때 각각 약 900KB가 소요되는 16개의 유사한 스크린샷을 2MB 아카이브로 압축할 수 있습니다. 이 솔루션의 장점은 공통 파일 형식을 사용하므로 새 소프트웨어를 설치하지 않고도 작동한다는 것입니다. (불행히도 오래되고 훨씬 더 일반적인 프로그램인 GZIP과 BZIP2는 제게는 효과적이지 않았습니다. 아마도 BZIP2의 블록 크기를 900KB보다 크게 구성할 수 없기 때문일 것입니다.)

답변3

나는 산술 코더를 사용한 버로우 휠러 변환이 충분히 큰 창이 주어지면 이에 이상적이라고 생각합니다. 소량의 사진과 동일한 블록 크기를 사용하도록 BZIP2를 구성하면 어떻게 되나요? 속도가 느려지고 메모리도 더 많이 차지하지만 압축률은 급상승해야 합니다. 더 큰 블록 크기로 LZMA를 사용해 보셨나요?

답변4

내가 본 것은 아닙니다. 아마도 가장 가까운 것은 여러 개의 유사한 JPEG를 가져와 MJPEG 영화에 넣는 것입니다. 비슷한 목적으로 APNG 또는 애니메이션 GIF를 사용할 수도 있습니다.

그래도 그것이 얼마나 잘 작동할지는 잘 모르겠습니다. 이미 영화 스크린캡에 대해 이야기하고 있는 것 같으니 이를 영화 파일로 다시 압축하는 것은... 비생산적인 것 같습니다.

어쩌면 더 좋은 방법은 화면의 원본 클립이 아직 남아 있는 경우 정확한 프레임을 추출할 수 있는 명령줄 도구를 찾아서 해당 고유 식별자를 텍스트 파일 어딘가에 복사한 다음 언제든지 작업을 수행하는 것입니다. 필요할 때 프레임을 쉽게 다시 추출할 수 있습니다.

관련 정보