Camera array is multiple cameras that take a picture simultaneously. Many visual effects, like bullet-time effect or 3D image reconstruction, can be realized using the camera array. But using camera array needs a high cost and expert knowledges. Thus, users can’t use the camera array easily.
Nowadays, many smart devices including smart phones, tablets, smart TVs appear. These devices have the own camera. Naturally, there is a possibility that building a camera array using smart devices.
In order to build a camera array using smart devices, it is important that multiple smart devices capture simultaneously. But there is a differences between smart devices and camera array, 1) smart devices are connected using wireless network, 2) there are other applications running on smart devices, 3) even there may be a lot of camera applications. Thus, it is hard to take a picture simultaneously even though all devices call capture API at the same time.
In this paper, we analyse the android camera subsystem and provide the framework that all smart devices can take a picture at the same time. We implement the solution on Nexus6 and evaluate the accuracy of capture synchronization.
카메라 어레이란 동시에 사진을 찍기 위한 다수의 카메라를 말한다. Bullet-time effect나 3D image reconstruction 등 다수의 시각 효과들은 카메라 어레이를 통해 구현된다. 하지만 카메라 어레이를 사용하는 것은 높은 비용과 전문 지식을 필요로 하기 때문에, 일반 사용자들은 카메라 어레이를 쉽게 사용할 수가 없다.
최근, 스마트 폰, 태블릿, 스마트 티비 등 많은 스마트 기기들의 출시됐다. 이들은 각각의 카메라를 가지고 있기 때문에 일반 사용자들이 사용할 수 있는 카메라의 수가 많아졌다. 자연스럽게, 이들의 카메라를 사용하여 카메라 어레이를 구성할 수 있는 가능성이 생겼다.
스마트 기기를 사용하여 카메라 어레이를 구성하기 위해서는 다수의 스마트 기기들이 동시에 사진을 찍는 것이 중요하다. 하지만 카메라 어레이와 스마트 기기들은 큰 차이점을 가지고 있는데, 1) 스마트 기기들은 무선 네트워크로 연결된다는 점, 2) 카메라 어플리케이션 외에 다른 어플리케이션들이 실행 된다는 점, 3) 여러 카메라 어플리케이션이 동시에 실행될 수 있다는 점이다. 이러한 차이점들이 스마트 기기들이 동시에 capture API를 호출하더라도 사진이 동시에 찍는 것을 힘들게 한다.
본 논문에서는 안드로이드의 카메라 서브시스템을 분석하고, 다수의 스마트 기기들이 동시에 사진을 찍을 수 있는 framework을 제공한다. 우리는 제시한 솔루션을 Nexus 6에 구현하고 성능 분석을 통해 모든 기기들이 동시에 사진을 찍을 수 있음을 보였다.