2009-10-13 3 views
2

나중에 Seadragon AJAX의 이미지 피라미드로 변환 할 사용자 지정 이미지를 만듭니다. 이미지와 이미지 피라미드는 PIL을 사용하여 만듭니다. 현재 너비와 높이가 약 32,000,000 x 1000 인 약 100 장의 사진에 대해 이미지와 이미지 피라미드를 생성하는 데 몇 시간이 걸립니다 (예 : 이미지가 매우 길고 좁음). 성능은 내가 시도한 알고리즘과 비슷합니다 (즉, deepzoom.py). 나는 Python-gd가 C로 코딩 된 기능 (GD 라이브러리로부터) 때문에 더 잘 수행 될지를 계획하고 있습니다. 그러나 나는 다른 사람들의 의견을 듣기에 호기심이 많습니다. 특히 크기 조정과 자르기는 PIL에서 느립니다 (Image.ANTIALIAS 포함). 파이썬 -GD를 사용하면 이것이 상당히 향상 될까요?자르기 및 크기 조정을위한 PIL 대 Python-GD

의견과 제안에 미리 감사드립니다.

EDIT : PIL과 python-GD 간의 성능 차이는 최소한으로 보인다. 성능 병목 현상을 줄이고 여러 프로세서에 대한 지원을 포함하도록 내 코드를 리팩터링합니다. 파이썬 '다중 처리'모듈을 테스트했습니다. 결과는 고무적입니다.

+0

시드라곤은 매우 시원해 보인다. 작업을 여러 프로세스 또는 여러 컴퓨터로 분할 할 수 있습니까? –

+0

분할 될 수 있습니다. 내 코드의 중요한 재인식이 필요하기 때문에 이것을 피하기를 희망했지만, 피할 수없는 것처럼 보입니다. – Vince

답변

1

PIL은 대부분 C로 표시됩니다.

앤티 앨리어싱이 느립니다. 앤티 엘리 어싱을 끄면 속도는 어떻게됩니까?

+0

게시 한 후 실제로이 시도했습니다. BILINEAR를 사용하면 훨씬 더 빠르며 미학적으로 유사한 결과를 얻을 수 있습니다. 또한 크기 조정 방법의 성능은 PIL과 python-GD (속도의 10 % 차이)간에 비교할 수 있습니다. – Vince

0

VIPS에는 fast deepzoom creator이 포함됩니다. I는 deepzoom.py를 초과 내 시스템에서 I는 참조 :

$ time ./wtc.py 
real 0m29.601s 
user 0m29.158s 
sys  0m0.408s 
peak RES 450mb 
wtc.jpg는 10,000 X 10,000 픽셀 RGB JPG 이미지이다

wtc.pythese settings를 사용한다.

VIPS 빠르게 세 번 주위와 메모리의 내무반 필요 : SYS 너무 높은 이유

$ time vips dzsave wtc.jpg wtc --overlap 2 --tile-size 128 --suffix .png[compression=0] 
real 0m10.819s 
user 0m37.084s 
sys  0m15.314s 
peak RES 100mb 

잘 모르겠어요합니다.

관련 문제