[주요 편집 1월 14일 10] 나는 타일의 당신의 언급에 의해 혼란 조금 티파니가 바둑판 식으로 배열되지 않는 한
.
나는 타일/피라미드 형 TIFF 이미지를 사용합니다.
vips im_vips2tiff source_image output_image.tif:none,tile:256x256,flat
당신은 타일 크기를 실험 할 수 있습니다 : 나는 당신이 할 수 있다고 생각 VIPS
vips im_vips2tiff source_image output_image.tif:none,tile:256x256,pyramid
있는 사람을 만들었습니다. 그런 다음 TIFFReadEncodedTile을 사용하여 읽을 수 있습니다.
피라미드 티프를 사용하는 다중 해상도 저장은 확대/축소가 필요한 경우 훨씬 빠릅니다. 이 이미지를 사용하여 거친 이미지를 거의 바로 뒤에 상세한 이미지로 표시 할 수도 있습니다.
(적절한 크기의) 타일링 된 스토리지로 전환하면 (임의 액세스에 대한 성능이 크게 향상됩니다!) 병목 현상은 디스크 io가됩니다. 순서대로 읽으면 파일 읽기가 훨씬 빠릅니다. 여기에 mmapping이 해결책이 될 수 있습니다.
몇 가지 유용한 링크 :
이
VIPS IIPImage LibTiff.NET stackoverflow VIPS는 읽기/쓰기보다 훨씬 더 많은 일을 할 수있는 이미지 처리 라이브러리입니다. 자체 고유의 매우 효율적인 내부 형식이 있습니다. 그것은 알고리즘에 대한 좋은 문서를 가지고있다. 하나는 파일 시스템에서 처리를 분리하여 타일을 캐시 할 수있게합니다.
IIPImage는 다중 줌 웹 서버/브라우저 라이브러리입니다.문서가 다중 해상도 이미징 (Google지도와 같은)에 대한 아주 좋은 정보원임을 알게되었습니다.
이 페이지의 다른 해결책은 mmap을 사용하여 '작은'파일에만 효율적입니다. 나는 종종 32 비트 경계를 쳤다. 일반적으로 하나 또는 두 개의 응용 프로그램을 실행 한 후에 가상 메모리조차도 조각화되기 때문에 1GB짜리 메모리 할당은 32 비트 OS에서 (4GB RAM이 설치된 상태에서) 실패합니다. 여전히 이미지의 일부 또는 전체를 캐시하기에 충분한 메모리가 있습니다. 더 많은 메모리 = 더 많은 성능.
압축되지 않은 것으로 가정 할 수 있습니까? –
데이터가 스캔 라인으로 정리되어 있습니까? –
네, 데이터는 가장 traditinal 방법으로 압축하고 구성되어 있습니다 1 호선 2 호선 세 번째 줄 ... – Juan