이미지 리샘플링 정도로는 1GB가 넘는 대용량을 할당받는 경우는 만나지 않을 줄 알았다.
그런 경우는 보기 드문 특이한 경우라고 생각했다…
그런데, \(10,000 \times 10,000\) 이미지를 막상 만나보니 그렇게나 특이한 경우가 아니었다.
일단 이미지는 픽셀당 4개의 요소(RGBA)로 구성되어 있다.
즉, \(10,000 \times 10,000 \times 4 = 400,000,000 = 400MB\) 개로 구성되어 있다.
그리고, 내가 쓰는 리샘플링 코드는 float 단위에서 SIMD2를 사용해서 처리한다.
따라서, \(400MB \times sizeof(float) = 400MB \times 4 = 1.6G\)를 사용한다.
Visual Studio에서 이렇게 큰 메모리를 사용할 때는 큰 주소 처리(LARGEADDRESSAWARE) 옵션을 켜야 한다.
프로젝트 속성에서 링커 - 시스템에서 아래와 같이 설정하면 된다.