모바일 OpenCL 기반 이미지 인페인팅 가속기 설계와 최적화
초록
본 논문은 모바일 SoC에서 이미지 객체 제거를 위한 전형적인 전시 기반 인페인팅 알고리즘을 OpenCL로 이식하고, CPU‑GPU 작업 분할 및 다단계 최적화를 통해 GPGPU 가속을 실현한다. 핵심 연산인 패치 매칭 커널을 중심으로 알고리즘 구조, 병렬성, 메모리 접근을 최적화하여 실험적으로 10배에 가까운 속도 향상을 달성하면서도 이미지 품질은 유지한다.
상세 분석
이 연구는 모바일 환경에서 고비용 이미지 인페인팅을 실시간으로 수행하기 위한 전반적인 설계·구현 프레임워크를 제시한다. 먼저 최신 모바일 SoC(스냅드래곤 8974)의 CPU‑GPU 공유 메모리 구조와 OpenCL 계층형 메모리 모델을 상세히 분석한다. 특히 전역(Global) 메모리의 높은 레이턴시와 로컬(Local) 메모리·프라이빗(Private) 메모리의 용량 제한을 고려해 데이터 배치를 재구성하고, 이미지 픽셀을 uchar4 벡터 형태로 처리함으로써 메모리 대역폭 활용도를 크게 높였다.
알고리즘 차원에서는 전형적인 Criminisi 기반 인페인팅 흐름을 ① 초기화, ② 반복 연산, ③ 최종화 단계로 구분하고, 각 단계의 핵심 연산을 8개의 OpenCL 커널로 매핑한다. 프로파일링 결과, 전체 실행 시간의 97%가 findBestPatch 커널에 집중됨을 확인하고, 이를 최적화 대상으로 선정한다. 최적화 전략은 크게 세 축으로 전개된다.
-
알고리즘 최적화: 패치 탐색 영역을 현재 경계(δΩ)와 신뢰도(C(p))에 기반해 동적으로 제한하고, SSD 계산 시 색상 채널을 동시에 처리하도록 SIMD‑friendly 연산을 도입했다. 또한, 후보 패치 집합을 사전 정렬해 불필요한 비교를 조기에 배제한다.
-
병렬성 최적화: 워크그룹 크기를 2D 블록 형태(예: 16×16)로 설정해 이미지 공간의 지역성을 유지하면서 워크아이템 간 동기화 비용을 최소화했다. 워크그룹 내에서 로컬 메모리에 현재 패치와 주변 픽셀을 미리 로드해 전역 메모리 접근을 감소시켰으며, 워크아이템 간의 데이터 종속성을 없애기 위해 패치 매칭을 완전 병렬화했다.
-
메모리 접근 최적화: 전역 메모리 읽기를 연속적인 주소 패턴으로 정렬하고,
cl_mem객체를CL_MEM_READ_ONLY·CL_MEM_WRITE_ONLY플래그로 명시해 캐시 라인 효율을 높였다. 또한, 로컬 메모리 크기 제한(각 컴퓨트 유닛당 8 KB)을 고려해 패치 블록을 분할 로드하고, 필요 시 레지스터 수준에서 중간 결과를 유지하도록 설계했다.
실험에서는 Android 4.2.2 환경에서 동일 이미지(해상도 1280×720)와 다양한 객체 마스크에 대해 CPU‑단일코어 구현과 비교했을 때, 평균 8.5배(~10배) 이상의 가속을 기록했다. 전력 소모는 GPU 활용에 따라 약 30% 감소했으며, PSNR·SSIM 지표는 원본 CPU 구현과 차이가 없음을 확인했다. 이러한 결과는 모바일 디바이스에서도 복잡한 이미지 편집 작업을 실시간으로 수행할 수 있음을 입증한다.
본 논문의 주요 기여는 (1) 모바일 SoC 특성을 반영한 OpenCL 기반 CPU‑GPU 작업 분할 방법론, (2) 패치 매칭 중심의 고비용 커널을 효율적으로 최적화한 구체적 기법, (3) 실제 모바일 하드웨어에서 실측한 성능·품질 평가이다. 제시된 최적화 원칙은 SIFT, optical flow, texture synthesis 등 유사한 픽셀‑레벨 연산을 수행하는 다른 컴퓨터 비전 알고리즘에도 그대로 적용 가능하다.
댓글 및 학술 토론
Loading comments...
의견 남기기