본문으로 건너뛰기
  1. Posts/

카메라 롤링 셔터의 리드아웃 시간 측정하기

·
카메라 Arduino
작성자
hw5e
page.hw5e.cc
목차

보통 리드아웃속도라곤 하지만 셔터속도와 비슷하게 의미 상으로는 속도보단 시간에 가깝다.

리드아웃 시간 측정
#

센서의 리드아웃시간을 비교할 때 참고하는 곳인데 저 깃허브 저장소에 측정을 어떻게 하는지 적혀있다.

깜빡이는 조명을 롤링셔터를 이용해서 촬영하면 저렇게 줄무늬가 생기게 되는데 아두이노를 사용해 LED를 일정한 주기로 깜빡이게 하고 그걸 찍어서 깜빡이는 주기를 이용해 측정하는 방식이다.

그래서 이 방법대로 소니 A6500 카메라의 리드아웃 시간을 측정해보기로 했다.

https://github.com/horshack-dpreview/RollingShutter/blob/main/arduino/led_rolling_shutter.ino

아두이노 우노에 이 링크의 코드를 업로드하면 된다. 깜빡이는 주기를 바꾸고 싶다면 #define LED_HZ부분의 숫자를 바꾸면 된다.

alt text
원래 아두이노의 내장 13번핀 LED를 사용하는데 내장 LED는 좀 작아서 측정하기 편하게 13번 핀에 LED를 하나 달아줬다.

카메라로 LED 불빛이 화면을 채우도록 사진을 찍는다. 초점은 맞지 않아도 상관없다.

alt text
대충 이런 식으로 줄무늬가 잘 보이도록 찍으면 된다

여기서 찍을 때 주의사항이 있는데

  • 되도록이면 RAW로 촬영한다.
  • 렌즈 왜곡 보정을 꺼야한다. 만약 카메라 설정에서 끌 방법이 없다면 렌즈를 똑바로 장착시키지 않아 렌즈를 인식시키지 않고 촬영하든지 해보는 방법이 있다.
  • 조리개,셔터속도, ISO는 그렇게 까지 중요하지는 않는데 적당히 줄무늬가 잘 보이는 정도로 맞추면 된다.

alt text
여기서 줄무늬 패턴(파란색, 검은색)이 반복되는 구간을 적당히 골라서 고른 구간의 줄무늬 패턴과 사진에서의 픽셀 개수를 센다. 구간 길이가 길수록 오차가 줄어드니 적당히 길게 선택해주면 된다. (픽셀 개수를 세는데 나는 Darktable의 Crop 도구를 사용했다.)

저 사진에서 파란부분,검은부분으로 된 패턴 하나를 읽는데 1/주기 초가 걸리게 되는 것인데 이걸 이용해서 선택된 부분을 읽는 데 걸린 시간을 구한다. 패턴이 반복된 횟수에 패턴 하나를 읽는데 걸린 시간을 곱하면 된다. 내가 고른 구간에서는 21번 반복되었는데 저 선택된 구간을 읽는데 1/500초 * 21 = 42ms가 걸린 것이다.

선택된 부분을 읽는데 걸린 시간에다 (카메라의 픽셀 개수)/(선택한 부분의 픽셀 개수)를 곱해서 센서 전체를 읽는 데 걸린 시간을 구한다. 저 구간의 세로 픽셀 개수는 3646개이고 전체 사진의 세로 픽셀 개수는 4024개이므로 센서 전체를 읽는데 걸린 시간은 42ms*4024/3646 = 46.35ms가 걸리는 것으로 측정되었다.

alt text
검증을 위해 저 사이트에 있는 측정값이랑 비교해봤는데 a6300,a6400 측정 결과가 저런걸 봐선 대충 비슷하게 나온 것 같다. (A6500과 A6300,6400은 센서가 동일해서 리드아웃은 거의 똑같다.)

응용
#

카메라 센서가 읽는데 얼마의 시간이 걸리는지 알면 반대로 카메라 센서로 조명이 어느 주기로 깜빡이는지 측정해보는 것이 가능하다.

측정한 리드아웃 시간으로 조명이 깜빡이는 주기를 측정해보면 46.35*2896/4024/4 = 8.3393ms 가 나온다. 전원이 60hz라서 깜빡이는 주기가 1/120초(8.3333ms)일 경우가 많은데 대충 비슷하게 나온 것 같다.

Reply by Email