BATCAM FX 에서 전달되는 Beamforming 이벤트의 BF Map은 40x30
의 구조로 이루어져 있으며, 전송 시 1x1200
구조의 Array로 전달됩니다.
BATCAM FX RTSP 영상에 BF Map 을 가시화하는 경우를 가정한 사진 녹색부분은 예시로 설정됐다고 가정한 Listening Point
BATCAM FX의 LPoint 기능은 3개까지 지정 가능하며, 지정한 위치에 빔포밍 된 오디오 신호를 LPointAudio 이벤트를 통해 전송합니다.
Listening Point를 설정할 때, 두 지점 간의 거리가 너무 가까우면 안 됩니다.
현재 BATCAM FX의 LPoint 설정에서는 다음과 같은 최소 거리 제한이 설정되어 있습니다:
가로 방향: 최소 ±2 칸 이상
세로 방향: 최소 ±2 칸 이상
즉, 하나의 Listening Point가 지정되면, 그로부터 가로·세로로 2칸 이내의 모든 영역은 다른 Listening Point로 사용할 수 없습니다.
예를 들어, 다음과 같은 Listening Point를 지정했다고 가정하는 경우:
Listening Point A: 인덱스 20
(x=20, y=0)
Listening Point B: 인덱스 580
(x=20, y=14)
해당 두 Listening Point 주변에는 다음과 같은 제한 영역이 설정됩니다:
A를 기준으로: 0 ≤ x ≤ 22, 0 ≤ y ≤ 2
B를 기준으로: 18 ≤ x ≤ 22, 12 ≤ y ≤ 16
이 범위 안에 추가 Listening Point를 설정하면 안 됩니다.
LPoint는 40×30 크기의 2D 그리드를 1차원 인덱스(0~1199)로 표현합니다.
하지만 API 요청 시에는 세로 방향 해상도를 절반으로 줄인 40×15 형태로 변환하여 인덱스를 전송해야 합니다.
이를 위해 다음의 공식들을 사용하여 압축(Downsize) 및 복원(Upsize)을 수행합니다.
<aside> 💡
압축된 인덱스는 세로 해상도를 절반으로 줄이는 과정에서 정보가 손실될 수 있으며, 복원 연산은 원래 위치를 정확히 복원하지 않고 y 좌표 상단을 기준으로 복원합니다. 좌표 정밀도가 필요한 상황에서는 별도의 원본 인덱스를 보존하여야 합니다.
</aside>
1차원 인덱스 n
(0~1199)을 40×15 그리드 기준으로 변환합니다.
세로 해상도를 절반으로 줄여 y 좌표를 압축합니다.
수식:
$$ f(n) = 40 \cdot \left\lfloor \frac{\left\lfloor \frac{n}{40} \right\rfloor}{2} \right\rfloor + (n \bmod 40) $$
예시:
압축된 인덱스를 원래의 40×30 기준으로 복원합니다.
압축 시 사라진 한 줄 중 위쪽 줄(y * 2) 을 기준으로 복원됩니다.
수식:
$$ f^{-1}(n) = 40 \cdot (2 \cdot \left\lfloor \frac{n}{40} \right\rfloor) + (n \bmod 40) $$
예시: