12월 022011
 

이번 게시글은 AF 신호에 대한 심층 분석 결과를 담은 글입니다. 일단 지금까지 AF시그널에 대해 정리한다는 생각으로 글을 올리겠습니다.

아래의 다이어그램은 NX마운트가 스틸 촬영시 AF를 동작 때 발생하는 전반적인 흐름을 담았습니다.

드디어, 4번핀, ATT (Attention)의 역할이 보입니다.

일단 AF가 시작이 되는 것은 최초 4번핀, ATT (Attention)의 5us 짜리 신호 튐으로 개시가 됩니다. 그리고, 최종 AF의 종료도 이 신호로 마무리가 됩니다.

AF 시작과 종료 사이에 3가지 종류의 신호/값들의 전송이 혼재하면서 전체적인 AF를 수행합니다.
아래에 보실 3개의 표는 이 3가지 동작의 세부 데이터 흐름과 그 의미를 분석한 것입니다.

이 상황은 바디에서 필요하다고 판단이 되면, 렌즈에게 이동해야할 포커싱 위치와 속도등의 정보를 보내고, 렌즈가 이에 응답하는 것으로 이루어져 있습니다.

 

이 상황은 AF 동작에서 대부분의 데이터를 차지하는 동작입니다. 매 15ms 마다, 바디에서 4번 핀에 10 us 짜리 신호를 튀겨주고, 렌즈는 이 신호를 받으면 현재의 상태와 포커싱 위치를 바디에 보고하게 됩니다. 바디는 이로써 현재 이미지 센서의 측거점에 콘트라스트 값을 측정하고, 렌즈의 포커싱 위치와 상태를 보고 받으면서, 촛점이 정확하게 맞는 위치를 추적하는 기반으로 삼습니다.

특이하게도 이 동작은 바디에서 CMD로 명령을 받는 것이 아니고, 아주 간단하게 4번 ATT 핀에 신호만 인가하는 형태로 렌즈에게 반응을 유도한다는 것입니다. 아주 간단한 형태입니다.

이 15ms 이라는 주기도, 중간에 어떤 명령, 데이터 전송이 발생하더라도 이에 구애 받지 않고, 주기를 거의 예외없이 지키면서 데이터를 전송합니다.

이 상황은 AF 상황에서 특히 예외적인 상황으로, 바디의 명령이나, 4번 ATT핀의 특정한 신호가 없이도, 렌즈가 혼자 자발적으로 바디에 보고하는 데이터 입니다. 위의 그림에 설명된 상황에서 이 작업이 이뤄지는데, 독립적인 작업이긴 하나, 사실 상황 1과도 밀접한 관계가 있기도 합니다.

자 이상으로 대충의 개념 설명을 하였지만 아직도 정확한 판명이 이뤄지지 않은 2개의 Byte가 있습니다. 그중에서도 렌즈에서 올라가는 포커스 이동방향/벡터 상태로 의심이 되는 값에 대한 파악이 특히 중요합니다.

이것만 파악이 되면, 곧 어댑터 소프트웨어 개발에 착수 할 수 있을만큼의 의미있는 값으로 판단합니다.

자…. 이제부턴, 각 상황에서 실 데이터를 가지고, 전체적인 AF를 살펴보도록 하겠습니다.

 

먼저 NX 30팬을 이용해 근 촛점에서 원 촛점으로 AF를 시도해 성공하였을 때의 상황입니다.
주석에도 있지만, 빨간 화살표는 위 다이어그램에서 본 상황 1이 발생한 위치이고, 보라색은 상황 3…. 나머지 점들은 상황 2의 지점들입니다. 전술하였지만, 아직 파악되지 않은 렌즈 포커싱 이동상태/벡터로 의심되는 값들을 각 지점에서 다른 색으로 표현한 것입니다.

다만, 지금 까지 파악한 것으론

03일 때는, 예외없이, 렌즈의 포커싱 동작이 멈춘 상태입니다.
21일 때는 원–>근 또는 근–>원으로 포커싱이 정속 주행 하는 상황입니다.
22는 주로 포커싱 방향이 바뀌는 때에 많이 나타납니다.
20과, 23은 주로 바디에서 렌즈의 이송속도가 최고인 FF의 명령을 받았을 때, 주로 나타납니다.

어쨌든  위의 그래프를 보시면,

렌즈의 AF 가 시작이 되면 30팬의 경우, 모든 경우 렌즈를 최근 촛점 쪽으로 낮은 속도로 포커싱 이송을 명령합니다. 그럼 렌즈는 근거리로 이송을 합니다.

이후 바디는 촛점 방향이 아님을 판단하고 더 높은 포커싱 이송 속도로 원거리로 갈 것을 명령합니다.

다시 촛점위치를 지나자 바디는 낮은 이송 속도로 근거리로 갈 것을 명령합니다.

그리고, 최종 촛점 위치를 파악한 바디는 렌즈에 최종 촛점 위치를 지정하고, 최대 속도로 촛점 위치로 갈 것을 명령합니다.

대충 이해 되시죠??? ^^

 

위의 다이어그램도 같은 상황입니다. AF가 성공하였고, 근촛점에서 원촛점으로 이송하는 상황을 나타냅니다.

아래 그래프는 30팬이 피사체가 너무 가까와 AF 실패한 상황을 보여줍니다.

 

일반적으로 상황은 비슷합니다. 처음 바디는 근촛점으로 낮은 속도로 접근, 피사체가 가까이 있다는 것을 판단하자 바로 속도를 높여 근촛점으로 이동합니다.

렌즈에서 포커싱 최근촛점 까지 왔다고 바디에 신호를 보내고, 렌즈는 정지합니다. (이미 이상태에서 AF는 실패입니다.)
그러자, 바디에선 확인 차원에서 원 촛점으로 갈 것을 지시합니다. 그것도 최대 속도로….

그리고는 속도를 늦추었지만 그래도 빠른 속도로 최 원촛점으로 포커싱 이송하라고 명령합니다.

렌즈는 최원점까지 도달하여 렌즈가 바디에 보고를 하고 바디는 이쯤에서 포커싱 실패를 판단합니다.

이 상태에서 렌즈를 기본 위치로 최대 속도로 갈 것을 명령하고 AF를 종료합니다.

아래는 제가 비교차원에서 18-55번들 렌즈의 AF 신호를 분석한 것입니다.

딱 보기에도 구동 매커니즘이 다른게 한눈에 들어옵니다.

모터의 구동 차이인지, 바디는 렌즈에게 거의 최대 속도로 지정된 위치로 이송할 것을 명령합니다.
렌즈도 위치를 하달 받으면, 주거함 없이 목표한 위치로 정확하게 위치하고 렌즈를 정지 시킵니다. 30팬하곤 판이하게 다릅니다.

바디는 렌즈의 정지 신호를 받고는 처음에는 맛만 보는 차원에서 이송후, 포커싱 을 근 촛점으로 이송명령을 내립니다.
근촛점에서도 촛점이 없음을 판단하자, 원촛점으로 최대 속도로 이송을 명령합니다.

촛점 방향이 정확하다는 판단을 바디가 내리고는, 촛점 근방에서 속도를 늦춥니다.

그리고 최종 촛점 위치를 판다하고는 최종적으로 촛점 위치를 지정하고 최대 속도로 촛점에 위치시킬 것을 명령합니다.

촛점 위치에 자리를 잡은 렌즈의 보고를 받고는 AF를 종료합니다.

이상입니다.

이제는 좀더 몇개의 상황에서 자료를 좀 더 모으고,

최후로, 렌즈가 마운트 되었을 때, 그 경악스런 데이터의 폭주만 분석하면, 어댑터의 HW,SW 구현을 시작할 수 있을 것 같습니다.

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)